@fpkit/acss 0.5.11 → 0.5.13

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 (312) hide show
  1. package/README.md +514 -18
  2. package/libs/chunk-23ANBDCR.js +8 -0
  3. package/libs/chunk-23ANBDCR.js.map +1 -0
  4. package/libs/chunk-2LTJ7HHX.cjs +18 -0
  5. package/libs/chunk-2LTJ7HHX.cjs.map +1 -0
  6. package/libs/chunk-2Y7W75TT.js +9 -0
  7. package/libs/chunk-2Y7W75TT.js.map +1 -0
  8. package/libs/chunk-3MKLDCKQ.cjs +31 -0
  9. package/libs/chunk-3MKLDCKQ.cjs.map +1 -0
  10. package/libs/chunk-5M57K4SW.js +8 -0
  11. package/libs/chunk-5M57K4SW.js.map +1 -0
  12. package/libs/chunk-5S4ORA4C.cjs +15 -0
  13. package/libs/chunk-5S4ORA4C.cjs.map +1 -0
  14. package/libs/chunk-772NRB75.js +9 -0
  15. package/libs/chunk-772NRB75.js.map +1 -0
  16. package/libs/chunk-AHDJGCG5.cjs +15 -0
  17. package/libs/chunk-AHDJGCG5.cjs.map +1 -0
  18. package/libs/chunk-B7F5FS6D.cjs +16 -0
  19. package/libs/chunk-B7F5FS6D.cjs.map +1 -0
  20. package/libs/chunk-BHRQBJRY.js +8 -0
  21. package/libs/chunk-BHRQBJRY.js.map +1 -0
  22. package/libs/chunk-D4YLRWAO.cjs +18 -0
  23. package/libs/chunk-D4YLRWAO.cjs.map +1 -0
  24. package/libs/chunk-ETFLFC2S.js +10 -0
  25. package/libs/chunk-ETFLFC2S.js.map +1 -0
  26. package/libs/chunk-G55UJ53G.cjs +16 -0
  27. package/libs/chunk-G55UJ53G.cjs.map +1 -0
  28. package/libs/chunk-GZ4QFPRY.js +9 -0
  29. package/libs/chunk-GZ4QFPRY.js.map +1 -0
  30. package/libs/chunk-IYUN2EW3.cjs +15 -0
  31. package/libs/chunk-IYUN2EW3.cjs.map +1 -0
  32. package/libs/chunk-J32EZPYD.cjs +15 -0
  33. package/libs/chunk-J32EZPYD.cjs.map +1 -0
  34. package/libs/chunk-JJ43O4Y5.js +8 -0
  35. package/libs/chunk-JJ43O4Y5.js.map +1 -0
  36. package/libs/chunk-KUKIVRC2.js +7 -0
  37. package/libs/chunk-KUKIVRC2.js.map +1 -0
  38. package/libs/chunk-L75OQKEI.cjs +13 -0
  39. package/libs/chunk-L75OQKEI.cjs.map +1 -0
  40. package/libs/chunk-LT5KZ2QW.cjs +22 -0
  41. package/libs/chunk-LT5KZ2QW.cjs.map +1 -0
  42. package/libs/chunk-M5RRNTVX.cjs +15 -0
  43. package/libs/chunk-M5RRNTVX.cjs.map +1 -0
  44. package/libs/chunk-NGTJDDFO.js +8 -0
  45. package/libs/chunk-NGTJDDFO.js.map +1 -0
  46. package/libs/chunk-OK5QEIMD.cjs +17 -0
  47. package/libs/chunk-OK5QEIMD.cjs.map +1 -0
  48. package/libs/chunk-P2DC76ZZ.cjs +18 -0
  49. package/libs/chunk-P2DC76ZZ.cjs.map +1 -0
  50. package/libs/chunk-P7TTEYCD.js +7 -0
  51. package/libs/chunk-P7TTEYCD.js.map +1 -0
  52. package/libs/chunk-PQ2K3BM6.cjs +17 -0
  53. package/libs/chunk-PQ2K3BM6.cjs.map +1 -0
  54. package/libs/chunk-QLZWHAMK.js +8 -0
  55. package/libs/chunk-QLZWHAMK.js.map +1 -0
  56. package/libs/chunk-RIVUMPOG.js +8 -0
  57. package/libs/chunk-RIVUMPOG.js.map +1 -0
  58. package/libs/chunk-ROZI23GS.cjs +15 -0
  59. package/libs/chunk-ROZI23GS.cjs.map +1 -0
  60. package/libs/chunk-S7BABR7Z.cjs +13 -0
  61. package/libs/chunk-S7BABR7Z.cjs.map +1 -0
  62. package/libs/chunk-SMYRLO3E.js +8 -0
  63. package/libs/chunk-SMYRLO3E.js.map +1 -0
  64. package/libs/chunk-TYRCEX2L.js +8 -0
  65. package/libs/chunk-TYRCEX2L.js.map +1 -0
  66. package/libs/chunk-VUH3FXGJ.js +11 -0
  67. package/libs/chunk-VUH3FXGJ.js.map +1 -0
  68. package/libs/chunk-XBA562WW.js +8 -0
  69. package/libs/chunk-XBA562WW.js.map +1 -0
  70. package/libs/chunk-XTQKWY7W.cjs +32 -0
  71. package/libs/chunk-XTQKWY7W.cjs.map +1 -0
  72. package/libs/chunk-ZANSFMTD.js +9 -0
  73. package/libs/chunk-ZANSFMTD.js.map +1 -0
  74. package/libs/component-props-a8a2f97e.d.ts +38 -0
  75. package/libs/components/alert/alert.css +1 -1
  76. package/libs/components/alert/alert.css.map +1 -1
  77. package/libs/components/alert/alert.min.css +2 -2
  78. package/libs/components/badge/badge.css +1 -1
  79. package/libs/components/badge/badge.css.map +1 -1
  80. package/libs/components/badge/badge.min.css +2 -2
  81. package/libs/components/breadcrumbs/breadcrumb.cjs +24 -0
  82. package/libs/components/breadcrumbs/breadcrumb.cjs.map +1 -0
  83. package/libs/components/breadcrumbs/breadcrumb.d.cts +290 -0
  84. package/libs/components/breadcrumbs/breadcrumb.d.ts +290 -0
  85. package/libs/components/breadcrumbs/breadcrumb.js +5 -0
  86. package/libs/components/breadcrumbs/breadcrumb.js.map +1 -0
  87. package/libs/components/button.cjs +19 -0
  88. package/libs/components/button.cjs.map +1 -0
  89. package/libs/components/button.d.cts +16 -0
  90. package/libs/components/button.d.ts +16 -0
  91. package/libs/components/button.js +4 -0
  92. package/libs/components/button.js.map +1 -0
  93. package/libs/components/buttons/button.css +1 -1
  94. package/libs/components/buttons/button.css.map +1 -1
  95. package/libs/components/buttons/button.min.css +2 -2
  96. package/libs/components/card.cjs +31 -0
  97. package/libs/components/card.cjs.map +1 -0
  98. package/libs/components/card.d.cts +302 -0
  99. package/libs/components/card.d.ts +302 -0
  100. package/libs/components/card.js +4 -0
  101. package/libs/components/card.js.map +1 -0
  102. package/libs/components/cards/card.css +1 -1
  103. package/libs/components/cards/card.css.map +1 -1
  104. package/libs/components/cards/card.min.css +2 -2
  105. package/libs/components/details/details.css +1 -1
  106. package/libs/components/details/details.css.map +1 -1
  107. package/libs/components/details/details.min.css +2 -2
  108. package/libs/components/dialog/dialog.cjs +22 -0
  109. package/libs/components/dialog/dialog.cjs.map +1 -0
  110. package/libs/components/dialog/dialog.css +1 -1
  111. package/libs/components/dialog/dialog.css.map +1 -1
  112. package/libs/components/dialog/dialog.d.cts +105 -0
  113. package/libs/components/dialog/dialog.d.ts +105 -0
  114. package/libs/components/dialog/dialog.js +7 -0
  115. package/libs/components/dialog/dialog.js.map +1 -0
  116. package/libs/components/dialog/dialog.min.css +2 -2
  117. package/libs/components/form/fields.cjs +19 -0
  118. package/libs/components/form/fields.cjs.map +1 -0
  119. package/libs/components/form/fields.d.cts +24 -0
  120. package/libs/components/form/fields.d.ts +24 -0
  121. package/libs/components/form/fields.js +4 -0
  122. package/libs/components/form/fields.js.map +1 -0
  123. package/libs/components/form/inputs.cjs +19 -0
  124. package/libs/components/form/inputs.cjs.map +1 -0
  125. package/libs/components/form/inputs.d.cts +2 -0
  126. package/libs/components/form/inputs.d.ts +2 -0
  127. package/libs/components/form/inputs.js +4 -0
  128. package/libs/components/form/inputs.js.map +1 -0
  129. package/libs/components/form/textarea.cjs +19 -0
  130. package/libs/components/form/textarea.cjs.map +1 -0
  131. package/libs/components/form/textarea.d.cts +29 -0
  132. package/libs/components/form/textarea.d.ts +29 -0
  133. package/libs/components/form/textarea.js +4 -0
  134. package/libs/components/form/textarea.js.map +1 -0
  135. package/libs/components/heading/heading.cjs +10 -0
  136. package/libs/components/heading/heading.cjs.map +1 -0
  137. package/libs/components/heading/heading.d.cts +3 -0
  138. package/libs/components/heading/heading.d.ts +3 -0
  139. package/libs/components/heading/heading.js +4 -0
  140. package/libs/components/heading/heading.js.map +1 -0
  141. package/libs/components/icons/icon.cjs +19 -0
  142. package/libs/components/icons/icon.cjs.map +1 -0
  143. package/libs/{icons-31ace3de.d.ts → components/icons/icon.d.cts} +151 -61
  144. package/libs/components/icons/icon.d.ts +445 -0
  145. package/libs/components/icons/icon.js +4 -0
  146. package/libs/components/icons/icon.js.map +1 -0
  147. package/libs/components/images/img.css +1 -1
  148. package/libs/components/images/img.css.map +1 -1
  149. package/libs/components/images/img.min.css +2 -2
  150. package/libs/components/link/link.cjs +19 -0
  151. package/libs/components/link/link.cjs.map +1 -0
  152. package/libs/components/link/link.d.cts +19 -0
  153. package/libs/components/link/link.d.ts +19 -0
  154. package/libs/components/link/link.js +4 -0
  155. package/libs/components/link/link.js.map +1 -0
  156. package/libs/components/list/list.cjs +23 -0
  157. package/libs/components/list/list.cjs.map +1 -0
  158. package/libs/components/list/list.d.cts +39 -0
  159. package/libs/components/list/list.d.ts +39 -0
  160. package/libs/components/list/list.js +4 -0
  161. package/libs/components/list/list.js.map +1 -0
  162. package/libs/components/modal.cjs +14 -0
  163. package/libs/components/modal.cjs.map +1 -0
  164. package/libs/components/modal.d.cts +35 -0
  165. package/libs/components/modal.d.ts +35 -0
  166. package/libs/components/modal.js +5 -0
  167. package/libs/components/modal.js.map +1 -0
  168. package/libs/components/nav/nav.cjs +28 -0
  169. package/libs/components/nav/nav.cjs.map +1 -0
  170. package/libs/components/nav/nav.d.cts +44 -0
  171. package/libs/components/nav/nav.d.ts +44 -0
  172. package/libs/components/nav/nav.js +5 -0
  173. package/libs/components/nav/nav.js.map +1 -0
  174. package/libs/components/popover/popover.cjs +23 -0
  175. package/libs/components/popover/popover.cjs.map +1 -0
  176. package/libs/components/popover/popover.d.cts +40 -0
  177. package/libs/components/popover/popover.d.ts +40 -0
  178. package/libs/components/popover/popover.js +4 -0
  179. package/libs/components/popover/popover.js.map +1 -0
  180. package/libs/components/tables/table.cjs +21 -0
  181. package/libs/components/tables/table.cjs.map +1 -0
  182. package/libs/components/tables/table.d.cts +36 -0
  183. package/libs/components/tables/table.d.ts +36 -0
  184. package/libs/components/tables/table.js +4 -0
  185. package/libs/components/tables/table.js.map +1 -0
  186. package/libs/components/text/text.cjs +23 -0
  187. package/libs/components/text/text.cjs.map +1 -0
  188. package/libs/components/text/text.d.cts +30 -0
  189. package/libs/components/text/text.d.ts +30 -0
  190. package/libs/components/text/text.js +4 -0
  191. package/libs/components/text/text.js.map +1 -0
  192. package/libs/heading-3648c538.d.ts +250 -0
  193. package/libs/hooks.cjs +7 -0
  194. package/libs/hooks.d.cts +5 -0
  195. package/libs/hooks.d.ts +5 -0
  196. package/libs/hooks.js +3 -0
  197. package/libs/icons.cjs +3 -2
  198. package/libs/icons.d.cts +3 -1
  199. package/libs/icons.d.ts +3 -1
  200. package/libs/icons.js +2 -1
  201. package/libs/index.cjs +174 -62
  202. package/libs/index.cjs.map +1 -1
  203. package/libs/index.css +1 -1
  204. package/libs/index.css.map +1 -1
  205. package/libs/index.d.cts +529 -446
  206. package/libs/index.d.ts +529 -446
  207. package/libs/index.js +36 -7
  208. package/libs/index.js.map +1 -1
  209. package/libs/inputs-f3a216db.d.ts +45 -0
  210. package/libs/ui-645f95b5.d.ts +285 -0
  211. package/package.json +2 -2
  212. package/src/components/README-UI.mdx +416 -0
  213. package/src/components/alert/ACCESSIBILITY.md +319 -0
  214. package/src/components/alert/README.mdx +475 -19
  215. package/src/components/alert/alert.scss +113 -6
  216. package/src/components/alert/alert.stories.tsx +372 -0
  217. package/src/components/alert/alert.test.tsx +762 -0
  218. package/src/components/alert/alert.tsx +331 -66
  219. package/src/components/alert/views/alert-actions.tsx +13 -0
  220. package/src/components/alert/views/alert-content.tsx +17 -0
  221. package/src/components/alert/views/alert-icon.tsx +53 -0
  222. package/src/components/alert/views/alert-screen-reader-text.tsx +30 -0
  223. package/src/components/alert/views/alert-title.tsx +23 -0
  224. package/src/components/alert/views/alert-view.tsx +158 -0
  225. package/src/components/alert/views/index.ts +12 -0
  226. package/src/components/badge/badge.mdx +186 -49
  227. package/src/components/badge/badge.scss +20 -2
  228. package/src/components/badge/badge.stories.tsx +160 -14
  229. package/src/components/badge/badge.test.tsx +179 -0
  230. package/src/components/badge/badge.tsx +97 -4
  231. package/src/components/breadcrumbs/README.mdx +364 -45
  232. package/src/components/breadcrumbs/__snapshots__/breadcrumb.test.tsx.snap +152 -0
  233. package/src/components/breadcrumbs/breadcrumb.stories.tsx +7 -3
  234. package/src/components/breadcrumbs/breadcrumb.test.tsx +490 -0
  235. package/src/components/breadcrumbs/breadcrumb.tsx +427 -170
  236. package/src/components/button.ts +2 -0
  237. package/src/components/buttons/button.scss +34 -31
  238. package/src/components/buttons/button.stories.tsx +35 -0
  239. package/src/components/card.ts +2 -0
  240. package/src/components/cards/README.mdx +657 -0
  241. package/src/components/cards/card.scss +22 -0
  242. package/src/components/cards/card.stories.tsx +167 -5
  243. package/src/components/cards/card.test.tsx +360 -20
  244. package/src/components/cards/card.tsx +200 -79
  245. package/src/components/cards/card.types.ts +135 -0
  246. package/src/components/cards/card.utils.ts +79 -0
  247. package/src/components/details/ACCESSIBILITY-REVIEW-LIVE.md +1050 -0
  248. package/src/components/details/ACCESSIBILITY-REVIEW.md +502 -0
  249. package/src/components/details/README.mdx +437 -69
  250. package/src/components/details/details.scss +16 -0
  251. package/src/components/details/details.test.tsx +385 -0
  252. package/src/components/details/details.tsx +101 -69
  253. package/src/components/details/details.types.ts +76 -0
  254. package/src/components/dialog/README.mdx +513 -110
  255. package/src/components/dialog/dialog-modal.tsx +79 -56
  256. package/src/components/dialog/dialog.scss +53 -3
  257. package/src/components/dialog/dialog.stories.tsx +10 -7
  258. package/src/components/dialog/dialog.test.tsx +450 -0
  259. package/src/components/dialog/dialog.tsx +69 -59
  260. package/src/components/dialog/dialog.types.ts +133 -0
  261. package/src/components/dialog/views/dialog-footer.tsx +54 -11
  262. package/src/components/dialog/views/dialog-header.tsx +20 -15
  263. package/src/components/heading/heading.stories.tsx +44 -4
  264. package/src/components/heading/heading.tsx +89 -23
  265. package/src/components/icons/README.mdx +332 -0
  266. package/src/components/icons/icon.stories.tsx +74 -1
  267. package/src/components/icons/icon.tsx +89 -1
  268. package/src/components/icons/types.ts +47 -0
  269. package/src/components/images/README.mdx +340 -24
  270. package/src/components/images/img.scss +19 -3
  271. package/src/components/images/img.stories.tsx +424 -15
  272. package/src/components/images/img.test.tsx +354 -25
  273. package/src/components/images/img.tsx +186 -63
  274. package/src/components/images/img.types.ts +211 -0
  275. package/src/components/modal.ts +1 -0
  276. package/src/components/title/MIGRATION.md +199 -0
  277. package/src/components/title/README.md +326 -0
  278. package/src/components/title/README.mdx +452 -0
  279. package/src/components/title/title.stories.tsx +393 -0
  280. package/src/components/title/title.test.tsx +251 -0
  281. package/src/components/title/title.tsx +219 -0
  282. package/src/components/ui.stories.tsx +894 -0
  283. package/src/components/ui.test.tsx +559 -0
  284. package/src/components/ui.tsx +266 -15
  285. package/src/components/word-count/README.md +240 -0
  286. package/src/hooks.ts +1 -0
  287. package/src/index.ts +51 -19
  288. package/src/sass/_properties.scss +1 -0
  289. package/src/styles/alert/alert.css +94 -4
  290. package/src/styles/alert/alert.css.map +1 -1
  291. package/src/styles/badge/badge.css +20 -2
  292. package/src/styles/badge/badge.css.map +1 -1
  293. package/src/styles/buttons/button.css +31 -31
  294. package/src/styles/buttons/button.css.map +1 -1
  295. package/src/styles/cards/card.css +16 -0
  296. package/src/styles/cards/card.css.map +1 -1
  297. package/src/styles/details/details.css +19 -0
  298. package/src/styles/details/details.css.map +1 -1
  299. package/src/styles/dialog/dialog.css +43 -2
  300. package/src/styles/dialog/dialog.css.map +1 -1
  301. package/src/styles/images/img.css +15 -3
  302. package/src/styles/images/img.css.map +1 -1
  303. package/src/styles/index.css +240 -43
  304. package/src/styles/index.css.map +1 -1
  305. package/src/test/setup.d.ts +9 -0
  306. package/src/test/setup.ts +53 -1
  307. package/libs/chunk-PWVRDQ3R.js +0 -8
  308. package/libs/chunk-PWVRDQ3R.js.map +0 -1
  309. package/libs/chunk-SVS4MX3U.cjs +0 -31
  310. package/libs/chunk-SVS4MX3U.cjs.map +0 -1
  311. package/src/components/cards/README.md +0 -80
  312. package/src/components/dialog/hooks/useClickOutside.ts +0 -33
