@policystudio/policy-studio-ui-vue 1.0.26 → 1.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/css/psui_styles.css +6011 -496
  2. package/package.json +1 -1
  3. package/src/assets/scss/base.scss +40 -3
  4. package/src/assets/scss/components/PsButton.scss +115 -117
  5. package/src/assets/scss/components/PsCardInfos.scss +26 -0
  6. package/src/assets/scss/components/PsChartLegend.scss +25 -0
  7. package/src/assets/scss/components/PsCheckbox.scss +96 -0
  8. package/src/assets/scss/components/PsChips.scss +155 -0
  9. package/src/assets/scss/components/PsClimateZoneBadge.scss +26 -0
  10. package/src/assets/scss/components/PsCostEffectBar.scss +26 -0
  11. package/src/assets/scss/components/PsDataTable.scss +50 -0
  12. package/src/assets/scss/components/PsDialog.scss +10 -1
  13. package/src/assets/scss/components/PsDotLoader.scss +45 -0
  14. package/src/assets/scss/components/PsDropdown.scss +44 -0
  15. package/src/assets/scss/components/PsHighlightRippleDot.scss +48 -0
  16. package/src/assets/scss/components/PsInlineSelector.scss +96 -0
  17. package/src/assets/scss/components/PsInputSelect.scss +104 -0
  18. package/src/assets/scss/components/PsInputTextArea.scss +49 -0
  19. package/src/assets/scss/components/PsMiniTag.scss +36 -0
  20. package/src/assets/scss/components/PsProgressBar.scss +24 -0
  21. package/src/assets/scss/components/PsRadioButton.scss +78 -0
  22. package/src/assets/scss/components/PsSlider.scss +11 -0
  23. package/src/assets/scss/components/PsSwitch.scss +66 -0
  24. package/src/assets/scss/components/PsTabHeader.scss +10 -3
  25. package/src/assets/scss/components/PsToast.scss +52 -0
  26. package/src/assets/scss/components/PsToggle.scss +23 -0
  27. package/src/assets/scss/components/PsTooltip.scss +118 -0
  28. package/src/components/badges-and-tags/PsCardInfos.vue +14 -7
  29. package/src/components/badges-and-tags/PsChartLegend.vue +7 -13
  30. package/src/components/badges-and-tags/PsClimateZoneBadge.vue +15 -6
  31. package/src/components/badges-and-tags/PsCostEffectBar.vue +32 -70
  32. package/src/components/badges-and-tags/PsHighlightRippleDot.vue +3 -69
  33. package/src/components/badges-and-tags/PsMiniTag.vue +15 -24
  34. package/src/components/badges-and-tags/PsProgressBar.vue +42 -0
  35. package/src/components/buttons/PsButton.vue +78 -78
  36. package/src/components/chips/PsChips.vue +45 -87
  37. package/src/components/controls/PsCheckbox.vue +58 -134
  38. package/src/components/controls/PsInlineSelector.vue +123 -0
  39. package/src/components/controls/PsRadioButton.vue +33 -88
  40. package/src/components/controls/PsSlider.vue +5 -6
  41. package/src/components/controls/PsSwitch.vue +29 -81
  42. package/src/components/controls/PsToggle.vue +45 -39
  43. package/src/components/datatable/PsDataTable.vue +3 -15
  44. package/src/components/forms/PsDropdown.vue +28 -12
  45. package/src/components/forms/PsDropdownCopy.vue +212 -0
  46. package/src/components/forms/PsInputSelect.vue +88 -0
  47. package/src/components/forms/PsInputTextArea.vue +80 -0
  48. package/src/components/notifications/PsDialog.vue +3 -0
  49. package/src/components/notifications/PsToast.vue +16 -28
  50. package/src/components/tabs/PsTabHeader.vue +30 -12
  51. package/src/components/tooltip/PsDialogTooltip.vue +6 -31
  52. package/src/components/tooltip/PsRichTooltip.vue +37 -44
  53. package/src/components/tooltip/PsTooltip.vue +18 -28
  54. package/src/components/ui/PsDotLoader.vue +15 -0
  55. package/src/components/ui/PsIcon.vue +9 -9
  56. package/src/index.js +17 -4
  57. package/src/stories/Button.stories.js +102 -112
  58. package/src/stories/Checkbox.stories.js +34 -37
  59. package/src/stories/Chips.stories.js +43 -54
  60. package/src/stories/ClimateZoneBadge.stories.js +0 -7
  61. package/src/stories/Colors.stories.mdx +1 -0
  62. package/src/stories/Dialog.stories.js +1 -1
  63. package/src/stories/InlineSelector.stories.js +18 -0
  64. package/src/stories/InputSelect.stories.js +30 -0
  65. package/src/stories/InputTextArea.stories.js +25 -0
  66. package/src/stories/MiniTag.stories.js +12 -6
  67. package/src/stories/RadioButton.stories.js +32 -29
  68. package/src/stories/Switch.stories.js +33 -0
  69. package/src/stories/Toast.stories.js +40 -46
  70. package/src/stories/Tooltip.stories.js +86 -86
  71. package/tailwind.config.js +8 -1
  72. package/src/assets/images/check-checkbox-button.svg +0 -1
  73. package/src/assets/images/radio-checked-button.svg +0 -1
  74. package/src/stories/Swith.stories.js +0 -38
