@nadicodeai/ui 12.1.96 → 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.d.ts +16 -0
- package/dist/components/agent-orb.d.ts.map +1 -1
- package/dist/components/agent-orb.js +16 -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 +39 -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 +13 -3
- 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 +10 -0
- 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 +14 -0
- 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-bar-horizontal.d.ts +11 -1
- package/dist/components/chart-bar-horizontal.d.ts.map +1 -1
- package/dist/components/chart-bar-horizontal.js +12 -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 +33 -20
- package/dist/components/chart-card.d.ts.map +1 -1
- package/dist/components/chart-card.js +18 -4
- 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 +14 -10
- package/dist/components/chart-date-range.d.ts.map +1 -1
- 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 +10 -0
- 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 -140
- 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 +13 -3
- 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.d.ts +16 -4
- package/dist/components/company-card.d.ts.map +1 -1
- package/dist/components/company-card.js +16 -4
- 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 +14 -0
- package/dist/components/data-table.d.ts +20 -0
- package/dist/components/data-table.d.ts.map +1 -1
- package/dist/components/data-table.js +23 -2
- 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 +6 -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 +34 -7
- 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 +12 -0
- 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 +17 -0
- 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/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 +15 -0
- 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 +16 -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 +15 -2
- 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 +16 -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 +15 -0
- 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/progress.d.ts +10 -8
- package/dist/components/progress.d.ts.map +1 -1
- package/dist/components/progress.js +11 -9
- 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 +11 -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 +34 -12
- 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 +13 -2
- 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 +18 -0
- 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 +13 -0
- 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 +27 -42
- 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 +15 -0
- 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 +8 -0
- package/dist/eslint/rules/empty-state-owner.js +145 -0
- package/dist/eslint/rules/menu-owner.js +75 -0
- package/dist/eslint/rules/no-decorative-icon.js +164 -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/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 +1 -1
- 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 +1 -1
- 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 -83
|
@@ -2,38 +2,37 @@
|
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useRender } from "@base-ui/react/use-render";
|
|
4
4
|
import { ArrowUpRight } from "lucide-react";
|
|
5
|
-
import { createContext,
|
|
5
|
+
import { createContext, useCallback, useContext, useEffect, useId, useState, } from "react";
|
|
6
6
|
import { createPortal } from "react-dom";
|
|
7
7
|
import { ActionMenu } from "./action-menu.js";
|
|
8
8
|
import { Button, buttonVariants } from "./button.js";
|
|
9
|
-
import {
|
|
10
|
-
function CommandElement({ children, disabled, element, variant, }) {
|
|
9
|
+
import { PendingLabel } from "./pending-label.js";
|
|
10
|
+
function CommandElement({ accessibleName, busy, children, disabled, element, variant, }) {
|
|
11
11
|
return useRender({
|
|
12
12
|
render: element,
|
|
13
13
|
props: {
|
|
14
|
+
"aria-busy": busy || undefined,
|
|
14
15
|
"aria-disabled": disabled || undefined,
|
|
16
|
+
"aria-label": accessibleName,
|
|
15
17
|
children,
|
|
16
18
|
className: buttonVariants({ variant }),
|
|
17
19
|
"data-slot": "button",
|
|
18
20
|
},
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
|
-
/** One command as a button in a given slot's variant. */
|
|
22
23
|
export function PageCommandButton({ command, variant, }) {
|
|
23
|
-
const
|
|
24
|
+
const pending = command.pending === true;
|
|
25
|
+
const content = (_jsxs(_Fragment, { children: [command.icon ? _jsx("span", { "data-icon": "inline-start", children: command.icon }) : null, _jsx(PendingLabel, { pending: pending, pendingLabel: command.pendingLabel ?? command.label, children: command.label }), command.external ? _jsx(ArrowUpRight, { "aria-hidden": "true", "data-icon": "inline-end" }) : null] }));
|
|
24
26
|
if (command.render) {
|
|
25
|
-
return (_jsx(CommandElement, { disabled: command.disabled, element: command.render, variant: variant, children: content }));
|
|
27
|
+
return (_jsx(CommandElement, { accessibleName: command.accessibleName, busy: pending, disabled: pending || command.disabled === true, element: command.render, variant: variant, children: content }));
|
|
26
28
|
}
|
|
27
|
-
return (_jsx(Button, { disabled: command.disabled, onClick: command.onClick, type: "button", variant: variant, children: content }));
|
|
28
|
-
}
|
|
29
|
-
function MenuCommand({ command }) {
|
|
30
|
-
return (_jsxs(_Fragment, { children: [command.destructive ? _jsx(DropdownMenuSeparator, {}) : null, _jsxs(DropdownMenuItem, { disabled: command.disabled, variant: command.destructive ? "destructive" : "default", ...(command.render ? { render: command.render } : { onClick: command.onClick }), children: [command.label, command.icon ? (_jsx("span", { "aria-hidden": "true", className: "ml-auto flex items-center", children: command.icon })) : null] })] }));
|
|
29
|
+
return (_jsx(Button, { "aria-busy": pending || undefined, "aria-label": command.accessibleName, disabled: pending || command.disabled, focusableWhenDisabled: pending, onClick: command.onClick, type: "button", variant: variant, children: content }));
|
|
31
30
|
}
|
|
32
31
|
/** The row of a page's actions where it stands, for a page whose header is its own card. */
|
|
33
|
-
export function PageActionsRow({ primary, secondary, menu }) {
|
|
34
|
-
if (!primary && !secondary && !menu)
|
|
32
|
+
export function PageActionsRow({ period, primary, secondary, menu }) {
|
|
33
|
+
if (!period && !primary && !secondary && !menu)
|
|
35
34
|
return null;
|
|
36
|
-
return (_jsxs("div", { "data-slot": "page-actions", className: "flex shrink-0 flex-wrap items-center gap-2", children: [secondary ? _jsx(PageCommandButton, { command: secondary, variant: "outline" }) : null, primary ? _jsx(PageCommandButton, { command: primary, variant: "default" }) : null,
|
|
35
|
+
return (_jsxs("div", { "data-slot": "page-actions", className: "flex shrink-0 flex-wrap items-center gap-2", children: [period, secondary ? _jsx(PageCommandButton, { command: secondary, variant: "outline" }) : null, primary ? _jsx(PageCommandButton, { command: primary, variant: "default" }) : null, menu ? _jsx(ActionMenu, { ...menu }) : null] }));
|
|
37
36
|
}
|
|
38
37
|
const PageActionsHostContext = createContext(null);
|
|
39
38
|
/**
|
|
@@ -57,13 +56,20 @@ export function PageActionsSlot() {
|
|
|
57
56
|
* A page's actions, drawn on its title's row. Only the page shown last owns
|
|
58
57
|
* the row: a page kept hidden for a quick return gives the row back. Outside a
|
|
59
58
|
* `PageActionsHostProvider`, they render where they stand.
|
|
59
|
+
*
|
|
60
|
+
* @family Actions
|
|
61
|
+
* @when The actions of a collection, an object or an overview page, on the title's row at its trailing edge. A Configuration page has none: each section saves from its footer.
|
|
62
|
+
* @instead A row's actions are the row's one button and its `ActionMenu`. A collection toolbar holds search and filters, never a page action.
|
|
63
|
+
* @behaviour Takes `period`, `secondary`, `primary` and `menu` and draws their order and variants itself: the period, outline, default, then the three dots last. The menu needs two commands or more; a single extra command is the secondary. A destination outside the product ends in the arrow. A running command keeps its place and icon, says its pending word and holds.
|
|
64
|
+
* @words The primary is the page's main job as verb and noun: "Invite member", "New Agent". The pending word is its -ing form: "Inviting member". The menu names the page's record at its top and keeps the destructive command last, after a divider.
|
|
65
|
+
* @access DOM order is visual order. A command whose label does not name its target carries `accessibleName`. A running command is `aria-busy` and keeps focus. The three dots carry "More for {record}"; the menu returns focus to them when it closes.
|
|
60
66
|
*/
|
|
61
67
|
export function PageActions(props) {
|
|
62
68
|
const host = useContext(PageActionsHostContext);
|
|
63
69
|
const id = useId();
|
|
64
70
|
const claim = host?.claim;
|
|
65
71
|
const release = host?.release;
|
|
66
|
-
const hasActions = Boolean(props.primary || props.secondary || props.menu);
|
|
72
|
+
const hasActions = Boolean(props.period || props.primary || props.secondary || props.menu);
|
|
67
73
|
useEffect(() => {
|
|
68
74
|
if (!hasActions)
|
|
69
75
|
return;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
/**
|
|
3
|
-
* The top of a product page
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* The top of a product page: its title, and the page's actions on the title's row.
|
|
4
|
+
*
|
|
5
|
+
* @family Compositions
|
|
6
|
+
* @when The top of every collection and working page: the title at heading size, `PageActions` at
|
|
7
|
+
* the trailing edge of its row.
|
|
8
|
+
* @instead An object's own header is `ObjectPage`'s. The path above it is the top bar's
|
|
9
|
+
* `Breadcrumb`; filters, search and sort sit in the toolbar below.
|
|
10
|
+
* @behaviour Nothing explains the page under its title. The actions arrive through the
|
|
11
|
+
* `PageActions` slot, so the page draws its commands once.
|
|
12
|
+
* @words The title is the page's name as the sidebar writes it: *Customers*, *Agents*.
|
|
13
|
+
* @access The title is the page's `h1`; DOM order is visual order.
|
|
8
14
|
*/
|
|
9
15
|
declare function PageHeader({ title, headingProps, className, ...props }: Omit<React.ComponentProps<"header">, "title" | "children"> & {
|
|
10
16
|
title: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../src/components/page-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B
|
|
1
|
+
{"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../src/components/page-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;;;;;;;GAYG;AACH,iBAAS,UAAU,CAAC,EAClB,KAAK,EACL,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;IAC9D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;CAC7D,qBAiBA;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -2,11 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
import { PageActionsSlot } from "./page-actions.js";
|
|
4
4
|
/**
|
|
5
|
-
* The top of a product page
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* The top of a product page: its title, and the page's actions on the title's row.
|
|
6
|
+
*
|
|
7
|
+
* @family Compositions
|
|
8
|
+
* @when The top of every collection and working page: the title at heading size, `PageActions` at
|
|
9
|
+
* the trailing edge of its row.
|
|
10
|
+
* @instead An object's own header is `ObjectPage`'s. The path above it is the top bar's
|
|
11
|
+
* `Breadcrumb`; filters, search and sort sit in the toolbar below.
|
|
12
|
+
* @behaviour Nothing explains the page under its title. The actions arrive through the
|
|
13
|
+
* `PageActions` slot, so the page draws its commands once.
|
|
14
|
+
* @words The title is the page's name as the sidebar writes it: *Customers*, *Agents*.
|
|
15
|
+
* @access The title is the page's `h1`; DOM order is visual order.
|
|
10
16
|
*/
|
|
11
17
|
function PageHeader({ title, headingProps, className, ...props }) {
|
|
12
18
|
return (_jsx("header", { "data-slot": "page-header", className: cn("min-w-0", className), ...props, children: _jsxs("div", { className: "flex min-h-9 min-w-0 flex-wrap items-center justify-between gap-x-6 gap-y-3", children: [_jsx("h1", { ...headingProps, className: cn("min-w-0 flex-1 basis-48 truncate text-heading-md text-foreground outline-none", headingProps?.className), children: title }), _jsx(PageActionsSlot, {})] }) }));
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { Button } from "./button.js";
|
|
3
|
+
/**
|
|
4
|
+
* Numbered sibling pages with Previous and Next.
|
|
5
|
+
*
|
|
6
|
+
* @family Navigation
|
|
7
|
+
* @when `Pagination` for numbered sibling pages. A table of server pages takes `DataTable`'s own
|
|
8
|
+
* Previous and Next under its card; the card's footer strip holds the count or the paging.
|
|
9
|
+
* @instead Appending rows in place is a `Button` with `PendingLabel` (*Load more*). A fixed
|
|
10
|
+
* comparison passes `pagination={false}` and stays whole.
|
|
11
|
+
* @behaviour Boundaries are disabled. While the next page loads both buttons disable and the rows
|
|
12
|
+
* stay. The order and the page live in the URL. The labels hide under `sm`, leaving the chevrons.
|
|
13
|
+
* @words *Previous*, *Next*. The footer is a count with its noun or *Page 1 of 6*, never a help
|
|
14
|
+
* sentence.
|
|
15
|
+
* @access A labelled `nav`; the current page has `aria-current="page"`; the arrows read *Go to
|
|
16
|
+
* previous page*; a pending button is `aria-busy`.
|
|
17
|
+
*/
|
|
3
18
|
declare function Pagination({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
|
|
4
19
|
declare function PaginationContent({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
|
|
5
20
|
declare function PaginationItem({ ...props }: React.ComponentProps<"li">): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBASvE;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQ7E;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAE/D;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GACnD,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE5B,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAa,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,qBAiB5F;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,IAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYjE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAa,EACb,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYjE;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAehF;AAED,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBASvE;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQ7E;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAE/D;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GACnD,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE5B,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAa,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,qBAiB5F;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,IAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYjE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAa,EACb,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYjE;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAehF;AAED,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,CAAC"}
|
|
@@ -2,6 +2,21 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
import { Button } from "./button.js";
|
|
4
4
|
import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
|
|
5
|
+
/**
|
|
6
|
+
* Numbered sibling pages with Previous and Next.
|
|
7
|
+
*
|
|
8
|
+
* @family Navigation
|
|
9
|
+
* @when `Pagination` for numbered sibling pages. A table of server pages takes `DataTable`'s own
|
|
10
|
+
* Previous and Next under its card; the card's footer strip holds the count or the paging.
|
|
11
|
+
* @instead Appending rows in place is a `Button` with `PendingLabel` (*Load more*). A fixed
|
|
12
|
+
* comparison passes `pagination={false}` and stays whole.
|
|
13
|
+
* @behaviour Boundaries are disabled. While the next page loads both buttons disable and the rows
|
|
14
|
+
* stay. The order and the page live in the URL. The labels hide under `sm`, leaving the chevrons.
|
|
15
|
+
* @words *Previous*, *Next*. The footer is a count with its noun or *Page 1 of 6*, never a help
|
|
16
|
+
* sentence.
|
|
17
|
+
* @access A labelled `nav`; the current page has `aria-current="page"`; the arrows read *Go to
|
|
18
|
+
* previous page*; a pending button is `aria-busy`.
|
|
19
|
+
*/
|
|
5
20
|
function Pagination({ className, ...props }) {
|
|
6
21
|
return (_jsx("nav", { "aria-label": "pagination", "data-slot": "pagination", className: cn("mx-auto flex w-full justify-center", className), ...props }));
|
|
7
22
|
}
|
|
@@ -6,10 +6,21 @@ export type PairingCodeProps = Omit<React.ComponentProps<"div">, "children" | "r
|
|
|
6
6
|
label: string;
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
9
|
-
* The short code two screens show at once so a person can tell they are
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* The short code two screens show at once so a person can tell they are talking
|
|
10
|
+
* to each other, such as the four digits Nadia and Alveare Server both show
|
|
11
|
+
* while a Nadia asks to join.
|
|
12
|
+
*
|
|
13
|
+
* Each digit stands in its own cell, large enough to compare from across a
|
|
14
|
+
* desk. The caller places it.
|
|
15
|
+
*
|
|
16
|
+
* @family Data
|
|
17
|
+
* @when Pairing two devices or apps a person can see side by side: the four digits Nadia and
|
|
18
|
+
* Alveare Server both show while a Nadia asks to join.
|
|
19
|
+
* @instead A code a person types is `InputOTP`. A link another device scans is `QrCode`.
|
|
20
|
+
* @behaviour Each digit in its own cell, large enough to compare from across a desk. A leading zero
|
|
21
|
+
* is a digit.
|
|
22
|
+
* @words The label says what the code is: *Pairing code*.
|
|
23
|
+
* @access `role="img"` named by the label and the digits read one by one.
|
|
13
24
|
*/
|
|
14
25
|
declare function PairingCode({ code, label, className, ...props }: PairingCodeProps): React.JSX.Element;
|
|
15
26
|
export { PairingCode };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pairing-code.d.ts","sourceRoot":"","sources":["../../src/components/pairing-code.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IACtF,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"pairing-code.d.ts","sourceRoot":"","sources":["../../src/components/pairing-code.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IACtF,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,qBAsB1E;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
/**
|
|
4
|
-
* The short code two screens show at once so a person can tell they are
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* The short code two screens show at once so a person can tell they are talking
|
|
5
|
+
* to each other, such as the four digits Nadia and Alveare Server both show
|
|
6
|
+
* while a Nadia asks to join.
|
|
7
|
+
*
|
|
8
|
+
* Each digit stands in its own cell, large enough to compare from across a
|
|
9
|
+
* desk. The caller places it.
|
|
10
|
+
*
|
|
11
|
+
* @family Data
|
|
12
|
+
* @when Pairing two devices or apps a person can see side by side: the four digits Nadia and
|
|
13
|
+
* Alveare Server both show while a Nadia asks to join.
|
|
14
|
+
* @instead A code a person types is `InputOTP`. A link another device scans is `QrCode`.
|
|
15
|
+
* @behaviour Each digit in its own cell, large enough to compare from across a desk. A leading zero
|
|
16
|
+
* is a digit.
|
|
17
|
+
* @words The label says what the code is: *Pairing code*.
|
|
18
|
+
* @access `role="img"` named by the label and the digits read one by one.
|
|
8
19
|
*/
|
|
9
20
|
function PairingCode({ code, label, className, ...props }) {
|
|
10
21
|
const digits = [...code];
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
2
|
/**
|
|
3
3
|
* A control's own label while the system works on what it was asked to do.
|
|
4
|
-
* The word changes and nothing moves; the control keeps its place, its icon
|
|
5
|
-
* and its size. The caller owns `disabled` and `aria-busy` on the control
|
|
6
|
-
* itself, because only the caller knows which element the wait belongs to.
|
|
7
4
|
*
|
|
8
|
-
*
|
|
5
|
+
* @family Feedback
|
|
6
|
+
* @when Every control that starts work the system does: from the press until the result, whatever
|
|
7
|
+
* the wait. Under about a second it is the only sign. Every save in a footer goes through it.
|
|
8
|
+
* @instead Past a second add one `WaitingLine` beside the control. An Agent's work is never this:
|
|
9
|
+
* it is her orb and a sentence. A queued or paused request is a status.
|
|
10
|
+
* @behaviour Swaps the word, nothing else: same place, size and icon. The caller sets `disabled`
|
|
11
|
+
* (50% opacity) and `aria-busy` and blocks a second submit, because only the caller knows which
|
|
12
|
+
* element the wait belongs to. Failure returns the rest label.
|
|
13
|
+
* @words The rest label's verb in its -ing form with the same noun: *Remove mailbox* to *Removing
|
|
14
|
+
* mailbox*. No ellipsis, no *Please wait*.
|
|
15
|
+
* @access `aria-busy` on the control; its name changes to the pending word and is read once. Focus
|
|
16
|
+
* stays on it.
|
|
9
17
|
*/
|
|
10
18
|
declare function PendingLabel({ children, className, pending, pendingLabel, ...props }: React.ComponentProps<"span"> & {
|
|
11
19
|
pending: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-label.d.ts","sourceRoot":"","sources":["../../src/components/pending-label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC
|
|
1
|
+
{"version":3,"file":"pending-label.d.ts","sourceRoot":"","sources":["../../src/components/pending-label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,YAAY,CAAC,EACpB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,qBAWA;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -2,11 +2,19 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
/**
|
|
4
4
|
* A control's own label while the system works on what it was asked to do.
|
|
5
|
-
* The word changes and nothing moves; the control keeps its place, its icon
|
|
6
|
-
* and its size. The caller owns `disabled` and `aria-busy` on the control
|
|
7
|
-
* itself, because only the caller knows which element the wait belongs to.
|
|
8
5
|
*
|
|
9
|
-
*
|
|
6
|
+
* @family Feedback
|
|
7
|
+
* @when Every control that starts work the system does: from the press until the result, whatever
|
|
8
|
+
* the wait. Under about a second it is the only sign. Every save in a footer goes through it.
|
|
9
|
+
* @instead Past a second add one `WaitingLine` beside the control. An Agent's work is never this:
|
|
10
|
+
* it is her orb and a sentence. A queued or paused request is a status.
|
|
11
|
+
* @behaviour Swaps the word, nothing else: same place, size and icon. The caller sets `disabled`
|
|
12
|
+
* (50% opacity) and `aria-busy` and blocks a second submit, because only the caller knows which
|
|
13
|
+
* element the wait belongs to. Failure returns the rest label.
|
|
14
|
+
* @words The rest label's verb in its -ing form with the same noun: *Remove mailbox* to *Removing
|
|
15
|
+
* mailbox*. No ellipsis, no *Please wait*.
|
|
16
|
+
* @access `aria-busy` on the control; its name changes to the pending word and is read once. Focus
|
|
17
|
+
* stays on it.
|
|
10
18
|
*/
|
|
11
19
|
function PendingLabel({ children, className, pending, pendingLabel, ...props }) {
|
|
12
20
|
return (_jsx("span", { ...props, className: cn(className), "data-pending": pending || undefined, "data-slot": "pending-label", children: pending ? pendingLabel : children }));
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
/**
|
|
3
|
-
* A failure page's picture with its label
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
3
|
+
* A failure page's picture with its label, the way a museum labels a work.
|
|
4
|
+
*
|
|
5
|
+
* DESIGN.md: [Failure surfaces](../../../design-system/DESIGN.md#failure-surfaces).
|
|
6
|
+
*
|
|
7
|
+
* @family Feedback
|
|
8
|
+
* @when A page that cannot show what was asked for: an address or record that is not there
|
|
9
|
+
* (absence), or a request the product stopped (fault). `PictureLabel` is its label.
|
|
10
|
+
* @instead For one region that failed inside a working page use `EmptyState failed`; the rest of
|
|
11
|
+
* the page stays. Never turn the whole page into an error because one card failed.
|
|
12
|
+
* @behaviour Picture 256 px, 320 from sm, 384 from lg. The label moves beside the base at lg with
|
|
13
|
+
* an empty column of the same width opposite, so the picture keeps the centre line. Still.
|
|
14
|
+
* @words Never apologise, never name the mechanism. The label's title says what the picture is
|
|
15
|
+
* doing; the second line gives its materials and year.
|
|
16
|
+
* @access The picture is decorative; the label is a `figcaption`, read once. The page's heading is
|
|
17
|
+
* its `h1`; its actions are real links.
|
|
10
18
|
*/
|
|
11
19
|
export declare function LabelledPicture({ children, label, className, }: {
|
|
12
20
|
children: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picture-label.d.ts","sourceRoot":"","sources":["../../src/components/picture-label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC
|
|
1
|
+
{"version":3,"file":"picture-label.d.ts","sourceRoot":"","sources":["../../src/components/picture-label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,4DAA4D;IAC5D,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAeA;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,+BASlF"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "../lib/utils.js";
|
|
3
3
|
/**
|
|
4
|
-
* A failure page's picture with its label
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* A failure page's picture with its label, the way a museum labels a work.
|
|
5
|
+
*
|
|
6
|
+
* DESIGN.md: [Failure surfaces](../../../design-system/DESIGN.md#failure-surfaces).
|
|
7
|
+
*
|
|
8
|
+
* @family Feedback
|
|
9
|
+
* @when A page that cannot show what was asked for: an address or record that is not there
|
|
10
|
+
* (absence), or a request the product stopped (fault). `PictureLabel` is its label.
|
|
11
|
+
* @instead For one region that failed inside a working page use `EmptyState failed`; the rest of
|
|
12
|
+
* the page stays. Never turn the whole page into an error because one card failed.
|
|
13
|
+
* @behaviour Picture 256 px, 320 from sm, 384 from lg. The label moves beside the base at lg with
|
|
14
|
+
* an empty column of the same width opposite, so the picture keeps the centre line. Still.
|
|
15
|
+
* @words Never apologise, never name the mechanism. The label's title says what the picture is
|
|
16
|
+
* doing; the second line gives its materials and year.
|
|
17
|
+
* @access The picture is decorative; the label is a `figcaption`, read once. The page's heading is
|
|
18
|
+
* its `h1`; its actions are real links.
|
|
11
19
|
*/
|
|
12
20
|
export function LabelledPicture({ children, label, className, }) {
|
|
13
21
|
return (_jsxs("figure", { className: cn("m-0 grid w-full max-w-4xl justify-items-center gap-4 lg:grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] lg:items-end lg:gap-8", className), "data-slot": "labelled-picture", children: [_jsx("div", { className: "lg:col-start-2 lg:row-start-1", children: children }), _jsx("figcaption", { className: "max-w-72 text-center lg:col-start-3 lg:row-start-1 lg:justify-self-start lg:pb-6 lg:text-start", children: label })] }));
|
|
@@ -27,9 +27,18 @@ type PlatformMarkProps = Omit<IconProps, "children" | "icon" | "ref"> & {
|
|
|
27
27
|
size?: number;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
|
-
* A platform's genuine mark
|
|
31
|
-
*
|
|
32
|
-
*
|
|
30
|
+
* A platform's genuine mark: an operating system, a messaging channel or a sign-in provider.
|
|
31
|
+
*
|
|
32
|
+
* @family Status
|
|
33
|
+
* @when Naming a platform beside its word: *Continue with Google*, a Telegram channel, the macOS
|
|
34
|
+
* download.
|
|
35
|
+
* @instead A connected app in its tile is `AppMark`. A model's maker is `ModelMark`. The company is
|
|
36
|
+
* `BrandMark`.
|
|
37
|
+
* @behaviour Drawn at once on the server and in the browser from Iconify's `logos` set, one module
|
|
38
|
+
* per mark; Alveare by its own. A silhouette takes the text colour; a coloured mark keeps its
|
|
39
|
+
* paint.
|
|
40
|
+
* @words None of its own; the platform's name always stands beside it.
|
|
41
|
+
* @access Always `aria-hidden`: the name beside it is the reading.
|
|
33
42
|
*/
|
|
34
43
|
declare function PlatformMark({ platform, size, ...props }: PlatformMarkProps): React.JSX.Element;
|
|
35
44
|
export { PlatformMark, isPlatform };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-mark.d.ts","sourceRoot":"","sources":["../../src/components/platform-mark.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAWhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B;;;;GAIG;AACH,QAAA,MAAM,SAAS;;;;;;;;;;;;CAYwB,CAAC;AAExC,KAAK,YAAY,GAAG,MAAM,OAAO,SAAS,CAAC;AAE3C,qFAAqF;AACrF,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY,CAEtD;AAOD,KAAK,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG;IACtE,QAAQ,EAAE,YAAY,CAAC;IACvB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"platform-mark.d.ts","sourceRoot":"","sources":["../../src/components/platform-mark.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAWhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B;;;;GAIG;AACH,QAAA,MAAM,SAAS;;;;;;;;;;;;CAYwB,CAAC;AAExC,KAAK,YAAY,GAAG,MAAM,OAAO,SAAS,CAAC;AAE3C,qFAAqF;AACrF,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY,CAEtD;AAOD,KAAK,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG;IACtE,QAAQ,EAAE,YAAY,CAAC;IACvB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,qBAgBzE;AAED,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACpC,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -53,9 +53,18 @@ function silhouette(icon) {
|
|
|
53
53
|
return !/\b(?:fill|stroke|stop-color)=/.test(icon.body);
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
|
-
* A platform's genuine mark
|
|
57
|
-
*
|
|
58
|
-
*
|
|
56
|
+
* A platform's genuine mark: an operating system, a messaging channel or a sign-in provider.
|
|
57
|
+
*
|
|
58
|
+
* @family Status
|
|
59
|
+
* @when Naming a platform beside its word: *Continue with Google*, a Telegram channel, the macOS
|
|
60
|
+
* download.
|
|
61
|
+
* @instead A connected app in its tile is `AppMark`. A model's maker is `ModelMark`. The company is
|
|
62
|
+
* `BrandMark`.
|
|
63
|
+
* @behaviour Drawn at once on the server and in the browser from Iconify's `logos` set, one module
|
|
64
|
+
* per mark; Alveare by its own. A silhouette takes the text colour; a coloured mark keeps its
|
|
65
|
+
* paint.
|
|
66
|
+
* @words None of its own; the platform's name always stands beside it.
|
|
67
|
+
* @access Always `aria-hidden`: the name beside it is the reading.
|
|
59
68
|
*/
|
|
60
69
|
function PlatformMark({ platform, size = 24, ...props }) {
|
|
61
70
|
const icon = PLATFORMS[platform];
|
|
@@ -21,6 +21,21 @@ type PluginSlotBoundaryProps = Omit<React.ComponentProps<"section">, "title"> &
|
|
|
21
21
|
contentLabel?: string;
|
|
22
22
|
contentClassName?: string;
|
|
23
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* The frame around content a plugin draws inside a product.
|
|
26
|
+
*
|
|
27
|
+
* @family Other
|
|
28
|
+
* @when Any surface a plugin renders into: it names the plugin, its permissions and its state
|
|
29
|
+
* around the plugin's own content.
|
|
30
|
+
* @instead The product's own sections are `SettingsSection` or `ObjectSection`.
|
|
31
|
+
* @behaviour A title and description, the permissions with their levels, a warning or an error when
|
|
32
|
+
* given, then the plugin's content in a labelled region and its footer. `disabled` dims the
|
|
33
|
+
* content.
|
|
34
|
+
* @words The plugin's title as the plugin names itself; permissions are short nouns with a sentence
|
|
35
|
+
* each.
|
|
36
|
+
* @access The permissions are a labelled list and the plugin's content a region labelled
|
|
37
|
+
* `contentLabel`, so a reader knows where the plugin begins and ends.
|
|
38
|
+
*/
|
|
24
39
|
declare function PluginSlotBoundary({ title, description, status, permissions, warning, error, redactionGuidance, actions, footer, children, contentLabel, className, contentClassName, ...props }: PluginSlotBoundaryProps): React.JSX.Element;
|
|
25
40
|
export { PluginSlotBoundary };
|
|
26
41
|
export type { PluginPermission, PluginPermissionLevel, PluginSlotBoundaryProps, PluginSlotBoundaryStatus, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-slot-boundary.d.ts","sourceRoot":"","sources":["../../src/components/plugin-slot-boundary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,KAAK,wBAAwB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAC3E,KAAK,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnE,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG;IAC9E,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAeF,iBAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,MAAgB,EAChB,WAAgB,EAChB,OAAO,EACP,KAAK,EACL,iBAA4C,EAC5C,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAA+B,EAC/B,SAAS,EACT,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,uBAAuB,qBAoGzB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"plugin-slot-boundary.d.ts","sourceRoot":"","sources":["../../src/components/plugin-slot-boundary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,KAAK,wBAAwB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAC3E,KAAK,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnE,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG;IAC9E,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAeF;;;;;;;;;;;;;;GAcG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,MAAgB,EAChB,WAAgB,EAChB,OAAO,EACP,KAAK,EACL,iBAA4C,EAC5C,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAA+B,EAC/B,SAAS,EACT,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,uBAAuB,qBAoGzB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GACzB,CAAC"}
|
|
@@ -12,6 +12,21 @@ const permissionBadgeVariants = {
|
|
|
12
12
|
denied: "destructive",
|
|
13
13
|
};
|
|
14
14
|
const defaultRedactionGuidance = "Plugin content should be synthetic or redacted. Do not render secrets, environment variable values, raw terminal output, or hidden reasoning.";
|
|
15
|
+
/**
|
|
16
|
+
* The frame around content a plugin draws inside a product.
|
|
17
|
+
*
|
|
18
|
+
* @family Other
|
|
19
|
+
* @when Any surface a plugin renders into: it names the plugin, its permissions and its state
|
|
20
|
+
* around the plugin's own content.
|
|
21
|
+
* @instead The product's own sections are `SettingsSection` or `ObjectSection`.
|
|
22
|
+
* @behaviour A title and description, the permissions with their levels, a warning or an error when
|
|
23
|
+
* given, then the plugin's content in a labelled region and its footer. `disabled` dims the
|
|
24
|
+
* content.
|
|
25
|
+
* @words The plugin's title as the plugin names itself; permissions are short nouns with a sentence
|
|
26
|
+
* each.
|
|
27
|
+
* @access The permissions are a labelled list and the plugin's content a region labelled
|
|
28
|
+
* `contentLabel`, so a reader knows where the plugin begins and ends.
|
|
29
|
+
*/
|
|
15
30
|
function PluginSlotBoundary({ title, description, status = "ready", permissions = [], warning, error, redactionGuidance = defaultRedactionGuidance, actions, footer, children, contentLabel = "Plugin content", className, contentClassName, ...props }) {
|
|
16
31
|
const statusIcon = status === "error" ? (_jsx(ShieldAlertIcon, { "data-icon": true, className: "size-4" })) : status === "warning" ? (_jsx(AlertTriangleIcon, { "data-icon": true, className: "size-4" })) : status === "disabled" ? (_jsx(LockKeyholeIcon, { "data-icon": true, className: "size-4" })) : (_jsx(ShieldCheckIcon, { "data-icon": true, className: "size-4" }));
|
|
17
32
|
return (_jsx("section", { "data-slot": "plugin-slot-boundary", "data-status": status, className: className, ...props, children: _jsxs(Card, { className: "overflow-hidden", children: [_jsxs(CardHeader, { children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { className: "grid min-w-0 gap-1", children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [statusIcon, _jsx("span", { className: "min-w-0 truncate", children: title })] }), description && _jsx(CardDescription, { children: description })] }), actions && (_jsx("div", { "data-slot": "plugin-slot-boundary-actions", className: "flex shrink-0 items-center gap-2", children: actions }))] }), permissions.length > 0 && (_jsx("div", { "data-slot": "plugin-slot-boundary-permissions", className: "flex flex-wrap items-center gap-2", "aria-label": "Plugin permissions", children: permissions.map((permission) => {
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
|
|
3
|
+
/**
|
|
4
|
+
* A small control set tied to its trigger, on glass.
|
|
5
|
+
*
|
|
6
|
+
* @family Menus
|
|
7
|
+
* @when A small control set tied to its trigger: filters, a scope chooser, a date range, a feedback
|
|
8
|
+
* form. The page stays live behind it.
|
|
9
|
+
* @instead For commands use `DropdownMenu`. For a form that adds a record use `FormDialog`. For one
|
|
10
|
+
* phrase use `Tooltip`; for facts on hover use `HoverCard`.
|
|
11
|
+
* @behaviour Glass floating surface, 12 px padding and gap. Opens on click, closes on Escape or
|
|
12
|
+
* outside press, focus returns to the trigger. Applies at once; no Save inside.
|
|
13
|
+
* @words Title names the control's job (*Filter skills*); an optional one-line description. Options
|
|
14
|
+
* are nouns.
|
|
15
|
+
* @access Trigger has a visible name and `aria-expanded`. The popup is a labelled dialog that does
|
|
16
|
+
* not trap focus; Tab leaves it in order.
|
|
17
|
+
*/
|
|
3
18
|
declare function Popover({ ...props }: PopoverPrimitive.Root.Props): React.JSX.Element;
|
|
4
19
|
declare function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props): React.JSX.Element;
|
|
5
20
|
declare function PopoverContent({ className, align, alignOffset, side, sideOffset, anchor, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, "align" | "alignOffset" | "anchor" | "side" | "sideOffset">): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAKrE,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,qBAEzD;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,qBAEnE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAgB,EAChB,WAAe,EACf,IAAe,EACf,UAAc,EACd,MAAM,EACN,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CACF,gBAAgB,CAAC,UAAU,CAAC,KAAK,EACjC,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAC3D,qBAuBF;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ1E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,qBAQ1E;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAAK,qBAQtF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAKrE;;;;;;;;;;;;;;GAcG;AACH,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,qBAEzD;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,qBAEnE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAgB,EAChB,WAAe,EACf,IAAe,EACf,UAAc,EACd,MAAM,EACN,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CACF,gBAAgB,CAAC,UAAU,CAAC,KAAK,EACjC,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAC3D,qBAuBF;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ1E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,qBAQ1E;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAAK,qBAQtF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -2,6 +2,21 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
|
|
3
3
|
import { cn } from "../lib/utils.js";
|
|
4
4
|
import { anchoredOverlayMotion } from "../lib/motion.js";
|
|
5
|
+
/**
|
|
6
|
+
* A small control set tied to its trigger, on glass.
|
|
7
|
+
*
|
|
8
|
+
* @family Menus
|
|
9
|
+
* @when A small control set tied to its trigger: filters, a scope chooser, a date range, a feedback
|
|
10
|
+
* form. The page stays live behind it.
|
|
11
|
+
* @instead For commands use `DropdownMenu`. For a form that adds a record use `FormDialog`. For one
|
|
12
|
+
* phrase use `Tooltip`; for facts on hover use `HoverCard`.
|
|
13
|
+
* @behaviour Glass floating surface, 12 px padding and gap. Opens on click, closes on Escape or
|
|
14
|
+
* outside press, focus returns to the trigger. Applies at once; no Save inside.
|
|
15
|
+
* @words Title names the control's job (*Filter skills*); an optional one-line description. Options
|
|
16
|
+
* are nouns.
|
|
17
|
+
* @access Trigger has a visible name and `aria-expanded`. The popup is a labelled dialog that does
|
|
18
|
+
* not trap focus; Tab leaves it in order.
|
|
19
|
+
*/
|
|
5
20
|
function Popover({ ...props }) {
|
|
6
21
|
return _jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
7
22
|
}
|
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import { type AccountIdentity } from "./account-menu.js";
|
|
3
|
-
/**
|
|
4
|
-
* The Portal's navigation frame, without the Portal's routing: the wordmark and
|
|
5
|
-
* the section name over the collapse control, the Find control with its
|
|
6
|
-
* shortcut, the labelled nav bands, the band that leads out of the Portal, and
|
|
7
|
-
* the account at the foot. Its regions are separated by the 1 px guide over the
|
|
8
|
-
* line colour, as the Portal's own shell separates them, so a sidebar region
|
|
9
|
-
* takes no border of its own.
|
|
10
|
-
*
|
|
11
|
-
* The frame carries geometry and brand imagery only. Every word, icon and
|
|
12
|
-
* active marking arrives as a prop, so the Portal can pass its nav model and
|
|
13
|
-
* the website can pass a sample of it.
|
|
14
|
-
*/
|
|
15
3
|
export type PortalSidebarItem = {
|
|
16
4
|
id: string;
|
|
17
5
|
label: string;
|
|
@@ -25,6 +13,32 @@ export type PortalSidebarBand = {
|
|
|
25
13
|
label?: string;
|
|
26
14
|
items: PortalSidebarItem[];
|
|
27
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* The Portal's navigation frame, without the Portal's routing: the wordmark and
|
|
18
|
+
* the section name over the collapse control, the Find control with its
|
|
19
|
+
* shortcut, the labelled nav bands, the band that leads out of the Portal, and
|
|
20
|
+
* the account at the foot.
|
|
21
|
+
*
|
|
22
|
+
* Its regions are separated by the 1 px guide over the line colour, as the
|
|
23
|
+
* Portal's own shell separates them, so a sidebar region takes no border of its
|
|
24
|
+
* own.
|
|
25
|
+
*
|
|
26
|
+
* The frame carries geometry and brand imagery only. Every word, icon and
|
|
27
|
+
* active marking arrives as a prop, so the Portal can pass its nav model and
|
|
28
|
+
* the website can pass a sample of it.
|
|
29
|
+
*
|
|
30
|
+
* @family Navigation
|
|
31
|
+
* @when `PortalSidebarFrame` is the Portal's whole left column, and the website's sample of it.
|
|
32
|
+
* @instead Nadia's left column belongs to `DesktopAppShell`. Both draw their rows with the same
|
|
33
|
+
* `SidebarMenuButton` and end with the same `AccountMenu`; neither paints its own selected fill or
|
|
34
|
+
* its own account block.
|
|
35
|
+
* @behaviour Wordmark and product name over the collapse control, then Find, the bands, the way out
|
|
36
|
+
* (Get Nadia) and the account, split by 1 px guides.
|
|
37
|
+
* @words Find is one word beside ⌘K. Bands are short nouns; items are nouns, one or two words,
|
|
38
|
+
* sentence case.
|
|
39
|
+
* @access The column is a labelled `nav`. Find is a button named with its shortcut. The wordmark is
|
|
40
|
+
* `role="img"` named nadicode.
|
|
41
|
+
*/
|
|
28
42
|
export declare function PortalSidebarFrame({ account, bands, className, findLabel, footerItem, subtitle, toggleLabel, }: {
|
|
29
43
|
account: AccountIdentity;
|
|
30
44
|
bands: PortalSidebarBand[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-sidebar-frame.d.ts","sourceRoot":"","sources":["../../src/components/portal-sidebar-frame.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAkBtF
|
|
1
|
+
{"version":3,"file":"portal-sidebar-frame.d.ts","sourceRoot":"","sources":["../../src/components/portal-sidebar-frame.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAkBtF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B,CAAC;AAiBF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,+BAwEA"}
|