@veeqo/ui 9.9.2 → 9.9.5

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 (131) hide show
  1. package/dist/_virtual/____insertStyle.cjs +14 -0
  2. package/dist/_virtual/____insertStyle.cjs.map +1 -0
  3. package/dist/_virtual/____insertStyle.js +12 -0
  4. package/dist/_virtual/____insertStyle.js.map +1 -0
  5. package/dist/components/DataGrid/DataGrid.cjs +6 -3
  6. package/dist/components/DataGrid/DataGrid.cjs.map +1 -1
  7. package/dist/components/DataGrid/DataGrid.d.ts +1 -1
  8. package/dist/components/DataGrid/DataGrid.js +6 -3
  9. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  10. package/dist/components/DataGrid/DataGrid.module.scss.cjs +9 -0
  11. package/dist/components/DataGrid/DataGrid.module.scss.cjs.map +1 -0
  12. package/dist/components/DataGrid/DataGrid.module.scss.js +7 -0
  13. package/dist/components/DataGrid/DataGrid.module.scss.js.map +1 -0
  14. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs +6 -2
  15. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs.map +1 -1
  16. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js +6 -2
  17. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js.map +1 -1
  18. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.scss.cjs +9 -0
  19. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.scss.cjs.map +1 -0
  20. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.scss.js +7 -0
  21. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.scss.js.map +1 -0
  22. package/dist/components/DataGrid/components/CellContent/CellContent.cjs +1 -1
  23. package/dist/components/DataGrid/components/CellContent/CellContent.cjs.map +1 -1
  24. package/dist/components/DataGrid/components/CellContent/CellContent.js +2 -2
  25. package/dist/components/DataGrid/components/CellContent/CellContent.js.map +1 -1
  26. package/dist/components/DataGrid/components/CellContent/CellContent.module.scss.cjs +9 -0
  27. package/dist/components/DataGrid/components/CellContent/CellContent.module.scss.cjs.map +1 -0
  28. package/dist/components/DataGrid/components/CellContent/CellContent.module.scss.js +7 -0
  29. package/dist/components/DataGrid/components/CellContent/CellContent.module.scss.js.map +1 -0
  30. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.cjs +1 -1
  31. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.cjs.map +1 -1
  32. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.js +2 -2
  33. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.js.map +1 -1
  34. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.scss.cjs +9 -0
  35. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.scss.cjs.map +1 -0
  36. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.scss.js +7 -0
  37. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.scss.js.map +1 -0
  38. package/dist/components/DataGrid/components/GridContainer/Container/Container.cjs +1 -1
  39. package/dist/components/DataGrid/components/GridContainer/Container/Container.cjs.map +1 -1
  40. package/dist/components/DataGrid/components/GridContainer/Container/Container.js +5 -5
  41. package/dist/components/DataGrid/components/GridContainer/Container/Container.js.map +1 -1
  42. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.scss.cjs +9 -0
  43. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.scss.cjs.map +1 -0
  44. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.scss.js +7 -0
  45. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.scss.js.map +1 -0
  46. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs +1 -1
  47. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs.map +1 -1
  48. package/dist/components/DataGrid/components/GridContainer/GridContainer.js +2 -2
  49. package/dist/components/DataGrid/components/GridContainer/GridContainer.js.map +1 -1
  50. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.scss.cjs +9 -0
  51. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.scss.cjs.map +1 -0
  52. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.scss.js +7 -0
  53. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.scss.js.map +1 -0
  54. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs +1 -1
  55. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs.map +1 -1
  56. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js +4 -4
  57. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js.map +1 -1
  58. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.scss.cjs +9 -0
  59. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.scss.cjs.map +1 -0
  60. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.scss.js +7 -0
  61. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.scss.js.map +1 -0
  62. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.cjs +1 -1
  63. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.cjs.map +1 -1
  64. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.js +2 -2
  65. package/dist/components/DataGrid/components/Header/HeaderCell/SortIcon/SortIcon.js.map +1 -1
  66. package/dist/components/DataGrid/components/Header/Resizer/Resizer.cjs +1 -1
  67. package/dist/components/DataGrid/components/Header/Resizer/Resizer.cjs.map +1 -1
  68. package/dist/components/DataGrid/components/Header/Resizer/Resizer.js +2 -2
  69. package/dist/components/DataGrid/components/Header/Resizer/Resizer.js.map +1 -1
  70. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.scss.cjs +9 -0
  71. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.scss.cjs.map +1 -0
  72. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.scss.js +7 -0
  73. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.scss.js.map +1 -0
  74. package/dist/components/DataGrid/hooks/index.d.ts +1 -0
  75. package/dist/components/DataGrid/hooks/useKeyboardNavigation.cjs +112 -0
  76. package/dist/components/DataGrid/hooks/useKeyboardNavigation.cjs.map +1 -0
  77. package/dist/components/DataGrid/hooks/useKeyboardNavigation.d.ts +14 -0
  78. package/dist/components/DataGrid/hooks/useKeyboardNavigation.js +110 -0
  79. package/dist/components/DataGrid/hooks/useKeyboardNavigation.js.map +1 -0
  80. package/dist/components/DataGrid/types/DataGridProps.d.ts +5 -0
  81. package/dist/components/DataGrid/utils/getAriaRoles.cjs +9 -3
  82. package/dist/components/DataGrid/utils/getAriaRoles.cjs.map +1 -1
  83. package/dist/components/DataGrid/utils/getAriaRoles.d.ts +1 -1
  84. package/dist/components/DataGrid/utils/getAriaRoles.js +9 -3
  85. package/dist/components/DataGrid/utils/getAriaRoles.js.map +1 -1
  86. package/dist/components/DataGrid/utils/pinnedColumnUtils.cjs +1 -1
  87. package/dist/components/DataGrid/utils/pinnedColumnUtils.cjs.map +1 -1
  88. package/dist/components/DataGrid/utils/pinnedColumnUtils.js +3 -3
  89. package/dist/components/DataGrid/utils/pinnedColumnUtils.js.map +1 -1
  90. package/dist/components/Popover/hooks/useHandleFocus.cjs +4 -4
  91. package/dist/components/Popover/hooks/useHandleFocus.cjs.map +1 -1
  92. package/dist/components/Popover/hooks/useHandleFocus.js +1 -1
  93. package/dist/components/Popover/hooks/useHandleFocus.js.map +1 -1
  94. package/dist/utils/tabbableSelectors.cjs +6 -0
  95. package/dist/utils/tabbableSelectors.cjs.map +1 -0
  96. package/dist/utils/tabbableSelectors.d.ts +1 -0
  97. package/dist/utils/tabbableSelectors.js +4 -0
  98. package/dist/utils/tabbableSelectors.js.map +1 -0
  99. package/package.json +2 -1
  100. package/dist/components/DataGrid/DataGrid.module.css.cjs +0 -13
  101. package/dist/components/DataGrid/DataGrid.module.css.cjs.map +0 -1
  102. package/dist/components/DataGrid/DataGrid.module.css.js +0 -10
  103. package/dist/components/DataGrid/DataGrid.module.css.js.map +0 -1
  104. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.cjs +0 -11
  105. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.cjs.map +0 -1
  106. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.js +0 -9
  107. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.js.map +0 -1
  108. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.cjs +0 -11
  109. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.cjs.map +0 -1
  110. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.js +0 -9
  111. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.js.map +0 -1
  112. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.cjs +0 -11
  113. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.cjs.map +0 -1
  114. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.js +0 -9
  115. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.js.map +0 -1
  116. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.css.cjs +0 -17
  117. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.css.cjs.map +0 -1
  118. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.css.js +0 -12
  119. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.css.js.map +0 -1
  120. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.css.cjs +0 -11
  121. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.css.cjs.map +0 -1
  122. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.css.js +0 -9
  123. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.css.js.map +0 -1
  124. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.cjs +0 -19
  125. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.cjs.map +0 -1
  126. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.js +0 -13
  127. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.js.map +0 -1
  128. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.css.cjs +0 -11
  129. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.css.cjs.map +0 -1
  130. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.css.js +0 -9
  131. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.css.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardNavigation.cjs","sources":["../../../../src/components/DataGrid/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { RefObject, useEffect } from 'react';\n\nimport { TABBABLE_SELECTORS } from '../../../utils/tabbableSelectors';\nimport { DataGridProps } from '../types';\n\ntype UseKeyboardNavigationProps = Pick<DataGridProps, 'enableKeyboardNavigation'> & {\n tableRef: RefObject<HTMLTableElement>;\n};\n\n/**\n * Finds a target element to be selected within a table cell element. If the table cell\n * contains focusable children, the first child will be returned, otherwise we'll simply\n * focus on the table cell.\n */\nconst findTargetElement = (tableCell: HTMLElement): HTMLElement => {\n const validChildTarget: HTMLElement | null = tableCell.querySelector(TABBABLE_SELECTORS);\n return validChildTarget ?? tableCell;\n};\n\n/**\n * Finds the next available cell that can be focused by the user, within the next row.\n */\nconst findNextCell = (nextRow: HTMLTableRowElement, nextCellIndex: number) => {\n if (\n nextCellIndex >= nextRow.cells.length ||\n nextRow.cells[nextCellIndex].hasAttribute('aria-hidden')\n ) {\n // Ignore (skip) cells that are marked as hidden. Find the next available cell (if there is one) that is visible.\n return [...nextRow.cells].reverse().find((cell) => !cell.hasAttribute('aria-hidden'));\n }\n\n return nextRow.cells[nextCellIndex];\n};\n\n/**\n * Handles a `keydown` event from within the table. Navigates between cells using the arrow keys.\n * @param table The table element.\n * @param event The keyboard event.\n */\nconst handleKeyDown = (table: HTMLTableElement, event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n\n if (!table) return;\n\n const currentCell = target.closest('td, th') as HTMLElement;\n if (!currentCell) return;\n\n const currentRow = currentCell.parentElement as HTMLTableRowElement;\n if (!currentRow) return;\n\n const rowIndex = Array.from(table.querySelectorAll('tr')).indexOf(currentRow);\n const cellIndex = Array.from(currentRow.children).indexOf(currentCell);\n\n let nextRowIndex = rowIndex;\n let nextCellIndex = cellIndex;\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n nextRowIndex = Math.max(0, rowIndex - 1);\n break;\n case 'ArrowDown':\n event.preventDefault();\n nextRowIndex = Math.min(table.rows.length - 1, rowIndex + 1);\n break;\n case 'ArrowLeft':\n event.preventDefault();\n nextCellIndex = Math.max(0, cellIndex - 1);\n break;\n case 'ArrowRight':\n event.preventDefault();\n nextCellIndex = Math.min(currentRow.cells.length - 1, cellIndex + 1);\n break;\n default:\n return;\n }\n\n const nextRow = table.rows[nextRowIndex];\n const nextCell = findNextCell(nextRow, nextCellIndex);\n\n if (nextCell) {\n const nextTarget = findTargetElement(nextCell);\n nextTarget.setAttribute('tabindex', '0');\n nextTarget.scrollIntoView?.({ inline: 'nearest', block: 'nearest' });\n nextTarget.focus();\n\n // Clear the tabindex when the element loses focus\n nextTarget.addEventListener(\n 'blur',\n () => {\n if (nextTarget.attributes.getNamedItem('data-first')) {\n return;\n }\n\n nextTarget.removeAttribute('tabindex');\n },\n { once: true },\n );\n }\n};\n\n/**\n * Hook which sets up keyboard navigation within the `DataGrid` component using the arrow keys, can be disabled\n * with the `enableKeyboardNavigation` prop.\n *\n * Supports navigating between cells and rows, with the focus directed either towards the cell element, or\n * the first interactive child if one is present.\n */\nexport const useKeyboardNavigation = ({\n enableKeyboardNavigation,\n tableRef,\n}: UseKeyboardNavigationProps) => {\n useEffect(() => {\n if (!tableRef.current || !enableKeyboardNavigation) {\n return undefined;\n }\n\n const table = tableRef.current;\n\n // Find the first column header in the table, and assign it a tabindex.\n const firstElement = table.querySelector('th') as HTMLElement;\n if (!firstElement) return undefined;\n const firstTarget = findTargetElement(firstElement);\n\n firstTarget.setAttribute('tabindex', '0');\n firstTarget.setAttribute('data-first', '');\n\n const handler = (event: KeyboardEvent) => handleKeyDown(table, event);\n table.addEventListener('keydown', handler);\n\n return () => {\n table.removeEventListener('keydown', handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tableRef, enableKeyboardNavigation]);\n};\n"],"names":["TABBABLE_SELECTORS","useEffect"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { RefObject } from 'react';
2
+ import { DataGridProps } from '../types';
3
+ type UseKeyboardNavigationProps = Pick<DataGridProps, 'enableKeyboardNavigation'> & {
4
+ tableRef: RefObject<HTMLTableElement>;
5
+ };
6
+ /**
7
+ * Hook which sets up keyboard navigation within the `DataGrid` component using the arrow keys, can be disabled
8
+ * with the `enableKeyboardNavigation` prop.
9
+ *
10
+ * Supports navigating between cells and rows, with the focus directed either towards the cell element, or
11
+ * the first interactive child if one is present.
12
+ */
13
+ export declare const useKeyboardNavigation: ({ enableKeyboardNavigation, tableRef, }: UseKeyboardNavigationProps) => void;
14
+ export {};
@@ -0,0 +1,110 @@
1
+ import { useEffect } from 'react';
2
+ import { TABBABLE_SELECTORS } from '../../../utils/tabbableSelectors.js';
3
+
4
+ /**
5
+ * Finds a target element to be selected within a table cell element. If the table cell
6
+ * contains focusable children, the first child will be returned, otherwise we'll simply
7
+ * focus on the table cell.
8
+ */
9
+ const findTargetElement = (tableCell) => {
10
+ const validChildTarget = tableCell.querySelector(TABBABLE_SELECTORS);
11
+ return validChildTarget !== null && validChildTarget !== undefined ? validChildTarget : tableCell;
12
+ };
13
+ /**
14
+ * Finds the next available cell that can be focused by the user, within the next row.
15
+ */
16
+ const findNextCell = (nextRow, nextCellIndex) => {
17
+ if (nextCellIndex >= nextRow.cells.length ||
18
+ nextRow.cells[nextCellIndex].hasAttribute('aria-hidden')) {
19
+ // Ignore (skip) cells that are marked as hidden. Find the next available cell (if there is one) that is visible.
20
+ return [...nextRow.cells].reverse().find((cell) => !cell.hasAttribute('aria-hidden'));
21
+ }
22
+ return nextRow.cells[nextCellIndex];
23
+ };
24
+ /**
25
+ * Handles a `keydown` event from within the table. Navigates between cells using the arrow keys.
26
+ * @param table The table element.
27
+ * @param event The keyboard event.
28
+ */
29
+ const handleKeyDown = (table, event) => {
30
+ var _a;
31
+ const target = event.target;
32
+ if (!table)
33
+ return;
34
+ const currentCell = target.closest('td, th');
35
+ if (!currentCell)
36
+ return;
37
+ const currentRow = currentCell.parentElement;
38
+ if (!currentRow)
39
+ return;
40
+ const rowIndex = Array.from(table.querySelectorAll('tr')).indexOf(currentRow);
41
+ const cellIndex = Array.from(currentRow.children).indexOf(currentCell);
42
+ let nextRowIndex = rowIndex;
43
+ let nextCellIndex = cellIndex;
44
+ switch (event.key) {
45
+ case 'ArrowUp':
46
+ event.preventDefault();
47
+ nextRowIndex = Math.max(0, rowIndex - 1);
48
+ break;
49
+ case 'ArrowDown':
50
+ event.preventDefault();
51
+ nextRowIndex = Math.min(table.rows.length - 1, rowIndex + 1);
52
+ break;
53
+ case 'ArrowLeft':
54
+ event.preventDefault();
55
+ nextCellIndex = Math.max(0, cellIndex - 1);
56
+ break;
57
+ case 'ArrowRight':
58
+ event.preventDefault();
59
+ nextCellIndex = Math.min(currentRow.cells.length - 1, cellIndex + 1);
60
+ break;
61
+ default:
62
+ return;
63
+ }
64
+ const nextRow = table.rows[nextRowIndex];
65
+ const nextCell = findNextCell(nextRow, nextCellIndex);
66
+ if (nextCell) {
67
+ const nextTarget = findTargetElement(nextCell);
68
+ nextTarget.setAttribute('tabindex', '0');
69
+ (_a = nextTarget.scrollIntoView) === null || _a === undefined ? undefined : _a.call(nextTarget, { inline: 'nearest', block: 'nearest' });
70
+ nextTarget.focus();
71
+ // Clear the tabindex when the element loses focus
72
+ nextTarget.addEventListener('blur', () => {
73
+ if (nextTarget.attributes.getNamedItem('data-first')) {
74
+ return;
75
+ }
76
+ nextTarget.removeAttribute('tabindex');
77
+ }, { once: true });
78
+ }
79
+ };
80
+ /**
81
+ * Hook which sets up keyboard navigation within the `DataGrid` component using the arrow keys, can be disabled
82
+ * with the `enableKeyboardNavigation` prop.
83
+ *
84
+ * Supports navigating between cells and rows, with the focus directed either towards the cell element, or
85
+ * the first interactive child if one is present.
86
+ */
87
+ const useKeyboardNavigation = ({ enableKeyboardNavigation, tableRef, }) => {
88
+ useEffect(() => {
89
+ if (!tableRef.current || !enableKeyboardNavigation) {
90
+ return undefined;
91
+ }
92
+ const table = tableRef.current;
93
+ // Find the first column header in the table, and assign it a tabindex.
94
+ const firstElement = table.querySelector('th');
95
+ if (!firstElement)
96
+ return undefined;
97
+ const firstTarget = findTargetElement(firstElement);
98
+ firstTarget.setAttribute('tabindex', '0');
99
+ firstTarget.setAttribute('data-first', '');
100
+ const handler = (event) => handleKeyDown(table, event);
101
+ table.addEventListener('keydown', handler);
102
+ return () => {
103
+ table.removeEventListener('keydown', handler);
104
+ };
105
+ // eslint-disable-next-line react-hooks/exhaustive-deps
106
+ }, [tableRef, enableKeyboardNavigation]);
107
+ };
108
+
109
+ export { useKeyboardNavigation };
110
+ //# sourceMappingURL=useKeyboardNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/DataGrid/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { RefObject, useEffect } from 'react';\n\nimport { TABBABLE_SELECTORS } from '../../../utils/tabbableSelectors';\nimport { DataGridProps } from '../types';\n\ntype UseKeyboardNavigationProps = Pick<DataGridProps, 'enableKeyboardNavigation'> & {\n tableRef: RefObject<HTMLTableElement>;\n};\n\n/**\n * Finds a target element to be selected within a table cell element. If the table cell\n * contains focusable children, the first child will be returned, otherwise we'll simply\n * focus on the table cell.\n */\nconst findTargetElement = (tableCell: HTMLElement): HTMLElement => {\n const validChildTarget: HTMLElement | null = tableCell.querySelector(TABBABLE_SELECTORS);\n return validChildTarget ?? tableCell;\n};\n\n/**\n * Finds the next available cell that can be focused by the user, within the next row.\n */\nconst findNextCell = (nextRow: HTMLTableRowElement, nextCellIndex: number) => {\n if (\n nextCellIndex >= nextRow.cells.length ||\n nextRow.cells[nextCellIndex].hasAttribute('aria-hidden')\n ) {\n // Ignore (skip) cells that are marked as hidden. Find the next available cell (if there is one) that is visible.\n return [...nextRow.cells].reverse().find((cell) => !cell.hasAttribute('aria-hidden'));\n }\n\n return nextRow.cells[nextCellIndex];\n};\n\n/**\n * Handles a `keydown` event from within the table. Navigates between cells using the arrow keys.\n * @param table The table element.\n * @param event The keyboard event.\n */\nconst handleKeyDown = (table: HTMLTableElement, event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n\n if (!table) return;\n\n const currentCell = target.closest('td, th') as HTMLElement;\n if (!currentCell) return;\n\n const currentRow = currentCell.parentElement as HTMLTableRowElement;\n if (!currentRow) return;\n\n const rowIndex = Array.from(table.querySelectorAll('tr')).indexOf(currentRow);\n const cellIndex = Array.from(currentRow.children).indexOf(currentCell);\n\n let nextRowIndex = rowIndex;\n let nextCellIndex = cellIndex;\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n nextRowIndex = Math.max(0, rowIndex - 1);\n break;\n case 'ArrowDown':\n event.preventDefault();\n nextRowIndex = Math.min(table.rows.length - 1, rowIndex + 1);\n break;\n case 'ArrowLeft':\n event.preventDefault();\n nextCellIndex = Math.max(0, cellIndex - 1);\n break;\n case 'ArrowRight':\n event.preventDefault();\n nextCellIndex = Math.min(currentRow.cells.length - 1, cellIndex + 1);\n break;\n default:\n return;\n }\n\n const nextRow = table.rows[nextRowIndex];\n const nextCell = findNextCell(nextRow, nextCellIndex);\n\n if (nextCell) {\n const nextTarget = findTargetElement(nextCell);\n nextTarget.setAttribute('tabindex', '0');\n nextTarget.scrollIntoView?.({ inline: 'nearest', block: 'nearest' });\n nextTarget.focus();\n\n // Clear the tabindex when the element loses focus\n nextTarget.addEventListener(\n 'blur',\n () => {\n if (nextTarget.attributes.getNamedItem('data-first')) {\n return;\n }\n\n nextTarget.removeAttribute('tabindex');\n },\n { once: true },\n );\n }\n};\n\n/**\n * Hook which sets up keyboard navigation within the `DataGrid` component using the arrow keys, can be disabled\n * with the `enableKeyboardNavigation` prop.\n *\n * Supports navigating between cells and rows, with the focus directed either towards the cell element, or\n * the first interactive child if one is present.\n */\nexport const useKeyboardNavigation = ({\n enableKeyboardNavigation,\n tableRef,\n}: UseKeyboardNavigationProps) => {\n useEffect(() => {\n if (!tableRef.current || !enableKeyboardNavigation) {\n return undefined;\n }\n\n const table = tableRef.current;\n\n // Find the first column header in the table, and assign it a tabindex.\n const firstElement = table.querySelector('th') as HTMLElement;\n if (!firstElement) return undefined;\n const firstTarget = findTargetElement(firstElement);\n\n firstTarget.setAttribute('tabindex', '0');\n firstTarget.setAttribute('data-first', '');\n\n const handler = (event: KeyboardEvent) => handleKeyDown(table, event);\n table.addEventListener('keydown', handler);\n\n return () => {\n table.removeEventListener('keydown', handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tableRef, enableKeyboardNavigation]);\n};\n"],"names":[],"mappings":"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"}
@@ -44,6 +44,11 @@ export type DataGridProps = Pick<AriaAttributes, 'aria-label'> & {
44
44
  * Additional styles to be applied to the grid container.
45
45
  */
46
46
  containerStyle?: React.CSSProperties;
47
+ /**
48
+ * Enable/disable keyboard navigation within the grid. Using the arrow keys will move users between cells and rows, selecting either the cell (if no interactive children are found),
49
+ * or the first interactive child within the cell (if one is present).
50
+ */
51
+ enableKeyboardNavigation?: boolean;
47
52
  /** Columns */
48
53
  /**
49
54
  * Column definitions. It is not recommended that you modify these once the table has been initialized, since internal state
@@ -1,9 +1,15 @@
1
1
  'use strict';
2
2
 
3
- const getAriaRoles = () => {
3
+ const getAriaRoles = (enableKeyboardNavigation) => {
4
+ if (!enableKeyboardNavigation) {
5
+ return {
6
+ table: 'table',
7
+ cell: 'cell',
8
+ };
9
+ }
4
10
  return {
5
- table: 'table',
6
- cell: 'cell',
11
+ table: 'grid',
12
+ cell: 'gridcell',
7
13
  };
8
14
  };
9
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"getAriaRoles.cjs","sources":["../../../../src/components/DataGrid/utils/getAriaRoles.ts"],"sourcesContent":["import { AriaRoles } from '../types/AriaRoles';\n\nexport const getAriaRoles = (): AriaRoles => {\n return {\n table: 'table',\n cell: 'cell',\n };\n};\n"],"names":[],"mappings":";;AAEO,MAAM,YAAY,GAAG,MAAgB;IAC1C,OAAO;AACL,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;KACb;AACH;;;;"}
1
+ {"version":3,"file":"getAriaRoles.cjs","sources":["../../../../src/components/DataGrid/utils/getAriaRoles.ts"],"sourcesContent":["import { AriaRoles } from '../types/AriaRoles';\n\nexport const getAriaRoles = (enableKeyboardNavigation: boolean): AriaRoles => {\n if (!enableKeyboardNavigation) {\n return {\n table: 'table',\n cell: 'cell',\n };\n }\n\n return {\n table: 'grid',\n cell: 'gridcell',\n };\n};\n"],"names":[],"mappings":";;AAEa,MAAA,YAAY,GAAG,CAAC,wBAAiC,KAAe;IAC3E,IAAI,CAAC,wBAAwB,EAAE;QAC7B,OAAO;AACL,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE,MAAM;SACb;AACF;IAED,OAAO;AACL,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,UAAU;KACjB;AACH;;;;"}
@@ -1,2 +1,2 @@
1
1
  import { AriaRoles } from '../types/AriaRoles';
2
- export declare const getAriaRoles: () => AriaRoles;
2
+ export declare const getAriaRoles: (enableKeyboardNavigation: boolean) => AriaRoles;
@@ -1,7 +1,13 @@
1
- const getAriaRoles = () => {
1
+ const getAriaRoles = (enableKeyboardNavigation) => {
2
+ if (!enableKeyboardNavigation) {
3
+ return {
4
+ table: 'table',
5
+ cell: 'cell',
6
+ };
7
+ }
2
8
  return {
3
- table: 'table',
4
- cell: 'cell',
9
+ table: 'grid',
10
+ cell: 'gridcell',
5
11
  };
6
12
  };
7
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"getAriaRoles.js","sources":["../../../../src/components/DataGrid/utils/getAriaRoles.ts"],"sourcesContent":["import { AriaRoles } from '../types/AriaRoles';\n\nexport const getAriaRoles = (): AriaRoles => {\n return {\n table: 'table',\n cell: 'cell',\n };\n};\n"],"names":[],"mappings":"AAEO,MAAM,YAAY,GAAG,MAAgB;IAC1C,OAAO;AACL,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;KACb;AACH;;;;"}
1
+ {"version":3,"file":"getAriaRoles.js","sources":["../../../../src/components/DataGrid/utils/getAriaRoles.ts"],"sourcesContent":["import { AriaRoles } from '../types/AriaRoles';\n\nexport const getAriaRoles = (enableKeyboardNavigation: boolean): AriaRoles => {\n if (!enableKeyboardNavigation) {\n return {\n table: 'table',\n cell: 'cell',\n };\n }\n\n return {\n table: 'grid',\n cell: 'gridcell',\n };\n};\n"],"names":[],"mappings":"AAEa,MAAA,YAAY,GAAG,CAAC,wBAAiC,KAAe;IAC3E,IAAI,CAAC,wBAAwB,EAAE;QAC7B,OAAO;AACL,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE,MAAM;SACb;AACF;IAED,OAAO;AACL,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,UAAU;KACjB;AACH;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var DataGrid_module = require('../DataGrid.module.css.cjs');
3
+ var DataGrid_module = require('../DataGrid.module.scss.cjs');
4
4
 
5
5
  const getPinnedColumnStyles = (column) => {
6
6
  const isPinned = column.getIsPinned();
@@ -1 +1 @@
1
- {"version":3,"file":"pinnedColumnUtils.cjs","sources":["../../../../src/components/DataGrid/utils/pinnedColumnUtils.ts"],"sourcesContent":["import { Column } from '@tanstack/react-table';\nimport { CSSProperties } from 'react';\n\nimport { pinnedColumnLeft, pinnedColumnRight } from '../DataGrid.module.css';\n\nexport const getPinnedColumnStyles = (column: Column<any>): CSSProperties => {\n const isPinned = column.getIsPinned();\n\n if (!isPinned) {\n return {};\n }\n\n return {\n left: isPinned === 'left' ? `var(--${column.id}-start)` : undefined,\n right: isPinned === 'right' ? `var(--${column.id}-after)` : undefined,\n opacity: isPinned ? 0.95 : undefined,\n position: isPinned ? 'sticky' : undefined,\n zIndex: isPinned ? 1 : undefined,\n };\n};\n\nexport const getPinnedColumnClassNames = (column: Column<any>) => {\n const isPinned = column.getIsPinned();\n\n const isLastLeftPinnedColumn = isPinned === 'left' && column.getIsLastColumn('left');\n const isFirstRightPinnedColumn = isPinned === 'right' && column.getIsFirstColumn('right');\n\n if (isLastLeftPinnedColumn) {\n return pinnedColumnLeft;\n }\n\n if (isFirstRightPinnedColumn) {\n return pinnedColumnRight;\n }\n\n return '';\n};\n"],"names":["pinnedColumnLeft","pinnedColumnRight"],"mappings":";;;;AAKa,MAAA,qBAAqB,GAAG,CAAC,MAAmB,KAAmB;AAC1E,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;IAErC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,EAAE;AACV;IAED,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ,KAAK,MAAM,GAAG,CAAS,MAAA,EAAA,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,SAAS;AACnE,QAAA,KAAK,EAAE,QAAQ,KAAK,OAAO,GAAG,CAAS,MAAA,EAAA,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,SAAS;QACrE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS;QACpC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS;QACzC,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,SAAS;KACjC;AACH;AAEa,MAAA,yBAAyB,GAAG,CAAC,MAAmB,KAAI;AAC/D,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;AAErC,IAAA,MAAM,sBAAsB,GAAG,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;AACpF,IAAA,MAAM,wBAAwB,GAAG,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAEzF,IAAA,IAAI,sBAAsB,EAAE;AAC1B,QAAA,OAAOA,gCAAgB;AACxB;AAED,IAAA,IAAI,wBAAwB,EAAE;AAC5B,QAAA,OAAOC,iCAAiB;AACzB;AAED,IAAA,OAAO,EAAE;AACX;;;;;"}
1
+ {"version":3,"file":"pinnedColumnUtils.cjs","sources":["../../../../src/components/DataGrid/utils/pinnedColumnUtils.ts"],"sourcesContent":["import { Column } from '@tanstack/react-table';\nimport { CSSProperties } from 'react';\n\nimport styles from '../DataGrid.module.scss';\n\nexport const getPinnedColumnStyles = (column: Column<any>): CSSProperties => {\n const isPinned = column.getIsPinned();\n\n if (!isPinned) {\n return {};\n }\n\n return {\n left: isPinned === 'left' ? `var(--${column.id}-start)` : undefined,\n right: isPinned === 'right' ? `var(--${column.id}-after)` : undefined,\n opacity: isPinned ? 0.95 : undefined,\n position: isPinned ? 'sticky' : undefined,\n zIndex: isPinned ? 1 : undefined,\n };\n};\n\nexport const getPinnedColumnClassNames = (column: Column<any>) => {\n const isPinned = column.getIsPinned();\n\n const isLastLeftPinnedColumn = isPinned === 'left' && column.getIsLastColumn('left');\n const isFirstRightPinnedColumn = isPinned === 'right' && column.getIsFirstColumn('right');\n\n if (isLastLeftPinnedColumn) {\n return styles.pinnedColumnLeft;\n }\n\n if (isFirstRightPinnedColumn) {\n return styles.pinnedColumnRight;\n }\n\n return '';\n};\n"],"names":["styles"],"mappings":";;;;AAKa,MAAA,qBAAqB,GAAG,CAAC,MAAmB,KAAmB;AAC1E,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;IAErC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,EAAE;AACV;IAED,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ,KAAK,MAAM,GAAG,CAAS,MAAA,EAAA,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,SAAS;AACnE,QAAA,KAAK,EAAE,QAAQ,KAAK,OAAO,GAAG,CAAS,MAAA,EAAA,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,SAAS;QACrE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS;QACpC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS;QACzC,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,SAAS;KACjC;AACH;AAEa,MAAA,yBAAyB,GAAG,CAAC,MAAmB,KAAI;AAC/D,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;AAErC,IAAA,MAAM,sBAAsB,GAAG,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;AACpF,IAAA,MAAM,wBAAwB,GAAG,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAEzF,IAAA,IAAI,sBAAsB,EAAE;QAC1B,OAAOA,eAAM,CAAC,gBAAgB;AAC/B;AAED,IAAA,IAAI,wBAAwB,EAAE;QAC5B,OAAOA,eAAM,CAAC,iBAAiB;AAChC;AAED,IAAA,OAAO,EAAE;AACX;;;;;"}
@@ -1,4 +1,4 @@
1
- import { pinnedColumnLeft, pinnedColumnRight } from '../DataGrid.module.css.js';
1
+ import styles from '../DataGrid.module.scss.js';
2
2
 
3
3
  const getPinnedColumnStyles = (column) => {
4
4
  const isPinned = column.getIsPinned();
@@ -18,10 +18,10 @@ const getPinnedColumnClassNames = (column) => {
18
18
  const isLastLeftPinnedColumn = isPinned === 'left' && column.getIsLastColumn('left');
19
19
  const isFirstRightPinnedColumn = isPinned === 'right' && column.getIsFirstColumn('right');
20
20
  if (isLastLeftPinnedColumn) {
21
- return pinnedColumnLeft;
21
+ return styles.pinnedColumnLeft;
22
22
  }
23
23
  if (isFirstRightPinnedColumn) {
24
- return pinnedColumnRight;
24
+ return styles.pinnedColumnRight;
25
25
  }
26
26
  return '';
27
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pinnedColumnUtils.js","sources":["../../../../src/components/DataGrid/utils/pinnedColumnUtils.ts"],"sourcesContent":["import { Column } from '@tanstack/react-table';\nimport { CSSProperties } from 'react';\n\nimport { pinnedColumnLeft, pinnedColumnRight } from '../DataGrid.module.css';\n\nexport const getPinnedColumnStyles = (column: Column<any>): CSSProperties => {\n const isPinned = column.getIsPinned();\n\n if (!isPinned) {\n return {};\n }\n\n return {\n left: isPinned === 'left' ? `var(--${column.id}-start)` : undefined,\n right: isPinned === 'right' ? `var(--${column.id}-after)` : undefined,\n opacity: isPinned ? 0.95 : undefined,\n position: isPinned ? 'sticky' : undefined,\n zIndex: isPinned ? 1 : undefined,\n };\n};\n\nexport const getPinnedColumnClassNames = (column: Column<any>) => {\n const isPinned = column.getIsPinned();\n\n const isLastLeftPinnedColumn = isPinned === 'left' && column.getIsLastColumn('left');\n const isFirstRightPinnedColumn = isPinned === 'right' && column.getIsFirstColumn('right');\n\n if (isLastLeftPinnedColumn) {\n return pinnedColumnLeft;\n }\n\n if (isFirstRightPinnedColumn) {\n return pinnedColumnRight;\n }\n\n return '';\n};\n"],"names":[],"mappings":";;AAKa,MAAA,qBAAqB,GAAG,CAAC,MAAmB,KAAmB;AAC1E,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;IAErC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,EAAE;AACV;IAED,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ,KAAK,MAAM,GAAG,CAAS,MAAA,EAAA,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,SAAS;AACnE,QAAA,KAAK,EAAE,QAAQ,KAAK,OAAO,GAAG,CAAS,MAAA,EAAA,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,SAAS;QACrE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS;QACpC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS;QACzC,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,SAAS;KACjC;AACH;AAEa,MAAA,yBAAyB,GAAG,CAAC,MAAmB,KAAI;AAC/D,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;AAErC,IAAA,MAAM,sBAAsB,GAAG,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;AACpF,IAAA,MAAM,wBAAwB,GAAG,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAEzF,IAAA,IAAI,sBAAsB,EAAE;AAC1B,QAAA,OAAO,gBAAgB;AACxB;AAED,IAAA,IAAI,wBAAwB,EAAE;AAC5B,QAAA,OAAO,iBAAiB;AACzB;AAED,IAAA,OAAO,EAAE;AACX;;;;"}
1
+ {"version":3,"file":"pinnedColumnUtils.js","sources":["../../../../src/components/DataGrid/utils/pinnedColumnUtils.ts"],"sourcesContent":["import { Column } from '@tanstack/react-table';\nimport { CSSProperties } from 'react';\n\nimport styles from '../DataGrid.module.scss';\n\nexport const getPinnedColumnStyles = (column: Column<any>): CSSProperties => {\n const isPinned = column.getIsPinned();\n\n if (!isPinned) {\n return {};\n }\n\n return {\n left: isPinned === 'left' ? `var(--${column.id}-start)` : undefined,\n right: isPinned === 'right' ? `var(--${column.id}-after)` : undefined,\n opacity: isPinned ? 0.95 : undefined,\n position: isPinned ? 'sticky' : undefined,\n zIndex: isPinned ? 1 : undefined,\n };\n};\n\nexport const getPinnedColumnClassNames = (column: Column<any>) => {\n const isPinned = column.getIsPinned();\n\n const isLastLeftPinnedColumn = isPinned === 'left' && column.getIsLastColumn('left');\n const isFirstRightPinnedColumn = isPinned === 'right' && column.getIsFirstColumn('right');\n\n if (isLastLeftPinnedColumn) {\n return styles.pinnedColumnLeft;\n }\n\n if (isFirstRightPinnedColumn) {\n return styles.pinnedColumnRight;\n }\n\n return '';\n};\n"],"names":[],"mappings":";;AAKa,MAAA,qBAAqB,GAAG,CAAC,MAAmB,KAAmB;AAC1E,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;IAErC,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,EAAE;AACV;IAED,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ,KAAK,MAAM,GAAG,CAAS,MAAA,EAAA,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,SAAS;AACnE,QAAA,KAAK,EAAE,QAAQ,KAAK,OAAO,GAAG,CAAS,MAAA,EAAA,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,SAAS;QACrE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS;QACpC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS;QACzC,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,SAAS;KACjC;AACH;AAEa,MAAA,yBAAyB,GAAG,CAAC,MAAmB,KAAI;AAC/D,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;AAErC,IAAA,MAAM,sBAAsB,GAAG,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;AACpF,IAAA,MAAM,wBAAwB,GAAG,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAEzF,IAAA,IAAI,sBAAsB,EAAE;QAC1B,OAAO,MAAM,CAAC,gBAAgB;AAC/B;AAED,IAAA,IAAI,wBAAwB,EAAE;QAC5B,OAAO,MAAM,CAAC,iBAAiB;AAChC;AAED,IAAA,OAAO,EAAE;AACX;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
+ var tabbableSelectors = require('../../../utils/tabbableSelectors.cjs');
4
5
 
5
- const TABBABLE_SELECTORS = 'input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])';
6
6
  const useHandleFocus = ({ popperElement, anchorElement, onClose, disableFocusLock = false, }) => {
7
7
  /**
8
8
  * Focuses first element, when this gets rendered for the first time.
@@ -10,7 +10,7 @@ const useHandleFocus = ({ popperElement, anchorElement, onClose, disableFocusLoc
10
10
  React.useEffect(() => {
11
11
  if (!popperElement || disableFocusLock)
12
12
  return;
13
- const focusableElements = popperElement.querySelectorAll(TABBABLE_SELECTORS);
13
+ const focusableElements = popperElement.querySelectorAll(tabbableSelectors.TABBABLE_SELECTORS);
14
14
  if (focusableElements.length < 1)
15
15
  return;
16
16
  setTimeout(() => {
@@ -28,7 +28,7 @@ const useHandleFocus = ({ popperElement, anchorElement, onClose, disableFocusLoc
28
28
  return;
29
29
  const focusWithinPopper = (event) => {
30
30
  if (event.key === 'Tab' && !event.shiftKey) {
31
- const focusableElements = popperElement.querySelectorAll(TABBABLE_SELECTORS);
31
+ const focusableElements = popperElement.querySelectorAll(tabbableSelectors.TABBABLE_SELECTORS);
32
32
  // When nothing is focusable within the popover, close popover and allow natural tab order.
33
33
  if (focusableElements.length < 1) {
34
34
  onClose();
@@ -49,7 +49,7 @@ const useHandleFocus = ({ popperElement, anchorElement, onClose, disableFocusLoc
49
49
  * popover, or forward past the last scrollable element within.
50
50
  */
51
51
  const handleFocusTrap = (event) => {
52
- const focusableElements = popperElement.querySelectorAll(TABBABLE_SELECTORS);
52
+ const focusableElements = popperElement.querySelectorAll(tabbableSelectors.TABBABLE_SELECTORS);
53
53
  const firstElement = focusableElements[0];
54
54
  const lastElement = focusableElements[focusableElements.length - 1];
55
55
  // If shift tabbing (BACK) and on the first element, loop to last element.
@@ -1 +1 @@
1
- {"version":3,"file":"useHandleFocus.cjs","sources":["../../../../src/components/Popover/hooks/useHandleFocus.ts"],"sourcesContent":["import { KeyboardEventHandler, useEffect } from 'react';\n\nconst TABBABLE_SELECTORS =\n 'input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])';\n\ntype UseHandleFocusArgs = {\n popperElement: HTMLDialogElement | HTMLDivElement | null;\n anchorElement: HTMLElement | null;\n onClose: () => void;\n disableFocusLock?: boolean;\n};\n\nexport const useHandleFocus = ({\n popperElement,\n anchorElement,\n onClose,\n disableFocusLock = false,\n}: UseHandleFocusArgs) => {\n /**\n * Focuses first element, when this gets rendered for the first time.\n */\n useEffect(() => {\n if (!popperElement || disableFocusLock) return;\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n\n if (focusableElements.length < 1) return;\n\n setTimeout(() => {\n (focusableElements[0] as HTMLElement).focus();\n }, 0);\n }, [popperElement, disableFocusLock]);\n\n /**\n * Sets up tabbing into the popover.\n *\n * When the popover is open (pre-requisite for this being ran), and the user clicks `TAB`\n * then the tab should move **into** the popover, instead of the natural tab order.\n */\n useEffect(() => {\n if (!popperElement || !popperElement) return;\n\n const focusWithinPopper = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && !event.shiftKey) {\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n // When nothing is focusable within the popover, close popover and allow natural tab order.\n if (focusableElements.length < 1) {\n onClose();\n return;\n }\n\n (focusableElements[0] as HTMLElement).focus();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n // When tab occurs on ref focus, if focusable elements in popover focus first.\n anchorElement?.addEventListener('keydown', focusWithinPopper);\n\n // eslint-disable-next-line consistent-return\n return () => anchorElement?.removeEventListener('keydown', focusWithinPopper);\n }, [anchorElement, popperElement, onClose]);\n\n /**\n * Creates focus trap within the popover itself. Stopping users tabbing back to outside the\n * popover, or forward past the last scrollable element within.\n */\n const handleFocusTrap: KeyboardEventHandler<HTMLDialogElement | HTMLDivElement> = (event) => {\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n // If shift tabbing (BACK) and on the first element, loop to last element.\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n (lastElement as HTMLElement).focus();\n\n // If tabbing (FORWARD) and on the last element, loop to first element.\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n (firstElement as HTMLElement).focus();\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLDialogElement | HTMLDivElement> = (event) => {\n if (!popperElement) return;\n\n // Handle escape\n if (event.key === 'Escape') {\n onClose();\n event.stopPropagation(); // Should only close THIS dialog.\n event.preventDefault(); // Shouldn't close any fullscreen dialogs (Modal) it's part of\n\n // Check we should enforce focus trap.\n } else if (!disableFocusLock && event.key === 'Tab') {\n handleFocusTrap(event);\n }\n };\n\n return {\n handleKeyDown,\n };\n};\n"],"names":["useEffect"],"mappings":";;;;AAEA,MAAM,kBAAkB,GACtB,oMAAoM;AASzL,MAAA,cAAc,GAAG,CAAC,EAC7B,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,GAAG,KAAK,GACL,KAAI;AACvB;;AAEG;IACHA,eAAS,CAAC,MAAK;QACb,IAAI,CAAC,aAAa,IAAI,gBAAgB;YAAE;QACxC,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAE7E,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAAE;QAElC,UAAU,CAAC,MAAK;AACb,YAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;SAC9C,EAAE,CAAC,CAAC;AACP,KAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAErC;;;;;AAKG;IACHA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;YAAE;AAEtC,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAoB,KAAI;YACjD,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC1C,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;;AAE7E,gBAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,oBAAA,OAAO,EAAE;oBACT;AACD;AAEA,gBAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;gBAC7C,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,cAAc,EAAE;AACvB;AACH,SAAC;;QAGD,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,SAAA,GAAA,SAAA,GAAb,aAAa,CAAE,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC;;AAG7D,QAAA,OAAO,MAAM,aAAa,aAAb,aAAa,KAAA,SAAA,GAAA,SAAA,GAAb,aAAa,CAAE,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC;KAC9E,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAE3C;;;AAGG;AACH,IAAA,MAAM,eAAe,GAA6D,CAAC,KAAK,KAAI;QAC1F,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAC7E,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;;QAGnE,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,YAAY,EAAE;YAC7D,KAAK,CAAC,cAAc,EAAE;YACrB,WAA2B,CAAC,KAAK,EAAE;;AAGrC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE;YACpE,KAAK,CAAC,cAAc,EAAE;YACrB,YAA4B,CAAC,KAAK,EAAE;AACtC;AACH,KAAC;AAED,IAAA,MAAM,aAAa,GAA6D,CAAC,KAAK,KAAI;AACxF,QAAA,IAAI,CAAC,aAAa;YAAE;;AAGpB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,YAAA,OAAO,EAAE;AACT,YAAA,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;;AAGxB;aAAM,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACnD,eAAe,CAAC,KAAK,CAAC;AACvB;AACH,KAAC;IAED,OAAO;QACL,aAAa;KACd;AACH;;;;"}
1
+ {"version":3,"file":"useHandleFocus.cjs","sources":["../../../../src/components/Popover/hooks/useHandleFocus.ts"],"sourcesContent":["import { KeyboardEventHandler, useEffect } from 'react';\n\nimport { TABBABLE_SELECTORS } from '../../../utils/tabbableSelectors';\n\ntype UseHandleFocusArgs = {\n popperElement: HTMLDialogElement | HTMLDivElement | null;\n anchorElement: HTMLElement | null;\n onClose: () => void;\n disableFocusLock?: boolean;\n};\n\nexport const useHandleFocus = ({\n popperElement,\n anchorElement,\n onClose,\n disableFocusLock = false,\n}: UseHandleFocusArgs) => {\n /**\n * Focuses first element, when this gets rendered for the first time.\n */\n useEffect(() => {\n if (!popperElement || disableFocusLock) return;\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n\n if (focusableElements.length < 1) return;\n\n setTimeout(() => {\n (focusableElements[0] as HTMLElement).focus();\n }, 0);\n }, [popperElement, disableFocusLock]);\n\n /**\n * Sets up tabbing into the popover.\n *\n * When the popover is open (pre-requisite for this being ran), and the user clicks `TAB`\n * then the tab should move **into** the popover, instead of the natural tab order.\n */\n useEffect(() => {\n if (!popperElement || !popperElement) return;\n\n const focusWithinPopper = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && !event.shiftKey) {\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n // When nothing is focusable within the popover, close popover and allow natural tab order.\n if (focusableElements.length < 1) {\n onClose();\n return;\n }\n\n (focusableElements[0] as HTMLElement).focus();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n // When tab occurs on ref focus, if focusable elements in popover focus first.\n anchorElement?.addEventListener('keydown', focusWithinPopper);\n\n // eslint-disable-next-line consistent-return\n return () => anchorElement?.removeEventListener('keydown', focusWithinPopper);\n }, [anchorElement, popperElement, onClose]);\n\n /**\n * Creates focus trap within the popover itself. Stopping users tabbing back to outside the\n * popover, or forward past the last scrollable element within.\n */\n const handleFocusTrap: KeyboardEventHandler<HTMLDialogElement | HTMLDivElement> = (event) => {\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n // If shift tabbing (BACK) and on the first element, loop to last element.\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n (lastElement as HTMLElement).focus();\n\n // If tabbing (FORWARD) and on the last element, loop to first element.\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n (firstElement as HTMLElement).focus();\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLDialogElement | HTMLDivElement> = (event) => {\n if (!popperElement) return;\n\n // Handle escape\n if (event.key === 'Escape') {\n onClose();\n event.stopPropagation(); // Should only close THIS dialog.\n event.preventDefault(); // Shouldn't close any fullscreen dialogs (Modal) it's part of\n\n // Check we should enforce focus trap.\n } else if (!disableFocusLock && event.key === 'Tab') {\n handleFocusTrap(event);\n }\n };\n\n return {\n handleKeyDown,\n };\n};\n"],"names":["useEffect","TABBABLE_SELECTORS"],"mappings":";;;;;AAWa,MAAA,cAAc,GAAG,CAAC,EAC7B,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,GAAG,KAAK,GACL,KAAI;AACvB;;AAEG;IACHA,eAAS,CAAC,MAAK;QACb,IAAI,CAAC,aAAa,IAAI,gBAAgB;YAAE;QACxC,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAACC,oCAAkB,CAAC;AAE7E,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAAE;QAElC,UAAU,CAAC,MAAK;AACb,YAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;SAC9C,EAAE,CAAC,CAAC;AACP,KAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAErC;;;;;AAKG;IACHD,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;YAAE;AAEtC,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAoB,KAAI;YACjD,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC1C,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAACC,oCAAkB,CAAC;;AAE7E,gBAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,oBAAA,OAAO,EAAE;oBACT;AACD;AAEA,gBAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;gBAC7C,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,cAAc,EAAE;AACvB;AACH,SAAC;;QAGD,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,SAAA,GAAA,SAAA,GAAb,aAAa,CAAE,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC;;AAG7D,QAAA,OAAO,MAAM,aAAa,aAAb,aAAa,KAAA,SAAA,GAAA,SAAA,GAAb,aAAa,CAAE,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC;KAC9E,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAE3C;;;AAGG;AACH,IAAA,MAAM,eAAe,GAA6D,CAAC,KAAK,KAAI;QAC1F,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAACA,oCAAkB,CAAC;AAC7E,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;;QAGnE,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,YAAY,EAAE;YAC7D,KAAK,CAAC,cAAc,EAAE;YACrB,WAA2B,CAAC,KAAK,EAAE;;AAGrC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE;YACpE,KAAK,CAAC,cAAc,EAAE;YACrB,YAA4B,CAAC,KAAK,EAAE;AACtC;AACH,KAAC;AAED,IAAA,MAAM,aAAa,GAA6D,CAAC,KAAK,KAAI;AACxF,QAAA,IAAI,CAAC,aAAa;YAAE;;AAGpB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,YAAA,OAAO,EAAE;AACT,YAAA,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;;AAGxB;aAAM,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACnD,eAAe,CAAC,KAAK,CAAC;AACvB;AACH,KAAC;IAED,OAAO;QACL,aAAa;KACd;AACH;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { useEffect } from 'react';
2
+ import { TABBABLE_SELECTORS } from '../../../utils/tabbableSelectors.js';
2
3
 
3
- const TABBABLE_SELECTORS = 'input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])';
4
4
  const useHandleFocus = ({ popperElement, anchorElement, onClose, disableFocusLock = false, }) => {
5
5
  /**
6
6
  * Focuses first element, when this gets rendered for the first time.
@@ -1 +1 @@
1
- {"version":3,"file":"useHandleFocus.js","sources":["../../../../src/components/Popover/hooks/useHandleFocus.ts"],"sourcesContent":["import { KeyboardEventHandler, useEffect } from 'react';\n\nconst TABBABLE_SELECTORS =\n 'input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])';\n\ntype UseHandleFocusArgs = {\n popperElement: HTMLDialogElement | HTMLDivElement | null;\n anchorElement: HTMLElement | null;\n onClose: () => void;\n disableFocusLock?: boolean;\n};\n\nexport const useHandleFocus = ({\n popperElement,\n anchorElement,\n onClose,\n disableFocusLock = false,\n}: UseHandleFocusArgs) => {\n /**\n * Focuses first element, when this gets rendered for the first time.\n */\n useEffect(() => {\n if (!popperElement || disableFocusLock) return;\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n\n if (focusableElements.length < 1) return;\n\n setTimeout(() => {\n (focusableElements[0] as HTMLElement).focus();\n }, 0);\n }, [popperElement, disableFocusLock]);\n\n /**\n * Sets up tabbing into the popover.\n *\n * When the popover is open (pre-requisite for this being ran), and the user clicks `TAB`\n * then the tab should move **into** the popover, instead of the natural tab order.\n */\n useEffect(() => {\n if (!popperElement || !popperElement) return;\n\n const focusWithinPopper = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && !event.shiftKey) {\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n // When nothing is focusable within the popover, close popover and allow natural tab order.\n if (focusableElements.length < 1) {\n onClose();\n return;\n }\n\n (focusableElements[0] as HTMLElement).focus();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n // When tab occurs on ref focus, if focusable elements in popover focus first.\n anchorElement?.addEventListener('keydown', focusWithinPopper);\n\n // eslint-disable-next-line consistent-return\n return () => anchorElement?.removeEventListener('keydown', focusWithinPopper);\n }, [anchorElement, popperElement, onClose]);\n\n /**\n * Creates focus trap within the popover itself. Stopping users tabbing back to outside the\n * popover, or forward past the last scrollable element within.\n */\n const handleFocusTrap: KeyboardEventHandler<HTMLDialogElement | HTMLDivElement> = (event) => {\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n // If shift tabbing (BACK) and on the first element, loop to last element.\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n (lastElement as HTMLElement).focus();\n\n // If tabbing (FORWARD) and on the last element, loop to first element.\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n (firstElement as HTMLElement).focus();\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLDialogElement | HTMLDivElement> = (event) => {\n if (!popperElement) return;\n\n // Handle escape\n if (event.key === 'Escape') {\n onClose();\n event.stopPropagation(); // Should only close THIS dialog.\n event.preventDefault(); // Shouldn't close any fullscreen dialogs (Modal) it's part of\n\n // Check we should enforce focus trap.\n } else if (!disableFocusLock && event.key === 'Tab') {\n handleFocusTrap(event);\n }\n };\n\n return {\n handleKeyDown,\n };\n};\n"],"names":[],"mappings":";;AAEA,MAAM,kBAAkB,GACtB,oMAAoM;AASzL,MAAA,cAAc,GAAG,CAAC,EAC7B,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,GAAG,KAAK,GACL,KAAI;AACvB;;AAEG;IACH,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,aAAa,IAAI,gBAAgB;YAAE;QACxC,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAE7E,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAAE;QAElC,UAAU,CAAC,MAAK;AACb,YAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;SAC9C,EAAE,CAAC,CAAC;AACP,KAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAErC;;;;;AAKG;IACH,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;YAAE;AAEtC,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAoB,KAAI;YACjD,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC1C,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;;AAE7E,gBAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,oBAAA,OAAO,EAAE;oBACT;AACD;AAEA,gBAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;gBAC7C,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,cAAc,EAAE;AACvB;AACH,SAAC;;QAGD,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,SAAA,GAAA,SAAA,GAAb,aAAa,CAAE,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC;;AAG7D,QAAA,OAAO,MAAM,aAAa,aAAb,aAAa,KAAA,SAAA,GAAA,SAAA,GAAb,aAAa,CAAE,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC;KAC9E,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAE3C;;;AAGG;AACH,IAAA,MAAM,eAAe,GAA6D,CAAC,KAAK,KAAI;QAC1F,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAC7E,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;;QAGnE,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,YAAY,EAAE;YAC7D,KAAK,CAAC,cAAc,EAAE;YACrB,WAA2B,CAAC,KAAK,EAAE;;AAGrC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE;YACpE,KAAK,CAAC,cAAc,EAAE;YACrB,YAA4B,CAAC,KAAK,EAAE;AACtC;AACH,KAAC;AAED,IAAA,MAAM,aAAa,GAA6D,CAAC,KAAK,KAAI;AACxF,QAAA,IAAI,CAAC,aAAa;YAAE;;AAGpB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,YAAA,OAAO,EAAE;AACT,YAAA,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;;AAGxB;aAAM,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACnD,eAAe,CAAC,KAAK,CAAC;AACvB;AACH,KAAC;IAED,OAAO;QACL,aAAa;KACd;AACH;;;;"}
1
+ {"version":3,"file":"useHandleFocus.js","sources":["../../../../src/components/Popover/hooks/useHandleFocus.ts"],"sourcesContent":["import { KeyboardEventHandler, useEffect } from 'react';\n\nimport { TABBABLE_SELECTORS } from '../../../utils/tabbableSelectors';\n\ntype UseHandleFocusArgs = {\n popperElement: HTMLDialogElement | HTMLDivElement | null;\n anchorElement: HTMLElement | null;\n onClose: () => void;\n disableFocusLock?: boolean;\n};\n\nexport const useHandleFocus = ({\n popperElement,\n anchorElement,\n onClose,\n disableFocusLock = false,\n}: UseHandleFocusArgs) => {\n /**\n * Focuses first element, when this gets rendered for the first time.\n */\n useEffect(() => {\n if (!popperElement || disableFocusLock) return;\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n\n if (focusableElements.length < 1) return;\n\n setTimeout(() => {\n (focusableElements[0] as HTMLElement).focus();\n }, 0);\n }, [popperElement, disableFocusLock]);\n\n /**\n * Sets up tabbing into the popover.\n *\n * When the popover is open (pre-requisite for this being ran), and the user clicks `TAB`\n * then the tab should move **into** the popover, instead of the natural tab order.\n */\n useEffect(() => {\n if (!popperElement || !popperElement) return;\n\n const focusWithinPopper = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && !event.shiftKey) {\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n // When nothing is focusable within the popover, close popover and allow natural tab order.\n if (focusableElements.length < 1) {\n onClose();\n return;\n }\n\n (focusableElements[0] as HTMLElement).focus();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n // When tab occurs on ref focus, if focusable elements in popover focus first.\n anchorElement?.addEventListener('keydown', focusWithinPopper);\n\n // eslint-disable-next-line consistent-return\n return () => anchorElement?.removeEventListener('keydown', focusWithinPopper);\n }, [anchorElement, popperElement, onClose]);\n\n /**\n * Creates focus trap within the popover itself. Stopping users tabbing back to outside the\n * popover, or forward past the last scrollable element within.\n */\n const handleFocusTrap: KeyboardEventHandler<HTMLDialogElement | HTMLDivElement> = (event) => {\n const focusableElements = popperElement!.querySelectorAll(TABBABLE_SELECTORS);\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n // If shift tabbing (BACK) and on the first element, loop to last element.\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n (lastElement as HTMLElement).focus();\n\n // If tabbing (FORWARD) and on the last element, loop to first element.\n } else if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n (firstElement as HTMLElement).focus();\n }\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLDialogElement | HTMLDivElement> = (event) => {\n if (!popperElement) return;\n\n // Handle escape\n if (event.key === 'Escape') {\n onClose();\n event.stopPropagation(); // Should only close THIS dialog.\n event.preventDefault(); // Shouldn't close any fullscreen dialogs (Modal) it's part of\n\n // Check we should enforce focus trap.\n } else if (!disableFocusLock && event.key === 'Tab') {\n handleFocusTrap(event);\n }\n };\n\n return {\n handleKeyDown,\n };\n};\n"],"names":[],"mappings":";;;AAWa,MAAA,cAAc,GAAG,CAAC,EAC7B,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,GAAG,KAAK,GACL,KAAI;AACvB;;AAEG;IACH,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,aAAa,IAAI,gBAAgB;YAAE;QACxC,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAE7E,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAAE;QAElC,UAAU,CAAC,MAAK;AACb,YAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;SAC9C,EAAE,CAAC,CAAC;AACP,KAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAErC;;;;;AAKG;IACH,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;YAAE;AAEtC,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAoB,KAAI;YACjD,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC1C,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;;AAE7E,gBAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,oBAAA,OAAO,EAAE;oBACT;AACD;AAEA,gBAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;gBAC7C,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,cAAc,EAAE;AACvB;AACH,SAAC;;QAGD,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,SAAA,GAAA,SAAA,GAAb,aAAa,CAAE,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC;;AAG7D,QAAA,OAAO,MAAM,aAAa,aAAb,aAAa,KAAA,SAAA,GAAA,SAAA,GAAb,aAAa,CAAE,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC;KAC9E,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAE3C;;;AAGG;AACH,IAAA,MAAM,eAAe,GAA6D,CAAC,KAAK,KAAI;QAC1F,MAAM,iBAAiB,GAAG,aAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAC7E,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;;QAGnE,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,YAAY,EAAE;YAC7D,KAAK,CAAC,cAAc,EAAE;YACrB,WAA2B,CAAC,KAAK,EAAE;;AAGrC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE;YACpE,KAAK,CAAC,cAAc,EAAE;YACrB,YAA4B,CAAC,KAAK,EAAE;AACtC;AACH,KAAC;AAED,IAAA,MAAM,aAAa,GAA6D,CAAC,KAAK,KAAI;AACxF,QAAA,IAAI,CAAC,aAAa;YAAE;;AAGpB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,YAAA,OAAO,EAAE;AACT,YAAA,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;;AAGxB;aAAM,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACnD,eAAe,CAAC,KAAK,CAAC;AACvB;AACH,KAAC;IAED,OAAO;QACL,aAAa;KACd;AACH;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const TABBABLE_SELECTORS = 'input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])';
4
+
5
+ exports.TABBABLE_SELECTORS = TABBABLE_SELECTORS;
6
+ //# sourceMappingURL=tabbableSelectors.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabbableSelectors.cjs","sources":["../../src/utils/tabbableSelectors.ts"],"sourcesContent":["export const TABBABLE_SELECTORS =\n 'input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])';\n"],"names":[],"mappings":";;AAAO,MAAM,kBAAkB,GAC7B;;;;"}
@@ -0,0 +1 @@
1
+ export declare const TABBABLE_SELECTORS = "input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])";
@@ -0,0 +1,4 @@
1
+ const TABBABLE_SELECTORS = 'input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])';
2
+
3
+ export { TABBABLE_SELECTORS };
4
+ //# sourceMappingURL=tabbableSelectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabbableSelectors.js","sources":["../../src/utils/tabbableSelectors.ts"],"sourcesContent":["export const TABBABLE_SELECTORS =\n 'input:not([disabled]), summary:not([disabled]), a[href]:not([disabled]), button:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])';\n"],"names":[],"mappings":"AAAO,MAAM,kBAAkB,GAC7B;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veeqo/ui",
3
- "version": "9.9.2",
3
+ "version": "9.9.5",
4
4
  "description": "New optimised component library for Veeqo.",
5
5
  "author": "Robert Wealthall",
6
6
  "license": "ISC",
@@ -111,6 +111,7 @@
111
111
  "rimraf": "^5.0.5",
112
112
  "rollup": "^4.30.0",
113
113
  "rollup-plugin-peer-deps-external": "^2.2.4",
114
+ "rollup-plugin-sass": "^1.15.2",
114
115
  "storybook": "^8.3.5",
115
116
  "style-loader": "^2.0.0",
116
117
  "styled-components": "^5.1.1",
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}
4
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFHcmlkLm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUJBRUUscUJBQXNCLENBRHRCLGlCQUFrQixDQUdsQix3QkFHRSwwSEFBMkgsQ0FEM0gseUJBRUYsQ0FDRixDQUVBLDRCQUNFLFFBSUUsV0FBWSxDQU1aLHFCQUFzQixDQUh0QixVQUFXLENBQ1gsbUJBQW9CLENBUHBCLGlCQUFrQixDQUVsQixxQkFBc0IsQ0FFdEIsVUFNRixDQUNGLENBRUEsNEJBR0UsUUFLRSxpREFBdUQsQ0FGdkQsdUJBQXdCLENBRnhCLHlCQUtGLENBQ0YsQ0FFQSw2QkFHRSxRQUtFLGtEQUF3RCxDQUZ4RCxzQkFBdUIsQ0FGdkIsMEJBS0YsQ0FDRiIsImZpbGUiOiJEYXRhR3JpZC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJhc2VDZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICY6Zm9jdXMsXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogdmFyKC0tc2l6ZXMtbm9uZSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgdmFyKC0tc2l6ZXMtbm9uZSkgdmFyKC0tc2l6ZXMtbm9uZSkgdmFyKC0tc2l6ZXMtbm9uZSkgdmFyKC0tc2l6ZXMtbGluZSkgdmFyKC0tY29sb3JzLXNlY29uZGFyeS1ibHVlLWJhc2UpO1xuICB9XG59XG5cbi5waW5uZWRDb2x1bW5CYXNlIHtcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIHRvcDogdmFyKC0tc2l6ZXMtbm9uZSk7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHdpZHRoOiAzMHB4O1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG5cbi5waW5uZWRDb2x1bW5MZWZ0IHtcbiAgY29tcG9zZXM6IHBpbm5lZENvbHVtbkJhc2U7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUpO1xuICAgIFxuICAgIHJpZ2h0OiB2YXIoLS1zaXplcy1ub25lKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDEwcHggMHB4IDEwcHggLThweCByZ2JhKDAsIDAsIDAsIDI1JSk7XG4gIH1cbn1cblxuLnBpbm5lZENvbHVtblJpZ2h0IHtcbiAgY29tcG9zZXM6IHBpbm5lZENvbHVtbkJhc2U7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlKTtcblxuICAgIGxlZnQ6IHZhcigtLXNpemVzLW5vbmUpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgLTEwcHggMHB4IDEwcHggLThweCByZ2JhKDAsIDAsIDAsIDI1JSk7XG4gIH1cbn1cbiJdfQ== */`;
5
- const style = document.createElement('style');
6
- style.innerHTML = cssContents;
7
- document.head.appendChild(style);
8
- const pinnedColumnLeft = '_pinnedColumnLeft_13swz_27 _pinnedColumnBase_13swz_12';
9
- const pinnedColumnRight = '_pinnedColumnRight_13swz_39 _pinnedColumnBase_13swz_12';
10
-
11
- exports.pinnedColumnLeft = pinnedColumnLeft;
12
- exports.pinnedColumnRight = pinnedColumnRight;
13
- //# sourceMappingURL=DataGrid.module.css.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataGrid.module.css.cjs","sources":["../../../src/components/DataGrid/DataGrid.module.css"],"sourcesContent":[".baseCell {\n position: relative;\n box-sizing: border-box;\n\n &:focus,\n &:focus-visible {\n outline: var(--sizes-none);\n box-shadow: inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);\n }\n}\n\n.pinnedColumnBase {\n &::after {\n position: absolute;\n\n top: var(--sizes-none);\n bottom: -1px;\n width: 30px;\n\n content: '';\n pointer-events: none;\n\n box-sizing: border-box;\n }\n}\n\n.pinnedColumnLeft {\n composes: pinnedColumnBase;\n\n &::after {\n transform: translate(100%);\n \n right: var(--sizes-none);\n\n box-shadow: inset 10px 0px 10px -8px rgba(0, 0, 0, 25%);\n }\n}\n\n.pinnedColumnRight {\n composes: pinnedColumnBase;\n\n &::after {\n transform: translate(-100%);\n\n left: var(--sizes-none);\n\n box-shadow: inset -10px 0px 10px -8px rgba(0, 0, 0, 25%);\n }\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,6vDAA6vD,CAAC;AAC9vD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAG3B,MAAC,gBAAgB,GAAG;AACpB,MAAC,iBAAiB,GAAG;;;;;"}
@@ -1,10 +0,0 @@
1
- const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFHcmlkLm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUJBRUUscUJBQXNCLENBRHRCLGlCQUFrQixDQUdsQix3QkFHRSwwSEFBMkgsQ0FEM0gseUJBRUYsQ0FDRixDQUVBLDRCQUNFLFFBSUUsV0FBWSxDQU1aLHFCQUFzQixDQUh0QixVQUFXLENBQ1gsbUJBQW9CLENBUHBCLGlCQUFrQixDQUVsQixxQkFBc0IsQ0FFdEIsVUFNRixDQUNGLENBRUEsNEJBR0UsUUFLRSxpREFBdUQsQ0FGdkQsdUJBQXdCLENBRnhCLHlCQUtGLENBQ0YsQ0FFQSw2QkFHRSxRQUtFLGtEQUF3RCxDQUZ4RCxzQkFBdUIsQ0FGdkIsMEJBS0YsQ0FDRiIsImZpbGUiOiJEYXRhR3JpZC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJhc2VDZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICY6Zm9jdXMsXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogdmFyKC0tc2l6ZXMtbm9uZSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgdmFyKC0tc2l6ZXMtbm9uZSkgdmFyKC0tc2l6ZXMtbm9uZSkgdmFyKC0tc2l6ZXMtbm9uZSkgdmFyKC0tc2l6ZXMtbGluZSkgdmFyKC0tY29sb3JzLXNlY29uZGFyeS1ibHVlLWJhc2UpO1xuICB9XG59XG5cbi5waW5uZWRDb2x1bW5CYXNlIHtcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIHRvcDogdmFyKC0tc2l6ZXMtbm9uZSk7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHdpZHRoOiAzMHB4O1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG5cbi5waW5uZWRDb2x1bW5MZWZ0IHtcbiAgY29tcG9zZXM6IHBpbm5lZENvbHVtbkJhc2U7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUpO1xuICAgIFxuICAgIHJpZ2h0OiB2YXIoLS1zaXplcy1ub25lKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDEwcHggMHB4IDEwcHggLThweCByZ2JhKDAsIDAsIDAsIDI1JSk7XG4gIH1cbn1cblxuLnBpbm5lZENvbHVtblJpZ2h0IHtcbiAgY29tcG9zZXM6IHBpbm5lZENvbHVtbkJhc2U7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlKTtcblxuICAgIGxlZnQ6IHZhcigtLXNpemVzLW5vbmUpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgLTEwcHggMHB4IDEwcHggLThweCByZ2JhKDAsIDAsIDAsIDI1JSk7XG4gIH1cbn1cbiJdfQ== */`;
3
- const style = document.createElement('style');
4
- style.innerHTML = cssContents;
5
- document.head.appendChild(style);
6
- const pinnedColumnLeft = '_pinnedColumnLeft_13swz_27 _pinnedColumnBase_13swz_12';
7
- const pinnedColumnRight = '_pinnedColumnRight_13swz_39 _pinnedColumnBase_13swz_12';
8
-
9
- export { pinnedColumnLeft, pinnedColumnRight };
10
- //# sourceMappingURL=DataGrid.module.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataGrid.module.css.js","sources":["../../../src/components/DataGrid/DataGrid.module.css"],"sourcesContent":[".baseCell {\n position: relative;\n box-sizing: border-box;\n\n &:focus,\n &:focus-visible {\n outline: var(--sizes-none);\n box-shadow: inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);\n }\n}\n\n.pinnedColumnBase {\n &::after {\n position: absolute;\n\n top: var(--sizes-none);\n bottom: -1px;\n width: 30px;\n\n content: '';\n pointer-events: none;\n\n box-sizing: border-box;\n }\n}\n\n.pinnedColumnLeft {\n composes: pinnedColumnBase;\n\n &::after {\n transform: translate(100%);\n \n right: var(--sizes-none);\n\n box-shadow: inset 10px 0px 10px -8px rgba(0, 0, 0, 25%);\n }\n}\n\n.pinnedColumnRight {\n composes: pinnedColumnBase;\n\n &::after {\n transform: translate(-100%);\n\n left: var(--sizes-none);\n\n box-shadow: inset -10px 0px 10px -8px rgba(0, 0, 0, 25%);\n }\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,6vDAA6vD,CAAC;AAC9vD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAG3B,MAAC,gBAAgB,GAAG;AACpB,MAAC,iBAAiB,GAAG;;;;"}
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}._bodyCell_w9phy_1{background-color:#fff;color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-size:var(--text-body-small-font-size);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}.data-grid-row.striped:nth-of-type(odd)>._bodyCell_w9phy_1{background-color:var(--colors-neutral-grey-lightest)}.data-grid-row.selected>._bodyCell_w9phy_1{background-color:var(--colors-brand-blue-lightest)}.data-grid-row+.data-grid-row>._bodyCell_w9phy_1{border-top:1px solid var(--colors-neutral-grey-base)}
4
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiQm9keUNlbGwubW9kdWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBQSxzQkFBQSxrQkFBQSx3QkFBQSwySEFBQSwwQkFBQSxDQUFBLDRCQUFBLFFBQUEsWUFBQSxzQkFBQSxXQUFBLG9CQUFBLGtCQUFBLHNCQUFBLFdBQUEsQ0FBQSw0QkFBQSxRQUFBLGtEQUFBLHdCQUFBLDBCQUFBLENBQUEsNkJBQUEsUUFBQSxtREFBQSx1QkFBQSwyQkFBQSxDQUFBLEFDQUEsbUJBR0UscUJBQXVCLENBRXZCLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsMENBQTJDLENBQzNDLDhDQUErQyxDQUMvQyw4Q0FDRixDQUVBLDJEQUNFLG9EQUNGLENBRUEsMkNBQ0Usa0RBQ0YsQ0FFQSxpREFDRSxvREFDRiIsImZpbGUiOiJCb2R5Q2VsbC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIuYm9keUNlbGwge1xuICBjb21wb3NlczogYmFzZUNlbGwgZnJvbSAnLi4vLi4vLi4vRGF0YUdyaWQubW9kdWxlLmNzcyc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgY29sb3I6IHZhcigtLXRleHQtYm9keS1zbWFsbC1jb2xvcik7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXh0LWJvZHktc21hbGwtZm9udC1mYW1pbHkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYm9keS1zbWFsbC1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbjpnbG9iYWwoLmRhdGEtZ3JpZC1yb3cuc3RyaXBlZDpudGgtb2YtdHlwZShvZGQpKSA+IC5ib2R5Q2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1uZXV0cmFsLWdyZXktbGlnaHRlc3QpO1xufVxuXG46Z2xvYmFsKC5kYXRhLWdyaWQtcm93LnNlbGVjdGVkKSA+IC5ib2R5Q2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1icmFuZC1ibHVlLWxpZ2h0ZXN0KTtcbn1cblxuOmdsb2JhbCguZGF0YS1ncmlkLXJvdyArIC5kYXRhLWdyaWQtcm93KSA+IC5ib2R5Q2VsbCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWJhc2UpO1xufVxuIl19 */`;
5
- const style = document.createElement('style');
6
- style.innerHTML = cssContents;
7
- document.head.appendChild(style);
8
- const bodyCell = '_bodyCell_w9phy_1 _baseCell_13swz_1';
9
-
10
- exports.bodyCell = bodyCell;
11
- //# sourceMappingURL=BodyCell.module.css.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BodyCell.module.css.cjs","sources":["../../../../../../src/components/DataGrid/components/Body/BodyCell/BodyCell.module.css"],"sourcesContent":[".bodyCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n background-color: white;\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-size: var(--text-body-small-font-size);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n}\n\n:global(.data-grid-row.striped:nth-of-type(odd)) > .bodyCell {\n background-color: var(--colors-neutral-grey-lightest);\n}\n\n:global(.data-grid-row.selected) > .bodyCell {\n background-color: var(--colors-brand-blue-lightest);\n}\n\n:global(.data-grid-row + .data-grid-row) > .bodyCell {\n border-top: 1px solid var(--colors-neutral-grey-base);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,ijDAAijD,CAAC;AACljD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,QAAQ,GAAG;;;;"}
@@ -1,9 +0,0 @@
1
- const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}._bodyCell_w9phy_1{background-color:#fff;color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-size:var(--text-body-small-font-size);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}.data-grid-row.striped:nth-of-type(odd)>._bodyCell_w9phy_1{background-color:var(--colors-neutral-grey-lightest)}.data-grid-row.selected>._bodyCell_w9phy_1{background-color:var(--colors-brand-blue-lightest)}.data-grid-row+.data-grid-row>._bodyCell_w9phy_1{border-top:1px solid var(--colors-neutral-grey-base)}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiQm9keUNlbGwubW9kdWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBQSxzQkFBQSxrQkFBQSx3QkFBQSwySEFBQSwwQkFBQSxDQUFBLDRCQUFBLFFBQUEsWUFBQSxzQkFBQSxXQUFBLG9CQUFBLGtCQUFBLHNCQUFBLFdBQUEsQ0FBQSw0QkFBQSxRQUFBLGtEQUFBLHdCQUFBLDBCQUFBLENBQUEsNkJBQUEsUUFBQSxtREFBQSx1QkFBQSwyQkFBQSxDQUFBLEFDQUEsbUJBR0UscUJBQXVCLENBRXZCLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsMENBQTJDLENBQzNDLDhDQUErQyxDQUMvQyw4Q0FDRixDQUVBLDJEQUNFLG9EQUNGLENBRUEsMkNBQ0Usa0RBQ0YsQ0FFQSxpREFDRSxvREFDRiIsImZpbGUiOiJCb2R5Q2VsbC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCIuYm9keUNlbGwge1xuICBjb21wb3NlczogYmFzZUNlbGwgZnJvbSAnLi4vLi4vLi4vRGF0YUdyaWQubW9kdWxlLmNzcyc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgY29sb3I6IHZhcigtLXRleHQtYm9keS1zbWFsbC1jb2xvcik7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXh0LWJvZHktc21hbGwtZm9udC1mYW1pbHkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYm9keS1zbWFsbC1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG59XG5cbjpnbG9iYWwoLmRhdGEtZ3JpZC1yb3cuc3RyaXBlZDpudGgtb2YtdHlwZShvZGQpKSA+IC5ib2R5Q2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1uZXV0cmFsLWdyZXktbGlnaHRlc3QpO1xufVxuXG46Z2xvYmFsKC5kYXRhLWdyaWQtcm93LnNlbGVjdGVkKSA+IC5ib2R5Q2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9ycy1icmFuZC1ibHVlLWxpZ2h0ZXN0KTtcbn1cblxuOmdsb2JhbCguZGF0YS1ncmlkLXJvdyArIC5kYXRhLWdyaWQtcm93KSA+IC5ib2R5Q2VsbCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWJhc2UpO1xufVxuIl19 */`;
3
- const style = document.createElement('style');
4
- style.innerHTML = cssContents;
5
- document.head.appendChild(style);
6
- const bodyCell = '_bodyCell_w9phy_1 _baseCell_13swz_1';
7
-
8
- export { bodyCell };
9
- //# sourceMappingURL=BodyCell.module.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BodyCell.module.css.js","sources":["../../../../../../src/components/DataGrid/components/Body/BodyCell/BodyCell.module.css"],"sourcesContent":[".bodyCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n background-color: white;\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-size: var(--text-body-small-font-size);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n}\n\n:global(.data-grid-row.striped:nth-of-type(odd)) > .bodyCell {\n background-color: var(--colors-neutral-grey-lightest);\n}\n\n:global(.data-grid-row.selected) > .bodyCell {\n background-color: var(--colors-brand-blue-lightest);\n}\n\n:global(.data-grid-row + .data-grid-row) > .bodyCell {\n border-top: 1px solid var(--colors-neutral-grey-base);\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,ijDAAijD,CAAC;AACljD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,QAAQ,GAAG;;;;"}
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- const cssContents = `._cellContent_gaxlz_1{align-items:center;display:flex;gap:var(--sizes-sm);padding:var(--density)}
4
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNlbGxDb250ZW50Lm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBR0Usa0JBQW1CLENBRm5CLFlBQWEsQ0FHYixtQkFBb0IsQ0FGcEIsc0JBR0YiLCJmaWxlIjoiQ2VsbENvbnRlbnQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZWxsQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IHZhcigtLWRlbnNpdHkpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNpemVzLXNtKTtcbn1cbiJdfQ== */`;
5
- const style = document.createElement('style');
6
- style.innerHTML = cssContents;
7
- document.head.appendChild(style);
8
- const cellContent = '_cellContent_gaxlz_1';
9
-
10
- exports.cellContent = cellContent;
11
- //# sourceMappingURL=CellContent.module.css.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CellContent.module.css.cjs","sources":["../../../../../src/components/DataGrid/components/CellContent/CellContent.module.css"],"sourcesContent":[".cellContent {\n display: flex;\n padding: var(--density);\n align-items: center;\n gap: var(--sizes-sm);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,icAAic,CAAC;AAClc,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,WAAW,GAAG;;;;"}
@@ -1,9 +0,0 @@
1
- const cssContents = `._cellContent_gaxlz_1{align-items:center;display:flex;gap:var(--sizes-sm);padding:var(--density)}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNlbGxDb250ZW50Lm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBR0Usa0JBQW1CLENBRm5CLFlBQWEsQ0FHYixtQkFBb0IsQ0FGcEIsc0JBR0YiLCJmaWxlIjoiQ2VsbENvbnRlbnQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZWxsQ29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IHZhcigtLWRlbnNpdHkpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNpemVzLXNtKTtcbn1cbiJdfQ== */`;
3
- const style = document.createElement('style');
4
- style.innerHTML = cssContents;
5
- document.head.appendChild(style);
6
- const cellContent = '_cellContent_gaxlz_1';
7
-
8
- export { cellContent };
9
- //# sourceMappingURL=CellContent.module.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CellContent.module.css.js","sources":["../../../../../src/components/DataGrid/components/CellContent/CellContent.module.css"],"sourcesContent":[".cellContent {\n display: flex;\n padding: var(--density);\n align-items: center;\n gap: var(--sizes-sm);\n}\n"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG,CAAC;AACrB,icAAic,CAAC;AAClc,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,WAAW,GAAG;;;;"}
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- const cssContents = `._baseCell_13swz_1{box-sizing:border-box;position:relative;&:focus,&:focus-visible{box-shadow:inset var(--sizes-none) var(--sizes-none) var(--sizes-none) var(--sizes-line) var(--colors-secondary-blue-base);outline:var(--sizes-none)}}._pinnedColumnBase_13swz_12{&:after{bottom:-1px;box-sizing:border-box;content:"";pointer-events:none;position:absolute;top:var(--sizes-none);width:30px}}._pinnedColumnLeft_13swz_27{&:after{box-shadow:inset 10px 0 10px -8px rgba(0,0,0,.25);right:var(--sizes-none);transform:translate(100%)}}._pinnedColumnRight_13swz_39{&:after{box-shadow:inset -10px 0 10px -8px rgba(0,0,0,.25);left:var(--sizes-none);transform:translate(-100%)}}._footerCell_1jfhd_1{background-color:var(--colors-neutral-grey-lightest);border-top:var(--sizes-line) solid var(--colors-secondary-blue-base);color:var(--text-body-small-color);font-family:var(--text-body-small-font-family);font-style:var(--text-body-small-font-style);font-weight:var(--text-body-small-font-weight);line-height:var(--text-body-small-line-height)}
4
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxubyBzb3VyY2U+IiwiRm9vdGVyQ2VsbC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFBLHNCQUFBLGtCQUFBLHdCQUFBLDJIQUFBLDBCQUFBLENBQUEsNEJBQUEsUUFBQSxZQUFBLHNCQUFBLFdBQUEsb0JBQUEsa0JBQUEsc0JBQUEsV0FBQSxDQUFBLDRCQUFBLFFBQUEsa0RBQUEsd0JBQUEsMEJBQUEsQ0FBQSw2QkFBQSxRQUFBLG1EQUFBLHVCQUFBLDJCQUFBLENBQUEsQUNBQSxxQkFVRSxvREFBcUQsQ0FEckQsb0VBQXFFLENBTnJFLGtDQUFtQyxDQUNuQyw4Q0FBK0MsQ0FDL0MsNENBQTZDLENBQzdDLDhDQUErQyxDQUMvQyw4Q0FJRiIsImZpbGUiOiJGb290ZXJDZWxsLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIi5mb290ZXJDZWxsIHtcbiAgY29tcG9zZXM6IGJhc2VDZWxsIGZyb20gJy4uLy4uLy4uL0RhdGFHcmlkLm1vZHVsZS5jc3MnO1xuXG4gIGNvbG9yOiB2YXIoLS10ZXh0LWJvZHktc21hbGwtY29sb3IpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtZmFtaWx5KTtcbiAgZm9udC1zdHlsZTogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtc3R5bGUpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1ib2R5LXNtYWxsLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXRleHQtYm9keS1zbWFsbC1saW5lLWhlaWdodCk7XG5cbiAgYm9yZGVyLXRvcDogdmFyKC0tc2l6ZXMtbGluZSkgc29saWQgdmFyKC0tY29sb3JzLXNlY29uZGFyeS1ibHVlLWJhc2UpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvcnMtbmV1dHJhbC1ncmV5LWxpZ2h0ZXN0KTtcbn1cbiJdfQ== */`;
5
- const style = document.createElement('style');
6
- style.innerHTML = cssContents;
7
- document.head.appendChild(style);
8
- const footerCell = '_footerCell_1jfhd_1 _baseCell_13swz_1';
9
-
10
- exports.footerCell = footerCell;
11
- //# sourceMappingURL=FooterCell.module.css.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FooterCell.module.css.cjs","sources":["../../../../../../src/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css"],"sourcesContent":[".footerCell {\n composes: baseCell from '../../../DataGrid.module.css';\n\n color: var(--text-body-small-color);\n font-family: var(--text-body-small-font-family);\n font-style: var(--text-body-small-font-style);\n font-weight: var(--text-body-small-font-weight);\n line-height: var(--text-body-small-line-height);\n\n border-top: var(--sizes-line) solid var(--colors-secondary-blue-base);\n background-color: var(--colors-neutral-grey-lightest);\n}\n"],"names":[],"mappings":";;AACA,MAAM,WAAW,GAAG,CAAC;AACrB,6rCAA6rC,CAAC;AAC9rC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,KAAK,CAAC,SAAS,GAAG,WAAW;AAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,MAAC,UAAU,GAAG;;;;"}