@fpkit/acss 0.5.12 → 0.6.0

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 (398) hide show
  1. package/README.md +89 -0
  2. package/libs/chunk-2NRIP6RB.cjs +17 -0
  3. package/libs/chunk-2NRIP6RB.cjs.map +1 -0
  4. package/libs/chunk-33PNJ4LO.cjs +15 -0
  5. package/libs/chunk-33PNJ4LO.cjs.map +1 -0
  6. package/libs/chunk-4BZKFPEC.cjs +17 -0
  7. package/libs/chunk-4BZKFPEC.cjs.map +1 -0
  8. package/libs/{chunk-O6QZBB6G.js → chunk-5QD3DWFI.js} +5 -5
  9. package/libs/chunk-5QD3DWFI.js.map +1 -0
  10. package/libs/chunk-6SAHIYCZ.js +7 -0
  11. package/libs/chunk-6SAHIYCZ.js.map +1 -0
  12. package/libs/{chunk-KKLTUJFB.cjs → chunk-6WTC4JXH.cjs} +5 -5
  13. package/libs/chunk-6WTC4JXH.cjs.map +1 -0
  14. package/libs/chunk-75QHTLFO.js +7 -0
  15. package/libs/chunk-75QHTLFO.js.map +1 -0
  16. package/libs/{chunk-YWOYVRFT.js → chunk-7XPFW7CB.js} +3 -3
  17. package/libs/chunk-BFK62VX5.js +5 -0
  18. package/libs/chunk-BFK62VX5.js.map +1 -0
  19. package/libs/{chunk-ICCKQ2GC.cjs → chunk-DKTHCQ5P.cjs} +4 -4
  20. package/libs/{chunk-6TE5QEVE.cjs → chunk-E2AJURUW.cjs} +3 -3
  21. package/libs/chunk-E2AJURUW.cjs.map +1 -0
  22. package/libs/chunk-ENTCUJ3A.cjs +13 -0
  23. package/libs/chunk-ENTCUJ3A.cjs.map +1 -0
  24. package/libs/chunk-F5EYMVQM.js +10 -0
  25. package/libs/chunk-F5EYMVQM.js.map +1 -0
  26. package/libs/chunk-FVROL3V5.js +9 -0
  27. package/libs/chunk-FVROL3V5.js.map +1 -0
  28. package/libs/chunk-GT77BX4L.cjs +17 -0
  29. package/libs/chunk-GT77BX4L.cjs.map +1 -0
  30. package/libs/chunk-GUJSMQ3V.cjs +16 -0
  31. package/libs/chunk-GUJSMQ3V.cjs.map +1 -0
  32. package/libs/chunk-HHLNOC5T.js +7 -0
  33. package/libs/chunk-HHLNOC5T.js.map +1 -0
  34. package/libs/chunk-HRRHPLER.js +8 -0
  35. package/libs/chunk-HRRHPLER.js.map +1 -0
  36. package/libs/chunk-IEB64SWY.js +8 -0
  37. package/libs/chunk-IEB64SWY.js.map +1 -0
  38. package/libs/{chunk-LIQJ7ZZR.js → chunk-IQ76HGVP.js} +2 -2
  39. package/libs/chunk-IRLFZ3OL.js +9 -0
  40. package/libs/chunk-IRLFZ3OL.js.map +1 -0
  41. package/libs/chunk-KK47SYZI.js +8 -0
  42. package/libs/chunk-KK47SYZI.js.map +1 -0
  43. package/libs/chunk-O3JIHC5M.cjs +15 -0
  44. package/libs/chunk-O3JIHC5M.cjs.map +1 -0
  45. package/libs/chunk-O5XAJ7BY.cjs +18 -0
  46. package/libs/chunk-O5XAJ7BY.cjs.map +1 -0
  47. package/libs/chunk-OVWLQYMK.js +10 -0
  48. package/libs/chunk-OVWLQYMK.js.map +1 -0
  49. package/libs/chunk-PNWIRCG3.cjs +7 -0
  50. package/libs/chunk-PNWIRCG3.cjs.map +1 -0
  51. package/libs/chunk-QVW6W76L.cjs +18 -0
  52. package/libs/chunk-QVW6W76L.cjs.map +1 -0
  53. package/libs/chunk-T4T6GWYQ.cjs +17 -0
  54. package/libs/chunk-T4T6GWYQ.cjs.map +1 -0
  55. package/libs/chunk-TON2YGMD.cjs +9 -0
  56. package/libs/chunk-TON2YGMD.cjs.map +1 -0
  57. package/libs/chunk-UEPAWMDF.js +8 -0
  58. package/libs/chunk-UEPAWMDF.js.map +1 -0
  59. package/libs/{chunk-LT5KZ2QW.cjs → chunk-US2I5GI7.cjs} +3 -3
  60. package/libs/{chunk-E3XP6BEX.cjs → chunk-W2UIN7EV.cjs} +3 -3
  61. package/libs/chunk-W5TKWBFC.cjs +18 -0
  62. package/libs/chunk-W5TKWBFC.cjs.map +1 -0
  63. package/libs/chunk-WXBFBWYF.cjs +16 -0
  64. package/libs/chunk-WXBFBWYF.cjs.map +1 -0
  65. package/libs/chunk-X3JCTEPD.js +11 -0
  66. package/libs/chunk-X3JCTEPD.js.map +1 -0
  67. package/libs/chunk-X5LGFCWG.js +9 -0
  68. package/libs/chunk-X5LGFCWG.js.map +1 -0
  69. package/libs/{chunk-5M57K4SW.js → chunk-Y2PFDELK.js} +2 -2
  70. package/libs/chunk-ZFJ4U45S.js +10 -0
  71. package/libs/chunk-ZFJ4U45S.js.map +1 -0
  72. package/libs/{component-props-a8a2f97e.d.ts → component-props-67d978a2.d.ts} +4 -4
  73. package/libs/components/alert/alert.css +1 -1
  74. package/libs/components/alert/alert.css.map +1 -1
  75. package/libs/components/alert/alert.min.css +2 -2
  76. package/libs/components/badge/badge.css +1 -1
  77. package/libs/components/badge/badge.css.map +1 -1
  78. package/libs/components/badge/badge.min.css +2 -2
  79. package/libs/components/breadcrumbs/breadcrumb.cjs +9 -5
  80. package/libs/components/breadcrumbs/breadcrumb.d.cts +275 -36
  81. package/libs/components/breadcrumbs/breadcrumb.d.ts +275 -36
  82. package/libs/components/breadcrumbs/breadcrumb.js +3 -3
  83. package/libs/components/button.cjs +6 -4
  84. package/libs/components/button.d.cts +97 -4
  85. package/libs/components/button.d.ts +97 -4
  86. package/libs/components/button.js +4 -2
  87. package/libs/components/buttons/button.css +1 -1
  88. package/libs/components/buttons/button.css.map +1 -1
  89. package/libs/components/buttons/button.min.css +2 -2
  90. package/libs/components/card.cjs +7 -7
  91. package/libs/components/card.d.cts +278 -34
  92. package/libs/components/card.d.ts +278 -34
  93. package/libs/components/card.js +2 -2
  94. package/libs/components/cards/card.css +1 -1
  95. package/libs/components/cards/card.css.map +1 -1
  96. package/libs/components/cards/card.min.css +2 -2
  97. package/libs/components/details/details.css +1 -1
  98. package/libs/components/details/details.css.map +1 -1
  99. package/libs/components/details/details.min.css +2 -2
  100. package/libs/components/dialog/dialog.cjs +9 -7
  101. package/libs/components/dialog/dialog.css +1 -1
  102. package/libs/components/dialog/dialog.css.map +1 -1
  103. package/libs/components/dialog/dialog.d.cts +88 -34
  104. package/libs/components/dialog/dialog.d.ts +88 -34
  105. package/libs/components/dialog/dialog.js +7 -5
  106. package/libs/components/dialog/dialog.min.css +2 -2
  107. package/libs/components/form/fields.cjs +4 -4
  108. package/libs/components/form/fields.d.cts +16 -7
  109. package/libs/components/form/fields.d.ts +16 -7
  110. package/libs/components/form/fields.js +2 -2
  111. package/libs/components/form/inputs.cjs +6 -4
  112. package/libs/components/form/inputs.d.cts +50 -2
  113. package/libs/components/form/inputs.d.ts +50 -2
  114. package/libs/components/form/inputs.js +4 -2
  115. package/libs/components/form/textarea.cjs +5 -4
  116. package/libs/components/form/textarea.d.cts +32 -23
  117. package/libs/components/form/textarea.d.ts +32 -23
  118. package/libs/components/form/textarea.js +3 -2
  119. package/libs/components/heading/heading.cjs +3 -3
  120. package/libs/components/heading/heading.d.cts +3 -14
  121. package/libs/components/heading/heading.d.ts +3 -14
  122. package/libs/components/heading/heading.js +2 -2
  123. package/libs/components/icons/icon.cjs +4 -4
  124. package/libs/components/icons/icon.d.cts +183 -39
  125. package/libs/components/icons/icon.d.ts +183 -39
  126. package/libs/components/icons/icon.js +2 -2
  127. package/libs/components/images/img.css +1 -1
  128. package/libs/components/images/img.css.map +1 -1
  129. package/libs/components/images/img.min.css +2 -2
  130. package/libs/components/link/link.cjs +4 -4
  131. package/libs/components/link/link.css +1 -1
  132. package/libs/components/link/link.css.map +1 -1
  133. package/libs/components/link/link.d.cts +3 -19
  134. package/libs/components/link/link.d.ts +3 -19
  135. package/libs/components/link/link.js +2 -2
  136. package/libs/components/link/link.min.css +2 -2
  137. package/libs/components/list/list.cjs +5 -5
  138. package/libs/components/list/list.css +1 -0
  139. package/libs/components/list/list.css.map +1 -0
  140. package/libs/components/list/list.d.cts +120 -33
  141. package/libs/components/list/list.d.ts +120 -33
  142. package/libs/components/list/list.js +2 -2
  143. package/libs/components/list/list.min.css +3 -0
  144. package/libs/components/modal.cjs +6 -4
  145. package/libs/components/modal.d.cts +8 -8
  146. package/libs/components/modal.d.ts +8 -8
  147. package/libs/components/modal.js +5 -3
  148. package/libs/components/nav/nav.cjs +7 -7
  149. package/libs/components/nav/nav.css +1 -1
  150. package/libs/components/nav/nav.css.map +1 -1
  151. package/libs/components/nav/nav.d.cts +550 -34
  152. package/libs/components/nav/nav.d.ts +550 -34
  153. package/libs/components/nav/nav.js +3 -3
  154. package/libs/components/nav/nav.min.css +2 -2
  155. package/libs/components/popover/popover.d.cts +5 -5
  156. package/libs/components/popover/popover.d.ts +5 -5
  157. package/libs/components/tables/table.cjs +5 -5
  158. package/libs/components/tables/table.d.cts +8 -8
  159. package/libs/components/tables/table.d.ts +8 -8
  160. package/libs/components/tables/table.js +2 -2
  161. package/libs/components/tag/tag.css +1 -1
  162. package/libs/components/tag/tag.css.map +1 -1
  163. package/libs/components/tag/tag.min.css +2 -2
  164. package/libs/components/text/text.cjs +5 -5
  165. package/libs/components/text/text.d.cts +5 -5
  166. package/libs/components/text/text.d.ts +5 -5
  167. package/libs/components/text/text.js +2 -2
  168. package/libs/form.types-d25ebfac.d.ts +233 -0
  169. package/libs/heading-7446cb46.d.ts +250 -0
  170. package/libs/hooks.cjs +12 -0
  171. package/libs/hooks.d.cts +140 -1
  172. package/libs/hooks.d.ts +140 -1
  173. package/libs/hooks.js +4 -0
  174. package/libs/icons.cjs +3 -3
  175. package/libs/icons.d.cts +2 -2
  176. package/libs/icons.d.ts +2 -2
  177. package/libs/icons.js +2 -2
  178. package/libs/index.cjs +117 -94
  179. package/libs/index.cjs.map +1 -1
  180. package/libs/index.css +1 -1
  181. package/libs/index.css.map +1 -1
  182. package/libs/index.d.cts +834 -61
  183. package/libs/index.d.ts +834 -61
  184. package/libs/index.js +36 -22
  185. package/libs/index.js.map +1 -1
  186. package/libs/link-5192f411.d.ts +323 -0
  187. package/libs/list.types-d26de310.d.ts +245 -0
  188. package/libs/ui-d01b50d4.d.ts +289 -0
  189. package/package.json +4 -87
  190. package/src/components/README-UI.mdx +416 -0
  191. package/src/components/alert/ACCESSIBILITY.md +319 -0
  192. package/src/components/alert/README.mdx +475 -19
  193. package/src/components/alert/alert.scss +110 -6
  194. package/src/components/alert/alert.stories.tsx +372 -0
  195. package/src/components/alert/alert.test.tsx +762 -0
  196. package/src/components/alert/alert.tsx +331 -66
  197. package/src/components/alert/views/alert-actions.tsx +13 -0
  198. package/src/components/alert/views/alert-content.tsx +17 -0
  199. package/src/components/alert/views/alert-icon.tsx +53 -0
  200. package/src/components/alert/views/alert-screen-reader-text.tsx +30 -0
  201. package/src/components/alert/views/alert-title.tsx +23 -0
  202. package/src/components/alert/views/alert-view.tsx +158 -0
  203. package/src/components/alert/views/index.ts +12 -0
  204. package/src/components/badge/badge.mdx +186 -49
  205. package/src/components/badge/badge.scss +20 -2
  206. package/src/components/badge/badge.stories.tsx +160 -14
  207. package/src/components/badge/badge.test.tsx +179 -0
  208. package/src/components/badge/badge.tsx +97 -4
  209. package/src/components/breadcrumbs/README.mdx +364 -45
  210. package/src/components/breadcrumbs/__snapshots__/breadcrumb.test.tsx.snap +152 -0
  211. package/src/components/breadcrumbs/breadcrumb.stories.tsx +7 -3
  212. package/src/components/breadcrumbs/breadcrumb.test.tsx +490 -0
  213. package/src/components/breadcrumbs/breadcrumb.tsx +430 -170
  214. package/src/components/buttons/README.mdx +102 -1
  215. package/src/components/buttons/button.scss +34 -31
  216. package/src/components/buttons/button.stories.tsx +141 -0
  217. package/src/components/buttons/button.tsx +82 -52
  218. package/src/components/cards/README.mdx +657 -0
  219. package/src/components/cards/card.scss +22 -0
  220. package/src/components/cards/card.stories.tsx +167 -5
  221. package/src/components/cards/card.test.tsx +360 -20
  222. package/src/components/cards/card.tsx +200 -79
  223. package/src/components/cards/card.types.ts +135 -0
  224. package/src/components/cards/card.utils.ts +79 -0
  225. package/src/components/details/ACCESSIBILITY-REVIEW-LIVE.md +1050 -0
  226. package/src/components/details/ACCESSIBILITY-REVIEW.md +502 -0
  227. package/src/components/details/README.mdx +437 -69
  228. package/src/components/details/details.scss +16 -7
  229. package/src/components/details/details.test.tsx +385 -0
  230. package/src/components/details/details.tsx +101 -69
  231. package/src/components/details/details.types.ts +76 -0
  232. package/src/components/dialog/README.mdx +513 -110
  233. package/src/components/dialog/dialog-a11y-review.md +653 -0
  234. package/src/components/dialog/dialog-modal.tsx +79 -56
  235. package/src/components/dialog/dialog.scss +53 -3
  236. package/src/components/dialog/dialog.stories.tsx +10 -7
  237. package/src/components/dialog/dialog.test.tsx +450 -0
  238. package/src/components/dialog/dialog.tsx +69 -59
  239. package/src/components/dialog/dialog.types.ts +133 -0
  240. package/src/components/dialog/views/dialog-footer.tsx +54 -11
  241. package/src/components/dialog/views/dialog-header.tsx +20 -15
  242. package/src/components/form/README.mdx +725 -43
  243. package/src/components/form/WCAG-REVIEW.md +654 -0
  244. package/src/components/form/fields.tsx +10 -1
  245. package/src/components/form/form.stories.tsx +604 -23
  246. package/src/components/form/form.tsx +204 -63
  247. package/src/components/form/form.types.ts +378 -0
  248. package/src/components/form/input.stories.tsx +71 -3
  249. package/src/components/form/inputs.tsx +159 -67
  250. package/src/components/form/select.tsx +122 -66
  251. package/src/components/form/textarea.tsx +120 -73
  252. package/src/components/fp.tsx +86 -11
  253. package/src/components/heading/heading.stories.tsx +44 -4
  254. package/src/components/heading/heading.tsx +89 -23
  255. package/src/components/icons/README.mdx +332 -0
  256. package/src/components/icons/icon.stories.tsx +74 -1
  257. package/src/components/icons/icon.tsx +89 -1
  258. package/src/components/icons/types.ts +47 -0
  259. package/src/components/images/README.mdx +340 -24
  260. package/src/components/images/img.scss +19 -3
  261. package/src/components/images/img.stories.tsx +424 -15
  262. package/src/components/images/img.test.tsx +354 -25
  263. package/src/components/images/img.tsx +186 -63
  264. package/src/components/images/img.types.ts +211 -0
  265. package/src/components/link/README.mdx +923 -0
  266. package/src/components/link/link.scss +79 -26
  267. package/src/components/link/link.stories.tsx +383 -30
  268. package/src/components/link/link.test.tsx +677 -0
  269. package/src/components/link/link.tsx +163 -57
  270. package/src/components/link/link.types.ts +261 -0
  271. package/src/components/list/README.mdx +764 -0
  272. package/src/components/list/list.scss +285 -0
  273. package/src/components/list/list.stories.tsx +514 -27
  274. package/src/components/list/list.test.tsx +554 -0
  275. package/src/components/list/list.tsx +153 -51
  276. package/src/components/list/list.types.ts +255 -0
  277. package/src/components/nav/ACCESSIBILITY.md +649 -0
  278. package/src/components/nav/README.mdx +782 -0
  279. package/src/components/nav/nav.scss +32 -1
  280. package/src/components/nav/nav.stories.tsx +44 -6
  281. package/src/components/nav/nav.tsx +302 -51
  282. package/src/components/nav/nav.types.ts +308 -0
  283. package/src/components/tag/README.mdx +426 -0
  284. package/src/components/tag/tag.scss +101 -27
  285. package/src/components/tag/tag.stories.tsx +384 -10
  286. package/src/components/tag/tag.test.tsx +210 -0
  287. package/src/components/tag/tag.tsx +106 -9
  288. package/src/components/tag/tag.types.ts +107 -0
  289. package/src/components/title/MIGRATION.md +199 -0
  290. package/src/components/title/README.md +326 -0
  291. package/src/components/title/README.mdx +452 -0
  292. package/src/components/title/title.stories.tsx +393 -0
  293. package/src/components/title/title.test.tsx +251 -0
  294. package/src/components/title/title.tsx +219 -0
  295. package/src/components/ui.stories.tsx +894 -0
  296. package/src/components/ui.test.tsx +559 -0
  297. package/src/components/ui.tsx +274 -18
  298. package/src/components/word-count/README.md +240 -0
  299. package/src/hooks/use-disabled-state.test.tsx +536 -0
  300. package/src/hooks/use-disabled-state.ts +246 -0
  301. package/src/hooks/useDisabledState.md +393 -0
  302. package/src/hooks.ts +7 -0
  303. package/src/index.scss +2 -0
  304. package/src/index.ts +12 -3
  305. package/src/sass/_globals.scss +2 -7
  306. package/src/sass/_properties.scss +1 -0
  307. package/src/styles/alert/alert.css +92 -4
  308. package/src/styles/alert/alert.css.map +1 -1
  309. package/src/styles/badge/badge.css +20 -2
  310. package/src/styles/badge/badge.css.map +1 -1
  311. package/src/styles/buttons/button.css +31 -31
  312. package/src/styles/buttons/button.css.map +1 -1
  313. package/src/styles/cards/card.css +16 -0
  314. package/src/styles/cards/card.css.map +1 -1
  315. package/src/styles/details/details.css +19 -8
  316. package/src/styles/details/details.css.map +1 -1
  317. package/src/styles/dialog/dialog.css +43 -2
  318. package/src/styles/dialog/dialog.css.map +1 -1
  319. package/src/styles/images/img.css +15 -3
  320. package/src/styles/images/img.css.map +1 -1
  321. package/src/styles/index.css +691 -128
  322. package/src/styles/index.css.map +1 -1
  323. package/src/styles/link/link.css +45 -28
  324. package/src/styles/link/link.css.map +1 -1
  325. package/src/styles/list/list.css +214 -0
  326. package/src/styles/list/list.css.map +1 -0
  327. package/src/styles/nav/nav.css +21 -1
  328. package/src/styles/nav/nav.css.map +1 -1
  329. package/src/styles/tag/tag.css +113 -35
  330. package/src/styles/tag/tag.css.map +1 -1
  331. package/src/styles/utilities/_disabled.scss +58 -0
  332. package/src/test/setup.d.ts +9 -0
  333. package/src/test/setup.ts +53 -1
  334. package/src/types/shared.ts +43 -6
  335. package/src/utils/accessibility.ts +109 -0
  336. package/libs/chunk-5ZM4XL44.js +0 -8
  337. package/libs/chunk-5ZM4XL44.js.map +0 -1
  338. package/libs/chunk-6BVXFW7U.cjs +0 -15
  339. package/libs/chunk-6BVXFW7U.cjs.map +0 -1
  340. package/libs/chunk-6TE5QEVE.cjs.map +0 -1
  341. package/libs/chunk-7K76RW2A.cjs +0 -18
  342. package/libs/chunk-7K76RW2A.cjs.map +0 -1
  343. package/libs/chunk-BHRQBJRY.js +0 -8
  344. package/libs/chunk-BHRQBJRY.js.map +0 -1
  345. package/libs/chunk-BIP2NY53.js +0 -8
  346. package/libs/chunk-BIP2NY53.js.map +0 -1
  347. package/libs/chunk-BSPKFLO4.js +0 -8
  348. package/libs/chunk-BSPKFLO4.js.map +0 -1
  349. package/libs/chunk-BV5CLH44.cjs +0 -18
  350. package/libs/chunk-BV5CLH44.cjs.map +0 -1
  351. package/libs/chunk-DKGJHKGW.js +0 -9
  352. package/libs/chunk-DKGJHKGW.js.map +0 -1
  353. package/libs/chunk-DV56L5YX.cjs +0 -18
  354. package/libs/chunk-DV56L5YX.cjs.map +0 -1
  355. package/libs/chunk-ECLD37WN.cjs +0 -16
  356. package/libs/chunk-ECLD37WN.cjs.map +0 -1
  357. package/libs/chunk-EQ67LF46.js +0 -9
  358. package/libs/chunk-EQ67LF46.js.map +0 -1
  359. package/libs/chunk-HYBZBN4G.js +0 -8
  360. package/libs/chunk-HYBZBN4G.js.map +0 -1
  361. package/libs/chunk-IYUN2EW3.cjs +0 -15
  362. package/libs/chunk-IYUN2EW3.cjs.map +0 -1
  363. package/libs/chunk-KKLTUJFB.cjs.map +0 -1
  364. package/libs/chunk-LHVJKDMA.cjs +0 -15
  365. package/libs/chunk-LHVJKDMA.cjs.map +0 -1
  366. package/libs/chunk-LL7HTLMS.cjs +0 -15
  367. package/libs/chunk-LL7HTLMS.cjs.map +0 -1
  368. package/libs/chunk-M5QL5TAE.cjs +0 -14
  369. package/libs/chunk-M5QL5TAE.cjs.map +0 -1
  370. package/libs/chunk-NE6YXTMC.js +0 -7
  371. package/libs/chunk-NE6YXTMC.js.map +0 -1
  372. package/libs/chunk-NHYXGV3L.js +0 -8
  373. package/libs/chunk-NHYXGV3L.js.map +0 -1
  374. package/libs/chunk-O6QZBB6G.js.map +0 -1
  375. package/libs/chunk-P7TTEYCD.js +0 -7
  376. package/libs/chunk-P7TTEYCD.js.map +0 -1
  377. package/libs/chunk-PPOOBUOS.js +0 -8
  378. package/libs/chunk-PPOOBUOS.js.map +0 -1
  379. package/libs/chunk-QCMV4VQZ.js +0 -8
  380. package/libs/chunk-QCMV4VQZ.js.map +0 -1
  381. package/libs/chunk-QVV34QEH.cjs +0 -32
  382. package/libs/chunk-QVV34QEH.cjs.map +0 -1
  383. package/libs/chunk-S7BABR7Z.cjs +0 -13
  384. package/libs/chunk-S7BABR7Z.cjs.map +0 -1
  385. package/libs/chunk-SXVZSWX6.js +0 -11
  386. package/libs/chunk-SXVZSWX6.js.map +0 -1
  387. package/libs/chunk-X3EVB7VS.cjs +0 -15
  388. package/libs/chunk-X3EVB7VS.cjs.map +0 -1
  389. package/libs/inputs-f3a216db.d.ts +0 -45
  390. package/libs/ui-9a6f9f8d.d.ts +0 -24
  391. package/src/components/cards/README.md +0 -80
  392. package/src/components/dialog/hooks/useClickOutside.ts +0 -33
  393. /package/libs/{chunk-YWOYVRFT.js.map → chunk-7XPFW7CB.js.map} +0 -0
  394. /package/libs/{chunk-ICCKQ2GC.cjs.map → chunk-DKTHCQ5P.cjs.map} +0 -0
  395. /package/libs/{chunk-LIQJ7ZZR.js.map → chunk-IQ76HGVP.js.map} +0 -0
  396. /package/libs/{chunk-LT5KZ2QW.cjs.map → chunk-US2I5GI7.cjs.map} +0 -0
  397. /package/libs/{chunk-E3XP6BEX.cjs.map → chunk-W2UIN7EV.cjs.map} +0 -0
  398. /package/libs/{chunk-5M57K4SW.js.map → chunk-Y2PFDELK.js.map} +0 -0
