@uva-glass/component-library 3.57.3 → 3.57.4

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 (36) hide show
  1. package/dist/{AddCatalogueLinkForm-Di0xm7Ep.js → AddCatalogueLinkForm-CvJoaUFz.js} +2 -2
  2. package/dist/{AddCatalogueLinkForm-Di0xm7Ep.js.map → AddCatalogueLinkForm-CvJoaUFz.js.map} +1 -1
  3. package/dist/{DataTable-Cgn_RKTA.js → DataTable-Guuh0GZc.js} +53 -49
  4. package/dist/DataTable-Guuh0GZc.js.map +1 -0
  5. package/dist/{FeedbackBar-DEDpoNy7.js → FeedbackBar-DsOWAAGt.js} +2 -2
  6. package/dist/{FeedbackBar-DEDpoNy7.js.map → FeedbackBar-DsOWAAGt.js.map} +1 -1
  7. package/dist/Repeater-DUo13Mq6.js +23 -0
  8. package/dist/Repeater-DUo13Mq6.js.map +1 -0
  9. package/dist/assets/DataTable.css +1 -1
  10. package/dist/assets/Repeater.css +1 -1
  11. package/dist/components/DataTable/DataTable.d.ts +3 -1
  12. package/dist/components/DataTable/DataTable.js +1 -1
  13. package/dist/components/DataTable/DataTable.stories.js +47 -56
  14. package/dist/components/DataTable/DataTable.stories.js.map +1 -1
  15. package/dist/components/DataTable/index.js +1 -1
  16. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js +1 -1
  17. package/dist/components/FeedbackBar/FeedbackBar.js +1 -1
  18. package/dist/components/FeedbackBar/FeedbackBar.stories.js +2 -2
  19. package/dist/components/FeedbackBar/FeedbackBar.test.js +1 -1
  20. package/dist/components/FeedbackBar/index.js +1 -1
  21. package/dist/components/FeedbackBox/FeedbackBox.stories.js +1 -1
  22. package/dist/components/PageOverlay/PageOverlay.stories.js +1 -1
  23. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +1 -1
  24. package/dist/components/Repeater/Repeater.d.ts +1 -1
  25. package/dist/components/Repeater/Repeater.js +1 -1
  26. package/dist/components/Repeater/Repeater.stories.js +1 -1
  27. package/dist/components/Repeater/index.js +1 -1
  28. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +1 -1
  29. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +1 -1
  30. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +1 -1
  31. package/dist/components/index.js +3 -3
  32. package/dist/index.js +3 -3
  33. package/package.json +8 -8
  34. package/dist/DataTable-Cgn_RKTA.js.map +0 -1
  35. package/dist/Repeater-BAEfOMZI.js +0 -22
  36. package/dist/Repeater-BAEfOMZI.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../DataTable-Cgn_RKTA.js";
1
+ import { t as e } from "../../DataTable-Guuh0GZc.js";
2
2
  export { e as DataTable };
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "../../ExpandableInfoPanel-BmbgbAjf.js";
2
- import { t } from "../../Repeater-BAEfOMZI.js";
2
+ import { t } from "../../Repeater-DUo13Mq6.js";
3
3
  import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