@@ -1,69 +1,62 @@
1
- import React__default, { ReactNode } from 'react';
2
-
3
- type PolymorphicRef<C extends React__default.ElementType> = React__default.ComponentPropsWithRef<C>["ref"];
4
- type AsProp<C extends React__default.ElementType> = {
5
- as?: C;
6
- };
7
- type PropsToOmit<C extends React__default.ElementType, P> = keyof (AsProp<C> & P);
8
- type PolymorphicComponentProp<C extends React__default.ElementType, Props = {}> = React__default.PropsWithChildren<Props & AsProp<C>> & Omit<React__default.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>;
9
- type PolymorphicComponentPropWithRef<C extends React__default.ElementType, Props = {}> = PolymorphicComponentProp<C, Props> & {
10
- ref?: PolymorphicRef<C>;
11
- };
12
- type FPProps<C extends React__default.ElementType> = PolymorphicComponentPropWithRef<C, {
13
- renderStyles?: boolean;
14
- styles?: React__default.CSSProperties;
15
- classes?: string;
16
- id?: string;
17
- children?: React__default.ReactNode;
18
- }>;
19
- type FPComponent = <C extends React__default.ElementType = "span">(props: FPProps<C>) => React__default.ReactElement | (any & {
20
- displayName?: String;
21
- });
22
- declare const FP: FPComponent;
23
-
24
- interface ComponentProps {
25
- /**
26
- * The default child content/component to render.
27
- */
28
- children?: ReactNode;
29
- /**
30
- * Use default component styles
31
- */
32
- renderStyles?: boolean;
33
- /**
34
- * Component id attribute
35
- */
36
- id?: string;
37
- /**
38
- * Styles object
39
- */
40
- styles?: React__default.CSSProperties;
41
- /**
42
- * Default styles object
43
- */
44
- defaultStyles?: React__default.CSSProperties;
45
- /**
46
- * Component class attribute
47
- */
48
- classes?: string;
49
- /**
50
- * Style value for [data-style] attribute
51
- */
52
- dataStyle?: string;
53
- /**
54
- * Component ref attribute
55
- */
56
- ref?: React__default.Ref<any>;
57
- }
1
+ import { C as ComponentProps } from '../../component-props-a8a2f97e.js';
2
+ import React__default from 'react';
3
+ import { U as UI } from '../../ui-645f95b5.js';
58
4
 
