@dbcdk/react-components 0.0.4 → 0.0.6

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 (299) hide show
  1. package/dist/assets/logo.js +2 -85
  2. package/dist/components/__stories__/_data/table.d.ts +15 -0
  3. package/dist/components/__stories__/_data/table.js +49 -0
  4. package/dist/components/__stories__/story-components/Colors.d.ts +11 -0
  5. package/dist/components/__stories__/story-components/Colors.js +96 -0
  6. package/dist/components/__stories__/story-components/Colors.module.css +27 -0
  7. package/dist/components/__stories__/story-components/Spacing.d.ts +2 -0
  8. package/dist/components/__stories__/story-components/Spacing.js +76 -0
  9. package/dist/components/__stories__/story-components/Spacing.module.css +154 -0
  10. package/dist/components/app-header/AppHeader.d.ts +4 -3
  11. package/dist/components/app-header/AppHeader.js +3 -6
  12. package/dist/components/app-header/AppHeader.module.css +10 -15
  13. package/dist/components/attribute-chip/AttributeChip.d.ts +9 -0
  14. package/dist/components/attribute-chip/AttributeChip.js +5 -0
  15. package/dist/components/attribute-chip/AttributeChip.module.css +65 -0
  16. package/dist/components/avatar/Avatar.d.ts +5 -3
  17. package/dist/components/avatar/Avatar.js +37 -37
  18. package/dist/components/avatar/Avatar.module.css +27 -0
  19. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +4 -4
  20. package/dist/components/breadcrumbs/Breadcrumbs.js +4 -14
  21. package/dist/components/breadcrumbs/Breadcrumbs.module.css +19 -22
  22. package/dist/components/button/Button.d.ts +6 -2
  23. package/dist/components/button/Button.js +56 -50
  24. package/dist/components/button/Button.module.css +119 -56
  25. package/dist/components/card/Card.d.ts +23 -7
  26. package/dist/components/card/Card.js +20 -21
  27. package/dist/components/card/Card.module.css +148 -44
  28. package/dist/components/card-container/CardContainer.d.ts +6 -3
  29. package/dist/components/card-container/CardContainer.js +4 -15
  30. package/dist/components/card-container/CardContainer.module.css +40 -0
  31. package/dist/components/chip/Chip.d.ts +7 -5
  32. package/dist/components/chip/Chip.js +14 -37
  33. package/dist/components/chip/Chip.module.css +50 -27
  34. package/dist/components/circle/Circle.d.ts +3 -2
  35. package/dist/components/circle/Circle.js +3 -10
  36. package/dist/components/circle/Circle.module.css +11 -11
  37. package/dist/components/clear-button/ClearButton.d.ts +2 -1
  38. package/dist/components/clear-button/ClearButton.js +6 -17
  39. package/dist/components/clear-button/ClearButton.module.css +8 -7
  40. package/dist/components/code-block/CodeBlock.d.ts +7 -0
  41. package/dist/components/code-block/CodeBlock.js +6 -0
  42. package/dist/components/code-block/CodeBlock.module.css +60 -0
  43. package/dist/components/copy-button/CopyButton.d.ts +10 -0
  44. package/dist/components/copy-button/CopyButton.js +22 -0
  45. package/dist/components/copy-button/CopyButton.module.css +6 -0
  46. package/dist/components/datetime-picker/DateTimePicker.d.ts +42 -0
  47. package/dist/components/datetime-picker/DateTimePicker.js +403 -0
  48. package/dist/components/datetime-picker/DateTimePicker.module.css +144 -0
  49. package/dist/components/filter-field/FilterField.d.ts +6 -3
  50. package/dist/components/filter-field/FilterField.js +130 -158
  51. package/dist/components/filter-field/FilterField.module.css +35 -25
  52. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.d.ts +36 -0
  53. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.js +53 -0
  54. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.module.css +60 -0
  55. package/dist/components/forms/checkbox/Checkbox.d.ts +31 -0
  56. package/dist/components/forms/checkbox/Checkbox.js +27 -0
  57. package/dist/components/{checkbox → forms/checkbox}/Checkbox.module.css +10 -11
  58. package/dist/components/forms/checkbox-group/CheckboxGroup.d.ts +47 -0
  59. package/dist/components/forms/checkbox-group/CheckboxGroup.js +75 -0
  60. package/dist/components/forms/checkbox-group/CheckboxGroup.module.css +115 -0
  61. package/dist/components/forms/input/Input.d.ts +22 -0
  62. package/dist/components/forms/input/Input.js +70 -0
  63. package/dist/components/forms/input/Input.module.css +160 -0
  64. package/dist/components/forms/input-container/InputContainer.d.ts +15 -0
  65. package/dist/components/forms/input-container/InputContainer.js +15 -0
  66. package/dist/components/forms/input-container/InputContainer.module.css +34 -0
  67. package/dist/components/forms/multi-select/MultiSelect.d.ts +20 -0
  68. package/dist/components/forms/multi-select/MultiSelect.js +19 -0
  69. package/dist/components/forms/select/Select.d.ts +21 -0
  70. package/dist/components/forms/select/Select.js +94 -0
  71. package/dist/components/forms/text-area/Textarea.d.ts +17 -0
  72. package/dist/components/forms/text-area/Textarea.js +33 -0
  73. package/dist/components/forms/text-area/Textarea.module.css +26 -0
  74. package/dist/components/headline/Headline.d.ts +9 -1
  75. package/dist/components/headline/Headline.js +18 -37
  76. package/dist/components/headline/Headline.module.css +32 -7
  77. package/dist/components/hyperlink/Hyperlink.d.ts +9 -0
  78. package/dist/components/hyperlink/Hyperlink.js +11 -0
  79. package/dist/components/hyperlink/Hyperlink.module.css +23 -0
  80. package/dist/components/icon/Icon.d.ts +4 -3
  81. package/dist/components/icon/Icon.js +11 -17
  82. package/dist/components/icon/Icon.module.css +10 -9
  83. package/dist/components/menu/Menu.js +25 -67
  84. package/dist/components/menu/Menu.module.css +10 -32
  85. package/dist/components/meta-bar/MetaBar.d.ts +11 -0
  86. package/dist/components/meta-bar/MetaBar.js +9 -0
  87. package/dist/components/meta-bar/MetaBar.module.css +12 -0
  88. package/dist/components/nav-bar/NavBar.d.ts +5 -5
  89. package/dist/components/nav-bar/NavBar.js +15 -45
  90. package/dist/components/nav-bar/NavBar.module.css +11 -16
  91. package/dist/components/overlay/modal/Modal.d.ts +23 -0
  92. package/dist/components/overlay/modal/Modal.js +92 -0
  93. package/dist/components/overlay/modal/Modal.module.css +66 -0
  94. package/dist/components/overlay/modal/provider/ModalProvider.d.ts +20 -0
  95. package/dist/components/overlay/modal/provider/ModalProvider.js +70 -0
  96. package/dist/components/overlay/side-panel/SidePanel.d.ts +16 -0
  97. package/dist/components/overlay/side-panel/SidePanel.js +10 -0
  98. package/dist/components/overlay/side-panel/SidePanel.module.css +56 -0
  99. package/dist/components/overlay/side-panel/useSidePanel.d.ts +5 -0
  100. package/dist/components/overlay/side-panel/useSidePanel.js +11 -0
  101. package/dist/components/overlay/tooltip/Tooltip.d.ts +13 -0
  102. package/dist/components/overlay/tooltip/Tooltip.js +17 -0
  103. package/dist/components/overlay/tooltip/Tooltip.module.css +106 -0
  104. package/dist/components/overlay/tooltip/TooltipProvider.d.ts +20 -0
  105. package/dist/components/overlay/tooltip/TooltipProvider.js +244 -0
  106. package/dist/components/overlay/tooltip/useTooltipTrigger.d.ts +24 -0
  107. package/dist/components/overlay/tooltip/useTooltipTrigger.js +108 -0
  108. package/dist/components/page/Page.d.ts +7 -6
  109. package/dist/components/page/Page.js +4 -21
  110. package/dist/components/page/Page.module.css +2 -2
  111. package/dist/components/page-layout/PageLayout.d.ts +12 -20
  112. package/dist/components/page-layout/PageLayout.js +35 -88
  113. package/dist/components/page-layout/PageLayout.module.css +4 -80
  114. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.d.ts +11 -0
  115. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.js +7 -0
  116. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.module.css +84 -0
  117. package/dist/components/pagination/Pagination.d.ts +4 -1
  118. package/dist/components/pagination/Pagination.js +38 -105
  119. package/dist/components/pagination/Pagination.module.css +11 -3
  120. package/dist/components/panel/Panel.d.ts +4 -3
  121. package/dist/components/panel/Panel.js +5 -10
  122. package/dist/components/panel/Panel.module.css +5 -7
  123. package/dist/components/popover/Popover.d.ts +3 -1
  124. package/dist/components/popover/Popover.js +116 -124
  125. package/dist/components/popover/Popover.module.css +4 -6
  126. package/dist/components/search-box/SearchBox.d.ts +11 -8
  127. package/dist/components/search-box/SearchBox.js +112 -149
  128. package/dist/components/search-box/SearchBox.module.css +0 -1
  129. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts +1 -1
  130. package/dist/components/segmented-progress-bar/SegmentedProgressBar.js +47 -88
  131. package/dist/components/segmented-progress-bar/SegmentedProgressBar.module.css +5 -1
  132. package/dist/components/sidebar/Sidebar.d.ts +3 -1
  133. package/dist/components/sidebar/Sidebar.js +5 -29
  134. package/dist/components/sidebar/components/SidebarItem.js +6 -12
  135. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.d.ts +4 -2
  136. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.js +48 -62
  137. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.module.css +9 -38
  138. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.d.ts +9 -0
  139. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.js +13 -0
  140. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.module.css +155 -0
  141. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.d.ts +3 -1
  142. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.js +4 -18
  143. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.module.css +25 -12
  144. package/dist/components/sidebar/components/sidebar-items/SidebarItems.d.ts +1 -1
  145. package/dist/components/sidebar/components/sidebar-items/SidebarItems.js +9 -22
  146. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.js +20 -18
  147. package/dist/components/sidebar/providers/SidebarProvider.d.ts +9 -4
  148. package/dist/components/sidebar/providers/SidebarProvider.js +188 -73
  149. package/dist/components/skeleton-loader/SkeletonLoader.js +68 -266
  150. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.js +11 -34
  151. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.module.css +0 -12
  152. package/dist/components/split-button/SplitButton.d.ts +7 -5
  153. package/dist/components/split-button/SplitButton.js +4 -27
  154. package/dist/components/split-pane/SplitPane.d.ts +34 -0
  155. package/dist/components/split-pane/SplitPane.js +78 -0
  156. package/dist/components/split-pane/SplitPane.module.css +106 -0
  157. package/dist/components/split-pane/provider/SplitPaneContext.d.ts +23 -0
  158. package/dist/components/split-pane/provider/SplitPaneContext.js +85 -0
  159. package/dist/components/table/Table.d.ts +28 -10
  160. package/dist/components/table/Table.js +117 -172
  161. package/dist/components/table/Table.module.css +78 -47
  162. package/dist/components/table/components/column-resizer/ColumnResizer.js +4 -15
  163. package/dist/components/table/components/empty-state/EmptyState.d.ts +41 -0
  164. package/dist/components/table/components/empty-state/EmptyState.js +27 -0
  165. package/dist/components/table/components/empty-state/EmptyState.module.css +16 -0
  166. package/dist/components/table/components/table-settings/TableSettings.d.ts +8 -0
  167. package/dist/components/table/components/table-settings/TableSettings.js +12 -0
  168. package/dist/components/table/tanstack.d.ts +14 -0
  169. package/dist/components/table/tanstack.js +162 -0
  170. package/dist/components/tabs/Tabs.d.ts +7 -3
  171. package/dist/components/tabs/Tabs.js +32 -65
  172. package/dist/components/tabs/Tabs.module.css +9 -9
  173. package/dist/components/toast/Toast.d.ts +14 -0
  174. package/dist/components/toast/Toast.js +8 -0
  175. package/dist/components/toast/Toast.module.css +102 -0
  176. package/dist/components/toast/provider/ToastProvider.d.ts +23 -0
  177. package/dist/components/toast/provider/ToastProvider.js +64 -0
  178. package/dist/components/user-display/UserDisplay.d.ts +2 -1
  179. package/dist/components/user-display/UserDisplay.js +4 -20
  180. package/dist/components/user-display/UserDisplay.module.css +2 -2
  181. package/dist/constants/severity.d.ts +1 -1
  182. package/dist/constants/severity.js +14 -16
  183. package/dist/constants/severity.types.d.ts +1 -1
  184. package/dist/constants/severity.types.js +1 -1
  185. package/dist/constants/sizes.d.ts +1 -1
  186. package/dist/constants/sizes.js +6 -7
  187. package/dist/hooks/usePagination.d.ts +33 -0
  188. package/dist/hooks/usePagination.js +79 -0
  189. package/dist/hooks/useSorting.d.ts +49 -0
  190. package/dist/hooks/useSorting.js +118 -0
  191. package/dist/hooks/useTableData.d.ts +40 -0
  192. package/dist/hooks/useTableData.js +45 -0
  193. package/dist/hooks/useTableSelection.d.ts +25 -0
  194. package/dist/hooks/useTableSelection.js +128 -0
  195. package/dist/hooks/useTableSettings.d.ts +7 -0
  196. package/dist/hooks/useTableSettings.js +24 -0
  197. package/dist/hooks/useTheme.d.ts +3 -7
  198. package/dist/hooks/useTheme.js +52 -47
  199. package/dist/hooks/useTimeDuration.d.ts +22 -0
  200. package/dist/hooks/useTimeDuration.js +36 -0
  201. package/dist/hooks/useViewportFill.d.ts +3 -2
  202. package/dist/hooks/useViewportFill.js +55 -48
  203. package/dist/index.d.ts +32 -6
  204. package/dist/index.js +33 -6
  205. package/dist/src/styles/styles.css +101 -8
  206. package/dist/styles/css-helper-classes/flex.css +101 -0
  207. package/dist/styles/css-helper-classes/typography.css +7 -0
  208. package/dist/styles/styles.css +101 -8
  209. package/dist/styles/themes/dbc/dark.css +207 -100
  210. package/dist/styles/themes/dbc/light.css +185 -90
  211. package/dist/styles/themes/forfatterweb/light.css +1 -1
  212. package/dist/styles/themes/types.js +1 -1
  213. package/dist/types/a11y-props.types.d.ts +5 -5
  214. package/dist/types/a11y-props.types.js +1 -1
  215. package/dist/types/sizes.types.d.ts +2 -2
  216. package/dist/types/sizes.types.js +1 -1
  217. package/dist/utils/arrays/nested-filtering.js +43 -33
  218. package/dist/utils/date/formatDate.js +25 -16
  219. package/package.json +33 -18
  220. package/dist/assets/logo.cjs +0 -87
  221. package/dist/components/app-header/AppHeader.cjs +0 -14
  222. package/dist/components/avatar/Avatar.cjs +0 -67
  223. package/dist/components/breadcrumbs/Breadcrumbs.cjs +0 -23
  224. package/dist/components/button/Button.cjs +0 -79
  225. package/dist/components/card/Card.cjs +0 -29
  226. package/dist/components/card-container/CardContainer.cjs +0 -23
  227. package/dist/components/checkbox/Checkbox.cjs +0 -43
  228. package/dist/components/checkbox/Checkbox.d.ts +0 -12
  229. package/dist/components/checkbox/Checkbox.js +0 -37
  230. package/dist/components/chip/Chip.cjs +0 -49
  231. package/dist/components/circle/Circle.cjs +0 -18
  232. package/dist/components/clear-button/ClearButton.cjs +0 -26
  233. package/dist/components/data-summary/DataSummary.cjs +0 -49
  234. package/dist/components/data-summary/DataSummary.d.ts +0 -19
  235. package/dist/components/data-summary/DataSummary.js +0 -43
  236. package/dist/components/data-summary/DataSummary.module.css +0 -51
  237. package/dist/components/filter-field/FilterField.cjs +0 -174
  238. package/dist/components/headline/Headline.cjs +0 -47
  239. package/dist/components/icon/Icon.cjs +0 -27
  240. package/dist/components/input/Input.cjs +0 -48
  241. package/dist/components/input/Input.d.ts +0 -13
  242. package/dist/components/input/Input.js +0 -42
  243. package/dist/components/input/Input.module.css +0 -112
  244. package/dist/components/menu/Menu.cjs +0 -96
  245. package/dist/components/multi-select/MultiSelect.cjs +0 -48
  246. package/dist/components/multi-select/MultiSelect.d.ts +0 -18
  247. package/dist/components/multi-select/MultiSelect.js +0 -46
  248. package/dist/components/nav-bar/NavBar.cjs +0 -55
  249. package/dist/components/page/Page.cjs +0 -30
  250. package/dist/components/page-layout/PageLayout.cjs +0 -101
  251. package/dist/components/pagination/Pagination.cjs +0 -117
  252. package/dist/components/panel/Panel.cjs +0 -18
  253. package/dist/components/popover/Popover.cjs +0 -132
  254. package/dist/components/search-box/SearchBox.cjs +0 -162
  255. package/dist/components/segmented-progress-bar/SegmentedProgressBar.cjs +0 -97
  256. package/dist/components/select/Select.cjs +0 -52
  257. package/dist/components/select/Select.d.ts +0 -11
  258. package/dist/components/select/Select.js +0 -50
  259. package/dist/components/sidebar/Sidebar.cjs +0 -38
  260. package/dist/components/sidebar/Sidebar.module.css +0 -66
  261. package/dist/components/sidebar/components/SidebarItem.cjs +0 -16
  262. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.cjs +0 -74
  263. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.cjs +0 -27
  264. package/dist/components/sidebar/components/sidebar-items/SidebarItems.cjs +0 -28
  265. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.cjs +0 -25
  266. package/dist/components/sidebar/providers/SidebarProvider.cjs +0 -81
  267. package/dist/components/skeleton-loader/SkeletonLoader.cjs +0 -270
  268. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.cjs +0 -42
  269. package/dist/components/split-button/SplitButton.cjs +0 -37
  270. package/dist/components/table/Table.cjs +0 -181
  271. package/dist/components/table/components/column-resizer/ColumnResizer.cjs +0 -22
  272. package/dist/components/tabs/Tabs.cjs +0 -74
  273. package/dist/components/text-area/Textarea.cjs +0 -62
  274. package/dist/components/text-area/Textarea.d.ts +0 -14
  275. package/dist/components/text-area/Textarea.js +0 -56
  276. package/dist/components/text-area/Textarea.module.css +0 -3
  277. package/dist/components/tooltip/Tooltip.cjs +0 -78
  278. package/dist/components/tooltip/Tooltip.d.ts +0 -11
  279. package/dist/components/tooltip/Tooltip.js +0 -72
  280. package/dist/components/tooltip/Tooltip.module.css +0 -84
  281. package/dist/components/user-display/UserDisplay.cjs +0 -28
  282. package/dist/constants/severity.cjs +0 -21
  283. package/dist/constants/severity.types.cjs +0 -2
  284. package/dist/constants/sizes.cjs +0 -10
  285. package/dist/hooks/useTheme.cjs +0 -58
  286. package/dist/hooks/useViewportFill.cjs +0 -52
  287. package/dist/index.cjs +0 -264
  288. package/dist/styles/themes/types.cjs +0 -2
  289. package/dist/tanstack.cjs +0 -231
  290. package/dist/tanstack.d.ts +0 -25
  291. package/dist/tanstack.js +0 -206
  292. package/dist/types/a11y-props.types.cjs +0 -2
  293. package/dist/types/assets.d.cjs +0 -2
  294. package/dist/types/assets.d.js +0 -1
  295. package/dist/types/css.d.cjs +0 -2
  296. package/dist/types/css.d.js +0 -1
  297. package/dist/types/sizes.types.cjs +0 -2
  298. package/dist/utils/arrays/nested-filtering.cjs +0 -40
  299. package/dist/utils/date/formatDate.cjs +0 -19
@@ -1,43 +1,163 @@
1
- :root {
2
- --color-primary: #0c3ee3;
3
- --color-primary-hover: #0932b6;
4
- --color-secondary: #6b7280;
5
- --color-secondary-hover: #4b5563;
6
- --color-accent: #ec4899;
7
- --color-accent-hover: #be185d;
8
-
9
- --color-highlight: #3b6ff5;
10
- --color-hover: var(--opac-bg-light);
11
-
12
- --color-bg-selected: #e8edfd;
13
- --color-bg-selected-hover: #dce5fc;
14
- --color-border-selected: var(--color-primary);
15
-
16
- --color-background: #ffffff;
17
- --color-surface: #ffffff;
18
- --color-surface-hover: var(--opac-bg-light);
19
- --color-surface-pressed: var(--opac-bg-default);
20
- --color-surface-selected: var(--color-bg-selected);
21
-
22
- /* Text */
23
- --color-text: #1a1a1a;
24
- --color-text-secondary: #374151;
25
- --color-text-muted: #5f6368;
26
- --color-text-inverse: #ffffff;
27
- --color-text-on-primary: var(--color-text-inverse);
28
- --color-text-on-secondary: var(--color-text-inverse);
29
- --color-text-on-highlight: var(--color-text-inverse);
30
-
31
- /* Links */
32
- --color-link: #0c3ee3;
33
- --color-link-hover: #0932b6;
34
- --color-link-visited: #5b3ee3;
35
-
36
- /* Borders */
37
- --color-border: rgba(0, 0, 0, 0.12);
1
+ html[data-theme='light'] {
2
+ /* ==========================================================================
3
+ * PRIMITIVES (DBC)
4
+ * ======================================================================= */
5
+
6
+ /* Brand blues */
7
+ --dbc-blue-500: #0c3ee3;
8
+ --dbc-blue-600: #0932b6;
9
+ --dbc-blue-400: #3b6ff5;
10
+ --dbc-blue-300: #7ea5ff; /* used for focus ring */
11
+ --dbc-blue-100: #e8edfd;
12
+ --dbc-blue-150: #dce5fc;
13
+
14
+ /* Neutrals */
15
+ --dbc-neutral-900: #1a1a1a;
16
+ --dbc-neutral-700: #374151;
17
+ --dbc-neutral-600: #5f6368;
18
+ --dbc-neutral-200: #e5e7eb;
19
+ --dbc-neutral-100: #f3f4f6;
20
+
21
+ /* Accents */
22
+ --dbc-pink-500: #ec4899;
23
+ --dbc-pink-600: #be185d;
24
+
25
+ --dbc-gray-500: #6b7280;
26
+ --dbc-gray-600: #4b5563;
27
+
28
+ /* Status colors */
29
+ --dbc-green-500: #10b981;
30
+ --dbc-green-100: #e6f9f3;
31
+ --dbc-green-700: #065f46;
32
+ --dbc-green-300: #34d399;
33
+
34
+ --dbc-amber-700: #b45309;
35
+ --dbc-amber-100: #fff7ed;
36
+ --dbc-amber-800: #92400e;
37
+ --dbc-amber-400: #f59e0b;
38
+
39
+ --dbc-red-600: #dc2626;
40
+ --dbc-red-100: #fef2f2;
41
+ --dbc-red-800: #991b1b;
42
+ --dbc-red-300: #f87171;
43
+
44
+ --dbc-info-500: #0ea5e9;
45
+ --dbc-info-100: #e0f2fe;
46
+ --dbc-info-700: #075985;
47
+ --dbc-info-300: #38bdf8;
48
+
49
+ /* ==========================================================================
50
+ * SEMANTIC COLORS (HUE-AGNOSTIC – COMPONENTS USE THESE)
51
+ * ======================================================================= */
52
+
53
+ /* === Brand & accents === */
54
+ --color-brand: var(--dbc-blue-500);
55
+ --color-brand-hover: var(--dbc-blue-600);
56
+ --color-brand-strong: var(--dbc-blue-600); /* same as hover for this theme */
57
+
58
+ /* === Backgrounds & surfaces === */
59
+ --color-bg-page: #ffffff;
60
+ --color-bg-surface: #ffffff;
61
+ --color-bg-surface-subtle: rgba(0, 0, 0, 0.02);
62
+ --color-bg-surface-strong: #f9fafb;
63
+
64
+ --color-bg-contextual: #f4f2ee;
65
+ --color-bg-contextual-subtle: #faf8f5;
66
+
67
+ /* Interaction backgrounds */
68
+ --color-bg-hover-subtle: var(--opac-bg-light);
69
+ --color-bg-pressed-subtle: var(--opac-bg-default);
70
+
71
+ /* Selected */
72
+ --color-bg-selected: var(--dbc-blue-100);
73
+ --color-bg-selected-hover: var(--dbc-blue-150);
74
+
75
+ --color-neutral: var(--dbc-neutral-200);
76
+ --color-neutral-fg: #000000;
77
+ --color-neutral-strong: var(--dbc-neutral-600);
78
+ --color-neutral-strong-fg: #ffffff;
79
+ /* === Borders === */
80
+
81
+ --color-border-subtle: rgba(0, 0, 0, 0.12);
82
+ --color-border-default: rgba(0, 0, 0, 0.12);
38
83
  --color-border-strong: rgba(0, 0, 0, 0.24);
84
+ --color-border-selected: var(--color-brand);
85
+
86
+ /* Border widths */
39
87
  --border-width-thin: 1px;
40
- --border-width-thick: 2px;
88
+ --border-width-medium: 2px;
89
+ --border-width-thick: 4px;
90
+
91
+ /* === Text / foreground === */
92
+
93
+ --color-fg-default: var(--dbc-neutral-900);
94
+ --color-fg-muted: var(--dbc-neutral-700);
95
+ --color-fg-subtle: var(--dbc-neutral-600);
96
+
97
+ --color-fg-on-strong: #ffffff;
98
+ --color-fg-on-brand: #ffffff;
99
+
100
+ /* === Links === */
101
+
102
+ --color-link: var(--dbc-blue-500);
103
+ --color-link-hover: var(--dbc-blue-600);
104
+ --color-link-visited: #5b3ee3;
105
+
106
+ /* === Status / severity === */
107
+
108
+ --color-status-success: var(--dbc-green-500);
109
+ --color-status-success-bg: var(--dbc-green-100);
110
+ --color-status-success-border: var(--dbc-green-300);
111
+ --color-status-success-fg: var(--dbc-green-700);
112
+
113
+ --color-status-warning: var(--dbc-amber-700);
114
+ --color-status-warning-bg: var(--dbc-amber-100);
115
+ --color-status-warning-border: var(--dbc-amber-400);
116
+ --color-status-warning-fg: var(--dbc-amber-800);
117
+
118
+ --color-status-error: var(--dbc-red-600);
119
+ --color-status-error-bg: var(--dbc-red-100);
120
+ --color-status-error-border: var(--dbc-red-300);
121
+ --color-status-error-fg: var(--dbc-red-800);
122
+
123
+ --color-status-info: var(--dbc-info-500);
124
+ --color-status-info-bg: var(--dbc-info-100);
125
+ --color-status-info-border: var(--dbc-info-300);
126
+ --color-status-info-fg: var(--dbc-info-700);
127
+
128
+ /* === Disabled === */
129
+
130
+ --color-disabled-bg: var(--dbc-neutral-100);
131
+ --color-disabled-fg: #9ca3af;
132
+ --color-disabled-border: var(--dbc-neutral-200);
133
+
134
+ /* === Focus === */
135
+
136
+ --color-focus-ring: var(--dbc-blue-300);
137
+ --focus-ring: 0 0 0 3px rgba(12, 62, 227, 0.25);
138
+
139
+ /* ==========================================================================
140
+ * OPTIONAL COMPONENT-LEVEL TOKENS
141
+ * ======================================================================= */
142
+
143
+ /* Cards */
144
+ --card-bg-default: var(--color-bg-surface);
145
+ --card-bg-subtle: var(--color-bg-surface-subtle);
146
+ --card-bg-strong: var(--color-bg-surface-strong);
147
+
148
+ --card-fg-default: var(--color-fg-default);
149
+ --card-fg-on-strong: var(--color-fg-on-strong);
150
+ --card-fg-on-accent-1: var(--color-fg-on-accent-1);
151
+ --card-fg-on-accent-2: var(--color-fg-on-accent-2);
152
+
153
+ /* Buttons */
154
+ --button-bg-primary: var(--color-brand);
155
+ --button-bg-primary-hover: var(--color-brand-hover);
156
+ --button-fg-primary: var(--color-fg-on-brand);
157
+
158
+ /* ==========================================================================
159
+ * NON-COLOR SYSTEM TOKENS
160
+ * ======================================================================= */
41
161
 
42
162
  /* Opacities (light) */
43
163
  --opac-bg-light: rgba(0, 0, 0, 0.025);
@@ -48,38 +168,7 @@
48
168
  --opac-bg-default-invert: rgba(255, 255, 255, 0.05);
49
169
  --opac-bg-dark-invert: rgba(255, 255, 255, 0.1);
50
170
 
51
- /* Semantic (Status) */
52
- --color-success: #166534;
53
- --color-warning: #a05a00;
54
- --color-error: #b91c1c;
55
- --color-info: #075985;
56
-
57
- --color-bg-success: #ecfdf5;
58
- --color-bg-warning: #fff3d1;
59
- --color-bg-error: #fef2f2;
60
- --color-bg-info: #e0f2fe;
61
-
62
- --color-text-success: #166534;
63
- --color-text-warning: #a05a00;
64
- --color-text-error: #b91c1c;
65
- --color-text-info: #075985;
66
-
67
- --color-border-success: #16a34a;
68
- --color-border-warning: #d97706;
69
- --color-border-error: #ef4444;
70
- --color-border-info: #0284c7;
71
-
72
- /* Disabled */
73
- --color-disabled-bg: #f3f4f6;
74
- --color-disabled-text: #9ca3af;
75
- --color-disabled-border: #e5e7eb;
76
-
77
- /* Focus */
78
- --focus-ring-color: #7ea5ff; /* tuned for light backgrounds */
79
- --focus-ring: 0 0 0 3px rgba(12, 62, 227, 0.25);
80
-
81
171
  /* ===== Spacing & Layout ===== */
82
- /* 4px base scale */
83
172
  --spacing-2xs: 2px;
84
173
  --spacing-xxs: 4px;
85
174
  --spacing-xs: 8px;
@@ -91,7 +180,6 @@
91
180
  --spacing-3xl: 64px;
92
181
  --spacing-4xl: 96px;
93
182
 
94
- /* Gutters */
95
183
  --gutter-sm: 12px;
96
184
  --gutter-md: 16px;
97
185
  --gutter-lg: 24px;
@@ -110,14 +198,18 @@
110
198
  --container-xl: 1280px;
111
199
 
112
200
  /* ===== Sizing ===== */
113
- --icon-size: 20px;
201
+ --icon-size-sm: 16px;
202
+ --icon-size-md: 20px;
203
+ --icon-size-lg: 24px;
204
+
114
205
  --component-size-xs: 20px;
115
206
  --component-size-sm: 30px;
116
- --component-size-md: 40px;
117
- --component-size-lg: 48px;
118
- --component-size-xl: 64px;
207
+ --component-size-md: 36px;
208
+ --component-size-lg: 44px;
209
+ --component-size-xl: 435px;
210
+ --sidebar-width: 200px;
119
211
 
120
- /* Control paddings (horizontal/vertical) */
212
+ /* Control paddings */
121
213
  --control-padding-x: 12px;
122
214
  --control-padding-y: 8px;
123
215
 
@@ -131,15 +223,17 @@
131
223
  --border-radius-lg: 0.5rem;
132
224
  --border-radius-xl: 0.75rem;
133
225
 
134
- /* Density presets (add/subtract from heights/paddings) */
226
+ /* Density */
135
227
  --density-compact: -2px;
136
228
  --density-comfortable: 0px;
137
229
  --density-spacious: 4px;
138
230
 
139
- /* ===== Typography ===== */
231
+ /* Typography */
232
+ --text-max-width: 65ch;
140
233
  --font-family:
141
234
  Roboto, Inter, ui-sans-serif, system-ui, 'Segoe UI', 'Helvetica Neue', Arial,
142
235
  'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', sans-serif;
236
+
143
237
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
144
238
 
145
239
  --font-size-xs: 12px;
@@ -149,11 +243,10 @@
149
243
  --font-size-xl: 24px;
150
244
  --font-size-2xl: 30px;
151
245
 
152
- /* Fluid helpers (optional) */
153
246
  --font-size-fluid-sm: clamp(14px, 1.2vw, 16px);
154
247
  --font-size-fluid-lg: clamp(18px, 1.6vw, 22px);
155
248
 
156
- --font-weight-regular: 400;
249
+ --font-weight-default: 400;
157
250
  --font-weight-medium: 500;
158
251
  --font-weight-semibold: 600;
159
252
  --font-weight-bold: 700;
@@ -171,7 +264,7 @@
171
264
  --breadcrumb-transform: none;
172
265
  --tab-label-transform: none;
173
266
 
174
- /* ===== Motion ===== */
267
+ /* Motion */
175
268
  --transition-fast: 150ms;
176
269
  --transition-normal: 250ms;
177
270
  --transition-slow: 400ms;
@@ -181,18 +274,19 @@
181
274
  --ease-decelerate: cubic-bezier(0, 0, 0.2, 1);
182
275
  --ease-accelerate: cubic-bezier(0.4, 0, 1, 1);
183
276
 
184
- /* ===== Elevation & Overlay ===== */
277
+ /* Elevation & Overlay */
185
278
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
186
279
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
187
- --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
280
+ --shadow-md: 0 2px 4px rgba(0, 0, 0, 0.08);
188
281
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
189
282
  --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1);
190
283
 
191
284
  --overlay-scrim: rgba(0, 0, 0, 0.5);
192
285
  --backdrop-blur: 8px;
193
286
 
194
- /* ===== Layers ===== */
287
+ /* Layers */
195
288
  --z-base: 0;
289
+ --z-backdrop: 1245;
196
290
  --z-dropdown: 1000;
197
291
  --z-sticky: 1100;
198
292
  --z-banner: 1150;
@@ -202,7 +296,7 @@
202
296
  --z-tooltip: 1400;
203
297
  --z-toast: 1500;
204
298
 
205
- /* ===== Data Visualization (optional but handy for tags/charts) ===== */
299
+ /* Data viz */
206
300
  --viz-cat-1: #2563eb;
207
301
  --viz-cat-2: #16a34a;
208
302
  --viz-cat-3: #f59e0b;
@@ -214,17 +308,17 @@
214
308
  --viz-seq-mid: #60a5fa;
215
309
  --viz-seq-end: #1d4ed8;
216
310
 
217
- /* ===== Components: Skeletons & Loaders ===== */
311
+ /* Skeletons & loaders */
218
312
  --skeleton-base: #e5e7eb;
219
313
  --skeleton-pulse: #f3f4f6;
220
314
  --spinner-size: 16px;
221
315
  --spinner-stroke: 2px;
222
316
 
223
- /* ===== Directionality / Logical Spacing ===== */
224
- --space-inline-sm: 8px; /* use with margin-inline, padding-inline, etc. */
317
+ /* Logical spacing */
318
+ --space-inline-sm: 8px;
225
319
  }
226
320
 
227
- /* ===== Accessibility: Reduced Motion (light only) ===== */
321
+ /* Reduced motion */
228
322
  @media (prefers-reduced-motion: reduce) {
229
323
  :root {
230
324
  --transition-fast: 1ms;
@@ -237,9 +331,10 @@
237
331
  }
238
332
  }
239
333
 
240
- /* ===== Optional: High-Contrast Variant (still light) ===== */
334
+ /* High-contrast variant */
241
335
  :root[data-contrast='high'] {
242
- --color-border: #4b5563;
336
+ --color-border-subtle: #4b5563;
337
+ --color-border-default: #374151;
243
338
  --color-border-strong: #111827;
244
339
  --focus-ring: 0 0 0 3px #111827;
245
340
  }
@@ -63,7 +63,7 @@
63
63
  --border-radius-round: 50%;
64
64
 
65
65
  /* Typography */
66
- --font-family: Roboto, -apple-system, "Segoe UI", Roboto, sans-serif;
66
+ --font-family: Roboto, -apple-system, 'Segoe UI', Roboto, sans-serif;
67
67
  --font-family-mono: ui-monospace, SFMono-Regular, monospace;
68
68
 
69
69
  --font-size-xs: 0.75rem;
@@ -1 +1 @@
1
-
1
+ export {};
@@ -1,8 +1,8 @@
1
1
  export type A11yProps = {
2
- "aria-label"?: string;
3
- "aria-describedby"?: string;
4
- "aria-controls"?: string;
5
- "aria-current"?: "page" | "step" | "location" | "date" | "time" | "true" | "false";
6
- "aria-hidden"?: boolean;
2
+ 'aria-label'?: string;
3
+ 'aria-describedby'?: string;
4
+ 'aria-controls'?: string;
5
+ 'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';
6
+ 'aria-hidden'?: boolean;
7
7
  title?: string;
8
8
  };
@@ -1 +1 @@
1
-
1
+ export {};
@@ -1,2 +1,2 @@
1
- export type Size = "sm" | "md" | "lg" | "xl";
2
- export type SizeVariable = "var(--component-size-sm)" | "var(--component-size-md)" | "var(--component-size-lg)" | "var(--component-size-xl)";
1
+ export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
+ export type SizeVariable = 'var(--component-size-xs)' | 'var(--component-size-sm)' | 'var(--component-size-md)' | 'var(--component-size-lg)' | 'var(--component-size-xl)';
@@ -1 +1 @@
1
-
1
+ export {};
@@ -1,38 +1,48 @@
1
- const normalize = (s) => s.normalize("NFKC").toLowerCase().trim();
1
+ const normalize = (s) => s.normalize('NFKC').toLowerCase().trim();
2
2
  const toTerms = (q) => (Array.isArray(q) ? q : q.split(/\s+/)).map(normalize).filter(Boolean);
3
- const valueToSearchable = (value) => typeof value === "string" ? value : Array.isArray(value) || typeof value === "object" ? JSON.stringify(value) : value == null ? "" : String(value);
3
+ const valueToSearchable = (value) => typeof value === 'string'
4
+ ? value
5
+ : Array.isArray(value) || typeof value === 'object'
6
+ ? JSON.stringify(value)
7
+ : value == null
8
+ ? ''
9
+ : String(value);
4
10
  const itemMatches = (item, keys, terms, mode) => {
5
- if (terms.length === 0) return true;
6
- const haystack = keys.map((k) => valueToSearchable(item[k])).join(" ").toString();
7
- const h = normalize(haystack);
8
- const hit = (t) => h.includes(t);
9
- return mode === "AND" ? terms.every(hit) : terms.some(hit);
11
+ if (terms.length === 0)
12
+ return true;
13
+ const haystack = keys
14
+ .map(k => valueToSearchable(item[k]))
15
+ .join(' ')
16
+ .toString();
17
+ const h = normalize(haystack);
18
+ const hit = (t) => h.includes(t);
19
+ return mode === 'AND' ? terms.every(hit) : terms.some(hit);
10
20
  };
