@fpkit/acss 0.5.13 → 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 (280) hide show
  1. package/libs/{chunk-PQ2K3BM6.cjs → chunk-2NRIP6RB.cjs} +3 -3
  2. package/libs/chunk-33PNJ4LO.cjs +15 -0
  3. package/libs/chunk-33PNJ4LO.cjs.map +1 -0
  4. package/libs/chunk-4BZKFPEC.cjs +17 -0
  5. package/libs/chunk-4BZKFPEC.cjs.map +1 -0
  6. package/libs/{chunk-772NRB75.js → chunk-5QD3DWFI.js} +2 -2
  7. package/libs/chunk-6SAHIYCZ.js +7 -0
  8. package/libs/chunk-6SAHIYCZ.js.map +1 -0
  9. package/libs/{chunk-3MKLDCKQ.cjs → chunk-6WTC4JXH.cjs} +3 -3
  10. package/libs/chunk-75QHTLFO.js +7 -0
  11. package/libs/chunk-75QHTLFO.js.map +1 -0
  12. package/libs/{chunk-ZANSFMTD.js → chunk-7XPFW7CB.js} +3 -3
  13. package/libs/chunk-BFK62VX5.js +5 -0
  14. package/libs/chunk-BFK62VX5.js.map +1 -0
  15. package/libs/{chunk-ROZI23GS.cjs → chunk-DKTHCQ5P.cjs} +4 -4
  16. package/libs/chunk-E2AJURUW.cjs +13 -0
  17. package/libs/chunk-E2AJURUW.cjs.map +1 -0
  18. package/libs/{chunk-L75OQKEI.cjs → chunk-ENTCUJ3A.cjs} +3 -3
  19. package/libs/chunk-ENTCUJ3A.cjs.map +1 -0
  20. package/libs/chunk-F5EYMVQM.js +10 -0
  21. package/libs/chunk-F5EYMVQM.js.map +1 -0
  22. package/libs/chunk-FVROL3V5.js +9 -0
  23. package/libs/chunk-FVROL3V5.js.map +1 -0
  24. package/libs/chunk-GT77BX4L.cjs +17 -0
  25. package/libs/chunk-GT77BX4L.cjs.map +1 -0
  26. package/libs/chunk-GUJSMQ3V.cjs +16 -0
  27. package/libs/chunk-GUJSMQ3V.cjs.map +1 -0
  28. package/libs/chunk-HHLNOC5T.js +7 -0
  29. package/libs/chunk-HHLNOC5T.js.map +1 -0
  30. package/libs/chunk-HRRHPLER.js +8 -0
  31. package/libs/chunk-HRRHPLER.js.map +1 -0
  32. package/libs/chunk-IEB64SWY.js +8 -0
  33. package/libs/chunk-IEB64SWY.js.map +1 -0
  34. package/libs/{chunk-NGTJDDFO.js → chunk-IQ76HGVP.js} +2 -2
  35. package/libs/chunk-IRLFZ3OL.js +9 -0
  36. package/libs/chunk-IRLFZ3OL.js.map +1 -0
  37. package/libs/{chunk-JJ43O4Y5.js → chunk-KK47SYZI.js} +2 -2
  38. package/libs/chunk-O3JIHC5M.cjs +15 -0
  39. package/libs/chunk-O3JIHC5M.cjs.map +1 -0
  40. package/libs/chunk-O5XAJ7BY.cjs +18 -0
  41. package/libs/chunk-O5XAJ7BY.cjs.map +1 -0
  42. package/libs/chunk-OVWLQYMK.js +10 -0
  43. package/libs/chunk-OVWLQYMK.js.map +1 -0
  44. package/libs/chunk-PNWIRCG3.cjs +7 -0
  45. package/libs/chunk-PNWIRCG3.cjs.map +1 -0
  46. package/libs/{chunk-D4YLRWAO.cjs → chunk-QVW6W76L.cjs} +6 -6
  47. package/libs/chunk-T4T6GWYQ.cjs +17 -0
  48. package/libs/chunk-T4T6GWYQ.cjs.map +1 -0
  49. package/libs/chunk-TON2YGMD.cjs +9 -0
  50. package/libs/chunk-TON2YGMD.cjs.map +1 -0
  51. package/libs/chunk-UEPAWMDF.js +8 -0
  52. package/libs/chunk-UEPAWMDF.js.map +1 -0
  53. package/libs/{chunk-LT5KZ2QW.cjs → chunk-US2I5GI7.cjs} +3 -3
  54. package/libs/{chunk-B7F5FS6D.cjs → chunk-W2UIN7EV.cjs} +3 -3
  55. package/libs/{chunk-P2DC76ZZ.cjs → chunk-W5TKWBFC.cjs} +3 -3
  56. package/libs/chunk-WXBFBWYF.cjs +16 -0
  57. package/libs/chunk-WXBFBWYF.cjs.map +1 -0
  58. package/libs/{chunk-VUH3FXGJ.js → chunk-X3JCTEPD.js} +5 -5
  59. package/libs/chunk-X5LGFCWG.js +9 -0
  60. package/libs/chunk-X5LGFCWG.js.map +1 -0
  61. package/libs/{chunk-5M57K4SW.js → chunk-Y2PFDELK.js} +2 -2
  62. package/libs/{chunk-ETFLFC2S.js → chunk-ZFJ4U45S.js} +2 -2
  63. package/libs/{component-props-a8a2f97e.d.ts → component-props-67d978a2.d.ts} +4 -4
  64. package/libs/components/alert/alert.css +1 -1
  65. package/libs/components/alert/alert.css.map +1 -1
  66. package/libs/components/alert/alert.min.css +2 -2
  67. package/libs/components/breadcrumbs/breadcrumb.cjs +6 -6
  68. package/libs/components/breadcrumbs/breadcrumb.d.cts +11 -11
  69. package/libs/components/breadcrumbs/breadcrumb.d.ts +11 -11
  70. package/libs/components/breadcrumbs/breadcrumb.js +3 -3
  71. package/libs/components/button.cjs +6 -4
  72. package/libs/components/button.d.cts +97 -4
  73. package/libs/components/button.d.ts +97 -4
  74. package/libs/components/button.js +4 -2
  75. package/libs/components/card.cjs +7 -7
  76. package/libs/components/card.d.cts +14 -14
  77. package/libs/components/card.d.ts +14 -14
  78. package/libs/components/card.js +2 -2
  79. package/libs/components/dialog/dialog.cjs +9 -7
  80. package/libs/components/dialog/dialog.d.cts +3 -3
  81. package/libs/components/dialog/dialog.d.ts +3 -3
  82. package/libs/components/dialog/dialog.js +7 -5
  83. package/libs/components/form/fields.cjs +4 -4
  84. package/libs/components/form/fields.d.cts +16 -7
  85. package/libs/components/form/fields.d.ts +16 -7
  86. package/libs/components/form/fields.js +2 -2
  87. package/libs/components/form/inputs.cjs +6 -4
  88. package/libs/components/form/inputs.d.cts +50 -2
  89. package/libs/components/form/inputs.d.ts +50 -2
  90. package/libs/components/form/inputs.js +4 -2
  91. package/libs/components/form/textarea.cjs +5 -4
  92. package/libs/components/form/textarea.d.cts +32 -23
  93. package/libs/components/form/textarea.d.ts +32 -23
  94. package/libs/components/form/textarea.js +3 -2
  95. package/libs/components/heading/heading.cjs +3 -3
  96. package/libs/components/heading/heading.d.cts +2 -2
  97. package/libs/components/heading/heading.d.ts +2 -2
  98. package/libs/components/heading/heading.js +2 -2
  99. package/libs/components/icons/icon.cjs +4 -4
  100. package/libs/components/icons/icon.d.cts +38 -38
  101. package/libs/components/icons/icon.d.ts +38 -38
  102. package/libs/components/icons/icon.js +2 -2
  103. package/libs/components/link/link.cjs +4 -4
  104. package/libs/components/link/link.css +1 -1
  105. package/libs/components/link/link.css.map +1 -1
  106. package/libs/components/link/link.d.cts +3 -19
  107. package/libs/components/link/link.d.ts +3 -19
  108. package/libs/components/link/link.js +2 -2
  109. package/libs/components/link/link.min.css +2 -2
  110. package/libs/components/list/list.cjs +5 -5
  111. package/libs/components/list/list.css +1 -0
  112. package/libs/components/list/list.css.map +1 -0
  113. package/libs/components/list/list.d.cts +120 -33
  114. package/libs/components/list/list.d.ts +120 -33
  115. package/libs/components/list/list.js +2 -2
  116. package/libs/components/list/list.min.css +3 -0
  117. package/libs/components/modal.cjs +6 -4
  118. package/libs/components/modal.d.cts +8 -8
  119. package/libs/components/modal.d.ts +8 -8
  120. package/libs/components/modal.js +5 -3
  121. package/libs/components/nav/nav.cjs +7 -7
  122. package/libs/components/nav/nav.css +1 -1
  123. package/libs/components/nav/nav.css.map +1 -1
  124. package/libs/components/nav/nav.d.cts +550 -34
  125. package/libs/components/nav/nav.d.ts +550 -34
  126. package/libs/components/nav/nav.js +3 -3
  127. package/libs/components/nav/nav.min.css +2 -2
  128. package/libs/components/popover/popover.d.cts +5 -5
  129. package/libs/components/popover/popover.d.ts +5 -5
  130. package/libs/components/tables/table.cjs +5 -5
  131. package/libs/components/tables/table.d.cts +8 -8
  132. package/libs/components/tables/table.d.ts +8 -8
  133. package/libs/components/tables/table.js +2 -2
  134. package/libs/components/tag/tag.css +1 -1
  135. package/libs/components/tag/tag.css.map +1 -1
  136. package/libs/components/tag/tag.min.css +2 -2
  137. package/libs/components/text/text.cjs +5 -5
  138. package/libs/components/text/text.d.cts +5 -5
  139. package/libs/components/text/text.d.ts +5 -5
  140. package/libs/components/text/text.js +2 -2
  141. package/libs/form.types-d25ebfac.d.ts +233 -0
  142. package/libs/{heading-3648c538.d.ts → heading-7446cb46.d.ts} +8 -8
  143. package/libs/hooks.cjs +9 -4
  144. package/libs/hooks.d.cts +137 -3
  145. package/libs/hooks.d.ts +137 -3
  146. package/libs/hooks.js +4 -3
  147. package/libs/icons.cjs +3 -3
  148. package/libs/icons.d.cts +2 -2
  149. package/libs/icons.d.ts +2 -2
  150. package/libs/icons.js +2 -2
  151. package/libs/index.cjs +53 -51
  152. package/libs/index.cjs.map +1 -1
  153. package/libs/index.css +1 -1
  154. package/libs/index.css.map +1 -1
  155. package/libs/index.d.cts +338 -49
  156. package/libs/index.d.ts +338 -49
  157. package/libs/index.js +24 -22
  158. package/libs/index.js.map +1 -1
  159. package/libs/link-5192f411.d.ts +323 -0
  160. package/libs/list.types-d26de310.d.ts +245 -0
  161. package/libs/{ui-645f95b5.d.ts → ui-d01b50d4.d.ts} +16 -12
  162. package/package.json +4 -6
  163. package/src/components/alert/alert.scss +1 -4
  164. package/src/components/breadcrumbs/breadcrumb.tsx +4 -1
  165. package/src/components/buttons/README.mdx +102 -1
  166. package/src/components/buttons/button.stories.tsx +106 -0
  167. package/src/components/buttons/button.tsx +82 -52
  168. package/src/components/dialog/dialog-a11y-review.md +653 -0
  169. package/src/components/form/README.mdx +725 -43
  170. package/src/components/form/WCAG-REVIEW.md +654 -0
  171. package/src/components/form/fields.tsx +10 -1
  172. package/src/components/form/form.stories.tsx +604 -23
  173. package/src/components/form/form.tsx +204 -63
  174. package/src/components/form/form.types.ts +378 -0
  175. package/src/components/form/input.stories.tsx +71 -3
  176. package/src/components/form/inputs.tsx +159 -67
  177. package/src/components/form/select.tsx +122 -66
  178. package/src/components/form/textarea.tsx +120 -73
  179. package/src/components/fp.tsx +86 -11
  180. package/src/components/link/README.mdx +923 -0
  181. package/src/components/link/link.scss +79 -26
  182. package/src/components/link/link.stories.tsx +383 -30
  183. package/src/components/link/link.test.tsx +677 -0
  184. package/src/components/link/link.tsx +163 -57
  185. package/src/components/link/link.types.ts +261 -0
  186. package/src/components/list/README.mdx +764 -0
  187. package/src/components/list/list.scss +285 -0
  188. package/src/components/list/list.stories.tsx +514 -27
  189. package/src/components/list/list.test.tsx +554 -0
  190. package/src/components/list/list.tsx +153 -51
  191. package/src/components/list/list.types.ts +255 -0
  192. package/src/components/nav/ACCESSIBILITY.md +649 -0
  193. package/src/components/nav/README.mdx +782 -0
  194. package/src/components/nav/nav.scss +32 -1
  195. package/src/components/nav/nav.stories.tsx +44 -6
  196. package/src/components/nav/nav.tsx +302 -51
  197. package/src/components/nav/nav.types.ts +308 -0
  198. package/src/components/tag/README.mdx +426 -0
  199. package/src/components/tag/tag.scss +101 -27
  200. package/src/components/tag/tag.stories.tsx +384 -10
  201. package/src/components/tag/tag.test.tsx +210 -0
  202. package/src/components/tag/tag.tsx +106 -9
  203. package/src/components/tag/tag.types.ts +107 -0
  204. package/src/components/ui.tsx +8 -3
  205. package/src/hooks/use-disabled-state.test.tsx +536 -0
  206. package/src/hooks/use-disabled-state.ts +246 -0
  207. package/src/hooks/useDisabledState.md +393 -0
  208. package/src/hooks.ts +6 -0
  209. package/src/index.scss +2 -0
  210. package/src/index.ts +2 -1
  211. package/src/sass/_globals.scss +2 -7
  212. package/src/styles/alert/alert.css +1 -3
  213. package/src/styles/alert/alert.css.map +1 -1
  214. package/src/styles/index.css +450 -76
  215. package/src/styles/index.css.map +1 -1
  216. package/src/styles/link/link.css +45 -28
  217. package/src/styles/link/link.css.map +1 -1
  218. package/src/styles/list/list.css +214 -0
  219. package/src/styles/list/list.css.map +1 -0
  220. package/src/styles/nav/nav.css +21 -1
  221. package/src/styles/nav/nav.css.map +1 -1
  222. package/src/styles/tag/tag.css +113 -35
  223. package/src/styles/tag/tag.css.map +1 -1
  224. package/src/styles/utilities/_disabled.scss +58 -0
  225. package/src/types/shared.ts +43 -6
  226. package/src/utils/accessibility.ts +109 -0
  227. package/libs/chunk-2LTJ7HHX.cjs +0 -18
  228. package/libs/chunk-2LTJ7HHX.cjs.map +0 -1
  229. package/libs/chunk-2Y7W75TT.js +0 -9
  230. package/libs/chunk-2Y7W75TT.js.map +0 -1
  231. package/libs/chunk-5S4ORA4C.cjs +0 -15
  232. package/libs/chunk-5S4ORA4C.cjs.map +0 -1
  233. package/libs/chunk-AHDJGCG5.cjs +0 -15
  234. package/libs/chunk-AHDJGCG5.cjs.map +0 -1
  235. package/libs/chunk-BHRQBJRY.js +0 -8
  236. package/libs/chunk-BHRQBJRY.js.map +0 -1
  237. package/libs/chunk-GZ4QFPRY.js +0 -9
  238. package/libs/chunk-GZ4QFPRY.js.map +0 -1
  239. package/libs/chunk-IYUN2EW3.cjs +0 -15
  240. package/libs/chunk-IYUN2EW3.cjs.map +0 -1
  241. package/libs/chunk-J32EZPYD.cjs +0 -15
  242. package/libs/chunk-J32EZPYD.cjs.map +0 -1
  243. package/libs/chunk-KUKIVRC2.js +0 -7
  244. package/libs/chunk-KUKIVRC2.js.map +0 -1
  245. package/libs/chunk-L75OQKEI.cjs.map +0 -1
  246. package/libs/chunk-M5RRNTVX.cjs +0 -15
  247. package/libs/chunk-M5RRNTVX.cjs.map +0 -1
  248. package/libs/chunk-OK5QEIMD.cjs +0 -17
  249. package/libs/chunk-OK5QEIMD.cjs.map +0 -1
  250. package/libs/chunk-P7TTEYCD.js +0 -7
  251. package/libs/chunk-P7TTEYCD.js.map +0 -1
  252. package/libs/chunk-QLZWHAMK.js +0 -8
  253. package/libs/chunk-QLZWHAMK.js.map +0 -1
  254. package/libs/chunk-RIVUMPOG.js +0 -8
  255. package/libs/chunk-RIVUMPOG.js.map +0 -1
  256. package/libs/chunk-S7BABR7Z.cjs +0 -13
  257. package/libs/chunk-S7BABR7Z.cjs.map +0 -1
  258. package/libs/chunk-SMYRLO3E.js +0 -8
  259. package/libs/chunk-SMYRLO3E.js.map +0 -1
  260. package/libs/chunk-TYRCEX2L.js +0 -8
  261. package/libs/chunk-TYRCEX2L.js.map +0 -1
  262. package/libs/chunk-XBA562WW.js +0 -8
  263. package/libs/chunk-XBA562WW.js.map +0 -1
  264. package/libs/chunk-XTQKWY7W.cjs +0 -32
  265. package/libs/chunk-XTQKWY7W.cjs.map +0 -1
  266. package/libs/inputs-f3a216db.d.ts +0 -45
  267. /package/libs/{chunk-PQ2K3BM6.cjs.map → chunk-2NRIP6RB.cjs.map} +0 -0
  268. /package/libs/{chunk-772NRB75.js.map → chunk-5QD3DWFI.js.map} +0 -0
  269. /package/libs/{chunk-3MKLDCKQ.cjs.map → chunk-6WTC4JXH.cjs.map} +0 -0
  270. /package/libs/{chunk-ZANSFMTD.js.map → chunk-7XPFW7CB.js.map} +0 -0
  271. /package/libs/{chunk-ROZI23GS.cjs.map → chunk-DKTHCQ5P.cjs.map} +0 -0
  272. /package/libs/{chunk-NGTJDDFO.js.map → chunk-IQ76HGVP.js.map} +0 -0
  273. /package/libs/{chunk-JJ43O4Y5.js.map → chunk-KK47SYZI.js.map} +0 -0
  274. /package/libs/{chunk-D4YLRWAO.cjs.map → chunk-QVW6W76L.cjs.map} +0 -0
  275. /package/libs/{chunk-LT5KZ2QW.cjs.map → chunk-US2I5GI7.cjs.map} +0 -0
  276. /package/libs/{chunk-B7F5FS6D.cjs.map → chunk-W2UIN7EV.cjs.map} +0 -0
  277. /package/libs/{chunk-P2DC76ZZ.cjs.map → chunk-W5TKWBFC.cjs.map} +0 -0
  278. /package/libs/{chunk-VUH3FXGJ.js.map → chunk-X3JCTEPD.js.map} +0 -0
  279. /package/libs/{chunk-5M57K4SW.js.map → chunk-Y2PFDELK.js.map} +0 -0
  280. /package/libs/{chunk-ETFLFC2S.js.map → chunk-ZFJ4U45S.js.map} +0 -0