5
+ /**
6
+ * Props for individual icon SVG components (e.g., Icon.Code, Icon.Home).
7
+ *
8
+ * These props control the visual presentation of SVG icons. Icon components
9
+ * are decorative by default and should be wrapped in the `Icon` container
10
+ * component which handles accessibility concerns.
11
+ *
12
+ * @property {string} [fill] - SVG fill color (CSS color value)
13
+ * @property {number} [size] - Icon size in pixels (sets both width and height)
14
+ * @property {string} [strokeColor] - SVG stroke color (CSS color value)
15
+ * @property {string} [strokeWidth] - SVG stroke width (e.g., '2px', '1.5')
16
+ * @property {string} [role] - ARIA role (use 'img' for semantic icons)
17
+ * @property {string} [aria-label] - Accessible label for standalone icons
18
+ * @property {boolean} [aria-hidden] - Hide from screen readers (default: true via Icon wrapper)
19
+ * @property {string} [alt] - @deprecated Use aria-label instead. Legacy prop for accessible label.
20
+ * @property {number} [width] - Explicit width in pixels (overrides size)
21
+ * @property {number} [height] - Explicit height in pixels (overrides size)
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * // Decorative icon with custom styling
26
+ * <Icon>
27
+ * <Icon.Code size={24} fill="blue" />
28
+ * View Code
29
+ * </Icon>
30
+ *
31
+ * // Standalone semantic icon
32
+ * <Icon aria-hidden={false} aria-label="Code snippet">
33
+ * <Icon.Code size={20} />
34
+ * </Icon>
35
+ * ```
36
+ */
59
37
  interface IconProps$1 extends Partial<ComponentProps> {
38
+ /** SVG fill color */
60
39
  fill?: string;
40
+ /** Icon size in pixels (sets both width and height) */
61
41
  size?: number;
42
+ /** SVG stroke color */
62
43
  strokeColor?: string;
44
+ /** SVG stroke width */
63
45
  strokeWidth?: string;
46
+ /** ARIA role (use 'img' for semantic icons) */
64
47
  role?: string;
48
+ /** Accessible label (required for standalone icons) */
49
+ 'aria-label'?: string;
50
+ /** Hide from screen readers (default: true) */
51
+ 'aria-hidden'?: boolean;
52
+ /**
53
+ * @deprecated Use aria-label instead. This prop exists for backward compatibility.
54
+ * The alt attribute is only valid for img elements, not SVG.
55
+ */
65
56
  alt?: string;
57
+ /** Explicit width in pixels */
66
58
  width?: number;
59
+ /** Explicit height in pixels */
67
60
  height?: number;
68
61
  }
