@accelint/design-toolkit 2.4.2 → 2.5.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 (252) hide show
  1. package/dist/components/accordion/index.d.ts +1 -1
  2. package/dist/components/accordion/index.js +1 -1
  3. package/dist/components/accordion/index.js.map +1 -1
  4. package/dist/components/accordion/styles.d.ts +1 -5
  5. package/dist/components/accordion/styles.js +1 -1
  6. package/dist/components/accordion/styles.js.map +1 -1
  7. package/dist/components/accordion/types.d.ts +9 -10
  8. package/dist/components/avatar/index.d.ts +4 -2
  9. package/dist/components/avatar/index.js +1 -1
  10. package/dist/components/avatar/index.js.map +1 -1
  11. package/dist/components/avatar/styles.d.ts +16 -15
  12. package/dist/components/avatar/styles.js +1 -1
  13. package/dist/components/avatar/styles.js.map +1 -1
  14. package/dist/components/avatar/types.d.ts +7 -7
  15. package/dist/components/badge/index.d.ts +3 -2
  16. package/dist/components/badge/index.js +1 -1
  17. package/dist/components/badge/index.js.map +1 -1
  18. package/dist/components/badge/styles.js +1 -1
  19. package/dist/components/badge/styles.js.map +1 -1
  20. package/dist/components/badge/types.d.ts +3 -4
  21. package/dist/components/box/index.js +1 -1
  22. package/dist/components/box/index.js.map +1 -1
  23. package/dist/components/button/index.d.ts +6 -4
  24. package/dist/components/button/index.js +1 -1
  25. package/dist/components/button/index.js.map +1 -1
  26. package/dist/components/button/styles.d.ts +25 -24
  27. package/dist/components/button/styles.js +1 -1
  28. package/dist/components/button/styles.js.map +1 -1
  29. package/dist/components/button/types.d.ts +3 -5
  30. package/dist/components/checkbox/index.js +1 -1
  31. package/dist/components/checkbox/index.js.map +1 -1
  32. package/dist/components/checkbox/styles.d.ts +19 -18
  33. package/dist/components/checkbox/styles.js +1 -1
  34. package/dist/components/checkbox/styles.js.map +1 -1
  35. package/dist/components/chip/index.d.ts +4 -2
  36. package/dist/components/chip/index.js +1 -1
  37. package/dist/components/chip/index.js.map +1 -1
  38. package/dist/components/chip/styles.d.ts +70 -69
  39. package/dist/components/chip/styles.js +1 -1
  40. package/dist/components/chip/styles.js.map +1 -1
  41. package/dist/components/chip/types.d.ts +5 -5
  42. package/dist/components/classification-badge/index.d.ts +3 -2
  43. package/dist/components/classification-badge/index.js +1 -1
  44. package/dist/components/classification-badge/index.js.map +1 -1
  45. package/dist/components/classification-badge/styles.js +1 -1
  46. package/dist/components/classification-badge/styles.js.map +1 -1
  47. package/dist/components/classification-badge/types.d.ts +3 -4
  48. package/dist/components/classification-banner/index.d.ts +3 -2
  49. package/dist/components/classification-banner/index.js +1 -1
  50. package/dist/components/classification-banner/index.js.map +1 -1
  51. package/dist/components/classification-banner/styles.js +1 -1
  52. package/dist/components/classification-banner/styles.js.map +1 -1
  53. package/dist/components/classification-banner/types.d.ts +3 -4
  54. package/dist/components/color-picker/index.d.ts +45 -15
  55. package/dist/components/color-picker/index.js +1 -1
  56. package/dist/components/color-picker/index.js.map +1 -1
  57. package/dist/components/color-picker/styles.d.ts +42 -0
  58. package/dist/components/color-picker/styles.js +2 -0
  59. package/dist/components/color-picker/styles.js.map +1 -0
  60. package/dist/components/color-picker/types.d.ts +13 -0
  61. package/dist/components/color-picker/types.js +2 -0
  62. package/dist/components/color-picker/types.js.map +1 -0
  63. package/dist/components/combobox/index.d.ts +9 -14
  64. package/dist/components/combobox/index.js +1 -1
  65. package/dist/components/combobox/index.js.map +1 -1
  66. package/dist/components/date-field/index.d.ts +8 -24
  67. package/dist/components/date-field/index.js +1 -1
  68. package/dist/components/date-field/index.js.map +1 -1
  69. package/dist/components/date-field/styles.d.ts +69 -0
  70. package/dist/components/date-field/styles.js +2 -0
  71. package/dist/components/date-field/styles.js.map +1 -0
  72. package/dist/components/date-field/types.d.ts +29 -0
  73. package/dist/components/date-field/types.js +2 -0
  74. package/dist/components/date-field/types.js.map +1 -0
  75. package/dist/components/details-list/index.d.ts +59 -0
  76. package/dist/components/details-list/index.js +2 -0
  77. package/dist/components/details-list/index.js.map +1 -0
  78. package/dist/components/details-list/styles.d.ts +65 -0
  79. package/dist/components/details-list/styles.js +2 -0
  80. package/dist/components/details-list/styles.js.map +1 -0
  81. package/dist/components/details-list/types.d.ts +16 -0
  82. package/dist/components/details-list/types.js +2 -0
  83. package/dist/components/details-list/types.js.map +1 -0
  84. package/dist/components/dialog/index.d.ts +1 -0
  85. package/dist/components/dialog/index.js +1 -1
  86. package/dist/components/dialog/index.js.map +1 -1
  87. package/dist/components/drawer/context.d.ts +13 -0
  88. package/dist/components/drawer/context.js +2 -0
  89. package/dist/components/drawer/context.js.map +1 -0
  90. package/dist/components/drawer/index.d.ts +48 -0
  91. package/dist/components/drawer/index.js +2 -0
  92. package/dist/components/drawer/index.js.map +1 -0
  93. package/dist/components/drawer/state.d.ts +26 -0
  94. package/dist/components/drawer/state.js +2 -0
  95. package/dist/components/drawer/state.js.map +1 -0
  96. package/dist/components/drawer/styles.d.ts +118 -0
  97. package/dist/components/drawer/styles.js +2 -0
  98. package/dist/components/drawer/styles.js.map +1 -0
  99. package/dist/components/drawer/types.d.ts +279 -0
  100. package/dist/components/drawer/types.js +2 -0
  101. package/dist/components/drawer/types.js.map +1 -0
  102. package/dist/components/hero/index.d.ts +45 -0
  103. package/dist/components/hero/index.js +2 -0
  104. package/dist/components/hero/index.js.map +1 -0
  105. package/dist/components/hero/styles.d.ts +48 -0
  106. package/dist/components/hero/styles.js +2 -0
  107. package/dist/components/hero/styles.js.map +1 -0
  108. package/dist/components/hero/types.d.ts +13 -0
  109. package/dist/components/hero/types.js +2 -0
  110. package/dist/components/hero/types.js.map +1 -0
  111. package/dist/components/icon/index.d.ts +3 -2
  112. package/dist/components/icon/index.js +1 -1
  113. package/dist/components/icon/index.js.map +1 -1
  114. package/dist/components/icon/styles.js +1 -1
  115. package/dist/components/icon/styles.js.map +1 -1
  116. package/dist/components/icon/types.d.ts +4 -5
  117. package/dist/components/input/index.d.ts +1 -0
  118. package/dist/components/input/index.js +1 -1
  119. package/dist/components/input/index.js.map +1 -1
  120. package/dist/components/input/styles.js +1 -1
  121. package/dist/components/input/styles.js.map +1 -1
  122. package/dist/components/input/types.d.ts +1 -0
  123. package/dist/components/label/index.d.ts +3 -2
  124. package/dist/components/label/index.js +1 -1
  125. package/dist/components/label/index.js.map +1 -1
  126. package/dist/components/label/styles.js +1 -1
  127. package/dist/components/label/styles.js.map +1 -1
  128. package/dist/components/label/types.d.ts +2 -3
  129. package/dist/components/menu/index.d.ts +16 -21
  130. package/dist/components/menu/index.js +1 -1
  131. package/dist/components/menu/index.js.map +1 -1
  132. package/dist/components/menu/styles.js +1 -1
  133. package/dist/components/menu/styles.js.map +1 -1
  134. package/dist/components/navigation-stack/index.d.ts +20 -0
  135. package/dist/components/navigation-stack/index.js +2 -0
  136. package/dist/components/navigation-stack/index.js.map +1 -0
  137. package/dist/components/navigation-stack/types.d.ts +31 -0
  138. package/dist/components/navigation-stack/types.js +2 -0
  139. package/dist/components/navigation-stack/types.js.map +1 -0
  140. package/dist/components/options/index.d.ts +28 -22
  141. package/dist/components/options/index.js +1 -1
  142. package/dist/components/options/index.js.map +1 -1
  143. package/dist/components/options/styles.d.ts +72 -0
  144. package/dist/components/options/styles.js +2 -0
  145. package/dist/components/options/styles.js.map +1 -0
  146. package/dist/components/options/types.d.ts +29 -0
  147. package/dist/components/options/types.js +2 -0
  148. package/dist/components/options/types.js.map +1 -0
  149. package/dist/components/popover/index.js +1 -1
  150. package/dist/components/popover/index.js.map +1 -1
  151. package/dist/components/popover/styles.d.ts +16 -15
  152. package/dist/components/popover/styles.js +1 -1
  153. package/dist/components/popover/styles.js.map +1 -1
  154. package/dist/components/query-builder/action-element.js +1 -1
  155. package/dist/components/query-builder/action-element.js.map +1 -1
  156. package/dist/components/query-builder/constants.js +1 -1
  157. package/dist/components/query-builder/constants.js.map +1 -1
  158. package/dist/components/query-builder/group.js +1 -1
  159. package/dist/components/query-builder/group.js.map +1 -1
  160. package/dist/components/query-builder/index.d.ts +5 -20
  161. package/dist/components/query-builder/index.js +1 -1
  162. package/dist/components/query-builder/index.js.map +1 -1
  163. package/dist/components/query-builder/rule.js +1 -1
  164. package/dist/components/query-builder/rule.js.map +1 -1
  165. package/dist/components/query-builder/types.d.ts +22 -0
  166. package/dist/components/query-builder/types.js +2 -0
  167. package/dist/components/query-builder/types.js.map +1 -0
  168. package/dist/components/query-builder/utils.js +1 -1
  169. package/dist/components/query-builder/utils.js.map +1 -1
  170. package/dist/components/query-builder/value-editor.js +1 -1
  171. package/dist/components/query-builder/value-editor.js.map +1 -1
  172. package/dist/components/query-builder/value-selector.js +1 -1
  173. package/dist/components/query-builder/value-selector.js.map +1 -1
  174. package/dist/components/radio/index.js +1 -1
  175. package/dist/components/radio/index.js.map +1 -1
  176. package/dist/components/radio/styles.d.ts +19 -18
  177. package/dist/components/radio/styles.js +1 -1
  178. package/dist/components/radio/styles.js.map +1 -1
  179. package/dist/components/radio/types.d.ts +2 -3
  180. package/dist/components/search-field/index.d.ts +56 -15
  181. package/dist/components/search-field/index.js +1 -1
  182. package/dist/components/search-field/index.js.map +1 -1
  183. package/dist/components/search-field/styles.d.ts +53 -0
  184. package/dist/components/search-field/styles.js +2 -0
  185. package/dist/components/search-field/styles.js.map +1 -0
  186. package/dist/components/search-field/types.d.ts +25 -0
  187. package/dist/components/search-field/types.js +2 -0
  188. package/dist/components/search-field/types.js.map +1 -0
  189. package/dist/components/skeleton/index.d.ts +42 -0
  190. package/dist/components/skeleton/index.js +2 -0
  191. package/dist/components/skeleton/index.js.map +1 -0
  192. package/dist/components/skeleton/styles.d.ts +23 -0
  193. package/dist/components/skeleton/styles.js +2 -0
  194. package/dist/components/skeleton/styles.js.map +1 -0
  195. package/dist/components/skeleton/types.d.ts +8 -0
  196. package/dist/components/skeleton/types.js +2 -0
  197. package/dist/components/skeleton/types.js.map +1 -0
  198. package/dist/components/slider/index.js +1 -1
  199. package/dist/components/slider/index.js.map +1 -1
  200. package/dist/components/switch/index.d.ts +3 -2
  201. package/dist/components/switch/index.js +1 -1
  202. package/dist/components/switch/index.js.map +1 -1
  203. package/dist/components/switch/styles.d.ts +13 -12
  204. package/dist/components/switch/styles.js +1 -1
  205. package/dist/components/switch/styles.js.map +1 -1
  206. package/dist/components/switch/types.d.ts +2 -3
  207. package/dist/components/tabs/index.js +1 -1
  208. package/dist/components/tabs/index.js.map +1 -1
  209. package/dist/components/text-area-field/index.d.ts +4 -3
  210. package/dist/components/text-area-field/index.js +1 -1
  211. package/dist/components/text-area-field/index.js.map +1 -1
  212. package/dist/components/text-area-field/styles.d.ts +19 -18
  213. package/dist/components/text-area-field/styles.js +1 -1
  214. package/dist/components/text-area-field/styles.js.map +1 -1
  215. package/dist/components/text-area-field/types.d.ts +2 -3
  216. package/dist/components/text-field/index.d.ts +4 -2
  217. package/dist/components/text-field/index.js +1 -1
  218. package/dist/components/text-field/index.js.map +1 -1
  219. package/dist/components/text-field/styles.d.ts +19 -18
  220. package/dist/components/text-field/styles.js +1 -1
  221. package/dist/components/text-field/styles.js.map +1 -1
  222. package/dist/components/text-field/types.d.ts +4 -4
  223. package/dist/components/tooltip/index.d.ts +14 -28
  224. package/dist/components/tooltip/index.js +1 -1
  225. package/dist/components/tooltip/index.js.map +1 -1
  226. package/dist/components/tooltip/styles.d.ts +5 -0
  227. package/dist/components/tooltip/styles.js +2 -0
  228. package/dist/components/tooltip/styles.js.map +1 -0
  229. package/dist/components/tooltip/types.d.ts +8 -0
  230. package/dist/components/tooltip/types.js +2 -0
  231. package/dist/components/tooltip/types.js.map +1 -0
  232. package/dist/icons/catalog.js +1 -1
  233. package/dist/index.d.ts +54 -28
  234. package/dist/index.js +1 -1
  235. package/dist/lib/react.d.ts +13 -12
  236. package/dist/lib/react.js +4 -4
  237. package/dist/lib/react.js.map +1 -1
  238. package/dist/lib/types.d.ts +6 -2
  239. package/dist/lib/utils.js +1 -1
  240. package/dist/lib/utils.js.map +1 -1
  241. package/dist/metafile-esm.json +1 -1
  242. package/dist/styles.css +1341 -278
  243. package/dist/tokens/index.js +1 -1
  244. package/dist/tokens/index.js.map +1 -1
  245. package/dist/variants/variants.css +6 -0
  246. package/package.json +81 -58
  247. package/dist/components/options-item/index.d.ts +0 -30
  248. package/dist/components/options-item/index.js +0 -2
  249. package/dist/components/options-item/index.js.map +0 -1
  250. package/dist/components/query-builder/example-configuration.d.ts +0 -30
  251. package/dist/components/query-builder/example-configuration.js +0 -2
  252. package/dist/components/query-builder/example-configuration.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/react.ts"],"names":["ComponentStructureError","message","containsExactChildren","children","componentName","restrictions","childrenComponents","Children","isValidElement","accumulationResults","acc","child","name","missingComponentsArray","excessComponentsArray","key","min","max","found","formatList","label","items","errorMessage","expectsIconWrapper"],"mappings":"4CAeA,IAAMA,CAAAA,CAAN,cAAsC,KAAM,CAC1C,WAAA,CAAYC,CAAAA,CAAS,CACnB,MAAMA,CAAO,CAAA,CACb,IAAA,CAAK,IAAA,CAAO,0BACd,CACF,CAAA,CAuBO,SAASC,EAAsB,CACpC,QAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,EACA,YAAA,CAAAC,CACF,CAAA,CAA+B,CAC7B,IAAMC,CAAAA,CAAqBC,QAAAA,CAAS,OAAA,CAAQJ,CAAQ,CAAA,CAEpD,GAAI,CAACG,CAAAA,CAAmB,MAAME,cAAc,CAAA,CAC1C,MAAM,IAAIR,CAAAA,CACR,CAAA,CAAA,EAAII,CAAa,CAAA,4BAAA,CACnB,EAGF,IAAMK,CAAAA,CAAsBH,CAAAA,CAAmB,MAAA,CAAO,CAACI,CAAAA,CAAKC,CAAAA,GAAU,CACpE,IAAMC,CAAAA,CAAOD,CAAAA,EAAO,IAAA,EAAM,WAAA,CAC1B,OAAIC,CAAAA,GACFF,CAAAA,CAAIE,CAAI,CAAA,CAAA,CAAKF,EAAIE,CAAI,CAAA,EAAK,CAAA,EAAK,CAAA,CAAA,CAE1BF,CACT,CAAA,CAAG,EAAE,EAECG,CAAAA,CAAmC,EAAC,CACpCC,CAAAA,CAAkC,EAAC,CAEzC,IAAA,GAAW,CAACC,EAAK,CAAE,GAAA,CAAAC,CAAAA,CAAK,GAAA,CAAAC,CAAI,CAAC,CAAA,GAAK,MAAA,CAAO,QAAQZ,CAAY,CAAA,CAAG,CAC9D,IAAMa,EAAQT,CAAAA,CAAoBM,CAAG,CAAA,EAAK,CAAA,CAEtCG,EAAQF,CAAAA,EACVH,CAAAA,CAAuB,IAAA,CAAK,CAAA,EAAGG,CAAAA,CAAME,CAAK,CAAA,KAAA,EAAQH,CAAG,GAAG,CAAA,CAGtDE,CAAAA,GAAQ,MAAA,EAAaC,CAAAA,CAAQD,GAC/BH,CAAAA,CAAsB,IAAA,CAAK,CAAA,EAAGI,CAAAA,CAAQD,CAAG,CAAA,KAAA,EAAQF,CAAG,CAAA,CAAA,CAAG,EAE3D,CAEA,GAAIF,CAAAA,CAAuB,MAAA,EAAUC,EAAsB,MAAA,CAAQ,CACjE,IAAMK,CAAAA,CAAa,CAACC,CAAAA,CAAeC,CAAAA,GACjCA,CAAAA,CAAM,MAAA,CAAS,IAAKD,CAAK,CAAA;AAAA,EAAA,EAAUC,CAAAA,CAAM,IAAA,CAAK,IAAI,CAAC;AAAA,CAAA,CAAO,EAAA,CAEtDC,CAAAA,CACJ,CAAA,SAAA,EAAYlB,CAAa,CAAA;AAAA,EACtBe,CAAAA,CAAW,uBAAA,CAAyBN,CAAsB,CAAC,CAAA,EAC3DM,EAAW,yBAAA,CAA2BL,CAAqB,CAAC,CAAA,CAAA,CAEjE,MAAM,IAAId,EAAwBsB,CAAAA,CAAa,IAAA,EAAM,CACvD,CACF,CAoBO,SAASC,CAAAA,CAAmB,CAAE,QAAA,CAAApB,CAAAA,CAAU,aAAA,CAAAC,CAAc,EAAG,CACnCG,QAAAA,CAAS,OAAA,CAAQJ,CAAQ,CAAA,CAEjC,GAAA,CAAKQ,GAAU,CAChC,GAAIH,cAAAA,CAAeG,CAAK,CAAA,EAElBA,CAAAA,CAAM,KAAK,IAAA,EAAM,UAAA,CAAW,KAAK,CAAA,CACnC,MAAM,IAAI,KAAA,CACR,CAAA,EAAGP,CAAa,CAAA,mDAAA,CAClB,CAGN,CAAC,EACH","file":"react.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// @ts-nocheck\nimport { Children, type ReactNode, isValidElement } from 'react';\n\nclass ComponentStructureError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ComponentStructureError';\n }\n}\n\ntype ContainsExactChildrenProps = {\n componentName: string;\n children:\n | ReactNode\n | ReactNode[]\n | ((\n // biome-ignore lint/suspicious/noExplicitAny: aria render props include a generic type\n values: any & {\n defaultChildren: ReactNode | undefined;\n },\n ) => ReactNode);\n restrictions: Record<string, { min: number; max?: number }>;\n};\n\n/**\n * Validates the intended composite component structure.\n *\n * @param children the children of the component\n * @param componentName the displayName of the component\n * @param restrictions the record of validation rules\n */\nexport function containsExactChildren({\n children,\n componentName,\n restrictions,\n}: ContainsExactChildrenProps) {\n const childrenComponents = Children.toArray(children);\n\n if (!childrenComponents.every(isValidElement)) {\n throw new ComponentStructureError(\n `<${componentName}> received invalid children.`,\n );\n }\n\n const accumulationResults = childrenComponents.reduce((acc, child) => {\n const name = child?.type?.displayName;\n if (name) {\n acc[name] = (acc[name] || 0) + 1;\n }\n return acc;\n }, {});\n\n const missingComponentsArray: string[] = [];\n const excessComponentsArray: string[] = [];\n\n for (const [key, { min, max }] of Object.entries(restrictions)) {\n const found = accumulationResults[key] ?? 0;\n\n if (found < min) {\n missingComponentsArray.push(`${min - found} of <${key}>`);\n }\n\n if (max !== undefined && found > max) {\n excessComponentsArray.push(`${found - max} of <${key}>`);\n }\n }\n\n if (missingComponentsArray.length || excessComponentsArray.length) {\n const formatList = (label: string, items: string[]) =>\n items.length ? `\\t${label}:\\n\\t\\t${items.join(', ')}\\n` : '';\n\n const errorMessage =\n `Invalid <${componentName}> structure \\n` +\n `${formatList('Missing the following', missingComponentsArray)}` +\n `${formatList('Excess of the following', excessComponentsArray)}`;\n\n throw new ComponentStructureError(errorMessage.trim());\n }\n}\n\n/**\n * I look for svgIcons exported from the @accelint/icons library\n * and ensure that they are wrapped in an Icon component in order\n * to get the classes and styles they need in context.\n *\n * Using isValidElement means we will filter out strings, boolean, etc.\n * that are valid nodes but not elements.\n *\n * @example\n * expectsIconWrapper({\n * children,\n * componentName: Button.displayName,\n * });\n *\n *\n * @param children the children of the calling component\n * @param componentName the displayName of the calling component\n */\nexport function expectsIconWrapper({ children, componentName }) {\n const childrenComponents = Children.toArray(children);\n\n childrenComponents.map((child) => {\n if (isValidElement(child)) {\n // icons should never be a direct child of the parent\n if (child.type.name?.startsWith('Svg')) {\n throw new Error(\n `${componentName} is using an icon without the required Icon wrapper`,\n );\n }\n }\n });\n}\n"]}
