@zap-wunschlachen/wl-shared-components 1.0.76 → 1.0.78

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 (227) hide show
  1. package/.github/workflows/playwright.yml +229 -229
  2. package/.github/workflows/static.yml +61 -61
  3. package/.github/workflows/update-snapshots.yml +37 -37
  4. package/.prettierrc.json +8 -8
  5. package/.storybook/main.ts +18 -18
  6. package/.storybook/preview.ts +37 -37
  7. package/.storybook/storyWrapper.vue +18 -18
  8. package/.storybook/withVuetifyTheme.decorator.ts +21 -21
  9. package/App.vue +139 -139
  10. package/README.md +56 -56
  11. package/docs/assets.md +62 -62
  12. package/heroicons.ts +75 -75
  13. package/index.html +19 -19
  14. package/package.json +71 -71
  15. package/playwright.config.ts +48 -48
  16. package/public/background.svg +60 -60
  17. package/public/style.css +187 -187
  18. package/public/technologies.svg +22 -22
  19. package/scripts/check-translations.ts +352 -352
  20. package/src/assets/css/base.css +242 -242
  21. package/src/assets/css/variables.css +176 -176
  22. package/src/components/Accordion/Accordion.css +65 -65
  23. package/src/components/Accordion/AccordionGroup.vue +88 -88
  24. package/src/components/Accordion/AccordionItem.vue +272 -272
  25. package/src/components/Accordion/presets/default.css +4 -4
  26. package/src/components/Accordion/presets/elevated.css +25 -25
  27. package/src/components/Accordion/presets/filled.css +26 -26
  28. package/src/components/Accordion/presets/index.css +5 -5
  29. package/src/components/Accordion/presets/plain.css +34 -34
  30. package/src/components/Appointment/Card/Actions.css +54 -54
  31. package/src/components/Appointment/Card/Actions.vue +99 -99
  32. package/src/components/Appointment/Card/AnamneseNotification.css +20 -20
  33. package/src/components/Appointment/Card/AnamneseNotification.vue +23 -23
  34. package/src/components/Appointment/Card/Card.css +99 -99
  35. package/src/components/Appointment/Card/Card.vue +97 -97
  36. package/src/components/Appointment/Card/Details.css +62 -62
  37. package/src/components/Appointment/Card/Details.vue +44 -44
  38. package/src/components/Audio/Audio.vue +187 -187
  39. package/src/components/Audio/Waveform.vue +118 -118
  40. package/src/components/Banner/Banner.css +29 -29
  41. package/src/components/Banner/Banner.vue +89 -89
  42. package/src/components/Button/Button.vue +257 -257
  43. package/src/components/CheckBox/CheckBox.css +234 -234
  44. package/src/components/CheckBox/Checkbox.vue +184 -184
  45. package/src/components/DateInput/DateInput.css +2 -2
  46. package/src/components/DateInput/DateInput.vue +376 -370
  47. package/src/components/Dialog/Dialog.css +6 -6
  48. package/src/components/Dialog/Dialog.vue +46 -46
  49. package/src/components/EditField/EditField.css +19 -19
  50. package/src/components/EditField/EditField.vue +211 -211
  51. package/src/components/ErrorPage/ErrorPage.css +172 -172
  52. package/src/components/IconBullet/IconBullet.vue +104 -104
  53. package/src/components/IconBullet/IconBulletList.vue +55 -55
  54. package/src/components/Icons/AdvanceAppointments.vue +161 -161
  55. package/src/components/Icons/Audio/CloudFailed.vue +27 -27
  56. package/src/components/Icons/Audio/CloudSaved.vue +28 -28
  57. package/src/components/Icons/Audio/Delete.vue +22 -22
  58. package/src/components/Icons/Audio/Pause.vue +25 -25
  59. package/src/components/Icons/Audio/Play.vue +22 -22
  60. package/src/components/Icons/Calendar.vue +28 -28
  61. package/src/components/Icons/CalendarNotification.vue +137 -137
  62. package/src/components/Icons/Chair.vue +43 -43
  63. package/src/components/Icons/ChairNotification.vue +46 -46
  64. package/src/components/Icons/Circle.vue +66 -66
  65. package/src/components/Icons/FavIcon.vue +69 -69
  66. package/src/components/Icons/FilledCircle.vue +11 -11
  67. package/src/components/Icons/Group3.vue +57 -57
  68. package/src/components/Icons/Play.vue +16 -16
  69. package/src/components/Icons/RingNotification.vue +65 -65
  70. package/src/components/Icons/SolidArrowRight.vue +14 -14
  71. package/src/components/Icons/checkbox.vue +19 -19
  72. package/src/components/Icons/outlineChecked.vue +38 -38
  73. package/src/components/Input/Input.css +234 -234
  74. package/src/components/Input/Input.vue +281 -281
  75. package/src/components/Laboratory/AppointmentCard/AppointmentCard.css +7 -7
  76. package/src/components/Laboratory/AppointmentCard/AppointmentCard.vue +116 -116
  77. package/src/components/Laboratory/ChatBoxImage/ChatBoxImage.vue +81 -81
  78. package/src/components/Laboratory/ChatMessage/ChatMessage.vue +113 -113
  79. package/src/components/Laboratory/ChatMessage/ChatMessageBadge.css +4 -4
  80. package/src/components/Laboratory/ChatMessage/ChatMessageBadge.vue +99 -99
  81. package/src/components/Laboratory/ChatNotification/ChatNotification.vue +130 -130
  82. package/src/components/Laboratory/DocumentCard/DocumentCard.css +3 -3
  83. package/src/components/Laboratory/DocumentCard/DocumentCard.vue +50 -50
  84. package/src/components/Laboratory/DocumentCard/DocumentCardItem.vue +53 -53
  85. package/src/components/Laboratory/InfoCard/InfoCard.vue +162 -162
  86. package/src/components/Laboratory/MainColumnsBar/MainColumnsBar.vue +102 -102
  87. package/src/components/Laboratory/ProgressCircle/ProgressCircle.vue +152 -152
  88. package/src/components/Laboratory/ProgressLinear/ProgressLinear.css +33 -33
  89. package/src/components/Laboratory/ProgressLinear/ProgressLinear.vue +75 -75
  90. package/src/components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue +92 -92
  91. package/src/components/Laboratory/StatusNotification/StatusNotification.vue +49 -49
  92. package/src/components/Laboratory/TagLabel/TagLabel.vue +126 -126
  93. package/src/components/Laboratory/TagLabelGroup/TagLabelGroup.vue +97 -97
  94. package/src/components/Laboratory/TicketCard/TicketCard.css +3 -3
  95. package/src/components/Laboratory/TicketCard/TicketCard.vue +143 -143
  96. package/src/components/Laboratory/TimeLine/TimeLineEvent.css +18 -18
  97. package/src/components/Laboratory/TimeLine/TimeLineEvent.vue +119 -119
  98. package/src/components/Laboratory/TimeLine/Timeline.css +4 -4
  99. package/src/components/Laboratory/TimeLine/Timeline.vue +30 -30
  100. package/src/components/Loader/Loader.css +78 -78
  101. package/src/components/MaintenanceBanner/MaintenanceBanner.css +353 -353
  102. package/src/components/MaintenanceBanner/MaintenanceBanner.vue +140 -140
  103. package/src/components/MaintenanceBanner/MaintenanceIllustration.vue +54 -54
  104. package/src/components/Modal/Modal.css +5 -5
  105. package/src/components/Modal/Modal.vue +29 -29
  106. package/src/components/NotificationBubble/NotificationBubble.css +4 -4
  107. package/src/components/NotificationBubble/NotificationBubble.vue +90 -90
  108. package/src/components/OtpInput/OtpInput.css +43 -43
  109. package/src/components/OtpInput/OtpInput.vue +181 -181
  110. package/src/components/PhoneInput/PhoneInput.css +151 -126
  111. package/src/components/PhoneInput/PhoneInput.vue +230 -139
  112. package/src/components/RadioGroup/RadioGroup.css +65 -0
  113. package/src/components/RadioGroup/RadioGroup.vue +134 -0
  114. package/src/components/Select/Select.css +172 -172
  115. package/src/components/Select/Select.vue +377 -377
  116. package/src/components/SelectAutocomplete/SelectAutocomplete.css +172 -172
  117. package/src/components/SelectAutocomplete/SelectAutocomplete.vue +414 -414
  118. package/src/components/TextArea/TextArea.css +269 -269
  119. package/src/components/TextArea/TextArea.vue +207 -207
  120. package/src/components/TickBox/TickBox.css +116 -116
  121. package/src/components/TickBox/TickBox.vue +172 -172
  122. package/src/components/Tile/Tile.css +106 -106
  123. package/src/components/Tile/Tile.vue +173 -173
  124. package/src/components/accessibility.css +218 -218
  125. package/src/components/index.ts +110 -109
  126. package/src/constants/iconEnums.ts +3 -3
  127. package/src/i18n/i18n.ts +15 -15
  128. package/src/i18n/locales/de.json +30 -30
  129. package/src/i18n/locales/en.json +30 -30
  130. package/src/index.ts +43 -43
  131. package/src/main.ts +11 -11
  132. package/src/pages/AccordionGroupPage.vue +873 -873
  133. package/src/pages/AllPage.vue +2483 -2365
  134. package/src/pages/SelectPage.vue +1302 -1302
  135. package/src/pages/TilePage.vue +902 -902
  136. package/src/plugins/vuetify.ts +54 -54
  137. package/src/shims-vue.d.ts +30 -30
  138. package/src/utils/index.ts +733 -733
  139. package/src/vite-env.d.ts +1 -1
  140. package/tests/unit/accessibility/component-a11y.spec.ts +657 -657
  141. package/tests/unit/components/Accordion/AccordionGroup.spec.ts +228 -228
  142. package/tests/unit/components/Accordion/AccordionItem.spec.ts +257 -257
  143. package/tests/unit/components/Appointment/AnamneseNotification.spec.ts +176 -176
  144. package/tests/unit/components/Appointment/Card/Actions.spec.ts +436 -436
  145. package/tests/unit/components/Appointment/Card/Card.spec.ts +531 -531
  146. package/tests/unit/components/Appointment/Card/Details.spec.ts +395 -395
  147. package/tests/unit/components/Audio/Audio.spec.ts +403 -403
  148. package/tests/unit/components/Audio/Waveform.spec.ts +483 -483
  149. package/tests/unit/components/Background/Background.spec.ts +177 -177
  150. package/tests/unit/components/Core/AnamneseAnswerDialog.spec.ts +344 -0
  151. package/tests/unit/components/Core/Banner.spec.ts +187 -0
  152. package/tests/unit/components/Core/Button.spec.ts +346 -346
  153. package/tests/unit/components/Core/Checkbox.spec.ts +544 -544
  154. package/tests/unit/components/Core/DateInput.spec.ts +702 -702
  155. package/tests/unit/components/Core/Dialog.spec.ts +448 -448
  156. package/tests/unit/components/Core/EditField.spec.ts +541 -541
  157. package/tests/unit/components/Core/Input.spec.ts +512 -512
  158. package/tests/unit/components/Core/List.spec.ts +163 -0
  159. package/tests/unit/components/Core/ListItem.spec.ts +205 -0
  160. package/tests/unit/components/Core/Modal.spec.ts +518 -518
  161. package/tests/unit/components/Core/NotificationBubble.spec.ts +606 -606
  162. package/tests/unit/components/Core/OtpInput.spec.ts +708 -708
  163. package/tests/unit/components/Core/PhoneInput.spec.ts +757 -619
  164. package/tests/unit/components/Core/RadioGroup.spec.ts +318 -0
  165. package/tests/unit/components/Core/Select.spec.ts +712 -712
  166. package/tests/unit/components/Core/SelectAutocomplete.spec.ts +361 -0
  167. package/tests/unit/components/Core/TextArea.spec.ts +565 -565
  168. package/tests/unit/components/Core/TickBox.spec.ts +836 -836
  169. package/tests/unit/components/Core/Tile.spec.ts +286 -0
  170. package/tests/unit/components/DateInput/DateInput.spec.ts +128 -0
  171. package/tests/unit/components/ErrorPage/ErrorPage.spec.ts +313 -313
  172. package/tests/unit/components/ErrorPage/ErrorPageLogo.spec.ts +153 -153
  173. package/tests/unit/components/IconBullet/IconBullet.spec.ts +356 -356
  174. package/tests/unit/components/IconBullet/IconBulletList.spec.ts +371 -371
  175. package/tests/unit/components/Icons/AdvanceAppointments.spec.ts +186 -186
  176. package/tests/unit/components/Icons/Audio/CloudFailed.spec.ts +108 -108
  177. package/tests/unit/components/Icons/Audio/CloudSaved.spec.ts +149 -149
  178. package/tests/unit/components/Icons/Audio/Delete.spec.ts +158 -158
  179. package/tests/unit/components/Icons/Audio/Pause.spec.ts +208 -208
  180. package/tests/unit/components/Icons/Audio/Play.spec.ts +217 -217
  181. package/tests/unit/components/Icons/CalendarNotification.spec.ts +193 -193
  182. package/tests/unit/components/Icons/Chair.spec.ts +241 -241
  183. package/tests/unit/components/Icons/ChairNotification.spec.ts +318 -318
  184. package/tests/unit/components/Icons/Circle.spec.ts +255 -255
  185. package/tests/unit/components/Icons/FavIcon.spec.ts +259 -259
  186. package/tests/unit/components/Icons/FilledCircle.spec.ts +274 -274
  187. package/tests/unit/components/Icons/Group3.spec.ts +362 -362
  188. package/tests/unit/components/Icons/Logo.spec.ts +229 -229
  189. package/tests/unit/components/Icons/MiniLogo.spec.ts +38 -38
  190. package/tests/unit/components/Icons/RingNotification.spec.ts +400 -400
  191. package/tests/unit/components/Icons/SolidArrowRight.spec.ts +49 -49
  192. package/tests/unit/components/Icons/calendar.spec.ts +293 -293
  193. package/tests/unit/components/Icons/checkbox.spec.ts +315 -315
  194. package/tests/unit/components/Icons/outlineChecked.spec.ts +441 -441
  195. package/tests/unit/components/Icons/play.spec.ts +315 -315
  196. package/tests/unit/components/Laboratory/AppointmentCard.spec.ts +167 -167
  197. package/tests/unit/components/Laboratory/ChatBoxImage.spec.ts +179 -179
  198. package/tests/unit/components/Laboratory/ChatMessage.spec.ts +263 -263
  199. package/tests/unit/components/Laboratory/ChatMessageBadge.spec.ts +282 -282
  200. package/tests/unit/components/Laboratory/ChatNotification.spec.ts +256 -256
  201. package/tests/unit/components/Laboratory/DocumentCard.spec.ts +228 -228
  202. package/tests/unit/components/Laboratory/DocumentCardItem.spec.ts +236 -236
  203. package/tests/unit/components/Laboratory/InfoCard.spec.ts +308 -308
  204. package/tests/unit/components/Laboratory/MainColumnsBar.spec.ts +251 -251
  205. package/tests/unit/components/Laboratory/ProgressCircle.spec.ts +290 -290
  206. package/tests/unit/components/Laboratory/ProgressLinear.spec.ts +275 -275
  207. package/tests/unit/components/Laboratory/SelectionColumnBar.spec.ts +288 -288
  208. package/tests/unit/components/Laboratory/StatusNotification.spec.ts +296 -296
  209. package/tests/unit/components/Laboratory/TagLabel.spec.ts +353 -353
  210. package/tests/unit/components/Laboratory/TagLabelGroup.spec.ts +377 -377
  211. package/tests/unit/components/Laboratory/TicketCard.spec.ts +351 -351
  212. package/tests/unit/components/Laboratory/TimeLineEvent.spec.ts +381 -381
  213. package/tests/unit/components/Laboratory/Timeline.spec.ts +419 -419
  214. package/tests/unit/components/Loader/Loader.spec.ts +197 -197
  215. package/tests/unit/components/MaintenanceBanner/MaintenanceBanner.spec.ts +302 -302
  216. package/tests/unit/constants/iconEnums.spec.ts +39 -39
  217. package/tests/unit/i18n/i18n.spec.ts +88 -88
  218. package/tests/unit/plugins/vuetify.spec.ts +182 -182
  219. package/tests/unit/setup.ts +237 -237
  220. package/tests/unit/src/components/index.spec.ts.skip +192 -192
  221. package/tests/unit/src/index.spec.ts.skip +182 -182
  222. package/tests/unit/src/main.spec.ts +111 -111
  223. package/tests/unit/utils/accessibility.spec.ts +318 -318
  224. package/tests/unit/utils/anamnese.spec.ts +531 -0
  225. package/tsconfig.json +26 -26
  226. package/vite.config.ts +29 -29
  227. package/vitest.config.ts +91 -91