package/libs/index.d.ts CHANGED
@@ -1,22 +1,24 @@
1
1
  export { Button, ButtonProps } from './components/button.js';
2
2
  export { Card, Content as CardContent, Footer as CardFooter, CardProps, Title as CardTitle } from './components/card.js';
3
3
  export { default as Field, FieldProps } from './components/form/fields.js';
4
- export { F as Box, F as FP, I as Input, a as InputProps } from './inputs-f3a216db.js';
4
+ export { default as Input } from './components/form/inputs.js';
5
5
  export { default as Icon, IconProps } from './components/icons/icon.js';
6
- import React__default, { ReactNode } from 'react';
7
- export { default as Link, LinkProps, default as To } from './components/link/link.js';
8
- export { default as List, ListItemProps } from './components/list/list.js';
6
+ import React, { ReactNode } from 'react';
7
+ export { L as Link, a as LinkProps, L as To } from './link-5192f411.js';
8
+ export { List } from './components/list/list.js';
9
9
  export { Modal, ModalProps } from './components/modal.js';
10
10
  export { default as Popover, PopoverProps } from './components/popover/popover.js';
11
11
  export { RenderTable as TBL, TableProps } from './components/tables/table.js';
12
12
  export { Dialog } from './components/dialog/dialog.js';
13
- import { U as UI } from './ui-645f95b5.js';
14
- export { default as Nav, NavItem, NavItemProps, NavList, NavListProps, NavProps } from './components/nav/nav.js';
13
+ import { U as UI } from './ui-d01b50d4.js';
14
+ export { Nav, NavComponent, NavItem, NavItemProps, NavList, NavListProps, NavProps } from './components/nav/nav.js';
15
15
  export { default as Text, TextProps } from './components/text/text.js';