@@ -0,0 +1,50 @@
1
+ @layer components{
2
+
3
+ .psui-el-table {
4
+ @apply psui-w-full psui-table-fixed psui-border psui-border-gray-20 psui-text-small psui-text-gray-60 psui-border-separate psui-overflow-hidden psui-rounded;
5
+ border-spacing: 0;
6
+
7
+ &.psui-text-right {
8
+ th,
9
+ td {
10
+ &:first-child {
11
+ text-align: left;
12
+ }
13
+ }
14
+ }
15
+
16
+ thead,
17
+ tfoot {
18
+ th {
19
+ @apply psui-bg-gray-10;
20
+ }
21
+ }
22
+
23
+ th, td {
24
+ border-bottom: 1px solid #e6ecf2;
25
+ }
26
+
27
+ th,
28
+ td,
29
+ tr {
30
+ padding: 11px 16px;
31
+
32
+ &:not(:last-child) {
33
+ border-right: 1px solid #e6ecf2;
34
+ }
35
+ }
36
+
37
+ thead {
38
+ th {
39
+ @apply psui-bg-gray-10 psui-text-gray-80 psui-capitalize psui-font-bold;
40
+ }
41
+ }
42
+
43
+ tfoot {
44
+ th {
45
+ border-bottom: 0;
46
+ }
47
+ }
48
+ }
49
+
50
+ }
@@ -57,15 +57,24 @@
57
57
 
58
58
 
59
59
  &.theme-informative {
60
- @apply psui-bg-blue-20 psui-text-blue-60;
60
+ @apply psui-bg-blue-20 psui-text-blue-60;
61
+ .psui-el-dialog-message {
62
+ @apply psui-text-blue-60;
63
+ }
61
64
  }
62
65
 
63
66
  &.theme-success {
64
67
  @apply psui-bg-green-10 psui-text-green-70;
68
+ .psui-el-dialog-message {
69
+ @apply psui-text-green-70;
70
+ }
65
71
  }
66
72
 
67
73
  &.theme-alert {
68
74
  @apply psui-bg-yellow-10 psui-text-yellow-70;
75
+ .psui-el-dialog-message {
76
+ @apply psui-text-yellow-70;
77
+ }
69
78
  }
70
79
  }
71
80
  }
