@dbcdk/react-components 0.0.1 → 0.0.3

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 (281) hide show
  1. package/dist/assets/logo.cjs +87 -0
  2. package/dist/assets/logo.d.ts +2 -0
  3. package/dist/assets/logo.js +85 -0
  4. package/dist/components/app-header/AppHeader.cjs +14 -0
  5. package/dist/components/app-header/AppHeader.d.ts +5 -0
  6. package/dist/components/app-header/AppHeader.js +8 -0
  7. package/dist/components/app-header/AppHeader.module.css +73 -0
  8. package/dist/components/avatar/Avatar.cjs +67 -0
  9. package/dist/components/avatar/Avatar.d.ts +15 -0
  10. package/dist/components/avatar/Avatar.js +42 -0
  11. package/dist/components/avatar/Avatar.module.css +43 -0
  12. package/dist/components/breadcrumbs/Breadcrumbs.cjs +23 -0
  13. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +12 -0
  14. package/dist/components/breadcrumbs/Breadcrumbs.js +16 -0
  15. package/dist/components/breadcrumbs/Breadcrumbs.module.css +84 -0
  16. package/dist/components/button/Button.cjs +79 -0
  17. package/dist/components/button/Button.d.ts +13 -0
  18. package/dist/components/button/Button.js +54 -0
  19. package/dist/components/button/Button.module.css +156 -0
  20. package/dist/components/card/Card.cjs +29 -0
  21. package/dist/components/card/Card.d.ts +11 -0
  22. package/dist/components/card/Card.js +23 -0
  23. package/dist/components/card/Card.module.css +69 -0
  24. package/dist/components/card-container/CardContainer.cjs +23 -0
  25. package/dist/components/card-container/CardContainer.d.ts +8 -0
  26. package/dist/components/card-container/CardContainer.js +17 -0
  27. package/dist/components/card-container/CardContainer.module.css +18 -0
  28. package/dist/components/checkbox/Checkbox.cjs +43 -0
  29. package/dist/components/checkbox/Checkbox.d.ts +12 -0
  30. package/dist/components/checkbox/Checkbox.js +37 -0
  31. package/dist/components/checkbox/Checkbox.module.css +63 -0
  32. package/dist/components/chip/Chip.cjs +49 -0
  33. package/dist/components/chip/Chip.d.ts +13 -0
  34. package/dist/components/chip/Chip.js +43 -0
  35. package/dist/components/chip/Chip.module.css +97 -0
  36. package/dist/components/circle/Circle.cjs +18 -0
  37. package/dist/components/circle/Circle.d.ts +8 -0
  38. package/dist/components/circle/Circle.js +12 -0
  39. package/dist/components/circle/Circle.module.css +62 -0
  40. package/dist/components/clear-button/ClearButton.cjs +26 -0
  41. package/dist/components/clear-button/ClearButton.d.ts +6 -0
  42. package/dist/components/clear-button/ClearButton.js +20 -0
  43. package/dist/components/clear-button/ClearButton.module.css +16 -0
  44. package/dist/components/data-summary/DataSummary.cjs +49 -0
  45. package/dist/components/data-summary/DataSummary.d.ts +19 -0
  46. package/dist/components/data-summary/DataSummary.js +43 -0
  47. package/dist/components/data-summary/DataSummary.module.css +51 -0
  48. package/dist/components/filter-field/FilterField.cjs +174 -0
  49. package/dist/components/filter-field/FilterField.d.ts +28 -0
  50. package/dist/components/filter-field/FilterField.js +167 -0
  51. package/dist/components/filter-field/FilterField.module.css +109 -0
  52. package/dist/components/headline/Headline.cjs +47 -0
  53. package/dist/components/headline/Headline.d.ts +14 -0
  54. package/dist/components/headline/Headline.js +41 -0
  55. package/dist/components/headline/Headline.module.css +35 -0
  56. package/dist/components/icon/Icon.cjs +27 -0
  57. package/dist/components/icon/Icon.d.ts +9 -0
  58. package/dist/components/icon/Icon.js +20 -0
  59. package/dist/components/icon/Icon.module.css +34 -0
  60. package/dist/components/input/Input.cjs +48 -0
  61. package/dist/components/input/Input.d.ts +13 -0
  62. package/dist/components/input/Input.js +42 -0
  63. package/dist/components/input/Input.module.css +112 -0
  64. package/dist/components/menu/Menu.cjs +96 -0
  65. package/dist/components/menu/Menu.d.ts +12 -0
  66. package/dist/components/menu/Menu.js +71 -0
  67. package/dist/components/menu/Menu.module.css +95 -0
  68. package/dist/components/multi-select/MultiSelect.cjs +48 -0
  69. package/dist/components/multi-select/MultiSelect.d.ts +18 -0
  70. package/dist/components/multi-select/MultiSelect.js +46 -0
  71. package/dist/components/nav-bar/NavBar.cjs +55 -0
  72. package/dist/components/nav-bar/NavBar.d.ts +20 -0
  73. package/dist/components/nav-bar/NavBar.js +49 -0
  74. package/dist/components/nav-bar/NavBar.module.css +101 -0
  75. package/dist/components/page/Page.cjs +30 -0
  76. package/dist/components/page/Page.d.ts +13 -0
  77. package/dist/components/page/Page.js +24 -0
  78. package/dist/components/page/Page.module.css +26 -0
  79. package/dist/components/page-layout/PageLayout.cjs +101 -0
  80. package/dist/components/page-layout/PageLayout.d.ts +35 -0
  81. package/dist/components/page-layout/PageLayout.js +95 -0
  82. package/dist/components/page-layout/PageLayout.module.css +142 -0
  83. package/dist/components/pagination/Pagination.cjs +117 -0
  84. package/dist/components/pagination/Pagination.d.ts +17 -0
  85. package/dist/components/pagination/Pagination.js +111 -0
  86. package/dist/components/pagination/Pagination.module.css +17 -0
  87. package/dist/components/panel/Panel.cjs +18 -0
  88. package/dist/components/panel/Panel.d.ts +10 -0
  89. package/dist/components/panel/Panel.js +12 -0
  90. package/dist/components/panel/Panel.module.css +29 -0
  91. package/dist/components/popover/Popover.cjs +132 -0
  92. package/dist/components/popover/Popover.d.ts +15 -0
  93. package/dist/components/popover/Popover.js +126 -0
  94. package/dist/components/popover/Popover.module.css +25 -0
  95. package/dist/components/search-box/SearchBox.cjs +162 -0
  96. package/dist/components/search-box/SearchBox.d.ts +22 -0
  97. package/dist/components/search-box/SearchBox.js +156 -0
  98. package/dist/components/search-box/SearchBox.module.css +20 -0
  99. package/dist/components/segmented-progress-bar/SegmentedProgressBar.cjs +97 -0
  100. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts +24 -0
  101. package/dist/components/segmented-progress-bar/SegmentedProgressBar.js +91 -0
  102. package/dist/components/segmented-progress-bar/SegmentedProgressBar.module.css +55 -0
  103. package/dist/components/select/Select.cjs +52 -0
  104. package/dist/components/select/Select.d.ts +11 -0
  105. package/dist/components/select/Select.js +50 -0
  106. package/dist/components/sidebar/Sidebar.cjs +38 -0
  107. package/dist/components/sidebar/Sidebar.d.ts +12 -0
  108. package/dist/components/sidebar/Sidebar.js +31 -0
  109. package/dist/components/sidebar/Sidebar.module.css +66 -0
  110. package/dist/components/sidebar/components/SidebarItem.cjs +16 -0
  111. package/dist/components/sidebar/components/SidebarItem.d.ts +9 -0
  112. package/dist/components/sidebar/components/SidebarItem.js +14 -0
  113. package/dist/components/sidebar/components/SidebarItem.module.css +0 -0
  114. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.cjs +74 -0
  115. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.d.ts +9 -0
  116. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.js +68 -0
  117. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.module.css +61 -0
  118. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.cjs +27 -0
  119. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.d.ts +8 -0
  120. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.js +21 -0
  121. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.module.css +62 -0
  122. package/dist/components/sidebar/components/sidebar-items/SidebarItems.cjs +28 -0
  123. package/dist/components/sidebar/components/sidebar-items/SidebarItems.d.ts +4 -0
  124. package/dist/components/sidebar/components/sidebar-items/SidebarItems.js +26 -0
  125. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.cjs +25 -0
  126. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.d.ts +3 -0
  127. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.js +23 -0
  128. package/dist/components/sidebar/providers/SidebarProvider.cjs +81 -0
  129. package/dist/components/sidebar/providers/SidebarProvider.d.ts +24 -0
  130. package/dist/components/sidebar/providers/SidebarProvider.js +78 -0
  131. package/dist/components/skeleton-loader/SkeletonLoader.cjs +270 -0
  132. package/dist/components/skeleton-loader/SkeletonLoader.d.ts +9 -0
  133. package/dist/components/skeleton-loader/SkeletonLoader.js +268 -0
  134. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.cjs +42 -0
  135. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.d.ts +11 -0
  136. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.js +36 -0
  137. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.module.css +63 -0
  138. package/dist/components/split-button/SplitButton.cjs +37 -0
  139. package/dist/components/split-button/SplitButton.d.ts +14 -0
  140. package/dist/components/split-button/SplitButton.js +31 -0
  141. package/dist/components/split-button/SplitButton.module.css +32 -0
  142. package/dist/components/table/Table.cjs +181 -0
  143. package/dist/components/table/Table.d.ts +45 -0
  144. package/dist/components/table/Table.js +175 -0
  145. package/dist/components/table/Table.module.css +143 -0
  146. package/dist/components/table/components/column-resizer/ColumnResizer.cjs +22 -0
  147. package/dist/components/table/components/column-resizer/ColumnResizer.d.ts +7 -0
  148. package/dist/components/table/components/column-resizer/ColumnResizer.js +16 -0
  149. package/dist/components/table/components/column-resizer/ColumnResizer.module.css +13 -0
  150. package/dist/components/tabs/Tabs.cjs +74 -0
  151. package/dist/components/tabs/Tabs.d.ts +18 -0
  152. package/dist/components/tabs/Tabs.js +68 -0
  153. package/dist/components/tabs/Tabs.module.css +113 -0
  154. package/dist/components/text-area/Textarea.cjs +62 -0
  155. package/dist/components/text-area/Textarea.d.ts +14 -0
  156. package/dist/components/text-area/Textarea.js +56 -0
  157. package/dist/components/text-area/Textarea.module.css +3 -0
  158. package/dist/components/tooltip/Tooltip.cjs +78 -0
  159. package/dist/components/tooltip/Tooltip.d.ts +11 -0
  160. package/dist/components/tooltip/Tooltip.js +72 -0
  161. package/dist/components/tooltip/Tooltip.module.css +84 -0
  162. package/dist/components/user-display/UserDisplay.cjs +28 -0
  163. package/dist/components/user-display/UserDisplay.d.ts +9 -0
  164. package/dist/components/user-display/UserDisplay.js +22 -0
  165. package/dist/components/user-display/UserDisplay.module.css +25 -0
  166. package/dist/constants/severity.cjs +21 -0
  167. package/dist/constants/severity.d.ts +3 -0
  168. package/dist/constants/severity.js +18 -0
  169. package/dist/constants/severity.types.cjs +2 -0
  170. package/dist/constants/severity.types.d.ts +1 -0
  171. package/dist/constants/severity.types.js +1 -0
  172. package/dist/constants/sizes.cjs +10 -0
  173. package/dist/constants/sizes.d.ts +2 -0
  174. package/dist/constants/sizes.js +8 -0
  175. package/dist/hooks/useTheme.cjs +58 -0
  176. package/dist/hooks/useTheme.d.ts +9 -0
  177. package/dist/hooks/useTheme.js +55 -0
  178. package/dist/hooks/useViewportFill.cjs +52 -0
  179. package/dist/hooks/useViewportFill.d.ts +15 -0
  180. package/dist/hooks/useViewportFill.js +50 -0
  181. package/dist/index.cjs +264 -2
  182. package/dist/index.d.ts +37 -12
  183. package/dist/index.js +37 -2
  184. package/dist/src/styles/styles.css +124 -0
  185. package/dist/styles/css-helper-classes/spacing.css +291 -0
  186. package/dist/styles/fonts/Roboto/OFL.txt +93 -0
  187. package/dist/styles/fonts/Roboto/README.txt +118 -0
  188. package/dist/styles/fonts/Roboto/Roboto-Black.ttf +0 -0
  189. package/dist/styles/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
  190. package/dist/styles/fonts/Roboto/Roboto-Bold.ttf +0 -0
  191. package/dist/styles/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
  192. package/dist/styles/fonts/Roboto/Roboto-ExtraBold.ttf +0 -0
  193. package/dist/styles/fonts/Roboto/Roboto-ExtraBoldItalic.ttf +0 -0
  194. package/dist/styles/fonts/Roboto/Roboto-ExtraLight.ttf +0 -0
  195. package/dist/styles/fonts/Roboto/Roboto-ExtraLightItalic.ttf +0 -0
  196. package/dist/styles/fonts/Roboto/Roboto-Italic.ttf +0 -0
  197. package/dist/styles/fonts/Roboto/Roboto-Light.ttf +0 -0
  198. package/dist/styles/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
  199. package/dist/styles/fonts/Roboto/Roboto-Medium.ttf +0 -0
  200. package/dist/styles/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  201. package/dist/styles/fonts/Roboto/Roboto-Regular.ttf +0 -0
  202. package/dist/styles/fonts/Roboto/Roboto-SemiBold.ttf +0 -0
  203. package/dist/styles/fonts/Roboto/Roboto-SemiBoldItalic.ttf +0 -0
  204. package/dist/styles/fonts/Roboto/Roboto-Thin.ttf +0 -0
  205. package/dist/styles/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
  206. package/dist/styles/fonts/Roboto/Roboto_Condensed-Black.ttf +0 -0
  207. package/dist/styles/fonts/Roboto/Roboto_Condensed-BlackItalic.ttf +0 -0
  208. package/dist/styles/fonts/Roboto/Roboto_Condensed-Bold.ttf +0 -0
  209. package/dist/styles/fonts/Roboto/Roboto_Condensed-BoldItalic.ttf +0 -0
  210. package/dist/styles/fonts/Roboto/Roboto_Condensed-ExtraBold.ttf +0 -0
  211. package/dist/styles/fonts/Roboto/Roboto_Condensed-ExtraBoldItalic.ttf +0 -0
  212. package/dist/styles/fonts/Roboto/Roboto_Condensed-ExtraLight.ttf +0 -0
  213. package/dist/styles/fonts/Roboto/Roboto_Condensed-ExtraLightItalic.ttf +0 -0
  214. package/dist/styles/fonts/Roboto/Roboto_Condensed-Italic.ttf +0 -0
  215. package/dist/styles/fonts/Roboto/Roboto_Condensed-Light.ttf +0 -0
  216. package/dist/styles/fonts/Roboto/Roboto_Condensed-LightItalic.ttf +0 -0
  217. package/dist/styles/fonts/Roboto/Roboto_Condensed-Medium.ttf +0 -0
  218. package/dist/styles/fonts/Roboto/Roboto_Condensed-MediumItalic.ttf +0 -0
  219. package/dist/styles/fonts/Roboto/Roboto_Condensed-Regular.ttf +0 -0
  220. package/dist/styles/fonts/Roboto/Roboto_Condensed-SemiBold.ttf +0 -0
  221. package/dist/styles/fonts/Roboto/Roboto_Condensed-SemiBoldItalic.ttf +0 -0
  222. package/dist/styles/fonts/Roboto/Roboto_Condensed-Thin.ttf +0 -0
  223. package/dist/styles/fonts/Roboto/Roboto_Condensed-ThinItalic.ttf +0 -0
  224. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Black.ttf +0 -0
  225. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-BlackItalic.ttf +0 -0
  226. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Bold.ttf +0 -0
  227. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-BoldItalic.ttf +0 -0
  228. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ExtraBold.ttf +0 -0
  229. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ExtraBoldItalic.ttf +0 -0
  230. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ExtraLight.ttf +0 -0
  231. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ExtraLightItalic.ttf +0 -0
  232. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Italic.ttf +0 -0
  233. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Light.ttf +0 -0
  234. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-LightItalic.ttf +0 -0
  235. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Medium.ttf +0 -0
  236. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-MediumItalic.ttf +0 -0
  237. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Regular.ttf +0 -0
  238. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-SemiBold.ttf +0 -0
  239. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-SemiBoldItalic.ttf +0 -0
  240. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-Thin.ttf +0 -0
  241. package/dist/styles/fonts/Roboto/Roboto_SemiCondensed-ThinItalic.ttf +0 -0
  242. package/dist/styles/fonts/Tajawal/OFL.txt +93 -0
  243. package/dist/styles/fonts/Tajawal/Tajawal-Black.ttf +0 -0
  244. package/dist/styles/fonts/Tajawal/Tajawal-Bold.ttf +0 -0
  245. package/dist/styles/fonts/Tajawal/Tajawal-ExtraBold.ttf +0 -0
  246. package/dist/styles/fonts/Tajawal/Tajawal-ExtraLight.ttf +0 -0
  247. package/dist/styles/fonts/Tajawal/Tajawal-Light.ttf +0 -0
  248. package/dist/styles/fonts/Tajawal/Tajawal-Medium.ttf +0 -0
  249. package/dist/styles/fonts/Tajawal/Tajawal-Regular.ttf +0 -0
  250. package/dist/styles/styles.css +124 -0
  251. package/dist/styles/themes/dbc/dark.css +240 -0
  252. package/dist/styles/themes/dbc/light.css +245 -0
  253. package/dist/styles/themes/forfatterweb/light.css +104 -0
  254. package/dist/styles/themes/types.cjs +2 -0
  255. package/dist/styles/themes/types.d.ts +16 -0
  256. package/dist/styles/themes/types.js +1 -0
  257. package/dist/tanstack.cjs +231 -0
  258. package/dist/tanstack.d.ts +25 -0
  259. package/dist/tanstack.js +206 -0
  260. package/dist/types/a11y-props.types.cjs +2 -0
  261. package/dist/types/a11y-props.types.d.ts +8 -0
  262. package/dist/types/a11y-props.types.js +1 -0
  263. package/dist/types/assets.d.cjs +2 -0
  264. package/dist/types/assets.d.js +1 -0
  265. package/dist/types/css.d.cjs +2 -0
  266. package/dist/types/css.d.js +1 -0
  267. package/dist/types/sizes.types.cjs +2 -0
  268. package/dist/types/sizes.types.d.ts +2 -0
  269. package/dist/types/sizes.types.js +1 -0
  270. package/dist/utils/arrays/nested-filtering.cjs +40 -0
  271. package/dist/utils/arrays/nested-filtering.d.ts +9 -0
  272. package/dist/utils/arrays/nested-filtering.js +38 -0
  273. package/dist/utils/date/formatDate.cjs +19 -0
  274. package/dist/utils/date/formatDate.d.ts +12 -0
  275. package/dist/utils/date/formatDate.js +17 -0
  276. package/package.json +67 -20
  277. package/dist/index.cjs.map +0 -1
  278. package/dist/index.css +0 -2
  279. package/dist/index.css.map +0 -1
  280. package/dist/index.d.cts +0 -12
  281. package/dist/index.js.map +0 -1