16
- export { b as Heading, H as HeadingLevel, T as Title, a as TitleProps } from './heading-3648c538.js';
17
- export { default as Textarea, TextareaProps } from './components/form/textarea.js';
18
- import { C as ComponentProps$1 } from './component-props-a8a2f97e.js';
16
+ export { b as Heading, H as HeadingLevel, T as Title, a as TitleProps } from './heading-7446cb46.js';
17
+ export { default as Textarea } from './components/form/textarea.js';
18
+ import { C as ComponentProps$1 } from './component-props-67d978a2.js';
19
19
  export { default as Breadcrumb, BreadcrumbProps, CustomRoute, useBreadcrumbSegments } from './components/breadcrumbs/breadcrumb.js';
20
+ export { I as InputProps, T as TextareaProps } from './form.types-d25ebfac.js';
21
+ export { L as ListItemProps } from './list.types-d26de310.js';
20
22
 
21
23
  /**
22
24
  * Props for the Img component.
@@ -63,7 +65,7 @@ export { default as Breadcrumb, BreadcrumbProps, CustomRoute, useBreadcrumbSegme
63
65
  *
64
66
  * @see https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html
65
67
  */
66
- interface ImgProps extends Omit<React__default.ImgHTMLAttributes<HTMLImageElement>, 'placeholder'> {
68
+ interface ImgProps extends Omit<React.ImgHTMLAttributes<HTMLImageElement>, 'placeholder'> {
67
69
  /**
68
70
  * The image source URL.
69
71
  * @default '//'
@@ -97,7 +99,7 @@ interface ImgProps extends Omit<React__default.ImgHTMLAttributes<HTMLImageElemen
97
99
  /**
98
100
  * Inline styles to apply to the image.
99
101
  */
100
- styles?: React__default.CSSProperties;
102
+ styles?: React.CSSProperties;
101
103
  /**
102
104
  * Loading behavior for the image.
103
105
  * - `"lazy"` (default): Defers loading until near viewport
@@ -197,7 +199,7 @@ interface ImgProps extends Omit<React__default.ImgHTMLAttributes<HTMLImageElemen
197
199
  * />
198
200
  * ```
199
201
  */
200
- onError?: (event: React__default.SyntheticEvent<HTMLImageElement, Event>) => void;
202
+ onError?: (event: React.SyntheticEvent<HTMLImageElement, Event>) => void;
201
203
  /**
202
204
  * Callback fired when the image successfully loads.
203
205
  *
@@ -212,7 +214,7 @@ interface ImgProps extends Omit<React__default.ImgHTMLAttributes<HTMLImageElemen
212
214
  * />
213
215
  * ```
214
216
  */
215
- onLoad?: (event: React__default.SyntheticEvent<HTMLImageElement, Event>) => void;
217
+ onLoad?: (event: React.SyntheticEvent<HTMLImageElement, Event>) => void;
216
218
  }
217
219
 
218
220
  /**
@@ -322,7 +324,7 @@ interface ImgProps extends Omit<React__default.ImgHTMLAttributes<HTMLImageElemen
322
324
  * @see https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html
323
325
  */
324
326
  declare const Img: {
325
- ({ src, alt, width, height, styles, loading, placeholder, fetchpriority, decoding, srcSet, sizes, onError, onLoad, ...props }: ImgProps): React__default.JSX.Element;
327
+ ({ src, alt, width, height, styles, loading, placeholder, fetchpriority, decoding, srcSet, sizes, onError, onLoad, ...props }: ImgProps): React.JSX.Element;
326
328
  displayName: string;
327
329
  };
328
330
 
@@ -344,7 +346,7 @@ interface TextToSpeechComponentProps {
344
346
  /** The language to be used for speech synthesis. */
345
347
  language?: string;
346
348
  /** Player label */
347
- label?: string | React__default.ReactNode;
349
+ label?: string | React.ReactNode;
348
350
  /** Callback function to be called when speech ends. */
349
351
  onEnd?: () => void;
350
352
  }
@@ -353,22 +355,22 @@ interface TextToSpeechComponentProps {
353
355
  * @param {TextToSpeechComponentProps} props - The props for the component.
354
356
  * @returns {JSX.Element} The rendered TextToSpeechComponent.
355
357
  */
356
- declare const TextToSpeech: React__default.FC<TextToSpeechComponentProps>;
358
+ declare const TextToSpeech: React.FC<TextToSpeechComponentProps>;
357
359
 
358
- type ComponentProps = React__default.ComponentProps<typeof UI>;
360
+ type ComponentProps = React.ComponentProps<typeof UI>;
359
361
  /**
360
362
  * Renders children elements without any wrapping component.
361
363
  * Can be used as a placeholder when no semantic landmark is needed.
362
364
  */
363
365
  declare const Landmarks: {
364
- (children?: React__default.FC): React__default.JSX.Element;
366
+ (children?: React.FC): React.JSX.Element;
365
367
  displayName: string;
366
- Header: ({ id, children, headerBackground, styles, classes, ...props }: HeaderProps) => React__default.JSX.Element;
367
- Main: ({ id, children, styles, classes, ...props }: ComponentProps) => React__default.JSX.Element;
368
- Footer: ({ id, classes, children, styles, ...props }: ComponentProps) => React__default.JSX.Element;
369
- Aside: ({ id, children, styles, classes, ...props }: ComponentProps) => React__default.JSX.Element;
370
- Section: ({ id, children, styles, classes, ...props }: ComponentProps) => React__default.JSX.Element;
371
- Article: ({ id, children, styles, classes, ...props }: ComponentProps) => React__default.JSX.Element;
368
+ Header: ({ id, children, headerBackground, styles, classes, ...props }: HeaderProps) => React.JSX.Element;
369
+ Main: ({ id, children, styles, classes, ...props }: ComponentProps) => React.JSX.Element;
370
+ Footer: ({ id, classes, children, styles, ...props }: ComponentProps) => React.JSX.Element;
371
+ Aside: ({ id, children, styles, classes, ...props }: ComponentProps) => React.JSX.Element;
372
+ Section: ({ id, children, styles, classes, ...props }: ComponentProps) => React.JSX.Element;
373
+ Article: ({ id, children, styles, classes, ...props }: ComponentProps) => React.JSX.Element;
372
374
  };
373
375
  type HeaderProps = {
374
376
  headerBackground?: ReactNode;
@@ -382,7 +384,7 @@ type HeaderProps = {
382
384
  * @param styles - Optional styles object.
383
385
  * @param props - Other props.
384
386
  */
385
- declare const Header: ({ id, children, headerBackground, styles, classes, ...props }: HeaderProps) => React__default.JSX.Element;
387
+ declare const Header: ({ id, children, headerBackground, styles, classes, ...props }: HeaderProps) => React.JSX.Element;
386
388
  /**
387
389
  * Main component.
388
390
  *
@@ -392,7 +394,7 @@ declare const Header: ({ id, children, headerBackground, styles, classes, ...pro
392
394
  * @param styles - Optional styles object.
393
395
  * @param props - Other props.
394
396
  */
395
- declare const Main: ({ id, children, styles, classes, ...props }: ComponentProps) => React__default.JSX.Element;
397
+ declare const Main: ({ id, children, styles, classes, ...props }: ComponentProps) => React.JSX.Element;
396
398
  /**
397
399
  * Footer component that renders a footer element with a section element inside.
398
400
  * @param {ReactNode} children - Child elements to render inside the section element.
@@ -400,8 +402,8 @@ declare const Main: ({ id, children, styles, classes, ...props }: ComponentProps
400
402
  * @param props - Additional props to pass to the footer element.
401
403
  * @returns A React component that renders a footer element with a section element inside.
402
404
  */
403
- declare const Footer: ({ id, classes, children, styles, ...props }: ComponentProps) => React__default.JSX.Element;
404
- declare const Aside: ({ id, children, styles, classes, ...props }: ComponentProps) => React__default.JSX.Element;
405
+ declare const Footer: ({ id, classes, children, styles, ...props }: ComponentProps) => React.JSX.Element;
406
+ declare const Aside: ({ id, children, styles, classes, ...props }: ComponentProps) => React.JSX.Element;
405
407
  /**
406
408
  * Section component that renders a section element.
407
409
  *
@@ -409,7 +411,7 @@ declare const Aside: ({ id, children, styles, classes, ...props }: ComponentProp
409
411
  * @param styles - CSS styles to apply to the section.
410
412
  * @param props - Other props.
411
413
  */
412
- declare const Section: ({ id, children, styles, classes, ...props }: ComponentProps) => React__default.JSX.Element;
414
+ declare const Section: ({ id, children, styles, classes, ...props }: ComponentProps) => React.JSX.Element;
413
415
  /**
414
416
  * Article component renders an HTML <article> element.
415
417
  *
@@ -417,7 +419,7 @@ declare const Section: ({ id, children, styles, classes, ...props }: ComponentPr
417
419
  * @param styles - CSS styles to apply to the article.
418
420
  * @param props - Additional props to pass to the article element.
419
421
  */
420
- declare const Article: ({ id, children, styles, classes, ...props }: ComponentProps) => React__default.JSX.Element;
422
+ declare const Article: ({ id, children, styles, classes, ...props }: ComponentProps) => React.JSX.Element;
421
423
 
422
424
  /**
423
425
  * Props for the Badge component
@@ -434,13 +436,13 @@ type BadgeProps = {
434
436
  /**
435
437
  * Content to display inside the badge (typically numbers or short text)
436
438
  */
437
- children?: React__default.ReactNode;
439
+ children?: React.ReactNode;
438
440
  /**
439
441
  * Visual variant of the badge
440
442
  * - 'rounded': Circular badge style
441
443
  */
442
444
  variant?: 'rounded';
443
- } & React__default.ComponentProps<typeof UI>;
445
+ } & React.ComponentProps<typeof UI>;
444
446
  /**
445
447
  * Badge - A small label component for displaying status, counts, or notifications
446
448
  *
@@ -505,43 +507,229 @@ type BadgeProps = {
505
507
  * <Badge>12</Badge>
506
508
  */
507
509
  declare const Badge: {
508
- ({ id, styles, classes, children, variant, ...props }: BadgeProps): React__default.JSX.Element;
510
+ ({ id, styles, classes, children, variant, ...props }: BadgeProps): React.JSX.Element;
509
511
  displayName: string;
510
512
  };
511
513
 
514
+ /**
515
+ * Available visual variants for the Tag component
516
+ *
517
+ * Each variant applies predefined color schemes and styling through CSS custom properties:
518
+ * - `alpha`: Early development stage indicator (warning colors)
519
+ * - `beta`: Pre-release version indicator (warning colors)
520
+ * - `stable`: Production-ready release indicator (success colors)
521
+ * - `production`: Live production environment indicator (primary colors)
522
+ *
523
+ * @example
524
+ * ```tsx
525
+ * <Tag variant="beta">Beta Feature</Tag>
526
+ * <Tag variant="stable">v2.0</Tag>
527
+ * ```
528
+ */
529
+ type TagVariant = 'alpha' | 'beta' | 'stable' | 'production';
530
+ /**
531
+ * Props for the Tag component
532
+ *
533
+ * @property {React.ReactNode} children - REQUIRED - Content to display inside the tag (typically short text or version numbers)
534
+ * @property {'span' | 'p'} [elm='span'] - HTML element to render the tag as. Use 'p' for block-level tags, 'span' for inline
535
+ * @property {'note' | 'status'} [role='note'] - ARIA role for semantic meaning and screen reader announcements
536
+ * @property {TagVariant} [variant] - Visual variant that applies predefined color schemes (alpha, beta, stable, production)
537
+ * @property {string} [id] - Optional HTML id attribute for the tag element
538
+ * @property {React.CSSProperties} [styles] - Inline styles to apply to the tag
539
+ * @property {string} [classes] - CSS class names to apply to the tag
540
+ * @property {string} [aria-label] - Accessible label for screen readers. Recommended when tag content needs additional context
541
+ * @property {string} [aria-labelledby] - Reference to element(s) that label the tag for additional context
542
+ * @property {string} [aria-describedby] - Reference to element(s) that describe the tag for additional context
543
+ * @property {'off' | 'polite' | 'assertive'} [aria-live] - ARIA live region politeness setting for dynamic content (use with role="status")
544
+ *
545
+ * @example
546
+ * ```tsx
547
+ * // Basic tag with variant
548
+ * <Tag variant="beta">Beta</Tag>
549
+ *
550
+ * // Tag with custom element and role
551
+ * <Tag elm="p" role="status" variant="stable">v1.0 Released</Tag>
552
+ *
553
+ * // Tag with accessibility label
554
+ * <Tag variant="production" aria-label="Currently in production environment">
555
+ * Production
556
+ * </Tag>
557
+ * ```
558
+ */
512
559
  type TagProps = {
513
- /** HTML element to display the badge as span or p */
560
+ /**
561
+ * HTML element to display the tag as
562
+ * - 'span': Inline tag (default) - use for inline placement within text flow
563
+ * - 'p': Block-level tag - use when tag should appear as a distinct block element
564
+ */
514
565
  elm?: 'span' | 'p';
515
- /** Aria role for the component - conditional */
516
- role: 'note' | 'status';
517
- } & React__default.ComponentProps<typeof UI>;
566
+ /**
567
+ * ARIA role for semantic meaning and screen reader behavior
568
+ * - 'note': For static, informational tags (default) - screen readers read once
569
+ * - 'status': For dynamic tags that update - screen readers announce changes to users
570
+ *
571
+ * Choose 'status' when tag content changes dynamically (e.g., real-time status updates).
572
+ * Choose 'note' for static tags that provide contextual information.
573
+ */
574
+ role?: 'note' | 'status';
575
+ /**
576
+ * Visual variant that applies predefined color schemes
577
+ * - 'alpha': Early development stage (amber background with warning symbol ⚠)
578
+ * - 'beta': Pre-release version (amber background with warning symbol ⚠)
579
+ * - 'stable': Production-ready release (green background with checkmark ✓)
580
+ * - 'production': Live production environment (blue background with live indicator ●)
581
+ *
582
+ * Each variant includes both color AND visual symbols for accessibility (WCAG 1.4.1).
583
+ */
584
+ variant?: TagVariant;
585
+ /**
586
+ * Content to display inside the tag
587
+ * REQUIRED - Ensures tag has meaningful content for all users including screen reader users
588
+ * Typically short text, version numbers, or status labels
589
+ */
590
+ children: React.ReactNode;
591
+ /**
592
+ * Accessible label for screen readers
593
+ * Provides additional context beyond visible text
594
+ */
595
+ 'aria-label'?: string;
596
+ /**
597
+ * Reference to element(s) that label the tag
598
+ * Alternative to aria-label for programmatic labeling
599
+ */
600
+ 'aria-labelledby'?: string;
601
+ /**
602
+ * Reference to element(s) that describe the tag
603
+ * Provides additional descriptive context
604
+ */
605
+ 'aria-describedby'?: string;
606
+ /**
607
+ * ARIA live region politeness setting
608
+ * - 'off': Updates not announced (default)
609
+ * - 'polite': Announces when user is idle (recommended for role="status")
610
+ * - 'assertive': Announces immediately (use sparingly for critical updates)
611
+ */
612
+ 'aria-live'?: 'off' | 'polite' | 'assertive';
613
+ } & Omit<React.ComponentProps<typeof UI>, 'as' | 'aria-label' | 'aria-labelledby' | 'aria-describedby' | 'aria-live'>;
614
+
615
+ /**
616
+ * Tag - A small inline label component for displaying status, versions, or environment indicators
617
+ *
618
+ * The Tag component is used to highlight supplementary information such as release stages
619
+ * (alpha, beta, stable), environment indicators (production), or version labels. It renders
620
+ * as either a `<span>` (inline) or `<p>` (block) element with semantic ARIA roles.
621
+ *
622
+ * ## Design Philosophy
623
+ *
624
+ * Tags serve as visual and semantic indicators that:
625
+ * - Communicate the state or stage of features, releases, or environments
626
+ * - Provide quick visual scanning through color-coded variants
627
+ * - Maintain accessibility through proper ARIA roles and labels
628
+ *
629
+ * ## Styling Architecture
630
+ *
631
+ * The Tag component uses CSS custom properties (CSS variables) for theming and styling,
632
+ * allowing for easy customization through the `data-tag` attribute. Each variant
633
+ * (alpha, beta, stable, production) applies predefined color schemes defined in SCSS.
634
+ *
635
+ * ## Accessibility Considerations (WCAG 2.1 AA Compliance)
636
+ *
637
+ * - **Semantic Roles**: Uses `role="note"` for static tags or `role="status"` for dynamic content
638
+ * - `role="note"`: Read once by screen readers, suitable for static labels (default)
639
+ * - `role="status"`: Announces updates to screen readers, use for changing status indicators
640
+ * - **Color Independence**: Don't rely solely on color to convey meaning - include text labels
641
+ * - **Text Alternatives**: For icon-only tags, provide `aria-label` for screen reader context
642
+ * - **Contrast Ratios**: All variants meet WCAG AA contrast requirements (4.5:1 for normal text)
643
+ * - **Live Regions**: When using `role="status"`, tag becomes a live region for accessibility
644
+ *
645
+ * ## When to Use Each Role
646
+ *
647
+ * **Use `role="note"` (default) when:**
648
+ * - Displaying static version numbers (e.g., "v2.1.0")
649
+ * - Showing fixed environment indicators (e.g., "Beta Feature")
650
+ * - Labeling unchanging content categories
651
+ *
652
+ * **Use `role="status"` when:**
653
+ * - Indicating real-time status that may change (e.g., "Processing" → "Complete")
654
+ * - Displaying live build/deployment states
655
+ * - Showing dynamic feature flags that toggle
656
+ *
657
+ * @param {TagProps} props - Component props
658
+ * @returns {React.ReactElement} A Tag component
659
+ *
660
+ * @example
661
+ * // Basic tag with beta variant (default inline span)
662
+ * <Tag variant="beta">Beta</Tag>
663
+ *
664
+ * @example
665
+ * // Production environment indicator as block element
666
+ * <Tag elm="p" variant="production">Production Environment</Tag>
667
+ *
668
+ * @example
669
+ * // Dynamic status tag with live updates
670
+ * <Tag role="status" variant="stable">
671
+ * {isDeployed ? 'Deployed' : 'Deploying...'}
672
+ * </Tag>
673
+ *
674
+ * @example
675
+ * // Tag with custom styling and accessibility label
676
+ * <Tag
677
+ * variant="alpha"
678
+ * aria-label="Alpha version - may contain bugs"
679
+ * styles={{ fontSize: '0.75rem' }}
680
+ * >
681
+ * Alpha
682
+ * </Tag>
683
+ *
684
+ * @example
685
+ * // ✅ GOOD: Clear text content with variant for visual enhancement
686
+ * <Tag variant="stable">v2.0 Stable</Tag>
687
+ *
688
+ * @example
689
+ * // ✅ GOOD: Dynamic status with proper role
690
+ * <Tag role="status" variant="production">{deploymentStatus}</Tag>
691
+ *
692
+ * @example
693
+ * // ✅ GOOD: Accessible tag with descriptive label
694
+ * <Tag variant="beta" aria-label="Beta feature - feedback welcome">
695
+ * Beta
696
+ * </Tag>
697
+ *
698
+ * @example
699
+ * // ❌ BAD: Relying only on color without text
700
+ * <Tag variant="production" aria-label="Production" />
701
+ *
702
+ * @example
703
+ * // ❌ BAD: Using status role for static content
704
+ * <Tag role="status" variant="stable">v1.0</Tag>
705
+ */
518
706
  declare const Tag: {
519
- ({ elm, role, children, styles, ...props }: TagProps): React__default.JSX.Element;
707
+ ({ elm, role, variant, children, styles, ...props }: TagProps): React.JSX.Element;
520
708
  displayName: string;
521
709
  };
522
710
 
523
711
  declare const Caption: {
524
- ({ children, ...props }: ComponentProps$1): React__default.JSX.Element;
712
+ ({ children, ...props }: ComponentProps$1): React.JSX.Element;
525
713
  displayName: string;
526
714
  };
527
715
  declare const Thead: {
528
- ({ children, ...props }: ComponentProps$1): React__default.JSX.Element;
716
+ ({ children, ...props }: ComponentProps$1): React.JSX.Element;
529
717
  displayName: string;
530
718
  };
531
719
  declare const Tbody: {
532
- ({ children, ...props }: ComponentProps$1): React__default.JSX.Element;
720
+ ({ children, ...props }: ComponentProps$1): React.JSX.Element;
533
721
  displayName: string;
534
722
  };
535
723
  declare const Tr: {
536
- ({ children, ...props }: ComponentProps$1): React__default.JSX.Element;
724
+ ({ children, ...props }: ComponentProps$1): React.JSX.Element;
537
725
  displayName: string;
538
726
  };
539
727
  declare const Td: {
540
- ({ children, ...props }: ComponentProps$1): React__default.JSX.Element;
728
+ ({ children, ...props }: ComponentProps$1): React.JSX.Element;
541
729
  displayName: string;
542
730
  };
543
731
  declare const Table: {
544
- ({ id, dataStyle, children, ...props }: ComponentProps$1): React__default.JSX.Element;
732
+ ({ id, dataStyle, children, ...props }: ComponentProps$1): React.JSX.Element;
545
733
  displayName: string;
546
734
  };
547
735
 
@@ -576,7 +764,7 @@ type DetailsProps = {
576
764
  * summary={<><Icon /> Shipping Information</>}
577
765
  * ```
578
766
  */
579
- summary: React__default.ReactNode;
767
+ summary: React.ReactNode;
580
768
  /**
581
769
  * Optional icon displayed before the summary text.
582
770
  * Commonly used for chevron/arrow indicators.
@@ -586,7 +774,7 @@ type DetailsProps = {
586
774
  * icon={<ChevronDownIcon />}
587
775
  * ```
588
776
  */
589
- icon?: React__default.ReactNode;
777
+ icon?: React.ReactNode;
590
778
  /**
591
779
  * Accessible label for screen readers.
592
780
  * If not provided, the native `<details>` semantic will be used.
@@ -613,7 +801,7 @@ type DetailsProps = {
613
801
  * ```
614
802
  */
615
803
  name?: string;
616
- } & React__default.ComponentProps<"details"> & Partial<React__default.ComponentProps<typeof UI>>;
804
+ } & React.ComponentProps<"details"> & Partial<React.ComponentProps<typeof UI>>;
617
805
 
