@salesmind-ai/design-system 0.6.0 → 0.7.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 (257) hide show
  1. package/README.md +2 -0
  2. package/dist/Anton-Regular-MLEXVTB2.woff2 +0 -0
  3. package/dist/admin/index.cjs +5 -61
  4. package/dist/admin/index.css +0 -3918
  5. package/dist/admin/index.css.map +1 -1
  6. package/dist/admin/index.d.cts +1 -422
  7. package/dist/admin/index.d.ts +1 -422
  8. package/dist/admin/index.js +1 -5
  9. package/dist/blog/index.cjs +13 -34
  10. package/dist/blog/index.css +0 -579
  11. package/dist/blog/index.css.map +1 -1
  12. package/dist/blog/index.d.cts +1 -54
  13. package/dist/blog/index.d.ts +1 -54
  14. package/dist/blog/index.js +5 -6
  15. package/dist/charts/index.cjs +0 -46
  16. package/dist/charts/index.d.cts +1 -452
  17. package/dist/charts/index.d.ts +1 -452
  18. package/dist/charts/index.js +1 -3
  19. package/dist/{chunk-HDVAMYSG.js → chunk-27Y5ESMM.js} +7 -2
  20. package/dist/chunk-27Y5ESMM.js.map +1 -0
  21. package/dist/{chunk-YTYDQBVY.cjs → chunk-2VVRZBUR.cjs} +4 -4
  22. package/dist/{chunk-GQELL2MF.cjs → chunk-3NS6X2R4.cjs} +20 -203
  23. package/dist/chunk-3NS6X2R4.cjs.map +1 -0
  24. package/dist/{chunk-XEX2AEZK.cjs → chunk-65DTHLVX.cjs} +66 -186
  25. package/dist/chunk-65DTHLVX.cjs.map +1 -0
  26. package/dist/{chunk-QALDZ7WQ.js → chunk-6BUS7RMS.js} +21 -198
  27. package/dist/chunk-6BUS7RMS.js.map +1 -0
  28. package/dist/{chunk-BJZ2DKS5.cjs → chunk-6QIQCUYC.cjs} +11 -10
  29. package/dist/chunk-6QIQCUYC.cjs.map +1 -0
  30. package/dist/{chunk-H2Y6BSTL.cjs → chunk-7EUR3AKV.cjs} +1 -1
  31. package/dist/chunk-7EUR3AKV.cjs.map +1 -0
  32. package/dist/{chunk-VFJZQQZU.js → chunk-AMNY5TS3.js} +11 -10
  33. package/dist/chunk-AMNY5TS3.js.map +1 -0
  34. package/dist/{chunk-YJ6C3EKW.js → chunk-CLXLQCNQ.js} +52 -168
  35. package/dist/chunk-CLXLQCNQ.js.map +1 -0
  36. package/dist/{chunk-H2KQ3WSH.cjs → chunk-CVLD5RQK.cjs} +12 -14
  37. package/dist/chunk-CVLD5RQK.cjs.map +1 -0
  38. package/dist/chunk-EPD4ZEPY.cjs +344 -0
  39. package/dist/chunk-EPD4ZEPY.cjs.map +1 -0
  40. package/dist/chunk-FXYOSA4E.cjs +118 -0
  41. package/dist/chunk-FXYOSA4E.cjs.map +1 -0
  42. package/dist/{chunk-ECXBTUH6.cjs → chunk-GPHQGLR5.cjs} +27 -204
  43. package/dist/chunk-GPHQGLR5.cjs.map +1 -0
  44. package/dist/{chunk-Y26OHHMX.js → chunk-HHQ6J7B6.js} +513 -888
  45. package/dist/chunk-HHQ6J7B6.js.map +1 -0
  46. package/dist/chunk-JPUJWI7F.cjs +73 -0
  47. package/dist/chunk-JPUJWI7F.cjs.map +1 -0
  48. package/dist/{chunk-6UNG76Y2.js → chunk-K526GN7P.js} +2 -2
  49. package/dist/{chunk-SICKWUWB.js → chunk-KJHPOB3J.js} +1 -1
  50. package/dist/chunk-KJHPOB3J.js.map +1 -0
  51. package/dist/chunk-KXVFFEGD.js +60 -0
  52. package/dist/chunk-KXVFFEGD.js.map +1 -0
  53. package/dist/chunk-LQB7QLD3.js +288 -0
  54. package/dist/chunk-LQB7QLD3.js.map +1 -0
  55. package/dist/chunk-LUD52ZJF.cjs +726 -0
  56. package/dist/chunk-LUD52ZJF.cjs.map +1 -0
  57. package/dist/{chunk-7UZ5DETZ.js → chunk-MBAG654R.js} +4 -216
  58. package/dist/chunk-MBAG654R.js.map +1 -0
  59. package/dist/chunk-OMP6FAZ6.cjs +183 -0
  60. package/dist/chunk-OMP6FAZ6.cjs.map +1 -0
  61. package/dist/{chunk-WYH4TKS5.js → chunk-PBYRTNQ5.js} +6 -8
  62. package/dist/chunk-PBYRTNQ5.js.map +1 -0
  63. package/dist/chunk-PYREXCZK.js +679 -0
  64. package/dist/chunk-PYREXCZK.js.map +1 -0
  65. package/dist/{chunk-6D22TFLA.cjs → chunk-R3ZECV5P.cjs} +9 -4
  66. package/dist/chunk-R3ZECV5P.cjs.map +1 -0
  67. package/dist/{chunk-P5BOFE5A.js → chunk-RSLA2FJN.js} +28 -183
  68. package/dist/chunk-RSLA2FJN.js.map +1 -0
  69. package/dist/chunk-S46SKHMD.js +173 -0
  70. package/dist/chunk-S46SKHMD.js.map +1 -0
  71. package/dist/chunk-SFXTB7JL.js +190 -0
  72. package/dist/chunk-SFXTB7JL.js.map +1 -0
  73. package/dist/chunk-SGYXYMKZ.cjs +214 -0
  74. package/dist/chunk-SGYXYMKZ.cjs.map +1 -0
  75. package/dist/chunk-UGKYP6F3.cjs +296 -0
  76. package/dist/chunk-UGKYP6F3.cjs.map +1 -0
  77. package/dist/chunk-WB6XDNU7.js +115 -0
  78. package/dist/chunk-WB6XDNU7.js.map +1 -0
  79. package/dist/{chunk-LTPTW2US.cjs → chunk-WE4QIIVN.cjs} +592 -974
  80. package/dist/chunk-WE4QIIVN.cjs.map +1 -0
  81. package/dist/core/index.cjs +144 -626
  82. package/dist/core/index.css +178 -3567
  83. package/dist/core/index.css.map +1 -1
  84. package/dist/core/index.d.cts +940 -902
  85. package/dist/core/index.d.ts +940 -902
  86. package/dist/core/index.js +6 -12
  87. package/dist/i18n/index.cjs +54 -49
  88. package/dist/i18n/index.d.cts +46 -11
  89. package/dist/i18n/index.d.ts +46 -11
  90. package/dist/i18n/index.js +2 -1
  91. package/dist/index-BJ8rBqrO.d.cts +1100 -0
  92. package/dist/index-BxMqCbqE.d.ts +1100 -0
  93. package/dist/index.cjs +507 -1001
  94. package/dist/index.cjs.map +1 -1
  95. package/dist/index.css +6057 -16713
  96. package/dist/index.css.map +1 -1
  97. package/dist/index.d.cts +306 -21
  98. package/dist/index.d.ts +306 -21
  99. package/dist/index.js +274 -39
  100. package/dist/index.js.map +1 -1
  101. package/dist/marketing/index.cjs +33 -76
  102. package/dist/marketing/index.css +1896 -3234
  103. package/dist/marketing/index.css.map +1 -1
  104. package/dist/marketing/index.d.cts +3 -1351
  105. package/dist/marketing/index.d.ts +3 -1351
  106. package/dist/marketing/index.js +5 -8
  107. package/dist/motion/index.cjs +3 -20
  108. package/dist/motion/index.css +0 -580
  109. package/dist/motion/index.css.map +1 -1
  110. package/dist/motion/index.d.cts +1 -37
  111. package/dist/motion/index.d.ts +1 -37
  112. package/dist/motion/index.js +1 -2
  113. package/dist/nav/index.cjs +10 -35
  114. package/dist/nav/index.css +28 -580
  115. package/dist/nav/index.css.map +1 -1
  116. package/dist/nav/index.d.cts +2 -60
  117. package/dist/nav/index.d.ts +2 -60
  118. package/dist/nav/index.js +1 -2
  119. package/dist/report/index.cjs +1166 -175
  120. package/dist/report/index.cjs.map +1 -1
  121. package/dist/report/index.d.cts +208 -5
  122. package/dist/report/index.d.ts +208 -5
  123. package/dist/report/index.js +1141 -3
  124. package/dist/report/index.js.map +1 -1
  125. package/dist/sections/index.cjs +8 -10
  126. package/dist/sections/index.cjs.map +1 -1
  127. package/dist/sections/index.css +0 -206
  128. package/dist/sections/index.css.map +1 -1
  129. package/dist/sections/index.js +2 -4
  130. package/dist/sections/index.js.map +1 -1
  131. package/dist/social-media/index.cjs +4 -0
  132. package/dist/social-media/index.cjs.map +1 -0
  133. package/dist/social-media/index.d.cts +2 -0
  134. package/dist/social-media/index.d.ts +2 -0
  135. package/dist/social-media/index.js +3 -0
  136. package/dist/social-media/index.js.map +1 -0
  137. package/dist/social-proof/index.cjs +4 -36
  138. package/dist/social-proof/index.css +3 -1106
  139. package/dist/social-proof/index.css.map +1 -1
  140. package/dist/social-proof/index.d.cts +26 -171
  141. package/dist/social-proof/index.d.ts +26 -171
  142. package/dist/social-proof/index.js +1 -5
  143. package/dist/styles/styles.css +657 -2990
  144. package/dist/theme/index.cjs +12 -16
  145. package/dist/theme/index.css +1 -245
  146. package/dist/theme/index.css.map +1 -1
  147. package/dist/theme/index.d.cts +4 -1
  148. package/dist/theme/index.d.ts +4 -1
  149. package/dist/theme/index.js +2 -2
  150. package/dist/web/client/index.cjs +10 -10
  151. package/dist/web/client/index.css +118 -0
  152. package/dist/web/client/index.css.map +1 -1
  153. package/dist/web/client/index.js +2 -2
  154. package/dist/web/index.cjs +10 -10
  155. package/dist/web/index.css +118 -0
  156. package/dist/web/index.css.map +1 -1
  157. package/dist/web/index.js +2 -2
  158. package/package.json +10 -4
  159. package/dist/AppearancePanel-UT57J69V.d.cts +0 -51
  160. package/dist/AppearancePanel-UT57J69V.d.ts +0 -51
  161. package/dist/ExportMenu-A2TLFiVv.d.cts +0 -311
  162. package/dist/ExportMenu-C8qck5AT.d.ts +0 -311
  163. package/dist/Select-BdZmK0Lt.d.cts +0 -66
  164. package/dist/Select-BdZmK0Lt.d.ts +0 -66
  165. package/dist/chart-types-BGVVO-zl.d.cts +0 -208
  166. package/dist/chart-types-BGVVO-zl.d.ts +0 -208
  167. package/dist/charts/index.css +0 -1167
  168. package/dist/charts/index.css.map +0 -1
  169. package/dist/chunk-3BAQDW3V.cjs +0 -1207
  170. package/dist/chunk-3BAQDW3V.cjs.map +0 -1
  171. package/dist/chunk-3NKRFUAR.js +0 -37
  172. package/dist/chunk-3NKRFUAR.js.map +0 -1
  173. package/dist/chunk-3TGSIILM.cjs +0 -201
  174. package/dist/chunk-3TGSIILM.cjs.map +0 -1
  175. package/dist/chunk-4GM5BGBN.cjs +0 -801
  176. package/dist/chunk-4GM5BGBN.cjs.map +0 -1
  177. package/dist/chunk-5LA3T22E.cjs +0 -562
  178. package/dist/chunk-5LA3T22E.cjs.map +0 -1
  179. package/dist/chunk-5SN66B2X.js +0 -2542
  180. package/dist/chunk-5SN66B2X.js.map +0 -1
  181. package/dist/chunk-6D22TFLA.cjs.map +0 -1
  182. package/dist/chunk-6H4DSTXR.js +0 -786
  183. package/dist/chunk-6H4DSTXR.js.map +0 -1
  184. package/dist/chunk-6HKQ5ILL.cjs +0 -1624
  185. package/dist/chunk-6HKQ5ILL.cjs.map +0 -1
  186. package/dist/chunk-7PX2AZ6Y.js +0 -39
  187. package/dist/chunk-7PX2AZ6Y.js.map +0 -1
  188. package/dist/chunk-7UZ5DETZ.js.map +0 -1
  189. package/dist/chunk-B6AVAX4F.js +0 -1415
  190. package/dist/chunk-B6AVAX4F.js.map +0 -1
  191. package/dist/chunk-BJZ2DKS5.cjs.map +0 -1
  192. package/dist/chunk-BUTQSDQH.js +0 -200
  193. package/dist/chunk-BUTQSDQH.js.map +0 -1
  194. package/dist/chunk-C2BCDNAV.js +0 -24
  195. package/dist/chunk-C2BCDNAV.js.map +0 -1
  196. package/dist/chunk-CJ2MKVAF.cjs +0 -46
  197. package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
  198. package/dist/chunk-E7D6EKJ4.cjs +0 -44
  199. package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
  200. package/dist/chunk-ECXBTUH6.cjs.map +0 -1
  201. package/dist/chunk-FAFAP4L5.js +0 -183
  202. package/dist/chunk-FAFAP4L5.js.map +0 -1
  203. package/dist/chunk-G2XGBO5V.cjs +0 -2565
  204. package/dist/chunk-G2XGBO5V.cjs.map +0 -1
  205. package/dist/chunk-GQELL2MF.cjs.map +0 -1
  206. package/dist/chunk-H2KQ3WSH.cjs.map +0 -1
  207. package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
  208. package/dist/chunk-HCZW5AJN.cjs +0 -234
  209. package/dist/chunk-HCZW5AJN.cjs.map +0 -1
  210. package/dist/chunk-HDVAMYSG.js.map +0 -1
  211. package/dist/chunk-HN4PHABT.js +0 -126
  212. package/dist/chunk-HN4PHABT.js.map +0 -1
  213. package/dist/chunk-LTPTW2US.cjs.map +0 -1
  214. package/dist/chunk-MDB2WCRQ.cjs +0 -137
  215. package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
  216. package/dist/chunk-MQRB634A.cjs +0 -34
  217. package/dist/chunk-MQRB634A.cjs.map +0 -1
  218. package/dist/chunk-NN3TUHIH.js +0 -28
  219. package/dist/chunk-NN3TUHIH.js.map +0 -1
  220. package/dist/chunk-OWS2KAXZ.js +0 -701
  221. package/dist/chunk-OWS2KAXZ.js.map +0 -1
  222. package/dist/chunk-P5BOFE5A.js.map +0 -1
  223. package/dist/chunk-PUPSK3DI.cjs +0 -216
  224. package/dist/chunk-PUPSK3DI.cjs.map +0 -1
  225. package/dist/chunk-Q2MFGYTE.cjs +0 -1449
  226. package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
  227. package/dist/chunk-Q75DBVDY.cjs +0 -68
  228. package/dist/chunk-Q75DBVDY.cjs.map +0 -1
  229. package/dist/chunk-QALDZ7WQ.js.map +0 -1
  230. package/dist/chunk-QWE2RNCS.js +0 -1195
  231. package/dist/chunk-QWE2RNCS.js.map +0 -1
  232. package/dist/chunk-RQUFZAZ7.js +0 -1608
  233. package/dist/chunk-RQUFZAZ7.js.map +0 -1
  234. package/dist/chunk-SICKWUWB.js.map +0 -1
  235. package/dist/chunk-TCFC7XTB.js +0 -212
  236. package/dist/chunk-TCFC7XTB.js.map +0 -1
  237. package/dist/chunk-UTVXGAQP.cjs +0 -2437
  238. package/dist/chunk-UTVXGAQP.cjs.map +0 -1
  239. package/dist/chunk-UVEMY3FQ.cjs +0 -717
  240. package/dist/chunk-UVEMY3FQ.cjs.map +0 -1
  241. package/dist/chunk-VFJZQQZU.js.map +0 -1
  242. package/dist/chunk-WH7PYHZY.cjs +0 -35
  243. package/dist/chunk-WH7PYHZY.cjs.map +0 -1
  244. package/dist/chunk-WYH4TKS5.js.map +0 -1
  245. package/dist/chunk-XEX2AEZK.cjs.map +0 -1
  246. package/dist/chunk-XPTVHPCN.js +0 -2320
  247. package/dist/chunk-XPTVHPCN.js.map +0 -1
  248. package/dist/chunk-XWPDRMZG.js +0 -62
  249. package/dist/chunk-XWPDRMZG.js.map +0 -1
  250. package/dist/chunk-Y26OHHMX.js.map +0 -1
  251. package/dist/chunk-YJ6C3EKW.js.map +0 -1
  252. package/dist/motion-C651Ry6d.d.cts +0 -832
  253. package/dist/motion-C651Ry6d.d.ts +0 -832
  254. package/dist/report/index.css +0 -1239
  255. package/dist/report/index.css.map +0 -1
  256. /package/dist/{chunk-6UNG76Y2.js.map → chunk-2VVRZBUR.cjs.map} +0 -0
  257. /package/dist/{chunk-YTYDQBVY.cjs.map → chunk-K526GN7P.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/TextArea/TextArea.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Switch/Switch.tsx","../src/components/Label/Label.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Separator/Separator.tsx","../src/components/Collapsible/Collapsible.tsx","../src/components/Select/Select.tsx","../src/tokens/motion.ts","../src/tokens/colors.ts","../src/tokens/spacing.ts","../src/tokens/typography.ts","../src/tokens/radius.ts","../src/tokens/shadows.ts","../src/tokens/z-index.ts","../src/tokens/breakpoints.ts"],"names":["clsx","jsx","jsxs","React"],"mappings":"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","sourcesContent":["import { TextareaHTMLAttributes, forwardRef, useId } from 'react';\nimport clsx from 'clsx';\nimport './TextArea.css';\n\nexport interface TextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n label?: string;\n error?: boolean;\n helperText?: string;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n ({ className, label, error, helperText, id, ...props }, ref) => {\n const generatedId = useId();\n const inputId = id || generatedId;\n\n return (\n <div className={clsx('ds-textarea', className)}>\n {label && (\n <label htmlFor={inputId} className=\"ds-textarea__label\">\n {label}\n </label>\n )}\n <div className=\"ds-textarea__input-wrapper\">\n <textarea\n id={inputId}\n ref={ref}\n className={clsx('ds-textarea__input', error && 'ds-textarea__input--error')}\n {...props}\n />\n </div>\n {helperText && (\n <span className={clsx('ds-textarea__helper', error && 'ds-textarea__helper--error')}>\n {helperText}\n </span>\n )}\n </div>\n );\n },\n);\n\nTextArea.displayName = 'TextArea';\n","import React from 'react';\nimport { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';\nimport clsx from 'clsx';\nimport './Checkbox.css';\n\nexport interface CheckboxProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n required?: boolean;\n readOnly?: boolean;\n name?: string;\n value?: string;\n id?: string;\n label?: string;\n className?: string;\n}\n\nexport const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const checkboxId = id || generatedId;\n\n return (\n <div className={clsx('ds-checkbox-wrapper', className)}>\n <BaseCheckbox.Root id={checkboxId} ref={ref} className=\"ds-checkbox\" {...props}>\n <BaseCheckbox.Indicator className=\"ds-checkbox__indicator\">\n <svg\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"ds-checkbox__icon\"\n >\n <path\n d=\"M11.6666 3.5L5.24992 9.91667L2.33325 7\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </BaseCheckbox.Indicator>\n </BaseCheckbox.Root>\n {label && (\n <label htmlFor={checkboxId} className=\"ds-checkbox__label\">\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = 'Checkbox';\n","import React from 'react';\nimport { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport clsx from 'clsx';\nimport './Switch.css';\n\nexport interface SwitchProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n required?: boolean;\n readOnly?: boolean;\n name?: string;\n value?: string;\n id?: string;\n label?: string;\n className?: string;\n}\n\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const switchId = id || generatedId;\n\n return (\n <div className={clsx('ds-switch-wrapper', className)}>\n <BaseSwitch.Root id={switchId} ref={ref} className=\"ds-switch\" {...props}>\n <BaseSwitch.Thumb className=\"ds-switch__thumb\" />\n </BaseSwitch.Root>\n {label && (\n <label htmlFor={switchId} className=\"ds-switch__label\">\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nSwitch.displayName = 'Switch';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Label.css';\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /** Whether the associated input is disabled. */\n disabled?: boolean;\n}\n\n/**\n * Accessible label component for form inputs.\n *\n * @example\n * <Label htmlFor=\"email\">Email address</Label>\n * <Label disabled>Disabled field</Label>\n */\nexport const Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, disabled, ...props }, ref) => {\n return (\n <label\n ref={ref}\n className={clsx('ds-label', disabled && 'ds-label--disabled', className)}\n data-disabled={disabled || undefined}\n {...props}\n />\n );\n },\n);\n\nLabel.displayName = 'Label';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Skeleton.css';\n\nexport type SkeletonProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Loading placeholder with a shimmer animation.\n *\n * Apply `width` and `height` via `style` or a wrapping className to control size.\n *\n * @example\n * <Skeleton style={{ width: 200, height: 16 }} />\n * <Skeleton style={{ width: 40, height: 40, borderRadius: '50%' }} />\n */\nexport const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-skeleton', className)}\n {...props}\n />\n );\n },\n);\n\nSkeleton.displayName = 'Skeleton';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Separator.css';\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The orientation of the separator.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n}\n\n/**\n * Visual divider to separate content sections.\n *\n * @example\n * <Separator />\n * <Separator orientation=\"vertical\" />\n */\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n className={clsx(\n 'ds-separator',\n `ds-separator--${orientation}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nSeparator.displayName = 'Separator';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Collapsible.css';\n\n/* ============================================================================\n COLLAPSIBLE — Compound component with context-driven open state\n ============================================================================ */\n\ninterface CollapsibleContextValue {\n open: boolean;\n toggle: () => void;\n}\n\nconst CollapsibleContext = React.createContext<CollapsibleContextValue | null>(null);\n\nfunction useCollapsibleContext() {\n const context = React.useContext(CollapsibleContext);\n if (!context) {\n throw new Error('Collapsible compound components must be used within <Collapsible>');\n }\n return context;\n}\n\n/* --------------------------------------------------------------------------\n Collapsible (Root)\n -------------------------------------------------------------------------- */\n\nexport interface CollapsibleProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether the collapsible is open (controlled). */\n open?: boolean;\n /** Callback fired when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n}\n\nexport const Collapsible = React.forwardRef<HTMLDivElement, CollapsibleProps>(\n ({ className, open: controlledOpen, onOpenChange, children, ...props }, ref) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);\n\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const toggle = React.useCallback(() => {\n const next = !open;\n if (!isControlled) {\n setUncontrolledOpen(next);\n }\n onOpenChange?.(next);\n }, [open, isControlled, onOpenChange]);\n\n const contextValue = React.useMemo(\n () => ({ open, toggle }),\n [open, toggle],\n );\n\n return (\n <CollapsibleContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={clsx('ds-collapsible', className)}\n data-state={open ? 'open' : 'closed'}\n {...props}\n >\n {children}\n </div>\n </CollapsibleContext.Provider>\n );\n },\n);\n\nCollapsible.displayName = 'Collapsible';\n\n/* --------------------------------------------------------------------------\n CollapsibleTrigger\n -------------------------------------------------------------------------- */\n\nexport const CollapsibleTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, onClick, ...props }, ref) => {\n const { toggle } = useCollapsibleContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n toggle();\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx('ds-collapsible__trigger', className)}\n onClick={handleClick}\n {...props}\n />\n );\n});\n\nCollapsibleTrigger.displayName = 'CollapsibleTrigger';\n\n/* --------------------------------------------------------------------------\n CollapsibleContent\n -------------------------------------------------------------------------- */\n\nexport const CollapsibleContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => {\n const { open } = useCollapsibleContext();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const [maxHeight, setMaxHeight] = React.useState<number | undefined>(\n open ? undefined : 0,\n );\n\n React.useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n\n if (open) {\n const scrollHeight = el.scrollHeight;\n setMaxHeight(scrollHeight);\n const timer = setTimeout(() => setMaxHeight(undefined), 200);\n return () => clearTimeout(timer);\n } else {\n const scrollHeight = el.scrollHeight;\n setMaxHeight(scrollHeight);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setMaxHeight(0);\n });\n });\n }\n }, [open]);\n\n return (\n <div\n ref={contentRef}\n className={clsx('ds-collapsible__content', className)}\n data-state={open ? 'open' : 'closed'}\n style={{\n maxHeight: maxHeight !== undefined ? `${maxHeight}px` : 'none',\n }}\n hidden={!open && maxHeight === 0}\n {...props}\n >\n <div ref={ref} className=\"ds-collapsible__content-inner\">\n {children}\n </div>\n </div>\n );\n});\n\nCollapsibleContent.displayName = 'CollapsibleContent';\n","import React from 'react';\nimport { Select as BaseSelect } from '@base-ui/react/select';\nimport clsx from 'clsx';\nimport './Select.css';\n\n/* ============================================================================\n SELECT ROOT\n ============================================================================ */\n\nexport interface SelectProps {\n /** Current selected value */\n value?: string;\n /** Default value for uncontrolled mode */\n defaultValue?: string;\n /** Callback when value changes */\n onValueChange?: (value: string | null) => void;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Whether the select is required */\n required?: boolean;\n /** Name for form submission */\n name?: string;\n /**\n * Item label map for Value display resolution.\n * When provided, Select.Value renders the label instead of the raw value.\n * Accepts a record (e.g. `{ en: \"English\", fr: \"French\" }`) or an array\n * of `{ value, label }` objects.\n */\n items?: Record<string, React.ReactNode> | ReadonlyArray<{ label: React.ReactNode; value: string }>;\n /** Children (SelectTrigger, SelectContent, etc.) */\n children: React.ReactNode;\n}\n\nexport function Select({\n value,\n defaultValue,\n onValueChange,\n disabled,\n required,\n name,\n items,\n children,\n}: SelectProps) {\n return (\n <BaseSelect.Root\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange ? (val) => onValueChange(val) : undefined}\n disabled={disabled}\n required={required}\n name={name}\n items={items}\n >\n {children}\n </BaseSelect.Root>\n );\n}\n\nSelect.displayName = 'Select';\n\n/* ============================================================================\n SELECT TRIGGER\n ============================================================================ */\n\nexport interface SelectTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Placeholder text when no value selected */\n placeholder?: string;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, placeholder = 'Select...', size = 'md', ...props }, ref) => {\n return (\n <div className=\"ds-select__trigger-wrapper\">\n <BaseSelect.Trigger\n ref={ref}\n className={clsx('ds-select__trigger', `ds-select__trigger--${size}`, className)}\n aria-label={props['aria-label'] || (typeof placeholder === 'string' ? placeholder : 'Select')}\n {...props}\n >\n <BaseSelect.Value className=\"ds-select__value\" placeholder={placeholder} />\n <BaseSelect.Icon className=\"ds-select__icon\" aria-hidden>\n <ChevronDownIcon />\n </BaseSelect.Icon>\n </BaseSelect.Trigger>\n </div>\n );\n },\n);\n\nSelectTrigger.displayName = 'SelectTrigger';\n\n/* ============================================================================\n SELECT CONTENT\n ============================================================================ */\n\nexport interface SelectContentProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Positioning side */\n side?: 'top' | 'bottom';\n /** Side offset in pixels */\n sideOffset?: number;\n /** Alignment */\n align?: 'start' | 'center' | 'end';\n}\n\nexport const SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n ({ className, side = 'bottom', sideOffset = 4, align = 'start', children, ...props }, ref) => {\n return (\n <BaseSelect.Portal>\n <BaseSelect.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignItemWithTrigger={false}\n >\n <BaseSelect.Popup ref={ref} className={clsx('ds-select__content', className)} {...props}>\n <BaseSelect.List className=\"ds-select__list\">\n {children}\n </BaseSelect.List>\n </BaseSelect.Popup>\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n );\n },\n);\n\nSelectContent.displayName = 'SelectContent';\n\n/* ============================================================================\n SELECT ITEM\n ============================================================================ */\n\nexport interface SelectItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Value for this option */\n value: string;\n /** Display text */\n children: React.ReactNode;\n /** Whether the item is disabled */\n disabled?: boolean;\n}\n\nexport const SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(\n ({ className, value, children, disabled, ...props }, ref) => {\n return (\n <BaseSelect.Item\n ref={ref}\n value={value}\n disabled={disabled}\n className={clsx('ds-select__item', className)}\n {...props}\n >\n <BaseSelect.ItemIndicator className=\"ds-select__item-indicator\">\n <CheckIcon />\n </BaseSelect.ItemIndicator>\n <BaseSelect.ItemText>{children}</BaseSelect.ItemText>\n </BaseSelect.Item>\n );\n },\n);\n\nSelectItem.displayName = 'SelectItem';\n\n/* ============================================================================\n SELECT GROUP\n ============================================================================ */\n\nexport interface SelectGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Group label */\n label?: string;\n}\n\nexport const SelectGroup = React.forwardRef<HTMLDivElement, SelectGroupProps>(\n ({ className, label, children, ...props }, ref) => {\n return (\n <BaseSelect.Group ref={ref} className={clsx('ds-select__group', className)} {...props}>\n {label && (\n <BaseSelect.GroupLabel className=\"ds-select__group-label\">{label}</BaseSelect.GroupLabel>\n )}\n {children}\n </BaseSelect.Group>\n );\n },\n);\n\nSelectGroup.displayName = 'SelectGroup';\n\n/* ============================================================================\n SELECT SEPARATOR\n ============================================================================ */\n\nexport const SelectSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-select__separator', className)} {...props} />;\n});\n\nSelectSeparator.displayName = 'SelectSeparator';\n\n/* ============================================================================\n ICONS\n ============================================================================ */\n\nfunction ChevronDownIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n );\n}\n","/* ============================================================================\n MOTION TOKENS & FRAMER CONFIG\n ============================================================================ */\n\n/**\n * Duration tokens (seconds) for Framer Motion\n */\nexport const DURATION = {\n micro: 0.15, // 150ms\n short: 0.25, // 250ms\n medium: 0.5, // 500ms\n long: 1.0, // 1000ms\n} as const;\n\n/**\n * Easing definitions (cubic-bezier arrays) for Framer Motion\n */\nexport const EASING = {\n standard: [0.16, 1, 0.3, 1], // Smooth, premium feel\n emphasis: [0.34, 1.56, 0.64, 1], // Slight spring/overshoot\n exit: [0.4, 0, 0.2, 1], // Quick, decisive exit\n linear: [0, 0, 1, 1],\n} as const;\n\n/**\n * Standard transitions for Framer Motion\n */\nexport const TRANSITION = {\n standard: {\n duration: DURATION.medium,\n ease: EASING.standard,\n },\n emphasis: {\n duration: DURATION.medium,\n ease: EASING.emphasis,\n },\n quick: {\n duration: DURATION.short,\n ease: EASING.standard,\n },\n spring: {\n type: 'spring',\n stiffness: 200,\n damping: 20,\n },\n} as const;\n\n/**\n * Layout Tokens\n */\nexport const DISTANCE = {\n sm: 4,\n md: 12,\n lg: 24,\n xl: 48,\n} as const;\n\n/**\n * Reusable Variants for Framer Motion\n */\nexport const VARIANTS = {\n fadeIn: {\n hidden: { opacity: 0 },\n visible: { opacity: 1, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n fadeUp: {\n hidden: { opacity: 0, y: 12 },\n visible: { opacity: 1, y: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n fadeDown: {\n hidden: { opacity: 0, y: -12 },\n visible: { opacity: 1, y: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n scaleIn: {\n hidden: { opacity: 0, scale: 0.95 },\n visible: {\n opacity: 1,\n scale: 1,\n transition: { duration: DURATION.short, ease: EASING.emphasis },\n },\n },\n slideLeft: {\n hidden: { opacity: 0, x: DISTANCE.lg },\n visible: { opacity: 1, x: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n slideRight: {\n hidden: { opacity: 0, x: -DISTANCE.lg },\n visible: { opacity: 1, x: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n staggerContainer: {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: 0.08,\n delayChildren: 0.1,\n },\n },\n },\n pulse: {\n hidden: { scale: 1 },\n visible: {\n scale: [1, 1.05, 1],\n transition: { duration: 1.5, repeat: Infinity, ease: 'easeInOut' },\n },\n },\n impact: {\n hidden: { scale: 1 },\n trigger: {\n scale: [1, 0.95, 1.05, 1],\n transition: { duration: 0.4, ease: 'backOut' },\n },\n },\n} as const;\n\n/** Stagger: eyebrow → title → subtitle → CTAs → media */\nexport const HERO_ENTRANCE = {\n container: {\n variants: {\n hidden: { opacity: 1 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: 0.12,\n delayChildren: 0.05,\n },\n },\n },\n },\n child: {\n variants: VARIANTS.fadeUp,\n },\n delays: {\n eyebrow: 0,\n title: 0.05,\n subtitle: 0.17,\n cta: 0.29,\n media: 0.41,\n },\n} as const;\n\nexport const SECTION_REVEAL = {\n container: {\n variants: VARIANTS.staggerContainer,\n },\n content: {\n variants: VARIANTS.fadeUp,\n },\n viewportMargin: '-15%' as const,\n} as const;\n\nexport const CARD_HOVER = {\n rest: { y: 0, scale: 1 },\n hover: {\n y: -4,\n scale: 1.01,\n transition: { duration: DURATION.short, ease: EASING.standard },\n },\n} as const;\n\nexport const PANEL_CROSSFADE = {\n initial: { opacity: 0, y: 8 },\n animate: {\n opacity: 1,\n y: 0,\n transition: { duration: DURATION.short, ease: EASING.standard },\n },\n exit: {\n opacity: 0,\n y: -8,\n transition: { duration: DURATION.micro, ease: EASING.exit },\n },\n} as const;\n\nexport const TAB_SLIDE = {\n transition: TRANSITION.spring,\n layout: true as const,\n} as const;\n\nexport const PRESETS = {\n heroEntrance: HERO_ENTRANCE,\n sectionReveal: SECTION_REVEAL,\n cardHover: CARD_HOVER,\n panelCrossfade: PANEL_CROSSFADE,\n tabSlide: TAB_SLIDE,\n} as const;\n\nexport const REDUCED_VARIANTS = {\n fadeOnly: {\n hidden: { opacity: 0 },\n visible: { opacity: 1, transition: { duration: DURATION.short } },\n },\n none: {\n hidden: { opacity: 1 },\n visible: { opacity: 1 },\n },\n} as const;\n\nexport const REDUCED_PANEL_CROSSFADE = {\n initial: { opacity: 0 },\n animate: { opacity: 1, transition: { duration: DURATION.micro } },\n exit: { opacity: 0, transition: { duration: DURATION.micro } },\n} as const;\n\nexport type AnimationVariant = 'fadeIn' | 'fadeUp' | 'fadeDown' | 'scaleIn' | 'slideLeft' | 'slideRight';\n\nexport const VARIANT_MAP = {\n fadeIn: VARIANTS.fadeIn,\n fadeUp: VARIANTS.fadeUp,\n fadeDown: VARIANTS.fadeDown,\n scaleIn: VARIANTS.scaleIn,\n slideLeft: VARIANTS.slideLeft,\n slideRight: VARIANTS.slideRight,\n} satisfies Record<AnimationVariant, unknown>;\n\nexport const MOTION = {\n DURATION,\n EASING,\n TRANSITION,\n VARIANTS,\n DISTANCE,\n PRESETS,\n REDUCED_VARIANTS,\n} as const;\n","export const COLORS = {\n text: {\n primary: 'var(--text-primary)',\n secondary: 'var(--text-secondary)',\n tertiary: 'var(--text-tertiary)',\n disabled: 'var(--text-disabled)',\n },\n glass: {\n base: 'var(--glass-base)',\n baseHover: 'var(--glass-base-hover)',\n baseActive: 'var(--glass-base-active)',\n backdrop: 'var(--glass-backdrop)',\n },\n rim: {\n top: 'var(--rim-light-top)',\n bottom: 'var(--rim-light-bottom)',\n },\n brand: {\n pink: 'var(--brand-pink)',\n yellow: 'var(--brand-yellow)',\n pinkGlow: 'var(--brand-pink-glow)',\n },\n status: {\n success: 'var(--status-success)',\n warning: 'var(--status-warning)',\n error: 'var(--status-error)',\n info: 'var(--status-info)',\n },\n button: {\n primaryBg: 'var(--btn-primary-bg)',\n primaryBgHover: 'var(--btn-primary-bg-hover)',\n secondaryBg: 'var(--btn-secondary-bg)',\n secondaryBgHover: 'var(--btn-secondary-bg-hover)',\n },\n} as const;\n","export const SPACING = {\n 1: 'var(--space-1)',\n 2: 'var(--space-2)',\n 3: 'var(--space-3)',\n 4: 'var(--space-4)',\n 5: 'var(--space-5)',\n 6: 'var(--space-6)',\n 8: 'var(--space-8)',\n 10: 'var(--space-10)',\n 12: 'var(--space-12)',\n 16: 'var(--space-16)',\n 20: 'var(--space-20)',\n} as const;\n\nexport type SpacingToken = keyof typeof SPACING;\n","export const FONT_FAMILY = {\n sans: 'var(--font-family)',\n mono: 'var(--font-family-mono)',\n} as const;\n\nexport const FONT_SIZE = {\n xs: 'var(--font-size-xs)',\n sm: 'var(--font-size-sm)',\n base: 'var(--font-size-base)',\n lg: 'var(--font-size-lg)',\n xl: 'var(--font-size-xl)',\n '2xl': 'var(--font-size-2xl)',\n '3xl': 'var(--font-size-3xl)',\n} as const;\n\nexport const FONT_WEIGHT = {\n normal: 'var(--font-weight-normal)',\n medium: 'var(--font-weight-medium)',\n semibold: 'var(--font-weight-semibold)',\n bold: 'var(--font-weight-bold)',\n} as const;\n\nexport const LINE_HEIGHT = {\n tight: 'var(--line-height-tight)',\n normal: 'var(--line-height-normal)',\n relaxed: 'var(--line-height-relaxed)',\n} as const;\n","export const RADIUS = {\n panel: 'var(--radius-panel)',\n card: 'var(--radius-card)',\n button: 'var(--radius-button)',\n badge: 'var(--radius-badge)',\n pill: 'var(--radius-pill)',\n} as const;\n\nexport type RadiusToken = keyof typeof RADIUS;\n","export const SHADOWS = {\n glass: {\n outer: 'var(--glass-shadow-outer)',\n inner: 'var(--glass-shadow-inner)',\n combined: 'var(--glass-shadow-combined)',\n elevated: 'var(--glass-shadow-elevated)',\n elevatedCombined: 'var(--glass-shadow-elevated-combined)',\n },\n interactive: {\n rest: 'var(--shadow-interactive-rest)',\n restSubtle: 'var(--shadow-interactive-rest-subtle)',\n restLight: 'var(--shadow-interactive-rest-light)',\n hover: 'var(--shadow-interactive-hover)',\n hoverSubtle: 'var(--shadow-interactive-hover-subtle)',\n active: 'var(--shadow-interactive-active)',\n },\n} as const;\n","export const Z_INDEX = {\n void: 'var(--z-void)',\n glassPanel: 'var(--z-glass-panel)',\n ornament: 'var(--z-ornament)',\n dropdown: 'var(--z-dropdown)',\n modalBackdrop: 'var(--z-modal-backdrop)',\n modal: 'var(--z-modal)',\n tooltip: 'var(--z-tooltip)',\n} as const;\n\nexport type ZIndexToken = keyof typeof Z_INDEX;\n","/* ============================================================================\n BREAKPOINT TOKENS\n ============================================================================ */\n\nexport const BREAKPOINTS = {\n '3xs': 320,\n '2xs': 375,\n xs: 480,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n '3xl': 1920,\n '4xl': 2560,\n '5xl': 3840,\n} as const;\n\nexport type Breakpoint = keyof typeof BREAKPOINTS;\n\nexport const MEDIA_QUERIES = {\n '3xs': `(min-width: ${BREAKPOINTS['3xs']}px)`,\n '2xs': `(min-width: ${BREAKPOINTS['2xs']}px)`,\n xs: `(min-width: ${BREAKPOINTS.xs}px)`,\n sm: `(min-width: ${BREAKPOINTS.sm}px)`,\n md: `(min-width: ${BREAKPOINTS.md}px)`,\n lg: `(min-width: ${BREAKPOINTS.lg}px)`,\n xl: `(min-width: ${BREAKPOINTS.xl}px)`,\n '2xl': `(min-width: ${BREAKPOINTS['2xl']}px)`,\n '3xl': `(min-width: ${BREAKPOINTS['3xl']}px)`,\n '4xl': `(min-width: ${BREAKPOINTS['4xl']}px)`,\n '5xl': `(min-width: ${BREAKPOINTS['5xl']}px)`,\n} as const;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk5LA3T22E_cjs = require('./chunk-5LA3T22E.cjs');
3
+ var chunkEPD4ZEPY_cjs = require('./chunk-EPD4ZEPY.cjs');
4
4
  var React = require('react');
5
5
  var clsx2 = require('clsx');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -13,6 +13,11 @@ var clsx2__default = /*#__PURE__*/_interopDefault(clsx2);
13
13
 
14
14
  var VoidBackground = React__default.default.forwardRef(
15
15
  ({ showGrid = true, showGrain = true, className, children }, ref) => {
16
+ if (process.env.NODE_ENV !== "production") {
17
+ console.warn(
18
+ "VoidBackground is deprecated since v2; use AuroraVoid from @salesmind-ai/design-system. Will be removed in v3."
19
+ );
20
+ }
16
21
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx2__default.default("void", className), children: [
17
22
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "void__base", "aria-hidden": "true" }),
18
23
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "void__orbs", "aria-hidden": "true", children: [
@@ -27,7 +32,7 @@ var VoidBackground = React__default.default.forwardRef(
27
32
  );
28
33
  VoidBackground.displayName = "VoidBackground";
29
34
  var ThemeSelector = ({ className, style }) => {
30
- const { theme, setTheme } = chunk5LA3T22E_cjs.useAppearance();
35
+ const { theme, setTheme } = chunkEPD4ZEPY_cjs.useAppearance();
31
36
  const handleThemeChange = (newTheme) => {
32
37
  setTheme(newTheme);
33
38
  };
@@ -93,7 +98,7 @@ var BRAND_PRESETS = [
93
98
  ];
94
99
  var ColorPicker = React__default.default.forwardRef(
95
100
  ({ className, style, hideCustom = false }, ref) => {
96
- const { brand, setBrand, customColor, setCustomColor } = chunk5LA3T22E_cjs.useAppearance();
101
+ const { brand, setBrand, customColor, setCustomColor } = chunkEPD4ZEPY_cjs.useAppearance();
97
102
  return /* @__PURE__ */ jsxRuntime.jsxs(
98
103
  "div",
99
104
  {
@@ -163,4 +168,4 @@ exports.ColorPicker = ColorPicker;
163
168
  exports.ThemeSelector = ThemeSelector;
164
169
  exports.VoidBackground = VoidBackground;
165
170
  //# sourceMappingURL=out.js.map
166
- //# sourceMappingURL=chunk-6D22TFLA.cjs.map
171
+ //# sourceMappingURL=chunk-R3ZECV5P.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/VoidBackground/VoidBackground.tsx","../src/components/ThemeSelector/ThemeSelector.tsx","../src/components/ColorPicker/ColorPicker.tsx"],"names":["clsx","jsx","jsxs","React"],"mappings":"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","sourcesContent":["import React from 'react';\nimport clsx from 'clsx';\nimport './VoidBackground.css';\n\nexport interface VoidBackgroundProps {\n /** Show the engineered grid overlay */\n showGrid?: boolean;\n /** Show the film grain texture */\n showGrain?: boolean;\n /** Custom class name */\n className?: string;\n /** Child content rendered above the void */\n children?: React.ReactNode;\n}\n\n/**\n * VoidBackground — The Void Signature Design System Level 0 Environment\n *\n * @deprecated since v2; use AuroraVoid from @salesmind-ai/design-system. Will be removed in v3.\n *\n * A four-layer atmospheric background system:\n * 1. Base Color — Deep purple-black (#08040a)\n * 2. Light Orbs — Radial gradients with mix-blend-mode: screen\n * 3. Engineered Grid — 80×80px with radial fade mask\n * 4. Film Grain — Static SVG noise for texture\n *\n * The Void is not decoration — it is the lighting engine for the UI.\n *\n * @see AuroraVoid\n */\nexport const VoidBackground = React.forwardRef<HTMLDivElement, VoidBackgroundProps>(\n ({ showGrid = true, showGrain = true, className, children }, ref) => {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\n 'VoidBackground is deprecated since v2; use AuroraVoid from @salesmind-ai/design-system. Will be removed in v3.',\n );\n }\n return (\n <div ref={ref} className={clsx('void', className)}>\n {/* Layer 1: Base Color */}\n <div className=\"void__base\" aria-hidden=\"true\" />\n\n {/* Layer 2: Light Orbs (Infusion Engine) */}\n <div className=\"void__orbs\" aria-hidden=\"true\">\n <div className=\"void__orb void__orb--warm\" />\n <div className=\"void__orb void__orb--purple\" />\n </div>\n\n {/* Layer 3: Engineered Grid */}\n {showGrid && <div className=\"void__grid\" aria-hidden=\"true\" />}\n\n {/* Layer 4: Film Grain */}\n {showGrain && <div className=\"void__grain\" aria-hidden=\"true\" />}\n\n {/* Content Layer */}\n {children && <div className=\"void__content\">{children}</div>}\n </div>\n );\n },\n);\n\nVoidBackground.displayName = 'VoidBackground';\n","import React from 'react';\nimport { Sun, Moon } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useAppearance, Theme } from '../../theme/AppearanceProvider';\nimport './ThemeSelector.css';\n\nexport interface ThemeSelectorProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const ThemeSelector: React.FC<ThemeSelectorProps> = ({ className, style }) => {\n const { theme, setTheme } = useAppearance();\n\n const handleThemeChange = (newTheme: Theme) => {\n setTheme(newTheme);\n };\n\n return (\n <div className={clsx('ds-theme-selector', className)} style={style} role=\"group\" aria-label=\"Theme Selector\">\n <button\n type=\"button\"\n className={clsx('ds-theme-selector__btn', { 'ds-theme-selector__btn--active': theme === 'light' })}\n onClick={() => handleThemeChange('light')}\n aria-pressed={theme === 'light'}\n >\n <Sun className=\"ds-theme-selector__icon\" />\n <span className=\"ds-theme-selector__label\">Light</span>\n </button>\n\n <button\n type=\"button\"\n className={clsx('ds-theme-selector__btn', { 'ds-theme-selector__btn--active': theme === 'light-contrast' })}\n onClick={() => handleThemeChange('light-contrast')}\n aria-pressed={theme === 'light-contrast'}\n >\n <Sun className=\"ds-theme-selector__icon\" />\n <span className=\"ds-theme-selector__label\">Light HC</span>\n </button>\n\n <button\n type=\"button\"\n className={clsx('ds-theme-selector__btn', { 'ds-theme-selector__btn--active': theme === 'dark' })}\n onClick={() => handleThemeChange('dark')}\n aria-pressed={theme === 'dark'}\n >\n <Moon className=\"ds-theme-selector__icon\" />\n <span className=\"ds-theme-selector__label\">Dark</span>\n </button>\n\n <button\n type=\"button\"\n className={clsx('ds-theme-selector__btn', { 'ds-theme-selector__btn--active': theme === 'dark-contrast' })}\n onClick={() => handleThemeChange('dark-contrast')}\n aria-pressed={theme === 'dark-contrast'}\n >\n <Moon className=\"ds-theme-selector__icon\" />\n <span className=\"ds-theme-selector__label\">Dark HC</span>\n </button>\n </div>\n );\n};\n\nThemeSelector.displayName = 'ThemeSelector';\n","import React from 'react';\nimport clsx from 'clsx';\nimport { useAppearance, Brand } from '../../theme/AppearanceProvider';\nimport './ColorPicker.css';\n\n/** Pre-configured brand presets shown as swatches. */\nconst BRAND_PRESETS: { value: Brand; label: string; color: string }[] = [\n { value: 'default', label: 'Warm Intelligence', color: '#f97316' },\n { value: 'salesmind', label: 'SalesMind', color: '#ff005a' },\n];\n\nexport interface ColorPickerProps {\n /** Additional CSS class name. */\n className?: string;\n /** Inline styles. */\n style?: React.CSSProperties;\n /**\n * Hide the custom color swatch and native color input.\n * When `true`, only the curated brand presets are shown.\n * Use this on production surfaces (e.g., marketing website footer)\n * where arbitrary custom colors would undermine brand consistency.\n * @default false\n */\n hideCustom?: boolean;\n}\n\n/**\n * Compact brand/accent color picker.\n * Renders preset brand swatches and an optional custom color input.\n * Consumes the `useAppearance()` context for state.\n */\nexport const ColorPicker = React.forwardRef<HTMLDivElement, ColorPickerProps>(\n ({ className, style, hideCustom = false }, ref) => {\n const { brand, setBrand, customColor, setCustomColor } = useAppearance();\n\n return (\n <div\n ref={ref}\n className={clsx('ds-color-picker', className)}\n style={style}\n role=\"group\"\n aria-label=\"Brand Color\"\n >\n {BRAND_PRESETS.map(({ value, label, color }) => (\n <button\n key={value}\n type=\"button\"\n className={clsx('ds-color-picker__swatch', {\n 'ds-color-picker__swatch--active': brand === value,\n })}\n onClick={() => setBrand(value)}\n aria-label={`Switch to ${label} color scheme`}\n aria-pressed={brand === value}\n title={label}\n >\n <span\n className=\"ds-color-picker__dot\"\n style={{ '--swatch-color': color } as React.CSSProperties}\n />\n </button>\n ))}\n\n {/* Custom color — clicking the dot opens the native color picker */}\n {!hideCustom && (\n <label\n className={clsx('ds-color-picker__swatch', 'ds-color-picker__swatch--custom', {\n 'ds-color-picker__swatch--active': brand === 'custom',\n })}\n title={`Custom: ${customColor}`}\n >\n <span\n className=\"ds-color-picker__dot\"\n style={{ '--swatch-color': customColor } as React.CSSProperties}\n />\n <input\n type=\"color\"\n value={customColor}\n onChange={(e) => setCustomColor(e.target.value)}\n className=\"ds-color-picker__native-input\"\n aria-label=\"Pick a custom accent color\"\n />\n </label>\n )}\n </div>\n );\n },\n);\n\nColorPicker.displayName = 'ColorPicker';\n"]}
@@ -1,184 +1,6 @@
1
- import { defineMessages, IntlProvider, useIntl } from 'react-intl';
2
- export { FormattedDate, FormattedMessage, FormattedNumber, defineMessages } from 'react-intl';
3
- import { jsx } from 'react/jsx-runtime';
4
- import { useCallback } from 'react';
1
+ import { defineMessages } from 'react-intl';
5
2
 
6
- // src/i18n/IntlProvider.tsx
7
- var defaultMessages = {
8
- // Common
9
- "ds.common.loading": "Loading...",
10
- "ds.common.error": "An error occurred",
11
- "ds.common.retry": "Retry",
12
- "ds.common.cancel": "Cancel",
13
- "ds.common.confirm": "Confirm",
14
- "ds.common.close": "Close",
15
- "ds.common.save": "Save",
16
- "ds.common.delete": "Delete",
17
- "ds.common.edit": "Edit",
18
- "ds.common.submit": "Submit",
19
- "ds.common.required": "Required",
20
- "ds.common.optional": "Optional",
21
- // Alert
22
- "ds.alert.dismissLabel": "Dismiss alert",
23
- "ds.alert.successTitle": "Success",
24
- "ds.alert.errorTitle": "Error",
25
- "ds.alert.warningTitle": "Warning",
26
- "ds.alert.infoTitle": "Information",
27
- // Toast
28
- "ds.toast.dismissLabel": "Dismiss notification",
29
- // Dialog
30
- "ds.dialog.closeLabel": "Close dialog",
31
- // Form
32
- "ds.form.showPassword": "Show password",
33
- "ds.form.hidePassword": "Hide password",
34
- "ds.form.clearInput": "Clear input",
35
- "ds.form.invalidEmail": "Please enter a valid email address",
36
- "ds.form.passwordRequired": "Password is required",
37
- // Auth
38
- "ds.auth.loginTitle": "Sign in to your account",
39
- "ds.auth.signupTitle": "Create your account",
40
- "ds.auth.forgotPasswordTitle": "Reset your password",
41
- "ds.auth.emailLabel": "Email address",
42
- "ds.auth.passwordLabel": "Password",
43
- "ds.auth.rememberMe": "Remember me",
44
- "ds.auth.forgotPassword": "Forgot your password?",
45
- "ds.auth.signIn": "Sign in",
46
- "ds.auth.signUp": "Sign up",
47
- "ds.auth.sendResetLink": "Send reset link",
48
- "ds.auth.backToLogin": "Back to login",
49
- // Navigation
50
- "ds.nav.menuLabel": "Navigation menu",
51
- "ds.nav.toggleSidebar": "Toggle sidebar",
52
- "ds.nav.expandSubmenu": "Expand submenu",
53
- "ds.nav.collapseSubmenu": "Collapse submenu",
54
- // Report
55
- "ds.report.confidenceLabel": "Confidence score",
56
- "ds.report.dataCoverageLabel": "Data coverage",
57
- "ds.report.insufficientData": "Insufficient data",
58
- "ds.report.exportPdf": "Export as PDF",
59
- "ds.report.exportCsv": "Export as CSV",
60
- "ds.report.exportPptx": "Export as PowerPoint",
61
- // Appearance
62
- "ds.appearance.themeLabel": "Theme",
63
- "ds.appearance.darkTheme": "Dark",
64
- "ds.appearance.lightTheme": "Light",
65
- "ds.appearance.highContrastTheme": "High contrast",
66
- "ds.appearance.densityLabel": "Density",
67
- "ds.appearance.comfortableDensity": "Comfortable",
68
- "ds.appearance.compactDensity": "Compact",
69
- // Pagination
70
- "ds.pagination.previous": "Previous",
71
- "ds.pagination.next": "Next",
72
- "ds.pagination.goToPreviousPage": "Go to previous page",
73
- "ds.pagination.goToNextPage": "Go to next page",
74
- // Calendar
75
- "ds.calendar.previousMonth": "Previous month",
76
- "ds.calendar.nextMonth": "Next month",
77
- // Carousel
78
- "ds.carousel.previousSlide": "Previous slide",
79
- "ds.carousel.nextSlide": "Next slide",
80
- // Methodology
81
- "ds.methodology.title": "Methodology",
82
- "ds.methodology.sampleSize": "Sample Size",
83
- "ds.methodology.dataSources": "Data Sources",
84
- "ds.methodology.calculation": "Calculation"
85
- };
86
- function DSIntlProvider({
87
- locale = "en",
88
- messages,
89
- intlConfig,
90
- children
91
- }) {
92
- const mergedMessages = {
93
- ...defaultMessages,
94
- ...messages
95
- };
96
- return /* @__PURE__ */ jsx(
97
- IntlProvider,
98
- {
99
- locale,
100
- messages: mergedMessages,
101
- defaultLocale: "en",
102
- onError: (err) => {
103
- if (process.env.NODE_ENV === "development") {
104
- if (err.code !== "MISSING_TRANSLATION") {
105
- console.error(err);
106
- }
107
- }
108
- },
109
- ...intlConfig,
110
- children
111
- }
112
- );
113
- }
114
- function useMessage() {
115
- const intl = useIntl();
116
- const formatMessage = useCallback(
117
- (descriptor, values) => {
118
- return intl.formatMessage(descriptor, values);
119
- },
120
- [intl]
121
- );
122
- return formatMessage;
123
- }
124
- function useLocale() {
125
- const intl = useIntl();
126
- return intl.locale;
127
- }
128
- function useIsRTL() {
129
- const locale = useLocale();
130
- const rtlLocales = [
131
- "ar",
132
- // Arabic
133
- "he",
134
- // Hebrew
135
- "fa",
136
- // Persian/Farsi
137
- "ur",
138
- // Urdu
139
- "ps",
140
- // Pashto
141
- "sd",
142
- // Sindhi
143
- "yi"
144
- // Yiddish
145
- ];
146
- return rtlLocales.some((rtl) => locale === rtl || locale.startsWith(`${rtl}-`));
147
- }
148
- function useTextDirection() {
149
- const isRTL = useIsRTL();
150
- return isRTL ? "rtl" : "ltr";
151
- }
152
- function useNumberFormat() {
153
- const intl = useIntl();
154
- const formatNumber = useCallback(
155
- (value, options) => {
156
- return intl.formatNumber(value, options);
157
- },
158
- [intl]
159
- );
160
- return formatNumber;
161
- }
162
- function useDateFormat() {
163
- const intl = useIntl();
164
- const formatDate = useCallback(
165
- (value, options) => {
166
- return intl.formatDate(value, options);
167
- },
168
- [intl]
169
- );
170
- return formatDate;
171
- }
172
- function useRelativeTime() {
173
- const intl = useIntl();
174
- const formatRelativeTime = useCallback(
175
- (value, unit, options) => {
176
- return intl.formatRelativeTime(value, unit, options);
177
- },
178
- [intl]
179
- );
180
- return formatRelativeTime;
181
- }
3
+ // src/i18n/messages.ts
182
4
  var commonMessages = defineMessages({
183
5
  loading: {
184
6
  id: "ds.common.loading",
@@ -525,6 +347,28 @@ var methodologyMessages = defineMessages({
525
347
  description: "Methodology calculation label"
526
348
  }
527
349
  });
350
+ var bookingEmbedMessages = defineMessages({
351
+ loading: {
352
+ id: "BookingEmbed.loading",
353
+ defaultMessage: "Loading calendar...",
354
+ description: "Skeleton loader text while booking widget loads"
355
+ },
356
+ errorTitle: {
357
+ id: "BookingEmbed.errorTitle",
358
+ defaultMessage: "Calendar unavailable",
359
+ description: "Error state title when booking widget fails"
360
+ },
361
+ errorDescription: {
362
+ id: "BookingEmbed.errorDescription",
363
+ defaultMessage: "We couldn't load the calendar. Please try again or open it in a new tab.",
364
+ description: "Error state body explaining the failure and recovery options"
365
+ },
366
+ openInNewTab: {
367
+ id: "BookingEmbed.openInNewTab",
368
+ defaultMessage: "Open in new tab",
369
+ description: "Fallback button to open booking calendar in new tab when retry exhausted"
370
+ }
371
+ });
528
372
  var allMessages = {
529
373
  ...commonMessages,
530
374
  ...alertMessages,
@@ -538,9 +382,10 @@ var allMessages = {
538
382
  ...paginationMessages,
539
383
  ...calendarMessages,
540
384
  ...carouselMessages,
541
- ...methodologyMessages
385
+ ...methodologyMessages,
386
+ ...bookingEmbedMessages
542
387
  };
543
388
 
544
- export { DSIntlProvider, alertMessages, allMessages, appearanceMessages, authMessages, calendarMessages, carouselMessages, commonMessages, dialogMessages, formMessages, methodologyMessages, navigationMessages, paginationMessages, reportMessages, toastMessages, useDateFormat, useIsRTL, useLocale, useMessage, useNumberFormat, useRelativeTime, useTextDirection };
389
+ export { alertMessages, allMessages, appearanceMessages, authMessages, bookingEmbedMessages, calendarMessages, carouselMessages, commonMessages, dialogMessages, formMessages, methodologyMessages, navigationMessages, paginationMessages, reportMessages, toastMessages };
545
390
  //# sourceMappingURL=out.js.map
546
- //# sourceMappingURL=chunk-P5BOFE5A.js.map
391
+ //# sourceMappingURL=chunk-RSLA2FJN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/messages.ts"],"names":[],"mappings":";AAUA,SAAS,sBAAsB;AAKxB,IAAM,iBAAiB,eAAe;AAAA,EAC3C,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,gBAAgB,eAAe;AAAA,EAC1C,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,gBAAgB,eAAe;AAAA,EAC1C,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,iBAAiB,eAAe;AAAA,EAC3C,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,eAAe,eAAe;AAAA,EACzC,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,kBAAkB;AAAA,IAChB,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,eAAe,eAAe;AAAA,EACzC,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,aAAa;AAAA,IACX,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,qBAAqB;AAAA,IACnB,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,IACN,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,aAAa;AAAA,IACX,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,qBAAqB,eAAe;AAAA,EAC/C,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,iBAAiB;AAAA,IACf,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,iBAAiB,eAAe;AAAA,EAC3C,iBAAiB;AAAA,IACf,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,mBAAmB;AAAA,IACjB,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,kBAAkB;AAAA,IAChB,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,qBAAqB,eAAe;AAAA,EAC/C,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,mBAAmB;AAAA,IACjB,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,oBAAoB;AAAA,IAClB,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,qBAAqB,eAAe;AAAA,EAC/C,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,kBAAkB;AAAA,IAChB,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,mBAAmB,eAAe;AAAA,EAC7C,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,mBAAmB,eAAe;AAAA,EAC7C,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,sBAAsB,eAAe;AAAA,EAChD,OAAO;AAAA,IACL,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,aAAa;AAAA,IACX,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,aAAa;AAAA,IACX,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,uBAAuB,eAAe;AAAA,EACjD,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,kBAAkB;AAAA,IAChB,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AAAA,EACA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf;AACF,CAAC;AAKM,IAAM,cAAc;AAAA,EACzB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL","sourcesContent":["/**\n * Design System Default Messages\n *\n * This file contains all user-facing strings used by design system components.\n * Components accept message props but fall back to these defaults.\n *\n * Format: react-intl MessageDescriptor\n * @see https://formatjs.io/docs/react-intl/api#message-descriptor\n */\n\nimport { defineMessages } from 'react-intl';\n\n/**\n * Common messages used across multiple components\n */\nexport const commonMessages = defineMessages({\n loading: {\n id: 'ds.common.loading',\n defaultMessage: 'Loading...',\n description: 'Generic loading state text',\n },\n error: {\n id: 'ds.common.error',\n defaultMessage: 'An error occurred',\n description: 'Generic error message',\n },\n retry: {\n id: 'ds.common.retry',\n defaultMessage: 'Retry',\n description: 'Retry action button text',\n },\n cancel: {\n id: 'ds.common.cancel',\n defaultMessage: 'Cancel',\n description: 'Cancel action button text',\n },\n confirm: {\n id: 'ds.common.confirm',\n defaultMessage: 'Confirm',\n description: 'Confirm action button text',\n },\n close: {\n id: 'ds.common.close',\n defaultMessage: 'Close',\n description: 'Close action button text',\n },\n save: {\n id: 'ds.common.save',\n defaultMessage: 'Save',\n description: 'Save action button text',\n },\n delete: {\n id: 'ds.common.delete',\n defaultMessage: 'Delete',\n description: 'Delete action button text',\n },\n edit: {\n id: 'ds.common.edit',\n defaultMessage: 'Edit',\n description: 'Edit action button text',\n },\n submit: {\n id: 'ds.common.submit',\n defaultMessage: 'Submit',\n description: 'Submit action button text',\n },\n required: {\n id: 'ds.common.required',\n defaultMessage: 'Required',\n description: 'Field required indicator',\n },\n optional: {\n id: 'ds.common.optional',\n defaultMessage: 'Optional',\n description: 'Field optional indicator',\n },\n});\n\n/**\n * Alert component messages\n */\nexport const alertMessages = defineMessages({\n dismissLabel: {\n id: 'ds.alert.dismissLabel',\n defaultMessage: 'Dismiss alert',\n description: 'Accessible label for alert dismiss button',\n },\n successTitle: {\n id: 'ds.alert.successTitle',\n defaultMessage: 'Success',\n description: 'Default title for success alerts',\n },\n errorTitle: {\n id: 'ds.alert.errorTitle',\n defaultMessage: 'Error',\n description: 'Default title for error alerts',\n },\n warningTitle: {\n id: 'ds.alert.warningTitle',\n defaultMessage: 'Warning',\n description: 'Default title for warning alerts',\n },\n infoTitle: {\n id: 'ds.alert.infoTitle',\n defaultMessage: 'Information',\n description: 'Default title for info alerts',\n },\n});\n\n/**\n * Toast notification messages\n */\nexport const toastMessages = defineMessages({\n dismissLabel: {\n id: 'ds.toast.dismissLabel',\n defaultMessage: 'Dismiss notification',\n description: 'Accessible label for toast dismiss button',\n },\n});\n\n/**\n * Dialog component messages\n */\nexport const dialogMessages = defineMessages({\n closeLabel: {\n id: 'ds.dialog.closeLabel',\n defaultMessage: 'Close dialog',\n description: 'Accessible label for dialog close button',\n },\n});\n\n/**\n * Form component messages\n */\nexport const formMessages = defineMessages({\n showPassword: {\n id: 'ds.form.showPassword',\n defaultMessage: 'Show password',\n description: 'Toggle to show password text',\n },\n hidePassword: {\n id: 'ds.form.hidePassword',\n defaultMessage: 'Hide password',\n description: 'Toggle to hide password text',\n },\n clearInput: {\n id: 'ds.form.clearInput',\n defaultMessage: 'Clear input',\n description: 'Clear input field button',\n },\n invalidEmail: {\n id: 'ds.form.invalidEmail',\n defaultMessage: 'Please enter a valid email address',\n description: 'Email validation error',\n },\n passwordRequired: {\n id: 'ds.form.passwordRequired',\n defaultMessage: 'Password is required',\n description: 'Password required validation error',\n },\n});\n\n/**\n * Auth component messages\n */\nexport const authMessages = defineMessages({\n loginTitle: {\n id: 'ds.auth.loginTitle',\n defaultMessage: 'Sign in to your account',\n description: 'Login page title',\n },\n signupTitle: {\n id: 'ds.auth.signupTitle',\n defaultMessage: 'Create your account',\n description: 'Signup page title',\n },\n forgotPasswordTitle: {\n id: 'ds.auth.forgotPasswordTitle',\n defaultMessage: 'Reset your password',\n description: 'Forgot password page title',\n },\n emailLabel: {\n id: 'ds.auth.emailLabel',\n defaultMessage: 'Email address',\n description: 'Email field label',\n },\n passwordLabel: {\n id: 'ds.auth.passwordLabel',\n defaultMessage: 'Password',\n description: 'Password field label',\n },\n rememberMe: {\n id: 'ds.auth.rememberMe',\n defaultMessage: 'Remember me',\n description: 'Remember me checkbox label',\n },\n forgotPassword: {\n id: 'ds.auth.forgotPassword',\n defaultMessage: 'Forgot your password?',\n description: 'Forgot password link text',\n },\n signIn: {\n id: 'ds.auth.signIn',\n defaultMessage: 'Sign in',\n description: 'Sign in button text',\n },\n signUp: {\n id: 'ds.auth.signUp',\n defaultMessage: 'Sign up',\n description: 'Sign up button text',\n },\n sendResetLink: {\n id: 'ds.auth.sendResetLink',\n defaultMessage: 'Send reset link',\n description: 'Send password reset link button',\n },\n backToLogin: {\n id: 'ds.auth.backToLogin',\n defaultMessage: 'Back to login',\n description: 'Back to login link text',\n },\n});\n\n/**\n * Navigation component messages\n */\nexport const navigationMessages = defineMessages({\n menuLabel: {\n id: 'ds.nav.menuLabel',\n defaultMessage: 'Navigation menu',\n description: 'Accessible label for navigation menu',\n },\n toggleSidebar: {\n id: 'ds.nav.toggleSidebar',\n defaultMessage: 'Toggle sidebar',\n description: 'Toggle sidebar button label',\n },\n expandSubmenu: {\n id: 'ds.nav.expandSubmenu',\n defaultMessage: 'Expand submenu',\n description: 'Expand submenu button label',\n },\n collapseSubmenu: {\n id: 'ds.nav.collapseSubmenu',\n defaultMessage: 'Collapse submenu',\n description: 'Collapse submenu button label',\n },\n});\n\n/**\n * Report Engine component messages\n */\nexport const reportMessages = defineMessages({\n confidenceLabel: {\n id: 'ds.report.confidenceLabel',\n defaultMessage: 'Confidence score',\n description: 'Label for confidence indicator',\n },\n dataCoverageLabel: {\n id: 'ds.report.dataCoverageLabel',\n defaultMessage: 'Data coverage',\n description: 'Label for data coverage badge',\n },\n insufficientData: {\n id: 'ds.report.insufficientData',\n defaultMessage: 'Insufficient data',\n description: 'Message when data is insufficient for analysis',\n },\n exportPdf: {\n id: 'ds.report.exportPdf',\n defaultMessage: 'Export as PDF',\n description: 'Export to PDF option',\n },\n exportCsv: {\n id: 'ds.report.exportCsv',\n defaultMessage: 'Export as CSV',\n description: 'Export to CSV option',\n },\n exportPptx: {\n id: 'ds.report.exportPptx',\n defaultMessage: 'Export as PowerPoint',\n description: 'Export to PowerPoint option',\n },\n});\n\n/**\n * Appearance/Theme component messages\n */\nexport const appearanceMessages = defineMessages({\n themeLabel: {\n id: 'ds.appearance.themeLabel',\n defaultMessage: 'Theme',\n description: 'Theme selector label',\n },\n darkTheme: {\n id: 'ds.appearance.darkTheme',\n defaultMessage: 'Dark',\n description: 'Dark theme option',\n },\n lightTheme: {\n id: 'ds.appearance.lightTheme',\n defaultMessage: 'Light',\n description: 'Light theme option',\n },\n highContrastTheme: {\n id: 'ds.appearance.highContrastTheme',\n defaultMessage: 'High contrast',\n description: 'High contrast theme option',\n },\n densityLabel: {\n id: 'ds.appearance.densityLabel',\n defaultMessage: 'Density',\n description: 'Density selector label',\n },\n comfortableDensity: {\n id: 'ds.appearance.comfortableDensity',\n defaultMessage: 'Comfortable',\n description: 'Comfortable density option',\n },\n compactDensity: {\n id: 'ds.appearance.compactDensity',\n defaultMessage: 'Compact',\n description: 'Compact density option',\n },\n});\n\n/**\n * Pagination component messages\n */\nexport const paginationMessages = defineMessages({\n previous: {\n id: 'ds.pagination.previous',\n defaultMessage: 'Previous',\n description: 'Pagination previous button label',\n },\n next: {\n id: 'ds.pagination.next',\n defaultMessage: 'Next',\n description: 'Pagination next button label',\n },\n goToPreviousPage: {\n id: 'ds.pagination.goToPreviousPage',\n defaultMessage: 'Go to previous page',\n description: 'Accessible label for previous page button',\n },\n goToNextPage: {\n id: 'ds.pagination.goToNextPage',\n defaultMessage: 'Go to next page',\n description: 'Accessible label for next page button',\n },\n});\n\n/**\n * Calendar component messages\n */\nexport const calendarMessages = defineMessages({\n previousMonth: {\n id: 'ds.calendar.previousMonth',\n defaultMessage: 'Previous month',\n description: 'Accessible label for previous month button',\n },\n nextMonth: {\n id: 'ds.calendar.nextMonth',\n defaultMessage: 'Next month',\n description: 'Accessible label for next month button',\n },\n});\n\n/**\n * Carousel component messages\n */\nexport const carouselMessages = defineMessages({\n previousSlide: {\n id: 'ds.carousel.previousSlide',\n defaultMessage: 'Previous slide',\n description: 'Accessible label for previous slide button',\n },\n nextSlide: {\n id: 'ds.carousel.nextSlide',\n defaultMessage: 'Next slide',\n description: 'Accessible label for next slide button',\n },\n});\n\n/**\n * Methodology component messages\n */\nexport const methodologyMessages = defineMessages({\n title: {\n id: 'ds.methodology.title',\n defaultMessage: 'Methodology',\n description: 'Methodology note title',\n },\n sampleSize: {\n id: 'ds.methodology.sampleSize',\n defaultMessage: 'Sample Size',\n description: 'Methodology sample size label',\n },\n dataSources: {\n id: 'ds.methodology.dataSources',\n defaultMessage: 'Data Sources',\n description: 'Methodology data sources label',\n },\n calculation: {\n id: 'ds.methodology.calculation',\n defaultMessage: 'Calculation',\n description: 'Methodology calculation label',\n },\n});\n\n/**\n * BookingEmbed component messages\n */\nexport const bookingEmbedMessages = defineMessages({\n loading: {\n id: 'BookingEmbed.loading',\n defaultMessage: 'Loading calendar...',\n description: 'Skeleton loader text while booking widget loads',\n },\n errorTitle: {\n id: 'BookingEmbed.errorTitle',\n defaultMessage: 'Calendar unavailable',\n description: 'Error state title when booking widget fails',\n },\n errorDescription: {\n id: 'BookingEmbed.errorDescription',\n defaultMessage: \"We couldn't load the calendar. Please try again or open it in a new tab.\",\n description: 'Error state body explaining the failure and recovery options',\n },\n openInNewTab: {\n id: 'BookingEmbed.openInNewTab',\n defaultMessage: 'Open in new tab',\n description: 'Fallback button to open booking calendar in new tab when retry exhausted',\n },\n});\n\n/**\n * All messages combined for easy export\n */\nexport const allMessages = {\n ...commonMessages,\n ...alertMessages,\n ...toastMessages,\n ...dialogMessages,\n ...formMessages,\n ...authMessages,\n ...navigationMessages,\n ...reportMessages,\n ...appearanceMessages,\n ...paginationMessages,\n ...calendarMessages,\n ...carouselMessages,\n ...methodologyMessages,\n ...bookingEmbedMessages,\n};\n"]}
@@ -0,0 +1,173 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import clsx from 'clsx';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+
5
+ // src/components/Sidebar/Sidebar.tsx
6
+ var Sidebar = React.forwardRef(
7
+ ({ position = "left", width = 280, collapsed = false, className, children }, ref) => {
8
+ const style = {
9
+ "--sidebar-width": typeof width === "number" ? `${width}px` : width
10
+ };
11
+ return /* @__PURE__ */ jsx(
12
+ "aside",
13
+ {
14
+ ref,
15
+ className: clsx(
16
+ "ds-sidebar",
17
+ `ds-sidebar--${position}`,
18
+ collapsed && "ds-sidebar--collapsed",
19
+ className
20
+ ),
21
+ style,
22
+ children: /* @__PURE__ */ jsx("div", { className: "ds-sidebar__content", children })
23
+ }
24
+ );
25
+ }
26
+ );
27
+ Sidebar.displayName = "Sidebar";
28
+ var SidebarSection = React.forwardRef(
29
+ ({ title, className, children }, ref) => {
30
+ return /* @__PURE__ */ jsxs("div", { ref, className: clsx("ds-sidebar__section", className), children: [
31
+ title && /* @__PURE__ */ jsx("h3", { className: "ds-sidebar__section-title", children: title }),
32
+ children
33
+ ] });
34
+ }
35
+ );
36
+ SidebarSection.displayName = "SidebarSection";
37
+ var SidebarItem = React.forwardRef(
38
+ ({ active = false, icon, onClick, className, children }, ref) => {
39
+ return /* @__PURE__ */ jsxs(
40
+ "button",
41
+ {
42
+ ref,
43
+ className: clsx("ds-sidebar__item", active && "ds-sidebar__item--active", className),
44
+ onClick,
45
+ type: "button",
46
+ children: [
47
+ icon && /* @__PURE__ */ jsx("span", { className: "ds-sidebar__item-icon", children: icon }),
48
+ /* @__PURE__ */ jsx("span", { className: "ds-sidebar__item-label", children })
49
+ ]
50
+ }
51
+ );
52
+ }
53
+ );
54
+ SidebarItem.displayName = "SidebarItem";
55
+ var HomeIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
56
+ /* @__PURE__ */ jsx("path", { d: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }),
57
+ /* @__PURE__ */ jsx("polyline", { points: "9,22 9,12 15,12 15,22" })
58
+ ] });
59
+ var ChartIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
60
+ /* @__PURE__ */ jsx("line", { x1: "18", y1: "20", x2: "18", y2: "10" }),
61
+ /* @__PURE__ */ jsx("line", { x1: "12", y1: "20", x2: "12", y2: "4" }),
62
+ /* @__PURE__ */ jsx("line", { x1: "6", y1: "20", x2: "6", y2: "14" })
63
+ ] });
64
+ var UsersIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
65
+ /* @__PURE__ */ jsx("path", { d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }),
66
+ /* @__PURE__ */ jsx("circle", { cx: "9", cy: "7", r: "4" }),
67
+ /* @__PURE__ */ jsx("path", { d: "M23 21v-2a4 4 0 0 0-3-3.87" }),
68
+ /* @__PURE__ */ jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
69
+ ] });
70
+ var SettingsIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
71
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" }),
72
+ /* @__PURE__ */ jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" })
73
+ ] });
74
+ var DEFAULT_NAV_ITEMS = [
75
+ { key: "dashboard", label: "Dashboard", icon: /* @__PURE__ */ jsx(HomeIcon, {}) },
76
+ { key: "analytics", label: "Analytics", icon: /* @__PURE__ */ jsx(ChartIcon, {}) },
77
+ { key: "contacts", label: "Contacts", icon: /* @__PURE__ */ jsx(UsersIcon, {}) },
78
+ { key: "settings", label: "Settings", icon: /* @__PURE__ */ jsx(SettingsIcon, {}) }
79
+ ];
80
+ function getNavFromDocument() {
81
+ if (typeof document === "undefined") return "left";
82
+ const nav = document.documentElement.getAttribute("data-nav");
83
+ if (nav === "left" || nav === "right" || nav === "bottom") {
84
+ return nav;
85
+ }
86
+ return "left";
87
+ }
88
+ var Shell = React.forwardRef(
89
+ ({
90
+ layout,
91
+ className,
92
+ children,
93
+ navItems = DEFAULT_NAV_ITEMS,
94
+ activeNav = "dashboard",
95
+ onNavChange,
96
+ systemSectionTitle = "System"
97
+ }, ref) => {
98
+ const [computedLayout, setComputedLayout] = useState(
99
+ layout || getNavFromDocument()
100
+ );
101
+ useEffect(() => {
102
+ if (layout) {
103
+ setComputedLayout(layout);
104
+ return;
105
+ }
106
+ if (typeof document === "undefined") return;
107
+ const observer = new MutationObserver((mutations) => {
108
+ mutations.forEach((mutation) => {
109
+ if (mutation.type === "attributes" && mutation.attributeName === "data-nav") {
110
+ setComputedLayout(getNavFromDocument());
111
+ }
112
+ });
113
+ });
114
+ observer.observe(document.documentElement, {
115
+ attributes: true,
116
+ attributeFilter: ["data-nav"]
117
+ });
118
+ setComputedLayout(getNavFromDocument());
119
+ return () => observer.disconnect();
120
+ }, [layout]);
121
+ const handleNavClick = (key) => {
122
+ onNavChange?.(key);
123
+ };
124
+ return /* @__PURE__ */ jsxs(
125
+ "div",
126
+ {
127
+ ref,
128
+ className: clsx("ds-shell", `ds-shell--${computedLayout}`, className),
129
+ "data-shell-layout": computedLayout,
130
+ children: [
131
+ (computedLayout === "left" || computedLayout === "right") && /* @__PURE__ */ jsxs(Sidebar, { position: computedLayout, children: [
132
+ /* @__PURE__ */ jsx(SidebarSection, { children: navItems.slice(0, 3).map((item) => /* @__PURE__ */ jsx(
133
+ SidebarItem,
134
+ {
135
+ icon: item.icon,
136
+ active: activeNav === item.key,
137
+ onClick: () => handleNavClick(item.key),
138
+ children: item.label
139
+ },
140
+ item.key
141
+ )) }),
142
+ navItems.length > 3 && /* @__PURE__ */ jsx(SidebarSection, { title: systemSectionTitle, children: navItems.slice(3).map((item) => /* @__PURE__ */ jsx(
143
+ SidebarItem,
144
+ {
145
+ icon: item.icon,
146
+ active: activeNav === item.key,
147
+ onClick: () => handleNavClick(item.key),
148
+ children: item.label
149
+ },
150
+ item.key
151
+ )) })
152
+ ] }),
153
+ computedLayout === "bottom" && /* @__PURE__ */ jsx("nav", { className: "ds-shell__tab-bar", children: navItems.map((item) => /* @__PURE__ */ jsx(
154
+ "button",
155
+ {
156
+ className: clsx("ds-shell__tab-item", activeNav === item.key && "ds-shell__tab-item--active"),
157
+ onClick: () => handleNavClick(item.key),
158
+ "aria-label": item.label,
159
+ children: item.icon
160
+ },
161
+ item.key
162
+ )) }),
163
+ /* @__PURE__ */ jsx("main", { className: "ds-shell__content", children })
164
+ ]
165
+ }
166
+ );
167
+ }
168
+ );
169
+ Shell.displayName = "Shell";
170
+
171
+ export { Shell, Sidebar, SidebarItem, SidebarSection };
172
+ //# sourceMappingURL=out.js.map
173
+ //# sourceMappingURL=chunk-S46SKHMD.js.map