@nadicodeai/ui 12.1.95 → 12.1.97
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/AGENTS.md +5 -1
- package/dist/components/accordion.d.ts +13 -0
- package/dist/components/accordion.d.ts.map +1 -1
- package/dist/components/accordion.js +13 -0
- package/dist/components/account-menu.d.ts +62 -18
- package/dist/components/account-menu.d.ts.map +1 -1
- package/dist/components/account-menu.js +32 -8
- package/dist/components/action-menu.d.ts +61 -5
- package/dist/components/action-menu.d.ts.map +1 -1
- package/dist/components/action-menu.js +31 -2
- package/dist/components/action-status.d.ts +13 -3
- package/dist/components/action-status.d.ts.map +1 -1
- package/dist/components/action-status.js +13 -3
- package/dist/components/activity-calendar.d.ts +14 -0
- package/dist/components/activity-calendar.d.ts.map +1 -1
- package/dist/components/activity-calendar.js +14 -0
- package/dist/components/activity-feed.d.ts +62 -0
- package/dist/components/activity-feed.d.ts.map +1 -0
- package/dist/components/activity-feed.js +54 -0
- package/dist/components/agent-card.d.ts +15 -0
- package/dist/components/agent-card.d.ts.map +1 -1
- package/dist/components/agent-card.js +15 -0
- package/dist/components/agent-list-row.d.ts +11 -7
- package/dist/components/agent-list-row.d.ts.map +1 -1
- package/dist/components/agent-list-row.js +10 -8
- package/dist/components/agent-orb-appearance.d.ts +5 -4
- package/dist/components/agent-orb-appearance.d.ts.map +1 -1
- package/dist/components/agent-orb.d.ts +16 -0
- package/dist/components/agent-orb.d.ts.map +1 -1
- package/dist/components/agent-orb.js +17 -0
- package/dist/components/agent-profile.d.ts +39 -10
- package/dist/components/agent-profile.d.ts.map +1 -1
- package/dist/components/agent-profile.js +40 -10
- package/dist/components/alert-dialog.d.ts +14 -0
- package/dist/components/alert-dialog.d.ts.map +1 -1
- package/dist/components/alert-dialog.js +14 -0
- package/dist/components/alert.d.ts +14 -0
- package/dist/components/alert.d.ts.map +1 -1
- package/dist/components/alert.js +14 -0
- package/dist/components/app-mark.d.ts +14 -4
- package/dist/components/app-mark.d.ts.map +1 -1
- package/dist/components/app-mark.js +16 -4
- package/dist/components/approval-row.d.ts +15 -2
- package/dist/components/approval-row.d.ts.map +1 -1
- package/dist/components/approval-row.js +15 -2
- package/dist/components/aspect-ratio.d.ts +10 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -1
- package/dist/components/aspect-ratio.js +13 -1
- package/dist/components/avatar.d.ts +15 -0
- package/dist/components/avatar.d.ts.map +1 -1
- package/dist/components/avatar.js +15 -0
- package/dist/components/badge.d.ts +11 -1
- package/dist/components/badge.d.ts.map +1 -1
- package/dist/components/badge.js +10 -5
- package/dist/components/brand-field.d.ts +10 -0
- package/dist/components/brand-field.d.ts.map +1 -1
- package/dist/components/brand-field.js +10 -0
- package/dist/components/brand.d.ts +14 -0
- package/dist/components/brand.d.ts.map +1 -1
- package/dist/components/brand.js +18 -4
- package/dist/components/breadcrumb.d.ts +20 -2
- package/dist/components/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb.js +13 -3
- package/dist/components/button-group.d.ts +21 -0
- package/dist/components/button-group.d.ts.map +1 -1
- package/dist/components/button-group.js +21 -0
- package/dist/components/button.d.ts +20 -0
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +20 -0
- package/dist/components/calendar.d.ts +15 -0
- package/dist/components/calendar.d.ts.map +1 -1
- package/dist/components/calendar.js +15 -0
- package/dist/components/card-row.d.ts +15 -5
- package/dist/components/card-row.d.ts.map +1 -1
- package/dist/components/card-row.js +15 -5
- package/dist/components/card.d.ts +16 -0
- package/dist/components/card.d.ts.map +1 -1
- package/dist/components/card.js +16 -0
- package/dist/components/carousel.d.ts +12 -0
- package/dist/components/carousel.d.ts.map +1 -1
- package/dist/components/carousel.js +12 -0
- package/dist/components/catalog-drawer.d.ts +29 -0
- package/dist/components/catalog-drawer.d.ts.map +1 -0
- package/dist/components/catalog-drawer.js +31 -0
- package/dist/components/catalog-entry.d.ts +49 -26
- package/dist/components/catalog-entry.d.ts.map +1 -1
- package/dist/components/catalog-entry.js +5 -27
- package/dist/components/channel-view.d.ts +23 -0
- package/dist/components/channel-view.d.ts.map +1 -1
- package/dist/components/channel-view.js +13 -4
- package/dist/components/chart-area-stacked.d.ts +11 -1
- package/dist/components/chart-area-stacked.d.ts.map +1 -1
- package/dist/components/chart-area-stacked.js +12 -2
- package/dist/components/chart-axis.d.ts.map +1 -1
- package/dist/components/chart-axis.js +2 -0
- package/dist/components/chart-bar-horizontal.d.ts +11 -1
- package/dist/components/chart-bar-horizontal.d.ts.map +1 -1
- package/dist/components/chart-bar-horizontal.js +15 -2
- package/dist/components/chart-bar-multiple.d.ts +9 -4
- package/dist/components/chart-bar-multiple.d.ts.map +1 -1
- package/dist/components/chart-bar-multiple.js +10 -5
- package/dist/components/chart-bar-stacked.d.ts +11 -1
- package/dist/components/chart-bar-stacked.d.ts.map +1 -1
- package/dist/components/chart-bar-stacked.js +12 -2
- package/dist/components/chart-card.d.ts +38 -24
- package/dist/components/chart-card.d.ts.map +1 -1
- package/dist/components/chart-card.js +21 -8
- package/dist/components/chart-date-range-control.d.ts +15 -10
- package/dist/components/chart-date-range-control.d.ts.map +1 -1
- package/dist/components/chart-date-range-control.js +16 -12
- package/dist/components/chart-date-range.d.ts +2 -1
- package/dist/components/chart-date-range.d.ts.map +1 -1
- package/dist/components/chart-date-range.js +5 -2
- package/dist/components/chart-entity-colors.d.ts +7 -0
- package/dist/components/chart-entity-colors.d.ts.map +1 -1
- package/dist/components/chart-entity-colors.js +7 -0
- package/dist/components/chart-sparkline.d.ts +10 -0
- package/dist/components/chart-sparkline.d.ts.map +1 -1
- package/dist/components/chart-sparkline.js +8 -7
- package/dist/components/chart.d.ts +10 -0
- package/dist/components/chart.d.ts.map +1 -1
- package/dist/components/chart.js +27 -4
- package/dist/components/checkbox.d.ts +15 -0
- package/dist/components/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox.js +15 -0
- package/dist/components/code-block.d.ts +15 -0
- package/dist/components/code-block.d.ts.map +1 -1
- package/dist/components/code-block.js +15 -0
- package/dist/components/collapsible.d.ts +12 -0
- package/dist/components/collapsible.d.ts.map +1 -1
- package/dist/components/collapsible.js +12 -0
- package/dist/components/collection-filters.d.ts +15 -2
- package/dist/components/collection-filters.d.ts.map +1 -1
- package/dist/components/collection-filters.js +13 -1
- package/dist/components/collection-page.d.ts +29 -115
- package/dist/components/collection-page.d.ts.map +1 -1
- package/dist/components/collection-page.js +24 -139
- package/dist/components/collection-search.d.ts +14 -0
- package/dist/components/collection-search.d.ts.map +1 -1
- package/dist/components/collection-search.js +14 -0
- package/dist/components/collection-sort.d.ts +13 -3
- package/dist/components/collection-sort.d.ts.map +1 -1
- package/dist/components/collection-sort.js +17 -4
- package/dist/components/collection-toolbar.d.ts +13 -0
- package/dist/components/collection-toolbar.d.ts.map +1 -1
- package/dist/components/collection-toolbar.js +13 -0
- package/dist/components/combobox.d.ts +17 -0
- package/dist/components/combobox.d.ts.map +1 -1
- package/dist/components/combobox.js +17 -0
- package/dist/components/command.d.ts +16 -0
- package/dist/components/command.d.ts.map +1 -1
- package/dist/components/command.js +16 -0
- package/dist/components/company-card/renderer.js +2 -2
- package/dist/components/company-card.d.ts +16 -4
- package/dist/components/company-card.d.ts.map +1 -1
- package/dist/components/company-card.js +22 -10
- package/dist/components/confirm-dialog.d.ts +24 -14
- package/dist/components/confirm-dialog.d.ts.map +1 -1
- package/dist/components/confirm-dialog.js +16 -10
- package/dist/components/context-menu.d.ts +10 -0
- package/dist/components/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu.js +10 -0
- package/dist/components/copy-button.d.ts +10 -0
- package/dist/components/copy-button.d.ts.map +1 -1
- package/dist/components/copy-button.js +10 -0
- package/dist/components/dashboard-shell.d.ts +14 -0
- package/dist/components/dashboard-shell.d.ts.map +1 -1
- package/dist/components/dashboard-shell.js +15 -1
- package/dist/components/data-table.d.ts +23 -1
- package/dist/components/data-table.d.ts.map +1 -1
- package/dist/components/data-table.js +63 -31
- package/dist/components/desktop-shell.d.ts +15 -0
- package/dist/components/desktop-shell.d.ts.map +1 -1
- package/dist/components/desktop-shell.js +15 -0
- package/dist/components/dialog.d.ts +16 -0
- package/dist/components/dialog.d.ts.map +1 -1
- package/dist/components/dialog.js +16 -0
- package/dist/components/diff-count.d.ts +11 -0
- package/dist/components/diff-count.d.ts.map +1 -1
- package/dist/components/diff-count.js +11 -0
- package/dist/components/disclosure-row.d.ts +12 -0
- package/dist/components/disclosure-row.d.ts.map +1 -1
- package/dist/components/disclosure-row.js +12 -0
- package/dist/components/disclosure.d.ts +15 -5
- package/dist/components/disclosure.d.ts.map +1 -1
- package/dist/components/disclosure.js +15 -5
- package/dist/components/drawer.d.ts +13 -0
- package/dist/components/drawer.d.ts.map +1 -1
- package/dist/components/drawer.js +13 -0
- package/dist/components/dropdown-menu.d.ts +17 -5
- package/dist/components/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu.js +20 -7
- package/dist/components/empty-art.d.ts +1 -1
- package/dist/components/empty-art.d.ts.map +1 -1
- package/dist/components/empty-art.js +8 -0
- package/dist/components/empty-state.d.ts +24 -10
- package/dist/components/empty-state.d.ts.map +1 -1
- package/dist/components/empty-state.js +23 -1
- package/dist/components/entry-scene.d.ts +33 -20
- package/dist/components/entry-scene.d.ts.map +1 -1
- package/dist/components/entry-scene.js +40 -9
- package/dist/components/expandable-block.d.ts +10 -0
- package/dist/components/expandable-block.d.ts.map +1 -1
- package/dist/components/expandable-block.js +10 -0
- package/dist/components/field.d.ts +17 -0
- package/dist/components/field.d.ts.map +1 -1
- package/dist/components/field.js +17 -0
- package/dist/components/file-diff.d.ts +12 -0
- package/dist/components/file-diff.d.ts.map +1 -1
- package/dist/components/file-diff.js +12 -0
- package/dist/components/file-type-icon.d.ts +12 -0
- package/dist/components/file-type-icon.d.ts.map +1 -1
- package/dist/components/file-type-icon.js +46 -31
- package/dist/components/footer.d.ts +14 -0
- package/dist/components/footer.d.ts.map +1 -1
- package/dist/components/footer.js +14 -0
- package/dist/components/form-dialog.d.ts +10 -0
- package/dist/components/form-dialog.d.ts.map +1 -1
- package/dist/components/form-dialog.js +10 -0
- package/dist/components/form-drawer.d.ts +24 -11
- package/dist/components/form-drawer.d.ts.map +1 -1
- package/dist/components/form-drawer.js +13 -3
- package/dist/components/form.d.ts +17 -0
- package/dist/components/form.d.ts.map +1 -1
- package/dist/components/form.js +25 -5
- package/dist/components/glass-control.d.ts +13 -0
- package/dist/components/glass-control.d.ts.map +1 -1
- package/dist/components/glass-control.js +13 -0
- package/dist/components/heatmap/calendar-heatmap.d.ts.map +1 -1
- package/dist/components/heatmap/calendar-heatmap.js +6 -4
- package/dist/components/hive-scene.d.ts +14 -0
- package/dist/components/hive-scene.d.ts.map +1 -1
- package/dist/components/hive-scene.js +14 -0
- package/dist/components/house-icons.d.ts +15 -0
- package/dist/components/house-icons.d.ts.map +1 -1
- package/dist/components/house-icons.js +19 -1
- package/dist/components/hover-card.d.ts +15 -0
- package/dist/components/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card.js +15 -0
- package/dist/components/identity-mark.d.ts +55 -0
- package/dist/components/identity-mark.d.ts.map +1 -0
- package/dist/components/identity-mark.js +66 -0
- package/dist/components/input-group.d.ts +16 -0
- package/dist/components/input-group.d.ts.map +1 -1
- package/dist/components/input-group.js +17 -0
- package/dist/components/input-otp.d.ts +15 -0
- package/dist/components/input-otp.d.ts.map +1 -1
- package/dist/components/input-otp.js +15 -0
- package/dist/components/input.d.ts +15 -0
- package/dist/components/input.d.ts.map +1 -1
- package/dist/components/input.js +15 -0
- package/dist/components/item.d.ts +16 -0
- package/dist/components/item.d.ts.map +1 -1
- package/dist/components/item.js +16 -0
- package/dist/components/kbd.d.ts +14 -0
- package/dist/components/kbd.d.ts.map +1 -1
- package/dist/components/kbd.js +14 -0
- package/dist/components/kpi-card.d.ts +21 -13
- package/dist/components/kpi-card.d.ts.map +1 -1
- package/dist/components/kpi-card.js +14 -3
- package/dist/components/label-system.d.ts +12 -0
- package/dist/components/label-system.d.ts.map +1 -1
- package/dist/components/label-system.js +12 -0
- package/dist/components/label.d.ts +15 -0
- package/dist/components/label.d.ts.map +1 -1
- package/dist/components/label.js +15 -0
- package/dist/components/library-shelf.d.ts +35 -0
- package/dist/components/library-shelf.d.ts.map +1 -0
- package/dist/components/library-shelf.js +40 -0
- package/dist/components/memory-item.d.ts +12 -0
- package/dist/components/memory-item.d.ts.map +1 -1
- package/dist/components/memory-item.js +12 -0
- package/dist/components/menu-choice-row.d.ts +13 -5
- package/dist/components/menu-choice-row.d.ts.map +1 -1
- package/dist/components/menu-choice-row.js +12 -6
- package/dist/components/menubar.d.ts +13 -0
- package/dist/components/menubar.d.ts.map +1 -1
- package/dist/components/menubar.js +13 -0
- package/dist/components/message-notice.d.ts +16 -0
- package/dist/components/message-notice.d.ts.map +1 -1
- package/dist/components/message-notice.js +18 -2
- package/dist/components/model-identity.d.ts +16 -3
- package/dist/components/model-identity.d.ts.map +1 -1
- package/dist/components/model-identity.js +16 -3
- package/dist/components/model-mark.d.ts +15 -2
- package/dist/components/model-mark.d.ts.map +1 -1
- package/dist/components/model-mark.js +36 -23
- package/dist/components/nadia-presence.d.ts +10 -4
- package/dist/components/nadia-presence.d.ts.map +1 -1
- package/dist/components/nadia-presence.js +10 -4
- package/dist/components/native-select.d.ts +16 -0
- package/dist/components/native-select.d.ts.map +1 -1
- package/dist/components/native-select.js +21 -0
- package/dist/components/navigation-menu.d.ts +14 -0
- package/dist/components/navigation-menu.d.ts.map +1 -1
- package/dist/components/navigation-menu.js +14 -0
- package/dist/components/notice-banner.d.ts +10 -3
- package/dist/components/notice-banner.d.ts.map +1 -1
- package/dist/components/notice-banner.js +9 -3
- package/dist/components/numbered-steps.d.ts +33 -0
- package/dist/components/numbered-steps.d.ts.map +1 -0
- package/dist/components/numbered-steps.js +23 -0
- package/dist/components/object-page.d.ts +37 -0
- package/dist/components/object-page.d.ts.map +1 -0
- package/dist/components/object-page.js +19 -0
- package/dist/components/object-workspace.d.ts +26 -36
- package/dist/components/object-workspace.d.ts.map +1 -1
- package/dist/components/object-workspace.js +27 -24
- package/dist/components/overview-page.d.ts +24 -0
- package/dist/components/overview-page.d.ts.map +1 -0
- package/dist/components/overview-page.js +26 -0
- package/dist/components/page-actions.d.ts +28 -23
- package/dist/components/page-actions.d.ts.map +1 -1
- package/dist/components/page-actions.js +20 -14
- package/dist/components/page-header.d.ts +11 -5
- package/dist/components/page-header.d.ts.map +1 -1
- package/dist/components/page-header.js +11 -5
- package/dist/components/pagination.d.ts +15 -0
- package/dist/components/pagination.d.ts.map +1 -1
- package/dist/components/pagination.js +15 -0
- package/dist/components/pairing-code.d.ts +15 -4
- package/dist/components/pairing-code.d.ts.map +1 -1
- package/dist/components/pairing-code.js +15 -4
- package/dist/components/pending-label.d.ts +12 -4
- package/dist/components/pending-label.d.ts.map +1 -1
- package/dist/components/pending-label.js +12 -4
- package/dist/components/picture-label.d.ts +15 -7
- package/dist/components/picture-label.d.ts.map +1 -1
- package/dist/components/picture-label.js +15 -7
- package/dist/components/platform-mark.d.ts +12 -3
- package/dist/components/platform-mark.d.ts.map +1 -1
- package/dist/components/platform-mark.js +12 -3
- package/dist/components/plugin-slot-boundary.d.ts +15 -0
- package/dist/components/plugin-slot-boundary.d.ts.map +1 -1
- package/dist/components/plugin-slot-boundary.js +18 -1
- package/dist/components/popover.d.ts +15 -0
- package/dist/components/popover.d.ts.map +1 -1
- package/dist/components/popover.js +15 -0
- package/dist/components/portal-sidebar-frame.d.ts +26 -12
- package/dist/components/portal-sidebar-frame.d.ts.map +1 -1
- package/dist/components/portal-sidebar-frame.js +26 -0
- package/dist/components/product-message.d.ts.map +1 -1
- package/dist/components/product-message.js +1 -0
- package/dist/components/progress.d.ts +10 -8
- package/dist/components/progress.d.ts.map +1 -1
- package/dist/components/progress.js +17 -16
- package/dist/components/qr-code.d.ts +9 -3
- package/dist/components/qr-code.d.ts.map +1 -1
- package/dist/components/qr-code.js +9 -3
- package/dist/components/radio-group.d.ts +15 -0
- package/dist/components/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group.js +15 -0
- package/dist/components/reading-column.d.ts +11 -0
- package/dist/components/reading-column.d.ts.map +1 -1
- package/dist/components/reading-column.js +11 -0
- package/dist/components/record-identity.d.ts +12 -7
- package/dist/components/record-identity.d.ts.map +1 -1
- package/dist/components/record-identity.js +12 -7
- package/dist/components/record-list.d.ts +119 -0
- package/dist/components/record-list.d.ts.map +1 -0
- package/dist/components/record-list.js +161 -0
- package/dist/components/record-sheet.d.ts +36 -0
- package/dist/components/record-sheet.d.ts.map +1 -0
- package/dist/components/record-sheet.js +19 -0
- package/dist/components/record-time.d.ts +27 -11
- package/dist/components/record-time.d.ts.map +1 -1
- package/dist/components/record-time.js +35 -14
- package/dist/components/resizable.d.ts +10 -0
- package/dist/components/resizable.d.ts.map +1 -1
- package/dist/components/resizable.js +10 -0
- package/dist/components/row-edit-form.d.ts +8 -5
- package/dist/components/row-edit-form.d.ts.map +1 -1
- package/dist/components/row-edit-form.js +8 -5
- package/dist/components/run-timeline.d.ts +24 -11
- package/dist/components/run-timeline.d.ts.map +1 -1
- package/dist/components/run-timeline.js +13 -6
- package/dist/components/scope-switcher.d.ts +11 -0
- package/dist/components/scope-switcher.d.ts.map +1 -1
- package/dist/components/scope-switcher.js +20 -9
- package/dist/components/scroll-area.d.ts +12 -0
- package/dist/components/scroll-area.d.ts.map +1 -1
- package/dist/components/scroll-area.js +12 -0
- package/dist/components/select.d.ts +16 -0
- package/dist/components/select.d.ts.map +1 -1
- package/dist/components/select.js +16 -0
- package/dist/components/separator.d.ts +11 -0
- package/dist/components/separator.d.ts.map +1 -1
- package/dist/components/separator.js +11 -0
- package/dist/components/settings-facts.d.ts +18 -1
- package/dist/components/settings-facts.d.ts.map +1 -1
- package/dist/components/settings-facts.js +20 -1
- package/dist/components/settings-page.d.ts +20 -0
- package/dist/components/settings-page.d.ts.map +1 -0
- package/dist/components/settings-page.js +16 -0
- package/dist/components/settings-section.d.ts +38 -8
- package/dist/components/settings-section.d.ts.map +1 -1
- package/dist/components/settings-section.js +33 -7
- package/dist/components/sheet.d.ts +16 -0
- package/dist/components/sheet.d.ts.map +1 -1
- package/dist/components/sheet.js +16 -0
- package/dist/components/sidebar-sections.d.ts +40 -0
- package/dist/components/sidebar-sections.d.ts.map +1 -0
- package/dist/components/sidebar-sections.js +35 -0
- package/dist/components/sidebar.d.ts +14 -1
- package/dist/components/sidebar.d.ts.map +1 -1
- package/dist/components/sidebar.js +24 -5
- package/dist/components/skeleton.d.ts +10 -0
- package/dist/components/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton.js +11 -1
- package/dist/components/slider.d.ts +14 -0
- package/dist/components/slider.d.ts.map +1 -1
- package/dist/components/slider.js +14 -0
- package/dist/components/sonner.d.ts +18 -0
- package/dist/components/sonner.d.ts.map +1 -1
- package/dist/components/sonner.js +23 -2
- package/dist/components/status-badge.d.ts +13 -2
- package/dist/components/status-badge.d.ts.map +1 -1
- package/dist/components/status-badge.js +21 -9
- package/dist/components/status-dot.d.ts +12 -0
- package/dist/components/status-dot.d.ts.map +1 -1
- package/dist/components/status-dot.js +12 -0
- package/dist/components/status-row.d.ts +14 -0
- package/dist/components/status-row.d.ts.map +1 -1
- package/dist/components/status-row.js +14 -0
- package/dist/components/switch.d.ts +15 -0
- package/dist/components/switch.d.ts.map +1 -1
- package/dist/components/switch.js +15 -0
- package/dist/components/table-card.d.ts +16 -3
- package/dist/components/table-card.d.ts.map +1 -1
- package/dist/components/table-card.js +16 -3
- package/dist/components/table-value.d.ts +24 -2
- package/dist/components/table-value.d.ts.map +1 -1
- package/dist/components/table-value.js +25 -3
- package/dist/components/table.d.ts +16 -0
- package/dist/components/table.d.ts.map +1 -1
- package/dist/components/table.js +17 -1
- package/dist/components/tabs.d.ts +27 -0
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +27 -0
- package/dist/components/tag.d.ts +12 -2
- package/dist/components/tag.d.ts.map +1 -1
- package/dist/components/tag.js +12 -2
- package/dist/components/text-link.d.ts +17 -0
- package/dist/components/text-link.d.ts.map +1 -1
- package/dist/components/text-link.js +17 -0
- package/dist/components/textarea.d.ts +14 -0
- package/dist/components/textarea.d.ts.map +1 -1
- package/dist/components/textarea.js +14 -0
- package/dist/components/theme-mode-switcher.d.ts +21 -0
- package/dist/components/theme-mode-switcher.d.ts.map +1 -1
- package/dist/components/theme-mode-switcher.js +23 -1
- package/dist/components/toggle-group.d.ts +13 -0
- package/dist/components/toggle-group.d.ts.map +1 -1
- package/dist/components/toggle-group.js +16 -1
- package/dist/components/toggle.d.ts +14 -0
- package/dist/components/toggle.d.ts.map +1 -1
- package/dist/components/toggle.js +14 -0
- package/dist/components/tool-icon.d.ts +14 -4
- package/dist/components/tool-icon.d.ts.map +1 -1
- package/dist/components/tool-icon.js +28 -19
- package/dist/components/tooltip.d.ts +15 -0
- package/dist/components/tooltip.d.ts.map +1 -1
- package/dist/components/tooltip.js +15 -0
- package/dist/components/trend-badge.d.ts +16 -1
- package/dist/components/trend-badge.d.ts.map +1 -1
- package/dist/components/trend-badge.js +16 -7
- package/dist/components/update-card.d.ts +36 -0
- package/dist/components/update-card.d.ts.map +1 -0
- package/dist/components/update-card.js +28 -0
- package/dist/components/usage-meter.d.ts +15 -0
- package/dist/components/usage-meter.d.ts.map +1 -1
- package/dist/components/usage-meter.js +20 -1
- package/dist/components/waiting-line.d.ts +13 -10
- package/dist/components/waiting-line.d.ts.map +1 -1
- package/dist/components/waiting-line.js +13 -10
- package/dist/eslint/index.js +9 -0
- package/dist/eslint/rules/empty-state-owner.js +145 -0
- package/dist/eslint/rules/jsx-class-utility.js +5 -0
- package/dist/eslint/rules/menu-owner.js +75 -0
- package/dist/eslint/rules/no-choice-control-wrapper.js +2 -0
- package/dist/eslint/rules/no-decorative-icon.js +164 -0
- package/dist/eslint/rules/no-deprecated-zod-api.js +1 -0
- package/dist/eslint/rules/no-shadcn-appearance-override.js +1 -0
- package/dist/eslint/rules/no-subject-derived-expectation.js +1 -1
- package/dist/eslint/rules/no-write-in-subscription.js +1 -0
- package/dist/eslint/rules/page-composition.js +232 -0
- package/dist/eslint/rules/rendered-import.js +121 -0
- package/dist/eslint/strict-design-system.js +1 -1
- package/dist/hooks/use-hydrated.d.ts +2 -0
- package/dist/hooks/use-hydrated.d.ts.map +1 -0
- package/dist/hooks/use-hydrated.js +7 -0
- package/dist/index.d.ts +15 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -10
- package/dist/internal/agent-orb.d.ts.map +1 -1
- package/dist/internal/agent-orb.js +2 -1
- package/dist/internal/assistant-ui/attachment.d.ts.map +1 -1
- package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -1
- package/dist/internal/assistant-ui/reasoning.js +3 -1
- package/dist/internal/assistant-ui/thread.js +3 -1
- package/dist/internal/assistant-ui/tool-fallback.d.ts.map +1 -1
- package/dist/internal/assistant-ui/tool-fallback.js +13 -13
- package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -1
- package/dist/internal/assistant-ui/tool-group.js +3 -1
- package/dist/internal/catalog-list.d.ts +14 -0
- package/dist/internal/catalog-list.d.ts.map +1 -0
- package/dist/internal/catalog-list.js +53 -0
- package/dist/internal/empty.d.ts +6 -9
- package/dist/internal/empty.d.ts.map +1 -1
- package/dist/internal/empty.js +24 -22
- package/dist/internal/footer-strip.d.ts +0 -4
- package/dist/internal/footer-strip.d.ts.map +1 -1
- package/dist/internal/footer-strip.js +0 -4
- package/dist/internal/record-menu-items.d.ts +19 -0
- package/dist/internal/record-menu-items.d.ts.map +1 -0
- package/dist/internal/record-menu-items.js +20 -0
- package/dist/internal/settings-save.d.ts +43 -0
- package/dist/internal/settings-save.d.ts.map +1 -0
- package/dist/internal/settings-save.js +147 -0
- package/dist/lib/theme-mode.d.ts +1 -1
- package/dist/lib/theme-mode.js +2 -2
- package/dist/lib/use-copy-to-clipboard.d.ts.map +1 -1
- package/dist/lib/use-copy-to-clipboard.js +1 -0
- package/dist/showcase/assets.d.ts +8 -0
- package/dist/showcase/assets.d.ts.map +1 -0
- package/dist/showcase/assets.js +13 -0
- package/dist/showcase/foundations.d.ts +2 -0
- package/dist/showcase/foundations.d.ts.map +1 -0
- package/dist/showcase/foundations.js +61 -0
- package/dist/showcase/samples.d.ts +21 -0
- package/dist/showcase/samples.d.ts.map +1 -0
- package/dist/showcase/samples.js +48 -0
- package/dist/showcase/showcase.d.ts +10 -0
- package/dist/showcase/showcase.d.ts.map +1 -0
- package/dist/showcase/showcase.js +44 -0
- package/dist/showcase/specimens/actions.d.ts +7 -0
- package/dist/showcase/specimens/actions.d.ts.map +1 -0
- package/dist/showcase/specimens/actions.js +15 -0
- package/dist/showcase/specimens/charts.d.ts +17 -0
- package/dist/showcase/specimens/charts.d.ts.map +1 -0
- package/dist/showcase/specimens/charts.js +104 -0
- package/dist/showcase/specimens/choices.d.ts +21 -0
- package/dist/showcase/specimens/choices.d.ts.map +1 -0
- package/dist/showcase/specimens/choices.js +68 -0
- package/dist/showcase/specimens/compositions.d.ts +39 -0
- package/dist/showcase/specimens/compositions.d.ts.map +1 -0
- package/dist/showcase/specimens/compositions.js +270 -0
- package/dist/showcase/specimens/data.d.ts +31 -0
- package/dist/showcase/specimens/data.d.ts.map +1 -0
- package/dist/showcase/specimens/data.js +111 -0
- package/dist/showcase/specimens/feedback.d.ts +23 -0
- package/dist/showcase/specimens/feedback.d.ts.map +1 -0
- package/dist/showcase/specimens/feedback.js +64 -0
- package/dist/showcase/specimens/index.d.ts +164 -0
- package/dist/showcase/specimens/index.d.ts.map +1 -0
- package/dist/showcase/specimens/index.js +24 -0
- package/dist/showcase/specimens/inputs.d.ts +22 -0
- package/dist/showcase/specimens/inputs.d.ts.map +1 -0
- package/dist/showcase/specimens/inputs.js +60 -0
- package/dist/showcase/specimens/menus.d.ts +20 -0
- package/dist/showcase/specimens/menus.d.ts.map +1 -0
- package/dist/showcase/specimens/menus.js +65 -0
- package/dist/showcase/specimens/navigation.d.ts +22 -0
- package/dist/showcase/specimens/navigation.d.ts.map +1 -0
- package/dist/showcase/specimens/navigation.js +103 -0
- package/dist/showcase/specimens/other.d.ts +26 -0
- package/dist/showcase/specimens/other.d.ts.map +1 -0
- package/dist/showcase/specimens/other.js +73 -0
- package/dist/showcase/specimens/specimen.d.ts +5 -0
- package/dist/showcase/specimens/specimen.d.ts.map +1 -0
- package/dist/showcase/specimens/specimen.js +1 -0
- package/dist/showcase/specimens/status.d.ts +22 -0
- package/dist/showcase/specimens/status.d.ts.map +1 -0
- package/dist/showcase/specimens/status.js +44 -0
- package/dist/showcase/usage.generated.d.ts +16 -0
- package/dist/showcase/usage.generated.d.ts.map +1 -0
- package/dist/showcase/usage.generated.js +1788 -0
- package/dist/standalone/index.js +2 -2
- package/dist/standalone/orb-page.js +1 -0
- package/dist/styles/components.css +21 -0
- package/package.json +8 -3
- package/dist/components/automation-section.d.ts +0 -78
- package/dist/components/automation-section.d.ts.map +0 -1
- package/dist/components/automation-section.js +0 -75
- package/dist/components/catalog-tile.d.ts +0 -19
- package/dist/components/catalog-tile.d.ts.map +0 -1
- package/dist/components/catalog-tile.js +0 -13
- package/dist/components/feedback-state.d.ts +0 -14
- package/dist/components/feedback-state.d.ts.map +0 -1
- package/dist/components/feedback-state.js +0 -65
- package/dist/components/installer-shell.d.ts +0 -25
- package/dist/components/installer-shell.d.ts.map +0 -1
- package/dist/components/installer-shell.js +0 -32
- package/dist/components/settings-form.d.ts +0 -9
- package/dist/components/settings-form.d.ts.map +0 -1
- package/dist/components/settings-form.js +0 -85
|
@@ -12,6 +12,16 @@ const themeModeIcons = {
|
|
|
12
12
|
dark: MoonIcon,
|
|
13
13
|
system: MonitorIcon,
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* The three appearances side by side, each with its glyph and its name.
|
|
17
|
+
*
|
|
18
|
+
* @family Choices
|
|
19
|
+
* @when An Appearance setting on a settings page, where the choice has room to show its names.
|
|
20
|
+
* @instead Inside a menu, the same choice is ThemeModeMenu; a choice that is not the appearance is a RadioGroup or a ToggleGroup.
|
|
21
|
+
* @behaviour Exclusive: one mode is selected, and choosing one applies it at once with no Save. The order is System, Light, Dark everywhere.
|
|
22
|
+
* @words The setting's name, then each mode's name from the product's catalogue: "System", "Light", "Dark".
|
|
23
|
+
* @access A radio group named by `aria-label`; each mode is a radio with its name, moved through with the arrow keys.
|
|
24
|
+
*/
|
|
15
25
|
function ThemeModeSwitcher({ "aria-label": ariaLabel, className, compact = false, disabled, itemClassName, labels, onValueChange, renderItem, value, ...props }) {
|
|
16
26
|
return (_jsx(RadioGroup, { "aria-label": ariaLabel, className: cn("max-w-full grid-cols-3", className), disabled: disabled, onValueChange: (nextMode) => {
|
|
17
27
|
if (isThemeMode(nextMode)) {
|
|
@@ -25,8 +35,20 @@ function ThemeModeSwitcher({ "aria-label": ariaLabel, className, compact = false
|
|
|
25
35
|
}) }));
|
|
26
36
|
}
|
|
27
37
|
export { ThemeModeSwitcher };
|
|
38
|
+
/**
|
|
39
|
+
* The appearance as one row of a menu: its name and the current mode's glyph
|
|
40
|
+
* leading, the three modes as compact choices at its end.
|
|
41
|
+
*
|
|
42
|
+
* @family Menus
|
|
43
|
+
* @when The account menu's Theme row, in the Portal and in Nadia.
|
|
44
|
+
* @instead On a settings page the choice is ThemeModeSwitcher, with its names shown.
|
|
45
|
+
* @behaviour Choosing a mode applies it at once and keeps the menu open, so the result shows without reopening it. The order is System, Light, Dark.
|
|
46
|
+
* @words The row's name ("Theme") and each mode's name, read as the choice's accessible name and tooltip.
|
|
47
|
+
* @access A radio group inside the menu, named by the row's label; each mode is a menu radio item with its name.
|
|
48
|
+
*/
|
|
28
49
|
export function ThemeModeMenu({ label, labels, value, onValueChange, disabled, }) {
|
|
29
|
-
|
|
50
|
+
const CurrentModeIcon = themeModeIcons[value];
|
|
51
|
+
return (_jsx(MenuChoiceRow, { "data-slot": "theme-mode-menu", icon: _jsx(CurrentModeIcon, { "aria-hidden": "true" }), label: label, disabled: disabled, value: value, onValueChange: onValueChange, options: themeModes.map((mode) => {
|
|
30
52
|
const Icon = themeModeIcons[mode];
|
|
31
53
|
return {
|
|
32
54
|
value: mode,
|
|
@@ -3,6 +3,19 @@ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
|
|
|
3
3
|
import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group";
|
|
4
4
|
import { type VariantProps } from "class-variance-authority";
|
|
5
5
|
import { toggleVariants } from "./toggle.js";
|
|
6
|
+
/**
|
|
7
|
+
* Pressed buttons that belong together.
|
|
8
|
+
*
|
|
9
|
+
* @family Choices
|
|
10
|
+
* @when Pressed buttons that belong together: a list or grid view, which details a chat shows.
|
|
11
|
+
* @instead A segmented control that sets a value, such as the theme or a period, is a `RadioGroup`
|
|
12
|
+
* drawn with the toggle classes, as `ThemeModeSwitcher` does. Panels of one object are `Tabs`.
|
|
13
|
+
* @behaviour Spacing 0 joins the members into one outline with one seam; spacing 2 keeps them 8 px
|
|
14
|
+
* apart. Single or multiple pressed. Arrow keys move between members; Space presses.
|
|
15
|
+
* @words Text members are short words of equal weight. Icon members always carry a name: *List*,
|
|
16
|
+
* *Grid*.
|
|
17
|
+
* @access `role="group"` with a name; each member a button with `aria-pressed`.
|
|
18
|
+
*/
|
|
6
19
|
declare function ToggleGroup({ className, variant, size, spacing, orientation, style, children, ...props }: ToggleGroupPrimitive.Props & VariantProps<typeof toggleVariants> & {
|
|
7
20
|
spacing?: number;
|
|
8
21
|
orientation?: "horizontal" | "vertical";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../../src/components/toggle-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAcrD,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAW,EACX,WAA0B,EAC1B,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,KAAK,GAC3B,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC,
|
|
1
|
+
{"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../../src/components/toggle-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAcrD;;;;;;;;;;;;GAYG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAW,EACX,WAA0B,EAC1B,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,KAAK,GAC3B,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC,qBA2BF;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,qBAsB7D;AAED,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -11,8 +11,23 @@ const ToggleGroupContext = React.createContext({
|
|
|
11
11
|
spacing: 2,
|
|
12
12
|
orientation: "horizontal",
|
|
13
13
|
});
|
|
14
|
+
/**
|
|
15
|
+
* Pressed buttons that belong together.
|
|
16
|
+
*
|
|
17
|
+
* @family Choices
|
|
18
|
+
* @when Pressed buttons that belong together: a list or grid view, which details a chat shows.
|
|
19
|
+
* @instead A segmented control that sets a value, such as the theme or a period, is a `RadioGroup`
|
|
20
|
+
* drawn with the toggle classes, as `ThemeModeSwitcher` does. Panels of one object are `Tabs`.
|
|
21
|
+
* @behaviour Spacing 0 joins the members into one outline with one seam; spacing 2 keeps them 8 px
|
|
22
|
+
* apart. Single or multiple pressed. Arrow keys move between members; Space presses.
|
|
23
|
+
* @words Text members are short words of equal weight. Icon members always carry a name: *List*,
|
|
24
|
+
* *Grid*.
|
|
25
|
+
* @access `role="group"` with a name; each member a button with `aria-pressed`.
|
|
26
|
+
*/
|
|
14
27
|
function ToggleGroup({ className, variant, size, spacing = 2, orientation = "horizontal", style, children, ...props }) {
|
|
15
|
-
return (_jsx(ToggleGroupPrimitive, { "data-slot": "toggle-group", "data-variant": variant, "data-size": size, "data-spacing": spacing, "data-orientation": orientation, orientation: orientation,
|
|
28
|
+
return (_jsx(ToggleGroupPrimitive, { "data-slot": "toggle-group", "data-variant": variant, "data-size": size, "data-spacing": spacing, "data-orientation": orientation, orientation: orientation,
|
|
29
|
+
// SAFETY: CSSProperties lists only standard properties; React sets each `--` custom property key here through style.setProperty.
|
|
30
|
+
style: {
|
|
16
31
|
...style,
|
|
17
32
|
"--gap": spacing,
|
|
18
33
|
}, className: cn("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-sm data-vertical:flex-col data-vertical:items-stretch", className), ...props, children: _jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing, orientation }, children: children }) }));
|
|
@@ -4,6 +4,20 @@ declare const toggleVariants: (props?: ({
|
|
|
4
4
|
variant?: "default" | "outline" | null | undefined;
|
|
5
5
|
size?: "default" | "sm" | "lg" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
/**
|
|
8
|
+
* A button that stays pressed.
|
|
9
|
+
*
|
|
10
|
+
* @family Choices
|
|
11
|
+
* @when A button that stays pressed, where pressing is the action: pin a chat, mute a thread, show
|
|
12
|
+
* hidden rows in a toolbar.
|
|
13
|
+
* @instead A setting saved with its section is a `Switch`. Choosing one value of several is a
|
|
14
|
+
* `RadioGroup`, drawn segmented when it is short.
|
|
15
|
+
* @behaviour Space or Enter flips `aria-pressed`. Pressed takes the accent fill and weight 600; the
|
|
16
|
+
* label does not change. Hover is the muted fill. Disabled is 50%.
|
|
17
|
+
* @words The label is the action and stays the same in both states: *Pin*, never *Pinned* or
|
|
18
|
+
* *Unpin*.
|
|
19
|
+
* @access A `button` with `aria-pressed`. An icon-only toggle names what it does: *Pin chat*.
|
|
20
|
+
*/
|
|
7
21
|
declare function Toggle({ className, variant, size, ...props }: TogglePrimitive.Props & VariantProps<typeof toggleVariants>): import("react").JSX.Element;
|
|
8
22
|
export { Toggle, toggleVariants };
|
|
9
23
|
//# sourceMappingURL=toggle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../src/components/toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,cAAc;;;8EAoBnB,CAAC;AAEF,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,+BAQ7D;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../src/components/toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,cAAc;;;8EAoBnB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,+BAQ7D;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -20,6 +20,20 @@ const toggleVariants = cva("group/toggle inline-flex min-h-touch-target min-w-to
|
|
|
20
20
|
size: "default",
|
|
21
21
|
},
|
|
22
22
|
});
|
|
23
|
+
/**
|
|
24
|
+
* A button that stays pressed.
|
|
25
|
+
*
|
|
26
|
+
* @family Choices
|
|
27
|
+
* @when A button that stays pressed, where pressing is the action: pin a chat, mute a thread, show
|
|
28
|
+
* hidden rows in a toolbar.
|
|
29
|
+
* @instead A setting saved with its section is a `Switch`. Choosing one value of several is a
|
|
30
|
+
* `RadioGroup`, drawn segmented when it is short.
|
|
31
|
+
* @behaviour Space or Enter flips `aria-pressed`. Pressed takes the accent fill and weight 600; the
|
|
32
|
+
* label does not change. Hover is the muted fill. Disabled is 50%.
|
|
33
|
+
* @words The label is the action and stays the same in both states: *Pin*, never *Pinned* or
|
|
34
|
+
* *Unpin*.
|
|
35
|
+
* @access A `button` with `aria-pressed`. An icon-only toggle names what it does: *Pin chat*.
|
|
36
|
+
*/
|
|
23
37
|
function Toggle({ className, variant = "default", size = "default", ...props }) {
|
|
24
38
|
return (_jsx(TogglePrimitive, { "data-slot": "toggle", className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
25
39
|
}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export interface ToolIconProps extends Omit<
|
|
1
|
+
import { type LucideProps } from "lucide-react";
|
|
2
|
+
export interface ToolIconProps extends Omit<LucideProps, "name" | "ref"> {
|
|
3
|
+
/** The tool's kind as the conversation names it; an unknown one draws the question mark. */
|
|
3
4
|
name: string;
|
|
4
|
-
size?: number | string;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* The mark of a tool an Agent used, at the head of its row in the conversation.
|
|
8
|
+
*
|
|
9
|
+
* @family Other
|
|
10
|
+
* @when A tool call's row in an Agent's conversation: running a command, reading or editing a file, searching, browsing.
|
|
11
|
+
* @instead A file in a list takes its `FileTypeIcon`; an app takes its brand mark in `AppMark`; an Agent is her `AgentOrb`.
|
|
12
|
+
* @behaviour Lucide's glyph for the tool's kind, 1.5 px line in the text colour, 14 px unless `size` says otherwise. An unknown kind draws the question mark, so a new tool still has a mark.
|
|
13
|
+
* @words None. The tool's title stands beside it.
|
|
14
|
+
* @access Hidden: the row's title is the name.
|
|
15
|
+
*/
|
|
16
|
+
declare function ToolIcon({ className, name, size, ...props }: ToolIconProps): import("react").JSX.Element;
|
|
7
17
|
export { ToolIcon };
|
|
8
18
|
//# sourceMappingURL=tool-icon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-icon.d.ts","sourceRoot":"","sources":["../../src/components/tool-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tool-icon.d.ts","sourceRoot":"","sources":["../../src/components/tool-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,WAAW,EAKjB,MAAM,cAAc,CAAC;AAmBtB,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC;IACtE,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAiB,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,+BAahF;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { CircleQuestionMark, Clock, Eye, File as FileIcon, FileDiff, FileImage, Files, Globe, Pencil, Search, SquareTerminal, Wrench, } from "lucide-react";
|
|
2
3
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
4
|
+
const TOOL_ICONS = Object.fromEntries([
|
|
5
|
+
["diff", FileDiff],
|
|
6
|
+
["edit", Pencil],
|
|
7
|
+
["eye", Eye],
|
|
8
|
+
["file", FileIcon],
|
|
9
|
+
["file-media", FileImage],
|
|
10
|
+
["files", Files],
|
|
11
|
+
["globe", Globe],
|
|
12
|
+
["question", CircleQuestionMark],
|
|
13
|
+
["search", Search],
|
|
14
|
+
["terminal", SquareTerminal],
|
|
15
|
+
["tools", Wrench],
|
|
16
|
+
["watch", Clock],
|
|
17
|
+
]);
|
|
18
|
+
/**
|
|
19
|
+
* The mark of a tool an Agent used, at the head of its row in the conversation.
|
|
20
|
+
*
|
|
21
|
+
* @family Other
|
|
22
|
+
* @when A tool call's row in an Agent's conversation: running a command, reading or editing a file, searching, browsing.
|
|
23
|
+
* @instead A file in a list takes its `FileTypeIcon`; an app takes its brand mark in `AppMark`; an Agent is her `AgentOrb`.
|
|
24
|
+
* @behaviour Lucide's glyph for the tool's kind, 1.5 px line in the text colour, 14 px unless `size` says otherwise. An unknown kind draws the question mark, so a new tool still has a mark.
|
|
25
|
+
* @words None. The tool's title stands beside it.
|
|
26
|
+
* @access Hidden: the row's title is the name.
|
|
27
|
+
*/
|
|
28
|
+
function ToolIcon({ className, name, size = "0.875rem", ...props }) {
|
|
29
|
+
const Icon = TOOL_ICONS[name] ?? CircleQuestionMark;
|
|
30
|
+
return (_jsx(Icon, { "aria-hidden": "true", className: cn("shrink-0", className), "data-slot": "tool-icon", "data-tool": name, size: size, strokeWidth: 1.5, ...props }));
|
|
22
31
|
}
|
|
23
32
|
export { ToolIcon };
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
|
|
2
2
|
declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): import("react").JSX.Element;
|
|
3
|
+
/**
|
|
4
|
+
* A short, optional fact about its trigger.
|
|
5
|
+
*
|
|
6
|
+
* @family Feedback
|
|
7
|
+
* @when A short, optional fact the visible label cannot hold: why a value looks as it does, or an
|
|
8
|
+
* icon-only button's name, a shortcut only when one is bound.
|
|
9
|
+
* @instead For a preview with several facts use `HoverCard`. Help with a link uses a popover. A
|
|
10
|
+
* disabled command's reason is written under it, never only here.
|
|
11
|
+
* @behaviour Opens on hover and focus with no delay, above by default, 4 px off. Escape closes it.
|
|
12
|
+
* Never interactive; never the only home of a warning, a price or a reason.
|
|
13
|
+
* @words One phrase, sentence case, no full stop: *Resets on 1 November*. Never repeats the visible
|
|
14
|
+
* label (*Save* on Save).
|
|
15
|
+
* @access The trigger keeps its own name; the tooltip describes it. An icon-only button carries
|
|
16
|
+
* `aria-label` whether or not the tooltip is open.
|
|
17
|
+
*/
|
|
3
18
|
declare function Tooltip({ ...props }: TooltipPrimitive.Root.Props): import("react").JSX.Element;
|
|
4
19
|
declare function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props): import("react").JSX.Element;
|
|
5
20
|
declare function TooltipContent({ className, side, sideOffset, align, alignOffset, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAKrE,iBAAS,eAAe,CAAC,EAAE,KAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,+BAEhF;AAED,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,+BAEzD;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,+BAEnE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAY,EACZ,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,+BAyBzF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAKrE,iBAAS,eAAe,CAAC,EAAE,KAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,+BAEhF;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,+BAEzD;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,+BAEnE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAY,EACZ,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,+BAyBzF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -5,6 +5,21 @@ import { anchoredOverlayMotion } from "../lib/motion.js";
|
|
|
5
5
|
function TooltipProvider({ delay = 0, ...props }) {
|
|
6
6
|
return _jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delay: delay, ...props });
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* A short, optional fact about its trigger.
|
|
10
|
+
*
|
|
11
|
+
* @family Feedback
|
|
12
|
+
* @when A short, optional fact the visible label cannot hold: why a value looks as it does, or an
|
|
13
|
+
* icon-only button's name, a shortcut only when one is bound.
|
|
14
|
+
* @instead For a preview with several facts use `HoverCard`. Help with a link uses a popover. A
|
|
15
|
+
* disabled command's reason is written under it, never only here.
|
|
16
|
+
* @behaviour Opens on hover and focus with no delay, above by default, 4 px off. Escape closes it.
|
|
17
|
+
* Never interactive; never the only home of a warning, a price or a reason.
|
|
18
|
+
* @words One phrase, sentence case, no full stop: *Resets on 1 November*. Never repeats the visible
|
|
19
|
+
* label (*Save* on Save).
|
|
20
|
+
* @access The trigger keeps its own name; the tooltip describes it. An icon-only button carries
|
|
21
|
+
* `aria-label` whether or not the tooltip is open.
|
|
22
|
+
*/
|
|
8
23
|
function Tooltip({ ...props }) {
|
|
9
24
|
return _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
|
|
10
25
|
}
|
|
@@ -9,13 +9,28 @@ type TrendDirection = "up" | "down" | "flat";
|
|
|
9
9
|
type TrendTone = "positive" | "negative" | "neutral";
|
|
10
10
|
/** Direction crossed with whether up is good here. A flat or neutral change takes no tone. */
|
|
11
11
|
declare function trendTone(direction: TrendDirection, upIsGood?: boolean, neutral?: boolean): TrendTone;
|
|
12
|
+
/**
|
|
13
|
+
* A change against a stated period, as an outline badge with its direction.
|
|
14
|
+
*
|
|
15
|
+
* @family Charts
|
|
16
|
+
* @when A change against a stated period: on a `KpiCard` top right, in a chart's summary, on a
|
|
17
|
+
* Trending row. A figure with no comparison shows no badge.
|
|
18
|
+
* @instead A level that crosses a threshold is the card's own tone; crossing it is a notification.
|
|
19
|
+
* Status is a `StatusBadge`, never a delta.
|
|
20
|
+
* @behaviour Direction crossed with whether up is good (`trendTone`) sets the icon's tone: success
|
|
21
|
+
* green or blocked red; flat or a neutral measure stays grey. The badge text stays ink.
|
|
22
|
+
* @words Signed value with a true minus and its unit (+12.4%, −€360), then *vs previous 30 days* or
|
|
23
|
+
* *vs August 2026*. Never bare signed text, colour alone or a triangle glyph.
|
|
24
|
+
* @access The icon is hidden and the direction is read as a word (*up*, *down*, *unchanged*) in the
|
|
25
|
+
* reader's language; tabular figures keep the digits aligned.
|
|
26
|
+
*/
|
|
12
27
|
declare function TrendBadge({ value, direction, tone, directionLabel, }: {
|
|
13
28
|
/** The formatted change, e.g. "+12.5%". */
|
|
14
29
|
value: React.ReactNode;
|
|
15
30
|
direction: TrendDirection;
|
|
16
31
|
tone: TrendTone;
|
|
17
32
|
/** The direction in the reader's language, because an arrow alone is not a reading. */
|
|
18
|
-
directionLabel
|
|
33
|
+
directionLabel: string;
|
|
19
34
|
}): React.JSX.Element;
|
|
20
35
|
export { TrendBadge, trendTone };
|
|
21
36
|
export type { TrendDirection, TrendTone };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trend-badge.d.ts","sourceRoot":"","sources":["../../src/components/trend-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAKpC;;;;;GAKG;AAEH,KAAK,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7C,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"trend-badge.d.ts","sourceRoot":"","sources":["../../src/components/trend-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAKpC;;;;;GAKG;AAEH,KAAK,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7C,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAcrD,8FAA8F;AAC9F,iBAAS,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,UAAO,EAAE,OAAO,UAAQ,GAAG,SAAS,CAGzF;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,EAClB,KAAK,EACL,SAAS,EACT,IAAI,EACJ,cAAc,GACf,EAAE;IACD,2CAA2C;IAC3C,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;CACxB,qBAeA;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACjC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -6,12 +6,6 @@ const TREND_ICONS = {
|
|
|
6
6
|
down: TrendingDownIcon,
|
|
7
7
|
flat: MinusIcon,
|
|
8
8
|
};
|
|
9
|
-
/** The fallback reading for a caller with no dictionary; a localized caller passes `directionLabel`. */
|
|
10
|
-
const TREND_DIRECTION_TEXT = {
|
|
11
|
-
up: "up",
|
|
12
|
-
down: "down",
|
|
13
|
-
flat: "unchanged",
|
|
14
|
-
};
|
|
15
9
|
const TREND_TONE_CLASS = {
|
|
16
10
|
positive: "text-(--nc-state-complete)",
|
|
17
11
|
negative: "text-(--nc-state-blocked)",
|
|
@@ -23,8 +17,23 @@ function trendTone(direction, upIsGood = true, neutral = false) {
|
|
|
23
17
|
return "neutral";
|
|
24
18
|
return (direction === "up") === upIsGood ? "positive" : "negative";
|
|
25
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* A change against a stated period, as an outline badge with its direction.
|
|
22
|
+
*
|
|
23
|
+
* @family Charts
|
|
24
|
+
* @when A change against a stated period: on a `KpiCard` top right, in a chart's summary, on a
|
|
25
|
+
* Trending row. A figure with no comparison shows no badge.
|
|
26
|
+
* @instead A level that crosses a threshold is the card's own tone; crossing it is a notification.
|
|
27
|
+
* Status is a `StatusBadge`, never a delta.
|
|
28
|
+
* @behaviour Direction crossed with whether up is good (`trendTone`) sets the icon's tone: success
|
|
29
|
+
* green or blocked red; flat or a neutral measure stays grey. The badge text stays ink.
|
|
30
|
+
* @words Signed value with a true minus and its unit (+12.4%, −€360), then *vs previous 30 days* or
|
|
31
|
+
* *vs August 2026*. Never bare signed text, colour alone or a triangle glyph.
|
|
32
|
+
* @access The icon is hidden and the direction is read as a word (*up*, *down*, *unchanged*) in the
|
|
33
|
+
* reader's language; tabular figures keep the digits aligned.
|
|
34
|
+
*/
|
|
26
35
|
function TrendBadge({ value, direction, tone, directionLabel, }) {
|
|
27
36
|
const Icon = TREND_ICONS[direction];
|
|
28
|
-
return (_jsxs(Badge, { "data-slot": "trend-badge", "data-direction": direction, "data-tone": tone, variant: "outline", className: "tabular-nums", children: [_jsx(Icon, { "aria-hidden": "true", className: TREND_TONE_CLASS[tone] }), _jsx("span", { className: "sr-only", children: directionLabel
|
|
37
|
+
return (_jsxs(Badge, { "data-slot": "trend-badge", "data-direction": direction, "data-tone": tone, variant: "outline", className: "tabular-nums", children: [_jsx(Icon, { "aria-hidden": "true", className: TREND_TONE_CLASS[tone] }), _jsx("span", { className: "sr-only", children: directionLabel }), value] }));
|
|
29
38
|
}
|
|
30
39
|
export { TrendBadge, trendTone };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type PageCommand } from "./page-actions.js";
|
|
2
|
+
export type UpdateCardProps = {
|
|
3
|
+
state: "available";
|
|
4
|
+
/** "Update available". */
|
|
5
|
+
title: string;
|
|
6
|
+
/** The version on offer: "Nadia 0.42.0". */
|
|
7
|
+
version: string;
|
|
8
|
+
/** "Update and restart", with its pending word while it runs. */
|
|
9
|
+
action: PageCommand;
|
|
10
|
+
/** The rail is too narrow for words: one icon button. */
|
|
11
|
+
narrow?: boolean;
|
|
12
|
+
} | {
|
|
13
|
+
state: "updated";
|
|
14
|
+
/** "Nadia is up to date". */
|
|
15
|
+
title: string;
|
|
16
|
+
/** The version now running. */
|
|
17
|
+
version: string;
|
|
18
|
+
/** Closes the card: its label names the ghost close. */
|
|
19
|
+
dismiss: {
|
|
20
|
+
label: string;
|
|
21
|
+
onClick: () => void;
|
|
22
|
+
};
|
|
23
|
+
narrow?: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* The update offer at the foot of a desktop app's sidebar, above the account.
|
|
27
|
+
*
|
|
28
|
+
* @family Feedback
|
|
29
|
+
* @when Nadia's and Alveare's sidebar foot, only while an update is on offer or has just been installed.
|
|
30
|
+
* @instead A failed update or a download that needs the person is a NoticeBanner; the Portal's way to get the app is its Downloads row.
|
|
31
|
+
* @behaviour Available: the title, the version and one full-width command that keeps its place and says its pending word while it runs. Updated: the title, the version and a close. Narrow, the card is one icon button whose tooltip shows the title and the version. Nothing else in the window offers the update.
|
|
32
|
+
* @words The title says what happened ("Update available"), the version names the product and its number ("Nadia 0.42.0"), and the command says its result ("Update and restart").
|
|
33
|
+
* @access The card is a region named by its title. The narrow button is named by its command and the version ("Update and restart: Nadia 0.42.0"), and the close carries its label; a running command is aria-busy.
|
|
34
|
+
*/
|
|
35
|
+
export declare function UpdateCard(props: UpdateCardProps): import("react").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=update-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-card.d.ts","sourceRoot":"","sources":["../../src/components/update-card.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGhF,MAAM,MAAM,eAAe,GACvB;IACE,KAAK,EAAE,WAAW,CAAC;IACnB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,MAAM,EAAE,WAAW,CAAC;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACD;IACE,KAAK,EAAE,SAAS,CAAC;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEN;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BAoChD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ArrowDownToLine, CircleCheck, X } from "lucide-react";
|
|
4
|
+
import { Button } from "./button.js";
|
|
5
|
+
import { Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle, } from "./card.js";
|
|
6
|
+
import { PageCommandButton } from "./page-actions.js";
|
|
7
|
+
import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
|
|
8
|
+
/**
|
|
9
|
+
* The update offer at the foot of a desktop app's sidebar, above the account.
|
|
10
|
+
*
|
|
11
|
+
* @family Feedback
|
|
12
|
+
* @when Nadia's and Alveare's sidebar foot, only while an update is on offer or has just been installed.
|
|
13
|
+
* @instead A failed update or a download that needs the person is a NoticeBanner; the Portal's way to get the app is its Downloads row.
|
|
14
|
+
* @behaviour Available: the title, the version and one full-width command that keeps its place and says its pending word while it runs. Updated: the title, the version and a close. Narrow, the card is one icon button whose tooltip shows the title and the version. Nothing else in the window offers the update.
|
|
15
|
+
* @words The title says what happened ("Update available"), the version names the product and its number ("Nadia 0.42.0"), and the command says its result ("Update and restart").
|
|
16
|
+
* @access The card is a region named by its title. The narrow button is named by its command and the version ("Update and restart: Nadia 0.42.0"), and the close carries its label; a running command is aria-busy.
|
|
17
|
+
*/
|
|
18
|
+
export function UpdateCard(props) {
|
|
19
|
+
if (props.narrow)
|
|
20
|
+
return _jsx(NarrowUpdate, { ...props });
|
|
21
|
+
return (_jsxs(Card, { "aria-label": props.title, className: "mx-1 mb-1", "data-state": props.state, render: _jsx("section", {}), size: "sm", surface: "outlined", children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: props.title }), _jsx(CardDescription, { children: props.version }), props.state === "updated" ? (_jsx(CardAction, { children: _jsx(Button, { "aria-label": props.dismiss.label, onClick: props.dismiss.onClick, size: "icon-sm", type: "button", variant: "ghost", children: _jsx(X, { "aria-hidden": "true" }) }) })) : null] }), props.state === "available" ? (_jsx(CardContent, { className: "grid *:w-full", children: _jsx(PageCommandButton, { command: props.action, variant: "default" }) })) : null] }));
|
|
22
|
+
}
|
|
23
|
+
function NarrowUpdate(props) {
|
|
24
|
+
const button = props.state === "available" ? (_jsx(Button, { "aria-busy": props.action.pending || undefined, "aria-label": `${props.action.pending ? (props.action.pendingLabel ?? props.action.label) : props.action.label}: ${props.version}`, disabled: props.action.disabled || props.action.pending, size: "icon", variant: "ghost", ...(props.action.render
|
|
25
|
+
? { render: props.action.render, nativeButton: false }
|
|
26
|
+
: { onClick: props.action.onClick, type: "button" }), children: _jsx(ArrowDownToLine, { "aria-hidden": "true" }) })) : (_jsx(Button, { "aria-label": `${props.dismiss.label}: ${props.title}`, onClick: props.dismiss.onClick, size: "icon", type: "button", variant: "ghost", children: _jsx(CircleCheck, { "aria-hidden": "true" }) }));
|
|
27
|
+
return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { render: button }), _jsxs(TooltipContent, { side: "right", children: [props.title, ", ", props.version] })] }));
|
|
28
|
+
}
|
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Consumption against an allowance in a dense spot.
|
|
4
|
+
*
|
|
5
|
+
* @family Data
|
|
6
|
+
* @when `UsageMeter`: consumption against an allowance in a dense spot, such as a run's tokens and
|
|
7
|
+
* cost.
|
|
8
|
+
* @instead A known amount against a real maximum with its label is `Progress`. An unknown wait is
|
|
9
|
+
* the waiting line, never a bar with an invented percentage. A single figure is a `KpiCard`.
|
|
10
|
+
* @behaviour The fill moves only when the reading changes, on `transition`; still under reduced
|
|
11
|
+
* motion. The tone is the product's threshold, never derived from the value. Past the maximum the
|
|
12
|
+
* bar fills and turns red.
|
|
13
|
+
* @words Print the work and its unit: *620 of 1,000*. The meter's fields are short and set in
|
|
14
|
+
* uppercase mono by the stylesheet, so they are written in sentence case.
|
|
15
|
+
* @access The meter's printed figures are the reading; its track is decorative.
|
|
16
|
+
*/
|
|
2
17
|
declare function UsageMeter({ className, fields, trailing, usage, children, ...props }: Omit<React.ComponentProps<"div">, "children"> & {
|
|
3
18
|
fields?: string[];
|
|
4
19
|
trailing?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-meter.d.ts","sourceRoot":"","sources":["../../src/components/usage-meter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,MAAW,EACX,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IACjD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,
|
|
1
|
+
{"version":3,"file":"usage-meter.d.ts","sourceRoot":"","sources":["../../src/components/usage-meter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,MAAW,EACX,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IACjD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,qBAqCA;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { cn } from "../lib/utils.js";
|
|
4
|
+
/**
|
|
5
|
+
* Consumption against an allowance in a dense spot.
|
|
6
|
+
*
|
|
7
|
+
* @family Data
|
|
8
|
+
* @when `UsageMeter`: consumption against an allowance in a dense spot, such as a run's tokens and
|
|
9
|
+
* cost.
|
|
10
|
+
* @instead A known amount against a real maximum with its label is `Progress`. An unknown wait is
|
|
11
|
+
* the waiting line, never a bar with an invented percentage. A single figure is a `KpiCard`.
|
|
12
|
+
* @behaviour The fill moves only when the reading changes, on `transition`; still under reduced
|
|
13
|
+
* motion. The tone is the product's threshold, never derived from the value. Past the maximum the
|
|
14
|
+
* bar fills and turns red.
|
|
15
|
+
* @words Print the work and its unit: *620 of 1,000*. The meter's fields are short and set in
|
|
16
|
+
* uppercase mono by the stylesheet, so they are written in sentence case.
|
|
17
|
+
* @access The meter's printed figures are the reading; its track is decorative.
|
|
18
|
+
*/
|
|
4
19
|
function UsageMeter({ className, fields = [], trailing, usage, children, ...props }) {
|
|
5
20
|
const hasMeta = fields.length > 0 || trailing != null || children != null;
|
|
6
|
-
return (_jsxs("div", { "data-slot": "usage-meter", className: cn("nc-usage-meter", className), ...props, children: [hasMeta && (_jsxs("div", { className: "nc-usage-meter-meta", children: [fields.map((field, index) => (_jsxs(React.Fragment, { children: [index > 0 && _jsx("span", { className: "nc-usage-meter-sep", children: "/" }), _jsx("span", { children: field })] }, index))), trailing != null && (_jsxs(_Fragment, { children: [_jsx("span", { className: "nc-usage-meter-spacer" }), _jsx("span", { children: trailing })] })), children != null && _jsx("span", { "data-slot": "usage-meter-slot", children: children })] })), usage != null && (_jsx("div", { className: "nc-usage-meter-track", children: _jsx("div", { className: "nc-usage-meter-fill",
|
|
21
|
+
return (_jsxs("div", { "data-slot": "usage-meter", className: cn("nc-usage-meter", className), ...props, children: [hasMeta && (_jsxs("div", { className: "nc-usage-meter-meta", children: [fields.map((field, index) => (_jsxs(React.Fragment, { children: [index > 0 && _jsx("span", { className: "nc-usage-meter-sep", children: "/" }), _jsx("span", { children: field })] }, index))), trailing != null && (_jsxs(_Fragment, { children: [_jsx("span", { className: "nc-usage-meter-spacer" }), _jsx("span", { children: trailing })] })), children != null && _jsx("span", { "data-slot": "usage-meter-slot", children: children })] })), usage != null && (_jsx("div", { className: "nc-usage-meter-track", children: _jsx("div", { className: "nc-usage-meter-fill",
|
|
22
|
+
// SAFETY: CSSProperties lists only standard properties; React sets each `--` custom property key here through style.setProperty.
|
|
23
|
+
style:
|
|
24
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- usage is our own number | string prop: a number is a percentage, a string a CSS length.
|
|
25
|
+
{ "--nc-usage": typeof usage === "number" ? `${usage}%` : usage } }) }))] }));
|
|
7
26
|
}
|
|
8
27
|
export { UsageMeter };
|
|
@@ -13,17 +13,20 @@ type WaitingLineProps = Omit<React.ComponentProps<"div">, "children"> & ({
|
|
|
13
13
|
label: string;
|
|
14
14
|
});
|
|
15
15
|
/**
|
|
16
|
-
* The one moving thing a system wait may show: a 2 px ink
|
|
17
|
-
* segment crossing it linearly, after a second of waiting. Under reduced
|
|
18
|
-
* motion the whole line breathes in opacity instead of travelling.
|
|
16
|
+
* The one moving thing a system wait may show: a 2 px ink line, after a second.
|
|
19
17
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* the
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
18
|
+
* @family Feedback
|
|
19
|
+
* @when A system wait the person asked for that runs past a second: a save, a connection, a
|
|
20
|
+
* download without a count.
|
|
21
|
+
* @instead Under a second the `PendingLabel` alone. A known amount is a progress line with a count.
|
|
22
|
+
* A page load is `Skeleton`. An Agent working is her orb and a sentence.
|
|
23
|
+
* @behaviour Takes its 2 px from the start and stays empty until 1 s, so its arrival moves nothing.
|
|
24
|
+
* No track colour; the segment is ink, never info blue, crossing at 32% width. Under reduced motion
|
|
25
|
+
* it breathes.
|
|
26
|
+
* @words None of its own. The control beside it carries the pending word; a standalone line takes a
|
|
27
|
+
* `label` naming the work: *Connecting Telegram*.
|
|
28
|
+
* @access With a label: `role="status"`, announced once after the second. `decorative` when the
|
|
29
|
+
* control beside it already says it. The segment is hidden.
|
|
27
30
|
*/
|
|
28
31
|
declare function WaitingLine({ className, decorative, label, ...props }: WaitingLineProps): React.JSX.Element;
|
|
29
32
|
export { WaitingLine, WAITING_LINE_DELAY_MS };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waiting-line.d.ts","sourceRoot":"","sources":["../../src/components/waiting-line.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;GAIG;AACH,QAAA,MAAM,qBAAqB,OAAO,CAAC;AAEnC,KAAK,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GACnE,CAAC;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhF
|
|
1
|
+
{"version":3,"file":"waiting-line.d.ts","sourceRoot":"","sources":["../../src/components/waiting-line.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;GAIG;AACH,QAAA,MAAM,qBAAqB,OAAO,CAAC;AAEnC,KAAK,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GACnE,CAAC;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhF;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,UAAkB,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,qBA0BxF;AAED,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -9,17 +9,20 @@ import { cn } from "../lib/utils.js";
|
|
|
9
9
|
*/
|
|
10
10
|
const WAITING_LINE_DELAY_MS = 1000;
|
|
11
11
|
/**
|
|
12
|
-
* The one moving thing a system wait may show: a 2 px ink
|
|
13
|
-
* segment crossing it linearly, after a second of waiting. Under reduced
|
|
14
|
-
* motion the whole line breathes in opacity instead of travelling.
|
|
12
|
+
* The one moving thing a system wait may show: a 2 px ink line, after a second.
|
|
15
13
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* the
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
14
|
+
* @family Feedback
|
|
15
|
+
* @when A system wait the person asked for that runs past a second: a save, a connection, a
|
|
16
|
+
* download without a count.
|
|
17
|
+
* @instead Under a second the `PendingLabel` alone. A known amount is a progress line with a count.
|
|
18
|
+
* A page load is `Skeleton`. An Agent working is her orb and a sentence.
|
|
19
|
+
* @behaviour Takes its 2 px from the start and stays empty until 1 s, so its arrival moves nothing.
|
|
20
|
+
* No track colour; the segment is ink, never info blue, crossing at 32% width. Under reduced motion
|
|
21
|
+
* it breathes.
|
|
22
|
+
* @words None of its own. The control beside it carries the pending word; a standalone line takes a
|
|
23
|
+
* `label` naming the work: *Connecting Telegram*.
|
|
24
|
+
* @access With a label: `role="status"`, announced once after the second. `decorative` when the
|
|
25
|
+
* control beside it already says it. The segment is hidden.
|
|
23
26
|
*/
|
|
24
27
|
function WaitingLine({ className, decorative = false, label, ...props }) {
|
|
25
28
|
const [elapsed, setElapsed] = React.useState(false);
|