1
+ {"version":3,"sources":["../../src/lib/react.tsx"],"names":["ComponentStructureError","message","getChildren","children","childrenArray","Children","jsx","Fragment","index","child","containsExactChildren","componentName","restrictions","childrenComponents","isValidElement","accumulationResults","acc","name","missingComponentsArray","excessComponentsArray","component","min","max","found","formatList","label","items","errorMessage","expectsIconWrapper"],"mappings":"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","file":"react.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Children,\n Fragment,\n type JSXElementConstructor,\n type ReactNode,\n isValidElement,\n} from 'react';\n\nclass ComponentStructureError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'ComponentStructureError';\n }\n}\n\ntype ChildrenTypes =\n | ReactNode\n | ReactNode[]\n | ((\n // biome-ignore lint/suspicious/noExplicitAny: aria render props include a generic type\n values: any & {\n defaultChildren: ReactNode | undefined;\n },\n ) => ReactNode);\n\nfunction getChildren(children: ChildrenTypes) {\n const childrenArray = Children.toArray(\n typeof children === 'function'\n ? children({ state: {}, defaultChildren: <></> })\n : children,\n );\n let index = 0;\n\n while (index < childrenArray.length) {\n const child = childrenArray[index];\n\n if (\n child != null &&\n typeof child === 'object' &&\n !(child instanceof Promise) &&\n !(Symbol.iterator in child) &&\n child.type === Fragment &&\n child.props != null &&\n typeof child.props === 'object' &&\n 'children' in child.props\n ) {\n childrenArray.splice(\n index,\n 1,\n ...Children.toArray(child.props.children as ReactNode | ReactNode[]),\n );\n } else {\n index++;\n }\n }\n\n return childrenArray;\n}\n\ntype ContainsExactChildrenProps = {\n componentName: string;\n children: ChildrenTypes;\n restrictions: [\n // biome-ignore lint/suspicious/noExplicitAny: allow all props\n string | JSXElementConstructor<any>,\n { min: number; max?: number },\n ][];\n};\n\n/**\n * Validates the intended composite component structure.\n *\n * @param children the children of the component\n * @param componentName the displayName of the component\n * @param restrictions the record of validation rules\n */\nexport function containsExactChildren({\n children,\n componentName,\n restrictions,\n}: ContainsExactChildrenProps) {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n const childrenComponents = getChildren(children);\n\n if (!childrenComponents.every(isValidElement)) {\n throw new ComponentStructureError(\n `<${componentName}> received invalid children.`,\n );\n }\n\n const accumulationResults = childrenComponents.reduce(\n (acc: Record<string, number>, child) => {\n const name =\n // @ts-expect-error Accessing undocumented / untyped properties of React components\n child.type?.name ?? child.type?.displayName ?? child.type?.render?.name;\n\n if (name) {\n acc[name] = (acc[name] || 0) + 1;\n }\n return acc;\n },\n {},\n );\n\n const missingComponentsArray: string[] = [];\n const excessComponentsArray: string[] = [];\n\n for (const [component, { min, max }] of restrictions) {\n const name =\n typeof component === 'string'\n ? component\n : // @ts-expect-error Accessing undocumented / untyped properties of React components\n (component.name ?? component.displayName ?? component.render?.name);\n\n const found = accumulationResults[name] ?? 0;\n\n if (found < min) {\n missingComponentsArray.push(`${min - found} of <${name}>`);\n }\n\n if (max !== undefined && found > max) {\n excessComponentsArray.push(`${found - max} of <${name}>`);\n }\n }\n\n if (missingComponentsArray.length || excessComponentsArray.length) {\n const formatList = (label: string, items: string[]) =>\n items.length ? `\\t${label}:\\n\\t\\t${items.join(', ')}\\n` : '';\n\n const errorMessage =\n `Invalid <${componentName}> structure \\n` +\n `${formatList('Missing the following', missingComponentsArray)}` +\n `${formatList('Excess of the following', excessComponentsArray)}`;\n\n throw new ComponentStructureError(errorMessage.trim());\n }\n}\n\n/**\n * I look for svgIcons exported from the @accelint/icons library\n * and ensure that they are wrapped in an Icon component in order\n * to get the classes and styles they need in context.\n *\n * Using isValidElement means we will filter out strings, boolean, etc.\n * that are valid nodes but not elements.\n *\n * @example\n * expectsIconWrapper({\n * children,\n * componentName: Button.displayName,\n * });\n *\n *\n * @param children the children of the calling component\n * @param componentName the displayName of the calling component\n */\nexport function expectsIconWrapper({\n children,\n componentName,\n}: Omit<ContainsExactChildrenProps, 'restrictions'>) {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n const childrenComponents = Children.toArray(\n children as ReactNode | ReactNode[],\n );\n\n childrenComponents.map((child) => {\n if (isValidElement(child)) {\n // icons should never be a direct child of the parent\n // @ts-expect-error Accessing undocumented / untyped properties of React components\n if (child.type?.name?.startsWith('Svg')) {\n throw new Error(\n `${componentName} is using an icon without the required Icon wrapper`,\n );\n }\n }\n });\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ReactNode, CSSProperties } from 'react';
1
+ import { PropsWithChildren, ReactNode, CSSProperties } from 'react';
2
2
 
3
3
  /**
4
4
  * Re-export due to not being exported by library
@@ -25,5 +25,9 @@ type RenderProps<T extends object> = StyleRenderProps<T> & {
25
25
  /** The children of the component. A function may be provided to alter the children based on component state. */
26
26
  children?: RenderPropsChildren<T>;
27
27
  };
