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
|
@@ -2,7 +2,7 @@ import type { ComponentDemoMock } from "../types"
|
|
|
2
2
|
|
|
3
3
|
export const simpleSelectMock: ComponentDemoMock = {
|
|
4
4
|
code: `import { useState } from "react"
|
|
5
|
-
import { Button, SimpleSelect } from "
|
|
5
|
+
import { Button, SimpleSelect } from "tembro"
|
|
6
6
|
|
|
7
7
|
const selectOptions = [
|
|
8
8
|
{ value: "public", label: "Public", disabled: false },
|
|
@@ -31,6 +31,7 @@ export function SimpleSelectShowcase({ mode }: ComponentDemoProps) {
|
|
|
31
31
|
placeholder="Visibility"
|
|
32
32
|
searchable
|
|
33
33
|
clearable
|
|
34
|
+
showSelectedDescription
|
|
34
35
|
/>
|
|
35
36
|
<div className="grid gap-3 md:grid-cols-3">
|
|
36
37
|
<div className="rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm">
|
|
@@ -46,7 +47,7 @@ export function SimpleSelectShowcase({ mode }: ComponentDemoProps) {
|
|
|
46
47
|
<p className="mt-2 aui-text-muted">Choose this for local option lists before moving to AsyncSelect.</p>
|
|
47
48
|
</div>
|
|
48
49
|
</div>
|
|
49
|
-
<SimpleSelect key={uncontrolledKey} defaultValue="public" options={options} />
|
|
50
|
+
<SimpleSelect key={uncontrolledKey} defaultValue="public" options={options} showSelectedDescription />
|
|
50
51
|
<div className="flex flex-wrap gap-2">
|
|
51
52
|
<Button variant="outline" size="sm" onClick={() => setValue(undefined)}>
|
|
52
53
|
Clear controlled
|
|
@@ -13,49 +13,49 @@ export const previewSurfaceCatalog: PreviewSurfaceRecord[] = [
|
|
|
13
13
|
slug: "dashboard-01",
|
|
14
14
|
title: "Dashboard with sidebar",
|
|
15
15
|
command: "npx tembro init --template next --defaults\nnpx tembro add app-sidebar metric-grid data-table",
|
|
16
|
-
code: `import { AppSidebar
|
|
16
|
+
code: `import { AppSidebar, MetricGrid } from "tembro"\n\nexport function Dashboard01() {\n return <AppSidebar />\n}`,
|
|
17
17
|
tone: "dashboard",
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
slug: "table-01",
|
|
21
21
|
title: "Advanced invoice table",
|
|
22
22
|
command: "npx tembro add data-table",
|
|
23
|
-
code: `import { DataTable } from "
|
|
23
|
+
code: `import { DataTable } from "tembro"\n\nexport function Table01() {\n return <DataTable columns={columns} data={rows} />\n}`,
|
|
24
24
|
tone: "table",
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
slug: "auth-01",
|
|
28
28
|
title: "Authentication screen",
|
|
29
29
|
command: "npx tembro add input button",
|
|
30
|
-
code: `import { Button
|
|
30
|
+
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}`,
|
|
31
31
|
tone: "auth",
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
slug: "product-01",
|
|
35
35
|
title: "Commerce product detail",
|
|
36
36
|
command: "npx tembro add badge button",
|
|
37
|
-
code: `import { Badge
|
|
37
|
+
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}`,
|
|
38
38
|
tone: "product",
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
slug: "command-01",
|
|
42
42
|
title: "Command palette",
|
|
43
43
|
command: "npx tembro add command-palette",
|
|
44
|
-
code: `import { CommandPalette } from "
|
|
44
|
+
code: `import { CommandPalette } from "tembro"\n\nexport function Command01() {\n return <CommandPalette />\n}`,
|
|
45
45
|
tone: "command",
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
slug: "calendar-01",
|
|
49
49
|
title: "Calendar and date picker",
|
|
50
50
|
command: "npx tembro add calendar date-picker",
|
|
51
|
-
code: `import { Calendar } from "
|
|
51
|
+
code: `import { Calendar } from "tembro"\n\nexport function Calendar01() {\n return <Calendar />\n}`,
|
|
52
52
|
tone: "calendar",
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
slug: "upload-01",
|
|
56
56
|
title: "Upload workspace",
|
|
57
57
|
command: "npx tembro add file-upload image-upload",
|
|
58
|
-
code: `import { FileUpload } from "
|
|
58
|
+
code: `import { FileUpload } from "tembro"\n\nexport function Upload01() {\n return <FileUpload />\n}`,
|
|
59
59
|
tone: "upload",
|
|
60
60
|
},
|
|
61
61
|
]
|
|
@@ -13,13 +13,11 @@ export const registryQualityDemoRegistry = createShowcaseDemoRegistry([
|
|
|
13
13
|
component("form-switch", "FormSwitch", "form", "Boolean form control with shell-level label and hint handling."),
|
|
14
14
|
component("form-date-picker", "FormDatePicker", "form", "Popover date picker wrapper with RHF integration."),
|
|
15
15
|
component("form-date-range-picker", "FormDateRangePicker", "form", "Range date picker wrapper for planning and reporting flows."),
|
|
16
|
-
component("dialog-actions", "DialogActions", "overlay", "Modal footer action row with cancel, secondary and primary actions."),
|
|
17
16
|
component("alert-dialog", "AlertDialog", "overlay", "Destructive confirmation dialog with loading-ready action states."),
|
|
18
17
|
component("drawer", "Drawer", "overlay", "Side panel for contextual details without leaving the page."),
|
|
19
18
|
|
|
20
19
|
component("pagination", "Pagination", "navigation", "Controlled page navigation with edge buttons and active state."),
|
|
21
20
|
component("nav-tabs", "NavTabs", "navigation", "Navigation tabs for switching related document sections."),
|
|
22
|
-
component("anchor-nav", "AnchorNav", "navigation", "Section jump navigation for long detail pages."),
|
|
23
21
|
component("page-tabs", "PageTabs", "navigation", "Top-level page tab strip for route-sized sections."),
|
|
24
22
|
component("stepper-tabs", "StepperTabs", "navigation", "Step-like tabs for setup and onboarding progress."),
|
|
25
23
|
|
|
@@ -27,8 +25,6 @@ export const registryQualityDemoRegistry = createShowcaseDemoRegistry([
|
|
|
27
25
|
component("number-input", "NumberInput", "inputs", "Numeric entry for counts, thresholds, and reporting controls."),
|
|
28
26
|
component("phone-input", "PhoneInput", "inputs", "Phone input with stable raw and masked value handling."),
|
|
29
27
|
component("money-input", "MoneyInput", "inputs", "Currency entry for billing, finance and KPI editing flows."),
|
|
30
|
-
component("date-input", "DateInput", "inputs", "Single-date field for compact forms and filter bars."),
|
|
31
|
-
component("date-range-input", "DateRangeInput", "inputs", "Date range surface for reporting and booking windows."),
|
|
32
28
|
component("simple-select", "SimpleSelect", "inputs", "Static local-option select for dashboards and settings forms."),
|
|
33
29
|
component("async-select", "AsyncSelect", "inputs", "Remote-loaded select for large server-backed option sets."),
|
|
34
30
|
component("combobox", "Combobox", "inputs", "Searchable local choice input for reassignment and command-like selection."),
|
|
@@ -36,33 +32,23 @@ export const registryQualityDemoRegistry = createShowcaseDemoRegistry([
|
|
|
36
32
|
component("range-slider", "RangeSlider", "inputs", "Two-handle slider for min/max filtering."),
|
|
37
33
|
component("rating", "Rating", "inputs", "Compact score input for feedback and review flows."),
|
|
38
34
|
component("otp-input", "OtpInput", "inputs", "One-time code entry with fixed-length slots."),
|
|
39
|
-
component("color-input", "ColorInput", "inputs", "Theme and accent color field with native color selection."),
|
|
40
35
|
component("inline-editable", "InlineEditable", "inputs", "Inline editing primitive for dense tables and configuration rows."),
|
|
41
36
|
component("tag-input", "TagInput", "inputs", "Tokenized text input for labels, skills, and quick filters."),
|
|
42
37
|
|
|
43
|
-
component("description-list", "DescriptionList", "display", "Structured key-value details for entity, invoice and profile pages."),
|
|
44
38
|
component("progress", "Progress", "display", "Linear progress with label, value formatter, tone and indeterminate state."),
|
|
45
39
|
component("progress-circle", "ProgressCircle", "display", "Compact circular progress for sidebars and status cards."),
|
|
46
40
|
component("timeline", "Timeline", "display", "Vertical or horizontal event stream for workflow history."),
|
|
47
41
|
component("status-dot", "StatusDot", "display", "Tiny live status indicator with optional pulse animation."),
|
|
48
42
|
component("user-card", "UserCard", "display", "User summary row with avatar, metadata and actions."),
|
|
49
|
-
component("
|
|
50
|
-
component("entity-header", "EntityHeader", "display", "Top summary row for a customer, invoice, or workspace."),
|
|
51
|
-
component("notification-center", "NotificationCenter", "display", "Compact activity and notifications stream."),
|
|
52
|
-
component("entity-card", "EntityCard", "display", "Structured summary card with title, meta, state and actions."),
|
|
53
|
-
component("file-card", "FileCard", "display", "Compact file summary with state and actions."),
|
|
43
|
+
component("notification-center", "NotificationCenter", "display", "Compact activity and notifications stream."),
|
|
54
44
|
component("data-list", "DataList", "display", "Readable title and description rows for compact operational lists."),
|
|
55
45
|
component("status-legend", "StatusLegend", "display", "Explain status meaning and counts in a compact legend."),
|
|
56
|
-
component("trend-card", "TrendCard", "display", "Metric summary card with trend context."),
|
|
57
|
-
component("comparison-card", "ComparisonCard", "display", "Compare current and previous values in one compact card."),
|
|
46
|
+
component("trend-card", "TrendCard", "display", "Metric summary card with trend context."),
|
|
58
47
|
|
|
59
48
|
component("action-menu", "ActionMenu", "actions", "Compact dropdown action menu for rows and cards."),
|
|
60
49
|
component("button-group", "ButtonGroup", "actions", "Grouped action buttons for view switching and compact controls."),
|
|
61
50
|
component("quick-action-grid", "QuickActionGrid", "actions", "Action launcher grid for dense dashboard shortcuts."),
|
|
62
|
-
component("filter-
|
|
63
|
-
component("data-table-saved-filters", "SavedFilterSelect", "actions", "Saved filter chips and quick view controls."),
|
|
64
|
-
component("filter-bar", "FilterBar", "actions", "Search, filters, active-count and reset actions in one toolbar."),
|
|
65
|
-
component("command-palette", "CommandPalette", "actions", "Keyboard command surface for global navigation and actions."),
|
|
51
|
+
component("filter-bar", "FilterBar", "actions", "Search, filters, active-count and reset actions in one toolbar."),
|
|
66
52
|
|
|
67
53
|
component("app-header", "AppHeader", "layout", "Sticky product header with left, center and right slots."),
|
|
68
54
|
component("section-header", "SectionHeader", "layout", "Reusable section title block with actions and metadata."),
|
|
@@ -71,17 +57,7 @@ export const registryQualityDemoRegistry = createShowcaseDemoRegistry([
|
|
|
71
57
|
component("alert", "Alert", "feedback", "Inline feedback banner for success, warning, info, and error states."),
|
|
72
58
|
component("page-state", "PageState", "feedback", "Full-page completion or blocked state with next actions."),
|
|
73
59
|
|
|
74
|
-
component("
|
|
75
|
-
component("data-table-toolbar", "DataTableToolbar", "data-table", "Toolbar surface for DataTable search, filters and actions."),
|
|
76
|
-
component("data-table-column-visibility-menu", "DataTableColumnVisibilityMenu", "data-table", "Column visibility menu pattern for table views."),
|
|
77
|
-
component("data-table-select-column", "DataTableSelectColumn", "data-table", "Selection column pattern for bulk table workflows."),
|
|
78
|
-
component("data-table-sortable-header", "DataTableSortableHeader", "data-table", "Sortable header trigger with clear visual state."),
|
|
79
|
-
component("data-table-row-actions", "DataTableRowActions", "data-table", "Row action menu for inspect, duplicate and archive operations."),
|
|
80
|
-
component("data-table-actions-column", "DataTableActionsColumn", "data-table", "Reusable actions column for DataTable definitions."),
|
|
81
|
-
component("data-table-bulk-actions", "DataTableBulkActions", "data-table", "Bulk action bar for selected rows."),
|
|
82
|
-
component("data-table-view-presets", "DataTableViewPresets", "data-table", "Saved table view presets for operational dashboards."),
|
|
83
|
-
|
|
84
|
-
component("calendar", "Calendar", "calendar", "Single month calendar surface for date picker and scheduling flows."),
|
|
60
|
+
component("calendar", "Calendar", "calendar", "Single month calendar surface for date picker and scheduling flows."),
|
|
85
61
|
|
|
86
62
|
component("file-upload", "FileUpload", "upload", "Full file upload surface with dropzone, action button and helper text."),
|
|
87
63
|
component("image-upload", "ImageUpload", "upload", "Image upload pattern with preview-oriented copy."),
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
FilterIcon,
|
|
8
8
|
LayoutDashboardIcon,
|
|
9
9
|
MoreHorizontalIcon,
|
|
10
|
-
SearchIcon,
|
|
11
10
|
UploadCloudIcon,
|
|
12
11
|
} from "lucide-react"
|
|
13
12
|
|
|
@@ -15,25 +14,17 @@ import {
|
|
|
15
14
|
ActionMenu,
|
|
16
15
|
AlertDialog,
|
|
17
16
|
Alert,
|
|
18
|
-
AnchorNav,
|
|
19
17
|
AsyncSelect,
|
|
20
18
|
Badge,
|
|
21
19
|
Button,
|
|
22
20
|
ButtonGroup,
|
|
23
21
|
Calendar,
|
|
24
|
-
ClearableInput,
|
|
25
|
-
ColorInput,
|
|
26
|
-
CommandPalette,
|
|
27
|
-
DialogActionButton,
|
|
28
|
-
DialogActions,
|
|
29
22
|
DescriptionList,
|
|
30
23
|
Drawer,
|
|
31
|
-
EntityCard,
|
|
32
24
|
FileDropzone,
|
|
33
25
|
FileUpload,
|
|
34
26
|
ImageUpload,
|
|
35
27
|
FilterBar,
|
|
36
|
-
FilterChips,
|
|
37
28
|
InfoCard,
|
|
38
29
|
Input,
|
|
39
30
|
List,
|
|
@@ -96,65 +87,43 @@ type RegistryDemoDefinition = {
|
|
|
96
87
|
}
|
|
97
88
|
|
|
98
89
|
const registryDemoDefinitions = [
|
|
99
|
-
component("dialog-actions", "DialogActions", "overlay", "Modal footer action row with cancel, secondary and primary actions."),
|
|
100
90
|
component("alert-dialog", "AlertDialog", "overlay", "Destructive confirmation dialog with loading-ready action states."),
|
|
101
91
|
component("drawer", "Drawer", "overlay", "Side panel for contextual details without leaving the page."),
|
|
102
92
|
component("pagination", "Pagination", "navigation", "Controlled page navigation with edge buttons and active state."),
|
|
103
93
|
component("nav-tabs", "NavTabs", "navigation", "Navigation tabs for switching related document sections."),
|
|
104
|
-
component("clearable-input", "ClearableInput", "inputs", "Input with clear action, Escape handling and focus restore."),
|
|
105
94
|
component("search-input", "SearchInput", "inputs", "Search field with icon, count, shortcut and debounce-friendly value handling."),
|
|
106
95
|
component("password-input", "PasswordInput", "inputs", "Password field with visibility toggle and secure autocomplete defaults."),
|
|
107
96
|
component("slider", "Slider", "inputs", "Single value range control for density, threshold, and score tuning."),
|
|
108
97
|
component("range-slider", "RangeSlider", "inputs", "Two-handle slider for min/max filtering."),
|
|
109
98
|
component("rating", "Rating", "inputs", "Compact score input for feedback and review flows."),
|
|
110
99
|
component("otp-input", "OtpInput", "inputs", "One-time code entry with fixed-length slots."),
|
|
111
|
-
component("color-input", "ColorInput", "inputs", "Theme and accent color field with native color selection."),
|
|
112
100
|
component("tag-input", "TagInput", "inputs", "Tokenized text input for labels, skills, and quick filters."),
|
|
113
|
-
component("description-list", "DescriptionList", "display", "Structured key-value details for entity, invoice and profile pages."),
|
|
114
101
|
component("progress", "Progress", "display", "Linear progress with label, value formatter, tone and indeterminate state."),
|
|
115
102
|
component("progress-circle", "ProgressCircle", "display", "Compact circular progress for sidebars and status cards."),
|
|
116
103
|
component("timeline", "Timeline", "display", "Vertical or horizontal event stream for workflow history."),
|
|
117
104
|
component("status-dot", "StatusDot", "display", "Tiny live status indicator with optional pulse animation."),
|
|
118
105
|
component("user-card", "UserCard", "display", "User summary row with avatar, metadata and actions."),
|
|
119
|
-
component("delta-badge", "DeltaBadge", "display", "Compact positive, negative, and risk deltas for metric summaries."),
|
|
120
|
-
component("entity-header", "EntityHeader", "display", "Top summary row for a customer, invoice, or workspace."),
|
|
121
106
|
component("notification-center", "NotificationCenter", "display", "Compact activity and notifications stream."),
|
|
122
|
-
component("entity-card", "EntityCard", "display", "Structured summary card with title, meta, state and actions."),
|
|
123
|
-
component("file-card", "FileCard", "display", "Compact file summary with state and actions."),
|
|
124
107
|
component("data-list", "DataList", "display", "Readable title and description rows for compact operational lists."),
|
|
125
108
|
component("status-legend", "StatusLegend", "display", "Explain status meaning and counts in a compact legend."),
|
|
126
109
|
component("trend-card", "TrendCard", "display", "Metric summary card with trend context."),
|
|
127
|
-
component("comparison-card", "ComparisonCard", "display", "Compare current and previous values in one compact card."),
|
|
128
110
|
component("action-menu", "ActionMenu", "actions", "Compact dropdown action menu for rows and cards."),
|
|
129
111
|
component("button-group", "ButtonGroup", "actions", "Grouped action buttons for view switching and compact controls."),
|
|
130
112
|
component("quick-action-grid", "QuickActionGrid", "actions", "Action launcher grid for dense dashboard shortcuts."),
|
|
131
|
-
component("filter-chips", "FilterChips", "actions", "Inline active filter summaries with clear and remove actions."),
|
|
132
|
-
component("data-table-saved-filters", "SavedFilterSelect", "actions", "Saved filter chips and quick view controls."),
|
|
133
113
|
component("app-header", "AppHeader", "layout", "Sticky product header with left, center and right slots."),
|
|
134
114
|
component("section-header", "SectionHeader", "layout", "Reusable section title block with actions and metadata."),
|
|
135
115
|
component("stat-card", "StatCard", "layout", "Dashboard stat card for KPI, trend and helper text."),
|
|
136
116
|
component("filter-bar", "FilterBar", "actions", "Search, filters, active-count and reset actions in one toolbar."),
|
|
137
|
-
component("anchor-nav", "AnchorNav", "navigation", "Section jump navigation for long detail pages."),
|
|
138
117
|
component("page-tabs", "PageTabs", "navigation", "Top-level page tab strip for route-sized sections."),
|
|
139
118
|
component("stepper-tabs", "StepperTabs", "navigation", "Step-like tabs for setup and onboarding progress."),
|
|
140
119
|
component("alert", "Alert", "feedback", "Inline feedback banner for success, warning, info, and error states."),
|
|
141
120
|
component("page-state", "PageState", "feedback", "Full-page completion or blocked state with next actions."),
|
|
142
|
-
component("data-table-pagination", "DataTablePagination", "data-table", "Pagination control used by DataTable pages."),
|
|
143
|
-
component("data-table-toolbar", "DataTableToolbar", "data-table", "Toolbar surface for DataTable search, filters and actions."),
|
|
144
|
-
component("data-table-column-visibility-menu", "DataTableColumnVisibilityMenu", "data-table", "Column visibility menu pattern for table views."),
|
|
145
|
-
component("data-table-select-column", "DataTableSelectColumn", "data-table", "Selection column pattern for bulk table workflows."),
|
|
146
|
-
component("data-table-sortable-header", "DataTableSortableHeader", "data-table", "Sortable header trigger with clear visual state."),
|
|
147
|
-
component("data-table-row-actions", "DataTableRowActions", "data-table", "Row action menu for inspect, duplicate and archive operations."),
|
|
148
|
-
component("data-table-actions-column", "DataTableActionsColumn", "data-table", "Reusable actions column for DataTable definitions."),
|
|
149
|
-
component("data-table-bulk-actions", "DataTableBulkActions", "data-table", "Bulk action bar for selected rows."),
|
|
150
|
-
component("data-table-view-presets", "DataTableViewPresets", "data-table", "Saved table view presets for operational dashboards."),
|
|
151
121
|
component("calendar", "Calendar", "calendar", "Single month calendar surface for date picker and scheduling flows."),
|
|
152
122
|
component("file-upload", "FileUpload", "upload", "Full file upload surface with dropzone, action button and helper text."),
|
|
153
123
|
component("image-upload", "ImageUpload", "upload", "Image upload pattern with preview-oriented copy.", "ImageUpload"),
|
|
154
124
|
component("file-dropzone", "FileDropzone", "upload", "Lightweight file dropzone primitive for custom upload flows."),
|
|
155
125
|
component("stepper", "Stepper", "wizard", "Clickable step navigation for multi-step forms."),
|
|
156
126
|
component("wizard", "Wizard", "wizard", "Stepper, content and footer controls combined into one workflow."),
|
|
157
|
-
component("command-palette", "CommandPalette", "actions", "Keyboard command surface for global navigation and actions."),
|
|
158
127
|
component("resource-page", "ResourcePage", "patterns", "Full resource index page shell for admin dashboards."),
|
|
159
128
|
component("resource-detail-page", "ResourceDetailPage", "patterns", "Detail page shell with title, metadata and sections."),
|
|
160
129
|
] satisfies RegistryDemoDefinition[]
|
|
@@ -211,7 +180,7 @@ function createMock(definition: RegistryDemoDefinition): ComponentDemoMock {
|
|
|
211
180
|
scenarios: definition.scenarios,
|
|
212
181
|
capabilityNotes: [
|
|
213
182
|
`Add ${definition.slug} into your local source with the CLI.`,
|
|
214
|
-
|
|
183
|
+
"Import the public component surface from `tembro` in app code.",
|
|
215
184
|
],
|
|
216
185
|
}
|
|
217
186
|
}
|
|
@@ -219,7 +188,7 @@ function createMock(definition: RegistryDemoDefinition): ComponentDemoMock {
|
|
|
219
188
|
function createCodeSnippet(definition: RegistryDemoDefinition) {
|
|
220
189
|
const importName = definition.importName ?? definition.component
|
|
221
190
|
|
|
222
|
-
return `import { ${importName} } from "
|
|
191
|
+
return `import { ${importName} } from "tembro"\n\nexport function Demo() {\n return <${importName} />\n}`
|
|
223
192
|
}
|
|
224
193
|
|
|
225
194
|
function RegistrySpecificShowcase({
|
|
@@ -288,10 +257,6 @@ function InputPreview({
|
|
|
288
257
|
return <PasswordInput value="secret-token" onValueChange={onValueChange} placeholder="Password" />
|
|
289
258
|
}
|
|
290
259
|
|
|
291
|
-
if (slug === "clearable-input") {
|
|
292
|
-
return <ClearableInput value={value} onValueChange={onValueChange} placeholder="Clearable input" />
|
|
293
|
-
}
|
|
294
|
-
|
|
295
260
|
if (slug === "slider") {
|
|
296
261
|
return <Slider label="Density" description="Tune content density." defaultValue={64} showValue />
|
|
297
262
|
}
|
|
@@ -308,10 +273,6 @@ function InputPreview({
|
|
|
308
273
|
return <OtpInput value={value.replace(/\D/g, "").slice(0, 6)} onValueChange={onValueChange} />
|
|
309
274
|
}
|
|
310
275
|
|
|
311
|
-
if (slug === "color-input") {
|
|
312
|
-
return <ColorInput defaultValue="#22c55e" label="Accent color" description="Theme token preview." />
|
|
313
|
-
}
|
|
314
|
-
|
|
315
276
|
if (slug === "tag-input") {
|
|
316
277
|
return <TagInput defaultValue={["dashboard", "beta", "ops"]} placeholder="Add label" />
|
|
317
278
|
}
|
|
@@ -397,18 +358,6 @@ function FormPreview({
|
|
|
397
358
|
}
|
|
398
359
|
|
|
399
360
|
function OverlayPreview({ slug }: { slug: string }) {
|
|
400
|
-
if (slug === "dialog-actions") {
|
|
401
|
-
return (
|
|
402
|
-
<div className="rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-4">
|
|
403
|
-
<DialogActions align="end">
|
|
404
|
-
<DialogActionButton variant="ghost">Cancel</DialogActionButton>
|
|
405
|
-
<DialogActionButton variant="outline">Save draft</DialogActionButton>
|
|
406
|
-
<DialogActionButton>Publish</DialogActionButton>
|
|
407
|
-
</DialogActions>
|
|
408
|
-
</div>
|
|
409
|
-
)
|
|
410
|
-
}
|
|
411
|
-
|
|
412
361
|
if (slug === "alert-dialog") {
|
|
413
362
|
return (
|
|
414
363
|
<AlertDialog
|
|
@@ -453,20 +402,6 @@ function NavigationPreview({ slug }: { slug: string }) {
|
|
|
453
402
|
return <Pagination page={3} pageCount={9} onPageChange={() => undefined} />
|
|
454
403
|
}
|
|
455
404
|
|
|
456
|
-
if (slug === "anchor-nav") {
|
|
457
|
-
return (
|
|
458
|
-
<AnchorNav
|
|
459
|
-
orientation="horizontal"
|
|
460
|
-
title="Sections"
|
|
461
|
-
items={[
|
|
462
|
-
{ key: "overview", label: "Overview", href: "#overview", active: true },
|
|
463
|
-
{ key: "usage", label: "Usage", href: "#usage" },
|
|
464
|
-
{ key: "api", label: "API", href: "#api" },
|
|
465
|
-
]}
|
|
466
|
-
/>
|
|
467
|
-
)
|
|
468
|
-
}
|
|
469
|
-
|
|
470
405
|
if (slug === "page-tabs") {
|
|
471
406
|
return (
|
|
472
407
|
<PageTabs
|
|
@@ -533,21 +468,6 @@ function FeedbackPreview({ slug }: { slug?: string }) {
|
|
|
533
468
|
}
|
|
534
469
|
|
|
535
470
|
function DisplayPreview({ slug }: { slug: string }) {
|
|
536
|
-
if (slug === "description-list") {
|
|
537
|
-
return (
|
|
538
|
-
<DescriptionList
|
|
539
|
-
title="Invoice details"
|
|
540
|
-
description="Structured facts with responsive columns."
|
|
541
|
-
items={[
|
|
542
|
-
{ key: "id", label: "Invoice", value: "#4821" },
|
|
543
|
-
{ key: "amount", label: "Amount", value: "$12,420" },
|
|
544
|
-
{ key: "status", label: "Status", value: <DemoStatusBadge tone="success">Paid</DemoStatusBadge> },
|
|
545
|
-
{ key: "owner", label: "Owner", value: "Finance team" },
|
|
546
|
-
]}
|
|
547
|
-
/>
|
|
548
|
-
)
|
|
549
|
-
}
|
|
550
|
-
|
|
551
471
|
if (slug === "progress") {
|
|
552
472
|
return <Progress label="Migration progress" description="Production rollout" value={68} tone="success" showValue />
|
|
553
473
|
}
|
|
@@ -584,35 +504,6 @@ function DisplayPreview({ slug }: { slug: string }) {
|
|
|
584
504
|
)
|
|
585
505
|
}
|
|
586
506
|
|
|
587
|
-
if (slug === "delta-badge") {
|
|
588
|
-
return (
|
|
589
|
-
<div className="flex flex-wrap gap-2">
|
|
590
|
-
<Badge variant="secondary">+12.4%</Badge>
|
|
591
|
-
<Badge variant="outline">-3.1%</Badge>
|
|
592
|
-
<Badge variant="destructive">Risk</Badge>
|
|
593
|
-
</div>
|
|
594
|
-
)
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
if (slug === "entity-header") {
|
|
598
|
-
return (
|
|
599
|
-
<div className="rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5">
|
|
600
|
-
<div className="flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between">
|
|
601
|
-
<div className="space-y-2">
|
|
602
|
-
<Badge variant="outline">Customer</Badge>
|
|
603
|
-
<div>
|
|
604
|
-
<h3 className="text-xl font-semibold">Acme Holdings</h3>
|
|
605
|
-
<p className="text-sm text-muted-foreground">Enterprise account with billing and admin ownership.</p>
|
|
606
|
-
</div>
|
|
607
|
-
</div>
|
|
608
|
-
<div className="flex gap-2">
|
|
609
|
-
<Button variant="outline" size="sm">Archive</Button>
|
|
610
|
-
<Button size="sm">Edit</Button>
|
|
611
|
-
</div>
|
|
612
|
-
</div>
|
|
613
|
-
</div>
|
|
614
|
-
)
|
|
615
|
-
}
|
|
616
507
|
|
|
617
508
|
if (slug === "notification-center") {
|
|
618
509
|
return (
|
|
@@ -626,17 +517,6 @@ function DisplayPreview({ slug }: { slug: string }) {
|
|
|
626
517
|
)
|
|
627
518
|
}
|
|
628
519
|
|
|
629
|
-
if (slug === "entity-card" || slug === "file-card") {
|
|
630
|
-
return (
|
|
631
|
-
<EntityCard
|
|
632
|
-
title={slug === "file-card" ? "Design-spec.pdf" : "Azamat Workspace"}
|
|
633
|
-
description={slug === "file-card" ? "Shared with 4 reviewers." : "Admin console and live dashboard route."}
|
|
634
|
-
status={<Badge variant="secondary">Live</Badge>}
|
|
635
|
-
meta={slug === "file-card" ? "2.4 MB" : "Updated 8 min ago"}
|
|
636
|
-
actions={<Button size="sm" variant="outline">Open</Button>}
|
|
637
|
-
/>
|
|
638
|
-
)
|
|
639
|
-
}
|
|
640
520
|
|
|
641
521
|
if (slug === "data-list") {
|
|
642
522
|
return (
|
|
@@ -665,7 +545,7 @@ function DisplayPreview({ slug }: { slug: string }) {
|
|
|
665
545
|
)
|
|
666
546
|
}
|
|
667
547
|
|
|
668
|
-
if (slug === "trend-card"
|
|
548
|
+
if (slug === "trend-card") {
|
|
669
549
|
return <StatCard title={slug === "trend-card" ? "Weekly revenue" : "Current vs previous"} value="$84.2k" description="Compared with last month" trend={{ value: "+12.4%", tone: "success" }} icon={<LayoutDashboardIcon />} />
|
|
670
550
|
}
|
|
671
551
|
|
|
@@ -714,31 +594,6 @@ function ActionsPreview({
|
|
|
714
594
|
)
|
|
715
595
|
}
|
|
716
596
|
|
|
717
|
-
if (slug === "command-palette") {
|
|
718
|
-
return (
|
|
719
|
-
<div className="grid gap-3">
|
|
720
|
-
<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">
|
|
721
|
-
<SearchIcon className="size-4 aui-text-muted" />
|
|
722
|
-
<span className="text-sm aui-text-muted">Command palette preview: search routes, components and actions.</span>
|
|
723
|
-
</div>
|
|
724
|
-
<CommandPalette
|
|
725
|
-
open={false}
|
|
726
|
-
onOpenChange={() => undefined}
|
|
727
|
-
groups={[
|
|
728
|
-
{
|
|
729
|
-
id: "navigation",
|
|
730
|
-
label: "Navigation",
|
|
731
|
-
items: [
|
|
732
|
-
{ id: "docs", label: "Open docs", icon: <SearchIcon className="size-4" /> },
|
|
733
|
-
{ id: "components", label: "Browse components", icon: <LayoutDashboardIcon className="size-4" /> },
|
|
734
|
-
],
|
|
735
|
-
},
|
|
736
|
-
]}
|
|
737
|
-
/>
|
|
738
|
-
</div>
|
|
739
|
-
)
|
|
740
|
-
}
|
|
741
|
-
|
|
742
597
|
if (slug === "button-group") {
|
|
743
598
|
return (
|
|
744
599
|
<ButtonGroup
|
|
@@ -764,31 +619,6 @@ function ActionsPreview({
|
|
|
764
619
|
)
|
|
765
620
|
}
|
|
766
621
|
|
|
767
|
-
if (slug === "filter-chips" || slug === "data-table-saved-filters") {
|
|
768
|
-
return (
|
|
769
|
-
<div className="grid gap-3">
|
|
770
|
-
<FilterChips
|
|
771
|
-
chips={[
|
|
772
|
-
{ key: "status", label: "Status", value: "Active", tone: "success" },
|
|
773
|
-
{ key: "owner", label: "Owner", value: "Azamat", tone: "default" },
|
|
774
|
-
{ key: "region", label: "Region", value: "APAC", tone: "info" },
|
|
775
|
-
]}
|
|
776
|
-
onRemove={() => undefined}
|
|
777
|
-
onClear={() => undefined}
|
|
778
|
-
/>
|
|
779
|
-
{slug === "data-table-saved-filters" ? (
|
|
780
|
-
<ButtonGroup
|
|
781
|
-
attached={false}
|
|
782
|
-
items={[
|
|
783
|
-
{ key: "default", label: "Default", variant: "secondary" },
|
|
784
|
-
{ key: "billing", label: "Billing" },
|
|
785
|
-
{ key: "ops", label: "Operations" },
|
|
786
|
-
]}
|
|
787
|
-
/>
|
|
788
|
-
) : null}
|
|
789
|
-
</div>
|
|
790
|
-
)
|
|
791
|
-
}
|
|
792
622
|
|
|
793
623
|
if (slug === "saved-filter-select") {
|
|
794
624
|
return (
|
|
@@ -862,13 +692,8 @@ function LayoutPreview({ slug }: { slug: string }) {
|
|
|
862
692
|
|
|
863
693
|
function DataTablePartsPreview({ slug }: { slug: string }) {
|
|
864
694
|
const labels: Record<string, string> = {
|
|
865
|
-
"data-table-pagination": "Pagination footer",
|
|
866
|
-
"data-table-toolbar": "Search and filter toolbar",
|
|
867
695
|
"data-table-column-visibility-menu": "Column visibility",
|
|
868
|
-
"data-table-select-column": "Row selection",
|
|
869
696
|
"data-table-sortable-header": "Sortable header",
|
|
870
|
-
"data-table-row-actions": "Row actions",
|
|
871
|
-
"data-table-actions-column": "Actions column",
|
|
872
697
|
"data-table-bulk-actions": "Bulk action bar",
|
|
873
698
|
"data-table-view-presets": "Saved view presets",
|
|
874
699
|
}
|
|
@@ -20,18 +20,15 @@ import {
|
|
|
20
20
|
Button,
|
|
21
21
|
ButtonGroup,
|
|
22
22
|
Calendar,
|
|
23
|
-
ClearableInput,
|
|
24
23
|
ColorInput,
|
|
25
24
|
CommandPalette,
|
|
26
25
|
DescriptionList,
|
|
27
26
|
DialogActionButton,
|
|
28
27
|
DialogActions,
|
|
29
28
|
Drawer,
|
|
30
|
-
EntityCard,
|
|
31
29
|
FileDropzone,
|
|
32
30
|
FileUpload,
|
|
33
31
|
FilterBar,
|
|
34
|
-
FilterChips,
|
|
35
32
|
Input,
|
|
36
33
|
List,
|
|
37
34
|
NavTabs,
|
|
@@ -118,7 +115,7 @@ function InputPreview({
|
|
|
118
115
|
}
|
|
119
116
|
|
|
120
117
|
if (slug === "clearable-input") {
|
|
121
|
-
return <
|
|
118
|
+
return <Input value={value} onValueChange={onValueChange} placeholder="Clearable input" clearable />
|
|
122
119
|
}
|
|
123
120
|
|
|
124
121
|
if (slug === "slider") {
|
|
@@ -386,26 +383,6 @@ function DisplayPreview({ slug }: { slug: string }) {
|
|
|
386
383
|
)
|
|
387
384
|
}
|
|
388
385
|
|
|
389
|
-
if (slug === "entity-header") {
|
|
390
|
-
return (
|
|
391
|
-
<div className="rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5">
|
|
392
|
-
<div className="flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between">
|
|
393
|
-
<div className="space-y-2">
|
|
394
|
-
<Badge variant="outline">Customer</Badge>
|
|
395
|
-
<div>
|
|
396
|
-
<h3 className="text-xl font-semibold">Acme Holdings</h3>
|
|
397
|
-
<p className="text-sm text-[color:var(--aui-page-muted)]">Enterprise account with billing and admin ownership.</p>
|
|
398
|
-
</div>
|
|
399
|
-
</div>
|
|
400
|
-
<div className="flex gap-2">
|
|
401
|
-
<Button variant="outline" size="sm">Archive</Button>
|
|
402
|
-
<Button size="sm">Edit</Button>
|
|
403
|
-
</div>
|
|
404
|
-
</div>
|
|
405
|
-
</div>
|
|
406
|
-
)
|
|
407
|
-
}
|
|
408
|
-
|
|
409
386
|
if (slug === "notification-center") {
|
|
410
387
|
return (
|
|
411
388
|
<List
|
|
@@ -418,18 +395,6 @@ function DisplayPreview({ slug }: { slug: string }) {
|
|
|
418
395
|
)
|
|
419
396
|
}
|
|
420
397
|
|
|
421
|
-
if (slug === "entity-card" || slug === "file-card") {
|
|
422
|
-
return (
|
|
423
|
-
<EntityCard
|
|
424
|
-
title={slug === "file-card" ? "Design-spec.pdf" : "Azamat Workspace"}
|
|
425
|
-
description={slug === "file-card" ? "Shared with 4 reviewers." : "Admin console and live dashboard route."}
|
|
426
|
-
status={<Badge variant="secondary">Live</Badge>}
|
|
427
|
-
meta={slug === "file-card" ? "2.4 MB" : "Updated 8 min ago"}
|
|
428
|
-
actions={<Button size="sm" variant="outline">Open</Button>}
|
|
429
|
-
/>
|
|
430
|
-
)
|
|
431
|
-
}
|
|
432
|
-
|
|
433
398
|
if (slug === "data-list") {
|
|
434
399
|
return (
|
|
435
400
|
<List
|
|
@@ -485,8 +450,12 @@ function ActionsPreview({
|
|
|
485
450
|
return (
|
|
486
451
|
<FilterBar
|
|
487
452
|
search={<SearchInput value={state.textValue} onValueChange={(value) => setState({ textValue: value })} placeholder="Search invoices..." />}
|
|
488
|
-
activeCount={2}
|
|
489
453
|
onReset={() => setState({ textValue: "" })}
|
|
454
|
+
chips={[
|
|
455
|
+
{ key: "status", label: "Status", value: "Active", tone: "success" },
|
|
456
|
+
{ key: "owner", label: "Owner", value: "Azamat", tone: "default" },
|
|
457
|
+
]}
|
|
458
|
+
onRemoveChip={() => undefined}
|
|
490
459
|
filters={<Button variant="outline" size="sm"><FilterIcon data-icon="inline-start" />Status</Button>}
|
|
491
460
|
actions={<Button size="sm">Export</Button>}
|
|
492
461
|
/>
|
|
@@ -543,28 +512,26 @@ function ActionsPreview({
|
|
|
543
512
|
)
|
|
544
513
|
}
|
|
545
514
|
|
|
546
|
-
if (slug === "
|
|
515
|
+
if (slug === "data-table-saved-filters") {
|
|
547
516
|
return (
|
|
548
517
|
<div className="grid gap-3">
|
|
549
|
-
<
|
|
518
|
+
<FilterBar
|
|
550
519
|
chips={[
|
|
551
520
|
{ key: "status", label: "Status", value: "Active", tone: "success" },
|
|
552
521
|
{ key: "owner", label: "Owner", value: "Azamat", tone: "default" },
|
|
553
522
|
{ key: "region", label: "Region", value: "APAC", tone: "info" },
|
|
554
523
|
]}
|
|
555
|
-
|
|
556
|
-
|
|
524
|
+
onRemoveChip={() => undefined}
|
|
525
|
+
onReset={() => undefined}
|
|
526
|
+
/>
|
|
527
|
+
<ButtonGroup
|
|
528
|
+
attached={false}
|
|
529
|
+
items={[
|
|
530
|
+
{ key: "default", label: "Default", variant: "secondary" },
|
|
531
|
+
{ key: "billing", label: "Billing" },
|
|
532
|
+
{ key: "ops", label: "Operations" },
|
|
533
|
+
]}
|
|
557
534
|
/>
|
|
558
|
-
{slug === "data-table-saved-filters" ? (
|
|
559
|
-
<ButtonGroup
|
|
560
|
-
attached={false}
|
|
561
|
-
items={[
|
|
562
|
-
{ key: "default", label: "Default", variant: "secondary" },
|
|
563
|
-
{ key: "billing", label: "Billing" },
|
|
564
|
-
{ key: "ops", label: "Operations" },
|
|
565
|
-
]}
|
|
566
|
-
/>
|
|
567
|
-
) : null}
|
|
568
535
|
</div>
|
|
569
536
|
)
|
|
570
537
|
}
|