618
806
  /**
619
807
  * Details - A progressive disclosure component using native HTML `<details>` element.
@@ -664,6 +852,107 @@ type DetailsProps = {
664
852
  * <Details name="faq" summary="Question 3">Answer 3</Details>
665
853
  * ```
666
854
  */
667
- declare const Details: React__default.ForwardRefExoticComponent<Omit<DetailsProps, "ref"> & React__default.RefAttributes<HTMLDetailsElement>>;
855
+ declare const Details: React.ForwardRefExoticComponent<Omit<DetailsProps, "ref"> & React.RefAttributes<HTMLDetailsElement>>;
856
+
857
+ /**
858
+ * @deprecated This type is deprecated. Use `PolymorphicRef` from './ui.tsx' instead.
859
+ * The UI component provides better type safety and accessibility features.
860
+ */
861
+ type PolymorphicRef<C extends React.ElementType> = React.Ref<React.ElementRef<C>>;
862
+ /**
863
+ * @deprecated This type is deprecated. Use `AsProp` from './ui.tsx' instead.
864
+ * The UI component provides better type safety and accessibility features.
865
+ */
866
+ type AsProp<C extends React.ElementType> = {
867
+ as?: C;
868
+ };
869
+ /**
870
+ * @deprecated This type is deprecated. Use `PropsToOmit` from './ui.tsx' instead.
871
+ * The UI component provides better type safety and accessibility features.
872
+ */
873
+ type PropsToOmit<C extends React.ElementType, P> = keyof (AsProp<C> & P);
874
+ /**
875
+ * @deprecated This type is deprecated. Use `PolymorphicComponentProp` from './ui.tsx' instead.
876
+ * The UI component provides better type safety and accessibility features.
877
+ */
878
+ type PolymorphicComponentProp<C extends React.ElementType, Props = {}> = React.PropsWithChildren<Props & AsProp<C>> & Omit<React.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>;
879
+ /**
880
+ * @deprecated This type is deprecated. Use `PolymorphicComponentPropWithRef` from './ui.tsx' instead.
881
+ * The UI component provides better type safety and accessibility features.
882
+ */
883
+ type PolymorphicComponentPropWithRef<C extends React.ElementType, Props = {}> = PolymorphicComponentProp<C, Props> & {
884
+ ref?: PolymorphicRef<C> | React.ForwardedRef<React.ElementRef<C>>;
885
+ };
886
+ /**
887
+ * @deprecated This type is deprecated. Use `UIProps` from './ui.tsx' instead.
888
+ * The UI component provides better type safety and accessibility features.
889
+ */
890
+ type FPProps<C extends React.ElementType> = PolymorphicComponentPropWithRef<C, {
891
+ renderStyles?: boolean;
892
+ styles?: React.CSSProperties;
893
+ classes?: string;
894
+ }>;
895
+ /**
896
+ * FPComponent type definition
897
+ *
898
+ * @deprecated This type is deprecated. Use the `UI` component from './ui.tsx' instead.
899
+ * The UI component provides enhanced accessibility documentation, better type safety,
900
+ * and comprehensive WCAG 2.1 AA compliance guidance.
901
+ *
902
+ * @typeParam C - The HTML element type to render
903
+ * @param props - The component props
904
+ * @returns React component
905
+ *
906
+ * @example
907
+ * ```typescript
908
+ * // Migration from FP to UI
909
+ * // Before:
910
+ * import FP from '@fpkit/acss/components/fp';
911
+ * <FP as="button" styles={{ padding: '1rem' }}>Click me</FP>
912
+ *
913
+ * // After:
914
+ * import UI from '@fpkit/acss/components/ui';
915
+ * <UI as="button" styles={{ padding: '1rem' }}>Click me</UI>
916
+ * ```
917
+ */
918
+ type FPComponent = {
919
+ <C extends React.ElementType = 'span'>(props: FPProps<C>): React.ReactElement | null;
920
+ displayName?: string;
921
+ };
922
+ /**
923
+ * @deprecated **DEPRECATED:** This component is deprecated and will be removed in a future version.
924
+ * Please use the `UI` component from `./ui.tsx` instead.
925
+ *
926
+ * The UI component is a drop-in replacement with the same API but provides:
927
+ * - Enhanced accessibility documentation and WCAG 2.1 AA compliance guidance
928
+ * - Better TypeScript type safety with detailed JSDoc comments
929
+ * - Comprehensive examples for accessible component patterns
930
+ * - More robust style merging with defaultStyles support
931
+ *
932
+ * @example
933
+ * ```typescript
934
+ * // Migration Guide
935
+ * // Before:
936
+ * import FP from '@fpkit/acss/components/fp';
937
+ * <FP as="button" styles={{ padding: '1rem' }} classes="btn">
938
+ * Click me
939
+ * </FP>
940
+ *
941
+ * // After:
942
+ * import UI from '@fpkit/acss/components/ui';
943
+ * <UI as="button" styles={{ padding: '1rem' }} classes="btn">
944
+ * Click me
945
+ * </UI>
946
+ * ```
947
+ *
948
+ * @param {Object} props - Component props
949
+ * @param {React.ElementType} props.as - The HTML element to render. Defaults to 'div'.
950
+ * @param {boolean} props.renderStyles - Whether to render styles or not. Defaults to true.
951
+ * @param {Object} props.styles - The styles to apply to the component.
952
+ * @param {Object} props.defaultStyles - The default styles to apply to the component.
953
+ * @param {React.ReactNode} props.children - The children to render inside the component.
954
+ * @returns {React.ReactElement} - A React component that renders an HTML element with optional styles.
955
+ */
956
+ declare const FP: FPComponent;
668
957
 