28
+ type SlottedValue<T> = {
29
+ slots?: Record<string | symbol, T>;
30
+ };
31
+ type ProviderProps<T> = PropsWithChildren<Omit<T, 'children' | 'slot'> & SlottedValue<T>>;
28
32
 
29
- export type { ChildrenRenderProps, ClassNameRenderProps, RenderProps, RenderPropsChildren, RenderPropsClassName, RenderPropsStyle, StylePropRenderProps, StyleRenderProps };
33
+ export type { ChildrenRenderProps, ClassNameRenderProps, ProviderProps, RenderProps, RenderPropsChildren, RenderPropsClassName, RenderPropsStyle, SlottedValue, StylePropRenderProps, StyleRenderProps };
package/dist/lib/utils.js CHANGED
@@ -1,2 +1,2 @@
1
- import {clsx}from'clsx';import {extendTailwindMerge,validators}from'tailwind-merge';import {createTV}from'tailwind-variants';var r=extendTailwindMerge({extend:{classGroups:{icon:[{icon:["",validators.isAny]}],fg:[{fg:["",validators.isAny]}]},conflictingClassGroups:{fg:["icon","text-color"]},theme:{color:["current","surface-default","surface-raised","surface-overlay","transparent-dark","transparent-light","interactive-default","interactive-hover-light","interactive-hover-dark","interactive-disabled","static-light","static-dark","interactive","interactive-hover","highlight-bold","highlight-hover","highlight-subtle","info-bold","info-hover","info-subtle","advisory-bold","advisory-hover","advisory-subtle","normal-bold","normal-hover","normal-subtle","serious-bold","serious-hover","serious-subtle","critical-bold","critical-hover","critical-subtle","default-light","default-dark","inverse-dark","inverse-light","disabled","highlight","info","advisory","normal","serious","critical","classification-missing","classification-unclass","classification-cui","classification-confidential","classification-secret","classification-top-secret"],font:["primary","display"],text:["header-xxl","header-xl","header-l","header-m","header-s","header-xs","body-xl","body-l","body-m","body-s","body-xs","body-xxs","button-xl","button-l","button-m","button-s","button-xs"],radius:["none","small","medium","large","round"],shadow:["elevation-default","elevation-overlay","elevation-raised"],spacing:["none","0","xxs","xs","s","m","l","xl","xxl","oversized"]}}});function d(...e){return r(clsx(e))}var c=createTV({twMergeConfig:{extend:{classGroups:{icon:[{icon:["",validators.isAny]}],fg:[{fg:["",validators.isAny]}]},conflictingClassGroups:{fg:["icon","text-color"]},theme:{color:["current","surface-default","surface-raised","surface-overlay","transparent-dark","transparent-light","interactive-default","interactive-hover-light","interactive-hover-dark","interactive-disabled","static-light","static-dark","interactive","interactive-hover","highlight-bold","highlight-hover","highlight-subtle","info-bold","info-hover","info-subtle","advisory-bold","advisory-hover","advisory-subtle","normal-bold","normal-hover","normal-subtle","serious-bold","serious-hover","serious-subtle","critical-bold","critical-hover","critical-subtle","default-light","default-dark","inverse-dark","inverse-light","disabled","highlight","info","advisory","normal","serious","critical","classification-missing","classification-unclass","classification-cui","classification-confidential","classification-secret","classification-top-secret"],font:["primary","display"],text:["header-xxl","header-xl","header-l","header-m","header-s","header-xs","body-xl","body-l","body-m","body-s","body-xs","body-xxs","button-xl","button-l","button-m","button-s","button-xs"],radius:["none","small","medium","large","round"],shadow:["elevation-default","elevation-overlay","elevation-raised"],spacing:["none","0","xxs","xs","s","m","l","xl","xxl","oversized"]}}}});function u(e){return !!e&&"slots"in e}export{d as cn,u as isSlottedContextValue,c as tv,r as twMerge};//# sourceMappingURL=utils.js.map
1
+ import {clsx}from'clsx';import {extendTailwindMerge,validators}from'tailwind-merge';import {createTV}from'tailwind-variants';const r=extendTailwindMerge({extend:{classGroups:{icon:[{icon:["",validators.isAny]}],fg:[{fg:["",validators.isAny]}]},conflictingClassGroups:{fg:["icon","text-color"]},theme:{color:["current","surface-default","surface-raised","surface-overlay","transparent-dark","transparent-light","interactive-default","interactive-hover-light","interactive-hover-dark","interactive-disabled","static-light","static-dark","interactive","interactive-hover","highlight-bold","highlight-hover","highlight-subtle","info-bold","info-hover","info-subtle","advisory-bold","advisory-hover","advisory-subtle","normal-bold","normal-hover","normal-subtle","serious-bold","serious-hover","serious-subtle","critical-bold","critical-hover","critical-subtle","default-light","default-dark","inverse-dark","inverse-light","disabled","highlight","info","advisory","normal","serious","critical","classification-missing","classification-unclass","classification-cui","classification-confidential","classification-secret","classification-top-secret"],font:["primary","display"],text:["header-xxl","header-xl","header-l","header-m","header-s","header-xs","body-xl","body-l","body-m","body-s","body-xs","body-xxs","button-xl","button-l","button-m","button-s","button-xs"],radius:["none","small","medium","large","round"],shadow:["elevation-default","elevation-overlay","elevation-raised"],spacing:["none","0","xxs","xs","s","m","l","xl","xxl","oversized"]}}});function d(...e){return r(clsx(e))}const c=createTV({twMergeConfig:{extend:{classGroups:{icon:[{icon:["",validators.isAny]}],fg:[{fg:["",validators.isAny]}]},conflictingClassGroups:{fg:["icon","text-color"]},theme:{color:["current","surface-default","surface-raised","surface-overlay","transparent-dark","transparent-light","interactive-default","interactive-hover-light","interactive-hover-dark","interactive-disabled","static-light","static-dark","interactive","interactive-hover","highlight-bold","highlight-hover","highlight-subtle","info-bold","info-hover","info-subtle","advisory-bold","advisory-hover","advisory-subtle","normal-bold","normal-hover","normal-subtle","serious-bold","serious-hover","serious-subtle","critical-bold","critical-hover","critical-subtle","default-light","default-dark","inverse-dark","inverse-light","disabled","highlight","info","advisory","normal","serious","critical","classification-missing","classification-unclass","classification-cui","classification-confidential","classification-secret","classification-top-secret"],font:["primary","display"],text:["header-xxl","header-xl","header-l","header-m","header-s","header-xs","body-xl","body-l","body-m","body-s","body-xs","body-xxs","button-xl","button-l","button-m","button-s","button-xs"],radius:["none","small","medium","large","round"],shadow:["elevation-default","elevation-overlay","elevation-raised"],spacing:["none","0","xxs","xs","s","m","l","xl","xxl","oversized"]}}}});function u(e){return !!e&&"slots"in e}export{d as cn,u as isSlottedContextValue,c as tv,r as twMerge};//# sourceMappingURL=utils.js.map
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/utils.ts"],"names":["twMerge","extendTailwindMerge","validators","cn","inputs","clsx","tv","createTV","isSlottedContextValue","context"],"mappings":"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","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { type ClassValue, clsx } from 'clsx';\nimport type { ForwardedRef } from 'react';\nimport type { ContextValue } from 'react-aria-components';\nimport { extendTailwindMerge, validators } from 'tailwind-merge';\nimport { createTV } from 'tailwind-variants';\n\ntype AdditionalClassGroupIds = 'icon' | 'icon-size' | 'fg';\n\nexport const twMerge = extendTailwindMerge<AdditionalClassGroupIds>({\n extend: {\n classGroups: {\n icon: [{ icon: ['', validators.isAny] }],\n fg: [{ fg: ['', validators.isAny] }],\n },\n conflictingClassGroups: {\n fg: ['icon', 'text-color'],\n },\n theme: {\n color: [\n 'current',\n 'surface-default',\n 'surface-raised',\n 'surface-overlay',\n 'transparent-dark',\n 'transparent-light',\n 'interactive-default',\n 'interactive-hover-light',\n 'interactive-hover-dark',\n 'interactive-disabled',\n 'static-light',\n 'static-dark',\n 'interactive',\n 'interactive-hover',\n 'highlight-bold',\n 'highlight-hover',\n 'highlight-subtle',\n 'info-bold',\n 'info-hover',\n 'info-subtle',\n 'advisory-bold',\n 'advisory-hover',\n 'advisory-subtle',\n 'normal-bold',\n 'normal-hover',\n 'normal-subtle',\n 'serious-bold',\n 'serious-hover',\n 'serious-subtle',\n 'critical-bold',\n 'critical-hover',\n 'critical-subtle',\n 'default-light',\n 'default-dark',\n 'inverse-dark',\n 'inverse-light',\n 'disabled',\n 'highlight',\n 'info',\n 'advisory',\n 'normal',\n 'serious',\n 'critical',\n 'classification-missing',\n 'classification-unclass',\n 'classification-cui',\n 'classification-confidential',\n 'classification-secret',\n 'classification-top-secret',\n ],\n font: ['primary', 'display'],\n text: [\n 'header-xxl',\n 'header-xl',\n 'header-l',\n 'header-m',\n 'header-s',\n 'header-xs',\n 'body-xl',\n 'body-l',\n 'body-m',\n 'body-s',\n 'body-xs',\n 'body-xxs',\n 'button-xl',\n 'button-l',\n 'button-m',\n 'button-s',\n 'button-xs',\n ],\n radius: ['none', 'small', 'medium', 'large', 'round'],\n shadow: ['elevation-default', 'elevation-overlay', 'elevation-raised'],\n spacing: [\n 'none',\n '0',\n 'xxs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n 'xxl',\n 'oversized',\n ],\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const tv = createTV({\n twMergeConfig: {\n extend: {\n classGroups: {\n icon: [{ icon: ['', validators.isAny] }],\n fg: [{ fg: ['', validators.isAny] }],\n },\n conflictingClassGroups: {\n fg: ['icon', 'text-color'],\n },\n theme: {\n color: [\n 'current',\n 'surface-default',\n 'surface-raised',\n 'surface-overlay',\n 'transparent-dark',\n 'transparent-light',\n 'interactive-default',\n 'interactive-hover-light',\n 'interactive-hover-dark',\n 'interactive-disabled',\n 'static-light',\n 'static-dark',\n 'interactive',\n 'interactive-hover',\n 'highlight-bold',\n 'highlight-hover',\n 'highlight-subtle',\n 'info-bold',\n 'info-hover',\n 'info-subtle',\n 'advisory-bold',\n 'advisory-hover',\n 'advisory-subtle',\n 'normal-bold',\n 'normal-hover',\n 'normal-subtle',\n 'serious-bold',\n 'serious-hover',\n 'serious-subtle',\n 'critical-bold',\n 'critical-hover',\n 'critical-subtle',\n 'default-light',\n 'default-dark',\n 'inverse-dark',\n 'inverse-light',\n 'disabled',\n 'highlight',\n 'info',\n 'advisory',\n 'normal',\n 'serious',\n 'critical',\n 'classification-missing',\n 'classification-unclass',\n 'classification-cui',\n 'classification-confidential',\n 'classification-secret',\n 'classification-top-secret',\n ],\n font: ['primary', 'display'],\n text: [\n 'header-xxl',\n 'header-xl',\n 'header-l',\n 'header-m',\n 'header-s',\n 'header-xs',\n 'body-xl',\n 'body-l',\n 'body-m',\n 'body-s',\n 'body-xs',\n 'body-xxs',\n 'button-xl',\n 'button-l',\n 'button-m',\n 'button-s',\n 'button-xs',\n ],\n radius: ['none', 'small', 'medium', 'large', 'round'],\n shadow: ['elevation-default', 'elevation-overlay', 'elevation-raised'],\n spacing: [\n 'none',\n '0',\n 'xxs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n 'xxl',\n 'oversized',\n ],\n },\n },\n },\n});\n\n// Types copied from RAC due to not being exported\ntype WithRef<T, E> = T & {\n ref?: ForwardedRef<E>;\n};\n\ninterface SlottedValue<T> {\n slots?: Record<string | symbol, T>;\n}\n\n/**\n * A helper to narrow the type of Context Value\n */\nexport function isSlottedContextValue<T, E>(\n context: ContextValue<T, E>,\n): context is SlottedValue<WithRef<T, E>> {\n return !!context && 'slots' in context;\n}\n"]}
1
+ {"version":3,"sources":["../../src/lib/utils.ts"],"names":["twMerge","extendTailwindMerge","validators","cn","inputs","clsx","tv","createTV","isSlottedContextValue","context"],"mappings":"mIAoBaA,CAAAA,CAAUC,mBAAAA,CAA6C,CAClE,MAAA,CAAQ,CACN,WAAA,CAAa,CACX,KAAM,CAAC,CAAE,IAAA,CAAM,CAAC,GAAIC,UAAAA,CAAW,KAAK,CAAE,CAAC,EACvC,EAAA,CAAI,CAAC,CAAE,EAAA,CAAI,CAAC,GAAIA,UAAAA,CAAW,KAAK,CAAE,CAAC,CACrC,CAAA,CACA,sBAAA,CAAwB,CACtB,EAAA,CAAI,CAAC,MAAA,CAAQ,YAAY,CAC3B,CAAA,CACA,MAAO,CACL,KAAA,CAAO,CACL,SAAA,CACA,iBAAA,CACA,iBACA,iBAAA,CACA,kBAAA,CACA,mBAAA,CACA,qBAAA,CACA,0BACA,wBAAA,CACA,sBAAA,CACA,cAAA,CACA,aAAA,CACA,cACA,mBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,YACA,YAAA,CACA,aAAA,CACA,gBACA,gBAAA,CACA,iBAAA,CACA,cACA,cAAA,CACA,eAAA,CACA,cAAA,CACA,eAAA,CACA,iBACA,eAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,eACA,cAAA,CACA,eAAA,CACA,UAAA,CACA,WAAA,CACA,OACA,UAAA,CACA,QAAA,CACA,UACA,UAAA,CACA,wBAAA,CACA,yBACA,oBAAA,CACA,6BAAA,CACA,uBAAA,CACA,2BACF,EACA,IAAA,CAAM,CAAC,SAAA,CAAW,SAAS,EAC3B,IAAA,CAAM,CACJ,YAAA,CACA,WAAA,CACA,WACA,UAAA,CACA,UAAA,CACA,YACA,SAAA,CACA,QAAA,CACA,SACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,WACA,UAAA,CACA,UAAA,CACA,WACF,CAAA,CACA,OAAQ,CAAC,MAAA,CAAQ,OAAA,CAAS,QAAA,CAAU,QAAS,OAAO,CAAA,CACpD,OAAQ,CAAC,mBAAA,CAAqB,oBAAqB,kBAAkB,CAAA,CACrE,OAAA,CAAS,CACP,OACA,GAAA,CACA,KAAA,CACA,KACA,GAAA,CACA,GAAA,CACA,IACA,IAAA,CACA,KAAA,CACA,WACF,CACF,CACF,CACF,CAAC,EAEM,SAASC,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOJ,CAAAA,CAAQK,IAAAA,CAAKD,CAAM,CAAC,CAC7B,CAEO,MAAME,EAAKC,QAAAA,CAAS,CACzB,aAAA,CAAe,CACb,OAAQ,CACN,WAAA,CAAa,CACX,IAAA,CAAM,CAAC,CAAE,IAAA,CAAM,CAAC,EAAA,CAAIL,UAAAA,CAAW,KAAK,CAAE,CAAC,CAAA,CACvC,EAAA,CAAI,CAAC,CAAE,EAAA,CAAI,CAAC,EAAA,CAAIA,WAAW,KAAK,CAAE,CAAC,CACrC,CAAA,CACA,uBAAwB,CACtB,EAAA,CAAI,CAAC,MAAA,CAAQ,YAAY,CAC3B,CAAA,CACA,KAAA,CAAO,CACL,MAAO,CACL,SAAA,CACA,iBAAA,CACA,gBAAA,CACA,kBACA,kBAAA,CACA,mBAAA,CACA,sBACA,yBAAA,CACA,wBAAA,CACA,uBACA,cAAA,CACA,aAAA,CACA,aAAA,CACA,mBAAA,CACA,iBACA,iBAAA,CACA,kBAAA,CACA,WAAA,CACA,YAAA,CACA,cACA,eAAA,CACA,gBAAA,CACA,iBAAA,CACA,aAAA,CACA,eACA,eAAA,CACA,cAAA,CACA,gBACA,gBAAA,CACA,eAAA,CACA,iBACA,iBAAA,CACA,eAAA,CACA,cAAA,CACA,cAAA,CACA,gBACA,UAAA,CACA,WAAA,CACA,MAAA,CACA,UAAA,CACA,SACA,SAAA,CACA,UAAA,CACA,wBAAA,CACA,wBAAA,CACA,qBACA,6BAAA,CACA,uBAAA,CACA,2BACF,CAAA,CACA,IAAA,CAAM,CAAC,SAAA,CAAW,SAAS,CAAA,CAC3B,IAAA,CAAM,CACJ,YAAA,CACA,WAAA,CACA,UAAA,CACA,UAAA,CACA,WACA,WAAA,CACA,SAAA,CACA,QAAA,CACA,QAAA,CACA,SACA,SAAA,CACA,UAAA,CACA,YACA,UAAA,CACA,UAAA,CACA,WACA,WACF,CAAA,CACA,MAAA,CAAQ,CAAC,OAAQ,OAAA,CAAS,QAAA,CAAU,OAAA,CAAS,OAAO,EACpD,MAAA,CAAQ,CAAC,mBAAA,CAAqB,mBAAA,CAAqB,kBAAkB,CAAA,CACrE,OAAA,CAAS,CACP,MAAA,CACA,GAAA,CACA,MACA,IAAA,CACA,GAAA,CACA,GAAA,CACA,GAAA,CACA,KACA,KAAA,CACA,WACF,CACF,CACF,CACF,CACF,CAAC,EAcM,SAASM,CAAAA,CACdC,EACwC,CACxC,OAAO,CAAC,CAACA,CAAAA,EAAW,UAAWA,CACjC","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { type ClassValue, clsx } from 'clsx';\nimport type { ForwardedRef } from 'react';\nimport type { ContextValue } from 'react-aria-components';\nimport { extendTailwindMerge, validators } from 'tailwind-merge';\nimport { createTV } from 'tailwind-variants';\n\ntype AdditionalClassGroupIds = 'icon' | 'icon-size' | 'fg';\n\nexport const twMerge = extendTailwindMerge<AdditionalClassGroupIds>({\n extend: {\n classGroups: {\n icon: [{ icon: ['', validators.isAny] }],\n fg: [{ fg: ['', validators.isAny] }],\n },\n conflictingClassGroups: {\n fg: ['icon', 'text-color'],\n },\n theme: {\n color: [\n 'current',\n 'surface-default',\n 'surface-raised',\n 'surface-overlay',\n 'transparent-dark',\n 'transparent-light',\n 'interactive-default',\n 'interactive-hover-light',\n 'interactive-hover-dark',\n 'interactive-disabled',\n 'static-light',\n 'static-dark',\n 'interactive',\n 'interactive-hover',\n 'highlight-bold',\n 'highlight-hover',\n 'highlight-subtle',\n 'info-bold',\n 'info-hover',\n 'info-subtle',\n 'advisory-bold',\n 'advisory-hover',\n 'advisory-subtle',\n 'normal-bold',\n 'normal-hover',\n 'normal-subtle',\n 'serious-bold',\n 'serious-hover',\n 'serious-subtle',\n 'critical-bold',\n 'critical-hover',\n 'critical-subtle',\n 'default-light',\n 'default-dark',\n 'inverse-dark',\n 'inverse-light',\n 'disabled',\n 'highlight',\n 'info',\n 'advisory',\n 'normal',\n 'serious',\n 'critical',\n 'classification-missing',\n 'classification-unclass',\n 'classification-cui',\n 'classification-confidential',\n 'classification-secret',\n 'classification-top-secret',\n ],\n font: ['primary', 'display'],\n text: [\n 'header-xxl',\n 'header-xl',\n 'header-l',\n 'header-m',\n 'header-s',\n 'header-xs',\n 'body-xl',\n 'body-l',\n 'body-m',\n 'body-s',\n 'body-xs',\n 'body-xxs',\n 'button-xl',\n 'button-l',\n 'button-m',\n 'button-s',\n 'button-xs',\n ],\n radius: ['none', 'small', 'medium', 'large', 'round'],\n shadow: ['elevation-default', 'elevation-overlay', 'elevation-raised'],\n spacing: [\n 'none',\n '0',\n 'xxs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n 'xxl',\n 'oversized',\n ],\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const tv = createTV({\n twMergeConfig: {\n extend: {\n classGroups: {\n icon: [{ icon: ['', validators.isAny] }],\n fg: [{ fg: ['', validators.isAny] }],\n },\n conflictingClassGroups: {\n fg: ['icon', 'text-color'],\n },\n theme: {\n color: [\n 'current',\n 'surface-default',\n 'surface-raised',\n 'surface-overlay',\n 'transparent-dark',\n 'transparent-light',\n 'interactive-default',\n 'interactive-hover-light',\n 'interactive-hover-dark',\n 'interactive-disabled',\n 'static-light',\n 'static-dark',\n 'interactive',\n 'interactive-hover',\n 'highlight-bold',\n 'highlight-hover',\n 'highlight-subtle',\n 'info-bold',\n 'info-hover',\n 'info-subtle',\n 'advisory-bold',\n 'advisory-hover',\n 'advisory-subtle',\n 'normal-bold',\n 'normal-hover',\n 'normal-subtle',\n 'serious-bold',\n 'serious-hover',\n 'serious-subtle',\n 'critical-bold',\n 'critical-hover',\n 'critical-subtle',\n 'default-light',\n 'default-dark',\n 'inverse-dark',\n 'inverse-light',\n 'disabled',\n 'highlight',\n 'info',\n 'advisory',\n 'normal',\n 'serious',\n 'critical',\n 'classification-missing',\n 'classification-unclass',\n 'classification-cui',\n 'classification-confidential',\n 'classification-secret',\n 'classification-top-secret',\n ],\n font: ['primary', 'display'],\n text: [\n 'header-xxl',\n 'header-xl',\n 'header-l',\n 'header-m',\n 'header-s',\n 'header-xs',\n 'body-xl',\n 'body-l',\n 'body-m',\n 'body-s',\n 'body-xs',\n 'body-xxs',\n 'button-xl',\n 'button-l',\n 'button-m',\n 'button-s',\n 'button-xs',\n ],\n radius: ['none', 'small', 'medium', 'large', 'round'],\n shadow: ['elevation-default', 'elevation-overlay', 'elevation-raised'],\n spacing: [\n 'none',\n '0',\n 'xxs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n 'xxl',\n 'oversized',\n ],\n },\n },\n },\n});\n\n// Types copied from RAC due to not being exported\ntype WithRef<T, E> = T & {\n ref?: ForwardedRef<E>;\n};\n\ninterface SlottedValue<T> {\n slots?: Record<string | symbol, T>;\n}\n\n/**\n * A helper to narrow the type of Context Value\n */\nexport function isSlottedContextValue<T, E>(\n context: ContextValue<T, E>,\n): context is SlottedValue<WithRef<T, E>> {\n return !!context && 'slots' in context;\n}\n"]}