love-ui 1.2.13 → 1.2.15
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/README.md +6 -6
- package/package.json +7 -37
- package/registry/__index__.tsx +590 -0
- package/registry/default/examples/accordion-controlled.tsx +56 -0
- package/registry/default/examples/accordion-demo.tsx +39 -0
- package/registry/default/examples/accordion-multiple.tsx +35 -0
- package/registry/default/examples/accordion-product-faq.tsx +25 -0
- package/registry/default/examples/accordion-single.tsx +35 -0
- package/registry/default/examples/alert-billing-notice.tsx +19 -0
- package/registry/default/examples/alert-demo.tsx +16 -0
- package/registry/default/examples/alert-dialog-demo.tsx +38 -0
- package/registry/default/examples/alert-error.tsx +19 -0
- package/registry/default/examples/alert-info.tsx +19 -0
- package/registry/default/examples/alert-success.tsx +20 -0
- package/registry/default/examples/alert-warning.tsx +19 -0
- package/registry/default/examples/alert-with-icon-action.tsx +27 -0
- package/registry/default/examples/alert-with-icon.tsx +19 -0
- package/registry/default/examples/autocomplete-async.tsx +134 -0
- package/registry/default/examples/autocomplete-autohighlight.tsx +44 -0
- package/registry/default/examples/autocomplete-demo.tsx +44 -0
- package/registry/default/examples/autocomplete-disabled.tsx +44 -0
- package/registry/default/examples/autocomplete-form.tsx +69 -0
- package/registry/default/examples/autocomplete-grouped.tsx +112 -0
- package/registry/default/examples/autocomplete-inline.tsx +44 -0
- package/registry/default/examples/autocomplete-lg.tsx +45 -0
- package/registry/default/examples/autocomplete-limit.tsx +83 -0
- package/registry/default/examples/autocomplete-members.tsx +38 -0
- package/registry/default/examples/autocomplete-sm.tsx +45 -0
- package/registry/default/examples/autocomplete-with-clear.tsx +45 -0
- package/registry/default/examples/autocomplete-with-label.tsx +52 -0
- package/registry/default/examples/autocomplete-with-trigger-clear.tsx +46 -0
- package/registry/default/examples/avatar-demo.tsx +17 -0
- package/registry/default/examples/avatar-fallback.tsx +9 -0
- package/registry/default/examples/avatar-group.tsx +33 -0
- package/registry/default/examples/avatar-radius.tsx +33 -0
- package/registry/default/examples/avatar-size.tsx +33 -0
- package/registry/default/examples/avatar-team-stack.tsx +27 -0
- package/registry/default/examples/badge-demo.tsx +5 -0
- package/registry/default/examples/badge-destructive.tsx +5 -0
- package/registry/default/examples/badge-error.tsx +5 -0
- package/registry/default/examples/badge-info.tsx +5 -0
- package/registry/default/examples/badge-lg.tsx +5 -0
- package/registry/default/examples/badge-outline.tsx +5 -0
- package/registry/default/examples/badge-release-status.tsx +16 -0
- package/registry/default/examples/badge-secondary.tsx +5 -0
- package/registry/default/examples/badge-sm.tsx +5 -0
- package/registry/default/examples/badge-success.tsx +5 -0
- package/registry/default/examples/badge-warning.tsx +5 -0
- package/registry/default/examples/badge-with-icon.tsx +12 -0
- package/registry/default/examples/badge-with-link.tsx +7 -0
- package/registry/default/examples/breadcrumb-compact-path.tsx +22 -0
- package/registry/default/examples/breadcrumb-custom-separator.tsx +34 -0
- package/registry/default/examples/breadcrumb-demo.tsx +60 -0
- package/registry/default/examples/breadcrumb-with-ellipsis.tsx +25 -0
- package/registry/default/examples/breadcrumb-workspace-path.tsx +28 -0
- package/registry/default/examples/button-command-bar.tsx +18 -0
- package/registry/default/examples/button-demo.tsx +5 -0
- package/registry/default/examples/button-destructive-outline.tsx +5 -0
- package/registry/default/examples/button-destructive.tsx +5 -0
- package/registry/default/examples/button-disabled.tsx +5 -0
- package/registry/default/examples/button-ghost.tsx +5 -0
- package/registry/default/examples/button-icon-lg.tsx +11 -0
- package/registry/default/examples/button-icon-sm.tsx +11 -0
- package/registry/default/examples/button-icon.tsx +11 -0
- package/registry/default/examples/button-lg.tsx +5 -0
- package/registry/default/examples/button-link.tsx +5 -0
- package/registry/default/examples/button-loading.tsx +12 -0
- package/registry/default/examples/button-outline.tsx +5 -0
- package/registry/default/examples/button-secondary.tsx +5 -0
- package/registry/default/examples/button-sm.tsx +5 -0
- package/registry/default/examples/button-with-icon.tsx +12 -0
- package/registry/default/examples/button-with-link.tsx +7 -0
- package/registry/default/examples/button-xl.tsx +5 -0
- package/registry/default/examples/button-xs.tsx +5 -0
- package/registry/default/examples/card-billing-plan.tsx +26 -0
- package/registry/default/examples/card-demo.tsx +71 -0
- package/registry/default/examples/card-metric-summary.tsx +29 -0
- package/registry/default/examples/card-team-member.tsx +34 -0
- package/registry/default/examples/checkbox-card.tsx +16 -0
- package/registry/default/examples/checkbox-demo.tsx +11 -0
- package/registry/default/examples/checkbox-disabled.tsx +11 -0
- package/registry/default/examples/checkbox-form.tsx +39 -0
- package/registry/default/examples/checkbox-group-demo.tsx +25 -0
- package/registry/default/examples/checkbox-group-disabled.tsx +25 -0
- package/registry/default/examples/checkbox-group-form.tsx +54 -0
- package/registry/default/examples/checkbox-group-nested-parent.tsx +90 -0
- package/registry/default/examples/checkbox-group-parent.tsx +38 -0
- package/registry/default/examples/checkbox-notification-row.tsx +17 -0
- package/registry/default/examples/checkbox-with-description.tsx +21 -0
- package/registry/default/examples/code-block-diff.tsx +42 -0
- package/registry/default/examples/code-block-focus.tsx +28 -0
- package/registry/default/examples/code-block-headless.tsx +19 -0
- package/registry/default/examples/code-block-highlight-line.tsx +28 -0
- package/registry/default/examples/code-block-highlight-word.tsx +28 -0
- package/registry/default/examples/code-block-no-highlighting.tsx +34 -0
- package/registry/default/examples/code-block-numberless.tsx +34 -0
- package/registry/default/examples/code-block-shared/index.tsx +2 -0
- package/registry/default/examples/code-block-shared.tsx +26 -0
- package/registry/default/examples/code-block-theme.tsx +36 -0
- package/registry/default/examples/code-block.tsx +34 -0
- package/registry/default/examples/collapsible-checklist.tsx +26 -0
- package/registry/default/examples/collapsible-command-help.tsx +16 -0
- package/registry/default/examples/collapsible-demo.tsx +31 -0
- package/registry/default/examples/collapsible-release-notes.tsx +21 -0
- package/registry/default/examples/combobox-assignee.tsx +34 -0
- package/registry/default/examples/combobox-autohighlight.tsx +44 -0
- package/registry/default/examples/combobox-demo.tsx +44 -0
- package/registry/default/examples/combobox-disabled.tsx +44 -0
- package/registry/default/examples/combobox-form.tsx +68 -0
- package/registry/default/examples/combobox-grouped.tsx +112 -0
- package/registry/default/examples/combobox-lg.tsx +45 -0
- package/registry/default/examples/combobox-multiple-form.tsx +94 -0
- package/registry/default/examples/combobox-multiple.tsx +60 -0
- package/registry/default/examples/combobox-sm.tsx +45 -0
- package/registry/default/examples/combobox-with-clear.tsx +45 -0
- package/registry/default/examples/combobox-with-inner-input.tsx +880 -0
- package/registry/default/examples/combobox-with-label.tsx +52 -0
- package/registry/default/examples/dialog-close-confirmation.tsx +112 -0
- package/registry/default/examples/dialog-demo.tsx +50 -0
- package/registry/default/examples/dialog-from-menu.tsx +53 -0
- package/registry/default/examples/dialog-invite-member.tsx +34 -0
- package/registry/default/examples/dialog-nested.tsx +71 -0
- package/registry/default/examples/empty-demo.tsx +36 -0
- package/registry/default/examples/empty-filtered-results.tsx +24 -0
- package/registry/default/examples/empty-inbox-zero.tsx +21 -0
- package/registry/default/examples/empty-upload-queue.tsx +24 -0
- package/registry/default/examples/field-autocomplete.tsx +53 -0
- package/registry/default/examples/field-checkbox-group.tsx +38 -0
- package/registry/default/examples/field-checkbox.tsx +13 -0
- package/registry/default/examples/field-combobox-multiple.tsx +69 -0
- package/registry/default/examples/field-combobox.tsx +53 -0
- package/registry/default/examples/field-complete-form.tsx +113 -0
- package/registry/default/examples/field-demo.tsx +16 -0
- package/registry/default/examples/field-disabled.tsx +22 -0
- package/registry/default/examples/field-error.tsx +16 -0
- package/registry/default/examples/field-number-field.tsx +27 -0
- package/registry/default/examples/field-password.tsx +11 -0
- package/registry/default/examples/field-radio.tsx +37 -0
- package/registry/default/examples/field-required.tsx +22 -0
- package/registry/default/examples/field-select.tsx +41 -0
- package/registry/default/examples/field-slider.tsx +16 -0
- package/registry/default/examples/field-switch.tsx +13 -0
- package/registry/default/examples/field-textarea.tsx +25 -0
- package/registry/default/examples/field-validity.tsx +37 -0
- package/registry/default/examples/fieldset-billing-address.tsx +12 -0
- package/registry/default/examples/fieldset-danger-zone.tsx +15 -0
- package/registry/default/examples/fieldset-demo.tsx +33 -0
- package/registry/default/examples/fieldset-notification-settings.tsx +14 -0
- package/registry/default/examples/form-demo.tsx +43 -0
- package/registry/default/examples/form-newsletter.tsx +16 -0
- package/registry/default/examples/form-profile-card.tsx +13 -0
- package/registry/default/examples/form-zod.tsx +84 -0
- package/registry/default/examples/form.tsx +318 -0
- package/registry/default/examples/frame-analytics-panel.tsx +16 -0
- package/registry/default/examples/frame-code-output.tsx +11 -0
- package/registry/default/examples/frame-demo.tsx +26 -0
- package/registry/default/examples/frame-device-preview.tsx +14 -0
- package/registry/default/examples/gooey-toast-demo.tsx +104 -0
- package/registry/default/examples/gooey-toast-position.tsx +36 -0
- package/registry/default/examples/gooey-toast-promise.tsx +31 -0
- package/registry/default/examples/gooey-toast-states.tsx +76 -0
- package/registry/default/examples/gooey-toast-with-button.tsx +34 -0
- package/registry/default/examples/group-demo.tsx +28 -0
- package/registry/default/examples/group-filter-actions.tsx +14 -0
- package/registry/default/examples/group-segmented-filters.tsx +12 -0
- package/registry/default/examples/group-toolbar-actions.tsx +14 -0
- package/registry/default/examples/group-with-input.tsx +23 -0
- package/registry/default/examples/input-demo.tsx +7 -0
- package/registry/default/examples/input-disabled.tsx +11 -0
- package/registry/default/examples/input-file.tsx +5 -0
- package/registry/default/examples/input-lg.tsx +11 -0
- package/registry/default/examples/input-search-inline.tsx +12 -0
- package/registry/default/examples/input-sm.tsx +11 -0
- package/registry/default/examples/input-with-button.tsx +15 -0
- package/registry/default/examples/input-with-label.tsx +19 -0
- package/registry/default/examples/label-password-field.tsx +11 -0
- package/registry/default/examples/menu-checkbox.tsx +21 -0
- package/registry/default/examples/menu-close-on-click.tsx +22 -0
- package/registry/default/examples/menu-demo.tsx +102 -0
- package/registry/default/examples/menu-group-labels.tsx +27 -0
- package/registry/default/examples/menu-hover.tsx +21 -0
- package/registry/default/examples/menu-link.tsx +25 -0
- package/registry/default/examples/menu-nested.tsx +31 -0
- package/registry/default/examples/menu-project-actions.tsx +17 -0
- package/registry/default/examples/menu-radio-group.tsx +25 -0
- package/registry/default/examples/meter-demo.tsx +21 -0
- package/registry/default/examples/meter-simple.tsx +5 -0
- package/registry/default/examples/meter-storage-quota.tsx +13 -0
- package/registry/default/examples/meter-with-formatted-value.tsx +23 -0
- package/registry/default/examples/meter-with-range.tsx +23 -0
- package/registry/default/examples/number-field-demo.tsx +19 -0
- package/registry/default/examples/number-field-disabled.tsx +19 -0
- package/registry/default/examples/number-field-form.tsx +75 -0
- package/registry/default/examples/number-field-lg.tsx +19 -0
- package/registry/default/examples/number-field-sm.tsx +19 -0
- package/registry/default/examples/number-field-ticket-count.tsx +19 -0
- package/registry/default/examples/number-field-with-formatted-value.tsx +22 -0
- package/registry/default/examples/number-field-with-label.tsx +26 -0
- package/registry/default/examples/number-field-with-range.tsx +19 -0
- package/registry/default/examples/number-field-with-scrub.tsx +21 -0
- package/registry/default/examples/number-field-with-step.tsx +31 -0
- package/registry/default/examples/pagination-compact.tsx +13 -0
- package/registry/default/examples/pagination-demo.tsx +38 -0
- package/registry/default/examples/pagination-mini.tsx +12 -0
- package/registry/default/examples/pagination-results.tsx +22 -0
- package/registry/default/examples/popover-account-summary.tsx +14 -0
- package/registry/default/examples/popover-color-swatch.tsx +20 -0
- package/registry/default/examples/popover-demo.tsx +41 -0
- package/registry/default/examples/popover-with-close.tsx +38 -0
- package/registry/default/examples/preview-card-demo.tsx +46 -0
- package/registry/default/examples/preview-card-product.tsx +18 -0
- package/registry/default/examples/preview-card-profile.tsx +17 -0
- package/registry/default/examples/preview-card-repository.tsx +19 -0
- package/registry/default/examples/progress-demo.tsx +20 -0
- package/registry/default/examples/progress-onboarding.tsx +10 -0
- package/registry/default/examples/progress-with-formatted-value.tsx +23 -0
- package/registry/default/examples/progress-with-label-value.tsx +21 -0
- package/registry/default/examples/radio-group-card.tsx +27 -0
- package/registry/default/examples/radio-group-delivery.tsx +16 -0
- package/registry/default/examples/radio-group-demo.tsx +18 -0
- package/registry/default/examples/radio-group-disabled.tsx +18 -0
- package/registry/default/examples/radio-group-form.tsx +50 -0
- package/registry/default/examples/radio-group-with-description.tsx +27 -0
- package/registry/default/examples/scroll-area-activity.tsx +13 -0
- package/registry/default/examples/scroll-area-both.tsx +24 -0
- package/registry/default/examples/scroll-area-demo.tsx +20 -0
- package/registry/default/examples/scroll-area-horizontal.tsx +18 -0
- package/registry/default/examples/select-demo.tsx +31 -0
- package/registry/default/examples/select-disabled.tsx +31 -0
- package/registry/default/examples/select-form.tsx +64 -0
- package/registry/default/examples/select-lg.tsx +31 -0
- package/registry/default/examples/select-multiple.tsx +54 -0
- package/registry/default/examples/select-sm.tsx +31 -0
- package/registry/default/examples/select-timezone.tsx +16 -0
- package/registry/default/examples/select-with-groups.tsx +56 -0
- package/registry/default/examples/select-without-alignment.tsx +31 -0
- package/registry/default/examples/separator-demo.tsx +25 -0
- package/registry/default/examples/separator-section-label.tsx +11 -0
- package/registry/default/examples/separator-timeline.tsx +13 -0
- package/registry/default/examples/separator-vertical-stack.tsx +13 -0
- package/registry/default/examples/sheet-checkout-summary.tsx +19 -0
- package/registry/default/examples/sheet-demo.tsx +60 -0
- package/registry/default/examples/sheet-position.tsx +82 -0
- package/registry/default/examples/sheet-profile-editor.tsx +19 -0
- package/registry/default/examples/skeleton-chat-list.tsx +14 -0
- package/registry/default/examples/skeleton-dashboard-card.tsx +15 -0
- package/registry/default/examples/skeleton-demo.tsx +112 -0
- package/registry/default/examples/skeleton-only.tsx +17 -0
- package/registry/default/examples/slider-demo.tsx +5 -0
- package/registry/default/examples/slider-form.tsx +46 -0
- package/registry/default/examples/slider-opacity.tsx +12 -0
- package/registry/default/examples/slider-range.tsx +5 -0
- package/registry/default/examples/slider-vertical.tsx +5 -0
- package/registry/default/examples/slider-with-label-value.tsx +13 -0
- package/registry/default/examples/switch-card.tsx +23 -0
- package/registry/default/examples/switch-demo.tsx +11 -0
- package/registry/default/examples/switch-disabled.tsx +11 -0
- package/registry/default/examples/switch-form.tsx +38 -0
- package/registry/default/examples/switch-privacy-mode.tsx +12 -0
- package/registry/default/examples/switch-with-description.tsx +20 -0
- package/registry/default/examples/table-demo.tsx +123 -0
- package/registry/default/examples/table-framed.tsx +132 -0
- package/registry/default/examples/table-invoice-list.tsx +14 -0
- package/registry/default/examples/table-user-roles.tsx +12 -0
- package/registry/default/examples/table.tsx +170 -0
- package/registry/default/examples/tabs-demo.tsx +28 -0
- package/registry/default/examples/tabs-settings.tsx +11 -0
- package/registry/default/examples/tabs-underline-vertical.tsx +34 -0
- package/registry/default/examples/tabs-underline.tsx +30 -0
- package/registry/default/examples/tabs-vertical.tsx +28 -0
- package/registry/default/examples/textarea-demo.tsx +5 -0
- package/registry/default/examples/textarea-disabled.tsx +5 -0
- package/registry/default/examples/textarea-feedback.tsx +5 -0
- package/registry/default/examples/textarea-form.tsx +44 -0
- package/registry/default/examples/textarea-lg.tsx +5 -0
- package/registry/default/examples/textarea-sm.tsx +5 -0
- package/registry/default/examples/textarea-with-label.tsx +14 -0
- package/registry/default/examples/toast-demo.tsx +20 -0
- package/registry/default/examples/toast-heights.tsx +32 -0
- package/registry/default/examples/toast-loading.tsx +21 -0
- package/registry/default/examples/toast-promise.tsx +42 -0
- package/registry/default/examples/toast-sync-complete.tsx +15 -0
- package/registry/default/examples/toast-with-action.tsx +33 -0
- package/registry/default/examples/toast-with-status.tsx +60 -0
- package/registry/default/examples/toggle-demo.tsx +5 -0
- package/registry/default/examples/toggle-disabled.tsx +9 -0
- package/registry/default/examples/toggle-group-demo.tsx +19 -0
- package/registry/default/examples/toggle-group-disabled.tsx +19 -0
- package/registry/default/examples/toggle-group-lg.tsx +19 -0
- package/registry/default/examples/toggle-group-multiple.tsx +19 -0
- package/registry/default/examples/toggle-group-outline-with-separator.tsx +25 -0
- package/registry/default/examples/toggle-group-outline.tsx +19 -0
- package/registry/default/examples/toggle-group-sm.tsx +19 -0
- package/registry/default/examples/toggle-group-with-disabled-item.tsx +19 -0
- package/registry/default/examples/toggle-icon-group.tsx +19 -0
- package/registry/default/examples/toggle-lg.tsx +9 -0
- package/registry/default/examples/toggle-outline.tsx +5 -0
- package/registry/default/examples/toggle-sm.tsx +9 -0
- package/registry/default/examples/toggle-view-mode.tsx +12 -0
- package/registry/default/examples/toggle-with-icon.tsx +11 -0
- package/registry/default/examples/toolbar-canvas-controls.tsx +17 -0
- package/registry/default/examples/toolbar-demo.tsx +155 -0
- package/registry/default/examples/toolbar-density-controls.tsx +17 -0
- package/registry/default/examples/toolbar-media-controls.tsx +16 -0
- package/registry/default/examples/tooltip-demo.tsx +17 -0
- package/registry/default/examples/tooltip-grouped.tsx +46 -0
- package/registry/default/examples/tooltip-icon-row.tsx +13 -0
- package/registry/default/examples/tooltip-keyboard-hints.tsx +11 -0
- package/registry/default/ui/accordion.tsx +66 -0
- package/registry/default/ui/alert-dialog.tsx +16 -0
- package/registry/default/ui/alert.tsx +215 -0
- package/registry/default/ui/autocomplete.tsx +282 -0
- package/registry/default/ui/avatar.tsx +46 -0
- package/registry/default/ui/badge.tsx +57 -0
- package/registry/default/ui/breadcrumb.tsx +109 -0
- package/registry/default/ui/button.tsx +85 -0
- package/registry/default/ui/card.tsx +113 -0
- package/registry/default/ui/checkbox-group.tsx +3 -0
- package/registry/default/ui/checkbox.tsx +71 -0
- package/registry/default/ui/collapsible.tsx +45 -0
- package/registry/default/ui/combobox.tsx +355 -0
- package/registry/default/ui/dialog.tsx +134 -0
- package/registry/default/ui/empty.tsx +127 -0
- package/registry/default/ui/field.tsx +128 -0
- package/registry/default/ui/fieldset.tsx +29 -0
- package/registry/default/ui/form.tsx +9 -0
- package/registry/default/ui/frame.tsx +81 -0
- package/registry/default/ui/group.tsx +62 -0
- package/registry/default/ui/input.tsx +41 -0
- package/registry/default/ui/label.tsx +15 -0
- package/registry/default/ui/menu.tsx +254 -0
- package/registry/default/ui/meter.tsx +67 -0
- package/registry/default/ui/number-field.tsx +160 -0
- package/registry/default/ui/pagination.tsx +147 -0
- package/registry/default/ui/popover.tsx +86 -0
- package/registry/default/ui/preview-card.tsx +55 -0
- package/registry/default/ui/progress.tsx +81 -0
- package/registry/default/ui/radio-group.tsx +36 -0
- package/registry/default/ui/scroll-area.tsx +62 -0
- package/registry/default/ui/select.tsx +187 -0
- package/registry/default/ui/separator.tsx +23 -0
- package/registry/default/ui/sheet.tsx +134 -0
- package/registry/default/ui/skeleton.tsx +18 -0
- package/registry/default/ui/slider.tsx +77 -0
- package/registry/default/ui/switch.tsx +27 -0
- package/registry/default/ui/table.tsx +127 -0
- package/registry/default/ui/tabs.tsx +90 -0
- package/registry/default/ui/textarea.tsx +35 -0
- package/registry/default/ui/toast.tsx +351 -0
- package/registry/default/ui/toggle-group.tsx +9 -0
- package/registry/default/ui/toggle.tsx +105 -0
- package/registry/default/ui/toolbar.tsx +83 -0
- package/registry/default/ui/tooltip.tsx +57 -0
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -15
- package/dist/mcp-server.d.ts +0 -1
- package/dist/mcp-server.js +0 -2
- package/packages/announcement/index.tsx +0 -53
- package/packages/announcement/package.json +0 -23
- package/packages/announcement/tsconfig.json +0 -13
- package/packages/avatar-stack/index.tsx +0 -51
- package/packages/avatar-stack/package.json +0 -23
- package/packages/avatar-stack/tsconfig.json +0 -13
- package/packages/banner/index.tsx +0 -143
- package/packages/banner/package.json +0 -25
- package/packages/banner/tsconfig.json +0 -13
- package/packages/calendar/index.tsx +0 -496
- package/packages/calendar/package.json +0 -26
- package/packages/calendar/tsconfig.json +0 -13
- package/packages/choicebox/index.tsx +0 -113
- package/packages/choicebox/package.json +0 -25
- package/packages/choicebox/tsconfig.json +0 -13
- package/packages/code-block/README.md +0 -62
- package/packages/code-block/components.json +0 -21
- package/packages/code-block/package.json +0 -52
- package/packages/code-block/src/components/code-block/blocks/copy-with-select-package-manager.tsx +0 -146
- package/packages/code-block/src/components/code-block/blocks/copy-with-tabs-package-manager.tsx +0 -110
- package/packages/code-block/src/components/code-block/blocks/inline-code.tsx +0 -28
- package/packages/code-block/src/components/code-block/blocks/multi-tabs.tsx +0 -118
- package/packages/code-block/src/components/code-block/client/shiki.tsx +0 -139
- package/packages/code-block/src/components/code-block/client/sugar-high.tsx +0 -38
- package/packages/code-block/src/components/code-block/code-block.tsx +0 -113
- package/packages/code-block/src/components/code-block/copy-button.tsx +0 -59
- package/packages/code-block/src/components/code-block/mdx/pre-shiki.tsx +0 -42
- package/packages/code-block/src/components/code-block/mdx/pre-sugar-high.tsx +0 -37
- package/packages/code-block/src/components/ui/dropdown-menu.tsx +0 -103
- package/packages/code-block/src/components/ui/tabs.tsx +0 -84
- package/packages/code-block/src/index.ts +0 -35
- package/packages/code-block/src/stores/packageManager.ts +0 -24
- package/packages/code-block/src/styles/globals.css +0 -79
- package/packages/code-block/src/styles/shiki.css +0 -95
- package/packages/code-block/src/styles/sugar-high.css +0 -48
- package/packages/code-block/src/utils/cn.ts +0 -6
- package/packages/code-block/src/utils/copy.ts +0 -9
- package/packages/code-block/src/utils/react-to-text.ts +0 -34
- package/packages/code-block/src/utils/shiki/highlight.ts +0 -47
- package/packages/code-block/src/utils/sugar-high/highlight.ts +0 -12
- package/packages/code-block/tsconfig.json +0 -17
- package/packages/color-picker/index.tsx +0 -467
- package/packages/color-picker/package.json +0 -27
- package/packages/color-picker/tsconfig.json +0 -13
- package/packages/combobox/index.tsx +0 -309
- package/packages/combobox/package.json +0 -25
- package/packages/combobox/tsconfig.json +0 -13
- package/packages/comparison/index.tsx +0 -209
- package/packages/comparison/package.json +0 -25
- package/packages/comparison/tsconfig.json +0 -13
- package/packages/contribution-graph/index.tsx +0 -517
- package/packages/contribution-graph/package.json +0 -24
- package/packages/contribution-graph/tsconfig.json +0 -13
- package/packages/credit-card/index.tsx +0 -348
- package/packages/credit-card/package.json +0 -24
- package/packages/credit-card/tsconfig.json +0 -13
- package/packages/cursor/index.tsx +0 -62
- package/packages/cursor/package.json +0 -23
- package/packages/cursor/tsconfig.json +0 -13
- package/packages/deck/index.tsx +0 -297
- package/packages/deck/package.json +0 -26
- package/packages/deck/tsconfig.json +0 -13
- package/packages/dialog-stack/index.tsx +0 -484
- package/packages/dialog-stack/package.json +0 -25
- package/packages/dialog-stack/tsconfig.json +0 -13
- package/packages/dropzone/index.tsx +0 -202
- package/packages/dropzone/package.json +0 -25
- package/packages/dropzone/tsconfig.json +0 -13
- package/packages/editor/index.tsx +0 -1996
- package/packages/editor/package.json +0 -41
- package/packages/editor/tsconfig.json +0 -13
- package/packages/eslint-config/base.js +0 -32
- package/packages/eslint-config/next.js +0 -49
- package/packages/eslint-config/package.json +0 -33
- package/packages/eslint-config/react-internal.js +0 -39
- package/packages/ether/README.md +0 -39
- package/packages/ether/index.tsx +0 -1297
- package/packages/ether/package.json +0 -59
- package/packages/ether/tsconfig.json +0 -18
- package/packages/gantt/index.tsx +0 -1469
- package/packages/gantt/package.json +0 -31
- package/packages/gantt/tsconfig.json +0 -13
- package/packages/glimpse/index.tsx +0 -67
- package/packages/glimpse/package.json +0 -23
- package/packages/glimpse/server.tsx +0 -21
- package/packages/glimpse/tsconfig.json +0 -13
- package/packages/gooey-toast/package.json +0 -28
- package/packages/gooey-toast/src/gooey.tsx +0 -614
- package/packages/gooey-toast/src/icons.tsx +0 -68
- package/packages/gooey-toast/src/index.ts +0 -10
- package/packages/gooey-toast/src/styles.css +0 -511
- package/packages/gooey-toast/src/toast.tsx +0 -444
- package/packages/gooey-toast/src/types.ts +0 -45
- package/packages/gooey-toast/tsconfig.json +0 -13
- package/packages/gradiant-blinds/README.md +0 -39
- package/packages/gradiant-blinds/index.tsx +0 -390
- package/packages/gradiant-blinds/package.json +0 -60
- package/packages/gradiant-blinds/tsconfig.json +0 -18
- package/packages/gradient-mesh/index.tsx +0 -236
- package/packages/gradient-mesh/package.json +0 -62
- package/packages/gradient-mesh/tsconfig.json +0 -10
- package/packages/image-crop/index.tsx +0 -368
- package/packages/image-crop/package.json +0 -26
- package/packages/image-crop/tsconfig.json +0 -13
- package/packages/image-zoom/index.tsx +0 -52
- package/packages/image-zoom/package.json +0 -24
- package/packages/image-zoom/tsconfig.json +0 -13
- package/packages/kanban/index.tsx +0 -338
- package/packages/kanban/package.json +0 -27
- package/packages/kanban/tsconfig.json +0 -13
- package/packages/list/index.tsx +0 -152
- package/packages/list/package.json +0 -25
- package/packages/list/tsconfig.json +0 -13
- package/packages/love-ui/components.json +0 -20
- package/packages/love-ui/eslint.config.js +0 -4
- package/packages/love-ui/index.ts +0 -3
- package/packages/love-ui/package.json +0 -60
- package/packages/love-ui/postcss.config.mjs +0 -6
- package/packages/love-ui/src/components/code-block.tsx +0 -38
- package/packages/love-ui/src/components/copy-button.tsx +0 -59
- package/packages/love-ui/src/components/icons.tsx +0 -207
- package/packages/love-ui/src/components/mobile-nav.tsx +0 -123
- package/packages/love-ui/src/components/mode-switcher.tsx +0 -42
- package/packages/love-ui/src/components/page-header.tsx +0 -43
- package/packages/love-ui/src/components/product-label.tsx +0 -61
- package/packages/love-ui/src/components/products-dropdown.tsx +0 -81
- package/packages/love-ui/src/components/site-cta.tsx +0 -19
- package/packages/love-ui/src/components/site-footer.tsx +0 -13
- package/packages/love-ui/src/components/site-header.tsx +0 -56
- package/packages/love-ui/src/components/theme-provider.tsx +0 -22
- package/packages/love-ui/src/hooks/use-copy-to-clipboard.ts +0 -38
- package/packages/love-ui/src/hooks/use-media.tsx +0 -22
- package/packages/love-ui/src/lib/config.ts +0 -20
- package/packages/love-ui/src/lib/highlight-code.ts +0 -86
- package/packages/love-ui/src/lib/utils.ts +0 -10
- package/packages/love-ui/src/styles/globals.css +0 -349
- package/packages/love-ui/src/ui/accordion.tsx +0 -66
- package/packages/love-ui/src/ui/alert-dialog.tsx +0 -136
- package/packages/love-ui/src/ui/alert.tsx +0 -81
- package/packages/love-ui/src/ui/autocomplete.tsx +0 -282
- package/packages/love-ui/src/ui/avatar.tsx +0 -46
- package/packages/love-ui/src/ui/badge.tsx +0 -57
- package/packages/love-ui/src/ui/breadcrumb.tsx +0 -110
- package/packages/love-ui/src/ui/button.tsx +0 -85
- package/packages/love-ui/src/ui/card.tsx +0 -114
- package/packages/love-ui/src/ui/chart.tsx +0 -367
- package/packages/love-ui/src/ui/checkbox-group.tsx +0 -16
- package/packages/love-ui/src/ui/checkbox.tsx +0 -67
- package/packages/love-ui/src/ui/collapsible.tsx +0 -45
- package/packages/love-ui/src/ui/combobox.tsx +0 -355
- package/packages/love-ui/src/ui/command.tsx +0 -185
- package/packages/love-ui/src/ui/dialog.tsx +0 -135
- package/packages/love-ui/src/ui/empty.tsx +0 -128
- package/packages/love-ui/src/ui/field.tsx +0 -96
- package/packages/love-ui/src/ui/fieldset.tsx +0 -29
- package/packages/love-ui/src/ui/form.tsx +0 -17
- package/packages/love-ui/src/ui/frame.tsx +0 -82
- package/packages/love-ui/src/ui/group.tsx +0 -62
- package/packages/love-ui/src/ui/input.tsx +0 -41
- package/packages/love-ui/src/ui/kbd.tsx +0 -27
- package/packages/love-ui/src/ui/label.tsx +0 -16
- package/packages/love-ui/src/ui/menu.tsx +0 -255
- package/packages/love-ui/src/ui/meter.tsx +0 -67
- package/packages/love-ui/src/ui/number-field.tsx +0 -161
- package/packages/love-ui/src/ui/pagination.tsx +0 -136
- package/packages/love-ui/src/ui/popover.tsx +0 -158
- package/packages/love-ui/src/ui/preview-card.tsx +0 -55
- package/packages/love-ui/src/ui/progress.tsx +0 -81
- package/packages/love-ui/src/ui/radio-group.tsx +0 -36
- package/packages/love-ui/src/ui/scroll-area.tsx +0 -62
- package/packages/love-ui/src/ui/select.tsx +0 -186
- package/packages/love-ui/src/ui/separator.tsx +0 -23
- package/packages/love-ui/src/ui/sheet.tsx +0 -135
- package/packages/love-ui/src/ui/skeleton.tsx +0 -18
- package/packages/love-ui/src/ui/slider.tsx +0 -76
- package/packages/love-ui/src/ui/switch.tsx +0 -27
- package/packages/love-ui/src/ui/table.tsx +0 -127
- package/packages/love-ui/src/ui/tabs.tsx +0 -90
- package/packages/love-ui/src/ui/textarea.tsx +0 -36
- package/packages/love-ui/src/ui/toast.tsx +0 -169
- package/packages/love-ui/src/ui/toggle-group.tsx +0 -84
- package/packages/love-ui/src/ui/toggle.tsx +0 -45
- package/packages/love-ui/src/ui/toolbar.tsx +0 -83
- package/packages/love-ui/src/ui/tooltip.tsx +0 -57
- package/packages/love-ui/tsconfig.json +0 -11
- package/packages/love-ui/tsconfig.lint.json +0 -8
- package/packages/loveui-skills/SKILL.md +0 -99
- package/packages/loveui-skills/agents/openai.yaml +0 -11
- package/packages/loveui-skills/references/design-directions.md +0 -60
- package/packages/loveui-skills/references/mcp-catalog-workflow.md +0 -68
- package/packages/loveui-skills/references/page-blueprints.md +0 -76
- package/packages/loveui-skills/references/quality-gates.md +0 -51
- package/packages/marquee/index.tsx +0 -59
- package/packages/marquee/package.json +0 -24
- package/packages/marquee/tsconfig.json +0 -13
- package/packages/mini-calendar/index.tsx +0 -230
- package/packages/mini-calendar/package.json +0 -27
- package/packages/mini-calendar/tsconfig.json +0 -13
- package/packages/patterns/accordion/form/accordion-form-1.tsx +0 -83
- package/packages/patterns/accordion/form/accordion-form-2.tsx +0 -89
- package/packages/patterns/accordion/multi-level/accordion-multi-level-1.tsx +0 -83
- package/packages/patterns/accordion/multi-level/accordion-multi-level-2.tsx +0 -92
- package/packages/patterns/accordion/multi-level/accordion-multi-level-3.tsx +0 -89
- package/packages/patterns/accordion/multi-level/accordion-multi-level-4.tsx +0 -89
- package/packages/patterns/accordion/standard/accordion-standard-1.tsx +0 -43
- package/packages/patterns/accordion/standard/accordion-standard-2.tsx +0 -45
- package/packages/patterns/accordion/standard/accordion-standard-3.tsx +0 -52
- package/packages/patterns/accordion/standard/accordion-standard-4.tsx +0 -52
- package/packages/patterns/accordion/standard/accordion-standard-5.tsx +0 -59
- package/packages/patterns/accordion/standard/accordion-standard-6.tsx +0 -72
- package/packages/patterns/accordion/standard/accordion-standard-7.tsx +0 -79
- package/packages/patterns/accordion/subtitle/accordion-subtitle-1.tsx +0 -56
- package/packages/patterns/accordion/subtitle/accordion-subtitle-2.tsx +0 -66
- package/packages/patterns/accordion/subtitle/accordion-subtitle-3.tsx +0 -63
- package/packages/patterns/accordion/subtitle/accordion-subtitle-4.tsx +0 -66
- package/packages/patterns/accordion/tabs/accordion-tabs-1.tsx +0 -52
- package/packages/patterns/accordion/tabs/accordion-tabs-2.tsx +0 -43
- package/packages/patterns/accordion/tabs/accordion-tabs-3.tsx +0 -52
- package/packages/patterns/accordion/tabs/accordion-tabs-4.tsx +0 -45
- package/packages/patterns/alert/error/alert-error-1.tsx +0 -11
- package/packages/patterns/alert/error/alert-error-2.tsx +0 -14
- package/packages/patterns/alert/error/alert-error-3.tsx +0 -22
- package/packages/patterns/alert/error/alert-error-4.tsx +0 -27
- package/packages/patterns/alert/error/alert-error-5.tsx +0 -29
- package/packages/patterns/alert/info/alert-info-1.tsx +0 -11
- package/packages/patterns/alert/info/alert-info-2.tsx +0 -14
- package/packages/patterns/alert/info/alert-info-3.tsx +0 -26
- package/packages/patterns/alert/info/alert-info-4.tsx +0 -31
- package/packages/patterns/alert/info/alert-info-5.tsx +0 -34
- package/packages/patterns/alert/standard/alert-standard-1.tsx +0 -11
- package/packages/patterns/alert/standard/alert-standard-2.tsx +0 -14
- package/packages/patterns/alert/standard/alert-standard-3.tsx +0 -22
- package/packages/patterns/alert/standard/alert-standard-4.tsx +0 -27
- package/packages/patterns/alert/standard/alert-standard-5.tsx +0 -29
- package/packages/patterns/alert/success/alert-success-1.tsx +0 -11
- package/packages/patterns/alert/success/alert-success-2.tsx +0 -14
- package/packages/patterns/alert/success/alert-success-3.tsx +0 -26
- package/packages/patterns/alert/success/alert-success-4.tsx +0 -31
- package/packages/patterns/alert/success/alert-success-5.tsx +0 -33
- package/packages/patterns/alert/warning/alert-warning-1.tsx +0 -11
- package/packages/patterns/alert/warning/alert-warning-2.tsx +0 -14
- package/packages/patterns/alert/warning/alert-warning-3.tsx +0 -26
- package/packages/patterns/alert/warning/alert-warning-4.tsx +0 -32
- package/packages/patterns/alert/warning/alert-warning-5.tsx +0 -33
- package/packages/patterns/alert-dialog/confirmation/alert-dialog-confirmation-1.tsx +0 -37
- package/packages/patterns/alert-dialog/confirmation/alert-dialog-confirmation-2.tsx +0 -41
- package/packages/patterns/alert-dialog/confirmation/alert-dialog-confirmation-3.tsx +0 -43
- package/packages/patterns/alert-dialog/confirmation/alert-dialog-confirmation-4.tsx +0 -37
- package/packages/patterns/alert-dialog/confirmation/alert-dialog-confirmation-5.tsx +0 -36
- package/packages/patterns/alert-dialog/confirmation/alert-dialog-confirmation-6.tsx +0 -40
- package/packages/patterns/alert-dialog/custom-actions/alert-dialog-custom-actions-1.tsx +0 -41
- package/packages/patterns/alert-dialog/custom-actions/alert-dialog-custom-actions-2.tsx +0 -42
- package/packages/patterns/alert-dialog/custom-actions/alert-dialog-custom-actions-3.tsx +0 -41
- package/packages/patterns/alert-dialog/custom-actions/alert-dialog-custom-actions-4.tsx +0 -54
- package/packages/patterns/alert-dialog/custom-actions/alert-dialog-custom-actions-5.tsx +0 -40
- package/packages/patterns/alert-dialog/destructive/alert-dialog-destructive-1.tsx +0 -39
- package/packages/patterns/alert-dialog/destructive/alert-dialog-destructive-2.tsx +0 -43
- package/packages/patterns/alert-dialog/destructive/alert-dialog-destructive-3.tsx +0 -51
- package/packages/patterns/alert-dialog/destructive/alert-dialog-destructive-4.tsx +0 -46
- package/packages/patterns/alert-dialog/destructive/alert-dialog-destructive-5.tsx +0 -46
- package/packages/patterns/alert-dialog/destructive/alert-dialog-destructive-6.tsx +0 -46
- package/packages/patterns/alert-dialog/destructive/alert-dialog-destructive-7.tsx +0 -43
- package/packages/patterns/alert-dialog/form/alert-dialog-form-1.tsx +0 -47
- package/packages/patterns/alert-dialog/form/alert-dialog-form-2.tsx +0 -53
- package/packages/patterns/alert-dialog/form/alert-dialog-form-3.tsx +0 -64
- package/packages/patterns/alert-dialog/form/alert-dialog-form-4.tsx +0 -47
- package/packages/patterns/alert-dialog/form/alert-dialog-form-5.tsx +0 -55
- package/packages/patterns/alert-dialog/form/alert-dialog-form-6.tsx +0 -69
- package/packages/patterns/alert-dialog/form/alert-dialog-form-7.tsx +0 -73
- package/packages/patterns/alert-dialog/informational/alert-dialog-informational-1.tsx +0 -35
- package/packages/patterns/alert-dialog/informational/alert-dialog-informational-2.tsx +0 -39
- package/packages/patterns/alert-dialog/informational/alert-dialog-informational-3.tsx +0 -48
- package/packages/patterns/alert-dialog/informational/alert-dialog-informational-4.tsx +0 -41
- package/packages/patterns/alert-dialog/informational/alert-dialog-informational-5.tsx +0 -42
- package/packages/patterns/alert-dialog/informational/alert-dialog-informational-6.tsx +0 -43
- package/packages/patterns/alert-dialog/informational/alert-dialog-informational-7.tsx +0 -58
- package/packages/patterns/alert-dialog/success/alert-dialog-success-1.tsx +0 -34
- package/packages/patterns/alert-dialog/success/alert-dialog-success-2.tsx +0 -39
- package/packages/patterns/alert-dialog/success/alert-dialog-success-3.tsx +0 -39
- package/packages/patterns/alert-dialog/success/alert-dialog-success-4.tsx +0 -52
- package/packages/patterns/alert-dialog/success/alert-dialog-success-5.tsx +0 -50
- package/packages/patterns/alert-dialog/success/alert-dialog-success-6.tsx +0 -41
- package/packages/patterns/alert-dialog/success/alert-dialog-success-7.tsx +0 -44
- package/packages/patterns/aspect-ratio/standard/aspect-ratio-standard-1.tsx +0 -15
- package/packages/patterns/aspect-ratio/standard/aspect-ratio-standard-2.tsx +0 -15
- package/packages/patterns/aspect-ratio/standard/aspect-ratio-standard-3.tsx +0 -15
- package/packages/patterns/aspect-ratio/standard/aspect-ratio-standard-4.tsx +0 -15
- package/packages/patterns/aspect-ratio/standard/aspect-ratio-standard-5.tsx +0 -15
- package/packages/patterns/aspect-ratio/standard/aspect-ratio-standard-6.tsx +0 -15
- package/packages/patterns/aspect-ratio/standard/aspect-ratio-standard-7.tsx +0 -15
- package/packages/patterns/avatar/square/avatar-square-1.tsx +0 -15
- package/packages/patterns/avatar/square/avatar-square-2.tsx +0 -11
- package/packages/patterns/avatar/square/avatar-square-3.tsx +0 -14
- package/packages/patterns/avatar/square/avatar-square-4.tsx +0 -18
- package/packages/patterns/avatar/square/avatar-square-5.tsx +0 -18
- package/packages/patterns/avatar/square/avatar-square-6.tsx +0 -21
- package/packages/patterns/avatar/square/avatar-square-7.tsx +0 -20
- package/packages/patterns/avatar/standard/avatar-standard-1.tsx +0 -15
- package/packages/patterns/avatar/standard/avatar-standard-2.tsx +0 -11
- package/packages/patterns/avatar/standard/avatar-standard-3.tsx +0 -14
- package/packages/patterns/avatar/standard/avatar-standard-4.tsx +0 -18
- package/packages/patterns/avatar/standard/avatar-standard-5.tsx +0 -18
- package/packages/patterns/avatar/standard/avatar-standard-6.tsx +0 -21
- package/packages/patterns/avatar/standard/avatar-standard-7.tsx +0 -20
- package/packages/patterns/badge/destructive/badge-destructive-1.tsx +0 -7
- package/packages/patterns/badge/destructive/badge-destructive-2.tsx +0 -13
- package/packages/patterns/badge/destructive/badge-destructive-3.tsx +0 -13
- package/packages/patterns/badge/destructive/badge-destructive-4.tsx +0 -13
- package/packages/patterns/badge/destructive/badge-destructive-5.tsx +0 -14
- package/packages/patterns/badge/outline/badge-outline-1.tsx +0 -7
- package/packages/patterns/badge/outline/badge-outline-2.tsx +0 -13
- package/packages/patterns/badge/outline/badge-outline-3.tsx +0 -13
- package/packages/patterns/badge/outline/badge-outline-4.tsx +0 -13
- package/packages/patterns/badge/outline/badge-outline-5.tsx +0 -14
- package/packages/patterns/badge/secondary/badge-secondary-1.tsx +0 -7
- package/packages/patterns/badge/secondary/badge-secondary-2.tsx +0 -13
- package/packages/patterns/badge/secondary/badge-secondary-3.tsx +0 -13
- package/packages/patterns/badge/secondary/badge-secondary-4.tsx +0 -13
- package/packages/patterns/badge/secondary/badge-secondary-5.tsx +0 -14
- package/packages/patterns/badge/standard/badge-standard-1.tsx +0 -7
- package/packages/patterns/badge/standard/badge-standard-2.tsx +0 -13
- package/packages/patterns/badge/standard/badge-standard-3.tsx +0 -13
- package/packages/patterns/badge/standard/badge-standard-4.tsx +0 -13
- package/packages/patterns/badge/standard/badge-standard-5.tsx +0 -11
- package/packages/patterns/breadcrumb/home-icon/breadcrumb-home-icon-1.tsx +0 -38
- package/packages/patterns/breadcrumb/home-icon/breadcrumb-home-icon-2.tsx +0 -52
- package/packages/patterns/breadcrumb/home-icon/breadcrumb-home-icon-3.tsx +0 -42
- package/packages/patterns/breadcrumb/home-icon/breadcrumb-home-icon-4.tsx +0 -33
- package/packages/patterns/breadcrumb/home-icon/breadcrumb-home-icon-5.tsx +0 -33
- package/packages/patterns/breadcrumb/home-icon/breadcrumb-home-icon-6.tsx +0 -37
- package/packages/patterns/breadcrumb/home-icon/breadcrumb-home-icon-7.tsx +0 -49
- package/packages/patterns/breadcrumb/standard/breadcrumb-standard-1.tsx +0 -35
- package/packages/patterns/breadcrumb/standard/breadcrumb-standard-2.tsx +0 -50
- package/packages/patterns/breadcrumb/standard/breadcrumb-standard-3.tsx +0 -43
- package/packages/patterns/breadcrumb/standard/breadcrumb-standard-4.tsx +0 -30
- package/packages/patterns/breadcrumb/standard/breadcrumb-standard-5.tsx +0 -30
- package/packages/patterns/breadcrumb/standard/breadcrumb-standard-6.tsx +0 -35
- package/packages/patterns/breadcrumb/standard/breadcrumb-standard-7.tsx +0 -46
- package/packages/patterns/button/destructive/button-destructive-1.tsx +0 -7
- package/packages/patterns/button/destructive/button-destructive-2.tsx +0 -13
- package/packages/patterns/button/destructive/button-destructive-3.tsx +0 -13
- package/packages/patterns/button/destructive/button-destructive-4.tsx +0 -11
- package/packages/patterns/button/destructive/button-destructive-5.tsx +0 -13
- package/packages/patterns/button/destructive/button-destructive-6.tsx +0 -15
- package/packages/patterns/button/destructive/button-destructive-7.tsx +0 -13
- package/packages/patterns/button/link/button-link-1.tsx +0 -7
- package/packages/patterns/button/link/button-link-2.tsx +0 -13
- package/packages/patterns/button/link/button-link-3.tsx +0 -13
- package/packages/patterns/button/link/button-link-4.tsx +0 -11
- package/packages/patterns/button/link/button-link-5.tsx +0 -13
- package/packages/patterns/button/link/button-link-6.tsx +0 -15
- package/packages/patterns/button/link/button-link-7.tsx +0 -13
- package/packages/patterns/button/outline/button-outline-1.tsx +0 -7
- package/packages/patterns/button/outline/button-outline-2.tsx +0 -13
- package/packages/patterns/button/outline/button-outline-3.tsx +0 -13
- package/packages/patterns/button/outline/button-outline-4.tsx +0 -11
- package/packages/patterns/button/outline/button-outline-5.tsx +0 -13
- package/packages/patterns/button/outline/button-outline-6.tsx +0 -15
- package/packages/patterns/button/outline/button-outline-7.tsx +0 -13
- package/packages/patterns/button/secondary/button-secondary-1.tsx +0 -7
- package/packages/patterns/button/secondary/button-secondary-2.tsx +0 -13
- package/packages/patterns/button/secondary/button-secondary-3.tsx +0 -13
- package/packages/patterns/button/secondary/button-secondary-4.tsx +0 -11
- package/packages/patterns/button/secondary/button-secondary-5.tsx +0 -13
- package/packages/patterns/button/secondary/button-secondary-6.tsx +0 -15
- package/packages/patterns/button/secondary/button-secondary-7.tsx +0 -13
- package/packages/patterns/button/standard/button-standard-1.tsx +0 -7
- package/packages/patterns/button/standard/button-standard-2.tsx +0 -13
- package/packages/patterns/button/standard/button-standard-3.tsx +0 -13
- package/packages/patterns/button/standard/button-standard-4.tsx +0 -7
- package/packages/patterns/button/standard/button-standard-5.tsx +0 -13
- package/packages/patterns/button/standard/button-standard-6.tsx +0 -15
- package/packages/patterns/button/standard/button-standard-7.tsx +0 -13
- package/packages/patterns/button-group/actions/button-group-actions-1.tsx +0 -37
- package/packages/patterns/button-group/actions/button-group-actions-2.tsx +0 -44
- package/packages/patterns/button-group/actions/button-group-actions-3.tsx +0 -46
- package/packages/patterns/button-group/actions/button-group-actions-4.tsx +0 -41
- package/packages/patterns/button-group/advanced/button-group-advanced-1.tsx +0 -54
- package/packages/patterns/button-group/advanced/button-group-advanced-2.tsx +0 -49
- package/packages/patterns/button-group/advanced/button-group-advanced-3.tsx +0 -55
- package/packages/patterns/button-group/advanced/button-group-advanced-4.tsx +0 -78
- package/packages/patterns/button-group/badges/button-group-badges-1.tsx +0 -28
- package/packages/patterns/button-group/badges/button-group-badges-2.tsx +0 -32
- package/packages/patterns/button-group/badges/button-group-badges-3.tsx +0 -32
- package/packages/patterns/button-group/badges/button-group-badges-4.tsx +0 -39
- package/packages/patterns/button-group/display/button-group-display-1.tsx +0 -68
- package/packages/patterns/button-group/display/button-group-display-2.tsx +0 -67
- package/packages/patterns/button-group/display/button-group-display-3.tsx +0 -85
- package/packages/patterns/button-group/display/button-group-display-4.tsx +0 -78
- package/packages/patterns/button-group/forms/button-group-forms-1.tsx +0 -78
- package/packages/patterns/button-group/forms/button-group-forms-2.tsx +0 -78
- package/packages/patterns/button-group/forms/button-group-forms-3.tsx +0 -71
- package/packages/patterns/button-group/forms/button-group-forms-4.tsx +0 -60
- package/packages/patterns/button-group/interactive/button-group-interactive-1.tsx +0 -68
- package/packages/patterns/button-group/interactive/button-group-interactive-2.tsx +0 -79
- package/packages/patterns/button-group/interactive/button-group-interactive-3.tsx +0 -82
- package/packages/patterns/button-group/interactive/button-group-interactive-4.tsx +0 -79
- package/packages/patterns/button-group/media/button-group-media-1.tsx +0 -66
- package/packages/patterns/button-group/media/button-group-media-2.tsx +0 -62
- package/packages/patterns/button-group/media/button-group-media-3.tsx +0 -67
- package/packages/patterns/button-group/media/button-group-media-4.tsx +0 -62
- package/packages/patterns/button-group/navigation/button-group-navigation-1.tsx +0 -76
- package/packages/patterns/button-group/navigation/button-group-navigation-2.tsx +0 -70
- package/packages/patterns/button-group/navigation/button-group-navigation-3.tsx +0 -73
- package/packages/patterns/button-group/patterns/button-group-patterns-1.tsx +0 -73
- package/packages/patterns/button-group/patterns/button-group-patterns-2.tsx +0 -60
- package/packages/patterns/button-group/patterns/button-group-patterns-3.tsx +0 -79
- package/packages/patterns/button-group/patterns/button-group-patterns-4.tsx +0 -53
- package/packages/patterns/button-group/standard/button-group-standard-1.tsx +0 -32
- package/packages/patterns/button-group/standard/button-group-standard-2.tsx +0 -30
- package/packages/patterns/button-group/standard/button-group-standard-3.tsx +0 -20
- package/packages/patterns/button-group/standard/button-group-standard-4.tsx +0 -39
- package/packages/patterns/calendar/dialog/calendar-dialog-1.tsx +0 -58
- package/packages/patterns/calendar/dialog/calendar-dialog-2.tsx +0 -97
- package/packages/patterns/calendar/dialog/calendar-dialog-3.tsx +0 -78
- package/packages/patterns/calendar/dialog/calendar-dialog-4.tsx +0 -62
- package/packages/patterns/calendar/dialog/calendar-dialog-5.tsx +0 -82
- package/packages/patterns/calendar/dialog/calendar-dialog-6.tsx +0 -63
- package/packages/patterns/calendar/dialog/calendar-dialog-7.tsx +0 -59
- package/packages/patterns/calendar/dialog/calendar-dialog-8.tsx +0 -78
- package/packages/patterns/calendar/standard/calendar-standard-1.tsx +0 -40
- package/packages/patterns/calendar/standard/calendar-standard-2.tsx +0 -77
- package/packages/patterns/calendar/standard/calendar-standard-3.tsx +0 -59
- package/packages/patterns/calendar/standard/calendar-standard-4.tsx +0 -44
- package/packages/patterns/calendar/standard/calendar-standard-5.tsx +0 -65
- package/packages/patterns/calendar/standard/calendar-standard-6.tsx +0 -45
- package/packages/patterns/calendar/standard/calendar-standard-7.tsx +0 -41
- package/packages/patterns/calendar/standard/calendar-standard-8.tsx +0 -60
- package/packages/patterns/card/standard/card-standard-1.tsx +0 -29
- package/packages/patterns/card/standard/card-standard-2.tsx +0 -72
- package/packages/patterns/card/standard/card-standard-3.tsx +0 -57
- package/packages/patterns/card/standard/card-standard-4.tsx +0 -56
- package/packages/patterns/carousel/standard/carousel-standard-1.tsx +0 -35
- package/packages/patterns/carousel/standard/carousel-standard-2.tsx +0 -65
- package/packages/patterns/carousel/standard/carousel-standard-3.tsx +0 -80
- package/packages/patterns/carousel/standard/carousel-standard-4.tsx +0 -50
- package/packages/patterns/chart/area/chart-area-axes.tsx +0 -76
- package/packages/patterns/chart/area/chart-area-default.tsx +0 -65
- package/packages/patterns/chart/area/chart-area-gradient.tsx +0 -101
- package/packages/patterns/chart/area/chart-area-icons.tsx +0 -84
- package/packages/patterns/chart/area/chart-area-interactive.tsx +0 -206
- package/packages/patterns/chart/area/chart-area-legend.tsx +0 -81
- package/packages/patterns/chart/area/chart-area-linear.tsx +0 -64
- package/packages/patterns/chart/area/chart-area-stacked-expand.tsx +0 -92
- package/packages/patterns/chart/area/chart-area-stacked.tsx +0 -78
- package/packages/patterns/chart/area/chart-area-step.tsx +0 -67
- package/packages/patterns/chart/bar/chart-bar-active.tsx +0 -86
- package/packages/patterns/chart/bar/chart-bar-default.tsx +0 -52
- package/packages/patterns/chart/bar/chart-bar-horizontal.tsx +0 -60
- package/packages/patterns/chart/bar/chart-bar-interactive.tsx +0 -176
- package/packages/patterns/chart/bar/chart-bar-label-custom.tsx +0 -96
- package/packages/patterns/chart/bar/chart-bar-label.tsx +0 -65
- package/packages/patterns/chart/bar/chart-bar-mixed.tsx +0 -80
- package/packages/patterns/chart/bar/chart-bar-multiple.tsx +0 -57
- package/packages/patterns/chart/bar/chart-bar-negative.tsx +0 -52
- package/packages/patterns/chart/bar/chart-bar-stacked.tsx +0 -67
- package/packages/patterns/chart/line/chart-line-default.tsx +0 -65
- package/packages/patterns/chart/line/chart-line-dots-colors.tsx +0 -93
- package/packages/patterns/chart/line/chart-line-dots-custom.tsx +0 -83
- package/packages/patterns/chart/line/chart-line-dots.tsx +0 -74
- package/packages/patterns/chart/line/chart-line-interactive.tsx +0 -182
- package/packages/patterns/chart/line/chart-line-label-custom.tsx +0 -100
- package/packages/patterns/chart/line/chart-line-label.tsx +0 -82
- package/packages/patterns/chart/line/chart-line-linear.tsx +0 -65
- package/packages/patterns/chart/line/chart-line-multiple.tsx +0 -73
- package/packages/patterns/chart/line/chart-line-step.tsx +0 -65
- package/packages/patterns/chart/pie/chart-pie-donut-active.tsx +0 -76
- package/packages/patterns/chart/pie/chart-pie-donut-text.tsx +0 -101
- package/packages/patterns/chart/pie/chart-pie-donut.tsx +0 -70
- package/packages/patterns/chart/pie/chart-pie-interactive.tsx +0 -125
- package/packages/patterns/chart/pie/chart-pie-label-custom.tsx +0 -82
- package/packages/patterns/chart/pie/chart-pie-label-list.tsx +0 -74
- package/packages/patterns/chart/pie/chart-pie-label.tsx +0 -62
- package/packages/patterns/chart/pie/chart-pie-legend.tsx +0 -65
- package/packages/patterns/chart/pie/chart-pie-separator-none.tsx +0 -65
- package/packages/patterns/chart/pie/chart-pie-simple.tsx +0 -65
- package/packages/patterns/chart/pie/chart-pie-stacked.tsx +0 -94
- package/packages/patterns/chart/radar/chart-radar-default.tsx +0 -50
- package/packages/patterns/chart/radar/chart-radar-dots.tsx +0 -54
- package/packages/patterns/chart/radar/chart-radar-grid-circle-fill.tsx +0 -53
- package/packages/patterns/chart/radar/chart-radar-grid-circle-no-lines.tsx +0 -57
- package/packages/patterns/chart/radar/chart-radar-grid-circle.tsx +0 -57
- package/packages/patterns/chart/radar/chart-radar-grid-custom.tsx +0 -53
- package/packages/patterns/chart/radar/chart-radar-grid-fill.tsx +0 -53
- package/packages/patterns/chart/radar/chart-radar-grid-none.tsx +0 -56
- package/packages/patterns/chart/radar/chart-radar-icons.tsx +0 -70
- package/packages/patterns/chart/radar/chart-radar-label-custom.tsx +0 -95
- package/packages/patterns/chart/radar/chart-radar-legend.tsx +0 -67
- package/packages/patterns/chart/radar/chart-radar-lines-only.tsx +0 -66
- package/packages/patterns/chart/radar/chart-radar-multiple.tsx +0 -58
- package/packages/patterns/chart/radar/chart-radar-radius.tsx +0 -63
- package/packages/patterns/chart/radial/chart-radial-grid.tsx +0 -66
- package/packages/patterns/chart/radial/chart-radial-label.tsx +0 -78
- package/packages/patterns/chart/radial/chart-radial-shape.tsx +0 -85
- package/packages/patterns/chart/radial/chart-radial-simple.tsx +0 -65
- package/packages/patterns/chart/radial/chart-radial-stacked.tsx +0 -88
- package/packages/patterns/chart/radial/chart-radial-text.tsx +0 -86
- package/packages/patterns/chart/tooltip/chart-tooltip-advanced.tsx +0 -107
- package/packages/patterns/chart/tooltip/chart-tooltip-default.tsx +0 -74
- package/packages/patterns/chart/tooltip/chart-tooltip-formatter.tsx +0 -86
- package/packages/patterns/chart/tooltip/chart-tooltip-icons.tsx +0 -74
- package/packages/patterns/chart/tooltip/chart-tooltip-indicator-line.tsx +0 -74
- package/packages/patterns/chart/tooltip/chart-tooltip-indicator-none.tsx +0 -71
- package/packages/patterns/chart/tooltip/chart-tooltip-label-custom.tsx +0 -76
- package/packages/patterns/chart/tooltip/chart-tooltip-label-formatter.tsx +0 -81
- package/packages/patterns/chart/tooltip/chart-tooltip-label-none.tsx +0 -71
- package/packages/patterns/checkbox/standard/checkbox-standard-1.tsx +0 -13
- package/packages/patterns/checkbox/standard/checkbox-standard-11.tsx +0 -18
- package/packages/patterns/checkbox/standard/checkbox-standard-12.tsx +0 -22
- package/packages/patterns/checkbox/standard/checkbox-standard-13.tsx +0 -64
- package/packages/patterns/checkbox/standard/checkbox-standard-2.tsx +0 -26
- package/packages/patterns/checkbox/standard/checkbox-standard-3.tsx +0 -16
- package/packages/patterns/checkbox/standard/checkbox-standard-4.tsx +0 -23
- package/packages/patterns/checkbox/standard/checkbox-standard-5.tsx +0 -33
- package/packages/patterns/checkbox/standard/checkbox-standard-6.tsx +0 -19
- package/packages/patterns/checkbox/standard/checkbox-standard-7.tsx +0 -25
- package/packages/patterns/checkbox/standard/checkbox-standard-8.tsx +0 -25
- package/packages/patterns/checkbox/standard/checkbox-standard-9.tsx +0 -23
- package/packages/patterns/collapsible/card/collapsible-card-1.tsx +0 -26
- package/packages/patterns/collapsible/card/collapsible-card-2.tsx +0 -27
- package/packages/patterns/collapsible/card/collapsible-card-3.tsx +0 -33
- package/packages/patterns/collapsible/card/collapsible-card-4.tsx +0 -27
- package/packages/patterns/collapsible/card/collapsible-card-5.tsx +0 -24
- package/packages/patterns/collapsible/faq/collapsible-faq-1.tsx +0 -26
- package/packages/patterns/collapsible/faq/collapsible-faq-2.tsx +0 -25
- package/packages/patterns/collapsible/faq/collapsible-faq-3.tsx +0 -23
- package/packages/patterns/collapsible/faq/collapsible-faq-4.tsx +0 -26
- package/packages/patterns/collapsible/faq/collapsible-faq-5.tsx +0 -30
- package/packages/patterns/collapsible/outline/collapsible-outline-1.tsx +0 -32
- package/packages/patterns/collapsible/outline/collapsible-outline-2.tsx +0 -30
- package/packages/patterns/collapsible/outline/collapsible-outline-3.tsx +0 -25
- package/packages/patterns/collapsible/outline/collapsible-outline-4.tsx +0 -30
- package/packages/patterns/collapsible/sidebar/collapsible-sidebar-1.tsx +0 -39
- package/packages/patterns/collapsible/sidebar/collapsible-sidebar-2.tsx +0 -40
- package/packages/patterns/collapsible/sidebar/collapsible-sidebar-3.tsx +0 -35
- package/packages/patterns/collapsible/sidebar/collapsible-sidebar-4.tsx +0 -32
- package/packages/patterns/collapsible/standard/collapsible-standard-1.tsx +0 -26
- package/packages/patterns/collapsible/standard/collapsible-standard-2.tsx +0 -23
- package/packages/patterns/collapsible/standard/collapsible-standard-3.tsx +0 -28
- package/packages/patterns/collapsible/standard/collapsible-standard-4.tsx +0 -25
- package/packages/patterns/collapsible/standard/collapsible-standard-5.tsx +0 -35
- package/packages/patterns/combobox/custom-actions/combobox-custom-actions-1.tsx +0 -108
- package/packages/patterns/combobox/custom-actions/combobox-custom-actions-2.tsx +0 -95
- package/packages/patterns/combobox/custom-actions/combobox-custom-actions-3.tsx +0 -115
- package/packages/patterns/combobox/custom-actions/combobox-custom-actions-4.tsx +0 -119
- package/packages/patterns/combobox/custom-actions/combobox-custom-actions-5.tsx +0 -118
- package/packages/patterns/combobox/custom-actions/combobox-custom-actions-6.tsx +0 -88
- package/packages/patterns/combobox/custom-actions/combobox-custom-actions-7.tsx +0 -94
- package/packages/patterns/combobox/grouped/combobox-grouped-1.tsx +0 -109
- package/packages/patterns/combobox/grouped/combobox-grouped-2.tsx +0 -134
- package/packages/patterns/combobox/grouped/combobox-grouped-3.tsx +0 -97
- package/packages/patterns/combobox/grouped/combobox-grouped-4.tsx +0 -105
- package/packages/patterns/combobox/grouped/combobox-grouped-5.tsx +0 -118
- package/packages/patterns/combobox/grouped/combobox-grouped-6.tsx +0 -117
- package/packages/patterns/combobox/grouped/combobox-grouped-7.tsx +0 -116
- package/packages/patterns/combobox/multi-select/combobox-multi-select-1.tsx +0 -117
- package/packages/patterns/combobox/multi-select/combobox-multi-select-2.tsx +0 -109
- package/packages/patterns/combobox/multi-select/combobox-multi-select-3.tsx +0 -96
- package/packages/patterns/combobox/multi-select/combobox-multi-select-4.tsx +0 -83
- package/packages/patterns/combobox/multi-select/combobox-multi-select-5.tsx +0 -104
- package/packages/patterns/combobox/multi-select/combobox-multi-select-6.tsx +0 -109
- package/packages/patterns/combobox/multi-select/combobox-multi-select-7.tsx +0 -102
- package/packages/patterns/combobox/rich-content/combobox-rich-content-1.tsx +0 -114
- package/packages/patterns/combobox/rich-content/combobox-rich-content-2.tsx +0 -98
- package/packages/patterns/combobox/rich-content/combobox-rich-content-3.tsx +0 -94
- package/packages/patterns/combobox/rich-content/combobox-rich-content-4.tsx +0 -112
- package/packages/patterns/combobox/rich-content/combobox-rich-content-5.tsx +0 -102
- package/packages/patterns/combobox/rich-content/combobox-rich-content-6.tsx +0 -95
- package/packages/patterns/combobox/rich-content/combobox-rich-content-7.tsx +0 -114
- package/packages/patterns/combobox/standard/combobox-standard-1.tsx +0 -82
- package/packages/patterns/combobox/standard/combobox-standard-2.tsx +0 -82
- package/packages/patterns/combobox/standard/combobox-standard-3.tsx +0 -96
- package/packages/patterns/combobox/standard/combobox-standard-4.tsx +0 -85
- package/packages/patterns/combobox/standard/combobox-standard-5.tsx +0 -85
- package/packages/patterns/combobox/standard/combobox-standard-6.tsx +0 -81
- package/packages/patterns/combobox/standard/combobox-standard-7.tsx +0 -84
- package/packages/patterns/combobox/with-states/combobox-with-states-1.tsx +0 -91
- package/packages/patterns/combobox/with-states/combobox-with-states-2.tsx +0 -100
- package/packages/patterns/combobox/with-states/combobox-with-states-3.tsx +0 -95
- package/packages/patterns/combobox/with-states/combobox-with-states-4.tsx +0 -84
- package/packages/patterns/combobox/with-states/combobox-with-states-5.tsx +0 -89
- package/packages/patterns/combobox/with-states/combobox-with-states-6.tsx +0 -86
- package/packages/patterns/combobox/with-states/combobox-with-states-7.tsx +0 -29
- package/packages/patterns/command/dialog/command-dialog-1.tsx +0 -37
- package/packages/patterns/command/dialog/command-dialog-2.tsx +0 -72
- package/packages/patterns/command/dialog/command-dialog-3.tsx +0 -66
- package/packages/patterns/command/dialog/command-dialog-4.tsx +0 -64
- package/packages/patterns/command/dialog/command-dialog-5.tsx +0 -65
- package/packages/patterns/command/dialog/command-dialog-6.tsx +0 -68
- package/packages/patterns/command/dialog/command-dialog-7.tsx +0 -62
- package/packages/patterns/command/popover/command-popover-1.tsx +0 -39
- package/packages/patterns/command/popover/command-popover-2.tsx +0 -74
- package/packages/patterns/command/popover/command-popover-3.tsx +0 -68
- package/packages/patterns/command/popover/command-popover-4.tsx +0 -66
- package/packages/patterns/command/popover/command-popover-5.tsx +0 -67
- package/packages/patterns/command/popover/command-popover-6.tsx +0 -70
- package/packages/patterns/command/popover/command-popover-7.tsx +0 -64
- package/packages/patterns/command/standard/command-standard-1.tsx +0 -26
- package/packages/patterns/command/standard/command-standard-2.tsx +0 -61
- package/packages/patterns/command/standard/command-standard-3.tsx +0 -55
- package/packages/patterns/command/standard/command-standard-4.tsx +0 -53
- package/packages/patterns/command/standard/command-standard-5.tsx +0 -54
- package/packages/patterns/command/standard/command-standard-6.tsx +0 -57
- package/packages/patterns/command/standard/command-standard-7.tsx +0 -43
- package/packages/patterns/context-menu/canvas/context-menu-canvas-1.tsx +0 -49
- package/packages/patterns/context-menu/canvas/context-menu-canvas-2.tsx +0 -78
- package/packages/patterns/context-menu/canvas/context-menu-canvas-3.tsx +0 -44
- package/packages/patterns/context-menu/canvas/context-menu-canvas-4.tsx +0 -46
- package/packages/patterns/context-menu/canvas/context-menu-canvas-5.tsx +0 -57
- package/packages/patterns/context-menu/file/context-menu-file-1.tsx +0 -45
- package/packages/patterns/context-menu/file/context-menu-file-2.tsx +0 -47
- package/packages/patterns/context-menu/file/context-menu-file-3.tsx +0 -56
- package/packages/patterns/context-menu/file/context-menu-file-4.tsx +0 -56
- package/packages/patterns/context-menu/file/context-menu-file-5.tsx +0 -42
- package/packages/patterns/context-menu/standard/context-menu-standard-1.tsx +0 -24
- package/packages/patterns/context-menu/standard/context-menu-standard-2.tsx +0 -47
- package/packages/patterns/context-menu/standard/context-menu-standard-3.tsx +0 -44
- package/packages/patterns/context-menu/standard/context-menu-standard-4.tsx +0 -45
- package/packages/patterns/context-menu/standard/context-menu-standard-5.tsx +0 -49
- package/packages/patterns/context-menu/standard/context-menu-standard-6.tsx +0 -38
- package/packages/patterns/context-menu/standard/context-menu-standard-7.tsx +0 -79
- package/packages/patterns/context-menu/table/context-menu-table-1.tsx +0 -32
- package/packages/patterns/context-menu/table/context-menu-table-2.tsx +0 -46
- package/packages/patterns/context-menu/table/context-menu-table-3.tsx +0 -56
- package/packages/patterns/context-menu/table/context-menu-table-4.tsx +0 -49
- package/packages/patterns/context-menu/table/context-menu-table-5.tsx +0 -56
- package/packages/patterns/context-menu/text/context-menu-text-1.tsx +0 -40
- package/packages/patterns/context-menu/text/context-menu-text-2.tsx +0 -45
- package/packages/patterns/context-menu/text/context-menu-text-3.tsx +0 -54
- package/packages/patterns/context-menu/text/context-menu-text-4.tsx +0 -40
- package/packages/patterns/context-menu/text/context-menu-text-5.tsx +0 -63
- package/packages/patterns/data-table/advanced/data-table-advanced-1.tsx +0 -201
- package/packages/patterns/data-table/advanced/data-table-advanced-2.tsx +0 -212
- package/packages/patterns/data-table/advanced/data-table-advanced-3.tsx +0 -191
- package/packages/patterns/data-table/advanced/data-table-advanced-4.tsx +0 -189
- package/packages/patterns/data-table/standard/data-table-standard-1.tsx +0 -183
- package/packages/patterns/data-table/standard/data-table-standard-2.tsx +0 -180
- package/packages/patterns/data-table/standard/data-table-standard-3.tsx +0 -205
- package/packages/patterns/data-table/standard/data-table-standard-4.tsx +0 -212
- package/packages/patterns/date-picker/standard/date-picker-standard-1.tsx +0 -75
- package/packages/patterns/date-picker/standard/date-picker-standard-2.tsx +0 -103
- package/packages/patterns/date-picker/standard/date-picker-standard-3.tsx +0 -91
- package/packages/patterns/date-picker/standard/date-picker-standard-4.tsx +0 -73
- package/packages/patterns/date-picker/standard/date-picker-standard-5.tsx +0 -89
- package/packages/patterns/date-picker/standard/date-picker-standard-6.tsx +0 -69
- package/packages/patterns/date-picker/standard/date-picker-standard-7.tsx +0 -64
- package/packages/patterns/date-picker/standard/date-picker-standard-8.tsx +0 -84
- package/packages/patterns/dialog/standard/dialog-standard-1.tsx +0 -47
- package/packages/patterns/dialog/standard/dialog-standard-10.tsx +0 -84
- package/packages/patterns/dialog/standard/dialog-standard-11.tsx +0 -63
- package/packages/patterns/dialog/standard/dialog-standard-12.tsx +0 -70
- package/packages/patterns/dialog/standard/dialog-standard-13.tsx +0 -65
- package/packages/patterns/dialog/standard/dialog-standard-14.tsx +0 -109
- package/packages/patterns/dialog/standard/dialog-standard-15.tsx +0 -113
- package/packages/patterns/dialog/standard/dialog-standard-16.tsx +0 -127
- package/packages/patterns/dialog/standard/dialog-standard-17.tsx +0 -116
- package/packages/patterns/dialog/standard/dialog-standard-2.tsx +0 -72
- package/packages/patterns/dialog/standard/dialog-standard-3.tsx +0 -78
- package/packages/patterns/dialog/standard/dialog-standard-4.tsx +0 -98
- package/packages/patterns/dialog/standard/dialog-standard-5.tsx +0 -65
- package/packages/patterns/dialog/standard/dialog-standard-6.tsx +0 -42
- package/packages/patterns/dialog/standard/dialog-standard-7.tsx +0 -46
- package/packages/patterns/dialog/standard/dialog-standard-8.tsx +0 -84
- package/packages/patterns/dialog/standard/dialog-standard-9.tsx +0 -70
- package/packages/patterns/drawer/bottom/drawer-bottom-1.tsx +0 -44
- package/packages/patterns/drawer/bottom/drawer-bottom-2.tsx +0 -55
- package/packages/patterns/drawer/bottom/drawer-bottom-3.tsx +0 -68
- package/packages/patterns/drawer/bottom/drawer-bottom-4.tsx +0 -49
- package/packages/patterns/drawer/bottom/drawer-bottom-5.tsx +0 -72
- package/packages/patterns/drawer/bottom/drawer-bottom-6.tsx +0 -40
- package/packages/patterns/drawer/bottom/drawer-bottom-7.tsx +0 -69
- package/packages/patterns/drawer/left/drawer-left-1.tsx +0 -46
- package/packages/patterns/drawer/left/drawer-left-2.tsx +0 -53
- package/packages/patterns/drawer/left/drawer-left-3.tsx +0 -123
- package/packages/patterns/drawer/left/drawer-left-4.tsx +0 -58
- package/packages/patterns/drawer/left/drawer-left-5.tsx +0 -131
- package/packages/patterns/drawer/right/drawer-right-1.tsx +0 -45
- package/packages/patterns/drawer/right/drawer-right-2.tsx +0 -107
- package/packages/patterns/drawer/right/drawer-right-3.tsx +0 -84
- package/packages/patterns/drawer/right/drawer-right-4.tsx +0 -98
- package/packages/patterns/drawer/right/drawer-right-5.tsx +0 -108
- package/packages/patterns/drawer/top/drawer-top-1.tsx +0 -44
- package/packages/patterns/drawer/top/drawer-top-2.tsx +0 -62
- package/packages/patterns/drawer/top/drawer-top-3.tsx +0 -50
- package/packages/patterns/drawer/top/drawer-top-4.tsx +0 -63
- package/packages/patterns/drawer/top/drawer-top-5.tsx +0 -59
- package/packages/patterns/dropdown-menu/actions/dropdown-menu-actions-1.tsx +0 -63
- package/packages/patterns/dropdown-menu/actions/dropdown-menu-actions-2.tsx +0 -61
- package/packages/patterns/dropdown-menu/actions/dropdown-menu-actions-3.tsx +0 -83
- package/packages/patterns/dropdown-menu/actions/dropdown-menu-actions-4.tsx +0 -68
- package/packages/patterns/dropdown-menu/actions/dropdown-menu-actions-5.tsx +0 -78
- package/packages/patterns/dropdown-menu/editor/dropdown-menu-editor-1.tsx +0 -61
- package/packages/patterns/dropdown-menu/editor/dropdown-menu-editor-2.tsx +0 -81
- package/packages/patterns/dropdown-menu/editor/dropdown-menu-editor-3.tsx +0 -58
- package/packages/patterns/dropdown-menu/editor/dropdown-menu-editor-4.tsx +0 -53
- package/packages/patterns/dropdown-menu/editor/dropdown-menu-editor-5.tsx +0 -65
- package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-1.tsx +0 -61
- package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-2.tsx +0 -75
- package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-3.tsx +0 -99
- package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-4.tsx +0 -87
- package/packages/patterns/dropdown-menu/profile/dropdown-menu-profile-5.tsx +0 -85
- package/packages/patterns/dropdown-menu/settings/dropdown-menu-settings-1.tsx +0 -50
- package/packages/patterns/dropdown-menu/settings/dropdown-menu-settings-2.tsx +0 -75
- package/packages/patterns/dropdown-menu/settings/dropdown-menu-settings-3.tsx +0 -70
- package/packages/patterns/dropdown-menu/settings/dropdown-menu-settings-4.tsx +0 -82
- package/packages/patterns/dropdown-menu/settings/dropdown-menu-settings-5.tsx +0 -74
- package/packages/patterns/dropdown-menu/standard/dropdown-menu-standard-1.tsx +0 -48
- package/packages/patterns/dropdown-menu/standard/dropdown-menu-standard-2.tsx +0 -71
- package/packages/patterns/dropdown-menu/standard/dropdown-menu-standard-3.tsx +0 -68
- package/packages/patterns/dropdown-menu/standard/dropdown-menu-standard-4.tsx +0 -56
- package/packages/patterns/dropdown-menu/standard/dropdown-menu-standard-5.tsx +0 -43
- package/packages/patterns/dropdown-menu/standard/dropdown-menu-standard-6.tsx +0 -72
- package/packages/patterns/dropdown-menu/standard/dropdown-menu-standard-7.tsx +0 -99
- package/packages/patterns/dropdown-menu/support/dropdown-menu-support-1.tsx +0 -52
- package/packages/patterns/dropdown-menu/support/dropdown-menu-support-2.tsx +0 -64
- package/packages/patterns/dropdown-menu/support/dropdown-menu-support-3.tsx +0 -77
- package/packages/patterns/empty/actions/empty-actions-1.tsx +0 -36
- package/packages/patterns/empty/actions/empty-actions-2.tsx +0 -42
- package/packages/patterns/empty/actions/empty-actions-3.tsx +0 -36
- package/packages/patterns/empty/actions/empty-actions-4.tsx +0 -37
- package/packages/patterns/empty/actions/empty-actions-5.tsx +0 -40
- package/packages/patterns/empty/data/empty-data-1.tsx +0 -37
- package/packages/patterns/empty/data/empty-data-2.tsx +0 -29
- package/packages/patterns/empty/data/empty-data-3.tsx +0 -28
- package/packages/patterns/empty/data/empty-data-4.tsx +0 -36
- package/packages/patterns/empty/data/empty-data-5.tsx +0 -43
- package/packages/patterns/empty/search/empty-search-1.tsx +0 -28
- package/packages/patterns/empty/search/empty-search-2.tsx +0 -33
- package/packages/patterns/empty/search/empty-search-3.tsx +0 -33
- package/packages/patterns/empty/search/empty-search-4.tsx +0 -29
- package/packages/patterns/empty/search/empty-search-5.tsx +0 -40
- package/packages/patterns/empty/standard/empty-standard-1.tsx +0 -24
- package/packages/patterns/empty/standard/empty-standard-2.tsx +0 -28
- package/packages/patterns/empty/standard/empty-standard-3.tsx +0 -29
- package/packages/patterns/empty/standard/empty-standard-4.tsx +0 -28
- package/packages/patterns/empty/standard/empty-standard-5.tsx +0 -31
- package/packages/patterns/empty/standard/empty-standard-6.tsx +0 -23
- package/packages/patterns/empty/standard/empty-standard-7.tsx +0 -29
- package/packages/patterns/field/advanced/field-advanced-1.tsx +0 -32
- package/packages/patterns/field/advanced/field-advanced-2.tsx +0 -34
- package/packages/patterns/field/advanced/field-advanced-3.tsx +0 -53
- package/packages/patterns/field/advanced/field-advanced-4.tsx +0 -55
- package/packages/patterns/field/advanced/field-advanced-5.tsx +0 -57
- package/packages/patterns/field/advanced/field-advanced-6.tsx +0 -71
- package/packages/patterns/field/advanced/field-advanced-7.tsx +0 -59
- package/packages/patterns/field/basic-inputs/field-basic-inputs-1.tsx +0 -20
- package/packages/patterns/field/basic-inputs/field-basic-inputs-2.tsx +0 -23
- package/packages/patterns/field/basic-inputs/field-basic-inputs-3.tsx +0 -21
- package/packages/patterns/field/basic-inputs/field-basic-inputs-4.tsx +0 -42
- package/packages/patterns/field/basic-inputs/field-basic-inputs-5.tsx +0 -22
- package/packages/patterns/field/layouts/field-layouts-1.tsx +0 -41
- package/packages/patterns/field/layouts/field-layouts-2.tsx +0 -44
- package/packages/patterns/field/layouts/field-layouts-3.tsx +0 -33
- package/packages/patterns/field/layouts/field-layouts-4.tsx +0 -62
- package/packages/patterns/field/layouts/field-layouts-5.tsx +0 -64
- package/packages/patterns/field/layouts/field-layouts-6.tsx +0 -51
- package/packages/patterns/field/selects/field-selects-1.tsx +0 -32
- package/packages/patterns/field/selects/field-selects-2.tsx +0 -36
- package/packages/patterns/field/selects/field-selects-3.tsx +0 -43
- package/packages/patterns/field/selects/field-selects-4.tsx +0 -49
- package/packages/patterns/field/selects/field-selects-5.tsx +0 -34
- package/packages/patterns/field/selects/field-selects-6.tsx +0 -30
- package/packages/patterns/field/selects/field-selects-7.tsx +0 -32
- package/packages/patterns/field/text-areas/field-text-areas-1.tsx +0 -19
- package/packages/patterns/field/text-areas/field-text-areas-2.tsx +0 -23
- package/packages/patterns/field/text-areas/field-text-areas-3.tsx +0 -34
- package/packages/patterns/field/text-areas/field-text-areas-4.tsx +0 -23
- package/packages/patterns/field/text-areas/field-text-areas-5.tsx +0 -42
- package/packages/patterns/field/text-areas/field-text-areas-6.tsx +0 -24
- package/packages/patterns/field/toggles/field-toggles-1.tsx +0 -17
- package/packages/patterns/field/toggles/field-toggles-2.tsx +0 -50
- package/packages/patterns/field/toggles/field-toggles-3.tsx +0 -40
- package/packages/patterns/field/toggles/field-toggles-4.tsx +0 -42
- package/packages/patterns/field/toggles/field-toggles-5.tsx +0 -15
- package/packages/patterns/field/toggles/field-toggles-6.tsx +0 -26
- package/packages/patterns/field/toggles/field-toggles-7.tsx +0 -28
- package/packages/patterns/form/advanced/form-advanced-1.tsx +0 -83
- package/packages/patterns/form/advanced/form-advanced-2.tsx +0 -75
- package/packages/patterns/form/advanced/form-advanced-3.tsx +0 -114
- package/packages/patterns/form/advanced/form-advanced-4.tsx +0 -91
- package/packages/patterns/form/advanced/form-advanced-5.tsx +0 -121
- package/packages/patterns/form/advanced/form-advanced-6.tsx +0 -163
- package/packages/patterns/form/advanced/form-advanced-7.tsx +0 -182
- package/packages/patterns/form/basic-forms/form-basic-forms-1.tsx +0 -69
- package/packages/patterns/form/basic-forms/form-basic-forms-2.tsx +0 -70
- package/packages/patterns/form/basic-forms/form-basic-forms-3.tsx +0 -70
- package/packages/patterns/form/basic-forms/form-basic-forms-4.tsx +0 -75
- package/packages/patterns/form/basic-forms/form-basic-forms-5.tsx +0 -70
- package/packages/patterns/form/basic-forms/form-basic-forms-6.tsx +0 -70
- package/packages/patterns/form/basic-forms/form-basic-forms-7.tsx +0 -70
- package/packages/patterns/form/layouts/form-layouts-1.tsx +0 -113
- package/packages/patterns/form/layouts/form-layouts-2.tsx +0 -89
- package/packages/patterns/form/layouts/form-layouts-3.tsx +0 -166
- package/packages/patterns/form/layouts/form-layouts-4.tsx +0 -129
- package/packages/patterns/form/layouts/form-layouts-5.tsx +0 -69
- package/packages/patterns/form/layouts/form-layouts-6.tsx +0 -85
- package/packages/patterns/form/layouts/form-layouts-7.tsx +0 -166
- package/packages/patterns/form/multi-field/form-multi-field-1.tsx +0 -90
- package/packages/patterns/form/multi-field/form-multi-field-2.tsx +0 -114
- package/packages/patterns/form/multi-field/form-multi-field-3.tsx +0 -132
- package/packages/patterns/form/multi-field/form-multi-field-4.tsx +0 -131
- package/packages/patterns/form/multi-field/form-multi-field-5.tsx +0 -154
- package/packages/patterns/form/multi-field/form-multi-field-6.tsx +0 -159
- package/packages/patterns/form/multi-field/form-multi-field-7.tsx +0 -232
- package/packages/patterns/form/patterns/form-patterns-1.tsx +0 -110
- package/packages/patterns/form/patterns/form-patterns-2.tsx +0 -160
- package/packages/patterns/form/patterns/form-patterns-3.tsx +0 -160
- package/packages/patterns/form/patterns/form-patterns-4.tsx +0 -159
- package/packages/patterns/form/patterns/form-patterns-5.tsx +0 -222
- package/packages/patterns/form/patterns/form-patterns-6.tsx +0 -258
- package/packages/patterns/form/patterns/form-patterns-7.tsx +0 -249
- package/packages/patterns/form/validation/form-validation-1.tsx +0 -94
- package/packages/patterns/form/validation/form-validation-2.tsx +0 -93
- package/packages/patterns/form/validation/form-validation-3.tsx +0 -100
- package/packages/patterns/form/validation/form-validation-4.tsx +0 -106
- package/packages/patterns/form/validation/form-validation-5.tsx +0 -126
- package/packages/patterns/form/validation/form-validation-6.tsx +0 -126
- package/packages/patterns/form/validation/form-validation-7.tsx +0 -96
- package/packages/patterns/hover-card/info/hover-card-info-1.tsx +0 -29
- package/packages/patterns/hover-card/info/hover-card-info-2.tsx +0 -35
- package/packages/patterns/hover-card/info/hover-card-info-3.tsx +0 -38
- package/packages/patterns/hover-card/info/hover-card-info-4.tsx +0 -37
- package/packages/patterns/hover-card/info/hover-card-info-5.tsx +0 -46
- package/packages/patterns/hover-card/preview/hover-card-preview-1.tsx +0 -44
- package/packages/patterns/hover-card/preview/hover-card-preview-2.tsx +0 -48
- package/packages/patterns/hover-card/preview/hover-card-preview-3.tsx +0 -40
- package/packages/patterns/hover-card/preview/hover-card-preview-4.tsx +0 -51
- package/packages/patterns/hover-card/preview/hover-card-preview-5.tsx +0 -48
- package/packages/patterns/hover-card/profile/hover-card-profile-1.tsx +0 -36
- package/packages/patterns/hover-card/profile/hover-card-profile-2.tsx +0 -50
- package/packages/patterns/hover-card/profile/hover-card-profile-3.tsx +0 -45
- package/packages/patterns/hover-card/profile/hover-card-profile-4.tsx +0 -50
- package/packages/patterns/hover-card/profile/hover-card-profile-5.tsx +0 -54
- package/packages/patterns/hover-card/stats/hover-card-stats-1.tsx +0 -45
- package/packages/patterns/hover-card/stats/hover-card-stats-2.tsx +0 -50
- package/packages/patterns/hover-card/stats/hover-card-stats-3.tsx +0 -53
- package/packages/patterns/hover-card/stats/hover-card-stats-4.tsx +0 -56
- package/packages/patterns/hover-card/stats/hover-card-stats-5.tsx +0 -54
- package/packages/patterns/input/special/input-special-1.tsx +0 -65
- package/packages/patterns/input/special/input-special-2.tsx +0 -19
- package/packages/patterns/input/special/input-special-3.tsx +0 -35
- package/packages/patterns/input/special/input-special-4.tsx +0 -24
- package/packages/patterns/input/special/input-special-5.tsx +0 -27
- package/packages/patterns/input/standard/input-standard-1.tsx +0 -15
- package/packages/patterns/input/standard/input-standard-2.tsx +0 -18
- package/packages/patterns/input/standard/input-standard-3.tsx +0 -23
- package/packages/patterns/input/standard/input-standard-4.tsx +0 -23
- package/packages/patterns/input/standard/input-standard-5.tsx +0 -24
- package/packages/patterns/input/standard/input-standard-6.tsx +0 -33
- package/packages/patterns/input/standard/input-standard-7.tsx +0 -22
- package/packages/patterns/input/types/input-types-1.tsx +0 -24
- package/packages/patterns/input/types/input-types-2.tsx +0 -42
- package/packages/patterns/input/types/input-types-3.tsx +0 -47
- package/packages/patterns/input/types/input-types-4.tsx +0 -24
- package/packages/patterns/input/types/input-types-5.tsx +0 -19
- package/packages/patterns/input/types/input-types-6.tsx +0 -25
- package/packages/patterns/input/types/input-types-7.tsx +0 -25
- package/packages/patterns/input/validation/input-validation-1.tsx +0 -27
- package/packages/patterns/input/validation/input-validation-2.tsx +0 -25
- package/packages/patterns/input/validation/input-validation-3.tsx +0 -26
- package/packages/patterns/input/validation/input-validation-4.tsx +0 -37
- package/packages/patterns/input/validation/input-validation-5.tsx +0 -54
- package/packages/patterns/input-group/ai/input-group-ai-1.tsx +0 -68
- package/packages/patterns/input-group/ai/input-group-ai-2.tsx +0 -42
- package/packages/patterns/input-group/ai/input-group-ai-3.tsx +0 -60
- package/packages/patterns/input-group/ai/input-group-ai-4.tsx +0 -61
- package/packages/patterns/input-group/buttons/input-group-buttons-1.tsx +0 -34
- package/packages/patterns/input-group/buttons/input-group-buttons-2.tsx +0 -39
- package/packages/patterns/input-group/buttons/input-group-buttons-3.tsx +0 -23
- package/packages/patterns/input-group/buttons/input-group-buttons-4.tsx +0 -42
- package/packages/patterns/input-group/custom/input-group-custom-1.tsx +0 -24
- package/packages/patterns/input-group/custom/input-group-custom-2.tsx +0 -31
- package/packages/patterns/input-group/custom/input-group-custom-3.tsx +0 -38
- package/packages/patterns/input-group/custom/input-group-custom-4.tsx +0 -33
- package/packages/patterns/input-group/dropdown/input-group-dropdown-1.tsx +0 -37
- package/packages/patterns/input-group/dropdown/input-group-dropdown-2.tsx +0 -37
- package/packages/patterns/input-group/dropdown/input-group-dropdown-3.tsx +0 -56
- package/packages/patterns/input-group/dropdown/input-group-dropdown-4.tsx +0 -45
- package/packages/patterns/input-group/icons/input-group-icons-1.tsx +0 -19
- package/packages/patterns/input-group/icons/input-group-icons-2.tsx +0 -27
- package/packages/patterns/input-group/icons/input-group-icons-3.tsx +0 -33
- package/packages/patterns/input-group/icons/input-group-icons-4.tsx +0 -36
- package/packages/patterns/input-group/label/input-group-label-1.tsx +0 -27
- package/packages/patterns/input-group/label/input-group-label-2.tsx +0 -43
- package/packages/patterns/input-group/label/input-group-label-3.tsx +0 -36
- package/packages/patterns/input-group/label/input-group-label-4.tsx +0 -23
- package/packages/patterns/input-group/spinner/input-group-spinner-1.tsx +0 -27
- package/packages/patterns/input-group/spinner/input-group-spinner-2.tsx +0 -21
- package/packages/patterns/input-group/spinner/input-group-spinner-3.tsx +0 -25
- package/packages/patterns/input-group/spinner/input-group-spinner-4.tsx +0 -32
- package/packages/patterns/input-group/text/input-group-text-1.tsx +0 -33
- package/packages/patterns/input-group/text/input-group-text-2.tsx +0 -22
- package/packages/patterns/input-group/text/input-group-text-3.tsx +0 -19
- package/packages/patterns/input-group/text/input-group-text-4.tsx +0 -19
- package/packages/patterns/input-group/textarea/input-group-textarea-1.tsx +0 -37
- package/packages/patterns/input-group/textarea/input-group-textarea-2.tsx +0 -23
- package/packages/patterns/input-group/textarea/input-group-textarea-3.tsx +0 -43
- package/packages/patterns/input-group/textarea/input-group-textarea-4.tsx +0 -31
- package/packages/patterns/input-group/tooltip/input-group-tooltip-1.tsx +0 -54
- package/packages/patterns/input-group/tooltip/input-group-tooltip-2.tsx +0 -34
- package/packages/patterns/input-group/tooltip/input-group-tooltip-3.tsx +0 -34
- package/packages/patterns/input-otp/behavior/input-otp-behavior-1.tsx +0 -90
- package/packages/patterns/input-otp/behavior/input-otp-behavior-2.tsx +0 -46
- package/packages/patterns/input-otp/behavior/input-otp-behavior-3.tsx +0 -59
- package/packages/patterns/input-otp/behavior/input-otp-behavior-4.tsx +0 -70
- package/packages/patterns/input-otp/standard/input-otp-standard-1.tsx +0 -26
- package/packages/patterns/input-otp/standard/input-otp-standard-2.tsx +0 -25
- package/packages/patterns/input-otp/standard/input-otp-standard-3.tsx +0 -29
- package/packages/patterns/input-otp/standard/input-otp-standard-4.tsx +0 -42
- package/packages/patterns/input-otp/standard/input-otp-standard-5.tsx +0 -83
- package/packages/patterns/input-otp/states/input-otp-states-1.tsx +0 -29
- package/packages/patterns/input-otp/states/input-otp-states-2.tsx +0 -54
- package/packages/patterns/input-otp/states/input-otp-states-3.tsx +0 -51
- package/packages/patterns/input-otp/states/input-otp-states-4.tsx +0 -59
- package/packages/patterns/input-otp/use-cases/input-otp-use-cases-1.tsx +0 -106
- package/packages/patterns/input-otp/use-cases/input-otp-use-cases-2.tsx +0 -137
- package/packages/patterns/input-otp/use-cases/input-otp-use-cases-3.tsx +0 -128
- package/packages/patterns/input-otp/use-cases/input-otp-use-cases-4.tsx +0 -115
- package/packages/patterns/input-otp/variants/input-otp-variants-1.tsx +0 -34
- package/packages/patterns/input-otp/variants/input-otp-variants-2.tsx +0 -58
- package/packages/patterns/input-otp/variants/input-otp-variants-3.tsx +0 -60
- package/packages/patterns/item/interactive/item-interactive-1.tsx +0 -43
- package/packages/patterns/item/interactive/item-interactive-2.tsx +0 -70
- package/packages/patterns/item/layout/item-layout-1.tsx +0 -45
- package/packages/patterns/item/layout/item-layout-2.tsx +0 -65
- package/packages/patterns/item/layout/item-layout-3.tsx +0 -55
- package/packages/patterns/item/media/item-media-1.tsx +0 -35
- package/packages/patterns/item/media/item-media-2.tsx +0 -42
- package/packages/patterns/item/media/item-media-3.tsx +0 -71
- package/packages/patterns/item/standard/item-standard-1.tsx +0 -30
- package/packages/patterns/item/standard/item-standard-2.tsx +0 -30
- package/packages/patterns/kbd/arrow-keys/kbd-arrow-keys-1.tsx +0 -18
- package/packages/patterns/kbd/arrow-keys/kbd-arrow-keys-2.tsx +0 -14
- package/packages/patterns/kbd/arrow-keys/kbd-arrow-keys-3.tsx +0 -18
- package/packages/patterns/kbd/arrow-keys/kbd-arrow-keys-4.tsx +0 -16
- package/packages/patterns/kbd/function-keys/kbd-function-keys-1.tsx +0 -11
- package/packages/patterns/kbd/function-keys/kbd-function-keys-2.tsx +0 -11
- package/packages/patterns/kbd/function-keys/kbd-function-keys-3.tsx +0 -15
- package/packages/patterns/kbd/function-keys/kbd-function-keys-4.tsx +0 -15
- package/packages/patterns/kbd/function-keys/kbd-function-keys-5.tsx +0 -15
- package/packages/patterns/kbd/function-keys/kbd-function-keys-6.tsx +0 -16
- package/packages/patterns/kbd/platform-specific/kbd-platform-specific-1.tsx +0 -14
- package/packages/patterns/kbd/platform-specific/kbd-platform-specific-2.tsx +0 -14
- package/packages/patterns/kbd/platform-specific/kbd-platform-specific-3.tsx +0 -14
- package/packages/patterns/kbd/platform-specific/kbd-platform-specific-4.tsx +0 -22
- package/packages/patterns/kbd/platform-specific/kbd-platform-specific-5.tsx +0 -14
- package/packages/patterns/kbd/pressed-state/kbd-pressed-state-1.tsx +0 -14
- package/packages/patterns/kbd/pressed-state/kbd-pressed-state-2.tsx +0 -11
- package/packages/patterns/kbd/pressed-state/kbd-pressed-state-3.tsx +0 -16
- package/packages/patterns/kbd/pressed-state/kbd-pressed-state-4.tsx +0 -14
- package/packages/patterns/kbd/pressed-state/kbd-pressed-state-5.tsx +0 -18
- package/packages/patterns/kbd/sequence/kbd-sequence-1.tsx +0 -18
- package/packages/patterns/kbd/sequence/kbd-sequence-2.tsx +0 -15
- package/packages/patterns/kbd/sequence/kbd-sequence-3.tsx +0 -21
- package/packages/patterns/kbd/sequence/kbd-sequence-4.tsx +0 -15
- package/packages/patterns/kbd/shortcut/kbd-shortcut-1.tsx +0 -14
- package/packages/patterns/kbd/shortcut/kbd-shortcut-2.tsx +0 -14
- package/packages/patterns/kbd/shortcut/kbd-shortcut-3.tsx +0 -14
- package/packages/patterns/kbd/shortcut/kbd-shortcut-4.tsx +0 -15
- package/packages/patterns/kbd/shortcut/kbd-shortcut-5.tsx +0 -14
- package/packages/patterns/kbd/sizes/kbd-sizes-1.tsx +0 -14
- package/packages/patterns/kbd/sizes/kbd-sizes-2.tsx +0 -14
- package/packages/patterns/kbd/sizes/kbd-sizes-3.tsx +0 -14
- package/packages/patterns/kbd/sizes/kbd-sizes-4.tsx +0 -13
- package/packages/patterns/kbd/sizes/kbd-sizes-5.tsx +0 -14
- package/packages/patterns/kbd/with-icons/kbd-with-icons-1.tsx +0 -17
- package/packages/patterns/kbd/with-icons/kbd-with-icons-2.tsx +0 -17
- package/packages/patterns/kbd/with-icons/kbd-with-icons-3.tsx +0 -25
- package/packages/patterns/kbd/with-icons/kbd-with-icons-4.tsx +0 -17
- package/packages/patterns/kbd/with-icons/kbd-with-icons-5.tsx +0 -15
- package/packages/patterns/label/standard/label-standard-1.tsx +0 -11
- package/packages/patterns/label/standard/label-standard-2.tsx +0 -14
- package/packages/patterns/label/standard/label-standard-3.tsx +0 -26
- package/packages/patterns/label/standard/label-standard-4.tsx +0 -15
- package/packages/patterns/label/standard/label-standard-5.tsx +0 -12
- package/packages/patterns/label/standard/label-standard-6.tsx +0 -12
- package/packages/patterns/label/standard/label-standard-7.tsx +0 -12
- package/packages/patterns/label/standard/label-standard-8.tsx +0 -9
- package/packages/patterns/menubar/standard/menubar-standard-1.tsx +0 -24
- package/packages/patterns/menubar/standard/menubar-standard-10.tsx +0 -26
- package/packages/patterns/menubar/standard/menubar-standard-2.tsx +0 -34
- package/packages/patterns/menubar/standard/menubar-standard-3.tsx +0 -34
- package/packages/patterns/menubar/standard/menubar-standard-4.tsx +0 -24
- package/packages/patterns/menubar/standard/menubar-standard-5.tsx +0 -29
- package/packages/patterns/menubar/standard/menubar-standard-6.tsx +0 -34
- package/packages/patterns/menubar/standard/menubar-standard-7.tsx +0 -27
- package/packages/patterns/menubar/standard/menubar-standard-8.tsx +0 -63
- package/packages/patterns/menubar/standard/menubar-standard-9.tsx +0 -31
- package/packages/patterns/navigation-menu/complex/navigation-menu-complex-1.tsx +0 -238
- package/packages/patterns/navigation-menu/complex/navigation-menu-complex-2.tsx +0 -100
- package/packages/patterns/navigation-menu/complex/navigation-menu-complex-3.tsx +0 -151
- package/packages/patterns/navigation-menu/complex/navigation-menu-complex-4.tsx +0 -187
- package/packages/patterns/navigation-menu/complex/navigation-menu-complex-5.tsx +0 -168
- package/packages/patterns/navigation-menu/features/navigation-menu-features-1.tsx +0 -92
- package/packages/patterns/navigation-menu/features/navigation-menu-features-2.tsx +0 -118
- package/packages/patterns/navigation-menu/features/navigation-menu-features-3.tsx +0 -122
- package/packages/patterns/navigation-menu/features/navigation-menu-features-4.tsx +0 -101
- package/packages/patterns/navigation-menu/features/navigation-menu-features-5.tsx +0 -176
- package/packages/patterns/navigation-menu/marketing/navigation-menu-marketing-1.tsx +0 -107
- package/packages/patterns/navigation-menu/marketing/navigation-menu-marketing-2.tsx +0 -116
- package/packages/patterns/navigation-menu/marketing/navigation-menu-marketing-3.tsx +0 -119
- package/packages/patterns/navigation-menu/marketing/navigation-menu-marketing-4.tsx +0 -140
- package/packages/patterns/navigation-menu/marketing/navigation-menu-marketing-5.tsx +0 -107
- package/packages/patterns/navigation-menu/standard/navigation-menu-standard-1.tsx +0 -73
- package/packages/patterns/navigation-menu/standard/navigation-menu-standard-2.tsx +0 -51
- package/packages/patterns/navigation-menu/standard/navigation-menu-standard-3.tsx +0 -68
- package/packages/patterns/navigation-menu/standard/navigation-menu-standard-4.tsx +0 -60
- package/packages/patterns/navigation-menu/standard/navigation-menu-standard-5.tsx +0 -82
- package/packages/patterns/package.json +0 -32
- package/packages/patterns/pagination/advanced/pagination-advanced-1.tsx +0 -43
- package/packages/patterns/pagination/advanced/pagination-advanced-2.tsx +0 -43
- package/packages/patterns/pagination/advanced/pagination-advanced-3.tsx +0 -49
- package/packages/patterns/pagination/advanced/pagination-advanced-4.tsx +0 -24
- package/packages/patterns/pagination/advanced/pagination-advanced-5.tsx +0 -39
- package/packages/patterns/pagination/basic/pagination-basic-1.tsx +0 -28
- package/packages/patterns/pagination/basic/pagination-basic-2.tsx +0 -34
- package/packages/patterns/pagination/basic/pagination-basic-3.tsx +0 -36
- package/packages/patterns/pagination/basic/pagination-basic-4.tsx +0 -35
- package/packages/patterns/pagination/basic/pagination-basic-5.tsx +0 -43
- package/packages/patterns/pagination/navigation/pagination-navigation-1.tsx +0 -24
- package/packages/patterns/pagination/navigation/pagination-navigation-2.tsx +0 -27
- package/packages/patterns/pagination/navigation/pagination-navigation-3.tsx +0 -32
- package/packages/patterns/pagination/navigation/pagination-navigation-4.tsx +0 -40
- package/packages/patterns/pagination/sizes/pagination-sizes-1.tsx +0 -40
- package/packages/patterns/pagination/sizes/pagination-sizes-2.tsx +0 -36
- package/packages/patterns/pagination/sizes/pagination-sizes-3.tsx +0 -40
- package/packages/patterns/pagination/sizes/pagination-sizes-4.tsx +0 -28
- package/packages/patterns/pagination/sizes/pagination-sizes-5.tsx +0 -28
- package/packages/patterns/popover/standard/popover-standard-1.tsx +0 -21
- package/packages/patterns/popover/standard/popover-standard-10.tsx +0 -30
- package/packages/patterns/popover/standard/popover-standard-11.tsx +0 -54
- package/packages/patterns/popover/standard/popover-standard-12.tsx +0 -51
- package/packages/patterns/popover/standard/popover-standard-13.tsx +0 -52
- package/packages/patterns/popover/standard/popover-standard-14.tsx +0 -49
- package/packages/patterns/popover/standard/popover-standard-15.tsx +0 -35
- package/packages/patterns/popover/standard/popover-standard-2.tsx +0 -24
- package/packages/patterns/popover/standard/popover-standard-3.tsx +0 -29
- package/packages/patterns/popover/standard/popover-standard-4.tsx +0 -26
- package/packages/patterns/popover/standard/popover-standard-5.tsx +0 -24
- package/packages/patterns/popover/standard/popover-standard-6.tsx +0 -25
- package/packages/patterns/popover/standard/popover-standard-7.tsx +0 -25
- package/packages/patterns/popover/standard/popover-standard-8.tsx +0 -26
- package/packages/patterns/popover/standard/popover-standard-9.tsx +0 -23
- package/packages/patterns/progress/basic/progress-basic-1.tsx +0 -7
- package/packages/patterns/progress/basic/progress-basic-2.tsx +0 -7
- package/packages/patterns/progress/basic/progress-basic-3.tsx +0 -7
- package/packages/patterns/progress/basic/progress-basic-4.tsx +0 -7
- package/packages/patterns/progress/basic/progress-basic-5.tsx +0 -7
- package/packages/patterns/progress/colored/progress-colored-1.tsx +0 -12
- package/packages/patterns/progress/colored/progress-colored-2.tsx +0 -12
- package/packages/patterns/progress/colored/progress-colored-3.tsx +0 -12
- package/packages/patterns/progress/colored/progress-colored-4.tsx +0 -12
- package/packages/patterns/progress/colored/progress-colored-5.tsx +0 -12
- package/packages/patterns/progress/sizes/progress-sizes-1.tsx +0 -7
- package/packages/patterns/progress/sizes/progress-sizes-2.tsx +0 -7
- package/packages/patterns/progress/sizes/progress-sizes-3.tsx +0 -7
- package/packages/patterns/progress/sizes/progress-sizes-4.tsx +0 -7
- package/packages/patterns/progress/sizes/progress-sizes-5.tsx +0 -7
- package/packages/patterns/progress/with-label/progress-with-label-1.tsx +0 -18
- package/packages/patterns/progress/with-label/progress-with-label-2.tsx +0 -15
- package/packages/patterns/progress/with-label/progress-with-label-3.tsx +0 -15
- package/packages/patterns/progress/with-label/progress-with-label-4.tsx +0 -23
- package/packages/patterns/progress/with-label/progress-with-label-5.tsx +0 -23
- package/packages/patterns/radio-group/advanced/radio-group-advanced-1.tsx +0 -39
- package/packages/patterns/radio-group/advanced/radio-group-advanced-2.tsx +0 -71
- package/packages/patterns/radio-group/form/radio-group-form-1.tsx +0 -83
- package/packages/patterns/radio-group/form/radio-group-form-2.tsx +0 -52
- package/packages/patterns/radio-group/layout/radio-group-layout-1.tsx +0 -23
- package/packages/patterns/radio-group/layout/radio-group-layout-2.tsx +0 -44
- package/packages/patterns/radio-group/layout/radio-group-layout-3.tsx +0 -35
- package/packages/patterns/radio-group/standard/radio-group-standard-1.tsx +0 -23
- package/packages/patterns/radio-group/standard/radio-group-standard-2.tsx +0 -38
- package/packages/patterns/scroll-area/advanced/scroll-area-advanced-1.tsx +0 -54
- package/packages/patterns/scroll-area/advanced/scroll-area-advanced-2.tsx +0 -54
- package/packages/patterns/scroll-area/advanced/scroll-area-advanced-3.tsx +0 -89
- package/packages/patterns/scroll-area/layout/scroll-area-layout-1.tsx +0 -37
- package/packages/patterns/scroll-area/layout/scroll-area-layout-2.tsx +0 -45
- package/packages/patterns/scroll-area/layout/scroll-area-layout-3.tsx +0 -99
- package/packages/patterns/scroll-area/standard/scroll-area-standard-1.tsx +0 -52
- package/packages/patterns/scroll-area/standard/scroll-area-standard-2.tsx +0 -56
- package/packages/patterns/separator/basic/separator-basic-1.tsx +0 -13
- package/packages/patterns/separator/basic/separator-basic-2.tsx +0 -15
- package/packages/patterns/separator/basic/separator-basic-3.tsx +0 -21
- package/packages/patterns/separator/basic/separator-basic-4.tsx +0 -19
- package/packages/patterns/separator/basic/separator-basic-5.tsx +0 -7
- package/packages/patterns/separator/spacing/separator-spacing-1.tsx +0 -13
- package/packages/patterns/separator/spacing/separator-spacing-2.tsx +0 -13
- package/packages/patterns/separator/spacing/separator-spacing-3.tsx +0 -13
- package/packages/patterns/separator/spacing/separator-spacing-4.tsx +0 -13
- package/packages/patterns/separator/spacing/separator-spacing-5.tsx +0 -13
- package/packages/patterns/separator/styled/separator-styled-1.tsx +0 -13
- package/packages/patterns/separator/styled/separator-styled-2.tsx +0 -13
- package/packages/patterns/separator/styled/separator-styled-3.tsx +0 -13
- package/packages/patterns/separator/styled/separator-styled-4.tsx +0 -11
- package/packages/patterns/separator/styled/separator-styled-5.tsx +0 -16
- package/packages/patterns/separator/with-text/separator-with-text-1.tsx +0 -17
- package/packages/patterns/separator/with-text/separator-with-text-2.tsx +0 -16
- package/packages/patterns/separator/with-text/separator-with-text-3.tsx +0 -14
- package/packages/patterns/sheet/details/sheet-details-1.tsx +0 -51
- package/packages/patterns/sheet/details/sheet-details-2.tsx +0 -56
- package/packages/patterns/sheet/details/sheet-details-3.tsx +0 -65
- package/packages/patterns/sheet/details/sheet-details-4.tsx +0 -45
- package/packages/patterns/sheet/details/sheet-details-5.tsx +0 -114
- package/packages/patterns/sheet/form/sheet-form-1.tsx +0 -46
- package/packages/patterns/sheet/form/sheet-form-2.tsx +0 -45
- package/packages/patterns/sheet/form/sheet-form-3.tsx +0 -60
- package/packages/patterns/sheet/form/sheet-form-4.tsx +0 -50
- package/packages/patterns/sheet/form/sheet-form-5.tsx +0 -50
- package/packages/patterns/sheet/multi-section/sheet-multi-section-1.tsx +0 -42
- package/packages/patterns/sheet/multi-section/sheet-multi-section-2.tsx +0 -79
- package/packages/patterns/sheet/multi-section/sheet-multi-section-3.tsx +0 -42
- package/packages/patterns/sheet/multi-section/sheet-multi-section-4.tsx +0 -50
- package/packages/patterns/sheet/multi-section/sheet-multi-section-5.tsx +0 -66
- package/packages/patterns/sheet/navigation/sheet-navigation-1.tsx +0 -39
- package/packages/patterns/sheet/navigation/sheet-navigation-2.tsx +0 -57
- package/packages/patterns/sheet/navigation/sheet-navigation-3.tsx +0 -73
- package/packages/patterns/sheet/navigation/sheet-navigation-4.tsx +0 -55
- package/packages/patterns/sheet/navigation/sheet-navigation-5.tsx +0 -46
- package/packages/patterns/sheet/settings/sheet-settings-1.tsx +0 -47
- package/packages/patterns/sheet/settings/sheet-settings-2.tsx +0 -47
- package/packages/patterns/sheet/settings/sheet-settings-3.tsx +0 -55
- package/packages/patterns/sheet/settings/sheet-settings-4.tsx +0 -62
- package/packages/patterns/sheet/settings/sheet-settings-5.tsx +0 -52
- package/packages/patterns/sheet/standard/sheet-standard-1.tsx +0 -29
- package/packages/patterns/sheet/standard/sheet-standard-2.tsx +0 -30
- package/packages/patterns/sheet/standard/sheet-standard-3.tsx +0 -29
- package/packages/patterns/sheet/standard/sheet-standard-4.tsx +0 -29
- package/packages/patterns/skeleton/card/skeleton-card-1.tsx +0 -13
- package/packages/patterns/skeleton/card/skeleton-card-2.tsx +0 -20
- package/packages/patterns/skeleton/card/skeleton-card-3.tsx +0 -21
- package/packages/patterns/skeleton/card/skeleton-card-4.tsx +0 -21
- package/packages/patterns/skeleton/card/skeleton-card-5.tsx +0 -20
- package/packages/patterns/skeleton/content/skeleton-content-1.tsx +0 -26
- package/packages/patterns/skeleton/content/skeleton-content-2.tsx +0 -30
- package/packages/patterns/skeleton/content/skeleton-content-3.tsx +0 -27
- package/packages/patterns/skeleton/content/skeleton-content-4.tsx +0 -31
- package/packages/patterns/skeleton/content/skeleton-content-5.tsx +0 -41
- package/packages/patterns/skeleton/form/skeleton-form-1.tsx +0 -22
- package/packages/patterns/skeleton/form/skeleton-form-2.tsx +0 -27
- package/packages/patterns/skeleton/form/skeleton-form-3.tsx +0 -35
- package/packages/patterns/skeleton/form/skeleton-form-4.tsx +0 -37
- package/packages/patterns/skeleton/form/skeleton-form-5.tsx +0 -28
- package/packages/patterns/skeleton/list/skeleton-list-1.tsx +0 -16
- package/packages/patterns/skeleton/list/skeleton-list-2.tsx +0 -19
- package/packages/patterns/skeleton/list/skeleton-list-3.tsx +0 -20
- package/packages/patterns/skeleton/list/skeleton-list-4.tsx +0 -21
- package/packages/patterns/skeleton/list/skeleton-list-5.tsx +0 -30
- package/packages/patterns/skeleton/profile/skeleton-profile-1.tsx +0 -19
- package/packages/patterns/skeleton/profile/skeleton-profile-2.tsx +0 -33
- package/packages/patterns/skeleton/profile/skeleton-profile-3.tsx +0 -27
- package/packages/patterns/skeleton/profile/skeleton-profile-4.tsx +0 -33
- package/packages/patterns/skeleton/profile/skeleton-profile-5.tsx +0 -22
- package/packages/patterns/skeleton/table/skeleton-table-1.tsx +0 -24
- package/packages/patterns/skeleton/table/skeleton-table-2.tsx +0 -29
- package/packages/patterns/skeleton/table/skeleton-table-3.tsx +0 -27
- package/packages/patterns/skeleton/table/skeleton-table-4.tsx +0 -42
- package/packages/patterns/skeleton/table/skeleton-table-5.tsx +0 -36
- package/packages/patterns/slider/interactive/slider-interactive-1.tsx +0 -38
- package/packages/patterns/slider/interactive/slider-interactive-2.tsx +0 -46
- package/packages/patterns/slider/interactive/slider-interactive-3.tsx +0 -38
- package/packages/patterns/slider/interactive/slider-interactive-4.tsx +0 -34
- package/packages/patterns/slider/interactive/slider-interactive-5.tsx +0 -33
- package/packages/patterns/slider/range/slider-range-1.tsx +0 -26
- package/packages/patterns/slider/range/slider-range-2.tsx +0 -30
- package/packages/patterns/slider/range/slider-range-3.tsx +0 -31
- package/packages/patterns/slider/range/slider-range-4.tsx +0 -39
- package/packages/patterns/slider/range/slider-range-5.tsx +0 -36
- package/packages/patterns/slider/settings/slider-settings-1.tsx +0 -27
- package/packages/patterns/slider/settings/slider-settings-2.tsx +0 -32
- package/packages/patterns/slider/settings/slider-settings-3.tsx +0 -38
- package/packages/patterns/slider/settings/slider-settings-4.tsx +0 -43
- package/packages/patterns/slider/standard/slider-standard-1.tsx +0 -18
- package/packages/patterns/slider/standard/slider-standard-2.tsx +0 -20
- package/packages/patterns/slider/standard/slider-standard-3.tsx +0 -23
- package/packages/patterns/slider/standard/slider-standard-4.tsx +0 -30
- package/packages/patterns/slider/standard/slider-standard-5.tsx +0 -37
- package/packages/patterns/slider/styled/slider-styled-1.tsx +0 -28
- package/packages/patterns/slider/styled/slider-styled-2.tsx +0 -28
- package/packages/patterns/slider/styled/slider-styled-3.tsx +0 -28
- package/packages/patterns/slider/styled/slider-styled-4.tsx +0 -28
- package/packages/patterns/slider/styled/slider-styled-5.tsx +0 -28
- package/packages/patterns/slider/vertical/slider-vertical-1.tsx +0 -27
- package/packages/patterns/slider/vertical/slider-vertical-2.tsx +0 -29
- package/packages/patterns/slider/vertical/slider-vertical-3.tsx +0 -36
- package/packages/patterns/slider/vertical/slider-vertical-4.tsx +0 -31
- package/packages/patterns/slider/vertical/slider-vertical-5.tsx +0 -37
- package/packages/patterns/sonner/content/sonner-content-1.tsx +0 -21
- package/packages/patterns/sonner/content/sonner-content-2.tsx +0 -23
- package/packages/patterns/sonner/content/sonner-content-3.tsx +0 -21
- package/packages/patterns/sonner/content/sonner-content-4.tsx +0 -22
- package/packages/patterns/sonner/content/sonner-content-5.tsx +0 -35
- package/packages/patterns/sonner/interactive/sonner-interactive-1.tsx +0 -24
- package/packages/patterns/sonner/interactive/sonner-interactive-2.tsx +0 -24
- package/packages/patterns/sonner/interactive/sonner-interactive-3.tsx +0 -28
- package/packages/patterns/sonner/interactive/sonner-interactive-4.tsx +0 -22
- package/packages/patterns/sonner/position/sonner-position-1.tsx +0 -21
- package/packages/patterns/sonner/position/sonner-position-2.tsx +0 -21
- package/packages/patterns/sonner/position/sonner-position-3.tsx +0 -21
- package/packages/patterns/sonner/position/sonner-position-4.tsx +0 -21
- package/packages/patterns/sonner/position/sonner-position-5.tsx +0 -21
- package/packages/patterns/sonner/position/sonner-position-6.tsx +0 -21
- package/packages/patterns/sonner/promise/sonner-promise-1.tsx +0 -28
- package/packages/patterns/sonner/promise/sonner-promise-2.tsx +0 -28
- package/packages/patterns/sonner/promise/sonner-promise-3.tsx +0 -28
- package/packages/patterns/sonner/promise/sonner-promise-4.tsx +0 -20
- package/packages/patterns/sonner/standard/sonner-standard-1.tsx +0 -14
- package/packages/patterns/sonner/standard/sonner-standard-2.tsx +0 -17
- package/packages/patterns/sonner/standard/sonner-standard-3.tsx +0 -14
- package/packages/patterns/sonner/standard/sonner-standard-4.tsx +0 -17
- package/packages/patterns/sonner/standard/sonner-standard-5.tsx +0 -17
- package/packages/patterns/spinner/applications/spinner-applications-1.tsx +0 -38
- package/packages/patterns/spinner/applications/spinner-applications-2.tsx +0 -34
- package/packages/patterns/spinner/applications/spinner-applications-3.tsx +0 -33
- package/packages/patterns/spinner/button/spinner-button-1.tsx +0 -13
- package/packages/patterns/spinner/button/spinner-button-2.tsx +0 -13
- package/packages/patterns/spinner/button/spinner-button-3.tsx +0 -12
- package/packages/patterns/spinner/button/spinner-button-4.tsx +0 -13
- package/packages/patterns/spinner/button/spinner-button-5.tsx +0 -13
- package/packages/patterns/spinner/inline/spinner-inline-1.tsx +0 -12
- package/packages/patterns/spinner/inline/spinner-inline-2.tsx +0 -12
- package/packages/patterns/spinner/inline/spinner-inline-3.tsx +0 -12
- package/packages/patterns/spinner/inline/spinner-inline-4.tsx +0 -21
- package/packages/patterns/spinner/standard/spinner-standard-1.tsx +0 -7
- package/packages/patterns/spinner/standard/spinner-standard-2.tsx +0 -7
- package/packages/patterns/spinner/standard/spinner-standard-3.tsx +0 -7
- package/packages/patterns/spinner/standard/spinner-standard-4.tsx +0 -7
- package/packages/patterns/spinner/standard/spinner-standard-5.tsx +0 -7
- package/packages/patterns/switch/cards/switch-cards-1.tsx +0 -27
- package/packages/patterns/switch/cards/switch-cards-2.tsx +0 -28
- package/packages/patterns/switch/cards/switch-cards-3.tsx +0 -35
- package/packages/patterns/switch/cards/switch-cards-4.tsx +0 -25
- package/packages/patterns/switch/icons/switch-icons-1.tsx +0 -16
- package/packages/patterns/switch/icons/switch-icons-2.tsx +0 -19
- package/packages/patterns/switch/icons/switch-icons-3.tsx +0 -16
- package/packages/patterns/switch/labeled/switch-labeled-1.tsx +0 -15
- package/packages/patterns/switch/labeled/switch-labeled-2.tsx +0 -14
- package/packages/patterns/switch/labeled/switch-labeled-3.tsx +0 -22
- package/packages/patterns/switch/labeled/switch-labeled-4.tsx +0 -20
- package/packages/patterns/switch/square/switch-square-1.tsx +0 -14
- package/packages/patterns/switch/square/switch-square-2.tsx +0 -36
- package/packages/patterns/switch/square/switch-square-3.tsx +0 -20
- package/packages/patterns/switch/square/switch-square-4.tsx +0 -27
- package/packages/patterns/switch/standard/switch-standard-1.tsx +0 -9
- package/packages/patterns/switch/standard/switch-standard-2.tsx +0 -9
- package/packages/patterns/switch/standard/switch-standard-3.tsx +0 -9
- package/packages/patterns/switch/standard/switch-standard-4.tsx +0 -9
- package/packages/patterns/table/advanced/table-advanced-1.tsx +0 -66
- package/packages/patterns/table/advanced/table-advanced-2.tsx +0 -86
- package/packages/patterns/table/advanced/table-advanced-3.tsx +0 -42
- package/packages/patterns/table/advanced/table-advanced-4.tsx +0 -114
- package/packages/patterns/table/standard/table-standard-1.tsx +0 -70
- package/packages/patterns/table/standard/table-standard-2.tsx +0 -75
- package/packages/patterns/table/standard/table-standard-3.tsx +0 -64
- package/packages/patterns/table/standard/table-standard-4.tsx +0 -73
- package/packages/patterns/tabs/advanced/tabs-advanced-1.tsx +0 -101
- package/packages/patterns/tabs/advanced/tabs-advanced-2.tsx +0 -118
- package/packages/patterns/tabs/advanced/tabs-advanced-3.tsx +0 -187
- package/packages/patterns/tabs/content/tabs-content-1.tsx +0 -85
- package/packages/patterns/tabs/content/tabs-content-2.tsx +0 -105
- package/packages/patterns/tabs/content/tabs-content-3.tsx +0 -149
- package/packages/patterns/tabs/layout/tabs-layout-1.tsx +0 -62
- package/packages/patterns/tabs/layout/tabs-layout-2.tsx +0 -60
- package/packages/patterns/tabs/layout/tabs-layout-3.tsx +0 -61
- package/packages/patterns/tabs/standard/tabs-standard-1.tsx +0 -52
- package/packages/patterns/tabs/standard/tabs-standard-2.tsx +0 -105
- package/packages/patterns/textarea/form/textarea-form-1.tsx +0 -20
- package/packages/patterns/textarea/form/textarea-form-2.tsx +0 -20
- package/packages/patterns/textarea/form/textarea-form-3.tsx +0 -22
- package/packages/patterns/textarea/form/textarea-form-4.tsx +0 -20
- package/packages/patterns/textarea/form/textarea-form-5.tsx +0 -31
- package/packages/patterns/textarea/labeled/textarea-labeled-1.tsx +0 -17
- package/packages/patterns/textarea/labeled/textarea-labeled-2.tsx +0 -18
- package/packages/patterns/textarea/labeled/textarea-labeled-3.tsx +0 -30
- package/packages/patterns/textarea/labeled/textarea-labeled-4.tsx +0 -20
- package/packages/patterns/textarea/standard/textarea-standard-1.tsx +0 -12
- package/packages/patterns/textarea/standard/textarea-standard-2.tsx +0 -13
- package/packages/patterns/textarea/standard/textarea-standard-3.tsx +0 -14
- package/packages/patterns/textarea/standard/textarea-standard-4.tsx +0 -13
- package/packages/patterns/toggle/sizes/toggle-sizes-1.tsx +0 -14
- package/packages/patterns/toggle/sizes/toggle-sizes-2.tsx +0 -14
- package/packages/patterns/toggle/sizes/toggle-sizes-3.tsx +0 -14
- package/packages/patterns/toggle/standard/toggle-standard-1.tsx +0 -14
- package/packages/patterns/toggle/standard/toggle-standard-2.tsx +0 -14
- package/packages/patterns/toggle/standard/toggle-standard-3.tsx +0 -14
- package/packages/patterns/toggle/standard/toggle-standard-4.tsx +0 -15
- package/packages/patterns/toggle-group/sizes/toggle-group-sizes-1.tsx +0 -22
- package/packages/patterns/toggle-group/sizes/toggle-group-sizes-2.tsx +0 -22
- package/packages/patterns/toggle-group/sizes/toggle-group-sizes-3.tsx +0 -22
- package/packages/patterns/toggle-group/standard/toggle-group-standard-1.tsx +0 -22
- package/packages/patterns/toggle-group/standard/toggle-group-standard-2.tsx +0 -22
- package/packages/patterns/toggle-group/standard/toggle-group-standard-3.tsx +0 -22
- package/packages/patterns/toggle-group/standard/toggle-group-standard-4.tsx +0 -22
- package/packages/patterns/tooltip/content/tooltip-content-1.tsx +0 -28
- package/packages/patterns/tooltip/content/tooltip-content-2.tsx +0 -27
- package/packages/patterns/tooltip/content/tooltip-content-3.tsx +0 -27
- package/packages/patterns/tooltip/content/tooltip-content-4.tsx +0 -36
- package/packages/patterns/tooltip/standard/tooltip-standard-1.tsx +0 -23
- package/packages/patterns/tooltip/standard/tooltip-standard-2.tsx +0 -49
- package/packages/patterns/tooltip/standard/tooltip-standard-3.tsx +0 -26
- package/packages/patterns/tooltip/standard/tooltip-standard-4.tsx +0 -25
- package/packages/patterns/tsconfig.json +0 -13
- package/packages/pill/index.tsx +0 -166
- package/packages/pill/package.json +0 -24
- package/packages/pill/tsconfig.json +0 -13
- package/packages/qr-code/index.tsx +0 -88
- package/packages/qr-code/package.json +0 -27
- package/packages/qr-code/server.tsx +0 -42
- package/packages/qr-code/tsconfig.json +0 -13
- package/packages/rating/index.tsx +0 -243
- package/packages/rating/package.json +0 -25
- package/packages/rating/tsconfig.json +0 -13
- package/packages/reel/index.tsx +0 -748
- package/packages/reel/package.json +0 -26
- package/packages/reel/reel-controlled.tsx +0 -327
- package/packages/reel/tsconfig.json +0 -13
- package/packages/relative-time/index.tsx +0 -181
- package/packages/relative-time/package.json +0 -24
- package/packages/relative-time/tsconfig.json +0 -13
- package/packages/sandbox/index.tsx +0 -251
- package/packages/sandbox/package.json +0 -24
- package/packages/sandbox/tsconfig.json +0 -13
- package/packages/shadcn-ui/components/ui/accordion.tsx +0 -66
- package/packages/shadcn-ui/components/ui/alert-dialog.tsx +0 -157
- package/packages/shadcn-ui/components/ui/alert.tsx +0 -66
- package/packages/shadcn-ui/components/ui/aspect-ratio.tsx +0 -11
- package/packages/shadcn-ui/components/ui/avatar.tsx +0 -53
- package/packages/shadcn-ui/components/ui/badge.tsx +0 -46
- package/packages/shadcn-ui/components/ui/breadcrumb.tsx +0 -109
- package/packages/shadcn-ui/components/ui/button-group.tsx +0 -83
- package/packages/shadcn-ui/components/ui/button.tsx +0 -60
- package/packages/shadcn-ui/components/ui/calendar.tsx +0 -213
- package/packages/shadcn-ui/components/ui/card.tsx +0 -112
- package/packages/shadcn-ui/components/ui/carousel.tsx +0 -241
- package/packages/shadcn-ui/components/ui/chart.tsx +0 -357
- package/packages/shadcn-ui/components/ui/checkbox.tsx +0 -32
- package/packages/shadcn-ui/components/ui/collapsible.tsx +0 -33
- package/packages/shadcn-ui/components/ui/command.tsx +0 -184
- package/packages/shadcn-ui/components/ui/context-menu.tsx +0 -252
- package/packages/shadcn-ui/components/ui/dialog.tsx +0 -143
- package/packages/shadcn-ui/components/ui/drawer.tsx +0 -135
- package/packages/shadcn-ui/components/ui/dropdown-menu.tsx +0 -257
- package/packages/shadcn-ui/components/ui/empty.tsx +0 -104
- package/packages/shadcn-ui/components/ui/field.tsx +0 -244
- package/packages/shadcn-ui/components/ui/form.tsx +0 -167
- package/packages/shadcn-ui/components/ui/hover-card.tsx +0 -44
- package/packages/shadcn-ui/components/ui/input-group.tsx +0 -170
- package/packages/shadcn-ui/components/ui/input-otp.tsx +0 -77
- package/packages/shadcn-ui/components/ui/input.tsx +0 -21
- package/packages/shadcn-ui/components/ui/item.tsx +0 -193
- package/packages/shadcn-ui/components/ui/kbd.tsx +0 -28
- package/packages/shadcn-ui/components/ui/label.tsx +0 -24
- package/packages/shadcn-ui/components/ui/menubar.tsx +0 -276
- package/packages/shadcn-ui/components/ui/navigation-menu.tsx +0 -168
- package/packages/shadcn-ui/components/ui/pagination.tsx +0 -127
- package/packages/shadcn-ui/components/ui/popover.tsx +0 -48
- package/packages/shadcn-ui/components/ui/progress.tsx +0 -31
- package/packages/shadcn-ui/components/ui/radio-group.tsx +0 -45
- package/packages/shadcn-ui/components/ui/resizable.tsx +0 -56
- package/packages/shadcn-ui/components/ui/scroll-area.tsx +0 -58
- package/packages/shadcn-ui/components/ui/select.tsx +0 -187
- package/packages/shadcn-ui/components/ui/separator.tsx +0 -28
- package/packages/shadcn-ui/components/ui/sheet.tsx +0 -139
- package/packages/shadcn-ui/components/ui/sidebar.tsx +0 -726
- package/packages/shadcn-ui/components/ui/skeleton.tsx +0 -13
- package/packages/shadcn-ui/components/ui/slider.tsx +0 -63
- package/packages/shadcn-ui/components/ui/sonner.tsx +0 -25
- package/packages/shadcn-ui/components/ui/spinner.tsx +0 -16
- package/packages/shadcn-ui/components/ui/switch.tsx +0 -31
- package/packages/shadcn-ui/components/ui/table.tsx +0 -116
- package/packages/shadcn-ui/components/ui/tabs.tsx +0 -66
- package/packages/shadcn-ui/components/ui/textarea.tsx +0 -18
- package/packages/shadcn-ui/components/ui/toast.tsx +0 -128
- package/packages/shadcn-ui/components/ui/toaster.tsx +0 -35
- package/packages/shadcn-ui/components/ui/toggle-group.tsx +0 -73
- package/packages/shadcn-ui/components/ui/toggle.tsx +0 -47
- package/packages/shadcn-ui/components/ui/tooltip.tsx +0 -61
- package/packages/shadcn-ui/components.json +0 -21
- package/packages/shadcn-ui/hooks/use-mobile.ts +0 -19
- package/packages/shadcn-ui/hooks/use-mobile.tsx +0 -19
- package/packages/shadcn-ui/hooks/use-toast.ts +0 -194
- package/packages/shadcn-ui/lib/utils.ts +0 -6
- package/packages/shadcn-ui/package.json +0 -39
- package/packages/shadcn-ui/tsconfig.json +0 -17
- package/packages/shader-ripple/index.tsx +0 -303
- package/packages/shader-ripple/package.json +0 -60
- package/packages/shader-ripple/tsconfig.json +0 -18
- package/packages/silk/README.md +0 -40
- package/packages/silk/index.tsx +0 -170
- package/packages/silk/package.json +0 -61
- package/packages/silk/tsconfig.json +0 -18
- package/packages/silk/types.d.ts +0 -23
- package/packages/snippet/index.tsx +0 -123
- package/packages/snippet/package.json +0 -23
- package/packages/snippet/tsconfig.json +0 -13
- package/packages/spinner/index.tsx +0 -271
- package/packages/spinner/package.json +0 -24
- package/packages/spinner/tsconfig.json +0 -13
- package/packages/status/index.tsx +0 -62
- package/packages/status/package.json +0 -23
- package/packages/status/tsconfig.json +0 -13
- package/packages/stories/index.tsx +0 -232
- package/packages/stories/package.json +0 -23
- package/packages/stories/tsconfig.json +0 -13
- package/packages/table/index.tsx +0 -246
- package/packages/table/package.json +0 -26
- package/packages/table/tsconfig.json +0 -13
- package/packages/tags/index.tsx +0 -221
- package/packages/tags/package.json +0 -23
- package/packages/tags/tsconfig.json +0 -13
- package/packages/theme-switcher/index.tsx +0 -99
- package/packages/theme-switcher/package.json +0 -26
- package/packages/theme-switcher/tsconfig.json +0 -13
- package/packages/ticker/index.tsx +0 -195
- package/packages/ticker/package.json +0 -23
- package/packages/ticker/tsconfig.json +0 -13
- package/packages/tree/index.tsx +0 -445
- package/packages/tree/package.json +0 -25
- package/packages/tree/tsconfig.json +0 -13
- package/packages/typescript-config/base.json +0 -27
- package/packages/typescript-config/nextjs.json +0 -13
- package/packages/typescript-config/package.json +0 -15
- package/packages/typescript-config/react-library.json +0 -8
- package/packages/typescript-config/types/minimatch/index.d.ts +0 -26
- package/packages/typography/package.json +0 -26
- package/packages/typography/styles.css +0 -326
- package/packages/typography/tsconfig.json +0 -13
- package/packages/video-player/index.tsx +0 -125
- package/packages/video-player/package.json +0 -24
- package/packages/video-player/tsconfig.json +0 -13
- package/public/r/accordion-controlled.json +0 -20
- package/public/r/accordion-demo.json +0 -19
- package/public/r/accordion-multiple.json +0 -19
- package/public/r/accordion-single.json +0 -19
- package/public/r/accordion.json +0 -15
- package/public/r/alert-demo.json +0 -19
- package/public/r/alert-dialog-demo.json +0 -20
- package/public/r/alert-dialog.json +0 -15
- package/public/r/alert-error.json +0 -20
- package/public/r/alert-info.json +0 -20
- package/public/r/alert-success.json +0 -20
- package/public/r/alert-warning.json +0 -20
- package/public/r/alert-with-icon-action.json +0 -20
- package/public/r/alert-with-icon.json +0 -19
- package/public/r/alert.json +0 -32
- package/public/r/announcement-tagless.json +0 -21
- package/public/r/announcement-themes.json +0 -21
- package/public/r/announcement.json +0 -20
- package/public/r/autocomplete-async.json +0 -21
- package/public/r/autocomplete-autohighlight.json +0 -20
- package/public/r/autocomplete-demo.json +0 -20
- package/public/r/autocomplete-disabled.json +0 -21
- package/public/r/autocomplete-form.json +0 -23
- package/public/r/autocomplete-grouped.json +0 -20
- package/public/r/autocomplete-inline.json +0 -20
- package/public/r/autocomplete-lg.json +0 -20
- package/public/r/autocomplete-limit.json +0 -20
- package/public/r/autocomplete-sm.json +0 -20
- package/public/r/autocomplete-with-clear.json +0 -20
- package/public/r/autocomplete-with-label.json +0 -21
- package/public/r/autocomplete-with-trigger-clear.json +0 -20
- package/public/r/autocomplete.json +0 -19
- package/public/r/avatar-demo.json +0 -19
- package/public/r/avatar-fallback.json +0 -19
- package/public/r/avatar-group.json +0 -20
- package/public/r/avatar-radius.json +0 -19
- package/public/r/avatar-size.json +0 -19
- package/public/r/avatar-stack-hover.json +0 -22
- package/public/r/avatar-stack.json +0 -21
- package/public/r/avatar.json +0 -15
- package/public/r/badge-demo.json +0 -19
- package/public/r/badge-destructive.json +0 -21
- package/public/r/badge-error.json +0 -20
- package/public/r/badge-info.json +0 -20
- package/public/r/badge-lg.json +0 -19
- package/public/r/badge-outline.json +0 -19
- package/public/r/badge-secondary.json +0 -19
- package/public/r/badge-sm.json +0 -19
- package/public/r/badge-success.json +0 -20
- package/public/r/badge-warning.json +0 -20
- package/public/r/badge-with-icon.json +0 -19
- package/public/r/badge-with-link.json +0 -19
- package/public/r/badge.json +0 -35
- package/public/r/banner-inset.json +0 -21
- package/public/r/banner-themes.json +0 -21
- package/public/r/banner.json +0 -20
- package/public/r/bookmarks.json +0 -206
- package/public/r/breadcrumb-custom-separator.json +0 -19
- package/public/r/breadcrumb-demo.json +0 -21
- package/public/r/breadcrumb.json +0 -15
- package/public/r/button-demo.json +0 -19
- package/public/r/button-destructive-outline.json +0 -20
- package/public/r/button-destructive.json +0 -21
- package/public/r/button-disabled.json +0 -20
- package/public/r/button-ghost.json +0 -19
- package/public/r/button-icon-lg.json +0 -19
- package/public/r/button-icon-sm.json +0 -19
- package/public/r/button-icon.json +0 -19
- package/public/r/button-lg.json +0 -19
- package/public/r/button-link.json +0 -19
- package/public/r/button-loading.json +0 -20
- package/public/r/button-outline.json +0 -19
- package/public/r/button-secondary.json +0 -19
- package/public/r/button-sm.json +0 -19
- package/public/r/button-with-icon.json +0 -19
- package/public/r/button-with-link.json +0 -19
- package/public/r/button-xl.json +0 -19
- package/public/r/button-xs.json +0 -19
- package/public/r/button.json +0 -23
- package/public/r/calendar-headless.json +0 -22
- package/public/r/calendar-rac.json +0 -16
- package/public/r/calendar.json +0 -21
- package/public/r/card-demo.json +0 -28
- package/public/r/card.json +0 -13
- package/public/r/chart.json +0 -15
- package/public/r/checkbox-card.json +0 -22
- package/public/r/checkbox-demo.json +0 -21
- package/public/r/checkbox-disabled.json +0 -22
- package/public/r/checkbox-form.json +0 -25
- package/public/r/checkbox-group-demo.json +0 -22
- package/public/r/checkbox-group-disabled.json +0 -23
- package/public/r/checkbox-group-form.json +0 -29
- package/public/r/checkbox-group-nested-parent.json +0 -23
- package/public/r/checkbox-group-parent.json +0 -23
- package/public/r/checkbox-group.json +0 -15
- package/public/r/checkbox-tree.json +0 -12
- package/public/r/checkbox-with-description.json +0 -23
- package/public/r/checkbox.json +0 -15
- package/public/r/choicebox-inline.json +0 -20
- package/public/r/choicebox.json +0 -20
- package/public/r/code-block-diff.json +0 -21
- package/public/r/code-block-focus.json +0 -20
- package/public/r/code-block-headless.json +0 -21
- package/public/r/code-block-highlight-line.json +0 -21
- package/public/r/code-block-highlight-word.json +0 -21
- package/public/r/code-block-no-highlighting.json +0 -20
- package/public/r/code-block-numberless.json +0 -20
- package/public/r/code-block-theme.json +0 -21
- package/public/r/code-block.json +0 -20
- package/public/r/codebase.json +0 -19
- package/public/r/collaborative-canvas.json +0 -19
- package/public/r/collapsible-demo.json +0 -19
- package/public/r/collapsible.json +0 -15
- package/public/r/color-picker.json +0 -21
- package/public/r/colors-zinc.json +0 -61
- package/public/r/combobox-autohighlight.json +0 -20
- package/public/r/combobox-controlled.json +0 -21
- package/public/r/combobox-create-new.json +0 -21
- package/public/r/combobox-demo.json +0 -20
- package/public/r/combobox-disabled.json +0 -21
- package/public/r/combobox-fixed-width.json +0 -20
- package/public/r/combobox-form.json +0 -24
- package/public/r/combobox-grouped.json +0 -20
- package/public/r/combobox-lg.json +0 -20
- package/public/r/combobox-multiple-form.json +0 -25
- package/public/r/combobox-multiple.json +0 -20
- package/public/r/combobox-sm.json +0 -20
- package/public/r/combobox-with-clear.json +0 -20
- package/public/r/combobox-with-inner-input.json +0 -21
- package/public/r/combobox-with-label.json +0 -21
- package/public/r/combobox.json +0 -19
- package/public/r/command.json +0 -18
- package/public/r/comp-01.json +0 -22
- package/public/r/comp-02.json +0 -23
- package/public/r/comp-03.json +0 -23
- package/public/r/comp-04.json +0 -23
- package/public/r/comp-05.json +0 -22
- package/public/r/comp-06.json +0 -23
- package/public/r/comp-07.json +0 -22
- package/public/r/comp-08.json +0 -23
- package/public/r/comp-09.json +0 -22
- package/public/r/comp-10.json +0 -22
- package/public/r/comp-100.json +0 -23
- package/public/r/comp-101.json +0 -23
- package/public/r/comp-102.json +0 -23
- package/public/r/comp-103.json +0 -23
- package/public/r/comp-104.json +0 -23
- package/public/r/comp-105.json +0 -23
- package/public/r/comp-106.json +0 -22
- package/public/r/comp-107.json +0 -22
- package/public/r/comp-108.json +0 -23
- package/public/r/comp-109.json +0 -22
- package/public/r/comp-11.json +0 -22
- package/public/r/comp-110.json +0 -22
- package/public/r/comp-111.json +0 -21
- package/public/r/comp-112.json +0 -21
- package/public/r/comp-113.json +0 -22
- package/public/r/comp-114.json +0 -23
- package/public/r/comp-115.json +0 -22
- package/public/r/comp-116.json +0 -22
- package/public/r/comp-117.json +0 -23
- package/public/r/comp-118.json +0 -23
- package/public/r/comp-119.json +0 -27
- package/public/r/comp-12.json +0 -22
- package/public/r/comp-120.json +0 -27
- package/public/r/comp-121.json +0 -27
- package/public/r/comp-122.json +0 -27
- package/public/r/comp-123.json +0 -22
- package/public/r/comp-124.json +0 -22
- package/public/r/comp-125.json +0 -31
- package/public/r/comp-126.json +0 -31
- package/public/r/comp-127.json +0 -21
- package/public/r/comp-128.json +0 -21
- package/public/r/comp-129.json +0 -24
- package/public/r/comp-13.json +0 -22
- package/public/r/comp-130.json +0 -23
- package/public/r/comp-131.json +0 -23
- package/public/r/comp-132.json +0 -23
- package/public/r/comp-133.json +0 -23
- package/public/r/comp-134.json +0 -23
- package/public/r/comp-135.json +0 -24
- package/public/r/comp-136.json +0 -23
- package/public/r/comp-137.json +0 -23
- package/public/r/comp-138.json +0 -25
- package/public/r/comp-139.json +0 -23
- package/public/r/comp-14.json +0 -22
- package/public/r/comp-140.json +0 -23
- package/public/r/comp-141.json +0 -23
- package/public/r/comp-142.json +0 -25
- package/public/r/comp-143.json +0 -23
- package/public/r/comp-144.json +0 -24
- package/public/r/comp-145.json +0 -24
- package/public/r/comp-146.json +0 -24
- package/public/r/comp-147.json +0 -24
- package/public/r/comp-148.json +0 -25
- package/public/r/comp-149.json +0 -24
- package/public/r/comp-15.json +0 -22
- package/public/r/comp-150.json +0 -21
- package/public/r/comp-151.json +0 -23
- package/public/r/comp-152.json +0 -23
- package/public/r/comp-153.json +0 -23
- package/public/r/comp-154.json +0 -23
- package/public/r/comp-155.json +0 -23
- package/public/r/comp-156.json +0 -25
- package/public/r/comp-157.json +0 -27
- package/public/r/comp-158.json +0 -24
- package/public/r/comp-159.json +0 -24
- package/public/r/comp-16.json +0 -22
- package/public/r/comp-160.json +0 -24
- package/public/r/comp-161.json +0 -24
- package/public/r/comp-162.json +0 -24
- package/public/r/comp-163.json +0 -28
- package/public/r/comp-164.json +0 -24
- package/public/r/comp-165.json +0 -24
- package/public/r/comp-166.json +0 -25
- package/public/r/comp-167.json +0 -24
- package/public/r/comp-168.json +0 -24
- package/public/r/comp-169.json +0 -23
- package/public/r/comp-17.json +0 -25
- package/public/r/comp-170.json +0 -25
- package/public/r/comp-171.json +0 -28
- package/public/r/comp-172.json +0 -23
- package/public/r/comp-173.json +0 -23
- package/public/r/comp-174.json +0 -23
- package/public/r/comp-175.json +0 -23
- package/public/r/comp-176.json +0 -23
- package/public/r/comp-177.json +0 -23
- package/public/r/comp-178.json +0 -23
- package/public/r/comp-179.json +0 -24
- package/public/r/comp-18.json +0 -25
- package/public/r/comp-180.json +0 -23
- package/public/r/comp-181.json +0 -25
- package/public/r/comp-182.json +0 -24
- package/public/r/comp-183.json +0 -25
- package/public/r/comp-184.json +0 -25
- package/public/r/comp-185.json +0 -24
- package/public/r/comp-186.json +0 -25
- package/public/r/comp-187.json +0 -25
- package/public/r/comp-188.json +0 -25
- package/public/r/comp-189.json +0 -23
- package/public/r/comp-19.json +0 -23
- package/public/r/comp-190.json +0 -23
- package/public/r/comp-191.json +0 -24
- package/public/r/comp-192.json +0 -23
- package/public/r/comp-193.json +0 -23
- package/public/r/comp-194.json +0 -24
- package/public/r/comp-195.json +0 -23
- package/public/r/comp-196.json +0 -24
- package/public/r/comp-197.json +0 -23
- package/public/r/comp-198.json +0 -23
- package/public/r/comp-199.json +0 -23
- package/public/r/comp-20.json +0 -23
- package/public/r/comp-200.json +0 -25
- package/public/r/comp-201.json +0 -22
- package/public/r/comp-202.json +0 -22
- package/public/r/comp-203.json +0 -23
- package/public/r/comp-204.json +0 -23
- package/public/r/comp-205.json +0 -23
- package/public/r/comp-206.json +0 -24
- package/public/r/comp-207.json +0 -23
- package/public/r/comp-208.json +0 -23
- package/public/r/comp-209.json +0 -23
- package/public/r/comp-21.json +0 -23
- package/public/r/comp-210.json +0 -24
- package/public/r/comp-211.json +0 -24
- package/public/r/comp-212.json +0 -23
- package/public/r/comp-213.json +0 -23
- package/public/r/comp-214.json +0 -23
- package/public/r/comp-215.json +0 -24
- package/public/r/comp-216.json +0 -22
- package/public/r/comp-217.json +0 -22
- package/public/r/comp-218.json +0 -25
- package/public/r/comp-219.json +0 -23
- package/public/r/comp-22.json +0 -23
- package/public/r/comp-220.json +0 -24
- package/public/r/comp-221.json +0 -23
- package/public/r/comp-222.json +0 -26
- package/public/r/comp-223.json +0 -26
- package/public/r/comp-224.json +0 -23
- package/public/r/comp-225.json +0 -24
- package/public/r/comp-226.json +0 -26
- package/public/r/comp-227.json +0 -26
- package/public/r/comp-228.json +0 -26
- package/public/r/comp-229.json +0 -30
- package/public/r/comp-23.json +0 -24
- package/public/r/comp-230.json +0 -30
- package/public/r/comp-231.json +0 -32
- package/public/r/comp-232.json +0 -31
- package/public/r/comp-233.json +0 -30
- package/public/r/comp-234.json +0 -28
- package/public/r/comp-235.json +0 -28
- package/public/r/comp-236.json +0 -24
- package/public/r/comp-237.json +0 -26
- package/public/r/comp-238.json +0 -26
- package/public/r/comp-239.json +0 -26
- package/public/r/comp-24.json +0 -23
- package/public/r/comp-240.json +0 -23
- package/public/r/comp-241.json +0 -24
- package/public/r/comp-242.json +0 -23
- package/public/r/comp-243.json +0 -23
- package/public/r/comp-244.json +0 -23
- package/public/r/comp-245.json +0 -23
- package/public/r/comp-246.json +0 -23
- package/public/r/comp-247.json +0 -23
- package/public/r/comp-248.json +0 -23
- package/public/r/comp-249.json +0 -24
- package/public/r/comp-25.json +0 -24
- package/public/r/comp-250.json +0 -25
- package/public/r/comp-251.json +0 -25
- package/public/r/comp-252.json +0 -25
- package/public/r/comp-253.json +0 -25
- package/public/r/comp-254.json +0 -35
- package/public/r/comp-255.json +0 -30
- package/public/r/comp-256.json +0 -25
- package/public/r/comp-257.json +0 -25
- package/public/r/comp-258.json +0 -32
- package/public/r/comp-259.json +0 -26
- package/public/r/comp-26.json +0 -24
- package/public/r/comp-260.json +0 -26
- package/public/r/comp-261.json +0 -24
- package/public/r/comp-262.json +0 -31
- package/public/r/comp-263.json +0 -25
- package/public/r/comp-264.json +0 -33
- package/public/r/comp-265.json +0 -32
- package/public/r/comp-266.json +0 -24
- package/public/r/comp-267.json +0 -19
- package/public/r/comp-268.json +0 -19
- package/public/r/comp-269.json +0 -19
- package/public/r/comp-27.json +0 -24
- package/public/r/comp-270.json +0 -19
- package/public/r/comp-271.json +0 -19
- package/public/r/comp-272.json +0 -19
- package/public/r/comp-273.json +0 -19
- package/public/r/comp-274.json +0 -19
- package/public/r/comp-275.json +0 -19
- package/public/r/comp-276.json +0 -19
- package/public/r/comp-277.json +0 -21
- package/public/r/comp-278.json +0 -21
- package/public/r/comp-279.json +0 -23
- package/public/r/comp-28.json +0 -24
- package/public/r/comp-280.json +0 -23
- package/public/r/comp-281.json +0 -23
- package/public/r/comp-282.json +0 -23
- package/public/r/comp-283.json +0 -23
- package/public/r/comp-284.json +0 -23
- package/public/r/comp-285.json +0 -23
- package/public/r/comp-286.json +0 -23
- package/public/r/comp-287.json +0 -24
- package/public/r/comp-288.json +0 -23
- package/public/r/comp-289.json +0 -24
- package/public/r/comp-29.json +0 -24
- package/public/r/comp-290.json +0 -24
- package/public/r/comp-291.json +0 -24
- package/public/r/comp-292.json +0 -24
- package/public/r/comp-293.json +0 -26
- package/public/r/comp-294.json +0 -24
- package/public/r/comp-295.json +0 -23
- package/public/r/comp-296.json +0 -23
- package/public/r/comp-297.json +0 -30
- package/public/r/comp-298.json +0 -26
- package/public/r/comp-299.json +0 -28
- package/public/r/comp-30.json +0 -23
- package/public/r/comp-300.json +0 -29
- package/public/r/comp-301.json +0 -24
- package/public/r/comp-302.json +0 -18
- package/public/r/comp-303.json +0 -18
- package/public/r/comp-304.json +0 -18
- package/public/r/comp-305.json +0 -21
- package/public/r/comp-306.json +0 -21
- package/public/r/comp-307.json +0 -21
- package/public/r/comp-308.json +0 -21
- package/public/r/comp-309.json +0 -21
- package/public/r/comp-31.json +0 -21
- package/public/r/comp-310.json +0 -23
- package/public/r/comp-311.json +0 -20
- package/public/r/comp-312.json +0 -21
- package/public/r/comp-313.json +0 -26
- package/public/r/comp-314.json +0 -26
- package/public/r/comp-315.json +0 -24
- package/public/r/comp-316.json +0 -25
- package/public/r/comp-317.json +0 -24
- package/public/r/comp-318.json +0 -24
- package/public/r/comp-319.json +0 -24
- package/public/r/comp-32.json +0 -21
- package/public/r/comp-320.json +0 -27
- package/public/r/comp-321.json +0 -28
- package/public/r/comp-322.json +0 -27
- package/public/r/comp-323.json +0 -30
- package/public/r/comp-324.json +0 -28
- package/public/r/comp-325.json +0 -29
- package/public/r/comp-326.json +0 -30
- package/public/r/comp-327.json +0 -30
- package/public/r/comp-328.json +0 -37
- package/public/r/comp-329.json +0 -38
- package/public/r/comp-33.json +0 -18
- package/public/r/comp-330.json +0 -27
- package/public/r/comp-331.json +0 -42
- package/public/r/comp-332.json +0 -25
- package/public/r/comp-333.json +0 -29
- package/public/r/comp-334.json +0 -22
- package/public/r/comp-335.json +0 -22
- package/public/r/comp-336.json +0 -22
- package/public/r/comp-337.json +0 -22
- package/public/r/comp-338.json +0 -22
- package/public/r/comp-339.json +0 -22
- package/public/r/comp-34.json +0 -27
- package/public/r/comp-340.json +0 -22
- package/public/r/comp-341.json +0 -22
- package/public/r/comp-342.json +0 -22
- package/public/r/comp-343.json +0 -22
- package/public/r/comp-344.json +0 -22
- package/public/r/comp-345.json +0 -22
- package/public/r/comp-346.json +0 -22
- package/public/r/comp-347.json +0 -22
- package/public/r/comp-348.json +0 -22
- package/public/r/comp-349.json +0 -22
- package/public/r/comp-35.json +0 -27
- package/public/r/comp-350.json +0 -22
- package/public/r/comp-351.json +0 -22
- package/public/r/comp-352.json +0 -24
- package/public/r/comp-353.json +0 -24
- package/public/r/comp-354.json +0 -23
- package/public/r/comp-355.json +0 -23
- package/public/r/comp-356.json +0 -23
- package/public/r/comp-357.json +0 -23
- package/public/r/comp-358.json +0 -23
- package/public/r/comp-359.json +0 -24
- package/public/r/comp-36.json +0 -26
- package/public/r/comp-360.json +0 -25
- package/public/r/comp-361.json +0 -23
- package/public/r/comp-362.json +0 -24
- package/public/r/comp-363.json +0 -27
- package/public/r/comp-364.json +0 -26
- package/public/r/comp-365.json +0 -24
- package/public/r/comp-366.json +0 -23
- package/public/r/comp-367.json +0 -23
- package/public/r/comp-368.json +0 -23
- package/public/r/comp-369.json +0 -23
- package/public/r/comp-37.json +0 -23
- package/public/r/comp-370.json +0 -23
- package/public/r/comp-371.json +0 -24
- package/public/r/comp-372.json +0 -24
- package/public/r/comp-373.json +0 -25
- package/public/r/comp-374.json +0 -26
- package/public/r/comp-375.json +0 -25
- package/public/r/comp-376.json +0 -26
- package/public/r/comp-377.json +0 -27
- package/public/r/comp-378.json +0 -24
- package/public/r/comp-379.json +0 -24
- package/public/r/comp-38.json +0 -23
- package/public/r/comp-380.json +0 -24
- package/public/r/comp-381.json +0 -26
- package/public/r/comp-382.json +0 -25
- package/public/r/comp-383.json +0 -26
- package/public/r/comp-384.json +0 -24
- package/public/r/comp-385.json +0 -24
- package/public/r/comp-386.json +0 -24
- package/public/r/comp-387.json +0 -28
- package/public/r/comp-388.json +0 -26
- package/public/r/comp-389.json +0 -24
- package/public/r/comp-39.json +0 -23
- package/public/r/comp-390.json +0 -23
- package/public/r/comp-391.json +0 -23
- package/public/r/comp-392.json +0 -23
- package/public/r/comp-393.json +0 -23
- package/public/r/comp-394.json +0 -24
- package/public/r/comp-395.json +0 -24
- package/public/r/comp-396.json +0 -24
- package/public/r/comp-397.json +0 -25
- package/public/r/comp-398.json +0 -26
- package/public/r/comp-399.json +0 -26
- package/public/r/comp-40.json +0 -23
- package/public/r/comp-400.json +0 -20
- package/public/r/comp-401.json +0 -19
- package/public/r/comp-402.json +0 -19
- package/public/r/comp-403.json +0 -19
- package/public/r/comp-404.json +0 -19
- package/public/r/comp-405.json +0 -19
- package/public/r/comp-406.json +0 -19
- package/public/r/comp-407.json +0 -19
- package/public/r/comp-408.json +0 -19
- package/public/r/comp-409.json +0 -22
- package/public/r/comp-41.json +0 -29
- package/public/r/comp-410.json +0 -22
- package/public/r/comp-411.json +0 -22
- package/public/r/comp-412.json +0 -19
- package/public/r/comp-413.json +0 -22
- package/public/r/comp-414.json +0 -22
- package/public/r/comp-415.json +0 -22
- package/public/r/comp-416.json +0 -23
- package/public/r/comp-417.json +0 -22
- package/public/r/comp-418.json +0 -23
- package/public/r/comp-419.json +0 -23
- package/public/r/comp-42.json +0 -30
- package/public/r/comp-420.json +0 -23
- package/public/r/comp-421.json +0 -23
- package/public/r/comp-422.json +0 -23
- package/public/r/comp-423.json +0 -24
- package/public/r/comp-424.json +0 -22
- package/public/r/comp-425.json +0 -23
- package/public/r/comp-426.json +0 -23
- package/public/r/comp-427.json +0 -23
- package/public/r/comp-428.json +0 -23
- package/public/r/comp-429.json +0 -23
- package/public/r/comp-43.json +0 -32
- package/public/r/comp-430.json +0 -23
- package/public/r/comp-431.json +0 -23
- package/public/r/comp-432.json +0 -23
- package/public/r/comp-433.json +0 -24
- package/public/r/comp-434.json +0 -24
- package/public/r/comp-435.json +0 -24
- package/public/r/comp-436.json +0 -24
- package/public/r/comp-437.json +0 -25
- package/public/r/comp-438.json +0 -23
- package/public/r/comp-439.json +0 -24
- package/public/r/comp-44.json +0 -25
- package/public/r/comp-440.json +0 -25
- package/public/r/comp-441.json +0 -25
- package/public/r/comp-442.json +0 -24
- package/public/r/comp-443.json +0 -24
- package/public/r/comp-444.json +0 -24
- package/public/r/comp-445.json +0 -24
- package/public/r/comp-446.json +0 -24
- package/public/r/comp-447.json +0 -25
- package/public/r/comp-448.json +0 -23
- package/public/r/comp-449.json +0 -23
- package/public/r/comp-45.json +0 -25
- package/public/r/comp-450.json +0 -23
- package/public/r/comp-451.json +0 -23
- package/public/r/comp-452.json +0 -23
- package/public/r/comp-453.json +0 -25
- package/public/r/comp-454.json +0 -22
- package/public/r/comp-455.json +0 -22
- package/public/r/comp-456.json +0 -22
- package/public/r/comp-457.json +0 -21
- package/public/r/comp-458.json +0 -22
- package/public/r/comp-459.json +0 -26
- package/public/r/comp-46.json +0 -26
- package/public/r/comp-460.json +0 -26
- package/public/r/comp-461.json +0 -27
- package/public/r/comp-462.json +0 -27
- package/public/r/comp-463.json +0 -30
- package/public/r/comp-464.json +0 -29
- package/public/r/comp-465.json +0 -29
- package/public/r/comp-466.json +0 -21
- package/public/r/comp-467.json +0 -23
- package/public/r/comp-468.json +0 -21
- package/public/r/comp-469.json +0 -21
- package/public/r/comp-47.json +0 -32
- package/public/r/comp-470.json +0 -21
- package/public/r/comp-471.json +0 -21
- package/public/r/comp-472.json +0 -23
- package/public/r/comp-473.json +0 -24
- package/public/r/comp-474.json +0 -22
- package/public/r/comp-475.json +0 -22
- package/public/r/comp-476.json +0 -21
- package/public/r/comp-477.json +0 -31
- package/public/r/comp-478.json +0 -36
- package/public/r/comp-479.json +0 -28
- package/public/r/comp-48.json +0 -32
- package/public/r/comp-480.json +0 -30
- package/public/r/comp-481.json +0 -34
- package/public/r/comp-482.json +0 -33
- package/public/r/comp-483.json +0 -37
- package/public/r/comp-484.json +0 -41
- package/public/r/comp-485.json +0 -43
- package/public/r/comp-486.json +0 -23
- package/public/r/comp-487.json +0 -26
- package/public/r/comp-488.json +0 -27
- package/public/r/comp-489.json +0 -28
- package/public/r/comp-49.json +0 -32
- package/public/r/comp-490.json +0 -23
- package/public/r/comp-491.json +0 -24
- package/public/r/comp-492.json +0 -25
- package/public/r/comp-493.json +0 -23
- package/public/r/comp-494.json +0 -23
- package/public/r/comp-495.json +0 -24
- package/public/r/comp-496.json +0 -23
- package/public/r/comp-497.json +0 -24
- package/public/r/comp-498.json +0 -24
- package/public/r/comp-499.json +0 -24
- package/public/r/comp-50.json +0 -32
- package/public/r/comp-500.json +0 -25
- package/public/r/comp-501.json +0 -25
- package/public/r/comp-502.json +0 -26
- package/public/r/comp-503.json +0 -27
- package/public/r/comp-504.json +0 -28
- package/public/r/comp-505.json +0 -28
- package/public/r/comp-506.json +0 -26
- package/public/r/comp-507.json +0 -27
- package/public/r/comp-508.json +0 -25
- package/public/r/comp-509.json +0 -25
- package/public/r/comp-51.json +0 -23
- package/public/r/comp-510.json +0 -24
- package/public/r/comp-511.json +0 -27
- package/public/r/comp-512.json +0 -27
- package/public/r/comp-513.json +0 -21
- package/public/r/comp-514.json +0 -21
- package/public/r/comp-515.json +0 -21
- package/public/r/comp-516.json +0 -22
- package/public/r/comp-517.json +0 -22
- package/public/r/comp-518.json +0 -21
- package/public/r/comp-519.json +0 -21
- package/public/r/comp-52.json +0 -23
- package/public/r/comp-520.json +0 -22
- package/public/r/comp-521.json +0 -22
- package/public/r/comp-522.json +0 -21
- package/public/r/comp-523.json +0 -21
- package/public/r/comp-524.json +0 -21
- package/public/r/comp-525.json +0 -21
- package/public/r/comp-526.json +0 -22
- package/public/r/comp-527.json +0 -23
- package/public/r/comp-528.json +0 -22
- package/public/r/comp-529.json +0 -22
- package/public/r/comp-53.json +0 -24
- package/public/r/comp-530.json +0 -22
- package/public/r/comp-531.json +0 -22
- package/public/r/comp-532.json +0 -22
- package/public/r/comp-533.json +0 -22
- package/public/r/comp-534.json +0 -22
- package/public/r/comp-535.json +0 -22
- package/public/r/comp-536.json +0 -22
- package/public/r/comp-537.json +0 -22
- package/public/r/comp-538.json +0 -22
- package/public/r/comp-539.json +0 -22
- package/public/r/comp-54.json +0 -26
- package/public/r/comp-540.json +0 -21
- package/public/r/comp-541.json +0 -21
- package/public/r/comp-542.json +0 -124
- package/public/r/comp-543.json +0 -29
- package/public/r/comp-544.json +0 -26
- package/public/r/comp-545.json +0 -29
- package/public/r/comp-546.json +0 -29
- package/public/r/comp-547.json +0 -29
- package/public/r/comp-548.json +0 -29
- package/public/r/comp-549.json +0 -29
- package/public/r/comp-55.json +0 -27
- package/public/r/comp-550.json +0 -29
- package/public/r/comp-551.json +0 -30
- package/public/r/comp-552.json +0 -29
- package/public/r/comp-553.json +0 -29
- package/public/r/comp-554.json +0 -36
- package/public/r/comp-555.json +0 -23
- package/public/r/comp-556.json +0 -23
- package/public/r/comp-557.json +0 -23
- package/public/r/comp-558.json +0 -23
- package/public/r/comp-559.json +0 -23
- package/public/r/comp-56.json +0 -26
- package/public/r/comp-560.json +0 -23
- package/public/r/comp-561.json +0 -25
- package/public/r/comp-562.json +0 -23
- package/public/r/comp-563.json +0 -23
- package/public/r/comp-564.json +0 -24
- package/public/r/comp-565.json +0 -20
- package/public/r/comp-566.json +0 -20
- package/public/r/comp-567.json +0 -20
- package/public/r/comp-568.json +0 -20
- package/public/r/comp-569.json +0 -20
- package/public/r/comp-57.json +0 -26
- package/public/r/comp-570.json +0 -20
- package/public/r/comp-571.json +0 -23
- package/public/r/comp-572.json +0 -23
- package/public/r/comp-573.json +0 -20
- package/public/r/comp-574.json +0 -22
- package/public/r/comp-575.json +0 -20
- package/public/r/comp-576.json +0 -21
- package/public/r/comp-577.json +0 -23
- package/public/r/comp-578.json +0 -28
- package/public/r/comp-579.json +0 -28
- package/public/r/comp-58.json +0 -25
- package/public/r/comp-580.json +0 -29
- package/public/r/comp-581.json +0 -45
- package/public/r/comp-582.json +0 -42
- package/public/r/comp-583.json +0 -41
- package/public/r/comp-584.json +0 -41
- package/public/r/comp-585.json +0 -41
- package/public/r/comp-586.json +0 -34
- package/public/r/comp-587.json +0 -29
- package/public/r/comp-588.json +0 -33
- package/public/r/comp-589.json +0 -37
- package/public/r/comp-59.json +0 -22
- package/public/r/comp-590.json +0 -40
- package/public/r/comp-591.json +0 -29
- package/public/r/comp-592.json +0 -41
- package/public/r/comp-593.json +0 -36
- package/public/r/comp-594.json +0 -33
- package/public/r/comp-595.json +0 -22
- package/public/r/comp-596.json +0 -26
- package/public/r/comp-597.json +0 -22
- package/public/r/comp-598.json +0 -22
- package/public/r/comp-599.json +0 -22
- package/public/r/comp-60.json +0 -23
- package/public/r/comp-600.json +0 -17
- package/public/r/comp-601.json +0 -20
- package/public/r/comp-602.json +0 -17
- package/public/r/comp-603.json +0 -20
- package/public/r/comp-604.json +0 -17
- package/public/r/comp-605.json +0 -17
- package/public/r/comp-606.json +0 -20
- package/public/r/comp-607.json +0 -20
- package/public/r/comp-608.json +0 -20
- package/public/r/comp-609.json +0 -20
- package/public/r/comp-61.json +0 -23
- package/public/r/comp-610.json +0 -23
- package/public/r/comp-611.json +0 -23
- package/public/r/comp-612.json +0 -17
- package/public/r/comp-613.json +0 -20
- package/public/r/comp-614.json +0 -17
- package/public/r/comp-615.json +0 -26
- package/public/r/comp-616.json +0 -26
- package/public/r/comp-617.json +0 -26
- package/public/r/comp-62.json +0 -23
- package/public/r/comp-63.json +0 -22
- package/public/r/comp-64.json +0 -23
- package/public/r/comp-65.json +0 -22
- package/public/r/comp-66.json +0 -22
- package/public/r/comp-67.json +0 -23
- package/public/r/comp-68.json +0 -24
- package/public/r/comp-69.json +0 -24
- package/public/r/comp-70.json +0 -24
- package/public/r/comp-71.json +0 -22
- package/public/r/comp-72.json +0 -21
- package/public/r/comp-73.json +0 -18
- package/public/r/comp-74.json +0 -27
- package/public/r/comp-75.json +0 -22
- package/public/r/comp-76.json +0 -23
- package/public/r/comp-77.json +0 -22
- package/public/r/comp-78.json +0 -21
- package/public/r/comp-79.json +0 -22
- package/public/r/comp-80.json +0 -21
- package/public/r/comp-81.json +0 -21
- package/public/r/comp-82.json +0 -22
- package/public/r/comp-83.json +0 -21
- package/public/r/comp-84.json +0 -21
- package/public/r/comp-85.json +0 -22
- package/public/r/comp-86.json +0 -22
- package/public/r/comp-87.json +0 -21
- package/public/r/comp-88.json +0 -22
- package/public/r/comp-89.json +0 -21
- package/public/r/comp-90.json +0 -22
- package/public/r/comp-91.json +0 -22
- package/public/r/comp-92.json +0 -22
- package/public/r/comp-93.json +0 -22
- package/public/r/comp-94.json +0 -24
- package/public/r/comp-95.json +0 -26
- package/public/r/comp-96.json +0 -21
- package/public/r/comp-97.json +0 -21
- package/public/r/comp-98.json +0 -22
- package/public/r/comp-99.json +0 -23
- package/public/r/comparison-event-handlers.json +0 -22
- package/public/r/comparison-hover.json +0 -22
- package/public/r/comparison.json +0 -21
- package/public/r/context-menu.json +0 -16
- package/public/r/contribution-graph-custom-blocks.json +0 -23
- package/public/r/contribution-graph-custom-footer.json +0 -23
- package/public/r/contribution-graph-custom-theme.json +0 -23
- package/public/r/contribution-graph-minimal.json +0 -22
- package/public/r/contribution-graph-size.json +0 -23
- package/public/r/contribution-graph-tooltip.json +0 -23
- package/public/r/contribution-graph.json +0 -22
- package/public/r/credit-card-apple.json +0 -20
- package/public/r/credit-card-back.json +0 -20
- package/public/r/credit-card.json +0 -20
- package/public/r/cropper.json +0 -15
- package/public/r/cursor-color.json +0 -20
- package/public/r/cursor-message.json +0 -20
- package/public/r/cursor-name-message.json +0 -21
- package/public/r/cursor-name.json +0 -20
- package/public/r/cursor-only.json +0 -19
- package/public/r/cursor.json +0 -20
- package/public/r/dashboard-1.json +0 -263
- package/public/r/dashboard-2.json +0 -264
- package/public/r/dashboard-3.json +0 -225
- package/public/r/datefield-rac.json +0 -15
- package/public/r/deck-controlled.json +0 -22
- package/public/r/deck-product-cards.json +0 -22
- package/public/r/deck.json +0 -20
- package/public/r/dialog-close-confirmation.json +0 -29
- package/public/r/dialog-demo.json +0 -25
- package/public/r/dialog-from-menu.json +0 -23
- package/public/r/dialog-nested.json +0 -23
- package/public/r/dialog-stack-controlled.json +0 -22
- package/public/r/dialog-stack-navigation.json +0 -22
- package/public/r/dialog-stack-six.json +0 -22
- package/public/r/dialog-stack.json +0 -22
- package/public/r/dialog.json +0 -15
- package/public/r/dropdown-menu.json +0 -15
- package/public/r/dropzone-accept.json +0 -20
- package/public/r/dropzone-custom-empty-state.json +0 -21
- package/public/r/dropzone-image-preview.json +0 -21
- package/public/r/dropzone-min-max.json +0 -20
- package/public/r/dropzone-multiple.json +0 -21
- package/public/r/dropzone.json +0 -21
- package/public/r/editor.json +0 -21
- package/public/r/emails.json +0 -243
- package/public/r/empty-demo.json +0 -20
- package/public/r/empty.json +0 -12
- package/public/r/ether.json +0 -15
- package/public/r/example-app-calendar.json +0 -323
- package/public/r/field-2.json +0 -19
- package/public/r/field-autocomplete.json +0 -23
- package/public/r/field-checkbox-group.json +0 -26
- package/public/r/field-checkbox.json +0 -22
- package/public/r/field-combobox-multiple.json +0 -24
- package/public/r/field-combobox.json +0 -23
- package/public/r/field-complete-form.json +0 -30
- package/public/r/field-demo.json +0 -22
- package/public/r/field-disabled.json +0 -23
- package/public/r/field-error.json +0 -21
- package/public/r/field-number-field.json +0 -25
- package/public/r/field-radio.json +0 -26
- package/public/r/field-required.json +0 -21
- package/public/r/field-select.json +0 -24
- package/public/r/field-slider.json +0 -24
- package/public/r/field-switch.json +0 -22
- package/public/r/field-textarea.json +0 -24
- package/public/r/field-validity.json +0 -19
- package/public/r/field.json +0 -23
- package/public/r/fieldset-demo.json +0 -24
- package/public/r/fieldset.json +0 -15
- package/public/r/files.json +0 -195
- package/public/r/form-demo.json +0 -24
- package/public/r/form-zod.json +0 -29
- package/public/r/form.json +0 -20
- package/public/r/frame-demo.json +0 -19
- package/public/r/frame.json +0 -12
- package/public/r/gantt-lanes.json +0 -23
- package/public/r/gantt-no-sidebar.json +0 -22
- package/public/r/gantt-read-only.json +0 -22
- package/public/r/gantt.json +0 -22
- package/public/r/glimpse-custom.json +0 -21
- package/public/r/glimpse.json +0 -20
- package/public/r/gooey-toast-demo.json +0 -23
- package/public/r/gooey-toast-position.json +0 -20
- package/public/r/gooey-toast-promise.json +0 -20
- package/public/r/gooey-toast-states.json +0 -20
- package/public/r/gooey-toast-with-button.json +0 -20
- package/public/r/gradient-blinds.json +0 -15
- package/public/r/group-demo.json +0 -20
- package/public/r/group-with-input.json +0 -21
- package/public/r/group.json +0 -18
- package/public/r/hero.json +0 -24
- package/public/r/hover-card.json +0 -15
- package/public/r/image-crop-circular.json +0 -23
- package/public/r/image-crop-custom.json +0 -24
- package/public/r/image-crop.json +0 -23
- package/public/r/image-zoom-background.json +0 -22
- package/public/r/image-zoom-margin.json +0 -21
- package/public/r/image-zoom.json +0 -21
- package/public/r/input-demo.json +0 -19
- package/public/r/input-disabled.json +0 -20
- package/public/r/input-file.json +0 -20
- package/public/r/input-group.json +0 -20
- package/public/r/input-lg.json +0 -19
- package/public/r/input-sm.json +0 -19
- package/public/r/input-with-button.json +0 -21
- package/public/r/input-with-label.json +0 -21
- package/public/r/input.json +0 -15
- package/public/r/kanban-simple.json +0 -21
- package/public/r/kanban.json +0 -21
- package/public/r/kbd.json +0 -12
- package/public/r/label.json +0 -15
- package/public/r/leads.json +0 -271
- package/public/r/list-simple.json +0 -21
- package/public/r/list.json +0 -21
- package/public/r/maps.json +0 -188
- package/public/r/marquee-no-fade.json +0 -20
- package/public/r/marquee-raw.json +0 -21
- package/public/r/marquee-spacing.json +0 -21
- package/public/r/marquee.json +0 -20
- package/public/r/menu-checkbox.json +0 -21
- package/public/r/menu-close-on-click.json +0 -20
- package/public/r/menu-demo.json +0 -20
- package/public/r/menu-group-labels.json +0 -21
- package/public/r/menu-hover.json +0 -20
- package/public/r/menu-link.json +0 -21
- package/public/r/menu-nested.json +0 -20
- package/public/r/menu-radio-group.json +0 -21
- package/public/r/menu.json +0 -23
- package/public/r/meter-demo.json +0 -19
- package/public/r/meter-simple.json +0 -19
- package/public/r/meter-with-formatted-value.json +0 -19
- package/public/r/meter-with-range.json +0 -19
- package/public/r/meter.json +0 -15
- package/public/r/mini-calendar-controlled.json +0 -21
- package/public/r/mini-calendar-custom.json +0 -21
- package/public/r/mini-calendar-days.json +0 -20
- package/public/r/mini-calendar.json +0 -20
- package/public/r/multiselect.json +0 -15
- package/public/r/navigation-menu.json +0 -12
- package/public/r/number-field-demo.json +0 -19
- package/public/r/number-field-disabled.json +0 -21
- package/public/r/number-field-form.json +0 -25
- package/public/r/number-field-lg.json +0 -19
- package/public/r/number-field-sm.json +0 -19
- package/public/r/number-field-with-formatted-value.json +0 -19
- package/public/r/number-field-with-label.json +0 -24
- package/public/r/number-field-with-range.json +0 -20
- package/public/r/number-field-with-scrub.json +0 -19
- package/public/r/number-field-with-step.json +0 -19
- package/public/r/number-field.json +0 -15
- package/public/r/pagination-demo.json +0 -19
- package/public/r/pagination.json +0 -18
- package/public/r/particle-bu-1.json +0 -22
- package/public/r/particle-bu-2.json +0 -22
- package/public/r/particle-bu-3.json +0 -22
- package/public/r/particle-bu-4.json +0 -22
- package/public/r/particle-bu-5.json +0 -22
- package/public/r/particle-bu-6.json +0 -22
- package/public/r/particle-bu-7.json +0 -22
- package/public/r/particle-fr-1.json +0 -25
- package/public/r/particle-pa-1.json +0 -19
- package/public/r/particle-pa-2.json +0 -21
- package/public/r/pill-avatar-group.json +0 -21
- package/public/r/pill-avatar.json +0 -21
- package/public/r/pill-button.json +0 -20
- package/public/r/pill-delta.json +0 -21
- package/public/r/pill-icon.json +0 -21
- package/public/r/pill-indicator.json +0 -20
- package/public/r/pill-status.json +0 -21
- package/public/r/pill.json +0 -20
- package/public/r/popover-demo.json +0 -27
- package/public/r/popover-with-close.json +0 -21
- package/public/r/popover.json +0 -15
- package/public/r/preview-card-demo.json +0 -21
- package/public/r/preview-card.json +0 -15
- package/public/r/pricing.json +0 -24
- package/public/r/progress-demo.json +0 -19
- package/public/r/progress-with-formatted-value.json +0 -19
- package/public/r/progress-with-label-value.json +0 -20
- package/public/r/progress.json +0 -15
- package/public/r/qr-code-robust.json +0 -21
- package/public/r/qr-code-server.json +0 -21
- package/public/r/qr-code-styling.json +0 -21
- package/public/r/qr-code.json +0 -20
- package/public/r/radio-group-card.json +0 -21
- package/public/r/radio-group-demo.json +0 -21
- package/public/r/radio-group-disabled.json +0 -21
- package/public/r/radio-group-form.json +0 -27
- package/public/r/radio-group-with-description.json +0 -23
- package/public/r/radio-group.json +0 -15
- package/public/r/rating-colors.json +0 -21
- package/public/r/rating-controlled.json +0 -21
- package/public/r/rating-icon.json +0 -21
- package/public/r/rating-size.json +0 -20
- package/public/r/rating.json +0 -20
- package/public/r/reel-custom.json +0 -22
- package/public/r/reel-images.json +0 -21
- package/public/r/reel-minimal.json +0 -20
- package/public/r/reel.json +0 -21
- package/public/r/registry.json +0 -26204
- package/public/r/relative-time-controlled.json +0 -21
- package/public/r/relative-time-format-date.json +0 -20
- package/public/r/relative-time-format-time.json +0 -20
- package/public/r/relative-time.json +0 -20
- package/public/r/rentals.json +0 -187
- package/public/r/roadmap.json +0 -28
- package/public/r/sandbox-no-file-explorer.json +0 -21
- package/public/r/sandbox.json +0 -21
- package/public/r/scroll-area-both.json +0 -19
- package/public/r/scroll-area-demo.json +0 -19
- package/public/r/scroll-area-horizontal.json +0 -19
- package/public/r/scroll-area.json +0 -15
- package/public/r/select-demo.json +0 -19
- package/public/r/select-disabled.json +0 -20
- package/public/r/select-form.json +0 -26
- package/public/r/select-lg.json +0 -19
- package/public/r/select-multiple.json +0 -19
- package/public/r/select-native.json +0 -12
- package/public/r/select-sm.json +0 -19
- package/public/r/select-with-groups.json +0 -19
- package/public/r/select-without-alignment.json +0 -19
- package/public/r/select.json +0 -15
- package/public/r/separator-demo.json +0 -19
- package/public/r/separator.json +0 -15
- package/public/r/sheet-demo.json +0 -23
- package/public/r/sheet-position.json +0 -20
- package/public/r/sheet.json +0 -18
- package/public/r/sidebar-nav.json +0 -22
- package/public/r/silk.json +0 -16
- package/public/r/skeleton-demo.json +0 -21
- package/public/r/skeleton-only.json +0 -19
- package/public/r/skeleton.json +0 -24
- package/public/r/slider-demo.json +0 -19
- package/public/r/slider-form.json +0 -27
- package/public/r/slider-range.json +0 -20
- package/public/r/slider-vertical.json +0 -20
- package/public/r/slider-with-label-value.json +0 -21
- package/public/r/slider.json +0 -15
- package/public/r/snippet-npm.json +0 -22
- package/public/r/snippet.json +0 -21
- package/public/r/sonner.json +0 -16
- package/public/r/spinner-customization.json +0 -21
- package/public/r/spinner-variants.json +0 -21
- package/public/r/spinner.json +0 -20
- package/public/r/stats-card.json +0 -22
- package/public/r/status-custom.json +0 -21
- package/public/r/status.json +0 -20
- package/public/r/stepper.json +0 -15
- package/public/r/stories-avatars.json +0 -21
- package/public/r/stories-images.json +0 -21
- package/public/r/stories.json +0 -21
- package/public/r/switch-card.json +0 -22
- package/public/r/switch-demo.json +0 -21
- package/public/r/switch-disabled.json +0 -22
- package/public/r/switch-form.json +0 -25
- package/public/r/switch-with-description.json +0 -23
- package/public/r/switch.json +0 -15
- package/public/r/table-demo.json +0 -21
- package/public/r/table-framed.json +0 -23
- package/public/r/table-simple.json +0 -21
- package/public/r/table.json +0 -21
- package/public/r/tabs-demo.json +0 -19
- package/public/r/tabs-underline-vertical.json +0 -20
- package/public/r/tabs-underline.json +0 -19
- package/public/r/tabs-vertical.json +0 -20
- package/public/r/tabs.json +0 -15
- package/public/r/tags-create.json +0 -21
- package/public/r/tags-filter.json +0 -21
- package/public/r/tags.json +0 -20
- package/public/r/template-auth-eight.json +0 -28
- package/public/r/template-auth-five.json +0 -28
- package/public/r/template-auth-four.json +0 -29
- package/public/r/template-auth-nine.json +0 -28
- package/public/r/template-auth-one.json +0 -49
- package/public/r/template-auth-seven.json +0 -29
- package/public/r/template-auth-six.json +0 -28
- package/public/r/template-auth-three.json +0 -49
- package/public/r/template-auth-two.json +0 -44
- package/public/r/template-hero-eight.json +0 -83
- package/public/r/template-hero-eleven.json +0 -29
- package/public/r/template-hero-five.json +0 -35
- package/public/r/template-hero-four.json +0 -35
- package/public/r/template-hero-fourteen.json +0 -101
- package/public/r/template-hero-nine.json +0 -74
- package/public/r/template-hero-one.json +0 -90
- package/public/r/template-hero-seven.json +0 -83
- package/public/r/template-hero-six.json +0 -83
- package/public/r/template-hero-ten.json +0 -77
- package/public/r/template-hero-thirteen.json +0 -101
- package/public/r/template-hero-three.json +0 -35
- package/public/r/template-hero-twelve.json +0 -30
- package/public/r/template-hero-two.json +0 -96
- package/public/r/template-logo-cloud-five.json +0 -68
- package/public/r/template-logo-cloud-four.json +0 -71
- package/public/r/template-logo-cloud-one.json +0 -89
- package/public/r/template-logo-cloud-three.json +0 -71
- package/public/r/template-logo-cloud-two.json +0 -74
- package/public/r/textarea-demo.json +0 -19
- package/public/r/textarea-disabled.json +0 -20
- package/public/r/textarea-form.json +0 -25
- package/public/r/textarea-lg.json +0 -19
- package/public/r/textarea-sm.json +0 -19
- package/public/r/textarea-with-label.json +0 -22
- package/public/r/textarea.json +0 -15
- package/public/r/theme-switcher-uncontrolled.json +0 -21
- package/public/r/theme-switcher.json +0 -21
- package/public/r/ticker-currency.json +0 -20
- package/public/r/ticker-inline.json +0 -20
- package/public/r/ticker-percent.json +0 -20
- package/public/r/ticker.json +0 -20
- package/public/r/timeline.json +0 -15
- package/public/r/toast-demo.json +0 -20
- package/public/r/toast-heights.json +0 -19
- package/public/r/toast-loading.json +0 -21
- package/public/r/toast-promise.json +0 -20
- package/public/r/toast-with-action.json +0 -20
- package/public/r/toast-with-status.json +0 -20
- package/public/r/toast.json +0 -18
- package/public/r/toggle-demo.json +0 -19
- package/public/r/toggle-disabled.json +0 -20
- package/public/r/toggle-group-demo.json +0 -20
- package/public/r/toggle-group-disabled.json +0 -21
- package/public/r/toggle-group-lg.json +0 -20
- package/public/r/toggle-group-multiple.json +0 -20
- package/public/r/toggle-group-outline-with-separator.json +0 -20
- package/public/r/toggle-group-outline.json +0 -20
- package/public/r/toggle-group-sm.json +0 -20
- package/public/r/toggle-group-with-disabled-item.json +0 -21
- package/public/r/toggle-group.json +0 -19
- package/public/r/toggle-icon-group.json +0 -19
- package/public/r/toggle-lg.json +0 -19
- package/public/r/toggle-outline.json +0 -19
- package/public/r/toggle-sm.json +0 -19
- package/public/r/toggle-with-icon.json +0 -19
- package/public/r/toggle.json +0 -15
- package/public/r/toolbar-demo.json +0 -27
- package/public/r/toolbar.json +0 -15
- package/public/r/tooltip-demo.json +0 -21
- package/public/r/tooltip-grouped.json +0 -22
- package/public/r/tooltip.json +0 -15
- package/public/r/tree-controlled.json +0 -21
- package/public/r/tree-custom-icons.json +0 -21
- package/public/r/tree-no-lines.json +0 -20
- package/public/r/tree-simple.json +0 -20
- package/public/r/tree.json +0 -20
- package/public/r/typography.json +0 -21
- package/public/r/ui.json +0 -57
- package/public/r/use-character-limit.json +0 -12
- package/public/r/use-file-upload.json +0 -12
- package/public/r/use-pagination.json +0 -12
- package/public/r/use-slider-with-input.json +0 -12
- package/public/r/use-toast.json +0 -12
- package/public/r/utils.json +0 -16
- package/public/r/video-player.json +0 -21
- package/tsup.config.ts +0 -11
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "dashboard-2",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Business Dashboard",
|
|
6
|
-
"description": "A business-focused dashboard application with metrics, charts, and data management features",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "registry/example-apps/default/dashboard-2/components/dashboard/content.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "components/example-apps/dashboard-2/components/dashboard/content.tsx",
|
|
12
|
-
"content": "\"use client\"\n\nimport { WelcomeSection } from \"./header\"\nimport { LeadsChart } from \"./leads-chart\"\nimport { LeadsTable } from \"./leads-table\"\nimport { StatsCards } from \"./stats-cards\"\nimport { TopPerformers } from \"./top-performers\"\n\nexport function DashboardContent() {\n return (\n <main className=\"w-full flex-1 space-y-6 overflow-auto bg-background p-4 sm:p-6\">\n <WelcomeSection />\n <StatsCards />\n <div className=\"flex flex-col gap-4 sm:gap-6 lg:flex-row\">\n <LeadsChart />\n <TopPerformers />\n </div>\n <LeadsTable />\n </main>\n )\n}\n"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"path": "registry/example-apps/default/dashboard-2/components/dashboard/header.tsx",
|
|
16
|
-
"type": "registry:component",
|
|
17
|
-
"target": "components/example-apps/dashboard-2/components/dashboard/header.tsx",
|
|
18
|
-
"content": "\"use client\"\n\nimport {\n Add01Icon,\n DashboardSquare01Icon,\n FileAddIcon,\n Link01Icon,\n Mail01Icon,\n Share01Icon,\n SparklesIcon,\n UserAdd01Icon,\n UserGroupIcon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { Avatar, AvatarFallback, AvatarImage } from \"@loveui/ui/ui/avatar\"\nimport { Button } from \"@loveui/ui/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@loveui/ui/ui/menu\"\n\nimport { ThemeToggle } from \"../theme-toggle\"\nimport { SidebarTrigger } from \"../ui/sidebar\"\n\nexport function DashboardHeader() {\n return (\n <header className=\"sticky top-0 z-10 flex w-full items-center justify-between gap-4 border-b bg-card px-4 py-3 sm:px-6\">\n <div className=\"flex items-center gap-3\">\n <SidebarTrigger className=\"-ml-2\" />\n <div className=\"hidden items-center gap-2 text-muted-foreground sm:flex\">\n <HugeiconsIcon icon={DashboardSquare01Icon} className=\"size-4\" />\n <span className=\"text-sm font-medium\">Realty Pipeline</span>\n </div>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <div className=\"hidden items-center lg:flex\">\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <button className=\"mr-3 flex cursor-pointer -space-x-2 transition-opacity hover:opacity-80\">\n <Avatar className=\"size-6 border-2 border-card\">\n <AvatarImage src=\"https://api.dicebear.com/9.x/glass/svg?seed=user1\" />\n <AvatarFallback>U1</AvatarFallback>\n </Avatar>\n <Avatar className=\"size-6 border-2 border-card\">\n <AvatarImage src=\"https://api.dicebear.com/9.x/glass/svg?seed=user2\" />\n <AvatarFallback>U2</AvatarFallback>\n </Avatar>\n <Avatar className=\"size-6 border-2 border-card\">\n <AvatarImage src=\"https://api.dicebear.com/9.x/glass/svg?seed=user3\" />\n <AvatarFallback>U3</AvatarFallback>\n </Avatar>\n <div className=\"flex size-6 items-center justify-center rounded-full border-2 border-card bg-muted\">\n <HugeiconsIcon icon={Add01Icon} className=\"size-3\" />\n </div>\n </button>\n }\n />\n <DropdownMenuContent align=\"end\" className=\"w-52\">\n <DropdownMenuGroup>\n <div className=\"px-2 py-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">\n Team Members\n </p>\n </div>\n <DropdownMenuItem>\n <Avatar className=\"mr-2 size-5\">\n <AvatarImage src=\"https://api.dicebear.com/9.x/glass/svg?seed=user1\" />\n <AvatarFallback>U1</AvatarFallback>\n </Avatar>\n <span>Maya R.</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <Avatar className=\"mr-2 size-5\">\n <AvatarImage src=\"https://api.dicebear.com/9.x/glass/svg?seed=user2\" />\n <AvatarFallback>U2</AvatarFallback>\n </Avatar>\n <span>Jordan F.</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <Avatar className=\"mr-2 size-5\">\n <AvatarImage src=\"https://api.dicebear.com/9.x/glass/svg?seed=user3\" />\n <AvatarFallback>U3</AvatarFallback>\n </Avatar>\n <span>Evan K.</span>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <HugeiconsIcon icon={Mail01Icon} className=\"mr-2 size-4\" />\n <span>Invite by email</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <HugeiconsIcon icon={Link01Icon} className=\"mr-2 size-4\" />\n <span>Copy invite link</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <HugeiconsIcon icon={UserGroupIcon} className=\"mr-2 size-4\" />\n <span>Manage team</span>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n <div className=\"mx-2 h-5 w-px bg-border\" />\n </div>\n\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"hidden h-7 gap-1.5 sm:flex\"\n >\n <HugeiconsIcon icon={SparklesIcon} className=\"size-3.5\" />\n <span className=\"text-sm\">Ask AI</span>\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\">\n <DropdownMenuGroup>\n <DropdownMenuItem>Summarize pipeline risks</DropdownMenuItem>\n <DropdownMenuItem>Flag tour-ready buyers</DropdownMenuItem>\n <DropdownMenuItem>Draft open-house follow-up</DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"hidden h-7 gap-1.5 sm:flex\"\n >\n <HugeiconsIcon icon={Share01Icon} className=\"size-3.5\" />\n <span className=\"text-sm\">Share</span>\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\">\n <DropdownMenuGroup>\n <DropdownMenuItem>Copy listing board link</DropdownMenuItem>\n <DropdownMenuItem>Export weekly market snapshot</DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem>Share with brokerage team</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n\n <ThemeToggle />\n </div>\n </header>\n )\n}\n\nexport function WelcomeSection() {\n return (\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h1 className=\"text-xl font-semibold tracking-tight sm:text-2xl\">\n Good to see you, Connor\n </h1>\n <p className=\"mt-0.5 text-sm text-muted-foreground\">\n Buyer activity is up ahead of this weekend's showings\n </p>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"outline\"\n className=\"h-9 gap-1.5 border-border/50 bg-card hover:bg-card/80\"\n >\n <HugeiconsIcon icon={FileAddIcon} className=\"size-4\" />\n <span className=\"hidden sm:inline\">Add Listing</span>\n </Button>\n <Button className=\"h-9 gap-1.5 border border-border/50 bg-neutral-800 text-white hover:bg-neutral-700\">\n <HugeiconsIcon icon={UserAdd01Icon} className=\"size-4\" />\n <span className=\"hidden sm:inline\">New Buyer</span>\n </Button>\n </div>\n </div>\n )\n}\n"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"path": "registry/example-apps/default/dashboard-2/components/dashboard/leads-chart.tsx",
|
|
22
|
-
"type": "registry:component",
|
|
23
|
-
"target": "components/example-apps/dashboard-2/components/dashboard/leads-chart.tsx",
|
|
24
|
-
"content": "\"use client\"\n\nimport { useMemo, useState } from \"react\"\nimport {\n ArrowDown01Icon,\n Calendar01Icon,\n Settings01Icon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\nimport { useTheme } from \"next-themes\"\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n Line,\n LineChart as RechartsLineChart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\"\n\nimport { Button } from \"@loveui/ui/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"@loveui/ui/ui/menu\"\n\nimport {\n leadsChartDataMonth,\n leadsChartDataQuarter,\n leadsChartDataWeek,\n} from \"../../mock-data/dashboard\"\n\ntype ChartType = \"line\" | \"area\"\ntype Period = \"last_week\" | \"last_month\" | \"last_quarter\"\n\nconst periodLabels: Record<Period, string> = {\n last_week: \"Last Week\",\n last_month: \"Last Month\",\n last_quarter: \"Last Quarter\",\n}\n\nconst lineColors = {\n line1: \"#ec4899\",\n line2: \"#06b6d4\",\n line3: \"#f97316\",\n line4: \"#22c55e\",\n}\n\ninterface CustomTooltipProps {\n active?: boolean\n payload?: Array<{\n value: number\n dataKey: string\n color: string\n }>\n label?: string\n}\n\nfunction CustomTooltip({ active, payload, label }: CustomTooltipProps) {\n if (active && payload && payload.length) {\n return (\n <div className=\"rounded-md border bg-card p-3 shadow-lg\">\n <p className=\"mb-2 text-xs text-muted-foreground\">{label}</p>\n <div className=\"grid grid-cols-2 gap-x-4 gap-y-1\">\n {payload.map((entry, index) => (\n <div key={index} className=\"flex items-center gap-1.5\">\n <span\n className=\"size-2 rounded-full\"\n style={{ backgroundColor: entry.color }}\n />\n <span className=\"text-xs font-medium\">{entry.value}</span>\n </div>\n ))}\n </div>\n </div>\n )\n }\n return null\n}\n\nexport function LeadsChart() {\n const { theme } = useTheme()\n const [chartType, setChartType] = useState<ChartType>(\"line\")\n const [period, setPeriod] = useState<Period>(\"last_month\")\n const [showGrid, setShowGrid] = useState(true)\n const [visibleLines, setVisibleLines] = useState({\n line1: true,\n line2: true,\n line3: true,\n line4: true,\n })\n\n const axisColor = theme === \"dark\" ? \"#71717a\" : \"#868c98\"\n const gridColor = theme === \"dark\" ? \"#3f3f46\" : \"#e2e4e9\"\n\n const chartData = useMemo(() => {\n switch (period) {\n case \"last_week\":\n return leadsChartDataWeek\n case \"last_month\":\n return leadsChartDataMonth\n case \"last_quarter\":\n return leadsChartDataQuarter\n default:\n return leadsChartDataMonth\n }\n }, [period])\n\n const toggleLine = (line: keyof typeof visibleLines) => {\n setVisibleLines((prev) => ({\n ...prev,\n [line]: !prev[line],\n }))\n }\n\n const resetToDefault = () => {\n setChartType(\"line\")\n setPeriod(\"last_month\")\n setShowGrid(true)\n setVisibleLines({\n line1: true,\n line2: true,\n line3: true,\n line4: true,\n })\n }\n\n return (\n <div className=\"flex-1 rounded-lg border bg-card text-card-foreground\">\n <div className=\"flex flex-col gap-3 border-b border-border/50 p-4 sm:flex-row sm:items-center sm:justify-between\">\n <h3 className=\"text-sm font-medium sm:text-base\">\n Buyer Inquiry Trend\n </h3>\n <div className=\"flex items-center gap-2\">\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button variant=\"outline\" size=\"sm\" className=\"h-7 gap-1.5\">\n <HugeiconsIcon icon={Calendar01Icon} className=\"size-3.5\" />\n <span className=\"text-sm\">{periodLabels[period]}</span>\n <HugeiconsIcon icon={ArrowDown01Icon} className=\"size-3\" />\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\">\n <DropdownMenuGroup>\n {(Object.keys(periodLabels) as Period[]).map((p) => (\n <DropdownMenuItem key={p} onClick={() => setPeriod(p)}>\n {periodLabels[p]} {period === p && \"✓\"}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button variant=\"outline\" size=\"icon\" className=\"size-7\">\n <HugeiconsIcon icon={Settings01Icon} className=\"size-3.5\" />\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\" className=\"w-48\">\n <DropdownMenuSub>\n <DropdownMenuSubTrigger>Chart Type</DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n <DropdownMenuGroup>\n <DropdownMenuItem onClick={() => setChartType(\"line\")}>\n Line Chart {chartType === \"line\" && \"✓\"}\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => setChartType(\"area\")}>\n Area Chart {chartType === \"area\" && \"✓\"}\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n <DropdownMenuSeparator />\n <DropdownMenuCheckboxItem\n checked={showGrid}\n onCheckedChange={setShowGrid}\n >\n Show Grid\n </DropdownMenuCheckboxItem>\n <DropdownMenuSeparator />\n <DropdownMenuSub>\n <DropdownMenuSubTrigger>Show Lines</DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n <DropdownMenuGroup>\n {Object.entries(visibleLines).map(([key, value]) => (\n <DropdownMenuCheckboxItem\n key={key}\n checked={value}\n onCheckedChange={() =>\n toggleLine(key as keyof typeof visibleLines)\n }\n >\n <span\n className=\"mr-2 size-2 rounded-full\"\n style={{\n backgroundColor:\n lineColors[key as keyof typeof lineColors],\n }}\n />\n Series {key.replace(\"line\", \"\")}\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuGroup>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={resetToDefault}>\n Reset to Default\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n </div>\n <div className=\"p-4\">\n <div className=\"h-[200px] w-full sm:h-[250px]\">\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n {chartType === \"area\" ? (\n <AreaChart\n data={chartData}\n margin={{ top: 10, right: 10, left: -20, bottom: 0 }}\n >\n {showGrid && (\n <CartesianGrid\n strokeDasharray=\"3 3\"\n stroke={gridColor}\n vertical={false}\n />\n )}\n <XAxis\n dataKey=\"date\"\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 10, fill: axisColor }}\n />\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 10, fill: axisColor }}\n domain={[0, 1000]}\n />\n <Tooltip content={<CustomTooltip />} />\n <defs>\n {Object.entries(lineColors).map(([key, color]) => (\n <linearGradient\n key={key}\n id={`gradient-${key}`}\n x1=\"0\"\n y1=\"0\"\n x2=\"0\"\n y2=\"1\"\n >\n <stop offset=\"0%\" stopColor={color} stopOpacity={0.3} />\n <stop offset=\"100%\" stopColor={color} stopOpacity={0} />\n </linearGradient>\n ))}\n </defs>\n {Object.entries(visibleLines).map(\n ([key, visible]) =>\n visible && (\n <Area\n key={key}\n type=\"monotone\"\n dataKey={key}\n stroke={lineColors[key as keyof typeof lineColors]}\n strokeWidth={2}\n fill={`url(#gradient-${key})`}\n dot={false}\n />\n )\n )}\n </AreaChart>\n ) : (\n <RechartsLineChart\n data={chartData}\n margin={{ top: 10, right: 10, left: -20, bottom: 0 }}\n >\n {showGrid && (\n <CartesianGrid\n strokeDasharray=\"3 3\"\n stroke={gridColor}\n vertical={false}\n />\n )}\n <XAxis\n dataKey=\"date\"\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 10, fill: axisColor }}\n />\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 10, fill: axisColor }}\n domain={[0, 1000]}\n />\n <Tooltip content={<CustomTooltip />} />\n {Object.entries(visibleLines).map(\n ([key, visible]) =>\n visible && (\n <Line\n key={key}\n type=\"monotone\"\n dataKey={key}\n stroke={lineColors[key as keyof typeof lineColors]}\n strokeWidth={2}\n dot={false}\n activeDot={{ r: 4, strokeWidth: 0 }}\n />\n )\n )}\n </RechartsLineChart>\n )}\n </ResponsiveContainer>\n </div>\n </div>\n </div>\n )\n}\n"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"path": "registry/example-apps/default/dashboard-2/components/dashboard/leads-table.tsx",
|
|
28
|
-
"type": "registry:component",
|
|
29
|
-
"target": "components/example-apps/dashboard-2/components/dashboard/leads-table.tsx",
|
|
30
|
-
"content": "\"use client\"\n\nimport { useMemo, useState } from \"react\"\nimport {\n Activity01Icon,\n ArrowDown01Icon,\n ArrowLeft01Icon,\n ArrowLeftDoubleIcon,\n ArrowRight01Icon,\n ArrowRightDoubleIcon,\n ArrowUp01Icon,\n ArrowUpDownIcon,\n CallIcon,\n Cancel01Icon,\n FireIcon,\n FlashIcon,\n Globe02Icon,\n HandPointingRight01Icon,\n Linkedin01Icon,\n Mail01Icon,\n PieChartIcon,\n Search01Icon,\n SlidersHorizontalIcon,\n SnowIcon,\n Target01Icon,\n Tick01Icon,\n Upload01Icon,\n UserIcon,\n UserMultiple02Icon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { Avatar, AvatarFallback, AvatarImage } from \"@loveui/ui/ui/avatar\"\nimport { Button } from \"@loveui/ui/ui/button\"\nimport { Checkbox } from \"@loveui/ui/ui/checkbox\"\nimport { Input } from \"@loveui/ui/ui/input\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@loveui/ui/ui/menu\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@loveui/ui/ui/select\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@loveui/ui/ui/table\"\n\nimport { cn } from \"../../lib/utils\"\nimport {\n leads,\n LeadSource,\n LeadStatus,\n LeadType,\n} from \"../../mock-data/dashboard\"\nimport { useDashboardStore } from \"../../store/dashboard-store\"\n\ntype SortField = \"name\" | \"email\" | \"followUp\" | \"status\" | \"score\"\ntype SortOrder = \"asc\" | \"desc\"\n\nfunction getSortIcon(\n sortField: SortField,\n sortOrder: SortOrder,\n field: SortField\n) {\n if (sortField !== field)\n return <HugeiconsIcon icon={ArrowUpDownIcon} className=\"size-3\" />\n return sortOrder === \"asc\" ? (\n <HugeiconsIcon icon={ArrowUp01Icon} className=\"size-3\" />\n ) : (\n <HugeiconsIcon icon={ArrowDown01Icon} className=\"size-3\" />\n )\n}\n\nfunction TypeBadge({ type }: { type: LeadType }) {\n if (type === \"cold\") {\n return (\n <div\n className=\"flex w-fit items-center gap-1 rounded-lg border border-cyan-500/40 px-2 py-1\"\n style={{\n backgroundImage:\n \"linear-gradient(90deg, rgba(6, 182, 212, 0.12) 0%, rgba(6, 182, 212, 0.06) 30%, rgba(6, 182, 212, 0) 100%), linear-gradient(90deg, hsl(var(--card)) 0%, hsl(var(--card)) 100%)\",\n }}\n >\n <HugeiconsIcon icon={SnowIcon} className=\"size-3.5 text-cyan-400\" />\n <span className=\"text-sm font-medium text-cyan-400\">Cold</span>\n </div>\n )\n }\n\n return (\n <div\n className=\"flex w-fit items-center gap-1 rounded-lg border border-pink-500/40 px-2 py-1\"\n style={{\n backgroundImage:\n \"linear-gradient(90deg, rgba(236, 72, 153, 0.12) 0%, rgba(236, 72, 153, 0.06) 30%, rgba(236, 72, 153, 0) 100%), linear-gradient(90deg, hsl(var(--card)) 0%, hsl(var(--card)) 100%)\",\n }}\n >\n <HugeiconsIcon icon={FireIcon} className=\"size-3.5 text-pink-400\" />\n <span className=\"text-sm font-medium text-pink-400\">Warm</span>\n </div>\n )\n}\n\nfunction StatusBadge({ status }: { status: LeadStatus }) {\n if (status === \"closed\") {\n return (\n <div\n className=\"flex w-fit items-center gap-1 rounded-lg border border-emerald-500/40 px-2 py-1\"\n style={{\n backgroundImage:\n \"linear-gradient(90deg, rgba(16, 185, 129, 0.12) 0%, rgba(16, 185, 129, 0.06) 30%, rgba(16, 185, 129, 0) 100%), linear-gradient(90deg, hsl(var(--card)) 0%, hsl(var(--card)) 100%)\",\n }}\n >\n <HugeiconsIcon\n icon={Tick01Icon}\n className=\"size-3.5 text-emerald-400\"\n />\n <span className=\"text-sm font-medium text-emerald-400\">Closed</span>\n </div>\n )\n }\n\n return (\n <div\n className=\"flex w-fit items-center gap-1 rounded-lg border border-amber-500/40 px-2 py-1\"\n style={{\n backgroundImage:\n \"linear-gradient(90deg, rgba(245, 158, 11, 0.12) 0%, rgba(245, 158, 11, 0.06) 30%, rgba(245, 158, 11, 0) 100%), linear-gradient(90deg, hsl(var(--card)) 0%, hsl(var(--card)) 100%)\",\n }}\n >\n <HugeiconsIcon icon={Cancel01Icon} className=\"size-3.5 text-amber-400\" />\n <span className=\"text-sm font-medium text-amber-400\">Lost</span>\n </div>\n )\n}\n\nfunction ScoreBadge({ score }: { score: number }) {\n const getScoreStyle = () => {\n if (score >= 80)\n return { barClass: \"bg-emerald-500\", textClass: \"text-emerald-400\" }\n if (score >= 50)\n return { barClass: \"bg-cyan-500\", textClass: \"text-cyan-400\" }\n return { barClass: \"bg-amber-500\", textClass: \"text-amber-400\" }\n }\n\n const { barClass, textClass } = getScoreStyle()\n\n return (\n <div className=\"flex items-center gap-2\">\n <div className=\"relative h-1.5 w-12 overflow-hidden rounded-full bg-muted\">\n <div\n className={cn(\n \"absolute inset-y-0 left-0 rounded-full transition-all\",\n barClass\n )}\n style={{ width: `${score}%` }}\n />\n </div>\n <span className={cn(\"min-w-[28px] text-xs font-semibold\", textClass)}>\n {score}\n </span>\n </div>\n )\n}\n\nfunction SourceBadge({ source }: { source: LeadSource }) {\n const sourceConfig: Record<\n LeadSource,\n {\n icon: typeof Linkedin01Icon\n label: string\n bgClass: string\n textClass: string\n }\n > = {\n linkedin: {\n icon: Linkedin01Icon,\n label: \"LinkedIn\",\n bgClass: \"bg-blue-500/10\",\n textClass: \"text-blue-400\",\n },\n google: {\n icon: Search01Icon,\n label: \"Google\",\n bgClass: \"bg-red-500/10\",\n textClass: \"text-red-400\",\n },\n referral: {\n icon: UserMultiple02Icon,\n label: \"Referral\",\n bgClass: \"bg-violet-500/10\",\n textClass: \"text-violet-400\",\n },\n website: {\n icon: Globe02Icon,\n label: \"Website\",\n bgClass: \"bg-cyan-500/10\",\n textClass: \"text-cyan-400\",\n },\n \"cold-call\": {\n icon: CallIcon,\n label: \"Cold Call\",\n bgClass: \"bg-orange-500/10\",\n textClass: \"text-orange-400\",\n },\n }\n\n const config = sourceConfig[source]\n\n return (\n <div\n className={cn(\n \"flex w-fit items-center gap-1.5 rounded-md px-2 py-1\",\n config.bgClass\n )}\n >\n <HugeiconsIcon\n icon={config.icon}\n className={cn(\"size-3\", config.textClass)}\n />\n <span className={cn(\"text-xs font-medium\", config.textClass)}>\n {config.label}\n </span>\n </div>\n )\n}\n\nexport function LeadsTable() {\n const {\n searchQuery,\n typeFilter,\n statusFilter,\n sourceFilter,\n setSearchQuery,\n setTypeFilter,\n setStatusFilter,\n setSourceFilter,\n clearFilters,\n } = useDashboardStore()\n\n const [sortField, setSortField] = useState<SortField>(\"name\")\n const [sortOrder, setSortOrder] = useState<SortOrder>(\"asc\")\n const [selectedLeads, setSelectedLeads] = useState<string[]>([])\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState(10)\n\n const filteredAndSortedLeads = useMemo(() => {\n const result = leads.filter((lead) => {\n const matchesSearch =\n searchQuery === \"\" ||\n lead.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n lead.email.toLowerCase().includes(searchQuery.toLowerCase())\n\n const matchesType = typeFilter === \"all\" || lead.type === typeFilter\n const matchesStatus =\n statusFilter === \"all\" || lead.status === statusFilter\n const matchesSource =\n sourceFilter === \"all\" || lead.source === sourceFilter\n\n return matchesSearch && matchesType && matchesStatus && matchesSource\n })\n\n result.sort((a, b) => {\n let comparison = 0\n switch (sortField) {\n case \"name\":\n comparison = a.name.localeCompare(b.name)\n break\n case \"email\":\n comparison = a.email.localeCompare(b.email)\n break\n case \"followUp\":\n comparison = a.followUp.localeCompare(b.followUp)\n break\n case \"status\":\n comparison = a.status.localeCompare(b.status)\n break\n case \"score\":\n comparison = a.score - b.score\n break\n }\n return sortOrder === \"asc\" ? comparison : -comparison\n })\n\n return result\n }, [\n searchQuery,\n typeFilter,\n statusFilter,\n sourceFilter,\n sortField,\n sortOrder,\n ])\n\n const totalPages = Math.ceil(filteredAndSortedLeads.length / itemsPerPage)\n const paginatedLeads = useMemo(() => {\n const startIndex = (currentPage - 1) * itemsPerPage\n return filteredAndSortedLeads.slice(startIndex, startIndex + itemsPerPage)\n }, [filteredAndSortedLeads, currentPage, itemsPerPage])\n\n const toggleSort = (field: SortField) => {\n if (sortField === field) {\n setSortOrder(sortOrder === \"asc\" ? \"desc\" : \"asc\")\n } else {\n setSortField(field)\n setSortOrder(\"asc\")\n }\n }\n\n const toggleSelectAll = () => {\n if (selectedLeads.length === paginatedLeads.length) {\n setSelectedLeads([])\n } else {\n setSelectedLeads(paginatedLeads.map((lead) => lead.id))\n }\n }\n\n const toggleSelectLead = (id: string) => {\n setSelectedLeads((prev) =>\n prev.includes(id) ? prev.filter((i) => i !== id) : [...prev, id]\n )\n }\n\n const hasActiveFilters =\n searchQuery !== \"\" ||\n typeFilter !== \"all\" ||\n statusFilter !== \"all\" ||\n sourceFilter !== \"all\"\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page)\n setSelectedLeads([])\n }\n\n const handleItemsPerPageChange = (value: string | null) => {\n if (value) {\n setItemsPerPage(Number(value))\n setCurrentPage(1)\n setSelectedLeads([])\n }\n }\n\n return (\n <div className=\"overflow-hidden rounded-xl border bg-card text-card-foreground\">\n <div className=\"flex flex-col gap-3 border-b px-4 py-3.5 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-3\">\n <h3 className=\"text-base font-medium\">Lead Management</h3>\n <div className=\"hidden h-5 w-px bg-border sm:block\" />\n <div className=\"hidden items-center gap-2 sm:flex\">\n <div className=\"relative\">\n <HugeiconsIcon\n icon={Search01Icon}\n className=\"pointer-events-none absolute top-1/2 left-2.5 z-10 size-3.5 -translate-y-1/2 text-muted-foreground\"\n />\n <Input\n placeholder=\"Search\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"h-8 w-[200px] border-border/50 bg-muted/50 pl-8 text-sm\"\n />\n </div>\n\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 gap-1.5 border-border/50 bg-muted/50\"\n >\n <HugeiconsIcon\n icon={SlidersHorizontalIcon}\n className=\"size-3.5\"\n />\n <span>Filter</span>\n {hasActiveFilters && (\n <span className=\"size-1.5 rounded-full bg-primary\" />\n )}\n </Button>\n }\n />\n <DropdownMenuContent align=\"start\" className=\"w-48\">\n <DropdownMenuGroup>\n <div className=\"px-2 py-1.5\">\n <p className=\"mb-1.5 text-xs font-medium text-muted-foreground\">\n Type\n </p>\n <div className=\"space-y-1\">\n <DropdownMenuCheckboxItem\n checked={typeFilter === \"all\"}\n onCheckedChange={() => setTypeFilter(\"all\")}\n >\n All Types\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={typeFilter === \"cold\"}\n onCheckedChange={() => setTypeFilter(\"cold\")}\n >\n <HugeiconsIcon\n icon={SnowIcon}\n className=\"mr-1.5 size-3 text-cyan-400\"\n />\n Cold\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={typeFilter === \"warm\"}\n onCheckedChange={() => setTypeFilter(\"warm\")}\n >\n <HugeiconsIcon\n icon={FireIcon}\n className=\"mr-1.5 size-3 text-pink-400\"\n />\n Warm\n </DropdownMenuCheckboxItem>\n </div>\n </div>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <div className=\"px-2 py-1.5\">\n <p className=\"mb-1.5 text-xs font-medium text-muted-foreground\">\n Status\n </p>\n <div className=\"space-y-1\">\n <DropdownMenuCheckboxItem\n checked={statusFilter === \"all\"}\n onCheckedChange={() => setStatusFilter(\"all\")}\n >\n All Status\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={statusFilter === \"closed\"}\n onCheckedChange={() => setStatusFilter(\"closed\")}\n >\n <HugeiconsIcon\n icon={Tick01Icon}\n className=\"mr-1.5 size-3 text-emerald-400\"\n />\n Closed\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={statusFilter === \"lost\"}\n onCheckedChange={() => setStatusFilter(\"lost\")}\n >\n <HugeiconsIcon\n icon={Cancel01Icon}\n className=\"mr-1.5 size-3 text-amber-400\"\n />\n Lost\n </DropdownMenuCheckboxItem>\n </div>\n </div>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <div className=\"px-2 py-1.5\">\n <p className=\"mb-1.5 text-xs font-medium text-muted-foreground\">\n Source\n </p>\n <div className=\"space-y-1\">\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"all\"}\n onCheckedChange={() => setSourceFilter(\"all\")}\n >\n All Sources\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"linkedin\"}\n onCheckedChange={() => setSourceFilter(\"linkedin\")}\n >\n <HugeiconsIcon\n icon={Linkedin01Icon}\n className=\"mr-1.5 size-3 text-blue-400\"\n />\n LinkedIn\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"google\"}\n onCheckedChange={() => setSourceFilter(\"google\")}\n >\n <HugeiconsIcon\n icon={Search01Icon}\n className=\"mr-1.5 size-3 text-red-400\"\n />\n Google\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"referral\"}\n onCheckedChange={() => setSourceFilter(\"referral\")}\n >\n <HugeiconsIcon\n icon={UserMultiple02Icon}\n className=\"mr-1.5 size-3 text-violet-400\"\n />\n Referral\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"website\"}\n onCheckedChange={() => setSourceFilter(\"website\")}\n >\n <HugeiconsIcon\n icon={Globe02Icon}\n className=\"mr-1.5 size-3 text-cyan-400\"\n />\n Website\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"cold-call\"}\n onCheckedChange={() => setSourceFilter(\"cold-call\")}\n >\n <HugeiconsIcon\n icon={CallIcon}\n className=\"mr-1.5 size-3 text-orange-400\"\n />\n Cold Call\n </DropdownMenuCheckboxItem>\n </div>\n </div>\n </DropdownMenuGroup>\n {hasActiveFilters && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={clearFilters}>\n Clear all filters\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 gap-1.5 border-border/50 bg-muted/50\"\n >\n <HugeiconsIcon\n icon={ArrowUpDownIcon}\n className=\"size-3.5\"\n />\n <span>Sort</span>\n </Button>\n }\n />\n <DropdownMenuContent align=\"start\">\n <DropdownMenuGroup>\n <DropdownMenuItem onClick={() => toggleSort(\"name\")}>\n Name{\" \"}\n {sortField === \"name\" && (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => toggleSort(\"email\")}>\n Email{\" \"}\n {sortField === \"email\" && (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => toggleSort(\"followUp\")}>\n Follow-up{\" \"}\n {sortField === \"followUp\" &&\n (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => toggleSort(\"status\")}>\n Status{\" \"}\n {sortField === \"status\" &&\n (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => toggleSort(\"score\")}>\n Score{\" \"}\n {sortField === \"score\" && (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 gap-1.5 border-border/50 bg-muted/50\"\n >\n <HugeiconsIcon icon={Upload01Icon} className=\"size-3.5\" />\n <span className=\"hidden sm:inline\">Export/Import</span>\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\">\n <DropdownMenuGroup>\n <DropdownMenuItem>Export as CSV</DropdownMenuItem>\n <DropdownMenuItem>Export as Excel</DropdownMenuItem>\n <DropdownMenuItem>Export as PDF</DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>Import from CSV</DropdownMenuItem>\n <DropdownMenuItem>Import from Excel</DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8 border-border/50 bg-muted/50\"\n >\n <HugeiconsIcon icon={PieChartIcon} className=\"size-3.5\" />\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\">\n <DropdownMenuGroup>\n <DropdownMenuItem>View analytics</DropdownMenuItem>\n <DropdownMenuItem>Lead distribution</DropdownMenuItem>\n <DropdownMenuItem>Conversion rates</DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem>Generate report</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n </div>\n\n <div className=\"flex flex-wrap items-center gap-2 border-b px-4 py-3 sm:hidden\">\n <div className=\"relative flex-1\">\n <HugeiconsIcon\n icon={Search01Icon}\n className=\"pointer-events-none absolute top-1/2 left-2.5 z-10 size-3.5 -translate-y-1/2 text-muted-foreground\"\n />\n <Input\n placeholder=\"Search\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"h-8 w-full border-border/50 bg-muted/50 pl-8 text-sm\"\n />\n </div>\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 gap-1.5 border-border/50 bg-muted/50\"\n >\n <HugeiconsIcon\n icon={SlidersHorizontalIcon}\n className=\"size-3.5\"\n />\n {hasActiveFilters && (\n <span className=\"size-1.5 rounded-full bg-primary\" />\n )}\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\" className=\"w-48\">\n <DropdownMenuGroup>\n <div className=\"px-2 py-1.5\">\n <p className=\"mb-1.5 text-xs font-medium text-muted-foreground\">\n Type\n </p>\n <div className=\"space-y-1\">\n <DropdownMenuCheckboxItem\n checked={typeFilter === \"all\"}\n onCheckedChange={() => setTypeFilter(\"all\")}\n >\n All Types\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={typeFilter === \"cold\"}\n onCheckedChange={() => setTypeFilter(\"cold\")}\n >\n Cold\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={typeFilter === \"warm\"}\n onCheckedChange={() => setTypeFilter(\"warm\")}\n >\n Warm\n </DropdownMenuCheckboxItem>\n </div>\n </div>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <div className=\"px-2 py-1.5\">\n <p className=\"mb-1.5 text-xs font-medium text-muted-foreground\">\n Status\n </p>\n <div className=\"space-y-1\">\n <DropdownMenuCheckboxItem\n checked={statusFilter === \"all\"}\n onCheckedChange={() => setStatusFilter(\"all\")}\n >\n All Status\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={statusFilter === \"closed\"}\n onCheckedChange={() => setStatusFilter(\"closed\")}\n >\n Closed\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={statusFilter === \"lost\"}\n onCheckedChange={() => setStatusFilter(\"lost\")}\n >\n Lost\n </DropdownMenuCheckboxItem>\n </div>\n </div>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <div className=\"px-2 py-1.5\">\n <p className=\"mb-1.5 text-xs font-medium text-muted-foreground\">\n Source\n </p>\n <div className=\"space-y-1\">\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"all\"}\n onCheckedChange={() => setSourceFilter(\"all\")}\n >\n All Sources\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"linkedin\"}\n onCheckedChange={() => setSourceFilter(\"linkedin\")}\n >\n LinkedIn\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"google\"}\n onCheckedChange={() => setSourceFilter(\"google\")}\n >\n Google\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"referral\"}\n onCheckedChange={() => setSourceFilter(\"referral\")}\n >\n Referral\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"website\"}\n onCheckedChange={() => setSourceFilter(\"website\")}\n >\n Website\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={sourceFilter === \"cold-call\"}\n onCheckedChange={() => setSourceFilter(\"cold-call\")}\n >\n Cold Call\n </DropdownMenuCheckboxItem>\n </div>\n </div>\n </DropdownMenuGroup>\n {hasActiveFilters && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={clearFilters}>\n Clear all filters\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 border-border/50 bg-muted/50\"\n >\n <HugeiconsIcon icon={ArrowUpDownIcon} className=\"size-3.5\" />\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\">\n <DropdownMenuGroup>\n <DropdownMenuItem onClick={() => toggleSort(\"name\")}>\n Name\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => toggleSort(\"email\")}>\n Email\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => toggleSort(\"followUp\")}>\n Follow-up\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => toggleSort(\"status\")}>\n Status\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => toggleSort(\"score\")}>\n Score\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow className=\"bg-muted/30 hover:bg-transparent\">\n <TableHead className=\"w-[160px]\">\n <div className=\"flex items-center gap-2\">\n <Checkbox\n checked={\n selectedLeads.length === paginatedLeads.length &&\n paginatedLeads.length > 0\n }\n onCheckedChange={toggleSelectAll}\n className=\"border-border/50 bg-background/70\"\n />\n <button\n className=\"flex items-center gap-1.5 text-muted-foreground hover:text-foreground\"\n onClick={() => toggleSort(\"name\")}\n >\n <span>Name</span>\n {getSortIcon(sortField, sortOrder, \"name\")}\n </button>\n </div>\n </TableHead>\n <TableHead className=\"w-[85px]\">\n <div className=\"flex items-center gap-1.5 text-muted-foreground\">\n <HugeiconsIcon icon={UserIcon} className=\"size-3.5\" />\n <span>Type</span>\n </div>\n </TableHead>\n <TableHead className=\"w-[180px]\">\n <button\n className=\"flex items-center gap-1.5 text-muted-foreground hover:text-foreground\"\n onClick={() => toggleSort(\"email\")}\n >\n <HugeiconsIcon icon={Mail01Icon} className=\"size-3.5\" />\n <span>Email</span>\n {getSortIcon(sortField, sortOrder, \"email\")}\n </button>\n </TableHead>\n <TableHead className=\"w-[95px]\">\n <button\n className=\"flex items-center gap-1.5 text-muted-foreground hover:text-foreground\"\n onClick={() => toggleSort(\"followUp\")}\n >\n <HugeiconsIcon\n icon={HandPointingRight01Icon}\n className=\"size-3.5\"\n />\n <span>Follow-up</span>\n {getSortIcon(sortField, sortOrder, \"followUp\")}\n </button>\n </TableHead>\n <TableHead className=\"w-[90px]\">\n <button\n className=\"flex items-center gap-1.5 text-muted-foreground hover:text-foreground\"\n onClick={() => toggleSort(\"status\")}\n >\n <HugeiconsIcon icon={Activity01Icon} className=\"size-3.5\" />\n <span>Status</span>\n {getSortIcon(sortField, sortOrder, \"status\")}\n </button>\n </TableHead>\n <TableHead className=\"w-[85px]\">\n <button\n className=\"flex items-center gap-1.5 text-muted-foreground hover:text-foreground\"\n onClick={() => toggleSort(\"score\")}\n >\n <HugeiconsIcon icon={FlashIcon} className=\"size-3.5\" />\n <span>Score</span>\n {getSortIcon(sortField, sortOrder, \"score\")}\n </button>\n </TableHead>\n <TableHead className=\"w-[95px]\">\n <div className=\"flex items-center gap-1.5 text-muted-foreground\">\n <HugeiconsIcon icon={Target01Icon} className=\"size-3.5\" />\n <span>Source</span>\n </div>\n </TableHead>\n <TableHead className=\"w-[120px]\">\n <div className=\"flex items-center gap-1.5 text-muted-foreground\">\n <HugeiconsIcon icon={Globe02Icon} className=\"size-3.5\" />\n <span>Website</span>\n </div>\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {paginatedLeads.map((lead) => (\n <TableRow key={lead.id} className=\"border-border/50\">\n <TableCell>\n <div className=\"flex items-center gap-2.5\">\n <Checkbox\n checked={selectedLeads.includes(lead.id)}\n onCheckedChange={() => toggleSelectLead(lead.id)}\n className=\"border-border/50 bg-background/70\"\n />\n <Avatar className=\"size-6\">\n <AvatarImage src={lead.avatar} />\n <AvatarFallback className=\"text-xs\">\n {lead.name[0]}\n </AvatarFallback>\n </Avatar>\n <span className=\"text-sm font-medium\">{lead.name}</span>\n </div>\n </TableCell>\n <TableCell>\n <TypeBadge type={lead.type} />\n </TableCell>\n <TableCell className=\"max-w-[180px]\">\n <span className=\"block truncate text-sm\">{lead.email}</span>\n </TableCell>\n <TableCell>\n <span className=\"text-sm whitespace-nowrap\">\n {lead.followUp}\n </span>\n </TableCell>\n <TableCell>\n <StatusBadge status={lead.status} />\n </TableCell>\n <TableCell>\n <ScoreBadge score={lead.score} />\n </TableCell>\n <TableCell>\n <SourceBadge source={lead.source} />\n </TableCell>\n <TableCell className=\"max-w-[120px]\">\n <span className=\"block truncate text-sm text-muted-foreground\">\n {lead.website || \"-\"}\n </span>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n\n <div className=\"flex flex-col items-center justify-between gap-4 border-t px-4 py-3 sm:flex-row\">\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <span>\n Showing {(currentPage - 1) * itemsPerPage + 1} to{\" \"}\n {Math.min(\n currentPage * itemsPerPage,\n filteredAndSortedLeads.length\n )}{\" \"}\n of {filteredAndSortedLeads.length} leads\n </span>\n <div className=\"hidden h-4 w-px bg-border sm:block\" />\n <div className=\"flex items-center gap-2\">\n <span className=\"hidden sm:inline\">Show</span>\n <Select\n value={itemsPerPage.toString()}\n onValueChange={handleItemsPerPageChange}\n >\n <SelectTrigger className=\"h-8 w-[70px] bg-muted/50\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"5\">5</SelectItem>\n <SelectItem value=\"10\">10</SelectItem>\n <SelectItem value=\"20\">20</SelectItem>\n <SelectItem value=\"50\">50</SelectItem>\n </SelectContent>\n </Select>\n <span className=\"hidden sm:inline\">per page</span>\n </div>\n </div>\n\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8\"\n onClick={() => handlePageChange(1)}\n disabled={currentPage === 1}\n >\n <HugeiconsIcon icon={ArrowLeftDoubleIcon} className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8\"\n onClick={() => handlePageChange(currentPage - 1)}\n disabled={currentPage === 1}\n >\n <HugeiconsIcon icon={ArrowLeft01Icon} className=\"size-4\" />\n </Button>\n\n <div className=\"mx-2 flex items-center gap-1\">\n {Array.from({ length: Math.min(5, totalPages) }, (_, i) => {\n let pageNum: number\n if (totalPages <= 5) {\n pageNum = i + 1\n } else if (currentPage <= 3) {\n pageNum = i + 1\n } else if (currentPage >= totalPages - 2) {\n pageNum = totalPages - 4 + i\n } else {\n pageNum = currentPage - 2 + i\n }\n return (\n <Button\n key={pageNum}\n variant={currentPage === pageNum ? \"default\" : \"outline\"}\n size=\"icon\"\n className=\"size-8\"\n onClick={() => handlePageChange(pageNum)}\n >\n {pageNum}\n </Button>\n )\n })}\n </div>\n\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8\"\n onClick={() => handlePageChange(currentPage + 1)}\n disabled={currentPage === totalPages}\n >\n <HugeiconsIcon icon={ArrowRight01Icon} className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8\"\n onClick={() => handlePageChange(totalPages)}\n disabled={currentPage === totalPages}\n >\n <HugeiconsIcon icon={ArrowRightDoubleIcon} className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"path": "registry/example-apps/default/dashboard-2/components/dashboard/sidebar.tsx",
|
|
34
|
-
"type": "registry:component",
|
|
35
|
-
"target": "components/example-apps/dashboard-2/components/dashboard/sidebar.tsx",
|
|
36
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport Link from \"next/link\"\nimport {\n Add01Icon,\n ArrowDown01Icon,\n ArrowRight01Icon,\n Building02Icon,\n Calendar01Icon,\n DashboardSquare01Icon,\n File01Icon,\n FileEmpty01Icon,\n Folder01Icon,\n Globe02Icon,\n HeadphonesIcon,\n Layers01Icon,\n Logout01Icon,\n Mail01Icon,\n Notification01Icon,\n Search01Icon,\n Settings01Icon,\n SourceCodeIcon,\n Task01Icon,\n UnfoldMoreIcon,\n UserAdd01Icon,\n UserGroupIcon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { Button } from \"@loveui/ui/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@loveui/ui/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@loveui/ui/ui/menu\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"../ui/sidebar\"\n\nconst navItems = [\n { title: \"Search\", icon: Search01Icon, shortcut: \"/\" },\n { title: \"Client Inbox\", icon: Mail01Icon },\n { title: \"Listings Board\", icon: DashboardSquare01Icon, isActive: true },\n { title: \"Tours\", icon: Task01Icon },\n { title: \"Neighborhoods\", icon: Layers01Icon },\n { title: \"Open Houses\", icon: Calendar01Icon },\n { title: \"Contracts\", icon: File01Icon },\n { title: \"Agent Teams\", icon: UserGroupIcon },\n { title: \"Brokerage\", icon: Building02Icon },\n]\n\nconst workgroups = [\n {\n id: \"all-work\",\n name: \"Property Segments\",\n icon: Globe02Icon,\n children: [\n {\n id: \"luxury-homes\",\n name: \"Luxury Homes\",\n icon: Folder01Icon,\n children: [\n { id: \"waterfront\", name: \"Waterfront\", icon: FileEmpty01Icon },\n { id: \"penthouse\", name: \"Penthouse\", icon: FileEmpty01Icon },\n ],\n },\n { id: \"suburban\", name: \"Suburban\", icon: Folder01Icon },\n { id: \"investment\", name: \"Investment\", icon: Folder01Icon },\n ],\n },\n { id: \"market-alerts\", name: \"Market Alerts\", icon: Notification01Icon },\n { id: \"mls-sync\", name: \"MLS Sync\", icon: SourceCodeIcon },\n { id: \"buyer-support\", name: \"Buyer Support\", icon: HeadphonesIcon },\n]\n\nexport function DashboardSidebar({\n ...props\n}: React.ComponentProps<typeof Sidebar>) {\n const [expandedItems, setExpandedItems] = React.useState<string[]>([\n \"all-work\",\n \"luxury-homes\",\n ])\n\n const toggleItem = (id: string) => {\n setExpandedItems((prev) =>\n prev.includes(id) ? prev.filter((item) => item !== id) : [...prev, id]\n )\n }\n\n const renderWorkgroupItem = (\n item: (typeof workgroups)[0],\n level: number = 0\n ) => {\n const hasChildren = \"children\" in item && item.children\n const isExpanded = expandedItems.includes(item.id)\n const Icon = item.icon\n const paddingLeft = level * 12\n\n if (hasChildren) {\n return (\n <Collapsible\n key={item.id}\n open={isExpanded}\n onOpenChange={() => toggleItem(item.id)}\n >\n <SidebarMenuItem>\n <CollapsibleTrigger\n nativeButton={false}\n render={\n <SidebarMenuButton\n className=\"h-7 text-sm\"\n style={{ paddingLeft: `${8 + paddingLeft}px` }}\n >\n <HugeiconsIcon icon={Icon} className=\"size-3.5\" />\n <span className=\"flex-1\">{item.name}</span>\n {isExpanded ? (\n <HugeiconsIcon icon={ArrowDown01Icon} className=\"size-3\" />\n ) : (\n <HugeiconsIcon icon={ArrowRight01Icon} className=\"size-3\" />\n )}\n </SidebarMenuButton>\n }\n />\n <CollapsibleContent>\n <SidebarMenuSub className=\"mr-0 pr-0\">\n {item.children?.map((child) => (\n <SidebarMenuSubItem key={child.id}>\n {renderWorkgroupItem(\n child as (typeof workgroups)[0],\n level + 1\n )}\n </SidebarMenuSubItem>\n ))}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n )\n }\n\n return (\n <SidebarMenuItem key={item.id}>\n <SidebarMenuButton\n className=\"h-7 text-sm\"\n style={{ paddingLeft: `${8 + paddingLeft}px` }}\n >\n <HugeiconsIcon icon={Icon} className=\"size-3.5\" />\n <span>{item.name}</span>\n </SidebarMenuButton>\n </SidebarMenuItem>\n )\n }\n\n return (\n <Sidebar className=\"lg:border-r-0!\" collapsible=\"icon\" {...props}>\n <SidebarHeader className=\"px-2.5 py-3\">\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <button className=\"-m-1 flex w-full shrink-0 items-center gap-2.5 rounded-md p-1 transition-colors hover:bg-sidebar-accent\">\n <div className=\"flex size-7 shrink-0 items-center justify-center rounded-lg bg-foreground text-background\">\n <span className=\"text-sm font-bold\">R</span>\n </div>\n <div className=\"flex items-center gap-1 group-data-[collapsible=icon]:hidden\">\n <span className=\"text-sm font-medium\">Harbor Realty</span>\n <HugeiconsIcon\n icon={UnfoldMoreIcon}\n className=\"size-3 text-muted-foreground\"\n />\n </div>\n </button>\n }\n />\n <DropdownMenuContent align=\"start\" className=\"w-56\">\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <HugeiconsIcon icon={Settings01Icon} className=\"size-4\" />\n <span>Settings</span>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <HugeiconsIcon icon={UserAdd01Icon} className=\"size-4\" />\n <span>Invite agents</span>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem variant=\"destructive\">\n <HugeiconsIcon icon={Logout01Icon} className=\"size-4\" />\n <span>Log out</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarHeader>\n\n <SidebarContent className=\"px-2.5\">\n <SidebarGroup className=\"p-0\">\n <SidebarGroupContent>\n <SidebarMenu>\n {navItems.map((item) => (\n <SidebarMenuItem key={item.title}>\n <SidebarMenuButton\n render={<Link href=\"#\" />}\n isActive={item.isActive}\n className=\"h-7\"\n >\n <HugeiconsIcon icon={item.icon} className=\"size-3.5\" />\n <span className=\"text-sm\">{item.title}</span>\n {item.shortcut && (\n <span className=\"ml-auto flex size-5 items-center justify-center rounded bg-muted text-[10px] font-medium text-muted-foreground\">\n {item.shortcut}\n </span>\n )}\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n\n <SidebarGroup className=\"mt-4 p-0\">\n <SidebarGroupLabel className=\"flex h-6 items-center justify-between px-0\">\n <span className=\"text-[10px] font-medium tracking-wider text-muted-foreground\">\n Workgroups\n </span>\n <div className=\"flex items-center gap-1\">\n <Button variant=\"ghost\" size=\"icon\" className=\"size-5\">\n <HugeiconsIcon icon={Search01Icon} className=\"size-3\" />\n </Button>\n <Button variant=\"ghost\" size=\"icon\" className=\"size-5\">\n <HugeiconsIcon icon={Add01Icon} className=\"size-3\" />\n </Button>\n </div>\n </SidebarGroupLabel>\n <SidebarGroupContent>\n <SidebarMenu>\n {workgroups.map((item) => renderWorkgroupItem(item))}\n <SidebarMenuItem>\n <SidebarMenuButton className=\"h-7 text-sm text-muted-foreground\">\n <HugeiconsIcon icon={Add01Icon} className=\"size-3.5\" />\n <span>Create Group</span>\n </SidebarMenuButton>\n </SidebarMenuItem>\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n </SidebarContent>\n </Sidebar>\n )\n}\n"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"path": "registry/example-apps/default/dashboard-2/components/dashboard/stats-cards.tsx",
|
|
40
|
-
"type": "registry:component",
|
|
41
|
-
"target": "components/example-apps/dashboard-2/components/dashboard/stats-cards.tsx",
|
|
42
|
-
"content": "\"use client\"\n\nimport {\n ArrowDownRightIcon,\n ArrowUpRightIcon,\n Building02Icon,\n Comment01Icon,\n DollarSquareIcon,\n UserGroupIcon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { dashboardStats } from \"../../mock-data/dashboard\"\n\nconst stats = [\n {\n title: \"Closed Volume\",\n value: dashboardStats.generatedRevenue.value,\n change: dashboardStats.generatedRevenue.change,\n icon: DollarSquareIcon,\n trend: \"up\" as const,\n },\n {\n title: \"Signed Buyers\",\n value: dashboardStats.signedClients.value,\n change: dashboardStats.signedClients.change,\n icon: UserGroupIcon,\n trend: \"up\" as const,\n },\n {\n title: \"Active Buyer Leads\",\n value: dashboardStats.totalLeads.value,\n change: dashboardStats.totalLeads.change,\n icon: Comment01Icon,\n trend: \"up\" as const,\n },\n {\n title: \"Active Agents\",\n value: dashboardStats.teamMembers.value,\n extra: { active: dashboardStats.teamMembers.activeCount },\n icon: Building02Icon,\n },\n]\n\nexport function StatsCards() {\n return (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {stats.map((stat, index) => (\n <div\n key={index}\n className=\"rounded-xl border bg-card p-4 text-card-foreground\"\n >\n <div className=\"mb-3 flex items-center justify-between\">\n <span className=\"text-sm font-medium\">{stat.title}</span>\n <HugeiconsIcon\n icon={stat.icon}\n className=\"size-4 text-muted-foreground\"\n />\n </div>\n\n <div className=\"rounded-lg border bg-muted/50 p-4 dark:bg-neutral-800/50\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-2xl font-medium tracking-tight sm:text-3xl\">\n {stat.value}\n </span>\n\n <div className=\"flex items-center gap-3\">\n <div className=\"h-9 w-px bg-border\" />\n\n {stat.change !== undefined && stat.trend ? (\n <div\n className={cn(\n \"flex items-center gap-1.5\",\n stat.trend === \"up\" ? \"text-green-400\" : \"text-pink-400\"\n )}\n style={{\n textShadow:\n stat.trend === \"up\"\n ? \"0 1px 6px rgba(68, 255, 118, 0.25)\"\n : \"0 1px 6px rgba(255, 68, 193, 0.25)\",\n }}\n >\n {stat.trend === \"up\" ? (\n <HugeiconsIcon\n icon={ArrowUpRightIcon}\n className=\"size-3.5\"\n />\n ) : (\n <HugeiconsIcon\n icon={ArrowDownRightIcon}\n className=\"size-3.5\"\n />\n )}\n <span className=\"text-sm font-medium\">{stat.change}%</span>\n </div>\n ) : stat.extra ? (\n <div className=\"text-sm font-medium\">\n <span className=\"text-foreground\">{stat.extra.active}</span>{\" \"}\n <span className=\"text-muted-foreground\">Active</span>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n ))}\n </div>\n )\n}\n"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"path": "registry/example-apps/default/dashboard-2/components/dashboard/top-performers.tsx",
|
|
46
|
-
"type": "registry:component",
|
|
47
|
-
"target": "components/example-apps/dashboard-2/components/dashboard/top-performers.tsx",
|
|
48
|
-
"content": "\"use client\"\n\nimport { useMemo, useState } from \"react\"\nimport {\n Award01Icon,\n MoreHorizontalIcon,\n StarIcon,\n UserIcon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { Avatar, AvatarFallback, AvatarImage } from \"@loveui/ui/ui/avatar\"\nimport { Button } from \"@loveui/ui/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"@loveui/ui/ui/menu\"\n\nimport { cn } from \"../../lib/utils\"\nimport { topPerformers } from \"../../mock-data/dashboard\"\n\ntype SortBy = \"score_desc\" | \"score_asc\" | \"name_asc\" | \"name_desc\"\ntype Period = \"week\" | \"month\" | \"quarter\" | \"year\"\n\nconst periodLabels: Record<Period, string> = {\n week: \"This Week\",\n month: \"This Month\",\n quarter: \"This Quarter\",\n year: \"This Year\",\n}\n\nconst barStyles = [\n {\n borderColor: \"border-pink-500\",\n bgGradient:\n \"bg-linear-to-r from-pink-500/40 via-pink-500/20 to-transparent\",\n isDashed: false,\n },\n {\n borderColor: \"border-cyan-400\",\n bgGradient:\n \"bg-linear-to-r from-cyan-400/30 via-cyan-400/15 to-transparent\",\n isDashed: true,\n },\n {\n borderColor: \"border-green-400\",\n bgGradient:\n \"bg-linear-to-r from-green-400/30 via-green-400/15 to-transparent\",\n isDashed: true,\n },\n {\n borderColor: \"border-amber-400\",\n bgGradient:\n \"bg-linear-to-r from-amber-400/30 via-amber-400/15 to-transparent\",\n isDashed: true,\n },\n {\n borderColor: \"border-purple-400\",\n bgGradient:\n \"bg-linear-to-r from-purple-400/30 via-purple-400/15 to-transparent\",\n isDashed: true,\n },\n {\n borderColor: \"border-rose-400\",\n bgGradient:\n \"bg-linear-to-r from-rose-400/30 via-rose-400/15 to-transparent\",\n isDashed: true,\n },\n]\n\nexport function TopPerformers() {\n const [sortBy, setSortBy] = useState<SortBy>(\"score_desc\")\n const [period, setPeriod] = useState<Period>(\"month\")\n\n const maxScore = useMemo(() => {\n return Math.max(...topPerformers.map((p) => p.score))\n }, [])\n\n const sortedPerformers = useMemo(() => {\n const performers = [...topPerformers]\n switch (sortBy) {\n case \"score_desc\":\n return performers.sort((a, b) => b.score - a.score)\n case \"score_asc\":\n return performers.sort((a, b) => a.score - b.score)\n case \"name_asc\":\n return performers.sort((a, b) => a.name.localeCompare(b.name))\n case \"name_desc\":\n return performers.sort((a, b) => b.name.localeCompare(a.name))\n default:\n return performers\n }\n }, [sortBy])\n\n return (\n <div className=\"w-full shrink-0 rounded-lg border bg-card text-card-foreground lg:w-[332px]\">\n <div className=\"flex items-center justify-between border-b border-border/50 p-4\">\n <h3 className=\"text-sm font-medium sm:text-base\">Top Agents</h3>\n <div className=\"flex items-center gap-1\">\n <HugeiconsIcon\n icon={Award01Icon}\n className=\"size-4 text-muted-foreground\"\n />\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button variant=\"ghost\" size=\"icon\" className=\"size-7\">\n <HugeiconsIcon icon={MoreHorizontalIcon} className=\"size-4\" />\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\" className=\"w-44\">\n <DropdownMenuSub>\n <DropdownMenuSubTrigger>Time Period</DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n <DropdownMenuGroup>\n {(Object.keys(periodLabels) as Period[]).map((p) => (\n <DropdownMenuItem key={p} onClick={() => setPeriod(p)}>\n {periodLabels[p]} {period === p && \"✓\"}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n <DropdownMenuSub>\n <DropdownMenuSubTrigger>Sort By</DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n <DropdownMenuGroup>\n <DropdownMenuItem onClick={() => setSortBy(\"score_desc\")}>\n Score (High to Low) {sortBy === \"score_desc\" && \"✓\"}\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => setSortBy(\"score_asc\")}>\n Score (Low to High) {sortBy === \"score_asc\" && \"✓\"}\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => setSortBy(\"name_asc\")}>\n Name (A to Z) {sortBy === \"name_asc\" && \"✓\"}\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => setSortBy(\"name_desc\")}>\n Name (Z to A) {sortBy === \"name_desc\" && \"✓\"}\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n onClick={() => {\n setSortBy(\"score_desc\")\n setPeriod(\"month\")\n }}\n >\n Reset to Default\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n </div>\n <div className=\"space-y-4 p-4\">\n {sortedPerformers.map((performer, index) => {\n const style = barStyles[index % barStyles.length]\n const progressWidth = (performer.score / maxScore) * 100\n const isFirst = index === 0\n\n return (\n <div key={performer.id} className=\"flex items-center gap-3\">\n <Avatar className=\"size-10\">\n <AvatarImage src={performer.avatar} />\n <AvatarFallback>\n {performer.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")}\n </AvatarFallback>\n </Avatar>\n <div className=\"relative flex-1\">\n <div\n className={cn(\n \"relative h-[42px] overflow-hidden rounded-lg border\",\n style.borderColor,\n style.isDashed ? \"border-dashed\" : \"border-solid\"\n )}\n >\n <div\n className={cn(\n \"absolute inset-0 transition-all duration-300\",\n style.bgGradient\n )}\n style={{\n width: `${Math.max(progressWidth, 30)}%`,\n }}\n />\n <div className=\"absolute top-1/2 left-2 flex -translate-y-1/2 items-center gap-1.5 rounded-md border border-border bg-card/90 px-2 py-1 shadow-sm dark:bg-neutral-900/90\">\n {isFirst ? (\n <HugeiconsIcon\n icon={StarIcon}\n className=\"size-3.5 fill-amber-400 text-amber-400\"\n />\n ) : (\n <HugeiconsIcon\n icon={UserIcon}\n className=\"size-3.5 text-muted-foreground\"\n />\n )}\n <span\n className={cn(\n \"text-sm font-medium\",\n isFirst ? \"text-foreground\" : \"text-muted-foreground\"\n )}\n >\n {performer.score}\n </span>\n </div>\n </div>\n </div>\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"path": "registry/example-apps/default/dashboard-2/components/theme-provider.tsx",
|
|
52
|
-
"type": "registry:component",
|
|
53
|
-
"target": "components/example-apps/dashboard-2/components/theme-provider.tsx",
|
|
54
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ThemeProvider as NextThemesProvider } from \"next-themes\"\n\nexport function ThemeProvider({\n children,\n ...props\n}: React.ComponentProps<typeof NextThemesProvider>) {\n return <NextThemesProvider {...props}>{children}</NextThemesProvider>\n}\n"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"path": "registry/example-apps/default/dashboard-2/components/theme-toggle.tsx",
|
|
58
|
-
"type": "registry:component",
|
|
59
|
-
"target": "components/example-apps/dashboard-2/components/theme-toggle.tsx",
|
|
60
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Moon01Icon, Sun01Icon } from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\nimport { useTheme } from \"next-themes\"\n\nimport { Button } from \"@loveui/ui/ui/button\"\n\nexport function ThemeToggle() {\n const { setTheme, theme } = useTheme()\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => setTheme(theme === \"light\" ? \"dark\" : \"light\")}\n >\n <HugeiconsIcon\n icon={Sun01Icon}\n className=\"size-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90\"\n />\n <HugeiconsIcon\n icon={Moon01Icon}\n className=\"absolute size-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0\"\n />\n <span className=\"sr-only\">Toggle theme</span>\n </Button>\n )\n}\n"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/alert-dialog.tsx",
|
|
64
|
-
"type": "registry:ui",
|
|
65
|
-
"target": "components/example-apps/dashboard-2/components/ui/alert-dialog.tsx",
|
|
66
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n )\n}\n\nfunction AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n )\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Popup.Props & {\n size?: \"default\" | \"sm\"\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl bg-background p-6 ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n"
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/avatar.tsx",
|
|
70
|
-
"type": "registry:ui",
|
|
71
|
-
"target": "components/example-apps/dashboard-2/components/ui/avatar.tsx",
|
|
72
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: \"default\" | \"sm\" | \"lg\"\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\n \"aspect-square size-full rounded-full object-cover\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarBadge,\n}\n"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/badge.tsx",
|
|
76
|
-
"type": "registry:ui",
|
|
77
|
-
"target": "components/example-apps/dashboard-2/components/ui/badge.tsx",
|
|
78
|
-
"content": "import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary:\n \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n destructive:\n \"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20\",\n outline:\n \"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost:\n \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>) {\n return useRender({\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n className: cn(badgeVariants({ className, variant })),\n },\n props\n ),\n render,\n state: {\n slot: \"badge\",\n variant,\n },\n })\n}\n\nexport { Badge, badgeVariants }\n"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/button.tsx",
|
|
82
|
-
"type": "registry:ui",
|
|
83
|
-
"target": "components/example-apps/dashboard-2/components/ui/button.tsx",
|
|
84
|
-
"content": "import { Button as ButtonPrimitive } from \"@base-ui/react/button\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/80\",\n outline:\n \"border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n lg: \"h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-9\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/card.tsx",
|
|
88
|
-
"type": "registry:ui",
|
|
89
|
-
"target": "components/example-apps/dashboard-2/components/ui/card.tsx",
|
|
90
|
-
"content": "import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n \"group/card flex flex-col gap-6 overflow-hidden rounded-xl bg-card py-6 text-sm text-card-foreground shadow-xs ring-1 ring-foreground/10 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\n \"text-base leading-normal font-medium group-data-[size=sm]/card:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/chart.tsx",
|
|
94
|
-
"type": "registry:ui",
|
|
95
|
-
"target": "components/example-apps/dashboard-2/components/ui/chart.tsx",
|
|
96
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"../../lib/utils\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\")\n }\n\n return context\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"]\n}) {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n )\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }) {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n <div\n className={cn(\n \"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as any\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium text-foreground tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean\n nameKey?: string\n }) {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n}\n\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n"
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/checkbox.tsx",
|
|
100
|
-
"type": "registry:ui",
|
|
101
|
-
"target": "components/example-apps/dashboard-2/components/ui/checkbox.tsx",
|
|
102
|
-
"content": "\"use client\"\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\"\nimport { Tick02Icon } from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input shadow-xs transition-shadow outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <HugeiconsIcon icon={Tick02Icon} strokeWidth={2} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/collapsible.tsx",
|
|
106
|
-
"type": "registry:ui",
|
|
107
|
-
"target": "components/example-apps/dashboard-2/components/ui/collapsible.tsx",
|
|
108
|
-
"content": "\"use client\"\n\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n return (\n <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n )\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/combobox.tsx",
|
|
112
|
-
"type": "registry:ui",
|
|
113
|
-
"target": "components/example-apps/dashboard-2/components/ui/combobox.tsx",
|
|
114
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\nimport {\n ArrowDown01Icon,\n Cancel01Icon,\n Tick02Icon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"./input-group\"\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <HugeiconsIcon\n icon={ArrowDown01Icon}\n strokeWidth={2}\n className=\"pointer-events-none size-4 text-muted-foreground\"\n />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <HugeiconsIcon\n icon={Cancel01Icon}\n strokeWidth={2}\n className=\"pointer-events-none\"\n />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input\n render={<InputGroupInput disabled={disabled} />}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n render={<ComboboxTrigger />}\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n />\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 group/combobox-content relative max-h-(--available-height) max-h-72 w-(--anchor-width) max-w-(--available-width) min-w-36 min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none\",\n className\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <HugeiconsIcon\n icon={Tick02Icon}\n strokeWidth={2}\n className=\"pointer-events-none\"\n />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border border-input bg-transparent bg-clip-padding px-2.5 py-1.5 text-sm shadow-xs transition-[color,box-shadow] focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1.5 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <HugeiconsIcon\n icon={Cancel01Icon}\n strokeWidth={2}\n className=\"pointer-events-none\"\n />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n"
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/dropdown-menu.tsx",
|
|
118
|
-
"type": "registry:ui",
|
|
119
|
-
"target": "components/example-apps/dashboard-2/components/ui/dropdown-menu.tsx",
|
|
120
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { ArrowRight01Icon, Tick02Icon } from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n}\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<\n MenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-closed:overflow-hidden\",\n className\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground data-[inset]:pl-8\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <HugeiconsIcon\n icon={ArrowRight01Icon}\n strokeWidth={2}\n className=\"ml-auto\"\n />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 w-auto min-w-[96px] rounded-md bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100\",\n className\n )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: MenuPrimitive.CheckboxItem.Props) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <HugeiconsIcon icon={Tick02Icon} strokeWidth={2} />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: MenuPrimitive.RadioItem.Props) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <HugeiconsIcon icon={Tick02Icon} strokeWidth={2} />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/field.tsx",
|
|
124
|
-
"type": "registry:ui",
|
|
125
|
-
"target": "components/example-apps/dashboard-2/components/ui/field.tsx",
|
|
126
|
-
"content": "\"use client\"\n\nimport { useMemo, type ComponentPropsWithoutRef, type ReactNode } from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Label } from \"./label\"\nimport { Separator } from \"./separator\"\n\nfunction FieldSet({\n className,\n ...props\n}: ComponentPropsWithoutRef<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: ComponentPropsWithoutRef<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: ComponentPropsWithoutRef<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field flex w-full gap-3 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: \"flex-col [&>*]:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center has-[>[data-slot=field-content]]:items-start [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n responsive:\n \"flex-col @md/field-group:flex-row @md/field-group:items-center @md/field-group:has-[>[data-slot=field-content]]:items-start [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: ComponentPropsWithoutRef<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({\n className,\n ...props\n}: ComponentPropsWithoutRef<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border dark:has-data-checked:bg-primary/10 [&>*]:data-[slot=field]:p-3\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: ComponentPropsWithoutRef<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({\n className,\n ...props\n}: ComponentPropsWithoutRef<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-left text-sm leading-normal font-normal text-muted-foreground group-has-[[data-orientation=horizontal]]/field:text-balance [[data-variant=legend]+&]:-mt-1.5\",\n \"last:mt-0 nth-last-2:-mt-1\",\n \"[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: ComponentPropsWithoutRef<\"div\"> & {\n children?: ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: ComponentPropsWithoutRef<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors?.length) {\n return null\n }\n\n const uniqueErrors = [\n ...new Map(errors.map((error) => [error?.message, error])).values(),\n ]\n\n if (uniqueErrors?.length == 1) {\n return uniqueErrors[0]?.message\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-sm font-normal text-destructive\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/input-group.tsx",
|
|
130
|
-
"type": "registry:ui",
|
|
131
|
-
"target": "components/example-apps/dashboard-2/components/ui/input-group.tsx",
|
|
132
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Textarea } from \"./textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 [[data-slot=combobox-content]_&]:focus-within:border-inherit [[data-slot=combobox-content]_&]:focus-within:ring-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-2 has-[>button]:ml-[-0.25rem] has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\":\n \"order-last pr-2 has-[>button]:mr-[-0.25rem] has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\"\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n"
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/input.tsx",
|
|
136
|
-
"type": "registry:ui",
|
|
137
|
-
"target": "components/example-apps/dashboard-2/components/ui/input.tsx",
|
|
138
|
-
"content": "import * as React from \"react\"\nimport { Input as InputPrimitive } from \"@base-ui/react/input\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n"
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/label.tsx",
|
|
142
|
-
"type": "registry:ui",
|
|
143
|
-
"target": "components/example-apps/dashboard-2/components/ui/label.tsx",
|
|
144
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Label({ className, ...props }: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/select.tsx",
|
|
148
|
-
"type": "registry:ui",
|
|
149
|
-
"target": "components/example-apps/dashboard-2/components/ui/select.tsx",
|
|
150
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\"\nimport {\n ArrowDown01Icon,\n ArrowUp01Icon,\n Tick02Icon,\n UnfoldMoreIcon,\n} from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Select = SelectPrimitive.Root\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({\n className,\n placeholder,\n ...props\n}: SelectPrimitive.Value.Props & { placeholder?: string }) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n >\n {(value) => value ?? placeholder}\n </SelectPrimitive.Value>\n )\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-md border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <HugeiconsIcon\n icon={UnfoldMoreIcon}\n strokeWidth={2}\n className=\"pointer-events-none size-4 text-muted-foreground\"\n />\n }\n />\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100\",\n className\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <HugeiconsIcon\n icon={Tick02Icon}\n strokeWidth={2}\n className=\"pointer-events-none\"\n />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <HugeiconsIcon icon={ArrowUp01Icon} strokeWidth={2} />\n </SelectPrimitive.ScrollUpArrow>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <HugeiconsIcon icon={ArrowDown01Icon} strokeWidth={2} />\n </SelectPrimitive.ScrollDownArrow>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/separator.tsx",
|
|
154
|
-
"type": "registry:ui",
|
|
155
|
-
"target": "components/example-apps/dashboard-2/components/ui/separator.tsx",
|
|
156
|
-
"content": "\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n ...props\n}: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n"
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/sheet.tsx",
|
|
160
|
-
"type": "registry:ui",
|
|
161
|
-
"target": "components/example-apps/dashboard-2/components/ui/sheet.tsx",
|
|
162
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { Cancel01Icon } from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-background bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-4 right-4\"\n size=\"icon-sm\"\n />\n }\n >\n <HugeiconsIcon icon={Cancel01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n"
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/sidebar.tsx",
|
|
166
|
-
"type": "registry:ui",
|
|
167
|
-
"target": "components/example-apps/dashboard-2/components/ui/sidebar.tsx",
|
|
168
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { SidebarLeftIcon } from \"@hugeicons/core-free-icons\"\nimport { HugeiconsIcon } from \"@hugeicons/react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { useIsMobile } from \"../../hooks/use-mobile\"\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Separator } from \"./separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"./sheet\"\nimport { Skeleton } from \"./skeleton\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\"\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as any\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offExamples\",\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offExamples\" | \"icon\" | \"none\"\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"top-[var(--sidebar-top-offset,0px)] h-[calc(100svh-var(--sidebar-top-offset,0px))] w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as any\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offExamples]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\"\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"fixed top-[var(--sidebar-top-offset,0px)] bottom-0 z-10 hidden h-[calc(100svh-var(--sidebar-top-offset,0px))] w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offExamples]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offExamples]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <HugeiconsIcon icon={SidebarLeftIcon} strokeWidth={2} />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offExamples]:translate-x-0 group-data-[collapsible=offExamples]:after:left-full hover:group-data-[collapsible=offExamples]:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offExamples]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offExamples]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"h-8 w-full bg-background shadow-none\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"no-scrollbar flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & React.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-label\",\n sidebar: \"group-label\",\n },\n })\n}\n\nfunction SidebarGroupAction({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"button\"> & React.ComponentProps<\"button\">) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n \"absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-action\",\n sidebar: \"group-action\",\n },\n })\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction SidebarMenuButton({\n render,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>) {\n const { isMobile, state } = useSidebar()\n const comp = useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(sidebarMenuButtonVariants({ variant, size }), className),\n },\n props\n ),\n render: !tooltip ? render : TooltipTrigger,\n state: {\n slot: \"sidebar-menu-button\",\n sidebar: \"menu-button\",\n size,\n active: isActive,\n },\n })\n\n if (!tooltip) {\n return comp\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n {comp}\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\nfunction SidebarMenuAction({\n className,\n render,\n showOnHover = false,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n showOnHover?: boolean\n }) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n \"absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground data-open:opacity-100 md:opacity-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-action\",\n sidebar: \"menu-action\",\n },\n })\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as any\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n render,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: useRender.ComponentProps<\"a\"> &\n React.ComponentProps<\"a\"> & {\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-[size=md]:text-sm data-[size=sm]:text-xs [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-sub-button\",\n sidebar: \"menu-sub-button\",\n size,\n active: isActive,\n },\n })\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n"
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/skeleton.tsx",
|
|
172
|
-
"type": "registry:ui",
|
|
173
|
-
"target": "components/example-apps/dashboard-2/components/ui/skeleton.tsx",
|
|
174
|
-
"content": "import type { ComponentPropsWithoutRef } from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Skeleton({ className, ...props }: ComponentPropsWithoutRef<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/table.tsx",
|
|
178
|
-
"type": "registry:ui",
|
|
179
|
-
"target": "components/example-apps/dashboard-2/components/ui/table.tsx",
|
|
180
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n"
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/textarea.tsx",
|
|
184
|
-
"type": "registry:ui",
|
|
185
|
-
"target": "components/example-apps/dashboard-2/components/ui/textarea.tsx",
|
|
186
|
-
"content": "import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n"
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
"path": "registry/example-apps/default/dashboard-2/components/ui/tooltip.tsx",
|
|
190
|
-
"type": "registry:ui",
|
|
191
|
-
"target": "components/example-apps/dashboard-2/components/ui/tooltip.tsx",
|
|
192
|
-
"content": "\"use client\"\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md bg-foreground px-3 py-1.5 text-xs text-background\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
"path": "registry/example-apps/default/dashboard-2/hooks/use-mobile.ts",
|
|
196
|
-
"type": "registry:hook",
|
|
197
|
-
"target": "components/example-apps/dashboard-2/hooks/use-mobile.ts",
|
|
198
|
-
"content": "import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n"
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
"path": "registry/example-apps/default/dashboard-2/index.tsx",
|
|
202
|
-
"type": "registry:file",
|
|
203
|
-
"target": "components/example-apps/dashboard-2/index.tsx",
|
|
204
|
-
"content": "/**\n * Wrapper export for embedding the dashboard in the docs app\n */\n\"use client\"\n\nimport { DashboardContent } from \"./components/dashboard/content\"\nimport { DashboardHeader } from \"./components/dashboard/header\"\nimport { DashboardSidebar } from \"./components/dashboard/sidebar\"\nimport { SidebarProvider } from \"./components/ui/sidebar\"\n\nexport default function Dashboard2Wrapper() {\n return (\n <SidebarProvider className=\"bg-sidebar\">\n <DashboardSidebar />\n <div className=\"h-full min-h-0 w-full overflow-hidden lg:px-2 lg:pb-2\">\n <div className=\"bg-container flex h-full min-h-0 w-full flex-col items-center justify-start overflow-hidden bg-background lg:rounded-md lg:border\">\n <DashboardHeader />\n <DashboardContent />\n </div>\n </div>\n </SidebarProvider>\n )\n}\n"
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
"path": "registry/example-apps/default/dashboard-2/lib/utils.ts",
|
|
208
|
-
"type": "registry:lib",
|
|
209
|
-
"target": "components/example-apps/dashboard-2/lib/utils.ts",
|
|
210
|
-
"content": "import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
"path": "registry/example-apps/default/dashboard-2/mock-data/dashboard.ts",
|
|
214
|
-
"type": "registry:lib",
|
|
215
|
-
"target": "components/example-apps/dashboard-2/mock-data/dashboard.ts",
|
|
216
|
-
"content": "export type LeadType = \"cold\" | \"warm\"\nexport type LeadStatus = \"closed\" | \"lost\"\nexport type LeadSource =\n | \"linkedin\"\n | \"google\"\n | \"referral\"\n | \"website\"\n | \"cold-call\"\n\nexport interface Lead {\n id: string\n name: string\n avatar: string\n type: LeadType\n email: string\n followUp: string\n status: LeadStatus\n website: string\n score: number\n source: LeadSource\n}\n\nexport interface TopPerformer {\n id: string\n name: string\n avatar: string\n score: number\n icon: \"star\" | \"user\"\n}\n\nexport const dashboardStats = {\n generatedRevenue: {\n value: \"$9.4M\",\n change: 14,\n },\n signedClients: {\n value: \"38\",\n change: 10,\n },\n totalLeads: {\n value: \"712\",\n change: 8,\n },\n teamMembers: {\n value: \"16\",\n activeCount: 12,\n },\n}\n\nexport const leadsChartDataWeek = [\n { date: \"Mon\", line1: 55, line2: 74, line3: 88, line4: 110 },\n { date: \"Tue\", line1: 62, line2: 80, line3: 96, line4: 124 },\n { date: \"Wed\", line1: 58, line2: 76, line3: 92, line4: 118 },\n { date: \"Thu\", line1: 68, line2: 88, line3: 105, line4: 132 },\n { date: \"Fri\", line1: 72, line2: 94, line3: 116, line4: 141 },\n { date: \"Sat\", line1: 84, line2: 102, line3: 130, line4: 156 },\n { date: \"Sun\", line1: 70, line2: 90, line3: 108, line4: 136 },\n]\n\nexport const leadsChartDataMonth = [\n { date: \"Jan 3\", line1: 180, line2: 220, line3: 260, line4: 320 },\n { date: \"Jan 7\", line1: 190, line2: 234, line3: 278, line4: 338 },\n { date: \"Jan 11\", line1: 205, line2: 250, line3: 295, line4: 355 },\n { date: \"Jan 15\", line1: 218, line2: 266, line3: 315, line4: 374 },\n { date: \"Jan 19\", line1: 225, line2: 282, line3: 330, line4: 392 },\n { date: \"Jan 23\", line1: 214, line2: 274, line3: 320, line4: 382 },\n { date: \"Jan 27\", line1: 236, line2: 298, line3: 346, line4: 410 },\n { date: \"Jan 31\", line1: 244, line2: 312, line3: 360, line4: 428 },\n { date: \"Feb 4\", line1: 252, line2: 320, line3: 372, line4: 440 },\n]\n\nexport const leadsChartDataQuarter = [\n { date: \"Jan\", line1: 210, line2: 275, line3: 320, line4: 385 },\n { date: \"Feb\", line1: 232, line2: 298, line3: 346, line4: 412 },\n { date: \"Mar\", line1: 248, line2: 318, line3: 370, line4: 438 },\n { date: \"Apr\", line1: 262, line2: 336, line3: 392, line4: 464 },\n { date: \"May\", line1: 276, line2: 352, line3: 412, line4: 488 },\n { date: \"Jun\", line1: 288, line2: 368, line3: 428, line4: 510 },\n { date: \"Jul\", line1: 274, line2: 354, line3: 408, line4: 486 },\n { date: \"Aug\", line1: 296, line2: 382, line3: 438, line4: 522 },\n { date: \"Sep\", line1: 308, line2: 396, line3: 452, line4: 540 },\n]\n\nexport const topPerformers: TopPerformer[] = [\n {\n id: \"1\",\n name: \"Maya R.\",\n avatar: \"https://api.dicebear.com/9.x/icons/svg?seed=maya\",\n score: 118,\n icon: \"star\",\n },\n {\n id: \"2\",\n name: \"Jordan F.\",\n avatar: \"https://api.dicebear.com/9.x/icons/svg?seed=jordan\",\n score: 96,\n icon: \"user\",\n },\n {\n id: \"3\",\n name: \"Evan K.\",\n avatar: \"https://api.dicebear.com/9.x/icons/svg?seed=evan\",\n score: 88,\n icon: \"user\",\n },\n {\n id: \"4\",\n name: \"Lena P.\",\n avatar: \"https://api.dicebear.com/9.x/icons/svg?seed=lena\",\n score: 73,\n icon: \"user\",\n },\n {\n id: \"5\",\n name: \"Omar T.\",\n avatar: \"https://api.dicebear.com/9.x/icons/svg?seed=omar\",\n score: 67,\n icon: \"user\",\n },\n]\n\nexport const leads: Lead[] = [\n {\n id: \"1\",\n name: \"Ava Mitchell\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=ava-mitchell\",\n type: \"warm\",\n email: \"ava.mitchell@email.com\",\n followUp: \"Today\",\n status: \"closed\",\n website: \"harborheightshomes.com\",\n score: 94,\n source: \"website\",\n },\n {\n id: \"2\",\n name: \"Noah Bennett\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=noah-bennett\",\n type: \"cold\",\n email: \"noah.bennett@email.com\",\n followUp: \"In 2 days\",\n status: \"lost\",\n website: \"-\",\n score: 41,\n source: \"google\",\n },\n {\n id: \"3\",\n name: \"Mia Carter\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=mia-carter\",\n type: \"warm\",\n email: \"mia.carter@email.com\",\n followUp: \"Tomorrow\",\n status: \"closed\",\n website: \"oakglenrealty.com\",\n score: 89,\n source: \"referral\",\n },\n {\n id: \"4\",\n name: \"Liam Flores\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=liam-flores\",\n type: \"cold\",\n email: \"liam.flores@email.com\",\n followUp: \"In 3 days\",\n status: \"lost\",\n website: \"-\",\n score: 36,\n source: \"cold-call\",\n },\n {\n id: \"5\",\n name: \"Emma King\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=emma-king\",\n type: \"warm\",\n email: \"emma.king@email.com\",\n followUp: \"In 1 week\",\n status: \"closed\",\n website: \"baylineproperties.com\",\n score: 91,\n source: \"linkedin\",\n },\n {\n id: \"6\",\n name: \"Ethan Cruz\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=ethan-cruz\",\n type: \"cold\",\n email: \"ethan.cruz@email.com\",\n followUp: \"In 4 days\",\n status: \"lost\",\n website: \"maplecrestliving.com\",\n score: 48,\n source: \"google\",\n },\n {\n id: \"7\",\n name: \"Sophia Ward\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=sophia-ward\",\n type: \"warm\",\n email: \"sophia.ward@email.com\",\n followUp: \"In 2 days\",\n status: \"closed\",\n website: \"northgatehomes.com\",\n score: 87,\n source: \"website\",\n },\n {\n id: \"8\",\n name: \"James Price\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=james-price\",\n type: \"cold\",\n email: \"james.price@email.com\",\n followUp: \"In 5 days\",\n status: \"lost\",\n website: \"-\",\n score: 39,\n source: \"cold-call\",\n },\n {\n id: \"9\",\n name: \"Olivia Reed\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=olivia-reed\",\n type: \"warm\",\n email: \"olivia.reed@email.com\",\n followUp: \"In 1 day\",\n status: \"closed\",\n website: \"cedarpointrealty.com\",\n score: 93,\n source: \"referral\",\n },\n {\n id: \"10\",\n name: \"Benjamin Hale\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=benjamin-hale\",\n type: \"cold\",\n email: \"benjamin.hale@email.com\",\n followUp: \"In 1 week\",\n status: \"lost\",\n website: \"-\",\n score: 33,\n source: \"google\",\n },\n {\n id: \"11\",\n name: \"Charlotte Kim\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=charlotte-kim\",\n type: \"warm\",\n email: \"charlotte.kim@email.com\",\n followUp: \"In 3 days\",\n status: \"closed\",\n website: \"riversideestates.com\",\n score: 85,\n source: \"linkedin\",\n },\n {\n id: \"12\",\n name: \"Lucas Patel\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=lucas-patel\",\n type: \"cold\",\n email: \"lucas.patel@email.com\",\n followUp: \"In 6 days\",\n status: \"lost\",\n website: \"greystoneproperties.com\",\n score: 52,\n source: \"website\",\n },\n {\n id: \"13\",\n name: \"Amelia Ross\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=amelia-ross\",\n type: \"warm\",\n email: \"amelia.ross@email.com\",\n followUp: \"Tomorrow\",\n status: \"closed\",\n website: \"seaviewresidences.com\",\n score: 90,\n source: \"referral\",\n },\n {\n id: \"14\",\n name: \"Henry Moore\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=henry-moore\",\n type: \"cold\",\n email: \"henry.moore@email.com\",\n followUp: \"In 2 weeks\",\n status: \"lost\",\n website: \"-\",\n score: 29,\n source: \"cold-call\",\n },\n {\n id: \"15\",\n name: \"Harper Young\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=harper-young\",\n type: \"warm\",\n email: \"harper.young@email.com\",\n followUp: \"In 2 days\",\n status: \"closed\",\n website: \"hillsidehomes.com\",\n score: 88,\n source: \"website\",\n },\n {\n id: \"16\",\n name: \"Alexander Scott\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=alexander-scott\",\n type: \"cold\",\n email: \"alexander.scott@email.com\",\n followUp: \"In 4 days\",\n status: \"lost\",\n website: \"sunridge-realty.com\",\n score: 47,\n source: \"google\",\n },\n {\n id: \"17\",\n name: \"Evelyn Diaz\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=evelyn-diaz\",\n type: \"warm\",\n email: \"evelyn.diaz@email.com\",\n followUp: \"In 1 week\",\n status: \"closed\",\n website: \"harborlightliving.com\",\n score: 82,\n source: \"linkedin\",\n },\n {\n id: \"18\",\n name: \"Sebastian Clark\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=sebastian-clark\",\n type: \"cold\",\n email: \"sebastian.clark@email.com\",\n followUp: \"In 5 days\",\n status: \"lost\",\n website: \"-\",\n score: 38,\n source: \"cold-call\",\n },\n {\n id: \"19\",\n name: \"Ella Rivera\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=ella-rivera\",\n type: \"warm\",\n email: \"ella.rivera@email.com\",\n followUp: \"Today\",\n status: \"closed\",\n website: \"citypointcondos.com\",\n score: 96,\n source: \"referral\",\n },\n {\n id: \"20\",\n name: \"Jack Nguyen\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=jack-nguyen\",\n type: \"cold\",\n email: \"jack.nguyen@email.com\",\n followUp: \"In 3 days\",\n status: \"lost\",\n website: \"pinegroverealty.com\",\n score: 43,\n source: \"google\",\n },\n]\n"
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
"path": "registry/example-apps/default/dashboard-2/store/dashboard-store.ts",
|
|
220
|
-
"type": "registry:lib",
|
|
221
|
-
"target": "components/example-apps/dashboard-2/store/dashboard-store.ts",
|
|
222
|
-
"content": "import { create } from \"zustand\"\n\nimport { LeadSource, LeadStatus, LeadType } from \"../mock-data/dashboard\"\n\ninterface DashboardStore {\n searchQuery: string\n typeFilter: LeadType | \"all\"\n statusFilter: LeadStatus | \"all\"\n sourceFilter: LeadSource | \"all\"\n sortBy: \"name\" | \"email\" | \"followUp\" | \"status\" | \"score\"\n sortOrder: \"asc\" | \"desc\"\n chartPeriod: \"last_week\" | \"last_month\" | \"last_quarter\"\n currentPage: number\n itemsPerPage: number\n setSearchQuery: (query: string) => void\n setTypeFilter: (filter: LeadType | \"all\") => void\n setStatusFilter: (filter: LeadStatus | \"all\") => void\n setSourceFilter: (filter: LeadSource | \"all\") => void\n setSortBy: (sort: \"name\" | \"email\" | \"followUp\" | \"status\" | \"score\") => void\n setSortOrder: (order: \"asc\" | \"desc\") => void\n setChartPeriod: (period: \"last_week\" | \"last_month\" | \"last_quarter\") => void\n setCurrentPage: (page: number) => void\n setItemsPerPage: (items: number) => void\n clearFilters: () => void\n}\n\nexport const useDashboardStore = create<DashboardStore>((set) => ({\n searchQuery: \"\",\n typeFilter: \"all\",\n statusFilter: \"all\",\n sourceFilter: \"all\",\n sortBy: \"name\",\n sortOrder: \"asc\",\n chartPeriod: \"last_month\",\n currentPage: 1,\n itemsPerPage: 10,\n setSearchQuery: (query) => set({ searchQuery: query }),\n setTypeFilter: (filter) => set({ typeFilter: filter, currentPage: 1 }),\n setStatusFilter: (filter) => set({ statusFilter: filter, currentPage: 1 }),\n setSourceFilter: (filter) => set({ sourceFilter: filter, currentPage: 1 }),\n setSortBy: (sort) => set({ sortBy: sort }),\n setSortOrder: (order) => set({ sortOrder: order }),\n setChartPeriod: (period) => set({ chartPeriod: period }),\n setCurrentPage: (page) => set({ currentPage: page }),\n setItemsPerPage: (items) => set({ itemsPerPage: items, currentPage: 1 }),\n clearFilters: () =>\n set({\n searchQuery: \"\",\n typeFilter: \"all\",\n statusFilter: \"all\",\n sourceFilter: \"all\",\n sortBy: \"name\",\n sortOrder: \"asc\",\n currentPage: 1,\n }),\n}))\n"
|
|
223
|
-
}
|
|
224
|
-
],
|
|
225
|
-
"categories": [
|
|
226
|
-
"example-app",
|
|
227
|
-
"dashboards",
|
|
228
|
-
"business",
|
|
229
|
-
"analytics",
|
|
230
|
-
"metrics"
|
|
231
|
-
],
|
|
232
|
-
"dependencies": [
|
|
233
|
-
"@base-ui/react",
|
|
234
|
-
"@hugeicons/core-free-icons",
|
|
235
|
-
"@hugeicons/react",
|
|
236
|
-
"class-variance-authority",
|
|
237
|
-
"clsx",
|
|
238
|
-
"next-themes",
|
|
239
|
-
"recharts",
|
|
240
|
-
"tailwind-merge",
|
|
241
|
-
"zustand"
|
|
242
|
-
],
|
|
243
|
-
"registryDependencies": [
|
|
244
|
-
"https://www.loveui.dev/r/avatar.json",
|
|
245
|
-
"https://www.loveui.dev/r/button.json",
|
|
246
|
-
"https://www.loveui.dev/r/checkbox.json",
|
|
247
|
-
"https://www.loveui.dev/r/collapsible.json",
|
|
248
|
-
"https://www.loveui.dev/r/input.json",
|
|
249
|
-
"https://www.loveui.dev/r/menu.json",
|
|
250
|
-
"https://www.loveui.dev/r/select.json",
|
|
251
|
-
"https://www.loveui.dev/r/table.json"
|
|
252
|
-
],
|
|
253
|
-
"meta": {
|
|
254
|
-
"source": "example-app",
|
|
255
|
-
"appName": "dashboard-2",
|
|
256
|
-
"routes": [
|
|
257
|
-
{
|
|
258
|
-
"path": "/",
|
|
259
|
-
"title": "Dashboard",
|
|
260
|
-
"description": "Business dashboard overview"
|
|
261
|
-
}
|
|
262
|
-
]
|
|
263
|
-
}
|
|
264
|
-
}
|