@dbcdk/react-components 0.0.5 → 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 (272) 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 +2 -1
  5. package/dist/components/__stories__/story-components/Colors.js +87 -142
  6. package/dist/components/__stories__/story-components/Spacing.d.ts +1 -0
  7. package/dist/components/__stories__/story-components/Spacing.js +58 -166
  8. package/dist/components/app-header/AppHeader.d.ts +4 -3
  9. package/dist/components/app-header/AppHeader.js +3 -6
  10. package/dist/components/attribute-chip/AttributeChip.d.ts +1 -0
  11. package/dist/components/attribute-chip/AttributeChip.js +3 -14
  12. package/dist/components/avatar/Avatar.d.ts +2 -2
  13. package/dist/components/avatar/Avatar.js +37 -71
  14. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +4 -4
  15. package/dist/components/breadcrumbs/Breadcrumbs.js +4 -13
  16. package/dist/components/button/Button.d.ts +3 -2
  17. package/dist/components/button/Button.js +54 -56
  18. package/dist/components/button/Button.module.css +1 -1
  19. package/dist/components/card/Card.d.ts +8 -7
  20. package/dist/components/card/Card.js +19 -60
  21. package/dist/components/card-container/CardContainer.d.ts +3 -3
  22. package/dist/components/card-container/CardContainer.js +4 -16
  23. package/dist/components/chip/Chip.d.ts +6 -5
  24. package/dist/components/chip/Chip.js +14 -38
  25. package/dist/components/chip/Chip.module.css +9 -1
  26. package/dist/components/circle/Circle.d.ts +3 -2
  27. package/dist/components/circle/Circle.js +3 -10
  28. package/dist/components/clear-button/ClearButton.d.ts +2 -1
  29. package/dist/components/clear-button/ClearButton.js +6 -17
  30. package/dist/components/code-block/CodeBlock.d.ts +1 -0
  31. package/dist/components/code-block/CodeBlock.js +4 -10
  32. package/dist/components/copy-button/CopyButton.d.ts +4 -3
  33. package/dist/components/copy-button/CopyButton.js +19 -26
  34. package/dist/components/datetime-picker/DateTimePicker.d.ts +8 -5
  35. package/dist/components/datetime-picker/DateTimePicker.js +364 -459
  36. package/dist/components/filter-field/FilterField.d.ts +5 -2
  37. package/dist/components/filter-field/FilterField.js +130 -173
  38. package/dist/components/filter-field/FilterField.module.css +21 -5
  39. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.d.ts +36 -0
  40. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.js +53 -0
  41. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.module.css +60 -0
  42. package/dist/components/forms/checkbox/Checkbox.d.ts +31 -0
  43. package/dist/components/forms/checkbox/Checkbox.js +27 -0
  44. package/dist/components/{checkbox → forms/checkbox}/Checkbox.module.css +0 -1
  45. package/dist/components/forms/checkbox-group/CheckboxGroup.d.ts +47 -0
  46. package/dist/components/forms/checkbox-group/CheckboxGroup.js +75 -0
  47. package/dist/components/forms/checkbox-group/CheckboxGroup.module.css +115 -0
  48. package/dist/components/{input → forms/input}/Input.d.ts +9 -5
  49. package/dist/components/forms/input/Input.js +70 -0
  50. package/dist/components/{input → forms/input}/Input.module.css +1 -0
  51. package/dist/components/forms/input-container/InputContainer.d.ts +15 -0
  52. package/dist/components/forms/input-container/InputContainer.js +15 -0
  53. package/dist/components/forms/input-container/InputContainer.module.css +34 -0
  54. package/dist/components/forms/multi-select/MultiSelect.d.ts +20 -0
  55. package/dist/components/forms/multi-select/MultiSelect.js +19 -0
  56. package/dist/components/forms/select/Select.d.ts +21 -0
  57. package/dist/components/forms/select/Select.js +94 -0
  58. package/dist/components/forms/text-area/Textarea.d.ts +17 -0
  59. package/dist/components/forms/text-area/Textarea.js +33 -0
  60. package/dist/components/forms/text-area/Textarea.module.css +26 -0
  61. package/dist/components/headline/Headline.js +18 -43
  62. package/dist/components/{link/Link.d.ts → hyperlink/Hyperlink.d.ts} +2 -2
  63. package/dist/components/hyperlink/Hyperlink.js +11 -0
  64. package/dist/components/{link/Link.module.css → hyperlink/Hyperlink.module.css} +5 -14
  65. package/dist/components/icon/Icon.d.ts +4 -3
  66. package/dist/components/icon/Icon.js +11 -17
  67. package/dist/components/menu/Menu.js +25 -67
  68. package/dist/components/meta-bar/MetaBar.d.ts +4 -4
  69. package/dist/components/meta-bar/MetaBar.js +7 -20
  70. package/dist/components/nav-bar/NavBar.d.ts +5 -5
  71. package/dist/components/nav-bar/NavBar.js +15 -45
  72. package/dist/components/{modal → overlay/modal}/Modal.d.ts +4 -2
  73. package/dist/components/overlay/modal/Modal.js +92 -0
  74. package/dist/components/{modal → overlay/modal}/provider/ModalProvider.d.ts +0 -1
  75. package/dist/components/overlay/modal/provider/ModalProvider.js +70 -0
  76. package/dist/components/overlay/side-panel/SidePanel.d.ts +16 -0
  77. package/dist/components/overlay/side-panel/SidePanel.js +10 -0
  78. package/dist/components/overlay/side-panel/SidePanel.module.css +56 -0
  79. package/dist/components/overlay/side-panel/useSidePanel.d.ts +5 -0
  80. package/dist/components/overlay/side-panel/useSidePanel.js +11 -0
  81. package/dist/components/overlay/tooltip/Tooltip.d.ts +13 -0
  82. package/dist/components/overlay/tooltip/Tooltip.js +17 -0
  83. package/dist/components/overlay/tooltip/Tooltip.module.css +106 -0
  84. package/dist/components/overlay/tooltip/TooltipProvider.d.ts +20 -0
  85. package/dist/components/overlay/tooltip/TooltipProvider.js +244 -0
  86. package/dist/components/overlay/tooltip/useTooltipTrigger.d.ts +24 -0
  87. package/dist/components/overlay/tooltip/useTooltipTrigger.js +108 -0
  88. package/dist/components/page/Page.d.ts +7 -6
  89. package/dist/components/page/Page.js +4 -21
  90. package/dist/components/page-layout/PageLayout.d.ts +11 -12
  91. package/dist/components/page-layout/PageLayout.js +35 -71
  92. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.js +4 -22
  93. package/dist/components/pagination/Pagination.d.ts +2 -1
  94. package/dist/components/pagination/Pagination.js +38 -121
  95. package/dist/components/panel/Panel.d.ts +4 -3
  96. package/dist/components/panel/Panel.js +5 -10
  97. package/dist/components/popover/Popover.d.ts +1 -0
  98. package/dist/components/popover/Popover.js +116 -141
  99. package/dist/components/search-box/SearchBox.d.ts +2 -2
  100. package/dist/components/search-box/SearchBox.js +112 -162
  101. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts +1 -1
  102. package/dist/components/segmented-progress-bar/SegmentedProgressBar.js +47 -94
  103. package/dist/components/sidebar/Sidebar.d.ts +1 -0
  104. package/dist/components/sidebar/Sidebar.js +5 -7
  105. package/dist/components/sidebar/components/SidebarItem.js +6 -14
  106. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.d.ts +1 -1
  107. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.js +48 -88
  108. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.d.ts +3 -2
  109. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.js +11 -41
  110. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.d.ts +1 -0
  111. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.js +4 -25
  112. package/dist/components/sidebar/components/sidebar-items/SidebarItems.js +9 -23
  113. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.js +19 -40
  114. package/dist/components/sidebar/providers/SidebarProvider.d.ts +2 -1
  115. package/dist/components/sidebar/providers/SidebarProvider.js +182 -165
  116. package/dist/components/skeleton-loader/SkeletonLoader.js +68 -266
  117. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.js +11 -34
  118. package/dist/components/split-button/SplitButton.d.ts +7 -5
  119. package/dist/components/split-button/SplitButton.js +4 -27
  120. package/dist/components/split-pane/SplitPane.js +69 -105
  121. package/dist/components/split-pane/provider/SplitPaneContext.js +77 -71
  122. package/dist/components/table/Table.d.ts +9 -7
  123. package/dist/components/table/Table.js +115 -238
  124. package/dist/components/table/Table.module.css +5 -1
  125. package/dist/components/table/components/column-resizer/ColumnResizer.js +4 -15
  126. package/dist/components/table/components/empty-state/EmptyState.d.ts +6 -5
  127. package/dist/components/table/components/empty-state/EmptyState.js +22 -41
  128. package/dist/components/table/components/table-settings/TableSettings.d.ts +2 -1
  129. package/dist/components/table/components/table-settings/TableSettings.js +9 -27
  130. package/dist/components/table/tanstack.d.ts +1 -1
  131. package/dist/components/table/tanstack.js +154 -160
  132. package/dist/components/tabs/Tabs.d.ts +1 -0
  133. package/dist/components/tabs/Tabs.js +32 -81
  134. package/dist/components/toast/Toast.d.ts +1 -1
  135. package/dist/components/toast/Toast.js +4 -37
  136. package/dist/components/toast/Toast.module.css +1 -0
  137. package/dist/components/toast/provider/ToastProvider.d.ts +1 -1
  138. package/dist/components/toast/provider/ToastProvider.js +60 -87
  139. package/dist/components/user-display/UserDisplay.d.ts +2 -1
  140. package/dist/components/user-display/UserDisplay.js +4 -20
  141. package/dist/constants/severity.d.ts +1 -1
  142. package/dist/constants/severity.js +14 -16
  143. package/dist/constants/severity.types.d.ts +1 -1
  144. package/dist/constants/severity.types.js +1 -1
  145. package/dist/constants/sizes.js +6 -8
  146. package/dist/hooks/usePagination.d.ts +1 -1
  147. package/dist/hooks/usePagination.js +75 -82
  148. package/dist/hooks/useSorting.js +112 -110
  149. package/dist/hooks/useTableData.d.ts +1 -1
  150. package/dist/hooks/useTableData.js +42 -47
  151. package/dist/hooks/useTableSelection.js +121 -121
  152. package/dist/hooks/useTableSettings.js +23 -25
  153. package/dist/hooks/useTheme.d.ts +3 -7
  154. package/dist/hooks/useTheme.js +52 -47
  155. package/dist/hooks/useTimeDuration.d.ts +2 -2
  156. package/dist/hooks/useTimeDuration.js +33 -34
  157. package/dist/hooks/useViewportFill.d.ts +3 -2
  158. package/dist/hooks/useViewportFill.js +55 -48
  159. package/dist/index.d.ts +17 -8
  160. package/dist/index.js +18 -8
  161. package/dist/src/styles/styles.css +3 -3
  162. package/dist/styles/css-helper-classes/flex.css +4 -0
  163. package/dist/styles/styles.css +3 -3
  164. package/dist/styles/themes/dbc/dark.css +1 -1
  165. package/dist/styles/themes/dbc/light.css +2 -1
  166. package/dist/styles/themes/forfatterweb/light.css +1 -1
  167. package/dist/styles/themes/types.js +1 -1
  168. package/dist/types/a11y-props.types.d.ts +5 -5
  169. package/dist/types/a11y-props.types.js +1 -1
  170. package/dist/types/sizes.types.js +1 -1
  171. package/dist/utils/arrays/nested-filtering.js +43 -33
  172. package/dist/utils/date/formatDate.js +25 -16
  173. package/package.json +18 -9
  174. package/dist/assets/logo.cjs +0 -87
  175. package/dist/components/__stories__/story-components/Colors.cjs +0 -159
  176. package/dist/components/__stories__/story-components/Spacing.cjs +0 -190
  177. package/dist/components/app-header/AppHeader.cjs +0 -14
  178. package/dist/components/attribute-chip/AttributeChip.cjs +0 -22
  179. package/dist/components/avatar/Avatar.cjs +0 -101
  180. package/dist/components/breadcrumbs/Breadcrumbs.cjs +0 -22
  181. package/dist/components/button/Button.cjs +0 -87
  182. package/dist/components/card/Card.cjs +0 -69
  183. package/dist/components/card-container/CardContainer.cjs +0 -24
  184. package/dist/components/checkbox/Checkbox.cjs +0 -42
  185. package/dist/components/checkbox/Checkbox.d.ts +0 -12
  186. package/dist/components/checkbox/Checkbox.js +0 -36
  187. package/dist/components/chip/Chip.cjs +0 -50
  188. package/dist/components/circle/Circle.cjs +0 -18
  189. package/dist/components/clear-button/ClearButton.cjs +0 -26
  190. package/dist/components/code-block/CodeBlock.cjs +0 -18
  191. package/dist/components/copy-button/CopyButton.cjs +0 -35
  192. package/dist/components/datetime-picker/DateTimePicker.cjs +0 -504
  193. package/dist/components/filter-field/FilterField.cjs +0 -189
  194. package/dist/components/headline/Headline.cjs +0 -53
  195. package/dist/components/icon/Icon.cjs +0 -27
  196. package/dist/components/input/Input.cjs +0 -89
  197. package/dist/components/input/Input.js +0 -83
  198. package/dist/components/link/Link.cjs +0 -46
  199. package/dist/components/link/Link.js +0 -21
  200. package/dist/components/menu/Menu.cjs +0 -96
  201. package/dist/components/meta-bar/MetaBar.cjs +0 -29
  202. package/dist/components/modal/Modal.cjs +0 -134
  203. package/dist/components/modal/Modal.js +0 -128
  204. package/dist/components/modal/provider/ModalProvider.cjs +0 -80
  205. package/dist/components/modal/provider/ModalProvider.js +0 -77
  206. package/dist/components/multi-select/MultiSelect.cjs +0 -59
  207. package/dist/components/multi-select/MultiSelect.d.ts +0 -18
  208. package/dist/components/multi-select/MultiSelect.js +0 -57
  209. package/dist/components/nav-bar/NavBar.cjs +0 -55
  210. package/dist/components/page/Page.cjs +0 -30
  211. package/dist/components/page-layout/PageLayout.cjs +0 -84
  212. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.cjs +0 -32
  213. package/dist/components/pagination/Pagination.cjs +0 -133
  214. package/dist/components/panel/Panel.cjs +0 -18
  215. package/dist/components/popover/Popover.cjs +0 -149
  216. package/dist/components/search-box/SearchBox.cjs +0 -175
  217. package/dist/components/segmented-progress-bar/SegmentedProgressBar.cjs +0 -103
  218. package/dist/components/select/Select.cjs +0 -121
  219. package/dist/components/select/Select.d.ts +0 -12
  220. package/dist/components/select/Select.js +0 -119
  221. package/dist/components/sidebar/Sidebar.cjs +0 -11
  222. package/dist/components/sidebar/components/SidebarItem.cjs +0 -18
  223. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.cjs +0 -100
  224. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.cjs +0 -50
  225. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.cjs +0 -34
  226. package/dist/components/sidebar/components/sidebar-items/SidebarItems.cjs +0 -29
  227. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.cjs +0 -52
  228. package/dist/components/sidebar/providers/SidebarProvider.cjs +0 -179
  229. package/dist/components/skeleton-loader/SkeletonLoader.cjs +0 -270
  230. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.cjs +0 -42
  231. package/dist/components/split-button/SplitButton.cjs +0 -37
  232. package/dist/components/split-pane/SplitPane.cjs +0 -123
  233. package/dist/components/split-pane/provider/SplitPaneContext.cjs +0 -87
  234. package/dist/components/table/Table.cjs +0 -249
  235. package/dist/components/table/components/column-resizer/ColumnResizer.cjs +0 -22
  236. package/dist/components/table/components/empty-state/EmptyState.cjs +0 -52
  237. package/dist/components/table/components/table-settings/TableSettings.cjs +0 -32
  238. package/dist/components/table/tanstack.cjs +0 -193
  239. package/dist/components/tabs/Tabs.cjs +0 -90
  240. package/dist/components/text-area/Textarea.cjs +0 -62
  241. package/dist/components/text-area/Textarea.d.ts +0 -14
  242. package/dist/components/text-area/Textarea.js +0 -56
  243. package/dist/components/text-area/Textarea.module.css +0 -3
  244. package/dist/components/toast/Toast.cjs +0 -47
  245. package/dist/components/toast/provider/ToastProvider.cjs +0 -98
  246. package/dist/components/tooltip/Tooltip.cjs +0 -183
  247. package/dist/components/tooltip/Tooltip.d.ts +0 -11
  248. package/dist/components/tooltip/Tooltip.js +0 -177
  249. package/dist/components/tooltip/Tooltip.module.css +0 -66
  250. package/dist/components/user-display/UserDisplay.cjs +0 -28
  251. package/dist/constants/severity.cjs +0 -21
  252. package/dist/constants/severity.types.cjs +0 -2
  253. package/dist/constants/sizes.cjs +0 -11
  254. package/dist/hooks/usePagination.cjs +0 -88
  255. package/dist/hooks/useSorting.cjs +0 -118
  256. package/dist/hooks/useTableData.cjs +0 -52
  257. package/dist/hooks/useTableSelection.cjs +0 -130
  258. package/dist/hooks/useTableSettings.cjs +0 -28
  259. package/dist/hooks/useTheme.cjs +0 -58
  260. package/dist/hooks/useTimeDuration.cjs +0 -39
  261. package/dist/hooks/useViewportFill.cjs +0 -52
  262. package/dist/index.cjs +0 -383
  263. package/dist/styles/themes/types.cjs +0 -2
  264. package/dist/types/a11y-props.types.cjs +0 -2
  265. package/dist/types/assets.d.cjs +0 -2
  266. package/dist/types/assets.d.js +0 -1
  267. package/dist/types/css.d.cjs +0 -2
  268. package/dist/types/css.d.js +0 -1
  269. package/dist/types/sizes.types.cjs +0 -2
  270. package/dist/utils/arrays/nested-filtering.cjs +0 -40
  271. package/dist/utils/date/formatDate.cjs +0 -19
  272. /package/dist/components/{modal → overlay/modal}/Modal.module.css +0 -0