@@ -1,3 +1,4 @@
1
+ @charset "UTF-8";
1
2
  *,
2
3
  *::before,
3
4
  *::after {
@@ -180,6 +181,7 @@ svg[role=img] {
180
181
  --placeholder-style: italic;
181
182
  --placeholder-fs: smaller;
182
183
  --transition: all 0.25s linear;
184
+ --tran-all: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
183
185
  --fs-0: clamp(.9rem, 4vw - 1rem, 1.12rem);
184
186
  --fs-1: clamp(0.65rem, 1.3vw + 0.25rem, 0.75rem);
185
187
  --fs-2: clamp(0.7rem, 2vw - 0.5rem, 0.875rem);
@@ -297,14 +299,7 @@ body > a[href^="#"]:focus {
297
299
  top: 0;
298
300
  }
299
301
 
300
- * + div,
301
- * + ul,
302
- * + section {
303
- margin-block-start: 1rem;
304
- }
305
- * + div:empty,
306
- * + ul:empty,
307
- * + section:empty {
302
+ div:empty {
308
303
  display: none;
309
304
  }
310
305
 
@@ -427,26 +422,79 @@ h6:has(span:first-of-type) > span {
427
422
  --title-6: var(--h6);
428
423
  }
429
424
 
425
+ /**
426
+ * Disabled State Utility Styles
427
+ *
428
+ * Provides accessible styling for disabled form elements using aria-disabled pattern.
429
+ * Meets WCAG 2.1 Level AA requirements for visual distinction and contrast.
430
+ *
431
+ * WCAG References:
432
+ * - WCAG 1.4.3 (Contrast Minimum): UI components require 3:1 contrast minimum
433
+ * - WCAG 2.1.1 (Keyboard): Elements remain focusable via keyboard
434
+ * - WCAG 4.1.2 (Name, Role, Value): aria-disabled properly announces state
435
+ *
436
+ * Usage:
437
+ * - Apply .is-disabled class OR aria-disabled="true" attribute
438
+ * - Customize via CSS custom properties (--disabled-opacity, --disabled-cursor, --disabled-color)
439
+ * - Default color (hsl(0 0% 40%)) ensures 3:1 contrast on white backgrounds
440
+ *
441
+ * WARNING: If overriding --disabled-color, ensure WCAG 1.4.3 compliance
442
+ * (minimum 3:1 contrast ratio for UI components)
443
+ */
444
+ .is-disabled,
445
+ [aria-disabled=true] {
446
+ /* CSS Custom Properties for theming */
447
+ --disabled-opacity: 0.6;
448
+ --disabled-cursor: not-allowed;
449
+ /* hsl(0 0% 40%) = #666666, provides 3:1 contrast on white (#ffffff) */
450
+ --disabled-color: hsl(0 0% 40%);
451
+ /* Apply disabled styles */
452
+ opacity: var(--disabled-opacity);
453
+ cursor: var(--disabled-cursor);
454
+ color: var(--disabled-color);
455
+ /**
456
+ * Maintain focus visibility for keyboard navigation (WCAG 2.4.7)
457
+ * Disabled elements must still be focusable and have visible focus indicators
458
+ *
459
+ * WCAG 2.4.7 requires focus indicators to have 3:1 contrast against both:
460
+ * - The background color
461
+ * - Adjacent non-focused component colors
462
+ *
463
+ * Theme authors: If providing a custom --focus-color, ensure it meets WCAG 2.4.7
464
+ * contrast requirements (3:1 minimum) against all background colors in your theme.
465
+ *
466
+ * Example theme customization:
467
+ * :root {
468
+ * --focus-color: #005fcc; // Ensure 3:1 contrast on your backgrounds
469
+ * }
470
+ */
471
+ }
472
+ .is-disabled:focus-visible,
473
+ [aria-disabled=true]:focus-visible {
474
+ /* Preserve focus ring from global styles */
475
+ outline-width: 0.125rem; /* 2px */
476
+ outline-style: solid;
477
+ outline-offset: 0.125rem; /* 2px */
478
+ /* Use custom focus color with currentColor fallback */
479
+ outline-color: var(--focus-color, currentColor);
480
+ }
481
+
430
482
  button {
431
- --btn-xs: 0.6rem;
432
- --btn-sm: 0.7rem;
433
- --btn-md: 0.85rem;
434
- --btn-lg: 1.3125rem;
483
+ --btn-xs: 0.6875rem;
484
+ --btn-sm: 0.8125rem;
485
+ --btn-md: 0.9375rem;
486
+ --btn-lg: 1.125rem;
435
487
  --btn-pill: 100rem;
436
- --btn-height: 2.5rem;
437
- --fs: 0.95rem;
438
- --btn-fs: 0.9375rem;
488
+ --btn-fs: var(--btn-md);
489
+ --btn-height: calc(var(--btn-fs) * 2.25);
439
490
  --btn-bg: lightgray;
440
491
  --btn-width: max-content;
441
- --btn-calc-height: var(--btn-height, calc(40rem / 16));
442
492
  font-size: var(--btn-fs);
443
493
  font-weight: var(--btn-fw, 500);
444
- height: var(--btn-height, 2.5rem);
445
- max-height: var(--btn-calc-height);
446
- min-height: 1.5rem;
494
+ height: var(--btn-height);
447
495
  place-items: var(--btn-place, center);
448
- padding-inline: var(--btn-px, calc(var(--btn-fs) + 1.1%));
449
- padding-block: var(--btn-py, calc(var(--btn-fs) + 0.75%));
496
+ padding-inline: var(--btn-px, calc(var(--btn-fs) * 1.5));
497
+ padding-block: var(--btn-py, calc(var(--btn-fs) * 0.5));
450
498
  border: var(--btn-bdr, none);
451
499
  border-radius: var(--btn-rds, 0.375rem);
452
500
  text-decoration: var(--btn-deco, none);
@@ -455,7 +503,7 @@ button {
455
503
  gap: var(--btn-gap, 0.2rem);
456
504
  white-space: var(--btn-wspc, inherit);
457
505
  margin: var(--btn-spc, 0);
458
- transition: var(--tran-all);
506
+ transition: var(--btn-transition, var(--tran-all, all 0.3s cubic-bezier(0.4, 0, 0.2, 1)));
459
507
  background-color: var(--btn-bg, var(--btn));
460
508
  outline: none;
461
509
  width: var(--btn-width);
@@ -478,14 +526,15 @@ button[disabled]:is(:hover, :focus), button[aria-disabled=true]:is(:hover, :focu
478
526
  transform: none;
479
527
  }
480
528
  button:is(:hover, :focus) {
481
- background-color: var(--btn-bg, var(--btn, lightgray));
482
- filter: invert(1) hue-rotate 180deg;
483
- transform: scale(0.95) var(--line-style, solid);
529
+ filter: var(--btn-hover-filter, brightness(0.85));
530
+ transform: var(--btn-hover-transform, scale(1.03));
531
+ outline: var(--btn-hover-outline, thin);
484
532
  outline-offset: var(--line-offset, 1px);
485
533
  }
486
534
  button:is(:hover, :focus)[aria-disabled=true] {
487
535
  transform: none;
488
536
  opacity: var(--btn-opacity, 0.5);
537
+ filter: none;
489
538
  }
490
539
  button[type=reset] {
491
540
  --btn-bg: transparent;
@@ -501,25 +550,25 @@ button[type=submit] {
501
550
  button[data-fp-btn~=pill], button[data-btn~=pill], button[data-style~=pill] {
502
551
  border-radius: var(--btn-pill, 100rem);
503
552
  }
504
- button[data-btn~=xs] {
505
- padding-inline: var(--btn-xs);
553
+ button[data-btn~=xs],
554
+ button .btn-xs {
506
555
  --btn-fs: var(--btn-xs);
507
- --btn-height: 1.5rem;
508
556
  text-transform: uppercase;
509
557
  }
510
- button[data-btn~=sm] {
558
+ button[data-btn~=sm],
559
+ button .btn-sm {
511
560
  --btn-fs: var(--btn-sm);
512
- --btn-height: 1.75rem;
513
561
  }
514
- button[data-btn~=md] {
562
+ button[data-btn~=md],
563
+ button .btn-md {
515
564
  --btn-fs: var(--btn-md);
516
- --btn-height: 2rem;
517
565
  }
518
- button[data-btn~=lg] {
566
+ button[data-btn~=lg],
567
+ button .btn-lg {
519
568
  --btn-fs: var(--btn-lg);
520
- --btn-height: 2.5rem;
521
569
  }
522
- button[data-btn~=icon] {
570
+ button[data-btn~=icon],
571
+ button .btn-icon {
523
572
  padding: unset;
524
573
  height: unset;
525
574
  --btn-bg: transparent;
@@ -530,7 +579,8 @@ button[data-btn~=icon] {
530
579
  align-items: center;
531
580
  justify-content: center;
532
581
  }
533
- button[data-btn~=text] {
582
+ button[data-btn~=text],
583
+ button .btn-text {
534
584
  --btn-bg: transparent;
535
585
  --btn-cl: currentColor;
536
586
  --btn-bdr: none;
@@ -539,27 +589,48 @@ button[data-btn~=text] {
539
589
  --btn-py: 0.75rem;
540
590
  --btn-px: 0.75rem;
541
591
  }
542
- button[data-btn~=text]:is(:hover, :focus) {
543
- background-color: transparent;
544
- outline: 0.07rem solid var(--btn-cl);
592
+ button[data-btn~=text]:is(:hover, :focus),
593
+ button .btn-text:is(:hover, :focus) {
594
+ background-color: color-mix(in srgb, var(--btn-cl) 10%, transparent);
595
+ outline: 0.025rem solid var(--btn-cl);
545
596
  outline-offset: 0;
546
- }
547
-
597
+ filter: none;
598
+ }
599
+
600
+ /**
601
+ * Tag Component Styles - WCAG 2.1 AA Compliant
602
+ *
603
+ * Provides visual styling for the Tag component with CSS custom properties
604
+ * for easy theming and variant support. All measurements use rem units
605
+ * for scalability and accessibility.
606
+ *
607
+ * Accessibility Features:
608
+ * - Color contrast ratios meet WCAG AA 4.5:1 minimum (WCAG 1.4.3)
609
+ * - Visual indicators beyond color (symbols via ::before) (WCAG 1.4.1)
610
+ * - Visible focus indicators with 3:1 contrast (WCAG 2.4.7)
611
+ */
612
+ /**
613
+ * Base Tag Styles
614
+ * Applied to all tag elements via role and data-tag attributes
615
+ */
548
616
  p[role=note],
549
617
  [role=note],
550
618
  small > span,
551
619
  [data-tag] {
552
- --beta: var(--warning-500, orange);
553
- --stable: var(--success-500, green);
554
- --production: rgb(44, 71, 151);
555
- --tag-px: 0.7rem;
556
- --tag-py: 0.2rem;
557
- --tag-fs: 0.8rem;
558
- --tag-radius: 99rem;
559
- --tag-bg: lightgray;
560
- --tag-fw: 500;
561
- --tag-color: currentColor;
562
- --tag-display: inline-block;
620
+ /* Variant color tokens - WCAG AA compliant colors */
621
+ --beta: #fbbf24; /* Amber: 6.94:1 contrast with black */
622
+ --stable: #0f7c3e; /* Dark green: 4.56:1 contrast with white */
623
+ --production: #1e3a8a; /* Dark blue: 8.59:1 contrast with white */
624
+ /* Tag component tokens */
625
+ --tag-px: 0.7rem; /* Horizontal padding (11.2px at 16px base) */
626
+ --tag-py: 0.2rem; /* Vertical padding (3.2px at 16px base) */
627
+ --tag-fs: 0.8rem; /* Font size (12.8px at 16px base) */
628
+ --tag-radius: 99rem; /* Fully rounded pill shape */
629
+ --tag-bg: lightgray; /* Default background color */
630
+ --tag-fw: 500; /* Medium font weight */
631
+ --tag-color: currentColor; /* Default text color (inherits) */
632
+ --tag-display: inline-block; /* Display type */
633
+ /* Apply CSS custom properties */
563
634
  display: var(--tag-display);
564
635
  padding-inline: var(--tag-px);
565
636
  padding-block: var(--tag-py);
@@ -567,72 +638,142 @@ small > span,
567
638
  color: var(--tag-color);
568
639
  background-color: var(--tag-bg);
569
640
  border-radius: var(--tag-radius);
641
+ /**
642
+ * Focus Indicators (WCAG 2.4.7)
643
+ * Visible focus for keyboard navigation with 3:1 minimum contrast
644
+ */
645
+ /* Remove outline for mouse users while preserving for keyboard users */
646
+ /**
647
+ * Variant Modifiers
648
+ * Applied via data-tag attribute (e.g., data-tag="beta")
649
+ * Each variant includes both color AND visual symbol for accessibility (WCAG 1.4.1)
650
+ */
651
+ /* Alpha variant - early development stage */
652
+ /* Beta variant - pre-release version */
653
+ /* Stable variant - production-ready release */
654
+ /* Production variant - live environment indicator */
655
+ }
656
+ p[role=note]:focus-visible,
657
+ [role=note]:focus-visible,
658
+ small > span:focus-visible,
659
+ [data-tag]:focus-visible {
660
+ outline: 2px solid currentColor;
661
+ outline-offset: 2px;
662
+ }
663
+ p[role=note]:focus:not(:focus-visible),
664
+ [role=note]:focus:not(:focus-visible),
665
+ small > span:focus:not(:focus-visible),
666
+ [data-tag]:focus:not(:focus-visible) {
667
+ outline: none;
668
+ }
669
+ p[role=note][data-tag~=alpha],
670
+ [role=note][data-tag~=alpha],
671
+ small > span[data-tag~=alpha],
672
+ [data-tag][data-tag~=alpha] {
673
+ --tag-color: #000000; /* Black: maximum contrast with amber background */
674
+ --tag-bg: var(--beta);
675
+ /* Visual indicator beyond color - warning symbol */
676
+ }
677
+ p[role=note][data-tag~=alpha]::before,
678
+ [role=note][data-tag~=alpha]::before,
679
+ small > span[data-tag~=alpha]::before,
680
+ [data-tag][data-tag~=alpha]::before {
681
+ content: "⚠";
682
+ margin-inline-end: 0.25rem;
683
+ font-weight: 700;
684
+ aria-hidden: true;
570
685
  }
571
686
  p[role=note][data-tag~=beta],
572
687
  [role=note][data-tag~=beta],
573
688
  small > span[data-tag~=beta],
574
689
  [data-tag][data-tag~=beta] {
575
- background-color: var(--beta);
690
+ --tag-color: #000000; /* Black: maximum contrast with amber background */
691
+ --tag-bg: var(--beta);
692
+ /* Visual indicator beyond color - warning symbol */
693
+ }
694
+ p[role=note][data-tag~=beta]::before,
695
+ [role=note][data-tag~=beta]::before,
696
+ small > span[data-tag~=beta]::before,
697
+ [data-tag][data-tag~=beta]::before {
698
+ content: "⚠";
699
+ margin-inline-end: 0.25rem;
700
+ font-weight: 700;
701
+ aria-hidden: true;
576
702
  }
577
703
  p[role=note][data-tag~=stable],
578
704
  [role=note][data-tag~=stable],
579
705
  small > span[data-tag~=stable],
580
706
  [data-tag][data-tag~=stable] {
581
- --tag-cl: white;
707
+ --tag-color: #ffffff; /* White: 4.56:1 contrast with dark green */
582
708
  --tag-bg: var(--stable);
709
+ /* Visual indicator beyond color - checkmark symbol */
710
+ }
711
+ p[role=note][data-tag~=stable]::before,
712
+ [role=note][data-tag~=stable]::before,
713
+ small > span[data-tag~=stable]::before,
714
+ [data-tag][data-tag~=stable]::before {
715
+ content: "✓";
716
+ margin-inline-end: 0.25rem;
717
+ font-weight: 700;
718
+ aria-hidden: true;
583
719
  }
584
720
  p[role=note][data-tag~=production],
585
721
  [role=note][data-tag~=production],
586
722
  small > span[data-tag~=production],
587
723
  [data-tag][data-tag~=production] {
588
- --tag-color: white;
724
+ --tag-color: #ffffff; /* White: 8.59:1 contrast with dark blue */
589
725
  --tag-bg: var(--production);
590
- }
591
- p[role=note][data-tag~=beta],
592
- [role=note][data-tag~=beta],
593
- small > span[data-tag~=beta],
594
- [data-tag][data-tag~=beta] {
595
- --tag-color: currentColor;
596
- --tag-bg: var(--beta);
597
- }
598
- p[role=note][data-tag~=alpha],
599
- [role=note][data-tag~=alpha],
600
- small > span[data-tag~=alpha],
601
- [data-tag][data-tag~=alpha] {
602
- --tag-color: currentColor;
603
- --tag-bg: var(--beta);
604
- }
605
- p[role=note][data-tag~=beta],
606
- [role=note][data-tag~=beta],
607
- small > span[data-tag~=beta],
608
- [data-tag][data-tag~=beta] {
609
- --tag-color: currentColor;
610
- --tag-bg: var(--beta);
611
- }
612
-
726
+ /* Visual indicator beyond color - live indicator symbol */
727
+ }
728
+ p[role=note][data-tag~=production]::before,
729
+ [role=note][data-tag~=production]::before,
730
+ small > span[data-tag~=production]::before,
731
+ [data-tag][data-tag~=production]::before {
732
+ content: "●";
733
+ margin-inline-end: 0.25rem;
734
+ font-weight: 700;
735
+ aria-hidden: true;
736
+ }
737
+
738
+ /**
739
+ * Block-level tag modifier
740
+ * Applied when Tag renders as <p> element
741
+ */
613
742
  p[role=note] {
614
743
  --tag-display: block;
615
- --border-radius: 0.5rem;
744
+ --tag-radius: 0.5rem; /* Less rounded for block tags (8px at 16px base) */
616
745
  }
617
746
 
747
+ /**
748
+ * Image component styles
749
+ *
750
+ * Applies to all images with alt attribute (both decorative alt="" and semantic).
751
+ * Uses CSS custom properties for flexible theming and responsive behavior.
752
+ */
618
753
  img[alt] {
754
+ /* CSS Custom Properties - Override these for customization */
619
755
  --img-max-width: 100%;
620
756
  --img-height: auto;
621
757
  --img-object-fit: cover;
622
758
  --img-object-position: center;
623
759
  --img-aspect-ratio: auto 2/3;
624
760
  --img-display: inline-block;
761
+ /* Layout - Responsive by default */
625
762
  max-width: var(--img-max-width);
626
- max-inline-size: var(--img-max-width);
763
+ max-inline-size: var(--img-max-width); /* Logical property for i18n */
627
764
  block-size: var(--img-height);
765
+ display: var(--img-display);
766
+ vertical-align: middle;
767
+ /* Object fitting for responsive images */
628
768
  object-fit: var(--img-object-fit);
629
769
  object-position: var(--img-object-position);
630
770
  aspect-ratio: var(--img-aspect-ratio);
631
- display: var(--img-display);
632
- vertical-align: middle;
771
+ /* Accessibility - Italic font for broken image alt text */
633
772
  font-style: italic;
773
+ /* Background for loading state */
634
774
  background-size: cover;
635
775
  background-repeat: no-repeat;
776
+ /* Shape margin for text wrapping */
636
777
  shape-margin: var(--spc-3);
637
778
  }
638
779
 
@@ -705,6 +846,22 @@ figure:has(img[alt]) > figcaption {
705
846
  padding-block-start: calc(var(--card-p) - 0.5rem);
706
847
  }
707
848
 
849
+ [data-card=interactive] {
850
+ cursor: pointer;
851
+ transition: box-shadow 0.2s ease, transform 0.2s ease;
852
+ }
853
+ [data-card=interactive]:hover {
854
+ transform: translateY(-2px);
855
+ box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
856
+ }
857
+ [data-card=interactive]:focus-visible {
858
+ outline: 0.125rem solid var(--focus-color, #0066CC);
859
+ outline-offset: 0.125rem;
860
+ }
861
+ [data-card=interactive]:focus:not(:focus-visible) {
862
+ outline: none;
863
+ }
864
+
708
865
  progress {
709
866
  /* Revert all styles */
710
867
  all: revert;
@@ -790,6 +947,12 @@ details {
790
947
  max-height: var(--max-h-closed);
791
948
  overflow: clip;
792
949
  }
950
+ @starting-style {
951
+ details {
952
+ transition: var(--summary-transitions);
953
+ color: red;
954
+ }
955
+ }
793
956
  details + details {
794
957
  border-radius: 0;
795
958
  border-top: none;
@@ -819,14 +982,6 @@ details summary {
819
982
  transition: var(--summary-transitions);
820
983
  /* This ensures no bullet points are shown */
821
984
  }
822
- @supports (transition-behavior: allow-discrete) {
823
- @starting-style {
824
- details summary {
825
- border-bottom: none;
826
- transition: var(--summary-transitions);
827
- }
828
- }
829
- }
830
985
  details summary::-webkit-details-marker {
831
986
  display: none;
832
987
  }
@@ -861,34 +1016,58 @@ details[open] > summary {
861
1016
  details[open] > section {
862
1017
  max-height: var(--max-h-open);
863
1018
  }
1019
+ @starting-style {
1020
+ details[open] > section {
1021
+ max-height: 0;
1022
+ }
1023
+ }
1024
+ @supports (transition-behavior: allow-discrete) {
1025
+ @starting-style {
1026
+ details {
1027
+ max-height: 0;
1028
+ transition: var(--summary-transitions);
1029
+ }
1030
+ }
1031
+ }
864
1032
 
1033
+ /**
1034
+ * Link Component Styles
1035
+ *
1036
+ * Provides accessible, customizable link styles using CSS custom properties.
1037
+ * Supports standard text links, button-styled links, and pill variants.
1038
+ *
1039
+ * WCAG 2.1 AA Compliance:
1040
+ * - Focus indicators meet 2.4.7 (3:1 contrast minimum)
1041
+ * - Color contrast meets 1.4.3 (4.5:1 for normal text)
1042
+ * - Uses :focus-visible for better UX (keyboard vs mouse)
1043
+ */
865
1044
  a[href] {
866
- --link-decoration: none;
867
1045
  --link-color: #085ab7;
1046
+ --link-weight: 400;
1047
+ --link-fs: 1rem;
1048
+ --link-decoration: none;
1049
+ --link-decoration-offset: 0.09375rem;
1050
+ --link-decoration-thickness: 0.0625rem;
1051
+ --link-skip-ink: auto;
868
1052
  --link-bg: transparent;
1053
+ --link-radius: 0.25rem;
869
1054
  --link-px: 0;
870
1055
  --link-py: 0;
871
1056
  --link-transition: all 0.75s ease-in-out;
872
- --link-fs: 1rem;
873
- --link-radius: 0.25rem;
874
- --link-skip-ink: auto;
875
- --link-decoration-offset: 1.5px;
876
- --link-decoration-thickness: 3px;
877
- --link-decoration: color: var(--link-color) var(--link-decoration-offset)
878
- var(--link-decoration-thickness) var(--link-skip-ink);
879
- --link-decoration-thickness: 3px;
880
- --link-decoration: color: var(--link-color) var(--link-decoration-offset)
881
- var(--link-decoration-thickness) var(--link-skip-ink);
1057
+ --link-focus-color: currentColor;
1058
+ --link-focus-width: 0.125rem;
1059
+ --link-focus-offset: 0.125rem;
1060
+ --link-focus-style: solid;
882
1061
  color: var(--link-color);
883
1062
  font-size: var(--link-fs);
1063
+ font-weight: var(--link-weight);
884
1064
  text-decoration: var(--link-decoration);
885
1065
  text-underline-offset: var(--link-decoration-offset);
1066
+ text-decoration-thickness: var(--link-decoration-thickness);
886
1067
  text-decoration-skip-ink: var(--link-skip-ink);
887
1068
  background-color: var(--link-bg);
888
1069
  border-radius: var(--link-radius);
889
- background-color: var(--link-bg);
890
- border-radius: var(--link-radius);
891
- font-weight: var(--link-weight);
1070
+ transition: var(--link-transition);
892
1071
  }
893
1072
  a[href] > i,
894
1073
  a[href] > b {
@@ -899,41 +1078,51 @@ a[href]:hover {
899
1078
  --link-decoration: underline;
900
1079
  }
901
1080
  a[href]:focus {
902
- outline: none;
1081
+ outline: var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);
1082
+ outline-offset: var(--link-focus-offset);
903
1083
  --link-decoration: underline;
904
1084
  }
1085
+ a[href]:focus-visible {
1086
+ outline: var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);
1087
+ outline-offset: var(--link-focus-offset);
1088
+ }
905
1089
  a[href]:visited, a[href]:active {
906
1090
  --link-color: currentColor;
907
1091
  }
908
- a[href]:has(> b), a[href][data-link~=btn], a[href]:has(> i) {
1092
+ a[href]:has(> b), a[href][data-btn], a[href]:has(> i) {
909
1093
  --link-button-color: var(--link-color);
910
1094
  --link-bg: transparent;
911
1095
  --link-decoration: none;
912
- --link-border: 2px currentColor solid;
1096
+ --link-border-width: 0.125rem;
1097
+ --link-border-color: currentColor;
1098
+ --link-border-style: solid;
913
1099
  --link-fs: 0.9rem;
1100
+ color: var(--link-button-color);
914
1101
  background-color: var(--link-bg);
915
1102
  font-style: normal;
916
1103
  font-size: var(--link-fs);
917
- color: var(--link-button-color);
918
1104
  padding-inline: var(--link-fs);
919
1105
  padding-block: calc(var(--link-fs) - 0.4rem);
920
1106
  border-radius: var(--link-radius, 99rem);
921
1107
  display: inline-flex;
922
- outline: var(--link-border);
1108
+ align-items: center;
1109
+ justify-content: center;
1110
+ outline: var(--link-border-width) var(--link-border-color) var(--link-border-style);
923
1111
  --scale-transition: transform 0.25s ease;
924
1112
  --scale: scale(1);
925
1113
  --scale-to: scale(1.05);
926
1114
  transform: var(--scale);
927
1115
  transition: var(--scale-transition);
928
1116
  }
929
- a[href]:has(> b):focus, a[href][data-link~=btn]:focus, a[href]:has(> i):focus {
930
- outline: var(--link-border);
1117
+ a[href]:has(> b):focus, a[href]:has(> b):focus-visible, a[href][data-btn]:focus, a[href][data-btn]:focus-visible, a[href]:has(> i):focus, a[href]:has(> i):focus-visible {
1118
+ outline: var(--link-border-width) var(--link-border-color) var(--link-border-style);
1119
+ outline-offset: var(--link-focus-offset);
931
1120
  --link-decoration: none;
932
1121
  }
933
- a[href]:has(> b):hover, a[href][data-link~=btn]:hover, a[href]:has(> i):hover {
1122
+ a[href]:has(> b):hover, a[href][data-btn]:hover, a[href]:has(> i):hover {
934
1123
  --link-decoration: none;
935
1124
  }
936
- a[href]:has(> b):hover, a[href][data-link~=btn]:hover, a[href]:has(> i):hover {
1125
+ a[href]:has(> b):hover, a[href][data-btn]:hover, a[href]:has(> i):hover {
937
1126
  transform: var(--scale-to);
938
1127
  }
939
1128
  a[href][data-link~=pill], a[href]:has(> i) {
@@ -941,14 +1130,10 @@ a[href][data-link~=pill], a[href]:has(> i) {
941
1130
  --link-decoration: none;
942
1131
  font-style: normal;
943
1132
  }
944
- a[href][data-link~=pill]:hover, a[href][data-link~=pill]:focus, a[href]:has(> i):hover, a[href]:has(> i):focus {
1133
+ a[href][data-link~=pill]:hover, a[href][data-link~=pill]:focus, a[href][data-link~=pill]:focus-visible, a[href]:has(> i):hover, a[href]:has(> i):focus, a[href]:has(> i):focus-visible {
945
1134
  --link-decoration: none;
946
1135
  }
947
1136
 
948
- header > section {
949
- width: auto;
950
- }
951
-
952
1137
  header,
953
1138
  [data-hero],
954
1139
  [data-grid~=overlay] {
@@ -1118,8 +1303,23 @@ footer > div {
1118
1303
  --dialog-button-hover-bg: whitesmoke;
1119
1304
  --dialog-display: flex;
1120
1305
  --dialog-flex-direction: column;
1306
+ /* Focus and accessibility */
1307
+ --dialog-focus-color: #0066cc;
1308
+ --dialog-focus-width: 0.125rem;
1309
+ --dialog-focus-offset: 0.125rem;
1310
+ --dialog-focus-outline: var(--dialog-focus-width) solid var(--dialog-focus-color);
1311
+ }
1312
+
1313
+ /* High contrast mode support */
1314
+ @media (prefers-contrast: high) {
1315
+ :root {
1316
+ --dialog-border-color: currentColor;
1317
+ --dialog-border-width: 0.125rem;
1318
+ --dialog-close-color: currentColor;
1319
+ --dialog-button-border: currentColor 0.125rem solid;
1320
+ --dialog-focus-width: 0.1875rem;
1321
+ }
1121
1322
  }
1122
-
1123
1323
  dialog {
1124
1324
  width: var(--dialog-min-w);
1125
1325
  min-width: var(--min-w);
@@ -1127,7 +1327,12 @@ dialog {
1127
1327
  border: var(--dialog-border-color) var(--dialog-border-width) solid;
1128
1328
  border-radius: var(--dialog-border-radius);
1129
1329
  padding: var(--dialog-padding);
1130
- padding-block-start: calc(var(--dialog-padding) - 0rem);
1330
+ padding-block-start: var(--dialog-padding);
1331
+ /* Focus visible for keyboard navigation */
1332
+ }
1333
+ dialog:focus-visible {
1334
+ outline: var(--dialog-focus-outline);
1335
+ outline-offset: var(--dialog-focus-offset);
1131
1336
  }
1132
1337
  dialog[open] {
1133
1338
  display: var(--dialog-display);
@@ -1162,11 +1367,22 @@ dialog section {
1162
1367
  background-color: var(--dialog-button-bg);
1163
1368
  border: var(--dialog-button-border);
1164
1369
  cursor: pointer;
1370
+ /* Keyboard focus indicator */
1371
+ /* Remove default focus for mouse users */
1165
1372
  }
1166
- .dialog-header button[type=button]:hover, .dialog-header button[type=button]:focus {
1373
+ .dialog-header button[type=button]:hover {
1167
1374
  border-color: var(--dialog-close-color);
1168
1375
  background-color: var(--dialog-button-hover-bg);
1169
1376
  }
1377
+ .dialog-header button[type=button]:focus-visible {
1378
+ outline: var(--dialog-focus-outline);
1379
+ outline-offset: var(--dialog-focus-offset);
1380
+ border-color: var(--dialog-focus-color);
1381
+ background-color: var(--dialog-button-hover-bg);
1382
+ }
1383
+ .dialog-header button[type=button]:focus:not(:focus-visible) {
1384
+ outline: none;
1385
+ }
1170
1386
 
1171
1387
  .alert-dialog-actions,
1172
1388
  .dialog-footer {
@@ -1176,6 +1392,16 @@ dialog section {
1176
1392
  justify-content: var(--dialog-footer-justify, flex-end);
1177
1393
  gap: var(--dialog-gap);
1178
1394
  width: 100%;
1395
+ /* Focus styles for footer buttons */
1396
+ }
1397
+ .alert-dialog-actions button:focus-visible,
1398
+ .dialog-footer button:focus-visible {
1399
+ outline: var(--dialog-focus-outline);
1400
+ outline-offset: var(--dialog-focus-offset);
1401
+ }
1402
+ .alert-dialog-actions button:focus:not(:focus-visible),
1403
+ .dialog-footer button:focus:not(:focus-visible) {
1404
+ outline: none;
1179
1405
  }
1180
1406
 
1181
1407
  :root {
@@ -1290,8 +1516,26 @@ sup:has(> span) span {
1290
1516
  color: inherit;
1291
1517
  }
1292
1518
  sup:has(> span)[data-badge~=rounded] {
1293
- --badge-radius: 100%;
1294
- --badge-padding: 0.2rem;
1519
+ --badge-radius: 50%;
1520
+ --badge-padding: 0;
1521
+ --badge-size: 1.5625rem;
1522
+ width: var(--badge-size);
1523
+ height: var(--badge-size);
1524
+ display: inline-flex;
1525
+ align-items: center;
1526
+ justify-content: center;
1527
+ line-height: 1;
1528
+ font-size: 0.6875rem;
1529
+ font-weight: 700;
1530
+ overflow: hidden;
1531
+ box-sizing: border-box;
1532
+ }
1533
+ sup:has(> span)[data-badge~=rounded] span {
1534
+ max-width: 100%;
1535
+ overflow: hidden;
1536
+ text-overflow: clip;
1537
+ white-space: nowrap;
1538
+ padding: 0 0.125rem;
1295
1539
  }
1296
1540
 
1297
1541
  body > nav,
@@ -1321,7 +1565,7 @@ body > nav ul > li,
1321
1565
  }
1322
1566
  body > nav ul > li:hover,
1323
1567
  [aria-label~=navbar] ul > li:hover, .navbar ul > li:hover {
1324
- background-color: var(--nav-hov-bg, whitesmoke);
1568
+ background-color: var(--nav-hov-bg, #e8e8e8);
1325
1569
  }
1326
1570
  body > nav ul > li:hover:where(img),
1327
1571
  [aria-label~=navbar] ul > li:hover:where(img), .navbar ul > li:hover:where(img) {
@@ -1329,6 +1573,10 @@ body > nav ul > li:hover:where(img),
1329
1573
  }
1330
1574
 
1331
1575
  nav {
1576
+ --nav-focus-color: currentColor;
1577
+ --nav-focus-width: 0.125rem;
1578
+ --nav-focus-offset: 0.125rem;
1579
+ --nav-focus-style: solid;
1332
1580
  display: var(--nav-dsp, flex);
1333
1581
  flex-direction: var(--nav-direction, row);
1334
1582
  width: var(--nav-w, auto);
@@ -1377,6 +1625,22 @@ nav[data-variant] {
1377
1625
  nav > div {
1378
1626
  margin-block-start: 0;
1379
1627
  }
1628
+ nav a:focus {
1629
+ outline: var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);
1630
+ outline-offset: var(--nav-focus-offset);
1631
+ }
1632
+ nav a:focus-visible {
1633
+ outline: var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);
1634
+ outline-offset: var(--nav-focus-offset);
1635
+ }
1636
+ nav button:focus {
1637
+ outline: var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);
1638
+ outline-offset: var(--nav-focus-offset);
1639
+ }
1640
+ nav button:focus-visible {
1641
+ outline: var(--nav-focus-width) var(--nav-focus-style) var(--nav-focus-color);
1642
+ outline-offset: var(--nav-focus-offset);
1643
+ }
1380
1644
 
1381
1645
  :root {
1382
1646
  --input-border-color: gray;
@@ -1511,6 +1775,230 @@ nav[data-breadcrumb] ol li a[href][aria-current] {
1511
1775
  text-decoration: none;
1512
1776
  }
1513
1777
 
1778
+ /**
1779
+ * List Component Styles
1780
+ *
1781
+ * Provides default styling for ul, ol, and dl list elements with CSS custom
1782
+ * properties for theming. Uses rem units exclusively for accessibility.
1783
+ *
1784
+ * @base-rem: 16px = 1rem
1785
+ */
1786
+ ul,
1787
+ ol,
1788
+ dl {
1789
+ --list-margin-top: 0;
1790
+ --list-margin-bottom: 1rem;
1791
+ --list-margin-inline: 0;
1792
+ --list-padding-inline: 2.5rem;
1793
+ --list-gap: 0.5rem;
1794
+ --list-marker-color: currentColor;
1795
+ --list-marker-size: 1em;
1796
+ --list-marker-offset: 0.5rem;
1797
+ --list-font-size: 1rem;
1798
+ --list-line-height: 1.5;
1799
+ --list-font-family: inherit;
1800
+ --list-color: inherit;
1801
+ --list-item-margin-bottom: 0.5rem;
1802
+ --list-item-padding-inline: 0;
1803
+ --list-item-padding-block: 0;
1804
+ --dt-font-weight: 600;
1805
+ --dt-margin-bottom: 0.25rem;
1806
+ --dd-margin-inline-start: 2rem;
1807
+ --dd-margin-bottom: 1rem;
1808
+ }
1809
+
1810
+ ul,
1811
+ ol,
1812
+ dl {
1813
+ margin-block-start: var(--list-margin-top);
1814
+ margin-block-end: var(--list-margin-bottom);
1815
+ margin-inline: var(--list-margin-inline);
1816
+ padding-inline-start: var(--list-padding-inline);
1817
+ font-size: var(--list-font-size);
1818
+ line-height: var(--list-line-height);
1819
+ font-family: var(--list-font-family);
1820
+ color: var(--list-color);
1821
+ }
1822
+ ul ul,
1823
+ ul ol,
1824
+ ul dl,
1825
+ ol ul,
1826
+ ol ol,
1827
+ ol dl,
1828
+ dl ul,
1829
+ dl ol,
1830
+ dl dl {
1831
+ margin-block-start: var(--list-gap);
1832
+ margin-block-end: var(--list-gap);
1833
+ }
1834
+
1835
+ ul {
1836
+ list-style-type: disc;
1837
+ }
1838
+ ul::marker {
1839
+ color: var(--list-marker-color);
1840
+ font-size: var(--list-marker-size);
1841
+ }
1842
+ ul ul {
1843
+ list-style-type: circle;
1844
+ }
1845
+ ul ul ul {
1846
+ list-style-type: square;
1847
+ }
1848
+
1849
+ ol {
1850
+ list-style-type: decimal;
1851
+ }
1852
+ ol::marker {
1853
+ color: var(--list-marker-color);
1854
+ font-size: var(--list-marker-size);
1855
+ }
1856
+ ol ol {
1857
+ list-style-type: lower-alpha;
1858
+ }
1859
+ ol ol ol {
1860
+ list-style-type: lower-roman;
1861
+ }
1862
+
1863
+ li {
1864
+ margin-block-end: var(--list-item-margin-bottom);
1865
+ padding-inline: var(--list-item-padding-inline);
1866
+ padding-block: var(--list-item-padding-block);
1867
+ padding-inline-start: var(--list-marker-offset);
1868
+ }
1869
+ li:last-child {
1870
+ margin-block-end: 0;
1871
+ }
1872
+
1873
+ dl {
1874
+ padding-inline-start: 0;
1875
+ }
1876
+
1877
+ dt {
1878
+ font-weight: var(--dt-font-weight);
1879
+ margin-block-end: var(--dt-margin-bottom);
1880
+ padding-inline: var(--list-item-padding-inline);
1881
+ padding-block: var(--list-item-padding-block);
1882
+ }
1883
+
1884
+ dd {
1885
+ margin-inline-start: var(--dd-margin-inline-start);
1886
+ margin-block-end: var(--dd-margin-bottom);
1887
+ padding-inline: var(--list-item-padding-inline);
1888
+ padding-block: var(--list-item-padding-block);
1889
+ }
1890
+ dd:last-child {
1891
+ margin-block-end: 0;
1892
+ }
1893
+
1894
+ ul[data-variant=none],
1895
+ ol[data-variant=none],
1896
+ dl[data-variant=none] {
1897
+ list-style-type: none;
1898
+ padding-inline-start: 0;
1899
+ }
1900
+ ul[data-variant=none] li,
1901
+ ol[data-variant=none] li,
1902
+ dl[data-variant=none] li {
1903
+ padding-inline-start: 0;
1904
+ }
1905
+ ul[data-variant=inline],
1906
+ ol[data-variant=inline],
1907
+ dl[data-variant=inline] {
1908
+ display: flex;
1909
+ flex-direction: row;
1910
+ flex-wrap: wrap;
1911
+ gap: var(--list-gap);
1912
+ padding-inline-start: 0;
1913
+ list-style-type: none;
1914
+ }
1915
+ ul[data-variant=inline] li,
1916
+ ol[data-variant=inline] li,
1917
+ dl[data-variant=inline] li {
1918
+ padding-inline-start: 0;
1919
+ margin-block-end: 0;
1920
+ }
1921
+ ul[data-variant=custom],
1922
+ ol[data-variant=custom],
1923
+ dl[data-variant=custom] {
1924
+ list-style-type: none;
1925
+ padding-inline-start: 0;
1926
+ }
1927
+ ul[data-variant=custom] li,
1928
+ ol[data-variant=custom] li,
1929
+ dl[data-variant=custom] li {
1930
+ position: relative;
1931
+ padding-inline-start: calc(var(--list-marker-size) + var(--list-marker-offset));
1932
+ }
1933
+ ul[data-variant=custom] li::before,
1934
+ ol[data-variant=custom] li::before,
1935
+ dl[data-variant=custom] li::before {
1936
+ content: var(--list-marker-content, "•");
1937
+ color: var(--list-marker-color);
1938
+ font-size: var(--list-marker-size);
1939
+ position: absolute;
1940
+ left: 0;
1941
+ }
1942
+ ul[data-variant=compact],
1943
+ ol[data-variant=compact],
1944
+ dl[data-variant=compact] {
1945
+ --list-gap: 0.25rem;
1946
+ --list-item-margin-bottom: 0.25rem;
1947
+ --list-margin-bottom: 0.5rem;
1948
+ }
1949
+ ul[data-variant=spaced],
1950
+ ol[data-variant=spaced],
1951
+ dl[data-variant=spaced] {
1952
+ --list-gap: 1rem;
1953
+ --list-item-margin-bottom: 1rem;
1954
+ }
1955
+
1956
+ li:has(a:focus-visible),
1957
+ li:has(button:focus-visible) {
1958
+ outline: 0.0625rem solid transparent;
1959
+ }
1960
+
1961
+ li:has(> a),
1962
+ li:has(> button) {
1963
+ margin-block-end: 0;
1964
+ }
1965
+
1966
+ @media print {
1967
+ ul,
1968
+ ol,
1969
+ dl {
1970
+ --list-margin-bottom: 0.5rem;
1971
+ --list-item-margin-bottom: 0.25rem;
1972
+ }
1973
+ ul,
1974
+ ol {
1975
+ list-style-position: inside;
1976
+ }
1977
+ }
1978
+ @media (prefers-reduced-motion: reduce) {
1979
+ ul,
1980
+ ol,
1981
+ dl,
1982
+ li,
1983
+ dt,
1984
+ dd {
1985
+ animation: none;
1986
+ transition: none;
1987
+ }
1988
+ }
1989
+ /* Screen reader only utility class */
1990
+ .sr-only {
1991
+ position: absolute;
1992
+ width: 1px;
1993
+ height: 1px;
1994
+ padding: 0;
1995
+ margin: -1px;
1996
+ overflow: hidden;
1997
+ clip: rect(0, 0, 0, 0);
1998
+ white-space: nowrap;
1999
+ border-width: 0;
2000
+ }
2001
+
1514
2002
  [role=alert] {
1515
2003
  /* Success colors */
1516
2004
  --alert-success-bg: #e6f4ea;
@@ -1528,6 +2016,8 @@ nav[data-breadcrumb] ol li a[href][aria-current] {
1528
2016
  --alert-info-bg: #e5f6fd;
1529
2017
  --alert-info-border: #0288d1;
1530
2018
  --alert-info-text: #084154;
2019
+ /* Animation */
2020
+ --alert-transition-duration: 0.3s;
1531
2021
  --alert-border: thin solid currentColor;
1532
2022
  background-color: var(--alert-bg, whitesmoke);
1533
2023
  border: var(--alert-border, currentColor);
@@ -1539,19 +2029,59 @@ nav[data-breadcrumb] ol li a[href][aria-current] {
1539
2029
  display: flex;
1540
2030
  flex-direction: row;
1541
2031
  border-radius: var(--alert-border-radius, var(--border-radius));
1542
- border: var(--alert-border);
1543
2032
  gap: var(--alert-gap, var(--spc-4));
2033
+ /* Exit animations */
2034
+ transition: opacity var(--alert-transition-duration) ease, transform var(--alert-transition-duration) ease;
2035
+ opacity: 1;
2036
+ transform: translateY(0);
2037
+ /* Focus indicators for keyboard navigation (WCAG 2.4.7) */
2038
+ /* Hide focus outline for mouse clicks, keep for keyboard */
2039
+ /* Variant: Filled - Solid colored background */
2040
+ /* Variant: Soft - No border, subtle background */
2041
+ /* Variant: Outlined - Default with border (no additional styles needed) */
2042
+ }
2043
+ [role=alert]:not([data-visible=true]) {
2044
+ opacity: 0;
2045
+ transform: translateY(-0.5rem);
1544
2046
  }
1545
- [role=alert] div {
2047
+ @media (prefers-reduced-motion: reduce) {
2048
+ [role=alert] {
2049
+ transition-duration: 0.01ms;
2050
+ }
2051
+ }
2052
+ [role=alert]:focus {
2053
+ outline: 2px solid currentColor;
2054
+ outline-offset: 2px;
2055
+ }
2056
+ [role=alert]:focus:not(:focus-visible) {
2057
+ outline: none;
2058
+ }
2059
+ [role=alert] .alert-icon {
1546
2060
  margin-block-start: 0;
1547
2061
  align-items: center;
1548
2062
  }
1549
2063
  [role=alert] .alert-message {
1550
2064
  flex: 2;
1551
2065
  margin-block-start: 0;
2066
+ /* Title styles for both heading and strong elements */
2067
+ /* Reset heading-specific styles */
1552
2068
  }
1553
- [role=alert] .alert-message h3 {
1554
- margin-block-end: 0;
2069
+ [role=alert] .alert-message .alert-title {
2070
+ margin-block-end: var(--spc-1, 0.25rem);
2071
+ margin-block-start: 0;
2072
+ font-weight: var(--alert-title-weight, 600);
2073
+ font-size: var(--alert-title-size, inherit);
2074
+ line-height: 1.4;
2075
+ }
2076
+ [role=alert] .alert-message h2.alert-title,
2077
+ [role=alert] .alert-message h3.alert-title,
2078
+ [role=alert] .alert-message h4.alert-title,
2079
+ [role=alert] .alert-message h5.alert-title,
2080
+ [role=alert] .alert-message h6.alert-title {
2081
+ margin: 0;
2082
+ margin-block-end: var(--spc-1, 0.25rem);
2083
+ font-size: inherit;
2084
+ font-weight: var(--alert-title-weight, 600);
1555
2085
  }
1556
2086
  [role=alert][data-alert~=info] {
1557
2087
  --alert-bg: var(--alert-info-bg);
@@ -1575,6 +2105,39 @@ nav[data-breadcrumb] ol li a[href][aria-current] {
1575
2105
  }
1576
2106
  [role=alert] button[data-btn~=icon] {
1577
2107
  --btn-bg: transparent;
2108
+ align-items: flex-start;
2109
+ }
2110
+ [role=alert][data-variant=filled] {
2111
+ border: none;
2112
+ }
2113
+ [role=alert][data-variant=filled][data-alert~=info] {
2114
+ --alert-bg: var(--alert-info-border);
2115
+ --alert-color: white;
2116
+ }
2117
+ [role=alert][data-variant=filled][data-alert~=warning] {
2118
+ --alert-bg: var(--alert-warning-border);
2119
+ --alert-color: white;
2120
+ }
2121
+ [role=alert][data-variant=filled][data-alert~=error] {
2122
+ --alert-bg: var(--alert-error-border);
2123
+ --alert-color: white;
2124
+ }
2125
+ [role=alert][data-variant=filled][data-alert~=success] {
2126
+ --alert-bg: var(--alert-success-border);
2127
+ --alert-color: white;
2128
+ }
2129
+ [role=alert][data-variant=filled][data-alert~=default] {
2130
+ --alert-bg: #757575;
2131
+ --alert-color: white;
2132
+ }
2133
+ [role=alert][data-variant=soft] {
2134
+ border: none;
2135
+ }
2136
+ [role=alert][data-variant=outlined] {
2137
+ /* This is the default variant, styles already applied above */
2138
+ }
2139
+ [role=alert] p {
2140
+ font-size: 0.875rem;
1578
2141
  }
1579
2142
 
1580
2143
  [data-tts] {