669
- export { Article, Aside, Badge, BadgeProps, Caption, ComponentProps$1 as ComponentProps, Details, Footer, Header, Img, ImgProps, Landmarks, Main, Section, Table, Tag, TagProps, Tbody, Td, TextToSpeech, Thead, Tr };
958
+ export { Article, Aside, Badge, BadgeProps, FP as Box, Caption, ComponentProps$1 as ComponentProps, Details, FP, Footer, Header, Img, ImgProps, Landmarks, Main, Section, Table, Tag, TagProps, TagVariant, Tbody, Td, TextToSpeech, Thead, Tr };
package/libs/index.js CHANGED
@@ -1,27 +1,29 @@
1
- import { b } from './chunk-XBA562WW.js';
2
- export { a as Textarea } from './chunk-XBA562WW.js';
3
- export { a as Field } from './chunk-RIVUMPOG.js';
4
- export { a as Caption, i as TBL, f as Table, c as Tbody, e as Td, b as Thead, d as Tr } from './chunk-5M57K4SW.js';
5
- export { a as Dialog } from './chunk-VUH3FXGJ.js';
6
- export { c as Nav, b as NavItem, a as NavList } from './chunk-2Y7W75TT.js';
7
- export { b as List } from './chunk-SMYRLO3E.js';
1
+ import { b } from './chunk-IRLFZ3OL.js';
2
+ export { a as Textarea } from './chunk-IRLFZ3OL.js';
3
+ export { a as Field } from './chunk-HRRHPLER.js';
4
+ export { a as Caption, i as TBL, f as Table, c as Tbody, e as Td, b as Thead, d as Tr } from './chunk-Y2PFDELK.js';
5
+ export { a as Dialog } from './chunk-X3JCTEPD.js';
6
+ export { c as Nav, b as NavItem, a as NavList } from './chunk-FVROL3V5.js';
7
+ export { b as List } from './chunk-IEB64SWY.js';
8
8
  export { b as Popover } from './chunk-23ANBDCR.js';