4
  var a = {
5
5
  title: "Molecules/ExpandableInfoPanel",
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../FeedbackBar-DEDpoNy7.js";
1
+ import { t as e } from "../../FeedbackBar-DsOWAAGt.js";
2
2
  export { e as FeedbackBar };
@@ -1,7 +1,7 @@
1
1
  import { Button as e } from "../Buttons/Button.js";
2
2
  import { t } from "../../ButtonGroup-D2z5UWTR.js";
3
- import { t as n } from "../../FeedbackBar-DEDpoNy7.js";
4
- import { t as r } from "../../Repeater-BAEfOMZI.js";
3
+ import { t as n } from "../../FeedbackBar-DsOWAAGt.js";
4
+ import { t as r } from "../../Repeater-DUo13Mq6.js";
5
5
  import { useState as i } from "react";
6
6
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  var s = {
@@ -1,5 +1,5 @@
1
1
  import "../../dist-oLwM--0y.js";
2
- import { t as e } from "../../FeedbackBar-DEDpoNy7.js";
2
+ import { t as e } from "../../FeedbackBar-DsOWAAGt.js";
3
3
  import { i as t, n, t as r } from "../../react.esm-DwWzhs9e.js";
4
4
  import { jsx as i } from "react/jsx-runtime";
5
5
  //#region src/components/FeedbackBar/FeedbackBar.test.tsx
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../FeedbackBar-DEDpoNy7.js";
1
+ import { t as e } from "../../FeedbackBar-DsOWAAGt.js";
2
2
  export { e as FeedbackBar };
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "../../FeedbackBox-BpOf_dxg.js";
2
- import { t } from "../../Repeater-BAEfOMZI.js";
2
+ import { t } from "../../Repeater-DUo13Mq6.js";
3
3
  import { t as n } from "../../Container-DOcrVe7u.js";
4
4
  import "../../storyComponents/Container/index.js";
5
5
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import { Button as e } from "../Buttons/Button.js";
2
2
  import { t } from "../../ButtonGroup-D2z5UWTR.js";
3
- import { t as n } from "../../Repeater-BAEfOMZI.js";
3
+ import { t as n } from "../../Repeater-DUo13Mq6.js";
4
4
  import { GridRow as r } from "../GridRow/GridRow.js";
5
5
  import { t as i } from "../../InputField-asFsxHvx.js";
6
6
  import { t as a } from "../../PageOverlay-BR9ypiar.js";
@@ -1,5 +1,5 @@
1
1
  import { Icon as e } from "../Icon/Icon.js";
2
- import { t } from "../../Repeater-BAEfOMZI.js";
2
+ import { t } from "../../Repeater-DUo13Mq6.js";
3
3
  import { t as n } from "../../ProgrammeCard-DdCFNx0d.js";
4
4
  import { t as r } from "../../Container-DOcrVe7u.js";
5
5
  import "../../storyComponents/Container/index.js";
@@ -3,7 +3,7 @@ export interface RepeaterProps {
3
3
  /** The direction of the items. */
4
4
  flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
5
5
  /** The gap between the items. */
6
- gap?: '025' | '050' | '075' | '100' | '150' | '200';
6
+ gap?: '000' | '025' | '050' | '075' | '100' | '150' | '200';
7
7
  }
8
8
  /** Represents a component to show a list of items. */
9
9
  export declare const Repeater: ({ children, flexDirection, gap }: PropsWithChildren<RepeaterProps>) => import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../Repeater-BAEfOMZI.js";
1
+ import { t as e } from "../../Repeater-DUo13Mq6.js";
2
2
  export { e as Repeater };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../Repeater-BAEfOMZI.js";
1
+ import { t as e } from "../../Repeater-DUo13Mq6.js";
2
2
  import { t } from "../../Container-DOcrVe7u.js";
3
3
  import "../../storyComponents/Container/index.js";
4
4
  import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../Repeater-BAEfOMZI.js";
1
+ import { t as e } from "../../Repeater-DUo13Mq6.js";
2
2
  export { e as Repeater };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../../../AddCatalogueLinkForm-Di0xm7Ep.js";
1
+ import { t as e } from "../../../../../AddCatalogueLinkForm-CvJoaUFz.js";
2
2
  export { e as AddCatalogueLinkForm };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../../../../AddCatalogueLinkForm-Di0xm7Ep.js";
1
+ import { t as e } from "../../../../../AddCatalogueLinkForm-CvJoaUFz.js";
2
2
  export { e as AddCatalogueLinkForm };
@@ -4,7 +4,7 @@ import { K as n, Kt as r, St as i, ar as a, bt as o, gn as s, s as c, un as l, w
4
4
  import { l as d } from "../../../../LexicalUtils.prod-CjGUKarD.js";
5
5
  import { $getLinkTypeFromNode as f, CourseCatalogueNode as p, INSERT_COURSE_CATALOGUE_LINK as m, REMOVE_COURSE_CATALOGUE_LINK as h } from "../../nodes/CourseCatalogueNode/CourseCatalogueNode.js";
6
6
  import { t as g } from "../../../../RteEditor.module-pWBasED2.js";
7
- import { t as _ } from "../../../../AddCatalogueLinkForm-Di0xm7Ep.js";
7
+ import { t as _ } from "../../../../AddCatalogueLinkForm-CvJoaUFz.js";
8
8
  import { useTranslation as v } from "../../hooks/useTranslation.js";
9
9
  import { useOnClickOutside as y } from "../../../hooks/useOnClickOutside.js";
10
10
  import { useEffect as b, useRef as x, useState as S } from "react";
@@ -20,13 +20,13 @@ import { t as v } from "../ControlsButton-Byx4XQtB.js";
20
20
  import { d as y, f as b, h as x, m as S, n as C, t as w, u as T } from "../components-CgBF6db6.js";
21
21
  import { t as E } from "../Chip-9XnXFhoJ.js";
22
22
  import { t as D } from "../CopyableText-BKsM-TuS.js";
23
- import { t as O } from "../DataTable-Cgn_RKTA.js";
23
+ import { t as O } from "../DataTable-Guuh0GZc.js";
24
24
  import { t as k } from "../Drawer-fUw0LEuj.js";
25
25
  import { t as A } from "../OverlayCloseButton-Dt6Yec8G.js";
26
26
  import { t as j } from "../EmptyStateDataDisplay-FBDAGO88.js";
27
27
  import { t as M } from "../ExpandableInfoPanel-BmbgbAjf.js";
28
- import { t as N } from "../FeedbackBar-DEDpoNy7.js";
29
- import { t as P } from "../Repeater-BAEfOMZI.js";
28
+ import { t as N } from "../FeedbackBar-DsOWAAGt.js";
29
+ import { t as P } from "../Repeater-DUo13Mq6.js";
30
30
  import { t as F } from "../FieldHint-FEBzgLI_.js";
31
31
  import { t as I } from "../Spinner-BmPjd2Bv.js";
32
32
  import { t as L } from "../Fieldset-CgnLyAyS.js";
package/dist/index.js CHANGED
@@ -20,13 +20,13 @@ import { t as v } from "./ControlsButton-Byx4XQtB.js";
20
20
  import { d as y, f as b, h as x, m as S, n as C, t as w, u as T } from "./components-CgBF6db6.js";
21
21
  import { t as E } from "./Chip-9XnXFhoJ.js";
22
22
  import { t as D } from "./CopyableText-BKsM-TuS.js";
23
- import { t as O } from "./DataTable-Cgn_RKTA.js";
23
+ import { t as O } from "./DataTable-Guuh0GZc.js";
24
24
  import { t as k } from "./Drawer-fUw0LEuj.js";
25
25
  import { t as A } from "./OverlayCloseButton-Dt6Yec8G.js";
26
26
  import { t as j } from "./EmptyStateDataDisplay-FBDAGO88.js";
27
27
  import { t as M } from "./ExpandableInfoPanel-BmbgbAjf.js";
28
- import { t as N } from "./FeedbackBar-DEDpoNy7.js";
29
- import { t as P } from "./Repeater-BAEfOMZI.js";
28
+ import { t as N } from "./FeedbackBar-DsOWAAGt.js";
29
+ import { t as P } from "./Repeater-DUo13Mq6.js";
30
30
  import { t as F } from "./FieldHint-FEBzgLI_.js";
31
31
  import { t as I } from "./Spinner-BmPjd2Bv.js";
32
32
  import { t as L } from "./Fieldset-CgnLyAyS.js";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@uva-glass/component-library",
3
3
  "author": "Team Glass - Frontend vrienden",
4
4
  "private": false,
5
- "version": "3.57.3",
5
+ "version": "3.57.4",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
@@ -54,8 +54,8 @@
54
54
  "@babel/preset-env": "^7.29.7",
55
55
  "@babel/preset-react": "^7.29.7",
56
56
  "@babel/preset-typescript": "^7.29.7",
57
- "@commitlint/cli": "^21.1.0",
58
- "@commitlint/config-conventional": "^21.1.0",
57
+ "@commitlint/cli": "^21.2.0",
58
+ "@commitlint/config-conventional": "^21.2.0",
59
59
  "@react-aria/button": "^3.15.1",
60
60
  "@react-aria/dialog": "^3.6.1",
61
61
  "@react-aria/focus": "^3.22.1",
@@ -63,7 +63,7 @@
63
63
  "@react-stately/overlays": "^3.7.1",
64
64
  "@react-types/dialog": "^3.6.0",
65
65
  "@semantic-release/git": "^10.0.1",
66
- "@semantic-release/gitlab": "^13.3.2",
66
+ "@semantic-release/gitlab": "^13.3.3",
67
67
  "@semantic-release/npm": "^13.1.5",
68
68
  "@storybook/addon-a11y": "^10.4.6",
69
69
  "@storybook/addon-docs": "^10.4.6",
@@ -77,7 +77,7 @@
77
77
  "@types/node": "^25.9.4",
78
78
  "@types/react": "^19.2.17",
79
79
  "@types/react-dom": "^19.2.3",
80
- "@uva-glass/eslint-config": "^1.4.3",
80
+ "@uva-glass/eslint-config": "^1.4.5",
81
81
  "@uva-glass/stylelint-config": "^1.3.0",
82
82
  "@vitejs/plugin-react": "^6.0.3",
83
83
  "babel-jest": "^30.4.1",
@@ -94,7 +94,7 @@
94
94
  "npm-run-all2": "^9.0.2",
95
95
  "react": "^19.2.7",
96
96
  "react-dom": "^19.2.7",
97
- "react-router": "^8.0.1",
97
+ "react-router": "^8.1.0",
98
98
  "semantic-release": "^25.0.5",
99
99
  "storybook": "^10.4.6",
100
100
  "style-dictionary": "^5.5.0",
@@ -104,7 +104,7 @@
104
104
  "stylelint-order": "^8.1.1",
105
105
  "ts-node": "^10.9.2",
106
106
  "typescript": "^5.9.3",
107
- "vite": "^8.1.0",
107
+ "vite": "^8.1.3",
108
108
  "vite-plugin-dts": "^5.0.3",
109
109
  "vite-plugin-lib-inject-css": "^2.2.2",
110
110
  "vite-plugin-static-copy": "^4.1.1",
@@ -123,7 +123,7 @@
123
123
  "lexical": "^0.46.0"
124
124
  },
125
125
  "optionalDependencies": {
126
- "@ast-grep/napi-linux-x64-gnu": "0.44.0",
126
+ "@ast-grep/napi-linux-x64-gnu": "0.44.1",
127
127
  "@rollup/rollup-linux-x64-gnu": "^4.62.2",
128
128
  "@rspack/binding-darwin-arm64": "1.7.12",
129
129
  "@rspack/binding-linux-x64-gnu": "1.7.12"
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataTable-Cgn_RKTA.js","names":[],"sources":["../src/components/DataTable/DataTable.module.css","../src/components/DataTable/DataTable.tsx"],"sourcesContent":[".data-table__container {\n height: 100%;\n overflow-y: auto;\n position: relative;\n width: 100%;\n}\n\n.data-table__spacer {\n background-color: transparent;\n width: 0.0625rem;\n}\n\n.data-table {\n border-collapse: collapse;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.data-table--virtualized {\n border-collapse: collapse;\n left: 0;\n position: sticky;\n top: 0;\n width: 100%;\n z-index: 10;\n}\n\n.data-table__row,\n.data-table__header-row {\n background-color: var(--color-uva-white);\n border-bottom: 0.0625rem solid var(--color-grey-300);\n}\n\n.data-table__row:hover {\n background-color: var(--color-grey-200);\n}\n\n.data-table__row--active {\n background-color: var(--color-navy-100);\n}\n\n.data-table__row--active:hover {\n background-color: var(--color-navy-200);\n}\n\n.data-table__cell {\n overflow: hidden;\n padding: 0.6875rem 0.75rem;\n text-align: left;\n vertical-align: baseline;\n white-space: nowrap;\n}\n\n.data-table__sticky-header {\n background-color: var(--color-uva-white);\n left: 0;\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.data-table__sticky-header::after {\n border-bottom: 0.0625rem solid var(--color-grey-300);\n content: \"\";\n display: block;\n height: 0.0625rem;\n left: 0;\n position: absolute;\n top: 100%;\n width: 100%;\n}\n\n.data-table__empty-state {\n color: var(--color-grey-600);\n font-size: 1rem;\n padding: 2rem;\n text-align: center;\n}\n","import { useCallback, useEffect, useMemo, useRef, useState, type ReactNode, type UIEvent } from 'react';\r\nimport { clsx } from 'clsx';\r\n\r\nimport styles from './DataTable.module.css';\r\nimport { useVirtualScroll } from './hooks/useVirtualScroll';\r\n\r\ntype DataTablePrimitive = string | number | boolean | null | undefined;\r\ntype DataTableRow = Record<string, DataTablePrimitive>;\r\nexport type DataTableColumnContent<TRow extends object> = ReactNode | ((row: TRow) => ReactNode);\r\ntype DataTableColumn<TRow extends object> = {\r\n key: Extract<keyof TRow, string>;\r\n label?: ReactNode | ((row: TRow) => ReactNode);\r\n cell?: ReactNode | ((row: TRow) => ReactNode);\r\n fixedWidth?: string;\r\n};\r\ntype DataRow<TRow extends object> = { visibleRows: Partial<TRow>[]; rowsToRender: TRow[] };\r\n\r\nexport type DataTableProps<TRow extends { id: string | number } = DataTableRow & { id: string | number }> = {\r\n /** The data to be displayed in the table */\r\n data: TRow[];\r\n /** The columns configuration for the table */\r\n columns?: DataTableColumn<TRow>[];\r\n /** Whether the table header should be sticky */\r\n stickyHeader?: boolean;\r\n /** Virtualization settings for the table */\r\n virtualize?: {\r\n /** The height of each row in pixels */\r\n rowHeight: number;\r\n /** The number of additional rows to render above and below the visible area for smoother scrolling */\r\n buffer?: number;\r\n } | null;\r\n /** The keys in the data objects that indicate whether a row is active (for styling purposes) */\r\n activeKeys?: (string | number)[];\r\n /** Message to display when there is no data */\r\n noDataMessage?: string;\r\n};\r\n\r\nconst DEFAULT_BUFFER = 4;\r\n\r\nexport const DataTable = <TRow extends { id: string | number } = DataTableRow & { id: string | number }>({\r\n data,\r\n columns,\r\n stickyHeader = false,\r\n virtualize = null,\r\n activeKeys = [],\r\n noDataMessage = 'No data to display',\r\n}: DataTableProps<TRow>) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const headerRef = useRef<HTMLTableSectionElement>(null);\r\n const headerRowRef = useRef<HTMLTableRowElement>(null);\r\n const tbodyRef = useRef<HTMLTableSectionElement>(null);\r\n const { visibleItems, totalHeight, offsetTop, onScroll, setContainerHeight } = useVirtualScroll({\r\n rowHeight: virtualize?.rowHeight ?? 0,\r\n buffer: virtualize?.buffer ?? DEFAULT_BUFFER,\r\n totalItems: data.length,\r\n });\r\n const throttling = useRef(false);\r\n const resizeThrottling = useRef(false);\r\n const [columnWidths, setColumnWidths] = useState<number[]>([]);\r\n\r\n const tableData: DataRow<TRow> = useMemo(() => {\r\n if (!columns) return { visibleRows: data, rowsToRender: data };\r\n const rowsToRender = virtualize ? visibleItems.map((index) => data[index]) : data;\r\n const visibleRows = rowsToRender.map((row) => {\r\n const newRow: Partial<TRow> = {};\r\n columns.forEach((col) => {\r\n newRow[col.key] = row[col.key];\r\n });\r\n return newRow;\r\n });\r\n return { visibleRows, rowsToRender };\r\n }, [columns, data, virtualize, visibleItems]);\r\n\r\n const handleScroll = useCallback(\r\n (event: UIEvent<HTMLDivElement>) => {\r\n if (!virtualize) return;\r\n\r\n const scrollTop = event.currentTarget.scrollTop;\r\n\r\n if (!throttling.current) {\r\n throttling.current = true;\r\n\r\n requestAnimationFrame(() => {\r\n onScroll({ currentTarget: { scrollTop } } as UIEvent<HTMLElement>);\r\n throttling.current = false;\r\n });\r\n }\r\n },\r\n [virtualize, onScroll]\r\n );\r\n\r\n const onRenderValue = (value: ((row: TRow) => ReactNode) | ReactNode, row?: TRow) =>\r\n typeof value === 'function' ? value(row!) : value;\r\n\r\n useEffect(() => {\r\n if (!virtualize || !containerRef.current) {\r\n return;\r\n }\r\n\r\n const handleResize = () => {\r\n const containerHeight = containerRef.current?.parentElement?.clientHeight ?? 0;\r\n\r\n if (!resizeThrottling.current) {\r\n resizeThrottling.current = true;\r\n\r\n requestAnimationFrame(() => {\r\n setContainerHeight(containerHeight);\r\n resizeThrottling.current = false;\r\n });\r\n }\r\n };\r\n window.addEventListener('resize', handleResize);\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n };\r\n }, [virtualize, setContainerHeight]);\r\n\r\n useEffect(() => {\r\n if (containerRef.current) {\r\n setContainerHeight(containerRef.current.parentElement?.clientHeight ?? 0);\r\n }\r\n }, [setContainerHeight]);\r\n\r\n useEffect(() => {\r\n containerRef.current?.scrollTo({ top: 0 });\r\n }, [data]);\r\n\r\n useEffect(() => {\r\n if (!stickyHeader || !tbodyRef.current) return;\r\n\r\n const measureWidths = () => {\r\n const firstRow = tbodyRef.current?.querySelector('tr');\r\n if (!firstRow) return;\r\n\r\n const cells = firstRow.querySelectorAll('td');\r\n const widths = Array.from(cells).map((cell) => cell.getBoundingClientRect().width);\r\n\r\n setColumnWidths(widths);\r\n };\r\n\r\n const observer = new ResizeObserver(() => {\r\n requestAnimationFrame(measureWidths);\r\n });\r\n\r\n observer.observe(tbodyRef.current);\r\n\r\n measureWidths();\r\n\r\n return () => observer.disconnect();\r\n }, [stickyHeader, tableData.visibleRows]);\r\n\r\n return data.length ? (\r\n <div className={styles['data-table__container']} onScroll={handleScroll} ref={containerRef}>\r\n {/* sticky header if virtualized */}\r\n {virtualize && stickyHeader && columns && (\r\n <table className={styles['data-table--virtualized']}>\r\n <thead className={styles['data-table__sticky-header']}>\r\n <tr className={styles['data-table__header-row']} ref={headerRowRef}>\r\n {columns &&\r\n columns.map((column, index) => {\r\n const forcedWidth = columnWidths[index] ? `${columnWidths[index]}px` : column.fixedWidth;\r\n return (\r\n <th\r\n key={column.key}\r\n className={styles['data-table__cell']}\r\n style={{\r\n width: forcedWidth,\r\n minWidth: forcedWidth,\r\n maxWidth: forcedWidth,\r\n }}\r\n >\r\n {onRenderValue(column?.label)}\r\n </th>\r\n );\r\n })}\r\n </tr>\r\n </thead>\r\n </table>\r\n )}\r\n\r\n <div className={styles['data-table__spacer']} style={{ height: totalHeight }} />\r\n <table\r\n className={styles['data-table']}\r\n style={virtualize ? { transform: `translateY(${offsetTop}px)` } : undefined}\r\n >\r\n {/* header */}\r\n <thead className={clsx({ [styles['data-table__sticky-header']]: stickyHeader })} ref={headerRef}>\r\n <tr className={styles['data-table__header-row']}>\r\n {!virtualize || !stickyHeader ? (\r\n columns &&\r\n columns.map((column, index) => {\r\n const forcedWidth = columnWidths[index] ? `${columnWidths[index]}px` : column.fixedWidth;\r\n return (\r\n <th key={column.key} className={styles['data-table__cell']} style={{ width: forcedWidth }}>\r\n {onRenderValue(column?.label)}\r\n </th>\r\n );\r\n })\r\n ) : (\r\n <th colSpan={columns?.length} style={{ height: headerRowRef.current?.clientHeight }} />\r\n )}\r\n </tr>\r\n </thead>\r\n\r\n {/* data rows */}\r\n <tbody ref={tbodyRef}>\r\n {tableData.visibleRows.map((row, index) => (\r\n <tr\r\n key={tableData.rowsToRender[index].id}\r\n className={clsx(styles['data-table__row'], {\r\n [styles['data-table__row--active']]: activeKeys?.includes(tableData.rowsToRender[index].id),\r\n })}\r\n >\r\n {Object.entries(row as Record<string, unknown>).map(([key]) => {\r\n const column = columns?.find((col) => col.key === key);\r\n return (\r\n <td\r\n key={key}\r\n className={styles['data-table__cell']}\r\n style={{\r\n width: column?.fixedWidth,\r\n height: virtualize ? virtualize.rowHeight : undefined,\r\n maxHeight: virtualize ? virtualize.rowHeight : undefined,\r\n }}\r\n >\r\n {onRenderValue(column?.cell, tableData.rowsToRender[index])}\r\n </td>\r\n );\r\n })}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n ) : (\r\n <div className={styles['data-table__empty-state']}>{noDataMessage}</div>\r\n );\r\n};\r\n"],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import { t as e } from "./clsx-C67XSbzZ.js";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import './assets/Repeater.css';var n = {
4
- repeater: "_repeater_12czp_1",
5
- "repeater--row": "_repeater--row_12czp_5",
6
- "repeater--row-reverse": "_repeater--row-reverse_12czp_9",
7
- "repeater--column": "_repeater--column_12czp_13",
8
- "repeater--column-reverse": "_repeater--column-reverse_12czp_17",
9
- "repeater--gap-025": "_repeater--gap-025_12czp_21",
10
- "repeater--gap-050": "_repeater--gap-050_12czp_25",
11
- "repeater--gap-075": "_repeater--gap-075_12czp_29",
12
- "repeater--gap-100": "_repeater--gap-100_12czp_33",
13
- "repeater--gap-150": "_repeater--gap-150_12czp_37",
14
- "repeater--gap-200": "_repeater--gap-200_12czp_41"
15
- }, r = ({ children: r, flexDirection: i = "column", gap: a = "050" }) => /* @__PURE__ */ t("div", {
16
- className: e(n.repeater, n[`repeater--${i}`], n[`repeater--gap-${a}`]),
17
- children: r
18
- });
19
- //#endregion
20
- export { r as t };
21
-
22
- //# sourceMappingURL=Repeater-BAEfOMZI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Repeater-BAEfOMZI.js","names":[],"sources":["../src/components/Repeater/Repeater.module.css","../src/components/Repeater/Repeater.tsx"],"sourcesContent":[".repeater {\n display: flex;\n}\n\n.repeater--row {\n flex-direction: row;\n}\n\n.repeater--row-reverse {\n flex-direction: row-reverse;\n}\n\n.repeater--column {\n flex-direction: column;\n}\n\n.repeater--column-reverse {\n flex-direction: column-reverse;\n}\n\n.repeater--gap-025 {\n gap: 0.25rem;\n}\n\n.repeater--gap-050 {\n gap: 0.5rem;\n}\n\n.repeater--gap-075 {\n gap: 0.75rem;\n}\n\n.repeater--gap-100 {\n gap: 1rem;\n}\n\n.repeater--gap-150 {\n gap: 1.5rem;\n}\n\n.repeater--gap-200 {\n gap: 2rem;\n}\n","import { clsx } from 'clsx';\n\nimport type { PropsWithChildren } from 'react';\n\nimport styles from './Repeater.module.css';\n\nexport interface RepeaterProps {\n /** The direction of the items. */\n flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';\n /** The gap between the items. */\n gap?: '025' | '050' | '075' | '100' | '150' | '200';\n}\n\n/** Represents a component to show a list of items. */\nexport const Repeater = ({ children, flexDirection = 'column', gap = '050' }: PropsWithChildren<RepeaterProps>) => {\n return (\n <div className={clsx(styles['repeater'], styles[`repeater--${flexDirection}`], styles[`repeater--gap-${gap}`])}>\n {children}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;GCca,KAAY,EAAE,aAAU,mBAAgB,UAAU,SAAM,YAEjE,kBAAC,OAAD;CAAK,WAAW,EAAK,EAAO,UAAa,EAAO,aAAa,MAAkB,EAAO,iBAAiB,IAAM;CAC1G;AACE,CAAA"}