@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
@@ -0,0 +1,319 @@
1
+ # Alert Component - Accessibility Documentation
2
+
3
+ This document outlines the accessibility features of the Alert component and its compliance with WCAG 2.1 Level AA standards.
4
+
5
+ ## WCAG 2.1 Compliance
6
+
7
+ The Alert component has been designed and tested to meet WCAG 2.1 Level AA standards.
8
+
9
+ ### 1.1.1 Non-text Content (Level A)
10
+
11
+ **Implementation:**
12
+ - Icons are marked with `aria-hidden="true"` to prevent redundant announcements
13
+ - Visually hidden text announces severity level to screen readers
14
+ - Severity announcements: "Information:", "Success:", "Warning:", "Error:"
15
+
16
+ **Example:**
17
+ ```tsx
18
+ <Alert severity="error">System error occurred</Alert>
19
+ // Screen reader hears: "Error: System error occurred"
20
+ ```
21
+
22
+ ### 1.3.1 Info and Relationships (Level A)
23
+
24
+ **Implementation:**
25
+ - `titleLevel` prop allows configurable heading levels (h2-h6)
26
+ - Maintains proper document heading hierarchy
27
+ - Default uses `<strong>` element when titleLevel is undefined
28
+
29
+ **Example:**
30
+ ```tsx
31
+ <h1>Page Title</h1>
32
+ <Alert titleLevel={2} title="Section Alert">Content</Alert>
33
+ <Alert titleLevel={3} title="Subsection Alert">Content</Alert>
34
+ ```
35
+
36
+ ### 1.4.1 Use of Color (Level A)
37
+
38
+ **Implementation:**
39
+ - Severity is conveyed through multiple channels:
40
+ - Text labels (visually hidden for screen readers)
41
+ - Icons (visual indicator)
42
+ - Color (supplementary indicator)
43
+ - Does not rely solely on color to convey meaning
44
+
45
+ ### 1.4.3 Contrast (Minimum) (Level AA)
46
+
47
+ **Implementation:**
48
+ - All text meets 4.5:1 contrast ratio against backgrounds
49
+ - Tested across all severity levels and variants
50
+ - Color combinations:
51
+ - **Success**: Dark green text (#1e4620) on light green bg (#e6f4ea) ✓
52
+ - **Error**: Dark red text (#5f2120) on light red bg (#fdeded) ✓
53
+ - **Warning**: Dark orange text (#663c00) on light yellow bg (#fff4e5) ✓
54
+ - **Info**: Dark blue text (#084154) on light blue bg (#e5f6fd) ✓
55
+ - **Filled variants**: White text on solid colors (>7:1 ratio) ✓
56
+
57
+ ### 2.2.1 Timing Adjustable (Level A)
58
+
59
+ **Implementation:**
60
+ - Auto-dismiss can be paused by hovering over or focusing the alert
61
+ - `pauseOnHover` prop (default: true) enables this behavior
62
+ - Timer restarts when mouse leaves or focus is lost
63
+
64
+ **Example:**
65
+ ```tsx
66
+ <Alert autoHideDuration={5000} pauseOnHover={true}>
67
+ Hover or focus to pause auto-dismiss
68
+ </Alert>
69
+ ```
70
+
71
+ ### 2.4.7 Focus Visible (Level AA)
72
+
73
+ **Implementation:**
74
+ - Visible focus indicator (2px solid outline with 2px offset)
75
+ - Uses `:focus-visible` to show outline only for keyboard navigation
76
+ - Focus outline color uses `currentColor` for adequate contrast
77
+ - Alert container is focusable when `autoFocus={true}`
78
+
79
+ **CSS:**
80
+ ```scss
81
+ &:focus {
82
+ outline: 2px solid currentColor;
83
+ outline-offset: 2px;
84
+ }
85
+
86
+ &:focus:not(:focus-visible) {
87
+ outline: none;
88
+ }
89
+ ```
90
+
91
+ ### 2.5.5 Target Size (Level AAA - Implemented)
92
+
93
+ **Implementation:**
94
+ - Dismiss button meets minimum 44×44px touch target size
95
+ - Adequate padding ensures comfortable touch interaction
96
+ - Tested on mobile devices (iOS Safari, Chrome Android)
97
+
98
+ **CSS:**
99
+ ```scss
100
+ &.alert-dismiss {
101
+ min-width: 2.75rem; /* 44px */
102
+ min-height: 2.75rem; /* 44px */
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ }
107
+ ```
108
+
109
+ ## ARIA Attributes
110
+
111
+ ### role="alert"
112
+
113
+ All alert instances use `role="alert"` which causes screen readers to announce the content immediately.
114
+
115
+ ### aria-live
116
+
117
+ - **error** severity: `aria-live="assertive"` (interrupts screen reader)
118
+ - **All other severities**: `aria-live="polite"` (waits for screen reader to finish)
119
+
120
+ ### aria-atomic="true"
121
+
122
+ Ensures screen readers announce the entire alert content, not just changes.
123
+
124
+ ### aria-hidden="true"
125
+
126
+ Applied to decorative icons to prevent redundant announcements.
127
+
128
+ ### aria-label
129
+
130
+ Dismiss button includes `aria-label="Close alert"` for clear screen reader announcement.
131
+
132
+ ## Keyboard Support
133
+
134
+ | Key | Action |
135
+ |-----|--------|
136
+ | `Escape` | Dismisses the alert (when `dismissible={true}`) |
137
+ | `Tab` | Moves focus to dismiss button (if present) |
138
+ | `Enter`/`Space` | Activates dismiss button when focused |
139
+
140
+ ## Screen Reader Behavior
141
+
142
+ ### Expected Announcements
143
+
144
+ **Error Alert:**
145
+ ```
146
+ "Error: System error occurred. Close alert, button."
147
+ ```
148
+
149
+ **Success Alert with Title:**
150
+ ```
151
+ "Success: Operation completed. Success message. Close alert, button."
152
+ ```
153
+
154
+ **Info Alert with Heading:**
155
+ ```
156
+ "Information. Important update, heading level 2. Please review the changes."
157
+ ```
158
+
159
+ ### Screen Reader Testing
160
+
161
+ Tested with:
162
+ - ✓ VoiceOver (macOS Safari)
163
+ - ✓ NVDA (Windows Firefox/Chrome)
164
+ - ⚠ JAWS (Manual testing recommended)
165
+ - ⚠ TalkBack (Android - Manual testing recommended)
166
+ - ⚠ VoiceOver iOS (Manual testing recommended)
167
+
168
+ ## Motion and Animation
169
+
170
+ **Implementation:**
171
+ - Respects `prefers-reduced-motion` user preference
172
+ - When reduced motion is preferred, transition duration is set to 0.01ms
173
+ - Exit animations use opacity and transform for smooth visual feedback
174
+
175
+ **CSS:**
176
+ ```scss
177
+ @media (prefers-reduced-motion: reduce) {
178
+ transition-duration: 0.01ms;
179
+ }
180
+ ```
181
+
182
+ ## Best Practices
183
+
184
+ ### When to Use autoFocus
185
+
186
+ Use `autoFocus={true}` sparingly and only for:
187
+ - ✓ Critical error messages that require immediate attention
188
+ - ✓ Security alerts or warnings
189
+ - ✗ Success confirmations (use `autoFocus={false}`)
190
+ - ✗ Informational messages (use `autoFocus={false}`)
191
+
192
+ ### Heading Hierarchy
193
+
194
+ Always maintain proper heading hierarchy:
195
+
196
+ ```tsx
197
+ <h1>Dashboard</h1>
198
+
199
+ <section>
200
+ <h2>Recent Activity</h2>
201
+ <Alert titleLevel={3} title="Updates Available">
202
+ New features are available
203
+ </Alert>
204
+ </section>
205
+
206
+ <section>
207
+ <h2>Notifications</h2>
208
+ <Alert titleLevel={3} title="System Maintenance">
209
+ Scheduled for tonight
210
+ </Alert>
211
+ </section>
212
+ ```
213
+
214
+ ### Auto-Dismiss Timing
215
+
216
+ Recommended durations based on content:
217
+ - Short messages (< 20 words): 4-5 seconds
218
+ - Medium messages (20-40 words): 6-8 seconds
219
+ - Long messages (> 40 words): 10+ seconds
220
+ - Always enable `pauseOnHover={true}` (default)
221
+
222
+ ### Color Contrast Verification
223
+
224
+ All alert variants have been tested with WebAIM Contrast Checker:
225
+ - Use **outlined** variant for most cases (default)
226
+ - Use **filled** variant for high-emphasis alerts
227
+ - Use **soft** variant for subtle, low-priority messages
228
+
229
+ ### Content Type Selection
230
+
231
+ The `contentType` prop determines how alert children are rendered and affects semantic HTML structure:
232
+
233
+ **Use contentType="text" (default) when:**
234
+ - ✓ Displaying simple text messages (single sentence or paragraph)
235
+ - ✓ Content is purely informational without complex structure
236
+ - ✓ You want automatic paragraph wrapping for semantic correctness
237
+
238
+ **Use contentType="node" when:**
239
+ - ✓ Displaying lists (ordered or unordered)
240
+ - ✓ Including multiple paragraphs with different styling
241
+ - ✓ Rendering custom components or complex layouts
242
+ - ✓ Need fine-grained control over HTML structure
243
+ - ✓ Content includes interactive elements beyond actions
244
+
245
+ **Examples:**
246
+
247
+ ```tsx
248
+ // Simple text - use default "text" mode
249
+ <Alert severity="info">
250
+ Your session will expire in 5 minutes.
251
+ </Alert>
252
+
253
+ // Complex content with list - use "node" mode
254
+ <Alert severity="warning" contentType="node">
255
+ <p>Complete these steps:</p>
256
+ <ul>
257
+ <li>Update your password</li>
258
+ <li>Enable 2FA</li>
259
+ </ul>
260
+ </Alert>
261
+
262
+ // Multiple paragraphs - use "node" mode
263
+ <Alert severity="info" contentType="node">
264
+ <p>We've updated our privacy policy.</p>
265
+ <p>Review the changes by January 1, 2026.</p>
266
+ </Alert>
267
+ ```
268
+
269
+ **Accessibility Considerations:**
270
+ - Both modes maintain proper ARIA structure and screen reader compatibility
271
+ - `contentType="node"` allows for better semantic HTML when content is complex
272
+ - Use meaningful headings within node content for screen reader navigation
273
+ - Ensure custom layouts maintain logical reading order
274
+
275
+ ## Testing Checklist
276
+
277
+ Use this checklist when implementing or modifying the Alert component:
278
+
279
+ - [ ] Keyboard navigation works (Tab, Escape)
280
+ - [ ] Screen reader announces severity correctly
281
+ - [ ] Focus indicator is visible on keyboard focus
282
+ - [ ] Dismiss button is at least 44×44px
283
+ - [ ] Auto-dismiss pauses on hover/focus
284
+ - [ ] Color contrast meets 4.5:1 ratio
285
+ - [ ] Heading hierarchy is maintained (if using titleLevel)
286
+ - [ ] Works with browser zoom at 200%
287
+ - [ ] Respects prefers-reduced-motion
288
+ - [ ] Works in high contrast mode (Windows)
289
+
290
+ ## Browser Support
291
+
292
+ Tested and verified in:
293
+ - ✓ Chrome 90+
294
+ - ✓ Firefox 88+
295
+ - ✓ Safari 14+
296
+ - ✓ Edge 90+
297
+ - ⚠ IE 11 (Not supported - missing focus-visible)
298
+
299
+ ## References
300
+
301
+ - [WCAG 2.1 Guidelines](https://www.w3.org/WAI/WCAG21/quickref/)
302
+ - [WAI-ARIA Practices - Alert](https://www.w3.org/WAI/ARIA/apg/patterns/alert/)
303
+ - [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
304
+ - [Mozilla Accessibility Guidelines](https://developer.mozilla.org/en-US/docs/Web/Accessibility)
305
+
306
+ ## Support
307
+
308
+ For accessibility-related issues or questions:
309
+ 1. Check this documentation first
310
+ 2. Review the component's Storybook examples
311
+ 3. Consult WCAG 2.1 guidelines
312
+ 4. Test with actual assistive technologies
313
+ 5. File an issue if you discover an accessibility bug
314
+
315
+ ---
316
+
317
+ **Last Updated:** October 2025
318
+ **WCAG Version:** 2.1 Level AA
319
+ **Component Version:** Phase 4 (Enhanced Accessibility)