69
62
 
@@ -72,9 +65,91 @@ declare namespace Star {
72
65
  var displayName: string;
73
66
  }
74
67
 
75
- type IconProps = React__default.ComponentProps<typeof FP>;
68
+ type IconProps = React__default.ComponentProps<typeof UI> & {
69
+ /**
70
+ * Controls screen reader visibility.
71
+ * - `true` (default): Hides icon from screen readers (decorative icon)
72
+ * - `false`: Makes icon visible to screen readers (semantic icon)
73
+ *
74
+ * **When to use decorative (aria-hidden="true", default):**
75
+ * - Icon accompanies visible text (e.g., button with icon + label)
76
+ * - Icon is purely visual decoration
77
+ *
78
+ * **When to use semantic (aria-hidden="false"):**
79
+ * - Icon is the only content (e.g., icon-only button)
80
+ * - Must provide `aria-label` or `aria-labelledby` for accessible name
81
+ *
82
+ * @default true
83
+ * @see https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html
84
+ */
85
+ "aria-hidden"?: boolean;
86
+ /**
87
+ * Accessible label for semantic icons.
88
+ * Required when icon is standalone (not accompanied by visible text).
89
+ *
90
+ * @example
91
+ * ```tsx
92
+ * // ✅ GOOD: Icon-only button with accessible name
93
+ * <button>
94
+ * <Icon aria-hidden={false} aria-label="Close dialog">
95
+ * <Icon.Remove />
96
+ * </Icon>
97
+ * </button>
98
+ *
99
+ * // ✅ GOOD: Icon with visible text (default decorative)
100
+ * <button>
101
+ * <Icon><Icon.Add /></Icon>
102
+ * Add Item
103
+ * </button>
104
+ * ```
105
+ */
106
+ "aria-label"?: string;
107
+ /**
108
+ * Semantic role override.
109
+ * Use `role="img"` when icon conveys meaning and is not decorative.
110
+ *
111
+ * @default undefined (no role for decorative icons)
112
+ */
113
+ role?: string;
114
+ };
115
+ /**
116
+ * Icon wrapper component that enforces accessibility best practices.
117
+ *
118
+ * **Default behavior (decorative icon):**
119
+ * - Hidden from screen readers (`aria-hidden="true"`)
120
+ * - Used when icon accompanies visible text
121
+ *
122
+ * **Semantic icon pattern:**
123
+ * - Set `aria-hidden={false}` to expose to screen readers
124
+ * - Must provide `aria-label` for accessible name
125
+ * - Consider `role="img"` for complex SVG icons
126
+ *
127
+ * @param {IconProps} props - Component props
128
+ * @returns {React.ReactElement} Accessible icon wrapper
129
+ *
130
+ * @example
131
+ * // ✅ Decorative icon with text (default)
132
+ * <button>
133
+ * <Icon><Icon.Save /></Icon>
134
+ * Save Changes
135
+ * </button>
136
+ *
137
+ * @example
138
+ * // ✅ Semantic icon-only button
139
+ * <button aria-label="Close dialog">
140
+ * <Icon aria-hidden={false}>
141
+ * <Icon.Remove />
142
+ * </Icon>
143
+ * </button>
144
+ *
145
+ * @example
146
+ * // ❌ BAD: Icon-only button without accessible name
147
+ * <button>
148
+ * <Icon><Icon.Remove /></Icon>
149
+ * </button>
150
+ */
76
151
  declare const Icon: {
77
- ({ id, classes, children, styles, ...props }: IconProps): React__default.JSX.Element;
152
+ ({ id, classes, children, styles, "aria-hidden": ariaHidden, "aria-label": ariaLabel, role, ...props }: IconProps): React__default.JSX.Element;
78
153
  displayName: string;
79
154
  Add: {
80
155
  ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
@@ -287,7 +362,22 @@ declare const Icon: {
287
362
  display: string;
288
363
  alignItems: string;
289
364
  width: string;
290
- };
365
+ }; /**
366
+ * Controls screen reader visibility.
367
+ * - `true` (default): Hides icon from screen readers (decorative icon)
368
+ * - `false`: Makes icon visible to screen readers (semantic icon)
369
+ *
370
+ * **When to use decorative (aria-hidden="true", default):**
371
+ * - Icon accompanies visible text (e.g., button with icon + label)
372
+ * - Icon is purely visual decoration
373
+ *
374
+ * **When to use semantic (aria-hidden="false"):**
375
+ * - Icon is the only content (e.g., icon-only button)
376
+ * - Must provide `aria-label` or `aria-labelledby` for accessible name
377
+ *
378
+ * @default true
379
+ * @see https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html
380
+ */
291
381
  };