@@ -1,121 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var lucideReact = require('lucide-react');
5
- var Menu = require('../menu/Menu');
6
- var Popover = require('../popover/Popover');
7
- var Button = require('../button/Button');
8
- var ClearButton = require('../clear-button/ClearButton');
9
- var react = require('react');
10
-
11
- function Select({
12
- options,
13
- selectedValue,
14
- onChange,
15
- placeholder = "V\xE6lg",
16
- size,
17
- variant = "outlined",
18
- onClear,
19
- fullWidth = false
20
- }) {
21
- const popoverRef = react.useRef(null);
22
- const optionRefs = react.useRef([]);
23
- const selectedIndex = options.findIndex((o) => o.value === selectedValue);
24
- const [activeIndex, setActiveIndex] = react.useState(selectedIndex >= 0 ? selectedIndex : 0);
25
- react.useEffect(() => {
26
- var _a;
27
- (_a = optionRefs.current[activeIndex]) == null ? void 0 : _a.focus();
28
- }, [activeIndex]);
29
- const handleKeyDown = (e) => {
30
- var _a, _b;
31
- switch (e.key) {
32
- case "ArrowDown": {
33
- e.preventDefault();
34
- setActiveIndex((i) => Math.min(i + 1, options.length - 1));
35
- break;
36
- }
37
- case "ArrowUp": {
38
- e.preventDefault();
39
- setActiveIndex((i) => Math.max(i - 1, 0));
40
- break;
41
- }
42
- case "Enter":
43
- case " ": {
44
- e.preventDefault();
45
- const opt = options[activeIndex];
46
- if (opt) {
47
- onChange(opt.value);
48
- (_a = popoverRef.current) == null ? void 0 : _a.close();
49
- }
50
- break;
51
- }
52
- case "Escape": {
53
- e.preventDefault();
54
- (_b = popoverRef.current) == null ? void 0 : _b.close();
55
- break;
56
- }
57
- }
58
- };
59
- const selected = options.find((o) => o.value === selectedValue);
60
- return /* @__PURE__ */ jsxRuntime.jsx(
61
- Popover.Popover,
62
- {
63
- ref: popoverRef,
64
- trigger: (onClick, icon) => /* @__PURE__ */ jsxRuntime.jsx(
65
- Button.Button,
66
- {
67
- onKeyDown: handleKeyDown,
68
- fullWidth,
69
- variant,
70
- onClick: (e) => {
71
- setActiveIndex(selectedIndex >= 0 ? selectedIndex : 0);
72
- onClick(e);
73
- },
74
- size,
75
- type: "button",
76
- children: /* @__PURE__ */ jsxRuntime.jsxs(
77
- "span",
78
- {
79
- className: "dbc-flex dbc-justify-between dbc-items-center dbc-gap-xxs",
80
- style: { width: "100%" },
81
- children: [
82
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: selected ? selected.label : placeholder }),
83
- onClear && selected && /* @__PURE__ */ jsxRuntime.jsx(ClearButton.ClearButton, { onClick: onClear }),
84
- icon
85
- ]
86
- }
87
- )
88
- }
89
- ),
90
- children: /* @__PURE__ */ jsxRuntime.jsx(Menu.Menu, { onKeyDown: handleKeyDown, children: options.map((opt, index) => {
91
- const isSelected = opt.value === selectedValue;
92
- const isActive = index === activeIndex;
93
- return /* @__PURE__ */ jsxRuntime.jsx(Menu.Menu.Item, { active: isActive, "aria-selected": isSelected, children: /* @__PURE__ */ jsxRuntime.jsxs(
94
- "button",
95
- {
96
- ref: (el) => optionRefs.current[index] = el,
97
- type: "button",
98
- tabIndex: isActive ? 0 : -1,
99
- onClick: () => {
100
- var _a;
101
- onChange(opt.value);
102
- (_a = popoverRef.current) == null ? void 0 : _a.close();
103
- },
104
- onFocus: () => setActiveIndex(index),
105
- style: {
106
- display: "flex",
107
- alignItems: "center",
108
- width: "100%"
109
- },
110
- children: [
111
- /* @__PURE__ */ jsxRuntime.jsx("span", { style: { width: 16, display: "inline-flex", justifyContent: "center" }, children: isSelected ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, {}) : null }),
112
- opt.label
113
- ]
114
- }
115
- ) }, opt.value);
116
- }) })
117
- }
118
- );
119
- }
120
-
121
- exports.Select = Select;
@@ -1,12 +0,0 @@
1
- import { ButtonVariant } from '../button/Button';
2
- import { MultiselectOption } from '../filter-field/FilterField';
3
- export declare function Select({ options, selectedValue, onChange, placeholder, size, variant, onClear, fullWidth, }: {
4
- options: MultiselectOption[];
5
- selectedValue: string | null;
6
- onChange: (value: string) => void;
7
- placeholder?: string;
8
- size?: 'sm' | 'md' | 'lg';
9
- variant?: ButtonVariant;
10
- onClear?: () => void;
11
- fullWidth?: boolean;
12
- }): React.ReactNode;
@@ -1,119 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { Check } from 'lucide-react';
3
- import { Menu } from '../menu/Menu';
4
- import { Popover } from '../popover/Popover';
5
- import { Button } from '../button/Button';
6
- import { ClearButton } from '../clear-button/ClearButton';
7
- import { useRef, useState, useEffect } from 'react';
8
-
9
- function Select({
10
- options,
11
- selectedValue,
12
- onChange,
13
- placeholder = "V\xE6lg",
14
- size,
15
- variant = "outlined",
16
- onClear,
17
- fullWidth = false
18
- }) {
19
- const popoverRef = useRef(null);
20
- const optionRefs = useRef([]);
21
- const selectedIndex = options.findIndex((o) => o.value === selectedValue);
22
- const [activeIndex, setActiveIndex] = useState(selectedIndex >= 0 ? selectedIndex : 0);
23
- useEffect(() => {
24
- var _a;
25
- (_a = optionRefs.current[activeIndex]) == null ? void 0 : _a.focus();
26
- }, [activeIndex]);
27
- const handleKeyDown = (e) => {
28
- var _a, _b;
29
- switch (e.key) {
30
- case "ArrowDown": {
31
- e.preventDefault();
32
- setActiveIndex((i) => Math.min(i + 1, options.length - 1));
33
- break;
34
- }
35
- case "ArrowUp": {
36
- e.preventDefault();
37
- setActiveIndex((i) => Math.max(i - 1, 0));
38
- break;
39
- }
40
- case "Enter":
41
- case " ": {
42
- e.preventDefault();
43
- const opt = options[activeIndex];
44
- if (opt) {
45
- onChange(opt.value);
46
- (_a = popoverRef.current) == null ? void 0 : _a.close();
47
- }
48
- break;
49
- }
50
- case "Escape": {
51
- e.preventDefault();
52
- (_b = popoverRef.current) == null ? void 0 : _b.close();
53
- break;
54
- }
55
- }
56
- };
57
- const selected = options.find((o) => o.value === selectedValue);
58
- return /* @__PURE__ */ jsx(
59
- Popover,
60
- {
61
- ref: popoverRef,
62
- trigger: (onClick, icon) => /* @__PURE__ */ jsx(
63
- Button,
64
- {
65
- onKeyDown: handleKeyDown,
66
- fullWidth,
67
- variant,
68
- onClick: (e) => {
69
- setActiveIndex(selectedIndex >= 0 ? selectedIndex : 0);
70
- onClick(e);
71
- },
72
- size,
73
- type: "button",
74
- children: /* @__PURE__ */ jsxs(
75
- "span",
76
- {
77
- className: "dbc-flex dbc-justify-between dbc-items-center dbc-gap-xxs",
78
- style: { width: "100%" },
79
- children: [
80
- /* @__PURE__ */ jsx("span", { children: selected ? selected.label : placeholder }),
81
- onClear && selected && /* @__PURE__ */ jsx(ClearButton, { onClick: onClear }),
82
- icon
83
- ]
84
- }
85
- )
86
- }
87
- ),
88
- children: /* @__PURE__ */ jsx(Menu, { onKeyDown: handleKeyDown, children: options.map((opt, index) => {
89
- const isSelected = opt.value === selectedValue;
90
- const isActive = index === activeIndex;
91
- return /* @__PURE__ */ jsx(Menu.Item, { active: isActive, "aria-selected": isSelected, children: /* @__PURE__ */ jsxs(
92
- "button",
93
- {
94
- ref: (el) => optionRefs.current[index] = el,
95
- type: "button",
96
- tabIndex: isActive ? 0 : -1,
97
- onClick: () => {
98
- var _a;
99
- onChange(opt.value);
100
- (_a = popoverRef.current) == null ? void 0 : _a.close();
101
- },
102
- onFocus: () => setActiveIndex(index),
103
- style: {
104
- display: "flex",
105
- alignItems: "center",
106
- width: "100%"
107
- },
108
- children: [
109
- /* @__PURE__ */ jsx("span", { style: { width: 16, display: "inline-flex", justifyContent: "center" }, children: isSelected ? /* @__PURE__ */ jsx(Check, {}) : null }),
110
- opt.label
111
- ]
112
- }
113
- ) }, opt.value);
114
- }) })
115
- }
116
- );
117
- }
118
-
119
- export { Select };
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var SidebarProvider = require('./providers/SidebarProvider');
5
- var SidebarContainer = require('./components/sidebar-container/SidebarContainer');
6
-
7
- function Sidebar({ items, productLogo, activeLink }) {
8
- return /* @__PURE__ */ jsxRuntime.jsx(SidebarProvider.SidebarProvider, { items, children: /* @__PURE__ */ jsxRuntime.jsx(SidebarContainer.SidebarContainer, { productLogo, activeLink }) });
9
- }
10
-
11
- exports.Sidebar = Sidebar;
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var SidebarItemContent = require('./sidebar-item-content/SidebarItemContent');
5
-
6
- function SidebarItem({
7
- component: Component,
8
- label,
9
- icon,
10
- href
11
- }) {
12
- if (!Component) {
13
- return null;
14
- }
15
- return /* @__PURE__ */ jsxRuntime.jsx(Component, { children: /* @__PURE__ */ jsxRuntime.jsx(SidebarItemContent.SidebarItemContent, { icon, label, href }) });
16
- }
17
-
18
- exports.SidebarItem = SidebarItem;
@@ -1,100 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var SidebarItemContent = require('../sidebar-item-content/SidebarItemContent');
6
- var lucideReact = require('lucide-react');
7
- var styles = require('./ExpandableSidebarItem.module.css');
8
- var SidebarProvider = require('../../providers/SidebarProvider');
9
- var SidebarItem = require('../SidebarItem');
10
- var Button = require('../../../button/Button');
11
-
12
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
-
14
- var styles__default = /*#__PURE__*/_interopDefault(styles);
15
-
16
- function ExpandableSidebarItem({
17
- items,
18
- label,
19
- icon,
20
- component: Component,
21
- href
22
- }) {
23
- const {
24
- defaultExpanded,
25
- resetExpandAll,
26
- isSidebarCollapsed,
27
- handleSidebarCollapseChange,
28
- expandedItems
29
- } = SidebarProvider.useSidebar();
30
- const [expanded, setExpanded] = react.useState(false);
31
- const [closing, setClosing] = react.useState(false);
32
- const [ready, setReady] = react.useState(false);
33
- react.useEffect(() => {
34
- setReady(true);
35
- }, []);
36
- react.useEffect(() => {
37
- if (expandedItems.has(href)) {
38
- setExpanded(true);
39
- }
40
- }, [expandedItems]);
41
- react.useEffect(() => {
42
- if (defaultExpanded === null) {
43
- return;
44
- }
45
- setExpanded(defaultExpanded);
46
- }, [defaultExpanded]);
47
- const handleAnimationEnd = react.useCallback(() => {
48
- if (ready) {
49
- setExpanded(!closing);
50
- setClosing(false);
51
- }
52
- }, [closing, ready]);
53
- const toggleAccordion = react.useCallback(
54
- (e, onlyExpand = false) => {
55
- e == null ? void 0 : e.preventDefault();
56
- e == null ? void 0 : e.stopPropagation();
57
- resetExpandAll();
58
- handleSidebarCollapseChange == null ? void 0 : handleSidebarCollapseChange(false);
59
- if (!expanded) {
60
- setExpanded(true);
61
- return;
62
- }
63
- if (!isSidebarCollapsed && !onlyExpand) {
64
- setClosing(true);
65
- }
66
- },
67
- [expanded]
68
- );
69
- if (!items) return null;
70
- if (!Component) {
71
- return null;
72
- }
73
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${styles__default.default.container} ${expanded ? styles__default.default.expanded : ""}`, children: [
74
- /* @__PURE__ */ jsxRuntime.jsx(Component, { onClick: () => toggleAccordion(void 0, true), children: /* @__PURE__ */ jsxRuntime.jsx(
75
- SidebarItemContent.SidebarItemContent,
76
- {
77
- icon,
78
- label,
79
- href,
80
- disableActiveStyles: expanded,
81
- suffixIcon: isSidebarCollapsed ? null : /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { variant: "outlined", onClick: toggleAccordion, children: /* @__PURE__ */ jsxRuntime.jsx(
82
- lucideReact.ChevronDown,
83
- {
84
- className: `${styles__default.default.chevron} ${expanded ? styles__default.default.chevronExpanded : ""}`
85
- }
86
- ) })
87
- }
88
- ) }),
89
- expanded && !isSidebarCollapsed && /* @__PURE__ */ jsxRuntime.jsx(
90
- "div",
91
- {
92
- onAnimationEnd: handleAnimationEnd,
93
- className: `${styles__default.default.childrenContainer} ${closing ? "animate--collapse" : ""} ${expanded ? "animate--expand" : "visually-hidden"}`,
94
- children: items.map(({ component: Component2, label: label2, icon: icon2, href: href2 }, id) => /* @__PURE__ */ jsxRuntime.jsx(SidebarItem.SidebarItem, { component: Component2, label: label2, icon: icon2, href: href2 }, id))
95
- }
96
- )
97
- ] });
98
- }
99
-
100
- exports.ExpandableSidebarItem = ExpandableSidebarItem;
@@ -1,50 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var Button = require('../../../button/Button');
5
- var styles = require('./SidebarContainer.module.css');
6
- var logo = require('../../../../assets/logo');
7
- var Headline = require('../../../headline/Headline');
8
- var lucideReact = require('lucide-react');
9
- var SidebarItems = require('../sidebar-items/SidebarItems');
10
- var SidenavFiltering = require('../sidenav-filteirng/SidenavFiltering');
11
- var SidebarProvider = require('../../providers/SidebarProvider');
12
-
13
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
-
15
- var styles__default = /*#__PURE__*/_interopDefault(styles);
16
- var SidenavFiltering__default = /*#__PURE__*/_interopDefault(SidenavFiltering);
17
-
18
- function SidebarContainer({
19
- logo: logo$1,
20
- productName,
21
- productLogo,
22
- activeLink
23
- }) {
24
- const { isSidebarCollapsed, handleSidebarCollapseChange } = SidebarProvider.useSidebar();
25
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${styles__default.default.container} ${isSidebarCollapsed ? styles__default.default.collapsed : ""}`, children: [
26
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.header, children: [
27
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles__default.default.logoContainer, children: [
28
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { textAlign: isSidebarCollapsed ? "center" : "right" }, children: /* @__PURE__ */ jsxRuntime.jsx(
29
- Button.Button,
30
- {
31
- size: "sm",
32
- variant: "inline",
33
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: isSidebarCollapsed ? styles__default.default.collapsedIcon : "" }),
34
- onClick: () => handleSidebarCollapseChange(!isSidebarCollapsed)
35
- }
36
- ) }),
37
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.logo, children: logo$1 != null ? logo$1 : /* @__PURE__ */ jsxRuntime.jsx(logo.Logo, {}) })
38
- ] }),
39
- productName && /* @__PURE__ */ jsxRuntime.jsx(Headline.Headline, { disableMargin: true, children: productName }),
40
- productLogo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.productLogo, children: productLogo })
41
- ] }),
42
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.content, children: [
43
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.filter, children: /* @__PURE__ */ jsxRuntime.jsx(SidenavFiltering__default.default, {}) }),
44
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${styles__default.default.links} hideScrollBar`, children: /* @__PURE__ */ jsxRuntime.jsx(SidebarItems.SidebarItems, { activeLink }) })
45
- ] }),
46
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.footer })
47
- ] });
48
- }
49
-
50
- exports.SidebarContainer = SidebarContainer;
@@ -1,34 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var styles = require('./SidebarItemContent.module.css');
5
- var SidebarProvider = require('../../providers/SidebarProvider');
6
-
7
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
-
9
- var styles__default = /*#__PURE__*/_interopDefault(styles);
10
-
11
- function SidebarItemContent({
12
- icon,
13
- label,
14
- suffixIcon,
15
- href,
16
- disableActiveStyles = false
17
- }) {
18
- const { activeLink, isSidebarCollapsed } = SidebarProvider.useSidebar();
19
- return /* @__PURE__ */ jsxRuntime.jsxs(
20
- "span",
21
- {
22
- className: `${styles__default.default.container} ${!disableActiveStyles && activeLink === href ? styles__default.default.active : ""} ${isSidebarCollapsed ? styles__default.default.collapsed : ""}`,
23
- children: [
24
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
25
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles__default.default.icon, children: icon }),
26
- !isSidebarCollapsed && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles__default.default.label, children: label })
27
- ] }),
28
- suffixIcon && !isSidebarCollapsed && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles__default.default.suffixIcon, children: suffixIcon })
29
- ]
30
- }
31
- );
32
- }
33
-
34
- exports.SidebarItemContent = SidebarItemContent;
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var SidebarProvider = require('../../providers/SidebarProvider');
6
- var SidebarItem = require('../SidebarItem');
7
- var ExpandableSidebarItem = require('../expandable-sidebar-item/ExpandableSidebarItem');
8
-
9
- function SidebarItems({ activeLink }) {
10
- const { filteredItems, setActiveLink } = SidebarProvider.useSidebar();
11
- react.useEffect(() => {
12
- setActiveLink(activeLink != null ? activeLink : "");
13
- }, [activeLink, setActiveLink]);
14
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: filteredItems == null ? void 0 : filteredItems.map(
15
- ({ component: Component, label, icon, children, href }, id) => (children == null ? void 0 : children.length) ? /* @__PURE__ */ jsxRuntime.jsx(
16
- ExpandableSidebarItem.ExpandableSidebarItem,
17
- {
18
- items: children,
19
- label,
20
- icon,
21
- href,
22
- component: Component
23
- },
24
- label
25
- ) : /* @__PURE__ */ jsxRuntime.jsx(SidebarItem.SidebarItem, { component: Component, label, icon, href }, id)
26
- ) });
27
- }
28
-
29
- exports.SidebarItems = SidebarItems;
@@ -1,52 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var SearchBox = require('../../../search-box/SearchBox');
6
- var SidebarProvider = require('../../providers/SidebarProvider');
7
- var Button = require('../../../button/Button');
8
- var lucideReact = require('lucide-react');
9
-
10
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
-
12
- var React__default = /*#__PURE__*/_interopDefault(React);
13
-
14
- const SidenavFiltering = () => {
15
- const { activeQuery, setActiveQuery, isSidebarCollapsed, handleSidebarCollapseChange } = SidebarProvider.useSidebar();
16
- const searchBoxRef = React__default.default.useRef(null);
17
- const handleSearch = (value) => {
18
- setActiveQuery == null ? void 0 : setActiveQuery(value);
19
- };
20
- if (isSidebarCollapsed) {
21
- return /* @__PURE__ */ jsxRuntime.jsx(
22
- Button.Button,
23
- {
24
- fullWidth: true,
25
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, {}),
26
- size: "sm",
27
- variant: "inline",
28
- onClick: () => {
29
- handleSidebarCollapseChange(false);
30
- setTimeout(() => {
31
- var _a;
32
- (_a = searchBoxRef.current) == null ? void 0 : _a.focus();
33
- }, 50);
34
- }
35
- }
36
- );
37
- }
38
- return /* @__PURE__ */ jsxRuntime.jsx(
39
- SearchBox.SearchBox,
40
- {
41
- ref: searchBoxRef,
42
- inputWidth: "100%",
43
- inputSize: "sm",
44
- value: activeQuery != null ? activeQuery : "",
45
- onSearch: handleSearch,
46
- placeholder: "Filtrer menu"
47
- }
48
- );
49
- };
50
- var SidenavFiltering_default = SidenavFiltering;
51
-
52
- module.exports = SidenavFiltering_default;