@traefik-labs/faency 12.3.5 → 12.3.7

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 (265) hide show
  1. package/dist/colors/deepBlue.cjs.map +1 -1
  2. package/dist/colors/deepBlue.js.map +1 -1
  3. package/dist/colors/elevation.cjs.map +1 -1
  4. package/dist/colors/elevation.js.map +1 -1
  5. package/dist/colors/grayBlue.cjs.map +1 -1
  6. package/dist/colors/grayBlue.js.map +1 -1
  7. package/dist/colors/index.cjs +0 -1
  8. package/dist/colors/index.cjs.map +1 -1
  9. package/dist/colors/index.js.map +1 -1
  10. package/dist/colors/neon.cjs.map +1 -1
  11. package/dist/colors/neon.js.map +1 -1
  12. package/dist/colors/orange.cjs.map +1 -1
  13. package/dist/colors/orange.js.map +1 -1
  14. package/dist/colors/red.cjs.map +1 -1
  15. package/dist/colors/red.js.map +1 -1
  16. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  17. package/dist/components/Accordion/Accordion.js.map +1 -1
  18. package/dist/components/Accordion/Accordion.themes.cjs.map +1 -1
  19. package/dist/components/Accordion/Accordion.themes.js.map +1 -1
  20. package/dist/components/Alert/Alert.cjs.map +1 -1
  21. package/dist/components/Alert/Alert.js.map +1 -1
  22. package/dist/components/AriaTable/AriaTable.cjs.map +1 -1
  23. package/dist/components/AriaTable/AriaTable.js.map +1 -1
  24. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  25. package/dist/components/Avatar/Avatar.js.map +1 -1
  26. package/dist/components/Avatar/Avatar.vanilla.cjs.map +1 -1
  27. package/dist/components/Avatar/Avatar.vanilla.css.cjs +0 -1
  28. package/dist/components/Avatar/Avatar.vanilla.js.map +1 -1
  29. package/dist/components/Badge/Badge.cjs.map +1 -1
  30. package/dist/components/Badge/Badge.js.map +1 -1
  31. package/dist/components/Badge/Badge.theme.cjs.map +1 -1
  32. package/dist/components/Badge/Badge.theme.js.map +1 -1
  33. package/dist/components/Badge/Badge.themes.cjs.map +1 -1
  34. package/dist/components/Badge/Badge.themes.js.map +1 -1
  35. package/dist/components/Badge/Badge.vanilla.cjs +0 -1
  36. package/dist/components/Badge/Badge.vanilla.cjs.map +1 -1
  37. package/dist/components/Badge/Badge.vanilla.css.cjs +0 -1
  38. package/dist/components/Badge/Badge.vanilla.js.map +1 -1
  39. package/dist/components/Blockquote/Blockquote.cjs.map +1 -1
  40. package/dist/components/Blockquote/Blockquote.js.map +1 -1
  41. package/dist/components/Blockquote/Blockquote.vanilla.cjs +0 -1
  42. package/dist/components/Blockquote/Blockquote.vanilla.cjs.map +1 -1
  43. package/dist/components/Blockquote/Blockquote.vanilla.css.cjs +0 -1
  44. package/dist/components/Blockquote/Blockquote.vanilla.js.map +1 -1
  45. package/dist/components/Box/Box.cjs.map +1 -1
  46. package/dist/components/Box/Box.js.map +1 -1
  47. package/dist/components/Box/Box.vanilla.cjs +0 -1
  48. package/dist/components/Box/Box.vanilla.cjs.map +1 -1
  49. package/dist/components/Box/Box.vanilla.js.map +1 -1
  50. package/dist/components/Bubble/Bubble.cjs.map +1 -1
  51. package/dist/components/Bubble/Bubble.js.map +1 -1
  52. package/dist/components/Bubble/Bubble.vanilla.cjs +0 -1
  53. package/dist/components/Bubble/Bubble.vanilla.cjs.map +1 -1
  54. package/dist/components/Bubble/Bubble.vanilla.css.cjs +0 -1
  55. package/dist/components/Bubble/Bubble.vanilla.js.map +1 -1
  56. package/dist/components/Button/Button.cjs.map +1 -1
  57. package/dist/components/Button/Button.js.map +1 -1
  58. package/dist/components/Button/Button.themes.cjs.map +1 -1
  59. package/dist/components/Button/Button.themes.js.map +1 -1
  60. package/dist/components/Button/Button.vanilla.cjs +0 -1
  61. package/dist/components/Button/Button.vanilla.cjs.map +1 -1
  62. package/dist/components/Button/Button.vanilla.css.cjs +0 -1
  63. package/dist/components/Button/Button.vanilla.js.map +1 -1
  64. package/dist/components/ButtonSwitch/ButtonSwitch.cjs.map +1 -1
  65. package/dist/components/ButtonSwitch/ButtonSwitch.js.map +1 -1
  66. package/dist/components/ButtonSwitch/ButtonSwitch.themes.cjs.map +1 -1
  67. package/dist/components/ButtonSwitch/ButtonSwitch.themes.js.map +1 -1
  68. package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.cjs.map +1 -1
  69. package/dist/components/ButtonSwitch/ButtonSwitch.vanilla.js.map +1 -1
  70. package/dist/components/Card/Card.cjs.map +1 -1
  71. package/dist/components/Card/Card.js.map +1 -1
  72. package/dist/components/Card/Card.theme.cjs.map +1 -1
  73. package/dist/components/Card/Card.theme.js.map +1 -1
  74. package/dist/components/Card/Card.themes.cjs.map +1 -1
  75. package/dist/components/Card/Card.themes.js.map +1 -1
  76. package/dist/components/Card/Card.vanilla.cjs +0 -1
  77. package/dist/components/Card/Card.vanilla.cjs.map +1 -1
  78. package/dist/components/Card/Card.vanilla.css.cjs +0 -2
  79. package/dist/components/Card/Card.vanilla.css.js +0 -1
  80. package/dist/components/Card/Card.vanilla.js.map +1 -1
  81. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  82. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  83. package/dist/components/Checkbox/Checkbox.themes.cjs.map +1 -1
  84. package/dist/components/Checkbox/Checkbox.themes.js.map +1 -1
  85. package/dist/components/CodeBlock/CodeBlock.cjs.map +1 -1
  86. package/dist/components/CodeBlock/CodeBlock.js.map +1 -1
  87. package/dist/components/CodeBlock/CodeBlock.themes.cjs.map +1 -1
  88. package/dist/components/CodeBlock/CodeBlock.themes.js.map +1 -1
  89. package/dist/components/CodeBlock/CodeBlock.vanilla.cjs.map +1 -1
  90. package/dist/components/CodeBlock/CodeBlock.vanilla.js.map +1 -1
  91. package/dist/components/CodeBlock/prism-extend.cjs.map +1 -1
  92. package/dist/components/CodeBlock/prism-extend.js.map +1 -1
  93. package/dist/components/Container/Container.cjs.map +1 -1
  94. package/dist/components/Container/Container.js.map +1 -1
  95. package/dist/components/Container/Container.vanilla.cjs.map +1 -1
  96. package/dist/components/Container/Container.vanilla.css.cjs +0 -1
  97. package/dist/components/Container/Container.vanilla.js.map +1 -1
  98. package/dist/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  99. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  100. package/dist/components/DateTimePickerInput/DateTimePickerInput.cjs.map +1 -1
  101. package/dist/components/DateTimePickerInput/DateTimePickerInput.js.map +1 -1
  102. package/dist/components/Dialog/Dialog.cjs.map +1 -1
  103. package/dist/components/Dialog/Dialog.js.map +1 -1
  104. package/dist/components/Dialog/Dialog.themes.cjs.map +1 -1
  105. package/dist/components/Dialog/Dialog.themes.js.map +1 -1
  106. package/dist/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  107. package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
  108. package/dist/components/DropdownMenu/styles.cjs.map +1 -1
  109. package/dist/components/DropdownMenu/styles.js.map +1 -1
  110. package/dist/components/Elevation/Elevation.cjs.map +1 -1
  111. package/dist/components/Elevation/Elevation.js.map +1 -1
  112. package/dist/components/Elevation/Elevation.vanilla.cjs +0 -1
  113. package/dist/components/Elevation/Elevation.vanilla.cjs.map +1 -1
  114. package/dist/components/Elevation/Elevation.vanilla.css.cjs +0 -1
  115. package/dist/components/Elevation/Elevation.vanilla.js.map +1 -1
  116. package/dist/components/FaencyProvider.cjs.map +1 -1
  117. package/dist/components/FaencyProvider.js.map +1 -1
  118. package/dist/components/Flex/Flex.cjs.map +1 -1
  119. package/dist/components/Flex/Flex.js.map +1 -1
  120. package/dist/components/Flex/Flex.vanilla.cjs.map +1 -1
  121. package/dist/components/Flex/Flex.vanilla.css.cjs +0 -1
  122. package/dist/components/Flex/Flex.vanilla.js.map +1 -1
  123. package/dist/components/Grid/Grid.cjs.map +1 -1
  124. package/dist/components/Grid/Grid.js.map +1 -1
  125. package/dist/components/Grid/Grid.vanilla.cjs.map +1 -1
  126. package/dist/components/Grid/Grid.vanilla.css.cjs +0 -1
  127. package/dist/components/Grid/Grid.vanilla.js.map +1 -1
  128. package/dist/components/Heading/Heading.cjs.map +1 -1
  129. package/dist/components/Heading/Heading.js.map +1 -1
  130. package/dist/components/Heading/Heading.themes.cjs.map +1 -1
  131. package/dist/components/Heading/Heading.themes.js.map +1 -1
  132. package/dist/components/IconButton/IconButton.cjs.map +1 -1
  133. package/dist/components/IconButton/IconButton.js.map +1 -1
  134. package/dist/components/IconButton/IconButton.themes.cjs.map +1 -1
  135. package/dist/components/IconButton/IconButton.themes.js.map +1 -1
  136. package/dist/components/IconButton/IconButton.vanilla.cjs +0 -1
  137. package/dist/components/IconButton/IconButton.vanilla.cjs.map +1 -1
  138. package/dist/components/IconButton/IconButton.vanilla.css.cjs +0 -1
  139. package/dist/components/IconButton/IconButton.vanilla.js.map +1 -1
  140. package/dist/components/Image/Image.cjs.map +1 -1
  141. package/dist/components/Image/Image.js.map +1 -1
  142. package/dist/components/Image/Image.vanilla.cjs +0 -1
  143. package/dist/components/Image/Image.vanilla.cjs.map +1 -1
  144. package/dist/components/Image/Image.vanilla.js.map +1 -1
  145. package/dist/components/Input/Input.cjs.map +1 -1
  146. package/dist/components/Input/Input.js.map +1 -1
  147. package/dist/components/Input/Input.theme.cjs.map +1 -1
  148. package/dist/components/Input/Input.theme.js.map +1 -1
  149. package/dist/components/Input/Input.themes.cjs.map +1 -1
  150. package/dist/components/Input/Input.themes.js.map +1 -1
  151. package/dist/components/Input/Input.vanilla.cjs.map +1 -1
  152. package/dist/components/Input/Input.vanilla.css.cjs +0 -1
  153. package/dist/components/Input/Input.vanilla.js.map +1 -1
  154. package/dist/components/Label/Label.cjs.map +1 -1
  155. package/dist/components/Label/Label.js.map +1 -1
  156. package/dist/components/Label/Label.vanilla.cjs +0 -1
  157. package/dist/components/Label/Label.vanilla.cjs.map +1 -1
  158. package/dist/components/Label/Label.vanilla.css.cjs +0 -1
  159. package/dist/components/Label/Label.vanilla.js.map +1 -1
  160. package/dist/components/Link/Link.cjs.map +1 -1
  161. package/dist/components/Link/Link.js.map +1 -1
  162. package/dist/components/Link/Link.themes.cjs.map +1 -1
  163. package/dist/components/Link/Link.themes.js.map +1 -1
  164. package/dist/components/List/List.cjs.map +1 -1
  165. package/dist/components/List/List.js.map +1 -1
  166. package/dist/components/List/List.themes.cjs.map +1 -1
  167. package/dist/components/List/List.themes.js.map +1 -1
  168. package/dist/components/Navigation/Navigation.cjs.map +1 -1
  169. package/dist/components/Navigation/Navigation.js.map +1 -1
  170. package/dist/components/Navigation/Navigation.themes.cjs.map +1 -1
  171. package/dist/components/Navigation/Navigation.themes.js.map +1 -1
  172. package/dist/components/NavigationMenu/NavigationMenu.cjs.map +1 -1
  173. package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -1
  174. package/dist/components/NavigationTree/NavigationTreeContainer.cjs.map +1 -1
  175. package/dist/components/NavigationTree/NavigationTreeContainer.js.map +1 -1
  176. package/dist/components/NavigationTree/NavigationTreeDrawer.cjs.map +1 -1
  177. package/dist/components/NavigationTree/NavigationTreeDrawer.js.map +1 -1
  178. package/dist/components/NavigationTree/NavigationTreeItem.cjs.map +1 -1
  179. package/dist/components/NavigationTree/NavigationTreeItem.js.map +1 -1
  180. package/dist/components/Overlay.cjs.map +1 -1
  181. package/dist/components/Overlay.js.map +1 -1
  182. package/dist/components/Panel/Panel.cjs.map +1 -1
  183. package/dist/components/Panel/Panel.js.map +1 -1
  184. package/dist/components/Panel/Panel.theme.cjs.map +1 -1
  185. package/dist/components/Panel/Panel.theme.js.map +1 -1
  186. package/dist/components/Panel/Panel.vanilla.cjs +0 -1
  187. package/dist/components/Panel/Panel.vanilla.cjs.map +1 -1
  188. package/dist/components/Panel/Panel.vanilla.js.map +1 -1
  189. package/dist/components/Paragraph/Paragraph.cjs.map +1 -1
  190. package/dist/components/Paragraph/Paragraph.js.map +1 -1
  191. package/dist/components/Paragraph/Paragraph.vanilla.cjs +0 -1
  192. package/dist/components/Paragraph/Paragraph.vanilla.cjs.map +1 -1
  193. package/dist/components/Paragraph/Paragraph.vanilla.css.cjs +1 -1
  194. package/dist/components/Paragraph/Paragraph.vanilla.css.js +1 -0
  195. package/dist/components/Paragraph/Paragraph.vanilla.js.map +1 -1
  196. package/dist/components/Popover/Popover.cjs.map +1 -1
  197. package/dist/components/Popover/Popover.js.map +1 -1
  198. package/dist/components/Radio/Radio.cjs.map +1 -1
  199. package/dist/components/Radio/Radio.js.map +1 -1
  200. package/dist/components/Radio/Radio.themes.cjs.map +1 -1
  201. package/dist/components/Radio/Radio.themes.js.map +1 -1
  202. package/dist/components/RadioAccordion/RadioAccordion.cjs.map +1 -1
  203. package/dist/components/RadioAccordion/RadioAccordion.js.map +1 -1
  204. package/dist/components/Select/Select.cjs.map +1 -1
  205. package/dist/components/Select/Select.js.map +1 -1
  206. package/dist/components/Select/Select.themes.cjs.map +1 -1
  207. package/dist/components/Select/Select.themes.js.map +1 -1
  208. package/dist/components/SidePanel/SidePanel.cjs.map +1 -1
  209. package/dist/components/SidePanel/SidePanel.js.map +1 -1
  210. package/dist/components/SidePanel/SidePanel.themes.cjs.map +1 -1
  211. package/dist/components/SidePanel/SidePanel.themes.js.map +1 -1
  212. package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
  213. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  214. package/dist/components/Skeleton/Skeleton.themes.cjs.map +1 -1
  215. package/dist/components/Skeleton/Skeleton.themes.js.map +1 -1
  216. package/dist/components/Skeleton/Skeleton.vanilla.cjs +0 -1
  217. package/dist/components/Skeleton/Skeleton.vanilla.cjs.map +1 -1
  218. package/dist/components/Skeleton/Skeleton.vanilla.css.cjs +0 -1
  219. package/dist/components/Skeleton/Skeleton.vanilla.js.map +1 -1
  220. package/dist/components/Switch/Switch.cjs.map +1 -1
  221. package/dist/components/Switch/Switch.js.map +1 -1
  222. package/dist/components/Switch/Switch.themes.cjs.map +1 -1
  223. package/dist/components/Switch/Switch.themes.js.map +1 -1
  224. package/dist/components/Table/Table.cjs.map +1 -1
  225. package/dist/components/Table/Table.js.map +1 -1
  226. package/dist/components/Table/Table.themes.cjs.map +1 -1
  227. package/dist/components/Table/Table.themes.js.map +1 -1
  228. package/dist/components/Tabs/Tabs.cjs.map +1 -1
  229. package/dist/components/Tabs/Tabs.js.map +1 -1
  230. package/dist/components/Text/Text.cjs.map +1 -1
  231. package/dist/components/Text/Text.js.map +1 -1
  232. package/dist/components/Text/Text.themes.cjs.map +1 -1
  233. package/dist/components/Text/Text.themes.js.map +1 -1
  234. package/dist/components/TextField/TextField.cjs.map +1 -1
  235. package/dist/components/TextField/TextField.js.map +1 -1
  236. package/dist/components/TextField/TextField.vanilla.cjs.map +1 -1
  237. package/dist/components/TextField/TextField.vanilla.js.map +1 -1
  238. package/dist/components/Textarea/Textarea.cjs.map +1 -1
  239. package/dist/components/Textarea/Textarea.js.map +1 -1
  240. package/dist/components/Textarea/Textarea.theme.cjs.map +1 -1
  241. package/dist/components/Textarea/Textarea.theme.js.map +1 -1
  242. package/dist/components/Textarea/Textarea.themes.cjs.map +1 -1
  243. package/dist/components/Textarea/Textarea.themes.js.map +1 -1
  244. package/dist/components/Textarea/Textarea.vanilla.cjs.map +1 -1
  245. package/dist/components/Textarea/Textarea.vanilla.css.cjs +0 -1
  246. package/dist/components/Textarea/Textarea.vanilla.js.map +1 -1
  247. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  248. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  249. package/dist/components/Tooltip/Tooltip.themes.cjs.map +1 -1
  250. package/dist/components/Tooltip/Tooltip.themes.js.map +1 -1
  251. package/dist/components/colorSchemeContext.cjs.map +1 -1
  252. package/dist/components/colorSchemeContext.js.map +1 -1
  253. package/dist/index.cjs +0 -1
  254. package/dist/stitches.config.cjs +0 -1
  255. package/dist/stitches.config.cjs.map +1 -1
  256. package/dist/stitches.config.js.map +1 -1
  257. package/dist/styles/cssProps.cjs.map +1 -1
  258. package/dist/styles/cssProps.js.map +1 -1
  259. package/dist/styles/themeContext.cjs.map +1 -1
  260. package/dist/styles/themeContext.js.map +1 -1
  261. package/dist/utils/deepMerge.cjs.map +1 -1
  262. package/dist/utils/deepMerge.js.map +1 -1
  263. package/dist/utils/getPrimaryColorInfo.cjs.map +1 -1
  264. package/dist/utils/getPrimaryColorInfo.js.map +1 -1
  265. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"file":"cssProps.js","names":[],"sources":["../../styles/cssProps.ts"],"sourcesContent":["import { FlexAlign, FlexJustify, SizeToken, SpacingToken } from './types';\n\nexport interface CSSProps {\n css?: {\n p?: SpacingToken;\n pt?: SpacingToken;\n pr?: SpacingToken;\n pb?: SpacingToken;\n pl?: SpacingToken;\n px?: SpacingToken;\n py?: SpacingToken;\n\n m?: SpacingToken;\n mt?: SpacingToken;\n mr?: SpacingToken;\n mb?: SpacingToken;\n ml?: SpacingToken;\n mx?: SpacingToken;\n my?: SpacingToken;\n\n ta?: 'left' | 'center' | 'right' | 'justify';\n fd?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\n fw?: 'wrap' | 'nowrap' | 'wrap-reverse';\n ai?: FlexAlign;\n ac?: FlexAlign | 'space-between' | 'space-around' | 'space-evenly';\n jc?: FlexJustify;\n as?: 'auto' | FlexAlign;\n fg?: 0 | 1;\n fs?: 0 | 1;\n fb?: SizeToken;\n\n bc?: string;\n br?: string;\n btrr?: string;\n bbrr?: string;\n bblr?: string;\n btlr?: string;\n bs?: string;\n c?: string;\n\n width?: SizeToken;\n height?: SizeToken;\n size?: SizeToken;\n\n ox?: 'visible' | 'hidden' | 'scroll' | 'auto';\n oy?: 'visible' | 'hidden' | 'scroll' | 'auto';\n\n pe?: 'auto' | 'none' | 'all';\n us?: 'none' | 'auto' | 'text' | 'contain' | 'all';\n\n fontSize?: string;\n fontWeight?: string;\n lh?: string | number;\n\n [key: string]: any;\n };\n}\n\n// HELPERS\nfunction processToken(value: string): string {\n return value.startsWith('$') ? value.slice(1) : value;\n}\n\nfunction getSpaceValue(key: string): string {\n const spaceMap: Record<string, string> = {\n '1': '4px',\n '2': '8px',\n '3': '16px',\n '4': '20px',\n '5': '24px',\n '6': '32px',\n '7': '48px',\n '8': '64px',\n '9': '80px',\n };\n return spaceMap[key] || '0px';\n}\n\nfunction getSizeValue(key: string): string {\n const sizeMap: Record<string, string> = {\n '1': '4px',\n '2': '8px',\n '3': '16px',\n '4': '20px',\n '5': '24px',\n '6': '32px',\n '7': '40px',\n '8': '48px',\n '9': '64px',\n '10': '80px',\n };\n return sizeMap[key] || key;\n}\n\nfunction getRadiiValue(key: string): string {\n const radiiMap: Record<string, string> = {\n '1': '4px',\n '2': '6px',\n '3': '8px',\n '4': '12px',\n round: '50%',\n pill: '9999px',\n button: '8px',\n };\n return radiiMap[key] || '0px';\n}\n\nfunction getFontSizeValue(key: string): string {\n const fontSizeMap: Record<string, string> = {\n '0': '11px',\n '1': '12px',\n '2': '13px',\n '3': '14px',\n '4': '16px',\n '5': '18px',\n '6': '20px',\n '7': '22px',\n '8': '24px',\n '9': '26px',\n '10': '28px',\n '11': '32px',\n '12': '38px',\n };\n return fontSizeMap[key] || '16px';\n}\n\nfunction getFontWeightValue(key: string): string {\n const fontWeightMap: Record<string, string> = {\n light: '300',\n regular: '400',\n medium: '500',\n semiBold: '600',\n bold: '700',\n };\n return fontWeightMap[key] || '400';\n}\n\nfunction applySpacing(\n style: React.CSSProperties,\n property: keyof React.CSSProperties,\n value: string,\n): void {\n if (typeof value === 'string' && value.startsWith('$')) {\n const tokenValue = processToken(value);\n const spaceValue = getSpaceValue(tokenValue);\n if (spaceValue !== '0px') {\n (style as any)[property] = spaceValue;\n }\n } else {\n (style as any)[property] = value;\n }\n}\n\nfunction applyRadii(\n style: React.CSSProperties,\n property: keyof React.CSSProperties,\n value: string,\n): void {\n if (typeof value === 'string' && value.startsWith('$')) {\n const tokenValue = processToken(value);\n const radiiValue = getRadiiValue(tokenValue);\n if (radiiValue !== '0px') {\n (style as any)[property] = radiiValue;\n }\n } else {\n (style as any)[property] = value;\n }\n}\n\nfunction applyColor(\n style: React.CSSProperties,\n property: keyof React.CSSProperties,\n value: string,\n colors?: Record<string, any>,\n): void {\n if (typeof value === 'string' && value.startsWith('$')) {\n const colorToken = value.slice(1);\n if (colors && colorToken in colors) {\n (style as any)[property] = colors[colorToken];\n } else {\n (style as any)[property] = value;\n }\n } else {\n (style as any)[property] = value;\n }\n}\n\nfunction applySize(\n style: React.CSSProperties,\n property: keyof React.CSSProperties,\n value: string,\n): void {\n if (typeof value === 'string' && value.startsWith('$')) {\n const tokenValue = processToken(value);\n const sizeValue = getSizeValue(tokenValue);\n (style as any)[property] = sizeValue;\n } else {\n (style as any)[property] = value;\n }\n}\n\n// CSS PROCESSOR\nexport function processCSSProp(\n css: CSSProps['css'] = {},\n colors?: Record<string, any>,\n): {\n style: React.CSSProperties;\n vars: Record<string, string>;\n} {\n const style: React.CSSProperties = {};\n const vars: Record<string, string> = {};\n\n Object.entries(css).forEach(([key, value]) => {\n switch (key) {\n case 'p':\n case 'padding':\n applySpacing(style, 'padding', value);\n break;\n case 'pt':\n case 'paddingTop':\n applySpacing(style, 'paddingTop', value);\n break;\n case 'pr':\n case 'paddingRight':\n applySpacing(style, 'paddingRight', value);\n break;\n case 'pb':\n case 'paddingBottom':\n applySpacing(style, 'paddingBottom', value);\n break;\n case 'pl':\n case 'paddingLeft':\n applySpacing(style, 'paddingLeft', value);\n break;\n case 'px':\n applySpacing(style, 'paddingLeft', value);\n applySpacing(style, 'paddingRight', value);\n break;\n case 'py':\n applySpacing(style, 'paddingTop', value);\n applySpacing(style, 'paddingBottom', value);\n break;\n\n case 'm':\n case 'margin':\n applySpacing(style, 'margin', value);\n break;\n case 'mt':\n case 'marginTop':\n applySpacing(style, 'marginTop', value);\n break;\n case 'mr':\n case 'marginRight':\n applySpacing(style, 'marginRight', value);\n break;\n case 'mb':\n case 'marginBottom':\n applySpacing(style, 'marginBottom', value);\n break;\n case 'ml':\n case 'marginLeft':\n applySpacing(style, 'marginLeft', value);\n break;\n case 'mx':\n applySpacing(style, 'marginLeft', value);\n applySpacing(style, 'marginRight', value);\n break;\n case 'my':\n applySpacing(style, 'marginTop', value);\n applySpacing(style, 'marginBottom', value);\n break;\n\n case 'ta':\n style.textAlign = value as React.CSSProperties['textAlign'];\n break;\n case 'fd':\n style.flexDirection = value as React.CSSProperties['flexDirection'];\n break;\n case 'fw':\n style.flexWrap = value as React.CSSProperties['flexWrap'];\n break;\n case 'ai':\n style.alignItems = value as React.CSSProperties['alignItems'];\n break;\n case 'ac':\n style.alignContent = value as React.CSSProperties['alignContent'];\n break;\n case 'jc':\n style.justifyContent = value as React.CSSProperties['justifyContent'];\n break;\n case 'as':\n style.alignSelf = value as React.CSSProperties['alignSelf'];\n break;\n case 'fg':\n style.flexGrow = value;\n break;\n case 'fs':\n style.flexShrink = value;\n break;\n case 'fb':\n applySize(style, 'flexBasis', value);\n break;\n\n case 'bc':\n case 'backgroundColor':\n applyColor(style, 'backgroundColor', value, colors);\n break;\n case 'br':\n case 'borderRadius':\n applyRadii(style, 'borderRadius', value);\n break;\n case 'btrr':\n case 'borderTopRightRadius':\n applyRadii(style, 'borderTopRightRadius', value);\n break;\n case 'bbrr':\n case 'borderBottomRightRadius':\n applyRadii(style, 'borderBottomRightRadius', value);\n break;\n case 'bblr':\n case 'borderBottomLeftRadius':\n applyRadii(style, 'borderBottomLeftRadius', value);\n break;\n case 'btlr':\n case 'borderTopLeftRadius':\n applyRadii(style, 'borderTopLeftRadius', value);\n break;\n case 'bs':\n case 'boxShadow':\n style.boxShadow = value;\n break;\n case 'c':\n case 'color':\n applyColor(style, 'color', value, colors);\n break;\n\n case 'fontSize':\n if (typeof value === 'string') {\n const fontSizeValue = getFontSizeValue(value);\n if (fontSizeValue !== '16px') {\n style.fontSize = fontSizeValue;\n }\n }\n break;\n case 'fontWeight':\n if (typeof value === 'string') {\n const fontWeightValue = getFontWeightValue(value);\n if (fontWeightValue !== '400') {\n style.fontWeight = fontWeightValue;\n }\n }\n break;\n case 'lh':\n style.lineHeight = value;\n break;\n\n case 'width':\n case 'w':\n applySize(style, 'width', value);\n break;\n case 'height':\n case 'h':\n applySize(style, 'height', value);\n break;\n\n case 'size':\n applySize(style, 'width', value);\n applySize(style, 'height', value);\n break;\n\n case 'ox':\n style.overflowX = value as React.CSSProperties['overflowX'];\n break;\n case 'oy':\n style.overflowY = value as React.CSSProperties['overflowY'];\n break;\n\n case 'pe':\n style.pointerEvents = value as React.CSSProperties['pointerEvents'];\n break;\n case 'us':\n style.userSelect = value as React.CSSProperties['userSelect'];\n break;\n\n default:\n // Handle token syntax for any property that falls through to default\n if (typeof value === 'string' && value.startsWith('$')) {\n const tokenValue = processToken(value);\n\n // Try spacing tokens first (most common for gap, etc)\n const spaceValue = getSpaceValue(tokenValue);\n if (spaceValue !== '0px') {\n (style as any)[key] = spaceValue;\n break;\n }\n\n // Try size tokens\n const sizeValue = getSizeValue(tokenValue);\n if (sizeValue !== tokenValue) {\n (style as any)[key] = sizeValue;\n break;\n }\n\n // Try radii tokens\n const radiiValue = getRadiiValue(tokenValue);\n if (radiiValue !== '0px') {\n (style as any)[key] = radiiValue;\n break;\n }\n\n // Try color tokens\n if (colors && tokenValue in colors) {\n (style as any)[key] = colors[tokenValue];\n break;\n }\n\n // If no token matches, pass through as-is\n (style as any)[key] = value;\n } else {\n (style as any)[key] = value;\n }\n break;\n }\n });\n\n return { style, vars };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"cssProps.js","names":[],"sources":["../../styles/cssProps.ts"],"sourcesContent":["import { FlexAlign, FlexJustify, SizeToken, SpacingToken } from './types';\n\nexport interface CSSProps {\n css?: {\n p?: SpacingToken;\n pt?: SpacingToken;\n pr?: SpacingToken;\n pb?: SpacingToken;\n pl?: SpacingToken;\n px?: SpacingToken;\n py?: SpacingToken;\n\n m?: SpacingToken;\n mt?: SpacingToken;\n mr?: SpacingToken;\n mb?: SpacingToken;\n ml?: SpacingToken;\n mx?: SpacingToken;\n my?: SpacingToken;\n\n ta?: 'left' | 'center' | 'right' | 'justify';\n fd?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\n fw?: 'wrap' | 'nowrap' | 'wrap-reverse';\n ai?: FlexAlign;\n ac?: FlexAlign | 'space-between' | 'space-around' | 'space-evenly';\n jc?: FlexJustify;\n as?: 'auto' | FlexAlign;\n fg?: 0 | 1;\n fs?: 0 | 1;\n fb?: SizeToken;\n\n bc?: string;\n br?: string;\n btrr?: string;\n bbrr?: string;\n bblr?: string;\n btlr?: string;\n bs?: string;\n c?: string;\n\n width?: SizeToken;\n height?: SizeToken;\n size?: SizeToken;\n\n ox?: 'visible' | 'hidden' | 'scroll' | 'auto';\n oy?: 'visible' | 'hidden' | 'scroll' | 'auto';\n\n pe?: 'auto' | 'none' | 'all';\n us?: 'none' | 'auto' | 'text' | 'contain' | 'all';\n\n fontSize?: string;\n fontWeight?: string;\n lh?: string | number;\n\n [key: string]: any;\n };\n}\n\n// HELPERS\nfunction processToken(value: string): string {\n return value.startsWith('$') ? value.slice(1) : value;\n}\n\nfunction getSpaceValue(key: string): string {\n const spaceMap: Record<string, string> = {\n '1': '4px',\n '2': '8px',\n '3': '16px',\n '4': '20px',\n '5': '24px',\n '6': '32px',\n '7': '48px',\n '8': '64px',\n '9': '80px',\n };\n return spaceMap[key] || '0px';\n}\n\nfunction getSizeValue(key: string): string {\n const sizeMap: Record<string, string> = {\n '1': '4px',\n '2': '8px',\n '3': '16px',\n '4': '20px',\n '5': '24px',\n '6': '32px',\n '7': '40px',\n '8': '48px',\n '9': '64px',\n '10': '80px',\n };\n return sizeMap[key] || key;\n}\n\nfunction getRadiiValue(key: string): string {\n const radiiMap: Record<string, string> = {\n '1': '4px',\n '2': '6px',\n '3': '8px',\n '4': '12px',\n round: '50%',\n pill: '9999px',\n button: '8px',\n };\n return radiiMap[key] || '0px';\n}\n\nfunction getFontSizeValue(key: string): string {\n const fontSizeMap: Record<string, string> = {\n '0': '11px',\n '1': '12px',\n '2': '13px',\n '3': '14px',\n '4': '16px',\n '5': '18px',\n '6': '20px',\n '7': '22px',\n '8': '24px',\n '9': '26px',\n '10': '28px',\n '11': '32px',\n '12': '38px',\n };\n return fontSizeMap[key] || '16px';\n}\n\nfunction getFontWeightValue(key: string): string {\n const fontWeightMap: Record<string, string> = {\n light: '300',\n regular: '400',\n medium: '500',\n semiBold: '600',\n bold: '700',\n };\n return fontWeightMap[key] || '400';\n}\n\nfunction applySpacing(\n style: React.CSSProperties,\n property: keyof React.CSSProperties,\n value: string,\n): void {\n if (typeof value === 'string' && value.startsWith('$')) {\n const tokenValue = processToken(value);\n const spaceValue = getSpaceValue(tokenValue);\n if (spaceValue !== '0px') {\n (style as any)[property] = spaceValue;\n }\n } else {\n (style as any)[property] = value;\n }\n}\n\nfunction applyRadii(\n style: React.CSSProperties,\n property: keyof React.CSSProperties,\n value: string,\n): void {\n if (typeof value === 'string' && value.startsWith('$')) {\n const tokenValue = processToken(value);\n const radiiValue = getRadiiValue(tokenValue);\n if (radiiValue !== '0px') {\n (style as any)[property] = radiiValue;\n }\n } else {\n (style as any)[property] = value;\n }\n}\n\nfunction applyColor(\n style: React.CSSProperties,\n property: keyof React.CSSProperties,\n value: string,\n colors?: Record<string, any>,\n): void {\n if (typeof value === 'string' && value.startsWith('$')) {\n const colorToken = value.slice(1);\n if (colors && colorToken in colors) {\n (style as any)[property] = colors[colorToken];\n } else {\n (style as any)[property] = value;\n }\n } else {\n (style as any)[property] = value;\n }\n}\n\nfunction applySize(\n style: React.CSSProperties,\n property: keyof React.CSSProperties,\n value: string,\n): void {\n if (typeof value === 'string' && value.startsWith('$')) {\n const tokenValue = processToken(value);\n const sizeValue = getSizeValue(tokenValue);\n (style as any)[property] = sizeValue;\n } else {\n (style as any)[property] = value;\n }\n}\n\n// CSS PROCESSOR\nexport function processCSSProp(\n css: CSSProps['css'] = {},\n colors?: Record<string, any>,\n): {\n style: React.CSSProperties;\n vars: Record<string, string>;\n} {\n const style: React.CSSProperties = {};\n const vars: Record<string, string> = {};\n\n Object.entries(css).forEach(([key, value]) => {\n switch (key) {\n case 'p':\n case 'padding':\n applySpacing(style, 'padding', value);\n break;\n case 'pt':\n case 'paddingTop':\n applySpacing(style, 'paddingTop', value);\n break;\n case 'pr':\n case 'paddingRight':\n applySpacing(style, 'paddingRight', value);\n break;\n case 'pb':\n case 'paddingBottom':\n applySpacing(style, 'paddingBottom', value);\n break;\n case 'pl':\n case 'paddingLeft':\n applySpacing(style, 'paddingLeft', value);\n break;\n case 'px':\n applySpacing(style, 'paddingLeft', value);\n applySpacing(style, 'paddingRight', value);\n break;\n case 'py':\n applySpacing(style, 'paddingTop', value);\n applySpacing(style, 'paddingBottom', value);\n break;\n\n case 'm':\n case 'margin':\n applySpacing(style, 'margin', value);\n break;\n case 'mt':\n case 'marginTop':\n applySpacing(style, 'marginTop', value);\n break;\n case 'mr':\n case 'marginRight':\n applySpacing(style, 'marginRight', value);\n break;\n case 'mb':\n case 'marginBottom':\n applySpacing(style, 'marginBottom', value);\n break;\n case 'ml':\n case 'marginLeft':\n applySpacing(style, 'marginLeft', value);\n break;\n case 'mx':\n applySpacing(style, 'marginLeft', value);\n applySpacing(style, 'marginRight', value);\n break;\n case 'my':\n applySpacing(style, 'marginTop', value);\n applySpacing(style, 'marginBottom', value);\n break;\n\n case 'ta':\n style.textAlign = value as React.CSSProperties['textAlign'];\n break;\n case 'fd':\n style.flexDirection = value as React.CSSProperties['flexDirection'];\n break;\n case 'fw':\n style.flexWrap = value as React.CSSProperties['flexWrap'];\n break;\n case 'ai':\n style.alignItems = value as React.CSSProperties['alignItems'];\n break;\n case 'ac':\n style.alignContent = value as React.CSSProperties['alignContent'];\n break;\n case 'jc':\n style.justifyContent = value as React.CSSProperties['justifyContent'];\n break;\n case 'as':\n style.alignSelf = value as React.CSSProperties['alignSelf'];\n break;\n case 'fg':\n style.flexGrow = value;\n break;\n case 'fs':\n style.flexShrink = value;\n break;\n case 'fb':\n applySize(style, 'flexBasis', value);\n break;\n\n case 'bc':\n case 'backgroundColor':\n applyColor(style, 'backgroundColor', value, colors);\n break;\n case 'br':\n case 'borderRadius':\n applyRadii(style, 'borderRadius', value);\n break;\n case 'btrr':\n case 'borderTopRightRadius':\n applyRadii(style, 'borderTopRightRadius', value);\n break;\n case 'bbrr':\n case 'borderBottomRightRadius':\n applyRadii(style, 'borderBottomRightRadius', value);\n break;\n case 'bblr':\n case 'borderBottomLeftRadius':\n applyRadii(style, 'borderBottomLeftRadius', value);\n break;\n case 'btlr':\n case 'borderTopLeftRadius':\n applyRadii(style, 'borderTopLeftRadius', value);\n break;\n case 'bs':\n case 'boxShadow':\n style.boxShadow = value;\n break;\n case 'c':\n case 'color':\n applyColor(style, 'color', value, colors);\n break;\n\n case 'fontSize':\n if (typeof value === 'string') {\n const fontSizeValue = getFontSizeValue(value);\n if (fontSizeValue !== '16px') {\n style.fontSize = fontSizeValue;\n }\n }\n break;\n case 'fontWeight':\n if (typeof value === 'string') {\n const fontWeightValue = getFontWeightValue(value);\n if (fontWeightValue !== '400') {\n style.fontWeight = fontWeightValue;\n }\n }\n break;\n case 'lh':\n style.lineHeight = value;\n break;\n\n case 'width':\n case 'w':\n applySize(style, 'width', value);\n break;\n case 'height':\n case 'h':\n applySize(style, 'height', value);\n break;\n\n case 'size':\n applySize(style, 'width', value);\n applySize(style, 'height', value);\n break;\n\n case 'ox':\n style.overflowX = value as React.CSSProperties['overflowX'];\n break;\n case 'oy':\n style.overflowY = value as React.CSSProperties['overflowY'];\n break;\n\n case 'pe':\n style.pointerEvents = value as React.CSSProperties['pointerEvents'];\n break;\n case 'us':\n style.userSelect = value as React.CSSProperties['userSelect'];\n break;\n\n default:\n // Handle token syntax for any property that falls through to default\n if (typeof value === 'string' && value.startsWith('$')) {\n const tokenValue = processToken(value);\n\n // Try spacing tokens first (most common for gap, etc)\n const spaceValue = getSpaceValue(tokenValue);\n if (spaceValue !== '0px') {\n (style as any)[key] = spaceValue;\n break;\n }\n\n // Try size tokens\n const sizeValue = getSizeValue(tokenValue);\n if (sizeValue !== tokenValue) {\n (style as any)[key] = sizeValue;\n break;\n }\n\n // Try radii tokens\n const radiiValue = getRadiiValue(tokenValue);\n if (radiiValue !== '0px') {\n (style as any)[key] = radiiValue;\n break;\n }\n\n // Try color tokens\n if (colors && tokenValue in colors) {\n (style as any)[key] = colors[tokenValue];\n break;\n }\n\n // If no token matches, pass through as-is\n (style as any)[key] = value;\n } else {\n (style as any)[key] = value;\n }\n break;\n }\n });\n\n return { style, vars };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"themeContext.cjs","names":[],"sources":["../../styles/themeContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useLayoutEffect, useState } from 'react';\n\nimport { darkColors, lightColors } from '../colors';\nimport { PrimaryColor, themes } from './themes.css';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\nexport type { PrimaryColor };\n\ninterface ThemeContextValue {\n mode: ThemeMode;\n resolvedTheme: 'light' | 'dark';\n primaryColor: PrimaryColor;\n colors: typeof lightColors | typeof darkColors;\n setMode: (mode: ThemeMode) => void;\n setPrimaryColor: (color: PrimaryColor) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\ninterface VanillaExtractThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: ThemeMode;\n primaryColor?: PrimaryColor;\n forcedTheme?: 'light' | 'dark';\n}\n\nexport function VanillaExtractThemeProvider({\n children,\n defaultTheme = 'system',\n primaryColor = 'blue',\n forcedTheme,\n}: VanillaExtractThemeProviderProps) {\n const [mode, setMode] = useState<ThemeMode>(defaultTheme);\n const [appliedPrimaryColor, setPrimaryColor] = useState<PrimaryColor>(primaryColor);\n const [systemTheme, setSystemTheme] = useState<'light' | 'dark'>(() => {\n if (forcedTheme) {\n return forcedTheme;\n }\n if (typeof window !== 'undefined') {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return 'light';\n });\n\n useEffect(() => {\n setPrimaryColor(primaryColor);\n }, [primaryColor]);\n\n useEffect(() => {\n if (forcedTheme) {\n setSystemTheme(forcedTheme);\n return;\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n setSystemTheme(mediaQuery.matches ? 'dark' : 'light');\n\n const handler = (e: MediaQueryListEvent) => {\n setSystemTheme(e.matches ? 'dark' : 'light');\n };\n\n mediaQuery.addEventListener('change', handler);\n return () => mediaQuery.removeEventListener('change', handler);\n }, [forcedTheme]);\n\n const resolvedTheme: 'light' | 'dark' = forcedTheme || (mode === 'system' ? systemTheme : mode);\n\n const baseColors = resolvedTheme === 'dark' ? darkColors : lightColors;\n\n const semanticColors =\n resolvedTheme === 'dark'\n ? {\n primary: darkColors[`${appliedPrimaryColor}9`],\n contentBg: darkColors['00dp'],\n hiContrast: 'white',\n loContrast: darkColors.deepBlue2,\n focusOutline: 'hsl(216, 100%, 64%)',\n divider: 'hsl(209, 29%, 19%)',\n background: '#0a0a0a',\n foreground: '#ffffff',\n muted: '#1a1a1a',\n mutedForeground: '#b4b4b4',\n card: '#1a1a1a',\n cardForeground: '#ffffff',\n popover: '#1a1a1a',\n popoverForeground: '#ffffff',\n border: '#3a3a3a',\n input: '#3a3a3a',\n accent: '#3b82f6',\n accentForeground: '#ffffff',\n destructive: '#dc2626',\n destructiveForeground: '#ffffff',\n ring: '#60a5fa',\n }\n : {\n primary: lightColors[`${appliedPrimaryColor}9`],\n contentBg: lightColors['00dp'],\n hiContrast: lightColors.deepBlue11,\n loContrast: 'white',\n focusOutline: 'hsl(216, 100%, 64%)',\n divider: 'hsl(207, 10%, 82%)',\n background: '#fcfcfc',\n foreground: '#1a1a1a',\n muted: '#f4f4f4',\n mutedForeground: '#646464',\n card: '#ffffff',\n cardForeground: '#1a1a1a',\n popover: '#ffffff',\n popoverForeground: '#1a1a1a',\n border: '#e3e3e3',\n input: '#e3e3e3',\n accent: '#60a5fa',\n accentForeground: '#ffffff',\n destructive: '#dc2626',\n destructiveForeground: '#ffffff',\n ring: '#3b82f6',\n };\n\n const colors = {\n ...baseColors,\n ...semanticColors,\n };\n\n // Use useLayoutEffect to apply theme class synchronously before paint\n useLayoutEffect(() => {\n const themeClass = themes[resolvedTheme][appliedPrimaryColor];\n\n Object.values(themes.light).forEach((cls) => document.body.classList.remove(cls));\n Object.values(themes.dark).forEach((cls) => document.body.classList.remove(cls));\n\n document.body.classList.add(themeClass);\n\n return () => {\n document.body.classList.remove(themeClass);\n };\n }, [resolvedTheme, appliedPrimaryColor]);\n\n const contextValue: ThemeContextValue = {\n mode,\n resolvedTheme,\n primaryColor: appliedPrimaryColor,\n colors,\n setMode,\n setPrimaryColor,\n };\n\n return <ThemeContext.Provider value={contextValue}>{children}</ThemeContext.Provider>;\n}\n\nexport function useVanillaExtractTheme() {\n const context = useContext(ThemeContext);\n if (context === undefined) {\n throw new Error('useVanillaExtractTheme must be used within a VanillaExtractThemeProvider');\n }\n return context;\n}\n"],"mappings":";;;;;;;AAiBA,IAAM,gBAAA,GAAA,MAAA,eAA4D,KAAA,EAAU;AAS5E,SAAgB,4BAA4B,EAC1C,UACA,eAAe,UACf,eAAe,QACf,eACmC;CACnC,MAAM,CAAC,MAAM,YAAA,GAAA,MAAA,UAA+B,aAAa;CACzD,MAAM,CAAC,qBAAqB,oBAAA,GAAA,MAAA,UAA0C,aAAa;CACnF,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,gBAAmD;EACrE,IAAI,aACF,OAAO;EAET,IAAI,OAAO,WAAW,aACpB,OAAO,OAAO,WAAW,+BAA+B,CAAC,UAAU,SAAS;EAE9E,OAAO;GACP;CAEF,CAAA,GAAA,MAAA,iBAAgB;EACd,gBAAgB,aAAa;IAC5B,CAAC,aAAa,CAAC;CAElB,CAAA,GAAA,MAAA,iBAAgB;EACd,IAAI,aAAa;GACf,eAAe,YAAY;GAC3B;;EAGF,MAAM,aAAa,OAAO,WAAW,+BAA+B;EACpE,eAAe,WAAW,UAAU,SAAS,QAAQ;EAErD,MAAM,WAAW,MAA2B;GAC1C,eAAe,EAAE,UAAU,SAAS,QAAQ;;EAG9C,WAAW,iBAAiB,UAAU,QAAQ;EAC9C,aAAa,WAAW,oBAAoB,UAAU,QAAQ;IAC7D,CAAC,YAAY,CAAC;CAEjB,MAAM,gBAAkC,gBAAgB,SAAS,WAAW,cAAc;CAE1F,MAAM,aAAa,kBAAkB,SAAS,cAAA,aAAa,cAAA;CAE3D,MAAM,iBACJ,kBAAkB,SACd;EACE,SAAS,cAAA,WAAW,GAAG,oBAAoB;EAC3C,WAAW,cAAA,WAAW;EACtB,YAAY;EACZ,YAAY,cAAA,WAAW;EACvB,cAAc;EACd,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,MAAM;EACP,GACD;EACE,SAAS,cAAA,YAAY,GAAG,oBAAoB;EAC5C,WAAW,cAAA,YAAY;EACvB,YAAY,cAAA,YAAY;EACxB,YAAY;EACZ,cAAc;EACd,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,MAAM;EACP;CAEP,MAAM,SAAS;EACb,GAAG;EACH,GAAG;EACJ;CAGD,CAAA,GAAA,MAAA,uBAAsB;EACpB,MAAM,aAAa,mBAAA,OAAO,eAAe;EAEzC,OAAO,OAAO,mBAAA,OAAO,MAAM,CAAC,SAAS,QAAQ,SAAS,KAAK,UAAU,OAAO,IAAI,CAAC;EACjF,OAAO,OAAO,mBAAA,OAAO,KAAK,CAAC,SAAS,QAAQ,SAAS,KAAK,UAAU,OAAO,IAAI,CAAC;EAEhF,SAAS,KAAK,UAAU,IAAI,WAAW;EAEvC,aAAa;GACX,SAAS,KAAK,UAAU,OAAO,WAAW;;IAE3C,CAAC,eAAe,oBAAoB,CAAC;CAExC,MAAM,eAAkC;EACtC;EACA;EACA,cAAc;EACd;EACA;EACA;EACD;CAED,OAAO,iBAAA,GAAA,kBAAA,KAAC,aAAa,UAAd;EAAuB,OAAO;EAAe;EAAiC,CAAA;;AAGvF,SAAgB,yBAAyB;CACvC,MAAM,WAAA,GAAA,MAAA,YAAqB,aAAa;CACxC,IAAI,YAAY,KAAA,GACd,MAAM,IAAI,MAAM,2EAA2E;CAE7F,OAAO"}
1
+ {"version":3,"file":"themeContext.cjs","names":[],"sources":["../../styles/themeContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useLayoutEffect, useState } from 'react';\n\nimport { darkColors, lightColors } from '../colors';\nimport { PrimaryColor, themes } from './themes.css';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\nexport type { PrimaryColor };\n\ninterface ThemeContextValue {\n mode: ThemeMode;\n resolvedTheme: 'light' | 'dark';\n primaryColor: PrimaryColor;\n colors: typeof lightColors | typeof darkColors;\n setMode: (mode: ThemeMode) => void;\n setPrimaryColor: (color: PrimaryColor) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\ninterface VanillaExtractThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: ThemeMode;\n primaryColor?: PrimaryColor;\n forcedTheme?: 'light' | 'dark';\n}\n\nexport function VanillaExtractThemeProvider({\n children,\n defaultTheme = 'system',\n primaryColor = 'blue',\n forcedTheme,\n}: VanillaExtractThemeProviderProps) {\n const [mode, setMode] = useState<ThemeMode>(defaultTheme);\n const [appliedPrimaryColor, setPrimaryColor] = useState<PrimaryColor>(primaryColor);\n const [systemTheme, setSystemTheme] = useState<'light' | 'dark'>(() => {\n if (forcedTheme) {\n return forcedTheme;\n }\n if (typeof window !== 'undefined') {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return 'light';\n });\n\n useEffect(() => {\n setPrimaryColor(primaryColor);\n }, [primaryColor]);\n\n useEffect(() => {\n if (forcedTheme) {\n setSystemTheme(forcedTheme);\n return;\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n setSystemTheme(mediaQuery.matches ? 'dark' : 'light');\n\n const handler = (e: MediaQueryListEvent) => {\n setSystemTheme(e.matches ? 'dark' : 'light');\n };\n\n mediaQuery.addEventListener('change', handler);\n return () => mediaQuery.removeEventListener('change', handler);\n }, [forcedTheme]);\n\n const resolvedTheme: 'light' | 'dark' = forcedTheme || (mode === 'system' ? systemTheme : mode);\n\n const baseColors = resolvedTheme === 'dark' ? darkColors : lightColors;\n\n const semanticColors =\n resolvedTheme === 'dark'\n ? {\n primary: darkColors[`${appliedPrimaryColor}9`],\n contentBg: darkColors['00dp'],\n hiContrast: 'white',\n loContrast: darkColors.deepBlue2,\n focusOutline: 'hsl(216, 100%, 64%)',\n divider: 'hsl(209, 29%, 19%)',\n background: '#0a0a0a',\n foreground: '#ffffff',\n muted: '#1a1a1a',\n mutedForeground: '#b4b4b4',\n card: '#1a1a1a',\n cardForeground: '#ffffff',\n popover: '#1a1a1a',\n popoverForeground: '#ffffff',\n border: '#3a3a3a',\n input: '#3a3a3a',\n accent: '#3b82f6',\n accentForeground: '#ffffff',\n destructive: '#dc2626',\n destructiveForeground: '#ffffff',\n ring: '#60a5fa',\n }\n : {\n primary: lightColors[`${appliedPrimaryColor}9`],\n contentBg: lightColors['00dp'],\n hiContrast: lightColors.deepBlue11,\n loContrast: 'white',\n focusOutline: 'hsl(216, 100%, 64%)',\n divider: 'hsl(207, 10%, 82%)',\n background: '#fcfcfc',\n foreground: '#1a1a1a',\n muted: '#f4f4f4',\n mutedForeground: '#646464',\n card: '#ffffff',\n cardForeground: '#1a1a1a',\n popover: '#ffffff',\n popoverForeground: '#1a1a1a',\n border: '#e3e3e3',\n input: '#e3e3e3',\n accent: '#60a5fa',\n accentForeground: '#ffffff',\n destructive: '#dc2626',\n destructiveForeground: '#ffffff',\n ring: '#3b82f6',\n };\n\n const colors = {\n ...baseColors,\n ...semanticColors,\n };\n\n // Use useLayoutEffect to apply theme class synchronously before paint\n useLayoutEffect(() => {\n const themeClass = themes[resolvedTheme][appliedPrimaryColor];\n\n Object.values(themes.light).forEach((cls) => document.body.classList.remove(cls));\n Object.values(themes.dark).forEach((cls) => document.body.classList.remove(cls));\n\n document.body.classList.add(themeClass);\n\n return () => {\n document.body.classList.remove(themeClass);\n };\n }, [resolvedTheme, appliedPrimaryColor]);\n\n const contextValue: ThemeContextValue = {\n mode,\n resolvedTheme,\n primaryColor: appliedPrimaryColor,\n colors,\n setMode,\n setPrimaryColor,\n };\n\n return <ThemeContext.Provider value={contextValue}>{children}</ThemeContext.Provider>;\n}\n\nexport function useVanillaExtractTheme() {\n const context = useContext(ThemeContext);\n if (context === undefined) {\n throw new Error('useVanillaExtractTheme must be used within a VanillaExtractThemeProvider');\n }\n return context;\n}\n"],"mappings":";;;;;;;AAiBA,IAAM,gBAAA,GAAA,MAAA,eAA4D,KAAA,CAAS;AAS3E,SAAgB,4BAA4B,EAC1C,UACA,eAAe,UACf,eAAe,QACf,eACmC;CACnC,MAAM,CAAC,MAAM,YAAA,GAAA,MAAA,UAA+B,YAAY;CACxD,MAAM,CAAC,qBAAqB,oBAAA,GAAA,MAAA,UAA0C,YAAY;CAClF,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,gBAAmD;EACrE,IAAI,aACF,OAAO;EAET,IAAI,OAAO,WAAW,aACpB,OAAO,OAAO,WAAW,8BAA8B,EAAE,UAAU,SAAS;EAE9E,OAAO;CACT,CAAC;CAED,CAAA,GAAA,MAAA,iBAAgB;EACd,gBAAgB,YAAY;CAC9B,GAAG,CAAC,YAAY,CAAC;CAEjB,CAAA,GAAA,MAAA,iBAAgB;EACd,IAAI,aAAa;GACf,eAAe,WAAW;GAC1B;EACF;EAEA,MAAM,aAAa,OAAO,WAAW,8BAA8B;EACnE,eAAe,WAAW,UAAU,SAAS,OAAO;EAEpD,MAAM,WAAW,MAA2B;GAC1C,eAAe,EAAE,UAAU,SAAS,OAAO;EAC7C;EAEA,WAAW,iBAAiB,UAAU,OAAO;EAC7C,aAAa,WAAW,oBAAoB,UAAU,OAAO;CAC/D,GAAG,CAAC,WAAW,CAAC;CAEhB,MAAM,gBAAkC,gBAAgB,SAAS,WAAW,cAAc;CAE1F,MAAM,aAAa,kBAAkB,SAAS,cAAA,aAAa,cAAA;CAE3D,MAAM,iBACJ,kBAAkB,SACd;EACE,SAAS,cAAA,WAAW,GAAG,oBAAoB;EAC3C,WAAW,cAAA,WAAW;EACtB,YAAY;EACZ,YAAY,cAAA,WAAW;EACvB,cAAc;EACd,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,MAAM;CACR,IACA;EACE,SAAS,cAAA,YAAY,GAAG,oBAAoB;EAC5C,WAAW,cAAA,YAAY;EACvB,YAAY,cAAA,YAAY;EACxB,YAAY;EACZ,cAAc;EACd,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,MAAM;CACR;CAEN,MAAM,SAAS;EACb,GAAG;EACH,GAAG;CACL;CAGA,CAAA,GAAA,MAAA,uBAAsB;EACpB,MAAM,aAAa,mBAAA,OAAO,eAAe;EAEzC,OAAO,OAAO,mBAAA,OAAO,KAAK,EAAE,SAAS,QAAQ,SAAS,KAAK,UAAU,OAAO,GAAG,CAAC;EAChF,OAAO,OAAO,mBAAA,OAAO,IAAI,EAAE,SAAS,QAAQ,SAAS,KAAK,UAAU,OAAO,GAAG,CAAC;EAE/E,SAAS,KAAK,UAAU,IAAI,UAAU;EAEtC,aAAa;GACX,SAAS,KAAK,UAAU,OAAO,UAAU;EAC3C;CACF,GAAG,CAAC,eAAe,mBAAmB,CAAC;CAEvC,MAAM,eAAkC;EACtC;EACA;EACA,cAAc;EACd;EACA;EACA;CACF;CAEA,OAAO,iBAAA,GAAA,kBAAA,KAAC,aAAa,UAAd;EAAuB,OAAO;EAAe;CAAgC,CAAA;AACtF;AAEA,SAAgB,yBAAyB;CACvC,MAAM,WAAA,GAAA,MAAA,YAAqB,YAAY;CACvC,IAAI,YAAY,KAAA,GACd,MAAM,IAAI,MAAM,0EAA0E;CAE5F,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"themeContext.js","names":[],"sources":["../../styles/themeContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useLayoutEffect, useState } from 'react';\n\nimport { darkColors, lightColors } from '../colors';\nimport { PrimaryColor, themes } from './themes.css';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\nexport type { PrimaryColor };\n\ninterface ThemeContextValue {\n mode: ThemeMode;\n resolvedTheme: 'light' | 'dark';\n primaryColor: PrimaryColor;\n colors: typeof lightColors | typeof darkColors;\n setMode: (mode: ThemeMode) => void;\n setPrimaryColor: (color: PrimaryColor) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\ninterface VanillaExtractThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: ThemeMode;\n primaryColor?: PrimaryColor;\n forcedTheme?: 'light' | 'dark';\n}\n\nexport function VanillaExtractThemeProvider({\n children,\n defaultTheme = 'system',\n primaryColor = 'blue',\n forcedTheme,\n}: VanillaExtractThemeProviderProps) {\n const [mode, setMode] = useState<ThemeMode>(defaultTheme);\n const [appliedPrimaryColor, setPrimaryColor] = useState<PrimaryColor>(primaryColor);\n const [systemTheme, setSystemTheme] = useState<'light' | 'dark'>(() => {\n if (forcedTheme) {\n return forcedTheme;\n }\n if (typeof window !== 'undefined') {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return 'light';\n });\n\n useEffect(() => {\n setPrimaryColor(primaryColor);\n }, [primaryColor]);\n\n useEffect(() => {\n if (forcedTheme) {\n setSystemTheme(forcedTheme);\n return;\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n setSystemTheme(mediaQuery.matches ? 'dark' : 'light');\n\n const handler = (e: MediaQueryListEvent) => {\n setSystemTheme(e.matches ? 'dark' : 'light');\n };\n\n mediaQuery.addEventListener('change', handler);\n return () => mediaQuery.removeEventListener('change', handler);\n }, [forcedTheme]);\n\n const resolvedTheme: 'light' | 'dark' = forcedTheme || (mode === 'system' ? systemTheme : mode);\n\n const baseColors = resolvedTheme === 'dark' ? darkColors : lightColors;\n\n const semanticColors =\n resolvedTheme === 'dark'\n ? {\n primary: darkColors[`${appliedPrimaryColor}9`],\n contentBg: darkColors['00dp'],\n hiContrast: 'white',\n loContrast: darkColors.deepBlue2,\n focusOutline: 'hsl(216, 100%, 64%)',\n divider: 'hsl(209, 29%, 19%)',\n background: '#0a0a0a',\n foreground: '#ffffff',\n muted: '#1a1a1a',\n mutedForeground: '#b4b4b4',\n card: '#1a1a1a',\n cardForeground: '#ffffff',\n popover: '#1a1a1a',\n popoverForeground: '#ffffff',\n border: '#3a3a3a',\n input: '#3a3a3a',\n accent: '#3b82f6',\n accentForeground: '#ffffff',\n destructive: '#dc2626',\n destructiveForeground: '#ffffff',\n ring: '#60a5fa',\n }\n : {\n primary: lightColors[`${appliedPrimaryColor}9`],\n contentBg: lightColors['00dp'],\n hiContrast: lightColors.deepBlue11,\n loContrast: 'white',\n focusOutline: 'hsl(216, 100%, 64%)',\n divider: 'hsl(207, 10%, 82%)',\n background: '#fcfcfc',\n foreground: '#1a1a1a',\n muted: '#f4f4f4',\n mutedForeground: '#646464',\n card: '#ffffff',\n cardForeground: '#1a1a1a',\n popover: '#ffffff',\n popoverForeground: '#1a1a1a',\n border: '#e3e3e3',\n input: '#e3e3e3',\n accent: '#60a5fa',\n accentForeground: '#ffffff',\n destructive: '#dc2626',\n destructiveForeground: '#ffffff',\n ring: '#3b82f6',\n };\n\n const colors = {\n ...baseColors,\n ...semanticColors,\n };\n\n // Use useLayoutEffect to apply theme class synchronously before paint\n useLayoutEffect(() => {\n const themeClass = themes[resolvedTheme][appliedPrimaryColor];\n\n Object.values(themes.light).forEach((cls) => document.body.classList.remove(cls));\n Object.values(themes.dark).forEach((cls) => document.body.classList.remove(cls));\n\n document.body.classList.add(themeClass);\n\n return () => {\n document.body.classList.remove(themeClass);\n };\n }, [resolvedTheme, appliedPrimaryColor]);\n\n const contextValue: ThemeContextValue = {\n mode,\n resolvedTheme,\n primaryColor: appliedPrimaryColor,\n colors,\n setMode,\n setPrimaryColor,\n };\n\n return <ThemeContext.Provider value={contextValue}>{children}</ThemeContext.Provider>;\n}\n\nexport function useVanillaExtractTheme() {\n const context = useContext(ThemeContext);\n if (context === undefined) {\n throw new Error('useVanillaExtractTheme must be used within a VanillaExtractThemeProvider');\n }\n return context;\n}\n"],"mappings":";;;;;AAiBA,IAAM,eAAe,cAA6C,KAAA,EAAU;AAS5E,SAAgB,4BAA4B,EAC1C,UACA,eAAe,UACf,eAAe,QACf,eACmC;CACnC,MAAM,CAAC,MAAM,WAAW,SAAoB,aAAa;CACzD,MAAM,CAAC,qBAAqB,mBAAmB,SAAuB,aAAa;CACnF,MAAM,CAAC,aAAa,kBAAkB,eAAiC;EACrE,IAAI,aACF,OAAO;EAET,IAAI,OAAO,WAAW,aACpB,OAAO,OAAO,WAAW,+BAA+B,CAAC,UAAU,SAAS;EAE9E,OAAO;GACP;CAEF,gBAAgB;EACd,gBAAgB,aAAa;IAC5B,CAAC,aAAa,CAAC;CAElB,gBAAgB;EACd,IAAI,aAAa;GACf,eAAe,YAAY;GAC3B;;EAGF,MAAM,aAAa,OAAO,WAAW,+BAA+B;EACpE,eAAe,WAAW,UAAU,SAAS,QAAQ;EAErD,MAAM,WAAW,MAA2B;GAC1C,eAAe,EAAE,UAAU,SAAS,QAAQ;;EAG9C,WAAW,iBAAiB,UAAU,QAAQ;EAC9C,aAAa,WAAW,oBAAoB,UAAU,QAAQ;IAC7D,CAAC,YAAY,CAAC;CAEjB,MAAM,gBAAkC,gBAAgB,SAAS,WAAW,cAAc;CAE1F,MAAM,aAAa,kBAAkB,SAAS,aAAa;CAE3D,MAAM,iBACJ,kBAAkB,SACd;EACE,SAAS,WAAW,GAAG,oBAAoB;EAC3C,WAAW,WAAW;EACtB,YAAY;EACZ,YAAY,WAAW;EACvB,cAAc;EACd,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,MAAM;EACP,GACD;EACE,SAAS,YAAY,GAAG,oBAAoB;EAC5C,WAAW,YAAY;EACvB,YAAY,YAAY;EACxB,YAAY;EACZ,cAAc;EACd,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,MAAM;EACP;CAEP,MAAM,SAAS;EACb,GAAG;EACH,GAAG;EACJ;CAGD,sBAAsB;EACpB,MAAM,aAAa,OAAO,eAAe;EAEzC,OAAO,OAAO,OAAO,MAAM,CAAC,SAAS,QAAQ,SAAS,KAAK,UAAU,OAAO,IAAI,CAAC;EACjF,OAAO,OAAO,OAAO,KAAK,CAAC,SAAS,QAAQ,SAAS,KAAK,UAAU,OAAO,IAAI,CAAC;EAEhF,SAAS,KAAK,UAAU,IAAI,WAAW;EAEvC,aAAa;GACX,SAAS,KAAK,UAAU,OAAO,WAAW;;IAE3C,CAAC,eAAe,oBAAoB,CAAC;CAExC,MAAM,eAAkC;EACtC;EACA;EACA,cAAc;EACd;EACA;EACA;EACD;CAED,OAAO,oBAAC,aAAa,UAAd;EAAuB,OAAO;EAAe;EAAiC,CAAA;;AAGvF,SAAgB,yBAAyB;CACvC,MAAM,UAAU,WAAW,aAAa;CACxC,IAAI,YAAY,KAAA,GACd,MAAM,IAAI,MAAM,2EAA2E;CAE7F,OAAO"}
1
+ {"version":3,"file":"themeContext.js","names":[],"sources":["../../styles/themeContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useLayoutEffect, useState } from 'react';\n\nimport { darkColors, lightColors } from '../colors';\nimport { PrimaryColor, themes } from './themes.css';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\nexport type { PrimaryColor };\n\ninterface ThemeContextValue {\n mode: ThemeMode;\n resolvedTheme: 'light' | 'dark';\n primaryColor: PrimaryColor;\n colors: typeof lightColors | typeof darkColors;\n setMode: (mode: ThemeMode) => void;\n setPrimaryColor: (color: PrimaryColor) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\ninterface VanillaExtractThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: ThemeMode;\n primaryColor?: PrimaryColor;\n forcedTheme?: 'light' | 'dark';\n}\n\nexport function VanillaExtractThemeProvider({\n children,\n defaultTheme = 'system',\n primaryColor = 'blue',\n forcedTheme,\n}: VanillaExtractThemeProviderProps) {\n const [mode, setMode] = useState<ThemeMode>(defaultTheme);\n const [appliedPrimaryColor, setPrimaryColor] = useState<PrimaryColor>(primaryColor);\n const [systemTheme, setSystemTheme] = useState<'light' | 'dark'>(() => {\n if (forcedTheme) {\n return forcedTheme;\n }\n if (typeof window !== 'undefined') {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return 'light';\n });\n\n useEffect(() => {\n setPrimaryColor(primaryColor);\n }, [primaryColor]);\n\n useEffect(() => {\n if (forcedTheme) {\n setSystemTheme(forcedTheme);\n return;\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n setSystemTheme(mediaQuery.matches ? 'dark' : 'light');\n\n const handler = (e: MediaQueryListEvent) => {\n setSystemTheme(e.matches ? 'dark' : 'light');\n };\n\n mediaQuery.addEventListener('change', handler);\n return () => mediaQuery.removeEventListener('change', handler);\n }, [forcedTheme]);\n\n const resolvedTheme: 'light' | 'dark' = forcedTheme || (mode === 'system' ? systemTheme : mode);\n\n const baseColors = resolvedTheme === 'dark' ? darkColors : lightColors;\n\n const semanticColors =\n resolvedTheme === 'dark'\n ? {\n primary: darkColors[`${appliedPrimaryColor}9`],\n contentBg: darkColors['00dp'],\n hiContrast: 'white',\n loContrast: darkColors.deepBlue2,\n focusOutline: 'hsl(216, 100%, 64%)',\n divider: 'hsl(209, 29%, 19%)',\n background: '#0a0a0a',\n foreground: '#ffffff',\n muted: '#1a1a1a',\n mutedForeground: '#b4b4b4',\n card: '#1a1a1a',\n cardForeground: '#ffffff',\n popover: '#1a1a1a',\n popoverForeground: '#ffffff',\n border: '#3a3a3a',\n input: '#3a3a3a',\n accent: '#3b82f6',\n accentForeground: '#ffffff',\n destructive: '#dc2626',\n destructiveForeground: '#ffffff',\n ring: '#60a5fa',\n }\n : {\n primary: lightColors[`${appliedPrimaryColor}9`],\n contentBg: lightColors['00dp'],\n hiContrast: lightColors.deepBlue11,\n loContrast: 'white',\n focusOutline: 'hsl(216, 100%, 64%)',\n divider: 'hsl(207, 10%, 82%)',\n background: '#fcfcfc',\n foreground: '#1a1a1a',\n muted: '#f4f4f4',\n mutedForeground: '#646464',\n card: '#ffffff',\n cardForeground: '#1a1a1a',\n popover: '#ffffff',\n popoverForeground: '#1a1a1a',\n border: '#e3e3e3',\n input: '#e3e3e3',\n accent: '#60a5fa',\n accentForeground: '#ffffff',\n destructive: '#dc2626',\n destructiveForeground: '#ffffff',\n ring: '#3b82f6',\n };\n\n const colors = {\n ...baseColors,\n ...semanticColors,\n };\n\n // Use useLayoutEffect to apply theme class synchronously before paint\n useLayoutEffect(() => {\n const themeClass = themes[resolvedTheme][appliedPrimaryColor];\n\n Object.values(themes.light).forEach((cls) => document.body.classList.remove(cls));\n Object.values(themes.dark).forEach((cls) => document.body.classList.remove(cls));\n\n document.body.classList.add(themeClass);\n\n return () => {\n document.body.classList.remove(themeClass);\n };\n }, [resolvedTheme, appliedPrimaryColor]);\n\n const contextValue: ThemeContextValue = {\n mode,\n resolvedTheme,\n primaryColor: appliedPrimaryColor,\n colors,\n setMode,\n setPrimaryColor,\n };\n\n return <ThemeContext.Provider value={contextValue}>{children}</ThemeContext.Provider>;\n}\n\nexport function useVanillaExtractTheme() {\n const context = useContext(ThemeContext);\n if (context === undefined) {\n throw new Error('useVanillaExtractTheme must be used within a VanillaExtractThemeProvider');\n }\n return context;\n}\n"],"mappings":";;;;;AAiBA,IAAM,eAAe,cAA6C,KAAA,CAAS;AAS3E,SAAgB,4BAA4B,EAC1C,UACA,eAAe,UACf,eAAe,QACf,eACmC;CACnC,MAAM,CAAC,MAAM,WAAW,SAAoB,YAAY;CACxD,MAAM,CAAC,qBAAqB,mBAAmB,SAAuB,YAAY;CAClF,MAAM,CAAC,aAAa,kBAAkB,eAAiC;EACrE,IAAI,aACF,OAAO;EAET,IAAI,OAAO,WAAW,aACpB,OAAO,OAAO,WAAW,8BAA8B,EAAE,UAAU,SAAS;EAE9E,OAAO;CACT,CAAC;CAED,gBAAgB;EACd,gBAAgB,YAAY;CAC9B,GAAG,CAAC,YAAY,CAAC;CAEjB,gBAAgB;EACd,IAAI,aAAa;GACf,eAAe,WAAW;GAC1B;EACF;EAEA,MAAM,aAAa,OAAO,WAAW,8BAA8B;EACnE,eAAe,WAAW,UAAU,SAAS,OAAO;EAEpD,MAAM,WAAW,MAA2B;GAC1C,eAAe,EAAE,UAAU,SAAS,OAAO;EAC7C;EAEA,WAAW,iBAAiB,UAAU,OAAO;EAC7C,aAAa,WAAW,oBAAoB,UAAU,OAAO;CAC/D,GAAG,CAAC,WAAW,CAAC;CAEhB,MAAM,gBAAkC,gBAAgB,SAAS,WAAW,cAAc;CAE1F,MAAM,aAAa,kBAAkB,SAAS,aAAa;CAE3D,MAAM,iBACJ,kBAAkB,SACd;EACE,SAAS,WAAW,GAAG,oBAAoB;EAC3C,WAAW,WAAW;EACtB,YAAY;EACZ,YAAY,WAAW;EACvB,cAAc;EACd,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,MAAM;CACR,IACA;EACE,SAAS,YAAY,GAAG,oBAAoB;EAC5C,WAAW,YAAY;EACvB,YAAY,YAAY;EACxB,YAAY;EACZ,cAAc;EACd,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,MAAM;EACN,gBAAgB;EAChB,SAAS;EACT,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,MAAM;CACR;CAEN,MAAM,SAAS;EACb,GAAG;EACH,GAAG;CACL;CAGA,sBAAsB;EACpB,MAAM,aAAa,OAAO,eAAe;EAEzC,OAAO,OAAO,OAAO,KAAK,EAAE,SAAS,QAAQ,SAAS,KAAK,UAAU,OAAO,GAAG,CAAC;EAChF,OAAO,OAAO,OAAO,IAAI,EAAE,SAAS,QAAQ,SAAS,KAAK,UAAU,OAAO,GAAG,CAAC;EAE/E,SAAS,KAAK,UAAU,IAAI,UAAU;EAEtC,aAAa;GACX,SAAS,KAAK,UAAU,OAAO,UAAU;EAC3C;CACF,GAAG,CAAC,eAAe,mBAAmB,CAAC;CAEvC,MAAM,eAAkC;EACtC;EACA;EACA,cAAc;EACd;EACA;EACA;CACF;CAEA,OAAO,oBAAC,aAAa,UAAd;EAAuB,OAAO;EAAe;CAAgC,CAAA;AACtF;AAEA,SAAgB,yBAAyB;CACvC,MAAM,UAAU,WAAW,YAAY;CACvC,IAAI,YAAY,KAAA,GACd,MAAM,IAAI,MAAM,0EAA0E;CAE5F,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"deepMerge.cjs","names":[],"sources":["../../utils/deepMerge.ts"],"sourcesContent":["function isPlainObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Recursively merges two plain objects. Source properties win on conflict.\n * Nested plain objects are merged rather than replaced.\n * Arrays and non-plain values are always replaced by the source value.\n */\nexport function deepMerge<T extends Record<string, any>, S extends Record<string, any>>(\n target: T,\n source?: S | null,\n): T & S {\n if (!source) return target as T & S;\n\n const result: Record<string, any> = { ...target };\n\n for (const key of Object.keys(source)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') continue;\n const sourceVal = source[key];\n const targetVal = result[key];\n\n if (isPlainObject(sourceVal) && isPlainObject(targetVal)) {\n result[key] = deepMerge(targetVal, sourceVal);\n } else if (sourceVal !== undefined) {\n result[key] = sourceVal;\n }\n }\n\n return result as T & S;\n}\n"],"mappings":";AAAA,SAAS,cAAc,OAAkD;CACvE,OAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM;;;;;;;AAQ7E,SAAgB,UACd,QACA,QACO;CACP,IAAI,CAAC,QAAQ,OAAO;CAEpB,MAAM,SAA8B,EAAE,GAAG,QAAQ;CAEjD,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EAAE;EACrC,IAAI,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ,aAAa;EACzE,MAAM,YAAY,OAAO;EACzB,MAAM,YAAY,OAAO;EAEzB,IAAI,cAAc,UAAU,IAAI,cAAc,UAAU,EACtD,OAAO,OAAO,UAAU,WAAW,UAAU;OACxC,IAAI,cAAc,KAAA,GACvB,OAAO,OAAO;;CAIlB,OAAO"}
1
+ {"version":3,"file":"deepMerge.cjs","names":[],"sources":["../../utils/deepMerge.ts"],"sourcesContent":["function isPlainObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Recursively merges two plain objects. Source properties win on conflict.\n * Nested plain objects are merged rather than replaced.\n * Arrays and non-plain values are always replaced by the source value.\n */\nexport function deepMerge<T extends Record<string, any>, S extends Record<string, any>>(\n target: T,\n source?: S | null,\n): T & S {\n if (!source) return target as T & S;\n\n const result: Record<string, any> = { ...target };\n\n for (const key of Object.keys(source)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') continue;\n const sourceVal = source[key];\n const targetVal = result[key];\n\n if (isPlainObject(sourceVal) && isPlainObject(targetVal)) {\n result[key] = deepMerge(targetVal, sourceVal);\n } else if (sourceVal !== undefined) {\n result[key] = sourceVal;\n }\n }\n\n return result as T & S;\n}\n"],"mappings":";AAAA,SAAS,cAAc,OAAkD;CACvE,OAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;;;;;;AAOA,SAAgB,UACd,QACA,QACO;CACP,IAAI,CAAC,QAAQ,OAAO;CAEpB,MAAM,SAA8B,EAAE,GAAG,OAAO;CAEhD,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAAG;EACrC,IAAI,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ,aAAa;EACzE,MAAM,YAAY,OAAO;EACzB,MAAM,YAAY,OAAO;EAEzB,IAAI,cAAc,SAAS,KAAK,cAAc,SAAS,GACrD,OAAO,OAAO,UAAU,WAAW,SAAS;OACvC,IAAI,cAAc,KAAA,GACvB,OAAO,OAAO;CAElB;CAEA,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"deepMerge.js","names":[],"sources":["../../utils/deepMerge.ts"],"sourcesContent":["function isPlainObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Recursively merges two plain objects. Source properties win on conflict.\n * Nested plain objects are merged rather than replaced.\n * Arrays and non-plain values are always replaced by the source value.\n */\nexport function deepMerge<T extends Record<string, any>, S extends Record<string, any>>(\n target: T,\n source?: S | null,\n): T & S {\n if (!source) return target as T & S;\n\n const result: Record<string, any> = { ...target };\n\n for (const key of Object.keys(source)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') continue;\n const sourceVal = source[key];\n const targetVal = result[key];\n\n if (isPlainObject(sourceVal) && isPlainObject(targetVal)) {\n result[key] = deepMerge(targetVal, sourceVal);\n } else if (sourceVal !== undefined) {\n result[key] = sourceVal;\n }\n }\n\n return result as T & S;\n}\n"],"mappings":";AAAA,SAAS,cAAc,OAAkD;CACvE,OAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM;;;;;;;AAQ7E,SAAgB,UACd,QACA,QACO;CACP,IAAI,CAAC,QAAQ,OAAO;CAEpB,MAAM,SAA8B,EAAE,GAAG,QAAQ;CAEjD,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EAAE;EACrC,IAAI,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ,aAAa;EACzE,MAAM,YAAY,OAAO;EACzB,MAAM,YAAY,OAAO;EAEzB,IAAI,cAAc,UAAU,IAAI,cAAc,UAAU,EACtD,OAAO,OAAO,UAAU,WAAW,UAAU;OACxC,IAAI,cAAc,KAAA,GACvB,OAAO,OAAO;;CAIlB,OAAO"}
1
+ {"version":3,"file":"deepMerge.js","names":[],"sources":["../../utils/deepMerge.ts"],"sourcesContent":["function isPlainObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Recursively merges two plain objects. Source properties win on conflict.\n * Nested plain objects are merged rather than replaced.\n * Arrays and non-plain values are always replaced by the source value.\n */\nexport function deepMerge<T extends Record<string, any>, S extends Record<string, any>>(\n target: T,\n source?: S | null,\n): T & S {\n if (!source) return target as T & S;\n\n const result: Record<string, any> = { ...target };\n\n for (const key of Object.keys(source)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') continue;\n const sourceVal = source[key];\n const targetVal = result[key];\n\n if (isPlainObject(sourceVal) && isPlainObject(targetVal)) {\n result[key] = deepMerge(targetVal, sourceVal);\n } else if (sourceVal !== undefined) {\n result[key] = sourceVal;\n }\n }\n\n return result as T & S;\n}\n"],"mappings":";AAAA,SAAS,cAAc,OAAkD;CACvE,OAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;;;;;;AAOA,SAAgB,UACd,QACA,QACO;CACP,IAAI,CAAC,QAAQ,OAAO;CAEpB,MAAM,SAA8B,EAAE,GAAG,OAAO;CAEhD,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAAG;EACrC,IAAI,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ,aAAa;EACzE,MAAM,YAAY,OAAO;EACzB,MAAM,YAAY,OAAO;EAEzB,IAAI,cAAc,SAAS,KAAK,cAAc,SAAS,GACrD,OAAO,OAAO,UAAU,WAAW,SAAS;OACvC,IAAI,cAAc,KAAA,GACvB,OAAO,OAAO;CAElB;CAEA,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPrimaryColorInfo.cjs","names":[],"sources":["../../utils/getPrimaryColorInfo.ts"],"sourcesContent":["import { Property } from '@stitches/react/types/css';\n\nimport { ColorMap } from '../colors';\nimport { PrimaryColor } from '../stitches.config';\n\ntype ColorScale = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\ntype PickScale = (scale: ColorScale, options?: { alpha: boolean }) => Property.Color;\n\nexport type ColorInfo = {\n name: PrimaryColor;\n token: Property.Color;\n value: string;\n helpers: {\n pickScale: PickScale;\n };\n};\n\nconst getPrimaryColorInfo = (primaryColor: PrimaryColor, colors: ColorMap): ColorInfo => ({\n name: primaryColor,\n value: colors[`${primaryColor}9`],\n token: `$${primaryColor}9`,\n helpers: {\n pickScale: (scale, options = { alpha: false }) =>\n `$${primaryColor}${options.alpha ? 'A' : ''}${scale}`,\n },\n});\n\nexport default getPrimaryColorInfo;\n"],"mappings":";AAkBA,IAAM,uBAAuB,cAA4B,YAAiC;CACxF,MAAM;CACN,OAAO,OAAO,GAAG,aAAa;CAC9B,OAAO,IAAI,aAAa;CACxB,SAAS,EACP,YAAY,OAAO,UAAU,EAAE,OAAO,OAAO,KAC3C,IAAI,eAAe,QAAQ,QAAQ,MAAM,KAAK,SACjD;CACF"}
1
+ {"version":3,"file":"getPrimaryColorInfo.cjs","names":[],"sources":["../../utils/getPrimaryColorInfo.ts"],"sourcesContent":["import { Property } from '@stitches/react/types/css';\n\nimport { ColorMap } from '../colors';\nimport { PrimaryColor } from '../stitches.config';\n\ntype ColorScale = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\ntype PickScale = (scale: ColorScale, options?: { alpha: boolean }) => Property.Color;\n\nexport type ColorInfo = {\n name: PrimaryColor;\n token: Property.Color;\n value: string;\n helpers: {\n pickScale: PickScale;\n };\n};\n\nconst getPrimaryColorInfo = (primaryColor: PrimaryColor, colors: ColorMap): ColorInfo => ({\n name: primaryColor,\n value: colors[`${primaryColor}9`],\n token: `$${primaryColor}9`,\n helpers: {\n pickScale: (scale, options = { alpha: false }) =>\n `$${primaryColor}${options.alpha ? 'A' : ''}${scale}`,\n },\n});\n\nexport default getPrimaryColorInfo;\n"],"mappings":";AAkBA,IAAM,uBAAuB,cAA4B,YAAiC;CACxF,MAAM;CACN,OAAO,OAAO,GAAG,aAAa;CAC9B,OAAO,IAAI,aAAa;CACxB,SAAS,EACP,YAAY,OAAO,UAAU,EAAE,OAAO,MAAM,MAC1C,IAAI,eAAe,QAAQ,QAAQ,MAAM,KAAK,QAClD;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPrimaryColorInfo.js","names":[],"sources":["../../utils/getPrimaryColorInfo.ts"],"sourcesContent":["import { Property } from '@stitches/react/types/css';\n\nimport { ColorMap } from '../colors';\nimport { PrimaryColor } from '../stitches.config';\n\ntype ColorScale = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\ntype PickScale = (scale: ColorScale, options?: { alpha: boolean }) => Property.Color;\n\nexport type ColorInfo = {\n name: PrimaryColor;\n token: Property.Color;\n value: string;\n helpers: {\n pickScale: PickScale;\n };\n};\n\nconst getPrimaryColorInfo = (primaryColor: PrimaryColor, colors: ColorMap): ColorInfo => ({\n name: primaryColor,\n value: colors[`${primaryColor}9`],\n token: `$${primaryColor}9`,\n helpers: {\n pickScale: (scale, options = { alpha: false }) =>\n `$${primaryColor}${options.alpha ? 'A' : ''}${scale}`,\n },\n});\n\nexport default getPrimaryColorInfo;\n"],"mappings":";AAkBA,IAAM,uBAAuB,cAA4B,YAAiC;CACxF,MAAM;CACN,OAAO,OAAO,GAAG,aAAa;CAC9B,OAAO,IAAI,aAAa;CACxB,SAAS,EACP,YAAY,OAAO,UAAU,EAAE,OAAO,OAAO,KAC3C,IAAI,eAAe,QAAQ,QAAQ,MAAM,KAAK,SACjD;CACF"}
1
+ {"version":3,"file":"getPrimaryColorInfo.js","names":[],"sources":["../../utils/getPrimaryColorInfo.ts"],"sourcesContent":["import { Property } from '@stitches/react/types/css';\n\nimport { ColorMap } from '../colors';\nimport { PrimaryColor } from '../stitches.config';\n\ntype ColorScale = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\ntype PickScale = (scale: ColorScale, options?: { alpha: boolean }) => Property.Color;\n\nexport type ColorInfo = {\n name: PrimaryColor;\n token: Property.Color;\n value: string;\n helpers: {\n pickScale: PickScale;\n };\n};\n\nconst getPrimaryColorInfo = (primaryColor: PrimaryColor, colors: ColorMap): ColorInfo => ({\n name: primaryColor,\n value: colors[`${primaryColor}9`],\n token: `$${primaryColor}9`,\n helpers: {\n pickScale: (scale, options = { alpha: false }) =>\n `$${primaryColor}${options.alpha ? 'A' : ''}${scale}`,\n },\n});\n\nexport default getPrimaryColorInfo;\n"],"mappings":";AAkBA,IAAM,uBAAuB,cAA4B,YAAiC;CACxF,MAAM;CACN,OAAO,OAAO,GAAG,aAAa;CAC9B,OAAO,IAAI,aAAa;CACxB,SAAS,EACP,YAAY,OAAO,UAAU,EAAE,OAAO,MAAM,MAC1C,IAAI,eAAe,QAAQ,QAAQ,MAAM,KAAK,QAClD;AACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@traefik-labs/faency",
3
3
  "description": "Traefik Labs design system",
4
- "version": "12.3.5",
4
+ "version": "12.3.7",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
7
7
  "traefiklabs",
@@ -86,31 +86,31 @@
86
86
  "@vanilla-extract/css": "1.20.1",
87
87
  "@vanilla-extract/dynamic": "2.1.5",
88
88
  "@vanilla-extract/recipes": "0.5.7",
89
- "date-fns": "4.2.1",
89
+ "date-fns": "4.4.0",
90
90
  "prism-react-renderer": "2.4.1",
91
91
  "prismjs": "1.30.0",
92
92
  "tinycolor2": "1.6.0"
93
93
  },
94
94
  "devDependencies": {
95
- "@babel/core": "7.29.0",
96
- "@babel/preset-env": "7.29.5",
97
- "@babel/preset-react": "7.28.5",
98
- "@babel/preset-typescript": "7.28.5",
95
+ "@babel/core": "7.29.7",
96
+ "@babel/preset-env": "7.29.7",
97
+ "@babel/preset-react": "7.29.7",
98
+ "@babel/preset-typescript": "7.29.7",
99
99
  "@eslint/js": "9.39.4",
100
100
  "@semantic-release/commit-analyzer": "13.0.1",
101
101
  "@semantic-release/github": "12.0.8",
102
102
  "@semantic-release/npm": "13.1.5",
103
103
  "@semantic-release/release-notes-generator": "14.1.1",
104
- "@storybook/addon-docs": "10.4.0",
105
- "@storybook/addon-links": "10.4.0",
106
- "@storybook/builder-vite": "10.4.0",
107
- "@storybook/react-vite": "10.4.0",
104
+ "@storybook/addon-docs": "10.4.2",
105
+ "@storybook/addon-links": "10.4.2",
106
+ "@storybook/builder-vite": "10.4.2",
107
+ "@storybook/react-vite": "10.4.2",
108
108
  "@testing-library/dom": "10.4.1",
109
109
  "@testing-library/jest-dom": "6.9.1",
110
110
  "@testing-library/react": "16.3.2",
111
111
  "@types/jest": "30.0.0",
112
112
  "@types/jest-axe": "3.5.9",
113
- "@types/node": "24.12.4",
113
+ "@types/node": "24.13.0",
114
114
  "@types/prismjs": "1.26.6",
115
115
  "@types/react": "18.2.0",
116
116
  "@types/react-dom": "18.2.0",
@@ -124,27 +124,27 @@
124
124
  "eslint": "9.39.4",
125
125
  "eslint-config-prettier": "10.1.8",
126
126
  "eslint-plugin-jsx-a11y": "6.10.2",
127
- "eslint-plugin-prettier": "5.5.5",
127
+ "eslint-plugin-prettier": "5.5.6",
128
128
  "eslint-plugin-react": "7.37.5",
129
129
  "eslint-plugin-react-hooks": "7.1.1",
130
130
  "eslint-plugin-simple-import-sort": "13.0.0",
131
- "eslint-plugin-storybook": "10.4.0",
131
+ "eslint-plugin-storybook": "10.4.2",
132
132
  "globals": "17.6.0",
133
133
  "husky": "9.1.7",
134
134
  "jest": "30.4.2",
135
135
  "jest-axe": "10.0.0",
136
136
  "jest-environment-jsdom": "30.4.1",
137
- "lint-staged": "17.0.5",
137
+ "lint-staged": "17.0.7",
138
138
  "np": "11.2.1",
139
139
  "patch-package": "8.0.1",
140
140
  "prettier": "3.8.3",
141
141
  "react": "18.3.1",
142
142
  "react-dom": "18.3.1",
143
143
  "semantic-release": "25.0.3",
144
- "storybook": "10.4.0",
144
+ "storybook": "10.4.2",
145
145
  "typescript": "5.8.3",
146
- "typescript-eslint": "8.59.4",
147
- "vite": "8.0.12",
146
+ "typescript-eslint": "8.60.1",
147
+ "vite": "8.0.16",
148
148
  "vite-plugin-dts": "4.5.4"
149
149
  },
150
150
  "resolutions": {
@@ -187,5 +187,5 @@
187
187
  "engines": {
188
188
  "node": ">=24.14.1"
189
189
  },
190
- "packageManager": "yarn@4.14.1+sha512.64df448055b2d37ba269d7db535a469b8da93f8ef1140c25fd7a83c00a8fbaacb214ca0e02553b92a2c54cef78bb67d0b4817fab02001df0e24fac0faccc3b42"
190
+ "packageManager": "yarn@4.16.0+sha512.5374c94eb4ef6aa8188fb112f20c1aa6569f248d676c5e576e1fd2a1a4d8d87a96df65d9dfe1c2a0252cbe38bda46cf18d955005b81b43cc7607a5c9d56fd2b6"
191
191
  }