292
382
  StopSolid: {
293
383
  ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
@@ -352,4 +442,4 @@ declare const Icon: {
352
442
  };
353
443
  };
354
444
 
355
- export { ComponentProps as C, FP as F, Icon as I, IconProps as a };
445
+ export { Icon, IconProps, Icon as default };
@@ -0,0 +1,445 @@
1
+ import { C as ComponentProps } from '../../component-props-a8a2f97e.js';
2
+ import React__default from 'react';
3
+ import { U as UI } from '../../ui-645f95b5.js';
4
+
5
+ /**
6
+ * Props for individual icon SVG components (e.g., Icon.Code, Icon.Home).
7
+ *
8
+ * These props control the visual presentation of SVG icons. Icon components
9
+ * are decorative by default and should be wrapped in the `Icon` container
10
+ * component which handles accessibility concerns.
11
+ *
12
+ * @property {string} [fill] - SVG fill color (CSS color value)
13
+ * @property {number} [size] - Icon size in pixels (sets both width and height)
14
+ * @property {string} [strokeColor] - SVG stroke color (CSS color value)
15
+ * @property {string} [strokeWidth] - SVG stroke width (e.g., '2px', '1.5')
16
+ * @property {string} [role] - ARIA role (use 'img' for semantic icons)
17
+ * @property {string} [aria-label] - Accessible label for standalone icons
18
+ * @property {boolean} [aria-hidden] - Hide from screen readers (default: true via Icon wrapper)
19
+ * @property {string} [alt] - @deprecated Use aria-label instead. Legacy prop for accessible label.
20
+ * @property {number} [width] - Explicit width in pixels (overrides size)
21
+ * @property {number} [height] - Explicit height in pixels (overrides size)
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * // Decorative icon with custom styling
26
+ * <Icon>
27
+ * <Icon.Code size={24} fill="blue" />
28
+ * View Code
29
+ * </Icon>
30
+ *
31
+ * // Standalone semantic icon
32
+ * <Icon aria-hidden={false} aria-label="Code snippet">
33
+ * <Icon.Code size={20} />
34
+ * </Icon>
35
+ * ```
36
+ */
37
+ interface IconProps$1 extends Partial<ComponentProps> {
38
+ /** SVG fill color */
39
+ fill?: string;
40
+ /** Icon size in pixels (sets both width and height) */
41
+ size?: number;
42
+ /** SVG stroke color */
43
+ strokeColor?: string;
44
+ /** SVG stroke width */
45
+ strokeWidth?: string;
46
+ /** ARIA role (use 'img' for semantic icons) */
47
+ role?: string;
48
+ /** Accessible label (required for standalone icons) */
49
+ 'aria-label'?: string;
50
+ /** Hide from screen readers (default: true) */
51
+ 'aria-hidden'?: boolean;
52
+ /**
53
+ * @deprecated Use aria-label instead. This prop exists for backward compatibility.
54
+ * The alt attribute is only valid for img elements, not SVG.
55
+ */
56
+ alt?: string;
57
+ /** Explicit width in pixels */
58
+ width?: number;
59
+ /** Explicit height in pixels */
60
+ height?: number;
61
+ }
62
+
63
+ declare function Star({ size, fill, strokeColor, styles, role, alt, ...props }: Pick<IconProps$1, 'strokeColor' | 'fill' | 'styles' | 'size' | 'role' | 'alt'>): React__default.JSX.Element;
64
+ declare namespace Star {
65
+ var displayName: string;
66
+ }
67
+
68
+ type IconProps = React__default.ComponentProps<typeof UI> & {
69
+ /**
70
+ * Controls screen reader visibility.
71
+ * - `true` (default): Hides icon from screen readers (decorative icon)
72
+ * - `false`: Makes icon visible to screen readers (semantic icon)
73
+ *
74
+ * **When to use decorative (aria-hidden="true", default):**
75
+ * - Icon accompanies visible text (e.g., button with icon + label)
76
+ * - Icon is purely visual decoration
77
+ *
78
+ * **When to use semantic (aria-hidden="false"):**
79
+ * - Icon is the only content (e.g., icon-only button)
80
+ * - Must provide `aria-label` or `aria-labelledby` for accessible name
81
+ *
82
+ * @default true
83
+ * @see https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html
84
+ */
85
+ "aria-hidden"?: boolean;
86
+ /**
87
+ * Accessible label for semantic icons.
88
+ * Required when icon is standalone (not accompanied by visible text).
89
+ *
90
+ * @example
91
+ * ```tsx
92
+ * // ✅ GOOD: Icon-only button with accessible name
93
+ * <button>
94
+ * <Icon aria-hidden={false} aria-label="Close dialog">
95
+ * <Icon.Remove />
96
+ * </Icon>
97
+ * </button>
98
+ *
99
+ * // ✅ GOOD: Icon with visible text (default decorative)
100
+ * <button>
101
+ * <Icon><Icon.Add /></Icon>
102
+ * Add Item
103
+ * </button>
104
+ * ```
105
+ */
106
+ "aria-label"?: string;
107
+ /**
108
+ * Semantic role override.
109
+ * Use `role="img"` when icon conveys meaning and is not decorative.
110
+ *
111
+ * @default undefined (no role for decorative icons)
112
+ */
113
+ role?: string;
114
+ };
115
+ /**
116
+ * Icon wrapper component that enforces accessibility best practices.
117
+ *
118
+ * **Default behavior (decorative icon):**
119
+ * - Hidden from screen readers (`aria-hidden="true"`)
120
+ * - Used when icon accompanies visible text
121
+ *
122
+ * **Semantic icon pattern:**
123
+ * - Set `aria-hidden={false}` to expose to screen readers
124
+ * - Must provide `aria-label` for accessible name
125
+ * - Consider `role="img"` for complex SVG icons
126
+ *
127
+ * @param {IconProps} props - Component props
128
+ * @returns {React.ReactElement} Accessible icon wrapper
129
+ *
130
+ * @example
131
+ * // ✅ Decorative icon with text (default)
132
+ * <button>
133
+ * <Icon><Icon.Save /></Icon>
134
+ * Save Changes
135
+ * </button>
136
+ *
137
+ * @example
138
+ * // ✅ Semantic icon-only button
139
+ * <button aria-label="Close dialog">
140
+ * <Icon aria-hidden={false}>
141
+ * <Icon.Remove />
142
+ * </Icon>
143
+ * </button>
144
+ *
145
+ * @example
146
+ * // ❌ BAD: Icon-only button without accessible name
147
+ * <button>
148
+ * <Icon><Icon.Remove /></Icon>
149
+ * </button>
150
+ */
151
+ declare const Icon: {
152
+ ({ id, classes, children, styles, "aria-hidden": ariaHidden, "aria-label": ariaLabel, role, ...props }: IconProps): React__default.JSX.Element;
153
+ displayName: string;
154
+ Add: {
155
+ ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
156
+ styles: {
157
+ fill: string;
158
+ display: string;
159
+ alignItems: string;
160
+ width: string;
161
+ };
162
+ displayName: string;
163
+ };
164
+ ArrowDown: {
165
+ ({ fill, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles">): React__default.JSX.Element;
166
+ styles: {
167
+ display: string;
168
+ alignItems: string;
169
+ width: string;
170
+ };
171
+ displayName: string;
172
+ };
173
+ ArrowLeft: {
174
+ ({ strokeColor, fill, size, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
175
+ styles: {
176
+ display: string;
177
+ alignItems: string;
178
+ width: string;
179
+ };
180
+ displayName: string;
181
+ };
182
+ ArrowRight: {
183
+ ({ size, fill, strokeColor, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
184
+ displayName: string;
185
+ };
186
+ ArrowUp: {
187
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
188
+ displayName: string;
189
+ style: {
190
+ fill: string;
191
+ stroke: string;
192
+ display: string;
193
+ alignItems: string;
194
+ width: string;
195
+ };
196
+ };
197
+ Chat: {
198
+ ({ size, strokeColor, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
199
+ styles: {
200
+ display: string;
201
+ alignItems: string;
202
+ width: string;
203
+ };
204
+ displayName: string;
205
+ };
206
+ Code: {
207
+ ({ strokeColor, fill, size, styles, role, alt, ...props }?: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
208
+ styles: {
209
+ fill: string;
210
+ stroke: string;
211
+ display: string;
212
+ alignItems: string;
213
+ width: string;
214
+ };
215
+ };
216
+ Copy: {
217
+ ({ size, strokeColor, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
218
+ displayName: string;
219
+ styles: {
220
+ stroke: string;
221
+ display: string;
222
+ alignItems: string;
223
+ width: string;
224
+ };
225
+ };
226
+ Down: {
227
+ ({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
228
+ displayName: string;
229
+ styles: {
230
+ display: string;
231
+ alignItems: string;
232
+ width: string;
233
+ };
234
+ };
235
+ Home: {
236
+ ({ strokeColor, fill, size, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
237
+ displayName: string;
238
+ styles: {
239
+ fill: string;
240
+ stroke: string;
241
+ display: string;
242
+ alignItems: string;
243
+ width: string;
244
+ };
245
+ };
246
+ Info: {
247
+ ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
248
+ displayName: string;
249
+ };
250
+ InfoSolid: {
251
+ ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
252
+ displayName: string;
253
+ };
254
+ AlertSolid: {
255
+ ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
256
+ displayName: string;
257
+ };
258
+ Left: {
259
+ ({ fill, size, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
260
+ displayName: string;
261
+ styles: {
262
+ fill: string;
263
+ display: string;
264
+ alignItems: string;
265
+ width: string;
266
+ };
267
+ };
268
+ Minus: {
269
+ ({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
270
+ displayName: string;
271
+ styles: {
272
+ fill: string;
273
+ };
274
+ };
275
+ Pause: {
276
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
277
+ displayName: string;
278
+ style: {
279
+ fill: string;
280
+ stroke: string;
281
+ display: string;
282
+ alignItems: string;
283
+ width: string;
284
+ };
285
+ };
286
+ PauseSolid: {
287
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
288
+ displayName: string;
289
+ style: {
290
+ fill: string;
291
+ stroke: string;
292
+ display: string;
293
+ alignItems: string;
294
+ width: string;
295
+ };
296
+ };
297
+ Play: {
298
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
299
+ displayName: string;
300
+ style: {
301
+ fill: string;
302
+ stroke: string;
303
+ display: string;
304
+ alignItems: string;
305
+ width: string;
306
+ };
307
+ };
308
+ PlaySolid: {
309
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
310
+ displayName: string;
311
+ style: {
312
+ fill: string;
313
+ stroke: string;
314
+ display: string;
315
+ alignItems: string;
316
+ width: string;
317
+ };
318
+ };
319
+ Remove: {
320
+ ({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
321
+ displayName: string;
322
+ styles: {
323
+ fill: string;
324
+ };
325
+ };
326
+ Resume: {
327
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
328
+ displayName: string;
329
+ style: {
330
+ fill: string;
331
+ stroke: string;
332
+ display: string;
333
+ alignItems: string;
334
+ width: string;
335
+ };
336
+ };
337
+ ResumeSolid: {
338
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
339
+ displayName: string;
340
+ style: {
341
+ fill: string;
342
+ stroke: string;
343
+ display: string;
344
+ alignItems: string;
345
+ width: string;
346
+ };
347
+ };
348
+ Right: {
349
+ ({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
350
+ displayName: string;
351
+ styles: {
352
+ fill: string;
353
+ };
354
+ };
355
+ Star: typeof Star;
356
+ Stop: {
357
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
358
+ displayName: string;
359
+ style: {
360
+ fill: string;
361
+ stroke: string;
362
+ display: string;
363
+ alignItems: string;
364
+ width: string;
365
+ }; /**
366
+ * Controls screen reader visibility.
367
+ * - `true` (default): Hides icon from screen readers (decorative icon)
368
+ * - `false`: Makes icon visible to screen readers (semantic icon)
369
+ *
370
+ * **When to use decorative (aria-hidden="true", default):**
371
+ * - Icon accompanies visible text (e.g., button with icon + label)
372
+ * - Icon is purely visual decoration
373
+ *
374
+ * **When to use semantic (aria-hidden="false"):**
375
+ * - Icon is the only content (e.g., icon-only button)
376
+ * - Must provide `aria-label` or `aria-labelledby` for accessible name
377
+ *
378
+ * @default true
379
+ * @see https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html
380
+ */
381
+ };
382
+ StopSolid: {
383
+ ({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
384
+ displayName: string;
385
+ style: {
386
+ fill: string;
387
+ stroke: string;
388
+ display: string;
389
+ alignItems: string;
390
+ width: string;
391
+ };
392
+ };
393
+ Up: {
394
+ ({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
395
+ displayName: string;
396
+ styles: {
397
+ display: string;
398
+ alignItems: string;
399
+ width: string;
400
+ };
401
+ };
402
+ User: {
403
+ ({ size, fill, strokeColor, styles, alt, role, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
404
+ styles: {
405
+ fill: string;
406
+ stroke: string;
407
+ display: string;
408
+ alignItems: string;
409
+ width: string;
410
+ };
411
+ displayName: string;
412
+ };
413
+ styles: {
414
+ display: string;
415
+ direction: string;
416
+ gap: string;
417
+ placeItems: string;
418
+ width: string;
419
+ };
420
+ QuestionSolid: {
421
+ ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
422
+ displayName: string;
423
+ };
424
+ WarnSolid: {
425
+ ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
426
+ displayName: string;
427
+ };
428
+ SuccessSolid: {
429
+ ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
430
+ displayName: string;
431
+ };
432
+ AlertSquareSolid: {
433
+ ({ fill, size, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): JSX.Element;
434
+ displayName: string;
435
+ };
436
+ Close: {
437
+ ({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "role" | "fill" | "alt" | "size" | "styles" | "strokeColor">): React__default.JSX.Element;
438
+ displayName: string;
439
+ styles: {
440
+ fill: string;
441
+ };
442
+ };
443
+ };
444
+
445
+ export { Icon, IconProps, Icon as default };
@@ -0,0 +1,4 @@
1
+ export { a as Icon, b as default } from '../../chunk-772NRB75.js';
2
+ import '../../chunk-KUKIVRC2.js';
3
+ //# sourceMappingURL=out.js.map
4
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}