@@ -0,0 +1,34 @@
1
+ .container {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--spacing-xs);
5
+ color: var(--color-secondary);
6
+ }
7
+
8
+ .icon {
9
+ display: flex;
10
+ }
11
+
12
+ .icon svg {
13
+ height: var(--icon-size);
14
+ }
15
+
16
+ .success {
17
+ color: var(--color-success);
18
+ }
19
+
20
+ .error {
21
+ color: var(--color-error);
22
+ }
23
+
24
+ .warning {
25
+ color: var(--color-warning);
26
+ }
27
+
28
+ .info {
29
+ color: var(--color-info);
30
+ }
31
+
32
+ .brand {
33
+ color: var(--color-text-on-primary);
34
+ }
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var styles = require('../input/Input.module.css');
6
+ var ClearButton = require('../clear-button/ClearButton');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
11
+
12
+ function mergeRefs(...refs) {
13
+ return (node) => {
14
+ for (const ref of refs) {
15
+ if (!ref) continue;
16
+ if (typeof ref === "function") ref(node);
17
+ else ref.current = node;
18
+ }
19
+ };
20
+ }
21
+ const Input = react.forwardRef(function Input2({ label, icon, minWidth, inputSize, variant = "outlined", autoFocus, onClear, ...rest }, ref) {
22
+ const inputRef = react.useRef(null);
23
+ react.useEffect(() => {
24
+ var _a;
25
+ if (autoFocus) (_a = inputRef.current) == null ? void 0 : _a.focus();
26
+ }, [autoFocus]);
27
+ console.log(rest);
28
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.container, children: [
29
+ label && /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: label, children: label }),
30
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.inputWrapper, children: [
31
+ icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles__default.default.icon, children: icon }),
32
+ /* @__PURE__ */ jsxRuntime.jsx(
33
+ "input",
34
+ {
35
+ id: label,
36
+ ...rest,
37
+ ref: mergeRefs(inputRef, ref),
38
+ style: { minWidth: minWidth || "200px" },
39
+ className: `${styles__default.default.input} ${icon ? styles__default.default.inputWithIcon : ""} ${inputSize ? styles__default.default[inputSize] : ""} ${styles__default.default[variant]}`
40
+ }
41
+ ),
42
+ onClear && rest.value && /* @__PURE__ */ jsxRuntime.jsx(ClearButton.ClearButton, { onClick: onClear, absolute: true })
43
+ ] })
44
+ ] });
45
+ });
46
+ Input.displayName = "Input";
47
+
48
+ exports.Input = Input;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import type { Size } from '../../types/sizes.types';
3
+ export type InputVariant = 'outlined' | 'filled' | 'standalone';
4
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
5
+ label?: string;
6
+ icon?: React.ReactNode;
7
+ autoFocus?: boolean;
8
+ minWidth?: string;
9
+ inputSize?: Size;
10
+ variant?: InputVariant;
11
+ onClear?: () => void;
12
+ }
13
+ export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,42 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, useRef, useEffect } from 'react';
3
+ import styles from '../input/Input.module.css';
4
+ import { ClearButton } from '../clear-button/ClearButton';
5
+
6
+ function mergeRefs(...refs) {
7
+ return (node) => {
8
+ for (const ref of refs) {
9
+ if (!ref) continue;
10
+ if (typeof ref === "function") ref(node);
11
+ else ref.current = node;
12
+ }
13
+ };
14
+ }
15
+ const Input = forwardRef(function Input2({ label, icon, minWidth, inputSize, variant = "outlined", autoFocus, onClear, ...rest }, ref) {
16
+ const inputRef = useRef(null);
17
+ useEffect(() => {
18
+ var _a;
19
+ if (autoFocus) (_a = inputRef.current) == null ? void 0 : _a.focus();
20
+ }, [autoFocus]);
21
+ console.log(rest);
22
+ return /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
23
+ label && /* @__PURE__ */ jsx("label", { htmlFor: label, children: label }),
24
+ /* @__PURE__ */ jsxs("div", { className: styles.inputWrapper, children: [
25
+ icon && /* @__PURE__ */ jsx("span", { className: styles.icon, children: icon }),
26
+ /* @__PURE__ */ jsx(
27
+ "input",
28
+ {
29
+ id: label,
30
+ ...rest,
31
+ ref: mergeRefs(inputRef, ref),
32
+ style: { minWidth: minWidth || "200px" },
33
+ className: `${styles.input} ${icon ? styles.inputWithIcon : ""} ${inputSize ? styles[inputSize] : ""} ${styles[variant]}`
34
+ }
35
+ ),
36
+ onClear && rest.value && /* @__PURE__ */ jsx(ClearButton, { onClick: onClear, absolute: true })
37
+ ] })
38
+ ] });
39
+ });
40
+ Input.displayName = "Input";
41
+
42
+ export { Input };
@@ -0,0 +1,112 @@
1
+ /* Wrapper */
2
+ .inputWrapper {
3
+ position: relative;
4
+ display: inline-flex;
5
+ align-items: center;
6
+ color: var(--color-text);
7
+ }
8
+
9
+ /* Input */
10
+ .inputWrapper input {
11
+ color: inherit;
12
+ font-family: var(--font-family);
13
+ font-size: var(--font-size-sm);
14
+ line-height: var(--line-height-normal);
15
+ box-sizing: border-box;
16
+
17
+ background-color: var(--color-surface);
18
+ border: var(--border-width-thin) solid var(--color-border);
19
+ border-radius: var(--border-radius-default);
20
+
21
+ /* density-aware paddings/heights */
22
+ padding-inline: var(--control-padding-x);
23
+ padding-block: calc(var(--control-padding-y) + var(--density));
24
+ min-block-size: calc(var(--component-size-md) + var(--density));
25
+
26
+ transition:
27
+ background-color var(--transition-fast) var(--ease-standard),
28
+ border-color var(--transition-fast) var(--ease-standard),
29
+ box-shadow var(--transition-fast) var(--ease-standard);
30
+ }
31
+
32
+ /* Placeholder */
33
+ .inputWrapper input::placeholder {
34
+ color: var(--color-text-muted);
35
+ }
36
+
37
+ /* Hover & focus */
38
+ .inputWrapper input:hover {
39
+ border-color: var(--color-border-strong);
40
+ }
41
+ .inputWrapper input:focus-visible {
42
+ outline: none;
43
+ border-color: var(--color-border-selected);
44
+ box-shadow: var(--focus-ring);
45
+ }
46
+
47
+ /* Filled (borderless) variant for embedded contexts */
48
+ .inputWrapper input.filled {
49
+ background-color: var(--color-surface);
50
+ border: 0;
51
+ }
52
+
53
+ /* Standalone / elevated variant */
54
+ .inputWrapper input.standalone {
55
+ border-radius: var(--border-radius-rounded);
56
+ background-color: var(--color-surface);
57
+ box-shadow: var(--shadow-xs), var(--shadow-md);
58
+ }
59
+ .inputWrapper input.standalone:focus-visible {
60
+ outline: none;
61
+ border-color: var(--color-border-selected);
62
+ box-shadow: var(--focus-ring);
63
+ }
64
+
65
+ /* Sizes */
66
+ .inputWrapper input.sm {
67
+ min-block-size: calc(var(--component-size-sm) + var(--density));
68
+ font-size: var(--font-size-sm);
69
+ }
70
+ .inputWrapper input.md {
71
+ min-block-size: calc(var(--component-size-md) + var(--density));
72
+ font-size: var(--font-size-sm);
73
+ }
74
+ .inputWrapper input.lg {
75
+ min-block-size: calc(var(--component-size-lg) + var(--density));
76
+ font-size: var(--font-size-lg);
77
+ }
78
+
79
+ /* With leading icon */
80
+ .inputWrapper input.inputWithIcon {
81
+ padding-inline-start: calc(var(--icon-size) + var(--spacing-lg));
82
+ }
83
+
84
+ /* Icon */
85
+ .icon {
86
+ position: absolute;
87
+ inset-inline-start: var(--spacing-md);
88
+ top: 50%;
89
+ transform: translateY(-50%);
90
+ display: inline-flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ inline-size: var(--icon-size);
94
+ block-size: var(--icon-size);
95
+ pointer-events: none;
96
+ color: var(--color-secondary);
97
+ }
98
+ .icon svg {
99
+ color: inherit;
100
+ inline-size: var(--icon-size);
101
+ block-size: var(--icon-size);
102
+ }
103
+
104
+ /* Outlined (transparent) variant */
105
+ .outlined {
106
+ background-color: transparent;
107
+ }
108
+
109
+ /* Date/time picker indicator (WebKit) */
110
+ .inputWrapper input[type='datetime-local']::-webkit-calendar-picker-indicator {
111
+ filter: invert(0.7);
112
+ }
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var styles = require('./Menu.module.css');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
29
+
30
+ const MenuBase = React__namespace.forwardRef(
31
+ ({ children, className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
32
+ "ul",
33
+ {
34
+ ref,
35
+ role: "menu",
36
+ className: [styles__default.default.container, className].filter(Boolean).join(" "),
37
+ ...props,
38
+ children
39
+ }
40
+ )
41
+ );
42
+ MenuBase.displayName = "Menu";
43
+ const isInteractiveEl = (el) => React__namespace.isValidElement(el) && (typeof el.type === "string" ? el.type === "a" || el.type === "button" : true);
44
+ const MenuItem = React__namespace.forwardRef(
45
+ ({ children, active, disabled, className, ...liProps }, ref) => {
46
+ if (isInteractiveEl(children)) {
47
+ const child = children;
48
+ const childClass = [styles__default.default.item, active ? styles__default.default.active : ""].filter(Boolean).join(" ");
49
+ return /* @__PURE__ */ jsxRuntime.jsx(
50
+ "li",
51
+ {
52
+ ref,
53
+ role: "none",
54
+ className: [styles__default.default.row, className].filter(Boolean).join(" "),
55
+ ...liProps,
56
+ children: React__namespace.cloneElement(child, {
57
+ role: "menuitem",
58
+ tabIndex: -1,
59
+ "aria-selected": active || void 0,
60
+ "aria-disabled": disabled || void 0,
61
+ className: [child.props.className, styles__default.default.interactive, childClass].filter(Boolean).join(" ")
62
+ })
63
+ }
64
+ );
65
+ }
66
+ return /* @__PURE__ */ jsxRuntime.jsx(
67
+ "li",
68
+ {
69
+ ref,
70
+ role: "none",
71
+ className: [styles__default.default.row, className].filter(Boolean).join(" "),
72
+ ...liProps,
73
+ children: /* @__PURE__ */ jsxRuntime.jsx(
74
+ "button",
75
+ {
76
+ role: "menuitem",
77
+ tabIndex: -1,
78
+ "aria-selected": active || void 0,
79
+ "aria-disabled": disabled || void 0,
80
+ className: [styles__default.default.interactive, styles__default.default.item, active ? styles__default.default.active : ""].filter(Boolean).join(" "),
81
+ type: "button",
82
+ disabled,
83
+ children
84
+ }
85
+ )
86
+ }
87
+ );
88
+ }
89
+ );
90
+ MenuItem.displayName = "Menu.Item";
91
+ const Menu = Object.assign(
92
+ MenuBase,
93
+ { Item: MenuItem }
94
+ );
95
+
96
+ exports.Menu = Menu;
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ export interface MenuProps extends React.HTMLAttributes<HTMLUListElement> {
3
+ children: React.ReactNode;
4
+ }
5
+ export interface MenuItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
6
+ children: React.ReactNode;
7
+ active?: boolean;
8
+ disabled?: boolean;
9
+ }
10
+ export declare const Menu: React.FC<MenuProps> & {
11
+ Item: React.FC<MenuItemProps>;
12
+ };
@@ -0,0 +1,71 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import styles from './Menu.module.css';
4
+
5
+ const MenuBase = React.forwardRef(
6
+ ({ children, className, ...props }, ref) => /* @__PURE__ */ jsx(
7
+ "ul",
8
+ {
9
+ ref,
10
+ role: "menu",
11
+ className: [styles.container, className].filter(Boolean).join(" "),
12
+ ...props,
13
+ children
14
+ }
15
+ )
16
+ );
17
+ MenuBase.displayName = "Menu";
18
+ const isInteractiveEl = (el) => React.isValidElement(el) && (typeof el.type === "string" ? el.type === "a" || el.type === "button" : true);
19
+ const MenuItem = React.forwardRef(
20
+ ({ children, active, disabled, className, ...liProps }, ref) => {
21
+ if (isInteractiveEl(children)) {
22
+ const child = children;
23
+ const childClass = [styles.item, active ? styles.active : ""].filter(Boolean).join(" ");
24
+ return /* @__PURE__ */ jsx(
25
+ "li",
26
+ {
27
+ ref,
28
+ role: "none",
29
+ className: [styles.row, className].filter(Boolean).join(" "),
30
+ ...liProps,
31
+ children: React.cloneElement(child, {
32
+ role: "menuitem",
33
+ tabIndex: -1,
34
+ "aria-selected": active || void 0,
35
+ "aria-disabled": disabled || void 0,
36
+ className: [child.props.className, styles.interactive, childClass].filter(Boolean).join(" ")
37
+ })
38
+ }
39
+ );
40
+ }
41
+ return /* @__PURE__ */ jsx(
42
+ "li",
43
+ {
44
+ ref,
45
+ role: "none",
46
+ className: [styles.row, className].filter(Boolean).join(" "),
47
+ ...liProps,
48
+ children: /* @__PURE__ */ jsx(
49
+ "button",
50
+ {
51
+ role: "menuitem",
52
+ tabIndex: -1,
53
+ "aria-selected": active || void 0,
54
+ "aria-disabled": disabled || void 0,
55
+ className: [styles.interactive, styles.item, active ? styles.active : ""].filter(Boolean).join(" "),
56
+ type: "button",
57
+ disabled,
58
+ children
59
+ }
60
+ )
61
+ }
62
+ );
63
+ }
64
+ );
65
+ MenuItem.displayName = "Menu.Item";
66
+ const Menu = Object.assign(
67
+ MenuBase,
68
+ { Item: MenuItem }
69
+ );
70
+
71
+ export { Menu };
@@ -0,0 +1,95 @@
1
+ /* =========================
2
+ Panel (apply to dialog content)
3
+ ========================= */
4
+ .panel {
5
+ background: var(--color-surface);
6
+ color: var(--color-text);
7
+ border: var(--border-width-thin) solid var(--color-border);
8
+ border-radius: var(--border-radius-md);
9
+ box-shadow: var(--shadow-md);
10
+ padding: var(--spacing-xs);
11
+ }
12
+
13
+ /* =========================
14
+ List (ul) — reset only
15
+ ========================= */
16
+ .container {
17
+ list-style: none;
18
+ margin: 0;
19
+ padding: 0;
20
+ background: transparent;
21
+ border: 0;
22
+ box-shadow: none;
23
+
24
+ display: flex;
25
+ flex-direction: column;
26
+ }
27
+
28
+ /* space between rows without adding inner borders */
29
+ .container > li + li {
30
+ margin-block-start: var(--spacing-2xs);
31
+ }
32
+
33
+ /* li wrapper (non-focusable) */
34
+ .row {
35
+ display: contents;
36
+ }
37
+
38
+ /* =========================
39
+ Interactive child (a/button/Link)
40
+ ========================= */
41
+ .interactive {
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: flex-start;
45
+ gap: var(--spacing-xs);
46
+
47
+ inline-size: 100%;
48
+ text-align: start;
49
+ text-decoration: none;
50
+
51
+ padding-block: calc(var(--spacing-xs) + var(--density));
52
+ padding-inline: var(--spacing-md);
53
+
54
+ background: transparent;
55
+ border: none;
56
+
57
+ font-family: var(--font-family);
58
+ font-size: var(--font-size-sm);
59
+ color: var(--color-text);
60
+ cursor: pointer;
61
+
62
+ border-radius: var(--border-radius-sm);
63
+
64
+ transition:
65
+ background-color var(--transition-fast) var(--ease-standard),
66
+ color var(--transition-fast) var(--ease-standard);
67
+ }
68
+ .interactive:hover {
69
+ background-color: var(--color-surface-hover);
70
+ }
71
+ .interactive:focus-visible {
72
+ outline: none;
73
+ box-shadow: var(--focus-ring);
74
+ }
75
+
76
+ /* Selected / active */
77
+ .active,
78
+ .interactive[aria-selected='true'] {
79
+ background-color: var(--color-bg-selected);
80
+ color: var(--color-text);
81
+ }
82
+
83
+ /* Disabled */
84
+ .interactive[aria-disabled='true'],
85
+ .interactive:disabled {
86
+ color: var(--color-disabled-text);
87
+ cursor: not-allowed;
88
+ pointer-events: none;
89
+ }
90
+
91
+ /* Icons inside items */
92
+ .interactive svg {
93
+ inline-size: var(--icon-size);
94
+ block-size: var(--icon-size);
95
+ }
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var lucideReact = require('lucide-react');
5
+ var Button = require('../button/Button');
6
+ var Menu = require('../menu/Menu');
7
+ var Popover = require('../popover/Popover');
8
+ var Chip = require('../chip/Chip');
9
+ var ClearButton = require('../clear-button/ClearButton');
10
+
11
+ function MultiSelect({
12
+ options,
13
+ selectedValues = [],
14
+ onChange,
15
+ children,
16
+ variant = "outlined",
17
+ size = "md",
18
+ onClear
19
+ }) {
20
+ return /* @__PURE__ */ jsxRuntime.jsx(
21
+ Popover.Popover,
22
+ {
23
+ trigger: (onClick, icon) => /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { variant, onClick, size, children: [
24
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
25
+ children || "V\xE6lg",
26
+ " ",
27
+ selectedValues.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(Chip.Chip, { size: "sm", severity: "info", children: `${selectedValues.length}` }) : null
28
+ ] }),
29
+ onClear && selectedValues.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(ClearButton.ClearButton, { onClick: onClear }),
30
+ icon
31
+ ] }),
32
+ children: /* @__PURE__ */ jsxRuntime.jsx(Menu.Menu, { children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(Menu.Menu.Item, { active: selectedValues == null ? void 0 : selectedValues.includes(option.value), children: /* @__PURE__ */ jsxRuntime.jsxs(
33
+ "button",
34
+ {
35
+ onClick: () => {
36
+ onChange(option.value);
37
+ },
38
+ children: [
39
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { pointerEvents: "none", display: "flex", alignItems: "center" }, children: (selectedValues == null ? void 0 : selectedValues.includes(option.value)) ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, {}) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, {}) }),
40
+ option.label
41
+ ]
42
+ }
43
+ ) }, option.value)) })
44
+ }
45
+ );
46
+ }
47
+
48
+ exports.MultiSelect = MultiSelect;
@@ -0,0 +1,18 @@
1
+ import { ButtonVariant } from '../button/Button';
2
+ interface MultiselectOption {
3
+ label: string;
4
+ value: string;
5
+ icon?: React.ReactNode;
6
+ }
7
+ interface MultiSelectProps {
8
+ options: MultiselectOption[];
9
+ selectedValues: string[];
10
+ onChange: (selectedValue: string) => void;
11
+ placeholder?: string;
12
+ children?: React.ReactNode;
13
+ variant?: ButtonVariant;
14
+ size?: 'sm' | 'md' | 'lg';
15
+ onClear?: () => void;
16
+ }
17
+ export declare function MultiSelect({ options, selectedValues, onChange, children, variant, size, onClear, }: MultiSelectProps): React.ReactNode;
18
+ export {};
@@ -0,0 +1,46 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Check, Square } from 'lucide-react';
3
+ import { Button } from '../button/Button';
4
+ import { Menu } from '../menu/Menu';
5
+ import { Popover } from '../popover/Popover';
6
+ import { Chip } from '../chip/Chip';
7
+ import { ClearButton } from '../clear-button/ClearButton';
8
+
9
+ function MultiSelect({
10
+ options,
11
+ selectedValues = [],
12
+ onChange,
13
+ children,
14
+ variant = "outlined",
15
+ size = "md",
16
+ onClear
17
+ }) {
18
+ return /* @__PURE__ */ jsx(
19
+ Popover,
20
+ {
21
+ trigger: (onClick, icon) => /* @__PURE__ */ jsxs(Button, { variant, onClick, size, children: [
22
+ /* @__PURE__ */ jsxs("span", { children: [
23
+ children || "V\xE6lg",
24
+ " ",
25
+ selectedValues.length > 0 ? /* @__PURE__ */ jsx(Chip, { size: "sm", severity: "info", children: `${selectedValues.length}` }) : null
26
+ ] }),
27
+ onClear && selectedValues.length > 0 && /* @__PURE__ */ jsx(ClearButton, { onClick: onClear }),
28
+ icon
29
+ ] }),
30
+ children: /* @__PURE__ */ jsx(Menu, { children: options.map((option) => /* @__PURE__ */ jsx(Menu.Item, { active: selectedValues == null ? void 0 : selectedValues.includes(option.value), children: /* @__PURE__ */ jsxs(
31
+ "button",
32
+ {
33
+ onClick: () => {
34
+ onChange(option.value);
35
+ },
36
+ children: [
37
+ /* @__PURE__ */ jsx("span", { style: { pointerEvents: "none", display: "flex", alignItems: "center" }, children: (selectedValues == null ? void 0 : selectedValues.includes(option.value)) ? /* @__PURE__ */ jsx(Check, {}) : /* @__PURE__ */ jsx(Square, {}) }),
38
+ option.label
39
+ ]
40
+ }
41
+ ) }, option.value)) })
42
+ }
43
+ );
44
+ }
45
+
46
+ export { MultiSelect };