@pstdio/ui 0.15.0 → 0.17.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/{MermaidComponent-DBJsTOmj.js → MermaidComponent-BCMQqPqu.js} +11 -11
- package/dist/{MermaidComponent-DBJsTOmj.js.map → MermaidComponent-BCMQqPqu.js.map} +1 -1
- package/dist/browser-storage-BinyFNJX.js +40 -0
- package/dist/browser-storage-BinyFNJX.js.map +1 -0
- package/dist/chat-ui.js +1832 -1275
- package/dist/chat-ui.js.map +1 -1
- package/dist/checkbox-B2zYVemL.js +70 -0
- package/dist/checkbox-B2zYVemL.js.map +1 -0
- package/dist/components/chat-ui/components/ai-conversation.d.ts +1 -1
- package/dist/components/chat-ui/components/ai-message.d.ts +1 -1
- package/dist/components/chat-ui/components/ai-response.d.ts +0 -1
- package/dist/components/chat-ui/components/attachment-list.d.ts +1 -1
- package/dist/components/chat-ui/components/auto-scroll.d.ts +27 -0
- package/dist/components/chat-ui/components/chat-input-actions.d.ts +1 -0
- package/dist/components/chat-ui/components/chat-input.d.ts +8 -2
- package/dist/components/chat-ui/components/chat-message-animation.d.ts +22 -0
- package/dist/components/chat-ui/components/chat-panel.d.ts +11 -5
- package/dist/components/chat-ui/components/composer-constants.d.ts +1 -0
- package/dist/components/chat-ui/components/conversation-browse.d.ts +22 -0
- package/dist/components/chat-ui/components/message-types.d.ts +14 -0
- package/dist/components/chat-ui/components/queued-follow-up-list-state.d.ts +4 -0
- package/dist/components/chat-ui/components/queued-follow-up-list.d.ts +11 -0
- package/dist/components/chat-ui/components/timeline.d.ts +5 -2
- package/dist/components/chat-ui/components/working-indicator.d.ts +9 -0
- package/dist/components/chat-ui/components/workspace-hub.d.ts +8 -1
- package/dist/components/chat-ui/index.d.ts +4 -2
- package/dist/components/chat-ui/performance/chat-performance-fixtures.d.ts +0 -1
- package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +4 -14
- package/dist/components/chat-ui/tool-rendering/question-prompt.d.ts +9 -0
- package/dist/components/chat-ui/tool-rendering/shared.d.ts +1 -1
- package/dist/components/chat-ui/tool-rendering/types.d.ts +1 -2
- package/dist/components/command-palette/index.d.ts +4 -0
- package/dist/components/data-table/build-columns.d.ts +13 -2
- package/dist/components/data-table/categorical-color-cell.d.ts +8 -0
- package/dist/components/data-table/color-cell-style.d.ts +13 -0
- package/dist/components/data-table/color-scale-cell.d.ts +7 -0
- package/dist/components/data-table/data-table-column-menu.d.ts +12 -0
- package/dist/components/data-table/data-table-header.d.ts +18 -0
- package/dist/components/data-table/data-table-stat-chart.d.ts +21 -0
- package/dist/components/data-table/data-table-state.d.ts +27 -0
- package/dist/components/data-table/data-table-stats-row.d.ts +11 -0
- package/dist/components/data-table/data-table-stats.d.ts +19 -0
- package/dist/components/data-table/data-table-table-parts.d.ts +21 -0
- package/dist/components/data-table/data-table.story-descriptions.d.ts +6 -0
- package/dist/components/data-table/data-table.story-fixtures.d.ts +6 -0
- package/dist/components/data-table/friendly-json-display.d.ts +31 -0
- package/dist/components/data-table/index.d.ts +3 -1
- package/dist/components/data-table/json-cell.d.ts +6 -0
- package/dist/components/data-table/pagination-footer.d.ts +4 -1
- package/dist/components/data-table/selection-toolbar.d.ts +3 -1
- package/dist/components/data-table/types.d.ts +72 -0
- package/dist/components/diff-viewer/diff-card.d.ts +1 -0
- package/dist/components/diff-viewer/diff-drawer-scroll.d.ts +0 -19
- package/dist/components/diff-viewer/diff-drawer.d.ts +1 -0
- package/dist/components/diff-viewer/index.d.ts +2 -0
- package/dist/components/diff-viewer/use-selected-diff-scroll.d.ts +7 -3
- package/dist/components/internal/style-guide.d.ts +14 -0
- package/dist/components/internal/token-editor-controls.d.ts +8 -0
- package/dist/components/internal/token-editor-data.d.ts +40 -0
- package/dist/components/internal/token-editor-state.d.ts +22 -0
- package/dist/components/{data-renderer → kanban-renderer}/display-menu.d.ts +4 -4
- package/dist/components/{data-renderer → kanban-renderer}/filter-menu.d.ts +3 -3
- package/dist/components/kanban-renderer/index.d.ts +19 -0
- package/dist/components/kanban-renderer/kanban-renderer-attribute-badge.d.ts +7 -0
- package/dist/components/{data-renderer/data-renderer-board-column-header.d.ts → kanban-renderer/kanban-renderer-board-column-header.d.ts} +2 -2
- package/dist/components/{data-renderer/data-renderer-board-group-section.d.ts → kanban-renderer/kanban-renderer-board-group-section.d.ts} +2 -2
- package/dist/components/{data-renderer/data-renderer-board-move.d.ts → kanban-renderer/kanban-renderer-board-move.d.ts} +3 -3
- package/dist/components/{data-renderer/data-renderer-board.d.ts → kanban-renderer/kanban-renderer-board.d.ts} +16 -15
- package/dist/components/{data-renderer/data-renderer-card.d.ts → kanban-renderer/kanban-renderer-card.d.ts} +5 -4
- package/dist/components/{data-renderer/data-renderer-content.d.ts → kanban-renderer/kanban-renderer-content.d.ts} +8 -8
- package/dist/components/kanban-renderer/kanban-renderer-create-dialog.d.ts +12 -0
- package/dist/components/kanban-renderer/kanban-renderer-create-field.d.ts +10 -0
- package/dist/components/kanban-renderer/kanban-renderer-grouping.d.ts +23 -0
- package/dist/components/{data-renderer/data-renderer-helpers.d.ts → kanban-renderer/kanban-renderer-helpers.d.ts} +15 -15
- package/dist/components/kanban-renderer/kanban-renderer-list-items.d.ts +25 -0
- package/dist/components/kanban-renderer/kanban-renderer-list.d.ts +43 -0
- package/dist/components/{data-renderer/data-renderer-story-fixtures.d.ts → kanban-renderer/kanban-renderer-story-fixtures.d.ts} +3 -2
- package/dist/components/kanban-renderer/kanban-renderer-toolbar.d.ts +15 -0
- package/dist/components/kanban-renderer/kanban-renderer-view-bar.d.ts +14 -0
- package/dist/components/kanban-renderer/kanban-renderer-views.d.ts +12 -0
- package/dist/components/{data-renderer/data-renderer.d.ts → kanban-renderer/kanban-renderer.d.ts} +12 -9
- package/dist/components/{data-renderer → kanban-renderer}/types.d.ts +51 -14
- package/dist/components/kanban-renderer/use-kanban-renderer-store.d.ts +78 -0
- package/dist/components/layout/index.d.ts +7 -0
- package/dist/components/layout/panel-header.constants.d.ts +3 -0
- package/dist/components/{resizable-split-layout.d.ts → layout/resizable-split-layout.d.ts} +3 -2
- package/dist/components/layout/resizable-split-layout.geometry.d.ts +56 -0
- package/dist/components/{resizable-split-layout.handle.d.ts → layout/resizable-split-layout.handle.d.ts} +6 -2
- package/dist/components/layout/resizable-split-layout.panels.d.ts +25 -0
- package/dist/components/list-row/list-row-actions.d.ts +1 -0
- package/dist/components/list-row/list-row-content.d.ts +7 -0
- package/dist/components/list-row/list-row.types.d.ts +4 -1
- package/dist/components/overlays/attached-menu.d.ts +6 -0
- package/dist/components/overlays/attachment-chip.d.ts +13 -0
- package/dist/components/overlays/index.d.ts +16 -0
- package/dist/components/{resource-context-menu.d.ts → overlays/resource-context-menu.d.ts} +13 -1
- package/dist/components/{search-modal-content.d.ts → overlays/search-modal-content.d.ts} +1 -1
- package/dist/components/{searchable-menu.d.ts → overlays/searchable-menu.d.ts} +1 -1
- package/dist/components/param-editor/index.d.ts +24 -0
- package/dist/components/param-editor/inputs/action-input.d.ts +13 -0
- package/dist/components/param-editor/inputs/anchor-grid-input.d.ts +12 -0
- package/dist/components/param-editor/inputs/anchor-grid.d.ts +4 -0
- package/dist/components/param-editor/inputs/file-accept.d.ts +22 -0
- package/dist/components/param-editor/inputs/file-drop-input.d.ts +14 -0
- package/dist/components/param-editor/inputs/numeric-value.d.ts +6 -0
- package/dist/components/param-editor/inputs/range-input.d.ts +17 -0
- package/dist/components/param-editor/inputs/range-value.d.ts +5 -0
- package/dist/components/param-editor/inputs/resource-input-chips.d.ts +15 -0
- package/dist/components/param-editor/inputs/resource-input.d.ts +18 -0
- package/dist/components/param-editor/inputs/segmented-input.d.ts +14 -0
- package/dist/components/param-editor/{selection-input.d.ts → inputs/selection-input.d.ts} +6 -6
- package/dist/components/param-editor/inputs/selection-menu.d.ts +29 -0
- package/dist/components/param-editor/inputs/slider-marks.d.ts +5 -0
- package/dist/components/param-editor/inputs/vector-input.d.ts +17 -0
- package/dist/components/param-editor/inputs/vector-value.d.ts +7 -0
- package/dist/components/param-editor/param-editor-control-item.d.ts +15 -0
- package/dist/components/param-editor/param-editor-control-list.d.ts +5 -0
- package/dist/components/param-editor/param-editor-field-label.d.ts +1 -0
- package/dist/components/param-editor/param-editor-field.d.ts +11 -0
- package/dist/components/param-editor/param-editor-horizontal.d.ts +1 -0
- package/dist/components/param-editor/param-editor-inline-group.d.ts +5 -0
- package/dist/components/param-editor/param-editor-read-only-field.d.ts +9 -0
- package/dist/components/param-editor/param-editor-section.d.ts +17 -0
- package/dist/components/param-editor/param-editor.d.ts +3 -1
- package/dist/components/param-editor/param-editor.types.d.ts +135 -24
- package/dist/components/{breadcrumb.d.ts → primitives/breadcrumb.d.ts} +1 -1
- package/dist/components/primitives/index.d.ts +28 -0
- package/dist/components/{number-input.d.ts → primitives/number-input.d.ts} +0 -2
- package/dist/components/{session-indicator.d.ts → primitives/session-indicator.d.ts} +2 -1
- package/dist/components/{tooltip.d.ts → primitives/tooltip.d.ts} +0 -1
- package/dist/components/rich-text/prompt-input/commands.d.ts +0 -17
- package/dist/components/rich-text/prompt-input/events.d.ts +0 -13
- package/dist/components/rich-text/prompt-input/plugins/CommentPlugin/nodes/CommentNode/CommentNode.d.ts +1 -2
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuPlugin.d.ts +2 -1
- package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/hooks/useContextLookup.d.ts +2 -1
- package/dist/components/rich-text/prompt-input/plugins/ReferencePlugin/ReferencePlugin.d.ts +2 -1
- package/dist/components/rich-text/prompt-input/plugins/ReferencePlugin/nodes/ReferenceNode/ReferenceNode.d.ts +1 -2
- package/dist/components/rich-text/prompt-input/prompt-input.d.ts +3 -2
- package/dist/components/rich-text/prompt-input/utils.d.ts +1 -2
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/MermaidNode.d.ts +0 -1
- package/dist/components/rich-text/types.d.ts +1 -1
- package/dist/components/rich-text/utils/inferResourceType.d.ts +1 -1
- package/dist/components/{sidebar/sidebar-footer.d.ts → sidenav/sidenav-footer.d.ts} +2 -2
- package/dist/components/{sidebar/sidebar-header.d.ts → sidenav/sidenav-header.d.ts} +2 -2
- package/dist/components/sidenav/sidenav.d.ts +2 -0
- package/dist/components/sidenav/sidenav.store.d.ts +49 -0
- package/dist/components/{sidebar/sidebar.types.d.ts → sidenav/sidenav.types.d.ts} +6 -6
- package/dist/components/tab-strip/tab-visibility-filter.d.ts +2 -1
- package/dist/components/tag-editor/tag-editor-row.d.ts +1 -1
- package/dist/components/tag-editor/tag-editor.types.d.ts +1 -1
- package/dist/components/terminal/bind-session.d.ts +33 -0
- package/dist/components/terminal/index.d.ts +6 -0
- package/dist/components/terminal/scripted-bridge.d.ts +35 -0
- package/dist/components/terminal/terminal-contract.d.ts +22 -0
- package/dist/components/terminal/terminal-theme.d.ts +12 -0
- package/dist/components/terminal/terminal.d.ts +56 -0
- package/dist/components/terminal/types.d.ts +35 -0
- package/dist/components/terminal/use-terminal-session.d.ts +21 -0
- package/dist/components/tree-list/tree-list-order-filter.d.ts +1 -2
- package/dist/components/tree-list/tree-list-visibility-filter.d.ts +1 -2
- package/dist/components/tree-list/tree-list.d.ts +2 -2
- package/dist/components/tree-list/tree-list.types.d.ts +4 -0
- package/dist/data-table.js +1271 -0
- package/dist/data-table.js.map +1 -0
- package/dist/diff-editor-BnfV8cYB.js +182 -0
- package/dist/diff-editor-BnfV8cYB.js.map +1 -0
- package/dist/diff.js +1313 -0
- package/dist/diff.js.map +1 -0
- package/dist/empty-state-Bo4HVrgr.js +34 -0
- package/dist/empty-state-Bo4HVrgr.js.map +1 -0
- package/dist/foundations/gallery/gallery-frame.d.ts +21 -0
- package/dist/foundations/gallery/sections/badges-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/buttons-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/composite-chat-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/composites-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/feedback-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/input-authoring-card.d.ts +1 -0
- package/dist/foundations/gallery/sections/inputs-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/layout-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/navigation-identity-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/overlays-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/panels-section.d.ts +1 -0
- package/dist/foundations/gallery/sections/param-editor-composite-card.d.ts +1 -0
- package/dist/foundations/gallery/sections/settings-composite-cards.d.ts +1 -0
- package/dist/index.d.ts +14 -87
- package/dist/index.js +2027 -7501
- package/dist/index.js.map +1 -1
- package/dist/kanban-renderer-toolbar-B9ro-9z1.js +1318 -0
- package/dist/kanban-renderer-toolbar-B9ro-9z1.js.map +1 -0
- package/dist/kanban-renderer.js +1087 -0
- package/dist/kanban-renderer.js.map +1 -0
- package/dist/list-row-YRUxEcy3.js +808 -0
- package/dist/list-row-YRUxEcy3.js.map +1 -0
- package/dist/mermaid-renderer-DZo3qj6D.js +425 -0
- package/dist/mermaid-renderer-DZo3qj6D.js.map +1 -0
- package/dist/mermaid.js +5 -0
- package/dist/mermaid.js.map +1 -0
- package/dist/param-editor-CYZJbmKu.js +933 -0
- package/dist/param-editor-CYZJbmKu.js.map +1 -0
- package/dist/param-editor-read-only-field-DgtLqcFa.js +925 -0
- package/dist/param-editor-read-only-field-DgtLqcFa.js.map +1 -0
- package/dist/prism-BXb57lxL.js +125 -0
- package/dist/prism-BXb57lxL.js.map +1 -0
- package/dist/radio-cLMEBBZk.js +76 -0
- package/dist/radio-cLMEBBZk.js.map +1 -0
- package/dist/resource-badge-qCWHP-wQ.js +99 -0
- package/dist/resource-badge-qCWHP-wQ.js.map +1 -0
- package/dist/{rich-message-DNSEhxXh.js → rich-message-DBf_5YlW.js} +462 -481
- package/dist/rich-message-DBf_5YlW.js.map +1 -0
- package/dist/rich-text.js +300 -299
- package/dist/rich-text.js.map +1 -1
- package/dist/scroll-area-BMbg1WcD.js +91 -0
- package/dist/scroll-area-BMbg1WcD.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/terminal.js +359 -0
- package/dist/terminal.js.map +1 -0
- package/dist/theme/global.d.ts +3 -0
- package/dist/theme/primitives/sizes.d.ts +23 -0
- package/dist/theme/recipes/badge.d.ts +50 -0
- package/dist/theme/recipes/button.d.ts +30 -19
- package/dist/theme/recipes/color-picker.d.ts +1 -0
- package/dist/theme/recipes/dialog.d.ts +1 -1
- package/dist/theme/recipes/drawer.d.ts +1 -1
- package/dist/theme/recipes/input.d.ts +55 -0
- package/dist/theme/recipes/number-input.d.ts +98 -0
- package/dist/theme/recipes/tabs.d.ts +49 -28
- package/dist/theme/recipes/textarea.d.ts +62 -1
- package/dist/theme/recipes/timeline.d.ts +74 -0
- package/dist/theme/tokens/borders.d.ts +0 -3
- package/dist/theme/tokens/colors.d.ts +118 -94
- package/dist/{theme-25P7ij4C.js → theme-CNhnbvcE.js} +1300 -375
- package/dist/theme-CNhnbvcE.js.map +1 -0
- package/dist/theme-preference-DOzHx64J.js +123 -0
- package/dist/theme-preference-DOzHx64J.js.map +1 -0
- package/dist/theme.js +1 -1
- package/dist/tree-list-CZHLAURU.js +1033 -0
- package/dist/tree-list-CZHLAURU.js.map +1 -0
- package/package.json +29 -3
- package/dist/components/data-renderer/card-interaction-guard.d.ts +0 -2
- package/dist/components/data-renderer/data-renderer-attribute-badge.d.ts +0 -7
- package/dist/components/data-renderer/data-renderer-grouping.d.ts +0 -23
- package/dist/components/data-renderer/data-renderer-list.d.ts +0 -39
- package/dist/components/data-renderer/data-renderer-toolbar.d.ts +0 -12
- package/dist/components/data-renderer/use-data-renderer-store.d.ts +0 -59
- package/dist/components/file-tree-helpers.d.ts +0 -8
- package/dist/components/open-source-notices-screen.d.ts +0 -20
- package/dist/components/panel-header.constants.d.ts +0 -1
- package/dist/components/param-editor/input-group.d.ts +0 -10
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/index.d.ts +0 -1
- package/dist/components/rich-text/shared/plugins/TableActionMenuPlugin/TableActionMenuPlugin.d.ts +0 -5
- package/dist/components/rich-text/shared/plugins/TableCellResizerPlugin/TableCellResizerPlugin.d.ts +0 -2
- package/dist/components/rich-text/theme/report-theme.d.ts +0 -3
- package/dist/components/sidebar/sidebar.d.ts +0 -2
- package/dist/components/sidebar/sidebar.store.d.ts +0 -49
- package/dist/components/style-guide-data.d.ts +0 -40
- package/dist/components/style-guide.d.ts +0 -1
- package/dist/mermaid-renderer-CPGj6vsb.js +0 -570
- package/dist/mermaid-renderer-CPGj6vsb.js.map +0 -1
- package/dist/radio-DJtQY9po.js +0 -286
- package/dist/radio-DJtQY9po.js.map +0 -1
- package/dist/resource-badge-CeJTOn8F.js +0 -188
- package/dist/resource-badge-CeJTOn8F.js.map +0 -1
- package/dist/rich-message-DNSEhxXh.js.map +0 -1
- package/dist/theme-25P7ij4C.js.map +0 -1
- package/dist/utils/formats.d.ts +0 -7
- /package/dist/components/{palette-filter.d.ts → command-palette/palette-filter.d.ts} +0 -0
- /package/dist/components/{palette-list.d.ts → command-palette/palette-list.d.ts} +0 -0
- /package/dist/components/{palette-shortcut.d.ts → command-palette/palette-shortcut.d.ts} +0 -0
- /package/dist/components/{palette.d.ts → command-palette/palette.d.ts} +0 -0
- /package/dist/components/{code-editor.d.ts → diff-viewer/code-editor.d.ts} +0 -0
- /package/dist/components/{column-file-browser.d.ts → file-browser/column-file-browser.d.ts} +0 -0
- /package/dist/components/{performance-panel.d.ts → internal/performance-panel.d.ts} +0 -0
- /package/dist/components/{data-renderer/data-renderer-badge-helpers.d.ts → kanban-renderer/kanban-renderer-badge-helpers.d.ts} +0 -0
- /package/dist/components/{data-renderer/data-renderer-enum-helpers.d.ts → kanban-renderer/kanban-renderer-enum-helpers.d.ts} +0 -0
- /package/dist/components/{data-renderer → kanban-renderer}/use-resolved-attributes.d.ts +0 -0
- /package/dist/components/{header.d.ts → layout/header.d.ts} +0 -0
- /package/dist/components/{horizontal-menu-stack.d.ts → layout/horizontal-menu-stack.d.ts} +0 -0
- /package/dist/components/{item-section.d.ts → layout/item-section.d.ts} +0 -0
- /package/dist/components/{attached-panel.d.ts → overlays/attached-panel.d.ts} +0 -0
- /package/dist/components/{bubble-button.d.ts → overlays/bubble-button.d.ts} +0 -0
- /package/dist/components/{bubble-panel.d.ts → overlays/bubble-panel.d.ts} +0 -0
- /package/dist/components/{delete-confirmation-modal.d.ts → overlays/delete-confirmation-modal.d.ts} +0 -0
- /package/dist/components/{repo-picker-dialog.d.ts → overlays/repo-picker-dialog.d.ts} +0 -0
- /package/dist/components/param-editor/{color-input.d.ts → inputs/color-input.d.ts} +0 -0
- /package/dist/components/param-editor/{date-input.d.ts → inputs/date-input.d.ts} +0 -0
- /package/dist/components/param-editor/{horizontal-text-input.d.ts → inputs/horizontal-text-input.d.ts} +0 -0
- /package/dist/components/param-editor/{number-input.d.ts → inputs/number-input.d.ts} +0 -0
- /package/dist/components/param-editor/{text-input.d.ts → inputs/text-input.d.ts} +0 -0
- /package/dist/components/{alert.d.ts → primitives/alert.d.ts} +0 -0
- /package/dist/components/{checkbox.d.ts → primitives/checkbox.d.ts} +0 -0
- /package/dist/components/{content-placeholder.d.ts → primitives/content-placeholder.d.ts} +0 -0
- /package/dist/components/{empty-state.d.ts → primitives/empty-state.d.ts} +0 -0
- /package/dist/components/{error-boundary.d.ts → primitives/error-boundary.d.ts} +0 -0
- /package/dist/components/{icon-color-picker.d.ts → primitives/icon-color-picker.d.ts} +0 -0
- /package/dist/components/{info-card.d.ts → primitives/info-card.d.ts} +0 -0
- /package/dist/components/{integration-card.d.ts → primitives/integration-card.d.ts} +0 -0
- /package/dist/components/{radio.d.ts → primitives/radio.d.ts} +0 -0
- /package/dist/components/{resource-badge.d.ts → primitives/resource-badge.d.ts} +0 -0
- /package/dist/components/{scroll-area.d.ts → primitives/scroll-area.d.ts} +0 -0
- /package/dist/components/{simple-card.d.ts → primitives/simple-card.d.ts} +0 -0
- /package/dist/components/{slider.d.ts → primitives/slider.d.ts} +0 -0
- /package/dist/components/{switch.d.ts → primitives/switch.d.ts} +0 -0
- /package/dist/components/{toaster.d.ts → primitives/toaster.d.ts} +0 -0
- /package/dist/components/{workspace-badge.d.ts → primitives/workspace-badge.d.ts} +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AttributeDescriptor, KanbanRendererFilterState, KanbanRendererOrdering, KanbanRendererRow } from './types';
|
|
2
|
+
interface GroupingOptions {
|
|
3
|
+
attributes: AttributeDescriptor[];
|
|
4
|
+
columnGrouping: string;
|
|
5
|
+
rowGrouping: string;
|
|
6
|
+
knownColumnKeys?: string[];
|
|
7
|
+
}
|
|
8
|
+
interface KanbanRendererRowGroup {
|
|
9
|
+
key: string;
|
|
10
|
+
label: string;
|
|
11
|
+
rows: KanbanRendererRow[];
|
|
12
|
+
}
|
|
13
|
+
interface KanbanRendererColumnGroup {
|
|
14
|
+
key: string;
|
|
15
|
+
label: string;
|
|
16
|
+
rows: KanbanRendererRow[];
|
|
17
|
+
subgroups: KanbanRendererRowGroup[];
|
|
18
|
+
}
|
|
19
|
+
export declare const orderRows: (rows: KanbanRendererRow[], ordering: KanbanRendererOrdering, attributes: AttributeDescriptor[]) => KanbanRendererRow[];
|
|
20
|
+
export declare const groupRows: (rows: KanbanRendererRow[], options: GroupingOptions) => KanbanRendererColumnGroup[];
|
|
21
|
+
export declare const filterRows: (rows: KanbanRendererRow[], filters: KanbanRendererFilterState, attributes: AttributeDescriptor[]) => KanbanRendererRow[];
|
|
22
|
+
export declare const countFilterValues: (rows: KanbanRendererRow[], attributeId: string, attributes: AttributeDescriptor[]) => Record<string, number>;
|
|
23
|
+
export type { KanbanRendererColumnGroup, KanbanRendererRowGroup };
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { AttributeBadge } from './
|
|
3
|
-
import { AttributeDescriptor,
|
|
4
|
-
export type { AttributeBadge } from './
|
|
5
|
-
export { getAttributeBadgeColorPalette } from './
|
|
6
|
-
export { enumOptionLabel, findEnumOption, getEnumOptions, toTitleCase } from './
|
|
2
|
+
import { AttributeBadge } from './kanban-renderer-badge-helpers';
|
|
3
|
+
import { AttributeDescriptor, KanbanRendererFilterState, KanbanRendererRow, KanbanRendererSettings } from './types';
|
|
4
|
+
export type { AttributeBadge } from './kanban-renderer-badge-helpers';
|
|
5
|
+
export { getAttributeBadgeColorPalette } from './kanban-renderer-badge-helpers';
|
|
6
|
+
export { enumOptionLabel, findEnumOption, getEnumOptions, toTitleCase } from './kanban-renderer-enum-helpers';
|
|
7
7
|
/**
|
|
8
8
|
* Read a typed attribute value out of a row. enum-multi normalizes to an array;
|
|
9
9
|
* single-valued kinds normalize to undefined when missing.
|
|
10
10
|
*/
|
|
11
|
-
export declare const getAttributeValue: (row:
|
|
12
|
-
export declare const getAttributeStringValues: (row:
|
|
11
|
+
export declare const getAttributeValue: (row: KanbanRendererRow, descriptor: AttributeDescriptor) => unknown;
|
|
12
|
+
export declare const getAttributeStringValues: (row: KanbanRendererRow, descriptor: AttributeDescriptor) => string[];
|
|
13
13
|
/**
|
|
14
14
|
* Per-type default cell summary used by the card / list end-content. Returns
|
|
15
15
|
* null when the attribute has no displayable value.
|
|
16
16
|
*/
|
|
17
|
-
export declare const renderAttributeBadge: (descriptor: AttributeDescriptor, row:
|
|
18
|
-
export declare const collectDisplayBadges: (row:
|
|
19
|
-
export declare const collectDisplayCustomSlots: (row:
|
|
17
|
+
export declare const renderAttributeBadge: (descriptor: AttributeDescriptor, row: KanbanRendererRow) => AttributeBadge | null;
|
|
18
|
+
export declare const collectDisplayBadges: (row: KanbanRendererRow, attributes: AttributeDescriptor[], displayProperties: string[]) => AttributeBadge[];
|
|
19
|
+
export declare const collectDisplayCustomSlots: (row: KanbanRendererRow, attributes: AttributeDescriptor[], displayProperties: string[]) => ReactNode[];
|
|
20
20
|
export interface FilterCategoryView {
|
|
21
21
|
id: string;
|
|
22
22
|
label: string;
|
|
@@ -33,7 +33,7 @@ export interface FilterCategoryView {
|
|
|
33
33
|
* the data fill in the gaps for string / date / number / user attributes (so
|
|
34
34
|
* filter chips for free-form fields don't require declaring every option).
|
|
35
35
|
*/
|
|
36
|
-
export declare const buildFilterCategories: (attributes: AttributeDescriptor[], rows:
|
|
36
|
+
export declare const buildFilterCategories: (attributes: AttributeDescriptor[], rows: KanbanRendererRow[]) => FilterCategoryView[];
|
|
37
37
|
export interface MenuOption {
|
|
38
38
|
value: string;
|
|
39
39
|
label: string;
|
|
@@ -45,13 +45,13 @@ export declare const resolveSubGroupingOptions: (options: MenuOption[], columnGr
|
|
|
45
45
|
export declare const resolveListDropTargetColumnKey: (columnGrouping: string, placement?: {
|
|
46
46
|
columnKey?: string;
|
|
47
47
|
}) => string | undefined;
|
|
48
|
-
export declare const resolveKnownColumnKeys: (columnGrouping: string, attributes: AttributeDescriptor[], filters?:
|
|
48
|
+
export declare const resolveKnownColumnKeys: (columnGrouping: string, attributes: AttributeDescriptor[], filters?: KanbanRendererFilterState) => string[] | undefined;
|
|
49
49
|
export declare const normalizeFilterValues: (_descriptor: AttributeDescriptor, values: string[]) => string[];
|
|
50
|
-
export declare const omitFilterCategory: (filters:
|
|
50
|
+
export declare const omitFilterCategory: (filters: KanbanRendererFilterState, id: string) => KanbanRendererFilterState;
|
|
51
51
|
/**
|
|
52
52
|
* Drop persisted settings entries that reference attribute ids no longer
|
|
53
53
|
* declared by the contribution. Falls back to defaults for missing grouping
|
|
54
54
|
* and ordering attributes so a stale saved view still loads cleanly.
|
|
55
55
|
*/
|
|
56
|
-
export declare const sanitizeSettings: (settings:
|
|
57
|
-
export declare const sanitizeFilters: (filters:
|
|
56
|
+
export declare const sanitizeSettings: (settings: KanbanRendererSettings, attributes: AttributeDescriptor[]) => KanbanRendererSettings;
|
|
57
|
+
export declare const sanitizeFilters: (filters: KanbanRendererFilterState, attributes: AttributeDescriptor[]) => KanbanRendererFilterState;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ResourceContextAction } from '../overlays/resource-context-menu';
|
|
2
|
+
import { KanbanRendererColumnGroup } from './kanban-renderer-grouping';
|
|
3
|
+
import { KanbanRendererListItem } from './kanban-renderer-list';
|
|
4
|
+
import { AttributeDescriptor, KanbanRendererRow, KanbanRendererSettings } from './types';
|
|
5
|
+
interface BuildKanbanRendererListItemsInput<TRow extends KanbanRendererRow> {
|
|
6
|
+
settings: KanbanRendererSettings;
|
|
7
|
+
visibleRows: TRow[];
|
|
8
|
+
grouped: KanbanRendererColumnGroup[];
|
|
9
|
+
attributes: AttributeDescriptor[];
|
|
10
|
+
onRowClick?: (row: TRow) => void;
|
|
11
|
+
onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
|
|
12
|
+
onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
|
|
13
|
+
getRowContextMenuActions?: (row: TRow) => ResourceContextAction[];
|
|
14
|
+
}
|
|
15
|
+
export declare const buildKanbanRendererListItems: <TRow extends KanbanRendererRow>(input: BuildKanbanRendererListItemsInput<TRow>) => (KanbanRendererListItem | {
|
|
16
|
+
onDropRow: ((draggedId: string) => void | Promise<void>) | undefined;
|
|
17
|
+
children: KanbanRendererListItem[];
|
|
18
|
+
statusColorPalette: string | undefined;
|
|
19
|
+
statusIcon: import('react').ComponentType;
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
isGroup: boolean;
|
|
23
|
+
countBadge: number;
|
|
24
|
+
})[];
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
import { ResourceContextAction } from '../overlays/resource-context-menu';
|
|
3
|
+
import { AttributeBadge } from './kanban-renderer-helpers';
|
|
4
|
+
export interface KanbanRendererListItem {
|
|
5
|
+
id: string;
|
|
6
|
+
eyebrow?: string;
|
|
7
|
+
title: string;
|
|
8
|
+
isGroup?: boolean;
|
|
9
|
+
countBadge?: number;
|
|
10
|
+
countColorPalette?: string;
|
|
11
|
+
statusIcon?: ComponentType<{
|
|
12
|
+
size?: number | string;
|
|
13
|
+
}>;
|
|
14
|
+
statusColor?: string;
|
|
15
|
+
statusColorPalette?: string;
|
|
16
|
+
badges?: AttributeBadge[];
|
|
17
|
+
customSlots?: ReactNode[];
|
|
18
|
+
children?: KanbanRendererListItem[];
|
|
19
|
+
onClick?: () => void;
|
|
20
|
+
onBadgeChange?: (attributeId: string, value: unknown) => void;
|
|
21
|
+
contextMenuActions?: ResourceContextAction[];
|
|
22
|
+
draggable?: boolean;
|
|
23
|
+
onDropRow?: (rowId: string) => void;
|
|
24
|
+
}
|
|
25
|
+
export type KanbanRendererListExpandedState = Record<string, boolean>;
|
|
26
|
+
export interface KanbanRendererListProps {
|
|
27
|
+
items: KanbanRendererListItem[];
|
|
28
|
+
selectedItemId?: string | null;
|
|
29
|
+
expandedGroups?: KanbanRendererListExpandedState;
|
|
30
|
+
onItemClick?: (item: KanbanRendererListItem) => void;
|
|
31
|
+
onExpandedGroupChange?: (rowId: string, isExpanded: boolean) => void;
|
|
32
|
+
}
|
|
33
|
+
interface FlattenedKanbanRendererListItem {
|
|
34
|
+
id: string;
|
|
35
|
+
item: KanbanRendererListItem;
|
|
36
|
+
depth: number;
|
|
37
|
+
isGroup: boolean;
|
|
38
|
+
canExpand: boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare const getKanbanRendererListIndentation: (depth: number) => string | undefined;
|
|
41
|
+
export declare const flattenKanbanRendererListItems: (items: KanbanRendererListItem[], expanded: KanbanRendererListExpandedState, depth?: number) => FlattenedKanbanRendererListItem[];
|
|
42
|
+
export declare const KanbanRendererList: (props: KanbanRendererListProps) => import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { AttributeDescriptor,
|
|
1
|
+
import { AttributeDescriptor, KanbanRendererRow } from './types';
|
|
2
2
|
export declare const attributes: AttributeDescriptor[];
|
|
3
|
-
export interface StoryRow extends
|
|
3
|
+
export interface StoryRow extends KanbanRendererRow {
|
|
4
4
|
attributes: {
|
|
5
|
+
id?: string;
|
|
5
6
|
status: string;
|
|
6
7
|
assignee: string;
|
|
7
8
|
component: string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { AttributeDescriptor, KanbanRendererFilterState, KanbanRendererRow, KanbanRendererSavedView, KanbanRendererSettings } from './types';
|
|
3
|
+
export interface KanbanRendererToolbarProps<TRow extends KanbanRendererRow = KanbanRendererRow> {
|
|
4
|
+
rows: TRow[];
|
|
5
|
+
storageKey: string;
|
|
6
|
+
attributes: AttributeDescriptor[];
|
|
7
|
+
defaultSettings?: Partial<KanbanRendererSettings>;
|
|
8
|
+
defaultFilters?: KanbanRendererFilterState;
|
|
9
|
+
defaultViews?: KanbanRendererSavedView[];
|
|
10
|
+
defaultActiveViewId?: string;
|
|
11
|
+
leading?: ReactNode;
|
|
12
|
+
displayControl?: ReactNode;
|
|
13
|
+
align?: "split" | "end";
|
|
14
|
+
}
|
|
15
|
+
export declare const KanbanRendererToolbar: <TRow extends KanbanRendererRow>(props: KanbanRendererToolbarProps<TRow>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { FilterCategoryView } from './kanban-renderer-helpers';
|
|
3
|
+
import { KanbanRendererFilterState } from './types';
|
|
4
|
+
interface KanbanRendererViewBarProps {
|
|
5
|
+
storageKey: string;
|
|
6
|
+
categories: FilterCategoryView[];
|
|
7
|
+
filters: KanbanRendererFilterState;
|
|
8
|
+
leading?: ReactNode;
|
|
9
|
+
filterControl: ReactNode;
|
|
10
|
+
displayControl: ReactNode;
|
|
11
|
+
align?: "split" | "end";
|
|
12
|
+
}
|
|
13
|
+
export declare const KanbanRendererViewBar: (props: KanbanRendererViewBarProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { KanbanRendererFilterState, KanbanRendererSavedView, KanbanRendererSettings } from './types';
|
|
2
|
+
interface KanbanRendererViewState {
|
|
3
|
+
settings: KanbanRendererSettings;
|
|
4
|
+
filters: KanbanRendererFilterState;
|
|
5
|
+
}
|
|
6
|
+
export declare const snapshotKanbanRendererView: (id: string, title: string, state: KanbanRendererViewState, isDefault?: boolean) => KanbanRendererSavedView;
|
|
7
|
+
export declare const applyKanbanRendererView: (view: KanbanRendererSavedView) => {
|
|
8
|
+
settings: KanbanRendererSettings;
|
|
9
|
+
filters: KanbanRendererFilterState;
|
|
10
|
+
};
|
|
11
|
+
export declare const isKanbanRendererViewDirty: (view: KanbanRendererSavedView | undefined, state: KanbanRendererViewState) => boolean;
|
|
12
|
+
export {};
|
package/dist/components/{data-renderer/data-renderer.d.ts → kanban-renderer/kanban-renderer.d.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { ResourceContextAction } from '../resource-context-menu';
|
|
3
|
-
import {
|
|
4
|
-
import { AttributeDescriptor,
|
|
2
|
+
import { ResourceContextAction } from '../overlays/resource-context-menu';
|
|
3
|
+
import { KanbanRendererBoardColumnAction } from './kanban-renderer-board';
|
|
4
|
+
import { AttributeDescriptor, KanbanRendererCreateRowConfig, KanbanRendererCreateSubmission, KanbanRendererFilterState, KanbanRendererRow, KanbanRendererSavedView, KanbanRendererSettings } from './types';
|
|
5
5
|
/** Board-column behavior and menu configuration for a resolved column group. */
|
|
6
6
|
export interface BoardColumnConfig {
|
|
7
7
|
/** Chakra color palette used for the column header and group badges. */
|
|
@@ -9,10 +9,10 @@ export interface BoardColumnConfig {
|
|
|
9
9
|
canDragIn?: boolean;
|
|
10
10
|
canDragOut?: boolean;
|
|
11
11
|
canCreate?: boolean;
|
|
12
|
-
actions?:
|
|
12
|
+
actions?: KanbanRendererBoardColumnAction[];
|
|
13
13
|
}
|
|
14
14
|
/** Switchable list/board renderer for rows with typed attributes, filtering, grouping, and ordering. */
|
|
15
|
-
export interface
|
|
15
|
+
export interface KanbanRendererProps<TRow extends KanbanRendererRow = KanbanRendererRow> {
|
|
16
16
|
/** Stable rows to render. Each row must have an id, title, and attributes map. */
|
|
17
17
|
rows: TRow[];
|
|
18
18
|
/** Persistent key used by the renderer store for view, filter, grouping, ordering, and list expansion settings. */
|
|
@@ -23,8 +23,10 @@ export interface DataRendererProps<TRow extends DataRendererRow = DataRendererRo
|
|
|
23
23
|
emptyState?: ReactNode;
|
|
24
24
|
emptyTitle?: string;
|
|
25
25
|
emptyDescription?: string;
|
|
26
|
-
defaultSettings?: Partial<
|
|
27
|
-
defaultFilters?:
|
|
26
|
+
defaultSettings?: Partial<KanbanRendererSettings>;
|
|
27
|
+
defaultFilters?: KanbanRendererFilterState;
|
|
28
|
+
defaultViews?: KanbanRendererSavedView[];
|
|
29
|
+
defaultActiveViewId?: string;
|
|
28
30
|
hideToolbar?: boolean;
|
|
29
31
|
toolbarLeading?: ReactNode;
|
|
30
32
|
onRowClick?: (row: TRow) => void;
|
|
@@ -32,9 +34,10 @@ export interface DataRendererProps<TRow extends DataRendererRow = DataRendererRo
|
|
|
32
34
|
onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
|
|
33
35
|
/** Called for manual row ordering when a dragged row is dropped before another row. */
|
|
34
36
|
onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
|
|
35
|
-
|
|
37
|
+
createRow?: KanbanRendererCreateRowConfig;
|
|
38
|
+
onCreateRow?: (submission: KanbanRendererCreateSubmission) => Promise<void> | void;
|
|
36
39
|
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
37
40
|
getBoardColumnConfig?: (groupKey: string) => BoardColumnConfig;
|
|
38
41
|
getRowContextMenuActions?: (row: TRow) => ResourceContextAction[];
|
|
39
42
|
}
|
|
40
|
-
export declare const
|
|
43
|
+
export declare const KanbanRenderer: <TRow extends KanbanRendererRow>(props: KanbanRendererProps<TRow>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -51,13 +51,13 @@ export interface AttributeDescriptor {
|
|
|
51
51
|
displayable?: boolean;
|
|
52
52
|
editable?: boolean;
|
|
53
53
|
display?: AttributeDisplayDescriptor;
|
|
54
|
-
render?: (value: unknown, row:
|
|
54
|
+
render?: (value: unknown, row: KanbanRendererRow) => ReactNode;
|
|
55
55
|
compare?: (a: unknown, b: unknown) => number;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
58
|
* Reactive source for an entire attribute schema. Mirrors React's
|
|
59
59
|
* useSyncExternalStore contract so consumers (e.g. the workbench's
|
|
60
|
-
*
|
|
60
|
+
* kanban-renderer bridge) can subscribe and re-resolve when the schema changes
|
|
61
61
|
* — letting a contribution add/remove/edit attributes at runtime without
|
|
62
62
|
* re-registering.
|
|
63
63
|
*/
|
|
@@ -66,7 +66,7 @@ export interface AttributesSource {
|
|
|
66
66
|
getSnapshot: () => AttributeDescriptor[];
|
|
67
67
|
}
|
|
68
68
|
export declare const isAttributesSource: (attributes: AttributeDescriptor[] | AttributesSource) => attributes is AttributesSource;
|
|
69
|
-
export interface
|
|
69
|
+
export interface KanbanRendererRow {
|
|
70
70
|
id: string;
|
|
71
71
|
title: string;
|
|
72
72
|
/**
|
|
@@ -77,25 +77,62 @@ export interface DataRendererRow {
|
|
|
77
77
|
resource?: unknown;
|
|
78
78
|
attributes: Record<string, unknown>;
|
|
79
79
|
}
|
|
80
|
-
export interface
|
|
80
|
+
export interface KanbanRendererOrdering {
|
|
81
81
|
attributeId: string | typeof MANUAL_ORDERING;
|
|
82
82
|
direction: SortDirection;
|
|
83
83
|
}
|
|
84
|
-
export interface
|
|
84
|
+
export interface KanbanRendererSettings {
|
|
85
85
|
viewMode: ViewMode;
|
|
86
86
|
columnGrouping: string | typeof NO_GROUPING;
|
|
87
87
|
rowGrouping: string | typeof NO_GROUPING;
|
|
88
|
-
ordering:
|
|
88
|
+
ordering: KanbanRendererOrdering;
|
|
89
89
|
displayProperties: string[];
|
|
90
90
|
}
|
|
91
|
-
export type
|
|
92
|
-
export
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
91
|
+
export type KanbanRendererFilterState = Record<string, string[]>;
|
|
92
|
+
export interface KanbanRendererSavedView {
|
|
93
|
+
id: string;
|
|
94
|
+
title: string;
|
|
95
|
+
settings: KanbanRendererSettings;
|
|
96
|
+
filters: KanbanRendererFilterState;
|
|
97
|
+
isDefault?: boolean;
|
|
98
|
+
}
|
|
99
|
+
export type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
|
|
100
|
+
export interface KanbanRendererCreateField {
|
|
101
|
+
id: string;
|
|
102
|
+
label: string;
|
|
103
|
+
description?: string;
|
|
104
|
+
placeholder?: string;
|
|
105
|
+
type: KanbanRendererCreateFieldType;
|
|
106
|
+
required?: boolean;
|
|
107
|
+
defaultValue?: unknown;
|
|
108
|
+
options?: EnumOption[];
|
|
109
|
+
/** `files` fields only. */
|
|
110
|
+
multiple?: boolean;
|
|
111
|
+
accept?: string;
|
|
112
|
+
}
|
|
113
|
+
/** Chrome copy is supplied by the caller so the dialog ships no strings of its own. */
|
|
114
|
+
export interface KanbanRendererCreateLabels {
|
|
115
|
+
cancel: string;
|
|
116
|
+
properties: string;
|
|
117
|
+
submitError: string;
|
|
118
|
+
removeFile: string;
|
|
119
|
+
}
|
|
120
|
+
export interface KanbanRendererCreateRowConfig {
|
|
121
|
+
title: string;
|
|
122
|
+
submitLabel: string;
|
|
123
|
+
fields: KanbanRendererCreateField[];
|
|
124
|
+
labels: KanbanRendererCreateLabels;
|
|
125
|
+
}
|
|
126
|
+
export interface KanbanRendererCreateSubmission {
|
|
127
|
+
columnId: string;
|
|
128
|
+
columnAttributeId?: string;
|
|
129
|
+
/** Declared field values, excluding `files` fields — those arrive as `files`. */
|
|
130
|
+
values: Record<string, unknown>;
|
|
131
|
+
/** Every editable attribute the user set, keyed by attribute id. */
|
|
132
|
+
attributeValues: Record<string, unknown>;
|
|
133
|
+
files: File[];
|
|
134
|
+
}
|
|
135
|
+
export declare const DEFAULT_KANBAN_RENDERER_SETTINGS: KanbanRendererSettings;
|
|
99
136
|
/**
|
|
100
137
|
* Look up an attribute by id from a contribution-provided descriptor list.
|
|
101
138
|
* Returns undefined for sentinels ("none", "manual") or unknown ids.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { KanbanRendererFilterState, KanbanRendererSavedView, KanbanRendererSettings } from './types';
|
|
2
|
+
interface KanbanRendererSnapshot {
|
|
3
|
+
settings: KanbanRendererSettings;
|
|
4
|
+
filters: KanbanRendererFilterState;
|
|
5
|
+
expandedGroups: Record<string, boolean>;
|
|
6
|
+
views: KanbanRendererSavedView[];
|
|
7
|
+
activeViewId: string;
|
|
8
|
+
}
|
|
9
|
+
interface KanbanRendererStoreInitialState {
|
|
10
|
+
settings?: Partial<KanbanRendererSettings>;
|
|
11
|
+
filters?: KanbanRendererFilterState;
|
|
12
|
+
expandedGroups?: Record<string, boolean>;
|
|
13
|
+
views?: KanbanRendererSavedView[];
|
|
14
|
+
activeViewId?: string;
|
|
15
|
+
}
|
|
16
|
+
interface KanbanRendererState extends KanbanRendererSnapshot {
|
|
17
|
+
setViewMode: (viewMode: KanbanRendererSettings["viewMode"]) => void;
|
|
18
|
+
setColumnGrouping: (columnGrouping: KanbanRendererSettings["columnGrouping"]) => void;
|
|
19
|
+
setRowGrouping: (rowGrouping: KanbanRendererSettings["rowGrouping"]) => void;
|
|
20
|
+
setOrdering: (ordering: KanbanRendererSettings["ordering"]) => void;
|
|
21
|
+
setOrderingAttributeId: (attributeId: KanbanRendererSettings["ordering"]["attributeId"]) => void;
|
|
22
|
+
setDisplayProperties: (displayProperties: string[]) => void;
|
|
23
|
+
toggleSortDirection: () => void;
|
|
24
|
+
toggleDisplayProperty: (property: string) => void;
|
|
25
|
+
setFilter: (attributeId: string, values: string[]) => void;
|
|
26
|
+
toggleFilterValue: (attributeId: string, value: string) => void;
|
|
27
|
+
clearFilter: (attributeId: string) => void;
|
|
28
|
+
clearAllFilters: () => void;
|
|
29
|
+
setExpandedGroup: (groupId: string, isExpanded: boolean) => void;
|
|
30
|
+
activateView: (viewId: string) => void;
|
|
31
|
+
createView: (view: {
|
|
32
|
+
id: string;
|
|
33
|
+
title: string;
|
|
34
|
+
}) => void;
|
|
35
|
+
saveActiveView: () => void;
|
|
36
|
+
resetActiveView: () => void;
|
|
37
|
+
renameView: (viewId: string, title: string) => void;
|
|
38
|
+
duplicateView: (viewId: string, duplicate: {
|
|
39
|
+
id: string;
|
|
40
|
+
title: string;
|
|
41
|
+
}) => void;
|
|
42
|
+
deleteView: (viewId: string) => void;
|
|
43
|
+
setDefaultView: (viewId: string) => void;
|
|
44
|
+
reset: () => void;
|
|
45
|
+
}
|
|
46
|
+
interface CreateKanbanRendererStoreOptions {
|
|
47
|
+
storageKey: string;
|
|
48
|
+
initialState?: KanbanRendererStoreInitialState;
|
|
49
|
+
}
|
|
50
|
+
export declare const createKanbanRendererStore: (options: CreateKanbanRendererStoreOptions) => Omit<import('zustand').StoreApi<KanbanRendererState>, "setState" | "persist"> & {
|
|
51
|
+
setState(partial: KanbanRendererState | Partial<KanbanRendererState> | ((state: KanbanRendererState) => KanbanRendererState | Partial<KanbanRendererState>), replace?: false | undefined): unknown;
|
|
52
|
+
setState(state: KanbanRendererState | ((state: KanbanRendererState) => KanbanRendererState), replace: true): unknown;
|
|
53
|
+
persist: {
|
|
54
|
+
setOptions: (options: Partial<import('zustand/middleware').PersistOptions<KanbanRendererState, unknown, unknown>>) => void;
|
|
55
|
+
clearStorage: () => void;
|
|
56
|
+
rehydrate: () => Promise<void> | void;
|
|
57
|
+
hasHydrated: () => boolean;
|
|
58
|
+
onHydrate: (fn: (state: KanbanRendererState) => void) => () => void;
|
|
59
|
+
onFinishHydration: (fn: (state: KanbanRendererState) => void) => () => void;
|
|
60
|
+
getOptions: () => Partial<import('zustand/middleware').PersistOptions<KanbanRendererState, unknown, unknown>>;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
export declare const getKanbanRendererStore: (storageKey: string, initialState?: KanbanRendererStoreInitialState) => Omit<import('zustand').StoreApi<KanbanRendererState>, "setState" | "persist"> & {
|
|
64
|
+
setState(partial: KanbanRendererState | Partial<KanbanRendererState> | ((state: KanbanRendererState) => KanbanRendererState | Partial<KanbanRendererState>), replace?: false | undefined): unknown;
|
|
65
|
+
setState(state: KanbanRendererState | ((state: KanbanRendererState) => KanbanRendererState), replace: true): unknown;
|
|
66
|
+
persist: {
|
|
67
|
+
setOptions: (options: Partial<import('zustand/middleware').PersistOptions<KanbanRendererState, unknown, unknown>>) => void;
|
|
68
|
+
clearStorage: () => void;
|
|
69
|
+
rehydrate: () => Promise<void> | void;
|
|
70
|
+
hasHydrated: () => boolean;
|
|
71
|
+
onHydrate: (fn: (state: KanbanRendererState) => void) => () => void;
|
|
72
|
+
onFinishHydration: (fn: (state: KanbanRendererState) => void) => () => void;
|
|
73
|
+
getOptions: () => Partial<import('zustand/middleware').PersistOptions<KanbanRendererState, unknown, unknown>>;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
export declare const useKanbanRendererStore: <T>(storageKey: string, selector: (state: KanbanRendererState) => T, initialState?: KanbanRendererStoreInitialState) => T;
|
|
77
|
+
export declare const isActiveKanbanRendererViewDirty: (state: Pick<KanbanRendererState, "activeViewId" | "filters" | "settings" | "views">) => boolean;
|
|
78
|
+
export type { KanbanRendererSnapshot, KanbanRendererState, KanbanRendererStoreInitialState };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { HeaderProps, HeaderVariant } from './header';
|
|
2
|
+
export { Header } from './header';
|
|
3
|
+
export { HorizontalMenuStack } from './horizontal-menu-stack';
|
|
4
|
+
export type { ItemSectionProps } from './item-section';
|
|
5
|
+
export { ItemSection } from './item-section';
|
|
6
|
+
export { PANEL_HEADER_CONTROL_SIZE, PANEL_HEADER_HEIGHT, PANEL_HEADER_TAB_SIZE, } from './panel-header.constants';
|
|
7
|
+
export { ResizableSplitLayout } from './resizable-split-layout';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FlexProps } from '@chakra-ui/react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { ResizableSplitSide } from './resizable-split-layout.
|
|
3
|
+
import { ResizableSplitSide } from './resizable-split-layout.geometry';
|
|
4
4
|
interface ResizableSplitLayoutProps extends Omit<FlexProps, "children" | "onResize"> {
|
|
5
5
|
resizablePanel: ReactNode;
|
|
6
6
|
contentPanel: ReactNode;
|
|
@@ -12,8 +12,9 @@ interface ResizableSplitLayoutProps extends Omit<FlexProps, "children" | "onResi
|
|
|
12
12
|
collapsed?: boolean;
|
|
13
13
|
collapsible?: boolean;
|
|
14
14
|
resizeLabel?: string;
|
|
15
|
+
resizeHandleSizePx?: number;
|
|
15
16
|
showResizeSeparator?: boolean;
|
|
16
|
-
onSizeChange?: (
|
|
17
|
+
onSizeChange?: (size: number) => void;
|
|
17
18
|
onCollapsedChange?: (collapsed: boolean) => void;
|
|
18
19
|
}
|
|
19
20
|
export declare const ResizableSplitLayout: (props: ResizableSplitLayoutProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export type ResizableSplitSide = "left" | "right" | "top" | "bottom";
|
|
2
|
+
export declare const getResizableSplitAxis: (side: ResizableSplitSide) => {
|
|
3
|
+
readonly rootDirection: "row";
|
|
4
|
+
readonly dimension: "width";
|
|
5
|
+
readonly separatorOrientation: "vertical";
|
|
6
|
+
readonly cursor: "col-resize";
|
|
7
|
+
readonly pointerCoordinate: "clientX";
|
|
8
|
+
readonly deltaDirection: 1;
|
|
9
|
+
readonly panelFirst: true;
|
|
10
|
+
} | {
|
|
11
|
+
readonly rootDirection: "row";
|
|
12
|
+
readonly dimension: "width";
|
|
13
|
+
readonly separatorOrientation: "vertical";
|
|
14
|
+
readonly cursor: "col-resize";
|
|
15
|
+
readonly pointerCoordinate: "clientX";
|
|
16
|
+
readonly deltaDirection: -1;
|
|
17
|
+
readonly panelFirst: false;
|
|
18
|
+
} | {
|
|
19
|
+
readonly rootDirection: "column";
|
|
20
|
+
readonly dimension: "height";
|
|
21
|
+
readonly separatorOrientation: "horizontal";
|
|
22
|
+
readonly cursor: "row-resize";
|
|
23
|
+
readonly pointerCoordinate: "clientY";
|
|
24
|
+
readonly deltaDirection: 1;
|
|
25
|
+
readonly panelFirst: true;
|
|
26
|
+
} | {
|
|
27
|
+
readonly rootDirection: "column";
|
|
28
|
+
readonly dimension: "height";
|
|
29
|
+
readonly separatorOrientation: "horizontal";
|
|
30
|
+
readonly cursor: "row-resize";
|
|
31
|
+
readonly pointerCoordinate: "clientY";
|
|
32
|
+
readonly deltaDirection: -1;
|
|
33
|
+
readonly panelFirst: false;
|
|
34
|
+
};
|
|
35
|
+
export declare const resolveResizableBounds: (input: {
|
|
36
|
+
rootSize: number;
|
|
37
|
+
fallbackRootSize: number;
|
|
38
|
+
minSize: number;
|
|
39
|
+
maxSize?: number;
|
|
40
|
+
contentMinSize: number;
|
|
41
|
+
}) => {
|
|
42
|
+
minSize: number;
|
|
43
|
+
maxSize: number;
|
|
44
|
+
};
|
|
45
|
+
export declare const resolveDraggedPanelSize: (input: {
|
|
46
|
+
side: ResizableSplitSide;
|
|
47
|
+
startSize: number;
|
|
48
|
+
pointerDelta: number;
|
|
49
|
+
minSize: number;
|
|
50
|
+
maxSize: number;
|
|
51
|
+
collapsible: boolean;
|
|
52
|
+
}) => {
|
|
53
|
+
rawSize: number;
|
|
54
|
+
size: number;
|
|
55
|
+
collapsed: boolean;
|
|
56
|
+
};
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { KeyboardEvent as ReactKeyboardEvent, PointerEvent as ReactPointerEvent } from 'react';
|
|
2
|
-
|
|
2
|
+
import { getResizableSplitAxis } from './resizable-split-layout.geometry';
|
|
3
3
|
interface ResizeHandleProps {
|
|
4
|
+
axis: ReturnType<typeof getResizableSplitAxis>;
|
|
4
5
|
bounds: {
|
|
5
6
|
minSize: number;
|
|
6
7
|
maxSize: number;
|
|
7
8
|
};
|
|
9
|
+
collapsed: boolean;
|
|
10
|
+
collapsible: boolean;
|
|
8
11
|
contentPanelId: string;
|
|
9
12
|
resizablePanelId: string;
|
|
13
|
+
resizeHandleSizePx: number;
|
|
10
14
|
resizeLabel: string;
|
|
11
|
-
|
|
15
|
+
resolvedPanelSize: number;
|
|
12
16
|
showResizeSeparator: boolean;
|
|
13
17
|
onResizeKeyDown: (event: ReactKeyboardEvent<HTMLDivElement>) => void;
|
|
14
18
|
onResizeStart: (event: ReactPointerEvent<HTMLDivElement>) => void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { KeyboardEvent as ReactKeyboardEvent, ReactNode, PointerEvent as ReactPointerEvent, RefObject } from 'react';
|
|
2
|
+
import { getResizableSplitAxis } from './resizable-split-layout.geometry';
|
|
3
|
+
interface ResizableSplitPanelsProps {
|
|
4
|
+
axis: ReturnType<typeof getResizableSplitAxis>;
|
|
5
|
+
bounds: {
|
|
6
|
+
minSize: number;
|
|
7
|
+
maxSize: number;
|
|
8
|
+
};
|
|
9
|
+
collapsed: boolean;
|
|
10
|
+
collapsible: boolean;
|
|
11
|
+
contentPanel: ReactNode;
|
|
12
|
+
contentPanelId: string;
|
|
13
|
+
contentPanelRef: RefObject<HTMLDivElement | null>;
|
|
14
|
+
resizablePanel: ReactNode;
|
|
15
|
+
resizablePanelId: string;
|
|
16
|
+
resizablePanelRef: RefObject<HTMLDivElement | null>;
|
|
17
|
+
resizeHandleSizePx: number;
|
|
18
|
+
resizeLabel: string;
|
|
19
|
+
resolvedPanelSize: number;
|
|
20
|
+
showResizeSeparator: boolean;
|
|
21
|
+
onResizeKeyDown: (event: ReactKeyboardEvent<HTMLDivElement>) => void;
|
|
22
|
+
onResizeStart: (event: ReactPointerEvent<HTMLDivElement>) => void;
|
|
23
|
+
}
|
|
24
|
+
export declare const ResizableSplitPanels: (props: ResizableSplitPanelsProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export {};
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { ListRowItem, ListRowProps } from './list-row.types';
|
|
2
|
+
export declare const createResourceRowActions: (item: ListRowItem, showContextMenuTrigger?: boolean) => import('./list-row.types').ListRowAction[] | {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
icon: import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
menuItems: import('./list-row.types').ListRowActionMenuItem[];
|
|
7
|
+
}[];
|
|
2
8
|
export declare const ListRowContent: (props: {
|
|
3
9
|
item: ListRowItem;
|
|
4
10
|
isExpanded: boolean;
|
|
@@ -6,4 +12,5 @@ export declare const ListRowContent: (props: {
|
|
|
6
12
|
isDisabled: boolean;
|
|
7
13
|
tone: ListRowProps["tone"];
|
|
8
14
|
variant: ListRowProps["variant"];
|
|
15
|
+
showContextMenuTrigger: boolean;
|
|
9
16
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,6 +13,7 @@ export interface ListRowActionContext {
|
|
|
13
13
|
export interface ListRowActionMenuItem {
|
|
14
14
|
id: string;
|
|
15
15
|
label: string;
|
|
16
|
+
commandId?: string;
|
|
16
17
|
description?: string;
|
|
17
18
|
icon?: ReactNode | ComponentType<{
|
|
18
19
|
size?: number | string;
|
|
@@ -37,7 +38,7 @@ export interface ListRowAction {
|
|
|
37
38
|
menuItems?: ListRowActionMenuItem[];
|
|
38
39
|
onAction?: (context: ListRowActionContext) => void;
|
|
39
40
|
}
|
|
40
|
-
export type ListRowVariant = "default" | "compact" | "tree" | "empty-state";
|
|
41
|
+
export type ListRowVariant = "default" | "compact" | "collection" | "full-width" | "tree" | "empty-state";
|
|
41
42
|
export type ListRowTone = "default" | "danger";
|
|
42
43
|
export type ListRowMenuPlacement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
|
|
43
44
|
/** Data model for one reusable row, including labels, icons, menus, actions, and children. */
|
|
@@ -80,6 +81,8 @@ export interface ListRowProps extends ListRowItem, Omit<ListRowRootProps, "as" |
|
|
|
80
81
|
isExpanded?: boolean;
|
|
81
82
|
/** Forces the expand affordance when children are lazy-loaded or externally controlled. */
|
|
82
83
|
showExpandToggle?: boolean;
|
|
84
|
+
/** Shows context-menu actions from an inline trigger in addition to right-click access. */
|
|
85
|
+
showContextMenuTrigger?: boolean;
|
|
83
86
|
variant?: ListRowVariant;
|
|
84
87
|
tone?: ListRowTone;
|
|
85
88
|
selectedBg?: ListRowRootProps["bg"];
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlexProps } from '@chakra-ui/react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
export interface AttachedMenuProps extends Omit<FlexProps, "children"> {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const AttachedMenu: (props: AttachedMenuProps) => import("react/jsx-runtime").JSX.Element;
|