@ciridae/ui 0.17.0 → 1.0.1
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/README.md +17 -12
- package/dist/chat/chat-api-error.d.ts +14 -0
- package/dist/chat/chat-api-error.js +11 -0
- package/dist/chat/chat-client.d.ts +37 -0
- package/dist/chat/chat-client.js +66 -0
- package/dist/chat/chat-hooks.d.ts +4 -0
- package/dist/chat/chat-hooks.js +4 -0
- package/dist/chat/chat-query-keys.d.ts +10 -0
- package/dist/chat/chat-query-keys.js +8 -0
- package/dist/chat/contract.d.ts +488 -0
- package/dist/chat/contract.js +223 -0
- package/dist/chat/conversation-items-query-options.d.ts +382 -0
- package/dist/chat/conversation-items-query-options.js +15 -0
- package/dist/chat/describe-tool-call.d.ts +5 -0
- package/dist/chat/describe-tool-call.js +33 -0
- package/dist/chat/fetch-new-conversation-items.d.ts +10 -0
- package/dist/chat/fetch-new-conversation-items.js +38 -0
- package/dist/chat/message-group-position.d.ts +17 -0
- package/dist/chat/message-group-position.js +25 -0
- package/dist/chat/message-text.d.ts +23 -0
- package/dist/chat/message-text.js +118 -0
- package/dist/chat/mock-chat-client.d.ts +97 -0
- package/dist/chat/mock-chat-client.js +566 -0
- package/dist/chat/use-chat-conversation.d.ts +43 -0
- package/dist/chat/use-chat-conversation.js +156 -0
- package/dist/chat/use-conversation-list.d.ts +32 -0
- package/dist/chat/use-conversation-list.js +19 -0
- package/dist/ciridae.css +60 -479
- package/dist/components/activity-feed.d.ts +80 -0
- package/dist/components/activity-feed.js +373 -0
- package/dist/components/agent-work.d.ts +76 -0
- package/dist/components/agent-work.js +224 -0
- package/dist/components/app-navigation.d.ts +66 -0
- package/dist/components/app-navigation.js +102 -0
- package/dist/components/badge.d.ts +14 -0
- package/dist/components/badge.js +107 -0
- package/dist/components/brand-icons.d.ts +17 -0
- package/dist/components/brand-icons.js +21 -0
- package/dist/components/breakpoint.d.ts +7 -0
- package/dist/components/breakpoint.js +16 -0
- package/dist/components/bulk-action-bar.d.ts +15 -0
- package/dist/components/bulk-action-bar.js +45 -0
- package/dist/components/button.d.ts +52 -0
- package/dist/components/button.js +272 -0
- package/dist/components/calendar.d.ts +14 -0
- package/dist/components/calendar.js +158 -0
- package/dist/components/centered-page.d.ts +21 -0
- package/dist/components/centered-page.js +55 -0
- package/dist/components/chart.d.ts +22 -0
- package/dist/components/chart.js +116 -0
- package/dist/components/chat-page.d.ts +34 -0
- package/dist/components/chat-page.js +171 -0
- package/dist/components/chat-sheet-controller.d.ts +50 -0
- package/dist/components/chat-sheet-controller.js +133 -0
- package/dist/components/chat-sheet.d.ts +80 -0
- package/dist/components/chat-sheet.js +544 -0
- package/dist/components/chat.d.ts +135 -0
- package/dist/components/chat.js +545 -0
- package/dist/components/checkbox-item.d.ts +11 -0
- package/dist/components/checkbox-item.js +45 -0
- package/dist/components/checkbox-list.d.ts +51 -0
- package/dist/components/checkbox-list.js +167 -0
- package/dist/components/chip.d.ts +17 -0
- package/dist/components/chip.js +43 -0
- package/dist/components/collapsible.d.ts +8 -0
- package/dist/components/collapsible.js +41 -0
- package/dist/components/color-theme.d.ts +40 -0
- package/dist/components/color-theme.js +109 -0
- package/dist/components/column-settings.d.ts +22 -0
- package/dist/components/column-settings.js +112 -0
- package/dist/components/command-match.d.ts +7 -0
- package/dist/components/command-match.js +50 -0
- package/dist/components/command-menu.d.ts +43 -0
- package/dist/components/command-menu.js +339 -0
- package/dist/components/command-palette.d.ts +36 -0
- package/dist/components/command-palette.js +77 -0
- package/dist/components/controllable-state.d.ts +5 -0
- package/dist/components/controllable-state.js +15 -0
- package/dist/components/copyable-id.d.ts +37 -0
- package/dist/components/copyable-id.js +136 -0
- package/dist/components/data-display.d.ts +47 -0
- package/dist/components/data-display.js +221 -0
- package/dist/components/data-grid.d.ts +170 -0
- package/dist/components/data-grid.js +829 -0
- package/dist/components/date-range-picker.d.ts +44 -0
- package/dist/components/date-range-picker.js +153 -0
- package/dist/components/date-time.d.ts +11 -0
- package/dist/components/date-time.js +44 -0
- package/dist/components/dialog-height-context.d.ts +2 -0
- package/dist/components/dialog-height-context.js +3 -0
- package/dist/components/document-viewer.d.ts +62 -0
- package/dist/components/document-viewer.js +419 -0
- package/dist/components/drawer.d.ts +44 -0
- package/dist/components/drawer.js +236 -0
- package/dist/components/dropzone.d.ts +47 -0
- package/dist/components/dropzone.js +370 -0
- package/dist/components/editable-field.d.ts +99 -0
- package/dist/components/editable-field.js +422 -0
- package/dist/components/email-input.d.ts +12 -0
- package/dist/components/email-input.js +83 -0
- package/dist/components/environment-frame.d.ts +13 -0
- package/dist/components/environment-frame.js +42 -0
- package/dist/components/expandable-text.d.ts +9 -0
- package/dist/components/expandable-text.js +48 -0
- package/dist/components/feedback-screenshot.d.ts +19 -0
- package/dist/components/feedback-screenshot.js +162 -0
- package/dist/components/feedback-sheet.d.ts +80 -0
- package/dist/components/feedback-sheet.js +475 -0
- package/dist/components/field-context.d.ts +23 -0
- package/dist/components/field-context.js +15 -0
- package/dist/components/filter-bar.d.ts +77 -0
- package/dist/components/filter-bar.js +350 -0
- package/dist/components/form-controls.d.ts +53 -0
- package/dist/components/form-controls.js +123 -0
- package/dist/components/form-layout.d.ts +32 -0
- package/dist/components/form-layout.js +72 -0
- package/dist/components/hotkeys.d.ts +27 -0
- package/dist/components/hotkeys.js +70 -0
- package/dist/components/icon.d.ts +58 -0
- package/dist/components/icon.js +42 -0
- package/dist/components/input.d.ts +36 -0
- package/dist/components/input.js +249 -0
- package/dist/components/keyboard-shortcuts.d.ts +10 -0
- package/dist/components/keyboard-shortcuts.js +91 -0
- package/dist/components/keycap.d.ts +12 -0
- package/dist/components/keycap.js +45 -0
- package/dist/components/layout.d.ts +174 -0
- package/dist/components/layout.js +282 -0
- package/dist/components/lightbox.d.ts +14 -0
- package/dist/components/lightbox.js +117 -0
- package/dist/components/link.d.ts +13 -0
- package/dist/components/link.js +37 -0
- package/dist/components/locale.d.ts +463 -0
- package/dist/components/locale.js +501 -0
- package/dist/components/log-list.d.ts +20 -0
- package/dist/components/log-list.js +92 -0
- package/dist/components/mention-input.d.ts +50 -0
- package/dist/components/mention-input.js +503 -0
- package/dist/components/menu.d.ts +76 -0
- package/dist/components/menu.js +112 -0
- package/dist/components/meter.d.ts +14 -0
- package/dist/components/meter.js +44 -0
- package/dist/components/navigation.d.ts +21 -0
- package/dist/components/navigation.js +75 -0
- package/dist/components/notification-tray.d.ts +47 -0
- package/dist/components/notification-tray.js +218 -0
- package/dist/components/overlays.d.ts +107 -0
- package/dist/components/overlays.js +240 -0
- package/dist/components/page-frame.d.ts +65 -0
- package/dist/components/page-frame.js +94 -0
- package/dist/components/panel.d.ts +24 -0
- package/dist/components/panel.js +107 -0
- package/dist/components/profile-header.d.ts +15 -0
- package/dist/components/profile-header.js +40 -0
- package/dist/components/progress.d.ts +5 -0
- package/dist/components/progress.js +18 -0
- package/dist/components/project-avatar.d.ts +12 -0
- package/dist/components/project-avatar.js +22 -0
- package/dist/components/radio-card.d.ts +22 -0
- package/dist/components/radio-card.js +66 -0
- package/dist/components/recent-items.d.ts +28 -0
- package/dist/components/recent-items.js +63 -0
- package/dist/components/record.d.ts +95 -0
- package/dist/components/record.js +282 -0
- package/dist/components/scroll-area.d.ts +16 -0
- package/dist/components/scroll-area.js +50 -0
- package/dist/components/secret-dialog.d.ts +10 -0
- package/dist/components/secret-dialog.js +12 -0
- package/dist/components/segmented-bar.d.ts +23 -0
- package/dist/components/segmented-bar.js +75 -0
- package/dist/components/select.d.ts +84 -0
- package/dist/components/select.js +374 -0
- package/dist/components/settings.d.ts +34 -0
- package/dist/components/settings.js +56 -0
- package/dist/components/shell-skeleton.d.ts +7 -0
- package/dist/components/shell-skeleton.js +15 -0
- package/dist/components/shell.d.ts +62 -0
- package/dist/components/shell.js +415 -0
- package/dist/components/side-panel.d.ts +36 -0
- package/dist/components/side-panel.js +184 -0
- package/dist/components/sidebar.d.ts +35 -0
- package/dist/components/sidebar.js +207 -0
- package/dist/components/site-banner.d.ts +25 -0
- package/dist/components/site-banner.js +30 -0
- package/dist/components/skeleton.d.ts +15 -0
- package/dist/components/skeleton.js +61 -0
- package/dist/components/skeletons.d.ts +28 -0
- package/dist/components/skeletons.js +60 -0
- package/dist/components/stages.d.ts +97 -0
- package/dist/components/stages.js +365 -0
- package/dist/components/stat-card.d.ts +34 -0
- package/dist/components/stat-card.js +117 -0
- package/dist/components/status-banner.d.ts +17 -0
- package/dist/components/status-banner.js +132 -0
- package/dist/components/status.d.ts +32 -0
- package/dist/components/status.js +93 -0
- package/dist/components/steps.d.ts +17 -0
- package/dist/components/steps.js +51 -0
- package/dist/components/switch.d.ts +6 -0
- package/dist/components/switch.js +39 -0
- package/dist/components/tabs.d.ts +48 -0
- package/dist/components/tabs.js +247 -0
- package/dist/components/theme-customizer.d.ts +53 -0
- package/dist/components/theme-customizer.js +116 -0
- package/dist/components/toast.d.ts +23 -0
- package/dist/components/toast.js +140 -0
- package/dist/components/user-chip.d.ts +66 -0
- package/dist/components/user-chip.js +174 -0
- package/dist/components/wizard.d.ts +33 -0
- package/dist/components/wizard.js +91 -0
- package/dist/feedback/client.d.ts +37 -0
- package/dist/feedback/client.js +125 -0
- package/dist/feedback/comment-types.d.ts +17 -0
- package/dist/feedback/contract.d.ts +252 -0
- package/dist/feedback/contract.js +32 -0
- package/dist/feedback/feedback-cache.d.ts +6 -0
- package/dist/feedback/feedback-cache.js +58 -0
- package/dist/feedback/feedback-center-model.d.ts +8 -0
- package/dist/feedback/feedback-center-model.js +37 -0
- package/dist/feedback/feedback-composer-types.d.ts +11 -0
- package/dist/feedback/feedback-controller.d.ts +56 -0
- package/dist/feedback/feedback-controller.js +181 -0
- package/dist/feedback/feedback-tracking-types.d.ts +14 -0
- package/dist/feedback/generated/index.d.ts +1 -0
- package/dist/feedback/generated/index.js +2 -0
- package/dist/feedback/generated/types.gen.d.ts +737 -0
- package/dist/feedback/generated/types.gen.js +2 -0
- package/dist/feedback/generated/zod.gen.d.ts +738 -0
- package/dist/feedback/generated/zod.gen.js +293 -0
- package/dist/feedback/get-response-error-id.d.ts +1 -0
- package/dist/feedback/get-response-error-id.js +7 -0
- package/dist/feedback/operator-client.d.ts +21 -0
- package/dist/feedback/operator-client.js +96 -0
- package/dist/feedback/operator-contract.d.ts +111 -0
- package/dist/feedback/operator-contract.js +22 -0
- package/dist/feedback/operator-controller.d.ts +80 -0
- package/dist/feedback/operator-controller.js +43 -0
- package/dist/feedback/require-config.d.ts +2 -0
- package/dist/feedback/require-config.js +7 -0
- package/dist/feedback/submit-feedback-with-attachments.d.ts +10 -0
- package/dist/feedback/submit-feedback-with-attachments.js +10 -0
- package/dist/format/compact-number.d.ts +2 -0
- package/dist/format/compact-number.js +8 -0
- package/dist/format/money.d.ts +13 -0
- package/dist/format/money.js +21 -0
- package/dist/format/usd.d.ts +2 -0
- package/dist/format/usd.js +16 -0
- package/dist/preset.d.ts +18 -0
- package/dist/preset.js +470 -0
- package/dist/styled-system/css/conditions.mjs +1 -1
- package/dist/styled-system/css/css.mjs +3 -3
- package/dist/styled-system/patterns/box.d.ts +1 -1
- package/dist/styled-system/patterns/container.d.ts +1 -1
- package/dist/styled-system/patterns/link-overlay.d.ts +1 -1
- package/dist/styled-system/patterns/visually-hidden.d.ts +1 -1
- package/dist/styled-system/styles.css +7834 -458
- package/dist/styled-system/tokens/index.mjs +1465 -677
- package/dist/styled-system/tokens/tokens.d.ts +32 -26
- package/dist/styled-system/types/conditions.d.ts +11 -1
- package/dist/styled-system/types/prop-type.d.ts +12 -23
- package/dist/styled-system/types/style-props.d.ts +25 -24
- package/dist/styles.css +60 -479
- package/dist/theme/breakpoints.d.ts +15 -0
- package/dist/theme/breakpoints.js +12 -0
- package/dist/theme/color.d.ts +2 -0
- package/dist/theme/color.js +27 -0
- package/dist/theme/derive.d.ts +5 -0
- package/dist/theme/derive.js +43 -0
- package/dist/theme/index.d.ts +4 -0
- package/dist/theme/index.js +9 -0
- package/dist/theme/options.d.ts +32 -0
- package/dist/theme/options.js +9 -0
- package/dist/theme/palettes.d.ts +60 -0
- package/dist/theme/palettes.js +185 -0
- package/dist/theme/tokens.d.ts +29 -0
- package/dist/theme/tokens.js +188 -0
- package/package.json +475 -68
- package/dist/assets/ciridae/brand-background-dark.webp +0 -0
- package/dist/assets/ciridae/brand-background-light.webp +0 -0
- package/dist/assets/ciridae/ciridae-black.svg +0 -17
- package/dist/assets/ciridae/ciridae-brand-assets.d.ts +0 -25
- package/dist/assets/ciridae/ciridae-brand-assets.js +0 -25
- package/dist/assets/ciridae/ciridae-icon-black.png +0 -0
- package/dist/assets/ciridae/ciridae-icon-white.png +0 -0
- package/dist/assets/ciridae/ciridae-ui-wordmark-black.png +0 -0
- package/dist/assets/ciridae/ciridae-ui-wordmark-white.png +0 -0
- package/dist/assets/ciridae/ciridae-white.svg +0 -17
- package/dist/assets/ciridae/ciridae-wordmark-black.png +0 -0
- package/dist/assets/ciridae/ciridae-wordmark-white.png +0 -0
- package/dist/assets/ciridae/favicon.ico +0 -0
- package/dist/assets/ciridae/logo-white.png +0 -0
- package/dist/assets/ciridae/sign-in-screenshot.png +0 -0
- package/dist/components/blocks/admin-users-table.d.ts +0 -22
- package/dist/components/blocks/admin-users-table.js +0 -115
- package/dist/components/blocks/comment-composer.d.ts +0 -18
- package/dist/components/blocks/comment-composer.js +0 -137
- package/dist/components/blocks/comment-item.d.ts +0 -8
- package/dist/components/blocks/comment-item.js +0 -45
- package/dist/components/blocks/comment-thread.d.ts +0 -19
- package/dist/components/blocks/comment-thread.js +0 -37
- package/dist/components/blocks/comment-types.d.ts +0 -18
- package/dist/components/blocks/comment-types.js +0 -11
- package/dist/components/blocks/copy-field.d.ts +0 -18
- package/dist/components/blocks/copy-field.js +0 -61
- package/dist/components/blocks/feedback-center-comments.d.ts +0 -16
- package/dist/components/blocks/feedback-center-comments.js +0 -61
- package/dist/components/blocks/feedback-center-footer.d.ts +0 -12
- package/dist/components/blocks/feedback-center-footer.js +0 -10
- package/dist/components/blocks/feedback-center-sheet-parts.d.ts +0 -40
- package/dist/components/blocks/feedback-center-sheet-parts.js +0 -39
- package/dist/components/blocks/feedback-center-sheet.d.ts +0 -28
- package/dist/components/blocks/feedback-center-sheet.js +0 -106
- package/dist/components/blocks/feedback-composer-parts.d.ts +0 -16
- package/dist/components/blocks/feedback-composer-parts.js +0 -43
- package/dist/components/blocks/feedback-composer-types.d.ts +0 -12
- package/dist/components/blocks/feedback-composer.d.ts +0 -24
- package/dist/components/blocks/feedback-composer.js +0 -82
- package/dist/components/blocks/feedback-date-format.d.ts +0 -5
- package/dist/components/blocks/feedback-date-format.js +0 -11
- package/dist/components/blocks/feedback-detail-sheet.d.ts +0 -15
- package/dist/components/blocks/feedback-detail-sheet.js +0 -59
- package/dist/components/blocks/feedback-emergency-fields.d.ts +0 -17
- package/dist/components/blocks/feedback-emergency-fields.js +0 -32
- package/dist/components/blocks/feedback-metrics.d.ts +0 -6
- package/dist/components/blocks/feedback-metrics.js +0 -15
- package/dist/components/blocks/feedback-sheet.d.ts +0 -8
- package/dist/components/blocks/feedback-sheet.js +0 -29
- package/dist/components/blocks/feedback-status-badge.d.ts +0 -6
- package/dist/components/blocks/feedback-status-badge.js +0 -15
- package/dist/components/blocks/feedback-table-row.d.ts +0 -6
- package/dist/components/blocks/feedback-table-row.js +0 -27
- package/dist/components/blocks/feedback-table-sort.d.ts +0 -11
- package/dist/components/blocks/feedback-table-sort.js +0 -82
- package/dist/components/blocks/feedback-table.d.ts +0 -16
- package/dist/components/blocks/feedback-table.js +0 -45
- package/dist/components/blocks/feedback-tracking-types.d.ts +0 -102
- package/dist/components/blocks/feedback-tracking-types.js +0 -54
- package/dist/components/blocks/feedback-triage-timeline.d.ts +0 -11
- package/dist/components/blocks/feedback-triage-timeline.js +0 -17
- package/dist/components/blocks/feedback-type-badge.d.ts +0 -11
- package/dist/components/blocks/feedback-type-badge.js +0 -18
- package/dist/components/blocks/feedback-unread-badge.d.ts +0 -6
- package/dist/components/blocks/feedback-unread-badge.js +0 -9
- package/dist/components/blocks/feedback-user-detail.d.ts +0 -11
- package/dist/components/blocks/feedback-user-detail.js +0 -63
- package/dist/components/blocks/feedback-user-list.d.ts +0 -11
- package/dist/components/blocks/feedback-user-list.js +0 -41
- package/dist/components/blocks/generated-connect-link.d.ts +0 -22
- package/dist/components/blocks/generated-connect-link.js +0 -68
- package/dist/components/blocks/invite-user-sheet.d.ts +0 -20
- package/dist/components/blocks/invite-user-sheet.js +0 -72
- package/dist/components/blocks/kanban-board-parts.d.ts +0 -26
- package/dist/components/blocks/kanban-board-parts.js +0 -83
- package/dist/components/blocks/kanban-board-utils.d.ts +0 -58
- package/dist/components/blocks/kanban-board-utils.js +0 -140
- package/dist/components/blocks/kanban-board.d.ts +0 -16
- package/dist/components/blocks/kanban-board.js +0 -35
- package/dist/components/blocks/kanban-card.d.ts +0 -10
- package/dist/components/blocks/kanban-card.js +0 -34
- package/dist/components/blocks/kanban-column.d.ts +0 -17
- package/dist/components/blocks/kanban-column.js +0 -34
- package/dist/components/blocks/kanban-detail-sheet.d.ts +0 -17
- package/dist/components/blocks/kanban-detail-sheet.js +0 -34
- package/dist/components/blocks/kanban-types.d.ts +0 -24
- package/dist/components/blocks/mcp-access-grouped-tool-picker.d.ts +0 -19
- package/dist/components/blocks/mcp-access-grouped-tool-picker.js +0 -116
- package/dist/components/blocks/mcp-access-tool-picker-internals.d.ts +0 -35
- package/dist/components/blocks/mcp-access-tool-picker-internals.js +0 -24
- package/dist/components/blocks/mcp-access-tool-picker.d.ts +0 -22
- package/dist/components/blocks/mcp-access-tool-picker.js +0 -33
- package/dist/components/blocks/mcp-access-types.d.ts +0 -42
- package/dist/components/blocks/mcp-access-types.js +0 -7
- package/dist/components/blocks/mcp-client-setup.d.ts +0 -29
- package/dist/components/blocks/mcp-client-setup.js +0 -58
- package/dist/components/blocks/mcp-connect-clients.d.ts +0 -43
- package/dist/components/blocks/mcp-connect-clients.js +0 -66
- package/dist/components/blocks/mcp-plan-choice.d.ts +0 -17
- package/dist/components/blocks/mcp-plan-choice.js +0 -28
- package/dist/components/blocks/submit-feedback-composer.d.ts +0 -5
- package/dist/components/blocks/submit-feedback-composer.js +0 -40
- package/dist/components/blocks/timestamp-format.d.ts +0 -14
- package/dist/components/blocks/timestamp-format.js +0 -72
- package/dist/components/blocks/use-feedback-composer-state.d.ts +0 -27
- package/dist/components/blocks/use-feedback-composer-state.js +0 -60
- package/dist/components/blocks/use-reveal-thread-end.d.ts +0 -11
- package/dist/components/blocks/use-reveal-thread-end.js +0 -25
- package/dist/components/pages/admin-users-page.d.ts +0 -11
- package/dist/components/pages/admin-users-page.js +0 -30
- package/dist/components/pages/feedback-stakeholder-page-parts.d.ts +0 -18
- package/dist/components/pages/feedback-stakeholder-page-parts.js +0 -36
- package/dist/components/pages/feedback-stakeholder-page.d.ts +0 -9
- package/dist/components/pages/feedback-stakeholder-page.js +0 -66
- package/dist/components/pages/kanban-page.d.ts +0 -13
- package/dist/components/pages/kanban-page.js +0 -68
- package/dist/components/ui/accordion.d.ts +0 -7
- package/dist/components/ui/accordion.js +0 -17
- package/dist/components/ui/alert-dialog.d.ts +0 -22
- package/dist/components/ui/alert-dialog.js +0 -51
- package/dist/components/ui/alert.d.ts +0 -9
- package/dist/components/ui/alert.js +0 -24
- package/dist/components/ui/app-shell-page.d.ts +0 -22
- package/dist/components/ui/app-shell-page.js +0 -21
- package/dist/components/ui/app-shell.d.ts +0 -45
- package/dist/components/ui/app-shell.js +0 -44
- package/dist/components/ui/aspect-ratio.d.ts +0 -3
- package/dist/components/ui/aspect-ratio.js +0 -7
- package/dist/components/ui/avatar.d.ts +0 -11
- package/dist/components/ui/avatar.js +0 -22
- package/dist/components/ui/badge-variants.d.ts +0 -100
- package/dist/components/ui/badge-variants.js +0 -140
- package/dist/components/ui/badge.d.ts +0 -6
- package/dist/components/ui/badge.js +0 -9
- package/dist/components/ui/breadcrumb.d.ts +0 -11
- package/dist/components/ui/breadcrumb.js +0 -27
- package/dist/components/ui/button-group-variants.d.ts +0 -6
- package/dist/components/ui/button-group-variants.js +0 -13
- package/dist/components/ui/button-group.d.ts +0 -8
- package/dist/components/ui/button-group.js +0 -16
- package/dist/components/ui/button-variants.d.ts +0 -133
- package/dist/components/ui/button-variants.js +0 -170
- package/dist/components/ui/button.d.ts +0 -8
- package/dist/components/ui/button.js +0 -59
- package/dist/components/ui/calendar.d.ts +0 -10
- package/dist/components/ui/calendar.js +0 -99
- package/dist/components/ui/card.d.ts +0 -14
- package/dist/components/ui/card.js +0 -28
- package/dist/components/ui/carousel.d.ts +0 -19
- package/dist/components/ui/carousel.js +0 -104
- package/dist/components/ui/chart-context.d.ts +0 -33
- package/dist/components/ui/chart-context.js +0 -36
- package/dist/components/ui/chart-panel.d.ts +0 -11
- package/dist/components/ui/chart-panel.js +0 -6
- package/dist/components/ui/chart-tooltip.d.ts +0 -13
- package/dist/components/ui/chart-tooltip.js +0 -84
- package/dist/components/ui/chart.d.ts +0 -23
- package/dist/components/ui/chart.js +0 -52
- package/dist/components/ui/checkbox.d.ts +0 -4
- package/dist/components/ui/checkbox.js +0 -9
- package/dist/components/ui/ciridae-ui-provider.d.ts +0 -8
- package/dist/components/ui/ciridae-ui-provider.js +0 -14
- package/dist/components/ui/collapsible.d.ts +0 -5
- package/dist/components/ui/collapsible.js +0 -12
- package/dist/components/ui/color-theme-context.d.ts +0 -28
- package/dist/components/ui/color-theme-context.js +0 -3
- package/dist/components/ui/color-theme.d.ts +0 -5
- package/dist/components/ui/color-theme.js +0 -147
- package/dist/components/ui/combobox-anchor.d.ts +0 -3
- package/dist/components/ui/combobox-anchor.js +0 -5
- package/dist/components/ui/combobox.d.ts +0 -24
- package/dist/components/ui/combobox.js +0 -54
- package/dist/components/ui/command.d.ts +0 -19
- package/dist/components/ui/command.js +0 -38
- package/dist/components/ui/context-menu.d.ts +0 -30
- package/dist/components/ui/context-menu.js +0 -63
- package/dist/components/ui/data-table-column-settings.d.ts +0 -23
- package/dist/components/ui/data-table-column-settings.js +0 -170
- package/dist/components/ui/data-table-context.d.ts +0 -8
- package/dist/components/ui/data-table-context.js +0 -53
- package/dist/components/ui/data-table-controls.d.ts +0 -9
- package/dist/components/ui/data-table-controls.js +0 -30
- package/dist/components/ui/data-table-facet-filter.d.ts +0 -39
- package/dist/components/ui/data-table-facet-filter.js +0 -65
- package/dist/components/ui/data-table-grid.d.ts +0 -10
- package/dist/components/ui/data-table-grid.js +0 -34
- package/dist/components/ui/data-table-pagination.d.ts +0 -17
- package/dist/components/ui/data-table-pagination.js +0 -89
- package/dist/components/ui/data-table-search-input.d.ts +0 -14
- package/dist/components/ui/data-table-search-input.js +0 -15
- package/dist/components/ui/data-table-state.d.ts +0 -19
- package/dist/components/ui/data-table-state.js +0 -8
- package/dist/components/ui/data-table-tanstack.d.ts +0 -99
- package/dist/components/ui/data-table-tanstack.js +0 -128
- package/dist/components/ui/data-table.d.ts +0 -19
- package/dist/components/ui/data-table.js +0 -35
- package/dist/components/ui/dialog.d.ts +0 -23
- package/dist/components/ui/dialog.js +0 -48
- package/dist/components/ui/direction-context.d.ts +0 -3
- package/dist/components/ui/direction-context.js +0 -3
- package/dist/components/ui/direction.d.ts +0 -6
- package/dist/components/ui/direction.js +0 -7
- package/dist/components/ui/drawer.d.ts +0 -18
- package/dist/components/ui/drawer.js +0 -47
- package/dist/components/ui/dropdown-menu.d.ts +0 -30
- package/dist/components/ui/dropdown-menu.js +0 -63
- package/dist/components/ui/empty.d.ts +0 -11
- package/dist/components/ui/empty.js +0 -33
- package/dist/components/ui/expandable-data-table.d.ts +0 -24
- package/dist/components/ui/expandable-data-table.js +0 -62
- package/dist/components/ui/field.d.ts +0 -26
- package/dist/components/ui/field.js +0 -74
- package/dist/components/ui/file-upload-field-parts.d.ts +0 -21
- package/dist/components/ui/file-upload-field-parts.js +0 -55
- package/dist/components/ui/file-upload-field.d.ts +0 -16
- package/dist/components/ui/file-upload-field.js +0 -85
- package/dist/components/ui/form-context.d.ts +0 -23
- package/dist/components/ui/form-context.js +0 -35
- package/dist/components/ui/form-sheet.d.ts +0 -22
- package/dist/components/ui/form-sheet.js +0 -74
- package/dist/components/ui/form.d.ts +0 -12
- package/dist/components/ui/form.js +0 -38
- package/dist/components/ui/hover-card.d.ts +0 -10
- package/dist/components/ui/hover-card.js +0 -22
- package/dist/components/ui/input-group.d.ts +0 -16
- package/dist/components/ui/input-group.js +0 -62
- package/dist/components/ui/input-otp.d.ts +0 -11
- package/dist/components/ui/input-otp.js +0 -21
- package/dist/components/ui/input.d.ts +0 -3
- package/dist/components/ui/input.js +0 -6
- package/dist/components/ui/item.d.ts +0 -24
- package/dist/components/ui/item.js +0 -73
- package/dist/components/ui/kbd.d.ts +0 -3
- package/dist/components/ui/kbd.js +0 -9
- package/dist/components/ui/label.d.ts +0 -4
- package/dist/components/ui/label.js +0 -7
- package/dist/components/ui/loading-state.d.ts +0 -27
- package/dist/components/ui/loading-state.js +0 -44
- package/dist/components/ui/menubar.d.ts +0 -30
- package/dist/components/ui/menubar.js +0 -63
- package/dist/components/ui/metrics-strip.d.ts +0 -7
- package/dist/components/ui/metrics-strip.js +0 -18
- package/dist/components/ui/native-select.d.ts +0 -7
- package/dist/components/ui/native-select.js +0 -13
- package/dist/components/ui/navigation-menu-variants.d.ts +0 -2
- package/dist/components/ui/navigation-menu-variants.js +0 -3
- package/dist/components/ui/navigation-menu.d.ts +0 -13
- package/dist/components/ui/navigation-menu.js +0 -30
- package/dist/components/ui/page-header.d.ts +0 -33
- package/dist/components/ui/page-header.js +0 -54
- package/dist/components/ui/pagination.d.ts +0 -13
- package/dist/components/ui/pagination.js +0 -29
- package/dist/components/ui/popover.d.ts +0 -14
- package/dist/components/ui/popover.js +0 -34
- package/dist/components/ui/progress.d.ts +0 -4
- package/dist/components/ui/progress.js +0 -8
- package/dist/components/ui/property-list.d.ts +0 -6
- package/dist/components/ui/property-list.js +0 -15
- package/dist/components/ui/radio-group.d.ts +0 -5
- package/dist/components/ui/radio-group.js +0 -11
- package/dist/components/ui/registry-docs-api.d.ts +0 -11
- package/dist/components/ui/registry-docs-api.js +0 -9
- package/dist/components/ui/registry-docs-code.d.ts +0 -19
- package/dist/components/ui/registry-docs-code.js +0 -78
- package/dist/components/ui/registry-docs-showcase.d.ts +0 -11
- package/dist/components/ui/registry-docs-showcase.js +0 -27
- package/dist/components/ui/registry-docs.d.ts +0 -27
- package/dist/components/ui/registry-docs.js +0 -32
- package/dist/components/ui/resizable.d.ts +0 -14
- package/dist/components/ui/resizable.js +0 -15
- package/dist/components/ui/scroll-area.d.ts +0 -7
- package/dist/components/ui/scroll-area.js +0 -10
- package/dist/components/ui/select.d.ts +0 -15
- package/dist/components/ui/select.js +0 -38
- package/dist/components/ui/separator.d.ts +0 -4
- package/dist/components/ui/separator.js +0 -7
- package/dist/components/ui/sheet.d.ts +0 -21
- package/dist/components/ui/sheet.js +0 -62
- package/dist/components/ui/sidebar/context.d.ts +0 -27
- package/dist/components/ui/sidebar/context.js +0 -23
- package/dist/components/ui/sidebar/group.d.ts +0 -10
- package/dist/components/ui/sidebar/group.js +0 -18
- package/dist/components/ui/sidebar/layout.d.ts +0 -17
- package/dist/components/ui/sidebar/layout.js +0 -78
- package/dist/components/ui/sidebar/menu.d.ts +0 -30
- package/dist/components/ui/sidebar/menu.js +0 -64
- package/dist/components/ui/sidebar/provider.d.ts +0 -7
- package/dist/components/ui/sidebar/provider.js +0 -53
- package/dist/components/ui/sidebar/rail.d.ts +0 -3
- package/dist/components/ui/sidebar/rail.js +0 -12
- package/dist/components/ui/sidebar/trigger.d.ts +0 -4
- package/dist/components/ui/sidebar/trigger.js +0 -16
- package/dist/components/ui/sidebar-account-menu-theme.d.ts +0 -7
- package/dist/components/ui/sidebar-account-menu-theme.js +0 -32
- package/dist/components/ui/sidebar-account-menu.d.ts +0 -16
- package/dist/components/ui/sidebar-account-menu.js +0 -51
- package/dist/components/ui/sidebar.d.ts +0 -7
- package/dist/components/ui/sidebar.js +0 -7
- package/dist/components/ui/skeleton.d.ts +0 -2
- package/dist/components/ui/skeleton.js +0 -15
- package/dist/components/ui/slider.d.ts +0 -4
- package/dist/components/ui/slider.js +0 -9
- package/dist/components/ui/sonner.d.ts +0 -3
- package/dist/components/ui/sonner.js +0 -33
- package/dist/components/ui/spinner.d.ts +0 -2
- package/dist/components/ui/spinner.js +0 -16
- package/dist/components/ui/switch.d.ts +0 -6
- package/dist/components/ui/switch.js +0 -7
- package/dist/components/ui/table.d.ts +0 -21
- package/dist/components/ui/table.js +0 -34
- package/dist/components/ui/tabs-variants.d.ts +0 -6
- package/dist/components/ui/tabs-variants.js +0 -13
- package/dist/components/ui/tabs.d.ts +0 -8
- package/dist/components/ui/tabs.js +0 -17
- package/dist/components/ui/textarea.d.ts +0 -3
- package/dist/components/ui/textarea.js +0 -6
- package/dist/components/ui/toggle-group.d.ts +0 -9
- package/dist/components/ui/toggle-group.js +0 -24
- package/dist/components/ui/toggle-variants.d.ts +0 -7
- package/dist/components/ui/toggle-variants.js +0 -19
- package/dist/components/ui/toggle.d.ts +0 -5
- package/dist/components/ui/toggle.js +0 -9
- package/dist/components/ui/tooltip.d.ts +0 -14
- package/dist/components/ui/tooltip.js +0 -25
- package/dist/components/ui/use-color-theme.d.ts +0 -2
- package/dist/components/ui/use-color-theme.js +0 -10
- package/dist/components/ui/workflow-timeline.d.ts +0 -20
- package/dist/components/ui/workflow-timeline.js +0 -92
- package/dist/components/walkthrough/presentation/WalkthroughCoach.d.ts +0 -14
- package/dist/components/walkthrough/presentation/WalkthroughCoach.js +0 -32
- package/dist/components/walkthrough/presentation/WalkthroughHighlight.d.ts +0 -5
- package/dist/components/walkthrough/presentation/WalkthroughHighlight.js +0 -9
- package/dist/components/walkthrough/presentation/WalkthroughOverlay.d.ts +0 -1
- package/dist/components/walkthrough/presentation/WalkthroughOverlay.js +0 -70
- package/dist/components/walkthrough/presentation/positionWalkthroughCoach.d.ts +0 -11
- package/dist/components/walkthrough/presentation/positionWalkthroughCoach.js +0 -24
- package/dist/components/walkthrough/presentation/useWalkthroughCoachPosition.d.ts +0 -4
- package/dist/components/walkthrough/presentation/useWalkthroughCoachPosition.js +0 -17
- package/dist/components/walkthrough/runtime/WalkthroughContextDefinition.d.ts +0 -20
- package/dist/components/walkthrough/runtime/WalkthroughContextDefinition.js +0 -2
- package/dist/components/walkthrough/runtime/WalkthroughProvider.d.ts +0 -12
- package/dist/components/walkthrough/runtime/WalkthroughProvider.js +0 -190
- package/dist/components/walkthrough/runtime/useWalkthrough.d.ts +0 -1
- package/dist/components/walkthrough/runtime/useWalkthrough.js +0 -8
- package/dist/components/walkthrough/runtime/walkthroughEvents.d.ts +0 -3
- package/dist/components/walkthrough/runtime/walkthroughEvents.js +0 -55
- package/dist/components/walkthrough/runtime/walkthroughLocation.d.ts +0 -2
- package/dist/components/walkthrough/runtime/walkthroughLocation.js +0 -27
- package/dist/components/walkthrough/runtime/walkthroughStorage.d.ts +0 -3
- package/dist/components/walkthrough/runtime/walkthroughStorage.js +0 -54
- package/dist/components/walkthrough/runtime/walkthroughTypes.d.ts +0 -32
- package/dist/components/walkthrough/targeting/listenForOutsideWalkthroughInteraction.d.ts +0 -2
- package/dist/components/walkthrough/targeting/listenForOutsideWalkthroughInteraction.js +0 -19
- package/dist/components/walkthrough/targeting/useWalkthroughTargetRect.d.ts +0 -15
- package/dist/components/walkthrough/targeting/useWalkthroughTargetRect.js +0 -54
- package/dist/components/walkthrough/targeting/walkthroughTarget.d.ts +0 -6
- package/dist/components/walkthrough/targeting/walkthroughTarget.js +0 -24
- package/dist/components/walkthrough.d.ts +0 -4
- package/dist/components/walkthrough.js +0 -2
- package/dist/entries/accordion.d.ts +0 -1
- package/dist/entries/accordion.js +0 -1
- package/dist/entries/admin-users-page.d.ts +0 -1
- package/dist/entries/admin-users-page.js +0 -1
- package/dist/entries/admin-users-table.d.ts +0 -1
- package/dist/entries/admin-users-table.js +0 -1
- package/dist/entries/alert-dialog.d.ts +0 -1
- package/dist/entries/alert-dialog.js +0 -1
- package/dist/entries/alert.d.ts +0 -1
- package/dist/entries/alert.js +0 -1
- package/dist/entries/app-shell-page.d.ts +0 -1
- package/dist/entries/app-shell-page.js +0 -1
- package/dist/entries/app-shell.d.ts +0 -1
- package/dist/entries/app-shell.js +0 -1
- package/dist/entries/aspect-ratio.d.ts +0 -1
- package/dist/entries/aspect-ratio.js +0 -1
- package/dist/entries/avatar.d.ts +0 -1
- package/dist/entries/avatar.js +0 -1
- package/dist/entries/badge-variants.d.ts +0 -1
- package/dist/entries/badge-variants.js +0 -1
- package/dist/entries/badge.d.ts +0 -1
- package/dist/entries/badge.js +0 -1
- package/dist/entries/breadcrumb.d.ts +0 -1
- package/dist/entries/breadcrumb.js +0 -1
- package/dist/entries/button-group-variants.d.ts +0 -1
- package/dist/entries/button-group-variants.js +0 -1
- package/dist/entries/button-group.d.ts +0 -1
- package/dist/entries/button-group.js +0 -1
- package/dist/entries/button-variants.d.ts +0 -1
- package/dist/entries/button-variants.js +0 -1
- package/dist/entries/button.d.ts +0 -1
- package/dist/entries/button.js +0 -1
- package/dist/entries/calendar.d.ts +0 -1
- package/dist/entries/calendar.js +0 -1
- package/dist/entries/card.d.ts +0 -1
- package/dist/entries/card.js +0 -1
- package/dist/entries/carousel.d.ts +0 -1
- package/dist/entries/carousel.js +0 -1
- package/dist/entries/chart-context.d.ts +0 -1
- package/dist/entries/chart-context.js +0 -1
- package/dist/entries/chart-panel.d.ts +0 -1
- package/dist/entries/chart-panel.js +0 -1
- package/dist/entries/chart-tooltip.d.ts +0 -1
- package/dist/entries/chart-tooltip.js +0 -1
- package/dist/entries/chart.d.ts +0 -1
- package/dist/entries/chart.js +0 -1
- package/dist/entries/checkbox.d.ts +0 -1
- package/dist/entries/checkbox.js +0 -1
- package/dist/entries/ciridae-brand-assets.d.ts +0 -1
- package/dist/entries/ciridae-brand-assets.js +0 -1
- package/dist/entries/ciridae-ui-provider.d.ts +0 -1
- package/dist/entries/ciridae-ui-provider.js +0 -1
- package/dist/entries/collapsible.d.ts +0 -1
- package/dist/entries/collapsible.js +0 -1
- package/dist/entries/color-theme-context.d.ts +0 -1
- package/dist/entries/color-theme-context.js +0 -1
- package/dist/entries/color-theme.d.ts +0 -1
- package/dist/entries/color-theme.js +0 -1
- package/dist/entries/combobox-anchor.d.ts +0 -1
- package/dist/entries/combobox-anchor.js +0 -1
- package/dist/entries/combobox.d.ts +0 -1
- package/dist/entries/combobox.js +0 -1
- package/dist/entries/command.d.ts +0 -1
- package/dist/entries/command.js +0 -1
- package/dist/entries/comment-composer.d.ts +0 -1
- package/dist/entries/comment-composer.js +0 -1
- package/dist/entries/comment-item.d.ts +0 -1
- package/dist/entries/comment-item.js +0 -1
- package/dist/entries/comment-thread.d.ts +0 -1
- package/dist/entries/comment-thread.js +0 -1
- package/dist/entries/comment-types.d.ts +0 -1
- package/dist/entries/comment-types.js +0 -1
- package/dist/entries/context-menu.d.ts +0 -1
- package/dist/entries/context-menu.js +0 -1
- package/dist/entries/copy-field.d.ts +0 -1
- package/dist/entries/copy-field.js +0 -1
- package/dist/entries/data-table-column-settings.d.ts +0 -1
- package/dist/entries/data-table-column-settings.js +0 -1
- package/dist/entries/data-table-context.d.ts +0 -1
- package/dist/entries/data-table-context.js +0 -1
- package/dist/entries/data-table-controls.d.ts +0 -1
- package/dist/entries/data-table-controls.js +0 -1
- package/dist/entries/data-table-facet-filter.d.ts +0 -1
- package/dist/entries/data-table-facet-filter.js +0 -1
- package/dist/entries/data-table-grid.d.ts +0 -1
- package/dist/entries/data-table-grid.js +0 -1
- package/dist/entries/data-table-pagination.d.ts +0 -1
- package/dist/entries/data-table-pagination.js +0 -1
- package/dist/entries/data-table-search-input.d.ts +0 -1
- package/dist/entries/data-table-search-input.js +0 -1
- package/dist/entries/data-table-state.d.ts +0 -1
- package/dist/entries/data-table-state.js +0 -1
- package/dist/entries/data-table-tanstack.d.ts +0 -1
- package/dist/entries/data-table-tanstack.js +0 -1
- package/dist/entries/data-table.d.ts +0 -1
- package/dist/entries/data-table.js +0 -1
- package/dist/entries/dialog.d.ts +0 -1
- package/dist/entries/dialog.js +0 -1
- package/dist/entries/direction-context.d.ts +0 -1
- package/dist/entries/direction-context.js +0 -1
- package/dist/entries/direction.d.ts +0 -1
- package/dist/entries/direction.js +0 -1
- package/dist/entries/drawer.d.ts +0 -1
- package/dist/entries/drawer.js +0 -1
- package/dist/entries/dropdown-menu.d.ts +0 -1
- package/dist/entries/dropdown-menu.js +0 -1
- package/dist/entries/empty.d.ts +0 -1
- package/dist/entries/empty.js +0 -1
- package/dist/entries/expandable-data-table.d.ts +0 -1
- package/dist/entries/expandable-data-table.js +0 -1
- package/dist/entries/feedback-center-comments.d.ts +0 -1
- package/dist/entries/feedback-center-comments.js +0 -1
- package/dist/entries/feedback-center-footer.d.ts +0 -1
- package/dist/entries/feedback-center-footer.js +0 -1
- package/dist/entries/feedback-center-sheet-parts.d.ts +0 -1
- package/dist/entries/feedback-center-sheet-parts.js +0 -1
- package/dist/entries/feedback-center-sheet.d.ts +0 -1
- package/dist/entries/feedback-center-sheet.js +0 -1
- package/dist/entries/feedback-composer-parts.d.ts +0 -1
- package/dist/entries/feedback-composer-parts.js +0 -1
- package/dist/entries/feedback-composer-types.d.ts +0 -1
- package/dist/entries/feedback-composer-types.js +0 -1
- package/dist/entries/feedback-composer.d.ts +0 -1
- package/dist/entries/feedback-composer.js +0 -1
- package/dist/entries/feedback-date-format.d.ts +0 -1
- package/dist/entries/feedback-date-format.js +0 -1
- package/dist/entries/feedback-detail-sheet.d.ts +0 -1
- package/dist/entries/feedback-detail-sheet.js +0 -1
- package/dist/entries/feedback-emergency-fields.d.ts +0 -1
- package/dist/entries/feedback-emergency-fields.js +0 -1
- package/dist/entries/feedback-metrics.d.ts +0 -1
- package/dist/entries/feedback-metrics.js +0 -1
- package/dist/entries/feedback-sheet.d.ts +0 -1
- package/dist/entries/feedback-sheet.js +0 -1
- package/dist/entries/feedback-stakeholder-page-parts.d.ts +0 -1
- package/dist/entries/feedback-stakeholder-page-parts.js +0 -1
- package/dist/entries/feedback-stakeholder-page.d.ts +0 -1
- package/dist/entries/feedback-stakeholder-page.js +0 -1
- package/dist/entries/feedback-status-badge.d.ts +0 -1
- package/dist/entries/feedback-status-badge.js +0 -1
- package/dist/entries/feedback-table-row.d.ts +0 -1
- package/dist/entries/feedback-table-row.js +0 -1
- package/dist/entries/feedback-table-sort.d.ts +0 -1
- package/dist/entries/feedback-table-sort.js +0 -1
- package/dist/entries/feedback-table.d.ts +0 -1
- package/dist/entries/feedback-table.js +0 -1
- package/dist/entries/feedback-tracking-types.d.ts +0 -1
- package/dist/entries/feedback-tracking-types.js +0 -1
- package/dist/entries/feedback-triage-timeline.d.ts +0 -1
- package/dist/entries/feedback-triage-timeline.js +0 -1
- package/dist/entries/feedback-type-badge.d.ts +0 -1
- package/dist/entries/feedback-type-badge.js +0 -1
- package/dist/entries/feedback-unread-badge.d.ts +0 -1
- package/dist/entries/feedback-unread-badge.js +0 -1
- package/dist/entries/feedback-user-detail.d.ts +0 -1
- package/dist/entries/feedback-user-detail.js +0 -1
- package/dist/entries/feedback-user-list.d.ts +0 -1
- package/dist/entries/feedback-user-list.js +0 -1
- package/dist/entries/field.d.ts +0 -1
- package/dist/entries/field.js +0 -1
- package/dist/entries/file-upload-field-parts.d.ts +0 -1
- package/dist/entries/file-upload-field-parts.js +0 -1
- package/dist/entries/file-upload-field.d.ts +0 -1
- package/dist/entries/file-upload-field.js +0 -1
- package/dist/entries/form-context.d.ts +0 -1
- package/dist/entries/form-context.js +0 -1
- package/dist/entries/form-sheet.d.ts +0 -1
- package/dist/entries/form-sheet.js +0 -1
- package/dist/entries/form.d.ts +0 -1
- package/dist/entries/form.js +0 -1
- package/dist/entries/generated-connect-link.d.ts +0 -1
- package/dist/entries/generated-connect-link.js +0 -1
- package/dist/entries/hover-card.d.ts +0 -1
- package/dist/entries/hover-card.js +0 -1
- package/dist/entries/input-group.d.ts +0 -1
- package/dist/entries/input-group.js +0 -1
- package/dist/entries/input-otp.d.ts +0 -1
- package/dist/entries/input-otp.js +0 -1
- package/dist/entries/input.d.ts +0 -1
- package/dist/entries/input.js +0 -1
- package/dist/entries/invite-user-sheet.d.ts +0 -1
- package/dist/entries/invite-user-sheet.js +0 -1
- package/dist/entries/item.d.ts +0 -1
- package/dist/entries/item.js +0 -1
- package/dist/entries/kanban-board-parts.d.ts +0 -1
- package/dist/entries/kanban-board-parts.js +0 -1
- package/dist/entries/kanban-board-utils.d.ts +0 -1
- package/dist/entries/kanban-board-utils.js +0 -1
- package/dist/entries/kanban-board.d.ts +0 -1
- package/dist/entries/kanban-board.js +0 -1
- package/dist/entries/kanban-card.d.ts +0 -1
- package/dist/entries/kanban-card.js +0 -1
- package/dist/entries/kanban-column.d.ts +0 -1
- package/dist/entries/kanban-column.js +0 -1
- package/dist/entries/kanban-detail-sheet.d.ts +0 -1
- package/dist/entries/kanban-detail-sheet.js +0 -1
- package/dist/entries/kanban-page.d.ts +0 -1
- package/dist/entries/kanban-page.js +0 -1
- package/dist/entries/kanban-types.d.ts +0 -1
- package/dist/entries/kanban-types.js +0 -1
- package/dist/entries/kbd.d.ts +0 -1
- package/dist/entries/kbd.js +0 -1
- package/dist/entries/label.d.ts +0 -1
- package/dist/entries/label.js +0 -1
- package/dist/entries/loading-state.d.ts +0 -1
- package/dist/entries/loading-state.js +0 -1
- package/dist/entries/mcp-access-grouped-tool-picker.d.ts +0 -1
- package/dist/entries/mcp-access-grouped-tool-picker.js +0 -1
- package/dist/entries/mcp-access-tool-picker.d.ts +0 -1
- package/dist/entries/mcp-access-tool-picker.js +0 -1
- package/dist/entries/mcp-access-types.d.ts +0 -1
- package/dist/entries/mcp-access-types.js +0 -1
- package/dist/entries/mcp-client-setup.d.ts +0 -1
- package/dist/entries/mcp-client-setup.js +0 -1
- package/dist/entries/mcp-connect-clients.d.ts +0 -1
- package/dist/entries/mcp-connect-clients.js +0 -1
- package/dist/entries/mcp-plan-choice.d.ts +0 -1
- package/dist/entries/mcp-plan-choice.js +0 -1
- package/dist/entries/menubar.d.ts +0 -1
- package/dist/entries/menubar.js +0 -1
- package/dist/entries/metrics-strip.d.ts +0 -1
- package/dist/entries/metrics-strip.js +0 -1
- package/dist/entries/native-select.d.ts +0 -1
- package/dist/entries/native-select.js +0 -1
- package/dist/entries/navigation-menu-variants.d.ts +0 -1
- package/dist/entries/navigation-menu-variants.js +0 -1
- package/dist/entries/navigation-menu.d.ts +0 -1
- package/dist/entries/navigation-menu.js +0 -1
- package/dist/entries/page-header.d.ts +0 -1
- package/dist/entries/page-header.js +0 -1
- package/dist/entries/pagination.d.ts +0 -1
- package/dist/entries/pagination.js +0 -1
- package/dist/entries/palette.d.ts +0 -2
- package/dist/entries/palette.js +0 -2
- package/dist/entries/popover.d.ts +0 -1
- package/dist/entries/popover.js +0 -1
- package/dist/entries/progress.d.ts +0 -1
- package/dist/entries/progress.js +0 -1
- package/dist/entries/property-list.d.ts +0 -1
- package/dist/entries/property-list.js +0 -1
- package/dist/entries/radio-group.d.ts +0 -1
- package/dist/entries/radio-group.js +0 -1
- package/dist/entries/registry-docs-api.d.ts +0 -1
- package/dist/entries/registry-docs-api.js +0 -1
- package/dist/entries/registry-docs-code.d.ts +0 -1
- package/dist/entries/registry-docs-code.js +0 -1
- package/dist/entries/registry-docs-showcase.d.ts +0 -1
- package/dist/entries/registry-docs-showcase.js +0 -1
- package/dist/entries/registry-docs.d.ts +0 -1
- package/dist/entries/registry-docs.js +0 -1
- package/dist/entries/resizable.d.ts +0 -1
- package/dist/entries/resizable.js +0 -1
- package/dist/entries/scroll-area.d.ts +0 -1
- package/dist/entries/scroll-area.js +0 -1
- package/dist/entries/select.d.ts +0 -1
- package/dist/entries/select.js +0 -1
- package/dist/entries/separator.d.ts +0 -1
- package/dist/entries/separator.js +0 -1
- package/dist/entries/sheet.d.ts +0 -1
- package/dist/entries/sheet.js +0 -1
- package/dist/entries/sidebar/context.d.ts +0 -1
- package/dist/entries/sidebar/context.js +0 -1
- package/dist/entries/sidebar/group.d.ts +0 -1
- package/dist/entries/sidebar/group.js +0 -1
- package/dist/entries/sidebar/layout.d.ts +0 -1
- package/dist/entries/sidebar/layout.js +0 -1
- package/dist/entries/sidebar/menu.d.ts +0 -1
- package/dist/entries/sidebar/menu.js +0 -1
- package/dist/entries/sidebar/provider.d.ts +0 -1
- package/dist/entries/sidebar/provider.js +0 -1
- package/dist/entries/sidebar/rail.d.ts +0 -1
- package/dist/entries/sidebar/rail.js +0 -1
- package/dist/entries/sidebar/trigger.d.ts +0 -1
- package/dist/entries/sidebar/trigger.js +0 -1
- package/dist/entries/sidebar-account-menu-theme.d.ts +0 -1
- package/dist/entries/sidebar-account-menu-theme.js +0 -1
- package/dist/entries/sidebar-account-menu.d.ts +0 -1
- package/dist/entries/sidebar-account-menu.js +0 -1
- package/dist/entries/sidebar.d.ts +0 -1
- package/dist/entries/sidebar.js +0 -1
- package/dist/entries/skeleton.d.ts +0 -1
- package/dist/entries/skeleton.js +0 -1
- package/dist/entries/slider.d.ts +0 -1
- package/dist/entries/slider.js +0 -1
- package/dist/entries/sonner.d.ts +0 -1
- package/dist/entries/sonner.js +0 -1
- package/dist/entries/spinner.d.ts +0 -1
- package/dist/entries/spinner.js +0 -1
- package/dist/entries/submit-feedback-composer.d.ts +0 -1
- package/dist/entries/submit-feedback-composer.js +0 -1
- package/dist/entries/switch.d.ts +0 -1
- package/dist/entries/switch.js +0 -1
- package/dist/entries/table.d.ts +0 -1
- package/dist/entries/table.js +0 -1
- package/dist/entries/tabs-variants.d.ts +0 -1
- package/dist/entries/tabs-variants.js +0 -1
- package/dist/entries/tabs.d.ts +0 -1
- package/dist/entries/tabs.js +0 -1
- package/dist/entries/textarea.d.ts +0 -1
- package/dist/entries/textarea.js +0 -1
- package/dist/entries/timestamp-format.d.ts +0 -1
- package/dist/entries/timestamp-format.js +0 -1
- package/dist/entries/toggle-group.d.ts +0 -1
- package/dist/entries/toggle-group.js +0 -1
- package/dist/entries/toggle-variants.d.ts +0 -1
- package/dist/entries/toggle-variants.js +0 -1
- package/dist/entries/toggle.d.ts +0 -1
- package/dist/entries/toggle.js +0 -1
- package/dist/entries/tooltip.d.ts +0 -1
- package/dist/entries/tooltip.js +0 -1
- package/dist/entries/use-color-theme.d.ts +0 -1
- package/dist/entries/use-color-theme.js +0 -1
- package/dist/entries/use-feedback-composer-state.d.ts +0 -1
- package/dist/entries/use-feedback-composer-state.js +0 -1
- package/dist/entries/use-mobile.d.ts +0 -1
- package/dist/entries/use-mobile.js +0 -1
- package/dist/entries/utils.d.ts +0 -1
- package/dist/entries/utils.js +0 -1
- package/dist/entries/walkthrough.d.ts +0 -1
- package/dist/entries/walkthrough.js +0 -1
- package/dist/entries/workflow-timeline.d.ts +0 -1
- package/dist/entries/workflow-timeline.js +0 -1
- package/dist/hooks/use-mobile.d.ts +0 -1
- package/dist/hooks/use-mobile.js +0 -17
- package/dist/lib/browser-storage.d.ts +0 -12
- package/dist/lib/browser-storage.js +0 -42
- package/dist/lib/palette-presets.d.ts +0 -17
- package/dist/lib/palette-presets.js +0 -42
- package/dist/lib/palette-tokens.d.ts +0 -39
- package/dist/lib/palette-tokens.js +0 -133
- package/dist/lib/palette.d.ts +0 -83
- package/dist/lib/palette.js +0 -151
- package/dist/lib/utils.d.ts +0 -5
- package/dist/lib/utils.js +0 -8
- package/dist/style-imports.d.ts +0 -3
- /package/dist/{components/blocks/feedback-composer-types.js → feedback/comment-types.js} +0 -0
- /package/dist/{components/blocks/kanban-types.js → feedback/feedback-composer-types.js} +0 -0
- /package/dist/{components/walkthrough/runtime/walkthroughTypes.js → feedback/feedback-tracking-types.js} +0 -0
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { DndContext, KeyboardSensor, PointerSensor, useSensor, useSensors } from "@dnd-kit/core";
|
|
4
|
-
import { sortableKeyboardCoordinates } from "@dnd-kit/sortable";
|
|
5
|
-
import { KanbanBoardColumn, KanbanDragOverlay } from "./kanban-board-parts.js";
|
|
6
|
-
import { clearDragState, getDragEndHandler, getDragOverHandler, getDragStartHandler, getKanbanBoardState, kanbanCollisionDetection, } from "./kanban-board-utils.js";
|
|
7
|
-
function KanbanBoard({ cards, columns, columnMaxHeight = "min(44rem, calc(100vh - 14rem))", empty, isLoading = false, onCardMove, onCardSelect, renderCard, renderCardActions, renderColumnActions, }) {
|
|
8
|
-
const [activeCard, setActiveCard] = React.useState();
|
|
9
|
-
const [activeCardRect, setActiveCardRect] = React.useState();
|
|
10
|
-
const [activeMove, setActiveMove] = React.useState();
|
|
11
|
-
const [overColumnId, setOverColumnId] = React.useState();
|
|
12
|
-
const suppressSelectRef = React.useRef(false);
|
|
13
|
-
const boardState = React.useMemo(() => getKanbanBoardState(columns, cards), [cards, columns]);
|
|
14
|
-
const dragStateSetters = React.useMemo(() => ({ setActiveCard, setActiveCardRect, setActiveMove, setOverColumnId }), []);
|
|
15
|
-
const sensors = useKanbanSensors();
|
|
16
|
-
return (_jsxs(DndContext, { collisionDetection: kanbanCollisionDetection, onDragCancel: () => clearDragState(dragStateSetters), onDragEnd: getDragEndHandler({
|
|
17
|
-
activeMove,
|
|
18
|
-
boardState,
|
|
19
|
-
onCardMove,
|
|
20
|
-
setters: dragStateSetters,
|
|
21
|
-
suppressSelectRef,
|
|
22
|
-
}), onDragOver: getDragOverHandler({
|
|
23
|
-
boardState,
|
|
24
|
-
setActiveMove,
|
|
25
|
-
setOverColumnId,
|
|
26
|
-
}), onDragStart: getDragStartHandler({
|
|
27
|
-
cardById: boardState.cardById,
|
|
28
|
-
setters: dragStateSetters,
|
|
29
|
-
suppressSelectRef,
|
|
30
|
-
}), sensors: sensors, children: [_jsx("div", { className: "w-full overflow-x-auto", children: _jsx("div", { className: "flex min-h-80 w-max gap-3 pb-2", children: columns.map((column) => (_jsx(KanbanBoardColumn, { activeCardId: activeCard?.id, activeCardRect: activeCardRect, activeMove: activeMove, boardState: boardState, column: column, columnMaxHeight: columnMaxHeight, empty: empty, isLoading: isLoading, isOver: overColumnId === column.id, onCardMove: onCardMove, onCardSelect: onCardSelect, renderCard: renderCard, renderCardActions: renderCardActions, renderColumnActions: renderColumnActions, suppressSelectRef: suppressSelectRef }, column.id))) }) }), _jsx(KanbanDragOverlay, { activeCard: activeCard, activeCardRect: activeCardRect })] }));
|
|
31
|
-
}
|
|
32
|
-
function useKanbanSensors() {
|
|
33
|
-
return useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 6 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
|
|
34
|
-
}
|
|
35
|
-
export { KanbanBoard };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type * as React from "react";
|
|
2
|
-
import type { KanbanCardData } from "./kanban-types.js";
|
|
3
|
-
type KanbanCardProps = {
|
|
4
|
-
actionsSlot?: React.ReactNode;
|
|
5
|
-
card: KanbanCardData;
|
|
6
|
-
isDragging?: boolean;
|
|
7
|
-
onSelect?: (card: KanbanCardData) => void;
|
|
8
|
-
};
|
|
9
|
-
declare function KanbanCard({ actionsSlot, card, isDragging, onSelect }: KanbanCardProps): React.JSX.Element;
|
|
10
|
-
export { KanbanCard, type KanbanCardProps };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { cn } from "../../lib/utils.js";
|
|
3
|
-
function KanbanCard({ actionsSlot, card, isDragging = false, onSelect }) {
|
|
4
|
-
return (_jsxs("article", { "aria-disabled": card.disabled, "data-dragging": isDragging, "data-disabled": card.disabled, onClick: getCardSelectHandler(card, onSelect), onKeyDown: getCardSelectKeyHandler(card, onSelect), role: onSelect ? "button" : undefined, tabIndex: onSelect && !card.disabled ? 0 : undefined, className: cn("group/kanban-card grid min-w-0 gap-2 rounded-md border bg-card p-3 text-card-foreground shadow-xs transition-[background-color,border-color,box-shadow,opacity,transform] outline-none", "hover:bg-accent/35 focus-visible:border-ring focus-visible:ring-[var(--focus-ring-width)] focus-visible:ring-ring/50", "data-[dragging=true]:border-ring data-[dragging=true]:bg-accent/40 data-[dragging=true]:opacity-80", "data-[disabled=true]:opacity-60", onSelect && !card.disabled ? "cursor-pointer" : undefined), children: [_jsx(KanbanCardHeader, { actionsSlot: actionsSlot, card: card }), card.description ? (_jsx("p", { className: "line-clamp-2 text-sm leading-normal text-muted-foreground", children: card.description })) : null, _jsx(KanbanCardFooter, { card: card })] }));
|
|
5
|
-
}
|
|
6
|
-
function KanbanCardHeader({ actionsSlot, card, }) {
|
|
7
|
-
return (_jsxs("header", { className: "flex min-w-0 items-start justify-between gap-2", children: [_jsx("h4", { className: "min-w-0 flex-1 text-sm leading-snug font-medium text-foreground", children: card.title }), _jsx("div", { className: "flex shrink-0 items-center gap-1", "data-kanban-card-action": true, onClick: (event) => event.stopPropagation(), onPointerDown: (event) => event.stopPropagation(), children: actionsSlot })] }));
|
|
8
|
-
}
|
|
9
|
-
function KanbanCardFooter({ card }) {
|
|
10
|
-
if (!card.badges && !card.meta)
|
|
11
|
-
return null;
|
|
12
|
-
return (_jsxs("footer", { className: "flex min-w-0 flex-wrap items-center justify-between gap-2", children: [_jsx("div", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: card.badges }), card.meta ? (_jsx("div", { className: "min-w-0 truncate text-xs text-muted-foreground", children: card.meta })) : null] }));
|
|
13
|
-
}
|
|
14
|
-
function getCardSelectHandler(card, onSelect) {
|
|
15
|
-
return (event) => {
|
|
16
|
-
if (!onSelect || card.disabled)
|
|
17
|
-
return;
|
|
18
|
-
if (event.target instanceof HTMLElement && event.target.closest("[data-kanban-card-action]")) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
onSelect(card);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
function getCardSelectKeyHandler(card, onSelect) {
|
|
25
|
-
return (event) => {
|
|
26
|
-
if (!onSelect || card.disabled)
|
|
27
|
-
return;
|
|
28
|
-
if (event.key !== "Enter" && event.key !== " ")
|
|
29
|
-
return;
|
|
30
|
-
event.preventDefault();
|
|
31
|
-
onSelect(card);
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export { KanbanCard };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import type { KanbanCardData, KanbanColumnData } from "./kanban-types.js";
|
|
3
|
-
type KanbanColumnProps = {
|
|
4
|
-
actionsSlot?: React.ReactNode;
|
|
5
|
-
cards: KanbanCardData[];
|
|
6
|
-
column: KanbanColumnData;
|
|
7
|
-
columnMaxHeight?: React.CSSProperties["maxHeight"];
|
|
8
|
-
dropPlaceholder?: React.ReactNode;
|
|
9
|
-
dropPlaceholderIndex?: number;
|
|
10
|
-
empty?: React.ReactNode;
|
|
11
|
-
isLoading?: boolean;
|
|
12
|
-
isOver?: boolean;
|
|
13
|
-
renderCard?: (card: KanbanCardData) => React.ReactNode;
|
|
14
|
-
renderCardActions?: (card: KanbanCardData) => React.ReactNode;
|
|
15
|
-
};
|
|
16
|
-
declare function KanbanColumn({ actionsSlot, cards, column, columnMaxHeight, dropPlaceholder, dropPlaceholderIndex, empty, isLoading, isOver, renderCard, renderCardActions, }: KanbanColumnProps): React.JSX.Element;
|
|
17
|
-
export { KanbanColumn, type KanbanColumnProps };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { KanbanCard } from "./kanban-card.js";
|
|
4
|
-
import { Skeleton } from "../ui/skeleton.js";
|
|
5
|
-
import { cn } from "../../lib/utils.js";
|
|
6
|
-
function KanbanColumn({ actionsSlot, cards, column, columnMaxHeight, dropPlaceholder, dropPlaceholderIndex, empty, isLoading = false, isOver = false, renderCard, renderCardActions, }) {
|
|
7
|
-
const isOverLimit = isColumnOverLimit(column, cards);
|
|
8
|
-
return (_jsxs("section", { "aria-label": column.title, "data-over": isOver, className: cn("flex min-h-72 min-w-72 flex-col overflow-hidden rounded-lg border bg-muted/25 transition-colors", "data-[over=true]:border-ring data-[over=true]:bg-muted/60"), style: { maxHeight: columnMaxHeight }, children: [_jsx(KanbanColumnHeader, { actionsSlot: actionsSlot, cardCount: cards.length, column: column, isOverLimit: isOverLimit }), _jsx("div", { className: "grid flex-1 content-start gap-2 overflow-y-auto p-2", children: _jsx(KanbanColumnContent, { cards: cards, dropPlaceholder: dropPlaceholder, dropPlaceholderIndex: dropPlaceholderIndex, empty: empty, isLoading: isLoading, renderCard: renderCard, renderCardActions: renderCardActions }) })] }));
|
|
9
|
-
}
|
|
10
|
-
function KanbanColumnHeader({ actionsSlot, cardCount, column, isOverLimit, }) {
|
|
11
|
-
return (_jsx("header", { className: "grid gap-1 border-b bg-background/70 px-3 py-2.5", children: _jsxs("div", { className: "flex min-w-0 items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("h3", { className: "truncate text-sm font-medium text-foreground", children: column.title }), _jsx(KanbanColumnCount, { cardCount: cardCount, isOverLimit: isOverLimit, limit: column.limit })] }), column.description ? (_jsx("p", { className: "mt-1 line-clamp-1 text-xs text-muted-foreground", children: column.description })) : null] }), actionsSlot ? _jsx("div", { className: "shrink-0", children: actionsSlot }) : null] }) }));
|
|
12
|
-
}
|
|
13
|
-
function KanbanColumnCount({ cardCount, isOverLimit, limit, }) {
|
|
14
|
-
const label = typeof limit === "number" ? `${cardCount}/${limit}` : String(cardCount);
|
|
15
|
-
return (_jsx("span", { "data-over-limit": isOverLimit, className: "rounded-sm bg-muted px-1.5 py-0.5 font-mono text-[11px] leading-none text-muted-foreground tabular-nums data-[over-limit=true]:bg-warning-muted data-[over-limit=true]:text-warning", children: label }));
|
|
16
|
-
}
|
|
17
|
-
function KanbanColumnContent({ cards, dropPlaceholder, dropPlaceholderIndex, empty, isLoading, renderCard, renderCardActions, }) {
|
|
18
|
-
if (isLoading)
|
|
19
|
-
return _jsx(KanbanColumnSkeleton, {});
|
|
20
|
-
if (cards.length === 0 && !dropPlaceholder) {
|
|
21
|
-
return _jsx(KanbanColumnEmpty, { children: empty });
|
|
22
|
-
}
|
|
23
|
-
return (_jsxs(_Fragment, { children: [cards.map((card, index) => (_jsxs(React.Fragment, { children: [dropPlaceholderIndex === index ? dropPlaceholder : null, _jsx("div", { children: renderCard ? (renderCard(card)) : (_jsx(KanbanCard, { actionsSlot: renderCardActions?.(card), card: card })) })] }, card.id))), dropPlaceholderIndex === cards.length ? dropPlaceholder : null] }));
|
|
24
|
-
}
|
|
25
|
-
function KanbanColumnEmpty({ children }) {
|
|
26
|
-
return (_jsx("div", { className: "rounded-md border border-dashed bg-background/60 px-3 py-2.5 text-sm text-muted-foreground", children: children ?? "No cards" }));
|
|
27
|
-
}
|
|
28
|
-
function KanbanColumnSkeleton() {
|
|
29
|
-
return (_jsx("div", { className: "grid gap-2", children: Array.from({ length: 3 }).map((_, index) => (_jsxs("div", { className: "rounded-md border bg-card p-3 shadow-xs", children: [_jsx(Skeleton, { className: "h-3.5 w-4/5" }), _jsx(Skeleton, { className: "mt-3 h-3 w-full" }), _jsx(Skeleton, { className: "mt-2 h-3 w-2/3" })] }, index))) }));
|
|
30
|
-
}
|
|
31
|
-
function isColumnOverLimit(column, cards) {
|
|
32
|
-
return typeof column.limit === "number" && cards.length > column.limit;
|
|
33
|
-
}
|
|
34
|
-
export { KanbanColumn };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type * as React from "react";
|
|
2
|
-
import type { KanbanCardData, KanbanColumnData } from "./kanban-types.js";
|
|
3
|
-
type KanbanDetailProperty = {
|
|
4
|
-
label: string;
|
|
5
|
-
value: React.ReactNode;
|
|
6
|
-
};
|
|
7
|
-
type KanbanDetailSheetProps = {
|
|
8
|
-
actionsSlot?: React.ReactNode;
|
|
9
|
-
activitySlot?: React.ReactNode;
|
|
10
|
-
card?: KanbanCardData;
|
|
11
|
-
column?: KanbanColumnData;
|
|
12
|
-
onOpenChange: (open: boolean) => void;
|
|
13
|
-
open: boolean;
|
|
14
|
-
properties?: KanbanDetailProperty[];
|
|
15
|
-
};
|
|
16
|
-
declare function KanbanDetailSheet({ actionsSlot, activitySlot, card, column, onOpenChange, open, properties, }: KanbanDetailSheetProps): React.JSX.Element;
|
|
17
|
-
export { KanbanDetailSheet, type KanbanDetailProperty, type KanbanDetailSheetProps };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Badge } from "../ui/badge.js";
|
|
3
|
-
import { Button } from "../ui/button.js";
|
|
4
|
-
import { Card } from "../ui/card.js";
|
|
5
|
-
import { PropertyList, PropertyListItem, PropertyListLabel, PropertyListValue, } from "../ui/property-list.js";
|
|
6
|
-
import { Sheet, SheetBody, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from "../ui/sheet.js";
|
|
7
|
-
function KanbanDetailSheet({ actionsSlot, activitySlot, card, column, onOpenChange, open, properties = [], }) {
|
|
8
|
-
return (_jsx(Sheet, { onOpenChange: onOpenChange, open: open, children: _jsxs(SheetContent, { size: "md", children: [_jsxs(SheetHeader, { children: [_jsx(SheetTitle, { children: "Card details" }), _jsx(SheetDescription, { children: "Review the selected work item." })] }), _jsx(SheetBody, { className: "grid content-start gap-(--panel-gap) pb-(--panel-padding)", children: card ? (_jsx(KanbanDetailContent, { activitySlot: activitySlot, card: card, column: column, properties: properties })) : null }), _jsxs(SheetFooter, { children: [actionsSlot, _jsx(Button, { onClick: () => onOpenChange(false), type: "button", children: "Done" })] })] }) }));
|
|
9
|
-
}
|
|
10
|
-
function KanbanDetailContent({ activitySlot, card, column, properties, }) {
|
|
11
|
-
return (_jsxs(_Fragment, { children: [_jsx(KanbanDetailHeader, { card: card, column: column }), _jsx(KanbanDetailProperties, { card: card, properties: properties }), _jsx(KanbanDetailDescription, { card: card }), activitySlot ? _jsx(KanbanDetailActivity, { children: activitySlot }) : null] }));
|
|
12
|
-
}
|
|
13
|
-
function KanbanDetailHeader({ card, column }) {
|
|
14
|
-
return (_jsx("header", { className: "grid gap-3", children: _jsxs("div", { className: "flex min-w-0 items-center justify-between gap-3", children: [_jsx("h3", { className: "min-w-0 truncate text-sm font-medium text-foreground", children: card.title }), _jsx(KanbanDetailBadges, { card: card, column: column })] }) }));
|
|
15
|
-
}
|
|
16
|
-
function KanbanDetailBadges({ card, column }) {
|
|
17
|
-
return (_jsxs("div", { className: "flex shrink-0 flex-wrap justify-end gap-2", children: [card.badges, _jsx(KanbanStatusBadge, { column: column })] }));
|
|
18
|
-
}
|
|
19
|
-
function KanbanStatusBadge({ column }) {
|
|
20
|
-
return _jsx(Badge, { variant: "outline", children: column?.title ?? "Unassigned" });
|
|
21
|
-
}
|
|
22
|
-
function KanbanDetailProperties({ card, properties, }) {
|
|
23
|
-
return (_jsxs(PropertyList, { children: [_jsx(KanbanProperty, { label: "Reference", children: _jsx("span", { className: "font-mono text-xs tabular-nums", children: card.meta ?? card.id }) }), properties.map((property) => (_jsx(KanbanProperty, { label: property.label, children: property.value }, property.label)))] }));
|
|
24
|
-
}
|
|
25
|
-
function KanbanProperty({ children, label }) {
|
|
26
|
-
return (_jsxs(PropertyListItem, { children: [_jsx(PropertyListLabel, { children: label }), _jsx(PropertyListValue, { children: children })] }));
|
|
27
|
-
}
|
|
28
|
-
function KanbanDetailDescription({ card }) {
|
|
29
|
-
return (_jsxs(Card, { className: "grid gap-2 p-(--panel-padding)", children: [_jsx("div", { className: "text-meta text-muted-foreground", children: "Details" }), _jsx("p", { className: "text-sm whitespace-pre-wrap text-foreground", children: card.description ?? "No description provided." })] }));
|
|
30
|
-
}
|
|
31
|
-
function KanbanDetailActivity({ children }) {
|
|
32
|
-
return (_jsxs(Card, { className: "grid gap-2 p-(--panel-padding)", children: [_jsx("div", { className: "text-meta text-muted-foreground", children: "Activity" }), children] }));
|
|
33
|
-
}
|
|
34
|
-
export { KanbanDetailSheet };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type * as React from "react";
|
|
2
|
-
type KanbanColumnData = {
|
|
3
|
-
description?: string;
|
|
4
|
-
id: string;
|
|
5
|
-
limit?: number;
|
|
6
|
-
title: string;
|
|
7
|
-
};
|
|
8
|
-
type KanbanCardData = {
|
|
9
|
-
badges?: React.ReactNode;
|
|
10
|
-
columnId: string;
|
|
11
|
-
description?: string;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
id: string;
|
|
14
|
-
meta?: React.ReactNode;
|
|
15
|
-
title: string;
|
|
16
|
-
};
|
|
17
|
-
type KanbanMoveEvent = {
|
|
18
|
-
cardId: string;
|
|
19
|
-
fromColumnId: string;
|
|
20
|
-
fromIndex: number;
|
|
21
|
-
toColumnId: string;
|
|
22
|
-
toIndex: number;
|
|
23
|
-
};
|
|
24
|
-
export type { KanbanCardData, KanbanColumnData, KanbanMoveEvent };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { McpToolInventoryState } from "./mcp-access-tool-picker-internals.js";
|
|
2
|
-
import type { McpAccessToolSelector } from "./mcp-access-types.js";
|
|
3
|
-
/**
|
|
4
|
-
* The tool picker for inventories big enough to need navigation: one scroll
|
|
5
|
-
* region grouped by each tool's first OpenAPI tag, each group split into Read
|
|
6
|
-
* and Actions with a select-all per split, and a filter box on top. An
|
|
7
|
-
* inventory with no tags renders as a single unlabeled group, so the split,
|
|
8
|
-
* the select-alls, and the filter still apply.
|
|
9
|
-
*
|
|
10
|
-
* Every change is rebuilt from the full inventory against the one shared
|
|
11
|
-
* selection, so a tool selected but hidden by the filter is never dropped —
|
|
12
|
-
* only the rows on screen, and the select-alls over them, can change it.
|
|
13
|
-
*/
|
|
14
|
-
export declare function McpAccessGroupedToolPicker({ busy, inventory, selected, onChange, }: {
|
|
15
|
-
busy: boolean;
|
|
16
|
-
inventory: McpToolInventoryState;
|
|
17
|
-
selected: McpAccessToolSelector[];
|
|
18
|
-
onChange: (tools: McpAccessToolSelector[]) => void;
|
|
19
|
-
}): import("@types/react").JSX.Element;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import { Checkbox } from "../ui/checkbox.js";
|
|
4
|
-
import { Input } from "../ui/input.js";
|
|
5
|
-
import { Spinner } from "../ui/spinner.js";
|
|
6
|
-
import { EmptySelectionWarning, InventoryUnavailableNote, keyOf, PickerRow, } from "./mcp-access-tool-picker-internals.js";
|
|
7
|
-
const UNTAGGED_LABEL = "Other";
|
|
8
|
-
/**
|
|
9
|
-
* The tool picker for inventories big enough to need navigation: one scroll
|
|
10
|
-
* region grouped by each tool's first OpenAPI tag, each group split into Read
|
|
11
|
-
* and Actions with a select-all per split, and a filter box on top. An
|
|
12
|
-
* inventory with no tags renders as a single unlabeled group, so the split,
|
|
13
|
-
* the select-alls, and the filter still apply.
|
|
14
|
-
*
|
|
15
|
-
* Every change is rebuilt from the full inventory against the one shared
|
|
16
|
-
* selection, so a tool selected but hidden by the filter is never dropped —
|
|
17
|
-
* only the rows on screen, and the select-alls over them, can change it.
|
|
18
|
-
*/
|
|
19
|
-
export function McpAccessGroupedToolPicker({ busy, inventory, selected, onChange, }) {
|
|
20
|
-
const [query, setQuery] = useState("");
|
|
21
|
-
if (inventory.data === undefined) {
|
|
22
|
-
return _jsx(InventoryUnavailableNote, { isPending: inventory.isPending });
|
|
23
|
-
}
|
|
24
|
-
const tools = inventory.data.tools;
|
|
25
|
-
const selectedKeys = new Set(selected.map((tool) => keyOf(tool)));
|
|
26
|
-
const applyKeys = (keys, checked) => {
|
|
27
|
-
const next = new Set(selectedKeys);
|
|
28
|
-
for (const key of keys) {
|
|
29
|
-
if (checked)
|
|
30
|
-
next.add(key);
|
|
31
|
-
else
|
|
32
|
-
next.delete(key);
|
|
33
|
-
}
|
|
34
|
-
onChange(tools
|
|
35
|
-
.filter((tool) => next.has(keyOf(tool)))
|
|
36
|
-
.map((tool) => ({ method: tool.method, pathTemplate: tool.pathTemplate })));
|
|
37
|
-
};
|
|
38
|
-
const needle = query.trim().toLowerCase();
|
|
39
|
-
const groups = groupByFirstTag(tools);
|
|
40
|
-
const visibleGroups = groups
|
|
41
|
-
.map((group) => ({ ...group, visible: group.tools.filter((tool) => matches(tool, needle)) }))
|
|
42
|
-
.filter((group) => group.visible.length > 0);
|
|
43
|
-
const visibleCount = visibleGroups.reduce((count, group) => count + group.visible.length, 0);
|
|
44
|
-
const chosen = tools.filter((tool) => selectedKeys.has(keyOf(tool)));
|
|
45
|
-
return (_jsxs("div", { className: "grid grid-cols-[minmax(0,1fr)] gap-2", children: [_jsx(Input, { "aria-label": "Filter tools", className: "h-8 text-xs", onChange: (event) => {
|
|
46
|
-
setQuery(event.target.value);
|
|
47
|
-
}, placeholder: `Filter ${tools.length} tools…`, type: "search", value: query }), _jsx("div", { className: "max-h-96 overflow-y-auto rounded-md border border-border/60", children: visibleGroups.length === 0 ? (_jsx("p", { className: "text-muted-foreground px-3 py-2 text-xs", children: tools.length === 0 ? "This API exposes no tools." : "No tools match the filter." })) : (visibleGroups.map((group) => (_jsx(GroupSection, { busy: busy, group: group, onApply: applyKeys, selectedKeys: selectedKeys }, group.label ?? "")))) }), _jsx(PickerFooter, { busy: busy, chosen: chosen.length, matching: needle === "" ? null : visibleCount, total: tools.length })] }));
|
|
48
|
-
}
|
|
49
|
-
function PickerFooter({ busy, chosen, matching, total, }) {
|
|
50
|
-
return (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [busy ? _jsx(Spinner, { "aria-label": "Saving selection", className: "text-muted-foreground" }) : null, _jsxs("p", { "aria-live": "polite", className: "text-muted-foreground text-xs", children: [chosen, " of ", total, " tools selected"] }), matching === null ? null : (_jsxs("p", { className: "text-muted-foreground text-xs", children: [matching, " match", matching === 1 ? "es" : "", " the filter"] })), chosen === 0 ? _jsx(EmptySelectionWarning, {}) : null] }));
|
|
51
|
-
}
|
|
52
|
-
function matches(tool, needle) {
|
|
53
|
-
if (needle === "")
|
|
54
|
-
return true;
|
|
55
|
-
return [tool.name, tool.description, `${tool.method} ${tool.pathTemplate}`].some((text) => text.toLowerCase().includes(needle));
|
|
56
|
-
}
|
|
57
|
-
/** One tag group: its sticky header with counts, then the Read and Actions runs. */
|
|
58
|
-
function GroupSection({ busy, group, selectedKeys, onApply, }) {
|
|
59
|
-
const chosenInGroup = group.tools.filter((tool) => selectedKeys.has(keyOf(tool))).length;
|
|
60
|
-
return (_jsxs("section", { children: [group.label === null ? null : (_jsxs("h4", { className: "bg-background sticky top-0 z-10 flex items-baseline justify-between gap-2 border-b border-border/60 px-3 py-1.5 font-mono text-xs font-semibold", children: [_jsx("span", { className: "truncate", children: group.label }), _jsxs("span", { className: "text-muted-foreground shrink-0 text-[10px] font-normal tabular-nums", children: [chosenInGroup, " / ", group.tools.length] })] })), [
|
|
61
|
-
{ label: "Read", rows: group.visible.filter((tool) => tool.readOnly) },
|
|
62
|
-
{ label: "Actions", rows: group.visible.filter((tool) => !tool.readOnly) },
|
|
63
|
-
].map(({ label, rows }) => rows.length === 0 ? null : (_jsx(SubsectionRows, { busy: busy, groupLabel: group.label, label: label, onApply: onApply, rows: rows, selectedKeys: selectedKeys }, label)))] }));
|
|
64
|
-
}
|
|
65
|
-
/** One Read or Actions run within a group: its header with select-all, then rows. */
|
|
66
|
-
function SubsectionRows({ busy, groupLabel, label, rows, selectedKeys, onApply, }) {
|
|
67
|
-
const rowKeys = rows.map((tool) => keyOf(tool));
|
|
68
|
-
const picked = rowKeys.filter((key) => selectedKeys.has(key)).length;
|
|
69
|
-
const allState = picked === 0 ? false : picked === rowKeys.length ? true : "indeterminate";
|
|
70
|
-
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between gap-2 px-3 pt-2 pb-1", children: [_jsx("span", { className: label === "Actions"
|
|
71
|
-
? "text-primary text-[10px] font-semibold tracking-wide uppercase"
|
|
72
|
-
: "text-muted-foreground text-[10px] font-semibold tracking-wide uppercase", children: label }), _jsx(Checkbox, { "aria-label": `Select all ${label.toLowerCase()}${groupLabel === null ? "" : ` in ${groupLabel}`}`, checked: allState, disabled: busy, onCheckedChange: (next) => {
|
|
73
|
-
// The rows on screen only: with a filter active this is
|
|
74
|
-
// "select what I searched for", never the hidden rest.
|
|
75
|
-
onApply(rowKeys, next === true);
|
|
76
|
-
} })] }), _jsx("ul", { className: "divide-y divide-border/50", children: rows.map((tool) => (_jsx(PickerRow, { checked: selectedKeys.has(keyOf(tool)), disabled: busy,
|
|
77
|
-
// The subheader above already says Read or Actions.
|
|
78
|
-
kindBadge: false, onToggle: (key, checked) => {
|
|
79
|
-
onApply([key], checked);
|
|
80
|
-
}, tool: tool }, keyOf(tool)))) })] }));
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Buckets by first tag in first-appearance order — a compiler emits tools in
|
|
84
|
-
* source order, so tag order is the API's own organization. Untagged tools
|
|
85
|
-
* trail as one "Other" bucket, unless nothing is tagged at all: then the one
|
|
86
|
-
* group is unlabeled rather than titled "Other" for no contrast.
|
|
87
|
-
*/
|
|
88
|
-
function groupByFirstTag(tools) {
|
|
89
|
-
const buckets = new Map();
|
|
90
|
-
for (const tool of tools) {
|
|
91
|
-
const firstTag = tool.tags?.[0];
|
|
92
|
-
if (firstTag === undefined)
|
|
93
|
-
continue;
|
|
94
|
-
const bucket = buckets.get(firstTag);
|
|
95
|
-
if (bucket)
|
|
96
|
-
bucket.push(tool);
|
|
97
|
-
else
|
|
98
|
-
buckets.set(firstTag, [tool]);
|
|
99
|
-
}
|
|
100
|
-
if (buckets.size === 0)
|
|
101
|
-
return [{ label: null, tools }];
|
|
102
|
-
const untagged = tools.filter((tool) => (tool.tags?.length ?? 0) === 0);
|
|
103
|
-
if (untagged.length > 0) {
|
|
104
|
-
// Into the real "Other" tag's bucket when one exists, so two groups
|
|
105
|
-
// never share a label (and with it a React key).
|
|
106
|
-
const bucket = buckets.get(UNTAGGED_LABEL);
|
|
107
|
-
if (bucket)
|
|
108
|
-
bucket.push(...untagged);
|
|
109
|
-
else
|
|
110
|
-
buckets.set(UNTAGGED_LABEL, untagged);
|
|
111
|
-
}
|
|
112
|
-
return [...buckets.entries()].map(([label, bucketTools]) => ({
|
|
113
|
-
label,
|
|
114
|
-
tools: bucketTools,
|
|
115
|
-
}));
|
|
116
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { McpAccessToolListing } from "./mcp-access-types.js";
|
|
2
|
-
/** The coordinate a selector and a compiled operation are matched on. */
|
|
3
|
-
export declare const keyOf: (tool: {
|
|
4
|
-
method: string;
|
|
5
|
-
pathTemplate: string;
|
|
6
|
-
}) => string;
|
|
7
|
-
/**
|
|
8
|
-
* The slice of the app's inventory query the pickers read, shaped so a
|
|
9
|
-
* TanStack Query result can be passed whole. `data` is `undefined` for both
|
|
10
|
-
* "still loading" and "failed to load"; `isPending` says which.
|
|
11
|
-
*/
|
|
12
|
-
export type McpToolInventoryState = {
|
|
13
|
-
data: {
|
|
14
|
-
tools: McpAccessToolListing[];
|
|
15
|
-
} | undefined;
|
|
16
|
-
isPending: boolean;
|
|
17
|
-
};
|
|
18
|
-
/** The one line an absent inventory renders, in both pickers. */
|
|
19
|
-
export declare function InventoryUnavailableNote({ isPending }: {
|
|
20
|
-
isPending: boolean;
|
|
21
|
-
}): import("@types/react").JSX.Element;
|
|
22
|
-
/** Why an empty selection blocks the mint, in both pickers' footers. */
|
|
23
|
-
export declare function EmptySelectionWarning(): import("@types/react").JSX.Element;
|
|
24
|
-
/**
|
|
25
|
-
* One selectable tool row. `kindBadge` shows the read-only/action label — the
|
|
26
|
-
* flat list's only signal, redundant under the grouped picker's Read/Actions
|
|
27
|
-
* subheaders.
|
|
28
|
-
*/
|
|
29
|
-
export declare function PickerRow({ checked, disabled, kindBadge, tool, onToggle, }: {
|
|
30
|
-
checked: boolean;
|
|
31
|
-
disabled: boolean;
|
|
32
|
-
kindBadge: boolean;
|
|
33
|
-
tool: McpAccessToolListing;
|
|
34
|
-
onToggle: (key: string, checked: boolean) => void;
|
|
35
|
-
}): import("@types/react").JSX.Element;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useId } from "react";
|
|
3
|
-
import { Checkbox } from "../ui/checkbox.js";
|
|
4
|
-
/** The coordinate a selector and a compiled operation are matched on. */
|
|
5
|
-
export const keyOf = (tool) => `${tool.method} ${tool.pathTemplate}`;
|
|
6
|
-
/** The one line an absent inventory renders, in both pickers. */
|
|
7
|
-
export function InventoryUnavailableNote({ isPending }) {
|
|
8
|
-
return (_jsx("p", { className: "text-muted-foreground text-xs", children: isPending ? "Loading the tool list…" : "Couldn't load the tool list." }));
|
|
9
|
-
}
|
|
10
|
-
/** Why an empty selection blocks the mint, in both pickers' footers. */
|
|
11
|
-
export function EmptySelectionWarning() {
|
|
12
|
-
return (_jsx("p", { className: "text-destructive text-xs", children: "Select at least one tool to generate a connection code." }));
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* One selectable tool row. `kindBadge` shows the read-only/action label — the
|
|
16
|
-
* flat list's only signal, redundant under the grouped picker's Read/Actions
|
|
17
|
-
* subheaders.
|
|
18
|
-
*/
|
|
19
|
-
export function PickerRow({ checked, disabled, kindBadge, tool, onToggle, }) {
|
|
20
|
-
const id = useId();
|
|
21
|
-
return (_jsxs("li", { className: "flex min-h-11 items-start gap-3 px-3 py-2", children: [_jsx(Checkbox, { checked: checked, disabled: disabled, id: id, onCheckedChange: (next) => {
|
|
22
|
-
onToggle(keyOf(tool), next === true);
|
|
23
|
-
} }), _jsxs("label", { className: "min-w-0 flex-1 cursor-pointer", htmlFor: id, children: [kindBadge ? (_jsxs("span", { className: "flex flex-wrap items-center gap-x-2", children: [_jsx("span", { className: "truncate font-mono text-xs", children: tool.name }), _jsx("span", { className: "text-muted-foreground text-[10px] uppercase", children: tool.readOnly ? "read-only" : "action" })] })) : (_jsx("span", { className: "block truncate font-mono text-xs", children: tool.name })), _jsx("span", { className: "text-muted-foreground block truncate text-xs", children: tool.description })] })] }));
|
|
24
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { McpToolInventoryState } from "./mcp-access-tool-picker-internals.js";
|
|
2
|
-
import type { McpAccessToolSelector } from "./mcp-access-types.js";
|
|
3
|
-
export { keyOf } from "./mcp-access-tool-picker-internals.js";
|
|
4
|
-
export type { McpToolInventoryState } from "./mcp-access-tool-picker-internals.js";
|
|
5
|
-
/**
|
|
6
|
-
* An exact tool selection, applied as it is clicked. There is nothing to
|
|
7
|
-
* confirm: the list on screen is always what a code will be minted with, and an
|
|
8
|
-
* empty selection is reported but never stored because it is not a grant.
|
|
9
|
-
*
|
|
10
|
-
* Controlled rather than seeded once: the sheet owns the selection because the
|
|
11
|
-
* mint gate has to agree with these boxes, and a copy here could only be kept
|
|
12
|
-
* in step by remounting — which loses the scroll position on every click and
|
|
13
|
-
* still leaves the gate reading the older value.
|
|
14
|
-
*/
|
|
15
|
-
export declare function McpAccessToolPicker({ busy, inventory, selected, onChange, }: {
|
|
16
|
-
busy: boolean;
|
|
17
|
-
/** The compiled inventory a Custom selection chooses from. The app owns
|
|
18
|
-
* the fetch — and with it when the request is made at all. */
|
|
19
|
-
inventory: McpToolInventoryState;
|
|
20
|
-
selected: McpAccessToolSelector[];
|
|
21
|
-
onChange: (tools: McpAccessToolSelector[]) => void;
|
|
22
|
-
}): import("@types/react").JSX.Element;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Spinner } from "../ui/spinner.js";
|
|
3
|
-
import { EmptySelectionWarning, InventoryUnavailableNote, keyOf, PickerRow, } from "./mcp-access-tool-picker-internals.js";
|
|
4
|
-
export { keyOf } from "./mcp-access-tool-picker-internals.js";
|
|
5
|
-
/**
|
|
6
|
-
* An exact tool selection, applied as it is clicked. There is nothing to
|
|
7
|
-
* confirm: the list on screen is always what a code will be minted with, and an
|
|
8
|
-
* empty selection is reported but never stored because it is not a grant.
|
|
9
|
-
*
|
|
10
|
-
* Controlled rather than seeded once: the sheet owns the selection because the
|
|
11
|
-
* mint gate has to agree with these boxes, and a copy here could only be kept
|
|
12
|
-
* in step by remounting — which loses the scroll position on every click and
|
|
13
|
-
* still leaves the gate reading the older value.
|
|
14
|
-
*/
|
|
15
|
-
export function McpAccessToolPicker({ busy, inventory, selected, onChange, }) {
|
|
16
|
-
const selectedKeys = new Set(selected.map((tool) => keyOf(tool)));
|
|
17
|
-
if (inventory.data === undefined) {
|
|
18
|
-
return _jsx(InventoryUnavailableNote, { isPending: inventory.isPending });
|
|
19
|
-
}
|
|
20
|
-
const tools = inventory.data.tools;
|
|
21
|
-
const toggle = (key, checked) => {
|
|
22
|
-
const next = new Set(selectedKeys);
|
|
23
|
-
if (checked)
|
|
24
|
-
next.add(key);
|
|
25
|
-
else
|
|
26
|
-
next.delete(key);
|
|
27
|
-
onChange(tools
|
|
28
|
-
.filter((tool) => next.has(keyOf(tool)))
|
|
29
|
-
.map((tool) => ({ method: tool.method, pathTemplate: tool.pathTemplate })));
|
|
30
|
-
};
|
|
31
|
-
const chosen = tools.filter((tool) => selectedKeys.has(keyOf(tool)));
|
|
32
|
-
return (_jsxs("div", { className: "grid grid-cols-[minmax(0,1fr)] gap-2", children: [_jsx("ul", { className: "max-h-64 divide-y divide-border/50 overflow-y-auto rounded-md border border-border/60", children: tools.map((tool) => (_jsx(PickerRow, { checked: selectedKeys.has(keyOf(tool)), disabled: busy, kindBadge: true, onToggle: toggle, tool: tool }, keyOf(tool)))) }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [busy ? _jsx(Spinner, { "aria-label": "Saving selection", className: "text-muted-foreground" }) : null, _jsxs("p", { "aria-live": "polite", className: "text-muted-foreground text-xs", children: [chosen.length, " of ", tools.length, " tools selected"] }), chosen.length === 0 ? _jsx(EmptySelectionWarning, {}) : null] })] }));
|
|
33
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The vocabulary the mcp-access controls speak. The gateway owns these
|
|
3
|
-
* shapes; they travel unchanged from its database through an app's backend to
|
|
4
|
-
* here. Plain types rather than schemas: parsing belongs to the app's own
|
|
5
|
-
* data layer, and the components only need to name what they are handed.
|
|
6
|
-
*/
|
|
7
|
-
/** The gateway owns this vocabulary; it travels unchanged from its database to here. */
|
|
8
|
-
export type McpAccessMode = "read_only" | "all" | "selected";
|
|
9
|
-
/** Who adds the connector, which is the only thing the two setups differ on. */
|
|
10
|
-
export type ConnectPlan = "personal" | "workspace";
|
|
11
|
-
export type McpHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
12
|
-
/** The durable coordinate a Custom selection stores per operation. */
|
|
13
|
-
export type McpAccessToolSelector = {
|
|
14
|
-
method: McpHttpMethod;
|
|
15
|
-
pathTemplate: string;
|
|
16
|
-
};
|
|
17
|
-
/** A selector's coordinate plus its display labels. */
|
|
18
|
-
export type McpAccessToolListing = {
|
|
19
|
-
name: string;
|
|
20
|
-
description: string;
|
|
21
|
-
readOnly: boolean;
|
|
22
|
-
method: McpHttpMethod;
|
|
23
|
-
pathTemplate: string;
|
|
24
|
-
/** The operation's OpenAPI tags; the grouped picker buckets by the first. */
|
|
25
|
-
tags?: readonly string[];
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* What a mint produced, as the fields these controls report: the access the
|
|
29
|
-
* code was stamped with, and when it stops working. The code itself is not
|
|
30
|
-
* here — the app shows it through its own `CopyField`, and a type that never
|
|
31
|
-
* carries the credential cannot leak it. Discriminated on `access`: only a
|
|
32
|
-
* selected link carries tools, and it always does. Expiry is integer Unix
|
|
33
|
-
* epoch milliseconds.
|
|
34
|
-
*/
|
|
35
|
-
export type McpConnectLink = {
|
|
36
|
-
access: Exclude<McpAccessMode, "selected">;
|
|
37
|
-
expiresAtEpochMilliseconds: number;
|
|
38
|
-
} | {
|
|
39
|
-
access: "selected";
|
|
40
|
-
tools: McpAccessToolSelector[];
|
|
41
|
-
expiresAtEpochMilliseconds: number;
|
|
42
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The vocabulary the mcp-access controls speak. The gateway owns these
|
|
3
|
-
* shapes; they travel unchanged from its database through an app's backend to
|
|
4
|
-
* here. Plain types rather than schemas: parsing belongs to the app's own
|
|
5
|
-
* data layer, and the components only need to name what they are handed.
|
|
6
|
-
*/
|
|
7
|
-
export {};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
import type { ConnectPlan } from "./mcp-access-types.js";
|
|
3
|
-
import type { McpConnectClient } from "./mcp-connect-clients.js";
|
|
4
|
-
/**
|
|
5
|
-
* Per-client setup for the connection.
|
|
6
|
-
*
|
|
7
|
-
* One client at a time, because every client wants the same values and only
|
|
8
|
-
* the steps differ — listing all of them stacked repeated the same URL five
|
|
9
|
-
* times and buried the one set of values the reader actually needs. The values
|
|
10
|
-
* sit above the tabs so switching clients never moves them.
|
|
11
|
-
*/
|
|
12
|
-
export declare function McpClientSetup({ clientId, code, connectorName, footer, onClientChange, onPlanChange, plan, url, urlNote, }: {
|
|
13
|
-
clientId: McpConnectClient;
|
|
14
|
-
/** The minted secret, absent until the member generates one. */
|
|
15
|
-
code: string | undefined;
|
|
16
|
-
/** Interpolated unquoted into the copyable CLI commands, so it must be a
|
|
17
|
-
* plain slug (no spaces, no leading `-`): quoting would have to pick a
|
|
18
|
-
* shell, and a leading `-` reaches the CLIs as an option. A name that
|
|
19
|
-
* fails the check renders the placeholder instead of a broken command. */
|
|
20
|
-
connectorName: string;
|
|
21
|
-
/** Minting lives in the card, beside the field it fills. */
|
|
22
|
-
footer: ReactNode;
|
|
23
|
-
onClientChange: (client: McpConnectClient) => void;
|
|
24
|
-
onPlanChange: (plan: ConnectPlan) => void;
|
|
25
|
-
plan: ConnectPlan;
|
|
26
|
-
url: string | undefined;
|
|
27
|
-
/** What to show in place of `url`, given why it is absent. */
|
|
28
|
-
urlNote: string;
|
|
29
|
-
}): import("@types/react").JSX.Element;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Tabs, TabsList, TabsTrigger } from "../ui/tabs.js";
|
|
3
|
-
import { CopyField } from "./copy-field.js";
|
|
4
|
-
import { CONNECT_CLIENTS, clientSteps, planAffectsClient } from "./mcp-connect-clients.js";
|
|
5
|
-
import { McpPlanChoice } from "./mcp-plan-choice.js";
|
|
6
|
-
/**
|
|
7
|
-
* The shape a connector name must have to be interpolated unquoted into the
|
|
8
|
-
* CLI commands below. Stricter than any one CLI needs: the first character
|
|
9
|
-
* may not be `-` because `--help-readonly` is a legal name by looser rules
|
|
10
|
-
* yet reaches both CLIs as an option, and there is no quoting that works for
|
|
11
|
-
* POSIX shells and Windows `cmd` at once.
|
|
12
|
-
*/
|
|
13
|
-
const PLAIN_SLUG = /^[\w.][\w.-]*$/;
|
|
14
|
-
/**
|
|
15
|
-
* Per-client setup for the connection.
|
|
16
|
-
*
|
|
17
|
-
* One client at a time, because every client wants the same values and only
|
|
18
|
-
* the steps differ — listing all of them stacked repeated the same URL five
|
|
19
|
-
* times and buried the one set of values the reader actually needs. The values
|
|
20
|
-
* sit above the tabs so switching clients never moves them.
|
|
21
|
-
*/
|
|
22
|
-
export function McpClientSetup({ clientId, code, connectorName, footer, onClientChange, onPlanChange, plan, url, urlNote, }) {
|
|
23
|
-
const client = CONNECT_CLIENTS.find((candidate) => candidate.id === clientId);
|
|
24
|
-
return (_jsxs("div", { className: "grid grid-cols-[minmax(0,1fr)] gap-3", children: [_jsx(ValueCard, { code: code, connectorName: connectorName, footer: footer, isCli: clientId === "cli", url: url, urlNote: urlNote }), _jsx(Tabs, { onValueChange: (value) => {
|
|
25
|
-
// Narrowed through the catalogue rather than asserted: the tab list is
|
|
26
|
-
// built from it, so a value that is not in it is not a client.
|
|
27
|
-
const next = CONNECT_CLIENTS.find((candidate) => candidate.id === value);
|
|
28
|
-
if (next)
|
|
29
|
-
onClientChange(next.id);
|
|
30
|
-
}, value: clientId, children: _jsx(TabsList, { className: "w-full justify-start gap-x-2 overflow-x-auto", variant: "line", children: CONNECT_CLIENTS.map((candidate) => (_jsxs(TabsTrigger, { className: "text-xs", value: candidate.id, children: [_jsx(candidate.Icon, { "aria-hidden": "true", className: "size-3" }), candidate.tab] }, candidate.id))) }) }), client && planAffectsClient(client) ? (_jsx(McpPlanChoice, { onChange: onPlanChange, plan: plan })) : null, _jsx("p", { className: "text-muted-foreground text-sm", children: client ? clientSteps(client, plan) : null })] }));
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* The values, shown once. The CLIs take a whole command rather than a name and
|
|
34
|
-
* a URL, so that tab swaps the card's contents instead of adding a third field
|
|
35
|
-
* nobody else uses.
|
|
36
|
-
*
|
|
37
|
-
* The footer sits with the fields it fills, so minting no longer needs a
|
|
38
|
-
* sentence pointing at a control elsewhere on screen.
|
|
39
|
-
*/
|
|
40
|
-
function ValueCard({ code, connectorName, footer, isCli, url, urlNote, }) {
|
|
41
|
-
// The URL is deployment configuration now, not a mint result, so reusing
|
|
42
|
-
// the minted secret's "not generated yet" would point at a button that can
|
|
43
|
-
// never fill it. The caller owns which of the absent-URL states applies.
|
|
44
|
-
// The commands interpolate the name bare, so only a plain slug may reach
|
|
45
|
-
// them — `--help-readonly` would parse as an option, a space as two argv
|
|
46
|
-
// entries — and neither is visible in the rendered field. Each absence
|
|
47
|
-
// names its own cause: a bad name with a good URL must not read as a
|
|
48
|
-
// missing URL.
|
|
49
|
-
const cliName = PLAIN_SLUG.test(connectorName) ? connectorName : undefined;
|
|
50
|
-
const cliNote = url !== undefined && cliName === undefined
|
|
51
|
-
? "The connector name can't be placed in a command — it needs to be a plain slug."
|
|
52
|
-
: urlNote;
|
|
53
|
-
return (_jsxs("div", { className: "grid grid-cols-[minmax(0,1fr)] gap-3 rounded-lg border border-border bg-muted/30 p-3", children: [isCli ? (_jsxs(_Fragment, { children: [_jsx(CopyField, { label: "Claude Code CLI", placeholder: cliNote, value: url === undefined || cliName === undefined
|
|
54
|
-
? undefined
|
|
55
|
-
: `claude mcp add --transport http ${cliName} ${url}` }), _jsx(CopyField, { label: "Codex CLI", placeholder: cliNote, value: url === undefined || cliName === undefined
|
|
56
|
-
? undefined
|
|
57
|
-
: `codex mcp add ${cliName} --url ${url}` })] })) : (_jsxs(_Fragment, { children: [_jsx(CopyField, { label: "Name", placeholder: urlNote, value: url === undefined ? undefined : connectorName }), _jsx(CopyField, { label: "URL", placeholder: urlNote, value: url })] })), _jsx(CopyField, { label: "Connection code", value: code }), _jsx("div", { className: "border-border border-t pt-3", children: footer })] }));
|
|
58
|
-
}
|