tembro 2.0.4 → 2.0.5
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/actions/action-menu.cjs +1 -1
- package/dist/components/actions/action-menu.d.ts +13 -1
- package/dist/components/actions/action-menu.js +87 -61
- package/dist/components/actions/button-group.cjs +1 -1
- package/dist/components/actions/button-group.d.ts +9 -1
- package/dist/components/actions/button-group.js +58 -14
- package/dist/components/actions/copy-button.cjs +1 -1
- package/dist/components/actions/copy-button.d.ts +2 -1
- package/dist/components/actions/copy-button.js +13 -11
- package/dist/components/calendar/calendar.cjs +1 -1
- package/dist/components/calendar/calendar.d.ts +14 -1
- package/dist/components/calendar/calendar.js +207 -128
- package/dist/components/calendar/date-picker.cjs +1 -1
- package/dist/components/calendar/date-picker.d.ts +3 -1
- package/dist/components/calendar/date-picker.js +57 -27
- package/dist/components/calendar/date-range-picker.cjs +1 -1
- package/dist/components/calendar/date-range-picker.d.ts +10 -1
- package/dist/components/calendar/date-range-picker.js +149 -64
- package/dist/components/data-table/data-table-toolbar.cjs +1 -1
- package/dist/components/data-table/data-table-toolbar.d.ts +5 -1
- package/dist/components/data-table/data-table-toolbar.js +36 -23
- package/dist/components/data-table/data-table.cjs +1 -1
- package/dist/components/data-table/data-table.d.ts +6 -4
- package/dist/components/data-table/data-table.js +87 -79
- package/dist/components/data-table/demo.cjs +1 -1
- package/dist/components/data-table/demo.js +3 -13
- package/dist/components/data-table/index.cjs +1 -1
- package/dist/components/data-table/index.js +5 -5
- package/dist/components/data-table/public.cjs +1 -1
- package/dist/components/data-table/public.d.ts +1 -6
- package/dist/components/data-table/public.js +7 -12
- package/dist/components/display/activity-feed.cjs +1 -1
- package/dist/components/display/activity-feed.d.ts +12 -1
- package/dist/components/display/activity-feed.js +69 -47
- package/dist/components/display/carousel.cjs +1 -1
- package/dist/components/display/carousel.d.ts +10 -1
- package/dist/components/display/carousel.js +68 -23
- package/dist/components/display/code-block.cjs +2 -1
- package/dist/components/display/code-block.d.ts +3 -1
- package/dist/components/display/code-block.js +33 -19
- package/dist/components/display/comparison-card.cjs +1 -1
- package/dist/components/display/comparison-card.d.ts +3 -3
- package/dist/components/display/comparison-card.js +14 -38
- package/dist/components/display/data-state.cjs +1 -1
- package/dist/components/display/data-state.d.ts +12 -2
- package/dist/components/display/data-state.js +80 -42
- package/dist/components/display/demo.cjs +1 -1
- package/dist/components/display/demo.js +1 -5
- package/dist/components/display/index.cjs +1 -1
- package/dist/components/display/index.d.ts +0 -3
- package/dist/components/display/index.js +21 -24
- package/dist/components/feedback/alert.cjs +1 -1
- package/dist/components/feedback/alert.d.ts +6 -1
- package/dist/components/feedback/alert.js +49 -19
- package/dist/components/feedback/index.cjs +1 -1
- package/dist/components/feedback/index.d.ts +0 -2
- package/dist/components/feedback/index.js +3 -5
- package/dist/components/filters/demo.cjs +1 -1
- package/dist/components/filters/demo.js +1 -5
- package/dist/components/filters/filter-bar.cjs +1 -1
- package/dist/components/filters/filter-bar.d.ts +15 -1
- package/dist/components/filters/filter-bar.js +94 -50
- package/dist/components/filters/index.cjs +1 -1
- package/dist/components/filters/index.d.ts +0 -1
- package/dist/components/filters/index.js +3 -4
- package/dist/components/form/form-field-shell.cjs +1 -1
- package/dist/components/form/form-field-shell.d.ts +17 -3
- package/dist/components/form/form-field-shell.js +54 -40
- package/dist/components/form/form-input.cjs +1 -1
- package/dist/components/form/form-input.js +278 -217
- package/dist/components/form/form-select.cjs +1 -1
- package/dist/components/form/form-select.js +47 -33
- package/dist/components/form/form-switch.cjs +1 -1
- package/dist/components/form/form-switch.js +79 -66
- package/dist/components/form/form-textarea.cjs +1 -1
- package/dist/components/form/form-textarea.js +59 -48
- package/dist/components/form/index.cjs +1 -1
- package/dist/components/form/index.js +14 -14
- package/dist/components/form/public.cjs +1 -1
- package/dist/components/form/public.d.ts +0 -8
- package/dist/components/form/public.js +7 -15
- package/dist/components/inputs/async-select.cjs +1 -1
- package/dist/components/inputs/async-select.d.ts +11 -2
- package/dist/components/inputs/async-select.js +278 -270
- package/dist/components/inputs/combobox.cjs +1 -1
- package/dist/components/inputs/combobox.d.ts +5 -1
- package/dist/components/inputs/combobox.js +52 -19
- package/dist/components/inputs/simple-select.cjs +1 -1
- package/dist/components/inputs/simple-select.d.ts +2 -1
- package/dist/components/inputs/simple-select.js +32 -16
- package/dist/components/layout/app-sidebar.cjs +1 -1
- package/dist/components/layout/app-sidebar.d.ts +4 -1
- package/dist/components/layout/app-sidebar.js +152 -132
- package/dist/components/layout/breadcrumbs.cjs +1 -1
- package/dist/components/layout/breadcrumbs.d.ts +2 -1
- package/dist/components/layout/breadcrumbs.js +10 -10
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +3 -3
- package/dist/components/layout/stat-card.cjs +1 -1
- package/dist/components/layout/stat-card.d.ts +8 -1
- package/dist/components/layout/stat-card.js +33 -11
- package/dist/components/modern/calendar-scheduler.cjs +1 -1
- package/dist/components/modern/calendar-scheduler.d.ts +2 -1
- package/dist/components/modern/calendar-scheduler.js +21 -12
- package/dist/components/overlay/alert-dialog.cjs +1 -1
- package/dist/components/overlay/alert-dialog.d.ts +15 -1
- package/dist/components/overlay/alert-dialog.js +102 -27
- package/dist/components/overlay/drawer.cjs +1 -1
- package/dist/components/overlay/drawer.d.ts +4 -1
- package/dist/components/overlay/drawer.js +20 -17
- package/dist/components/patterns/index.cjs +1 -1
- package/dist/components/patterns/index.d.ts +0 -1
- package/dist/components/patterns/index.js +1 -2
- package/dist/components/patterns/public.cjs +1 -1
- package/dist/components/patterns/public.d.ts +0 -1
- package/dist/components/patterns/public.js +1 -2
- package/dist/components/ui/button/index.cjs +1 -1
- package/dist/components/ui/button/index.d.ts +3 -1
- package/dist/components/ui/button/index.js +7 -5
- package/dist/components/ui/checkbox/index.cjs +1 -1
- package/dist/components/ui/checkbox/index.d.ts +8 -0
- package/dist/components/ui/checkbox/index.js +16 -14
- package/dist/components/ui/collapse/index.cjs +1 -1
- package/dist/components/ui/collapse/index.d.ts +17 -3
- package/dist/components/ui/collapse/index.js +88 -33
- package/dist/components/ui/dialog/index.cjs +1 -1
- package/dist/components/ui/dialog/index.d.ts +2 -1
- package/dist/components/ui/dialog/index.js +6 -4
- package/dist/components/ui/dropdown-menu/index.cjs +1 -1
- package/dist/components/ui/dropdown-menu/index.d.ts +9 -4
- package/dist/components/ui/dropdown-menu/index.js +87 -62
- package/dist/index.cjs +1 -1
- package/dist/index.js +137 -156
- package/dist/public-component-surface.cjs +1 -1
- package/dist/public-component-surface.js +0 -15
- package/dist/showcase/component-api-schema.cjs +1 -1
- package/dist/showcase/component-api-schema.js +2 -2
- package/dist/showcase/create-demo.cjs +20 -34
- package/dist/showcase/create-demo.js +15 -16
- package/dist/showcase/fallback.cjs +3 -3
- package/dist/showcase/fallback.js +275 -265
- package/dist/showcase/premium/accordion/showcase.cjs +1 -1
- package/dist/showcase/premium/accordion/showcase.js +36 -5
- package/dist/showcase/premium/action-menu/showcase.cjs +1 -1
- package/dist/showcase/premium/action-menu/showcase.js +26 -8
- package/dist/showcase/premium/activity-feed/showcase.cjs +1 -1
- package/dist/showcase/premium/activity-feed/showcase.js +60 -36
- package/dist/showcase/premium/alert/showcase.cjs +1 -1
- package/dist/showcase/premium/alert/showcase.js +41 -18
- package/dist/showcase/premium/alert-dialog/showcase.cjs +1 -1
- package/dist/showcase/premium/alert-dialog/showcase.js +35 -7
- package/dist/showcase/premium/async-multi-select/mock.cjs +4 -3
- package/dist/showcase/premium/async-multi-select/mock.js +5 -5
- package/dist/showcase/premium/async-multi-select/showcase.cjs +1 -1
- package/dist/showcase/premium/async-multi-select/showcase.js +4 -3
- package/dist/showcase/premium/async-select/mock.cjs +1 -1
- package/dist/showcase/premium/async-select/mock.js +1 -1
- package/dist/showcase/premium/async-select/showcase.cjs +1 -1
- package/dist/showcase/premium/async-select/showcase.js +69 -22
- package/dist/showcase/premium/button/showcase.cjs +1 -1
- package/dist/showcase/premium/button/showcase.js +49 -3
- package/dist/showcase/premium/button-group/showcase.cjs +1 -1
- package/dist/showcase/premium/button-group/showcase.js +53 -29
- package/dist/showcase/premium/calendar/showcase.cjs +1 -1
- package/dist/showcase/premium/calendar/showcase.js +7 -2
- package/dist/showcase/premium/carousel/showcase.cjs +1 -1
- package/dist/showcase/premium/carousel/showcase.js +95 -47
- package/dist/showcase/premium/checkbox/showcase.cjs +1 -1
- package/dist/showcase/premium/checkbox/showcase.js +143 -67
- package/dist/showcase/premium/clearable-input/mock.cjs +4 -3
- package/dist/showcase/premium/clearable-input/mock.js +3 -2
- package/dist/showcase/premium/clearable-input/showcase.cjs +1 -1
- package/dist/showcase/premium/clearable-input/showcase.js +8 -2
- package/dist/showcase/premium/collapse/showcase.cjs +1 -1
- package/dist/showcase/premium/collapse/showcase.js +7 -0
- package/dist/showcase/premium/combobox/showcase.cjs +1 -1
- package/dist/showcase/premium/combobox/showcase.d.ts +2 -1
- package/dist/showcase/premium/combobox/showcase.js +56 -47
- package/dist/showcase/premium/data-table/showcase.cjs +1 -1
- package/dist/showcase/premium/data-table/showcase.js +138 -46
- package/dist/showcase/premium/data-table-parts/showcase.cjs +1 -1
- package/dist/showcase/premium/data-table-parts/showcase.js +13 -13
- package/dist/showcase/premium/date-input/mock.cjs +1 -1
- package/dist/showcase/premium/date-input/mock.js +1 -1
- package/dist/showcase/premium/date-range-picker/showcase.cjs +1 -1
- package/dist/showcase/premium/date-range-picker/showcase.js +32 -1
- package/dist/showcase/premium/dropdown-menu/showcase.cjs +1 -1
- package/dist/showcase/premium/dropdown-menu/showcase.js +88 -54
- package/dist/showcase/premium/form-wrapper/mock.cjs +41 -15
- package/dist/showcase/premium/form-wrapper/mock.js +4 -4
- package/dist/showcase/premium/form-wrapper/showcase.cjs +1 -1
- package/dist/showcase/premium/form-wrapper/showcase.js +77 -28
- package/dist/showcase/premium/index.cjs +1 -1
- package/dist/showcase/premium/index.js +426 -467
- package/dist/showcase/premium/input/mock.cjs +4 -1
- package/dist/showcase/premium/input/mock.js +1 -1
- package/dist/showcase/premium/masked-input/mock.cjs +1 -1
- package/dist/showcase/premium/masked-input/mock.js +1 -1
- package/dist/showcase/premium/money-input/mock.cjs +1 -1
- package/dist/showcase/premium/money-input/mock.js +1 -1
- package/dist/showcase/premium/number-input/mock.cjs +1 -1
- package/dist/showcase/premium/number-input/mock.js +1 -1
- package/dist/showcase/premium/phone-input/mock.cjs +1 -1
- package/dist/showcase/premium/phone-input/mock.js +1 -1
- package/dist/showcase/premium/quantity-input/mock.cjs +1 -1
- package/dist/showcase/premium/quantity-input/mock.js +1 -1
- package/dist/showcase/premium/simple-select/mock.cjs +1 -1
- package/dist/showcase/premium/simple-select/mock.js +1 -1
- package/dist/showcase/premium/simple-select/showcase.cjs +1 -1
- package/dist/showcase/premium/simple-select/showcase.js +4 -2
- package/dist/showcase/preview-catalog.cjs +7 -10
- package/dist/showcase/preview-catalog.js +7 -7
- package/dist/showcase/registry-quality.cjs +1 -1
- package/dist/showcase/registry-quality.js +0 -23
- package/dist/showcase/registry-specific.cjs +1 -1
- package/dist/showcase/registry-specific.js +149 -383
- package/dist/showcase/render-registry-preview.cjs +1 -1
- package/dist/showcase/render-registry-preview.js +163 -195
- package/dist/showcase/site-data.cjs +1 -1
- package/dist/showcase/site-data.js +197 -941
- package/dist/showcase/supplemental.cjs +1 -1
- package/dist/showcase/supplemental.js +1 -1
- package/dist/showcase/tembro-registry.json.cjs +1 -1
- package/dist/showcase/tembro-registry.json.js +33 -51
- package/package.json +1 -1
- package/packages/cli/dist/index.cjs +2 -2
- package/packages/cli/vendor/src/components/actions/action-menu.tsx +149 -83
- package/packages/cli/vendor/src/components/actions/button-group.tsx +141 -33
- package/packages/cli/vendor/src/components/actions/copy-button.tsx +21 -16
- package/packages/cli/vendor/src/components/calendar/calendar.tsx +223 -88
- package/packages/cli/vendor/src/components/calendar/date-picker.tsx +73 -29
- package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +154 -49
- package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +71 -50
- package/packages/cli/vendor/src/components/data-table/data-table.tsx +65 -53
- package/packages/cli/vendor/src/components/data-table/demo.tsx +2 -12
- package/packages/cli/vendor/src/components/data-table/public.ts +1 -6
- package/packages/cli/vendor/src/components/display/activity-feed.tsx +98 -40
- package/packages/cli/vendor/src/components/display/carousel.tsx +88 -2
- package/packages/cli/vendor/src/components/display/code-block.tsx +58 -26
- package/packages/cli/vendor/src/components/display/comparison-card.tsx +15 -41
- package/packages/cli/vendor/src/components/display/data-state.tsx +119 -50
- package/packages/cli/vendor/src/components/display/demo.tsx +0 -4
- package/packages/cli/vendor/src/components/display/index.ts +0 -3
- package/packages/cli/vendor/src/components/feedback/alert.tsx +86 -28
- package/packages/cli/vendor/src/components/feedback/index.ts +0 -2
- package/packages/cli/vendor/src/components/filters/demo.tsx +0 -1
- package/packages/cli/vendor/src/components/filters/filter-bar.tsx +126 -54
- package/packages/cli/vendor/src/components/filters/index.ts +0 -1
- package/packages/cli/vendor/src/components/form/form-field-shell.tsx +72 -34
- package/packages/cli/vendor/src/components/form/form-input.tsx +118 -11
- package/packages/cli/vendor/src/components/form/form-select.tsx +26 -3
- package/packages/cli/vendor/src/components/form/form-switch.tsx +77 -58
- package/packages/cli/vendor/src/components/form/form-textarea.tsx +65 -51
- package/packages/cli/vendor/src/components/form/public.ts +0 -9
- package/packages/cli/vendor/src/components/inputs/async-select.tsx +126 -82
- package/packages/cli/vendor/src/components/inputs/combobox.tsx +66 -9
- package/packages/cli/vendor/src/components/inputs/simple-select.tsx +52 -24
- package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +42 -1
- package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +17 -8
- package/packages/cli/vendor/src/components/layout/stat-card.tsx +63 -23
- package/packages/cli/vendor/src/components/modern/calendar-scheduler.tsx +32 -22
- package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +148 -24
- package/packages/cli/vendor/src/components/overlay/drawer.tsx +42 -30
- package/packages/cli/vendor/src/components/patterns/index.ts +0 -1
- package/packages/cli/vendor/src/components/patterns/public.ts +0 -1
- package/packages/cli/vendor/src/components/ui/button/index.tsx +27 -17
- package/packages/cli/vendor/src/components/ui/checkbox/index.tsx +22 -5
- package/packages/cli/vendor/src/components/ui/collapse/index.tsx +97 -16
- package/packages/cli/vendor/src/components/ui/dialog/index.tsx +12 -8
- package/packages/cli/vendor/src/components/ui/dropdown-menu/index.tsx +82 -28
- package/packages/cli/vendor/src/public-component-surface.ts +0 -3
- package/packages/cli/vendor/src/showcase/component-api-schema.ts +2 -2
- package/packages/cli/vendor/src/showcase/create-demo.tsx +31 -46
- package/packages/cli/vendor/src/showcase/fallback.tsx +80 -99
- package/packages/cli/vendor/src/showcase/premium/accordion/showcase.tsx +32 -2
- package/packages/cli/vendor/src/showcase/premium/action-menu/showcase.tsx +12 -3
- package/packages/cli/vendor/src/showcase/premium/activity-feed/showcase.tsx +15 -2
- package/packages/cli/vendor/src/showcase/premium/alert/showcase.tsx +32 -17
- package/packages/cli/vendor/src/showcase/premium/alert-dialog/showcase.tsx +28 -3
- package/packages/cli/vendor/src/showcase/premium/async-multi-select/mock.ts +6 -5
- package/packages/cli/vendor/src/showcase/premium/async-multi-select/showcase.tsx +5 -4
- package/packages/cli/vendor/src/showcase/premium/async-select/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/async-select/showcase.tsx +36 -0
- package/packages/cli/vendor/src/showcase/premium/button/showcase.tsx +26 -5
- package/packages/cli/vendor/src/showcase/premium/button-group/showcase.tsx +20 -3
- package/packages/cli/vendor/src/showcase/premium/calendar/showcase.tsx +5 -0
- package/packages/cli/vendor/src/showcase/premium/carousel/showcase.tsx +33 -5
- package/packages/cli/vendor/src/showcase/premium/checkbox/showcase.tsx +46 -3
- package/packages/cli/vendor/src/showcase/premium/clearable-input/mock.ts +5 -3
- package/packages/cli/vendor/src/showcase/premium/clearable-input/showcase.tsx +5 -2
- package/packages/cli/vendor/src/showcase/premium/collapse/showcase.tsx +4 -0
- package/packages/cli/vendor/src/showcase/premium/combobox/showcase.tsx +8 -0
- package/packages/cli/vendor/src/showcase/premium/data-table/showcase.tsx +77 -27
- package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +11 -11
- package/packages/cli/vendor/src/showcase/premium/date-input/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/date-range-picker/showcase.tsx +7 -0
- package/packages/cli/vendor/src/showcase/premium/dropdown-menu/showcase.tsx +46 -3
- package/packages/cli/vendor/src/showcase/premium/form-wrapper/mock.ts +70 -44
- package/packages/cli/vendor/src/showcase/premium/form-wrapper/showcase.tsx +129 -12
- package/packages/cli/vendor/src/showcase/premium/index.ts +7 -24
- package/packages/cli/vendor/src/showcase/premium/input/mock.ts +2 -2
- package/packages/cli/vendor/src/showcase/premium/masked-input/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/money-input/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/number-input/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/phone-input/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/quantity-input/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/simple-select/mock.ts +1 -1
- package/packages/cli/vendor/src/showcase/premium/simple-select/showcase.tsx +2 -1
- package/packages/cli/vendor/src/showcase/preview-catalog.tsx +7 -7
- package/packages/cli/vendor/src/showcase/registry-quality.ts +4 -28
- package/packages/cli/vendor/src/showcase/registry-specific.tsx +3 -178
- package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +18 -51
- package/packages/cli/vendor/src/showcase/site-data.tsx +2443 -2761
- package/packages/cli/vendor/src/showcase/supplemental.tsx +2 -42
- package/packages/cli/vendor/src/showcase/tembro-registry.json +11 -58
- package/registry.json +11 -61
- package/dist/components/display/entity-card.cjs +0 -1
- package/dist/components/display/entity-card.d.ts +0 -18
- package/dist/components/display/entity-card.js +0 -61
- package/dist/components/display/entity-header.cjs +0 -1
- package/dist/components/display/entity-header.d.ts +0 -13
- package/dist/components/display/entity-header.js +0 -52
- package/dist/components/display/file-card.cjs +0 -1
- package/dist/components/display/file-card.d.ts +0 -14
- package/dist/components/display/file-card.js +0 -59
- package/dist/components/feedback/empty-search-state.cjs +0 -1
- package/dist/components/feedback/empty-search-state.d.ts +0 -11
- package/dist/components/feedback/empty-search-state.js +0 -45
- package/dist/components/feedback/empty-state.cjs +0 -1
- package/dist/components/feedback/empty-state.d.ts +0 -11
- package/dist/components/feedback/empty-state.js +0 -38
- package/dist/components/filters/filter-chips.cjs +0 -1
- package/dist/components/filters/filter-chips.d.ts +0 -18
- package/dist/components/filters/filter-chips.js +0 -61
- package/dist/components/patterns/form-builder-presets.cjs +0 -1
- package/dist/components/patterns/form-builder-presets.d.ts +0 -1
- package/dist/components/patterns/form-builder-presets.js +0 -2
- package/dist/components/patterns/form-builder.cjs +0 -1
- package/dist/components/patterns/form-builder.d.ts +0 -109
- package/dist/components/patterns/form-builder.js +0 -263
- package/dist/showcase/premium/empty-state/index.cjs +0 -1
- package/dist/showcase/premium/empty-state/index.d.ts +0 -2
- package/dist/showcase/premium/empty-state/index.js +0 -3
- package/dist/showcase/premium/empty-state/mock.cjs +0 -14
- package/dist/showcase/premium/empty-state/mock.d.ts +0 -2
- package/dist/showcase/premium/empty-state/mock.js +0 -31
- package/dist/showcase/premium/empty-state/showcase.cjs +0 -1
- package/dist/showcase/premium/empty-state/showcase.d.ts +0 -3
- package/dist/showcase/premium/empty-state/showcase.js +0 -99
- package/dist/showcase/premium/form-builder/index.cjs +0 -1
- package/dist/showcase/premium/form-builder/index.d.ts +0 -2
- package/dist/showcase/premium/form-builder/index.js +0 -3
- package/dist/showcase/premium/form-builder/mock.cjs +0 -57
- package/dist/showcase/premium/form-builder/mock.d.ts +0 -2
- package/dist/showcase/premium/form-builder/mock.js +0 -40
- package/dist/showcase/premium/form-builder/showcase.cjs +0 -1
- package/dist/showcase/premium/form-builder/showcase.d.ts +0 -3
- package/dist/showcase/premium/form-builder/showcase.js +0 -69
- package/packages/cli/vendor/src/components/display/entity-card.tsx +0 -80
- package/packages/cli/vendor/src/components/display/entity-header.tsx +0 -80
- package/packages/cli/vendor/src/components/display/file-card.tsx +0 -61
- package/packages/cli/vendor/src/components/feedback/empty-search-state.tsx +0 -65
- package/packages/cli/vendor/src/components/feedback/empty-state.tsx +0 -56
- package/packages/cli/vendor/src/components/filters/filter-chips.tsx +0 -89
- package/packages/cli/vendor/src/components/patterns/form-builder-presets.ts +0 -13
- package/packages/cli/vendor/src/components/patterns/form-builder.tsx +0 -443
- package/packages/cli/vendor/src/showcase/premium/empty-state/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/premium/empty-state/mock.ts +0 -30
- package/packages/cli/vendor/src/showcase/premium/empty-state/showcase.tsx +0 -65
- package/packages/cli/vendor/src/showcase/premium/form-builder/index.ts +0 -2
- package/packages/cli/vendor/src/showcase/premium/form-builder/mock.ts +0 -79
- package/packages/cli/vendor/src/showcase/premium/form-builder/showcase.tsx +0 -55
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import {
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
|
|
2
|
+
import { Label, Input } from "tembro"
|
|
2
3
|
|
|
3
4
|
export function Example() {
|
|
5
|
+
const [query, setQuery] = useState("buttons")
|
|
6
|
+
|
|
4
7
|
return (
|
|
5
8
|
<form className="space-y-4">
|
|
6
9
|
<div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/input/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { Label, Input } from \"tembro\"\n\nexport function Example() {\n return (\n <form className=\"space-y-4\">\n <div>\n <Label htmlFor=\"support-email\">Support email</Label>\n <Input id=\"support-email\" type=\"email\" defaultValue=\"team@acme.io\" required />\n </div>\n\n <div>\n <Label htmlFor=\"component-search\">Search components</Label>\n <Input\n id=\"component-search\"\n value={query}\n onValueChange={setQuery}\n placeholder=\"Search by slug or title\"\n clearable\n trailingAction={<span className=\"text-xs text-muted-foreground\">12 results</span>}\n replaceTrailingWhenClear={false}\n />\n </div>\n\n <div>\n <Label htmlFor=\"api-prefix\">Cost estimate</Label>\n <Input\n id=\"api-prefix\"\n defaultValue=\"120\"\n readOnly\n trailing={<span className=\"text-sm aui-text-muted\">USD</span>}\n />\n </div>\n\n <div>\n <Label htmlFor=\"disabled-input\">Locked status</Label>\n <Input id=\"disabled-input\" disabled value=\"Locked while syncing\" />\n </div>\n </form>\n )\n}\n",
|
|
3
|
+
code: "import { useState } from \"react\"\nimport { Label, Input } from \"tembro\"\n\nexport function Example() {\n const [query, setQuery] = useState(\"buttons\")\n\n return (\n <form className=\"space-y-4\">\n <div>\n <Label htmlFor=\"support-email\">Support email</Label>\n <Input id=\"support-email\" type=\"email\" defaultValue=\"team@acme.io\" required />\n </div>\n\n <div>\n <Label htmlFor=\"component-search\">Search components</Label>\n <Input\n id=\"component-search\"\n value={query}\n onValueChange={setQuery}\n placeholder=\"Search by slug or title\"\n clearable\n trailingAction={<span className=\"text-xs text-muted-foreground\">12 results</span>}\n replaceTrailingWhenClear={false}\n />\n </div>\n\n <div>\n <Label htmlFor=\"api-prefix\">Cost estimate</Label>\n <Input\n id=\"api-prefix\"\n defaultValue=\"120\"\n readOnly\n trailing={<span className=\"text-sm aui-text-muted\">USD</span>}\n />\n </div>\n\n <div>\n <Label htmlFor=\"disabled-input\">Locked status</Label>\n <Input id=\"disabled-input\" disabled value=\"Locked while syncing\" />\n </div>\n </form>\n )\n}\n",
|
|
4
4
|
htmlCode: "<label for=\"example\">Search components</label>\n<input id=\"example\" data-slot=\"input\" type=\"text\" placeholder=\"Search components...\" />",
|
|
5
5
|
cliCommand: "npx tembro add input",
|
|
6
6
|
highlights: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
|
|
2
|
-
import { MaskedInput } from "
|
|
2
|
+
import { MaskedInput } from "tembro"
|
|
3
3
|
|
|
4
4
|
export function Example() {
|
|
5
5
|
const [value, setValue] = useState("AA-123")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/masked-input/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { useState } from \"react\"\nimport { MaskedInput } from \"
|
|
3
|
+
code: "import { useState } from \"react\"\nimport { MaskedInput } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState(\"AA-123\")\n\n return (\n <MaskedInput\n value={value}\n onValueChange={(nextValue) => setValue(nextValue)}\n mask={(raw: string) => raw.toUpperCase().slice(0, 6).replace(/(.{3})(?=.)/, \"$1-\")}\n placeholder=\"AA-123\"\n />\n )\n}\n",
|
|
4
4
|
htmlCode: "<label for=\"masked\">Referral code</label><input id=\"masked\" type=\"text\" value=\"AA-123\" placeholder=\"AA-123\" />",
|
|
5
5
|
cliCommand: "npx tembro add masked-input",
|
|
6
6
|
highlights: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
|
|
2
|
-
import { MoneyInput } from "
|
|
2
|
+
import { MoneyInput } from "tembro"
|
|
3
3
|
|
|
4
4
|
export function Example() {
|
|
5
5
|
const [value, setValue] = useState<number | null>(2990.5)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/money-input/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { useState } from \"react\"\nimport { MoneyInput } from \"
|
|
3
|
+
code: "import { useState } from \"react\"\nimport { MoneyInput } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState<number | null>(2990.5)\n const [raw, setRaw] = useState(\"$2,990.50\")\n\n return (\n <div className=\"space-y-3\">\n <MoneyInput\n value={value}\n onValueChange={(nextValue, rawValue) => {\n setValue(nextValue)\n setRaw(rawValue)\n }}\n prefix=\"$\"\n inputMode=\"decimal\"\n step={0.5}\n />\n <p className=\"text-sm aui-text-subtle\">\n Numeric value: <strong>{value === null ? \"invalid\" : value}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">Raw input: {raw}</p>\n <p className=\"text-sm aui-text-muted\">Use inputMode to match expected currency input source.</p>\n </div>\n )\n}",
|
|
4
4
|
htmlCode: "<label for=\"money\">Budget</label><div>$<input id=\"money\" inputmode=\"decimal\" type=\"text\" /></div>",
|
|
5
5
|
cliCommand: "npx tembro add money-input",
|
|
6
6
|
highlights: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
|
|
2
|
-
import { NumberInput, parseNumberInput } from "
|
|
2
|
+
import { NumberInput, parseNumberInput } from "tembro"
|
|
3
3
|
|
|
4
4
|
export function Example() {
|
|
5
5
|
const [value, setValue] = useState<number | null>(14)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/number-input/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { useState } from \"react\"\nimport { NumberInput, parseNumberInput } from \"
|
|
3
|
+
code: "import { useState } from \"react\"\nimport { NumberInput, parseNumberInput } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState<number | null>(14)\n const [raw, setRaw] = useState(\"14\")\n\n return (\n <div className=\"space-y-3\">\n <NumberInput\n value={value}\n onNumberChange={(nextValue) => {\n setValue(nextValue)\n setRaw(String(nextValue ?? \"\"))\n }}\n onChange={(event) => {\n const candidate = parseNumberInput(event.target.value)\n if (candidate === null) setRaw(event.target.value)\n }}\n min={0}\n max={100}\n step={5}\n allowEmpty\n />\n <p className=\"text-sm aui-text-subtle\">\n Parsed numeric: <strong>{value === null ? \"unset\" : value}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">Raw text: {raw}</p>\n <p className=\"text-sm aui-text-muted\">\n Try entering invalid chars to see how parse and clamp rules apply.\n </p>\n </div>\n )\n}",
|
|
4
4
|
htmlCode: "<label for=\"example-number\">Amount</label><input id=\"example-number\" inputmode=\"decimal\" type=\"text\" />",
|
|
5
5
|
cliCommand: "npx tembro add number-input",
|
|
6
6
|
highlights: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
|
|
2
|
-
import { PhoneInput } from "
|
|
2
|
+
import { PhoneInput } from "tembro"
|
|
3
3
|
|
|
4
4
|
export function Example() {
|
|
5
5
|
const [value, setValue] = useState("+998 90 123 45 67")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/phone-input/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { useState } from \"react\"\nimport { PhoneInput } from \"
|
|
3
|
+
code: "import { useState } from \"react\"\nimport { PhoneInput } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState(\"+998 90 123 45 67\")\n\n return (\n <PhoneInput\n value={value}\n onValueChange={setValue}\n defaultCountry=\"UZ\"\n placeholder=\"+998 90 123 45 67\"\n />\n )\n}\n",
|
|
4
4
|
htmlCode: "<label for=\"phone\">Phone</label><input id=\"phone\" type=\"tel\" inputmode=\"tel\" placeholder=\"+998 90 123 45 67\" />",
|
|
5
5
|
cliCommand: "npx tembro add phone-input",
|
|
6
6
|
highlights: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
|
|
2
|
-
import { QuantityInput } from "
|
|
2
|
+
import { QuantityInput } from "tembro"
|
|
3
3
|
|
|
4
4
|
export function Example() {
|
|
5
5
|
const [quantity, setQuantity] = useState<number | null>(3)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/quantity-input/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { useState } from \"react\"\nimport { QuantityInput } from \"
|
|
3
|
+
code: "import { useState } from \"react\"\nimport { QuantityInput } from \"tembro\"\n\nexport function Example() {\n const [quantity, setQuantity] = useState<number | null>(3)\n\n return (\n <div className=\"space-y-3\">\n <QuantityInput\n value={quantity}\n onValueChange={(nextValue: number | null) => setQuantity(nextValue)}\n min={0}\n max={10}\n step={1}\n showControls\n />\n <p className=\"text-sm aui-text-subtle\">\n Items: <strong>{quantity ?? \"unset\"}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">\n Controls should stay aligned with adjacent action columns in compact table rows.\n </p>\n <p className=\"text-sm aui-text-muted\">\n Try increment/decrement at bounds to validate guardrails.\n </p>\n </div>\n )\n}",
|
|
4
4
|
htmlCode: "<label for=\"qty\">Quantity</label><input id=\"qty\" type=\"text\" inputmode=\"numeric\" />",
|
|
5
5
|
cliCommand: "npx tembro add quantity-input",
|
|
6
6
|
highlights: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
|
|
2
|
-
import { Button, SimpleSelect } from "
|
|
2
|
+
import { Button, SimpleSelect } from "tembro"
|
|
3
3
|
|
|
4
4
|
const selectOptions = [
|
|
5
5
|
{ value: "public", label: "Public", disabled: false },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/showcase/premium/simple-select/mock.ts
|
|
2
2
|
var e = {
|
|
3
|
-
code: "import { useState } from \"react\"\nimport { Button, SimpleSelect } from \"
|
|
3
|
+
code: "import { useState } from \"react\"\nimport { Button, SimpleSelect } from \"tembro\"\n\nconst selectOptions = [\n { value: \"public\", label: \"Public\", disabled: false },\n { value: \"private\", label: \"Private\", disabled: false },\n { value: \"internal\", label: \"Internal\", disabled: false },\n { value: \"archived\", label: \"Archived\", disabled: true },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"private\")\n\n return (\n <div className=\"space-y-3\">\n <SimpleSelect\n options={selectOptions}\n value={value}\n onValueChange={(nextValue) => setValue(nextValue ?? \"private\")}\n placeholder=\"Visibility\"\n size=\"sm\"\n />\n <div className=\"rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm aui-text-muted\">\n Current visibility: <strong>{value}</strong>\n </div>\n <Button variant=\"outline\" onClick={() => setValue(\"public\")}>Reset public</Button>\n </div>\n )\n}",
|
|
4
4
|
htmlCode: "<button data-slot=\"simple-select-trigger\">Open options</button>",
|
|
5
5
|
cliCommand: "npx tembro add simple-select",
|
|
6
6
|
highlights: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../components/ui/button/index.cjs"),t=require("../../../components/ui/badge/index.cjs"),n=require("../../../components/inputs/simple-select.cjs"),r=require("../../component-route-data.cjs");let i=require("react"),a=require("react/jsx-runtime");function o({mode:o}){let[s,c]=(0,i.useState)(`private`),[l,u]=(0,i.useState)(0),d=r.routeSimpleSelectOptions,f=d.find(e=>e.value===s);return(0,a.jsxs)(`div`,{className:`space-y-4`,children:[(0,a.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium aui-text-strong`,children:`SimpleSelect is the lightweight static member`}),(0,a.jsx)(`p`,{className:`mt-2 text-sm leading-6 aui-text-muted`,children:`Use it only when you want a thinner wrapper around the main Select surface for static option lists.`}),(0,a.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,a.jsx)(t.Badge,{variant:`outline`,children:`Static options`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Searchable`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Clearable`})]})]}),(0,a.jsx)(n.SimpleSelect,{value:s,onValueChange:e=>c(e),options:d,placeholder:`Visibility`,searchable:!0,clearable:!0}),(0,a.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Current value`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:f?.label??`Nothing selected`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Behavior`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Clear icon and disabled items behave inside the same trigger model.`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`When to use`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Choose this for local option lists before moving to AsyncSelect.`})]})]}),(0,a.jsx)(n.SimpleSelect,{defaultValue:`public`,options:d},l),(0,a.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>c(void 0),children:`Clear controlled`}),(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>u(e=>e+1),children:`Reset uncontrolled sample`})]}),o===`playground`?(0,a.jsx)(`p`,{className:`aui-text-muted rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:`Controlled selection can power filter states, while uncontrolled default usage is fine for one-off static forms. If the list becomes remote, move back to the Select family and choose AsyncSelect.`}):null]})}exports.SimpleSelectShowcase=o;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../components/ui/button/index.cjs"),t=require("../../../components/ui/badge/index.cjs"),n=require("../../../components/inputs/simple-select.cjs"),r=require("../../component-route-data.cjs");let i=require("react"),a=require("react/jsx-runtime");function o({mode:o}){let[s,c]=(0,i.useState)(`private`),[l,u]=(0,i.useState)(0),d=r.routeSimpleSelectOptions,f=d.find(e=>e.value===s);return(0,a.jsxs)(`div`,{className:`space-y-4`,children:[(0,a.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium aui-text-strong`,children:`SimpleSelect is the lightweight static member`}),(0,a.jsx)(`p`,{className:`mt-2 text-sm leading-6 aui-text-muted`,children:`Use it only when you want a thinner wrapper around the main Select surface for static option lists.`}),(0,a.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,a.jsx)(t.Badge,{variant:`outline`,children:`Static options`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Searchable`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Clearable`})]})]}),(0,a.jsx)(n.SimpleSelect,{value:s,onValueChange:e=>c(e),options:d,placeholder:`Visibility`,searchable:!0,clearable:!0,showSelectedDescription:!0}),(0,a.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Current value`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:f?.label??`Nothing selected`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Behavior`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Clear icon and disabled items behave inside the same trigger model.`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`When to use`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Choose this for local option lists before moving to AsyncSelect.`})]})]}),(0,a.jsx)(n.SimpleSelect,{defaultValue:`public`,options:d,showSelectedDescription:!0},l),(0,a.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>c(void 0),children:`Clear controlled`}),(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>u(e=>e+1),children:`Reset uncontrolled sample`})]}),o===`playground`?(0,a.jsx)(`p`,{className:`aui-text-muted rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:`Controlled selection can power filter states, while uncontrolled default usage is fine for one-off static forms. If the list becomes remote, move back to the Select family and choose AsyncSelect.`}):null]})}exports.SimpleSelectShowcase=o;
|
|
@@ -46,7 +46,8 @@ function s({ mode: s }) {
|
|
|
46
46
|
options: f,
|
|
47
47
|
placeholder: "Visibility",
|
|
48
48
|
searchable: !0,
|
|
49
|
-
clearable: !0
|
|
49
|
+
clearable: !0,
|
|
50
|
+
showSelectedDescription: !0
|
|
50
51
|
}),
|
|
51
52
|
/* @__PURE__ */ o("div", {
|
|
52
53
|
className: "grid gap-3 md:grid-cols-3",
|
|
@@ -85,7 +86,8 @@ function s({ mode: s }) {
|
|
|
85
86
|
}),
|
|
86
87
|
/* @__PURE__ */ a(n, {
|
|
87
88
|
defaultValue: "public",
|
|
88
|
-
options: f
|
|
89
|
+
options: f,
|
|
90
|
+
showSelectedDescription: !0
|
|
89
91
|
}, u),
|
|
90
92
|
/* @__PURE__ */ o("div", {
|
|
91
93
|
className: "flex flex-wrap gap-2",
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=[{slug:`dashboard-01`,title:`Dashboard with sidebar`,command:`npx tembro init --template next --defaults
|
|
2
|
-
npx tembro add app-sidebar metric-grid data-table`,code:`import { AppSidebar } from "
|
|
3
|
-
import { MetricGrid } from "@/components/display/metric-grid"
|
|
2
|
+
npx tembro add app-sidebar metric-grid data-table`,code:`import { AppSidebar, MetricGrid } from "tembro"
|
|
4
3
|
|
|
5
4
|
export function Dashboard01() {
|
|
6
5
|
return <AppSidebar />
|
|
7
|
-
}`,tone:`dashboard`},{slug:`table-01`,title:`Advanced invoice table`,command:`npx tembro add data-table`,code:`import { DataTable } from "
|
|
6
|
+
}`,tone:`dashboard`},{slug:`table-01`,title:`Advanced invoice table`,command:`npx tembro add data-table`,code:`import { DataTable } from "tembro"
|
|
8
7
|
|
|
9
8
|
export function Table01() {
|
|
10
9
|
return <DataTable columns={columns} data={rows} />
|
|
11
|
-
}`,tone:`table`},{slug:`auth-01`,title:`Authentication screen`,command:`npx tembro add input button`,code:`import { Button } from "
|
|
12
|
-
import { Input } from "@/components/ui/input"
|
|
10
|
+
}`,tone:`table`},{slug:`auth-01`,title:`Authentication screen`,command:`npx tembro add input button`,code:`import { Button, Input } from "tembro"
|
|
13
11
|
|
|
14
12
|
export function Auth01() {
|
|
15
13
|
return (
|
|
@@ -19,8 +17,7 @@ export function Auth01() {
|
|
|
19
17
|
<Button>Sign in</Button>
|
|
20
18
|
</div>
|
|
21
19
|
)
|
|
22
|
-
}`,tone:`auth`},{slug:`product-01`,title:`Commerce product detail`,command:`npx tembro add badge button`,code:`import { Badge } from "
|
|
23
|
-
import { Button } from "@/components/ui/button"
|
|
20
|
+
}`,tone:`auth`},{slug:`product-01`,title:`Commerce product detail`,command:`npx tembro add badge button`,code:`import { Badge, Button } from "tembro"
|
|
24
21
|
|
|
25
22
|
export function Product01() {
|
|
26
23
|
return (
|
|
@@ -30,15 +27,15 @@ export function Product01() {
|
|
|
30
27
|
<Button>Buy now</Button>
|
|
31
28
|
</div>
|
|
32
29
|
)
|
|
33
|
-
}`,tone:`product`},{slug:`command-01`,title:`Command palette`,command:`npx tembro add command-palette`,code:`import { CommandPalette } from "
|
|
30
|
+
}`,tone:`product`},{slug:`command-01`,title:`Command palette`,command:`npx tembro add command-palette`,code:`import { CommandPalette } from "tembro"
|
|
34
31
|
|
|
35
32
|
export function Command01() {
|
|
36
33
|
return <CommandPalette />
|
|
37
|
-
}`,tone:`command`},{slug:`calendar-01`,title:`Calendar and date picker`,command:`npx tembro add calendar date-picker`,code:`import { Calendar } from "
|
|
34
|
+
}`,tone:`command`},{slug:`calendar-01`,title:`Calendar and date picker`,command:`npx tembro add calendar date-picker`,code:`import { Calendar } from "tembro"
|
|
38
35
|
|
|
39
36
|
export function Calendar01() {
|
|
40
37
|
return <Calendar />
|
|
41
|
-
}`,tone:`calendar`},{slug:`upload-01`,title:`Upload workspace`,command:`npx tembro add file-upload image-upload`,code:`import { FileUpload } from "
|
|
38
|
+
}`,tone:`calendar`},{slug:`upload-01`,title:`Upload workspace`,command:`npx tembro add file-upload image-upload`,code:`import { FileUpload } from "tembro"
|
|
42
39
|
|
|
43
40
|
export function Upload01() {
|
|
44
41
|
return <FileUpload />
|
|
@@ -4,49 +4,49 @@ var e = [
|
|
|
4
4
|
slug: "dashboard-01",
|
|
5
5
|
title: "Dashboard with sidebar",
|
|
6
6
|
command: "npx tembro init --template next --defaults\nnpx tembro add app-sidebar metric-grid data-table",
|
|
7
|
-
code: "import { AppSidebar
|
|
7
|
+
code: "import { AppSidebar, MetricGrid } from \"tembro\"\n\nexport function Dashboard01() {\n return <AppSidebar />\n}",
|
|
8
8
|
tone: "dashboard"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
slug: "table-01",
|
|
12
12
|
title: "Advanced invoice table",
|
|
13
13
|
command: "npx tembro add data-table",
|
|
14
|
-
code: "import { DataTable } from \"
|
|
14
|
+
code: "import { DataTable } from \"tembro\"\n\nexport function Table01() {\n return <DataTable columns={columns} data={rows} />\n}",
|
|
15
15
|
tone: "table"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
slug: "auth-01",
|
|
19
19
|
title: "Authentication screen",
|
|
20
20
|
command: "npx tembro add input button",
|
|
21
|
-
code: "import { Button
|
|
21
|
+
code: "import { Button, Input } from \"tembro\"\n\nexport function Auth01() {\n return (\n <div className=\"space-y-3\">\n <Input placeholder=\"Email\" type=\"email\" />\n <Input placeholder=\"Password\" type=\"password\" />\n <Button>Sign in</Button>\n </div>\n )\n}",
|
|
22
22
|
tone: "auth"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
slug: "product-01",
|
|
26
26
|
title: "Commerce product detail",
|
|
27
27
|
command: "npx tembro add badge button",
|
|
28
|
-
code: "import { Badge
|
|
28
|
+
code: "import { Badge, Button } from \"tembro\"\n\nexport function Product01() {\n return (\n <div className=\"space-y-2\">\n <Badge>Featured</Badge>\n <div>Starter kit bundle</div>\n <Button>Buy now</Button>\n </div>\n )\n}",
|
|
29
29
|
tone: "product"
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
slug: "command-01",
|
|
33
33
|
title: "Command palette",
|
|
34
34
|
command: "npx tembro add command-palette",
|
|
35
|
-
code: "import { CommandPalette } from \"
|
|
35
|
+
code: "import { CommandPalette } from \"tembro\"\n\nexport function Command01() {\n return <CommandPalette />\n}",
|
|
36
36
|
tone: "command"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
slug: "calendar-01",
|
|
40
40
|
title: "Calendar and date picker",
|
|
41
41
|
command: "npx tembro add calendar date-picker",
|
|
42
|
-
code: "import { Calendar } from \"
|
|
42
|
+
code: "import { Calendar } from \"tembro\"\n\nexport function Calendar01() {\n return <Calendar />\n}",
|
|
43
43
|
tone: "calendar"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
slug: "upload-01",
|
|
47
47
|
title: "Upload workspace",
|
|
48
48
|
command: "npx tembro add file-upload image-upload",
|
|
49
|
-
code: "import { FileUpload } from \"
|
|
49
|
+
code: "import { FileUpload } from \"tembro\"\n\nexport function Upload01() {\n return <FileUpload />\n}",
|
|
50
50
|
tone: "upload"
|
|
51
51
|
}
|
|
52
52
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./create-demo.cjs");var t=e.createShowcaseDemoRegistry([e.component(`button`,`Button`,`actions`,`Primary action surface for clicks, submit, and quick triggers in dashboard workflows.`),e.component(`input`,`Input`,`inputs`,`Single-line text input for quick edits, queries, and form fields.`),e.component(`select`,`Select`,`inputs`,`Select component with menu-driven single choice workflows.`),e.component(`dialog`,`Dialog`,`overlay`,`Modal surface for confirmation, forms, and contextual workflows.`),e.component(`data-table`,`DataTable`,`data-table`,`High density table with search, filters, rows, actions and pagination context.`),e.component(`date-picker`,`DatePicker`,`calendar`,`Date picker surface for period and event selection.`),e.component(`form-input`,`FormInput`,`form`,`Input wrapper with RHF-ready metadata and helper text.`),e.component(`form-select`,`FormSelect`,`form`,`Select wrapper for controlled local and async choice fields.`),e.component(`form-textarea`,`FormTextarea`,`form`,`Textarea wrapper with helper, validation and consistent spacing.`),e.component(`form-switch`,`FormSwitch`,`form`,`Boolean form control with shell-level label and hint handling.`),e.component(`form-date-picker`,`FormDatePicker`,`form`,`Popover date picker wrapper with RHF integration.`),e.component(`form-date-range-picker`,`FormDateRangePicker`,`form`,`Range date picker wrapper for planning and reporting flows.`),e.component(`
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./create-demo.cjs");var t=e.createShowcaseDemoRegistry([e.component(`button`,`Button`,`actions`,`Primary action surface for clicks, submit, and quick triggers in dashboard workflows.`),e.component(`input`,`Input`,`inputs`,`Single-line text input for quick edits, queries, and form fields.`),e.component(`select`,`Select`,`inputs`,`Select component with menu-driven single choice workflows.`),e.component(`dialog`,`Dialog`,`overlay`,`Modal surface for confirmation, forms, and contextual workflows.`),e.component(`data-table`,`DataTable`,`data-table`,`High density table with search, filters, rows, actions and pagination context.`),e.component(`date-picker`,`DatePicker`,`calendar`,`Date picker surface for period and event selection.`),e.component(`form-input`,`FormInput`,`form`,`Input wrapper with RHF-ready metadata and helper text.`),e.component(`form-select`,`FormSelect`,`form`,`Select wrapper for controlled local and async choice fields.`),e.component(`form-textarea`,`FormTextarea`,`form`,`Textarea wrapper with helper, validation and consistent spacing.`),e.component(`form-switch`,`FormSwitch`,`form`,`Boolean form control with shell-level label and hint handling.`),e.component(`form-date-picker`,`FormDatePicker`,`form`,`Popover date picker wrapper with RHF integration.`),e.component(`form-date-range-picker`,`FormDateRangePicker`,`form`,`Range date picker wrapper for planning and reporting flows.`),e.component(`alert-dialog`,`AlertDialog`,`overlay`,`Destructive confirmation dialog with loading-ready action states.`),e.component(`drawer`,`Drawer`,`overlay`,`Side panel for contextual details without leaving the page.`),e.component(`pagination`,`Pagination`,`navigation`,`Controlled page navigation with edge buttons and active state.`),e.component(`nav-tabs`,`NavTabs`,`navigation`,`Navigation tabs for switching related document sections.`),e.component(`page-tabs`,`PageTabs`,`navigation`,`Top-level page tab strip for route-sized sections.`),e.component(`stepper-tabs`,`StepperTabs`,`navigation`,`Step-like tabs for setup and onboarding progress.`),e.component(`password-input`,`PasswordInput`,`inputs`,`Password field with visibility toggle and secure autocomplete defaults.`),e.component(`number-input`,`NumberInput`,`inputs`,`Numeric entry for counts, thresholds, and reporting controls.`),e.component(`phone-input`,`PhoneInput`,`inputs`,`Phone input with stable raw and masked value handling.`),e.component(`money-input`,`MoneyInput`,`inputs`,`Currency entry for billing, finance and KPI editing flows.`),e.component(`simple-select`,`SimpleSelect`,`inputs`,`Static local-option select for dashboards and settings forms.`),e.component(`async-select`,`AsyncSelect`,`inputs`,`Remote-loaded select for large server-backed option sets.`),e.component(`combobox`,`Combobox`,`inputs`,`Searchable local choice input for reassignment and command-like selection.`),e.component(`slider`,`Slider`,`inputs`,`Single value range control for density, threshold, and score tuning.`),e.component(`range-slider`,`RangeSlider`,`inputs`,`Two-handle slider for min/max filtering.`),e.component(`rating`,`Rating`,`inputs`,`Compact score input for feedback and review flows.`),e.component(`otp-input`,`OtpInput`,`inputs`,`One-time code entry with fixed-length slots.`),e.component(`inline-editable`,`InlineEditable`,`inputs`,`Inline editing primitive for dense tables and configuration rows.`),e.component(`tag-input`,`TagInput`,`inputs`,`Tokenized text input for labels, skills, and quick filters.`),e.component(`progress`,`Progress`,`display`,`Linear progress with label, value formatter, tone and indeterminate state.`),e.component(`progress-circle`,`ProgressCircle`,`display`,`Compact circular progress for sidebars and status cards.`),e.component(`timeline`,`Timeline`,`display`,`Vertical or horizontal event stream for workflow history.`),e.component(`status-dot`,`StatusDot`,`display`,`Tiny live status indicator with optional pulse animation.`),e.component(`user-card`,`UserCard`,`display`,`User summary row with avatar, metadata and actions.`),e.component(`notification-center`,`NotificationCenter`,`display`,`Compact activity and notifications stream.`),e.component(`data-list`,`DataList`,`display`,`Readable title and description rows for compact operational lists.`),e.component(`status-legend`,`StatusLegend`,`display`,`Explain status meaning and counts in a compact legend.`),e.component(`trend-card`,`TrendCard`,`display`,`Metric summary card with trend context.`),e.component(`action-menu`,`ActionMenu`,`actions`,`Compact dropdown action menu for rows and cards.`),e.component(`button-group`,`ButtonGroup`,`actions`,`Grouped action buttons for view switching and compact controls.`),e.component(`quick-action-grid`,`QuickActionGrid`,`actions`,`Action launcher grid for dense dashboard shortcuts.`),e.component(`filter-bar`,`FilterBar`,`actions`,`Search, filters, active-count and reset actions in one toolbar.`),e.component(`app-header`,`AppHeader`,`layout`,`Sticky product header with left, center and right slots.`),e.component(`section-header`,`SectionHeader`,`layout`,`Reusable section title block with actions and metadata.`),e.component(`stat-card`,`StatCard`,`layout`,`Dashboard stat card for KPI, trend and helper text.`),e.component(`alert`,`Alert`,`feedback`,`Inline feedback banner for success, warning, info, and error states.`),e.component(`page-state`,`PageState`,`feedback`,`Full-page completion or blocked state with next actions.`),e.component(`calendar`,`Calendar`,`calendar`,`Single month calendar surface for date picker and scheduling flows.`),e.component(`file-upload`,`FileUpload`,`upload`,`Full file upload surface with dropzone, action button and helper text.`),e.component(`image-upload`,`ImageUpload`,`upload`,`Image upload pattern with preview-oriented copy.`),e.component(`file-dropzone`,`FileDropzone`,`upload`,`Lightweight file dropzone primitive for custom upload flows.`),e.component(`stepper`,`Stepper`,`wizard`,`Clickable step navigation for multi-step forms.`),e.component(`wizard`,`Wizard`,`wizard`,`Stepper, content and footer controls combined into one workflow.`),e.component(`resource-page`,`ResourcePage`,`patterns`,`Full resource index page shell for admin dashboards.`),e.component(`resource-detail-page`,`ResourceDetailPage`,`patterns`,`Detail page shell with title, metadata and sections.`)]);exports.registryQualityDemoRegistry=t;
|
|
@@ -13,20 +13,16 @@ var n = t([
|
|
|
13
13
|
e("form-switch", "FormSwitch", "form", "Boolean form control with shell-level label and hint handling."),
|
|
14
14
|
e("form-date-picker", "FormDatePicker", "form", "Popover date picker wrapper with RHF integration."),
|
|
15
15
|
e("form-date-range-picker", "FormDateRangePicker", "form", "Range date picker wrapper for planning and reporting flows."),
|
|
16
|
-
e("dialog-actions", "DialogActions", "overlay", "Modal footer action row with cancel, secondary and primary actions."),
|
|
17
16
|
e("alert-dialog", "AlertDialog", "overlay", "Destructive confirmation dialog with loading-ready action states."),
|
|
18
17
|
e("drawer", "Drawer", "overlay", "Side panel for contextual details without leaving the page."),
|
|
19
18
|
e("pagination", "Pagination", "navigation", "Controlled page navigation with edge buttons and active state."),
|
|
20
19
|
e("nav-tabs", "NavTabs", "navigation", "Navigation tabs for switching related document sections."),
|
|
21
|
-
e("anchor-nav", "AnchorNav", "navigation", "Section jump navigation for long detail pages."),
|
|
22
20
|
e("page-tabs", "PageTabs", "navigation", "Top-level page tab strip for route-sized sections."),
|
|
23
21
|
e("stepper-tabs", "StepperTabs", "navigation", "Step-like tabs for setup and onboarding progress."),
|
|
24
22
|
e("password-input", "PasswordInput", "inputs", "Password field with visibility toggle and secure autocomplete defaults."),
|
|
25
23
|
e("number-input", "NumberInput", "inputs", "Numeric entry for counts, thresholds, and reporting controls."),
|
|
26
24
|
e("phone-input", "PhoneInput", "inputs", "Phone input with stable raw and masked value handling."),
|
|
27
25
|
e("money-input", "MoneyInput", "inputs", "Currency entry for billing, finance and KPI editing flows."),
|
|
28
|
-
e("date-input", "DateInput", "inputs", "Single-date field for compact forms and filter bars."),
|
|
29
|
-
e("date-range-input", "DateRangeInput", "inputs", "Date range surface for reporting and booking windows."),
|
|
30
26
|
e("simple-select", "SimpleSelect", "inputs", "Static local-option select for dashboards and settings forms."),
|
|
31
27
|
e("async-select", "AsyncSelect", "inputs", "Remote-loaded select for large server-backed option sets."),
|
|
32
28
|
e("combobox", "Combobox", "inputs", "Searchable local choice input for reassignment and command-like selection."),
|
|
@@ -34,45 +30,26 @@ var n = t([
|
|
|
34
30
|
e("range-slider", "RangeSlider", "inputs", "Two-handle slider for min/max filtering."),
|
|
35
31
|
e("rating", "Rating", "inputs", "Compact score input for feedback and review flows."),
|
|
36
32
|
e("otp-input", "OtpInput", "inputs", "One-time code entry with fixed-length slots."),
|
|
37
|
-
e("color-input", "ColorInput", "inputs", "Theme and accent color field with native color selection."),
|
|
38
33
|
e("inline-editable", "InlineEditable", "inputs", "Inline editing primitive for dense tables and configuration rows."),
|
|
39
34
|
e("tag-input", "TagInput", "inputs", "Tokenized text input for labels, skills, and quick filters."),
|
|
40
|
-
e("description-list", "DescriptionList", "display", "Structured key-value details for entity, invoice and profile pages."),
|
|
41
35
|
e("progress", "Progress", "display", "Linear progress with label, value formatter, tone and indeterminate state."),
|
|
42
36
|
e("progress-circle", "ProgressCircle", "display", "Compact circular progress for sidebars and status cards."),
|
|
43
37
|
e("timeline", "Timeline", "display", "Vertical or horizontal event stream for workflow history."),
|
|
44
38
|
e("status-dot", "StatusDot", "display", "Tiny live status indicator with optional pulse animation."),
|
|
45
39
|
e("user-card", "UserCard", "display", "User summary row with avatar, metadata and actions."),
|
|
46
|
-
e("delta-badge", "DeltaBadge", "display", "Compact positive, negative, and risk deltas for metric summaries."),
|
|
47
|
-
e("entity-header", "EntityHeader", "display", "Top summary row for a customer, invoice, or workspace."),
|
|
48
40
|
e("notification-center", "NotificationCenter", "display", "Compact activity and notifications stream."),
|
|
49
|
-
e("entity-card", "EntityCard", "display", "Structured summary card with title, meta, state and actions."),
|
|
50
|
-
e("file-card", "FileCard", "display", "Compact file summary with state and actions."),
|
|
51
41
|
e("data-list", "DataList", "display", "Readable title and description rows for compact operational lists."),
|
|
52
42
|
e("status-legend", "StatusLegend", "display", "Explain status meaning and counts in a compact legend."),
|
|
53
43
|
e("trend-card", "TrendCard", "display", "Metric summary card with trend context."),
|
|
54
|
-
e("comparison-card", "ComparisonCard", "display", "Compare current and previous values in one compact card."),
|
|
55
44
|
e("action-menu", "ActionMenu", "actions", "Compact dropdown action menu for rows and cards."),
|
|
56
45
|
e("button-group", "ButtonGroup", "actions", "Grouped action buttons for view switching and compact controls."),
|
|
57
46
|
e("quick-action-grid", "QuickActionGrid", "actions", "Action launcher grid for dense dashboard shortcuts."),
|
|
58
|
-
e("filter-chips", "FilterChips", "actions", "Inline active filter summaries with clear and remove actions."),
|
|
59
|
-
e("data-table-saved-filters", "SavedFilterSelect", "actions", "Saved filter chips and quick view controls."),
|
|
60
47
|
e("filter-bar", "FilterBar", "actions", "Search, filters, active-count and reset actions in one toolbar."),
|
|
61
|
-
e("command-palette", "CommandPalette", "actions", "Keyboard command surface for global navigation and actions."),
|
|
62
48
|
e("app-header", "AppHeader", "layout", "Sticky product header with left, center and right slots."),
|
|
63
49
|
e("section-header", "SectionHeader", "layout", "Reusable section title block with actions and metadata."),
|
|
64
50
|
e("stat-card", "StatCard", "layout", "Dashboard stat card for KPI, trend and helper text."),
|
|
65
51
|
e("alert", "Alert", "feedback", "Inline feedback banner for success, warning, info, and error states."),
|
|
66
52
|
e("page-state", "PageState", "feedback", "Full-page completion or blocked state with next actions."),
|
|
67
|
-
e("data-table-pagination", "DataTablePagination", "data-table", "Pagination control used by DataTable pages."),
|
|
68
|
-
e("data-table-toolbar", "DataTableToolbar", "data-table", "Toolbar surface for DataTable search, filters and actions."),
|
|
69
|
-
e("data-table-column-visibility-menu", "DataTableColumnVisibilityMenu", "data-table", "Column visibility menu pattern for table views."),
|
|
70
|
-
e("data-table-select-column", "DataTableSelectColumn", "data-table", "Selection column pattern for bulk table workflows."),
|
|
71
|
-
e("data-table-sortable-header", "DataTableSortableHeader", "data-table", "Sortable header trigger with clear visual state."),
|
|
72
|
-
e("data-table-row-actions", "DataTableRowActions", "data-table", "Row action menu for inspect, duplicate and archive operations."),
|
|
73
|
-
e("data-table-actions-column", "DataTableActionsColumn", "data-table", "Reusable actions column for DataTable definitions."),
|
|
74
|
-
e("data-table-bulk-actions", "DataTableBulkActions", "data-table", "Bulk action bar for selected rows."),
|
|
75
|
-
e("data-table-view-presets", "DataTableViewPresets", "data-table", "Saved table view presets for operational dashboards."),
|
|
76
53
|
e("calendar", "Calendar", "calendar", "Single month calendar surface for date picker and scheduling flows."),
|
|
77
54
|
e("file-upload", "FileUpload", "upload", "Full file upload surface with dropzone, action button and helper text."),
|
|
78
55
|
e("image-upload", "ImageUpload", "upload", "Image upload pattern with preview-oriented copy."),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../components/ui/button/index.cjs"),n=require("../components/actions/action-menu.cjs"),r=require("../components/actions/button-group.cjs"),i=require("../components/inputs/clearable-input.cjs"),a=require("../components/inputs/password-input.cjs"),o=require("../components/inputs/search-input.cjs"),s=require("../components/ui/input/index.cjs"),c=require("../components/ui/badge/index.cjs"),l=require("../components/actions/quick-action-grid.cjs"),u=require("../components/layout/section-header.cjs"),d=require("../components/navigation/anchor-nav.cjs"),f=require("../components/navigation/nav-tabs.cjs"),p=require("../components/navigation/page-tabs.cjs"),m=require("../components/navigation/pagination.cjs"),h=require("../components/navigation/stepper-tabs.cjs"),g=require("../components/filters/filter-chips.cjs"),_=require("../components/filters/filter-bar.cjs"),v=require("../components/filters/saved-filter-select.cjs"),y=require("../components/overlay/alert-dialog.cjs"),b=require("../components/overlay/dialog-actions.cjs"),x=require("../components/overlay/drawer.cjs"),S=require("../components/inputs/async-select.cjs"),ee=require("../components/inputs/simple-select.cjs"),te=require("../components/inputs/color-input.cjs"),ne=require("../components/inputs/otp-input.cjs"),C=require("../components/inputs/rating.cjs"),w=require("../components/inputs/slider.cjs"),T=require("../components/inputs/tag-input.cjs"),E=require("../components/calendar/calendar.cjs"),D=require("../components/feedback/alert.cjs"),O=require("../components/feedback/page-state.cjs"),k=require("../components/display/description-list.cjs"),A=require("../components/display/entity-card.cjs"),j=require("../components/display/list.cjs"),M=require("../components/display/progress.cjs"),N=require("../components/display/progress-circle.cjs"),P=require("../components/display/status-dot.cjs"),F=require("../components/display/status-legend.cjs"),I=require("../components/display/timeline.cjs"),L=require("../components/display/user-card.cjs"),R=require("../components/display/smart-card.cjs"),z=require("../components/command/command-palette.cjs"),B=require("../components/upload/file-upload.cjs"),V=require("../components/upload/image-upload.cjs"),H=require("../components/upload/file-dropzone.cjs"),U=require("../components/wizard/stepper.cjs"),W=require("../components/wizard/wizard.cjs"),G=require("../components/layout/app-header.cjs"),K=require("../components/layout/stat-card.cjs"),re=require("../components/patterns/resource-detail-page.cjs"),q=require("../components/patterns/resource-page.cjs");let J=require("react");J=e.__toESM(J,1);let Y=require("lucide-react"),X=require("react/jsx-runtime");var ie=[Z(`dialog-actions`,`DialogActions`,`overlay`,`Modal footer action row with cancel, secondary and primary actions.`),Z(`alert-dialog`,`AlertDialog`,`overlay`,`Destructive confirmation dialog with loading-ready action states.`),Z(`drawer`,`Drawer`,`overlay`,`Side panel for contextual details without leaving the page.`),Z(`pagination`,`Pagination`,`navigation`,`Controlled page navigation with edge buttons and active state.`),Z(`nav-tabs`,`NavTabs`,`navigation`,`Navigation tabs for switching related document sections.`),Z(`clearable-input`,`ClearableInput`,`inputs`,`Input with clear action, Escape handling and focus restore.`),Z(`search-input`,`SearchInput`,`inputs`,`Search field with icon, count, shortcut and debounce-friendly value handling.`),Z(`password-input`,`PasswordInput`,`inputs`,`Password field with visibility toggle and secure autocomplete defaults.`),Z(`slider`,`Slider`,`inputs`,`Single value range control for density, threshold, and score tuning.`),Z(`range-slider`,`RangeSlider`,`inputs`,`Two-handle slider for min/max filtering.`),Z(`rating`,`Rating`,`inputs`,`Compact score input for feedback and review flows.`),Z(`otp-input`,`OtpInput`,`inputs`,`One-time code entry with fixed-length slots.`),Z(`color-input`,`ColorInput`,`inputs`,`Theme and accent color field with native color selection.`),Z(`tag-input`,`TagInput`,`inputs`,`Tokenized text input for labels, skills, and quick filters.`),Z(`description-list`,`DescriptionList`,`display`,`Structured key-value details for entity, invoice and profile pages.`),Z(`progress`,`Progress`,`display`,`Linear progress with label, value formatter, tone and indeterminate state.`),Z(`progress-circle`,`ProgressCircle`,`display`,`Compact circular progress for sidebars and status cards.`),Z(`timeline`,`Timeline`,`display`,`Vertical or horizontal event stream for workflow history.`),Z(`status-dot`,`StatusDot`,`display`,`Tiny live status indicator with optional pulse animation.`),Z(`user-card`,`UserCard`,`display`,`User summary row with avatar, metadata and actions.`),Z(`delta-badge`,`DeltaBadge`,`display`,`Compact positive, negative, and risk deltas for metric summaries.`),Z(`entity-header`,`EntityHeader`,`display`,`Top summary row for a customer, invoice, or workspace.`),Z(`notification-center`,`NotificationCenter`,`display`,`Compact activity and notifications stream.`),Z(`entity-card`,`EntityCard`,`display`,`Structured summary card with title, meta, state and actions.`),Z(`file-card`,`FileCard`,`display`,`Compact file summary with state and actions.`),Z(`data-list`,`DataList`,`display`,`Readable title and description rows for compact operational lists.`),Z(`status-legend`,`StatusLegend`,`display`,`Explain status meaning and counts in a compact legend.`),Z(`trend-card`,`TrendCard`,`display`,`Metric summary card with trend context.`),Z(`comparison-card`,`ComparisonCard`,`display`,`Compare current and previous values in one compact card.`),Z(`action-menu`,`ActionMenu`,`actions`,`Compact dropdown action menu for rows and cards.`),Z(`button-group`,`ButtonGroup`,`actions`,`Grouped action buttons for view switching and compact controls.`),Z(`quick-action-grid`,`QuickActionGrid`,`actions`,`Action launcher grid for dense dashboard shortcuts.`),Z(`filter-chips`,`FilterChips`,`actions`,`Inline active filter summaries with clear and remove actions.`),Z(`data-table-saved-filters`,`SavedFilterSelect`,`actions`,`Saved filter chips and quick view controls.`),Z(`app-header`,`AppHeader`,`layout`,`Sticky product header with left, center and right slots.`),Z(`section-header`,`SectionHeader`,`layout`,`Reusable section title block with actions and metadata.`),Z(`stat-card`,`StatCard`,`layout`,`Dashboard stat card for KPI, trend and helper text.`),Z(`filter-bar`,`FilterBar`,`actions`,`Search, filters, active-count and reset actions in one toolbar.`),Z(`anchor-nav`,`AnchorNav`,`navigation`,`Section jump navigation for long detail pages.`),Z(`page-tabs`,`PageTabs`,`navigation`,`Top-level page tab strip for route-sized sections.`),Z(`stepper-tabs`,`StepperTabs`,`navigation`,`Step-like tabs for setup and onboarding progress.`),Z(`alert`,`Alert`,`feedback`,`Inline feedback banner for success, warning, info, and error states.`),Z(`page-state`,`PageState`,`feedback`,`Full-page completion or blocked state with next actions.`),Z(`data-table-pagination`,`DataTablePagination`,`data-table`,`Pagination control used by DataTable pages.`),Z(`data-table-toolbar`,`DataTableToolbar`,`data-table`,`Toolbar surface for DataTable search, filters and actions.`),Z(`data-table-column-visibility-menu`,`DataTableColumnVisibilityMenu`,`data-table`,`Column visibility menu pattern for table views.`),Z(`data-table-select-column`,`DataTableSelectColumn`,`data-table`,`Selection column pattern for bulk table workflows.`),Z(`data-table-sortable-header`,`DataTableSortableHeader`,`data-table`,`Sortable header trigger with clear visual state.`),Z(`data-table-row-actions`,`DataTableRowActions`,`data-table`,`Row action menu for inspect, duplicate and archive operations.`),Z(`data-table-actions-column`,`DataTableActionsColumn`,`data-table`,`Reusable actions column for DataTable definitions.`),Z(`data-table-bulk-actions`,`DataTableBulkActions`,`data-table`,`Bulk action bar for selected rows.`),Z(`data-table-view-presets`,`DataTableViewPresets`,`data-table`,`Saved table view presets for operational dashboards.`),Z(`calendar`,`Calendar`,`calendar`,`Single month calendar surface for date picker and scheduling flows.`),Z(`file-upload`,`FileUpload`,`upload`,`Full file upload surface with dropzone, action button and helper text.`),Z(`image-upload`,`ImageUpload`,`upload`,`Image upload pattern with preview-oriented copy.`,`ImageUpload`),Z(`file-dropzone`,`FileDropzone`,`upload`,`Lightweight file dropzone primitive for custom upload flows.`),Z(`stepper`,`Stepper`,`wizard`,`Clickable step navigation for multi-step forms.`),Z(`wizard`,`Wizard`,`wizard`,`Stepper, content and footer controls combined into one workflow.`),Z(`command-palette`,`CommandPalette`,`actions`,`Keyboard command surface for global navigation and actions.`),Z(`resource-page`,`ResourcePage`,`patterns`,`Full resource index page shell for admin dashboards.`),Z(`resource-detail-page`,`ResourceDetailPage`,`patterns`,`Detail page shell with title, metadata and sections.`)],ae=Object.fromEntries(ie.map(e=>[e.slug,{mock:oe(e),Showcase:t=>(0,X.jsx)(ce,{definition:e,...t})}]));function Z(e,t,n,r,i=t){let a=Se(e);return{slug:e,title:a,component:t,kind:n,summary:r,importName:i,highlights:[`${a} uses the real ${t} surface.`,`CLI, import and preview stay scoped to this component.`,`Preview wrappers stay light so the component UI remains visible.`],scenarios:[{title:`Use when`,description:r},{title:`Implementation`,description:`Add ${e}, import ${i}, then pass controlled props where the API requires state.`}]}}function oe(e){return{cliCommand:`npx tembro add ${e.slug}`,code:se(e),highlights:e.highlights,scenarios:e.scenarios,capabilityNotes:[`Add ${e.slug} into your local source with the CLI.`,`Import from your configured components alias after the file is copied.`]}}function se(e){let t=e.importName??e.component;return`import { ${t} } from "@/components/${e.slug}"\n\nexport function Demo() {\n return <${t} />\n}`}function ce({definition:e,state:t,setState:n}){return(0,X.jsxs)(`div`,{className:`space-y-5`,children:[(0,X.jsxs)(`header`,{className:`space-y-2`,children:[(0,X.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:e.component}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h3`,{className:`aui-text-strong text-2xl font-semibold tracking-tight`,children:e.title}),(0,X.jsx)(`p`,{className:`aui-text-muted mt-2 max-w-2xl text-sm leading-6`,children:e.summary})]})]}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4 sm:p-5`,children:le(e,t,n)})]})}function le(e,t,n){return e.kind===`inputs`?(0,X.jsx)(ue,{slug:e.slug,state:t,setState:n}):e.kind===`form`?(0,X.jsx)(de,{state:t,setState:n}):e.kind===`overlay`?(0,X.jsx)(fe,{slug:e.slug}):e.kind===`navigation`?(0,X.jsx)(pe,{slug:e.slug}):e.kind===`feedback`?(0,X.jsx)(me,{slug:e.slug}):e.kind===`display`?(0,X.jsx)(Q,{slug:e.slug}):e.kind===`actions`?(0,X.jsx)(he,{slug:e.slug,state:t,setState:n}):e.kind===`layout`?(0,X.jsx)(ge,{slug:e.slug}):e.kind===`data-table`?(0,X.jsx)(_e,{slug:e.slug}):e.kind===`calendar`?(0,X.jsx)(ve,{}):e.kind===`upload`?(0,X.jsx)(ye,{slug:e.slug}):e.kind===`wizard`?(0,X.jsx)(be,{slug:e.slug}):e.kind===`patterns`?(0,X.jsx)(xe,{slug:e.slug}):null}function ue({slug:e,state:t,setState:n}){let r=t.textValue,c=e=>n({textValue:e});if(e===`search-input`)return(0,X.jsx)(o.SearchInput,{value:r,onValueChange:c,resultCount:12,shortcut:`Ctrl K`,placeholder:`Search customers...`});if(e===`password-input`)return(0,X.jsx)(a.PasswordInput,{value:`secret-token`,onValueChange:c,placeholder:`Password`});if(e===`clearable-input`)return(0,X.jsx)(i.ClearableInput,{value:r,onValueChange:c,placeholder:`Clearable input`});if(e===`slider`)return(0,X.jsx)(w.Slider,{label:`Density`,description:`Tune content density.`,defaultValue:64,showValue:!0});if(e===`range-slider`)return(0,X.jsx)(w.RangeSlider,{label:`Revenue range`,description:`Filter between two values.`,defaultValue:[20,80],showValue:!0});if(e===`rating`)return(0,X.jsx)(C.Rating,{defaultValue:4,labels:{clear:`Reset`}});if(e===`otp-input`)return(0,X.jsx)(ne.OtpInput,{value:r.replace(/\D/g,``).slice(0,6),onValueChange:c});if(e===`color-input`)return(0,X.jsx)(te.ColorInput,{defaultValue:`#22c55e`,label:`Accent color`,description:`Theme token preview.`});if(e===`tag-input`)return(0,X.jsx)(T.TagInput,{defaultValue:[`dashboard`,`beta`,`ops`],placeholder:`Add label`});if(e===`simple-select`)return(0,X.jsxs)(`div`,{className:`grid gap-4`,children:[(0,X.jsx)(ee.SimpleSelect,{value:`private`,onValueChange:()=>void 0,options:[{value:`public`,label:`Public`,description:`Visible to all users`},{value:`private`,label:`Private`,description:`Restricted to invited members`},{value:`internal`,label:`Internal`,description:`Only workspace maintainers`},{value:`archived`,label:`Archived`,description:`History only`,disabled:!0}],placeholder:`Visibility`,searchable:!0,clearable:!0}),(0,X.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Static options with lightweight search.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Clear action stays inside the trigger surface.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Use before moving to AsyncSelect.`})]})]});if(e===`async-select`){let e=[{value:`north`,label:`North Region`,description:`Sales ops`},{value:`south`,label:`South Region`,description:`Support team`},{value:`west`,label:`West Region`,description:`Billing operations`}];return(0,X.jsxs)(`div`,{className:`grid gap-4`,children:[(0,X.jsx)(S.AsyncSelect,{value:`north`,onValueChange:()=>void 0,loadOptions:async t=>{let n=t.trim().toLowerCase();return n?e.filter(e=>String(e.label).toLowerCase().includes(n)):e},defaultOptions:e,minSearchLength:1,clearable:!0}),(0,X.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Remote-ready select surface.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Hydration and clear behavior stay aligned.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Good for large or changing datasets.`})]})]})}return(0,X.jsx)(s.Input,{value:r,onChange:e=>n({textValue:e.currentTarget.value}),placeholder:`Unified input`})}function de({state:e,setState:t}){return(0,X.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,X.jsxs)(`label`,{className:`grid gap-2`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium aui-text-strong`,children:`Email address`}),(0,X.jsx)(s.Input,{value:e.textValue,onChange:e=>t({textValue:e.currentTarget.value})}),(0,X.jsx)(`span`,{className:`text-xs aui-text-muted`,children:`Form wrappers keep label, hint and error spacing consistent.`})]}),(0,X.jsxs)(`label`,{className:`grid gap-2`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium aui-text-strong`,children:`Status`}),(0,X.jsx)(o.SearchInput,{value:`Active customers`,resultCount:7,readOnly:!0}),(0,X.jsx)(`span`,{className:`text-xs text-emerald-500`,children:`Ready to submit`})]})]})}function fe({slug:e}){return e===`dialog-actions`?(0,X.jsx)(`div`,{className:`rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:(0,X.jsxs)(b.DialogActions,{align:`end`,children:[(0,X.jsx)(b.DialogActionButton,{variant:`ghost`,children:`Cancel`}),(0,X.jsx)(b.DialogActionButton,{variant:`outline`,children:`Save draft`}),(0,X.jsx)(b.DialogActionButton,{children:`Publish`})]})}):e===`alert-dialog`?(0,X.jsx)(y.AlertDialog,{open:!1,title:`Archive invoice?`,description:`This keeps the invoice readable but removes it from active queues.`,children:(0,X.jsx)(t.Button,{variant:`destructive`,children:`Open alert`})}):e===`drawer`?(0,X.jsx)(x.Drawer,{open:!1,trigger:(0,X.jsx)(t.Button,{variant:`outline`,children:`Open drawer`}),title:`Customer details`,description:`Side panel for fast inspection.`,children:(0,X.jsx)(k.DescriptionList,{items:[{key:`plan`,label:`Plan`,value:`Scale`},{key:`owner`,label:`Owner`,value:`Azamat UI`}]})}):(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,X.jsx)(t.Button,{variant:`ghost`,children:`Cancel`}),(0,X.jsx)(t.Button,{variant:`outline`,children:`Save draft`}),(0,X.jsx)(t.Button,{children:`Publish`})]})}function pe({slug:e}){return e===`pagination`?(0,X.jsx)(m.Pagination,{page:3,pageCount:9,onPageChange:()=>void 0}):e===`anchor-nav`?(0,X.jsx)(d.AnchorNav,{orientation:`horizontal`,title:`Sections`,items:[{key:`overview`,label:`Overview`,href:`#overview`,active:!0},{key:`usage`,label:`Usage`,href:`#usage`},{key:`api`,label:`API`,href:`#api`}]}):e===`page-tabs`?(0,X.jsx)(p.PageTabs,{value:`overview`,variant:`pills`,items:[{value:`overview`,label:`Overview`},{value:`usage`,label:`Usage`},{value:`api`,label:`API`,badge:`3`}]}):e===`stepper-tabs`?(0,X.jsx)(h.StepperTabs,{value:`billing`,items:[{value:`profile`,label:`Profile`,description:`Team and owner details`,completed:!0},{value:`billing`,label:`Billing`,description:`Payment and invoices`},{value:`review`,label:`Review`,description:`Confirm release`}]}):(0,X.jsx)(f.NavTabs,{value:`overview`,items:[{value:`overview`,label:`Overview`},{value:`usage`,label:`Usage`},{value:`api`,label:`API`}]})}function me({slug:e}){return e===`alert`?(0,X.jsx)(D.Alert,{tone:`warning`,title:`Review needed`,description:`Billing rules changed and one approval is pending.`,action:(0,X.jsx)(t.Button,{size:`sm`,children:`Open`})}):e===`page-state`?(0,X.jsx)(O.PageState,{title:`Workspace connected`,description:`The route is ready to accept live data and team actions.`,tone:`success`,action:(0,X.jsx)(t.Button,{size:`sm`,children:`Continue`})}):(0,X.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,X.jsx)($,{tone:`success`,children:`Live`}),(0,X.jsx)($,{tone:`warning`,children:`Needs review`}),(0,X.jsx)($,{tone:`danger`,children:`Blocked`}),(0,X.jsx)($,{tone:`info`,children:`Queued`})]})}function Q({slug:e}){return e===`description-list`?(0,X.jsx)(k.DescriptionList,{title:`Invoice details`,description:`Structured facts with responsive columns.`,items:[{key:`id`,label:`Invoice`,value:`#4821`},{key:`amount`,label:`Amount`,value:`$12,420`},{key:`status`,label:`Status`,value:(0,X.jsx)($,{tone:`success`,children:`Paid`})},{key:`owner`,label:`Owner`,value:`Finance team`}]}):e===`progress`?(0,X.jsx)(M.Progress,{label:`Migration progress`,description:`Production rollout`,value:68,tone:`success`,showValue:!0}):e===`progress-circle`?(0,X.jsx)(N.ProgressCircle,{value:72,label:`Profile completed`}):e===`timeline`?(0,X.jsx)(I.Timeline,{items:[{key:`created`,title:`Created`,description:`Invoice generated`,time:`09:20`,tone:`success`},{key:`review`,title:`Review`,description:`Finance team assigned`,time:`10:05`,tone:`info`},{key:`approve`,title:`Approval`,description:`Waiting for manager`,time:`Now`,tone:`warning`}],pending:!0,pendingLabel:`Paid`}):e===`metric-card`||e===`stat-card`?(0,X.jsx)(K.StatCard,{title:`Revenue`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},icon:(0,X.jsx)(Y.LayoutDashboardIcon,{})}):e===`status-dot`?(0,X.jsxs)(`div`,{className:`grid gap-3`,children:[(0,X.jsx)(P.StatusDot,{tone:`success`,pulse:!0,label:`API healthy`}),(0,X.jsx)(P.StatusDot,{tone:`warning`,label:`Sync delayed`}),(0,X.jsx)(P.StatusDot,{tone:`danger`,label:`Webhook failed`})]}):e===`delta-badge`?(0,X.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,X.jsx)(c.Badge,{variant:`secondary`,children:`+12.4%`}),(0,X.jsx)(c.Badge,{variant:`outline`,children:`-3.1%`}),(0,X.jsx)(c.Badge,{variant:`destructive`,children:`Risk`})]}):e===`entity-header`?(0,X.jsx)(`div`,{className:`rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between`,children:[(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(c.Badge,{variant:`outline`,children:`Customer`}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h3`,{className:`text-xl font-semibold`,children:`Acme Holdings`}),(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Enterprise account with billing and admin ownership.`})]})]}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(t.Button,{variant:`outline`,size:`sm`,children:`Archive`}),(0,X.jsx)(t.Button,{size:`sm`,children:`Edit`})]})]})}):e===`notification-center`?(0,X.jsx)(j.List,{items:[{key:`1`,title:`Build completed`,description:`Dashboard docs deployment is live.`,extra:`Now`},{key:`2`,title:`New comment`,description:`Review requested on DataTable API.`,extra:`8m`},{key:`3`,title:`Publish reminder`,description:`Package version is ready for release.`,extra:`1h`}]}):e===`entity-card`||e===`file-card`?(0,X.jsx)(A.EntityCard,{title:e===`file-card`?`Design-spec.pdf`:`Azamat Workspace`,description:e===`file-card`?`Shared with 4 reviewers.`:`Admin console and live dashboard route.`,status:(0,X.jsx)(c.Badge,{variant:`secondary`,children:`Live`}),meta:e===`file-card`?`2.4 MB`:`Updated 8 min ago`,actions:(0,X.jsx)(t.Button,{size:`sm`,variant:`outline`,children:`Open`})}):e===`data-list`?(0,X.jsx)(j.List,{items:[{key:`1`,title:`Enterprise plan`,description:`Priority support and SSO`,extra:`$499`},{key:`2`,title:`Growth plan`,description:`Most used by product teams`,extra:`$199`},{key:`3`,title:`Starter plan`,description:`Lightweight team setup`,extra:`$49`}]}):e===`status-legend`?(0,X.jsx)(F.StatusLegend,{title:`Delivery states`,description:`Explain what each state means and how often it appears.`,orientation:`grid`,items:[{key:`live`,label:`Live`,description:`Healthy production routes`,tone:`success`,count:18},{key:`review`,label:`Review`,description:`Waiting for QA approval`,tone:`warning`,count:4},{key:`blocked`,label:`Blocked`,description:`Needs engineering action`,tone:`danger`,count:1}]}):e===`trend-card`||e===`comparison-card`?(0,X.jsx)(K.StatCard,{title:e===`trend-card`?`Weekly revenue`:`Current vs previous`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},icon:(0,X.jsx)(Y.LayoutDashboardIcon,{})}):e===`info-card`?(0,X.jsxs)(`div`,{className:`grid gap-4`,children:[(0,X.jsx)(R.SmartCard,{eyebrow:`Summary`,title:`Workspace`,description:`Reusable card surface with header, actions and metadata.`,actions:(0,X.jsx)(t.Button,{size:`sm`,variant:`outline`,children:`Open`}),selected:!0,children:(0,X.jsx)(`p`,{className:`aui-text-muted mt-2 text-sm`,children:`Keep metadata, helper copy and compact actions in one reusable card surface.`})}),(0,X.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Vertical and horizontal layout support.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Selected and action-safe surfaces.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Useful for summary panels and detail sidebars.`})]})]}):(0,X.jsx)(L.UserCard,{name:`Azamat Jurayev`,description:`Product designer and maintainer`,meta:`Admin workspace`,actions:(0,X.jsx)(t.Button,{size:`sm`,children:`Invite`})})}function he({slug:e,state:i,setState:a}){return e===`filter-bar`?(0,X.jsx)(_.FilterBar,{search:(0,X.jsx)(o.SearchInput,{value:i.textValue,onValueChange:e=>a({textValue:e}),placeholder:`Search invoices...`}),activeCount:2,onReset:()=>a({textValue:``}),filters:(0,X.jsxs)(t.Button,{variant:`outline`,size:`sm`,children:[(0,X.jsx)(Y.FilterIcon,{"data-icon":`inline-start`}),`Status`]}),actions:(0,X.jsx)(t.Button,{size:`sm`,children:`Export`})}):e===`command-palette`?(0,X.jsxs)(`div`,{className:`grid gap-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] px-3 py-2`,children:[(0,X.jsx)(Y.SearchIcon,{className:`size-4 aui-text-muted`}),(0,X.jsx)(`span`,{className:`text-sm aui-text-muted`,children:`Command palette preview: search routes, components and actions.`})]}),(0,X.jsx)(z.CommandPalette,{open:!1,onOpenChange:()=>void 0,groups:[{id:`navigation`,label:`Navigation`,items:[{id:`docs`,label:`Open docs`,icon:(0,X.jsx)(Y.SearchIcon,{className:`size-4`})},{id:`components`,label:`Browse components`,icon:(0,X.jsx)(Y.LayoutDashboardIcon,{className:`size-4`})}]}]})]}):e===`button-group`?(0,X.jsx)(r.ButtonGroup,{items:[{key:`day`,label:`Day`},{key:`week`,label:`Week`},{key:`month`,label:`Month`}]}):e===`quick-action-grid`?(0,X.jsx)(l.QuickActionGrid,{columns:3,items:[{key:`new`,label:`New invoice`,description:`Create a fresh billing row.`,badge:`N`},{key:`import`,label:`Import CSV`,description:`Bring finance data into the table.`,badge:`I`},{key:`share`,label:`Share workspace`,description:`Invite team members to the route.`,badge:`S`}]}):e===`filter-chips`||e===`data-table-saved-filters`?(0,X.jsxs)(`div`,{className:`grid gap-3`,children:[(0,X.jsx)(g.FilterChips,{chips:[{key:`status`,label:`Status`,value:`Active`,tone:`success`},{key:`owner`,label:`Owner`,value:`Azamat`,tone:`default`},{key:`region`,label:`Region`,value:`APAC`,tone:`info`}],onRemove:()=>void 0,onClear:()=>void 0}),e===`data-table-saved-filters`?(0,X.jsx)(r.ButtonGroup,{attached:!1,items:[{key:`default`,label:`Default`,variant:`secondary`},{key:`billing`,label:`Billing`},{key:`ops`,label:`Operations`}]}):null]}):e===`saved-filter-select`?(0,X.jsxs)(`div`,{className:`grid gap-4`,children:[(0,X.jsx)(v.SavedFilterSelect,{value:`billing`,onValueChange:()=>void 0,onSave:()=>void 0,onDelete:()=>void 0,filters:[{value:`billing`,label:`Billing`,description:`Invoices and payment status`},{value:`ops`,label:`Operations`,description:`Queues and workload`},{value:`owners`,label:`Owner: Azamat`,description:`Assigned records only`}]}),(0,X.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Named view switching for table routes.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Delete action stays isolated from parent selection.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Useful in finance, ops and admin dashboards.`})]})]}):(0,X.jsxs)(`div`,{className:`flex items-center justify-between rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Invoice #4821`}),(0,X.jsx)(`p`,{className:`text-sm aui-text-muted`,children:`Pending approval`})]}),(0,X.jsx)(n.ActionMenu,{label:`Actions`,actions:[{key:`open`,label:`Open`,icon:(0,X.jsx)(Y.ChevronRightIcon,{className:`size-4`})},{key:`download`,label:`Download`,icon:(0,X.jsx)(Y.DownloadIcon,{className:`size-4`})},{key:`archive`,label:`Archive`,icon:(0,X.jsx)(Y.ArchiveIcon,{className:`size-4`}),destructive:!0}],trigger:(0,X.jsx)(t.Button,{variant:`outline`,size:`icon-sm`,"aria-label":`Open actions`,children:(0,X.jsx)(Y.MoreHorizontalIcon,{})})})]})}function ge({slug:e}){return e===`app-header`?(0,X.jsx)(G.AppHeader,{sticky:!1,left:(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Y.LayoutDashboardIcon,{className:`size-4`}),(0,X.jsx)(`span`,{className:`font-medium`,children:`Dashboard`})]}),center:(0,X.jsx)(c.Badge,{variant:`secondary`,children:`Preview`}),right:(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(t.Button,{variant:`ghost`,size:`icon-sm`,"aria-label":`Notifications`,children:(0,X.jsx)(Y.BellIcon,{})}),(0,X.jsx)(t.Button,{size:`sm`,children:`Deploy`})]}),className:`rounded-xl border border-[color:var(--aui-divider)]`}):e===`section-header`?(0,X.jsx)(u.SectionHeader,{eyebrow:`Components`,title:`Production-ready surfaces`,description:`SectionHeader keeps copy, metadata and actions aligned.`,actions:(0,X.jsx)(t.Button,{size:`sm`,children:`Add component`})}):(0,X.jsx)(K.StatCard,{title:`Revenue`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},helperText:`StatCard keeps KPI, helper text and trend in one compact tile.`})}function _e({slug:e}){return(0,X.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-[color:var(--aui-divider)] p-3`,children:[(0,X.jsx)(o.SearchInput,{value:``,placeholder:`Search rows...`,className:`max-w-xs`,readOnly:!0}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsxs)(t.Button,{variant:`outline`,size:`sm`,children:[(0,X.jsx)(Y.FilterIcon,{"data-icon":`inline-start`}),`Filters`]}),(0,X.jsx)(t.Button,{size:`sm`,children:`Create`})]})]}),(0,X.jsxs)(`div`,{className:`grid grid-cols-[40px_1fr_120px_72px] border-b border-[color:var(--aui-divider)] px-3 py-2 text-xs font-semibold uppercase tracking-[0.18em] aui-text-muted`,children:[(0,X.jsx)(`span`,{children:(0,X.jsx)(`input`,{type:`checkbox`,"aria-label":`Select rows`})}),(0,X.jsx)(`span`,{children:`Name`}),(0,X.jsx)(`span`,{children:`Status`}),(0,X.jsx)(`span`,{children:`Actions`})]}),[`Azamat UI`,`Registry`,`Dashboard`].map((e,n)=>(0,X.jsxs)(`div`,{className:`grid grid-cols-[40px_1fr_120px_72px] items-center border-b border-[color:var(--aui-divider)] px-3 py-3 last:border-b-0`,children:[(0,X.jsx)(`span`,{children:(0,X.jsx)(`input`,{type:`checkbox`,"aria-label":`Select ${e}`,defaultChecked:n===0})}),(0,X.jsx)(`span`,{className:`font-medium aui-text-strong`,children:e}),(0,X.jsx)(`span`,{children:(0,X.jsx)($,{tone:n===2?`warning`:`success`,children:n===2?`Review`:`Live`})}),(0,X.jsx)(`span`,{children:(0,X.jsx)(t.Button,{variant:`ghost`,size:`icon-sm`,"aria-label":`Row actions`,children:(0,X.jsx)(Y.MoreHorizontalIcon,{})})})]},e)),(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-[color:var(--aui-divider)] p-3 text-sm aui-text-muted`,children:[(0,X.jsxs)(`span`,{children:[{"data-table-pagination":`Pagination footer`,"data-table-toolbar":`Search and filter toolbar`,"data-table-column-visibility-menu":`Column visibility`,"data-table-select-column":`Row selection`,"data-table-sortable-header":`Sortable header`,"data-table-row-actions":`Row actions`,"data-table-actions-column":`Actions column`,"data-table-bulk-actions":`Bulk action bar`,"data-table-view-presets":`Saved view presets`}[e]??`DataTable part`,` preview`]}),(0,X.jsx)(m.Pagination,{page:1,pageCount:4,onPageChange:()=>void 0,showEdges:!1})]})]})}function ve(){return(0,X.jsx)(E.Calendar,{value:`2026-06-18`,defaultMonth:`2026-06-01`,onValueChange:()=>void 0})}function ye({slug:e}){return e===`file-dropzone`?(0,X.jsx)(H.FileDropzone,{label:`Drop contract files`,description:`PDF, PNG or CSV up to 10MB.`}):e===`file-upload`?(0,X.jsxs)(`div`,{className:`grid gap-4`,children:[(0,X.jsx)(B.FileUpload,{dropzoneLabel:`Upload documents`,dropzoneDescription:`Drag files here or choose from your device.`,buttonLabel:`Choose files`,helperText:`Supports PDF, CSV and images.`}),(0,X.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Dropzone click and nested actions stay isolated.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Rejected states and helper copy live in the same component.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Use for production file routes, not just decorative previews.`})]})]}):e===`image-upload`?(0,X.jsxs)(`div`,{className:`grid gap-4`,children:[(0,X.jsx)(V.ImageUpload,{dropzoneLabel:`Upload product image`,helperText:`Preview-friendly upload for gallery and hero assets.`}),(0,X.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Image preview is part of the reusable component.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Remove action stays separate from the parent dropzone surface.`}),(0,X.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Good for template thumbnails and marketing assets.`})]})]}):(0,X.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-[160px_1fr] md:items-center`,children:[(0,X.jsx)(`div`,{className:`flex aspect-square items-center justify-center rounded-2xl border border-dashed border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:(0,X.jsx)(Y.UploadCloudIcon,{className:`size-8 aui-text-muted`})}),(0,X.jsx)(H.FileDropzone,{label:`Upload product image`,description:`Shows the image-upload flow without custom CSS.`,accept:`image/*`})]})}function be({slug:e}){let t=[{id:`profile`,title:`Profile`,description:`Account details`,completed:!0},{id:`billing`,title:`Billing`,description:`Payment setup`},{id:`review`,title:`Review`,description:`Confirm data`}];return e===`stepper`?(0,X.jsx)(U.Stepper,{steps:t,currentStep:`billing`,onStepChange:()=>void 0}):(0,X.jsx)(W.Wizard,{steps:t,currentStep:`billing`,onNext:()=>void 0,onPrevious:()=>void 0,onFinish:()=>void 0,children:(0,X.jsxs)(`div`,{className:`rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,X.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Billing setup`}),(0,X.jsx)(`p`,{className:`mt-1 text-sm aui-text-muted`,children:`Wizard combines steps, content and footer controls.`})]})})}function xe({slug:e}){return e===`resource-detail-page`?(0,X.jsx)(re.ResourceDetailPage,{title:`Customer profile`,description:`ResourceDetailPage organizes detail screens.`,actions:(0,X.jsx)(t.Button,{size:`sm`,children:`Edit`}),children:(0,X.jsx)(q.ResourcePageSection,{title:`Account`,children:(0,X.jsx)(k.DescriptionList,{items:[{key:`plan`,label:`Plan`,value:`Scale`},{key:`owner`,label:`Owner`,value:`Design team`}]})})}):(0,X.jsx)(q.ResourcePage,{title:`Customers`,description:`ResourcePage combines header, stats, filters and sections.`,actions:(0,X.jsx)(t.Button,{size:`sm`,children:`New customer`}),stats:(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsx)(K.StatCard,{title:`Active`,value:`2,418`,trend:{value:`+8%`,tone:`success`}}),(0,X.jsx)(K.StatCard,{title:`Health`,value:`94%`,trend:{value:`Stable`,tone:`info`}})]}),filters:(0,X.jsx)(_.FilterBar,{search:(0,X.jsx)(o.SearchInput,{value:``,placeholder:`Search...`,readOnly:!0}),activeCount:1}),children:(0,X.jsx)(q.ResourcePageSection,{title:`Recent activity`,children:(0,X.jsx)(I.Timeline,{items:[{key:`a`,title:`Customer added`,description:`Acme workspace`,tone:`success`},{key:`b`,title:`Plan updated`,description:`Scale plan enabled`,tone:`info`}]})})})}function Se(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function $({tone:e,children:t}){return(0,X.jsx)(c.Badge,{variant:{success:`secondary`,warning:`outline`,danger:`destructive`,info:`outline`}[e],children:t})}exports.registrySpecificDemoRegistry=ae;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../components/ui/button/index.cjs"),n=require("../components/actions/action-menu.cjs"),r=require("../components/actions/button-group.cjs"),i=require("../components/inputs/password-input.cjs"),a=require("../components/inputs/search-input.cjs"),o=require("../components/ui/input/index.cjs"),s=require("../components/ui/badge/index.cjs"),c=require("../components/actions/quick-action-grid.cjs"),l=require("../components/layout/section-header.cjs"),u=require("../components/navigation/nav-tabs.cjs"),ee=require("../components/navigation/page-tabs.cjs"),d=require("../components/navigation/pagination.cjs"),f=require("../components/navigation/stepper-tabs.cjs"),p=require("../components/filters/filter-bar.cjs"),te=require("../components/filters/saved-filter-select.cjs"),m=require("../components/overlay/alert-dialog.cjs"),h=require("../components/overlay/drawer.cjs"),g=require("../components/inputs/async-select.cjs"),_=require("../components/inputs/simple-select.cjs"),v=require("../components/inputs/otp-input.cjs"),y=require("../components/inputs/rating.cjs"),b=require("../components/inputs/slider.cjs"),x=require("../components/inputs/tag-input.cjs"),S=require("../components/feedback/alert.cjs"),C=require("../components/feedback/page-state.cjs"),w=require("../components/display/description-list.cjs"),T=require("../components/display/list.cjs"),E=require("../components/display/progress.cjs"),D=require("../components/display/progress-circle.cjs"),O=require("../components/display/status-dot.cjs"),k=require("../components/display/status-legend.cjs"),A=require("../components/display/timeline.cjs"),j=require("../components/display/user-card.cjs"),M=require("../components/layout/stat-card.cjs"),N=require("../components/display/smart-card.cjs"),P=require("../components/calendar/calendar.cjs"),F=require("../components/upload/file-upload.cjs"),I=require("../components/upload/image-upload.cjs"),L=require("../components/upload/file-dropzone.cjs"),R=require("../components/wizard/stepper.cjs"),z=require("../components/wizard/wizard.cjs"),B=require("../components/layout/app-header.cjs"),V=require("../components/patterns/resource-detail-page.cjs"),H=require("../components/patterns/resource-page.cjs");let U=require("react");U=e.__toESM(U,1);let W=require("lucide-react"),G=require("react/jsx-runtime");var K=[J(`alert-dialog`,`AlertDialog`,`overlay`,`Destructive confirmation dialog with loading-ready action states.`),J(`drawer`,`Drawer`,`overlay`,`Side panel for contextual details without leaving the page.`),J(`pagination`,`Pagination`,`navigation`,`Controlled page navigation with edge buttons and active state.`),J(`nav-tabs`,`NavTabs`,`navigation`,`Navigation tabs for switching related document sections.`),J(`search-input`,`SearchInput`,`inputs`,`Search field with icon, count, shortcut and debounce-friendly value handling.`),J(`password-input`,`PasswordInput`,`inputs`,`Password field with visibility toggle and secure autocomplete defaults.`),J(`slider`,`Slider`,`inputs`,`Single value range control for density, threshold, and score tuning.`),J(`range-slider`,`RangeSlider`,`inputs`,`Two-handle slider for min/max filtering.`),J(`rating`,`Rating`,`inputs`,`Compact score input for feedback and review flows.`),J(`otp-input`,`OtpInput`,`inputs`,`One-time code entry with fixed-length slots.`),J(`tag-input`,`TagInput`,`inputs`,`Tokenized text input for labels, skills, and quick filters.`),J(`progress`,`Progress`,`display`,`Linear progress with label, value formatter, tone and indeterminate state.`),J(`progress-circle`,`ProgressCircle`,`display`,`Compact circular progress for sidebars and status cards.`),J(`timeline`,`Timeline`,`display`,`Vertical or horizontal event stream for workflow history.`),J(`status-dot`,`StatusDot`,`display`,`Tiny live status indicator with optional pulse animation.`),J(`user-card`,`UserCard`,`display`,`User summary row with avatar, metadata and actions.`),J(`notification-center`,`NotificationCenter`,`display`,`Compact activity and notifications stream.`),J(`data-list`,`DataList`,`display`,`Readable title and description rows for compact operational lists.`),J(`status-legend`,`StatusLegend`,`display`,`Explain status meaning and counts in a compact legend.`),J(`trend-card`,`TrendCard`,`display`,`Metric summary card with trend context.`),J(`action-menu`,`ActionMenu`,`actions`,`Compact dropdown action menu for rows and cards.`),J(`button-group`,`ButtonGroup`,`actions`,`Grouped action buttons for view switching and compact controls.`),J(`quick-action-grid`,`QuickActionGrid`,`actions`,`Action launcher grid for dense dashboard shortcuts.`),J(`app-header`,`AppHeader`,`layout`,`Sticky product header with left, center and right slots.`),J(`section-header`,`SectionHeader`,`layout`,`Reusable section title block with actions and metadata.`),J(`stat-card`,`StatCard`,`layout`,`Dashboard stat card for KPI, trend and helper text.`),J(`filter-bar`,`FilterBar`,`actions`,`Search, filters, active-count and reset actions in one toolbar.`),J(`page-tabs`,`PageTabs`,`navigation`,`Top-level page tab strip for route-sized sections.`),J(`stepper-tabs`,`StepperTabs`,`navigation`,`Step-like tabs for setup and onboarding progress.`),J(`alert`,`Alert`,`feedback`,`Inline feedback banner for success, warning, info, and error states.`),J(`page-state`,`PageState`,`feedback`,`Full-page completion or blocked state with next actions.`),J(`calendar`,`Calendar`,`calendar`,`Single month calendar surface for date picker and scheduling flows.`),J(`file-upload`,`FileUpload`,`upload`,`Full file upload surface with dropzone, action button and helper text.`),J(`image-upload`,`ImageUpload`,`upload`,`Image upload pattern with preview-oriented copy.`,`ImageUpload`),J(`file-dropzone`,`FileDropzone`,`upload`,`Lightweight file dropzone primitive for custom upload flows.`),J(`stepper`,`Stepper`,`wizard`,`Clickable step navigation for multi-step forms.`),J(`wizard`,`Wizard`,`wizard`,`Stepper, content and footer controls combined into one workflow.`),J(`resource-page`,`ResourcePage`,`patterns`,`Full resource index page shell for admin dashboards.`),J(`resource-detail-page`,`ResourceDetailPage`,`patterns`,`Detail page shell with title, metadata and sections.`)],q=Object.fromEntries(K.map(e=>[e.slug,{mock:Y(e),Showcase:t=>(0,G.jsx)(Z,{definition:e,...t})}]));function J(e,t,n,r,i=t){let a=he(e);return{slug:e,title:a,component:t,kind:n,summary:r,importName:i,highlights:[`${a} uses the real ${t} surface.`,`CLI, import and preview stay scoped to this component.`,`Preview wrappers stay light so the component UI remains visible.`],scenarios:[{title:`Use when`,description:r},{title:`Implementation`,description:`Add ${e}, import ${i}, then pass controlled props where the API requires state.`}]}}function Y(e){return{cliCommand:`npx tembro add ${e.slug}`,code:X(e),highlights:e.highlights,scenarios:e.scenarios,capabilityNotes:[`Add ${e.slug} into your local source with the CLI.`,"Import the public component surface from `tembro` in app code."]}}function X(e){let t=e.importName??e.component;return`import { ${t} } from "tembro"\n\nexport function Demo() {\n return <${t} />\n}`}function Z({definition:e,state:t,setState:n}){return(0,G.jsxs)(`div`,{className:`space-y-5`,children:[(0,G.jsxs)(`header`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:e.component}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`aui-text-strong text-2xl font-semibold tracking-tight`,children:e.title}),(0,G.jsx)(`p`,{className:`aui-text-muted mt-2 max-w-2xl text-sm leading-6`,children:e.summary})]})]}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4 sm:p-5`,children:Q(e,t,n)})]})}function Q(e,t,n){return e.kind===`inputs`?(0,G.jsx)(ne,{slug:e.slug,state:t,setState:n}):e.kind===`form`?(0,G.jsx)(re,{state:t,setState:n}):e.kind===`overlay`?(0,G.jsx)(ie,{slug:e.slug}):e.kind===`navigation`?(0,G.jsx)(ae,{slug:e.slug}):e.kind===`feedback`?(0,G.jsx)(oe,{slug:e.slug}):e.kind===`display`?(0,G.jsx)(se,{slug:e.slug}):e.kind===`actions`?(0,G.jsx)(ce,{slug:e.slug,state:t,setState:n}):e.kind===`layout`?(0,G.jsx)(le,{slug:e.slug}):e.kind===`data-table`?(0,G.jsx)(ue,{slug:e.slug}):e.kind===`calendar`?(0,G.jsx)(de,{}):e.kind===`upload`?(0,G.jsx)(fe,{slug:e.slug}):e.kind===`wizard`?(0,G.jsx)(pe,{slug:e.slug}):e.kind===`patterns`?(0,G.jsx)(me,{slug:e.slug}):null}function ne({slug:e,state:t,setState:n}){let r=t.textValue,s=e=>n({textValue:e});if(e===`search-input`)return(0,G.jsx)(a.SearchInput,{value:r,onValueChange:s,resultCount:12,shortcut:`Ctrl K`,placeholder:`Search customers...`});if(e===`password-input`)return(0,G.jsx)(i.PasswordInput,{value:`secret-token`,onValueChange:s,placeholder:`Password`});if(e===`slider`)return(0,G.jsx)(b.Slider,{label:`Density`,description:`Tune content density.`,defaultValue:64,showValue:!0});if(e===`range-slider`)return(0,G.jsx)(b.RangeSlider,{label:`Revenue range`,description:`Filter between two values.`,defaultValue:[20,80],showValue:!0});if(e===`rating`)return(0,G.jsx)(y.Rating,{defaultValue:4,labels:{clear:`Reset`}});if(e===`otp-input`)return(0,G.jsx)(v.OtpInput,{value:r.replace(/\D/g,``).slice(0,6),onValueChange:s});if(e===`tag-input`)return(0,G.jsx)(x.TagInput,{defaultValue:[`dashboard`,`beta`,`ops`],placeholder:`Add label`});if(e===`simple-select`)return(0,G.jsxs)(`div`,{className:`grid gap-4`,children:[(0,G.jsx)(_.SimpleSelect,{value:`private`,onValueChange:()=>void 0,options:[{value:`public`,label:`Public`,description:`Visible to all users`},{value:`private`,label:`Private`,description:`Restricted to invited members`},{value:`internal`,label:`Internal`,description:`Only workspace maintainers`},{value:`archived`,label:`Archived`,description:`History only`,disabled:!0}],placeholder:`Visibility`,searchable:!0,clearable:!0}),(0,G.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Static options with lightweight search.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Clear action stays inside the trigger surface.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Use before moving to AsyncSelect.`})]})]});if(e===`async-select`){let e=[{value:`north`,label:`North Region`,description:`Sales ops`},{value:`south`,label:`South Region`,description:`Support team`},{value:`west`,label:`West Region`,description:`Billing operations`}];return(0,G.jsxs)(`div`,{className:`grid gap-4`,children:[(0,G.jsx)(g.AsyncSelect,{value:`north`,onValueChange:()=>void 0,loadOptions:async t=>{let n=t.trim().toLowerCase();return n?e.filter(e=>String(e.label).toLowerCase().includes(n)):e},defaultOptions:e,minSearchLength:1,clearable:!0}),(0,G.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Remote-ready select surface.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Hydration and clear behavior stay aligned.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Good for large or changing datasets.`})]})]})}return(0,G.jsx)(o.Input,{value:r,onChange:e=>n({textValue:e.currentTarget.value}),placeholder:`Unified input`})}function re({state:e,setState:t}){return(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,G.jsxs)(`label`,{className:`grid gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium aui-text-strong`,children:`Email address`}),(0,G.jsx)(o.Input,{value:e.textValue,onChange:e=>t({textValue:e.currentTarget.value})}),(0,G.jsx)(`span`,{className:`text-xs aui-text-muted`,children:`Form wrappers keep label, hint and error spacing consistent.`})]}),(0,G.jsxs)(`label`,{className:`grid gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium aui-text-strong`,children:`Status`}),(0,G.jsx)(a.SearchInput,{value:`Active customers`,resultCount:7,readOnly:!0}),(0,G.jsx)(`span`,{className:`text-xs text-emerald-500`,children:`Ready to submit`})]})]})}function ie({slug:e}){return e===`alert-dialog`?(0,G.jsx)(m.AlertDialog,{open:!1,title:`Archive invoice?`,description:`This keeps the invoice readable but removes it from active queues.`,children:(0,G.jsx)(t.Button,{variant:`destructive`,children:`Open alert`})}):e===`drawer`?(0,G.jsx)(h.Drawer,{open:!1,trigger:(0,G.jsx)(t.Button,{variant:`outline`,children:`Open drawer`}),title:`Customer details`,description:`Side panel for fast inspection.`,children:(0,G.jsx)(w.DescriptionList,{items:[{key:`plan`,label:`Plan`,value:`Scale`},{key:`owner`,label:`Owner`,value:`Azamat UI`}]})}):(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,G.jsx)(t.Button,{variant:`ghost`,children:`Cancel`}),(0,G.jsx)(t.Button,{variant:`outline`,children:`Save draft`}),(0,G.jsx)(t.Button,{children:`Publish`})]})}function ae({slug:e}){return e===`pagination`?(0,G.jsx)(d.Pagination,{page:3,pageCount:9,onPageChange:()=>void 0}):e===`page-tabs`?(0,G.jsx)(ee.PageTabs,{value:`overview`,variant:`pills`,items:[{value:`overview`,label:`Overview`},{value:`usage`,label:`Usage`},{value:`api`,label:`API`,badge:`3`}]}):e===`stepper-tabs`?(0,G.jsx)(f.StepperTabs,{value:`billing`,items:[{value:`profile`,label:`Profile`,description:`Team and owner details`,completed:!0},{value:`billing`,label:`Billing`,description:`Payment and invoices`},{value:`review`,label:`Review`,description:`Confirm release`}]}):(0,G.jsx)(u.NavTabs,{value:`overview`,items:[{value:`overview`,label:`Overview`},{value:`usage`,label:`Usage`},{value:`api`,label:`API`}]})}function oe({slug:e}){return e===`alert`?(0,G.jsx)(S.Alert,{tone:`warning`,title:`Review needed`,description:`Billing rules changed and one approval is pending.`,action:(0,G.jsx)(t.Button,{size:`sm`,children:`Open`})}):e===`page-state`?(0,G.jsx)(C.PageState,{title:`Workspace connected`,description:`The route is ready to accept live data and team actions.`,tone:`success`,action:(0,G.jsx)(t.Button,{size:`sm`,children:`Continue`})}):(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,G.jsx)($,{tone:`success`,children:`Live`}),(0,G.jsx)($,{tone:`warning`,children:`Needs review`}),(0,G.jsx)($,{tone:`danger`,children:`Blocked`}),(0,G.jsx)($,{tone:`info`,children:`Queued`})]})}function se({slug:e}){return e===`progress`?(0,G.jsx)(E.Progress,{label:`Migration progress`,description:`Production rollout`,value:68,tone:`success`,showValue:!0}):e===`progress-circle`?(0,G.jsx)(D.ProgressCircle,{value:72,label:`Profile completed`}):e===`timeline`?(0,G.jsx)(A.Timeline,{items:[{key:`created`,title:`Created`,description:`Invoice generated`,time:`09:20`,tone:`success`},{key:`review`,title:`Review`,description:`Finance team assigned`,time:`10:05`,tone:`info`},{key:`approve`,title:`Approval`,description:`Waiting for manager`,time:`Now`,tone:`warning`}],pending:!0,pendingLabel:`Paid`}):e===`metric-card`||e===`stat-card`?(0,G.jsx)(M.StatCard,{title:`Revenue`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},icon:(0,G.jsx)(W.LayoutDashboardIcon,{})}):e===`status-dot`?(0,G.jsxs)(`div`,{className:`grid gap-3`,children:[(0,G.jsx)(O.StatusDot,{tone:`success`,pulse:!0,label:`API healthy`}),(0,G.jsx)(O.StatusDot,{tone:`warning`,label:`Sync delayed`}),(0,G.jsx)(O.StatusDot,{tone:`danger`,label:`Webhook failed`})]}):e===`notification-center`?(0,G.jsx)(T.List,{items:[{key:`1`,title:`Build completed`,description:`Dashboard docs deployment is live.`,extra:`Now`},{key:`2`,title:`New comment`,description:`Review requested on DataTable API.`,extra:`8m`},{key:`3`,title:`Publish reminder`,description:`Package version is ready for release.`,extra:`1h`}]}):e===`data-list`?(0,G.jsx)(T.List,{items:[{key:`1`,title:`Enterprise plan`,description:`Priority support and SSO`,extra:`$499`},{key:`2`,title:`Growth plan`,description:`Most used by product teams`,extra:`$199`},{key:`3`,title:`Starter plan`,description:`Lightweight team setup`,extra:`$49`}]}):e===`status-legend`?(0,G.jsx)(k.StatusLegend,{title:`Delivery states`,description:`Explain what each state means and how often it appears.`,orientation:`grid`,items:[{key:`live`,label:`Live`,description:`Healthy production routes`,tone:`success`,count:18},{key:`review`,label:`Review`,description:`Waiting for QA approval`,tone:`warning`,count:4},{key:`blocked`,label:`Blocked`,description:`Needs engineering action`,tone:`danger`,count:1}]}):e===`trend-card`?(0,G.jsx)(M.StatCard,{title:e===`trend-card`?`Weekly revenue`:`Current vs previous`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},icon:(0,G.jsx)(W.LayoutDashboardIcon,{})}):e===`info-card`?(0,G.jsxs)(`div`,{className:`grid gap-4`,children:[(0,G.jsx)(N.SmartCard,{eyebrow:`Summary`,title:`Workspace`,description:`Reusable card surface with header, actions and metadata.`,actions:(0,G.jsx)(t.Button,{size:`sm`,variant:`outline`,children:`Open`}),selected:!0,children:(0,G.jsx)(`p`,{className:`aui-text-muted mt-2 text-sm`,children:`Keep metadata, helper copy and compact actions in one reusable card surface.`})}),(0,G.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Vertical and horizontal layout support.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Selected and action-safe surfaces.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Useful for summary panels and detail sidebars.`})]})]}):(0,G.jsx)(j.UserCard,{name:`Azamat Jurayev`,description:`Product designer and maintainer`,meta:`Admin workspace`,actions:(0,G.jsx)(t.Button,{size:`sm`,children:`Invite`})})}function ce({slug:e,state:i,setState:o}){return e===`filter-bar`?(0,G.jsx)(p.FilterBar,{search:(0,G.jsx)(a.SearchInput,{value:i.textValue,onValueChange:e=>o({textValue:e}),placeholder:`Search invoices...`}),activeCount:2,onReset:()=>o({textValue:``}),filters:(0,G.jsxs)(t.Button,{variant:`outline`,size:`sm`,children:[(0,G.jsx)(W.FilterIcon,{"data-icon":`inline-start`}),`Status`]}),actions:(0,G.jsx)(t.Button,{size:`sm`,children:`Export`})}):e===`button-group`?(0,G.jsx)(r.ButtonGroup,{items:[{key:`day`,label:`Day`},{key:`week`,label:`Week`},{key:`month`,label:`Month`}]}):e===`quick-action-grid`?(0,G.jsx)(c.QuickActionGrid,{columns:3,items:[{key:`new`,label:`New invoice`,description:`Create a fresh billing row.`,badge:`N`},{key:`import`,label:`Import CSV`,description:`Bring finance data into the table.`,badge:`I`},{key:`share`,label:`Share workspace`,description:`Invite team members to the route.`,badge:`S`}]}):e===`saved-filter-select`?(0,G.jsxs)(`div`,{className:`grid gap-4`,children:[(0,G.jsx)(te.SavedFilterSelect,{value:`billing`,onValueChange:()=>void 0,onSave:()=>void 0,onDelete:()=>void 0,filters:[{value:`billing`,label:`Billing`,description:`Invoices and payment status`},{value:`ops`,label:`Operations`,description:`Queues and workload`},{value:`owners`,label:`Owner: Azamat`,description:`Assigned records only`}]}),(0,G.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Named view switching for table routes.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Delete action stays isolated from parent selection.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Useful in finance, ops and admin dashboards.`})]})]}):(0,G.jsxs)(`div`,{className:`flex items-center justify-between rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Invoice #4821`}),(0,G.jsx)(`p`,{className:`text-sm aui-text-muted`,children:`Pending approval`})]}),(0,G.jsx)(n.ActionMenu,{label:`Actions`,actions:[{key:`open`,label:`Open`,icon:(0,G.jsx)(W.ChevronRightIcon,{className:`size-4`})},{key:`download`,label:`Download`,icon:(0,G.jsx)(W.DownloadIcon,{className:`size-4`})},{key:`archive`,label:`Archive`,icon:(0,G.jsx)(W.ArchiveIcon,{className:`size-4`}),destructive:!0}],trigger:(0,G.jsx)(t.Button,{variant:`outline`,size:`icon-sm`,"aria-label":`Open actions`,children:(0,G.jsx)(W.MoreHorizontalIcon,{})})})]})}function le({slug:e}){return e===`app-header`?(0,G.jsx)(B.AppHeader,{sticky:!1,left:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(W.LayoutDashboardIcon,{className:`size-4`}),(0,G.jsx)(`span`,{className:`font-medium`,children:`Dashboard`})]}),center:(0,G.jsx)(s.Badge,{variant:`secondary`,children:`Preview`}),right:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(t.Button,{variant:`ghost`,size:`icon-sm`,"aria-label":`Notifications`,children:(0,G.jsx)(W.BellIcon,{})}),(0,G.jsx)(t.Button,{size:`sm`,children:`Deploy`})]}),className:`rounded-xl border border-[color:var(--aui-divider)]`}):e===`section-header`?(0,G.jsx)(l.SectionHeader,{eyebrow:`Components`,title:`Production-ready surfaces`,description:`SectionHeader keeps copy, metadata and actions aligned.`,actions:(0,G.jsx)(t.Button,{size:`sm`,children:`Add component`})}):(0,G.jsx)(M.StatCard,{title:`Revenue`,value:`$84.2k`,description:`Compared with last month`,trend:{value:`+12.4%`,tone:`success`},helperText:`StatCard keeps KPI, helper text and trend in one compact tile.`})}function ue({slug:e}){return(0,G.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-[color:var(--aui-divider)] p-3`,children:[(0,G.jsx)(a.SearchInput,{value:``,placeholder:`Search rows...`,className:`max-w-xs`,readOnly:!0}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(t.Button,{variant:`outline`,size:`sm`,children:[(0,G.jsx)(W.FilterIcon,{"data-icon":`inline-start`}),`Filters`]}),(0,G.jsx)(t.Button,{size:`sm`,children:`Create`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-[40px_1fr_120px_72px] border-b border-[color:var(--aui-divider)] px-3 py-2 text-xs font-semibold uppercase tracking-[0.18em] aui-text-muted`,children:[(0,G.jsx)(`span`,{children:(0,G.jsx)(`input`,{type:`checkbox`,"aria-label":`Select rows`})}),(0,G.jsx)(`span`,{children:`Name`}),(0,G.jsx)(`span`,{children:`Status`}),(0,G.jsx)(`span`,{children:`Actions`})]}),[`Azamat UI`,`Registry`,`Dashboard`].map((e,n)=>(0,G.jsxs)(`div`,{className:`grid grid-cols-[40px_1fr_120px_72px] items-center border-b border-[color:var(--aui-divider)] px-3 py-3 last:border-b-0`,children:[(0,G.jsx)(`span`,{children:(0,G.jsx)(`input`,{type:`checkbox`,"aria-label":`Select ${e}`,defaultChecked:n===0})}),(0,G.jsx)(`span`,{className:`font-medium aui-text-strong`,children:e}),(0,G.jsx)(`span`,{children:(0,G.jsx)($,{tone:n===2?`warning`:`success`,children:n===2?`Review`:`Live`})}),(0,G.jsx)(`span`,{children:(0,G.jsx)(t.Button,{variant:`ghost`,size:`icon-sm`,"aria-label":`Row actions`,children:(0,G.jsx)(W.MoreHorizontalIcon,{})})})]},e)),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-[color:var(--aui-divider)] p-3 text-sm aui-text-muted`,children:[(0,G.jsxs)(`span`,{children:[{"data-table-column-visibility-menu":`Column visibility`,"data-table-sortable-header":`Sortable header`,"data-table-bulk-actions":`Bulk action bar`,"data-table-view-presets":`Saved view presets`}[e]??`DataTable part`,` preview`]}),(0,G.jsx)(d.Pagination,{page:1,pageCount:4,onPageChange:()=>void 0,showEdges:!1})]})]})}function de(){return(0,G.jsx)(P.Calendar,{value:`2026-06-18`,defaultMonth:`2026-06-01`,onValueChange:()=>void 0})}function fe({slug:e}){return e===`file-dropzone`?(0,G.jsx)(L.FileDropzone,{label:`Drop contract files`,description:`PDF, PNG or CSV up to 10MB.`}):e===`file-upload`?(0,G.jsxs)(`div`,{className:`grid gap-4`,children:[(0,G.jsx)(F.FileUpload,{dropzoneLabel:`Upload documents`,dropzoneDescription:`Drag files here or choose from your device.`,buttonLabel:`Choose files`,helperText:`Supports PDF, CSV and images.`}),(0,G.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Dropzone click and nested actions stay isolated.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Rejected states and helper copy live in the same component.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Use for production file routes, not just decorative previews.`})]})]}):e===`image-upload`?(0,G.jsxs)(`div`,{className:`grid gap-4`,children:[(0,G.jsx)(I.ImageUpload,{dropzoneLabel:`Upload product image`,helperText:`Preview-friendly upload for gallery and hero assets.`}),(0,G.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Image preview is part of the reusable component.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Remove action stays separate from the parent dropzone surface.`}),(0,G.jsx)(`div`,{className:`rounded-2xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3 text-sm aui-text-muted`,children:`Good for template thumbnails and marketing assets.`})]})]}):(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-[160px_1fr] md:items-center`,children:[(0,G.jsx)(`div`,{className:`flex aspect-square items-center justify-center rounded-2xl border border-dashed border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:(0,G.jsx)(W.UploadCloudIcon,{className:`size-8 aui-text-muted`})}),(0,G.jsx)(L.FileDropzone,{label:`Upload product image`,description:`Shows the image-upload flow without custom CSS.`,accept:`image/*`})]})}function pe({slug:e}){let t=[{id:`profile`,title:`Profile`,description:`Account details`,completed:!0},{id:`billing`,title:`Billing`,description:`Payment setup`},{id:`review`,title:`Review`,description:`Confirm data`}];return e===`stepper`?(0,G.jsx)(R.Stepper,{steps:t,currentStep:`billing`,onStepChange:()=>void 0}):(0,G.jsx)(z.Wizard,{steps:t,currentStep:`billing`,onNext:()=>void 0,onPrevious:()=>void 0,onFinish:()=>void 0,children:(0,G.jsxs)(`div`,{className:`rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4`,children:[(0,G.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Billing setup`}),(0,G.jsx)(`p`,{className:`mt-1 text-sm aui-text-muted`,children:`Wizard combines steps, content and footer controls.`})]})})}function me({slug:e}){return e===`resource-detail-page`?(0,G.jsx)(V.ResourceDetailPage,{title:`Customer profile`,description:`ResourceDetailPage organizes detail screens.`,actions:(0,G.jsx)(t.Button,{size:`sm`,children:`Edit`}),children:(0,G.jsx)(H.ResourcePageSection,{title:`Account`,children:(0,G.jsx)(w.DescriptionList,{items:[{key:`plan`,label:`Plan`,value:`Scale`},{key:`owner`,label:`Owner`,value:`Design team`}]})})}):(0,G.jsx)(H.ResourcePage,{title:`Customers`,description:`ResourcePage combines header, stats, filters and sections.`,actions:(0,G.jsx)(t.Button,{size:`sm`,children:`New customer`}),stats:(0,G.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,G.jsx)(M.StatCard,{title:`Active`,value:`2,418`,trend:{value:`+8%`,tone:`success`}}),(0,G.jsx)(M.StatCard,{title:`Health`,value:`94%`,trend:{value:`Stable`,tone:`info`}})]}),filters:(0,G.jsx)(p.FilterBar,{search:(0,G.jsx)(a.SearchInput,{value:``,placeholder:`Search...`,readOnly:!0}),activeCount:1}),children:(0,G.jsx)(H.ResourcePageSection,{title:`Recent activity`,children:(0,G.jsx)(A.Timeline,{items:[{key:`a`,title:`Customer added`,description:`Acme workspace`,tone:`success`},{key:`b`,title:`Plan updated`,description:`Scale plan enabled`,tone:`info`}]})})})}function he(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function $({tone:e,children:t}){return(0,G.jsx)(s.Badge,{variant:{success:`secondary`,warning:`outline`,danger:`destructive`,info:`outline`}[e],children:t})}exports.registrySpecificDemoRegistry=q;
|