@@ -0,0 +1,45 @@
1
+ @layer components {
2
+
3
+ .psui-el-dotloader {
4
+ @apply psui-flex psui-items-center psui-justify-center psui-h-full;
5
+ padding: 0;
6
+
7
+ .psui-el-dotloader-wrapper {
8
+ @apply psui-relative psui-p-4 psui-flex;
9
+ height: 15px;
10
+ span {
11
+ @apply psui-rounded-full psui-relative psui-float-left psui-left-0 psui-top-0 psui-mr-1;
12
+ background: #b7b7b7;
13
+ height: 15px;
14
+ width: 15px;
15
+ opacity: 0.15;
16
+ transform: scale(1);
17
+ animation: dots-animation 1s 0.2s ease-in-out infinite;
18
+
19
+ &:nth-of-type(1) {
20
+ animation-delay: 0.2s;
21
+ }
22
+
23
+ &:nth-of-type(2) {
24
+ animation-delay: 0.4s;
25
+ }
26
+
27
+ &:nth-of-type(3) {
28
+ animation-delay: 0.6s;
29
+ }
30
+ }
31
+
32
+ @keyframes dots-animation {
33
+ 0%, 70%, 100% {
34
+ opacity: 0.15;
35
+ transform: scale(1);
36
+ }
37
+
38
+ 35% {
39
+ opacity: 1;
40
+ transform: scale(1);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,44 @@
1
+ @layer components {
2
+ .psui-el-dropdown-menu {
3
+ @apply psui-relative psui-inline-block psui-text-left psui-bg-white;
4
+ padding: 0px 20px;
5
+ width: 230px;
6
+
7
+ &:hover {
8
+ @apply psui-cursor-pointer psui-bg-blue-10 psui-text-blue-60;
9
+
10
+ }
11
+
12
+ &:first-child {
13
+
14
+ }
15
+
16
+ &-button {
17
+ @apply psui-inline-flex psui-justify-center psui-items-center psui-w-full psui-font-medium psui-leading-none;
18
+ background-color: transparent;
19
+ padding-top: 2.5px;
20
+ padding-bottom: 2.5px;
21
+ min-height: 27px;
22
+ font-size: 0.875rem;
23
+
24
+ &:focus {
25
+ outline: none;
26
+ box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.5);
27
+ }
28
+ }
29
+
30
+ &-dialog {
31
+ @apply psui-hidden psui-origin-top-right psui-fixed psui-mt-2 psui-w-auto psui-rounded psui-shadow-lg psui-z-50 psui-opacity-0;
32
+ transition: opacity 150ms ease-in-out;
33
+
34
+ &-category-divider {
35
+ @apply w-full;
36
+
37
+ h2 {
38
+ @apply psui-text-gray-20 psui-font-bold psui-whitespace-no-wrap psui-mb-4;
39
+ }
40
+ }
41
+
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,48 @@
1
+ @layer components {
2
+ .psui-el-highlight-ripple-icon {
3
+ @apply psui-static psui-box-border;
4
+
5
+ .psui-el-icon {
6
+ @apply psui-rounded-full psui-w-2 psui-h-2 psui-relative;
7
+ background-color: #5db883;
8
+ margin: 100px auto;
9
+
10
+ &::before, &::after {
11
+ @apply psui-rounded-full psui-absolute psui-origin-center;
12
+ background-color: rgba(93, 184, 131, 0.3);
13
+ border: solid 0px;
14
+ content: '';
15
+ width: 36px;
16
+ height: 36px;
17
+ left: -8px;
18
+ top: -8px;
19
+ transform: scale(1) translate(-1px, -1px);
20
+ z-index: -1;
21
+ }
22
+
23
+ &::before {
24
+ animation: ripple 1s infinite;
25
+ }
26
+
27
+ &::after {
28
+ animation: ripple 1s infinite;
29
+
30
+ }
31
+ }
32
+ }
33
+
34
+ @keyframes ripple {
35
+ 0% {
36
+ @apply psui-opacity-100 psui-w-0 psui-h-0;
37
+ left: 5px;
38
+ top: 5px;
39
+ }
40
+ 100% {
41
+ @apply psui-opacity-0;
42
+ left: -13px;
43
+ top: -13px;
44
+ width: 36px;
45
+ height: 36px;
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,96 @@
1
+ @layer components {
2
+ .psui-el-inline-selector {
3
+ @apply psui-w-auto psui-max-w-full psui-text-h4 psui-relative psui-flex-shrink-0 psui-text-blue-60 psui-box-border;
4
+
5
+ ::-webkit-scrollbar {
6
+ @apply psui-bg-gray-30;
7
+ display: block;
8
+ width: 6px;
9
+ }
10
+
11
+ ::-webkit-scrollbar-thumb {
12
+ @apply psui-bg-blue-70 psui-rounded;
13
+ }
14
+
15
+ input {
16
+ @apply psui-border-b psui-border-dashed psui-border-blue-50;
17
+ transition: 300ms ease-in all;
18
+ padding-bottom: 3px;
19
+
20
+ &::placeholder {
21
+ @apply psui-text-h4 psui-text-gray-40
22
+ }
23
+ }
24
+
25
+ .psui-el-inline-selector-input-wrapper {
26
+ @apply psui-relative;
27
+
28
+ span {
29
+ @apply psui-block psui-opacity-0;
30
+ min-width: 100px;
31
+ }
32
+
33
+ input {
34
+ @apply psui-appearance-none psui-bg-transparent psui-block psui-absolute psui-w-full psui-left-0 psui-top-0;
35
+
36
+ &:hover {
37
+ @apply psui-text-blue-50;
38
+ }
39
+ }
40
+ }
41
+
42
+ .psui-el-inline-selector-dropdown-wrapper {
43
+ @apply psui-absolute psui-left-0 psui-bg-white psui-rounded psui-shadow-elevation-20 psui-z-50 psui-overflow-y-auto;
44
+ max-height: 30vh;
45
+ min-width: 300px;
46
+
47
+ .psui-el-inline-selector-dropdown {
48
+ @apply psui-flex psui-bg-white;
49
+
50
+
51
+ .psui-el-inline-selector-error {
52
+ @apply psui-w-full psui-p-3 psui-flex psui-flex-col;
53
+
54
+ h3 {
55
+ @apply psui-text-red-20
56
+ }
57
+
58
+ p {
59
+ @apply psui-text-gray-50
60
+ }
61
+ }
62
+
63
+ ul {
64
+ @apply psui-w-full psui-bg-white;
65
+
66
+ li {
67
+ @apply psui-flex psui-cursor-pointer;
68
+ padding: 7.5px 16px;
69
+
70
+ &:hover {
71
+ @apply psui-bg-blue-20;
72
+
73
+ span p {
74
+ @apply psui-text-blue-60;
75
+ }
76
+ }
77
+
78
+ span {
79
+ @apply psui-flex psui-items-center psui-w-full;
80
+
81
+ > p {
82
+ @apply psui-inline-block psui-text-big psui-text-gray-60 psui-flex-shrink-0;
83
+ }
84
+
85
+ p + p {
86
+ @apply psui-text-gray-40 psui-ml-auto psui-inline-block;
87
+ font-size: 12px;
88
+ line-height: 120%;
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
@@ -0,0 +1,104 @@
1
+ @layer components {
2
+ .psui-el-input-select {
3
+ @apply psui-w-full psui-flex psui-flex-col psui-relative psui-text-gray-40 psui-box-border;
4
+
5
+ &.disabled {
6
+ @apply psui-pointer-events-none;
7
+
8
+ label {
9
+ @apply psui-text-gray-40
10
+ }
11
+
12
+ select {
13
+ @apply psui-text-gray-40 psui-border-gray-20 psui-bg-gray-20 !important
14
+ }
15
+
16
+ &::after {
17
+ @apply psui-z-20 psui-text-gray-50 !important;
18
+ }
19
+ }
20
+
21
+ &.layout-default {
22
+
23
+ &.selected {
24
+ select {
25
+ @apply psui-border-blue-50 psui-text-gray-60
26
+ }
27
+ }
28
+
29
+ &::after {
30
+ @apply psui-absolute psui-inline-block psui-text-gray-50;
31
+ content: 'arrow_drop_down';
32
+ font-family: 'Material Icons Round';
33
+ font-size: 24px;
34
+ top: 26px;
35
+ right: 15px;
36
+ z-index: -20;
37
+ }
38
+
39
+ select {
40
+ @apply psui-appearance-none psui-bg-transparent psui-text-big psui-w-full psui-border psui-border-gray-30 psui-rounded-md psui-text-gray-40;
41
+ padding: 11.5px 16px;
42
+
43
+ &:hover,
44
+ &:active {
45
+ @apply psui-border-blue-50 psui-text-gray-60
46
+ }
47
+
48
+ &:focus {
49
+ @apply psui-border-blue-60 psui-text-gray-60
50
+ }
51
+ }
52
+
53
+ }
54
+
55
+
56
+ label {
57
+ @apply psui-flex psui-text-gray-80 psui-text-big psui-items-center psui-w-full psui-font-bold psui-pointer-events-none
58
+ }
59
+
60
+ .psui-el-input-helper {
61
+ @apply psui-text-gray-50;
62
+ font-size: 12px;
63
+ line-height: 120%;
64
+ }
65
+
66
+ &.layout-mini {
67
+
68
+
69
+ select {
70
+ @apply psui-text-small psui-appearance-none psui-bg-transparent psui-w-full psui-border psui-border-gray-30;
71
+ border-radius: 4px;
72
+ padding: 7px 8px;
73
+
74
+ &:hover,
75
+ &:active {
76
+ @apply psui-border-green-20 psui-text-gray-50
77
+ }
78
+
79
+ &:focus {
80
+ @apply psui-border-green-70 psui-text-gray-50
81
+ }
82
+
83
+
84
+ }
85
+
86
+ &::after {
87
+ @apply psui-absolute psui-inline-block psui-text-gray-50 ;
88
+ content: 'unfold_more';
89
+ font-family: 'Material Icons Round';
90
+ font-size: 18px;
91
+ top: 4px;
92
+ right: 4px;
93
+ z-index: -20;
94
+ }
95
+
96
+ &.selected {
97
+ select {
98
+ @apply psui-border-green-20 psui-text-green-70
99
+ }
100
+ }
101
+
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,49 @@
1
+ @layer components {
2
+ .psui-el-input-textarea {
3
+ @apply psui-block psui-w-full;
4
+ font-family: inherit;
5
+
6
+ &.disabled {
7
+ @apply psui-text-gray-40 psui-block psui-w-full !important;
8
+
9
+ .psui-el-input-textarea-wrapper {
10
+ label {
11
+ @apply psui-bg-gray-10 !important;
12
+ }
13
+
14
+ textarea {
15
+ @apply psui-appearance-none psui-w-full psui-bg-gray-20 psui-border-gray-20 psui-cursor-default !important;
16
+ }
17
+ }
18
+ }
19
+
20
+ .psui-el-input-textarea-wrapper {
21
+ @apply psui-flex psui-flex-col;
22
+
23
+ label {
24
+ @apply psui-h-full psui-flex psui-items-center psui-font-bold psui-text-big psui-py-1
25
+ }
26
+
27
+ textarea {
28
+ @apply psui-appearance-none psui-w-full psui-h-full psui-text-big psui-border psui-border-gray-30 psui-bg-white psui-text-gray-60 psui-resize-none psui-rounded-md psui-p-4;
29
+
30
+ &:hover,
31
+ &:focus,
32
+ &:active {
33
+ @apply psui-border-blue-60
34
+ }
35
+
36
+ ::placeholder {
37
+ @apply psui-text-big
38
+ }
39
+ }
40
+ }
41
+
42
+ .psui-el-input-textarea-message {
43
+ @apply psui-text-gray-50 psui-flex psui-font-normal;
44
+ font-size: 12px;
45
+ line-height: 120%;
46
+ padding: 5px 0px;
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,36 @@
1
+ @layer components {
2
+ .psui-el-mini-tag {
3
+ @apply psui-flex psui-rounded-full psui-items-center psui-justify-center psui-flex-row;
4
+ width: fit-content;
5
+
6
+
7
+ div {
8
+ @apply psui-w-full psui-font-bold;
9
+ padding: 1px 8px 0px 8px;
10
+ font-size: 10px;
11
+ letter-spacing: 0.5px;
12
+ }
13
+
14
+ &-layout{
15
+ &-info {
16
+ @apply psui-bg-blue-20 psui-text-blue-60
17
+ }
18
+
19
+ &-success {
20
+ @apply psui-bg-green-10 psui-text-green-70
21
+ }
22
+
23
+ &-warning {
24
+ @apply psui-bg-yellow-10 psui-text-yellow-70
25
+ }
26
+
27
+ &-error {
28
+ @apply psui-bg-red-10 psui-text-red-20
29
+ }
30
+
31
+ &-default {
32
+ @apply psui-bg-gray-20 psui-text-gray-50
33
+ }
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,24 @@
1
+ @layer components {
2
+ .psui-el-simple-progress-bar {
3
+ @apply psui-relative psui-h-2;
4
+ width: 100px;
5
+ border-radius: 15px;
6
+
7
+ &-percentage {
8
+ @apply psui-absolute psui-block psui-h-full psui-overflow-visible;
9
+ max-width: 100px;
10
+ border-radius: 15px;
11
+ background-size: 30px 30px;
12
+ animation: animate-stripes 3s linear infinite;
13
+ }
14
+
15
+ @keyframes animate-stripes {
16
+ 0% {
17
+ background-position: 0 0;
18
+ }
19
+ 100% {
20
+ background-position: 60px 0;
21
+ }
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,78 @@
1
+ @layer components {
2
+
3
+ .psui-el-radio {
4
+ @apply psui-relative psui-text-gray-50;
5
+
6
+ &.disabled {
7
+ .psui-el-checkmark {
8
+ @apply psui-cursor-default psui-text-gray-40 !important
9
+ }
10
+
11
+ .psui-el-checkmark::before {
12
+ @apply psui-text-gray-30 !important
13
+ }
14
+ }
15
+
16
+ &.size-small {
17
+ @apply psui-text-small;
18
+
19
+ input {
20
+ @apply psui-absolute psui-opacity-0 psui-h-0 psui-w-0;
21
+
22
+ &:checked ~.psui-el-checkmark::before {
23
+ @apply psui-text-blue-50;
24
+ font-size: 18px;
25
+ content: 'radio_button_checked';
26
+ font-family: 'Material Icons Round';
27
+ }
28
+ }
29
+
30
+ .psui-el-checkmark {
31
+ @apply psui-block psui-cursor-pointer;
32
+ height: 18px;
33
+
34
+ span {
35
+ margin-left: 8px;
36
+ }
37
+
38
+ &::before {
39
+ content: 'radio_button_unchecked';
40
+ @apply psui-text-gray-40 psui-align-text-bottom;
41
+ font-family: 'Material Icons Round';
42
+ font-size: 18px;
43
+ }
44
+ }
45
+ }
46
+
47
+ &.size-big {
48
+ @apply psui-text-small;
49
+
50
+ input {
51
+ @apply psui-absolute psui-opacity-0 psui-h-0 psui-w-0;
52
+
53
+ &:checked ~.psui-el-checkmark::before {
54
+ @apply psui-text-blue-50;
55
+ font-size: 24px;
56
+ content: 'radio_button_checked';
57
+ font-family: 'Material Icons Round';
58
+ }
59
+ }
60
+
61
+ .psui-el-checkmark {
62
+ @apply psui-block psui-cursor-pointer;
63
+ height: 24px;
64
+
65
+ span {
66
+ margin-left: 8px;
67
+ }
68
+
69
+ &::before {
70
+ content: 'radio_button_unchecked';
71
+ @apply psui-text-gray-40 psui-align-text-bottom;
72
+ font-family: 'Material Icons Round';
73
+ font-size: 24px;
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
@@ -0,0 +1,11 @@
1
+ @layer components {
2
+ .psui-el-slider {
3
+ .psui-el-slider-label {
4
+ @apply psui-mb-2;
5
+
6
+ span {
7
+ @apply psui-text-gray-50 psui-text-small
8
+ }
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,66 @@
1
+ @layer components {
2
+ .psui-el-switch {
3
+ @apply psui-relative psui-inline-block psui-rounded-3xl;
4
+ &.size-big{
5
+ width: 46px;
6
+ height: 24px;
7
+ }
8
+ &.size-small {
9
+ width: 30px;
10
+ height: 16px;
11
+
12
+ .psui-el-switch-button {
13
+ &.toggle-false{
14
+ &::before {
15
+ @apply psui-absolute psui-h-3 psui-w-3 psui-bg-white psui-rounded-full psui-transition-all psui-ease-in-out psui-duration-500 psui-shadow-elevation-20;
16
+ box-shadow: 0 0 98px 6px rgba(0, 0, 0, 0.2);
17
+ left: 2px;
18
+ top: 2px;
19
+ content: '';
20
+ }
21
+ }
22
+
23
+ &.toggle-true {
24
+ @apply psui-bg-green-20;
25
+
26
+ &::before {
27
+ @apply psui-absolute psui-h-3 psui-w-3 psui-bg-white psui-rounded-full psui-transition-all psui-ease-in-out psui-duration-500 psui-shadow-elevation-20;
28
+ box-shadow: 0 0 98px 6px rgba(0, 0, 0, 0.2);
29
+ left: 16px;
30
+ top: 2px;
31
+ content: '';
32
+ }
33
+ }
34
+ }
35
+ }
36
+ :focus {
37
+ @apply psui-outline-none;
38
+ }
39
+ input {
40
+ @apply psui-opacity-0 psui-w-0 psui-h-0;
41
+ }
42
+ .psui-el-switch-button {
43
+ @apply psui-absolute psui-inline-block psui-cursor-pointer psui-top-0 psui-left-0 psui-right-0 psui-bottom-0 psui-bg-gray-40 psui-rounded-full psui-transition-all psui-ease-in-out psui-duration-500;
44
+
45
+ &.toggle-false{
46
+ &::before {
47
+ @apply psui-absolute psui-h-5 psui-w-5 psui-bg-white psui-rounded-full psui-transition-all psui-ease-in-out psui-duration-500 psui-shadow-elevation-20;
48
+ left: 2px;
49
+ top: 2px;
50
+ content: '';
51
+ }
52
+ }
53
+
54
+ &.toggle-true {
55
+ @apply psui-bg-green-20;
56
+
57
+ &::before {
58
+ @apply psui-absolute psui-h-5 psui-w-5 psui-bg-white psui-rounded-full psui-transition-all psui-ease-in-out psui-duration-500 psui-shadow-elevation-20;
59
+ left: 24px;
60
+ top:2px;
61
+ content: '';
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }