@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,20 +1,6 @@
1
- .link {
2
- text-decoration: none;
3
- font-size: var(--font-size-sm);
4
- color: var(--color-link);
5
- transition:
6
- color var(--transition-fast) var(--ease-standard),
7
- text-decoration-color var(--transition-fast) var(--ease-standard);
8
- text-underline-offset: 0.15em;
9
- }
10
- .link:hover {
11
- color: var(--color-link-hover);
12
- text-decoration: underline;
13
- }
14
- .link:focus-visible {
15
- outline: none;
16
- box-shadow: var(--focus-ring);
17
- }
1
+ /* ==========================================================================
2
+ * BASE BUTTON
3
+ * ======================================================================= */
18
4
 
19
5
  .button {
20
6
  display: inline-flex;
@@ -26,24 +12,29 @@
26
12
  font-size: var(--font-size-sm);
27
13
  line-height: 1;
28
14
 
29
- border: var(--border-width-thin) solid transparent;
30
- border-radius: var(--border-radius-default);
15
+ height: var(--component-size-md);
16
+ min-block-size: calc(var(--component-size-md) + var(--density));
31
17
 
32
18
  padding-inline: var(--control-padding-x);
33
19
  padding-block: calc(var(--control-padding-y) + var(--density));
34
- min-block-size: calc(var(--component-size-md) + var(--density));
35
20
 
21
+ border-width: var(--border-width-thin, 1px);
22
+ border-style: solid;
23
+ border-color: transparent;
24
+
25
+ border-radius: var(--border-radius-default);
36
26
  cursor: pointer;
37
27
  user-select: none;
38
28
  white-space: nowrap;
29
+ }
39
30
 
31
+ .button:hover {
40
32
  transition:
41
33
  background-color var(--transition-fast) var(--ease-standard),
42
34
  color var(--transition-fast) var(--ease-standard),
43
35
  border-color var(--transition-fast) var(--ease-standard),
44
36
  box-shadow var(--transition-fast) var(--ease-standard);
45
37
  }
