@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
|
@@ -18,11 +18,24 @@ export type ModelIdentityProps = Omit<ComponentPropsWithoutRef<"span">, "childre
|
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
20
|
* A model as every surface reads it: the maker's mark, one name, the muted
|
|
21
|
-
* maker.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
21
|
+
* maker.
|
|
22
|
+
*
|
|
23
|
+
* Callers pass the id and nothing else about its shape — the split, the name
|
|
24
|
+
* form and the mark all belong here, so a ranked list, a routing table and a
|
|
25
|
+
* settings row cannot drift into three readings of the same model. A product
|
|
24
26
|
* whose runtime names its models itself, as Hermes does in Nadia, passes that
|
|
25
27
|
* `name` so a model reads the same in its settings as in its chat.
|
|
28
|
+
*
|
|
29
|
+
* @family Status
|
|
30
|
+
* @when Any place a model is shown: a ranked list, a routing table, a settings row, an option in
|
|
31
|
+
* `ModelSelect`.
|
|
32
|
+
* @instead A maker's mark with a name already in hand is `ModelMark`. Choosing a model is
|
|
33
|
+
* `ModelSelect`.
|
|
34
|
+
* @behaviour The caller passes the id and nothing else about its shape: the split, the name form
|
|
35
|
+
* and the mark all belong here. An id with no maker prefix falls back to the neutral tile.
|
|
36
|
+
* @words The maker's own spelling when the table has it (*Claude Opus 5*), else the id without its
|
|
37
|
+
* maker prefix; a product whose runtime names models passes that `name`.
|
|
38
|
+
* @access The name is text; the mark beside it is decorative.
|
|
26
39
|
*/
|
|
27
40
|
export declare function ModelIdentity({ model, name, markSize, ...props }: ModelIdentityProps): import("react").JSX.Element;
|
|
28
41
|
//# sourceMappingURL=model-identity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-identity.d.ts","sourceRoot":"","sources":["../../src/components/model-identity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAItD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjD;AAUD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"model-identity.d.ts","sourceRoot":"","sources":["../../src/components/model-identity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAItD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjD;AAUD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,+BASpF"}
|
|
@@ -30,11 +30,24 @@ export function modelDisplayName(model) {
|
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* A model as every surface reads it: the maker's mark, one name, the muted
|
|
33
|
-
* maker.
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* maker.
|
|
34
|
+
*
|
|
35
|
+
* Callers pass the id and nothing else about its shape — the split, the name
|
|
36
|
+
* form and the mark all belong here, so a ranked list, a routing table and a
|
|
37
|
+
* settings row cannot drift into three readings of the same model. A product
|
|
36
38
|
* whose runtime names its models itself, as Hermes does in Nadia, passes that
|
|
37
39
|
* `name` so a model reads the same in its settings as in its chat.
|
|
40
|
+
*
|
|
41
|
+
* @family Status
|
|
42
|
+
* @when Any place a model is shown: a ranked list, a routing table, a settings row, an option in
|
|
43
|
+
* `ModelSelect`.
|
|
44
|
+
* @instead A maker's mark with a name already in hand is `ModelMark`. Choosing a model is
|
|
45
|
+
* `ModelSelect`.
|
|
46
|
+
* @behaviour The caller passes the id and nothing else about its shape: the split, the name form
|
|
47
|
+
* and the mark all belong here. An id with no maker prefix falls back to the neutral tile.
|
|
48
|
+
* @words The maker's own spelling when the table has it (*Claude Opus 5*), else the id without its
|
|
49
|
+
* maker prefix; a product whose runtime names models passes that `name`.
|
|
50
|
+
* @access The name is text; the mark beside it is decorative.
|
|
38
51
|
*/
|
|
39
52
|
export function ModelIdentity({ model, name, markSize, ...props }) {
|
|
40
53
|
return (_jsx(ModelMark, { author: modelAuthor(model), name: name ?? modelDisplayName(model), ...(markSize === undefined ? {} : { size: markSize }), ...props }));
|
|
@@ -15,8 +15,21 @@ type ModelMarkProps = Omit<React.ComponentProps<"span">, "children"> & {
|
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
17
|
* A model's maker as LobeHub draws it, in the tile every mark shares, with the
|
|
18
|
-
* model's name beside it when one is given.
|
|
19
|
-
*
|
|
18
|
+
* model's name beside it when one is given.
|
|
19
|
+
*
|
|
20
|
+
* A maker LobeHub has no mark for keeps its initials and is named in words.
|
|
21
|
+
*
|
|
22
|
+
* @family Status
|
|
23
|
+
* @when A maker's mark beside a name the caller already has, such as a usage row reporting an
|
|
24
|
+
* author slug.
|
|
25
|
+
* @instead A model read from its id is `ModelIdentity`, which splits the id and names it. An app is
|
|
26
|
+
* `AppMark`. A platform is `PlatformMark`.
|
|
27
|
+
* @behaviour Looks the maker up in LobeHub's set by its slug, through the one table of names that
|
|
28
|
+
* differ. While the mark loads the tile keeps its size; a maker with no mark keeps its initials.
|
|
29
|
+
* The glyph is 62% of the tile, 24 px by default.
|
|
30
|
+
* @words The model's name as the product reads it; the maker is never spelled by this component.
|
|
31
|
+
* @access Decorative beside the name. A bare mark takes `label` and becomes `role="img"`; with no
|
|
32
|
+
* name it stays hidden.
|
|
20
33
|
*/
|
|
21
34
|
declare function ModelMark({ author, name, size, label, className, ...props }: ModelMarkProps): React.JSX.Element;
|
|
22
35
|
export { ModelMark };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-mark.d.ts","sourceRoot":"","sources":["../../src/components/model-mark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqG/B,KAAK,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACrE,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA+DF
|
|
1
|
+
{"version":3,"file":"model-mark.d.ts","sourceRoot":"","sources":["../../src/components/model-mark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqG/B,KAAK,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACrE,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA+DF;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,SAAS,CAAC,EACjB,MAAM,EACN,IAAI,EACJ,IAAsB,EACtB,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,qBAsChB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -5,26 +5,26 @@ import { cn } from "../lib/utils.js";
|
|
|
5
5
|
* The one table of names: an OpenRouter author slug whose maker LobeHub's icon
|
|
6
6
|
* set files under another name. Every other author is looked up by its slug.
|
|
7
7
|
*/
|
|
8
|
-
const LOBEHUB_NAMES =
|
|
9
|
-
"aion-labs"
|
|
10
|
-
amazon
|
|
11
|
-
anthropic
|
|
12
|
-
"arcee-ai"
|
|
13
|
-
"bytedance-seed"
|
|
14
|
-
cognitivecomputations
|
|
15
|
-
"dots-studio"
|
|
16
|
-
google
|
|
17
|
-
"ibm-granite"
|
|
18
|
-
"inference-net"
|
|
19
|
-
meituan
|
|
20
|
-
"meta-llama"
|
|
21
|
-
mistralai
|
|
22
|
-
moonshotai
|
|
23
|
-
rekaai
|
|
24
|
-
"x-ai"
|
|
25
|
-
xiaomi
|
|
26
|
-
"z-ai"
|
|
27
|
-
|
|
8
|
+
const LOBEHUB_NAMES = new Map([
|
|
9
|
+
["aion-labs", "aionlabs"],
|
|
10
|
+
["amazon", "nova"],
|
|
11
|
+
["anthropic", "claude"],
|
|
12
|
+
["arcee-ai", "arcee"],
|
|
13
|
+
["bytedance-seed", "bytedance"],
|
|
14
|
+
["cognitivecomputations", "dolphin"],
|
|
15
|
+
["dots-studio", "dotsstudio"],
|
|
16
|
+
["google", "gemini"],
|
|
17
|
+
["ibm-granite", "ibm"],
|
|
18
|
+
["inference-net", "inference"],
|
|
19
|
+
["meituan", "longcat"],
|
|
20
|
+
["meta-llama", "meta"],
|
|
21
|
+
["mistralai", "mistral"],
|
|
22
|
+
["moonshotai", "moonshot"],
|
|
23
|
+
["rekaai", "reka"],
|
|
24
|
+
["x-ai", "grok"],
|
|
25
|
+
["xiaomi", "xiaomimimo"],
|
|
26
|
+
["z-ai", "zai"],
|
|
27
|
+
]);
|
|
28
28
|
/** The shape of every file name in LobeHub's set, without its variant suffix. */
|
|
29
29
|
const LOBEHUB_NAME = /^[a-z0-9]+$/;
|
|
30
30
|
const MODEL_MARK_SIZE = 24;
|
|
@@ -34,7 +34,7 @@ function normalizedAuthor(author) {
|
|
|
34
34
|
return author.trim().toLowerCase().replace(/^~+/, "");
|
|
35
35
|
}
|
|
36
36
|
function lobehubName(slug) {
|
|
37
|
-
const name =
|
|
37
|
+
const name = LOBEHUB_NAMES.get(slug) ?? slug;
|
|
38
38
|
return name && LOBEHUB_NAME.test(name) ? name : undefined;
|
|
39
39
|
}
|
|
40
40
|
function authorInitials(author) {
|
|
@@ -96,8 +96,21 @@ function LoadedReading({ mark, ...reading }) {
|
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
98
|
* A model's maker as LobeHub draws it, in the tile every mark shares, with the
|
|
99
|
-
* model's name beside it when one is given.
|
|
100
|
-
*
|
|
99
|
+
* model's name beside it when one is given.
|
|
100
|
+
*
|
|
101
|
+
* A maker LobeHub has no mark for keeps its initials and is named in words.
|
|
102
|
+
*
|
|
103
|
+
* @family Status
|
|
104
|
+
* @when A maker's mark beside a name the caller already has, such as a usage row reporting an
|
|
105
|
+
* author slug.
|
|
106
|
+
* @instead A model read from its id is `ModelIdentity`, which splits the id and names it. An app is
|
|
107
|
+
* `AppMark`. A platform is `PlatformMark`.
|
|
108
|
+
* @behaviour Looks the maker up in LobeHub's set by its slug, through the one table of names that
|
|
109
|
+
* differ. While the mark loads the tile keeps its size; a maker with no mark keeps its initials.
|
|
110
|
+
* The glyph is 62% of the tile, 24 px by default.
|
|
111
|
+
* @words The model's name as the product reads it; the maker is never spelled by this component.
|
|
112
|
+
* @access Decorative beside the name. A bare mark takes `label` and becomes `role="img"`; with no
|
|
113
|
+
* name it stays hidden.
|
|
101
114
|
*/
|
|
102
115
|
function ModelMark({ author, name, size = MODEL_MARK_SIZE, label, className, ...props }) {
|
|
103
116
|
const slug = normalizedAuthor(author);
|
|
@@ -12,11 +12,17 @@ export type NadiaPresenceProps = {
|
|
|
12
12
|
/** The arrival curve: a trace at the start, not a ribbon already half-built. */
|
|
13
13
|
export declare function arrivalOpacity(reveal: number): number;
|
|
14
14
|
/**
|
|
15
|
-
* Nadia at an entry screen.
|
|
15
|
+
* Nadia at an entry screen: her ribbon, arriving through the picture behind her.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* @family Other
|
|
18
|
+
* @when Nadia's entry, sign-in and update screens, standing in the middle of `EntryScene`.
|
|
19
|
+
* @instead Nadia anywhere else is her `AgentOrb`. A system wait is the waiting line.
|
|
20
|
+
* @behaviour `reveal` drives one opacity from a trace to whole; each presence state maps to her
|
|
21
|
+
* orb's state, so a person sees whether she is working, waiting, finished or stopped. 160 px unless
|
|
22
|
+
* the scene sets its size.
|
|
23
|
+
* @words The label names the arrival: *Nadia is getting ready*.
|
|
24
|
+
* @access A hidden `progressbar` named by `label` carries the same value the person sees; the
|
|
25
|
+
* ribbon is decorative.
|
|
20
26
|
*/
|
|
21
27
|
export declare function NadiaPresence({ className, label, reveal, state, motionKey, }: NadiaPresenceProps): import("react").JSX.Element;
|
|
22
28
|
//# sourceMappingURL=nadia-presence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nadia-presence.d.ts","sourceRoot":"","sources":["../../src/components/nadia-presence.tsx"],"names":[],"mappings":"AAsBA,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAYlG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED
|
|
1
|
+
{"version":3,"file":"nadia-presence.d.ts","sourceRoot":"","sources":["../../src/components/nadia-presence.tsx"],"names":[],"mappings":"AAsBA,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAYlG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAa,GACd,EAAE,kBAAkB,+BAgCpB"}
|
|
@@ -33,11 +33,17 @@ export function arrivalOpacity(reveal) {
|
|
|
33
33
|
return ARRIVAL_FLOOR + (1 - ARRIVAL_FLOOR) * clampUnit(reveal) ** ARRIVAL_CURVE;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
* Nadia at an entry screen.
|
|
36
|
+
* Nadia at an entry screen: her ribbon, arriving through the picture behind her.
|
|
37
37
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
38
|
+
* @family Other
|
|
39
|
+
* @when Nadia's entry, sign-in and update screens, standing in the middle of `EntryScene`.
|
|
40
|
+
* @instead Nadia anywhere else is her `AgentOrb`. A system wait is the waiting line.
|
|
41
|
+
* @behaviour `reveal` drives one opacity from a trace to whole; each presence state maps to her
|
|
42
|
+
* orb's state, so a person sees whether she is working, waiting, finished or stopped. 160 px unless
|
|
43
|
+
* the scene sets its size.
|
|
44
|
+
* @words The label names the arrival: *Nadia is getting ready*.
|
|
45
|
+
* @access A hidden `progressbar` named by `label` carries the same value the person sees; the
|
|
46
|
+
* ribbon is decorative.
|
|
41
47
|
*/
|
|
42
48
|
export function NadiaPresence({ className, label, reveal, state, motionKey = 0, }) {
|
|
43
49
|
const value = clampUnit(reveal);
|
|
@@ -2,6 +2,22 @@ import * as React from "react";
|
|
|
2
2
|
type NativeSelectProps = Omit<React.ComponentProps<"select">, "size"> & {
|
|
3
3
|
size?: "sm" | "default";
|
|
4
4
|
};
|
|
5
|
+
/**
|
|
6
|
+
* The platform's own select, drawn as our input box.
|
|
7
|
+
*
|
|
8
|
+
* @family Inputs
|
|
9
|
+
* @when A long fixed list inside a native form, where the platform's own picker serves best: a time
|
|
10
|
+
* zone, a country.
|
|
11
|
+
* @instead Two or three options are radios or a segmented control. Up to about ten, drawn in our
|
|
12
|
+
* style, is `Select`. A list people type into is `Combobox`.
|
|
13
|
+
* @behaviour Same box as `Input`, the chevron 10 px from the edge in the muted grey. It opens the
|
|
14
|
+
* system's list, with native keyboard and typing. As an uncontrolled field it keeps a saved value
|
|
15
|
+
* instead of snapping back to the page's first default.
|
|
16
|
+
* @words The label names the thing chosen (*Time zone*). A placeholder option is distinct from a
|
|
17
|
+
* real one and never preselected as if chosen.
|
|
18
|
+
* @access A real `select` with a visible label; option groups are `optgroup`. The chevron is
|
|
19
|
+
* decorative.
|
|
20
|
+
*/
|
|
5
21
|
declare function NativeSelect({ className, size, ref, ...props }: NativeSelectProps): React.JSX.Element;
|
|
6
22
|
declare function NativeSelectOption({ className, ...props }: React.ComponentProps<"option">): React.JSX.Element;
|
|
7
23
|
declare function NativeSelectOptGroup({ className, ...props }: React.ComponentProps<"optgroup">): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-select.d.ts","sourceRoot":"","sources":["../../src/components/native-select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,GAAG;IACtE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,CAAC;AAEF,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,IAAgB,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"native-select.d.ts","sourceRoot":"","sources":["../../src/components/native-select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,GAAG;IACtE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,IAAgB,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,qBAiEtF;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAQlF;AAED,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,qBAQtF;AAED,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -3,17 +3,37 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { ChevronDownIcon } from "lucide-react";
|
|
6
|
+
/**
|
|
7
|
+
* The platform's own select, drawn as our input box.
|
|
8
|
+
*
|
|
9
|
+
* @family Inputs
|
|
10
|
+
* @when A long fixed list inside a native form, where the platform's own picker serves best: a time
|
|
11
|
+
* zone, a country.
|
|
12
|
+
* @instead Two or three options are radios or a segmented control. Up to about ten, drawn in our
|
|
13
|
+
* style, is `Select`. A list people type into is `Combobox`.
|
|
14
|
+
* @behaviour Same box as `Input`, the chevron 10 px from the edge in the muted grey. It opens the
|
|
15
|
+
* system's list, with native keyboard and typing. As an uncontrolled field it keeps a saved value
|
|
16
|
+
* instead of snapping back to the page's first default.
|
|
17
|
+
* @words The label names the thing chosen (*Time zone*). A placeholder option is distinct from a
|
|
18
|
+
* real one and never preselected as if chosen.
|
|
19
|
+
* @access A real `select` with a visible label; option groups are `optgroup`. The chevron is
|
|
20
|
+
* decorative.
|
|
21
|
+
*/
|
|
6
22
|
function NativeSelect({ className, size = "default", ref, ...props }) {
|
|
7
23
|
const select = React.useRef(null);
|
|
8
24
|
const setRef = React.useCallback((node) => {
|
|
9
25
|
select.current = node;
|
|
26
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- React.Ref is a callback | RefObject | null union and a callback ref may return a cleanup; only typeof tells them apart.
|
|
10
27
|
const cleanup = typeof ref === "function" ? ref(node) : undefined;
|
|
28
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- React.Ref is a callback | RefObject | null union and a callback ref may return a cleanup; only typeof tells them apart.
|
|
11
29
|
if (ref && typeof ref !== "function")
|
|
12
30
|
ref.current = node;
|
|
13
31
|
return () => {
|
|
14
32
|
select.current = null;
|
|
33
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- React.Ref is a callback | RefObject | null union and a callback ref may return a cleanup; only typeof tells them apart.
|
|
15
34
|
if (typeof cleanup === "function")
|
|
16
35
|
cleanup();
|
|
36
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- React.Ref is a callback | RefObject | null union and a callback ref may return a cleanup; only typeof tells them apart.
|
|
17
37
|
else if (typeof ref === "function")
|
|
18
38
|
ref(null);
|
|
19
39
|
else if (ref)
|
|
@@ -34,6 +54,7 @@ function NativeSelect({ className, size = "default", ref, ...props }) {
|
|
|
34
54
|
const options = [...node.options];
|
|
35
55
|
const shown = options.flatMap((option) => (option.selected ? [option.value] : []));
|
|
36
56
|
const stillShowsOldDefault = JSON.stringify(shown) === appliedDefault.current;
|
|
57
|
+
// SAFETY: defaultKey is JSON.stringify of an array of String() values, built above, so it parses back to a string[].
|
|
37
58
|
const wanted = new Set(JSON.parse(defaultKey));
|
|
38
59
|
for (const option of options)
|
|
39
60
|
option.defaultSelected = wanted.has(option.value);
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
|
|
2
|
+
/**
|
|
3
|
+
* A website header's top-level links, some opening a panel of links.
|
|
4
|
+
*
|
|
5
|
+
* @family Navigation
|
|
6
|
+
* @when The website's header: a few top-level destinations, where one may open a panel of related
|
|
7
|
+
* pages.
|
|
8
|
+
* @instead A product's navigation is its `Sidebar`. Commands are a menu; sibling views are tabs.
|
|
9
|
+
* @behaviour Opens on hover and on click; one panel at a time, positioned under its trigger. Escape
|
|
10
|
+
* closes it and returns focus.
|
|
11
|
+
* @words Nouns, one or two words, sentence case. A panel's links name their page and may carry one
|
|
12
|
+
* short line.
|
|
13
|
+
* @access A labelled `nav`; triggers expose `aria-expanded`; links are real anchors with
|
|
14
|
+
* `aria-current="page"` on the current one.
|
|
15
|
+
*/
|
|
2
16
|
declare function NavigationMenu({ align, className, children, ...props }: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, "align">): import("react").JSX.Element;
|
|
3
17
|
declare function NavigationMenuList({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>): import("react").JSX.Element;
|
|
4
18
|
declare function NavigationMenuItem({ className, ...props }: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-menu.d.ts","sourceRoot":"","sources":["../../src/components/navigation-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAM3F,iBAAS,cAAc,CAAC,EACtB,KAAe,EACf,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,+BAc9F;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,+BAQlE;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,+BAQlE;AAED,QAAA,MAAM,0BAA0B,oFAE/B,CAAC;AAEF,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,+BAcvC;AAED,iBAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,+BAW5F;AAED,iBAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,IAAe,EACf,UAAc,EACd,KAAe,EACf,WAAe,EACf,GAAG,KAAK,EACT,EAAE,uBAAuB,CAAC,UAAU,CAAC,KAAK,+BAoB1C;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,+BAWtF;AAED,iBAAS,uBAAuB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,+BAWlE;AAED,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,GACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"navigation-menu.d.ts","sourceRoot":"","sources":["../../src/components/navigation-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAM3F;;;;;;;;;;;;;GAaG;AACH,iBAAS,cAAc,CAAC,EACtB,KAAe,EACf,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,+BAc9F;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,+BAQlE;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,+BAQlE;AAED,QAAA,MAAM,0BAA0B,oFAE/B,CAAC;AAEF,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,+BAcvC;AAED,iBAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,+BAW5F;AAED,iBAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,IAAe,EACf,UAAc,EACd,KAAe,EACf,WAAe,EACf,GAAG,KAAK,EACT,EAAE,uBAAuB,CAAC,UAAU,CAAC,KAAK,+BAoB1C;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,+BAWtF;AAED,iBAAS,uBAAuB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,+BAWlE;AAED,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,GACzB,CAAC"}
|
|
@@ -3,6 +3,20 @@ import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/naviga
|
|
|
3
3
|
import { cva } from "class-variance-authority";
|
|
4
4
|
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { ChevronDownIcon } from "lucide-react";
|
|
6
|
+
/**
|
|
7
|
+
* A website header's top-level links, some opening a panel of links.
|
|
8
|
+
*
|
|
9
|
+
* @family Navigation
|
|
10
|
+
* @when The website's header: a few top-level destinations, where one may open a panel of related
|
|
11
|
+
* pages.
|
|
12
|
+
* @instead A product's navigation is its `Sidebar`. Commands are a menu; sibling views are tabs.
|
|
13
|
+
* @behaviour Opens on hover and on click; one panel at a time, positioned under its trigger. Escape
|
|
14
|
+
* closes it and returns focus.
|
|
15
|
+
* @words Nouns, one or two words, sentence case. A panel's links name their page and may carry one
|
|
16
|
+
* short line.
|
|
17
|
+
* @access A labelled `nav`; triggers expose `aria-expanded`; links are real anchors with
|
|
18
|
+
* `aria-current="page"` on the current one.
|
|
19
|
+
*/
|
|
6
20
|
function NavigationMenu({ align = "start", className, children, ...props }) {
|
|
7
21
|
return (_jsxs(NavigationMenuPrimitive.Root, { "data-slot": "navigation-menu", className: cn("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", className), ...props, children: [children, _jsx(NavigationMenuPositioner, { align: align })] }));
|
|
8
22
|
}
|
|
@@ -2,7 +2,8 @@ import type { ComponentProps, ReactElement, ReactNode } from "react";
|
|
|
2
2
|
export type NoticeBannerTone = "neutral" | "info" | "warning" | "destructive";
|
|
3
3
|
export type NoticeBannerLiveRegion = "off" | "polite";
|
|
4
4
|
export type NoticeBannerProps = {
|
|
5
|
-
|
|
5
|
+
/** The fix the page offers, as a button or a link. Required: a condition is shown with its fix. */
|
|
6
|
+
action: ReactElement;
|
|
6
7
|
className?: string;
|
|
7
8
|
description?: ReactNode;
|
|
8
9
|
detail?: ReactNode;
|
|
@@ -11,8 +12,14 @@ export type NoticeBannerProps = {
|
|
|
11
12
|
tone: NoticeBannerTone;
|
|
12
13
|
} & Omit<ComponentProps<"div">, "children" | "title">;
|
|
13
14
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
15
|
+
* A condition of the whole page, the account or the service, with its fix.
|
|
16
|
+
*
|
|
17
|
+
* @family Feedback
|
|
18
|
+
* @when A condition of the whole page, the account or the service that the page itself can resolve, with that resolving action on the banner. One at a time, above the page's content, under its title.
|
|
19
|
+
* @instead For one section use `MessageNotice placement="section"`. For a measured level use a `KpiCard` with its tone; crossing a threshold is a notification in the inbox, not a banner.
|
|
20
|
+
* @behaviour Tone `neutral` (the plain card fill), `info`, `warning`, `destructive`: a soft ground, deep text, the 1 px line edge, 6 px corners; neutral and info take the Info mark, warning and destructive the TriangleAlert. No close button on an unresolved condition. No action, no banner: `action` is required.
|
|
21
|
+
* @words Title names the condition, description what it stops, the action the fix as verb and noun: "Open Slack settings", "Sign in". Sentence case, no "Please". The words come from the product's catalogue code.
|
|
22
|
+
* @access `liveRegion="polite"` gives `role="status"`, announced once when it appears; `"off"` gives `role="note"` for one already there at load. The mark is hidden.
|
|
16
23
|
*/
|
|
17
24
|
export declare function NoticeBanner({ action, className, description, detail, liveRegion, title, tone, ...props }: NoticeBannerProps): import("react").JSX.Element;
|
|
18
25
|
//# sourceMappingURL=notice-banner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notice-banner.d.ts","sourceRoot":"","sources":["../../src/components/notice-banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAC9E,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"notice-banner.d.ts","sourceRoot":"","sources":["../../src/components/notice-banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAC9E,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,mGAAmG;IACnG,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;CACxB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;AAEtD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,SAAS,EACT,WAAW,EACX,MAAM,EACN,UAAU,EACV,KAAK,EACL,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,iBAAiB,+BAyBnB"}
|
|
@@ -2,11 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Info, TriangleAlert } from "lucide-react";
|
|
3
3
|
import { Alert, AlertAction, AlertDescription, AlertTitle } from "./alert.js";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* A condition of the whole page, the account or the service, with its fix.
|
|
6
|
+
*
|
|
7
|
+
* @family Feedback
|
|
8
|
+
* @when A condition of the whole page, the account or the service that the page itself can resolve, with that resolving action on the banner. One at a time, above the page's content, under its title.
|
|
9
|
+
* @instead For one section use `MessageNotice placement="section"`. For a measured level use a `KpiCard` with its tone; crossing a threshold is a notification in the inbox, not a banner.
|
|
10
|
+
* @behaviour Tone `neutral` (the plain card fill), `info`, `warning`, `destructive`: a soft ground, deep text, the 1 px line edge, 6 px corners; neutral and info take the Info mark, warning and destructive the TriangleAlert. No close button on an unresolved condition. No action, no banner: `action` is required.
|
|
11
|
+
* @words Title names the condition, description what it stops, the action the fix as verb and noun: "Open Slack settings", "Sign in". Sentence case, no "Please". The words come from the product's catalogue code.
|
|
12
|
+
* @access `liveRegion="polite"` gives `role="status"`, announced once when it appears; `"off"` gives `role="note"` for one already there at load. The mark is hidden.
|
|
7
13
|
*/
|
|
8
14
|
export function NoticeBanner({ action, className, description, detail, liveRegion, title, tone, ...props }) {
|
|
9
15
|
const Icon = tone === "warning" || tone === "destructive" ? TriangleAlert : Info;
|
|
10
16
|
const isLive = liveRegion === "polite";
|
|
11
|
-
return (_jsxs(Alert, { "aria-atomic": isLive ? "true" : undefined, "aria-live": isLive ? "polite" : undefined, className: className, "data-live-region": liveRegion, "data-notice-banner": true, "data-tone": tone, role: isLive ? "status" : "note", variant: tone === "neutral" ? "default" : tone, ...props, children: [_jsx(Icon, { "aria-hidden": "true" }), _jsx(AlertTitle, { children: title }), _jsxs(AlertDescription, { className: "min-w-0 flex flex-col gap-2", children: [description ? _jsx("div", { "data-notice-description": true, children: description }) : null, detail ? _jsx("div", { "data-notice-detail": true, children: detail }) : null] }),
|
|
17
|
+
return (_jsxs(Alert, { "aria-atomic": isLive ? "true" : undefined, "aria-live": isLive ? "polite" : undefined, className: className, "data-live-region": liveRegion, "data-notice-banner": true, "data-tone": tone, role: isLive ? "status" : "note", variant: tone === "neutral" ? "default" : tone, ...props, children: [_jsx(Icon, { "aria-hidden": "true" }), _jsx(AlertTitle, { children: title }), _jsxs(AlertDescription, { className: "min-w-0 flex flex-col gap-2", children: [description ? _jsx("div", { "data-notice-description": true, children: description }) : null, detail ? _jsx("div", { "data-notice-detail": true, children: detail }) : null] }), _jsx(AlertAction, { "data-notice-action": true, children: action })] }));
|
|
12
18
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export type NumberedStep = {
|
|
3
|
+
id: string;
|
|
4
|
+
/** The person's step, or a finished one in the past tense. */
|
|
5
|
+
title: string;
|
|
6
|
+
description?: ReactNode;
|
|
7
|
+
/** The step's own action, under it, with its platform line. */
|
|
8
|
+
action?: ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export type NumberedStepsProps = {
|
|
11
|
+
/** "How to start" */
|
|
12
|
+
label: string;
|
|
13
|
+
steps: readonly NumberedStep[];
|
|
14
|
+
/** Where the sequence tracks real progress: the current step and its word, "Now". Instructions leave it out. */
|
|
15
|
+
current?: {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
};
|
|
19
|
+
/** One bordered list with a seam between steps. */
|
|
20
|
+
framed?: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Steps a person follows, each with its number, its words and its own action.
|
|
24
|
+
*
|
|
25
|
+
* @family Other
|
|
26
|
+
* @when A short sequence the person does: installing Nadia from Downloads, connecting Teams, the Dashboard's setup guide; or a sequence whose real progress the page tracks, such as the company check.
|
|
27
|
+
* @instead Stages the system runs on an entry screen are the EntryStageList; the steps of an Agent's run are a RunTimeline; a setup with a wait is a FormDrawer with its "Step 2 of 3" line.
|
|
28
|
+
* @behaviour Each step is a 28 px square number in label-mono, its title, one muted description and, under it, the step's own action. Instructions mark no step and every number stays muted, because the page cannot know which one the person is on. Where the page tracks real progress, `current` turns that step's number to ink and writes its word beside the title. `framed` draws one bordered list with a seam between steps. It is the one owner of a drawn step number.
|
|
29
|
+
* @words The title is what the person does, in the imperative ("Install Nadia"), or a finished step in the past tense ("Sofia looked up acme.it"). The current step's word is short: "Now". An action names its verb and carries its platform line ("macOS · 2.14.0 · Apple silicon").
|
|
30
|
+
* @access An ordered list named by `label`, so assistive technology reads the count and position; the drawn numbers are hidden. The current step carries `aria-current="step"`. The titles are not headings, so the list never breaks the page's heading order.
|
|
31
|
+
*/
|
|
32
|
+
export declare function NumberedSteps({ label, steps, current, framed }: NumberedStepsProps): import("react").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=numbered-steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numbered-steps.d.ts","sourceRoot":"","sources":["../../src/components/numbered-steps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,gHAAgH;IAChH,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAc,EAAE,EAAE,kBAAkB,+BAsD1F"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils.js";
|
|
3
|
+
/**
|
|
4
|
+
* Steps a person follows, each with its number, its words and its own action.
|
|
5
|
+
*
|
|
6
|
+
* @family Other
|
|
7
|
+
* @when A short sequence the person does: installing Nadia from Downloads, connecting Teams, the Dashboard's setup guide; or a sequence whose real progress the page tracks, such as the company check.
|
|
8
|
+
* @instead Stages the system runs on an entry screen are the EntryStageList; the steps of an Agent's run are a RunTimeline; a setup with a wait is a FormDrawer with its "Step 2 of 3" line.
|
|
9
|
+
* @behaviour Each step is a 28 px square number in label-mono, its title, one muted description and, under it, the step's own action. Instructions mark no step and every number stays muted, because the page cannot know which one the person is on. Where the page tracks real progress, `current` turns that step's number to ink and writes its word beside the title. `framed` draws one bordered list with a seam between steps. It is the one owner of a drawn step number.
|
|
10
|
+
* @words The title is what the person does, in the imperative ("Install Nadia"), or a finished step in the past tense ("Sofia looked up acme.it"). The current step's word is short: "Now". An action names its verb and carries its platform line ("macOS · 2.14.0 · Apple silicon").
|
|
11
|
+
* @access An ordered list named by `label`, so assistive technology reads the count and position; the drawn numbers are hidden. The current step carries `aria-current="step"`. The titles are not headings, so the list never breaks the page's heading order.
|
|
12
|
+
*/
|
|
13
|
+
export function NumberedSteps({ label, steps, current, framed = false }) {
|
|
14
|
+
return (_jsx("ol", { "aria-label": label, className: framed
|
|
15
|
+
? "grid divide-y divide-border rounded-md border border-border bg-card"
|
|
16
|
+
: "grid gap-6", "data-slot": "numbered-steps", children: steps.map((step, index) => {
|
|
17
|
+
const word = current && step.id === current.id ? current.label : undefined;
|
|
18
|
+
const isCurrent = word !== undefined;
|
|
19
|
+
return (_jsxs("li", { "aria-current": isCurrent ? "step" : undefined, className: cn("grid grid-cols-[1.75rem_minmax(0,1fr)] gap-x-3 gap-y-1", framed && "p-4"), children: [_jsx("span", { "aria-hidden": "true", className: isCurrent
|
|
20
|
+
? "flex size-7 items-center justify-center rounded-md bg-foreground font-label-mono text-label-mono tabular-nums text-background"
|
|
21
|
+
: "flex size-7 items-center justify-center rounded-md bg-muted font-label-mono text-label-mono tabular-nums text-muted-foreground", children: index + 1 }), _jsxs("div", { className: "flex min-h-7 min-w-0 flex-wrap items-center gap-2", children: [_jsx("span", { className: "text-body-sm font-medium text-foreground", children: step.title }), isCurrent ? (_jsx("span", { className: "font-label-mono text-label-mono uppercase text-muted-foreground", children: word })) : null] }), step.description ? (_jsx("div", { className: "col-start-2 text-body-sm text-muted-foreground", children: step.description })) : null, step.action ? (_jsx("div", { className: "col-start-2 grid justify-items-start gap-1.5 pt-3", children: step.action })) : null] }, step.id));
|
|
22
|
+
}) }));
|
|
23
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ComponentProps, ReactElement, ReactNode } from "react";
|
|
2
|
+
import { type IdentityMarkProps } from "./identity-mark.js";
|
|
3
|
+
import { type PageCommand, type PageMenu } from "./page-actions.js";
|
|
4
|
+
export type ObjectPageProps = {
|
|
5
|
+
/** The object's mark, drawn at 64. */
|
|
6
|
+
mark: IdentityMarkProps;
|
|
7
|
+
name: string;
|
|
8
|
+
/** Given where the name is the page's h1 (the product's chrome draws no title row here). */
|
|
9
|
+
headingProps?: Omit<ComponentProps<"h1">, "children">;
|
|
10
|
+
/** One line saying what it is: "Customer of Partner Alpha · since 3 August 2026". */
|
|
11
|
+
description?: ReactNode;
|
|
12
|
+
/** Key facts as labelled values in one row. */
|
|
13
|
+
facts?: readonly {
|
|
14
|
+
label: string;
|
|
15
|
+
value: ReactNode;
|
|
16
|
+
}[];
|
|
17
|
+
/** On the name's row: one secondary action, then the three dots. */
|
|
18
|
+
actions?: {
|
|
19
|
+
secondary?: PageCommand;
|
|
20
|
+
menu?: PageMenu;
|
|
21
|
+
};
|
|
22
|
+
/** The sections, each a card that owns a decision: ObjectSection, RecordList with a heading, SettingsSection, ActivityFeed. */
|
|
23
|
+
children: ReactNode;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* One object's page: its mark, name, one line and key facts on the page ground, its commands on the name's row, then
|
|
27
|
+
* its sections as cards.
|
|
28
|
+
*
|
|
29
|
+
* @family Compositions
|
|
30
|
+
* @when One thing a person opened from a list and now reads or acts on: a customer, a partner, an Installation, a Library entry.
|
|
31
|
+
* @instead A list of records is a CollectionPage; a page of settings only is a SettingsPage; an Agent opens on its AgentProfileCard, the documented exception.
|
|
32
|
+
* @behaviour The header sits on the page, never in a card: the mark at 64, the name, one line, the facts in one row, and at the trailing edge one secondary action then the three dots; below `md` the actions wrap under the name. The sections follow, 24 apart, each drawing its own states.
|
|
33
|
+
* @words The name as the object is called everywhere else; the line says what it is and whose ("Customer of Partner Alpha · since 3 August 2026"); a fact's label is a noun ("Plan"), its value the figure; the menu's trigger reads "More for {name}".
|
|
34
|
+
* @access With `headingProps` the name is the page's h1; without them it is text, for a product whose chrome already titles the page. The facts are a description list; the mark is decorative beside the name.
|
|
35
|
+
*/
|
|
36
|
+
export declare function ObjectPage({ mark, name, headingProps, description, facts, actions, children, }: ObjectPageProps): ReactElement;
|
|
37
|
+
//# sourceMappingURL=object-page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-page.d.ts","sourceRoot":"","sources":["../../src/components/object-page.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrE,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG;IAC5B,sCAAsC;IACtC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,YAAY,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;IACtD,qFAAqF;IACrF,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACvD,oEAAoE;IACpE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,WAAW,CAAC;QAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IACvD,+HAA+H;IAC/H,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,eAAe,GAAG,YAAY,CA6ChC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils.js";
|
|
3
|
+
import { IdentityMark } from "./identity-mark.js";
|
|
4
|
+
import { PageActionsRow } from "./page-actions.js";
|
|
5
|
+
/**
|
|
6
|
+
* One object's page: its mark, name, one line and key facts on the page ground, its commands on the name's row, then
|
|
7
|
+
* its sections as cards.
|
|
8
|
+
*
|
|
9
|
+
* @family Compositions
|
|
10
|
+
* @when One thing a person opened from a list and now reads or acts on: a customer, a partner, an Installation, a Library entry.
|
|
11
|
+
* @instead A list of records is a CollectionPage; a page of settings only is a SettingsPage; an Agent opens on its AgentProfileCard, the documented exception.
|
|
12
|
+
* @behaviour The header sits on the page, never in a card: the mark at 64, the name, one line, the facts in one row, and at the trailing edge one secondary action then the three dots; below `md` the actions wrap under the name. The sections follow, 24 apart, each drawing its own states.
|
|
13
|
+
* @words The name as the object is called everywhere else; the line says what it is and whose ("Customer of Partner Alpha · since 3 August 2026"); a fact's label is a noun ("Plan"), its value the figure; the menu's trigger reads "More for {name}".
|
|
14
|
+
* @access With `headingProps` the name is the page's h1; without them it is text, for a product whose chrome already titles the page. The facts are a description list; the mark is decorative beside the name.
|
|
15
|
+
*/
|
|
16
|
+
export function ObjectPage({ mark, name, headingProps, description, facts, actions, children, }) {
|
|
17
|
+
const nameClass = "text-heading-md break-words text-foreground";
|
|
18
|
+
return (_jsxs("div", { className: "grid min-w-0 gap-6", "data-slot": "object-page", children: [_jsxs("header", { className: "flex min-w-0 flex-wrap items-start gap-x-5 gap-y-4", "data-slot": "object-page-header", children: [_jsx(IdentityMark, { ...mark, size: 64 }), _jsxs("div", { className: "grid min-w-0 flex-1 basis-60 gap-1", children: [headingProps ? (_jsx("h1", { ...headingProps, className: cn(nameClass, "outline-none", headingProps.className), children: name })) : (_jsx("p", { className: nameClass, children: name })), description ? (_jsx("div", { className: "min-w-0 text-body-sm text-muted-foreground", children: description })) : null, facts && facts.length > 0 ? (_jsx("dl", { className: "mt-3 flex min-w-0 flex-wrap gap-x-8 gap-y-2", "data-slot": "object-page-facts", children: facts.map((fact) => (_jsxs("div", { className: "grid min-w-0 gap-1", children: [_jsx("dt", { className: "text-label-sm text-muted-foreground", children: fact.label }), _jsx("dd", { className: "min-w-0 text-label font-medium break-words text-foreground", children: fact.value })] }, fact.label))) })) : null] }), actions?.secondary || actions?.menu ? (_jsx("div", { className: "flex basis-full md:basis-auto md:justify-end", children: _jsx(PageActionsRow, { ...actions }) })) : null] }), children] }));
|
|
19
|
+
}
|