diff --git a/apps/labs/assets/data/menu.json b/apps/labs/assets/data/menu.json
index 4aeb21a31..7fc92241a 100644
--- a/apps/labs/assets/data/menu.json
+++ b/apps/labs/assets/data/menu.json
@@ -33,6 +33,10 @@
{
"name": "Textarea",
"to": "/textarea"
+ },
+ {
+ "name": "ToggleSwitch",
+ "to": "/toggleswitch"
}
]
},
diff --git a/apps/labs/doc/toggleswitch/BasicDoc.vue b/apps/labs/doc/toggleswitch/BasicDoc.vue
new file mode 100644
index 000000000..c797c205a
--- /dev/null
+++ b/apps/labs/doc/toggleswitch/BasicDoc.vue
@@ -0,0 +1,31 @@
+
+
+ ToggleSwitch is used with the v-model property for two-way value binding.
+
+
+
+
+
+
+
+
diff --git a/apps/labs/doc/toggleswitch/DisabledDoc.vue b/apps/labs/doc/toggleswitch/DisabledDoc.vue
new file mode 100644
index 000000000..0c1f9f423
--- /dev/null
+++ b/apps/labs/doc/toggleswitch/DisabledDoc.vue
@@ -0,0 +1,31 @@
+
+
+ When disabled is present, the element cannot be edited and focused.
+
+
+
+
+
+
+
+
diff --git a/apps/labs/doc/toggleswitch/ImportDoc.vue b/apps/labs/doc/toggleswitch/ImportDoc.vue
new file mode 100644
index 000000000..0024a8afb
--- /dev/null
+++ b/apps/labs/doc/toggleswitch/ImportDoc.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/apps/labs/doc/toggleswitch/InvalidDoc.vue b/apps/labs/doc/toggleswitch/InvalidDoc.vue
new file mode 100644
index 000000000..10de39ba3
--- /dev/null
+++ b/apps/labs/doc/toggleswitch/InvalidDoc.vue
@@ -0,0 +1,31 @@
+
+
+ Invalid state is displayed using the invalid prop to indicate a failed validation. You can use this style when integrating with form validation libraries.
+
+
+
+
+
+
+
+
diff --git a/apps/labs/doc/toggleswitch/PreselectionDoc.vue b/apps/labs/doc/toggleswitch/PreselectionDoc.vue
new file mode 100644
index 000000000..5c6b9c69c
--- /dev/null
+++ b/apps/labs/doc/toggleswitch/PreselectionDoc.vue
@@ -0,0 +1,31 @@
+
+
+ Enabling checked property displays the component as active initially.
+
+
+
+
+
+
+
+
diff --git a/apps/labs/doc/toggleswitch/TemplateDoc.vue b/apps/labs/doc/toggleswitch/TemplateDoc.vue
new file mode 100644
index 000000000..23be940ee
--- /dev/null
+++ b/apps/labs/doc/toggleswitch/TemplateDoc.vue
@@ -0,0 +1,39 @@
+
+
+ The handle slot is available to display custom content.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/labs/pages/toggleswitch/index.vue b/apps/labs/pages/toggleswitch/index.vue
new file mode 100644
index 000000000..89e9e8a33
--- /dev/null
+++ b/apps/labs/pages/toggleswitch/index.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
diff --git a/apps/labs/plex/toggleswitch/index.vue b/apps/labs/plex/toggleswitch/index.vue
new file mode 100644
index 000000000..50e22ac77
--- /dev/null
+++ b/apps/labs/plex/toggleswitch/index.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/labs/tailwind.config.js b/apps/labs/tailwind.config.js
index 186877d26..3c2bc6696 100644
--- a/apps/labs/tailwind.config.js
+++ b/apps/labs/tailwind.config.js
@@ -15,6 +15,9 @@ export default {
addVariant('p-filled', '&[data-p~="filled"]');
addVariant('p-horizontal', '&[data-p~="horizontal"]');
addVariant('p-vertical', '&[data-p~="vertical"]');
+ addVariant('p-checked', '&[data-p~="checked"]');
+ addVariant('p-disabled', '&[data-p~="disabled"]');
+ addVariant('p-enabled', '&:not([data-p~="disabled"])');
})
],
theme: {
diff --git a/apps/showcase/doc/toggleswitch/TemplateDoc.vue b/apps/showcase/doc/toggleswitch/TemplateDoc.vue
index 9055fa083..90cc61303 100644
--- a/apps/showcase/doc/toggleswitch/TemplateDoc.vue
+++ b/apps/showcase/doc/toggleswitch/TemplateDoc.vue
@@ -2,7 +2,7 @@
The handle slot is available to display custom content.
-
+
diff --git a/packages/primevue/src/toggleswitch/ToggleSwitch.vue b/packages/primevue/src/toggleswitch/ToggleSwitch.vue
index 5363ebf06..322cdd95e 100755
--- a/packages/primevue/src/toggleswitch/ToggleSwitch.vue
+++ b/packages/primevue/src/toggleswitch/ToggleSwitch.vue
@@ -1,5 +1,5 @@
-