@revolist/revogrid 4.24.2 → 4.25.0

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 (124) hide show
  1. package/dist/cjs/app-globals-Dmf-wvGw.js +8 -0
  2. package/dist/cjs/{cell-renderer-DnOCJ9ge.js → cell-renderer-Cf2Pu4S0.js} +3 -3
  3. package/dist/cjs/{column.drag.plugin-DSiFObaj.js → column.drag.plugin-E_K6cIAy.js} +101 -13
  4. package/dist/cjs/{column.service-CD70rNL2.js → column.service-C7p5eC5V.js} +1 -1
  5. package/dist/cjs/{dimension.helpers-CB5sNw5J.js → dimension.helpers-CgHhnN1d.js} +1 -1
  6. package/dist/cjs/{edit.utils-DDxnq9lw.js → edit.utils-rAcGublN.js} +1 -1
  7. package/dist/cjs/{filter.button-C4xpvyyE.js → filter.button-F2Bw3UAd.js} +1 -1
  8. package/dist/cjs/{header-cell-renderer-JXYFwayd.js → header-cell-renderer-DHClfIto.js} +2 -2
  9. package/dist/cjs/{index-BF6JDcMr.js → index--FdNLz1Z.js} +1 -1
  10. package/dist/cjs/{index-Dq8Xzj5l.js → index-DRvxCueo.js} +61 -20
  11. package/dist/cjs/index.cjs.js +556 -47
  12. package/dist/cjs/loader.cjs.js +3 -4
  13. package/dist/cjs/revo-grid.cjs.entry.js +256 -28
  14. package/dist/cjs/revo-grid.cjs.js +4 -5
  15. package/dist/cjs/revogr-attribution_7.cjs.entry.js +9 -9
  16. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +6 -6
  17. package/dist/cjs/revogr-data_4.cjs.entry.js +8 -8
  18. package/dist/cjs/revogr-filter-panel.cjs.entry.js +19 -6
  19. package/dist/cjs/{text-editor-CvgloQdG.js → text-editor-F04kTx53.js} +2 -2
  20. package/dist/cjs/{viewport.store-Ci8H1bI9.js → viewport.store-B4Clk4m9.js} +1 -1
  21. package/dist/collection/collection-manifest.json +2 -3
  22. package/dist/collection/components/editors/revogr-edit-style.css +2 -2
  23. package/dist/collection/components/header/revogr-header-style.css +2 -2
  24. package/dist/collection/components/overlay/revogr-overlay-style.css +9 -6
  25. package/dist/collection/components/revoGrid/revo-grid-style.css +451 -276
  26. package/dist/collection/components/revoGrid/revo-grid.js +106 -35
  27. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +6 -4
  28. package/dist/collection/components/selectionFocus/revogr-focus-style.css +1 -1
  29. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +2 -2
  30. package/dist/collection/index.js +1 -0
  31. package/dist/collection/plugins/filter/filter.panel.js +36 -3
  32. package/dist/collection/plugins/filter/filter.plugin.js +21 -6
  33. package/dist/collection/plugins/filter/filter.style.css +43 -38
  34. package/dist/collection/serve/controller.js +18 -2
  35. package/dist/collection/themeManager/presets/aurora.js +89 -0
  36. package/dist/collection/themeManager/presets/high-contrast-dark.js +89 -0
  37. package/dist/collection/themeManager/presets/high-contrast.js +89 -0
  38. package/dist/collection/themeManager/presets/index.js +25 -0
  39. package/dist/collection/themeManager/presets/midnight.js +89 -0
  40. package/dist/collection/themeManager/presets/ocean.js +89 -0
  41. package/dist/collection/themeManager/presets/shared.js +64 -0
  42. package/dist/collection/themeManager/theme.service.js +141 -20
  43. package/dist/collection/types/theme.js +73 -1
  44. package/dist/esm/app-globals-CA4dvSNd.js +6 -0
  45. package/dist/{revo-grid/cell-renderer-BQjko1zB.js → esm/cell-renderer-11cf-lu3.js} +3 -3
  46. package/dist/{revo-grid/column.drag.plugin-Cf9DYdQj.js → esm/column.drag.plugin-DKgC_0I1.js} +100 -14
  47. package/dist/esm/{column.service-BnFqXqQG.js → column.service-Cfw3L0PN.js} +1 -1
  48. package/dist/esm/{dimension.helpers-CXrsUc6f.js → dimension.helpers-fl4HSSK9.js} +1 -1
  49. package/dist/esm/{edit.utils-CXmmCnxE.js → edit.utils-4e9fsqOR.js} +1 -1
  50. package/dist/esm/{filter.button-B-RBiF67.js → filter.button-DMhpuAiw.js} +1 -1
  51. package/dist/esm/{header-cell-renderer-B3mYpZD3.js → header-cell-renderer-Cqtg1ETB.js} +2 -2
  52. package/dist/esm/{index-Chp_81rd.js → index-CtimkLsB.js} +62 -20
  53. package/dist/esm/{index-DBqlJITb.js → index-D24ku9ej.js} +1 -1
  54. package/dist/esm/index.js +513 -13
  55. package/dist/esm/loader.js +4 -5
  56. package/dist/esm/revo-grid.entry.js +255 -27
  57. package/dist/esm/revo-grid.js +5 -6
  58. package/dist/esm/revogr-attribution_7.entry.js +9 -9
  59. package/dist/esm/revogr-clipboard_3.entry.js +6 -6
  60. package/dist/esm/revogr-data_4.entry.js +8 -8
  61. package/dist/esm/revogr-filter-panel.entry.js +19 -6
  62. package/dist/{revo-grid/text-editor-DQtz2Y7B.js → esm/text-editor-DlMnLkRK.js} +2 -2
  63. package/dist/{revo-grid/viewport.store-D5jEuhLq.js → esm/viewport.store-BSXmsiZc.js} +1 -1
  64. package/dist/revo-grid/app-globals-CA4dvSNd.js +6 -0
  65. package/dist/{esm/cell-renderer-BQjko1zB.js → revo-grid/cell-renderer-11cf-lu3.js} +3 -3
  66. package/dist/{esm/column.drag.plugin-Cf9DYdQj.js → revo-grid/column.drag.plugin-DKgC_0I1.js} +100 -14
  67. package/dist/revo-grid/{column.service-BnFqXqQG.js → column.service-Cfw3L0PN.js} +1 -1
  68. package/dist/revo-grid/{dimension.helpers-CXrsUc6f.js → dimension.helpers-fl4HSSK9.js} +1 -1
  69. package/dist/revo-grid/{edit.utils-CXmmCnxE.js → edit.utils-4e9fsqOR.js} +1 -1
  70. package/dist/revo-grid/{filter.button-B-RBiF67.js → filter.button-DMhpuAiw.js} +1 -1
  71. package/dist/revo-grid/{header-cell-renderer-B3mYpZD3.js → header-cell-renderer-Cqtg1ETB.js} +2 -2
  72. package/dist/revo-grid/{index-Chp_81rd.js → index-CtimkLsB.js} +62 -20
  73. package/dist/revo-grid/{index-DBqlJITb.js → index-D24ku9ej.js} +1 -1
  74. package/dist/revo-grid/index.esm.js +513 -13
  75. package/dist/revo-grid/revo-grid.entry.js +255 -27
  76. package/dist/revo-grid/revo-grid.esm.js +5 -6
  77. package/dist/revo-grid/revogr-attribution_7.entry.js +9 -9
  78. package/dist/revo-grid/revogr-clipboard_3.entry.js +6 -6
  79. package/dist/revo-grid/revogr-data_4.entry.js +8 -8
  80. package/dist/revo-grid/revogr-filter-panel.entry.js +19 -6
  81. package/dist/{esm/text-editor-DQtz2Y7B.js → revo-grid/text-editor-DlMnLkRK.js} +2 -2
  82. package/dist/{esm/viewport.store-D5jEuhLq.js → revo-grid/viewport.store-BSXmsiZc.js} +1 -1
  83. package/dist/types/components/revoGrid/revo-grid.d.ts +16 -4
  84. package/dist/types/components.d.ts +28 -7
  85. package/dist/types/index.d.ts +1 -0
  86. package/dist/types/plugins/filter/filter.panel.d.ts +4 -0
  87. package/dist/types/plugins/filter/filter.plugin.d.ts +1 -0
  88. package/dist/types/plugins/filter/filter.types.d.ts +5 -0
  89. package/dist/types/stencil-public-runtime.d.ts +1 -0
  90. package/dist/types/themeManager/presets/aurora.d.ts +8 -0
  91. package/dist/types/themeManager/presets/high-contrast-dark.d.ts +8 -0
  92. package/dist/types/themeManager/presets/high-contrast.d.ts +8 -0
  93. package/dist/types/themeManager/presets/index.d.ts +33 -0
  94. package/dist/types/themeManager/presets/midnight.d.ts +8 -0
  95. package/dist/types/themeManager/presets/ocean.d.ts +8 -0
  96. package/dist/types/themeManager/presets/shared.d.ts +81 -0
  97. package/dist/types/themeManager/theme.service.d.ts +9 -6
  98. package/dist/types/types/theme.d.ts +88 -1
  99. package/hydrate/index.js +1307 -597
  100. package/hydrate/index.mjs +1307 -597
  101. package/package.json +4 -4
  102. package/standalone/index.js +1 -1
  103. package/standalone/revo-grid.js +1 -1
  104. package/standalone/revogr-edit2.js +1 -1
  105. package/standalone/revogr-filter-panel.js +1 -1
  106. package/standalone/revogr-focus2.js +1 -1
  107. package/standalone/revogr-header2.js +1 -1
  108. package/standalone/revogr-overlay-selection2.js +1 -1
  109. package/standalone/revogr-temp-range2.js +1 -1
  110. package/standalone/revogr-viewport-scroll2.js +1 -1
  111. package/dist/cjs/app-globals-CPPhEXmy.js +0 -26
  112. package/dist/cjs/theme.service-BgnxGIjK.js +0 -72
  113. package/dist/collection/global/global.js +0 -18
  114. package/dist/collection/themeManager/theme.compact.js +0 -8
  115. package/dist/collection/themeManager/theme.default.js +0 -8
  116. package/dist/collection/themeManager/theme.material.js +0 -8
  117. package/dist/esm/app-globals-B_B_OtEa.js +0 -24
  118. package/dist/esm/theme.service-BmnDvr6P.js +0 -69
  119. package/dist/revo-grid/app-globals-B_B_OtEa.js +0 -24
  120. package/dist/revo-grid/theme.service-BmnDvr6P.js +0 -69
  121. package/dist/types/global/global.d.ts +0 -1
  122. package/dist/types/themeManager/theme.compact.d.ts +0 -4
  123. package/dist/types/themeManager/theme.default.d.ts +0 -4
  124. package/dist/types/themeManager/theme.material.d.ts +0 -4