46
-
47
38
  .button:focus-visible {
48
39
  outline: none;
49
40
  box-shadow: var(--focus-ring);
@@ -53,104 +44,176 @@
53
44
  .button[aria-disabled='true'] {
54
45
  cursor: not-allowed;
55
46
  pointer-events: none;
56
- color: var(--color-disabled-text);
57
47
  background-color: var(--color-disabled-bg);
58
- border-color: var(--color-disabled-border);
48
+ border-color: transparent;
49
+ color: var(--color-disabled-fg);
50
+ }
51
+
52
+ /* ==========================================================================
53
+ * LINK STYLE
54
+ * ======================================================================= */
55
+
56
+ .link {
57
+ text-decoration: none;
58
+ font-size: var(--font-size-sm);
59
+ color: var(--color-link);
60
+ transition:
61
+ color var(--transition-fast) var(--ease-standard),
62
+ text-decoration-color var(--transition-fast) var(--ease-standard);
63
+ text-underline-offset: 0.15em;
64
+ }
65
+
66
+ .link:focus-visible {
67
+ outline: none;
68
+ box-shadow: var(--focus-ring);
59
69
  }
60
70
 
71
+ /* Icons */
61
72
  .button svg,
62
73
  .icon svg {
63
- inline-size: var(--icon-size);
64
- block-size: var(--icon-size);
74
+ inline-size: var(--icon-size-md);
75
+ block-size: var(--icon-size-md);
65
76
  }
77
+
66
78
  .icon {
67
79
  display: inline-flex;
68
80
  }
69
81
 
70
- .button.sm {
82
+ /* ==========================================================================
83
+ * SIZES
84
+ * ======================================================================= */
85
+
86
+ .button.xs {
87
+ height: var(--component-size-xs);
88
+ min-block-size: calc(var(--component-size-sm) + var(--density));
71
89
  padding-inline: var(--spacing-sm);
90
+ }
91
+
92
+ .button.sm {
93
+ height: var(--component-size-sm);
72
94
  min-block-size: calc(var(--component-size-sm) + var(--density));
95
+ padding-inline: var(--spacing-sm);
73
96
  }
97
+
98
+ .button.xs {
99
+ height: var(--component-size-xs);
100
+ min-block-size: calc(var(--component-size-xs) + var(--density));
101
+ padding-inline: var(--spacing-xs);
102
+ font-size: var(--font-size-xs);
103
+ }
104
+
105
+ .button.sm svg {
106
+ inline-size: var(--icon-size-sm);
107
+ block-size: var(--icon-size-sm);
108
+ }
109
+
74
110
  .button.lg {
75
- padding-inline: var(--spacing-lg);
111
+ height: var(--component-size-lg);
76
112
  min-block-size: calc(var(--component-size-lg) + var(--density));
113
+ padding-inline: var(--spacing-lg);
114
+ }
115
+
116
+ .button.fullWidth {
117
+ width: 100%;
77
118
  }
78
119
 
120
+ /* ==========================================================================
121
+ * VARIANTS (semantic token-based)
122
+ * ======================================================================= */
123
+
79
124
  .primary {
80
- background-color: var(--color-primary);
81
- color: var(--color-text-on-primary);
125
+ background-color: var(--button-bg-primary);
126
+ color: var(--button-fg-primary);
82
127
  border-color: transparent;
83
128
  }
129
+
84
130
  .primary:hover {
85
- background-color: var(--color-primary-hover);
131
+ background-color: var(--button-bg-primary-hover);
86
132
  }
87
133
 
88
134
  .secondary {
89
- background-color: var(--color-secondary);
90
- color: var(--color-text-on-secondary);
91
- border-color: transparent;
135
+ background-color: var(--button-bg-secondary);
136
+ color: var(--button-fg-secondary);
137
+ border-color: var(--button-border-secondary);
92
138
  }
139
+
93
140
  .secondary:hover {
94
- background-color: var(--color-secondary-hover);
141
+ background-color: var(--button-bg-secondary-hover);
142
+ border-color: var(--color-border-strong);
95
143
  }
96
144
 
97
145
  .default {
98
- background-color: var(--color-surface);
99
- color: var(--color-text);
100
- border-color: var(--color-border);
146
+ background-color: var(--color-bg-surface);
147
+ color: var(--color-fg-default);
148
+ border-color: var(--color-border-subtle);
101
149
  }
150
+
102
151
  .default:hover {
103
- background-color: var(--color-surface-hover);
104
- border-color: var(--color-border-strong);
152
+ background-color: var(--color-bg-hover-subtle);
153
+ border-color: var(--color-border-default);
105
154
  }
106
155
 
107
156
  .outlined {
108
157
  background-color: transparent;
109
- color: var(--color-text);
110
- border-color: var(--color-border);
158
+ color: var(--color-fg-default);
159
+ border-width: var(--border-width-thin, 1px);
160
+ border-style: solid;
161
+ border-color: var(--color-border-default);
111
162
  }
112
- .outlined:hover {
163
+
164
+ .outlined:not(.active):hover {
165
+ background-color: var(--color-bg-hover-subtle);
113
166
  border-color: var(--color-border-strong);
114
167
  }
115
168
 
116
169
  .success {
117
170
  background-color: transparent;
118
- color: var(--color-text-success);
119
- border-color: var(--color-border-success);
171
+ color: var(--color-status-success-fg);
172
+ border-color: var(--color-status-success-border);
120
173
  }
174
+
121
175
  .success .icon {
122
- color: var(--color-success);
176
+ color: var(--color-status-success);
123
177
  }
178
+
124
179
  .success:hover {
125
- border-color: var(--color-text);
180
+ border-color: var(--color-fg-default);
126
181
  }
127
182
 
128
183
  .danger {
129
184
  background-color: transparent;
130
- color: var(--color-text-error);
131
- border-color: var(--color-border-error);
185
+ color: var(--color-status-error-fg);
186
+ border-color: var(--color-status-error-border);
132
187
  }
188
+
133
189
  .danger .icon {
134
- color: var(--color-error);
190
+ color: var(--color-status-error);
135
191
  }
192
+
136
193
  .danger:hover {
137
- border-color: var(--color-text);
194
+ border-color: var(--color-fg-default);
138
195
  }
139
196
 
140
197
  .button.inline {
141
- padding: var(--spacing-xxs);
142
- min-block-size: unset;
143
198
  background-color: transparent;
144
- color: var(--color-text);
145
199
  border-color: transparent;
200
+ padding: var(--spacing-xxs);
201
+ min-block-size: unset;
202
+ block-size: unset;
203
+ height: unset;
204
+ color: var(--color-fg-default);
146
205
  }
147
206
 
148
207
  .button.inline:hover {
149
- background-color: var(--color-surface-hover);
208
+ background-color: var(--color-bg-contextual);
150
209
  }
151
210
 
152
211
  .active {
153
- background-color: var(--color-primary);
154
- color: var(--color-text-on-primary);
212
+ background-color: var(--button-bg-primary);
213
+ color: var(--button-fg-primary);
155
214
  border-color: var(--color-border-selected);
156
215
  }
216
+
217
+ .active:hover {
218
+ background-color: var(--button-bg-primary-hover);
219
+ }
@@ -1,11 +1,27 @@
1
+ import { JSXElementConstructor, ReactElement } from 'react';
2
+ import type { ReactNode, JSX } from 'react';
3
+ import { Severity } from '../../constants/severity.types';
4
+ type CardVariant = 'default' | 'subtle' | 'strong';
5
+ type CardSize = 'sm' | 'md' | 'lg';
6
+ type CardImagePlacement = 'left' | 'right' | 'top';
1
7
  interface CardProps {
2
- header: string;
3
- content: React.ReactNode | string;
4
- image?: React.ReactNode;
5
- link?: React.ComponentType<{
6
- children: React.ReactNode;
7
- }>;
8
+ title?: string;
9
+ loading?: boolean;
10
+ variant?: CardVariant;
11
+ size?: CardSize;
12
+ headerMarker?: boolean;
13
+ headerIcon?: ReactNode;
14
+ severity?: Severity;
15
+ image?: ReactNode;
16
+ imgPlacement?: CardImagePlacement;
17
+ mediaWidth?: number;
18
+ actions?: ReactNode;
19
+ headerMeta?: ReactNode;
20
+ sectionTitle?: string;
21
+ showSectionDivider?: boolean;
22
+ children?: ReactNode;
23
+ link?: ReactElement<any, string | JSXElementConstructor<any>>;
8
24
  width?: 25 | 33 | 50 | 66 | 75 | 100;
9
25
  }
10
- export declare function Card({ header, content, image, link: Link, width }: CardProps): JSX.Element;
26
+ export declare function Card({ title, loading, variant, size, headerMarker, headerIcon, severity, image, imgPlacement, mediaWidth, actions, headerMeta, sectionTitle, showSectionDivider, children, link, width, }: CardProps): JSX.Element;
11
27
  export {};
@@ -1,23 +1,22 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { Headline } from '../headline/Headline';
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import styles from './Card.module.css';
4
-
5
- function Card({ header, content, image, link: Link, width }) {
6
- const cardContent = /* @__PURE__ */ jsxs(Fragment, { children: [
7
- /* @__PURE__ */ jsx("div", { className: styles.imageContainer, children: image }),
8
- /* @__PURE__ */ jsxs("div", { className: styles.content, children: [
9
- /* @__PURE__ */ jsx(Headline, { marker: true, severity: "brand", size: 2, weight: 500, children: header }),
10
- /* @__PURE__ */ jsx("div", { children: content })
11
- ] })
12
- ] });
13
- return /* @__PURE__ */ jsx(
14
- "div",
15
- {
16
- className: styles.container,
17
- style: width ? { ["--width"]: `${width}%` } : void 0,
18
- children: Link ? /* @__PURE__ */ jsx(Link, { children: cardContent }) : cardContent
19
- }
20
- );
4
+ import { Headline } from '../headline/Headline';
5
+ import { Hyperlink } from '../hyperlink/Hyperlink';
6
+ import { SkeletonLoaderItem } from '../skeleton-loader/skeleton-loader-item/SkeletonLoaderItem';
7
+ export function Card({ title, loading, variant = 'default', size = 'md', headerMarker = true, headerIcon, severity, image, imgPlacement = 'left', mediaWidth, actions, headerMeta, sectionTitle, showSectionDivider = false, children, link, width, }) {
8
+ const outerContainerStyle = width
9
+ ? { ['--width']: `${width}%` }
10
+ : undefined;
11
+ const mediaStyle = mediaWidth
12
+ ? { ['--card-media-width']: `${mediaWidth}px` }
13
+ : undefined;
14
+ const innerPlacementClass = imgPlacement === 'top'
15
+ ? styles.innerImgTop
16
+ : imgPlacement === 'right'
17
+ ? styles.innerImgRight
18
+ : styles.innerImgLeft;
19
+ const inner = (_jsxs("div", { className: `${styles.inner} ${innerPlacementClass}`, children: [image && (_jsx("div", { className: styles.media, style: mediaStyle, children: image })), _jsxs("div", { className: styles.content, children: [(title || headerMeta) && (_jsxs("header", { className: styles.header, children: [title && (_jsx(Headline, { severity: severity, marker: headerMarker, icon: headerIcon, size: 4, weight: 500, disableMargin: true, children: title })), headerMeta && _jsx("div", { className: styles.headerMeta, children: headerMeta })] })), loading && (_jsx("div", { className: styles.loadingList, children: Array.from({ length: 4 }).map((_, index) => (_jsxs("div", { className: styles.loadingRow, children: [_jsx(SkeletonLoaderItem, {}), _jsx(SkeletonLoaderItem, { width: "100%" })] }, index))) })), !loading && (showSectionDivider || sectionTitle) && (_jsxs("div", { className: styles.section, children: [showSectionDivider && _jsx("div", { className: styles.sectionDivider }), sectionTitle && _jsx("div", { className: styles.sectionTitle, children: sectionTitle })] })), !loading && children && _jsx("div", { className: styles.body, children: children }), !loading && actions && _jsx("div", { className: styles.actions, children: actions })] })] }));
20
+ const cardWithLink = link ? _jsx(Hyperlink, { component: link }) : inner;
21
+ return (_jsx("div", { className: `${styles.outerContainer} ${styles[size]}`, style: outerContainerStyle, children: _jsx("div", { className: [styles.container, styles[variant]].filter(Boolean).join(' '), children: cardWithLink }) }));
21
22
  }
22
-
23
- export { Card };
@@ -1,15 +1,18 @@
1
- /* Card container */
1
+ /* OUTER WRAPPER (optional width control) */
2
+ .outerContainer {
3
+ inline-size: var(--width, 100%);
4
+ }
5
+
6
+ /* CARD CONTAINER */
2
7
  .container {
3
8
  inline-size: 100%;
4
- color: var(--color-text);
5
- background: var(--color-surface);
6
- border: var(--border-width-thin) solid var(--color-border);
7
- border-radius: var(--border-radius-lg);
8
-
9
- /* elevation */
10
- box-shadow: var(--shadow-sm);
11
- padding: var(--spacing-md);
12
-
9
+ position: relative;
10
+ color: var(--card-fg-default, var(--color-fg-default));
11
+ background-color: var(--card-bg-default, var(--color-bg-surface));
12
+ border-radius: var(--border-radius-md);
13
+ border: var(--border-width-thin) solid var(--color-border-subtle);
14
+ box-shadow: var(--shadow-xs);
15
+ padding-block: 0;
13
16
  transition:
14
17
  color var(--transition-fast) var(--ease-standard),
15
18
  box-shadow var(--transition-fast) var(--ease-standard),
@@ -17,53 +20,154 @@
17
20
  }
18
21
 
19
22
  .container:hover {
20
- color: var(--color-highlight);
21
- cursor: pointer;
22
- box-shadow: var(--shadow-lg);
23
- transform: translateY(-2px);
23
+ box-shadow: var(--shadow-sm);
24
+ }
25
+
26
+ /* BACKGROUND VARIANTS */
27
+ .container.default {
28
+ background-color: var(--card-bg-default, var(--color-bg-surface));
29
+ }
30
+
31
+ .container.subtle {
32
+ background-color: var(--card-bg-subtle, var(--color-bg-surface-subtle));
33
+ }
34
+
35
+ .container.strong {
36
+ background-color: var(--card-bg-strong, var(--color-bg-surface-strong));
37
+ color: var(--card-fg-on-strong, var(--color-fg-on-strong));
38
+ }
39
+
40
+ /* SIZE VARIANTS */
41
+ .sm .inner {
42
+ padding: var(--spacing-md);
43
+ gap: var(--spacing-md);
44
+ }
45
+
46
+ .md .inner {
47
+ padding: var(--spacing-lg);
48
+ gap: var(--spacing-lg);
24
49
  }
25
50
 
26
- /* Responsive width (uses your width var if provided) */
27
- @media screen and (min-width: 768px) {
28
- .container {
29
- inline-size: calc(var(--width, 100%) - var(--spacing-md));
30
- }
51
+ .lg .inner {
52
+ padding: var(--spacing-xl);
53
+ gap: var(--spacing-xl);
31
54
  }
32
55
 
33
- /* Media note: if you use custom media, define:
34
- @custom-media --dbc-bp-md (min-width: 768px);
35
- then swap the query above to: @media (--dbc-bp-md) { ... } */
56
+ /* INNER LAYOUT */
57
+ .inner {
58
+ margin-inline: auto;
59
+ display: flex;
60
+ align-items: flex-start;
61
+ }
62
+
63
+ /* Media placement */
64
+ .innerImgTop {
65
+ flex-direction: column;
66
+ }
36
67
 
37
- /* Image wrapper */
38
- .imageContainer {
39
- overflow: hidden;
40
- border-start-start-radius: var(--border-radius-lg);
41
- border-start-end-radius: var(--border-radius-lg);
68
+ .innerImgLeft {
69
+ flex-direction: row;
42
70
  }
43
71
 
44
- /* Media */
45
- .container img {
72
+ .innerImgRight {
73
+ flex-direction: row-reverse;
74
+ }
75
+
76
+ /* MEDIA */
77
+ .media {
78
+ flex: 0 0 auto;
79
+ display: flex;
80
+ align-items: flex-start;
81
+ justify-content: center;
82
+ }
83
+
84
+ .innerImgLeft .media,
85
+ .innerImgRight .media {
86
+ inline-size: var(--card-media-width, 56px);
87
+ max-inline-size: 25%;
88
+ }
89
+
90
+ .innerImgTop .media {
91
+ inline-size: 100%;
92
+ max-inline-size: 100%;
93
+ }
94
+
95
+ .media img,
96
+ .media picture,
97
+ .media video,
98
+ .media svg {
99
+ display: block;
46
100
  inline-size: 100%;
47
101
  block-size: auto;
48
- border-block-end: var(--border-width-thin) solid var(--color-border);
49
- transform: scale(1);
50
102
  }
51
103
 
52
- /* Headings & text */
53
- .container h3 {
54
- margin: var(--spacing-sm) 0;
55
- color: inherit;
104
+ /* CONTENT */
105
+ .content {
106
+ flex: 1 1 auto; /* important: allow content column to grow */
107
+ min-inline-size: 0; /* prevents overflow in flex layouts */
108
+ display: flex;
109
+ flex-direction: column;
110
+ gap: var(--spacing-md);
111
+ }
112
+
113
+ /* HEADER */
114
+ .header {
115
+ display: flex;
116
+ align-items: flex-start;
117
+ justify-content: space-between;
118
+ gap: var(--spacing-sm);
119
+ }
120
+
121
+ .value {
122
+ font-weight: 600;
123
+ white-space: nowrap;
124
+ }
125
+
126
+ .headerMeta {
127
+ display: flex;
128
+ align-items: center;
129
+ gap: var(--spacing-xs);
130
+ }
131
+
132
+ /* LOADING */
133
+ .loadingList {
134
+ display: grid;
135
+ gap: var(--spacing-sm);
136
+ }
137
+
138
+ .loadingRow {
139
+ display: grid;
140
+ grid-template-columns: auto 1fr;
141
+ gap: var(--spacing-sm);
142
+ align-items: center;
143
+ }
144
+
145
+ /* SECTION */
146
+ .section {
147
+ display: flex;
148
+ flex-direction: column;
149
+ gap: var(--spacing-md);
150
+ }
151
+
152
+ .sectionDivider {
153
+ inline-size: 100%;
154
+ block-size: var(--border-width-thin);
155
+ background: var(--color-border-subtle);
156
+ }
157
+
158
+ .sectionTitle {
159
+ font-weight: 600;
56
160
  }
57
161
 
58
- .container p {
59
- margin: var(--spacing-sm) 0;
60
- line-height: var(--line-height-tight);
162
+ /* BODY */
163
+ .body {
164
+ /* leave this as a neutral container; consumers render their own layout */
61
165
  }
62
166
 
63
- /* Optional: image hover zoom (tokenized) */
64
- /*
65
- .container:hover img {
66
- transition: transform var(--transition-normal) var(--ease-standard);
67
- transform: scale(1.02);
167
+ /* ACTIONS (bottom-right) */
168
+ .actions {
169
+ margin-top: auto; /* pushes actions to bottom of the content column */
170
+ display: flex;
171
+ justify-content: flex-end; /* right-align buttons */
172
+ gap: var(--spacing-sm);
68
173
  }
69
- */
@@ -1,8 +1,11 @@
1
+ import type { JSX, ReactNode } from 'react';
2
+ import { Severity } from '../../constants/severity.types';
1
3
  interface CardContainerProps {
2
4
  headline?: string;
3
- subHeadline?: string;
4
- children?: React.ReactNode[];
5
+ children?: ReactNode[];
5
6
  expand?: boolean;
7
+ severity?: Severity;
8
+ displayHeaderMarker?: boolean;
6
9
  }
7
- export declare function CardContainer({ children, headline, subHeadline, expand, }: CardContainerProps): JSX.Element;
10
+ export declare function CardContainer({ children, headline, expand, severity, displayHeaderMarker, }: CardContainerProps): JSX.Element;
8
11
  export {};
@@ -1,17 +1,6 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Headline } from '../headline/Headline';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Headline } from '../../components/headline/Headline';
3
3
  import styles from './CardContainer.module.css';
4
-
5
- function CardContainer({
6
- children,
7
- headline,
8
- subHeadline,
9
- expand
10
- }) {
11
- return /* @__PURE__ */ jsxs("div", { children: [
12
- /* @__PURE__ */ jsx(Headline, { marker: true, severity: "brand", subHeadline, children: headline }),
13
- /* @__PURE__ */ jsx("div", { className: styles.container, style: { ["--expand"]: expand ? "1" : "0" }, children })
14
- ] });
4
+ export function CardContainer({ children, headline, expand, severity, displayHeaderMarker, }) {
5
+ return (_jsxs("div", { className: styles.wrapper, children: [headline && (_jsx(Headline, { marker: displayHeaderMarker, severity: severity, children: headline })), _jsx("div", { className: styles.container, style: { ['--expand']: expand ? '1' : '0' }, children: children })] }));
15
6
  }
16
-
17
- export { CardContainer };
@@ -1,10 +1,50 @@
1
+ .wrapper {
2
+ display: block;
3
+ }
4
+
1
5
  .container {
2
6
  display: flex;
3
7
  flex-wrap: wrap;
4
8
  gap: var(--spacing-md);
9
+ border-radius: var(--border-radius-sm);
5
10
  --width: 100%;
6
11
  }
7
12
 
13
+ .container.default {
14
+ background-color: var(--card-bg-default, var(--color-bg-surface, var(--color-bg-surface-subtle)));
15
+ padding: var(--spacing-lg);
16
+ }
17
+
18
+ .container.subtle {
19
+ background-color: var(--card-bg-subtle, var(--color-bg-surface-subtle, var(--color-bg-surface)));
20
+ padding: var(--spacing-lg);
21
+ }
22
+
23
+ .container.strong {
24
+ background-color: var(
25
+ --card-bg-strong,
26
+ var(--color-bg-surface-strong, var(--color-surface-strong))
27
+ );
28
+ color: var(--card-fg-on-strong, var(--color-fg-on-strong, #ffffff));
29
+ padding: var(--spacing-lg);
30
+ }
31
+
32
+ .container.accent1 {
33
+ background-color: var(
34
+ --card-bg-accent-1,
35
+ var(--color-bg-accent-1, var(--color-bg-surface-subtle))
36
+ );
37
+ padding: var(--spacing-lg);
38
+ }
39
+
40
+ .container.accent2 {
41
+ background-color: var(
42
+ --card-bg-accent-2,
43
+ var(--color-bg-accent-2, var(--color-bg-surface-subtle))
44
+ );
45
+ padding: var(--spacing-lg);
46
+ }
47
+
8
48
  @media screen and (min-width: 768px) {
9
49
  .container {
10
50
  --width: 33.333%;
@@ -1,13 +1,15 @@
1
- import { Severity } from '@/constants/severity.types';
1
+ import type { ReactNode, JSX } from 'react';
2
+ import { Severity } from '../../constants/severity.types';
2
3
  interface ChipProps {
3
- children: React.ReactNode;
4
- severity?: Severity;
4
+ children: ReactNode;
5
+ severity?: Severity | null;
5
6
  disableIcon?: boolean;
6
- customIcon?: React.ReactNode;
7
+ customIcon?: ReactNode;
7
8
  loading?: boolean;
8
9
  fullWidth?: boolean;
9
10
  onClose?: () => void;
10
11
  size?: 'sm' | 'md' | 'lg';
12
+ type?: 'default' | 'rounded' | 'outlined';
11
13
  }
12
- export declare function Chip({ children, severity, loading, disableIcon, fullWidth, size, customIcon, onClose, }: ChipProps): JSX.Element;
14
+ export declare function Chip({ children, severity, loading, disableIcon, fullWidth, size, customIcon, type, onClose, }: ChipProps): JSX.Element;
13
15
  export {};