@pstdio/ui 0.26.0 → 0.36.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.
- package/dist/EquationComponent-DDd5UoIP.js +65 -0
- package/dist/EquationComponent-DDd5UoIP.js.map +1 -0
- package/dist/MermaidComponent-Cxg7NtjX.js +90 -0
- package/dist/MermaidComponent-Cxg7NtjX.js.map +1 -0
- package/dist/browser-storage-C_ipoNwP.js +37 -0
- package/dist/browser-storage-C_ipoNwP.js.map +1 -0
- package/dist/chat-ui.d.ts +688 -2
- package/dist/chat-ui.js +3271 -2848
- package/dist/chat-ui.js.map +1 -1
- package/dist/data-table-stats-row-UuTinYfL.js +415 -0
- package/dist/data-table-stats-row-UuTinYfL.js.map +1 -0
- package/dist/data-table.d.ts +174 -2
- package/dist/data-table.js +1349 -1187
- package/dist/data-table.js.map +1 -1
- package/dist/diff-bubble-DZsarmSG.js +61 -0
- package/dist/diff-bubble-DZsarmSG.js.map +1 -0
- package/dist/diff-drawer-45rpk3aq.js +776 -0
- package/dist/diff-drawer-45rpk3aq.js.map +1 -0
- package/dist/diff-editor-CGpeyoCE.js +124 -0
- package/dist/diff-editor-CGpeyoCE.js.map +1 -0
- package/dist/diff-size-Dydn_Uw5.js +61 -0
- package/dist/diff-size-Dydn_Uw5.js.map +1 -0
- package/dist/diff-viewer-hGkaF_zW.js +558 -0
- package/dist/diff-viewer-hGkaF_zW.js.map +1 -0
- package/dist/diff.d.ts +128 -2
- package/dist/diff.js +163 -1302
- package/dist/diff.js.map +1 -1
- package/dist/empty-state-3mVV_pV-.js +38 -0
- package/dist/empty-state-3mVV_pV-.js.map +1 -0
- package/dist/file-change-badge-0QFNv82B.js +64 -0
- package/dist/file-change-badge-0QFNv82B.js.map +1 -0
- package/dist/index-BfFLdci8.d.ts +189 -0
- package/dist/index-Dd6e8lU_.d.ts +61 -0
- package/dist/index-DlmvvQ6x.d.ts +143 -0
- package/dist/index.d.ts +1504 -40
- package/dist/index.js +3121 -2707
- package/dist/index.js.map +1 -1
- package/dist/kanban-renderer.d.ts +339 -2
- package/dist/kanban-renderer.js +1413 -1085
- package/dist/kanban-renderer.js.map +1 -1
- package/dist/list-row-De9R2zKU.js +1008 -0
- package/dist/list-row-De9R2zKU.js.map +1 -0
- package/dist/mermaid-renderer-DImi0fDp.js +553 -0
- package/dist/mermaid-renderer-DImi0fDp.js.map +1 -0
- package/dist/mermaid.d.ts +12 -2
- package/dist/mermaid.js +2 -5
- package/dist/monaco-browser-CLRPSE4-.js +14 -0
- package/dist/monaco-browser-CLRPSE4-.js.map +1 -0
- package/dist/param-editor-I0dKQeeZ.js +225 -0
- package/dist/param-editor-I0dKQeeZ.js.map +1 -0
- package/dist/param-editor-field-CBguLs_b.js +2368 -0
- package/dist/param-editor-field-CBguLs_b.js.map +1 -0
- package/dist/param-editor.d.ts +407 -2
- package/dist/param-editor.js +3 -47
- package/dist/prism-pSHJejZx.js +646 -0
- package/dist/prism-pSHJejZx.js.map +1 -0
- package/dist/radio-CiFrDN6O.js +54 -0
- package/dist/radio-CiFrDN6O.js.map +1 -0
- package/dist/resource-badge-95WPVlZf.d.ts +76 -0
- package/dist/rich-text-BgDvOEGH.js +7021 -0
- package/dist/rich-text-BgDvOEGH.js.map +1 -0
- package/dist/rich-text.d.ts +3 -2
- package/dist/rich-text.js +2 -429
- package/dist/rolldown-runtime-Dy4uBu1J.js +11 -0
- package/dist/scroll-area-Cr1lNXAr.js +100 -0
- package/dist/scroll-area-Cr1lNXAr.js.map +1 -0
- package/dist/slider-hwHYe98I.js +423 -0
- package/dist/slider-hwHYe98I.js.map +1 -0
- package/dist/style.css +2 -1
- package/dist/terminal.d.ts +203 -2
- package/dist/terminal.js +324 -360
- package/dist/terminal.js.map +1 -1
- package/dist/theme-0cbWICbg.js +2936 -0
- package/dist/theme-0cbWICbg.js.map +1 -0
- package/dist/theme-preference-pzfuK5cH.js +101 -0
- package/dist/theme-preference-pzfuK5cH.js.map +1 -0
- package/dist/theme.d.ts +3 -2
- package/dist/theme.js +2 -15
- package/dist/tree-list-BUfDQz3v.js +1449 -0
- package/dist/tree-list-BUfDQz3v.js.map +1 -0
- package/dist/types-yjKBk07w.d.ts +161 -0
- package/dist/workspace-badge-Brm3Xr3m.d.ts +75 -0
- package/dist/workspace-badge-DrvH8WKV.js +241 -0
- package/dist/workspace-badge-DrvH8WKV.js.map +1 -0
- package/dist-monaco/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist-monaco/assets/css.worker-DFdt6_zu.js +89 -0
- package/dist-monaco/assets/editor.worker-O-CH8JUO.js +26 -0
- package/dist-monaco/assets/html.worker-JUzsMP-j.js +502 -0
- package/dist-monaco/assets/json.worker-B4dEhy0e.js +58 -0
- package/dist-monaco/assets/ts.worker-CmEKzkmF.js +67734 -0
- package/dist-monaco/monaco.css +1 -0
- package/dist-monaco/monaco.js +1201 -0
- package/package.json +26 -13
- package/dist/EquationComponent-DeDYHvqY.js +0 -62
- package/dist/EquationComponent-DeDYHvqY.js.map +0 -1
- package/dist/MermaidComponent-X__B6qib.js +0 -60
- package/dist/MermaidComponent-X__B6qib.js.map +0 -1
- package/dist/activity-timeline-BynMjXSB.js +0 -283
- package/dist/activity-timeline-BynMjXSB.js.map +0 -1
- package/dist/alert-ubcrW24X.js +0 -33
- package/dist/alert-ubcrW24X.js.map +0 -1
- package/dist/browser-storage-BinyFNJX.js +0 -40
- package/dist/browser-storage-BinyFNJX.js.map +0 -1
- package/dist/components/activity/activity-avatar.d.ts +0 -9
- package/dist/components/activity/activity-comment.d.ts +0 -27
- package/dist/components/activity/activity-composer.d.ts +0 -18
- package/dist/components/activity/activity-event.d.ts +0 -12
- package/dist/components/activity/activity-root.d.ts +0 -15
- package/dist/components/activity/activity-timeline.d.ts +0 -6
- package/dist/components/activity/activity.types.d.ts +0 -5
- package/dist/components/activity/index.d.ts +0 -25
- package/dist/components/chat-ui/components/ai-conversation.d.ts +0 -603
- package/dist/components/chat-ui/components/ai-message.d.ts +0 -91
- package/dist/components/chat-ui/components/ai-response.d.ts +0 -5
- package/dist/components/chat-ui/components/approval-prompt.d.ts +0 -8
- package/dist/components/chat-ui/components/attachment-list.d.ts +0 -23
- package/dist/components/chat-ui/components/auto-scroll.d.ts +0 -37
- package/dist/components/chat-ui/components/chat-history-story.d.ts +0 -14
- package/dist/components/chat-ui/components/chat-input-actions.d.ts +0 -13
- package/dist/components/chat-ui/components/chat-input-attachments.d.ts +0 -12
- package/dist/components/chat-ui/components/chat-input-history.d.ts +0 -6
- package/dist/components/chat-ui/components/chat-input-question-prompt.d.ts +0 -36
- package/dist/components/chat-ui/components/chat-input.d.ts +0 -33
- package/dist/components/chat-ui/components/chat-message-animation.d.ts +0 -22
- package/dist/components/chat-ui/components/chat-message-list-items.d.ts +0 -17
- package/dist/components/chat-ui/components/chat-message-list.d.ts +0 -12
- package/dist/components/chat-ui/components/chat-panel-composer.d.ts +0 -49
- package/dist/components/chat-ui/components/chat-panel-sticky-user-message.d.ts +0 -13
- package/dist/components/chat-ui/components/chat-panel.d.ts +0 -45
- package/dist/components/chat-ui/components/chat-skeleton.d.ts +0 -1
- package/dist/components/chat-ui/components/composer-constants.d.ts +0 -1
- package/dist/components/chat-ui/components/conversation-browse.d.ts +0 -22
- package/dist/components/chat-ui/components/message-action-panel.d.ts +0 -10
- package/dist/components/chat-ui/components/message-parts-renderer.d.ts +0 -13
- package/dist/components/chat-ui/components/message-types.d.ts +0 -116
- package/dist/components/chat-ui/components/model-swap-separator.d.ts +0 -5
- package/dist/components/chat-ui/components/queued-follow-up-list-state.d.ts +0 -4
- package/dist/components/chat-ui/components/queued-follow-up-list.d.ts +0 -11
- package/dist/components/chat-ui/components/send-button.d.ts +0 -7
- package/dist/components/chat-ui/components/timeline-title.d.ts +0 -6
- package/dist/components/chat-ui/components/timeline-tool-blocks.d.ts +0 -14
- package/dist/components/chat-ui/components/timeline.d.ts +0 -113
- package/dist/components/chat-ui/components/tool-invocation-timeline.d.ts +0 -8
- package/dist/components/chat-ui/components/use-chat-input-history.d.ts +0 -16
- package/dist/components/chat-ui/components/working-indicator.d.ts +0 -9
- package/dist/components/chat-ui/components/workspace-hub.d.ts +0 -19
- package/dist/components/chat-ui/index.d.ts +0 -19
- package/dist/components/chat-ui/mocks/library/index.d.ts +0 -10
- package/dist/components/chat-ui/performance/chat-mount-metrics.d.ts +0 -37
- package/dist/components/chat-ui/performance/chat-panel.perf.d.ts +0 -18
- package/dist/components/chat-ui/performance/chat-performance-fixtures.d.ts +0 -28
- package/dist/components/chat-ui/performance/chat-performance-panel.d.ts +0 -23
- package/dist/components/chat-ui/performance/chat-performance-story-utils.d.ts +0 -30
- package/dist/components/chat-ui/tool-rendering/apply-patch-renderer.d.ts +0 -2
- package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +0 -13
- package/dist/components/chat-ui/tool-rendering/default-renderers.d.ts +0 -13
- package/dist/components/chat-ui/tool-rendering/edit-renderer.d.ts +0 -2
- package/dist/components/chat-ui/tool-rendering/index.d.ts +0 -3
- package/dist/components/chat-ui/tool-rendering/question-prompt.d.ts +0 -9
- package/dist/components/chat-ui/tool-rendering/question-renderer.d.ts +0 -10
- package/dist/components/chat-ui/tool-rendering/shared.d.ts +0 -53
- package/dist/components/chat-ui/tool-rendering/standard-renderers.d.ts +0 -7
- package/dist/components/chat-ui/tool-rendering/todowrite-renderer.d.ts +0 -10
- package/dist/components/chat-ui/tool-rendering/types.d.ts +0 -12
- package/dist/components/chat-ui/utils/diff.d.ts +0 -21
- package/dist/components/chat-ui/utils/editor-state.d.ts +0 -1
- package/dist/components/chat-ui/utils/get-icon.d.ts +0 -36
- package/dist/components/chat-ui/utils/tool-name.d.ts +0 -2
- package/dist/components/command-palette/index.d.ts +0 -4
- package/dist/components/command-palette/palette-filter.d.ts +0 -23
- package/dist/components/command-palette/palette-list.d.ts +0 -11
- package/dist/components/command-palette/palette-shortcut.d.ts +0 -12
- package/dist/components/command-palette/palette.d.ts +0 -48
- package/dist/components/data-table/build-columns.d.ts +0 -16
- package/dist/components/data-table/categorical-color-cell.d.ts +0 -8
- package/dist/components/data-table/color-cell-style.d.ts +0 -13
- package/dist/components/data-table/color-scale-cell.d.ts +0 -7
- package/dist/components/data-table/data-table-column-menu.d.ts +0 -17
- package/dist/components/data-table/data-table-header.d.ts +0 -12
- package/dist/components/data-table/data-table-row-display.d.ts +0 -11
- package/dist/components/data-table/data-table-skeleton.d.ts +0 -13
- package/dist/components/data-table/data-table-stat-chart.d.ts +0 -21
- package/dist/components/data-table/data-table-state.d.ts +0 -27
- package/dist/components/data-table/data-table-stats-row.d.ts +0 -11
- package/dist/components/data-table/data-table-stats.d.ts +0 -19
- package/dist/components/data-table/data-table-table-parts.d.ts +0 -22
- package/dist/components/data-table/data-table.d.ts +0 -2
- package/dist/components/data-table/data-table.story-descriptions.d.ts +0 -6
- package/dist/components/data-table/data-table.story-fixtures.d.ts +0 -6
- package/dist/components/data-table/edit-mode-data-table-body.d.ts +0 -30
- package/dist/components/data-table/edit-mode-data-table-cell.d.ts +0 -16
- package/dist/components/data-table/edit-mode-data-table-editors.d.ts +0 -19
- package/dist/components/data-table/edit-mode-data-table-header.d.ts +0 -24
- package/dist/components/data-table/edit-mode-data-table-selection.d.ts +0 -12
- package/dist/components/data-table/edit-mode-data-table.d.ts +0 -2
- package/dist/components/data-table/edit-mode-story.d.ts +0 -5
- package/dist/components/data-table/friendly-json-display.d.ts +0 -31
- package/dist/components/data-table/helpers.d.ts +0 -10
- package/dist/components/data-table/index.d.ts +0 -7
- package/dist/components/data-table/json-cell.d.ts +0 -6
- package/dist/components/data-table/pagination-footer.d.ts +0 -11
- package/dist/components/data-table/selection-toolbar.d.ts +0 -11
- package/dist/components/data-table/types.d.ts +0 -117
- package/dist/components/diff-viewer/build-changed-files-tree.d.ts +0 -4
- package/dist/components/diff-viewer/code-editor.d.ts +0 -45
- package/dist/components/diff-viewer/diff-bubble.d.ts +0 -14
- package/dist/components/diff-viewer/diff-card-body.d.ts +0 -60
- package/dist/components/diff-viewer/diff-card-content.d.ts +0 -23
- package/dist/components/diff-viewer/diff-card-load-state.d.ts +0 -9
- package/dist/components/diff-viewer/diff-card.d.ts +0 -46
- package/dist/components/diff-viewer/diff-drawer-empty-state.d.ts +0 -1
- package/dist/components/diff-viewer/diff-drawer-height.d.ts +0 -10
- package/dist/components/diff-viewer/diff-drawer-scroll.d.ts +0 -28
- package/dist/components/diff-viewer/diff-drawer.d.ts +0 -29
- package/dist/components/diff-viewer/diff-editor.d.ts +0 -20
- package/dist/components/diff-viewer/diff-size.d.ts +0 -16
- package/dist/components/diff-viewer/diff-view-adapter.d.ts +0 -27
- package/dist/components/diff-viewer/diff-viewer-options-menu.d.ts +0 -16
- package/dist/components/diff-viewer/diff-viewer.d.ts +0 -14
- package/dist/components/diff-viewer/diff-viewer.store.d.ts +0 -21
- package/dist/components/diff-viewer/file-change-badge.d.ts +0 -3
- package/dist/components/diff-viewer/file-list-panel.d.ts +0 -18
- package/dist/components/diff-viewer/index.d.ts +0 -9
- package/dist/components/diff-viewer/monaco-browser.d.ts +0 -1
- package/dist/components/diff-viewer/types.d.ts +0 -13
- package/dist/components/diff-viewer/use-selected-diff-scroll.d.ts +0 -23
- package/dist/components/file-browser/column-file-browser.d.ts +0 -20
- package/dist/components/internal/performance-panel.d.ts +0 -40
- package/dist/components/internal/style-guide.d.ts +0 -14
- package/dist/components/internal/token-editor-controls.d.ts +0 -8
- package/dist/components/internal/token-editor-data.d.ts +0 -40
- package/dist/components/internal/token-editor-state.d.ts +0 -22
- package/dist/components/kanban-renderer/collection-badge.d.ts +0 -7
- package/dist/components/kanban-renderer/display-menu.d.ts +0 -16
- package/dist/components/kanban-renderer/filter-menu.d.ts +0 -12
- package/dist/components/kanban-renderer/index.d.ts +0 -19
- package/dist/components/kanban-renderer/kanban-renderer-attribute-badge.d.ts +0 -7
- package/dist/components/kanban-renderer/kanban-renderer-badge-helpers.d.ts +0 -46
- package/dist/components/kanban-renderer/kanban-renderer-board-column-header.d.ts +0 -8
- package/dist/components/kanban-renderer/kanban-renderer-board-group-section.d.ts +0 -17
- package/dist/components/kanban-renderer/kanban-renderer-board-move.d.ts +0 -21
- package/dist/components/kanban-renderer/kanban-renderer-board.d.ts +0 -49
- package/dist/components/kanban-renderer/kanban-renderer-card.d.ts +0 -17
- package/dist/components/kanban-renderer/kanban-renderer-content.d.ts +0 -27
- package/dist/components/kanban-renderer/kanban-renderer-create-dialog.d.ts +0 -12
- package/dist/components/kanban-renderer/kanban-renderer-create-field.d.ts +0 -10
- package/dist/components/kanban-renderer/kanban-renderer-enum-helpers.d.ts +0 -10
- package/dist/components/kanban-renderer/kanban-renderer-grouping.d.ts +0 -23
- package/dist/components/kanban-renderer/kanban-renderer-helpers.d.ts +0 -58
- package/dist/components/kanban-renderer/kanban-renderer-list-items.d.ts +0 -25
- package/dist/components/kanban-renderer/kanban-renderer-list.d.ts +0 -43
- package/dist/components/kanban-renderer/kanban-renderer-story-fixtures.d.ts +0 -14
- package/dist/components/kanban-renderer/kanban-renderer-toolbar.d.ts +0 -15
- package/dist/components/kanban-renderer/kanban-renderer-view-bar.d.ts +0 -14
- package/dist/components/kanban-renderer/kanban-renderer-views.d.ts +0 -12
- package/dist/components/kanban-renderer/kanban-renderer.d.ts +0 -43
- package/dist/components/kanban-renderer/types.d.ts +0 -159
- package/dist/components/kanban-renderer/use-kanban-renderer-store.d.ts +0 -78
- package/dist/components/kanban-renderer/use-resolved-attributes.d.ts +0 -14
- package/dist/components/layout/header.d.ts +0 -7
- package/dist/components/layout/horizontal-menu-stack.d.ts +0 -6
- package/dist/components/layout/index.d.ts +0 -8
- package/dist/components/layout/item-section.d.ts +0 -11
- package/dist/components/layout/panel-header.constants.d.ts +0 -3
- package/dist/components/layout/resizable-split-layout.d.ts +0 -22
- package/dist/components/layout/resizable-split-layout.geometry.d.ts +0 -56
- package/dist/components/layout/resizable-split-layout.handle.d.ts +0 -25
- package/dist/components/layout/resizable-split-layout.panels.d.ts +0 -29
- package/dist/components/layout/resizable-split-layout.root-size.d.ts +0 -3
- package/dist/components/list-row/list-row-actions.d.ts +0 -11
- package/dist/components/list-row/list-row-chrome.d.ts +0 -11
- package/dist/components/list-row/list-row-content.d.ts +0 -17
- package/dist/components/list-row/list-row-menu.d.ts +0 -12
- package/dist/components/list-row/list-row-root-props.d.ts +0 -34
- package/dist/components/list-row/list-row.d.ts +0 -2
- package/dist/components/list-row/list-row.types.d.ts +0 -109
- package/dist/components/list-row/searchable-action-menu.d.ts +0 -6
- package/dist/components/mermaid-renderer/download-png.d.ts +0 -7
- package/dist/components/mermaid-renderer/index.d.ts +0 -2
- package/dist/components/mermaid-renderer/mermaid-error-state.d.ts +0 -6
- package/dist/components/mermaid-renderer/mermaid-fixtures.d.ts +0 -9
- package/dist/components/mermaid-renderer/mermaid-fullscreen.d.ts +0 -10
- package/dist/components/mermaid-renderer/mermaid-renderer.d.ts +0 -8
- package/dist/components/mermaid-renderer/mermaid-svg-view.d.ts +0 -12
- package/dist/components/mermaid-renderer/mermaid-toolbar.d.ts +0 -12
- package/dist/components/mermaid-renderer/mermaid-zoom.d.ts +0 -6
- package/dist/components/mermaid-renderer/svg-data-url.d.ts +0 -6
- package/dist/components/mermaid-renderer/use-mermaid-render.d.ts +0 -5
- package/dist/components/notification-center/index.d.ts +0 -2
- package/dist/components/notification-center/notification-center.d.ts +0 -2
- package/dist/components/notification-center/notification-center.types.d.ts +0 -37
- package/dist/components/overlays/attached-menu.d.ts +0 -6
- package/dist/components/overlays/attached-panel.d.ts +0 -9
- package/dist/components/overlays/attachment-chip.d.ts +0 -13
- package/dist/components/overlays/bubble-button.d.ts +0 -10
- package/dist/components/overlays/bubble-panel.d.ts +0 -18
- package/dist/components/overlays/delete-confirmation-modal.d.ts +0 -13
- package/dist/components/overlays/dialog-accept-shortcut.d.ts +0 -12
- package/dist/components/overlays/index.d.ts +0 -17
- package/dist/components/overlays/repo-picker-dialog.d.ts +0 -25
- package/dist/components/overlays/resource-context-menu.d.ts +0 -35
- package/dist/components/overlays/search-modal-content.d.ts +0 -20
- package/dist/components/overlays/searchable-menu-input.d.ts +0 -9
- package/dist/components/overlays/searchable-menu.d.ts +0 -65
- package/dist/components/param-editor/index.d.ts +0 -31
- package/dist/components/param-editor/inputs/action-input.d.ts +0 -14
- package/dist/components/param-editor/inputs/anchor-grid-input.d.ts +0 -12
- package/dist/components/param-editor/inputs/anchor-grid.d.ts +0 -4
- package/dist/components/param-editor/inputs/boolean-input.d.ts +0 -13
- package/dist/components/param-editor/inputs/color-input.d.ts +0 -14
- package/dist/components/param-editor/inputs/date-input.d.ts +0 -16
- package/dist/components/param-editor/inputs/file-upload-input.d.ts +0 -15
- package/dist/components/param-editor/inputs/file-upload-value.d.ts +0 -7
- package/dist/components/param-editor/inputs/horizontal-text-input.d.ts +0 -13
- package/dist/components/param-editor/inputs/markdown-input.d.ts +0 -13
- package/dist/components/param-editor/inputs/number-input.d.ts +0 -18
- package/dist/components/param-editor/inputs/numeric-value.d.ts +0 -6
- package/dist/components/param-editor/inputs/range-input.d.ts +0 -18
- package/dist/components/param-editor/inputs/range-value.d.ts +0 -5
- package/dist/components/param-editor/inputs/resource-input-chips.d.ts +0 -15
- package/dist/components/param-editor/inputs/resource-input.d.ts +0 -20
- package/dist/components/param-editor/inputs/segmented-input.d.ts +0 -15
- package/dist/components/param-editor/inputs/selection-input.d.ts +0 -27
- package/dist/components/param-editor/inputs/selection-menu.d.ts +0 -39
- package/dist/components/param-editor/inputs/slider-marks.d.ts +0 -5
- package/dist/components/param-editor/inputs/text-input.d.ts +0 -14
- package/dist/components/param-editor/inputs/vector-input.d.ts +0 -17
- package/dist/components/param-editor/inputs/vector-value.d.ts +0 -7
- package/dist/components/param-editor/param-editor-advanced-field.d.ts +0 -14
- package/dist/components/param-editor/param-editor-control-fixtures.d.ts +0 -24
- package/dist/components/param-editor/param-editor-control-item.d.ts +0 -15
- package/dist/components/param-editor/param-editor-control-list.d.ts +0 -5
- package/dist/components/param-editor/param-editor-field-label.d.ts +0 -1
- package/dist/components/param-editor/param-editor-field.d.ts +0 -13
- package/dist/components/param-editor/param-editor-horizontal.d.ts +0 -11
- package/dist/components/param-editor/param-editor-inline-group.d.ts +0 -5
- package/dist/components/param-editor/param-editor-label.d.ts +0 -7
- package/dist/components/param-editor/param-editor-presentation.d.ts +0 -3
- package/dist/components/param-editor/param-editor-read-only-field.d.ts +0 -9
- package/dist/components/param-editor/param-editor-read-only-value.d.ts +0 -8
- package/dist/components/param-editor/param-editor-row.d.ts +0 -17
- package/dist/components/param-editor/param-editor-section.d.ts +0 -17
- package/dist/components/param-editor/param-editor.d.ts +0 -12
- package/dist/components/param-editor/param-editor.types.d.ts +0 -31
- package/dist/components/param-editor/resolve-param-value.d.ts +0 -2
- package/dist/components/primitives/alert.d.ts +0 -9
- package/dist/components/primitives/breadcrumb.d.ts +0 -20
- package/dist/components/primitives/checkbox.d.ts +0 -8
- package/dist/components/primitives/chip.d.ts +0 -4
- package/dist/components/primitives/content-placeholder.d.ts +0 -6
- package/dist/components/primitives/empty-state.d.ts +0 -12
- package/dist/components/primitives/error-boundary.d.ts +0 -26
- package/dist/components/primitives/glyph-icon.d.ts +0 -16
- package/dist/components/primitives/icon-color-picker.d.ts +0 -15
- package/dist/components/primitives/icon-options.d.ts +0 -301
- package/dist/components/primitives/index.d.ts +0 -39
- package/dist/components/primitives/info-card.d.ts +0 -12
- package/dist/components/primitives/integration-card.d.ts +0 -12
- package/dist/components/primitives/number-input.d.ts +0 -6
- package/dist/components/primitives/radio.d.ts +0 -8
- package/dist/components/primitives/resource-badge.d.ts +0 -64
- package/dist/components/primitives/scroll-area.d.ts +0 -17
- package/dist/components/primitives/segmented-control.d.ts +0 -20
- package/dist/components/primitives/session-indicator.d.ts +0 -15
- package/dist/components/primitives/simple-card.d.ts +0 -5
- package/dist/components/primitives/slider.d.ts +0 -5
- package/dist/components/primitives/switch.d.ts +0 -15
- package/dist/components/primitives/tag-swatch.d.ts +0 -10
- package/dist/components/primitives/toaster.d.ts +0 -3
- package/dist/components/primitives/tooltip.d.ts +0 -11
- package/dist/components/primitives/workspace-badge.d.ts +0 -23
- package/dist/components/rich-text/collaborative-markdown-editor/awareness-cursors.d.ts +0 -5
- package/dist/components/rich-text/collaborative-markdown-editor/collaborative-markdown-editor.d.ts +0 -9
- package/dist/components/rich-text/index.d.ts +0 -19
- package/dist/components/rich-text/lazy-markdown-editor.d.ts +0 -2
- package/dist/components/rich-text/markdown-editor/markdown-editor-scrolling.play.d.ts +0 -4
- package/dist/components/rich-text/markdown-editor/markdown-editor.d.ts +0 -17
- package/dist/components/rich-text/markdown-editor/markdown-table.story-fixture.d.ts +0 -3
- package/dist/components/rich-text/markdown-editor/plugins/MarkdownSectionNavigationPlugin.d.ts +0 -8
- package/dist/components/rich-text/markdown-editor/plugins/MarkdownSlashCommandPlugin.d.ts +0 -1
- package/dist/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkNode.d.ts +0 -21
- package/dist/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.d.ts +0 -2
- package/dist/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/index.d.ts +0 -2
- package/dist/components/rich-text/markdown-editor/plugins/markdown-history-plugin.d.ts +0 -1
- package/dist/components/rich-text/markdown-editor/plugins/markdown-section-navigation.d.ts +0 -20
- package/dist/components/rich-text/prompt-input/commands.d.ts +0 -2
- package/dist/components/rich-text/prompt-input/events.d.ts +0 -2
- package/dist/components/rich-text/prompt-input/plugins/CommentPlugin/CommentPlugin.d.ts +0 -1
- package/dist/components/rich-text/prompt-input/plugins/CommentPlugin/hooks/useCommentCommands.d.ts +0 -3
- package/dist/components/rich-text/prompt-input/plugins/CommentPlugin/hooks/useCommentSchema.d.ts +0 -1
- package/dist/components/rich-text/prompt-input/plugins/CommentPlugin/nodes/CommentNode/CommentNode.d.ts +0 -16
- package/dist/components/rich-text/prompt-input/plugins/ImperativeAPIPlugin.d.ts +0 -7
- package/dist/components/rich-text/prompt-input/plugins/KeyboardShortcutPlugin.d.ts +0 -6
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuOption.d.ts +0 -12
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuPlugin.d.ts +0 -11
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/components/ReferenceMenu/ReferenceMenu.d.ts +0 -9
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/components/ReferenceMenu/ReferenceMenuItem.d.ts +0 -12
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/constants.d.ts +0 -2
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/hooks/useContextLookup.d.ts +0 -14
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/utils/checkForTriggers.d.ts +0 -9
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/utils/getSortedMenuOptions.d.ts +0 -2
- package/dist/components/rich-text/prompt-input/plugins/ReferencePlugin/ReferencePlugin.d.ts +0 -7
- package/dist/components/rich-text/prompt-input/plugins/ReferencePlugin/nodes/ReferenceNode/ReferenceNode.d.ts +0 -25
- package/dist/components/rich-text/prompt-input/plugins/keyboard-shortcuts.d.ts +0 -11
- package/dist/components/rich-text/prompt-input/prompt-input.d.ts +0 -27
- package/dist/components/rich-text/prompt-input/theme/prompt-input-theme.d.ts +0 -3
- package/dist/components/rich-text/prompt-input/utils.d.ts +0 -22
- package/dist/components/rich-text/resource-activity-feed/resource-activity-feed.d.ts +0 -58
- package/dist/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/ReferenceLinkNode.d.ts +0 -21
- package/dist/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.d.ts +0 -2
- package/dist/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/index.d.ts +0 -2
- package/dist/components/rich-text/rich-message/rich-message.d.ts +0 -10
- package/dist/components/rich-text/shared/components/content-editable.d.ts +0 -9
- package/dist/components/rich-text/shared/components/default-rich-text-components.d.ts +0 -3
- package/dist/components/rich-text/shared/editor-config.d.ts +0 -5
- package/dist/components/rich-text/shared/lexical-code.d.ts +0 -2
- package/dist/components/rich-text/shared/markdown-ast.d.ts +0 -7
- package/dist/components/rich-text/shared/markdown-codec.d.ts +0 -3
- package/dist/components/rich-text/shared/markdown-export.d.ts +0 -2
- package/dist/components/rich-text/shared/markdown-import.d.ts +0 -2
- package/dist/components/rich-text/shared/markdown-inline.d.ts +0 -5
- package/dist/components/rich-text/shared/markdown-source-document.d.ts +0 -7
- package/dist/components/rich-text/shared/markdown-source-links.d.ts +0 -11
- package/dist/components/rich-text/shared/markdown-source-map.d.ts +0 -10
- package/dist/components/rich-text/shared/markdown-table.d.ts +0 -41
- package/dist/components/rich-text/shared/markdown-url-context.d.ts +0 -9
- package/dist/components/rich-text/shared/markdown-url.d.ts +0 -3
- package/dist/components/rich-text/shared/nodes/DataTableNode.d.ts +0 -24
- package/dist/components/rich-text/shared/nodes/MarkdownImageNode.d.ts +0 -35
- package/dist/components/rich-text/shared/nodes/MarkdownLinkNode.d.ts +0 -18
- package/dist/components/rich-text/shared/nodes/RawHtmlNode.d.ts +0 -31
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeBlockActionsPlugin.d.ts +0 -4
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeBlockPlugin.d.ts +0 -3
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeHighlightingPlugin.d.ts +0 -1
- package/dist/components/rich-text/shared/plugins/EquationPlugin/EquationComponent.d.ts +0 -6
- package/dist/components/rich-text/shared/plugins/EquationPlugin/EquationNode.d.ts +0 -26
- package/dist/components/rich-text/shared/plugins/EquationPlugin/EquationPlugin.d.ts +0 -4
- package/dist/components/rich-text/shared/plugins/EquationPlugin/KatexRenderer.d.ts +0 -4
- package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatToolbarPlugin.d.ts +0 -4
- package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/floating-toolbar-buttons.d.ts +0 -18
- package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +0 -1
- package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/resolve-block-type.d.ts +0 -17
- package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/should-show-floating-toolbar.d.ts +0 -12
- package/dist/components/rich-text/shared/plugins/HorizontalRulePlugin/HorizontalRuleNode.d.ts +0 -13
- package/dist/components/rich-text/shared/plugins/HorizontalRulePlugin/horizontalRule.d.ts +0 -2
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/LinkEditorPlugin.d.ts +0 -4
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/LinkPlugin.d.ts +0 -1
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/commands.d.ts +0 -2
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/index.d.ts +0 -3
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/link-editor-content.d.ts +0 -18
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/utils/getSelectedNode.d.ts +0 -2
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/utils/link-edit-state.d.ts +0 -1
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/utils/selection-link-url.d.ts +0 -2
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/utils/setFloatingElemPos.d.ts +0 -1
- package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/utils/url.d.ts +0 -2
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/MermaidComponent.d.ts +0 -6
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/MermaidNode.d.ts +0 -23
- package/dist/components/rich-text/shared/plugins/StateUpdatePlugin.d.ts +0 -6
- package/dist/components/rich-text/shared/plugins/ToggleEditablePlugin.d.ts +0 -3
- package/dist/components/rich-text/shared/plugins/TreeViewPlugin/TreeViewPlugin.d.ts +0 -1
- package/dist/components/rich-text/shared/prism-global.d.ts +0 -2
- package/dist/components/rich-text/shared/transformers/markdown-transformers-test-utils.d.ts +0 -3
- package/dist/components/rich-text/shared/transformers/markdown-transformers.d.ts +0 -16
- package/dist/components/rich-text/shared/types/rich-text-components.d.ts +0 -15
- package/dist/components/rich-text/theme/rich-text-theme.d.ts +0 -3
- package/dist/components/rich-text/types.d.ts +0 -8
- package/dist/components/rich-text/utils/inferResourceType.d.ts +0 -1
- package/dist/components/rich-text/utils/markdown.d.ts +0 -5
- package/dist/components/rich-text/utils/mediaType.d.ts +0 -1
- package/dist/components/sidenav/sidenav-footer.d.ts +0 -6
- package/dist/components/sidenav/sidenav-header.d.ts +0 -6
- package/dist/components/sidenav/sidenav.d.ts +0 -2
- package/dist/components/sidenav/sidenav.store.d.ts +0 -49
- package/dist/components/sidenav/sidenav.types.d.ts +0 -31
- package/dist/components/tab-strip/tab-visibility-filter.d.ts +0 -22
- package/dist/components/tab-strip/tab-visibility.store.d.ts +0 -41
- package/dist/components/tab-strip/window-tabs.d.ts +0 -15
- package/dist/components/tab-strip/window-title-bar.d.ts +0 -6
- package/dist/components/tag-editor/index.d.ts +0 -8
- package/dist/components/tag-editor/tag-editor-heading.d.ts +0 -11
- package/dist/components/tag-editor/tag-editor-row.d.ts +0 -20
- package/dist/components/tag-editor/tag-editor-save-bar.d.ts +0 -13
- package/dist/components/tag-editor/tag-editor.d.ts +0 -2
- package/dist/components/tag-editor/tag-editor.types.d.ts +0 -57
- package/dist/components/tag-editor/tag-settings-panel.d.ts +0 -30
- package/dist/components/terminal/bind-session.d.ts +0 -33
- package/dist/components/terminal/index.d.ts +0 -6
- package/dist/components/terminal/scripted-bridge.d.ts +0 -35
- package/dist/components/terminal/terminal-contract.d.ts +0 -22
- package/dist/components/terminal/terminal-theme.d.ts +0 -12
- package/dist/components/terminal/terminal.d.ts +0 -56
- package/dist/components/terminal/types.d.ts +0 -35
- package/dist/components/terminal/use-terminal-session.d.ts +0 -21
- package/dist/components/tree-list/tree-list-background.d.ts +0 -8
- package/dist/components/tree-list/tree-list-drag-provider.d.ts +0 -13
- package/dist/components/tree-list/tree-list-drag.d.ts +0 -7
- package/dist/components/tree-list/tree-list-inline-creation-story.d.ts +0 -3
- package/dist/components/tree-list/tree-list-inline-input.d.ts +0 -9
- package/dist/components/tree-list/tree-list-model.d.ts +0 -58
- package/dist/components/tree-list/tree-list-move-surface.d.ts +0 -7
- package/dist/components/tree-list/tree-list-node-row.d.ts +0 -21
- package/dist/components/tree-list/tree-list-order-filter.d.ts +0 -2
- package/dist/components/tree-list/tree-list-order.store.d.ts +0 -45
- package/dist/components/tree-list/tree-list-reorder.d.ts +0 -24
- package/dist/components/tree-list/tree-list-section-header.d.ts +0 -14
- package/dist/components/tree-list/tree-list-sortable.d.ts +0 -24
- package/dist/components/tree-list/tree-list-visibility-filter.d.ts +0 -24
- package/dist/components/tree-list/tree-list-visibility.store.d.ts +0 -45
- package/dist/components/tree-list/tree-list.d.ts +0 -41
- package/dist/components/tree-list/tree-list.types.d.ts +0 -63
- package/dist/components/tree-list/use-tree-list-keyboard-navigation.d.ts +0 -15
- package/dist/diff-bubble-DvUPRnfB.js +0 -183
- package/dist/diff-bubble-DvUPRnfB.js.map +0 -1
- package/dist/edit-mode-data-table-Nfmfi7bz.js +0 -847
- package/dist/edit-mode-data-table-Nfmfi7bz.js.map +0 -1
- package/dist/empty-state-Bo4HVrgr.js +0 -34
- package/dist/empty-state-Bo4HVrgr.js.map +0 -1
- package/dist/foundations/gallery/gallery-frame.d.ts +0 -21
- package/dist/foundations/gallery/sections/badges-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/buttons-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/composite-chat-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/composites-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/feedback-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/input-authoring-card.d.ts +0 -1
- package/dist/foundations/gallery/sections/inputs-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/layout-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/navigation-identity-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/overlays-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/panels-section.d.ts +0 -1
- package/dist/foundations/gallery/sections/param-editor-composite-card.d.ts +0 -1
- package/dist/foundations/gallery/sections/settings-composite-cards.d.ts +0 -1
- package/dist/kanban-renderer-toolbar-Buek4icz.js +0 -1375
- package/dist/kanban-renderer-toolbar-Buek4icz.js.map +0 -1
- package/dist/lazy-markdown-editor-PzIBc9-l.js +0 -42
- package/dist/lazy-markdown-editor-PzIBc9-l.js.map +0 -1
- package/dist/list-row-DHzRa9-O.js +0 -815
- package/dist/list-row-DHzRa9-O.js.map +0 -1
- package/dist/markdown-BCfPxNpb.js +0 -1663
- package/dist/markdown-BCfPxNpb.js.map +0 -1
- package/dist/markdown-editor-CsJ4KNGu.js +0 -1034
- package/dist/markdown-editor-CsJ4KNGu.js.map +0 -1
- package/dist/mermaid-renderer-D0YP0FmJ.js +0 -425
- package/dist/mermaid-renderer-D0YP0FmJ.js.map +0 -1
- package/dist/mermaid.js.map +0 -1
- package/dist/monaco-browser-l82HnffN.js +0 -22
- package/dist/monaco-browser-l82HnffN.js.map +0 -1
- package/dist/param-editor-CFM2Nf3l.js +0 -161
- package/dist/param-editor-CFM2Nf3l.js.map +0 -1
- package/dist/param-editor-field-Bj-AGUY6.js +0 -1728
- package/dist/param-editor-field-Bj-AGUY6.js.map +0 -1
- package/dist/param-editor.js.map +0 -1
- package/dist/prism-n5gcERyD.js +0 -202
- package/dist/prism-n5gcERyD.js.map +0 -1
- package/dist/radio-BfjibByI.js +0 -51
- package/dist/radio-BfjibByI.js.map +0 -1
- package/dist/rich-message-q6Y6QJOq.js +0 -633
- package/dist/rich-message-q6Y6QJOq.js.map +0 -1
- package/dist/rich-text.js.map +0 -1
- package/dist/scroll-area-BMbg1WcD.js +0 -91
- package/dist/scroll-area-BMbg1WcD.js.map +0 -1
- package/dist/slider-DBHjdxsU.js +0 -1092
- package/dist/slider-DBHjdxsU.js.map +0 -1
- package/dist/test-utils/local-storage.d.ts +0 -1
- package/dist/theme/custom/index.d.ts +0 -2
- package/dist/theme/custom/vscode-theme.d.ts +0 -32
- package/dist/theme/global.d.ts +0 -62
- package/dist/theme/index.d.ts +0 -3
- package/dist/theme/primitives/colors.d.ts +0 -1081
- package/dist/theme/primitives/fonts.d.ts +0 -84
- package/dist/theme/primitives/sizes.d.ts +0 -207
- package/dist/theme/recipes/activity-comment.d.ts +0 -36
- package/dist/theme/recipes/alert.d.ts +0 -1
- package/dist/theme/recipes/badge.d.ts +0 -58
- package/dist/theme/recipes/button.d.ts +0 -188
- package/dist/theme/recipes/color-picker.d.ts +0 -18
- package/dist/theme/recipes/dialog.d.ts +0 -1
- package/dist/theme/recipes/divider.d.ts +0 -1
- package/dist/theme/recipes/drawer.d.ts +0 -1
- package/dist/theme/recipes/editable.d.ts +0 -46
- package/dist/theme/recipes/form.d.ts +0 -1
- package/dist/theme/recipes/input.d.ts +0 -94
- package/dist/theme/recipes/kbd.d.ts +0 -41
- package/dist/theme/recipes/menu.d.ts +0 -1
- package/dist/theme/recipes/number-input.d.ts +0 -98
- package/dist/theme/recipes/popover.d.ts +0 -16
- package/dist/theme/recipes/progress-circle.d.ts +0 -28
- package/dist/theme/recipes/resizable-split-layout.d.ts +0 -106
- package/dist/theme/recipes/segmented-control.d.ts +0 -22
- package/dist/theme/recipes/skeleton.d.ts +0 -1
- package/dist/theme/recipes/switch.d.ts +0 -18
- package/dist/theme/recipes/tabs.d.ts +0 -80
- package/dist/theme/recipes/textarea.d.ts +0 -62
- package/dist/theme/recipes/timeline.d.ts +0 -83
- package/dist/theme/recipes/tooltip.d.ts +0 -1
- package/dist/theme/recipes/window-title-bar.d.ts +0 -19
- package/dist/theme/shadowless-default-config.d.ts +0 -2
- package/dist/theme/theme.d.ts +0 -2
- package/dist/theme/tokens/borders.d.ts +0 -17
- package/dist/theme/tokens/colors-background.d.ts +0 -260
- package/dist/theme/tokens/colors-visualization.d.ts +0 -162
- package/dist/theme/tokens/colors.d.ts +0 -878
- package/dist/theme/tokens/layer-styles.d.ts +0 -1
- package/dist/theme/tokens/text.d.ts +0 -1
- package/dist/theme-AzJH4Om3.js +0 -3999
- package/dist/theme-AzJH4Om3.js.map +0 -1
- package/dist/theme-preference-DxGW1qg-.js +0 -114
- package/dist/theme-preference-DxGW1qg-.js.map +0 -1
- package/dist/theme.js.map +0 -1
- package/dist/tree-list-CPjbGTvs.js +0 -1348
- package/dist/tree-list-CPjbGTvs.js.map +0 -1
- package/dist/utils/apply-file-icon-theme-preference.d.ts +0 -35
- package/dist/utils/apply-theme-preference.d.ts +0 -22
- package/dist/utils/browser-storage.d.ts +0 -7
- package/dist/utils/file-icon-theme-preference.d.ts +0 -15
- package/dist/utils/get-file-type-icon.d.ts +0 -2
- package/dist/utils/prism.d.ts +0 -1
- package/dist/utils/resolve-file-icon-element.d.ts +0 -8
- package/dist/utils/theme-preference.d.ts +0 -20
- package/dist/workspace-badge-CuOcmnZc.js +0 -175
- package/dist/workspace-badge-CuOcmnZc.js.map +0 -1
package/dist/data-table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.js","sources":["../src/components/data-table/categorical-color-cell.tsx","../src/components/data-table/color-cell-style.ts","../src/components/data-table/color-scale-cell.tsx","../src/components/data-table/friendly-json-display.tsx","../src/components/data-table/json-cell.tsx","../src/components/data-table/build-columns.tsx","../src/components/data-table/data-table-column-menu.tsx","../src/components/data-table/data-table-stat-chart.tsx","../src/components/data-table/data-table-stats.ts","../src/components/data-table/data-table-stats-row.tsx","../src/components/data-table/data-table-table-parts.tsx","../src/components/data-table/data-table.tsx","../src/components/data-table/data-table-skeleton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { DataTableCategoricalColor } from \"./types\";\n\ninterface CategoricalColorCellProps {\n children: ReactNode;\n}\n\nexport const resolveCategoricalColor = (value: unknown, categories: DataTableCategoricalColor[]) => {\n return categories.find((category) => Object.is(category.value, value))?.color ?? null;\n};\n\nexport const CategoricalColorCell = (props: CategoricalColorCellProps) => {\n const { children } = props;\n\n return children;\n};\n","import type { DataTableThemeColor } from \"./types\";\n\ninterface RgbColor {\n r: number;\n g: number;\n b: number;\n}\n\nconst darkTextColor = \"#111827\";\nconst lightTextColor = \"#ffffff\";\nconst darkColorTarget = \"#000000\";\nconst readableContrastRatio = 4.5;\n\nconst expandShortHex = (hex: string) =>\n hex\n .split(\"\")\n .map((character) => character + character)\n .join(\"\");\n\nexport const parseHexColor = (color: string) => {\n const normalized = color.trim();\n const hex = normalized.startsWith(\"#\") ? normalized.slice(1) : normalized;\n const expandedHex = hex.length === 3 ? expandShortHex(hex) : hex;\n if (!/^[\\da-f]{6}$/i.test(expandedHex)) return null;\n\n return {\n r: Number.parseInt(expandedHex.slice(0, 2), 16),\n g: Number.parseInt(expandedHex.slice(2, 4), 16),\n b: Number.parseInt(expandedHex.slice(4, 6), 16),\n };\n};\n\nconst toLinearChannel = (channel: number) => {\n const normalized = channel / 255;\n return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;\n};\n\nconst relativeLuminance = (color: RgbColor) =>\n 0.2126 * toLinearChannel(color.r) + 0.7152 * toLinearChannel(color.g) + 0.0722 * toLinearChannel(color.b);\n\nconst contrastRatio = (foreground: RgbColor, background: RgbColor) => {\n const foregroundLuminance = relativeLuminance(foreground);\n const backgroundLuminance = relativeLuminance(background);\n const lighter = Math.max(foregroundLuminance, backgroundLuminance);\n const darker = Math.min(foregroundLuminance, backgroundLuminance);\n return (lighter + 0.05) / (darker + 0.05);\n};\n\nconst toHexColor = (color: RgbColor) => {\n const toHexChannel = (channel: number) => Math.round(channel).toString(16).padStart(2, \"0\");\n return `#${toHexChannel(color.r)}${toHexChannel(color.g)}${toHexChannel(color.b)}`;\n};\n\nconst mixRgbColors = (start: RgbColor, end: RgbColor, endWeight: number) => ({\n r: start.r * (1 - endWeight) + end.r * endWeight,\n g: start.g * (1 - endWeight) + end.g * endWeight,\n b: start.b * (1 - endWeight) + end.b * endWeight,\n});\n\nexport const contrastRatioForHexColors = (foregroundColor: string, backgroundColor: string) => {\n const foreground = parseHexColor(foregroundColor);\n const background = parseHexColor(backgroundColor);\n if (!foreground || !background) return 0;\n return contrastRatio(foreground, background);\n};\n\nconst findMatchingForeground = (background: RgbColor, target: RgbColor) => {\n for (let step = 1; step <= 50; step += 1) {\n const candidate = mixRgbColors(background, target, step / 50);\n if (contrastRatio(candidate, background) >= readableContrastRatio) {\n return { color: toHexColor(candidate), step };\n }\n }\n\n return { color: toHexColor(target), step: 50 };\n};\n\nexport const resolveReadableTextColor = (backgroundColor: string) => {\n const background = parseHexColor(backgroundColor);\n if (!background) return darkTextColor;\n\n const darkText = parseHexColor(darkColorTarget)!;\n const lightText = parseHexColor(lightTextColor)!;\n const darkerMatch = findMatchingForeground(background, darkText);\n const lighterMatch = findMatchingForeground(background, lightText);\n\n return darkerMatch.step <= lighterMatch.step ? darkerMatch.color : lighterMatch.color;\n};\n\nexport const mixHexColors = (startColor: string, endColor: string, startWeight: number) => {\n const start = parseHexColor(startColor);\n const end = parseHexColor(endColor);\n if (!start || !end) return null;\n\n return toHexColor(mixRgbColors(start, end, 1 - startWeight));\n};\n\nexport const resolveColorCellStyle = (color: DataTableThemeColor) => {\n const lightForeground = color.foreground?.light ?? resolveReadableTextColor(color.light);\n const darkForeground = color.foreground?.dark ?? resolveReadableTextColor(color.dark);\n\n return {\n backgroundColor: `light-dark(${color.light}, ${color.dark})`,\n color: `light-dark(${lightForeground}, ${darkForeground})`,\n };\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { mixHexColors } from \"./color-cell-style\";\nimport type { DataTableColorScaleStop, DataTableThemeColor } from \"./types\";\n\ninterface ColorScaleCellProps {\n value: number;\n}\n\nconst toDisplayPercent = (value: number) => Math.round(value * 100) / 100;\n\nconst mixColors = (startColor: string, endColor: string, startWeight: number) => {\n const mixedColor = mixHexColors(startColor, endColor, startWeight);\n if (mixedColor) return mixedColor;\n\n return `color-mix(in srgb, ${startColor} ${toDisplayPercent(startWeight * 100)}%, ${endColor})`;\n};\n\nconst mixThemeColors = (start: DataTableThemeColor, end: DataTableThemeColor, startWeight: number) => {\n const foreground =\n start.foreground && end.foreground\n ? {\n light: mixColors(start.foreground.light, end.foreground.light, startWeight),\n dark: mixColors(start.foreground.dark, end.foreground.dark, startWeight),\n }\n : undefined;\n\n return {\n light: mixColors(start.light, end.light, startWeight),\n dark: mixColors(start.dark, end.dark, startWeight),\n ...(foreground ? { foreground } : {}),\n };\n};\n\nexport const resolveColorScaleValue = (value: unknown, stops: DataTableColorScaleStop[]) => {\n if (typeof value !== \"number\" || !Number.isFinite(value) || stops.length < 2) return null;\n\n const firstStop = stops[0]!;\n const lastStop = stops[stops.length - 1]!;\n const range = lastStop.value - firstStop.value;\n if (range <= 0) return null;\n\n if (value <= firstStop.value) return firstStop.color;\n if (value >= lastStop.value) return lastStop.color;\n\n const endIndex = stops.findIndex((stop) => value <= stop.value);\n const startStop = stops[endIndex - 1]!;\n const endStop = stops[endIndex]!;\n const segmentProgress = (value - startStop.value) / (endStop.value - startStop.value);\n const startWeight = 1 - segmentProgress;\n return mixThemeColors(startStop.color, endStop.color, startWeight);\n};\n\nexport const ColorScaleCell = (props: ColorScaleCellProps) => {\n const { value } = props;\n\n return (\n <Text textStyle=\"paragraph/S/medium\" fontVariantNumeric=\"tabular-nums\" truncate>\n {value}\n </Text>\n );\n};\n","import { ParamEditor } from \"@/components/param-editor\";\n\ninterface JsonField {\n label: string;\n value: unknown;\n}\n\nexport interface FriendlyJsonDisplayProps {\n value: unknown;\n}\n\nconst imageExtensionPattern = /\\.(avif|bmp|gif|jpe?g|png|svg|webp)$/i;\nconst imageLabelPattern = /(^|\\s)(avatar|image|logo|photo|picture|thumbnail)(\\s|$)/i;\n\nconst humanizeKey = (key: string) => {\n const words = key\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]+/g, \" \")\n .trim()\n .toLowerCase();\n\n return words ? `${words[0]?.toUpperCase()}${words.slice(1)}` : \"Details\";\n};\n\nconst formatPath = (path: string[]) => path.map((part) => (/^\\d+$/.test(part) ? part : humanizeKey(part))).join(\" / \");\n\nconst isPrimitiveArray = (value: unknown[]) => value.every((item) => item === null || typeof item !== \"object\");\n\nconst appendJsonFields = (value: unknown, path: string[], fields: JsonField[]) => {\n if (Array.isArray(value)) {\n if (value.length === 0 || isPrimitiveArray(value)) {\n fields.push({ label: formatPath(path), value });\n return;\n }\n\n value.forEach((item, index) => {\n appendJsonFields(item, [...path, String(index + 1)], fields);\n });\n return;\n }\n\n if (value !== null && typeof value === \"object\") {\n const entries = Object.entries(value);\n if (entries.length === 0) {\n fields.push({ label: formatPath(path), value: null });\n return;\n }\n\n entries.forEach(([key, item]) => {\n appendJsonFields(item, [...path, key], fields);\n });\n return;\n }\n\n fields.push({ label: formatPath(path), value });\n};\n\nexport const parseJsonCellValue = (value: unknown) => {\n if (typeof value !== \"string\") return value;\n\n try {\n return JSON.parse(value) as unknown;\n } catch {\n return value;\n }\n};\n\nexport const buildJsonFields = (value: unknown) => {\n const fields: JsonField[] = [];\n appendJsonFields(parseJsonCellValue(value), [], fields);\n return fields.map((field) => ({ ...field, label: field.label || \"Value\" }));\n};\n\nexport const isJsonImageValue = (value: unknown, label: string) => {\n if (typeof value !== \"string\") return false;\n if (value.startsWith(\"data:image/\")) return true;\n\n try {\n const url = new URL(value);\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") return false;\n return imageExtensionPattern.test(url.pathname) || imageLabelPattern.test(label);\n } catch {\n return false;\n }\n};\n\nexport const isJsonImageArray = (value: unknown, label: string) => {\n return Array.isArray(value) && value.length > 0 && value.every((item) => isJsonImageValue(item, label));\n};\n\nconst formatJsonPrimitive = (value: unknown) => {\n if (value === null || value === undefined || value === \"\") return \"Not provided\";\n if (typeof value === \"boolean\") return value ? \"Yes\" : \"No\";\n return String(value);\n};\n\nconst formatJsonValue = (value: unknown) => {\n if (Array.isArray(value)) return value.length === 0 ? \"None\" : value.map(formatJsonPrimitive).join(\", \");\n return formatJsonPrimitive(value);\n};\n\nexport const getJsonCellSummary = (value: unknown) => {\n const parsedValue = parseJsonCellValue(value);\n if (Array.isArray(parsedValue) && parsedValue.length === 0) return \"No details\";\n if (parsedValue !== null && typeof parsedValue === \"object\" && Object.keys(parsedValue).length === 0) {\n return \"No details\";\n }\n\n const fields = buildJsonFields(value).filter(\n (field) => !isJsonImageValue(field.value, field.label) && !isJsonImageArray(field.value, field.label),\n );\n if (fields.length === 0) return \"No details\";\n\n const visibleValues = fields.slice(0, 2).map((field) => formatJsonValue(field.value));\n const remainingCount = fields.length - visibleValues.length;\n return [...visibleValues, remainingCount > 0 ? `${remainingCount} more` : null].filter(Boolean).join(\" · \");\n};\n\nconst toReadOnlyValue = (field: JsonField) => {\n const { label, value } = field;\n if (isJsonImageValue(value, label)) {\n return { type: \"image\" as const, src: String(value), alt: `${label} preview` };\n }\n if (Array.isArray(value) && isJsonImageArray(value, label)) {\n return {\n type: \"image-gallery\" as const,\n images: value.map((image, index) => ({ src: String(image), alt: `${label} ${index + 1} preview` })),\n };\n }\n if (Array.isArray(value)) return value as Array<string | number | boolean | null>;\n if (value === undefined) return null;\n return value as string | number | boolean | null;\n};\n\nexport const buildFriendlyJsonParams = (value: unknown) =>\n buildJsonFields(value).map((field, index) => ({\n id: `friendly-json-${index}`,\n name: field.label,\n type: \"readOnly\" as const,\n value: toReadOnlyValue(field),\n }));\n\nexport const FriendlyJsonDisplay = (props: FriendlyJsonDisplayProps) => {\n const { value } = props;\n return <ParamEditor params={buildFriendlyJsonParams(value)} readOnly fullWidth />;\n};\n","import { Button, HStack, Image, Popover, Portal, Text } from \"@chakra-ui/react\";\nimport { Braces, ChevronRight } from \"lucide-react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport {\n buildJsonFields,\n FriendlyJsonDisplay,\n getJsonCellSummary,\n isJsonImageArray,\n isJsonImageValue,\n} from \"./friendly-json-display\";\n\ninterface JsonCellProps {\n columnLabel: string;\n value: unknown;\n}\n\nconst stopRowActivation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\nexport const JsonCell = (props: JsonCellProps) => {\n const { columnLabel, value } = props;\n const fields = buildJsonFields(value);\n const imageFields = fields\n .flatMap((field) => {\n if (isJsonImageValue(field.value, field.label)) return [field];\n if (!Array.isArray(field.value) || !isJsonImageArray(field.value, field.label)) return [];\n return field.value.map((image, index) => ({ label: `${field.label} ${index + 1}`, value: image }));\n })\n .slice(0, 2);\n const summary = getJsonCellSummary(value);\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-start\", offset: { mainAxis: 6 } }}>\n <Popover.Trigger asChild>\n <Button\n aria-label={`View ${columnLabel} details`}\n variant=\"ghost\"\n size=\"xs\"\n width=\"full\"\n minWidth=\"0\"\n height=\"28px\"\n paddingX=\"2xs\"\n justifyContent=\"flex-start\"\n onClick={stopRowActivation}\n >\n {imageFields.length > 0 ? (\n <HStack gap=\"-1\" flexShrink=\"0\">\n {imageFields.map((field) => (\n <Image\n key={field.label}\n src={String(field.value)}\n alt={`${field.label} preview`}\n boxSize=\"22px\"\n borderRadius=\"xs\"\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n objectFit=\"cover\"\n />\n ))}\n </HStack>\n ) : (\n <Braces size={14} />\n )}\n <Text flex=\"1\" minWidth=\"0\" textAlign=\"left\" textStyle=\"paragraph/S/regular\" truncate>\n {summary}\n </Text>\n <ChevronRight size={12} />\n </Button>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"min(380px, calc(100vw - 32px))\" padding=\"0\" background=\"bg\" overflow=\"hidden\">\n <ScrollArea maxH=\"360px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <FriendlyJsonDisplay value={value} />\n </ScrollArea>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, chakra, IconButton, Menu, Portal, Text } from \"@chakra-ui/react\";\nimport type { CellContext, HeaderContext, RowSelectionState } from \"@tanstack/react-table\";\nimport { Check, ChevronDown, CircleHelp, Minus } from \"lucide-react\";\nimport { type CSSProperties, cloneElement, isValidElement, type ReactNode } from \"react\";\n\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport { CategoricalColorCell, resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { resolveColorCellStyle } from \"./color-cell-style\";\nimport { ColorScaleCell, resolveColorScaleValue } from \"./color-scale-cell\";\nimport { columnHelper, formatDisplayValue, getIcon, isDisplayValue } from \"./helpers\";\nimport { JsonCell } from \"./json-cell\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst getSortValue = (value: unknown) => {\n return isDisplayValue(value) ? value.sortValue : value;\n};\n\nconst compareValues = (valueA: unknown, valueB: unknown) => {\n if (valueA === valueB) return 0;\n if (valueA === null || valueA === undefined) return 1;\n if (valueB === null || valueB === undefined) return -1;\n\n if (typeof valueA === \"number\" && typeof valueB === \"number\") {\n return valueA - valueB;\n }\n\n return String(valueA).localeCompare(String(valueB));\n};\n\nconst toSingleLineElement = (element: ReactNode) => {\n if (!isValidElement<{ style?: CSSProperties }>(element)) return element;\n\n return cloneElement(element, {\n style: {\n ...element.props.style,\n flexWrap: \"nowrap\",\n minWidth: 0,\n whiteSpace: \"nowrap\",\n },\n });\n};\n\ninterface BuildColumnsOptions {\n columnIcons?: Partial<Record<string, ReactNode>>;\n columnDescriptions?: Partial<Record<string, string>>;\n compactHeaders?: Partial<Record<string, string>>;\n enableSelection?: boolean;\n rowActions?: DataTableRowAction[];\n getRowActions?: (row: RowData) => DataTableRowAction[];\n selectedRowIds?: RowSelectionState;\n columnRenderers?: Partial<Record<string, DataTableColumnRenderer>>;\n wrapRows?: boolean;\n}\n\nconst stopControlPropagation = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n};\n\nconst SelectionHeader = (props: HeaderContext<RowData, unknown>) => {\n const { table } = props;\n const checked = table.getIsAllRowsSelected();\n const isIndeterminate = !checked && table.getIsSomeRowsSelected();\n\n return (\n <Checkbox\n checked={checked ? true : isIndeterminate ? \"indeterminate\" : false}\n aria-label=\"Select all\"\n icon={<ChakraIcon as={isIndeterminate ? Minus : Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => table.toggleAllRowsSelected(details.checked === true)}\n />\n );\n};\n\nconst SelectionCell = (props: CellContext<RowData, unknown> & { selectedRowIds?: RowSelectionState }) => {\n const { row, selectedRowIds } = props;\n\n return (\n <Checkbox\n checked={Boolean(selectedRowIds?.[row.id])}\n aria-label=\"Select row\"\n icon={<ChakraIcon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => row.toggleSelected(details.checked === true)}\n />\n );\n};\n\nconst mergeRowActions = (rowActions: DataTableRowAction[], dynamicActions: DataTableRowAction[]) => {\n const dynamicLabels = new Set(dynamicActions.map((action) => action.label));\n return [...dynamicActions, ...rowActions.filter((action) => !dynamicLabels.has(action.label))];\n};\n\nconst RowActionsCell = (\n props: CellContext<RowData, unknown> & {\n actions: DataTableRowAction[];\n getActions?: (row: RowData) => DataTableRowAction[];\n },\n) => {\n const { row, actions, getActions } = props;\n const resolvedActions = mergeRowActions(actions, getActions?.(row.original) ?? []);\n\n if (resolvedActions.length === 0) return null;\n\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton aria-label=\"Row actions\" size=\"2xs\" variant=\"ghost\" onClick={stopControlPropagation}>\n <ChakraIcon as={ChevronDown} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n {resolvedActions.map((action) => (\n <Menu.Item key={action.label} value={action.label} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n tone={action.destructive ? \"danger\" : \"default\"}\n label={action.label}\n icon={action.icon}\n onClick={stopControlPropagation}\n onActivate={() => action.onSelect(row.original)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\n\ninterface FormattedCellProps {\n value: unknown;\n wrapRows: boolean;\n}\n\nconst FormattedCell = (props: FormattedCellProps) => {\n const { value, wrapRows } = props;\n const displayValue = formatDisplayValue(value);\n\n if (isValidElement(displayValue)) {\n return (\n <chakra.span\n display=\"inline-flex\"\n maxWidth=\"full\"\n minW=\"0\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n {wrapRows ? displayValue : toSingleLineElement(displayValue)}\n </chakra.span>\n );\n }\n\n return (\n <Text\n maxWidth=\"full\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n textStyle=\"paragraph/S/regular\"\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n {displayValue}\n </Text>\n );\n};\n\ninterface DataCellProps {\n columnLabel: string;\n renderer?: DataTableColumnRenderer;\n value: unknown;\n wrapRows: boolean;\n}\n\nconst DataCell = (props: DataCellProps) => {\n const { columnLabel, renderer, value, wrapRows } = props;\n\n if (renderer?.type === \"json\") return <JsonCell columnLabel={columnLabel} value={value} />;\n\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return <ColorScaleCell value={value} />;\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) {\n return (\n <CategoricalColorCell>\n <FormattedCell value={value} wrapRows={wrapRows} />\n </CategoricalColorCell>\n );\n }\n }\n\n return <FormattedCell value={value} wrapRows={wrapRows} />;\n};\n\nconst resolveDataCellStyle = (value: unknown, renderer?: DataTableColumnRenderer) => {\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return resolveColorCellStyle(color);\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) return resolveColorCellStyle(color);\n }\n};\n\nexport function buildColumns(data: RowData[], columnKeys: string[], options: BuildColumnsOptions = {}) {\n const {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection = false,\n rowActions = [],\n getRowActions,\n selectedRowIds,\n columnRenderers,\n wrapRows = false,\n } = options;\n const rowIndexColumn = columnHelper.accessor((_row, rowIndex) => rowIndex + 1, {\n header: \"\",\n id: \"rowIndex\",\n enableResizing: false,\n size: 20,\n cell: (info) => (\n <chakra.span display={\"block\"} textStyle={\"paragraph/S/regular\"} textAlign={\"center\"}>\n {info.getValue()}\n </chakra.span>\n ),\n });\n\n const selectionColumn = columnHelper.display({\n id: \"rowSelection\",\n header: SelectionHeader,\n cell: (info) => <SelectionCell {...info} selectedRowIds={selectedRowIds} />,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n const dataColumns = columnKeys.map((key) => {\n const fallBackKey = key || \"-\";\n const columnValues = data.map((row) => row[fallBackKey]);\n const renderer = columnRenderers?.[fallBackKey];\n const customIcon = columnIcons?.[fallBackKey];\n const headerIcon = customIcon === undefined ? getIcon(columnValues) : customIcon;\n const columnDescription = columnDescriptions?.[fallBackKey];\n\n return columnHelper.accessor((row) => row[fallBackKey], {\n id: fallBackKey,\n header: () => {\n const headerLabel = compactHeaders?.[fallBackKey] ?? fallBackKey;\n return (\n <chakra.span display=\"inline-flex\" alignItems=\"center\" gap=\"4px\" minW=\"0\" maxW=\"full\" overflow=\"hidden\">\n {headerIcon}\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\">\n {headerLabel}\n </chakra.span>\n {columnDescription ? (\n <Tooltip content={columnDescription}>\n <ChakraIcon\n as={CircleHelp}\n aria-label={`About ${headerLabel}`}\n boxSize=\"12px\"\n color=\"fg.muted\"\n cursor=\"help\"\n flexShrink={0}\n opacity={0.6}\n tabIndex={0}\n />\n </Tooltip>\n ) : null}\n </chakra.span>\n );\n },\n cell: (info) => (\n <DataCell columnLabel={fallBackKey} renderer={renderer} value={info.getValue()} wrapRows={wrapRows} />\n ),\n meta: {\n getCellStyle: (value: unknown) => resolveDataCellStyle(value, renderer),\n },\n sortingFn: (rowA, rowB) => {\n const valueA = getSortValue(rowA.original[fallBackKey]);\n const valueB = getSortValue(rowB.original[fallBackKey]);\n return compareValues(valueA, valueB);\n },\n });\n });\n\n const rowActionsColumn = columnHelper.display({\n id: \"rowActions\",\n header: \"\",\n cell: (info) => <RowActionsCell {...info} actions={rowActions} getActions={getRowActions} />,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n return [\n rowIndexColumn,\n ...(enableSelection ? [selectionColumn] : []),\n ...dataColumns,\n ...(rowActions.length > 0 || getRowActions ? [rowActionsColumn] : []),\n ];\n}\n","import { Box, HStack, Icon, IconButton, Popover, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { closestCenter, DndContext, type DragEndEvent, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { SortableContext, useSortable, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Check, GripVertical, Settings2 } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { SearchableMenuInput } from \"@/components/overlays/searchable-menu-input\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { Switch } from \"@/components/primitives/switch\";\nimport { DataTableRowDisplaySwitch } from \"./data-table-row-display\";\n\ninterface DataTableColumnMenuColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableColumnMenuProps {\n columns: DataTableColumnMenuColumn[];\n visibleColumnIds: Set<string>;\n wrapRows: boolean;\n showStats: boolean;\n statsAvailable: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n onColumnReorder: (activeColumnId: string, overColumnId: string) => void;\n onWrapRowsChange: (wrapRows: boolean) => void;\n onStatsVisibilityChange: (showStats: boolean) => void;\n}\n\ninterface DataTableColumnMenuRowProps {\n column: DataTableColumnMenuColumn;\n checked: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n}\n\nconst DataTableColumnMenuRow = (props: DataTableColumnMenuRowProps) => {\n const { column, checked, onColumnVisibilityChange } = props;\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: column.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n opacity: isDragging ? 0.5 : 1,\n };\n\n return (\n <HStack\n ref={setNodeRef}\n style={style}\n gap=\"2xs\"\n minW=\"0\"\n width=\"full\"\n borderRadius=\"xs\"\n px=\"xs\"\n py=\"2xs\"\n _hover={{ bg: \"bg.hover\" }}\n >\n <Box as=\"span\" display=\"inline-flex\" cursor=\"grab\" color=\"fg.muted\" {...attributes} {...listeners}>\n <GripVertical size={14} />\n </Box>\n <Checkbox\n checked={checked}\n flex=\"1\"\n minW=\"0\"\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n size=\"sm\"\n icon={<Icon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onCheckedChange={(details) => onColumnVisibilityChange(column.id, details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\" truncate>\n {column.label}\n </Text>\n </Checkbox>\n </HStack>\n );\n};\n\nexport const DataTableColumnMenu = (props: DataTableColumnMenuProps) => {\n const {\n columns,\n visibleColumnIds,\n wrapRows,\n showStats,\n statsAvailable,\n onColumnVisibilityChange,\n onColumnReorder,\n onWrapRowsChange,\n onStatsVisibilityChange,\n } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));\n const normalizedQuery = query.trim().toLowerCase();\n const filteredColumns = normalizedQuery\n ? columns.filter((column) => column.label.toLowerCase().includes(normalizedQuery))\n : columns;\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n\n onColumnReorder(String(active.id), String(over.id));\n };\n\n useEffect(() => {\n if (!open) return;\n\n const closeOnOutsidePointerDown = (event: PointerEvent) => {\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (contentRef.current?.contains(target) || triggerRef.current?.contains(target)) return;\n\n setOpen(false);\n };\n const closeOnEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.addEventListener(\"keydown\", closeOnEscape, true);\n return () => {\n document.removeEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"keydown\", closeOnEscape, true);\n };\n }, [open]);\n\n return (\n <Popover.Root\n open={open}\n closeOnInteractOutside={false}\n positioning={{\n placement: \"bottom-end\",\n offset: { mainAxis: 8 },\n getAnchorElement: () => triggerRef.current,\n }}\n >\n <Popover.Trigger asChild>\n <IconButton\n ref={triggerRef}\n aria-label=\"Display settings\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setOpen((current) => !current)}\n >\n <Icon as={Settings2} boxSize=\"14px\" />\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content ref={contentRef} width=\"min(320px, calc(100vw - 32px))\" p=\"0\" bg=\"bg\" overflow=\"hidden\">\n <Stack gap=\"0\">\n <DataTableRowDisplaySwitch showDivider wrapRows={wrapRows} onWrapRowsChange={onWrapRowsChange} />\n {statsAvailable ? (\n <Box borderBottomWidth=\"1px\" borderColor=\"border.subtle\" padding=\"xs\">\n <Switch\n checked={showStats}\n inputProps={{ role: \"switch\" }}\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n onCheckedChange={(details) => onStatsVisibilityChange(details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\">\n Statistics\n </Text>\n </Switch>\n </Box>\n ) : null}\n <SearchableMenuInput value={query} placeholder=\"Search columns\" onValueChange={setQuery} />\n <ScrollArea maxH=\"280px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <Box padding=\"2xs\">\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <SortableContext items={columns.map((column) => column.id)} strategy={verticalListSortingStrategy}>\n <Stack gap=\"1px\">\n {filteredColumns.map((column) => (\n <DataTableColumnMenuRow\n key={column.id}\n column={column}\n checked={visibleColumnIds.has(column.id)}\n onColumnVisibilityChange={onColumnVisibilityChange}\n />\n ))}\n </Stack>\n </SortableContext>\n </DndContext>\n </Box>\n </ScrollArea>\n </Stack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Chart, type UseChartProps, useChart } from \"@chakra-ui/charts\";\nimport type { ReactNode } from \"react\";\nimport {\n Bar,\n BarChart,\n Tooltip as RechartsTooltip,\n useActiveTooltipCoordinate,\n usePlotArea,\n XAxis,\n YAxis,\n} from \"recharts\";\n\ntype ChartSeries<T> = NonNullable<UseChartProps<T>[\"series\"]>[number];\ntype StringKeyOf<T> = Extract<keyof T, string>;\n\nconst StatChartCrosshair = () => {\n const coordinate = useActiveTooltipCoordinate();\n const plotArea = usePlotArea();\n\n if (!coordinate || !plotArea) return null;\n\n return (\n <g pointerEvents=\"none\" stroke=\"var(--chakra-colors-border-emphasized)\" strokeWidth=\"1\">\n <line x1={coordinate.x} x2={coordinate.x} y1={plotArea.y} y2={plotArea.y + plotArea.height} />\n <line x1={plotArea.x} x2={plotArea.x + plotArea.width} y1={coordinate.y} y2={coordinate.y} />\n </g>\n );\n};\n\ninterface DataTableStatChartProps<T extends object> {\n data: T[];\n dataKey: StringKeyOf<T>;\n color: ChartSeries<T>[\"color\"];\n height: string;\n ariaLabel: string;\n tooltipLabel: (datum: T) => ReactNode;\n tooltipValue: (value: string | number) => ReactNode;\n tooltipSeriesLabel: string;\n layout?: \"horizontal\" | \"vertical\";\n categoryKey?: StringKeyOf<T>;\n domain?: [number, number];\n barSize?: number;\n barCategoryGap?: number;\n}\n\nexport const DataTableStatChart = <T extends object>(props: DataTableStatChartProps<T>) => {\n const {\n data,\n dataKey,\n color,\n height,\n ariaLabel,\n tooltipLabel,\n tooltipValue,\n tooltipSeriesLabel,\n layout = \"horizontal\",\n categoryKey,\n domain,\n barSize,\n barCategoryGap = 1,\n } = props;\n const chart = useChart({ data, series: [{ name: dataKey, color }] });\n const getBarValue = (datum: T) => datum[dataKey] as string | number;\n const getCategoryValue = categoryKey ? (datum: T) => datum[categoryKey] as string | number : undefined;\n\n return (\n <Chart.Root chart={chart} height={height} aspectRatio=\"auto\" cursor=\"crosshair\" aria-label={ariaLabel}>\n <BarChart\n responsive\n data={chart.data}\n layout={layout}\n margin={{ top: 2, right: 0, bottom: 0, left: 0 }}\n barCategoryGap={barCategoryGap}\n >\n {layout === \"vertical\" ? (\n <>\n <XAxis type=\"number\" domain={domain} hide />\n <YAxis type=\"category\" dataKey={getCategoryValue} hide />\n </>\n ) : null}\n <Bar dataKey={getBarValue} fill={chart.color(color)} barSize={barSize} isAnimationActive={false} />\n <RechartsTooltip\n allowEscapeViewBox={{ x: true, y: true }}\n content={\n <Chart.Tooltip\n labelFormatter={(label, payload) => {\n const datum = payload[0]?.payload as T | undefined;\n return datum ? tooltipLabel(datum) : label;\n }}\n formatter={(value) => [tooltipValue(value), tooltipSeriesLabel]}\n />\n }\n cursor={<StatChartCrosshair />}\n isAnimationActive={false}\n wrapperStyle={{ zIndex: 1800 }}\n />\n </BarChart>\n </Chart.Root>\n );\n};\n","import { isDisplayValue } from \"./helpers\";\nimport type { RowData } from \"./types\";\n\nexport interface HistogramBin {\n start: number;\n end: number;\n count: number;\n}\n\nexport interface HistogramStat {\n min: number;\n max: number;\n bins: HistogramBin[];\n}\n\nexport interface TopValueStat {\n label: string;\n count: number;\n percentage: number;\n}\n\nconst getStatValue = (value: unknown) => (isDisplayValue(value) ? value.sortValue : value);\n\nconst getColumnStatValues = (rows: RowData[], columnId: string) =>\n rows\n .map((row) => getStatValue(row[columnId]))\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\nexport const countUniqueStatValues = (rows: RowData[], columnId: string) =>\n new Set(getColumnStatValues(rows, columnId)).size;\n\nexport const buildTopValuesStat = (rows: RowData[], columnId: string, limit: number) => {\n const values = getColumnStatValues(rows, columnId);\n const counts = new Map<unknown, number>();\n\n for (const value of values) {\n counts.set(value, (counts.get(value) ?? 0) + 1);\n }\n\n const groups: TopValueStat[] = [...counts.entries()]\n .map(([value, count]) => ({\n label: String(value),\n count,\n percentage: Math.round((count / values.length) * 100),\n }))\n .sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));\n const topGroups = groups.slice(0, limit);\n const otherCount = groups.slice(limit).reduce((total, group) => total + group.count, 0);\n\n if (otherCount === 0) return topGroups;\n\n return [\n ...topGroups,\n {\n label: \"Other\",\n count: otherCount,\n percentage: Math.round((otherCount / values.length) * 100),\n },\n ];\n};\n\nexport const buildHistogramStat = (rows: RowData[], columnId: string, binCount: number): HistogramStat | null => {\n const values = getColumnStatValues(rows, columnId).filter((value): value is number => typeof value === \"number\");\n if (values.length === 0) return null;\n\n const min = Math.min(...values);\n const max = Math.max(...values);\n const binWidth = (max - min) / binCount;\n const bins = Array.from({ length: binCount }, (_, index) => ({\n start: min + binWidth * index,\n end: min + binWidth * (index + 1),\n count: 0,\n }));\n\n for (const value of values) {\n const binIndex = value === max || binWidth === 0 ? binCount - 1 : Math.floor((value - min) / binWidth);\n bins[binIndex]!.count += 1;\n }\n\n return { min, max, bins };\n};\n","import { Box, Flex, Table, Text } from \"@chakra-ui/react\";\nimport type { Header, HeaderGroup } from \"@tanstack/react-table\";\nimport { DataTableStatChart } from \"./data-table-stat-chart\";\nimport { buildHistogramStat, buildTopValuesStat, countUniqueStatValues } from \"./data-table-stats\";\nimport type { DataTableColumnStat, RowData } from \"./types\";\n\nconst formatNumber = new Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format;\nconst STAT_CHART_COLOR = \"vis.categorical.1\";\n\ninterface SingleValueStatProps {\n value: string;\n count: number;\n}\n\nconst SingleValueStat = (props: SingleValueStatProps) => {\n const { value, count } = props;\n\n return (\n <Flex data-single-value-stat direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\" minWidth=\"0\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\" maxWidth=\"100%\" truncate>\n {value}\n </Text>\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n {formatNumber(count)} {count === 1 ? \"value\" : \"values\"}\n </Text>\n </Flex>\n );\n};\n\ninterface UniqueStatProps {\n rows: RowData[];\n columnId: string;\n}\n\nconst UniqueStat = (props: UniqueStatProps) => {\n const { rows, columnId } = props;\n const count = countUniqueStatValues(rows, columnId);\n\n return (\n <Flex direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\">\n {formatNumber(count)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n unique values\n </Text>\n </Flex>\n );\n};\n\ninterface HistogramStatProps {\n rows: RowData[];\n columnId: string;\n binCount: number;\n}\n\nconst HistogramStat = (props: HistogramStatProps) => {\n const { rows, columnId, binCount } = props;\n const histogram = buildHistogramStat(rows, columnId, binCount);\n\n if (!histogram) {\n return (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n No numeric values\n </Text>\n );\n }\n\n const valueCount = histogram.bins.reduce((total, bin) => total + bin.count, 0);\n if (histogram.min === histogram.max) {\n return <SingleValueStat value={formatNumber(histogram.min)} count={valueCount} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n <DataTableStatChart\n data={histogram.bins}\n dataKey=\"count\"\n color={STAT_CHART_COLOR}\n height=\"40px\"\n ariaLabel={`Distribution for ${columnId}`}\n tooltipLabel={(bin) => `${formatNumber(bin.start)} – ${formatNumber(bin.end)}`}\n tooltipValue={(value) => `${formatNumber(Number(value))} values`}\n tooltipSeriesLabel=\"Count\"\n />\n <Flex justifyContent=\"space-between\" gap=\"xs\">\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.min)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.max)}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\ninterface TopValuesStatProps {\n rows: RowData[];\n columnId: string;\n limit: number;\n}\n\nconst TopValuesStat = (props: TopValuesStatProps) => {\n const { rows, columnId, limit } = props;\n const groups = buildTopValuesStat(rows, columnId, limit);\n\n if (groups.length === 1 && groups[0]) {\n return <SingleValueStat value={groups[0].label} count={groups[0].count} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {groups.map((group) => (\n <Box key={group.label} position=\"relative\" height=\"18px\">\n <DataTableStatChart\n data={[group]}\n dataKey=\"percentage\"\n categoryKey=\"label\"\n color={STAT_CHART_COLOR}\n height=\"18px\"\n ariaLabel={`${group.label}: ${group.percentage}%`}\n layout=\"vertical\"\n domain={[0, 100]}\n barSize={18}\n tooltipLabel={(datum) => `${datum.label} · ${formatNumber(datum.count)} values`}\n tooltipValue={(value) => `${formatNumber(Number(value))}%`}\n tooltipSeriesLabel=\"Share\"\n />\n <Flex\n position=\"absolute\"\n inset=\"0\"\n paddingX=\"2xs\"\n justifyContent=\"space-between\"\n gap=\"xs\"\n pointerEvents=\"none\"\n >\n <Text textStyle=\"label/2XS\" color=\"fg.inverted\" truncate>\n {group.label}\n </Text>\n <Text textStyle=\"label/2XS/medium\" color=\"fg.muted\">\n {group.percentage}%\n </Text>\n </Flex>\n </Box>\n ))}\n </Flex>\n );\n};\n\ninterface DataTableStatProps {\n rows: RowData[];\n columnId: string;\n stat: DataTableColumnStat;\n}\n\nconst DataTableStat = (props: DataTableStatProps) => {\n const { rows, columnId, stat } = props;\n\n if (stat.type === \"unique\") return <UniqueStat rows={rows} columnId={columnId} />;\n if (stat.type === \"histogram\") {\n return <HistogramStat rows={rows} columnId={columnId} binCount={stat.bins ?? 10} />;\n }\n return <TopValuesStat rows={rows} columnId={columnId} limit={stat.limit ?? 2} />;\n};\n\ninterface DataTableStatCellProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n}\n\nconst DataTableStatCell = (props: DataTableStatCellProps) => {\n const { header, headerGroup, rows, columnStats, fullWidth } = props;\n const stat = columnStats[header.column.id];\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n data-stat-type={stat?.type}\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n padding=\"xs\"\n verticalAlign=\"middle\"\n overflow=\"hidden\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n {stat ? <DataTableStat rows={rows} columnId={header.column.id} stat={stat} /> : null}\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableStatsRowProps {\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n noBorder?: boolean;\n}\n\nexport const DataTableStatsRow = (props: DataTableStatsRowProps) => {\n const { headerGroup, rows, columnStats, fullWidth, noBorder } = props;\n const hasVisibleStats = headerGroup.headers.some((header) => columnStats[header.column.id]);\n\n if (!hasVisibleStats) return null;\n\n return (\n <Table.Row\n className=\"data-table-stats-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableStatCell\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n rows={rows}\n columnStats={columnStats}\n fullWidth={fullWidth}\n />\n ))}\n </Table.Row>\n );\n};\n","import { Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Table, Text } from \"@chakra-ui/react\";\nimport {\n type Cell,\n flexRender,\n type Header,\n type HeaderGroup,\n type Row,\n type Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport { ArrowDownAZ, ArrowUpAZ, MoreVertical } from \"lucide-react\";\nimport type { CSSProperties } from \"react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { DataTableCellContext, DataTableProps, RowData } from \"./types\";\n\nconst utilityColumnIds = new Set([\"rowIndex\", \"rowSelection\", \"rowActions\"]);\n\nconst getSortMenuIcon = (sortDirection: false | \"asc\" | \"desc\") => {\n if (sortDirection === \"asc\") return ArrowUpAZ;\n if (sortDirection === \"desc\") return ArrowDownAZ;\n return MoreVertical;\n};\n\ninterface DataTableColumnHeaderProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n table: TanStackTable<RowData>;\n fullWidth?: boolean;\n hasDescription?: boolean;\n}\n\nexport const DataTableColumnHeader = (props: DataTableColumnHeaderProps) => {\n const { header, headerGroup, table, fullWidth, hasDescription } = props;\n const sortDirection = header.column.getIsSorted();\n const canSortColumn = !utilityColumnIds.has(header.column.id) && table.getCoreRowModel().rows.length > 1;\n const SortIcon = getSortMenuIcon(sortDirection);\n const tooltipContent =\n header.column.id === \"rowSelection\"\n ? \"Select all\"\n : flexRender(header.column.columnDef.header, header.getContext());\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n key={header.id}\n overflow=\"hidden\"\n position=\"relative\"\n verticalAlign=\"middle\"\n whiteSpace=\"nowrap\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n <Tooltip content={tooltipContent} disabled={hasDescription}>\n <Flex className=\"group\" alignItems=\"center\" justifyContent=\"space-between\" gap=\"1\" flex=\"1\" minW=\"0\">\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n {canSortColumn && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton\n ml=\"2px\"\n size=\"2xs\"\n aria-label={sortDirection ? `Sorted ${sortDirection}` : \"Sort column\"}\n variant=\"ghost\"\n visibility={sortDirection ? \"visible\" : \"hidden\"}\n _groupHover={{ visibility: \"visible\" }}\n >\n <ChakraIcon as={SortIcon} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n <Menu.Item value=\"sort-asc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort ascending\"\n icon={<ChakraIcon as={ArrowUpAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"asc\"}\n onActivate={() => header.column.toggleSorting(false)}\n />\n </Menu.Item>\n <Menu.Item value=\"sort-desc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort descending\"\n icon={<ChakraIcon as={ArrowDownAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"desc\"}\n onActivate={() => header.column.toggleSorting(true)}\n />\n </Menu.Item>\n {sortDirection && (\n <Menu.Item value=\"clear-sort\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Clear sort\"\n onActivate={() => header.column.clearSorting()}\n />\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n )}\n {header.column.getCanResize() && (\n <span\n {...{\n onDoubleClick: () => header.column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: `resizer ${header.column.getIsResizing() ? \"isResizing\" : \"\"}`,\n }}\n />\n )}\n </Flex>\n </Tooltip>\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableCellViewProps {\n cell: Cell<RowData, unknown>;\n row: Row<RowData>;\n wrapRows: boolean;\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\ninterface DataTableColumnMeta {\n getCellStyle?: (value: unknown) => CSSProperties | undefined;\n}\n\nconst DataTableCellView = (props: DataTableCellViewProps) => {\n const { cell, row, wrapRows, getCellContextMenuActions } = props;\n const columnMeta = cell.column.columnDef.meta as DataTableColumnMeta | undefined;\n const cellStyle = columnMeta?.getCellStyle?.(cell.getValue());\n const cellContext: DataTableCellContext = {\n row: row.original,\n rowId: row.id,\n columnId: cell.column.id,\n value: cell.getValue(),\n };\n const contextActions =\n getCellContextMenuActions?.(cellContext).map((action) => ({\n key: action.label,\n label: action.label,\n icon: action.icon,\n onClick: () => action.onSelect(cellContext),\n })) ?? [];\n const cellElement = (\n <Table.Cell\n data-column-id={cell.column.id}\n width=\"fit-content\"\n maxWidth=\"12rem\"\n overflow=\"hidden\"\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n padding=\"xs\"\n height={wrapRows ? undefined : \"10\"}\n maxHeight={wrapRows ? undefined : \"10\"}\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n key={cell.id}\n textStyle=\"paragraph/S/regular\"\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n verticalAlign={wrapRows ? \"top\" : \"middle\"}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n style={cellStyle}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n\n if (contextActions.length === 0) return cellElement;\n\n return (\n <ResourceContextMenu key={cell.id} actions={contextActions}>\n {cellElement}\n </ResourceContextMenu>\n );\n};\n\ninterface DataTableBodyRowProps {\n row: Row<RowData>;\n noBorder?: boolean;\n rowIsInteractive: boolean;\n rowIsActive: boolean;\n rowIsSelected: boolean;\n wrapRows: boolean;\n onRowClick?: DataTableProps[\"onRowClick\"];\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nexport const DataTableBodyRow = (props: DataTableBodyRowProps) => {\n const {\n row,\n noBorder,\n rowIsInteractive,\n rowIsActive,\n rowIsSelected,\n wrapRows,\n onRowClick,\n getCellContextMenuActions,\n } = props;\n\n return (\n <Table.Row\n key={row.id}\n data-active={rowIsActive ? \"true\" : undefined}\n data-selected={rowIsSelected ? \"true\" : undefined}\n aria-selected={rowIsSelected ? \"true\" : undefined}\n height={wrapRows ? undefined : \"10\"}\n cursor={rowIsInteractive ? \"pointer\" : undefined}\n onClick={rowIsInteractive ? () => onRowClick?.(row.original) : undefined}\n borderTop={noBorder ? \"none\" : \"1px solid\"}\n borderBottom=\"1px solid\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n _last={{ borderBottom: noBorder ? \"none\" : \"1px solid\", borderColor: \"border.subtle\" }}\n borderColor=\"border.subtle\"\n background={rowIsActive ? \"bg.active\" : \"bg\"}\n >\n {row.getVisibleCells().map((cell) => (\n <DataTableCellView\n key={cell.id}\n cell={cell}\n row={row}\n wrapRows={wrapRows}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n ))}\n </Table.Row>\n );\n};\n","import \"./data-table.css\";\n\nimport { Box, Flex, Table } from \"@chakra-ui/react\";\nimport {\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { useKanbanRendererStore } from \"../kanban-renderer/use-kanban-renderer-store\";\nimport { buildColumns } from \"./build-columns\";\nimport { DataTableColumnMenu } from \"./data-table-column-menu\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n buildDataTableRendererAttributes,\n buildDataTableRendererRows,\n filterDataTableRows,\n getSelectedOriginalRows,\n reorderDataTableColumns,\n resolveDataTableColumnOrder,\n resolveDataTableRowId,\n resolveDataTableToolbarStorageKey,\n resolveInitialPageSize,\n resolveSelectionActions,\n shouldEnableSelection,\n shouldHighlightActiveRow,\n} from \"./data-table-state\";\nimport { DataTableStatsRow } from \"./data-table-stats-row\";\nimport { DataTableBodyRow, DataTableColumnHeader } from \"./data-table-table-parts\";\nimport { EditModeDataTable } from \"./edit-mode-data-table\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableProps, RowData } from \"./types\";\n\ninterface DatasetPaginationProps {\n table: ReturnType<typeof useReactTable<RowData>>;\n pagination: PaginationState;\n pageSizeOptions: number[];\n}\n\nconst buildColumnMenuColumns = (columnKeys: string[], compactHeaders?: Partial<Record<string, string>>) =>\n columnKeys.map((columnId) => ({ id: columnId, label: compactHeaders?.[columnId] ?? columnId }));\n\nconst DatasetPagination = (props: DatasetPaginationProps) => {\n const { table, pagination, pageSizeOptions } = props;\n\n return (\n <PaginationFooter\n pageCount={table.getPageCount()}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n pageSizeOptions={pageSizeOptions}\n totalRows={table.getCoreRowModel().rows.length}\n onPageChange={table.setPageIndex}\n onPageSizeChange={table.setPageSize}\n />\n );\n};\n\nconst DatasetDataTable = (props: DataTableProps) => {\n const {\n data,\n noBorder,\n fullWidth,\n hiddenColumns,\n onRowClick,\n isRowInteractive,\n activeRowId,\n columnIcons,\n columnDescriptions,\n compactHeaders,\n columnStats,\n columnRenderers,\n initialPageSize,\n pageSizeOptions = [10, 20, 30, 50, 100],\n rowActions = [],\n getRowActions,\n getRowId,\n toolbarStorageKey,\n enableRowActivation = false,\n getCellContextMenuActions,\n } = props;\n const [sorting, setSorting] = useState<SortingState>([]);\n const [pagination, setPagination] = useState<PaginationState>(() => ({\n pageIndex: 0,\n pageSize: resolveInitialPageSize({ initialPageSize }),\n }));\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [showStats, setShowStats] = useState(true);\n const [wrapRows, setWrapRows] = useState(false);\n const [columnOrder, setColumnOrder] = useState<string[]>(() => {\n const propHiddenColumnsSet = new Set(hiddenColumns ?? []);\n return Object.keys(data[0] || {}).filter((key) => !propHiddenColumnsSet.has(key));\n });\n const [hiddenColumnMenuIds, setHiddenColumnMenuIds] = useState<Set<string>>(() => new Set());\n const hiddenColumnsSet = new Set(hiddenColumns ?? []);\n const baseColumnKeys = Object.keys(data[0] || {}).filter((key) => !hiddenColumnsSet.has(key));\n const orderedBaseColumnKeys = resolveDataTableColumnOrder(baseColumnKeys, columnOrder);\n const visibleColumnIds = new Set(orderedBaseColumnKeys.filter((key) => !hiddenColumnMenuIds.has(key)));\n const columnKeys = orderedBaseColumnKeys.filter((key) => visibleColumnIds.has(key));\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n const rendererAttributes = buildDataTableRendererAttributes(data, orderedBaseColumnKeys, compactHeaders);\n const rendererRows = buildDataTableRendererRows(data, orderedBaseColumnKeys, getRowId);\n const resolvedToolbarStorageKey = resolveDataTableToolbarStorageKey({\n toolbarStorageKey,\n columnKeys: baseColumnKeys,\n });\n const filters = useKanbanRendererStore(resolvedToolbarStorageKey, (state) => state.filters, {\n settings: { viewMode: \"list\" },\n views: props.defaultViews,\n activeViewId: props.defaultActiveViewId,\n });\n const filteredRendererRows = filterDataTableRows(rendererRows, filters, rendererAttributes);\n const filteredData = filteredRendererRows.map((row) => row.sourceRow);\n const columns = buildColumns(data, columnKeys, {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection,\n rowActions,\n getRowActions,\n selectedRowIds: rowSelection,\n columnRenderers,\n wrapRows,\n });\n\n const table = useReactTable({\n data: filteredData,\n columns,\n defaultColumn: { size: 150, minSize: 40, maxSize: 800 },\n state: { sorting, pagination, rowSelection },\n getRowId: (row, index) => resolveDataTableRowId(row, index, getRowId),\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n onSortingChange: setSorting,\n onPaginationChange: setPagination,\n onRowSelectionChange: setRowSelection,\n getSortedRowModel: getSortedRowModel(),\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n enableMultiRowSelection: enableSelection,\n enableRowSelection: enableSelection,\n autoResetAll: false,\n });\n\n useEffect(() => {\n const pageCount = table.getPageCount();\n if (pageCount === 0 || pagination.pageIndex < pageCount) return;\n\n setPagination((current) => ({\n ...current,\n pageIndex: Math.max(pageCount - 1, 0),\n }));\n }, [pagination.pageIndex, table]);\n\n const columnSizeVars = (() => {\n const headers = table.getFlatHeaders();\n const colSizes: Record<string, number> = {};\n for (let i = 0; i < headers.length; i++) {\n const header = headers[i]!;\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n return colSizes;\n })();\n\n const selectedRows = table.getSelectedRowModel().rows;\n const allRows = table.getCoreRowModel().rows;\n const selectedOriginalRows = getSelectedOriginalRows(selectedRows);\n const columnControl = (\n <DataTableColumnMenu\n columns={buildColumnMenuColumns(orderedBaseColumnKeys, compactHeaders)}\n visibleColumnIds={visibleColumnIds}\n wrapRows={wrapRows}\n showStats={showStats}\n statsAvailable={Boolean(columnStats)}\n onColumnVisibilityChange={(columnId, visible) =>\n setHiddenColumnMenuIds((current) => {\n const next = new Set(current);\n if (visible) {\n next.delete(columnId);\n } else {\n next.add(columnId);\n }\n return next;\n })\n }\n onColumnReorder={(activeColumnId, overColumnId) =>\n setColumnOrder((current) =>\n reorderDataTableColumns(resolveDataTableColumnOrder(baseColumnKeys, current), activeColumnId, overColumnId),\n )\n }\n onWrapRowsChange={setWrapRows}\n onStatsVisibilityChange={setShowStats}\n />\n );\n\n return (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n <DataTableHeader\n rows={rendererRows}\n storageKey={resolvedToolbarStorageKey}\n attributes={rendererAttributes}\n columnControl={columnControl}\n defaultViews={props.defaultViews}\n defaultActiveViewId={props.defaultActiveViewId}\n />\n <Box position=\"relative\" flex=\"1\" minHeight=\"0\">\n <ScrollArea height=\"100%\" maxWidth=\"unset\" showHorizontalScrollbar>\n <Table.Root\n className={`data-table${fullWidth ? \" full-width\" : \"\"}`}\n style={{ ...columnSizeVars, width: fullWidth ? \"100%\" : table.getTotalSize() }}\n >\n <Table.Header>\n {table.getHeaderGroups().map((headerGroup) => (\n <Fragment key={headerGroup.id}>\n <Table.Row\n className=\"data-table-column-header-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableColumnHeader\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n table={table}\n fullWidth={fullWidth}\n hasDescription={Boolean(columnDescriptions?.[header.column.id])}\n />\n ))}\n </Table.Row>\n {columnStats && showStats ? (\n <DataTableStatsRow\n headerGroup={headerGroup}\n rows={filteredData}\n columnStats={columnStats}\n noBorder={noBorder}\n fullWidth={fullWidth}\n />\n ) : null}\n </Fragment>\n ))}\n </Table.Header>\n <Table.Body>\n {table.getRowModel().rows.map((row) => {\n const rowIsInteractive = onRowClick ? (isRowInteractive?.(row.original) ?? true) : false;\n const rowIsActive = shouldHighlightActiveRow({ enableRowActivation, activeRowId, rowId: row.id });\n const rowIsSelected = row.getIsSelected();\n\n return (\n <DataTableBodyRow\n key={row.id}\n row={row}\n noBorder={noBorder}\n rowIsInteractive={rowIsInteractive}\n rowIsActive={rowIsActive}\n rowIsSelected={rowIsSelected}\n wrapRows={wrapRows}\n onRowClick={onRowClick}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n );\n })}\n </Table.Body>\n </Table.Root>\n </ScrollArea>\n {enableSelection && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={allRows.length}\n onClearSelection={() => table.toggleAllRowsSelected(false)}\n onSelectAll={() => table.toggleAllRowsSelected(true)}\n actions={selectionActions}\n selectedRows={selectedOriginalRows}\n />\n ) : null}\n </Box>\n {table.getPageCount() > 1 && (\n <DatasetPagination table={table} pagination={pagination} pageSizeOptions={pageSizeOptions} />\n )}\n </Flex>\n );\n};\n\nexport const DataTable = (props: DataTableProps) => {\n if (props.editMode) return <EditModeDataTable {...props} />;\n return <DatasetDataTable {...props} />;\n};\n","import \"./data-table.css\";\n\nimport { Skeleton, Table, Text } from \"@chakra-ui/react\";\n\nexport interface DataTableSkeletonColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableSkeletonProps {\n /** Real column headers when the caller already knows them. */\n columns?: DataTableSkeletonColumn[];\n /** Placeholder column count when the headers are still unknown. */\n columnCount?: number;\n rowCount?: number;\n}\n\n// Deterministic width variation keeps the shimmer organic without re-rendering\n// to a different layout on every mount.\nconst cellWidths = [\"70%\", \"45%\", \"60%\", \"35%\", \"55%\"];\n\nexport const DataTableSkeleton = (props: DataTableSkeletonProps) => {\n const { columns, columnCount = 3, rowCount = 5 } = props;\n const headers =\n columns && columns.length > 0\n ? columns\n : Array.from({ length: columnCount }, (_, index) => ({ id: `column-${index + 1}`, label: \"\" }));\n\n return (\n <Table.Root className=\"data-table full-width\" width=\"100%\">\n <Table.Header>\n <Table.Row className=\"data-table-column-header-row\" borderRight=\"1px solid\" borderColor=\"border.subtle\">\n {headers.map((column) => (\n <Table.ColumnHeader\n key={column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n whiteSpace=\"nowrap\"\n >\n {column.label ? (\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {column.label}\n </Text>\n ) : (\n <Skeleton height=\"12px\" width=\"4rem\" borderRadius=\"xs\" />\n )}\n </Table.ColumnHeader>\n ))}\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {Array.from({ length: rowCount }, (_, rowIndex) => (\n <Table.Row key={rowIndex}>\n {headers.map((column, columnIndex) => (\n <Table.Cell\n key={column.id}\n padding=\"xs\"\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n >\n <Skeleton\n height=\"14px\"\n width={cellWidths[(rowIndex + columnIndex) % cellWidths.length]}\n borderRadius=\"xs\"\n />\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Root>\n );\n};\n"],"names":["resolveCategoricalColor","value","categories","find","category","Object","is","color","CategoricalColorCell","props","children","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","split","map","character","join","parseHexColor","normalized","trim","startsWith","slice","expandedHex","length","test","r","Number","parseInt","g","b","toLinearChannel","channel","relativeLuminance","contrastRatio","foreground","background","foregroundLuminance","backgroundLuminance","lighter","Math","max","darker","min","toHexColor","toHexChannel","round","toString","padStart","mixRgbColors","start","end","endWeight","findMatchingForeground","target","step","candidate","resolveReadableTextColor","backgroundColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","light","darkForeground","dark","toDisplayPercent","mixColors","mixedColor","mixThemeColors","undefined","resolveColorScaleValue","stops","isFinite","firstStop","lastStop","endIndex","findIndex","stop","startStop","endStop","ColorScaleCell","$","_c","t0","jsx","Text","imageExtensionPattern","imageLabelPattern","humanizeKey","key","words","replace","toLowerCase","toUpperCase","formatPath","path","part","isPrimitiveArray","every","item","appendJsonFields","fields","Array","isArray","push","label","forEach","index","String","entries","parseJsonCellValue","JSON","parse","buildJsonFields","field","isJsonImageValue","url","URL","protocol","pathname","isJsonImageArray","formatJsonPrimitive","formatJsonValue","getJsonCellSummary","parsedValue","keys","filter","visibleValues","remainingCount","Boolean","toReadOnlyValue","type","src","alt","images","image","buildFriendlyJsonParams","id","name","FriendlyJsonDisplay","t1","ParamEditor","stopRowActivation","event","stopPropagation","JsonCell","columnLabel","T0","T1","T2","summary","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","imageFields","flatMap","_temp","t12","Popover","Root","Symbol","for","placement","offset","mainAxis","Trigger","Button","HStack","_temp2","Braces","t13","ChevronRight","t14","t15","t16","overscrollBehavior","t17","Portal","ScrollArea","t18","field_0","Image","getSortValue","isDisplayValue","sortValue","compareValues","valueA","valueB","localeCompare","toSingleLineElement","element","isValidElement","cloneElement","style","flexWrap","minWidth","whiteSpace","stopControlPropagation","SelectionHeader","table","checked","getIsAllRowsSelected","isIndeterminate","getIsSomeRowsSelected","Minus","Check","ChakraIcon","details","toggleAllRowsSelected","Checkbox","SelectionCell","row","selectedRowIds","toggleSelected","mergeRowActions","rowActions","dynamicActions","dynamicLabels","Set","action","has","RowActionsCell","actions","getActions","T3","bb0","resolvedActions","original","Menu","IconButton","ChevronDown","Positioner","Content","ListRow","destructive","icon","onSelect","FormattedCell","wrapRows","displayValue","formatDisplayValue","chakra","DataCell","renderer","resolveDataCellStyle","buildColumns","data","columnKeys","options","columnIcons","columnDescriptions","compactHeaders","enableSelection","getRowActions","columnRenderers","rowIndexColumn","columnHelper","accessor","_row","rowIndex","header","enableResizing","size","cell","info","getValue","selectionColumn","display","enableSorting","dataColumns","fallBackKey","columnValues","customIcon","headerIcon","getIcon","columnDescription","headerLabel","jsxs","Tooltip","CircleHelp","meta","getCellStyle","sortingFn","rowA","rowB","rowActionsColumn","DataTableColumnMenuRow","column","onColumnVisibilityChange","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","CSS","Transform","opacity","bg","GripVertical","Box","Icon","DataTableColumnMenu","columns","visibleColumnIds","showStats","statsAvailable","onColumnReorder","onWrapRowsChange","onStatsVisibilityChange","triggerRef","useRef","contentRef","open","setOpen","useState","query","setQuery","activationConstraint","distance","sensors","useSensors","useSensor","PointerSensor","normalizedQuery","includes","filteredColumns","active","over","handleDragEnd","closeOnOutsidePointerDown","event_0","Node","current","contains","closeOnEscape","event_1","document","addEventListener","removeEventListener","useEffect","getAnchorElement","Settings2","DataTableRowDisplaySwitch","Switch","role","SearchableMenuInput","column_1","Stack","SortableContext","verticalListSortingStrategy","DndContext","closestCenter","column_0","StatChartCrosshair","coordinate","useActiveTooltipCoordinate","plotArea","usePlotArea","y","height","x","width","DataTableStatChart","dataKey","ariaLabel","tooltipLabel","tooltipValue","tooltipSeriesLabel","layout","categoryKey","domain","barSize","barCategoryGap","series","chart","useChart","datum","getBarValue","datum_0","getCategoryValue","top","right","bottom","left","Fragment","XAxis","YAxis","Bar","payload","datum_1","Chart","zIndex","RechartsTooltip","BarChart","t19","getStatValue","getColumnStatValues","rows","columnId","countUniqueStatValues","buildTopValuesStat","limit","values","counts","Map","set","get","groups","count","percentage","sort","topGroups","otherCount","reduce","total","group","buildHistogramStat","binCount","binWidth","bins","from","_","binIndex","floor","formatNumber","Intl","NumberFormat","maximumFractionDigits","format","STAT_CHART_COLOR","SingleValueStat","Flex","UniqueStat","HistogramStat","histogram","valueCount","_temp3","TopValuesStat","_temp6","DataTableStat","stat","DataTableStatCell","headerGroup","columnStats","fullWidth","borderRight","headers","indexOf","Table","DataTableStatsRow","noBorder","some","header_0","bin","bin_0","_temp4","_temp5","utilityColumnIds","getSortMenuIcon","sortDirection","ArrowUpAZ","ArrowDownAZ","MoreVertical","DataTableColumnHeader","hasDescription","canSortColumn","getIsSorted","getCoreRowModel","SortIcon","flexRender","columnDef","getContext","tooltipContent","visibility","toggleSorting","clearSorting","getCanResize","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","className","getIsResizing","DataTableCellView","getCellContextMenuActions","columnMeta","cellStyle","cellContext","rowId","onClick","contextActions","cellElement","ResourceContextMenu","DataTableBodyRow","rowIsInteractive","rowIsActive","rowIsSelected","onRowClick","borderBottom","borderColor","getVisibleCells","buildColumnMenuColumns","DatasetPagination","pagination","pageSizeOptions","getPageCount","pageIndex","pageSize","setPageIndex","setPageSize","PaginationFooter","DatasetDataTable","hiddenColumns","isRowInteractive","activeRowId","initialPageSize","getRowId","toolbarStorageKey","enableRowActivation","sorting","setSorting","setPagination","resolveInitialPageSize","rowSelection","setRowSelection","setShowStats","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","hiddenColumnMenuIds","setHiddenColumnMenuIds","hiddenColumnsSet","baseColumnKeys","orderedBaseColumnKeys","resolveDataTableColumnOrder","shouldEnableSelection","selectionActions","resolveSelectionActions","rendererAttributes","buildDataTableRendererAttributes","rendererRows","buildDataTableRendererRows","resolvedToolbarStorageKey","resolveDataTableToolbarStorageKey","filters","useKanbanRendererStore","state","settings","viewMode","views","defaultViews","activeViewId","defaultActiveViewId","filteredData","filterDataTableRows","sourceRow","useReactTable","defaultColumn","minSize","maxSize","resolveDataTableRowId","columnResizeMode","columnResizeDirection","onSortingChange","onPaginationChange","onRowSelectionChange","getSortedRowModel","getPaginationRowModel","enableMultiRowSelection","enableRowSelection","autoResetAll","pageCount","columnSizeVars","getFlatHeaders","colSizes","i","getSize","selectedRows","getSelectedRowModel","allRows","selectedOriginalRows","getSelectedOriginalRows","columnControl","visible","next","delete","add","activeColumnId","overColumnId","reorderDataTableColumns","DataTableHeader","getTotalSize","getHeaderGroups","getRowModel","shouldHighlightActiveRow","getIsSelected","SelectionToolbar","DataTable","editMode","EditModeDataTable","cellWidths","DataTableSkeleton","columnCount","rowCount","__0","columnIndex","Skeleton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-table.js","names":["ReactNode","DataTableCategoricalColor","CategoricalColorCellProps","children","resolveCategoricalColor","value","categories","find","category","Object","is","color","CategoricalColorCell","props","DataTableThemeColor","RgbColor","r","g","b","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","split","map","character","join","parseHexColor","color","normalized","trim","startsWith","slice","expandedHex","length","test","Number","parseInt","toLinearChannel","channel","relativeLuminance","contrastRatio","foreground","background","foregroundLuminance","backgroundLuminance","lighter","Math","max","darker","min","toHexColor","toHexChannel","round","toString","padStart","mixRgbColors","start","end","endWeight","contrastRatioForHexColors","foregroundColor","backgroundColor","findMatchingForeground","target","step","candidate","resolveReadableTextColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","light","darkForeground","dark","Text","mixHexColors","DataTableColorScaleStop","DataTableThemeColor","ColorScaleCellProps","value","toDisplayPercent","Math","round","mixColors","startColor","endColor","startWeight","mixedColor","mixThemeColors","start","end","foreground","light","dark","undefined","resolveColorScaleValue","stops","Number","isFinite","length","firstStop","lastStop","range","color","endIndex","findIndex","stop","startStop","endStop","segmentProgress","ColorScaleCell","props","$","_c","t0","_c","Badge","DataTableBadgeCategory","DataTableBadgeCellProps","value","categories","DataTableBadgeCell","props","$","_c","t0","find","category","palette","t1","String","t2","_c","Text","useEffect","useState","Tooltip","relativeUnits","unit","seconds","const","parseDate","value","time","Date","parse","Number","isNaN","formatDataTableRelativeDate","now","locale","date","format","Intl","RelativeTimeFormat","numeric","elapsedSeconds","getTime","match","find","candidate","Math","abs","round","DataTableDateCellProps","DataTableDateCell","props","$","_c","setNow","_temp","t0","t1","Symbol","for","timer","setInterval","clearInterval","t2","relativeLabel","t3","toLocaleString","undefined","dateStyle","timeStyle","fullDate","t4","t5","_c","_temp","Tooltip","DiffBubble","DataTableDiffValue","DataTableDiffCell","props","$","_c","value","t0","additions","deletions","_c","chakra","Tooltip","visibleEndLength","DataTablePathCell","props","$","_c","value","t0","slice","start","t1","end","t2","t3","t4","t5","_c","Tooltip","ParamEditor","JsonField","label","value","FriendlyJsonDisplayProps","imageExtensionPattern","imageLabelPattern","humanizeKey","key","words","replace","trim","toLowerCase","toUpperCase","slice","formatPath","path","map","part","test","join","isPrimitiveArray","every","item","appendJsonFields","fields","Array","isArray","length","push","forEach","index","String","entries","Object","parseJsonCellValue","JSON","parse","buildJsonFields","field","isJsonImageValue","startsWith","url","URL","protocol","pathname","isJsonImageArray","formatJsonPrimitive","undefined","formatJsonValue","getJsonCellSummary","parsedValue","keys","filter","visibleValues","remainingCount","Boolean","toReadOnlyValue","type","const","src","alt","images","image","buildFriendlyJsonParams","id","name","FriendlyJsonDisplay","props","$","_c","t0","t1","_c","Button","HStack","Image","Popover","Portal","Text","Braces","ChevronRight","ScrollArea","buildJsonFields","FriendlyJsonDisplay","getJsonCellSummary","isJsonImageArray","isJsonImageValue","JsonCellProps","columnLabel","value","stopRowActivation","event","stopPropagation","JsonCell","props","$","_c","T0","T1","T2","summary","t0","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","fields","imageFields","flatMap","_temp","slice","t12","Root","Symbol","for","placement","offset","mainAxis","Trigger","length","map","_temp2","t13","t14","t15","t16","overscrollBehavior","t17","t18","field","label","Array","isArray","image","index","field_0","String","_c","_temp","_temp2","ScrollArea","Icon","ChakraIcon","chakra","IconButton","Menu","Portal","Text","CellContext","HeaderContext","Check","ChevronDown","CircleHelp","Minus","CSSProperties","cloneElement","isValidElement","ReactNode","Checkbox","Tooltip","ListRow","CategoricalColorCell","resolveCategoricalColor","ColorScaleCell","resolveColorScaleValue","DataTableBadgeCell","isDataTableDiffValue","DataTableColumnMeta","DataTableDateCell","formatDataTableRelativeDate","DataTableDiffCell","DataTablePathCell","formatDisplayValue","JsonCell","DataTableColumnRenderer","DataTableRowAction","RowData","toSingleLineElement","element","style","props","flexWrap","minWidth","whiteSpace","stopControlPropagation","event","stopPropagation","SelectionHeader","$","_c","table","checked","getIsAllRowsSelected","isIndeterminate","getIsSomeRowsSelected","t0","t1","t2","t3","details","toggleAllRowsSelected","t4","SelectionCell","row","column","selectedRowIds","columnDef","meta","Boolean","id","Symbol","for","toggleSelected","mergeRowActions","rowActions","dynamicActions","dynamicLabels","Set","map","action","label","filter","has","RowActionsCell","getRowActions","getActions","T0","T1","T2","T3","t5","bb0","actions","undefined","resolvedActions","original","length","Root","Positioner","Content","t6","destructive","icon","onSelect","t7","t8","t9","FormattedCellProps","value","wrapRows","FormattedCell","displayValue","DataCellProps","columnLabel","renderer","DataCell","type","includes","categories","color","stops","color_0","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","headerIcon","columnDescription","_c","ChakraIcon","Checkbox","Tooltip","RowSelectionState","ReactNode","resolveCategoricalColor","resolveColorCellStyle","resolveColorScaleValue","ColumnDataCell","ColumnHeader","RowActionsCell","RowIndexCell","SelectionCell","SelectionHeader","resolveDataTableComparableValue","DataTableColumnMeta","columnHelper","getIcon","DataTableColumnRenderer","DataTableRowAction","RowData","compareValues","valueA","valueB","undefined","String","localeCompare","BuildColumnsOptions","columnIcons","Partial","Record","columnDescriptions","compactHeaders","enableSelection","selectedRowIds","rowActions","getRowActions","row","columnRenderers","wrapRows","resolveDataCellStyle","value","renderer","type","color","stops","categories","buildColumns","data","columnKeys","options","rowIndexColumn","accessor","_row","rowIndex","header","id","enableResizing","size","cell","selectionColumn","display","meta","enableSorting","dataColumns","map","key","fallBackKey","columnValues","customIcon","headerIcon","columnDescription","headerLabel","getCellStyle","sortingFn","rowA","rowB","original","rowActionsColumn","length","Box","HStack","Icon","IconButton","Popover","Portal","Stack","Text","closestCenter","DndContext","DragEndEvent","PointerSensor","useSensor","useSensors","SortableContext","useSortable","verticalListSortingStrategy","CSS","Check","GripVertical","Settings2","useEffect","useRef","useState","SearchableMenuInput","Checkbox","ScrollArea","Switch","DataTableRowDisplaySwitch","DataTableColumnMenuColumn","id","label","DataTableColumnMenuProps","columns","visibleColumnIds","Set","wrapRows","showStats","statsAvailable","onColumnVisibilityChange","columnId","visible","onColumnReorder","activeColumnId","overColumnId","onWrapRowsChange","onStatsVisibilityChange","DataTableColumnMenuRowProps","column","checked","DataTableColumnMenuRow","props","$","_c","t0","attributes","listeners","setNodeRef","transform","transition","isDragging","t1","Transform","toString","t2","t3","opacity","style","t4","Symbol","for","bg","t5","t6","t7","t8","details","t9","t10","t11","DataTableColumnMenu","triggerRef","contentRef","open","setOpen","query","setQuery","activationConstraint","distance","sensors","normalizedQuery","trim","toLowerCase","filter","includes","filteredColumns","event","active","over","String","handleDragEnd","closeOnOutsidePointerDown","event_0","target","Node","current","contains","closeOnEscape","event_1","key","document","addEventListener","removeEventListener","placement","offset","mainAxis","getAnchorElement","_temp","role","overscrollBehavior","map","_temp2","t12","t13","column_1","has","t14","t15","t16","t17","column_0","_c","Checkbox","_temp","Switch","_temp2","ScrollArea","Icon","ChakraIcon","Flex","IconButton","Menu","Portal","Table","Text","Cell","flexRender","Header","HeaderGroup","Row","TanStackTable","ArrowDownAZ","ArrowUpAZ","MoreVertical","ResourceContextMenu","Tooltip","ListRow","DataTableColumnMeta","DataTableCellContext","DataTableProps","RowData","utilityColumnIds","Set","getSortMenuIcon","sortDirection","DataTableColumnHeaderProps","header","headerGroup","table","fullWidth","hasDescription","DataTableColumnHeader","props","$","_c","canSortColumn","t0","column","getIsSorted","t1","id","has","getCoreRowModel","rows","length","SortIcon","columnDef","getContext","tooltipContent","t2","t3","Symbol","for","borderRight","t4","t5","headers","indexOf","undefined","t6","width","t7","t8","t9","visibility","toggleSorting","clearSorting","t10","getCanResize","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","className","getIsResizing","t11","t12","t13","DataTableCellViewProps","cell","row","wrapRows","getCellContextMenuActions","DataTableCellView","columnMeta","meta","getCellStyle","getValue","cellStyle","original","cellContext","rowId","columnId","value","map","action","key","label","icon","onClick","onSelect","contextActions","cellElement","DataTableBodyRowProps","noBorder","rowIsInteractive","rowIsActive","rowIsSelected","onRowClick","DataTableBodyRow","borderBottom","borderColor","getVisibleCells","_c","ChakraIcon","Tooltip","Box","Flex","Table","getCoreRowModel","getPaginationRowModel","getSortedRowModel","PaginationState","RowSelectionState","SortingState","useReactTable","Fragment","lazy","Suspense","useEffect","useState","ScrollArea","useKanbanRendererStore","buildColumns","DataTableColumnMenu","DataTableHeader","buildDataTableRendererAttributes","buildDataTableRendererRows","filterDataTableRows","getSelectedOriginalRows","reorderDataTableColumns","resolveDataTableColumnOrder","resolveDataTableRowId","resolveDataTableToolbarStorageKey","resolveInitialPageSize","resolveSelectionActions","shouldEnableSelection","shouldHighlightActiveRow","toggleHiddenDataTableColumn","DataTableBodyRow","DataTableColumnHeader","EditModeDataTable","PaginationFooter","SelectionToolbar","DataTableProps","RowData","DataTableStatsRow","then","module","default","DatasetPaginationProps","table","ReturnType","pagination","pageSizeOptions","buildColumnMenuColumns","columnKeys","compactHeaders","Partial","Record","map","columnId","id","label","resolveColumnSizeVars","colSizes","header","getFlatHeaders","getSize","column","DatasetPagination","props","$","_c","t0","getPageCount","t1","pageIndex","t2","pageSize","t3","t4","rows","length","setPageIndex","setPageSize","DatasetDataTable","data","noBorder","fullWidth","hiddenColumns","defaultHiddenColumns","defaultShowStats","onRowClick","isRowInteractive","activeRowId","columnIcons","columnDescriptions","columnStats","columnRenderers","initialPageSize","rowActions","getRowActions","getRowId","toolbarStorageKey","enableRowActivation","getCellContextMenuActions","sorting","setSorting","setPagination","rowSelection","setRowSelection","showStats","setShowStats","wrapRows","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","Set","Object","keys","filter","key","has","hiddenColumnMenuIds","setHiddenColumnMenuIds","hiddenColumnsSet","baseColumnKeys","orderedBaseColumnKeys","visibleColumnIds","enableSelection","selectionActions","rendererAttributes","rendererRows","resolvedToolbarStorageKey","filters","state","settings","viewMode","views","defaultViews","activeViewId","defaultActiveViewId","filteredRendererRows","filteredData","row","sourceRow","columns","selectedRowIds","defaultColumn","size","minSize","maxSize","index","columnResizeMode","columnResizeDirection","onSortingChange","onPaginationChange","onRowSelectionChange","enableMultiRowSelection","enableRowSelection","autoResetAll","pageCount","current","Math","max","columnSizeVars","selectedRows","getSelectedRowModel","allRows","selectedOriginalRows","columnControl","Boolean","visible","activeColumnId","overColumnId","width","getTotalSize","getHeaderGroups","headerGroup","headers","getRowModel","rowIsInteractive","original","rowIsActive","rowId","rowIsSelected","getIsSelected","toggleAllRowsSelected","DataTable","editMode","_c","ScrollArea","Fragment","Skeleton","Table","Text","DataTableSkeletonColumn","id","label","DataTableSkeletonProps","columns","columnCount","rowCount","cellWidths","DataTableSkeleton","props","$","_c","t0","t1","undefined","t2","length","Array","from","_temp","headers","t3","map","_temp2","t4","t5","t6","__0","rowIndex","column_0","columnIndex","column","borderRight","_","index","_c","Checkbox$1","Switch$1","ScrollArea$1","ResourceContextMenu","ListRow","shouldHighlightActiveRow","reorderDataTableColumns","resolveInitialPageSize","resolveDataTableToolbarStorageKey","formatDisplayValue","getIcon","isDataTableDiffValue","resolveDataTableComparableValue","resolveSelectionActions","columnHelper","DataTableRowDisplaySwitch","getSelectedOriginalRows","resolveDataTableRowId","useKanbanRendererStore","buildDataTableRendererRows","PaginationFooter","SelectionToolbar","toggleHiddenDataTableColumn","shouldEnableSelection","EditModeDataTable","resolveDataTableColumnOrder","filterDataTableRows","buildDataTableRendererAttributes","DataTableHeader","DiffBubble","ParamEditor","Fragment$1","resolveCategoricalColor","categories","category","value","CategoricalColorCell","props","children","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","character","parseHexColor","normalized","color","expandedHex","toLinearChannel","channel","relativeLuminance","contrastRatio","foregroundLuminance","foreground","backgroundLuminance","background","lighter","darker","toHexColor","toHexChannel","mixRgbColors","start","endWeight","end","findMatchingForeground","step","candidate","target","resolveReadableTextColor","backgroundColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","darkForeground","toDisplayPercent","mixColors","mixThemeColors","resolveColorScaleValue","stops","firstStop","lastStop","endIndex","stop","startStop","endStop","ColorScaleCell","$","c","t0","Text","DataTableBadgeCell","palette","t1","t2","Badge","relativeUnits","parseDate","time","formatDataTableRelativeDate","date","format","locale","elapsedSeconds","now","match","DataTableDateCell","setNow","useState","_temp$3","timer","useEffect","relativeLabel","t3","fullDate","t4","t5","Tooltip$1","DataTableDiffCell","DataTablePathCell","chakra","imageExtensionPattern","imageLabelPattern","humanizeKey","words","key","formatPath","path","part","isPrimitiveArray","item","appendJsonFields","index","fields","entries","parseJsonCellValue","buildJsonFields","field","isJsonImageValue","url","label","isJsonImageArray","formatJsonPrimitive","formatJsonValue","getJsonCellSummary","parsedValue","visibleValues","remainingCount","toReadOnlyValue","image","buildFriendlyJsonParams","FriendlyJsonDisplay","stopRowActivation","event","JsonCell","T0","T1","T2","summary","t10","t11","t6","t7","t8","t9","columnLabel","imageFields","_temp$2","t12","Popover","Button","HStack","_temp2$2","Braces","t13","ChevronRight","t14","t15","t16","t17","Portal","t18","Image","field_0","toSingleLineElement","isValidElement","element","cloneElement","stopControlPropagation","SelectionHeader","checked","table","isIndeterminate","Minus","Check","Icon","details","SelectionCell","column","selectedRowIds","row","mergeRowActions","dynamicLabels","dynamicActions","action","rowActions","RowActionsCell","getActions","T3","resolvedActions","Menu","IconButton","ChevronDown","FormattedCell","displayValue","wrapRows","DataCell","renderer","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","columnDescription","CircleHelp","headerIcon","compareValues","valueA","valueB","resolveDataCellStyle","buildColumns","options","rowIndexColumn","rowIndex","selectionColumn","dataColumns","columnKeys","fallBackKey","columnValues","data","columnRenderers","customIcon","columnIcons","columnDescriptions","compactHeaders","rowA","rowB","rowActionsColumn","enableSelection","getRowActions","DataTableColumnMenuRow","useSortable","transform","CSS","isDragging","transition","style","GripVertical","attributes","listeners","Box","onColumnVisibilityChange","setNodeRef","DataTableColumnMenu","triggerRef","useRef","contentRef","open","setOpen","query","setQuery","sensors","useSensors","useSensor","PointerSensor","columns","normalizedQuery","filteredColumns","onColumnReorder","over","active","handleDragEnd","closeOnOutsidePointerDown","event_0","closeOnEscape","event_1","_temp$1","Settings2","onWrapRowsChange","onStatsVisibilityChange","showStats","statsAvailable","SearchableMenuInput","_temp2$1","visibleColumnIds","column_1","Stack","SortableContext","verticalListSortingStrategy","DndContext","closestCenter","current","column_0","utilityColumnIds","getSortMenuIcon","sortDirection","ArrowUpAZ","ArrowDownAZ","MoreVertical","DataTableColumnHeader","canSortColumn","header","SortIcon","flexRender","tooltipContent","fullWidth","headerGroup","Flex","hasDescription","Table","DataTableCellView","columnMeta","cell","cellStyle","getCellContextMenuActions","cellContext","contextActions","cellElement","DataTableBodyRow","rowIsActive","rowIsSelected","rowIsInteractive","onRowClick","noBorder","DataTableStatsRow","lazy","module","buildColumnMenuColumns","columnId","resolveColumnSizeVars","colSizes","DatasetPagination","pagination","pageSizeOptions","DatasetDataTable","sorting","setSorting","setPagination","rowSelection","setRowSelection","setShowStats","defaultShowStats","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","hiddenColumns","hiddenColumnMenuIds","setHiddenColumnMenuIds","defaultHiddenColumns","hiddenColumnsSet","baseColumnKeys","key_0","orderedBaseColumnKeys","key_1","key_2","selectionActions","rendererAttributes","rendererRows","getRowId","resolvedToolbarStorageKey","filters","state","filteredData","useReactTable","row_0","getSortedRowModel","getCoreRowModel","getPaginationRowModel","pageCount","columnSizeVars","selectedRows","allRows","selectedOriginalRows","columnControl","columnStats","current_0","visible","current_1","activeColumnId","overColumnId","Suspense","isRowInteractive","row_1","DataTable","cellWidths","DataTableSkeleton","columnCount","rowCount","_temp","headers","_temp2","Skeleton","columnIndex"],"sources":["../src/components/data-table/categorical-color-cell.tsx","../src/components/data-table/color-cell-style.ts","../src/components/data-table/color-scale-cell.tsx","../src/components/data-table/data-table-badge-cell.tsx","../src/components/data-table/data-table-date-cell.tsx","../src/components/data-table/data-table-diff-cell.tsx","../src/components/data-table/data-table-path-cell.tsx","../src/components/data-table/friendly-json-display.tsx","../src/components/data-table/json-cell.tsx","../src/components/data-table/data-table-cell-renderers.tsx","../src/components/data-table/build-columns.tsx","../src/components/data-table/data-table-column-menu.tsx","../src/components/data-table/data-table-table-parts.tsx","../src/components/data-table/data-table.tsx","../src/components/data-table/data-table-skeleton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { DataTableCategoricalColor } from \"./types\";\n\ninterface CategoricalColorCellProps {\n children: ReactNode;\n}\n\nexport const resolveCategoricalColor = (value: unknown, categories: DataTableCategoricalColor[]) => {\n return categories.find((category) => Object.is(category.value, value))?.color ?? null;\n};\n\nexport const CategoricalColorCell = (props: CategoricalColorCellProps) => {\n const { children } = props;\n\n return children;\n};\n","import type { DataTableThemeColor } from \"./types\";\n\ninterface RgbColor {\n r: number;\n g: number;\n b: number;\n}\n\nconst darkTextColor = \"#111827\";\nconst lightTextColor = \"#ffffff\";\nconst darkColorTarget = \"#000000\";\nconst readableContrastRatio = 4.5;\n\nconst expandShortHex = (hex: string) =>\n hex\n .split(\"\")\n .map((character) => character + character)\n .join(\"\");\n\nexport const parseHexColor = (color: string) => {\n const normalized = color.trim();\n const hex = normalized.startsWith(\"#\") ? normalized.slice(1) : normalized;\n const expandedHex = hex.length === 3 ? expandShortHex(hex) : hex;\n if (!/^[\\da-f]{6}$/i.test(expandedHex)) return null;\n\n return {\n r: Number.parseInt(expandedHex.slice(0, 2), 16),\n g: Number.parseInt(expandedHex.slice(2, 4), 16),\n b: Number.parseInt(expandedHex.slice(4, 6), 16),\n };\n};\n\nconst toLinearChannel = (channel: number) => {\n const normalized = channel / 255;\n return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;\n};\n\nconst relativeLuminance = (color: RgbColor) =>\n 0.2126 * toLinearChannel(color.r) + 0.7152 * toLinearChannel(color.g) + 0.0722 * toLinearChannel(color.b);\n\nconst contrastRatio = (foreground: RgbColor, background: RgbColor) => {\n const foregroundLuminance = relativeLuminance(foreground);\n const backgroundLuminance = relativeLuminance(background);\n const lighter = Math.max(foregroundLuminance, backgroundLuminance);\n const darker = Math.min(foregroundLuminance, backgroundLuminance);\n return (lighter + 0.05) / (darker + 0.05);\n};\n\nconst toHexColor = (color: RgbColor) => {\n const toHexChannel = (channel: number) => Math.round(channel).toString(16).padStart(2, \"0\");\n return `#${toHexChannel(color.r)}${toHexChannel(color.g)}${toHexChannel(color.b)}`;\n};\n\nconst mixRgbColors = (start: RgbColor, end: RgbColor, endWeight: number) => ({\n r: start.r * (1 - endWeight) + end.r * endWeight,\n g: start.g * (1 - endWeight) + end.g * endWeight,\n b: start.b * (1 - endWeight) + end.b * endWeight,\n});\n\nexport const contrastRatioForHexColors = (foregroundColor: string, backgroundColor: string) => {\n const foreground = parseHexColor(foregroundColor);\n const background = parseHexColor(backgroundColor);\n if (!foreground || !background) return 0;\n return contrastRatio(foreground, background);\n};\n\nconst findMatchingForeground = (background: RgbColor, target: RgbColor) => {\n for (let step = 1; step <= 50; step += 1) {\n const candidate = mixRgbColors(background, target, step / 50);\n if (contrastRatio(candidate, background) >= readableContrastRatio) {\n return { color: toHexColor(candidate), step };\n }\n }\n\n return { color: toHexColor(target), step: 50 };\n};\n\nexport const resolveReadableTextColor = (backgroundColor: string) => {\n const background = parseHexColor(backgroundColor);\n if (!background) return darkTextColor;\n\n const darkText = parseHexColor(darkColorTarget)!;\n const lightText = parseHexColor(lightTextColor)!;\n const darkerMatch = findMatchingForeground(background, darkText);\n const lighterMatch = findMatchingForeground(background, lightText);\n\n return darkerMatch.step <= lighterMatch.step ? darkerMatch.color : lighterMatch.color;\n};\n\nexport const mixHexColors = (startColor: string, endColor: string, startWeight: number) => {\n const start = parseHexColor(startColor);\n const end = parseHexColor(endColor);\n if (!start || !end) return null;\n\n return toHexColor(mixRgbColors(start, end, 1 - startWeight));\n};\n\nexport const resolveColorCellStyle = (color: DataTableThemeColor) => {\n const lightForeground = color.foreground?.light ?? resolveReadableTextColor(color.light);\n const darkForeground = color.foreground?.dark ?? resolveReadableTextColor(color.dark);\n\n return {\n backgroundColor: `light-dark(${color.light}, ${color.dark})`,\n color: `light-dark(${lightForeground}, ${darkForeground})`,\n };\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { mixHexColors } from \"./color-cell-style\";\nimport type { DataTableColorScaleStop, DataTableThemeColor } from \"./types\";\n\ninterface ColorScaleCellProps {\n value: number;\n}\n\nconst toDisplayPercent = (value: number) => Math.round(value * 100) / 100;\n\nconst mixColors = (startColor: string, endColor: string, startWeight: number) => {\n const mixedColor = mixHexColors(startColor, endColor, startWeight);\n if (mixedColor) return mixedColor;\n\n return `color-mix(in srgb, ${startColor} ${toDisplayPercent(startWeight * 100)}%, ${endColor})`;\n};\n\nconst mixThemeColors = (start: DataTableThemeColor, end: DataTableThemeColor, startWeight: number) => {\n const foreground =\n start.foreground && end.foreground\n ? {\n light: mixColors(start.foreground.light, end.foreground.light, startWeight),\n dark: mixColors(start.foreground.dark, end.foreground.dark, startWeight),\n }\n : undefined;\n\n return {\n light: mixColors(start.light, end.light, startWeight),\n dark: mixColors(start.dark, end.dark, startWeight),\n ...(foreground ? { foreground } : {}),\n };\n};\n\nexport const resolveColorScaleValue = (value: unknown, stops: DataTableColorScaleStop[]) => {\n if (typeof value !== \"number\" || !Number.isFinite(value) || stops.length < 2) return null;\n\n const firstStop = stops[0]!;\n const lastStop = stops[stops.length - 1]!;\n const range = lastStop.value - firstStop.value;\n if (range <= 0) return null;\n\n if (value <= firstStop.value) return firstStop.color;\n if (value >= lastStop.value) return lastStop.color;\n\n const endIndex = stops.findIndex((stop) => value <= stop.value);\n const startStop = stops[endIndex - 1]!;\n const endStop = stops[endIndex]!;\n const segmentProgress = (value - startStop.value) / (endStop.value - startStop.value);\n const startWeight = 1 - segmentProgress;\n return mixThemeColors(startStop.color, endStop.color, startWeight);\n};\n\nexport const ColorScaleCell = (props: ColorScaleCellProps) => {\n const { value } = props;\n\n return (\n <Text textStyle=\"paragraph/S/medium\" fontVariantNumeric=\"tabular-nums\" truncate>\n {value}\n </Text>\n );\n};\n","import { Badge } from \"@chakra-ui/react\";\nimport type { DataTableBadgeCategory } from \"./types\";\n\ninterface DataTableBadgeCellProps {\n value: string | number | boolean;\n categories?: DataTableBadgeCategory[];\n}\n\nexport const DataTableBadgeCell = (props: DataTableBadgeCellProps) => {\n const { value, categories } = props;\n const palette = categories?.find((category) => category.value === value)?.palette ?? \"gray\";\n\n return (\n <Badge variant=\"subtle\" size=\"sm\" colorPalette={palette} maxW=\"full\" truncate>\n {String(value)}\n </Badge>\n );\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\nconst relativeUnits = [\n { unit: \"year\", seconds: 365 * 24 * 60 * 60 },\n { unit: \"month\", seconds: 30 * 24 * 60 * 60 },\n { unit: \"day\", seconds: 24 * 60 * 60 },\n { unit: \"hour\", seconds: 60 * 60 },\n { unit: \"minute\", seconds: 60 },\n] as const;\n\nconst parseDate = (value: unknown) => {\n if (typeof value !== \"string\") return null;\n const time = Date.parse(value);\n return Number.isNaN(time) ? null : new Date(time);\n};\n\nexport const formatDataTableRelativeDate = (value: unknown, now = new Date(), locale?: string) => {\n const date = parseDate(value);\n if (!date) return null;\n const format = new Intl.RelativeTimeFormat(locale, { numeric: \"auto\" });\n const elapsedSeconds = (date.getTime() - now.getTime()) / 1000;\n const match = relativeUnits.find((candidate) => Math.abs(elapsedSeconds) >= candidate.seconds);\n if (!match) return format.format(0, \"second\");\n return format.format(Math.round(elapsedSeconds / match.seconds), match.unit);\n};\n\ninterface DataTableDateCellProps {\n value: string;\n}\n\nexport const DataTableDateCell = (props: DataTableDateCellProps) => {\n const { value } = props;\n const [now, setNow] = useState(() => new Date());\n useEffect(() => {\n const timer = setInterval(() => setNow(new Date()), 60_000);\n return () => clearInterval(timer);\n }, []);\n const relativeLabel = formatDataTableRelativeDate(value, now);\n const fullDate = new Date(value).toLocaleString(undefined, { dateStyle: \"medium\", timeStyle: \"short\" });\n\n return (\n <Tooltip content={fullDate} openDelay={300}>\n <Text as=\"span\" tabIndex={0} textStyle=\"paragraph/S/regular\" color=\"fg.muted\" whiteSpace=\"nowrap\">\n {relativeLabel}\n </Text>\n </Tooltip>\n );\n};\n","import { DiffBubble } from \"../diff-viewer/diff-bubble\";\nimport type { DataTableDiffValue } from \"./types\";\n\nexport const DataTableDiffCell = (props: { value: DataTableDiffValue }) => {\n const { value } = props;\n return <DiffBubble additions={value.additions} deletions={value.deletions} variant=\"ghost\" size=\"small\" />;\n};\n","import { chakra } from \"@chakra-ui/react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\n// Long paths keep their start and final characters, so the folder name stays readable (design/DESIGN.md).\nconst visibleEndLength = 5;\n\nexport const DataTablePathCell = (props: { value: string }) => {\n const { value } = props;\n const start = value.slice(0, -visibleEndLength);\n const end = value.slice(-visibleEndLength);\n\n return (\n <Tooltip content={value} openDelay={300}>\n <chakra.span\n display=\"inline-flex\"\n minW=\"0\"\n maxW=\"full\"\n tabIndex={0}\n textStyle=\"paragraph/S/regular\"\n whiteSpace=\"nowrap\"\n >\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\">\n {start}\n </chakra.span>\n <chakra.span flexShrink={0}>{end}</chakra.span>\n </chakra.span>\n </Tooltip>\n );\n};\n","import { ParamEditor } from \"@/components/param-editor\";\n\ninterface JsonField {\n label: string;\n value: unknown;\n}\n\nexport interface FriendlyJsonDisplayProps {\n value: unknown;\n}\n\nconst imageExtensionPattern = /\\.(avif|bmp|gif|jpe?g|png|svg|webp)$/i;\nconst imageLabelPattern = /(^|\\s)(avatar|image|logo|photo|picture|thumbnail)(\\s|$)/i;\n\nconst humanizeKey = (key: string) => {\n const words = key\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]+/g, \" \")\n .trim()\n .toLowerCase();\n\n return words ? `${words[0]?.toUpperCase()}${words.slice(1)}` : \"Details\";\n};\n\nconst formatPath = (path: string[]) => path.map((part) => (/^\\d+$/.test(part) ? part : humanizeKey(part))).join(\" / \");\n\nconst isPrimitiveArray = (value: unknown[]) => value.every((item) => item === null || typeof item !== \"object\");\n\nconst appendJsonFields = (value: unknown, path: string[], fields: JsonField[]) => {\n if (Array.isArray(value)) {\n if (value.length === 0 || isPrimitiveArray(value)) {\n fields.push({ label: formatPath(path), value });\n return;\n }\n\n value.forEach((item, index) => {\n appendJsonFields(item, [...path, String(index + 1)], fields);\n });\n return;\n }\n\n if (value !== null && typeof value === \"object\") {\n const entries = Object.entries(value);\n if (entries.length === 0) {\n fields.push({ label: formatPath(path), value: null });\n return;\n }\n\n entries.forEach(([key, item]) => {\n appendJsonFields(item, [...path, key], fields);\n });\n return;\n }\n\n fields.push({ label: formatPath(path), value });\n};\n\nexport const parseJsonCellValue = (value: unknown) => {\n if (typeof value !== \"string\") return value;\n\n try {\n return JSON.parse(value) as unknown;\n } catch {\n return value;\n }\n};\n\nexport const buildJsonFields = (value: unknown) => {\n const fields: JsonField[] = [];\n appendJsonFields(parseJsonCellValue(value), [], fields);\n return fields.map((field) => ({ ...field, label: field.label || \"Value\" }));\n};\n\nexport const isJsonImageValue = (value: unknown, label: string) => {\n if (typeof value !== \"string\") return false;\n if (value.startsWith(\"data:image/\")) return true;\n\n try {\n const url = new URL(value);\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") return false;\n return imageExtensionPattern.test(url.pathname) || imageLabelPattern.test(label);\n } catch {\n return false;\n }\n};\n\nexport const isJsonImageArray = (value: unknown, label: string) => {\n return Array.isArray(value) && value.length > 0 && value.every((item) => isJsonImageValue(item, label));\n};\n\nconst formatJsonPrimitive = (value: unknown) => {\n if (value === null || value === undefined || value === \"\") return \"Not provided\";\n if (typeof value === \"boolean\") return value ? \"Yes\" : \"No\";\n return String(value);\n};\n\nconst formatJsonValue = (value: unknown) => {\n if (Array.isArray(value)) return value.length === 0 ? \"None\" : value.map(formatJsonPrimitive).join(\", \");\n return formatJsonPrimitive(value);\n};\n\nexport const getJsonCellSummary = (value: unknown) => {\n const parsedValue = parseJsonCellValue(value);\n if (Array.isArray(parsedValue) && parsedValue.length === 0) return \"No details\";\n if (parsedValue !== null && typeof parsedValue === \"object\" && Object.keys(parsedValue).length === 0) {\n return \"No details\";\n }\n\n const fields = buildJsonFields(value).filter(\n (field) => !isJsonImageValue(field.value, field.label) && !isJsonImageArray(field.value, field.label),\n );\n if (fields.length === 0) return \"No details\";\n\n const visibleValues = fields.slice(0, 2).map((field) => formatJsonValue(field.value));\n const remainingCount = fields.length - visibleValues.length;\n return [...visibleValues, remainingCount > 0 ? `${remainingCount} more` : null].filter(Boolean).join(\" · \");\n};\n\nconst toReadOnlyValue = (field: JsonField) => {\n const { label, value } = field;\n if (isJsonImageValue(value, label)) {\n return { type: \"image\" as const, src: String(value), alt: `${label} preview` };\n }\n if (Array.isArray(value) && isJsonImageArray(value, label)) {\n return {\n type: \"image-gallery\" as const,\n images: value.map((image, index) => ({ src: String(image), alt: `${label} ${index + 1} preview` })),\n };\n }\n if (Array.isArray(value)) return value as Array<string | number | boolean | null>;\n if (value === undefined) return null;\n return value as string | number | boolean | null;\n};\n\nexport const buildFriendlyJsonParams = (value: unknown) =>\n buildJsonFields(value).map((field, index) => ({\n id: `friendly-json-${index}`,\n name: field.label,\n type: \"readOnly\" as const,\n value: toReadOnlyValue(field),\n }));\n\nexport const FriendlyJsonDisplay = (props: FriendlyJsonDisplayProps) => {\n const { value } = props;\n return <ParamEditor params={buildFriendlyJsonParams(value)} readOnly fullWidth />;\n};\n","import { Button, HStack, Image, Popover, Portal, Text } from \"@chakra-ui/react\";\nimport { Braces, ChevronRight } from \"lucide-react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport {\n buildJsonFields,\n FriendlyJsonDisplay,\n getJsonCellSummary,\n isJsonImageArray,\n isJsonImageValue,\n} from \"./friendly-json-display\";\n\ninterface JsonCellProps {\n columnLabel: string;\n value: unknown;\n}\n\nconst stopRowActivation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\nexport const JsonCell = (props: JsonCellProps) => {\n const { columnLabel, value } = props;\n const fields = buildJsonFields(value);\n const imageFields = fields\n .flatMap((field) => {\n if (isJsonImageValue(field.value, field.label)) return [field];\n if (!Array.isArray(field.value) || !isJsonImageArray(field.value, field.label)) return [];\n return field.value.map((image, index) => ({ label: `${field.label} ${index + 1}`, value: image }));\n })\n .slice(0, 2);\n const summary = getJsonCellSummary(value);\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-start\", offset: { mainAxis: 6 } }}>\n <Popover.Trigger asChild>\n <Button\n aria-label={`View ${columnLabel} details`}\n variant=\"ghost\"\n size=\"xs\"\n width=\"full\"\n minWidth=\"0\"\n height=\"28px\"\n paddingX=\"2xs\"\n justifyContent=\"flex-start\"\n onClick={stopRowActivation}\n >\n {imageFields.length > 0 ? (\n <HStack gap=\"-1\" flexShrink=\"0\">\n {imageFields.map((field) => (\n <Image\n key={field.label}\n src={String(field.value)}\n alt={`${field.label} preview`}\n boxSize=\"22px\"\n borderRadius=\"xs\"\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n objectFit=\"cover\"\n />\n ))}\n </HStack>\n ) : (\n <Braces size={14} />\n )}\n <Text flex=\"1\" minWidth=\"0\" textAlign=\"left\" textStyle=\"paragraph/S/regular\" truncate>\n {summary}\n </Text>\n <ChevronRight size={12} />\n </Button>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"min(380px, calc(100vw - 32px))\" padding=\"0\" background=\"bg\" overflow=\"hidden\">\n <ScrollArea maxH=\"360px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <FriendlyJsonDisplay value={value} />\n </ScrollArea>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, chakra, IconButton, Menu, Portal, Text } from \"@chakra-ui/react\";\nimport type { CellContext, HeaderContext } from \"@tanstack/react-table\";\nimport { Check, ChevronDown, CircleHelp, Minus } from \"lucide-react\";\nimport { type CSSProperties, cloneElement, isValidElement, type ReactNode } from \"react\";\n\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport { CategoricalColorCell, resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { ColorScaleCell, resolveColorScaleValue } from \"./color-scale-cell\";\nimport { DataTableBadgeCell } from \"./data-table-badge-cell\";\nimport { isDataTableDiffValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { DataTableDateCell, formatDataTableRelativeDate } from \"./data-table-date-cell\";\nimport { DataTableDiffCell } from \"./data-table-diff-cell\";\nimport { DataTablePathCell } from \"./data-table-path-cell\";\nimport { formatDisplayValue } from \"./helpers\";\nimport { JsonCell } from \"./json-cell\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst toSingleLineElement = (element: ReactNode) => {\n if (!isValidElement<{ style?: CSSProperties }>(element)) return element;\n\n return cloneElement(element, {\n style: {\n ...element.props.style,\n flexWrap: \"nowrap\",\n minWidth: 0,\n whiteSpace: \"nowrap\",\n },\n });\n};\n\nconst stopControlPropagation = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n};\n\nexport const SelectionHeader = (props: HeaderContext<RowData, unknown>) => {\n const { table } = props;\n const checked = table.getIsAllRowsSelected();\n const isIndeterminate = !checked && table.getIsSomeRowsSelected();\n\n return (\n <Checkbox\n checked={checked ? true : isIndeterminate ? \"indeterminate\" : false}\n aria-label=\"Select all\"\n icon={<ChakraIcon as={isIndeterminate ? Minus : Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => table.toggleAllRowsSelected(details.checked === true)}\n />\n );\n};\n\nexport const SelectionCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { selectedRowIds } = column.columnDef.meta as DataTableColumnMeta;\n\n return (\n <Checkbox\n checked={Boolean(selectedRowIds?.[row.id])}\n aria-label=\"Select row\"\n icon={<ChakraIcon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => row.toggleSelected(details.checked === true)}\n />\n );\n};\n\nconst mergeRowActions = (rowActions: DataTableRowAction[], dynamicActions: DataTableRowAction[]) => {\n const dynamicLabels = new Set(dynamicActions.map((action) => action.label));\n return [...dynamicActions, ...rowActions.filter((action) => !dynamicLabels.has(action.label))];\n};\n\nexport const RowActionsCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { rowActions: actions = [], getRowActions: getActions } = column.columnDef.meta as DataTableColumnMeta;\n const resolvedActions = mergeRowActions(actions, getActions?.(row.original) ?? []);\n\n if (resolvedActions.length === 0) return null;\n\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton aria-label=\"Row actions\" size=\"2xs\" variant=\"ghost\" onClick={stopControlPropagation}>\n <ChakraIcon as={ChevronDown} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n {resolvedActions.map((action) => (\n <Menu.Item key={action.label} value={action.label} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n tone={action.destructive ? \"danger\" : \"default\"}\n label={action.label}\n icon={action.icon}\n onClick={stopControlPropagation}\n onActivate={() => action.onSelect(row.original)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\n\ninterface FormattedCellProps {\n value: unknown;\n wrapRows: boolean;\n}\n\nconst FormattedCell = (props: FormattedCellProps) => {\n const { value, wrapRows } = props;\n const displayValue = formatDisplayValue(value);\n\n if (isValidElement(displayValue)) {\n return (\n <chakra.span\n display=\"inline-flex\"\n maxWidth=\"full\"\n minW=\"0\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n {wrapRows ? displayValue : toSingleLineElement(displayValue)}\n </chakra.span>\n );\n }\n\n return (\n <Text\n maxWidth=\"full\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n textStyle=\"paragraph/S/regular\"\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n {displayValue}\n </Text>\n );\n};\n\ninterface DataCellProps {\n columnLabel: string;\n renderer?: DataTableColumnRenderer;\n value: unknown;\n wrapRows: boolean;\n}\n\nconst DataCell = (props: DataCellProps) => {\n const { columnLabel, renderer, value, wrapRows } = props;\n\n if (renderer?.type === \"json\") return <JsonCell columnLabel={columnLabel} value={value} />;\n\n if (renderer?.type === \"badge\" && [\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n return <DataTableBadgeCell value={value as string | number | boolean} categories={renderer.categories} />;\n }\n\n if (renderer?.type === \"diff\" && isDataTableDiffValue(value)) return <DataTableDiffCell value={value} />;\n\n if (renderer?.type === \"path\" && typeof value === \"string\" && !wrapRows) return <DataTablePathCell value={value} />;\n\n if (renderer?.type === \"date\") {\n if (formatDataTableRelativeDate(value)) return <DataTableDateCell value={value as string} />;\n }\n\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return <ColorScaleCell value={value} />;\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) {\n return (\n <CategoricalColorCell>\n <FormattedCell value={value} wrapRows={wrapRows} />\n </CategoricalColorCell>\n );\n }\n }\n\n return <FormattedCell value={value} wrapRows={wrapRows} />;\n};\n\nexport const RowIndexCell = (props: CellContext<RowData, number>) => {\n const { getValue } = props;\n return (\n <chakra.span display=\"block\" textStyle=\"paragraph/S/regular\" textAlign=\"center\">\n {getValue()}\n </chakra.span>\n );\n};\n\nexport const ColumnDataCell = (props: CellContext<RowData, unknown>) => {\n const { column, getValue } = props;\n const { renderer, wrapRows = false } = column.columnDef.meta as DataTableColumnMeta;\n return <DataCell columnLabel={column.id} renderer={renderer} value={getValue()} wrapRows={wrapRows} />;\n};\n\nexport const ColumnHeader = (props: HeaderContext<RowData, unknown>) => {\n const { column } = props;\n const { headerLabel, headerIcon, columnDescription } = column.columnDef.meta as DataTableColumnMeta;\n return (\n <chakra.span display=\"inline-flex\" alignItems=\"center\" gap=\"4px\" minW=\"0\" maxW=\"full\" overflow=\"hidden\">\n {headerIcon}\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\">\n {headerLabel}\n </chakra.span>\n {columnDescription ? (\n <Tooltip content={columnDescription}>\n <ChakraIcon\n as={CircleHelp}\n aria-label={`About ${headerLabel}`}\n boxSize=\"12px\"\n color=\"fg.muted\"\n cursor=\"help\"\n flexShrink={0}\n opacity={0.6}\n tabIndex={0}\n />\n </Tooltip>\n ) : null}\n </chakra.span>\n );\n};\n","import type { RowSelectionState } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\nimport { resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { resolveColorCellStyle } from \"./color-cell-style\";\nimport { resolveColorScaleValue } from \"./color-scale-cell\";\nimport {\n ColumnDataCell,\n ColumnHeader,\n RowActionsCell,\n RowIndexCell,\n SelectionCell,\n SelectionHeader,\n} from \"./data-table-cell-renderers\";\nimport { resolveDataTableComparableValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { columnHelper, getIcon } from \"./helpers\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst compareValues = (valueA: unknown, valueB: unknown) => {\n if (valueA === valueB) return 0;\n if (valueA === null || valueA === undefined) return 1;\n if (valueB === null || valueB === undefined) return -1;\n\n if (typeof valueA === \"number\" && typeof valueB === \"number\") {\n return valueA - valueB;\n }\n\n return String(valueA).localeCompare(String(valueB));\n};\n\ninterface BuildColumnsOptions {\n columnIcons?: Partial<Record<string, ReactNode>>;\n columnDescriptions?: Partial<Record<string, string>>;\n compactHeaders?: Partial<Record<string, string>>;\n enableSelection?: boolean;\n selectedRowIds?: RowSelectionState;\n rowActions?: DataTableRowAction[];\n getRowActions?: (row: RowData) => DataTableRowAction[];\n columnRenderers?: Partial<Record<string, DataTableColumnRenderer>>;\n wrapRows?: boolean;\n}\n\nconst resolveDataCellStyle = (value: unknown, renderer?: DataTableColumnRenderer) => {\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return resolveColorCellStyle(color);\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) return resolveColorCellStyle(color);\n }\n};\n\nexport function buildColumns(data: RowData[], columnKeys: string[], options: BuildColumnsOptions = {}) {\n const {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection = false,\n selectedRowIds,\n rowActions = [],\n getRowActions,\n columnRenderers,\n wrapRows = false,\n } = options;\n const rowIndexColumn = columnHelper.accessor((_row, rowIndex) => rowIndex + 1, {\n header: \"\",\n id: \"rowIndex\",\n enableResizing: false,\n size: 20,\n cell: RowIndexCell,\n });\n\n const selectionColumn = columnHelper.display({\n id: \"rowSelection\",\n header: SelectionHeader,\n cell: SelectionCell,\n meta: { selectedRowIds } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n const dataColumns = columnKeys.map((key) => {\n const fallBackKey = key || \"-\";\n const columnValues = data.map((row) => row[fallBackKey]);\n const renderer = columnRenderers?.[fallBackKey];\n const customIcon = columnIcons?.[fallBackKey];\n const headerIcon = customIcon === undefined ? getIcon(columnValues) : customIcon;\n const columnDescription = columnDescriptions?.[fallBackKey];\n\n return columnHelper.accessor((row) => row[fallBackKey], {\n id: fallBackKey,\n header: ColumnHeader,\n cell: ColumnDataCell,\n meta: {\n headerLabel: compactHeaders?.[fallBackKey] ?? fallBackKey,\n headerIcon,\n columnDescription,\n renderer,\n wrapRows,\n getCellStyle: (value: unknown) => resolveDataCellStyle(value, renderer),\n } satisfies DataTableColumnMeta,\n sortingFn: (rowA, rowB) => {\n const valueA = resolveDataTableComparableValue(rowA.original[fallBackKey], renderer);\n const valueB = resolveDataTableComparableValue(rowB.original[fallBackKey], renderer);\n return compareValues(valueA, valueB);\n },\n });\n });\n\n const rowActionsColumn = columnHelper.display({\n id: \"rowActions\",\n header: \"\",\n cell: RowActionsCell,\n meta: { rowActions, getRowActions } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n return [\n rowIndexColumn,\n ...(enableSelection ? [selectionColumn] : []),\n ...dataColumns,\n ...(rowActions.length > 0 || getRowActions ? [rowActionsColumn] : []),\n ];\n}\n","import { Box, HStack, Icon, IconButton, Popover, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { closestCenter, DndContext, type DragEndEvent, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { SortableContext, useSortable, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Check, GripVertical, Settings2 } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { SearchableMenuInput } from \"@/components/overlays/searchable-menu-input\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { Switch } from \"@/components/primitives/switch\";\nimport { DataTableRowDisplaySwitch } from \"./data-table-row-display\";\n\ninterface DataTableColumnMenuColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableColumnMenuProps {\n columns: DataTableColumnMenuColumn[];\n visibleColumnIds: Set<string>;\n wrapRows: boolean;\n showStats: boolean;\n statsAvailable: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n onColumnReorder: (activeColumnId: string, overColumnId: string) => void;\n onWrapRowsChange: (wrapRows: boolean) => void;\n onStatsVisibilityChange: (showStats: boolean) => void;\n}\n\ninterface DataTableColumnMenuRowProps {\n column: DataTableColumnMenuColumn;\n checked: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n}\n\nconst DataTableColumnMenuRow = (props: DataTableColumnMenuRowProps) => {\n const { column, checked, onColumnVisibilityChange } = props;\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: column.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n opacity: isDragging ? 0.5 : 1,\n };\n\n return (\n <HStack\n ref={setNodeRef}\n style={style}\n gap=\"2xs\"\n minW=\"0\"\n width=\"full\"\n borderRadius=\"xs\"\n px=\"xs\"\n py=\"2xs\"\n _hover={{ bg: \"bg.hover\" }}\n >\n <Box as=\"span\" display=\"inline-flex\" cursor=\"grab\" color=\"fg.muted\" {...attributes} {...listeners}>\n <GripVertical size={14} />\n </Box>\n <Checkbox\n checked={checked}\n flex=\"1\"\n minW=\"0\"\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n size=\"sm\"\n icon={<Icon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onCheckedChange={(details) => onColumnVisibilityChange(column.id, details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\" truncate>\n {column.label}\n </Text>\n </Checkbox>\n </HStack>\n );\n};\n\nexport const DataTableColumnMenu = (props: DataTableColumnMenuProps) => {\n const {\n columns,\n visibleColumnIds,\n wrapRows,\n showStats,\n statsAvailable,\n onColumnVisibilityChange,\n onColumnReorder,\n onWrapRowsChange,\n onStatsVisibilityChange,\n } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));\n const normalizedQuery = query.trim().toLowerCase();\n const filteredColumns = normalizedQuery\n ? columns.filter((column) => column.label.toLowerCase().includes(normalizedQuery))\n : columns;\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n\n onColumnReorder(String(active.id), String(over.id));\n };\n\n useEffect(() => {\n if (!open) return;\n\n const closeOnOutsidePointerDown = (event: PointerEvent) => {\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (contentRef.current?.contains(target) || triggerRef.current?.contains(target)) return;\n\n setOpen(false);\n };\n const closeOnEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.addEventListener(\"keydown\", closeOnEscape, true);\n return () => {\n document.removeEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"keydown\", closeOnEscape, true);\n };\n }, [open]);\n\n return (\n <Popover.Root\n open={open}\n closeOnInteractOutside={false}\n positioning={{\n placement: \"bottom-end\",\n offset: { mainAxis: 8 },\n getAnchorElement: () => triggerRef.current,\n }}\n >\n <Popover.Trigger asChild>\n <IconButton\n ref={triggerRef}\n aria-label=\"Display settings\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setOpen((current) => !current)}\n >\n <Icon as={Settings2} boxSize=\"14px\" />\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content ref={contentRef} width=\"min(320px, calc(100vw - 32px))\" p=\"0\" bg=\"bg\" overflow=\"hidden\">\n <Stack gap=\"0\">\n <DataTableRowDisplaySwitch showDivider wrapRows={wrapRows} onWrapRowsChange={onWrapRowsChange} />\n {statsAvailable ? (\n <Box borderBottomWidth=\"1px\" borderColor=\"border.subtle\" padding=\"xs\">\n <Switch\n checked={showStats}\n inputProps={{ role: \"switch\" }}\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n onCheckedChange={(details) => onStatsVisibilityChange(details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\">\n Statistics\n </Text>\n </Switch>\n </Box>\n ) : null}\n <SearchableMenuInput value={query} placeholder=\"Search columns\" onValueChange={setQuery} />\n <ScrollArea maxH=\"280px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <Box padding=\"2xs\">\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <SortableContext items={columns.map((column) => column.id)} strategy={verticalListSortingStrategy}>\n <Stack gap=\"1px\">\n {filteredColumns.map((column) => (\n <DataTableColumnMenuRow\n key={column.id}\n column={column}\n checked={visibleColumnIds.has(column.id)}\n onColumnVisibilityChange={onColumnVisibilityChange}\n />\n ))}\n </Stack>\n </SortableContext>\n </DndContext>\n </Box>\n </ScrollArea>\n </Stack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Table, Text } from \"@chakra-ui/react\";\nimport {\n type Cell,\n flexRender,\n type Header,\n type HeaderGroup,\n type Row,\n type Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport { ArrowDownAZ, ArrowUpAZ, MoreVertical } from \"lucide-react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport type { DataTableCellContext, DataTableProps, RowData } from \"./types\";\n\nconst utilityColumnIds = new Set([\"rowIndex\", \"rowSelection\", \"rowActions\"]);\n\nconst getSortMenuIcon = (sortDirection: false | \"asc\" | \"desc\") => {\n if (sortDirection === \"asc\") return ArrowUpAZ;\n if (sortDirection === \"desc\") return ArrowDownAZ;\n return MoreVertical;\n};\n\ninterface DataTableColumnHeaderProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n table: TanStackTable<RowData>;\n fullWidth?: boolean;\n hasDescription?: boolean;\n}\n\nexport const DataTableColumnHeader = (props: DataTableColumnHeaderProps) => {\n const { header, headerGroup, table, fullWidth, hasDescription } = props;\n const sortDirection = header.column.getIsSorted();\n const canSortColumn = !utilityColumnIds.has(header.column.id) && table.getCoreRowModel().rows.length > 1;\n const SortIcon = getSortMenuIcon(sortDirection);\n const tooltipContent =\n header.column.id === \"rowSelection\"\n ? \"Select all\"\n : flexRender(header.column.columnDef.header, header.getContext());\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n key={header.id}\n overflow=\"hidden\"\n position=\"relative\"\n verticalAlign=\"middle\"\n whiteSpace=\"nowrap\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n <Tooltip content={tooltipContent} disabled={hasDescription}>\n <Flex className=\"group\" alignItems=\"center\" justifyContent=\"space-between\" gap=\"1\" flex=\"1\" minW=\"0\">\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n {canSortColumn && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton\n ml=\"2px\"\n size=\"2xs\"\n aria-label={sortDirection ? `Sorted ${sortDirection}` : \"Sort column\"}\n variant=\"ghost\"\n visibility={sortDirection ? \"visible\" : \"hidden\"}\n _groupHover={{ visibility: \"visible\" }}\n >\n <ChakraIcon as={SortIcon} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n <Menu.Item value=\"sort-asc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort ascending\"\n icon={<ChakraIcon as={ArrowUpAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"asc\"}\n onActivate={() => header.column.toggleSorting(false)}\n />\n </Menu.Item>\n <Menu.Item value=\"sort-desc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort descending\"\n icon={<ChakraIcon as={ArrowDownAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"desc\"}\n onActivate={() => header.column.toggleSorting(true)}\n />\n </Menu.Item>\n {sortDirection && (\n <Menu.Item value=\"clear-sort\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Clear sort\"\n onActivate={() => header.column.clearSorting()}\n />\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n )}\n {header.column.getCanResize() && (\n <span\n {...{\n onDoubleClick: () => header.column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: `resizer ${header.column.getIsResizing() ? \"isResizing\" : \"\"}`,\n }}\n />\n )}\n </Flex>\n </Tooltip>\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableCellViewProps {\n cell: Cell<RowData, unknown>;\n row: Row<RowData>;\n wrapRows: boolean;\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nconst DataTableCellView = (props: DataTableCellViewProps) => {\n const { cell, row, wrapRows, getCellContextMenuActions } = props;\n const columnMeta = cell.column.columnDef.meta as DataTableColumnMeta | undefined;\n const cellStyle = columnMeta?.getCellStyle?.(cell.getValue());\n const cellContext: DataTableCellContext = {\n row: row.original,\n rowId: row.id,\n columnId: cell.column.id,\n value: cell.getValue(),\n };\n const contextActions =\n getCellContextMenuActions?.(cellContext).map((action) => ({\n key: action.label,\n label: action.label,\n icon: action.icon,\n onClick: () => action.onSelect(cellContext),\n })) ?? [];\n const cellElement = (\n <Table.Cell\n data-column-id={cell.column.id}\n width=\"fit-content\"\n maxWidth=\"12rem\"\n overflow=\"hidden\"\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n padding=\"xs\"\n height={wrapRows ? undefined : \"10\"}\n maxHeight={wrapRows ? undefined : \"10\"}\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n key={cell.id}\n textStyle=\"paragraph/S/regular\"\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n verticalAlign={wrapRows ? \"top\" : \"middle\"}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n style={cellStyle}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n\n if (contextActions.length === 0) return cellElement;\n\n return (\n <ResourceContextMenu key={cell.id} actions={contextActions}>\n {cellElement}\n </ResourceContextMenu>\n );\n};\n\ninterface DataTableBodyRowProps {\n row: Row<RowData>;\n noBorder?: boolean;\n rowIsInteractive: boolean;\n rowIsActive: boolean;\n rowIsSelected: boolean;\n wrapRows: boolean;\n onRowClick?: DataTableProps[\"onRowClick\"];\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nexport const DataTableBodyRow = (props: DataTableBodyRowProps) => {\n const {\n row,\n noBorder,\n rowIsInteractive,\n rowIsActive,\n rowIsSelected,\n wrapRows,\n onRowClick,\n getCellContextMenuActions,\n } = props;\n\n return (\n <Table.Row\n key={row.id}\n data-active={rowIsActive ? \"true\" : undefined}\n data-selected={rowIsSelected ? \"true\" : undefined}\n aria-selected={rowIsSelected ? \"true\" : undefined}\n height={wrapRows ? undefined : \"10\"}\n cursor={rowIsInteractive ? \"pointer\" : undefined}\n onClick={rowIsInteractive ? () => onRowClick?.(row.original) : undefined}\n borderTop={noBorder ? \"none\" : \"1px solid\"}\n borderBottom=\"1px solid\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n _last={{ borderBottom: noBorder ? \"none\" : \"1px solid\", borderColor: \"border.subtle\" }}\n borderColor=\"border.subtle\"\n background={rowIsActive ? \"bg.active\" : \"bg\"}\n >\n {row.getVisibleCells().map((cell) => (\n <DataTableCellView\n key={cell.id}\n cell={cell}\n row={row}\n wrapRows={wrapRows}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n ))}\n </Table.Row>\n );\n};\n","import \"./data-table.css\";\n\nimport { Box, Flex, Table } from \"@chakra-ui/react\";\nimport {\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { Fragment, lazy, Suspense, useEffect, useState } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { useKanbanRendererStore } from \"../kanban-renderer/use-kanban-renderer-store\";\nimport { buildColumns } from \"./build-columns\";\nimport { DataTableColumnMenu } from \"./data-table-column-menu\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n buildDataTableRendererAttributes,\n buildDataTableRendererRows,\n filterDataTableRows,\n getSelectedOriginalRows,\n reorderDataTableColumns,\n resolveDataTableColumnOrder,\n resolveDataTableRowId,\n resolveDataTableToolbarStorageKey,\n resolveInitialPageSize,\n resolveSelectionActions,\n shouldEnableSelection,\n shouldHighlightActiveRow,\n toggleHiddenDataTableColumn,\n} from \"./data-table-state\";\nimport { DataTableBodyRow, DataTableColumnHeader } from \"./data-table-table-parts\";\nimport { EditModeDataTable } from \"./edit-mode-data-table\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableProps, RowData } from \"./types\";\n\nconst DataTableStatsRow = lazy(() =>\n import(\"./data-table-stats-row\").then((module) => ({ default: module.DataTableStatsRow })),\n);\n\ninterface DatasetPaginationProps {\n table: ReturnType<typeof useReactTable<RowData>>;\n pagination: PaginationState;\n pageSizeOptions: number[];\n}\n\nconst buildColumnMenuColumns = (columnKeys: string[], compactHeaders?: Partial<Record<string, string>>) =>\n columnKeys.map((columnId) => ({ id: columnId, label: compactHeaders?.[columnId] ?? columnId }));\n\nconst resolveColumnSizeVars = (table: ReturnType<typeof useReactTable<RowData>>) => {\n const colSizes: Record<string, number> = {};\n for (const header of table.getFlatHeaders()) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n return colSizes;\n};\n\nconst DatasetPagination = (props: DatasetPaginationProps) => {\n const { table, pagination, pageSizeOptions } = props;\n\n return (\n <PaginationFooter\n pageCount={table.getPageCount()}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n pageSizeOptions={pageSizeOptions}\n totalRows={table.getCoreRowModel().rows.length}\n onPageChange={table.setPageIndex}\n onPageSizeChange={table.setPageSize}\n />\n );\n};\n\nconst DatasetDataTable = (props: DataTableProps) => {\n const {\n data,\n noBorder,\n fullWidth,\n hiddenColumns,\n defaultHiddenColumns,\n defaultShowStats = true,\n onRowClick,\n isRowInteractive,\n activeRowId,\n columnIcons,\n columnDescriptions,\n compactHeaders,\n columnStats,\n columnRenderers,\n initialPageSize,\n pageSizeOptions = [10, 20, 30, 50, 100],\n rowActions = [],\n getRowActions,\n getRowId,\n toolbarStorageKey,\n enableRowActivation = false,\n getCellContextMenuActions,\n } = props;\n const [sorting, setSorting] = useState<SortingState>([]);\n const [pagination, setPagination] = useState<PaginationState>(() => ({\n pageIndex: 0,\n pageSize: resolveInitialPageSize({ initialPageSize }),\n }));\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [showStats, setShowStats] = useState(defaultShowStats);\n const [wrapRows, setWrapRows] = useState(false);\n const [columnOrder, setColumnOrder] = useState<string[]>(() => {\n const propHiddenColumnsSet = new Set(hiddenColumns ?? []);\n return Object.keys(data[0] || {}).filter((key) => !propHiddenColumnsSet.has(key));\n });\n const [hiddenColumnMenuIds, setHiddenColumnMenuIds] = useState<Set<string>>(() => new Set(defaultHiddenColumns));\n const hiddenColumnsSet = new Set(hiddenColumns ?? []);\n const baseColumnKeys = Object.keys(data[0] || {}).filter((key) => !hiddenColumnsSet.has(key));\n const orderedBaseColumnKeys = resolveDataTableColumnOrder(baseColumnKeys, columnOrder);\n const visibleColumnIds = new Set(orderedBaseColumnKeys.filter((key) => !hiddenColumnMenuIds.has(key)));\n const columnKeys = orderedBaseColumnKeys.filter((key) => visibleColumnIds.has(key));\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n const rendererAttributes = buildDataTableRendererAttributes(\n data,\n orderedBaseColumnKeys,\n compactHeaders,\n columnRenderers,\n );\n const rendererRows = buildDataTableRendererRows(data, orderedBaseColumnKeys, getRowId, columnRenderers);\n const resolvedToolbarStorageKey = resolveDataTableToolbarStorageKey({\n toolbarStorageKey,\n columnKeys: baseColumnKeys,\n });\n const filters = useKanbanRendererStore(resolvedToolbarStorageKey, (state) => state.filters, {\n settings: { viewMode: \"list\" },\n views: props.defaultViews,\n activeViewId: props.defaultActiveViewId,\n });\n const filteredRendererRows = filterDataTableRows(rendererRows, filters, rendererAttributes);\n const filteredData = filteredRendererRows.map((row) => row.sourceRow);\n const columns = buildColumns(data, columnKeys, {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection,\n rowActions,\n getRowActions,\n selectedRowIds: rowSelection,\n columnRenderers,\n wrapRows,\n });\n\n const table = useReactTable({\n data: filteredData,\n columns,\n defaultColumn: { size: 150, minSize: 40, maxSize: 800 },\n state: { sorting, pagination, rowSelection },\n getRowId: (row, index) => resolveDataTableRowId(row, index, getRowId),\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n onSortingChange: setSorting,\n onPaginationChange: setPagination,\n onRowSelectionChange: setRowSelection,\n getSortedRowModel: getSortedRowModel(),\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n enableMultiRowSelection: enableSelection,\n enableRowSelection: enableSelection,\n autoResetAll: false,\n });\n\n useEffect(() => {\n const pageCount = table.getPageCount();\n if (pageCount === 0 || pagination.pageIndex < pageCount) return;\n\n setPagination((current) => ({\n ...current,\n pageIndex: Math.max(pageCount - 1, 0),\n }));\n }, [pagination.pageIndex, table]);\n\n const columnSizeVars = resolveColumnSizeVars(table);\n\n const selectedRows = table.getSelectedRowModel().rows;\n const allRows = table.getCoreRowModel().rows;\n const selectedOriginalRows = getSelectedOriginalRows(selectedRows);\n const columnControl = (\n <DataTableColumnMenu\n columns={buildColumnMenuColumns(orderedBaseColumnKeys, compactHeaders)}\n visibleColumnIds={visibleColumnIds}\n wrapRows={wrapRows}\n showStats={showStats}\n statsAvailable={Boolean(columnStats)}\n onColumnVisibilityChange={(columnId, visible) =>\n setHiddenColumnMenuIds((current) => toggleHiddenDataTableColumn(current, columnId, visible))\n }\n onColumnReorder={(activeColumnId, overColumnId) =>\n setColumnOrder((current) =>\n reorderDataTableColumns(resolveDataTableColumnOrder(baseColumnKeys, current), activeColumnId, overColumnId),\n )\n }\n onWrapRowsChange={setWrapRows}\n onStatsVisibilityChange={setShowStats}\n />\n );\n\n return (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n <DataTableHeader\n rows={rendererRows}\n storageKey={resolvedToolbarStorageKey}\n attributes={rendererAttributes}\n columnControl={columnControl}\n defaultViews={props.defaultViews}\n defaultActiveViewId={props.defaultActiveViewId}\n />\n <Box position=\"relative\" flex=\"1\" minHeight=\"0\">\n <ScrollArea height=\"100%\" maxWidth=\"unset\" showHorizontalScrollbar>\n <Table.Root\n className={`data-table${fullWidth ? \" full-width\" : \"\"}`}\n style={{ ...columnSizeVars, width: fullWidth ? \"100%\" : table.getTotalSize() }}\n >\n <Table.Header>\n {table.getHeaderGroups().map((headerGroup) => (\n <Fragment key={headerGroup.id}>\n <Table.Row\n className=\"data-table-column-header-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableColumnHeader\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n table={table}\n fullWidth={fullWidth}\n hasDescription={Boolean(columnDescriptions?.[header.column.id])}\n />\n ))}\n </Table.Row>\n {columnStats && showStats ? (\n <Suspense fallback={null}>\n <DataTableStatsRow\n headerGroup={headerGroup}\n rows={filteredData}\n columnStats={columnStats}\n noBorder={noBorder}\n fullWidth={fullWidth}\n />\n </Suspense>\n ) : null}\n </Fragment>\n ))}\n </Table.Header>\n <Table.Body>\n {table.getRowModel().rows.map((row) => {\n const rowIsInteractive = onRowClick ? (isRowInteractive?.(row.original) ?? true) : false;\n const rowIsActive = shouldHighlightActiveRow({ enableRowActivation, activeRowId, rowId: row.id });\n const rowIsSelected = row.getIsSelected();\n\n return (\n <DataTableBodyRow\n key={row.id}\n row={row}\n noBorder={noBorder}\n rowIsInteractive={rowIsInteractive}\n rowIsActive={rowIsActive}\n rowIsSelected={rowIsSelected}\n wrapRows={wrapRows}\n onRowClick={onRowClick}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n );\n })}\n </Table.Body>\n </Table.Root>\n </ScrollArea>\n {enableSelection && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={allRows.length}\n onClearSelection={() => table.toggleAllRowsSelected(false)}\n onSelectAll={() => table.toggleAllRowsSelected(true)}\n actions={selectionActions}\n selectedRows={selectedOriginalRows}\n />\n ) : null}\n </Box>\n {table.getPageCount() > 1 && (\n <DatasetPagination table={table} pagination={pagination} pageSizeOptions={pageSizeOptions} />\n )}\n </Flex>\n );\n};\n\nexport const DataTable = (props: DataTableProps) => {\n if (props.editMode) return <EditModeDataTable {...props} />;\n return <DatasetDataTable {...props} />;\n};\n","import \"./data-table.css\";\n\nimport { Skeleton, Table, Text } from \"@chakra-ui/react\";\n\nexport interface DataTableSkeletonColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableSkeletonProps {\n /** Real column headers when the caller already knows them. */\n columns?: DataTableSkeletonColumn[];\n /** Placeholder column count when the headers are still unknown. */\n columnCount?: number;\n rowCount?: number;\n}\n\n// Deterministic width variation keeps the shimmer organic without re-rendering\n// to a different layout on every mount.\nconst cellWidths = [\"70%\", \"45%\", \"60%\", \"35%\", \"55%\"];\n\nexport const DataTableSkeleton = (props: DataTableSkeletonProps) => {\n const { columns, columnCount = 3, rowCount = 5 } = props;\n const headers =\n columns && columns.length > 0\n ? columns\n : Array.from({ length: columnCount }, (_, index) => ({ id: `column-${index + 1}`, label: \"\" }));\n\n return (\n <Table.Root className=\"data-table full-width\" width=\"100%\">\n <Table.Header>\n <Table.Row className=\"data-table-column-header-row\" borderRight=\"1px solid\" borderColor=\"border.subtle\">\n {headers.map((column) => (\n <Table.ColumnHeader\n key={column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n whiteSpace=\"nowrap\"\n >\n {column.label ? (\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {column.label}\n </Text>\n ) : (\n <Skeleton height=\"12px\" width=\"4rem\" borderRadius=\"xs\" />\n )}\n </Table.ColumnHeader>\n ))}\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {Array.from({ length: rowCount }, (_, rowIndex) => (\n <Table.Row key={rowIndex}>\n {headers.map((column, columnIndex) => (\n <Table.Cell\n key={column.id}\n padding=\"xs\"\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n >\n <Skeleton\n height=\"14px\"\n width={cellWidths[(rowIndex + columnIndex) % cellWidths.length]}\n borderRadius=\"xs\"\n />\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Root>\n );\n};\n"],"mappings":"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"}
|