@@ -1,18 +1,18 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- export { o as GROUPING_ROW_TYPE, j as GROUP_COLUMN_PROP, G as GROUP_DEPTH, h as GROUP_EXPANDED, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, k as GROUP_ORIGINAL_INDEX, f as PSEUDO_GROUP_COLUMN, P as PSEUDO_GROUP_ITEM, d as PSEUDO_GROUP_ITEM_ID, e as PSEUDO_GROUP_ITEM_VALUE, c as columnTypes, a as cropCellToMax, H as gatherGroup, s as gatherGrouping, z as getCellData, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, D as getColumnSizes, C as getColumnType, F as getColumns, q as getExpanded, t as getGroupingName, x as getParsedGroup, g as getRange, p as getSource, E as isColGrouping, u as isGrouping, v as isGroupingColumn, b as isRangeSingleCell, i as isRowType, y as isSameGroup, w as measureEqualDepth, n as nextCell, r as rowTypes } from './column.service-BnFqXqQG.js';
5
- import { B as BasePlugin } from './column.drag.plugin-Cf9DYdQj.js';
6
- export { A as AutoSizeColumnPlugin, n as BEFORE_COLUMN_DRAG_END_EVENT, m as COLUMN_DRAG_END_EVENT, l as COLUMN_DRAG_MOVE_EVENT, o as COLUMN_DRAG_START_EVENT, C as ColumnAutoSizeMode, p as ColumnMovePlugin, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, d as FILTE_PANEL, e as FilterPlugin, G as GroupingRowPlugin, S as SelectionStore, s as SortingPlugin, a as StretchColumn, w as defaultCellCompare, x as descCellCompare, j as doCollapse, k as doExpand, f as filterCoreFunctionsIndexedByType, h as filterNames, g as filterTypes, r as getColumnDragPosition, z as getComparer, q as getLeftRelative, y as getNextOrder, u as getSortingIndex, t as hasActiveSorting, i as isStretchPlugin, v as sortIndexByItems } from './column.drag.plugin-Cf9DYdQj.js';
7
- export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-B3mYpZD3.js';
8
- export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode, r as renderGroupCells } from './cell-renderer-BQjko1zB.js';
9
- export { a as applyMixins, f as findPositionInArray, g as getScrollbarSize, m as mergeSortedArray, p as pushSorted, r as range, s as scaleValue, t as timeout } from './index-DBqlJITb.js';
10
- export { T as TextEditor } from './text-editor-DQtz2Y7B.js';
11
- export { k as isAll, c as isClear, h as isCopy, a as isCtrlKey, b as isCtrlMetaKey, g as isCut, m as isEditInput, n as isEditorCtrConstructible, f as isEnterKeyValue, i as isMetaKey, j as isPaste, l as isShortcutModifier, d as isTab, e as isTabKeyValue } from './edit.utils-CXmmCnxE.js';
12
- export { h } from './index-Chp_81rd.js';
13
- export { C as CELL_CLASS, z as CELL_HANDLER_CLASS, m as DATA_COL, n as DATA_ROW, o as DISABLED_CLASS, x as DRAGGABLE_CLASS, A as DRAGG_TEXT, w as DRAG_ICON_CLASS, D as DataStore, E as EDIT_INPUT_WR, F as FOCUS_CLASS, G as GRID_INTERNALS, v as HEADER_ACTUAL_ROW_CLASS, H as HEADER_CLASS, u as HEADER_ROW_CLASS, r as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, y as MOBILE_CLASS, R as RESIZE_INTERVAL, B as ROW_FOCUSED_CLASS, q as ROW_HEADER_TYPE, S as SELECTION_BORDER_CLASS, T as TMP_SELECTION_BG_CLASS, i as calculateDimensionData, I as codesLetter, h as gatherTrimmedItems, k as getItemByIndex, j as getItemByPosition, g as getPhysical, b as getSourceItem, f as getSourceItemVirtualIndexByProp, c as getSourcePhysicalIndex, a as getVisibleSourceItem, J as keyValues, p as proxyPlugin, e as setItems, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, l as setStore, t as trimmedPlugin } from './dimension.helpers-CXrsUc6f.js';
14
- export { V as ViewportStore, b as addMissingItems, j as calculateRowHeaderSize, c as clampViewportCoordinate, f as getFirstItem, d as getItems, h as getLastItem, a as getUpdatedItemsByPosition, g as getViewportMaxCoordinate, i as isActiveRange, e as isActiveRangeOutsideLastItem, r as recombineByOffset, s as setItemSizes, u as updateMissingAndRange } from './viewport.store-D5jEuhLq.js';
15
- export { A as AND_OR_BUTTON, e as AndOrButton, a as FILTER_BUTTON_ACTIVE, F as FILTER_BUTTON_CLASS, b as FILTER_PROP, c as FilterButton, R as REORDER_BUTTON, f as ReorderButton, T as TRASH_BUTTON, d as TrashButton, i as isFilterBtn } from './filter.button-B-RBiF67.js';
4
+ import { d as defineTheme, B as BasePlugin } from './column.drag.plugin-DKgC_0I1.js';
5
+ export { A as AutoSizeColumnPlugin, o as BEFORE_COLUMN_DRAG_END_EVENT, n as COLUMN_DRAG_END_EVENT, m as COLUMN_DRAG_MOVE_EVENT, p as COLUMN_DRAG_START_EVENT, C as ColumnAutoSizeMode, q as ColumnMovePlugin, D as DimensionStore, b as ExportCsv, E as ExportFilePlugin, c as FILTER_CONFIG_CHANGED_EVENT, F as FILTER_TRIMMED_TYPE, e as FILTE_PANEL, f as FilterPlugin, G as GroupingRowPlugin, S as SelectionStore, u as SortingPlugin, a as StretchColumn, y as defaultCellCompare, z as descCellCompare, k as doCollapse, l as doExpand, g as filterCoreFunctionsIndexedByType, j as filterNames, h as filterTypes, s as getColumnDragPosition, I as getComparer, r as getLeftRelative, H as getNextOrder, w as getSortingIndex, v as hasActiveSorting, i as isStretchPlugin, x as sortIndexByItems, t as themeTokenCssVariables } from './column.drag.plugin-DKgC_0I1.js';
6
+ export { o as GROUPING_ROW_TYPE, j as GROUP_COLUMN_PROP, G as GROUP_DEPTH, h as GROUP_EXPANDED, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, k as GROUP_ORIGINAL_INDEX, f as PSEUDO_GROUP_COLUMN, P as PSEUDO_GROUP_ITEM, d as PSEUDO_GROUP_ITEM_ID, e as PSEUDO_GROUP_ITEM_VALUE, c as columnTypes, a as cropCellToMax, H as gatherGroup, s as gatherGrouping, z as getCellData, B as getCellDataParsed, A as getCellRaw, I as getColumnByProp, D as getColumnSizes, C as getColumnType, F as getColumns, q as getExpanded, t as getGroupingName, x as getParsedGroup, g as getRange, p as getSource, E as isColGrouping, u as isGrouping, v as isGroupingColumn, b as isRangeSingleCell, i as isRowType, y as isSameGroup, w as measureEqualDepth, n as nextCell, r as rowTypes } from './column.service-Cfw3L0PN.js';
7
+ export { d as dispatch, a as dispatchByEvent } from './header-cell-renderer-Cqtg1ETB.js';
8
+ export { C as CellRenderer, G as GroupingRowRenderer, S as SortingSign, e as expandEvent, a as expandSvgIconVNode, r as renderGroupCells } from './cell-renderer-11cf-lu3.js';
9
+ export { a as applyMixins, f as findPositionInArray, g as getScrollbarSize, m as mergeSortedArray, p as pushSorted, r as range, s as scaleValue, t as timeout } from './index-D24ku9ej.js';
10
+ export { T as TextEditor } from './text-editor-DlMnLkRK.js';
11
+ export { k as isAll, c as isClear, h as isCopy, a as isCtrlKey, b as isCtrlMetaKey, g as isCut, m as isEditInput, n as isEditorCtrConstructible, f as isEnterKeyValue, i as isMetaKey, j as isPaste, l as isShortcutModifier, d as isTab, e as isTabKeyValue } from './edit.utils-4e9fsqOR.js';
12
+ export { h } from './index-CtimkLsB.js';
13
+ export { C as CELL_CLASS, z as CELL_HANDLER_CLASS, m as DATA_COL, n as DATA_ROW, o as DISABLED_CLASS, x as DRAGGABLE_CLASS, A as DRAGG_TEXT, w as DRAG_ICON_CLASS, D as DataStore, E as EDIT_INPUT_WR, F as FOCUS_CLASS, G as GRID_INTERNALS, v as HEADER_ACTUAL_ROW_CLASS, H as HEADER_CLASS, u as HEADER_ROW_CLASS, r as HEADER_SORTABLE_CLASS, M as MIN_COL_SIZE, y as MOBILE_CLASS, R as RESIZE_INTERVAL, B as ROW_FOCUSED_CLASS, q as ROW_HEADER_TYPE, S as SELECTION_BORDER_CLASS, T as TMP_SELECTION_BG_CLASS, i as calculateDimensionData, I as codesLetter, h as gatherTrimmedItems, k as getItemByIndex, j as getItemByPosition, g as getPhysical, b as getSourceItem, f as getSourceItemVirtualIndexByProp, c as getSourcePhysicalIndex, a as getVisibleSourceItem, J as keyValues, p as proxyPlugin, e as setItems, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, l as setStore, t as trimmedPlugin } from './dimension.helpers-fl4HSSK9.js';
14
+ export { V as ViewportStore, b as addMissingItems, j as calculateRowHeaderSize, c as clampViewportCoordinate, f as getFirstItem, d as getItems, h as getLastItem, a as getUpdatedItemsByPosition, g as getViewportMaxCoordinate, i as isActiveRange, e as isActiveRangeOutsideLastItem, r as recombineByOffset, s as setItemSizes, u as updateMissingAndRange } from './viewport.store-BSXmsiZc.js';
15
+ export { A as AND_OR_BUTTON, e as AndOrButton, a as FILTER_BUTTON_ACTIVE, F as FILTER_BUTTON_CLASS, b as FILTER_PROP, c as FilterButton, R as REORDER_BUTTON, f as ReorderButton, T as TRASH_BUTTON, d as TrashButton, i as isFilterBtn } from './filter.button-DMhpuAiw.js';
16
16
  import './debounce-PCRWZliA.js';
