@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
|
@@ -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,
|
|
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,11 +12,28 @@ 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) => {
|
|
18
33
|
const level = permission.level ?? "review";
|
|
19
|
-
return (_jsx(Badge, { "data-slot": "plugin-slot-boundary-permission", "data-level": level, variant: permissionBadgeVariants[level], title:
|
|
34
|
+
return (_jsx(Badge, { "data-slot": "plugin-slot-boundary-permission", "data-level": level, variant: permissionBadgeVariants[level], title:
|
|
35
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- description is a ReactNode; only a string can be a title attribute.
|
|
36
|
+
typeof permission.description === "string"
|
|
20
37
|
? permission.description
|
|
21
38
|
: undefined, children: permission.label }, permission.id));
|
|
22
39
|
}) }))] }), _jsxs(CardContent, { className: "grid gap-4", children: [warning && (_jsxs(Alert, { "data-slot": "plugin-slot-boundary-warning", children: [_jsx(AlertTriangleIcon, { "data-icon": true }), _jsx(AlertTitle, { children: "Review before continuing" }), _jsx(AlertDescription, { children: warning })] })), error && (_jsxs(Alert, { "data-slot": "plugin-slot-boundary-error", variant: "destructive", children: [_jsx(ShieldAlertIcon, { "data-icon": true }), _jsx(AlertTitle, { children: "Plugin content unavailable" }), _jsx(AlertDescription, { children: error })] })), _jsx("div", { "data-slot": "plugin-slot-boundary-content", "aria-label": contentLabel, className: cn("max-h-96 min-w-0 overflow-auto rounded-sm border bg-background p-4 text-sm break-words", status === "disabled" && "pointer-events-none opacity-60", contentClassName), children: children })] }), (redactionGuidance || footer) && (_jsxs(CardFooter, { className: "flex flex-col items-start gap-2 border-t text-sm text-muted-foreground", children: [redactionGuidance && (_jsx("p", { "data-slot": "plugin-slot-boundary-redaction", children: redactionGuidance })), footer && _jsx("div", { "data-slot": "plugin-slot-boundary-footer", children: footer })] }))] }) }));
|
|
@@ -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"}
|
|
@@ -9,6 +9,32 @@ import { cn } from "../lib/utils.js";
|
|
|
9
9
|
function ItemRow({ item, variant }) {
|
|
10
10
|
return (_jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { isActive: item.current, tooltip: item.label, ...(variant ? { variant } : {}), children: [item.icon, _jsx("span", { className: "truncate", children: item.label })] }) }));
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* The Portal's navigation frame, without the Portal's routing: the wordmark and
|
|
14
|
+
* the section name over the collapse control, the Find control with its
|
|
15
|
+
* shortcut, the labelled nav bands, the band that leads out of the Portal, and
|
|
16
|
+
* the account at the foot.
|
|
17
|
+
*
|
|
18
|
+
* Its regions are separated by the 1 px guide over the line colour, as the
|
|
19
|
+
* Portal's own shell separates them, so a sidebar region takes no border of its
|
|
20
|
+
* own.
|
|
21
|
+
*
|
|
22
|
+
* The frame carries geometry and brand imagery only. Every word, icon and
|
|
23
|
+
* active marking arrives as a prop, so the Portal can pass its nav model and
|
|
24
|
+
* the website can pass a sample of it.
|
|
25
|
+
*
|
|
26
|
+
* @family Navigation
|
|
27
|
+
* @when `PortalSidebarFrame` is the Portal's whole left column, and the website's sample of it.
|
|
28
|
+
* @instead Nadia's left column belongs to `DesktopAppShell`. Both draw their rows with the same
|
|
29
|
+
* `SidebarMenuButton` and end with the same `AccountMenu`; neither paints its own selected fill or
|
|
30
|
+
* its own account block.
|
|
31
|
+
* @behaviour Wordmark and product name over the collapse control, then Find, the bands, the way out
|
|
32
|
+
* (Get Nadia) and the account, split by 1 px guides.
|
|
33
|
+
* @words Find is one word beside ⌘K. Bands are short nouns; items are nouns, one or two words,
|
|
34
|
+
* sentence case.
|
|
35
|
+
* @access The column is a labelled `nav`. Find is a button named with its shortcut. The wordmark is
|
|
36
|
+
* `role="img"` named nadicode.
|
|
37
|
+
*/
|
|
12
38
|
export function PortalSidebarFrame({ account, bands, className, findLabel, footerItem, subtitle, toggleLabel, }) {
|
|
13
39
|
return (_jsx(Sidebar, { collapsible: "none", className: cn("h-auto shrink-0", className), children: _jsxs("div", { className: "grid min-h-0 flex-1 grid-rows-[auto_minmax(0,1fr)_auto_auto] bg-border *:min-w-0", children: [_jsxs("div", { className: "grid grid-rows-[3.5rem_auto] gap-px bg-border *:bg-sidebar", children: [_jsxs(SidebarHeader, { className: "h-full flex-row items-center justify-between gap-1 px-3 py-0", children: [_jsxs("div", { className: "grid min-w-0 flex-1 gap-0", children: [_jsx(BrandWordmark, { alt: "", className: "h-5 w-28 max-w-full" }), _jsx("span", { className: "truncate text-xs text-muted-foreground", children: subtitle })] }), _jsx(SidebarTrigger, { "aria-label": toggleLabel, className: "shrink-0" })] }), _jsx("div", { className: "p-2", children: _jsx(SidebarMenu, { children: _jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { variant: "outline", children: [_jsx(Search, { "aria-hidden": "true", className: "text-muted-foreground" }), _jsx("span", { className: "min-w-0 flex-1 truncate text-left text-muted-foreground", children: findLabel }), _jsxs(KbdGroup, { className: "ml-auto", children: [_jsx(Kbd, { children: "\u2318" }), _jsx(Kbd, { children: "K" })] })] }) }) }) })] }), _jsx(SidebarContent, { className: "bg-sidebar", children: bands.map((band) => (_jsxs(SidebarGroup, { children: [band.label ? (_jsx(SidebarGroupLabel, { render: _jsx("h2", {}), children: band.label })) : null, _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: band.items.map((item) => (_jsx(ItemRow, { item: item }, item.id))) }) })] }, band.id))) }), footerItem ? (_jsx(SidebarGroup, { className: "border-t bg-sidebar", children: _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: _jsx(ItemRow, { item: footerItem, variant: "outline" }) }) }) })) : null, _jsx(SidebarFooter, { className: "border-t bg-sidebar", children: _jsx(SidebarMenu, { children: _jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { size: "lg", children: [_jsx(AccountMenuIdentity, { className: "flex-1", identity: account }), _jsx(ChevronsUpDown, { "aria-hidden": "true", className: "ml-auto size-4 text-muted-foreground" })] }) }) }) })] }) }));
|
|
14
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-message.d.ts","sourceRoot":"","sources":["../../src/components/product-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAEtE,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI;IACzD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAExC,OAAO,CAAC,MAAM,MAAM,EAAE,OAAO,MAAM,CAAC;AAEpC,uGAAuG;AACvG,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACzB,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACpC,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"product-message.d.ts","sourceRoot":"","sources":["../../src/components/product-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAEtE,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI;IACzD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAExC,OAAO,CAAC,MAAM,MAAM,EAAE,OAAO,MAAM,CAAC;AAEpC,uGAAuG;AACvG,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACzB,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACpC,GAAG,eAAe,CAGlB;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAGvE;AAID,4GAA4G;AAC5G,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAKjE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export function wordMessage(parts) {
|
|
2
|
+
// SAFETY: the `worded` brand has no runtime value; this function is the only place that mints it, which is the guarantee ResolvedMessage carries, and the fields are the parts given.
|
|
2
3
|
return { ...parts, actions: parts.actions ?? [] };
|
|
3
4
|
}
|
|
4
5
|
/** The body a surface shows: none when it would repeat the title. */
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
|
-
/**
|
|
4
|
-
* The measured bar. Stock shadcn `progress` plus one variant: a product-owned
|
|
5
|
-
* `tone`, because the meters this replaces (usage against an included
|
|
6
|
-
* allowance) have to say whether a full bar is fine or a problem. Tone is a
|
|
7
|
-
* consumer decision, never derived from the measurement. A value past `max`
|
|
8
|
-
* fills the track and takes the over-cap paint, which is the bar saying the
|
|
9
|
-
* allowance is spent — not a second segment.
|
|
10
|
-
*/
|
|
11
3
|
declare const progressIndicatorVariants: (props?: ({
|
|
12
4
|
tone?: "default" | "warning" | "critical" | null | undefined;
|
|
13
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
6
|
type ProgressTone = NonNullable<VariantProps<typeof progressIndicatorVariants>["tone"]>;
|
|
7
|
+
/**
|
|
8
|
+
* A known amount against a real maximum, with its label and value.
|
|
9
|
+
*
|
|
10
|
+
* @family Data
|
|
11
|
+
* @when A known amount against a real maximum, with its label and value: included runs used against the plan's allowance.
|
|
12
|
+
* @instead An unknown wait is the waiting line, never a bar with an invented percentage. A run's consumption in a dense spot is a `UsageMeter`. A single figure is a `KpiCard`.
|
|
13
|
+
* @behaviour A 4 px track in the `line` colour. The fill moves only when the reading changes, on `open`; still under reduced motion. `tone` is the product's threshold, never derived from the value. Past the maximum the bar fills and turns red, whatever the tone.
|
|
14
|
+
* @words Print the work and its unit in `ProgressValue`: "620 of 1,000".
|
|
15
|
+
* @access A `progressbar` named by its `ProgressLabel` or `aria-label`, with its value.
|
|
16
|
+
*/
|
|
15
17
|
declare function Progress({ className, children, value, min, max, tone, indicatorColor, ...props }: ProgressPrimitive.Root.Props & {
|
|
16
18
|
tone?: ProgressTone;
|
|
17
19
|
indicatorColor?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/components/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,QAAA,MAAM,yBAAyB;;8EAc9B,CAAC;AAEF,KAAK,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAiBxF;;;;;;;;;GASG;AACH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,QAAQ,EACR,KAAK,EACL,GAAO,EACP,GAAS,EACT,IAAgB,EAChB,cAAc,EACd,GAAG,KAAK,EACT,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,GAAG;IAAE,IAAI,CAAC,EAAE,YAAY,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,+BAwBjF;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,+BAW5E;AAOD,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,CAAC,SAAS,CAAC,KAAK,+BA8B3F;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,+BAQ5E;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,+BAQ5E;AAED,OAAO,EACL,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,yBAAyB,GAC1B,CAAC;AACF,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -4,14 +4,6 @@ import { Progress as ProgressPrimitive } from "@base-ui/react/progress";
|
|
|
4
4
|
import { cva } from "class-variance-authority";
|
|
5
5
|
import { createContext, useContext } from "react";
|
|
6
6
|
import { cn } from "../lib/utils.js";
|
|
7
|
-
/**
|
|
8
|
-
* The measured bar. Stock shadcn `progress` plus one variant: a product-owned
|
|
9
|
-
* `tone`, because the meters this replaces (usage against an included
|
|
10
|
-
* allowance) have to say whether a full bar is fine or a problem. Tone is a
|
|
11
|
-
* consumer decision, never derived from the measurement. A value past `max`
|
|
12
|
-
* fills the track and takes the over-cap paint, which is the bar saying the
|
|
13
|
-
* allowance is spent — not a second segment.
|
|
14
|
-
*/
|
|
15
7
|
const progressIndicatorVariants = cva("h-full origin-left scale-x-[var(--progress-scale)] transition-transform duration-[var(--nc-duration-open)] ease-[var(--nc-ease-out-strong)] motion-reduce:transition-none rtl:origin-right", {
|
|
16
8
|
variants: {
|
|
17
9
|
tone: {
|
|
@@ -30,25 +22,34 @@ const ProgressStateContext = createContext({
|
|
|
30
22
|
tone: "default",
|
|
31
23
|
overCap: false,
|
|
32
24
|
});
|
|
25
|
+
/**
|
|
26
|
+
* A known amount against a real maximum, with its label and value.
|
|
27
|
+
*
|
|
28
|
+
* @family Data
|
|
29
|
+
* @when A known amount against a real maximum, with its label and value: included runs used against the plan's allowance.
|
|
30
|
+
* @instead An unknown wait is the waiting line, never a bar with an invented percentage. A run's consumption in a dense spot is a `UsageMeter`. A single figure is a `KpiCard`.
|
|
31
|
+
* @behaviour A 4 px track in the `line` colour. The fill moves only when the reading changes, on `open`; still under reduced motion. `tone` is the product's threshold, never derived from the value. Past the maximum the bar fills and turns red, whatever the tone.
|
|
32
|
+
* @words Print the work and its unit in `ProgressValue`: "620 of 1,000".
|
|
33
|
+
* @access A `progressbar` named by its `ProgressLabel` or `aria-label`, with its value.
|
|
34
|
+
*/
|
|
33
35
|
function Progress({ className, children, value, min = 0, max = 100, tone = "default", indicatorColor, ...props }) {
|
|
34
|
-
const measured =
|
|
36
|
+
const measured = value !== null && Number.isFinite(value);
|
|
35
37
|
const scale = measured && max > min ? Math.min(1, Math.max(0, (value - min) / (max - min))) : 0;
|
|
36
38
|
const overCap = measured && value > max;
|
|
37
39
|
return (_jsx(ProgressPrimitive.Root, { value: value, min: min, max: max, "data-slot": "progress", "data-tone": tone, "data-over-cap": overCap || undefined, className: cn("flex flex-wrap gap-3", className), ...props, children: _jsxs(ProgressStateContext.Provider, { value: { scale, tone, overCap, indicatorColor }, children: [children, _jsx(ProgressTrack, { children: _jsx(ProgressIndicator, {}) })] }) }));
|
|
38
40
|
}
|
|
39
41
|
function ProgressTrack({ className, ...props }) {
|
|
40
|
-
return (_jsx(ProgressPrimitive.Track, { className: cn("relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-
|
|
42
|
+
return (_jsx(ProgressPrimitive.Track, { className: cn("relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-border", className), "data-slot": "progress-track", ...props }));
|
|
41
43
|
}
|
|
42
44
|
function ProgressIndicator({ className, style, ...props }) {
|
|
43
45
|
const { scale, tone, overCap, indicatorColor } = useContext(ProgressStateContext);
|
|
44
46
|
const indicatorStyle = (state) => {
|
|
47
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Base UI's style prop is a CSSProperties | (state => CSSProperties) union, told apart only by typeof.
|
|
45
48
|
const resolvedStyle = typeof style === "function" ? style(state) : style;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"--progress-
|
|
49
|
-
|
|
50
|
-
...resolvedStyle,
|
|
51
|
-
};
|
|
49
|
+
const base = { width: "100%", "--progress-scale": scale };
|
|
50
|
+
if (indicatorColor)
|
|
51
|
+
base["--progress-indicator-color"] = indicatorColor;
|
|
52
|
+
return { ...base, ...resolvedStyle };
|
|
52
53
|
};
|
|
53
54
|
return (_jsx(ProgressPrimitive.Indicator, { "data-slot": "progress-indicator", "data-tone": overCap ? "over-cap" : tone, "data-over-cap": overCap || undefined, className: cn(progressIndicatorVariants({ tone }), indicatorColor && "bg-(--progress-indicator-color)",
|
|
54
55
|
// After the variant, so the merge keeps this one paint: an allowance
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A link drawn as a QR code another device can scan
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* A link drawn as a QR code another device can scan.
|
|
3
|
+
*
|
|
4
|
+
* @family Data
|
|
5
|
+
* @when Opening something on a phone from a screen: a mobile sign-in, a download link.
|
|
6
|
+
* @instead Two screens compared by eye is `PairingCode`. A link a person clicks is a link.
|
|
7
|
+
* @behaviour Square dark modules on a white tile in every theme, with the quiet zone a reader
|
|
8
|
+
* needs.
|
|
9
|
+
* @words The label names what the code opens: *Open Nadia on your phone*.
|
|
10
|
+
* @access `role="img"` named by `label`.
|
|
5
11
|
*/
|
|
6
12
|
declare function QrCode({ value, label, size, className, }: {
|
|
7
13
|
value: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qr-code.d.ts","sourceRoot":"","sources":["../../src/components/qr-code.tsx"],"names":[],"mappings":"AAQA
|
|
1
|
+
{"version":3,"file":"qr-code.d.ts","sourceRoot":"","sources":["../../src/components/qr-code.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,iBAAS,MAAM,CAAC,EACd,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA0BA;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -5,9 +5,15 @@ import { cn } from "../lib/utils.js";
|
|
|
5
5
|
/** The blank border a reader needs around the code, in modules. */
|
|
6
6
|
const QUIET_ZONE = 4;
|
|
7
7
|
/**
|
|
8
|
-
* A link drawn as a QR code another device can scan
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* A link drawn as a QR code another device can scan.
|
|
9
|
+
*
|
|
10
|
+
* @family Data
|
|
11
|
+
* @when Opening something on a phone from a screen: a mobile sign-in, a download link.
|
|
12
|
+
* @instead Two screens compared by eye is `PairingCode`. A link a person clicks is a link.
|
|
13
|
+
* @behaviour Square dark modules on a white tile in every theme, with the quiet zone a reader
|
|
14
|
+
* needs.
|
|
15
|
+
* @words The label names what the code opens: *Open Nadia on your phone*.
|
|
16
|
+
* @access `role="img"` named by `label`.
|
|
11
17
|
*/
|
|
12
18
|
function QrCode({ value, label, size, className, }) {
|
|
13
19
|
const { box, path } = useMemo(() => {
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import { Radio as RadioPrimitive } from "@base-ui/react/radio";
|
|
2
2
|
import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group";
|
|
3
|
+
/**
|
|
4
|
+
* One option of a few, all shown at once.
|
|
5
|
+
*
|
|
6
|
+
* @family Choices
|
|
7
|
+
* @when One of 2 to 6 options that exclude each other, all shown at once.
|
|
8
|
+
* @instead Options that each need a sentence are choice tiles. Seven or more is a `Select`; a list
|
|
9
|
+
* to search is a `Combobox`. Another view of the same thing is `Tabs`.
|
|
10
|
+
* @behaviour One tab stop for the group; the arrows move and choose. The chosen circle fills with
|
|
11
|
+
* ink and a white 8 px dot. Preselect the safe option when there is one; leave a consequential
|
|
12
|
+
* choice empty until the person makes it.
|
|
13
|
+
* @words Options are parallel phrases in sentence case with no end punctuation: *Only me*,
|
|
14
|
+
* *Everyone in the company*. The legend names the setting; it does not ask a question.
|
|
15
|
+
* @access `role="radiogroup"` named by its legend, each radio by its label. A disabled option shows
|
|
16
|
+
* why in its own help line.
|
|
17
|
+
*/
|
|
3
18
|
declare function RadioGroup({ className, ...props }: RadioGroupPrimitive.Props): import("react").JSX.Element;
|
|
4
19
|
declare function RadioGroupItem({ children, className, ...props }: RadioPrimitive.Root.Props): import("react").JSX.Element;
|
|
5
20
|
export { RadioGroup, RadioGroupItem };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../src/components/radio-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAI/E,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,CAAC,KAAK,+BAQrE;AAED,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,+BAoBnF;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../src/components/radio-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAI/E;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,CAAC,KAAK,+BAQrE;AAED,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,+BAoBnF;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -2,6 +2,21 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Radio as RadioPrimitive } from "@base-ui/react/radio";
|
|
3
3
|
import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group";
|
|
4
4
|
import { cn } from "../lib/utils.js";
|
|
5
|
+
/**
|
|
6
|
+
* One option of a few, all shown at once.
|
|
7
|
+
*
|
|
8
|
+
* @family Choices
|
|
9
|
+
* @when One of 2 to 6 options that exclude each other, all shown at once.
|
|
10
|
+
* @instead Options that each need a sentence are choice tiles. Seven or more is a `Select`; a list
|
|
11
|
+
* to search is a `Combobox`. Another view of the same thing is `Tabs`.
|
|
12
|
+
* @behaviour One tab stop for the group; the arrows move and choose. The chosen circle fills with
|
|
13
|
+
* ink and a white 8 px dot. Preselect the safe option when there is one; leave a consequential
|
|
14
|
+
* choice empty until the person makes it.
|
|
15
|
+
* @words Options are parallel phrases in sentence case with no end punctuation: *Only me*,
|
|
16
|
+
* *Everyone in the company*. The legend names the setting; it does not ask a question.
|
|
17
|
+
* @access `role="radiogroup"` named by its legend, each radio by its label. A disabled option shows
|
|
18
|
+
* why in its own help line.
|
|
19
|
+
*/
|
|
5
20
|
function RadioGroup({ className, ...props }) {
|
|
6
21
|
return (_jsx(RadioGroupPrimitive, { "data-slot": "radio-group", className: cn("grid w-full gap-2", className), ...props }));
|
|
7
22
|
}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
export type ReadingColumnWidth = "full" | "reading" | "configuration";
|
|
3
|
+
/**
|
|
4
|
+
* The column a page's content stands in: full, reading or configuration width.
|
|
5
|
+
*
|
|
6
|
+
* @family Other
|
|
7
|
+
* @when Setting a page's measure: `reading` for prose and conversations, `configuration` for
|
|
8
|
+
* settings, `full` for collections.
|
|
9
|
+
* @instead A settings page's column is `SettingsPage`'s. A card row is `CardRow`.
|
|
10
|
+
* @behaviour Centred with a maximum width per kind; full takes the content's width.
|
|
11
|
+
* @words None of its own.
|
|
12
|
+
* @access A layout container.
|
|
13
|
+
*/
|
|
3
14
|
declare function ReadingColumn({ width, className, ...props }: React.ComponentProps<"div"> & {
|
|
4
15
|
width?: ReadingColumnWidth;
|
|
5
16
|
}): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reading-column.d.ts","sourceRoot":"","sources":["../../src/components/reading-column.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC;AAEtE,iBAAS,aAAa,CAAC,EACrB,KAAiB,EACjB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAAE,qBAc9D;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"reading-column.d.ts","sourceRoot":"","sources":["../../src/components/reading-column.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,iBAAS,aAAa,CAAC,EACrB,KAAiB,EACjB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAAE,qBAc9D;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|