11
- function nestedFiltering(items, opts) {
12
- const { keys, query, includeParents = true, childrenKey, mode = "AND" } = opts;
13
- const ck = childrenKey != null ? childrenKey : "children";
14
- const terms = toTerms(query);
15
- const searchNested = (list) => {
16
- const out = [];
17
- for (const item of list) {
18
- const children = item[ck] || [];
19
- const filteredChildren = searchNested(children);
20
- const matchedSelf = itemMatches(item, keys, terms, mode);
21
- if (matchedSelf) {
22
- const clone = { ...item, [ck]: filteredChildren };
23
- out.push(clone);
24
- } else if (filteredChildren.length) {
25
- if (includeParents) {
26
- const clone = { ...item, [ck]: filteredChildren };
27
- out.push(clone);
28
- } else {
29
- out.push(...filteredChildren);
21
+ export function nestedFiltering(items, opts) {
22
+ const { keys, query, includeParents = true, childrenKey, mode = 'AND' } = opts;
23
+ const ck = (childrenKey !== null && childrenKey !== void 0 ? childrenKey : 'children');
24
+ const terms = toTerms(query);
25
+ const searchNested = (list) => {
26
+ const out = [];
27
+ for (const item of list) {
28
+ const children = item[ck] || [];
29
+ const filteredChildren = searchNested(children);
30
+ const matchedSelf = itemMatches(item, keys, terms, mode);
31
+ if (matchedSelf) {
32
+ const clone = { ...item, [ck]: filteredChildren };
33
+ out.push(clone);
34
+ }
35
+ else if (filteredChildren.length) {
36
+ if (includeParents) {
37
+ const clone = { ...item, [ck]: filteredChildren };
38
+ out.push(clone);
39
+ }
40
+ else {
41
+ out.push(...filteredChildren);
42
+ }
43
+ }
30
44
  }
31
- }
32
- }
33
- return out;
34
- };
35
- return searchNested(items);
45
+ return out;
46
+ };
47
+ return searchNested(items);
36
48
  }
37
-
38
- export { nestedFiltering };
@@ -1,17 +1,26 @@
1
- function formatDate(date, options = {}) {
2
- const d = date instanceof Date ? date : new Date(date);
3
- if (isNaN(d.getTime())) return "";
4
- const pad = (n) => n.toString().padStart(2, "0");
5
- const day = pad(d.getDate());
6
- const month = pad(d.getMonth() + 1);
7
- const year = d.getFullYear();
8
- const base = `${day}/${month}/${year}`;
9
- if (!options.showTime) return base;
10
- const hours = pad(d.getHours());
11
- const minutes = pad(d.getMinutes());
12
- if (!options.showSeconds) return `${base} ${hours}:${minutes}`;
13
- const seconds = pad(d.getSeconds());
14
- return `${base} ${hours}:${minutes}:${seconds}`;
1
+ /**
2
+ * Formats a Date as "dd:mm:yyyy" or "dd:mm:yyyy hh:mm:ss".
3
+ * All parts are zero-padded numbers.
4
+ *
5
+ * @param date - The Date or date-parsable value to format
6
+ * @param options.showSeconds - If true, append time "hh:mm:ss"
7
+ * @returns A formatted string
8
+ */
9
+ export function formatDate(date, options = {}) {
10
+ const d = date instanceof Date ? date : new Date(date);
11
+ if (isNaN(d.getTime()))
12
+ return '';
13
+ const pad = (n) => n.toString().padStart(2, '0');
14
+ const day = pad(d.getDate());
15
+ const month = pad(d.getMonth() + 1);
16
+ const year = d.getFullYear();
17
+ const base = `${day}/${month}/${year}`;
18
+ if (!options.showTime)
19
+ return base;
20
+ const hours = pad(d.getHours());
21
+ const minutes = pad(d.getMinutes());
22
+ if (!options.showSeconds)
23
+ return `${base} ${hours}:${minutes}`;
24
+ const seconds = pad(d.getSeconds());
25
+ return `${base} ${hours}:${minutes}:${seconds}`;
15
26
  }
16
-
17
- export { formatDate };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbcdk/react-components",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Reusable React components for DBC projects",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -42,19 +42,19 @@
42
42
  "README.md"
43
43
  ],
44
44
  "scripts": {
45
- "build:js": "tsup",
46
- "build:types": "tsc -p tsconfig.build.json",
47
- "build": "npm run build:js && npm run build:types",
48
- "dev": "tsup --watch",
49
- "test": "vitest",
45
+ "clean": "rimraf dist",
46
+ "build": "npm run clean && npm run build:code && npm run postbuild",
47
+ "build:code": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
48
+ "dev": "tsc -p tsconfig.build.json --watch",
49
+ "test": "jest",
50
+ "format": "prettier . --write",
50
51
  "lint": "eslint \"src/**/*.{ts,tsx}\" --max-warnings=0",
51
52
  "lint:fix": "eslint \"src/**/*.{ts,tsx}\" --fix",
52
- "storybook": "storybook dev -p 6006",
53
+ "storybook": "storybook dev -p 6006 --no-open",
53
54
  "build:storybook": "storybook build",
54
55
  "changeset": "changeset",
55
56
  "version-packages": "changeset version",
56
- "typecheck": "tsc --noEmit",
57
- "prepublishOnly": "npm run build && npm run typecheck",
57
+ "typecheck": "tsc -p tsconfig.json --noEmit",
58
58
  "pack-it": "npm run build && npm pack",
59
59
  "postbuild": "cpy \"src/**/*.css\" dist --parents && cpy \"src/styles/styles.css\" dist && cpy \"src/styles/fonts/**/*\" dist/styles/fonts",
60
60
  "yalc:publish": "npm run build && yalc publish --push",
@@ -62,10 +62,10 @@
62
62
  "yalc:watch": "chokidar 'src/**/*' -c 'npm run yalc:push'"
63
63
  },
64
64
  "peerDependencies": {
65
- "@tanstack/react-table": "^8.20.0",
66
- "lucide-react": "^0.542.0",
67
- "react": "^18.2.0 || ^19.0.0",
68
- "react-dom": "^18.2.0 || ^19.0.0"
65
+ "@tanstack/react-table": "^8.21.3",
66
+ "lucide-react": "^0.543.0",
67
+ "react": "^19.2.0 || ^19.0.0",
68
+ "react-dom": "^19.2.0 || ^19.0.0"
69
69
  },
70
70
  "peerDependenciesMeta": {
71
71
  "@tanstack/react-table": {
@@ -74,32 +74,47 @@
74
74
  },
75
75
  "devDependencies": {
76
76
  "@changesets/cli": "^2.29.6",
77
+ "@mdx-js/react": "^3.1.1",
77
78
  "@storybook/addon-a11y": "^9.1.3",
78
- "@storybook/addon-docs": "^9.1.3",
79
+ "@storybook/addon-docs": "^9.1.17",
79
80
  "@storybook/addon-viewport": "^9.0.8",
80
81
  "@storybook/react-vite": "^9.1.3",
82
+ "@swc/core": "^1.15.11",
83
+ "@swc/jest": "^0.2.39",
81
84
  "@tanstack/react-table": "^8.20.0",
82
- "@testing-library/jest-dom": "^6.8.0",
83
- "@testing-library/react": "^16.3.0",
85
+ "@testing-library/jest-dom": "^6.9.1",
86
+ "@testing-library/react": "^16.3.2",
87
+ "@types/jest": "^30.0.0",
84
88
  "@types/react": "^18.2.48",
85
89
  "@types/react-dom": "^18.2.18",
86
- "@types/testing-library__jest-dom": "^6.0.0",
87
90
  "@typescript-eslint/eslint-plugin": "^8.41.0",
88
91
  "@typescript-eslint/parser": "^8.41.0",
92
+ "@vitejs/plugin-react": "^5.1.3",
89
93
  "cpy-cli": "^6.0.0",
90
94
  "esbuild-css-modules-plugin": "^3.1.5",
91
95
  "esbuild-plugin-css-modules": "^0.3.0",
92
96
  "eslint": "^9.34.0",
97
+ "eslint-config-prettier": "^10.1.8",
98
+ "eslint-import-resolver-typescript": "^4.4.4",
99
+ "eslint-plugin-import": "^2.32.0",
100
+ "eslint-plugin-prettier": "^5.5.5",
93
101
  "eslint-plugin-react": "^7.37.5",
94
102
  "eslint-plugin-react-hooks": "^5.2.0",
103
+ "globals": "^17.3.0",
104
+ "identity-obj-proxy": "^3.0.0",
105
+ "jest": "^30.2.0",
106
+ "jest-environment-jsdom": "^30.2.0",
95
107
  "jsdom": "^26.1.0",
96
108
  "prettier": "^3.2.4",
97
109
  "react": "18.2.0",
98
110
  "react-dom": "18.2.0",
111
+ "rimraf": "^6.1.2",
99
112
  "storybook": "^9.1.3",
113
+ "tsc-alias": "^1.8.16",
100
114
  "tsup": "^8.5.0",
101
- "typescript": "^5.9.2",
115
+ "typescript": "^5.9.3",
102
116
  "vite": "^6.3.5",
117
+ "vite-tsconfig-paths": "^6.0.5",
103
118
  "vitest": "^3.2.4"
104
119
  },
105
120
  "engines": {