9
- export { a as Text } from './chunk-NGTJDDFO.js';
10
- export { b as Heading, a as Title } from './chunk-ETFLFC2S.js';
11
- export { b as Breadcrumb, a as useBreadcrumbSegments } from './chunk-GZ4QFPRY.js';
9
+ export { a as Text } from './chunk-IQ76HGVP.js';
10
+ export { b as Heading, a as Title } from './chunk-ZFJ4U45S.js';
11
+ export { b as Breadcrumb, a as useBreadcrumbSegments } from './chunk-X5LGFCWG.js';
12
12
  import './chunk-GCGKYLDG.js';
13
- import { b as b$1 } from './chunk-772NRB75.js';
14
- export { a as Icon } from './chunk-772NRB75.js';
15
- export { d as Card, b as CardContent, c as CardFooter, a as CardTitle } from './chunk-JJ43O4Y5.js';
16
- export { a as Modal } from './chunk-ZANSFMTD.js';
17
- export { a as Button } from './chunk-QLZWHAMK.js';
18
- export { a as Input } from './chunk-BHRQBJRY.js';
19
- export { a as Box, a as FP } from './chunk-P7TTEYCD.js';
20
- export { a as Link, b as To } from './chunk-TYRCEX2L.js';
21
- import { a } from './chunk-KUKIVRC2.js';
13
+ import { b as b$1 } from './chunk-5QD3DWFI.js';
14
+ export { a as Icon } from './chunk-5QD3DWFI.js';
15
+ export { d as Card, b as CardContent, c as CardFooter, a as CardTitle } from './chunk-KK47SYZI.js';
16
+ export { a as Modal } from './chunk-7XPFW7CB.js';
17
+ export { a as Button } from './chunk-OVWLQYMK.js';
18
+ export { a as Input } from './chunk-F5EYMVQM.js';
19
+ export { a as Box, a as FP } from './chunk-6SAHIYCZ.js';
20
+ import './chunk-BFK62VX5.js';
21
+ import './chunk-75QHTLFO.js';
22
+ export { a as Link, b as To } from './chunk-UEPAWMDF.js';
23
+ import { a } from './chunk-HHLNOC5T.js';
22
24
  import u, { useCallback, useMemo, useState, useEffect } from 'react';