17
17
 
18
18
  const REVOGRID_EVENTS = new Map([
@@ -132,6 +132,506 @@ const REVOGRID_EVENTS = new Map([
132
132
  ['html', 'html']
133
133
  ]);
134
134
 
135
+ const modernSystemFont = "Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif";
136
+ /** Maps compact, typed preset data to the public semantic theme-token contract. */
137
+ function createPresetTokens({ foundation, grid, filterPanel, typography, selection, buttons, }) {
138
+ const [primary, primaryTransparent, background, foreground, divider, shadow, text, border,] = foundation;
139
+ const [headerBg, headerColor, headerBorder, headerFocusedBg, headerHoverBg, cellBorder, cellVerticalBorder, focusedBg, rowHover, rowHeadersBg, rowHeadersColor, cellDisabledBg,] = grid;
140
+ const [filterPanelBg, filterPanelBorder, filterPanelShadow, filterPanelInputBg, filterPanelDivider, filterPanelSelectBorder, filterPanelSelectBorderHover, filterPanelReorderAccent, filterPanelReorderColor, filterPanelText, filterPanelMutedText, filterPanelFocusRing, filterPanelIcon, filterPanelIconActive,] = filterPanel;
141
+ const [fontSize, headerHeight, headerFontSize, headerFontWeight, headerTextTransform, headerTextAlign, cellTextAlign, headerPadding, cellPadding,] = typography;
142
+ const [selectionBorder, selectionBg, autofillHandleBg, autofillHandleBorder, rangeHandleBg, temporaryRangeBorder, temporarySelectionBorder, headerResizeHover,] = selection;
143
+ const [buttonText, buttonBg, buttonSuccessBg, buttonDangerBg, buttonOutlineBorder, buttonOutlineText,] = buttons;
144
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ primary,
145
+ primaryTransparent,
146
+ background,
147
+ foreground,
148
+ divider,
149
+ shadow,
150
+ text,
151
+ border,
152
+ headerBg,
153
+ headerColor,
154
+ headerBorder }, (headerFocusedBg ? { headerFocusedBg } : {})), (headerHoverBg ? { headerHoverBg } : {})), { cellBorder }), (cellVerticalBorder ? { cellVerticalBorder } : {})), { focusedBg,
155
+ rowHover,
156
+ rowHeadersBg,
157
+ rowHeadersColor,
158
+ cellDisabledBg,
159
+ filterPanelBg,
160
+ filterPanelBorder,
161
+ filterPanelShadow,
162
+ filterPanelInputBg,
163
+ filterPanelDivider,
164
+ filterPanelSelectBorder,
165
+ filterPanelSelectBorderHover,
166
+ filterPanelReorderAccent,
167
+ filterPanelReorderColor,
168
+ filterPanelText,
169
+ filterPanelMutedText,
170
+ filterPanelFocusRing,
171
+ filterPanelIcon,
172
+ filterPanelIconActive, fontFamily: modernSystemFont, fontSize,
173
+ headerHeight,
174
+ headerFontSize,
175
+ headerFontWeight,
176
+ headerTextTransform,
177
+ headerTextAlign,
178
+ cellTextAlign,
179
+ headerPadding,
180
+ cellPadding,
181
+ selectionBorder,
182
+ selectionBg,
183
+ autofillHandleBg,
184
+ autofillHandleBorder,
185
+ rangeHandleBg,
186
+ temporaryRangeBorder,
187
+ temporarySelectionBorder,
188
+ headerResizeHover,
189
+ buttonText,
190
+ buttonBg,
191
+ buttonSuccessBg,
192
+ buttonDangerBg,
193
+ buttonOutlineBorder,
194
+ buttonOutlineText });
195
+ }
196
+
197
+ const oceanFoundation = [
198
+ '#2563eb',
199
+ 'rgba(37, 99, 235, 0.88)',
200
+ '#f8fafc',
201
+ '#0f172a',
202
+ '#cbd5e1',
203
+ 'rgba(15, 23, 42, 0.16)',
204
+ '#334155',
205
+ '#d8e2ee',
206
+ ];
207
+ const oceanGrid = [
208
+ '#eef4fb',
209
+ '#0f172a',
210
+ '#d7e2ee',
211
+ null,
212
+ null,
213
+ '#e5edf5',
214
+ null,
215
+ '#dbeafe',
216
+ '#eff6ff',
217
+ '#e7f0fa',
218
+ '#475569',
219
+ '#f1f5f9',
220
+ ];
221
+ const oceanFilterPanel = [
222
+ '#ffffff',
223
+ '#dbe4ef',
224
+ 'rgba(15, 23, 42, 0.18)',
225
+ '#f1f5f9',
226
+ '#e2e8f0',
227
+ '#cbd5e1',
228
+ '#2563eb',
229
+ '#2563eb',
230
+ '#64748b',
231
+ '#334155',
232
+ '#64748b',
233
+ '0 0 0 3px rgba(37, 99, 235, 0.2)',
234
+ '#64748b',
235
+ '#2563eb',
236
+ ];
237
+ const oceanTypography = [
238
+ '13px',
239
+ '44px',
240
+ '12px',
241
+ '650',
242
+ 'none',
243
+ 'left',
244
+ 'left',
245
+ '0 14px',
246
+ '0 14px',
247
+ ];
248
+ const oceanSelection = [
249
+ '#2563eb',
250
+ 'rgba(37, 99, 235, 0.1)',
251
+ '#2563eb',
252
+ '#ffffff',
253
+ 'rgba(37, 99, 235, 0.22)',
254
+ '#f97316',
255
+ '#64748b',
256
+ '#3b82f6',
257
+ ];
258
+ const oceanButtons = [
259
+ '#ffffff',
260
+ '#2563eb',
261
+ '#059669',
262
+ '#dc2626',
263
+ '#cbd5e1',
264
+ '#334155',
265
+ ];
266
+ /** Bright blue and slate preset for data-heavy daytime interfaces. */
267
+ const oceanTheme = defineTheme({
268
+ name: 'ocean',
269
+ extends: 'material',
270
+ colorScheme: 'light',
271
+ defaultRowSize: 38,
272
+ tokens: createPresetTokens({
273
+ foundation: oceanFoundation,
274
+ grid: oceanGrid,
275
+ filterPanel: oceanFilterPanel,
276
+ typography: oceanTypography,
277
+ selection: oceanSelection,
278
+ buttons: oceanButtons,
279
+ }),
280
+ });
281
+
282
+ const midnightFoundation = [
283
+ '#8b5cf6',
284
+ 'rgba(139, 92, 246, 0.9)',
285
+ '#0b1020',
286
+ '#f8fafc',
287
+ '#334155',
288
+ 'rgba(0, 0, 0, 0.5)',
289
+ '#dbeafe',
290
+ '#25324d',
291
+ ];
292
+ const midnightGrid = [
293
+ '#121a2f',
294
+ '#e2e8f0',
295
+ '#2a3855',
296
+ null,
297
+ null,
298
+ '#202c46',
299
+ null,
300
+ '#172554',
301
+ '#111c35',
302
+ '#10182b',
303
+ '#94a3b8',
304
+ 'rgba(100, 116, 139, 0.12)',
305
+ ];
306
+ const midnightFilterPanel = [
307
+ '#111827',
308
+ '#334155',
309
+ 'rgba(0, 0, 0, 0.55)',
310
+ '#1e293b',
311
+ '#334155',
312
+ '#475569',
313
+ '#22d3ee',
314
+ '#22d3ee',
315
+ '#94a3b8',
316
+ '#e2e8f0',
317
+ '#94a3b8',
318
+ '0 0 0 3px rgba(34, 211, 238, 0.2)',
319
+ '#94a3b8',
320
+ '#22d3ee',
321
+ ];
322
+ const midnightTypography = [
323
+ '13px',
324
+ '46px',
325
+ '12px',
326
+ '650',
327
+ 'none',
328
+ 'left',
329
+ 'left',
330
+ '0 14px',
331
+ '0 14px',
332
+ ];
333
+ const midnightSelection = [
334
+ '#22d3ee',
335
+ 'rgba(34, 211, 238, 0.12)',
336
+ '#22d3ee',
337
+ '#0b1020',
338
+ 'rgba(34, 211, 238, 0.24)',
339
+ '#f472b6',
340
+ '#a78bfa',
341
+ '#22d3ee',
342
+ ];
343
+ const midnightButtons = [
344
+ '#ffffff',
345
+ '#7c3aed',
346
+ '#059669',
347
+ '#e11d48',
348
+ '#475569',
349
+ '#e2e8f0',
350
+ ];
351
+ /** Deep navy preset with cyan selection and violet action accents. */
352
+ const midnightTheme = defineTheme({
353
+ name: 'midnight',
354
+ extends: 'darkMaterial',
355
+ colorScheme: 'dark',
356
+ defaultRowSize: 40,
357
+ tokens: createPresetTokens({
358
+ foundation: midnightFoundation,
359
+ grid: midnightGrid,
360
+ filterPanel: midnightFilterPanel,
361
+ typography: midnightTypography,
362
+ selection: midnightSelection,
363
+ buttons: midnightButtons,
364
+ }),
365
+ });
366
+
367
+ const auroraFoundation = [
368
+ '#34d399',
369
+ 'rgba(52, 211, 153, 0.88)',
370
+ '#071714',
371
+ '#ecfdf5',
372
+ '#285047',
373
+ 'rgba(0, 0, 0, 0.5)',
374
+ '#d1fae5',
375
+ '#1c3d36',
376
+ ];
377
+ const auroraGrid = [
378
+ '#0c2420',
379
+ '#ecfdf5',
380
+ '#245047',
381
+ null,
382
+ null,
383
+ '#17352f',
384
+ null,
385
+ '#103d34',
386
+ '#0d2e28',
387
+ '#0a201c',
388
+ '#86cbb8',
389
+ 'rgba(110, 231, 183, 0.08)',
390
+ ];
391
+ const auroraFilterPanel = [
392
+ '#0b201c',
393
+ '#285047',
394
+ 'rgba(0, 0, 0, 0.52)',
395
+ '#12352e',
396
+ '#23483f',
397
+ '#37695d',
398
+ '#34d399',
399
+ '#2dd4bf',
400
+ '#86cbb8',
401
+ '#d1fae5',
402
+ '#86a89f',
403
+ '0 0 0 3px rgba(52, 211, 153, 0.2)',
404
+ '#86a89f',
405
+ '#5eead4',
406
+ ];
407
+ const auroraTypography = [
408
+ '12px',
409
+ '42px',
410
+ '11px',
411
+ '650',
412
+ 'uppercase',
413
+ 'left',
414
+ 'left',
415
+ '0 12px',
416
+ '0 12px',
417
+ ];
418
+ const auroraSelection = [
419
+ '#34d399',
420
+ 'rgba(52, 211, 153, 0.12)',
421
+ '#34d399',
422
+ '#071714',
423
+ 'rgba(45, 212, 191, 0.22)',
424
+ '#fbbf24',
425
+ '#5eead4',
426
+ '#2dd4bf',
427
+ ];
428
+ const auroraButtons = [
429
+ '#052e27',
430
+ '#34d399',
431
+ '#10b981',
432
+ '#fb7185',
433
+ '#37695d',
434
+ '#d1fae5',
435
+ ];
436
+ /** Compact graphite and evergreen preset with luminous emerald states. */
437
+ const auroraTheme = defineTheme({
438
+ name: 'aurora',
439
+ extends: 'darkCompact',
440
+ colorScheme: 'dark',
441
+ defaultRowSize: 34,
442
+ tokens: createPresetTokens({
443
+ foundation: auroraFoundation,
444
+ grid: auroraGrid,
445
+ filterPanel: auroraFilterPanel,
446
+ typography: auroraTypography,
447
+ selection: auroraSelection,
448
+ buttons: auroraButtons,
449
+ }),
450
+ });
451
+
452
+ const highContrastFoundation = [
453
+ '#003eaa',
454
+ 'rgba(0, 62, 170, 0.92)',
455
+ '#ffffff',
456
+ '#000000',
457
+ '#374151',
458
+ 'rgba(0, 0, 0, 0.35)',
459
+ '#111827',
460
+ '#374151',
461
+ ];
462
+ const highContrastGrid = [
463
+ '#111827',
464
+ '#ffffff',
465
+ '#ffffff',
466
+ '#003eaa',
467
+ '#1f2937',
468
+ '#6b7280',
469
+ '#6b7280',
470
+ '#d6e9ff',
471
+ '#e8f2ff',
472
+ '#e5e7eb',
473
+ '#000000',
474
+ '#d1d5db',
475
+ ];
476
+ const highContrastFilterPanel = [
477
+ '#ffffff',
478
+ '#111827',
479
+ 'rgba(0, 0, 0, 0.4)',
480
+ '#ffffff',
481
+ '#4b5563',
482
+ '#111827',
483
+ '#003eaa',
484
+ '#003eaa',
485
+ '#374151',
486
+ '#000000',
487
+ '#374151',
488
+ '0 0 0 3px #ffbf00',
489
+ '#111827',
490
+ '#003eaa',
491
+ ];
492
+ const highContrastTypography = [
493
+ '14px',
494
+ '48px',
495
+ '13px',
496
+ '700',
497
+ 'none',
498
+ 'left',
499
+ 'left',
500
+ '0 14px',
501
+ '0 14px',
502
+ ];
503
+ const highContrastSelection = [
504
+ '#003eaa',
505
+ 'rgba(0, 95, 204, 0.2)',
506
+ '#003eaa',
507
+ '#ffffff',
508
+ 'rgba(0, 95, 204, 0.3)',
509
+ '#a61b1b',
510
+ '#5b21b6',
511
+ '#ffbf00',
512
+ ];
513
+ const highContrastButtons = [
514
+ '#ffffff',
515
+ '#003eaa',
516
+ '#006b3c',
517
+ '#b91c1c',
518
+ '#111827',
519
+ '#111827',
520
+ ];
521
+ /** High-contrast light preset with dark structure and vivid blue focus states. */
522
+ const highContrastTheme = defineTheme({
523
+ name: 'highContrast',
524
+ extends: 'material',
525
+ colorScheme: 'light',
526
+ defaultRowSize: 40,
527
+ tokens: createPresetTokens({
528
+ foundation: highContrastFoundation,
529
+ grid: highContrastGrid,
530
+ filterPanel: highContrastFilterPanel,
531
+ typography: highContrastTypography,
532
+ selection: highContrastSelection,
533
+ buttons: highContrastButtons,
534
+ }),
535
+ });
536
+
537
+ const highContrastDarkFoundation = [
538
+ '#ffd400',
539
+ 'rgba(255, 212, 0, 0.94)',
540
+ '#050505',
541
+ '#ffffff',
542
+ '#d1d5db',
543
+ 'rgba(0, 0, 0, 0.8)',
544
+ '#ffffff',
545
+ '#bfc7d5',
546
+ ];
547
+ const highContrastDarkGrid = [
548
+ '#171717',
549
+ '#ffffff',
550
+ '#e5e7eb',
551
+ '#005f73',
552
+ '#303030',
553
+ '#737b87',
554
+ '#737b87',
555
+ '#182c3f',
556
+ '#202a33',
557
+ '#222222',
558
+ '#ffffff',
559
+ '#303030',
560
+ ];
561
+ const highContrastDarkFilterPanel = [
562
+ '#0a0a0a',
563
+ '#ffffff',
564
+ 'rgba(0, 0, 0, 0.85)',
565
+ '#171717',
566
+ '#d1d5db',
567
+ '#e5e7eb',
568
+ '#ffd400',
569
+ '#00e5ff',
570
+ '#e5e7eb',
571
+ '#ffffff',
572
+ '#d1d5db',
573
+ '0 0 0 3px #ffd400',
574
+ '#e5e7eb',
575
+ '#ffd400',
576
+ ];
577
+ const highContrastDarkTypography = [
578
+ '14px',
579
+ '48px',
580
+ '13px',
581
+ '700',
582
+ 'none',
583
+ 'left',
584
+ 'left',
585
+ '0 14px',
586
+ '0 14px',
587
+ ];
588
+ const highContrastDarkSelection = [
589
+ '#00e5ff',
590
+ 'rgba(0, 229, 255, 0.2)',
591
+ '#ffd400',
592
+ '#000000',
593
+ 'rgba(0, 229, 255, 0.32)',
594
+ '#ffd400',
595
+ '#ff7ad9',
596
+ '#ffd400',
597
+ ];
598
+ const highContrastDarkButtons = [
599
+ '#000000',
600
+ '#ffd400',
601
+ '#7cfc00',
602
+ '#ff8080',
603
+ '#ffffff',
604
+ '#ffffff',
605
+ ];
606
+ /** High-contrast dark preset with luminous yellow and cyan interaction states. */
607
+ const highContrastDarkTheme = defineTheme({
608
+ name: 'highContrastDark',
609
+ extends: 'darkMaterial',
610
+ colorScheme: 'dark',
611
+ defaultRowSize: 40,
612
+ tokens: createPresetTokens({
613
+ foundation: highContrastDarkFoundation,
614
+ grid: highContrastDarkGrid,
615
+ filterPanel: highContrastDarkFilterPanel,
616
+ typography: highContrastDarkTypography,
617
+ selection: highContrastDarkSelection,
618
+ buttons: highContrastDarkButtons,
619
+ }),
620
+ });
621
+
622
+ /** Accessible light and dark high-contrast choices. */
623
+ const highContrastThemeDefinitions = [
624
+ highContrastTheme,
625
+ highContrastDarkTheme,
626
+ ];
627
+ /** Ready-to-register modern presets. Presets remain opt-in and per grid. */
628
+ const modernThemeDefinitions = [
629
+ oceanTheme,
630
+ midnightTheme,
631
+ auroraTheme,
632
+ ...highContrastThemeDefinitions,
633
+ ];
634
+
135
635
  /**
136
636
  * Automatically adds new rows when pasted data is larger than current rows
137
637
  * @event newRows - is triggered when new rows are added. Data of new rows can be filled with default values. If the event is prevented, no rows will be added
@@ -168,4 +668,4 @@ class AutoAddRowsPlugin extends BasePlugin {
168
668
  }
169
669
  }
170
670
 
171
- export { AutoAddRowsPlugin, BasePlugin, REVOGRID_EVENTS };
671
+ export { AutoAddRowsPlugin, BasePlugin, REVOGRID_EVENTS, auroraTheme, defineTheme, highContrastDarkTheme, highContrastTheme, highContrastThemeDefinitions, midnightTheme, modernThemeDefinitions, oceanTheme };