@nadicodeai/ui 12.1.102 → 12.1.103
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/dist/components/accordion.d.ts +38 -12
- package/dist/components/accordion.d.ts.map +1 -1
- package/dist/components/accordion.js +36 -15
- package/dist/components/account-menu.js +2 -2
- package/dist/components/action-menu.d.ts +20 -19
- package/dist/components/action-menu.d.ts.map +1 -1
- package/dist/components/action-menu.js +22 -15
- package/dist/components/action-status.d.ts +14 -10
- package/dist/components/action-status.d.ts.map +1 -1
- package/dist/components/action-status.js +14 -10
- package/dist/components/activity-calendar.d.ts +3 -1
- package/dist/components/activity-calendar.d.ts.map +1 -1
- package/dist/components/activity-calendar.js +16 -2
- package/dist/components/activity-feed.d.ts +2 -2
- package/dist/components/activity-feed.d.ts.map +1 -1
- package/dist/components/activity-feed.js +14 -5
- package/dist/components/agent-card.d.ts +11 -5
- package/dist/components/agent-card.d.ts.map +1 -1
- package/dist/components/agent-card.js +13 -7
- package/dist/components/agent-list-row.js +1 -1
- package/dist/components/agent-orb-appearance.d.ts +7 -1
- package/dist/components/agent-orb-appearance.d.ts.map +1 -1
- package/dist/components/agent-orb-appearance.js +26 -0
- package/dist/components/agent-profile.d.ts +8 -7
- package/dist/components/agent-profile.d.ts.map +1 -1
- package/dist/components/agent-profile.js +6 -6
- package/dist/components/alert-dialog.d.ts +25 -16
- package/dist/components/alert-dialog.d.ts.map +1 -1
- package/dist/components/alert-dialog.js +30 -18
- package/dist/components/alert.d.ts +1 -1
- package/dist/components/avatar.d.ts +83 -17
- package/dist/components/avatar.d.ts.map +1 -1
- package/dist/components/avatar.js +89 -23
- package/dist/components/badge.d.ts +59 -8
- package/dist/components/badge.d.ts.map +1 -1
- package/dist/components/badge.js +57 -14
- package/dist/components/breadcrumb.d.ts +18 -7
- package/dist/components/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb.js +37 -13
- package/dist/components/button-group.d.ts +12 -15
- package/dist/components/button-group.d.ts.map +1 -1
- package/dist/components/button-group.js +13 -17
- package/dist/components/button.d.ts +126 -23
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +164 -39
- package/dist/components/calendar.d.ts +26 -15
- package/dist/components/calendar.d.ts.map +1 -1
- package/dist/components/calendar.js +60 -46
- package/dist/components/card-row.d.ts +13 -5
- package/dist/components/card-row.d.ts.map +1 -1
- package/dist/components/card-row.js +24 -10
- package/dist/components/card.d.ts +6 -12
- package/dist/components/card.d.ts.map +1 -1
- package/dist/components/card.js +11 -16
- package/dist/components/carousel.d.ts +3 -3
- package/dist/components/carousel.d.ts.map +1 -1
- package/dist/components/carousel.js +7 -7
- package/dist/components/catalog-drawer.d.ts +7 -7
- package/dist/components/catalog-drawer.d.ts.map +1 -1
- package/dist/components/catalog-drawer.js +6 -6
- package/dist/components/chart-area-stacked.d.ts +1 -1
- package/dist/components/chart-area-stacked.d.ts.map +1 -1
- package/dist/components/chart-area-stacked.js +4 -4
- package/dist/components/chart-axis.d.ts +14 -1
- package/dist/components/chart-axis.d.ts.map +1 -1
- package/dist/components/chart-axis.js +11 -1
- package/dist/components/chart-bar-horizontal.d.ts +2 -2
- package/dist/components/chart-bar-horizontal.d.ts.map +1 -1
- package/dist/components/chart-bar-horizontal.js +14 -5
- package/dist/components/chart-bar-multiple.d.ts +1 -1
- package/dist/components/chart-bar-multiple.d.ts.map +1 -1
- package/dist/components/chart-bar-multiple.js +3 -3
- package/dist/components/chart-bar-stacked.d.ts +1 -1
- package/dist/components/chart-bar-stacked.d.ts.map +1 -1
- package/dist/components/chart-bar-stacked.js +3 -3
- package/dist/components/chart-card.d.ts +17 -6
- package/dist/components/chart-card.d.ts.map +1 -1
- package/dist/components/chart-card.js +11 -4
- package/dist/components/chart-date-range-control.d.ts +18 -9
- package/dist/components/chart-date-range-control.d.ts.map +1 -1
- package/dist/components/chart-date-range-control.js +43 -47
- package/dist/components/chart-sparkline.d.ts +4 -3
- package/dist/components/chart-sparkline.d.ts.map +1 -1
- package/dist/components/chart-sparkline.js +6 -5
- package/dist/components/check-counts.d.ts +44 -0
- package/dist/components/check-counts.d.ts.map +1 -0
- package/dist/components/check-counts.js +51 -0
- package/dist/components/checkbox.d.ts +39 -11
- package/dist/components/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox.js +38 -11
- package/dist/components/choicebox.d.ts +96 -0
- package/dist/components/choicebox.d.ts.map +1 -0
- package/dist/components/choicebox.js +113 -0
- package/dist/components/clearable-input.d.ts +57 -0
- package/dist/components/clearable-input.d.ts.map +1 -0
- package/dist/components/clearable-input.js +58 -0
- package/dist/components/code-block.d.ts +77 -17
- package/dist/components/code-block.d.ts.map +1 -1
- package/dist/components/code-block.js +85 -15
- package/dist/components/collapsible.d.ts +27 -10
- package/dist/components/collapsible.d.ts.map +1 -1
- package/dist/components/collapsible.js +24 -9
- package/dist/components/collection-filters.d.ts +3 -1
- package/dist/components/collection-filters.d.ts.map +1 -1
- package/dist/components/collection-filters.js +7 -9
- package/dist/components/collection-page.d.ts +31 -10
- package/dist/components/collection-page.d.ts.map +1 -1
- package/dist/components/collection-page.js +14 -13
- package/dist/components/collection-search.d.ts +32 -10
- package/dist/components/collection-search.d.ts.map +1 -1
- package/dist/components/collection-search.js +24 -13
- package/dist/components/collection-sort.d.ts.map +1 -1
- package/dist/components/collection-sort.js +2 -2
- package/dist/components/collection-toolbar.d.ts +5 -2
- package/dist/components/collection-toolbar.d.ts.map +1 -1
- package/dist/components/collection-toolbar.js +7 -4
- package/dist/components/combobox.d.ts +97 -22
- package/dist/components/combobox.d.ts.map +1 -1
- package/dist/components/combobox.js +80 -28
- package/dist/components/command.d.ts +34 -21
- package/dist/components/command.d.ts.map +1 -1
- package/dist/components/command.js +33 -25
- package/dist/components/confirm-dialog.d.ts +23 -6
- package/dist/components/confirm-dialog.d.ts.map +1 -1
- package/dist/components/confirm-dialog.js +32 -13
- package/dist/components/context-menu.d.ts +14 -10
- package/dist/components/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu.js +17 -12
- package/dist/components/copy-button.d.ts +5 -2
- package/dist/components/copy-button.d.ts.map +1 -1
- package/dist/components/copy-button.js +16 -8
- package/dist/components/data-table.d.ts +120 -54
- package/dist/components/data-table.d.ts.map +1 -1
- package/dist/components/data-table.js +163 -92
- package/dist/components/desktop-shell.d.ts +4 -2
- package/dist/components/desktop-shell.d.ts.map +1 -1
- package/dist/components/desktop-shell.js +3 -3
- package/dist/components/dialog.d.ts +63 -24
- package/dist/components/dialog.d.ts.map +1 -1
- package/dist/components/dialog.js +52 -31
- package/dist/components/disclosure-row.d.ts +1 -2
- package/dist/components/disclosure-row.d.ts.map +1 -1
- package/dist/components/disclosure-row.js +1 -2
- package/dist/components/disclosure.d.ts +1 -1
- package/dist/components/disclosure.js +1 -1
- package/dist/components/drawer.d.ts +33 -12
- package/dist/components/drawer.d.ts.map +1 -1
- package/dist/components/drawer.js +47 -35
- package/dist/components/dropdown-menu.d.ts +59 -14
- package/dist/components/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu.js +58 -26
- package/dist/components/empty-state.d.ts +35 -12
- package/dist/components/empty-state.d.ts.map +1 -1
- package/dist/components/empty-state.js +35 -17
- package/dist/components/entry-scene.d.ts +4 -4
- package/dist/components/entry-scene.d.ts.map +1 -1
- package/dist/components/entry-scene.js +2 -2
- package/dist/components/field.d.ts +44 -14
- package/dist/components/field.d.ts.map +1 -1
- package/dist/components/field.js +49 -20
- package/dist/components/file-diff.d.ts.map +1 -1
- package/dist/components/file-diff.js +3 -4
- package/dist/components/form-dialog.d.ts +7 -7
- package/dist/components/form-dialog.d.ts.map +1 -1
- package/dist/components/form-dialog.js +13 -11
- package/dist/components/form-drawer.d.ts +10 -7
- package/dist/components/form-drawer.d.ts.map +1 -1
- package/dist/components/form-drawer.js +11 -10
- package/dist/components/gauge.d.ts +64 -0
- package/dist/components/gauge.d.ts.map +1 -0
- package/dist/components/gauge.js +73 -0
- package/dist/components/hover-card.d.ts +72 -14
- package/dist/components/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card.js +51 -17
- package/dist/components/identity-mark.d.ts +8 -1
- package/dist/components/identity-mark.d.ts.map +1 -1
- package/dist/components/identity-mark.js +31 -5
- package/dist/components/input-group.d.ts +44 -21
- package/dist/components/input-group.d.ts.map +1 -1
- package/dist/components/input-group.js +74 -27
- package/dist/components/input.d.ts +64 -12
- package/dist/components/input.d.ts.map +1 -1
- package/dist/components/input.js +51 -15
- package/dist/components/item.d.ts +37 -15
- package/dist/components/item.d.ts.map +1 -1
- package/dist/components/item.js +41 -22
- package/dist/components/kbd.d.ts +49 -13
- package/dist/components/kbd.d.ts.map +1 -1
- package/dist/components/kbd.js +115 -16
- package/dist/components/kpi-card.d.ts +12 -4
- package/dist/components/kpi-card.d.ts.map +1 -1
- package/dist/components/kpi-card.js +13 -4
- package/dist/components/label.d.ts +17 -10
- package/dist/components/label.d.ts.map +1 -1
- package/dist/components/label.js +18 -11
- package/dist/components/library-shelf.d.ts +6 -6
- package/dist/components/library-shelf.d.ts.map +1 -1
- package/dist/components/library-shelf.js +5 -5
- package/dist/components/load-more-button.d.ts +35 -0
- package/dist/components/load-more-button.d.ts.map +1 -0
- package/dist/components/load-more-button.js +26 -0
- package/dist/components/message-notice.d.ts +8 -13
- package/dist/components/message-notice.d.ts.map +1 -1
- package/dist/components/message-notice.js +25 -22
- package/dist/components/middle-truncate.d.ts +33 -0
- package/dist/components/middle-truncate.d.ts.map +1 -0
- package/dist/components/middle-truncate.js +72 -0
- package/dist/components/multi-select.d.ts +94 -0
- package/dist/components/multi-select.d.ts.map +1 -0
- package/dist/components/multi-select.js +132 -0
- package/dist/components/native-select.d.ts +37 -13
- package/dist/components/native-select.d.ts.map +1 -1
- package/dist/components/native-select.js +27 -11
- package/dist/components/notice-banner.d.ts +17 -10
- package/dist/components/notice-banner.d.ts.map +1 -1
- package/dist/components/notice-banner.js +12 -11
- package/dist/components/numbered-steps.d.ts +10 -4
- package/dist/components/numbered-steps.d.ts.map +1 -1
- package/dist/components/numbered-steps.js +9 -7
- package/dist/components/object-page.d.ts +40 -14
- package/dist/components/object-page.d.ts.map +1 -1
- package/dist/components/object-page.js +12 -10
- package/dist/components/object-workspace.d.ts +29 -10
- package/dist/components/object-workspace.d.ts.map +1 -1
- package/dist/components/object-workspace.js +18 -8
- package/dist/components/overview-page.d.ts +2 -2
- package/dist/components/overview-page.d.ts.map +1 -1
- package/dist/components/overview-page.js +8 -7
- package/dist/components/page-actions.d.ts +28 -8
- package/dist/components/page-actions.d.ts.map +1 -1
- package/dist/components/page-actions.js +22 -25
- package/dist/components/page-header.d.ts +11 -4
- package/dist/components/page-header.d.ts.map +1 -1
- package/dist/components/page-header.js +10 -5
- package/dist/components/pending-label.d.ts +6 -5
- package/dist/components/pending-label.d.ts.map +1 -1
- package/dist/components/pending-label.js +14 -6
- package/dist/components/picture-label.d.ts +2 -2
- package/dist/components/picture-label.d.ts.map +1 -1
- package/dist/components/picture-label.js +3 -3
- package/dist/components/portal-sidebar-frame.d.ts +9 -21
- package/dist/components/portal-sidebar-frame.d.ts.map +1 -1
- package/dist/components/portal-sidebar-frame.js +13 -27
- package/dist/components/progress-checklist.d.ts +46 -0
- package/dist/components/progress-checklist.d.ts.map +1 -0
- package/dist/components/progress-checklist.js +46 -0
- package/dist/components/progress.d.ts +48 -8
- package/dist/components/progress.d.ts.map +1 -1
- package/dist/components/progress.js +92 -16
- package/dist/components/prose.d.ts +19 -0
- package/dist/components/prose.d.ts.map +1 -0
- package/dist/components/prose.js +29 -0
- package/dist/components/radio-group.d.ts +51 -12
- package/dist/components/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group.js +42 -12
- package/dist/components/reading-column.js +1 -1
- package/dist/components/record-identity.d.ts +6 -5
- package/dist/components/record-identity.d.ts.map +1 -1
- package/dist/components/record-identity.js +12 -3
- package/dist/components/record-list.d.ts +117 -27
- package/dist/components/record-list.d.ts.map +1 -1
- package/dist/components/record-list.js +185 -55
- package/dist/components/record-time.d.ts +20 -7
- package/dist/components/record-time.d.ts.map +1 -1
- package/dist/components/record-time.js +38 -19
- package/dist/components/resizable.d.ts +7 -5
- package/dist/components/resizable.d.ts.map +1 -1
- package/dist/components/resizable.js +6 -6
- package/dist/components/scope-switcher.d.ts +2 -0
- package/dist/components/scope-switcher.d.ts.map +1 -1
- package/dist/components/scope-switcher.js +2 -2
- package/dist/components/scroll-area.d.ts +47 -11
- package/dist/components/scroll-area.d.ts.map +1 -1
- package/dist/components/scroll-area.js +72 -14
- package/dist/components/segmented-control.d.ts +82 -0
- package/dist/components/segmented-control.d.ts.map +1 -0
- package/dist/components/segmented-control.js +90 -0
- package/dist/components/select.d.ts +55 -15
- package/dist/components/select.d.ts.map +1 -1
- package/dist/components/select.js +62 -19
- package/dist/components/separator.d.ts +12 -5
- package/dist/components/separator.d.ts.map +1 -1
- package/dist/components/separator.js +11 -6
- package/dist/components/settings-facts.d.ts +34 -14
- package/dist/components/settings-facts.d.ts.map +1 -1
- package/dist/components/settings-facts.js +21 -12
- package/dist/components/settings-page.d.ts +4 -4
- package/dist/components/settings-page.js +5 -5
- package/dist/components/settings-section.d.ts +160 -34
- package/dist/components/settings-section.d.ts.map +1 -1
- package/dist/components/settings-section.js +92 -39
- package/dist/components/sheet.d.ts +47 -16
- package/dist/components/sheet.d.ts.map +1 -1
- package/dist/components/sheet.js +40 -19
- package/dist/components/sidebar-sections.d.ts +16 -12
- package/dist/components/sidebar-sections.d.ts.map +1 -1
- package/dist/components/sidebar-sections.js +30 -15
- package/dist/components/sidebar.d.ts +117 -21
- package/dist/components/sidebar.d.ts.map +1 -1
- package/dist/components/sidebar.js +180 -55
- package/dist/components/skeleton.d.ts +54 -8
- package/dist/components/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton.js +44 -9
- package/dist/components/slider.d.ts +53 -11
- package/dist/components/slider.d.ts.map +1 -1
- package/dist/components/slider.js +71 -17
- package/dist/components/snippet.d.ts +57 -0
- package/dist/components/snippet.d.ts.map +1 -0
- package/dist/components/snippet.js +60 -0
- package/dist/components/sonner.d.ts +13 -14
- package/dist/components/sonner.d.ts.map +1 -1
- package/dist/components/sonner.js +25 -22
- package/dist/components/status-badge.d.ts +37 -11
- package/dist/components/status-badge.d.ts.map +1 -1
- package/dist/components/status-badge.js +63 -15
- package/dist/components/status-dot.d.ts +42 -11
- package/dist/components/status-dot.d.ts.map +1 -1
- package/dist/components/status-dot.js +40 -11
- package/dist/components/switch.d.ts +43 -12
- package/dist/components/switch.d.ts.map +1 -1
- package/dist/components/switch.js +42 -12
- package/dist/components/table-card.d.ts +21 -12
- package/dist/components/table-card.d.ts.map +1 -1
- package/dist/components/table-card.js +17 -9
- package/dist/components/table-layouts.d.ts +40 -8
- package/dist/components/table-layouts.d.ts.map +1 -1
- package/dist/components/table-layouts.js +52 -8
- package/dist/components/table-value.d.ts +4 -3
- package/dist/components/table-value.d.ts.map +1 -1
- package/dist/components/table-value.js +6 -5
- package/dist/components/table.d.ts +62 -25
- package/dist/components/table.d.ts.map +1 -1
- package/dist/components/table.js +62 -26
- package/dist/components/tabs.d.ts +86 -17
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +93 -22
- package/dist/components/text-link.d.ts +4 -1
- package/dist/components/text-link.d.ts.map +1 -1
- package/dist/components/text-link.js +4 -1
- package/dist/components/text-with-copy-button.d.ts +30 -0
- package/dist/components/text-with-copy-button.d.ts.map +1 -0
- package/dist/components/text-with-copy-button.js +32 -0
- package/dist/components/textarea.d.ts +40 -10
- package/dist/components/textarea.d.ts.map +1 -1
- package/dist/components/textarea.js +50 -11
- package/dist/components/theme-mode-switcher.d.ts +18 -1
- package/dist/components/theme-mode-switcher.d.ts.map +1 -1
- package/dist/components/theme-mode-switcher.js +20 -2
- package/dist/components/toggle-group.d.ts +28 -8
- package/dist/components/toggle-group.d.ts.map +1 -1
- package/dist/components/toggle-group.js +12 -6
- package/dist/components/toggle.d.ts +6 -3
- package/dist/components/toggle.d.ts.map +1 -1
- package/dist/components/toggle.js +10 -7
- package/dist/components/tooltip.d.ts +43 -12
- package/dist/components/tooltip.d.ts.map +1 -1
- package/dist/components/tooltip.js +45 -16
- package/dist/components/trend-badge.js +1 -1
- package/dist/components/update-card.js +1 -1
- package/dist/eslint/index.js +82 -0
- package/dist/eslint/rules/badge-is-static-label.js +93 -0
- package/dist/eslint/rules/button-icon-slot.js +102 -0
- package/dist/eslint/rules/button-link-for-navigation.js +146 -0
- package/dist/eslint/rules/button-no-aria-label-with-text.js +75 -0
- package/dist/eslint/rules/button-type-roles-only-in-buttons.js +83 -0
- package/dist/eslint/rules/choice-control-has-a-name.js +98 -0
- package/dist/eslint/rules/choice-group-in-fieldset.js +86 -0
- package/dist/eslint/rules/command-shortcut-single-owner.js +118 -0
- package/dist/eslint/rules/confirm-dialog-words.js +63 -0
- package/dist/eslint/rules/data-table-one-unsized-column.js +96 -0
- package/dist/eslint/rules/destructive-action-placement.js +69 -0
- package/dist/eslint/rules/disabled-choice-says-why.js +71 -0
- package/dist/eslint/rules/ellipsis-opens-a-dialog.js +110 -0
- package/dist/eslint/rules/input-group-owners.js +155 -0
- package/dist/eslint/rules/kbd-children-no-modifier-text.js +128 -0
- package/dist/eslint/rules/literal-text.js +41 -0
- package/dist/eslint/rules/middle-truncate-placement.js +69 -0
- package/dist/eslint/rules/no-bare-button-label.js +55 -0
- package/dist/eslint/rules/no-control-in-read-only-surface.js +106 -0
- package/dist/eslint/rules/no-hand-built-busy.js +104 -0
- package/dist/eslint/rules/no-hand-built-theme-picker.js +144 -0
- package/dist/eslint/rules/no-hand-built-tile.js +41 -0
- package/dist/eslint/rules/no-hand-formatted-date.js +87 -0
- package/dist/eslint/rules/no-hand-stacked-avatars.js +67 -0
- package/dist/eslint/rules/no-nested-collapse.js +60 -0
- package/dist/eslint/rules/no-search-in-form.js +47 -0
- package/dist/eslint/rules/no-shadcn-appearance-override.js +2 -16
- package/dist/eslint/rules/no-shell-prompt-in-snippet.js +74 -0
- package/dist/eslint/rules/no-stock-error-words.js +56 -0
- package/dist/eslint/rules/no-tooltip-around-labelled-field.js +72 -0
- package/dist/eslint/rules/no-weight-class-on-strong-in-type-role.js +57 -0
- package/dist/eslint/rules/one-submenu-level.js +43 -0
- package/dist/eslint/rules/one-toast-per-flow.js +91 -0
- package/dist/eslint/rules/option-count.js +167 -0
- package/dist/eslint/rules/page-command-link-not-render.js +43 -0
- package/dist/eslint/rules/progress-needs-name.js +57 -0
- package/dist/eslint/rules/settings-limit-in-footer.js +94 -0
- package/dist/eslint/rules/skeleton-in-region.js +80 -0
- package/dist/eslint/rules/sortable-heading-uses-sort.js +79 -0
- package/dist/eslint/rules/table-cell-inset-owner.js +107 -0
- package/dist/eslint/rules/tabs-selection-is-controlled.js +47 -0
- package/dist/eslint/rules/tooltip-only-arrow.js +38 -0
- package/dist/eslint/rules/tooltip-trigger-accessible-name.js +114 -0
- package/dist/eslint/strict-design-system.js +21 -7
- package/dist/index.d.ts +13 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -13
- package/dist/internal/assistant-ui/attachment.d.ts.map +1 -1
- package/dist/internal/assistant-ui/attachment.js +2 -2
- package/dist/internal/assistant-ui/reasoning.d.ts +1 -1
- package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -1
- package/dist/internal/assistant-ui/tool-fallback.js +1 -1
- package/dist/internal/assistant-ui/tool-group.d.ts +1 -1
- package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -1
- package/dist/internal/assistant-ui/tooltip-icon-button.d.ts +2 -3
- package/dist/internal/assistant-ui/tooltip-icon-button.d.ts.map +1 -1
- package/dist/internal/assistant-ui/tooltip-icon-button.js +1 -1
- package/dist/internal/catalog-list.js +2 -2
- package/dist/internal/collection-note.d.ts +23 -0
- package/dist/internal/collection-note.d.ts.map +1 -0
- package/dist/internal/collection-note.js +17 -0
- package/dist/internal/collection-rail.d.ts +57 -0
- package/dist/internal/collection-rail.d.ts.map +1 -0
- package/dist/internal/collection-rail.js +33 -0
- package/dist/internal/company-logo.d.ts +18 -0
- package/dist/internal/company-logo.d.ts.map +1 -0
- package/dist/internal/company-logo.js +14 -0
- package/dist/internal/control-name.d.ts +12 -0
- package/dist/internal/control-name.d.ts.map +1 -0
- package/dist/internal/control-name.js +1 -0
- package/dist/internal/diff-line.d.ts +9 -0
- package/dist/internal/diff-line.d.ts.map +1 -0
- package/dist/internal/diff-line.js +8 -0
- package/dist/internal/empty.d.ts +8 -4
- package/dist/internal/empty.d.ts.map +1 -1
- package/dist/internal/empty.js +14 -8
- package/dist/internal/field-frame.d.ts +33 -0
- package/dist/internal/field-frame.d.ts.map +1 -0
- package/dist/internal/field-frame.js +20 -0
- package/dist/internal/final-focus.d.ts +8 -0
- package/dist/internal/final-focus.d.ts.map +1 -0
- package/dist/internal/final-focus.js +10 -0
- package/dist/internal/footer-strip.d.ts.map +1 -1
- package/dist/internal/footer-strip.js +3 -1
- package/dist/internal/form-submit.d.ts +9 -5
- package/dist/internal/form-submit.d.ts.map +1 -1
- package/dist/internal/form-submit.js +31 -2
- package/dist/internal/input-box.d.ts +26 -0
- package/dist/internal/input-box.d.ts.map +1 -0
- package/dist/internal/input-box.js +59 -0
- package/dist/internal/menu-surface.d.ts +10 -3
- package/dist/internal/menu-surface.d.ts.map +1 -1
- package/dist/internal/menu-surface.js +10 -3
- package/dist/internal/notice.d.ts +25 -0
- package/dist/internal/notice.d.ts.map +1 -0
- package/dist/internal/notice.js +33 -0
- package/dist/internal/overlay-stem.d.ts +5 -0
- package/dist/internal/overlay-stem.d.ts.map +1 -0
- package/dist/internal/overlay-stem.js +7 -0
- package/dist/internal/phone-sheet.d.ts +4 -0
- package/dist/internal/phone-sheet.d.ts.map +1 -0
- package/dist/internal/phone-sheet.js +2 -0
- package/dist/internal/present-content.d.ts +3 -0
- package/dist/internal/present-content.d.ts.map +1 -0
- package/dist/internal/present-content.js +1 -0
- package/dist/internal/record-menu-items.d.ts +4 -3
- package/dist/internal/record-menu-items.d.ts.map +1 -1
- package/dist/internal/record-menu-items.js +21 -6
- package/dist/internal/settings-save.d.ts +9 -2
- package/dist/internal/settings-save.d.ts.map +1 -1
- package/dist/internal/settings-save.js +9 -6
- package/dist/internal/table-compact-line.d.ts +38 -0
- package/dist/internal/table-compact-line.d.ts.map +1 -0
- package/dist/internal/table-compact-line.js +35 -0
- package/dist/internal/title-when-cut.d.ts +8 -0
- package/dist/internal/title-when-cut.d.ts.map +1 -0
- package/dist/internal/title-when-cut.js +22 -0
- package/dist/internal/unsaved-guard.d.ts +18 -0
- package/dist/internal/unsaved-guard.d.ts.map +1 -0
- package/dist/internal/unsaved-guard.js +31 -0
- package/dist/lib/merge-tokens.generated.js +2 -2
- package/dist/showcase/foundations.d.ts.map +1 -1
- package/dist/showcase/foundations.js +10 -2
- package/dist/showcase/specimens/actions.d.ts +2 -0
- package/dist/showcase/specimens/actions.d.ts.map +1 -1
- package/dist/showcase/specimens/actions.js +30 -5
- package/dist/showcase/specimens/charts.d.ts.map +1 -1
- package/dist/showcase/specimens/charts.js +22 -13
- package/dist/showcase/specimens/choices.d.ts +14 -3
- package/dist/showcase/specimens/choices.d.ts.map +1 -1
- package/dist/showcase/specimens/choices.js +93 -13
- package/dist/showcase/specimens/compositions.d.ts.map +1 -1
- package/dist/showcase/specimens/compositions.js +136 -23
- package/dist/showcase/specimens/data.d.ts +12 -7
- package/dist/showcase/specimens/data.d.ts.map +1 -1
- package/dist/showcase/specimens/data.js +139 -35
- package/dist/showcase/specimens/feedback.d.ts +2 -0
- package/dist/showcase/specimens/feedback.d.ts.map +1 -1
- package/dist/showcase/specimens/feedback.js +39 -15
- package/dist/showcase/specimens/index.d.ts +20 -12
- package/dist/showcase/specimens/index.d.ts.map +1 -1
- package/dist/showcase/specimens/inputs.d.ts +4 -2
- package/dist/showcase/specimens/inputs.d.ts.map +1 -1
- package/dist/showcase/specimens/inputs.js +62 -19
- package/dist/showcase/specimens/menus.d.ts +0 -1
- package/dist/showcase/specimens/menus.d.ts.map +1 -1
- package/dist/showcase/specimens/menus.js +47 -17
- package/dist/showcase/specimens/navigation.d.ts +6 -4
- package/dist/showcase/specimens/navigation.d.ts.map +1 -1
- package/dist/showcase/specimens/navigation.js +61 -32
- package/dist/showcase/specimens/other.d.ts +1 -3
- package/dist/showcase/specimens/other.d.ts.map +1 -1
- package/dist/showcase/specimens/other.js +17 -13
- package/dist/showcase/specimens/status.d.ts +4 -1
- package/dist/showcase/specimens/status.d.ts.map +1 -1
- package/dist/showcase/specimens/status.js +64 -11
- package/dist/showcase/usage.generated.d.ts +1 -1
- package/dist/showcase/usage.generated.d.ts.map +1 -1
- package/dist/showcase/usage.generated.js +632 -544
- package/dist/standalone/index.js +1 -1
- package/dist/styles/components.css +13 -13
- package/dist/styles/globals.css +25 -0
- package/package.json +2 -3
- package/dist/components/approval-row.d.ts +0 -34
- package/dist/components/approval-row.d.ts.map +0 -1
- package/dist/components/approval-row.js +0 -27
- package/dist/components/channel-view.d.ts +0 -112
- package/dist/components/channel-view.d.ts.map +0 -1
- package/dist/components/channel-view.js +0 -84
- package/dist/components/dashboard-shell.d.ts +0 -51
- package/dist/components/dashboard-shell.d.ts.map +0 -1
- package/dist/components/dashboard-shell.js +0 -89
- package/dist/components/direction.d.ts +0 -2
- package/dist/components/direction.d.ts.map +0 -1
- package/dist/components/direction.js +0 -1
- package/dist/components/expandable-block.d.ts +0 -20
- package/dist/components/expandable-block.d.ts.map +0 -1
- package/dist/components/expandable-block.js +0 -32
- package/dist/components/form.d.ts +0 -42
- package/dist/components/form.d.ts.map +0 -1
- package/dist/components/form.js +0 -91
- package/dist/components/label-system.d.ts +0 -17
- package/dist/components/label-system.d.ts.map +0 -1
- package/dist/components/label-system.js +0 -21
- package/dist/components/memory-item.d.ts +0 -21
- package/dist/components/memory-item.d.ts.map +0 -1
- package/dist/components/memory-item.js +0 -18
- package/dist/components/menubar.d.ts +0 -43
- package/dist/components/menubar.d.ts.map +0 -1
- package/dist/components/menubar.js +0 -69
- package/dist/components/navigation-menu.d.ts +0 -26
- package/dist/components/navigation-menu.d.ts.map +0 -1
- package/dist/components/navigation-menu.js +0 -45
- package/dist/components/pagination.d.ts +0 -33
- package/dist/components/pagination.d.ts.map +0 -1
- package/dist/components/pagination.js +0 -41
- package/dist/components/plugin-slot-boundary.d.ts +0 -42
- package/dist/components/plugin-slot-boundary.d.ts.map +0 -1
- package/dist/components/plugin-slot-boundary.js +0 -41
- package/dist/components/status-row.d.ts +0 -32
- package/dist/components/status-row.d.ts.map +0 -1
- package/dist/components/status-row.js +0 -35
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx,
|
|
3
|
-
import { Mail, Plus, Puzzle, Wrench } from "lucide-react";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Mail, Plus, Puzzle, RefreshCw, Wrench } from "lucide-react";
|
|
4
4
|
import { useState } from "react";
|
|
5
5
|
import { ActivityFeed } from "../../components/activity-feed.js";
|
|
6
|
+
import { AgentCard } from "../../components/agent-card.js";
|
|
6
7
|
import { AgentOrb } from "../../components/agent-orb.js";
|
|
7
8
|
import { AgentProfileCard } from "../../components/agent-profile.js";
|
|
8
9
|
import { BrandWordmark } from "../../components/brand.js";
|
|
@@ -17,7 +18,6 @@ import { EntryAction, EntryActions, EntryMessage, EntryScene } from "../../compo
|
|
|
17
18
|
import { FormDialog, FormDialogForm } from "../../components/form-dialog.js";
|
|
18
19
|
import { FormDrawer, FormDrawerBody, FormDrawerFooter } from "../../components/form-drawer.js";
|
|
19
20
|
import { Input } from "../../components/input.js";
|
|
20
|
-
import { Label } from "../../components/label.js";
|
|
21
21
|
import { LibraryShelf } from "../../components/library-shelf.js";
|
|
22
22
|
import { NadiaPresence } from "../../components/nadia-presence.js";
|
|
23
23
|
import { ObjectPage } from "../../components/object-page.js";
|
|
@@ -37,10 +37,12 @@ const FILTER_COPY = {
|
|
|
37
37
|
searchFields: "Find a filter",
|
|
38
38
|
searchValues: "Find a value",
|
|
39
39
|
empty: "Nothing matches",
|
|
40
|
+
results: (count) => `${count} results`,
|
|
40
41
|
back: "Back to filters",
|
|
41
42
|
remove: "Remove filter",
|
|
42
43
|
};
|
|
43
44
|
const MAILBOX_LIST = {
|
|
45
|
+
empty: { kind: "nothingYet", message: "No mailboxes yet." },
|
|
44
46
|
getId: (mailbox) => mailbox.id,
|
|
45
47
|
name: (mailbox) => ({
|
|
46
48
|
name: mailbox.address,
|
|
@@ -50,6 +52,7 @@ const MAILBOX_LIST = {
|
|
|
50
52
|
status: {
|
|
51
53
|
label: "Status",
|
|
52
54
|
of: (mailbox) => mailbox.status === "failed" ? { label: "Can't sign in", tone: "danger" } : null,
|
|
55
|
+
size: 150,
|
|
53
56
|
},
|
|
54
57
|
menu: (mailbox) => ({ label: `More for ${mailbox.address}`, commands: RECORD_COMMANDS }),
|
|
55
58
|
commandsHeader: "Actions",
|
|
@@ -83,7 +86,12 @@ function useMailboxFilter() {
|
|
|
83
86
|
(status === "" || mailbox.status === status));
|
|
84
87
|
return {
|
|
85
88
|
records,
|
|
86
|
-
search: {
|
|
89
|
+
search: {
|
|
90
|
+
label: "Find a mailbox",
|
|
91
|
+
clearLabel: "Clear search",
|
|
92
|
+
value: search,
|
|
93
|
+
onValueChange: setSearch,
|
|
94
|
+
},
|
|
87
95
|
filters: {
|
|
88
96
|
facets: [
|
|
89
97
|
{
|
|
@@ -132,7 +140,12 @@ function AgentProfileCardSpecimen() {
|
|
|
132
140
|
function CatalogDrawerSpecimen() {
|
|
133
141
|
const [open, setOpen] = useState(false);
|
|
134
142
|
const [search, setSearch] = useState("");
|
|
135
|
-
return (_jsxs(_Fragment, { children: [
|
|
143
|
+
return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: () => setOpen(true), prefix: _jsx(Plus, { "aria-hidden": "true" }), variant: "outline", children: "Add skill" }), _jsx(CatalogDrawer, { closeLabel: "Close", done: "Done", empty: { kind: "nothingYet", message: "No skill to add yet." }, loadingLabel: "Loading skills", onOpenChange: setOpen, open: open, search: {
|
|
144
|
+
label: "Find a skill",
|
|
145
|
+
clearLabel: "Clear search",
|
|
146
|
+
value: search,
|
|
147
|
+
onValueChange: setSearch,
|
|
148
|
+
}, sections: CATALOG, title: "Add a skill" })] }));
|
|
136
149
|
}
|
|
137
150
|
function CollectionFiltersSpecimen() {
|
|
138
151
|
const { filters } = useMailboxFilter();
|
|
@@ -153,6 +166,33 @@ function CollectionPageSpecimen() {
|
|
|
153
166
|
}, filters: filters, footer: { count: `${records.length} mailboxes` }, label: "Mailboxes", noMatch: {
|
|
154
167
|
message: "No mailbox matches.",
|
|
155
168
|
clear: { label: "Clear search", onClick: () => search.onValueChange("") },
|
|
169
|
+
}, rail: {
|
|
170
|
+
label: "About your mailboxes",
|
|
171
|
+
sections: [
|
|
172
|
+
{
|
|
173
|
+
id: "attention",
|
|
174
|
+
title: "Needs attention",
|
|
175
|
+
items: MAILBOXES.filter((mailbox) => mailbox.status === "failed").map((mailbox) => ({
|
|
176
|
+
id: mailbox.id,
|
|
177
|
+
mark: { kind: "record", icon: Mail },
|
|
178
|
+
title: mailbox.address,
|
|
179
|
+
detail: "Can't sign in since yesterday",
|
|
180
|
+
href: "#",
|
|
181
|
+
})),
|
|
182
|
+
empty: { kind: "cleared", message: "Every mailbox signs in." },
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
id: "figures",
|
|
186
|
+
title: "This month",
|
|
187
|
+
summary: "October",
|
|
188
|
+
action: { label: "Billing", onClick: nothing },
|
|
189
|
+
items: [
|
|
190
|
+
{ id: "read", title: "Messages read", value: "1,284" },
|
|
191
|
+
{ id: "sent", title: "Messages sent", value: "312" },
|
|
192
|
+
],
|
|
193
|
+
empty: { kind: "nothingYet", message: "Nothing read this month." },
|
|
194
|
+
},
|
|
195
|
+
],
|
|
156
196
|
}, records: records, search: search, title: "Mailboxes" }));
|
|
157
197
|
}
|
|
158
198
|
function CollectionToolbarSpecimen() {
|
|
@@ -160,19 +200,35 @@ function CollectionToolbarSpecimen() {
|
|
|
160
200
|
return (_jsx(CollectionToolbar, { controls: _jsx(CollectionFilters, { ...filters }), label: "Mailbox tools", search: _jsx(CollectionSearch, { ...search }), surface: "plain" }));
|
|
161
201
|
}
|
|
162
202
|
function ConfirmDialogSpecimen() {
|
|
163
|
-
const [open, setOpen] = useState(
|
|
164
|
-
|
|
203
|
+
const [open, setOpen] = useState(null);
|
|
204
|
+
const close = () => setOpen(null);
|
|
205
|
+
return (_jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { onClick: () => setOpen("reversible"), variant: "outline", children: "Remove mailbox" }), _jsx(Button, { onClick: () => setOpen("typed"), variant: "outline", children: "Remove mailbox, typed" }), _jsx(ConfirmDialog, { cancelLabel: "Cancel", confirmLabel: "Remove mailbox", confirmPendingLabel: "Removing mailbox", description: "Agents stop reading and sending from this address.", destructive: true, onCancel: close, onConfirm: close, open: open === "reversible", title: "Remove pec@acme.it" }), _jsx(ConfirmDialog, { cancelLabel: "Cancel", confirmLabel: "Remove mailbox", confirmPendingLabel: "Removing mailbox", description: "Agents stop reading and sending from this address.", destructive: true, irreversible: "Removing pec@acme.it cannot be undone.", onCancel: close, onConfirm: close, open: open === "typed", title: "Remove pec@acme.it", verify: {
|
|
206
|
+
phrase: "pec@acme.it",
|
|
207
|
+
prompt: "To confirm, type the mailbox address pec@acme.it",
|
|
208
|
+
} })] }));
|
|
165
209
|
}
|
|
166
210
|
function EntrySceneSpecimen() {
|
|
167
211
|
const art = useEmptyArt();
|
|
168
212
|
return (_jsx("div", { className: "max-w-3xl overflow-hidden rounded-md", children: _jsxs(EntryScene, { picture: _jsx("img", { alt: "", className: "size-full object-cover", src: art.agents }), presence: _jsx(NadiaPresence, { label: "Nadia is ready", reveal: 1, state: "ready" }), title: "Nadia is ready", wordmark: _jsx(BrandWordmark, {}), children: [_jsx(EntryMessage, { children: "Sign in to bring your Agents to this computer." }), _jsx(EntryActions, { children: _jsx(EntryAction, { children: "Sign in" }) })] }) }));
|
|
169
213
|
}
|
|
170
214
|
function FormDialogSpecimen() {
|
|
171
|
-
const [open, setOpen] = useState(
|
|
172
|
-
|
|
215
|
+
const [open, setOpen] = useState(null);
|
|
216
|
+
const [discardOpen, setDiscardOpen] = useState(false);
|
|
217
|
+
const [name, setName] = useState("");
|
|
218
|
+
const close = () => {
|
|
219
|
+
setOpen(null);
|
|
220
|
+
setName("");
|
|
221
|
+
};
|
|
222
|
+
return (_jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { onClick: () => setOpen("plain"), variant: "outline", children: "New customer" }), _jsx(Button, { onClick: () => setOpen("guarded"), variant: "outline", children: "New customer, guarded" }), _jsx(FormDialog, { closeLabel: "Close", onOpenChange: (next) => setOpen(next ? "plain" : null), open: open === "plain", title: "Create customer", children: _jsx(FormDialogForm, { cancelLabel: "Cancel", onSubmit: (event) => {
|
|
173
223
|
event.preventDefault();
|
|
174
|
-
|
|
175
|
-
}, submit: { label: "Create customer", pendingLabel: "Creating customer" }, children:
|
|
224
|
+
close();
|
|
225
|
+
}, submit: { label: "Create customer", pendingLabel: "Creating customer" }, children: _jsx(Input, { id: "showcase-customer", label: "Company name", placeholder: "Bizeta Arredamenti" }) }) }), _jsx(FormDialog, { closeLabel: "Close", onOpenChange: (next) => setOpen(next ? "guarded" : null), open: open === "guarded", title: "Create customer", unsaved: { dirty: name !== "", onDismissBlocked: () => setDiscardOpen(true) }, children: _jsx(FormDialogForm, { cancelLabel: "Cancel", onSubmit: (event) => {
|
|
226
|
+
event.preventDefault();
|
|
227
|
+
close();
|
|
228
|
+
}, submit: { label: "Create customer", pendingLabel: "Creating customer" }, children: _jsx(Input, { id: "showcase-customer-guarded", label: "Company name", onChange: (event) => setName(event.target.value), placeholder: "Bizeta Arredamenti", value: name }) }) }), _jsx(ConfirmDialog, { cancelLabel: "Keep editing", confirmLabel: "Discard changes", description: "The company name you typed is not saved.", onCancel: () => setDiscardOpen(false), onConfirm: () => {
|
|
229
|
+
setDiscardOpen(false);
|
|
230
|
+
close();
|
|
231
|
+
}, open: discardOpen, title: "Discard the new customer" })] }));
|
|
176
232
|
}
|
|
177
233
|
function FormDrawerSpecimen() {
|
|
178
234
|
const [open, setOpen] = useState(false);
|
|
@@ -181,12 +237,37 @@ function FormDrawerSpecimen() {
|
|
|
181
237
|
function LibraryShelfSpecimen() {
|
|
182
238
|
const art = useEmptyArt();
|
|
183
239
|
const [search, setSearch] = useState("");
|
|
184
|
-
|
|
240
|
+
const templates = [
|
|
241
|
+
{
|
|
242
|
+
name: "Acme Quotes",
|
|
243
|
+
job: "Writes quotes from the price list",
|
|
244
|
+
form: "orbit",
|
|
245
|
+
meta: "3 skills · v1.2.0",
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
name: "Front desk",
|
|
249
|
+
job: "Answers the phone and books appointments",
|
|
250
|
+
form: "globe",
|
|
251
|
+
meta: "5 skills · 2 tasks · v2.0.1",
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
name: "Invoices",
|
|
255
|
+
job: "Checks e-invoices against orders before they are paid",
|
|
256
|
+
form: "ribbon",
|
|
257
|
+
meta: "4 skills · v1.0.0",
|
|
258
|
+
},
|
|
259
|
+
];
|
|
260
|
+
return (_jsx(LibraryShelf, { empty: {
|
|
185
261
|
kind: "firstUse",
|
|
186
|
-
title: "No
|
|
187
|
-
description: "
|
|
188
|
-
picture: art.
|
|
189
|
-
}, loadingLabel: "Loading
|
|
262
|
+
title: "No Agent templates yet",
|
|
263
|
+
description: "Agent templates appear here once published.",
|
|
264
|
+
picture: art.library,
|
|
265
|
+
}, loadingLabel: "Loading Agent templates", search: {
|
|
266
|
+
label: "Search Agent templates",
|
|
267
|
+
clearLabel: "Clear search",
|
|
268
|
+
value: search,
|
|
269
|
+
onValueChange: setSearch,
|
|
270
|
+
}, templates: templates.map((template) => (_jsx(AgentCard, { action: _jsx(Button, { prefix: _jsx(Plus, {}), children: "Create agent" }), job: template.job, meta: template.meta, name: template.name, visual: _jsx(AgentOrb, { color: COBALTO, decorative: true, form: template.form, size: 96 }) }, template.name))) }));
|
|
190
271
|
}
|
|
191
272
|
function OverviewPageSpecimen() {
|
|
192
273
|
return (_jsx(OverviewPage, { exceptions: _jsx(RecordList, { ...MAILBOX_LIST, heading: { title: "Needs attention", meta: "1 of 3 mailboxes" }, label: "Needs attention", records: MAILBOXES.filter((mailbox) => mailbox.status === "failed") }), figures: [
|
|
@@ -229,9 +310,9 @@ function RecordSheetSpecimen() {
|
|
|
229
310
|
}
|
|
230
311
|
function RowEditFormSpecimen() {
|
|
231
312
|
const [name, setName] = useState("Invoices");
|
|
232
|
-
return (_jsx("div", { className: "max-w-lg rounded-md border border-border", children: _jsx(RowEditForm, { cancelLabel: "Cancel", hint: "Agents see the new name at once.", onCancel: () => setName("Invoices"), onSubmit: (event) => event.preventDefault(), submit: { label: "Save", disabled: name === "Invoices" }, children:
|
|
313
|
+
return (_jsx("div", { className: "max-w-lg rounded-md border border-border", children: _jsx(RowEditForm, { cancelLabel: "Cancel", hint: "Agents see the new name at once.", onCancel: () => setName("Invoices"), onSubmit: (event) => event.preventDefault(), submit: { label: "Save", disabled: name === "Invoices" }, children: _jsx(Input, { id: "showcase-row-name", label: "Name", onChange: (event) => setName(event.target.value), value: name }) }) }));
|
|
233
314
|
}
|
|
234
|
-
function
|
|
315
|
+
function SenderSection() {
|
|
235
316
|
return (_jsx(SettingsSection, { description: "The name and address your Customers read on every message.", save: {
|
|
236
317
|
action: async () => null,
|
|
237
318
|
label: "Save",
|
|
@@ -240,6 +321,30 @@ function SettingsSectionSpecimen() {
|
|
|
240
321
|
hint: "Please use 32 characters at maximum.",
|
|
241
322
|
}, title: "Sender", children: _jsx(SettingsField, { id: "showcase-sender-name", label: "Sender name", children: ({ controlProps }) => (_jsx(Input, { ...controlProps, defaultValue: "Acme Quotes", name: "senderName" })) }) }));
|
|
242
323
|
}
|
|
324
|
+
function SettingsSectionSpecimen() {
|
|
325
|
+
return (_jsxs(SettingsPage, { children: [_jsx(SenderSection, {}), _jsx(SettingsSection, { description: "The last payment of \u20AC 49 did not go through. Update your card to keep the Business plan.", footer: _jsx(Button, { variant: "outline", children: "Update payment method" }), title: "Payment failed", tone: "error" }), _jsx(SettingsSection, { description: "Your Pro trial ends on 30 November. Add a payment method to keep your Agents running.", footer: _jsx(Button, { variant: "outline", children: "Add payment method" }), title: "Trial ending soon", tone: "warning" }), _jsx(SettingsSection, { description: "Move this project to another team.", lockedReason: "You need additional permissions to transfer projects.", title: "Transfer project", children: _jsx(SettingsField, { id: "showcase-transfer-team", label: "New team", children: ({ controlProps }) => (_jsx(Input, { ...controlProps, defaultValue: "Rossi Ottica", name: "team" })) }) }), _jsx(SettingsSection, { description: "Invoices and receipts go to this address.", save: {
|
|
326
|
+
action: async () => null,
|
|
327
|
+
label: "Save",
|
|
328
|
+
pendingLabel: "Saving",
|
|
329
|
+
saved: () => undefined,
|
|
330
|
+
}, title: "Billing email", children: _jsx(SettingsField, { id: "showcase-billing-email", label: "Billing email", children: ({ controlProps }) => (_jsx(Input, { ...controlProps, defaultValue: "amministrazione@acme.it", name: "billingEmail", type: "email" })) }) })] }));
|
|
331
|
+
}
|
|
332
|
+
function SelectableRecordListSpecimen() {
|
|
333
|
+
const [selected, setSelected] = useState(new Set(["orders"]));
|
|
334
|
+
return (_jsx(RecordList, { ...MAILBOX_LIST, footer: { count: `${selected.size} of ${MAILBOXES.length} selected` }, label: "Mailboxes to remove", records: MAILBOXES, select: {
|
|
335
|
+
header: "Select",
|
|
336
|
+
label: (mailbox) => `Select ${mailbox.address}`,
|
|
337
|
+
checked: (mailbox) => selected.has(mailbox.id),
|
|
338
|
+
onCheckedChange: (mailbox, checked) => setSelected((current) => {
|
|
339
|
+
const next = new Set(current);
|
|
340
|
+
if (checked)
|
|
341
|
+
next.add(mailbox.id);
|
|
342
|
+
else
|
|
343
|
+
next.delete(mailbox.id);
|
|
344
|
+
return next;
|
|
345
|
+
}),
|
|
346
|
+
} }));
|
|
347
|
+
}
|
|
243
348
|
export const COMPOSITIONS = {
|
|
244
349
|
ActivityFeed: ActivityFeedSpecimen,
|
|
245
350
|
AgentProfileCard: AgentProfileCardSpecimen,
|
|
@@ -255,16 +360,24 @@ export const COMPOSITIONS = {
|
|
|
255
360
|
ObjectPage: () => (_jsx(ObjectPage, { actions: { secondary: { label: "Edit", onClick: nothing }, menu: PAGE_MENU }, description: "Optician \u00B7 partner since March 2026", facts: [
|
|
256
361
|
{ label: "Customers", value: "4" },
|
|
257
362
|
{ label: "Plan", value: "Business" },
|
|
258
|
-
], mark: { kind: "company", name: "Rossi Ottica" }, name: "Rossi Ottica", children: _jsx(ObjectSection, { title: "Company", children: _jsx(ObjectFacts, { facts: [{ label: "VAT number", value: "IT01234567890" }] }) }) })),
|
|
259
|
-
ObjectSection: () => (_jsx(ObjectSection, { action: { label: "Edit", onClick: nothing }, meta: "Changed on 2 October", title: "Billing", children: _jsx(ObjectFacts, { facts: [
|
|
260
|
-
{ label: "Billing email", value: "amministrazione@acme.it" },
|
|
363
|
+
], mark: { kind: "company", name: "Rossi Ottica" }, name: "Rossi Ottica", children: _jsx(ObjectSection, { description: "Legal details of the partner.", title: "Company", children: _jsx(ObjectFacts, { facts: [{ label: "VAT number", value: "IT01234567890" }] }) }) })),
|
|
364
|
+
ObjectSection: () => (_jsx(ObjectSection, { action: { label: "Edit", onClick: nothing }, description: "Where invoices go and which plan applies.", meta: "Changed on 2 October", title: "Billing", children: _jsx(ObjectFacts, { facts: [
|
|
365
|
+
{ label: "Billing email", value: "amministrazione@acme.it", ellipsis: true },
|
|
261
366
|
{ label: "Plan", value: "Business" },
|
|
367
|
+
{
|
|
368
|
+
label: "Reference",
|
|
369
|
+
value: "ACME-0042",
|
|
370
|
+
tooltip: "The code your Customer quotes when they write to support.",
|
|
371
|
+
},
|
|
262
372
|
] }) })),
|
|
263
373
|
OverviewPage: OverviewPageSpecimen,
|
|
264
374
|
PageHeader: () => (_jsxs(PageActionsHostProvider, { children: [_jsx(PageHeader, { title: "Customers" }), _jsx(PageActions, { primary: { label: "Invite customer", icon: _jsx(Plus, {}), onClick: nothing } })] })),
|
|
265
|
-
RecordList: () => (_jsx(RecordList, { ...MAILBOX_LIST, footer: { count: "3 mailboxes" }, label: "Mailboxes", records: MAILBOXES }))
|
|
375
|
+
RecordList: () => (_jsxs("div", { className: "grid gap-6", children: [_jsx(RecordList, { ...MAILBOX_LIST, footer: { count: "3 mailboxes" }, label: "Mailboxes", records: MAILBOXES }), _jsx(RecordList, { ...MAILBOX_LIST, label: "Mailboxes with one command", menu: (mailbox) => ({
|
|
376
|
+
label: `More for ${mailbox.address}`,
|
|
377
|
+
commands: [{ label: "Reconnect", icon: _jsx(RefreshCw, {}), onClick: nothing }],
|
|
378
|
+
}), records: MAILBOXES }), _jsx(SelectableRecordListSpecimen, {})] })),
|
|
266
379
|
RecordSheet: RecordSheetSpecimen,
|
|
267
380
|
RowEditForm: RowEditFormSpecimen,
|
|
268
|
-
SettingsPage: () => (_jsx(SettingsPage, { title: "Company settings", children: _jsx(
|
|
381
|
+
SettingsPage: () => (_jsx(SettingsPage, { title: "Company settings", children: _jsx(SenderSection, {}) })),
|
|
269
382
|
SettingsSection: SettingsSectionSpecimen,
|
|
270
383
|
};
|
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
declare function DataTableSpecimen(): import("react").JSX.Element;
|
|
2
|
+
declare function CodeBlockSpecimen(): import("react").JSX.Element;
|
|
3
|
+
declare function SnippetSpecimen(): import("react").JSX.Element;
|
|
4
|
+
declare function ItemSpecimen(): import("react").JSX.Element;
|
|
5
|
+
declare function KbdSpecimen(): import("react").JSX.Element;
|
|
6
|
+
declare function ProgressSpecimen(): import("react").JSX.Element;
|
|
2
7
|
declare function DisclosureRowSpecimen(): import("react").JSX.Element;
|
|
3
8
|
declare function UsageTable(): import("react").JSX.Element;
|
|
4
9
|
export declare const DATA: {
|
|
5
10
|
AgentCard: () => import("react").JSX.Element;
|
|
6
|
-
ApprovalRow: () => import("react").JSX.Element;
|
|
7
11
|
Card: () => import("react").JSX.Element;
|
|
8
12
|
CardRow: () => import("react").JSX.Element;
|
|
9
|
-
CodeBlock:
|
|
13
|
+
CodeBlock: typeof CodeBlockSpecimen;
|
|
10
14
|
DataTable: typeof DataTableSpecimen;
|
|
11
15
|
DiffCount: () => import("react").JSX.Element;
|
|
12
16
|
DisclosureRow: typeof DisclosureRowSpecimen;
|
|
13
17
|
FileDiff: () => import("react").JSX.Element;
|
|
14
|
-
Item:
|
|
15
|
-
Kbd:
|
|
16
|
-
|
|
18
|
+
Item: typeof ItemSpecimen;
|
|
19
|
+
Kbd: typeof KbdSpecimen;
|
|
20
|
+
MiddleTruncate: () => import("react").JSX.Element;
|
|
17
21
|
ObjectFacts: () => import("react").JSX.Element;
|
|
18
22
|
PairingCode: () => import("react").JSX.Element;
|
|
19
|
-
Progress:
|
|
23
|
+
Progress: typeof ProgressSpecimen;
|
|
20
24
|
QrCode: () => import("react").JSX.Element;
|
|
21
25
|
RecordTime: () => import("react").JSX.Element;
|
|
22
26
|
RunTimeline: () => import("react").JSX.Element;
|
|
23
27
|
SettingsFactsSection: () => import("react").JSX.Element;
|
|
24
|
-
|
|
28
|
+
Snippet: typeof SnippetSpecimen;
|
|
25
29
|
Table: typeof UsageTable;
|
|
26
30
|
TableCard: () => import("react").JSX.Element;
|
|
27
31
|
TableValue: () => import("react").JSX.Element;
|
|
32
|
+
TextWithCopyButton: () => import("react").JSX.Element;
|
|
28
33
|
UsageMeter: () => import("react").JSX.Element;
|
|
29
34
|
};
|
|
30
35
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/data.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/data.tsx"],"names":[],"mappings":"AA4HA,iBAAS,iBAAiB,gCAczB;AAsCD,iBAAS,iBAAiB,gCAkDzB;AAUD,iBAAS,eAAe,gCASvB;AAED,iBAAS,YAAY,gCAoCpB;AAED,iBAAS,WAAW,gCA6BnB;AAQD,iBAAS,gBAAgB,gCAqBxB;AAED,iBAAS,qBAAqB,gCAc7B;AAED,iBAAS,UAAU,gCAqClB;AAED,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAkNU,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { MessageCircle, RotateCw } from "lucide-react";
|
|
3
|
+
import { MessageCircle, Plus, RotateCw } from "lucide-react";
|
|
4
4
|
import { useState } from "react";
|
|
5
5
|
import { AgentCard } from "../../components/agent-card.js";
|
|
6
6
|
import { AgentOrb } from "../../components/agent-orb.js";
|
|
7
|
-
import { ApprovalRow } from "../../components/approval-row.js";
|
|
8
7
|
import { Button } from "../../components/button.js";
|
|
9
8
|
import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "../../components/card.js";
|
|
10
9
|
import { CardRow } from "../../components/card-row.js";
|
|
@@ -13,9 +12,9 @@ import { DataTable } from "../../components/data-table.js";
|
|
|
13
12
|
import { DiffCount } from "../../components/diff-count.js";
|
|
14
13
|
import { DisclosureRow } from "../../components/disclosure-row.js";
|
|
15
14
|
import { FileDiff } from "../../components/file-diff.js";
|
|
16
|
-
import { Item, ItemActions, ItemContent, ItemDescription, ItemGroup, ItemMedia, ItemTitle, } from "../../components/item.js";
|
|
17
|
-
import { Kbd
|
|
18
|
-
import {
|
|
15
|
+
import { Item, ItemActions, ItemContent, ItemDescription, ItemGroup, ItemMedia, ItemSelect, ItemTitle, } from "../../components/item.js";
|
|
16
|
+
import { Kbd } from "../../components/kbd.js";
|
|
17
|
+
import { MiddleTruncate } from "../../components/middle-truncate.js";
|
|
19
18
|
import { ObjectFacts } from "../../components/object-workspace.js";
|
|
20
19
|
import { PairingCode } from "../../components/pairing-code.js";
|
|
21
20
|
import { Progress, ProgressLabel, ProgressValue } from "../../components/progress.js";
|
|
@@ -23,13 +22,13 @@ import { QrCode } from "../../components/qr-code.js";
|
|
|
23
22
|
import { RecordTime } from "../../components/record-time.js";
|
|
24
23
|
import { RunTimeline } from "../../components/run-timeline.js";
|
|
25
24
|
import { SettingsFactsSection } from "../../components/settings-facts.js";
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from "../../components/table.js";
|
|
25
|
+
import { Snippet } from "../../components/snippet.js";
|
|
26
|
+
import { Table, TableBody, TableCell, TableCol, TableColgroup, TableFooter, TableHead, TableHeader, TableRow, } from "../../components/table.js";
|
|
29
27
|
import { TableCard } from "../../components/table-card.js";
|
|
30
28
|
import { TableValue } from "../../components/table-value.js";
|
|
29
|
+
import { TextWithCopyButton } from "../../components/text-with-copy-button.js";
|
|
31
30
|
import { UsageMeter } from "../../components/usage-meter.js";
|
|
32
|
-
import { COBALTO, MAILBOXES, NOW
|
|
31
|
+
import { COBALTO, MAILBOXES, NOW } from "../samples.js";
|
|
33
32
|
const MCP_JSON = `{
|
|
34
33
|
"mcpServers": {
|
|
35
34
|
"fatture": { "url": "https://mcp.acme.it/fatture" }
|
|
@@ -39,48 +38,152 @@ const COPY_LABELS = {
|
|
|
39
38
|
copiedLabel: "Copied",
|
|
40
39
|
copyFailedLabel: "Couldn't copy",
|
|
41
40
|
};
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
const CODE_BLOCK_LABELS = {
|
|
42
|
+
...COPY_LABELS,
|
|
43
|
+
lineLabel: (line, state) => `Line ${line}, ${state}`,
|
|
44
|
+
};
|
|
45
|
+
const SNIPPET_LABELS = {
|
|
46
|
+
...COPY_LABELS,
|
|
47
|
+
copyLabel: "Copy command",
|
|
48
|
+
};
|
|
49
|
+
const USAGE_FIGURES = [
|
|
50
|
+
{ agent: "Invoices", runs: 412, tokens: 1204330, cost: 18.4 },
|
|
51
|
+
{ agent: "Orders", runs: 198, tokens: 612904, cost: 9.12 },
|
|
52
|
+
{ agent: "Support", runs: 731, tokens: 2033118, cost: 31.75 },
|
|
46
53
|
];
|
|
54
|
+
const formatTokens = (tokens) => tokens.toLocaleString("en-US");
|
|
55
|
+
const formatCost = (cost) => `€ ${cost.toFixed(2)}`;
|
|
56
|
+
const USAGE_ROWS = USAGE_FIGURES.map((figure) => ({
|
|
57
|
+
agent: figure.agent,
|
|
58
|
+
tokens: formatTokens(figure.tokens),
|
|
59
|
+
cost: formatCost(figure.cost),
|
|
60
|
+
}));
|
|
47
61
|
const USAGE_COLUMNS = [
|
|
48
62
|
{ accessorKey: "agent", header: "Agent" },
|
|
49
|
-
{
|
|
50
|
-
|
|
63
|
+
{
|
|
64
|
+
accessorKey: "runs",
|
|
65
|
+
header: "Runs",
|
|
66
|
+
size: 96,
|
|
67
|
+
meta: { numeric: true, compact: "dropped" },
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
accessorKey: "tokens",
|
|
71
|
+
header: "Tokens",
|
|
72
|
+
size: 140,
|
|
73
|
+
cell: ({ row }) => formatTokens(row.original.tokens),
|
|
74
|
+
meta: { numeric: true },
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
accessorKey: "cost",
|
|
78
|
+
header: "Cost (€)",
|
|
79
|
+
size: 120,
|
|
80
|
+
cell: ({ row }) => formatCost(row.original.cost),
|
|
81
|
+
meta: { numeric: true },
|
|
82
|
+
},
|
|
51
83
|
];
|
|
52
84
|
function DataTableSpecimen() {
|
|
53
|
-
return (_jsx(DataTable, { columns: USAGE_COLUMNS, data: [...
|
|
85
|
+
return (_jsx(DataTable, { columns: USAGE_COLUMNS, data: [...USAGE_FIGURES], empty: { kind: "nothingYet", message: "No Agent has run this month." }, footer: "3 Agents", getRowId: (row) => row.agent, heading: { title: "Usage by Agent" }, primaryColumns: ["agent", "cost"], summary: { label: "Total", value: "€ 59.27" }, tableLabel: "Usage by Agent, this month" }));
|
|
86
|
+
}
|
|
87
|
+
const MCP_CHANGE = `{
|
|
88
|
+
"mcpServers": {
|
|
89
|
+
"fatture": { "url": "http://mcp.acme.it/fatture" }
|
|
90
|
+
"fatture": { "url": "https://mcp.acme.it/fatture" },
|
|
91
|
+
"ordini": { "url": "https://mcp.acme.it/ordini" }
|
|
92
|
+
}
|
|
93
|
+
}`;
|
|
94
|
+
const MCP_BOTH_JSON = `{
|
|
95
|
+
"mcpServers": {
|
|
96
|
+
"fatture": { "url": "https://mcp.acme.it/fatture" },
|
|
97
|
+
"ordini": { "url": "https://mcp.acme.it/ordini" }
|
|
98
|
+
}
|
|
99
|
+
}`;
|
|
100
|
+
const MCP_YAML = `mcpServers:
|
|
101
|
+
fatture:
|
|
102
|
+
url: https://mcp.acme.it/fatture
|
|
103
|
+
ordini:
|
|
104
|
+
url: https://mcp.acme.it/ordini`;
|
|
105
|
+
const MCP_TOOLS = `{
|
|
106
|
+
"allow": ["fatture", "ordini"],
|
|
107
|
+
"deny": []
|
|
108
|
+
}`;
|
|
109
|
+
const MCP_ALLOW = `{
|
|
110
|
+
"allow": ["fatture"],
|
|
111
|
+
"deny": []
|
|
112
|
+
}`;
|
|
113
|
+
const MCP_FORMATS = [
|
|
114
|
+
{ label: "JSON", value: "json" },
|
|
115
|
+
{ label: "YAML", value: "yaml" },
|
|
116
|
+
];
|
|
117
|
+
function CodeBlockSpecimen() {
|
|
118
|
+
const [format, setFormat] = useState("json");
|
|
119
|
+
return (_jsxs("div", { className: "grid max-w-lg gap-4", children: [_jsx(CodeBlock, { ...CODE_BLOCK_LABELS, code: MCP_JSON, copyLabel: "Copy mcp.json", filename: "mcp.json", label: "MCP configuration" }), _jsx(CodeBlock, { ...CODE_BLOCK_LABELS, addedLinesNumbers: [4, 5], code: MCP_CHANGE, copyLabel: "Copy config/mcp.json", filename: "config/mcp.json", highlightedLinesNumbers: [2], label: "MCP configuration, changed", removedLinesNumbers: [3] }), _jsx(CodeBlock, { ...CODE_BLOCK_LABELS, code: format === "json" ? MCP_BOTH_JSON : MCP_YAML, copyLabel: "Copy MCP configuration", label: "MCP configuration in two formats", tabs: {
|
|
120
|
+
label: "Format",
|
|
121
|
+
options: MCP_FORMATS,
|
|
122
|
+
value: format,
|
|
123
|
+
onChange: setFormat,
|
|
124
|
+
} }), _jsx(CodeBlock, { ...CODE_BLOCK_LABELS, code: MCP_TOOLS, copyLabel: "Copy tool list", label: "Tool list" }), _jsx(CodeBlock, { ...CODE_BLOCK_LABELS, code: MCP_ALLOW, copyLabel: "Copy allow list", filename: "allow.json", hideLineNumbers: true, highlightedLinesNumbers: [2], label: "Allow list, marked" })] }));
|
|
125
|
+
}
|
|
126
|
+
const CONFIG_DIGEST = "9f2c4e7a1b8d03f5c6e2a7d4b1908f3e5a6c7d21";
|
|
127
|
+
const MIDDLE_TRUNCATE_VALUES = [
|
|
128
|
+
{ label: "Branch", value: "feature/acme-quotes-price-list-import" },
|
|
129
|
+
{ label: "Path", value: "apps/portal/src/app/[lang]/(dashboard)/library/page.tsx" },
|
|
130
|
+
{ label: "Commit", value: "4f9c1e7a2b8d3065c1e4a7f9b2d8036ec5a1f7d4" },
|
|
131
|
+
];
|
|
132
|
+
function SnippetSpecimen() {
|
|
133
|
+
return (_jsxs("div", { className: "grid max-w-lg gap-4", children: [_jsx(Snippet, { ...SNIPPET_LABELS, text: "npm init next-app" }), _jsx(Snippet, { ...SNIPPET_LABELS, text: ["cd acme-quotes", "npm run dev"] }), _jsx(Snippet, { ...SNIPPET_LABELS, prompt: false, text: "https://mcp.acme.it/fatture" }), _jsx(Snippet, { ...SNIPPET_LABELS, placeholder: "Run nadia login to connect this computer", text: "" })] }));
|
|
134
|
+
}
|
|
135
|
+
function ItemSpecimen() {
|
|
136
|
+
const [selected, setSelected] = useState(false);
|
|
137
|
+
return (_jsxs(ItemGroup, { className: "max-w-lg", divided: true, children: [_jsxs(Item, { children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(MessageCircle, { "aria-hidden": "true" }) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Telegram" }), _jsx(ItemDescription, { children: "Invoices answers the sales group here." })] }), _jsx(ItemActions, { children: _jsx(Button, { size: "sm", variant: "outline", children: "Disconnect Telegram" }) })] }), _jsxs(Item, { children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(RotateCw, { "aria-hidden": "true" }) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Nadia filed 12 invoices" }), _jsx(ItemDescription, { children: "From the October statement, in the archive folder." })] })] }), _jsxs(Item, { children: [_jsx(ItemSelect, { checked: selected, label: "Select Chrome, Mac", onCheckedChange: setSelected }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Chrome, Mac" }), _jsx(ItemDescription, { children: "Signed in today at 09:14." })] })] })] }));
|
|
138
|
+
}
|
|
139
|
+
function KbdSpecimen() {
|
|
140
|
+
return (_jsxs("div", { className: "grid gap-3 text-sm", children: [_jsxs("span", { className: "flex items-center gap-2", children: ["Find", _jsx(Kbd, { meta: true, children: "K" }), _jsx(Kbd, { meta: true, shift: true, children: "K" })] }), _jsxs("span", { className: "flex items-center gap-2", children: ["Find, small", _jsx(Kbd, { meta: true, size: "sm", children: "K" }), _jsx(Kbd, { meta: true, shift: true, size: "sm", children: "K" })] }), _jsxs("span", { className: "flex items-center gap-2", children: ["Close", _jsx(Kbd, { children: "Esc" })] }), _jsxs("span", { className: "flex items-center gap-2", children: ["Previous Agent", _jsx(Kbd, { children: "ArrowUp" })] })] }));
|
|
141
|
+
}
|
|
142
|
+
const IMPORT_STOPS = [
|
|
143
|
+
{ value: 1, label: "Reading the file" },
|
|
144
|
+
{ value: 2, label: "Matching products" },
|
|
145
|
+
{ value: 3, label: "Saving the price list" },
|
|
146
|
+
];
|
|
147
|
+
function ProgressSpecimen() {
|
|
148
|
+
return (_jsxs("div", { className: "grid max-w-md gap-6", children: [_jsxs(Progress, { "aria-labelledby": "showcase-import-contacts", max: 40, value: 27, children: [_jsx(ProgressLabel, { id: "showcase-import-contacts", children: "Importing contacts" }), _jsx(ProgressValue, { children: () => "27 of 40" })] }), _jsxs(Progress, { "aria-labelledby": "showcase-import-prices", max: 3, stops: IMPORT_STOPS, value: 2, children: [_jsx(ProgressLabel, { id: "showcase-import-prices", children: "Importing the price list" }), _jsx(ProgressValue, { children: () => "Step 2 of 3 · Matching products" })] }), _jsxs(Progress, { "aria-labelledby": "showcase-invoices-filed", max: 12, tone: "success", value: 12, children: [_jsx(ProgressLabel, { id: "showcase-invoices-filed", children: "Invoices filed" }), _jsx(ProgressValue, { children: () => "12 of 12" })] }), _jsxs(Progress, { "aria-labelledby": "showcase-included-runs", max: 1000, tone: "secondary", value: 620, children: [_jsx(ProgressLabel, { id: "showcase-included-runs", children: "Included runs" }), _jsx(ProgressValue, { children: () => "620 of 1,000" })] })] }));
|
|
54
149
|
}
|
|
55
150
|
function DisclosureRowSpecimen() {
|
|
56
151
|
const [open, setOpen] = useState(false);
|
|
57
152
|
return (_jsxs("div", { className: "grid max-w-md gap-2", children: [_jsx(DisclosureRow, { onToggle: () => setOpen((value) => !value), open: open, trailing: "3 steps", children: "Read the price list" }), open ? (_jsx("p", { className: "pl-6 text-sm text-muted-foreground", children: "Opened listino-2026.xlsx, read 412 rows, kept 38 for the quote." })) : null] }));
|
|
58
153
|
}
|
|
59
154
|
function UsageTable() {
|
|
60
|
-
return (_jsxs(Table, { "aria-label": "Usage by Agent", children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { scope: "col", children: "Agent" }), _jsx(TableHead, { className: "text-right", scope: "col", children: "Tokens" }), _jsx(TableHead, { className: "text-right", scope: "col", children: "Cost (\u20AC)" })] }) }), _jsx(TableBody, { children: USAGE_ROWS.map((row) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: row.agent }), _jsx(TableCell, { className: "text-right tabular-nums", children: row.tokens }), _jsx(TableCell, { className: "text-right tabular-nums", children: row.cost })] }, row.agent))) }), _jsx(TableFooter, { children: _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Total" }), _jsx(TableCell, { className: "text-right tabular-nums", children: "3,850,352" }), _jsx(TableCell, { className: "text-right tabular-nums", children: "\u20AC 59.27" })] }) })] }));
|
|
155
|
+
return (_jsxs(Table, { "aria-label": "Usage by Agent", children: [_jsxs(TableColgroup, { children: [_jsx(TableCol, {}), _jsx(TableCol, { className: "w-36" }), _jsx(TableCol, { className: "w-32" })] }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { scope: "col", children: "Agent" }), _jsx(TableHead, { className: "text-right", scope: "col", children: "Tokens" }), _jsx(TableHead, { className: "text-right", scope: "col", children: "Cost (\u20AC)" })] }) }), _jsx(TableBody, { interactive: true, striped: true, children: USAGE_ROWS.map((row) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: row.agent }), _jsx(TableCell, { className: "text-right tabular-nums", children: row.tokens }), _jsx(TableCell, { className: "text-right tabular-nums", children: row.cost })] }, row.agent))) }), _jsx(TableFooter, { children: _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Total" }), _jsx(TableCell, { className: "text-right tabular-nums", children: "3,850,352" }), _jsx(TableCell, { className: "text-right tabular-nums", children: "\u20AC 59.27" })] }) })] }));
|
|
61
156
|
}
|
|
62
157
|
export const DATA = {
|
|
63
|
-
AgentCard: () => (_jsx("div", { className: "max-w-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
CodeBlock: () => (_jsx("div", { className: "max-w-lg", children: _jsx(CodeBlock, { ...COPY_LABELS, code: MCP_JSON, copyLabel: "Copy mcp.json", filename: "mcp.json", label: "MCP configuration", language: "JSON" }) })),
|
|
158
|
+
AgentCard: () => (_jsx("div", { className: "max-w-xs", children: _jsx(AgentCard, { action: _jsx(Button, { prefix: _jsx(Plus, {}), children: "Create agent" }), job: "Writes quotes from the price list", meta: "3 skills \u00B7 2 tasks \u00B7 v1.2.0", name: "Acme Quotes", visual: _jsx(AgentOrb, { color: COBALTO, decorative: true, form: "orbit", size: 96 }) }) })),
|
|
159
|
+
Card: () => (_jsxs("div", { className: "grid max-w-md gap-6", children: [_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Billing contact" }), _jsx(CardDescription, { children: "Who receives invoices and payment reminders." }), _jsx(CardAction, { children: _jsx(Button, { size: "sm", variant: "outline", children: "Edit" }) })] }), _jsx(CardContent, { className: "text-sm", children: "amministrazione@acme.it" }), _jsx(CardFooter, { children: "Changed on 2 October" })] }), _jsxs(Card, { surface: "raised", children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Payment method" }), _jsx(CardDescription, { children: "The card charged for Agents and extra seats." }), _jsx(CardAction, { children: _jsx(Button, { size: "sm", variant: "outline", children: "Change" }) })] }), _jsx(CardContent, { className: "text-sm", children: "Visa ending 4242" })] })] })),
|
|
160
|
+
CardRow: () => (_jsx(CardRow, { columns: 5, children: ["Runs", "Approvals", "Cost", "Tokens", "Cache hit rate"].map((title, index) => (_jsx(Card, { children: _jsxs(CardHeader, { children: [_jsx(CardTitle, { children: title }), _jsx(CardDescription, { children: index === 1 ? "A longer line shows every card keeps the tallest's height." : "—" })] }) }, title))) })),
|
|
161
|
+
CodeBlock: CodeBlockSpecimen,
|
|
68
162
|
DataTable: DataTableSpecimen,
|
|
69
163
|
DiffCount: () => (_jsxs("span", { className: "flex items-center gap-2 font-mono text-sm", children: ["quote-template.md", _jsx(DiffCount, { added: 12, removed: 3 })] })),
|
|
70
164
|
DisclosureRow: DisclosureRowSpecimen,
|
|
71
165
|
FileDiff: () => (_jsx(FileDiff, { addedLabel: "Added", after: "Payment within 30 days.\nPrices include VAT.\nValid until 31 December.", before: "Payment within 60 days.\nPrices include VAT.", className: "max-w-lg", removedLabel: "Removed", skippedLabel: (count) => `${count} unchanged lines` })),
|
|
72
|
-
Item:
|
|
73
|
-
Kbd:
|
|
74
|
-
|
|
75
|
-
ObjectFacts: () => (_jsx(ObjectFacts, { facts: [
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
166
|
+
Item: ItemSpecimen,
|
|
167
|
+
Kbd: KbdSpecimen,
|
|
168
|
+
MiddleTruncate: () => (_jsx("dl", { className: "grid gap-3 text-sm", children: MIDDLE_TRUNCATE_VALUES.map(({ label, value }) => (_jsxs("div", { className: "grid gap-1", children: [_jsx("dt", { className: "text-muted-foreground", children: label }), _jsx("dd", { className: "w-60", children: _jsx(MiddleTruncate, { className: "font-label-mono text-label-mono", value: value }) })] }, label))) })),
|
|
169
|
+
ObjectFacts: () => (_jsx("div", { className: "max-w-md", children: _jsx(ObjectFacts, { facts: [
|
|
170
|
+
{
|
|
171
|
+
label: "VAT number",
|
|
172
|
+
tooltip: "The tax number printed on every invoice.",
|
|
173
|
+
value: _jsx("span", { className: "font-mono", children: "IT01234567890" }),
|
|
174
|
+
},
|
|
175
|
+
{ label: "Partner", value: "Rossi Ottica" },
|
|
176
|
+
{
|
|
177
|
+
label: "Certified email",
|
|
178
|
+
ellipsis: true,
|
|
179
|
+
value: "amministrazione.rossiottica@pec.rossiottica.it",
|
|
180
|
+
},
|
|
181
|
+
{ label: "Address", value: "Via Roma 12, 20121 Milano", block: true },
|
|
182
|
+
] }) })),
|
|
80
183
|
PairingCode: () => _jsx(PairingCode, { code: "4821", label: "Pairing code" }),
|
|
81
|
-
Progress:
|
|
184
|
+
Progress: ProgressSpecimen,
|
|
82
185
|
QrCode: () => (_jsx(QrCode, { label: "Open Nadia on your phone", size: 128, value: "https://nadicode.com/app" })),
|
|
83
|
-
RecordTime: () => (
|
|
186
|
+
RecordTime: () => (_jsxs("div", { className: "grid gap-1 text-sm", children: [MAILBOXES.map((mailbox) => (_jsxs("span", { children: [mailbox.address, " \u00B7", " ", _jsx(RecordTime, { at: mailbox.checked, now: NOW, phrase: (when) => `Checked ${when}` })] }, mailbox.id))), _jsxs("span", { children: ["pec@acme.it \u00B7", " ", _jsx(RecordTime, { at: null, phrase: (when) => `Checked ${when}`, children: "Pending" })] })] })),
|
|
84
187
|
RunTimeline: () => (_jsx(RunTimeline, { className: "max-w-lg", steps: [
|
|
85
188
|
{
|
|
86
189
|
id: "read",
|
|
@@ -98,14 +201,15 @@ export const DATA = {
|
|
|
98
201
|
},
|
|
99
202
|
{ id: "send", label: "Step 03", title: "Send the quote", progress: "upcoming" },
|
|
100
203
|
] })),
|
|
101
|
-
SettingsFactsSection: () => (_jsx("div", { className: "max-w-lg", children: _jsx(SettingsFactsSection, { action: _jsx(Button, { variant: "outline", children: "Edit" }), facts: [
|
|
204
|
+
SettingsFactsSection: () => (_jsx("div", { className: "max-w-lg", children: _jsx(SettingsFactsSection, { action: _jsx(Button, { variant: "outline", children: "Edit" }), description: "The legal details on every invoice.", facts: [
|
|
102
205
|
{ label: "Legal name", value: "Acme S.r.l." },
|
|
103
206
|
{ label: "VAT number", value: _jsx("span", { className: "font-mono", children: "IT01234567890" }) },
|
|
104
207
|
{ label: "PEC", value: null },
|
|
105
|
-
], headingId: "showcase-company-facts", missingValueLabel: "Not set", title: "Company" }) })),
|
|
106
|
-
|
|
208
|
+
], footerHint: "Ask an owner to change these.", headingId: "showcase-company-facts", missingValueLabel: "Not set", title: "Company" }) })),
|
|
209
|
+
Snippet: SnippetSpecimen,
|
|
107
210
|
Table: UsageTable,
|
|
108
211
|
TableCard: () => (_jsx(TableCard, { footer: "3 Agents", summary: { label: "Total", value: "€ 59.27" }, title: "Usage this month", children: _jsx(UsageTable, {}) })),
|
|
109
212
|
TableValue: () => (_jsxs("dl", { className: "grid max-w-xs grid-cols-2 gap-2 text-sm", children: [_jsx("dt", { children: "Tokens" }), _jsx("dd", { children: _jsx(TableValue, { missingLabel: "Not reported", value: "1,204,330" }) }), _jsx("dt", { children: "Cost" }), _jsx("dd", { children: _jsx(TableValue, { missingLabel: "Not reported", value: null }) }), _jsx("dt", { children: "Last run" }), _jsx("dd", { children: _jsx(TableValue, { failedLabel: "Couldn't read", state: "failed" }) })] })),
|
|
213
|
+
TextWithCopyButton: () => (_jsxs("div", { className: "grid gap-4", children: [_jsx(TextWithCopyButton, { ...COPY_LABELS, copyLabel: "Copy config digest", value: CONFIG_DIGEST }), _jsx(TextWithCopyButton, { ...COPY_LABELS, className: "w-50", copyLabel: "Copy config digest", ellipsis: true, value: CONFIG_DIGEST })] })),
|
|
110
214
|
UsageMeter: () => (_jsx(UsageMeter, { className: "max-w-sm", fields: ["Tokens", "620 of 1,000"], usage: 62 })),
|
|
111
215
|
};
|
|
@@ -3,6 +3,7 @@ declare function LabelledPictureSpecimen(): import("react").JSX.Element;
|
|
|
3
3
|
declare function PendingLabelSpecimen(): import("react").JSX.Element;
|
|
4
4
|
declare function ToasterSpecimen(): import("react").JSX.Element;
|
|
5
5
|
declare function UpdateCardSpecimen(): import("react").JSX.Element;
|
|
6
|
+
declare function SkeletonRegionSpecimen(): import("react").JSX.Element;
|
|
6
7
|
export declare const FEEDBACK: {
|
|
7
8
|
Alert: () => import("react").JSX.Element;
|
|
8
9
|
EmptyState: typeof EmptyStateSpecimen;
|
|
@@ -14,6 +15,7 @@ export declare const FEEDBACK: {
|
|
|
14
15
|
NoticeBanner: () => import("react").JSX.Element;
|
|
15
16
|
PendingLabel: typeof PendingLabelSpecimen;
|
|
16
17
|
Skeleton: () => import("react").JSX.Element;
|
|
18
|
+
SkeletonRegion: typeof SkeletonRegionSpecimen;
|
|
17
19
|
Toaster: typeof ToasterSpecimen;
|
|
18
20
|
Tooltip: () => import("react").JSX.Element;
|
|
19
21
|
UpdateCard: typeof UpdateCardSpecimen;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/feedback.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/feedback.tsx"],"names":[],"mappings":"AA8CA,iBAAS,kBAAkB,gCAoE1B;AAED,iBAAS,uBAAuB,gCAW/B;AAED,iBAAS,oBAAoB,gCAkB5B;AAED,iBAAS,eAAe,gCAyBvB;AAED,iBAAS,kBAAkB,gCA8B1B;AAED,iBAAS,sBAAsB,gCAwB9B;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CA8LM,CAAC"}
|