23
25
 
24
- var M=({src:e="//",alt:t,width:s=480,height:n,styles:r,loading:l="lazy",placeholder:m,fetchpriority:c="low",decoding:d="auto",srcSet:T,sizes:x,onError:y,onLoad:P,...C})=>{let h=useMemo(()=>{let o=typeof s=="number"?s:480,p=typeof n=="number"?n:Math.round(o*.75),i=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${o} ${p}">
26
+ var V=({src:e="//",alt:s,width:t=480,height:n,styles:r,loading:i="lazy",placeholder:c,fetchpriority:m="low",decoding:d="auto",srcSet:T,sizes:x,onError:y,onLoad:P,...C})=>{let h=useMemo(()=>{let o=typeof t=="number"?t:480,p=typeof n=="number"?n:Math.round(o*.75),l=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${o} ${p}">
25
27
  <defs>
26
28
  <linearGradient id="grad-${o}-${p}" x1="0%" y1="0%" x2="100%" y2="100%">
27
29
  <stop offset="0%" style="stop-color:#6366f1;stop-opacity:1" />
@@ -33,8 +35,8 @@ var M=({src:e="//",alt:t,width:s=480,height:n,styles:r,loading:l="lazy",placehol
33
35
  <circle cx="${o*.15}" cy="${p*.2}" r="${Math.min(o,p)*.08}" fill="rgba(255,255,255,0.2)"/>
34
36
  <path d="M0,${p*.75} Q${o*.25},${p*.65} ${o*.5},${p*.75} T${o},${p*.75} L${o},${p} L0,${p} Z" fill="rgba(0,0,0,0.15)"/>
35
37
  <text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="${Math.max(16,Math.min(o,p)*.05)}" font-weight="500" fill="rgba(255,255,255,0.9)">${o}\xD7${p}</text>
36
- </svg>`;return `data:image/svg+xml,${encodeURIComponent(i)}`},[s,n]),w=m??h;return u.createElement(a,{as:"img",src:e,alt:t,width:s,height:n||"auto",loading:l,style:r,srcSet:T,sizes:x,onError:o=>{y&&y(o),o.defaultPrevented||o.currentTarget.src!==w&&(o.currentTarget.src=w);},onLoad:o=>{P?.(o);},decoding:d,...C,...c&&{fetchpriority:c}})};M.displayName="Img";var V=e=>{let[t,s]=useState([]),[n,r]=useState(e),[l,m]=useState(!1),[c,d]=useState(!1),[T,x]=useState(null);return useEffect(()=>{let f=()=>{let o=window.speechSynthesis.getVoices();s(o);let p=o.find(i=>i.name==="Google US English");if(p)r(p);else {let i=o.find($=>$.lang.startsWith("en-"));i&&r(i);}};return f(),window.speechSynthesis.onvoiceschanged=f,()=>{window.speechSynthesis.onvoiceschanged=null;}},[]),{speak:(f,o={},p)=>{let i=new SpeechSynthesisUtterance(f);i.lang=o.lang??"en-US",i.pitch=o.pitch??1,i.rate=o.rate??1,i.voice=n??o.voice??null,i.onend=()=>{m(!1),d(!1),p&&p();},"speechSynthesis"in window?(window.speechSynthesis.speak(i),x(i),m(!0),d(!1)):console.error("Speech synthesis not supported");},pause:()=>{l&&!c&&(window.speechSynthesis.pause(),d(!0));},resume:()=>{l&&c&&(window.speechSynthesis.resume(),d(!1));},cancel:()=>{l&&(window.speechSynthesis.cancel(),m(!1),d(!1));},isSpeaking:l,isPaused:c,availableVoices:t,changeVoice:f=>{r(f);},currentVoice:n,getAvailableLanguages:()=>[...new Set(t.map(f=>f.lang))]}};var pe=({children:e,onClick:t})=>u.createElement(a,{as:"button",type:"button",className:"tts-border","data-btn":"sm text pill",onClick:t},e),U=u.memo(pe),L=({label:e,isSpeaking:t,isPaused:s,onSpeak:n,onPause:r,onResume:l,onCancel:m})=>u.createElement(a,{as:"div","data-tts":!0},e&&u.createElement("p",null,e),!t&&u.createElement(U,{"aria-label":"Speak",onClick:n},u.createElement(b$1.PlaySolid,{size:16})),t&&!s&&u.createElement(U,{"aria-label":"Pause",onClick:r},u.createElement(b$1.PauseSolid,{size:16})),s&&u.createElement(U,{"aria-label":"Resume",onClick:l},u.createElement(b$1.ResumeSolid,{size:16})),u.createElement(U,{"aria-label":"Stop",onClick:m},u.createElement(b$1.StopSolid,{size:16})));L.displayName="TextToSpeechControls";L.TTSButton=U;var H=L;var z=({initialText:e="",showTextInput:t=!1,voice:s,pitch:n=1,rate:r=1,language:l,label:m,onEnd:c})=>{let{speak:d,pause:T,resume:x,cancel:y,isSpeaking:P,isPaused:C,getAvailableLanguages:h,availableVoices:w}=V(),[I,f]=useState(e);console.log(h()),useEffect(()=>{f(e);},[e]);let o=()=>{I.trim()!==""&&d(I,{voice:s,pitch:n,rate:r},i);},p=$=>{f($.target.value);},i=()=>{c&&c();};return u.createElement(u.Fragment,null,t&&u.createElement(b,{value:I,onChange:p}),u.createElement(H,{label:m,isSpeaking:P,isPaused:C,onSpeak:o,onPause:T,onResume:x,onCancel:y}))};z.displayName="TextToSpeechComponent";var S=e=>u.createElement(u.Fragment,null,e),ce=({id:e,children:t,headerBackground:s,styles:n,classes:r,...l})=>u.createElement(a,{as:"header",id:e,styles:n,className:r,...l},s,u.createElement(a,{as:"section"},t)),me=({id:e,children:t,styles:s,classes:n,...r})=>u.createElement(a,{as:"main",id:e,styles:s,...r,className:n},t),de=({id:e,classes:t,children:s,styles:n={},...r})=>u.createElement(a,{as:"footer",id:e,className:t,styles:n,...r},u.createElement(a,{as:"section"},s||"Copyright \xA9 2022")),fe=({id:e,children:t,styles:s={},classes:n,...r})=>u.createElement(a,{as:"aside",id:e,styles:s,className:n,...r},u.createElement(a,{as:"section"},t)),ue=({id:e,children:t,styles:s,classes:n,...r})=>u.createElement(a,{as:"section",id:e,styles:s,className:n,...r},t),ge=({id:e,children:t,styles:s,classes:n,...r})=>u.createElement(a,{as:"article",id:e,styles:s,className:n,...r},t);S.displayName="Landmarks";S.Header=ce;S.Main=me;S.Footer=de;S.Aside=fe;S.Section=ue;S.Article=ge;var A=({id:e,styles:t,classes:s,children:n,variant:r,...l})=>u.createElement(a,{as:"sup",id:e,styles:t,className:s,"data-badge":r||void 0,role:"status",...l},u.createElement(a,{as:"span"},n));A.displayName="Badge";var xe=({elm:e="span",role:t="note",children:s,styles:n,...r})=>u.createElement(a,{as:e,role:t,styles:n,...r},s);xe.displayName="Tag";var ye=u.forwardRef(({summary:e,icon:t,styles:s,classes:n,ariaLabel:r,name:l,open:m,onPointerDown:c,onToggle:d,children:T,...x},y)=>{let P=useCallback(h=>{c?.(h);},[c]),C=useCallback(h=>{d?.(h);},[d]);return u.createElement(a,{as:"details",styles:s,classes:n,onToggle:C,ref:y,open:m,"aria-label":r,name:l,...x},u.createElement(a,{as:"summary",onPointerDown:P},t,e),u.createElement(a,{as:"section"},T))});ye.displayName="Details";
38
+ </svg>`;return `data:image/svg+xml,${encodeURIComponent(l)}`},[t,n]),w=c??h;return u.createElement(a,{as:"img",src:e,alt:s,width:t,height:n||"auto",loading:i,style:r,srcSet:T,sizes:x,onError:o=>{y&&y(o),o.defaultPrevented||o.currentTarget.src!==w&&(o.currentTarget.src=w);},onLoad:o=>{P?.(o);},decoding:d,...C,...m&&{fetchpriority:m}})};V.displayName="Img";var M=e=>{let[s,t]=useState([]),[n,r]=useState(e),[i,c]=useState(!1),[m,d]=useState(!1),[T,x]=useState(null);return useEffect(()=>{let f=()=>{let o=window.speechSynthesis.getVoices();t(o);let p=o.find(l=>l.name==="Google US English");if(p)r(p);else {let l=o.find($=>$.lang.startsWith("en-"));l&&r(l);}};return f(),window.speechSynthesis.onvoiceschanged=f,()=>{window.speechSynthesis.onvoiceschanged=null;}},[]),{speak:(f,o={},p)=>{let l=new SpeechSynthesisUtterance(f);l.lang=o.lang??"en-US",l.pitch=o.pitch??1,l.rate=o.rate??1,l.voice=n??o.voice??null,l.onend=()=>{c(!1),d(!1),p&&p();},"speechSynthesis"in window?(window.speechSynthesis.speak(l),x(l),c(!0),d(!1)):console.error("Speech synthesis not supported");},pause:()=>{i&&!m&&(window.speechSynthesis.pause(),d(!0));},resume:()=>{i&&m&&(window.speechSynthesis.resume(),d(!1));},cancel:()=>{i&&(window.speechSynthesis.cancel(),c(!1),d(!1));},isSpeaking:i,isPaused:m,availableVoices:s,changeVoice:f=>{r(f);},currentVoice:n,getAvailableLanguages:()=>[...new Set(s.map(f=>f.lang))]}};var pe=({children:e,onClick:s})=>u.createElement(a,{as:"button",type:"button",className:"tts-border","data-btn":"sm text pill",onClick:s},e),U=u.memo(pe),L=({label:e,isSpeaking:s,isPaused:t,onSpeak:n,onPause:r,onResume:i,onCancel:c})=>u.createElement(a,{as:"div","data-tts":!0},e&&u.createElement("p",null,e),!s&&u.createElement(U,{"aria-label":"Speak",onClick:n},u.createElement(b$1.PlaySolid,{size:16})),s&&!t&&u.createElement(U,{"aria-label":"Pause",onClick:r},u.createElement(b$1.PauseSolid,{size:16})),t&&u.createElement(U,{"aria-label":"Resume",onClick:i},u.createElement(b$1.ResumeSolid,{size:16})),u.createElement(U,{"aria-label":"Stop",onClick:c},u.createElement(b$1.StopSolid,{size:16})));L.displayName="TextToSpeechControls";L.TTSButton=U;var H=L;var z=({initialText:e="",showTextInput:s=!1,voice:t,pitch:n=1,rate:r=1,language:i,label:c,onEnd:m})=>{let{speak:d,pause:T,resume:x,cancel:y,isSpeaking:P,isPaused:C,getAvailableLanguages:h,availableVoices:w}=M(),[I,f]=useState(e);console.log(h()),useEffect(()=>{f(e);},[e]);let o=()=>{I.trim()!==""&&d(I,{voice:t,pitch:n,rate:r},l);},p=$=>{f($.target.value);},l=()=>{m&&m();};return u.createElement(u.Fragment,null,s&&u.createElement(b,{value:I,onChange:p}),u.createElement(H,{label:c,isSpeaking:P,isPaused:C,onSpeak:o,onPause:T,onResume:x,onCancel:y}))};z.displayName="TextToSpeechComponent";var S=e=>u.createElement(u.Fragment,null,e),ce=({id:e,children:s,headerBackground:t,styles:n,classes:r,...i})=>u.createElement(a,{as:"header",id:e,styles:n,className:r,...i},t,u.createElement(a,{as:"section"},s)),me=({id:e,children:s,styles:t,classes:n,...r})=>u.createElement(a,{as:"main",id:e,styles:t,...r,className:n},s),de=({id:e,classes:s,children:t,styles:n={},...r})=>u.createElement(a,{as:"footer",id:e,className:s,styles:n,...r},u.createElement(a,{as:"section"},t||"Copyright \xA9 2022")),fe=({id:e,children:s,styles:t={},classes:n,...r})=>u.createElement(a,{as:"aside",id:e,styles:t,className:n,...r},u.createElement(a,{as:"section"},s)),ue=({id:e,children:s,styles:t,classes:n,...r})=>u.createElement(a,{as:"section",id:e,styles:t,className:n,...r},s),ge=({id:e,children:s,styles:t,classes:n,...r})=>u.createElement(a,{as:"article",id:e,styles:t,className:n,...r},s);S.displayName="Landmarks";S.Header=ce;S.Main=me;S.Footer=de;S.Aside=fe;S.Section=ue;S.Article=ge;var A=({id:e,styles:s,classes:t,children:n,variant:r,...i})=>u.createElement(a,{as:"sup",id:e,styles:s,className:t,"data-badge":r||void 0,role:"status",...i},u.createElement(a,{as:"span"},n));A.displayName="Badge";var xe=({elm:e="span",role:s="note",variant:t,children:n,styles:r,...i})=>u.createElement(a,{as:e,role:s,"data-tag":t||void 0,styles:r,...i},n);xe.displayName="Tag";var ye=u.forwardRef(({summary:e,icon:s,styles:t,classes:n,ariaLabel:r,name:i,open:c,onPointerDown:m,onToggle:d,children:T,...x},y)=>{let P=useCallback(h=>{m?.(h);},[m]),C=useCallback(h=>{d?.(h);},[d]);return u.createElement(a,{as:"details",styles:t,classes:n,onToggle:C,ref:y,open:c,"aria-label":r,name:i,...x},u.createElement(a,{as:"summary",onPointerDown:P},s,e),u.createElement(a,{as:"section"},T))});ye.displayName="Details";
37
39
 
38
- export { ge as Article, fe as Aside, A as Badge, ye as Details, de as Footer, ce as Header, M as Img, S as Landmarks, me as Main, ue as Section, xe as Tag, z as TextToSpeech };
40
+ export { ge as Article, fe as Aside, A as Badge, ye as Details, de as Footer, ce as Header, V as Img, S as Landmarks, me as Main, ue as Section, xe as Tag, z as TextToSpeech };
39
41
  //# sourceMappingURL=out.js.map
40
42
  //# sourceMappingURL=index.js.map