@@ -1,234 +1,234 @@
1
- /* Normal State */
2
-
3
- /* Label */
4
- .label {
5
- display: flex;
6
- align-items: center;
7
- gap: 12px;
8
- font-size: 0.875rem;
9
- line-height: 15.6px;
10
- letter-spacing: -0.13px;
11
- color: var(--checkbox-default-text);
12
- cursor: pointer;
13
- }
14
-
15
- /* Checkbox Container */
16
- .checkbox-container {
17
- display: flex;
18
- align-items: center;
19
- justify-content: center;
20
- }
21
-
22
- /* Checkbox (Normal) */
23
- .input-checkbox {
24
- appearance: none;
25
- background-color: var(--checkbox-default-bg);
26
- margin: 0;
27
- padding: 0;
28
- /* Width and height will be set by density classes */
29
- border: 1px solid;
30
- border-radius: 4px;
31
- display: grid;
32
- place-content: center;
33
- transform: translateY(-0.075em);
34
- border-color: var(--checkbox-default-border);
35
- cursor: pointer;
36
- }
37
-
38
- .input-checkbox:hover {
39
- border-width: 2px;
40
- background-color: var(--checkbox-hovered-bg);
41
- border-color: var(--checkbox-hovered-border);
42
- }
43
-
44
- .input-checkbox::before {
45
- content: '';
46
- /* Width and height will be set by density classes */
47
- transform: scale(0);
48
- transition: 120ms transform ease-in-out;
49
- box-shadow: inset 1em 1em var(--checkbox-default-checkmark);
50
- background-color: var(--checkbox-default-checkmark);
51
- border-radius: 2px;
52
- }
53
-
54
- .input-checkbox:checked::before {
55
- transform: scale(1);
56
- background-color: var(--checkbox-default-checkmark);
57
- }
58
-
59
- .input-checkbox:checked {
60
- border-width: 2px;
61
- border-color: var(--checkbox-checked-border);
62
- background-color: var(--checkbox-checked-bg);
63
- }
64
-
65
- .input-checkbox:hover::before {
66
- box-shadow: inset 1em 1em var(--checkbox-hovered-checkmark);
67
- background-color: var(--checkbox-hovered-checkmark);
68
- }
69
-
70
- /* Density Levels */
71
-
72
- /* Comfortable */
73
- .density-comfortable.input-checkbox {
74
- width: 32px;
75
- height: 32px;
76
- }
77
-
78
- .density-comfortable.input-checkbox::before {
79
- width: 20px;
80
- height: 20px;
81
- }
82
-
83
- /* Default */
84
- .density-default.input-checkbox {
85
- width: 28px;
86
- height: 28px;
87
- }
88
-
89
- .density-default.input-checkbox::before {
90
- width: 16px;
91
- height: 16px;
92
- }
93
-
94
- /* Compact */
95
- .density-compact.input-checkbox {
96
- width: 24px;
97
- height: 24px;
98
- }
99
-
100
- .density-compact.input-checkbox::before {
101
- width: 12px;
102
- height: 12px;
103
- }
104
-
105
- /* Success State */
106
-
107
- /* Success Label */
108
- .label-success {
109
- color: var(--checkbox-success-text);
110
- }
111
-
112
- /* Success Checkbox */
113
- .input-success {
114
- border-color: var(--checkbox-success-border);
115
- background-color: var(--checkbox-success-bg);
116
- }
117
-
118
- .input-success:hover {
119
- border-color: var(--checkbox-success-border);
120
- background-color: var(--checkbox-success-bg);
121
- }
122
-
123
- .input-success.input-checkbox:checked {
124
- border-color: var(--checkbox-success-border);
125
- background-color: var(--checkbox-success-bg);
126
- }
127
-
128
- .input-success.input-checkbox::before {
129
- box-shadow: inset 1em 1em var(--checkbox-success-checkmark);
130
- background-color: var(--checkbox-success-checkmark);
131
- }
132
-
133
- .input-success.input-checkbox:hover::before {
134
- box-shadow: inset 1em 1em var(--checkbox-success-checkmark);
135
- background-color: var(--checkbox-success-checkmark);
136
- }
137
-
138
- /* Error State */
139
-
140
- /* Error Label */
141
- .label-error {
142
- color: var(--checkbox-error-text);
143
- }
144
-
145
- /* Error Checkbox */
146
- .input-error {
147
- border-color: var(--checkbox-error-border);
148
- background-color: var(--checkbox-error-bg);
149
- }
150
-
151
- .input-error:hover {
152
- border-color: var(--checkbox-error-border);
153
- background-color: var(--checkbox-error-bg);
154
- }
155
-
156
- .input-error.input-checkbox:checked {
157
- border-color: var(--checkbox-error-border);
158
- background-color: var(--checkbox-error-bg);
159
- }
160
-
161
- .input-error.input-checkbox::before {
162
- box-shadow: inset 1em 1em var(--checkbox-error-checkmark);
163
- background-color: var(--checkbox-error-checkmark);
164
- }
165
-
166
- .input-error.input-checkbox:hover::before {
167
- box-shadow: inset 1em 1em var(--checkbox-error-checkmark);
168
- background-color: var(--checkbox-error-checkmark);
169
- }
170
-
171
- /* Disabled State */
172
-
173
- /* Disabled Label */
174
- .label-disabled {
175
- color: var(--checkbox-disabled-text);
176
- cursor: not-allowed;
177
- }
178
-
179
- /* Disabled Checkbox */
180
- .input-disabled {
181
- border-color: var(--checkbox-disabled-border);
182
- background-color: var(--checkbox-disabled-bg);
183
- cursor: not-allowed;
184
- }
185
-
186
- .input-checkbox:disabled::before {
187
- box-shadow: inset 1em 1em var(--checkbox-disabled-checkmark);
188
- background-color: var(--checkbox-disabled-checkmark);
189
- }
190
-
191
- .input-disabled.input-checkbox:hover {
192
- border-width: 1px;
193
- background-color: var(--checkbox-disabled-bg);
194
- border-color: var(--checkbox-disabled-border);
195
- }
196
-
197
- .input-disabled.input-checkbox:hover::before {
198
- box-shadow: inset 1em 1em var(--checkbox-disabled-checkmark);
199
- background-color: var(--checkbox-disabled-checkmark);
200
- }
201
-
202
- /* Label Text */
203
- .label-text {
204
- font-weight: 300;
205
- }
206
-
207
- /* =====================================================
208
- ACCESSIBILITY: Focus Indicators
209
- WCAG 2.4.7: Focus Visible (Level AA)
210
- ===================================================== */
211
-
212
- .input-checkbox:focus-visible {
213
- outline: 2px solid var(--checkbox-checked-border);
214
- outline-offset: 2px;
215
- }
216
-
217
- .input-success:focus-visible {
218
- outline-color: var(--checkbox-success-border);
219
- }
220
-
221
- .input-error:focus-visible {
222
- outline-color: var(--checkbox-error-border);
223
- }
224
-
225
- /* High contrast mode support */
226
- @media (forced-colors: active) {
227
- .input-checkbox {
228
- border: 2px solid currentColor;
229
- }
230
-
231
- .input-checkbox:checked::before {
232
- background-color: currentColor;
233
- }
234
- }
1
+ /* Normal State */
2
+
3
+ /* Label */
4
+ .label {
5
+ display: flex;
6
+ align-items: center;
7
+ gap: 12px;
8
+ font-size: 0.875rem;
9
+ line-height: 15.6px;
10
+ letter-spacing: -0.13px;
11
+ color: var(--checkbox-default-text);
12
+ cursor: pointer;
13
+ }
14
+
15
+ /* Checkbox Container */
16
+ .checkbox-container {
17
+ display: flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ }
21
+
22
+ /* Checkbox (Normal) */
23
+ .input-checkbox {
24
+ appearance: none;
25
+ background-color: var(--checkbox-default-bg);
26
+ margin: 0;
27
+ padding: 0;
28
+ /* Width and height will be set by density classes */
29
+ border: 1px solid;
30
+ border-radius: 4px;
31
+ display: grid;
32
+ place-content: center;
33
+ transform: translateY(-0.075em);
34
+ border-color: var(--checkbox-default-border);
35
+ cursor: pointer;
36
+ }
37
+
38
+ .input-checkbox:hover {
39
+ border-width: 2px;
40
+ background-color: var(--checkbox-hovered-bg);
41
+ border-color: var(--checkbox-hovered-border);
42
+ }
43
+
44
+ .input-checkbox::before {
45
+ content: '';
46
+ /* Width and height will be set by density classes */
47
+ transform: scale(0);
48
+ transition: 120ms transform ease-in-out;
49
+ box-shadow: inset 1em 1em var(--checkbox-default-checkmark);
50
+ background-color: var(--checkbox-default-checkmark);
51
+ border-radius: 2px;
52
+ }
53
+
54
+ .input-checkbox:checked::before {
55
+ transform: scale(1);
56
+ background-color: var(--checkbox-default-checkmark);
57
+ }
58
+
59
+ .input-checkbox:checked {
60
+ border-width: 2px;
61
+ border-color: var(--checkbox-checked-border);
62
+ background-color: var(--checkbox-checked-bg);
63
+ }
64
+
65
+ .input-checkbox:hover::before {
66
+ box-shadow: inset 1em 1em var(--checkbox-hovered-checkmark);
67
+ background-color: var(--checkbox-hovered-checkmark);
68
+ }
69
+
70
+ /* Density Levels */
71
+
72
+ /* Comfortable */
73
+ .density-comfortable.input-checkbox {
74
+ width: 32px;
75
+ height: 32px;
76
+ }
77
+
78
+ .density-comfortable.input-checkbox::before {
79
+ width: 20px;
80
+ height: 20px;
81
+ }
82
+
83
+ /* Default */
84
+ .density-default.input-checkbox {
85
+ width: 28px;
86
+ height: 28px;
87
+ }
88
+
89
+ .density-default.input-checkbox::before {
90
+ width: 16px;
91
+ height: 16px;
92
+ }
93
+
94
+ /* Compact */
95
+ .density-compact.input-checkbox {
96
+ width: 24px;
97
+ height: 24px;
98
+ }
99
+
100
+ .density-compact.input-checkbox::before {
101
+ width: 12px;
102
+ height: 12px;
103
+ }
104
+
105
+ /* Success State */
106
+
107
+ /* Success Label */
108
+ .label-success {
109
+ color: var(--checkbox-success-text);
110
+ }
111
+
112
+ /* Success Checkbox */
113
+ .input-success {
114
+ border-color: var(--checkbox-success-border);
115
+ background-color: var(--checkbox-success-bg);
116
+ }
117
+
118
+ .input-success:hover {
119
+ border-color: var(--checkbox-success-border);
120
+ background-color: var(--checkbox-success-bg);
121
+ }
122
+
123
+ .input-success.input-checkbox:checked {
124
+ border-color: var(--checkbox-success-border);
125
+ background-color: var(--checkbox-success-bg);
126
+ }
127
+
128
+ .input-success.input-checkbox::before {
129
+ box-shadow: inset 1em 1em var(--checkbox-success-checkmark);
130
+ background-color: var(--checkbox-success-checkmark);
131
+ }
132
+
133
+ .input-success.input-checkbox:hover::before {
134
+ box-shadow: inset 1em 1em var(--checkbox-success-checkmark);
135
+ background-color: var(--checkbox-success-checkmark);
136
+ }
137
+
138
+ /* Error State */
139
+
140
+ /* Error Label */
141
+ .label-error {
142
+ color: var(--checkbox-error-text);
143
+ }
144
+
145
+ /* Error Checkbox */
146
+ .input-error {
147
+ border-color: var(--checkbox-error-border);
148
+ background-color: var(--checkbox-error-bg);
149
+ }
150
+
151
+ .input-error:hover {
152
+ border-color: var(--checkbox-error-border);
153
+ background-color: var(--checkbox-error-bg);
154
+ }
155
+
156
+ .input-error.input-checkbox:checked {
157
+ border-color: var(--checkbox-error-border);
158
+ background-color: var(--checkbox-error-bg);
159
+ }
160
+
161
+ .input-error.input-checkbox::before {
162
+ box-shadow: inset 1em 1em var(--checkbox-error-checkmark);
163
+ background-color: var(--checkbox-error-checkmark);
164
+ }
165
+
166
+ .input-error.input-checkbox:hover::before {
167
+ box-shadow: inset 1em 1em var(--checkbox-error-checkmark);
168
+ background-color: var(--checkbox-error-checkmark);
169
+ }
170
+
171
+ /* Disabled State */
172
+
173
+ /* Disabled Label */
174
+ .label-disabled {
175
+ color: var(--checkbox-disabled-text);
176
+ cursor: not-allowed;
177
+ }
178
+
179
+ /* Disabled Checkbox */
180
+ .input-disabled {
181
+ border-color: var(--checkbox-disabled-border);
182
+ background-color: var(--checkbox-disabled-bg);
183
+ cursor: not-allowed;
184
+ }
185
+
186
+ .input-checkbox:disabled::before {
187
+ box-shadow: inset 1em 1em var(--checkbox-disabled-checkmark);
188
+ background-color: var(--checkbox-disabled-checkmark);
189
+ }
190
+
191
+ .input-disabled.input-checkbox:hover {
192
+ border-width: 1px;
193
+ background-color: var(--checkbox-disabled-bg);
194
+ border-color: var(--checkbox-disabled-border);
195
+ }
196
+
197
+ .input-disabled.input-checkbox:hover::before {
198
+ box-shadow: inset 1em 1em var(--checkbox-disabled-checkmark);
199
+ background-color: var(--checkbox-disabled-checkmark);
200
+ }
201
+
202
+ /* Label Text */
203
+ .label-text {
204
+ font-weight: 300;
205
+ }
206
+
207
+ /* =====================================================
208
+ ACCESSIBILITY: Focus Indicators
209
+ WCAG 2.4.7: Focus Visible (Level AA)
210
+ ===================================================== */
211
+
212
+ .input-checkbox:focus-visible {
213
+ outline: 2px solid var(--checkbox-checked-border);
214
+ outline-offset: 2px;
215
+ }
216
+
217
+ .input-success:focus-visible {
218
+ outline-color: var(--checkbox-success-border);
219
+ }
220
+
221
+ .input-error:focus-visible {
222
+ outline-color: var(--checkbox-error-border);
223
+ }
224
+
225
+ /* High contrast mode support */
226
+ @media (forced-colors: active) {
227
+ .input-checkbox {
228
+ border: 2px solid currentColor;
229
+ }
230
+
231
+ .input-checkbox:checked::before {
232
+ background-color: currentColor;
233
+ }
234
+ }