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
package/public/r/rentals.json
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
-
"name": "rentals",
|
|
4
|
-
"type": "registry:block",
|
|
5
|
-
"title": "Gear Marketplace",
|
|
6
|
-
"description": "An e-commerce gear marketplace with map-based discovery, sorting, and favorites.",
|
|
7
|
-
"files": [
|
|
8
|
-
{
|
|
9
|
-
"path": "registry/example-apps/default/rentals/components/dashboard/listings-panel.tsx",
|
|
10
|
-
"type": "registry:component",
|
|
11
|
-
"target": "components/example-apps/rentals/components/dashboard/listings-panel.tsx",
|
|
12
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n ArrowUpDown,\n Check,\n DollarSign,\n Grid3x3,\n Heart,\n List,\n MapPin,\n MessageSquare,\n Search,\n Sparkles,\n Star,\n TrendingUp,\n X,\n} from \"lucide-react\"\nimport { useMediaQuery } from \"usehooks-ts\"\n\nimport { Badge } from \"@loveui/ui/ui/badge\"\nimport { Button } from \"@loveui/ui/ui/button\"\nimport { Input } from \"@loveui/ui/ui/input\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@loveui/ui/ui/menu\"\n\nimport { SidebarTrigger } from \"@/components/ui/sidebar\"\n\nimport { cn } from \"../../lib/utils\"\nimport { propertyTypeLabels, type Listing } from \"../../mock-data/listings\"\nimport { useRentalsStore } from \"../../store/rentals-store\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"../ui/carousel\"\n\ntype PanelMode = \"all\" | \"favorites\"\n\ninterface ListingsPanelProps {\n mode?: PanelMode\n}\n\nexport function ListingsPanel({ mode = \"all\" }: ListingsPanelProps) {\n const scrollContainerRef = React.useRef<HTMLDivElement>(null)\n const {\n selectedListingId,\n searchQuery,\n sortBy,\n selectListing,\n toggleFavorite,\n setSearchQuery,\n setSortBy,\n getFilteredListings,\n getFavoriteListings,\n setMapCenter,\n setMapZoom,\n setUserLocation,\n } = useRentalsStore()\n\n const isDesktop = useMediaQuery(\"(min-width: 640px)\")\n const [isPanelVisible, setIsPanelVisible] = React.useState(true)\n const [viewMode, setViewMode] = React.useState<\"grid\" | \"list\">(\"grid\")\n\n React.useEffect(() => {\n if (isDesktop && !isPanelVisible) {\n setIsPanelVisible(true)\n }\n }, [isDesktop, isPanelVisible])\n\n const getListings = () => {\n switch (mode) {\n case \"favorites\":\n return getFavoriteListings()\n default:\n return getFilteredListings()\n }\n }\n\n const listings = getListings()\n\n React.useEffect(() => {\n if (selectedListingId && scrollContainerRef.current) {\n scrollContainerRef.current.scrollTo({ top: 0, behavior: \"smooth\" })\n }\n }, [selectedListingId])\n\n const handleListingClick = (listing: Listing) => {\n if (selectedListingId === listing.id) {\n selectListing(null)\n } else {\n selectListing(listing.id)\n setMapCenter(listing.coordinates)\n setMapZoom(14)\n }\n }\n\n if (!isPanelVisible) {\n return (\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"absolute top-4 left-4 z-20 size-10 bg-background shadow-xl sm:hidden\"\n onClick={() => setIsPanelVisible(true)}\n >\n <Search className=\"size-5\" />\n </Button>\n )\n }\n\n return (\n <div className=\"absolute top-4 bottom-4 left-4 z-20 flex w-80 flex-col overflow-hidden rounded-xl border bg-background shadow-xl sm:w-[420px]\">\n <div className=\"flex items-center justify-between border-b p-3\">\n <div>\n <h2 className=\"text-base font-semibold\">\n {mode === \"favorites\" ? \"Favorites\" : \"All Gear\"}\n </h2>\n <p className=\"text-xs text-muted-foreground\">\n {listings.length} {listings.length === 1 ? \"listing\" : \"listings\"}\n </p>\n </div>\n <div className=\"flex items-center gap-1\">\n <SidebarTrigger className=\"size-7\" />\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7 sm:hidden\"\n onClick={() => setIsPanelVisible(false)}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n </div>\n\n <div className=\"border-b p-2\">\n <div className=\"flex items-center gap-2\">\n <div className=\"relative flex-1\">\n <Search className=\"pointer-events-none absolute top-1/2 left-2.5 z-10 size-4 -translate-y-1/2 text-muted-foreground\" />\n <Input\n placeholder=\"Search gear...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className={cn(\"h-9 pl-8\", searchQuery && \"pr-8\")}\n />\n {searchQuery && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute top-1/2 right-1 size-7 -translate-y-1/2\"\n onClick={() => setSearchQuery(\"\")}\n >\n <X className=\"size-3.5\" />\n </Button>\n )}\n </div>\n <div className=\"flex items-center gap-1 rounded-lg border p-0.5\">\n <Button\n variant={viewMode === \"list\" ? \"default\" : \"ghost\"}\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={() => setViewMode(\"list\")}\n >\n <List className=\"h-3.5 w-3.5\" />\n </Button>\n <Button\n variant={viewMode === \"grid\" ? \"default\" : \"ghost\"}\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={() => setViewMode(\"grid\")}\n >\n <Grid3x3 className=\"h-3.5 w-3.5\" />\n </Button>\n </div>\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-9 shrink-0\"\n >\n <ArrowUpDown className=\"size-4\" />\n </Button>\n }\n />\n <DropdownMenuContent align=\"end\" className=\"w-48\">\n <DropdownMenuGroup>\n <DropdownMenuItem\n onClick={() => setSortBy(\"price-low\")}\n className=\"gap-2\"\n >\n <DollarSign className=\"size-4\" />\n <span className=\"flex-1\">Price: Low to High</span>\n {sortBy === \"price-low\" && <Check className=\"size-4\" />}\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => setSortBy(\"price-high\")}\n className=\"gap-2\"\n >\n <TrendingUp className=\"size-4\" />\n <span className=\"flex-1\">Price: High to Low</span>\n {sortBy === \"price-high\" && <Check className=\"size-4\" />}\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => setSortBy(\"rating\")}\n className=\"gap-2\"\n >\n <Star className=\"size-4\" />\n <span className=\"flex-1\">Best rated</span>\n {sortBy === \"rating\" && <Check className=\"size-4\" />}\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => setSortBy(\"newest\")}\n className=\"gap-2\"\n >\n <Sparkles className=\"size-4\" />\n <span className=\"flex-1\">Newest first</span>\n {sortBy === \"newest\" && <Check className=\"size-4\" />}\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => setSortBy(\"reviews\")}\n className=\"gap-2\"\n >\n <MessageSquare className=\"size-4\" />\n <span className=\"flex-1\">Most reviews</span>\n {sortBy === \"reviews\" && <Check className=\"size-4\" />}\n </DropdownMenuItem>\n <DropdownMenuItem\n onClick={() => {\n if (!navigator.geolocation) {\n alert(\"Geolocation is not supported by your browser.\")\n return\n }\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const location = {\n lat: position.coords.latitude,\n lng: position.coords.longitude,\n }\n setUserLocation(location)\n setSortBy(\"nearest\")\n },\n () => {\n alert(\n \"Unable to get your location. Please try again later.\"\n )\n },\n {\n enableHighAccuracy: false,\n timeout: 5000,\n maximumAge: 300000,\n }\n )\n }}\n className=\"gap-2\"\n >\n <MapPin className=\"size-4\" />\n <span className=\"flex-1\">Nearest to me</span>\n {sortBy === \"nearest\" && <Check className=\"size-4\" />}\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n </div>\n\n <div ref={scrollContainerRef} className=\"flex-1 overflow-y-auto\">\n {listings.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <Search className=\"mb-2 size-8 text-muted-foreground\" />\n <p className=\"text-sm font-medium\">No products found</p>\n <p className=\"mt-1 text-xs text-muted-foreground\">\n Try adjusting your search or filters\n </p>\n </div>\n ) : viewMode === \"grid\" ? (\n <div className=\"grid grid-cols-1 gap-3 p-2\">\n {listings.map((listing) => {\n const isSelected = selectedListingId === listing.id\n\n return (\n <div\n key={listing.id}\n onClick={() => handleListingClick(listing)}\n className={cn(\n \"group cursor-pointer overflow-hidden rounded-xl border bg-card transition-all hover:shadow-lg\",\n isSelected &&\n \"border-primary shadow-lg ring-2 ring-primary/20\"\n )}\n >\n <div className=\"relative aspect-4/3 overflow-hidden\">\n <Carousel className=\"h-full w-full\">\n <CarouselContent className=\"h-full\">\n {listing.images.map((image, imageIndex) => (\n <CarouselItem key={imageIndex} className=\"h-full\">\n <img\n src={image}\n alt={`${listing.title} - Image ${imageIndex + 1}`}\n className=\"h-full w-full object-cover\"\n onError={(e) => {\n const target = e.target as HTMLImageElement\n target.src =\n \"https://images.unsplash.com/photo-1516035069371-29a1b244cc32?w=800&h=600&fit=crop\"\n }}\n />\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious className=\"left-2 h-8 w-8 bg-white/90 opacity-0! transition-opacity group-hover:opacity-100! hover:bg-white\" />\n <CarouselNext className=\"right-2 h-8 w-8 bg-white/90 opacity-0! transition-opacity group-hover:opacity-100! hover:bg-white\" />\n </Carousel>\n <div className=\"absolute top-2 right-2 z-10\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-8 w-8 rounded-full bg-background/80 backdrop-blur-sm hover:bg-background\"\n onClick={(e) => {\n e.stopPropagation()\n toggleFavorite(listing.id)\n }}\n >\n <Heart\n className={cn(\n \"h-4 w-4 transition-colors\",\n listing.isFavorite\n ? \"fill-destructive text-destructive\"\n : \"text-foreground\"\n )}\n />\n </Button>\n </div>\n {listing.isNew && (\n <div className=\"absolute top-2 left-2 z-10\">\n <Badge\n variant=\"default\"\n className=\"bg-primary text-xs text-primary-foreground\"\n >\n New\n </Badge>\n </div>\n )}\n {listing.instantBook && (\n <div className=\"absolute bottom-2 left-2 z-10\">\n <Badge\n variant=\"secondary\"\n className=\"bg-background/80 text-xs backdrop-blur-sm\"\n >\n Fast Checkout\n </Badge>\n </div>\n )}\n </div>\n <div className=\"p-3\">\n <div className=\"mb-1 flex items-start justify-between gap-2\">\n <div className=\"min-w-0 flex-1\">\n <h3 className=\"mb-1 truncate text-sm font-semibold\">\n {listing.title}\n </h3>\n <div className=\"mb-1 flex items-center gap-1 text-xs text-muted-foreground\">\n <MapPin className=\"h-3 w-3\" />\n <span className=\"truncate\">\n {listing.city}, {listing.country}\n </span>\n </div>\n </div>\n </div>\n <div className=\"mb-2 flex items-center gap-3 text-xs\">\n <div className=\"flex items-center gap-1\">\n <Star className=\"h-3.5 w-3.5 fill-yellow-400 text-yellow-400\" />\n <span className=\"font-medium\">\n {listing.rating.toFixed(1)}\n </span>\n <span className=\"text-muted-foreground\">\n ({listing.reviewCount})\n </span>\n </div>\n <span className=\"text-muted-foreground\">•</span>\n <span className=\"text-muted-foreground\">\n {propertyTypeLabels[listing.propertyType]}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <div>\n <span className=\"text-base font-semibold\">\n ${listing.pricePerNight}\n </span>\n <span className=\"text-xs text-muted-foreground\">\n {\" \"}\n / day\n </span>\n </div>\n <div className=\"flex items-center gap-2 text-xs text-muted-foreground\">\n {listing.bedrooms > 0 && (\n <span>\n {listing.bedrooms} kit\n {listing.bedrooms > 1 ? \"s\" : \"\"}\n </span>\n )}\n {listing.bathrooms > 0 && (\n <span>\n • {listing.bathrooms} add-on\n {listing.bathrooms > 1 ? \"s\" : \"\"}\n </span>\n )}\n </div>\n </div>\n </div>\n </div>\n )\n })}\n </div>\n ) : (\n <div className=\"space-y-3 p-2\">\n {listings.map((listing) => {\n const isSelected = selectedListingId === listing.id\n\n return (\n <div\n key={listing.id}\n onClick={() => handleListingClick(listing)}\n className={cn(\n \"group cursor-pointer overflow-hidden rounded-xl border bg-card transition-all hover:shadow-lg\",\n isSelected &&\n \"border-primary shadow-lg ring-2 ring-primary/20\",\n \"flex flex-col sm:flex-row\"\n )}\n >\n <div className=\"relative h-48 w-full flex-shrink-0 overflow-hidden sm:h-32 sm:w-32 md:h-40 md:w-40\">\n <img\n src={listing.images[0]}\n alt={listing.title}\n className=\"h-full w-full object-cover transition-transform group-hover:scale-105\"\n onError={(e) => {\n const target = e.target as HTMLImageElement\n target.src =\n \"https://images.unsplash.com/photo-1516035069371-29a1b244cc32?w=800&h=600&fit=crop\"\n }}\n />\n <div className=\"absolute top-2 right-2\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7 rounded-full bg-background/80 backdrop-blur-sm hover:bg-background sm:h-6 sm:w-6\"\n onClick={(e) => {\n e.stopPropagation()\n toggleFavorite(listing.id)\n }}\n >\n <Heart\n className={cn(\n \"h-3.5 w-3.5 transition-colors sm:h-3 sm:w-3\",\n listing.isFavorite\n ? \"fill-destructive text-destructive\"\n : \"text-foreground\"\n )}\n />\n </Button>\n </div>\n {listing.isNew && (\n <div className=\"absolute top-2 left-2\">\n <Badge\n variant=\"default\"\n className=\"bg-primary px-1.5 py-0.5 text-[10px] text-primary-foreground\"\n >\n New\n </Badge>\n </div>\n )}\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col justify-between p-3 sm:p-2.5\">\n <div className=\"flex-1\">\n <div className=\"mb-1.5 sm:mb-1\">\n <h3 className=\"mb-1 line-clamp-2 text-sm font-semibold sm:line-clamp-1 sm:text-xs\">\n {listing.title}\n </h3>\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <MapPin className=\"h-3 w-3 flex-shrink-0\" />\n <span className=\"truncate\">\n {listing.city}, {listing.country}\n </span>\n </div>\n </div>\n <div className=\"mb-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs\">\n <div className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n <span className=\"font-medium\">\n {listing.rating.toFixed(1)}\n </span>\n <span className=\"text-muted-foreground\">\n ({listing.reviewCount})\n </span>\n </div>\n <span className=\"hidden text-muted-foreground sm:inline\">\n •\n </span>\n <span className=\"text-muted-foreground\">\n {propertyTypeLabels[listing.propertyType]}\n </span>\n {listing.instantBook && (\n <>\n <span className=\"hidden text-muted-foreground sm:inline\">\n •\n </span>\n <Badge\n variant=\"secondary\"\n className=\"px-1.5 py-0 text-[10px]\"\n >\n Fast\n </Badge>\n </>\n )}\n </div>\n </div>\n <div className=\"flex items-center justify-between gap-2 border-t pt-2 sm:border-t-0 sm:pt-0\">\n <div className=\"flex-shrink-0\">\n <span className=\"text-base font-semibold sm:text-sm\">\n ${listing.pricePerNight}\n </span>\n <span className=\"text-xs text-muted-foreground\">\n {\" \"}\n / day\n </span>\n </div>\n <div className=\"flex flex-shrink-0 items-center gap-1.5 text-xs text-muted-foreground sm:gap-2\">\n {listing.bedrooms > 0 && (\n <span className=\"whitespace-nowrap\">\n {listing.bedrooms} kit\n {listing.bedrooms > 1 ? \"s\" : \"\"}\n </span>\n )}\n {listing.bathrooms > 0 && (\n <>\n <span className=\"hidden sm:inline\">•</span>\n <span className=\"whitespace-nowrap\">\n {listing.bathrooms} add-on\n {listing.bathrooms > 1 ? \"s\" : \"\"}\n </span>\n </>\n )}\n </div>\n </div>\n </div>\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n )\n}\n"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"path": "registry/example-apps/default/rentals/components/dashboard/map-controls.tsx",
|
|
16
|
-
"type": "registry:component",
|
|
17
|
-
"target": "components/example-apps/rentals/components/dashboard/map-controls.tsx",
|
|
18
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n Circle,\n Layers,\n Map,\n Mountain,\n Navigation,\n Satellite,\n ZoomIn,\n ZoomOut,\n} from \"lucide-react\"\n\nimport { Button } from \"@loveui/ui/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@loveui/ui/ui/menu\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@loveui/ui/ui/tooltip\"\n\nimport { cn } from \"../../lib/utils\"\nimport { useRentalsStore } from \"../../store/rentals-store\"\nimport { ThemeToggle } from \"../theme-toggle\"\n\nconst mapStyles = [\n {\n id: \"default\",\n name: \"Default\",\n icon: Circle,\n description: \"Follows theme\",\n },\n { id: \"streets\", name: \"Streets\", icon: Map, description: \"Detailed roads\" },\n {\n id: \"outdoors\",\n name: \"Outdoors\",\n icon: Mountain,\n description: \"Terrain & trails\",\n },\n {\n id: \"satellite\",\n name: \"Satellite\",\n icon: Satellite,\n description: \"Aerial view\",\n },\n] as const\n\nexport function MapControls() {\n const {\n mapZoom,\n setMapZoom,\n setMapCenter,\n setUserLocation,\n mapStyle,\n setMapStyle,\n } = useRentalsStore()\n\n const handleZoomIn = () => {\n setMapZoom(Math.min(mapZoom + 1, 18))\n }\n\n const handleZoomOut = () => {\n setMapZoom(Math.max(mapZoom - 1, 3))\n }\n\n const handleLocate = () => {\n if (\"geolocation\" in navigator) {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const location = {\n lat: position.coords.latitude,\n lng: position.coords.longitude,\n }\n setUserLocation(location)\n setMapCenter(location)\n setMapZoom(15)\n },\n () => {\n alert(\"Unable to get your location. Please try again later.\")\n },\n { enableHighAccuracy: false, timeout: 5000, maximumAge: 300000 }\n )\n } else {\n alert(\"Geolocation is not supported by your browser.\")\n }\n }\n\n return (\n <div className=\"absolute top-4 right-4 z-20 flex flex-col gap-2\">\n <div className=\"flex flex-col gap-2 rounded-lg border bg-background p-1 shadow-lg\">\n <DropdownMenu>\n <Tooltip>\n <TooltipTrigger\n render={\n <DropdownMenuTrigger\n render={\n <Button variant=\"ghost\" size=\"icon\" className=\"h-9 w-9\">\n <Layers className=\"h-4 w-4\" />\n </Button>\n }\n />\n }\n />\n <TooltipContent>Map style</TooltipContent>\n </Tooltip>\n <DropdownMenuContent align=\"end\" className=\"w-48\">\n {mapStyles.map((style) => {\n const Icon = style.icon\n return (\n <DropdownMenuItem\n key={style.id}\n onClick={() =>\n setMapStyle(\n style.id as\n | \"default\"\n | \"streets\"\n | \"outdoors\"\n | \"satellite\"\n )\n }\n className={cn(\"gap-3\", mapStyle === style.id && \"bg-accent\")}\n >\n <Icon className=\"size-4 shrink-0\" />\n <div className=\"flex flex-col\">\n <span className=\"font-medium\">{style.name}</span>\n <span className=\"text-xs text-muted-foreground\">\n {style.description}\n </span>\n </div>\n </DropdownMenuItem>\n )\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n <Tooltip>\n <TooltipTrigger\n render={\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={handleZoomIn}\n className=\"h-9 w-9\"\n >\n <ZoomIn className=\"h-4 w-4\" />\n </Button>\n }\n />\n <TooltipContent>Zoom in</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger\n render={\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={handleZoomOut}\n className=\"h-9 w-9\"\n >\n <ZoomOut className=\"h-4 w-4\" />\n </Button>\n }\n />\n <TooltipContent>Zoom out</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger\n render={\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={handleLocate}\n className=\"h-9 w-9\"\n >\n <Navigation className=\"h-4 w-4\" />\n </Button>\n }\n />\n <TooltipContent>Locate me</TooltipContent>\n </Tooltip>\n </div>\n\n <div className=\"flex flex-col gap-2 rounded-lg border bg-background p-1 shadow-lg\">\n <ThemeToggle />\n </div>\n </div>\n )\n}\n"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"path": "registry/example-apps/default/rentals/components/dashboard/map-view.tsx",
|
|
22
|
-
"type": "registry:component",
|
|
23
|
-
"target": "components/example-apps/rentals/components/dashboard/map-view.tsx",
|
|
24
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport maplibregl from \"maplibre-gl\"\n\nimport \"maplibre-gl/dist/maplibre-gl.css\"\n\nimport { useTheme } from \"next-themes\"\n\nimport { propertyTypeLabels } from \"../../mock-data/listings\"\nimport { useRentalsStore } from \"../../store/rentals-store\"\n\nconst MAP_STYLES = {\n light: \"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json\",\n dark: \"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json\",\n streets: \"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json\",\n outdoors: \"https://tiles.stadiamaps.com/styles/outdoors.json\",\n satellite: \"https://tiles.stadiamaps.com/styles/alidade_satellite.json\",\n}\n\nexport function MapView() {\n const containerRef = React.useRef<HTMLDivElement>(null)\n const mapRef = React.useRef<maplibregl.Map | null>(null)\n const markersRef = React.useRef<Map<string, maplibregl.Marker>>(new Map())\n const popupRef = React.useRef<maplibregl.Popup | null>(null)\n const isAnimatingRef = React.useRef(false)\n const { resolvedTheme } = useTheme()\n\n const {\n mapCenter,\n mapZoom,\n mapStyle,\n setMapCenter,\n setMapZoom,\n selectListing,\n selectedListingId,\n getFilteredListings,\n } = useRentalsStore()\n\n const listings = getFilteredListings()\n\n const getMapStyleUrl = React.useCallback(() => {\n if (mapStyle === \"default\") {\n return resolvedTheme === \"dark\" ? MAP_STYLES.dark : MAP_STYLES.light\n }\n return MAP_STYLES[mapStyle]\n }, [mapStyle, resolvedTheme])\n\n React.useEffect(() => {\n if (!containerRef.current || mapRef.current) return\n\n const map = new maplibregl.Map({\n container: containerRef.current,\n style: getMapStyleUrl(),\n center: [mapCenter.lng, mapCenter.lat],\n zoom: mapZoom,\n minZoom: 3,\n maxZoom: 18,\n attributionControl: false,\n })\n\n map.addControl(\n new maplibregl.AttributionControl({ compact: true }),\n \"bottom-right\"\n )\n\n map.on(\"moveend\", () => {\n if (isAnimatingRef.current) {\n isAnimatingRef.current = false\n return\n }\n const center = map.getCenter()\n const zoom = map.getZoom()\n setMapCenter({ lat: center.lat, lng: center.lng })\n setMapZoom(zoom)\n })\n\n mapRef.current = map\n\n const handleMapClick = (e: maplibregl.MapMouseEvent) => {\n if (popupRef.current) {\n const popupElement = popupRef.current.getElement()\n if (\n popupElement &&\n !popupElement.contains(e.originalEvent.target as Node)\n ) {\n const target = e.originalEvent.target as HTMLElement\n if (!target.closest(\".listing-marker-container\")) {\n popupRef.current.remove()\n popupRef.current = null\n selectListing(null)\n }\n }\n }\n }\n\n map.on(\"click\", handleMapClick)\n\n return () => {\n map.off(\"click\", handleMapClick)\n map.remove()\n mapRef.current = null\n }\n }, [selectListing])\n\n React.useEffect(() => {\n if (!mapRef.current) return\n mapRef.current.setStyle(getMapStyleUrl())\n }, [mapStyle, resolvedTheme, getMapStyleUrl])\n\n React.useEffect(() => {\n if (!mapRef.current) return\n\n markersRef.current.forEach((marker) => marker.remove())\n markersRef.current.clear()\n\n listings.forEach((listing) => {\n const isSelected = selectedListingId === listing.id\n\n const el = document.createElement(\"div\")\n el.className = \"listing-marker-container\"\n const priceText = `$${listing.pricePerNight}`\n el.innerHTML = `\n <div class=\"relative cursor-pointer transition-all ${\n isSelected ? \"scale-110 z-10\" : \"hover:scale-105\"\n }\">\n <div class=\"px-2.5 py-1.5 rounded-lg bg-card border-2 ${\n isSelected\n ? \"border-primary shadow-xl\"\n : \"border-border shadow-lg hover:shadow-xl\"\n } flex items-center justify-center min-w-[60px]\">\n <span class=\"text-sm font-semibold text-card-foreground whitespace-nowrap\">${priceText}</span>\n </div>\n ${\n isSelected\n ? '<div class=\"absolute -bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rounded-full bg-primary animate-ping\"></div>'\n : \"\"\n }\n </div>\n `\n\n el.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n\n if (popupRef.current) {\n const currentPopup = popupRef.current\n const currentLngLat = currentPopup.getLngLat()\n if (\n currentLngLat.lng === listing.coordinates.lng &&\n currentLngLat.lat === listing.coordinates.lat\n ) {\n currentPopup.remove()\n popupRef.current = null\n selectListing(null)\n return\n }\n currentPopup.remove()\n }\n\n if (!mapRef.current) return\n\n const popupContent = `\n <div class=\"listing-popup-content\">\n <div class=\"relative w-full h-64 mb-4 rounded-t-lg overflow-hidden\">\n <img \n src=\"${listing.images[0]}\" \n alt=\"${listing.title}\"\n class=\"w-full h-full object-cover\"\n onerror=\"this.src='https://images.unsplash.com/photo-1516035069371-29a1b244cc32?w=600&h=400&fit=crop'\"\n />\n <button \n class=\"close-popup-btn absolute top-3 right-3 w-8 h-8 rounded-full bg-white/95 backdrop-blur-sm hover:bg-white flex items-center justify-center transition-all shadow-md hover:shadow-lg z-10\"\n aria-label=\"Close\"\n >\n <svg class=\"w-4 h-4 text-gray-700\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n <div class=\"px-4 pb-4\">\n <div class=\"flex items-start justify-between mb-2\">\n <div class=\"flex-1 min-w-0\">\n <h3 class=\"font-semibold text-base mb-1\">${\n propertyTypeLabels[listing.propertyType]\n } • ${listing.city}</h3>\n <p class=\"text-sm text-muted-foreground mb-2 line-clamp-2\">${\n listing.title\n }</p>\n </div>\n <div class=\"flex items-center gap-1 ml-2 shrink-0\">\n <svg class=\"w-4 h-4 fill-yellow-400 text-yellow-400\" viewBox=\"0 0 20 20\">\n <path d=\"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z\" />\n </svg>\n <span class=\"text-sm font-medium\">${listing.rating.toFixed(\n 1\n )}</span>\n <span class=\"text-xs text-muted-foreground\">(${\n listing.reviewCount\n })</span>\n </div>\n </div>\n <div class=\"flex items-center gap-2 text-sm text-muted-foreground mb-3\">\n ${\n listing.bedrooms > 0\n ? `<span>${listing.bedrooms} kit${\n listing.bedrooms > 1 ? \"s\" : \"\"\n }</span>`\n : \"\"\n }\n ${\n listing.bedrooms > 0 && listing.bathrooms > 0\n ? \"<span>•</span>\"\n : \"\"\n }\n ${\n listing.bathrooms > 0\n ? `<span>${listing.bathrooms} add-on${\n listing.bathrooms > 1 ? \"s\" : \"\"\n }</span>`\n : \"\"\n }\n </div>\n <div class=\"flex items-baseline gap-2\">\n <span class=\"text-xl font-semibold\">$${\n listing.pricePerNight\n }</span>\n <span class=\"text-sm text-muted-foreground\">/ day</span>\n </div>\n </div>\n </div>\n `\n\n const point = mapRef.current.project([\n listing.coordinates.lng,\n listing.coordinates.lat,\n ])\n const mapHeight = mapRef.current.getContainer().clientHeight\n const mapWidth = mapRef.current.getContainer().clientWidth\n\n const isNearBottom = point.y > mapHeight * 0.7\n const isNearTop = point.y < mapHeight * 0.3\n const isNearRight = point.x > mapWidth * 0.7\n const isNearLeft = point.x < mapWidth * 0.3\n\n let offsetX = 0\n let offsetY = -30\n\n if (isNearBottom) {\n offsetY = 20\n } else if (isNearTop) {\n offsetY = -60\n }\n\n if (isNearRight) {\n offsetX = -20\n } else if (isNearLeft) {\n offsetX = 20\n }\n\n const popup = new maplibregl.Popup({\n offset: [offsetX, offsetY],\n closeButton: false,\n closeOnClick: false,\n className: \"listing-popup\",\n maxWidth: \"400px\",\n })\n .setLngLat([listing.coordinates.lng, listing.coordinates.lat])\n .setHTML(popupContent)\n .addTo(mapRef.current!)\n\n const popupElement = popup.getElement()\n if (popupElement) {\n popupElement.style.zIndex = \"1000\"\n\n const closeButton = popupElement.querySelector(\".close-popup-btn\")\n if (closeButton) {\n closeButton.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n popup.remove()\n popupRef.current = null\n selectListing(null)\n })\n }\n\n popupElement.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n if (mapRef.current) {\n isAnimatingRef.current = true\n mapRef.current.flyTo({\n center: [listing.coordinates.lng, listing.coordinates.lat],\n zoom: Math.max(mapRef.current.getZoom(), 14),\n essential: true,\n })\n }\n })\n }\n\n popupRef.current = popup\n selectListing(listing.id)\n })\n\n const marker = new maplibregl.Marker({ element: el })\n .setLngLat([listing.coordinates.lng, listing.coordinates.lat])\n .addTo(mapRef.current!)\n\n markersRef.current.set(listing.id, marker)\n })\n }, [listings, selectedListingId, selectListing])\n\n const lastCenterRef = React.useRef({\n lat: mapCenter.lat,\n lng: mapCenter.lng,\n })\n const lastZoomRef = React.useRef(mapZoom)\n\n React.useEffect(() => {\n if (!mapRef.current) return\n\n const centerChanged =\n Math.abs(lastCenterRef.current.lat - mapCenter.lat) > 0.0001 ||\n Math.abs(lastCenterRef.current.lng - mapCenter.lng) > 0.0001\n const zoomChanged = Math.abs(lastZoomRef.current - mapZoom) > 0.1\n\n if (centerChanged || zoomChanged) {\n isAnimatingRef.current = true\n mapRef.current.flyTo({\n center: [mapCenter.lng, mapCenter.lat],\n zoom: mapZoom,\n essential: true,\n })\n lastCenterRef.current = { lat: mapCenter.lat, lng: mapCenter.lng }\n lastZoomRef.current = mapZoom\n }\n }, [mapCenter, mapZoom])\n\n return <div ref={containerRef} className=\"absolute inset-0 h-full w-full\" />\n}\n"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"path": "registry/example-apps/default/rentals/components/dashboard/sidebar.tsx",
|
|
28
|
-
"type": "registry:component",
|
|
29
|
-
"target": "components/example-apps/rentals/components/dashboard/sidebar.tsx",
|
|
30
|
-
"content": "\"use client\"\n\nimport Link from \"next/link\"\nimport { usePathname } from \"next/navigation\"\nimport {\n ChevronsUpDown,\n Heart,\n Home,\n LogOut,\n Minus,\n Plus,\n Search,\n Settings,\n} from \"lucide-react\"\n\nimport { Button } from \"@loveui/ui/ui/button\"\nimport { Input } from \"@loveui/ui/ui/input\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@loveui/ui/ui/menu\"\nimport { Separator } from \"@loveui/ui/ui/separator\"\nimport { Slider } from \"@loveui/ui/ui/slider\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nimport { cn } from \"../../lib/utils\"\nimport { propertyTypeLabels, type PropertyType } from \"../../mock-data/listings\"\nimport { useRentalsStore } from \"../../store/rentals-store\"\n\nconst navItems = [\n { id: \"all\", title: \"All Gear\", icon: Home, href: \"/\" },\n { id: \"favorites\", title: \"Favorites\", icon: Heart, href: \"/favorites\" },\n]\n\nconst propertyTypes: PropertyType[] = [\n \"apartment\",\n \"house\",\n \"villa\",\n \"studio\",\n \"loft\",\n \"cottage\",\n]\n\nexport function RentalsSidebar({\n ...props\n}: React.ComponentProps<typeof Sidebar>) {\n const pathname = usePathname()\n const {\n listings,\n searchQuery,\n setSearchQuery,\n selectedPropertyTypes,\n togglePropertyType,\n priceRange,\n setPriceRange,\n bedrooms,\n setBedrooms,\n bathrooms,\n setBathrooms,\n getFilteredListings,\n getFavoriteListings,\n resetFilters,\n } = useRentalsStore()\n\n const favoriteCount = listings.filter((l) => l.isFavorite).length\n const allCount = listings.length\n const filteredCount = getFilteredListings().length\n\n const activeFiltersCount =\n selectedPropertyTypes.length +\n (priceRange[0] !== 0 || priceRange[1] !== 500 ? 1 : 0) +\n (bedrooms !== null ? 1 : 0) +\n (bathrooms !== null ? 1 : 0)\n\n return (\n <Sidebar collapsible=\"offcanvas\" {...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-primary text-primary-foreground\">\n <Home className=\"size-4\" />\n </div>\n <div className=\"flex items-center gap-1 group-data-[collapsible=icon]:hidden\">\n <span className=\"text-sm font-medium\">\n LoveUI - Gear Market\n </span>\n <ChevronsUpDown className=\"size-3 text-muted-foreground\" />\n </div>\n </button>\n }\n />\n <DropdownMenuContent align=\"start\" className=\"w-56\">\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <Settings className=\"size-4\" />\n <span>Settings</span>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem className=\"text-destructive focus:text-destructive\">\n <LogOut className=\"size-4\" />\n <span>Log out</span>\n </DropdownMenuItem>\n </DropdownMenuGroup>\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 const isActive = pathname === item.href\n let badge: number | undefined\n if (item.id === \"favorites\") badge = favoriteCount\n if (item.id === \"all\") badge = allCount\n\n return (\n <SidebarMenuItem key={item.id}>\n <SidebarMenuButton\n render={<Link href={item.href} />}\n isActive={isActive}\n className=\"h-8\"\n >\n <item.icon className=\"size-4\" />\n <span className=\"text-sm\">{item.title}</span>\n </SidebarMenuButton>\n {badge !== undefined && badge > 0 && (\n <SidebarMenuBadge>{badge}</SidebarMenuBadge>\n )}\n </SidebarMenuItem>\n )\n })}\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n\n <SidebarGroup className=\"mt-4 p-0\">\n <SidebarGroupLabel className=\"h-6 px-0\">\n <span className=\"text-[10px] font-medium tracking-wider text-muted-foreground uppercase\">\n Search\n </span>\n </SidebarGroupLabel>\n <SidebarGroupContent>\n <div className=\"px-2 pb-2\">\n <div className=\"relative\">\n <Search className=\"pointer-events-none absolute top-1/2 left-2 z-10 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground\" />\n <Input\n type=\"text\"\n placeholder=\"Search products...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"h-8 pl-7 text-sm\"\n />\n </div>\n </div>\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 uppercase\">\n Filters\n </span>\n {activeFiltersCount > 0 && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-5 px-1.5 text-[10px]\"\n onClick={resetFilters}\n >\n Clear\n </Button>\n )}\n </SidebarGroupLabel>\n <SidebarGroupContent>\n <div className=\"space-y-4 px-2\">\n <div>\n <p className=\"mb-2 text-xs font-medium text-sidebar-foreground\">\n Category\n </p>\n <div className=\"flex flex-wrap gap-1.5\">\n {propertyTypes.map((type) => (\n <Button\n key={type}\n variant={\n selectedPropertyTypes.includes(type)\n ? \"default\"\n : \"outline\"\n }\n size=\"sm\"\n onClick={() => togglePropertyType(type)}\n className={cn(\n \"h-7 px-2 text-xs\",\n selectedPropertyTypes.includes(type) &&\n \"bg-primary text-primary-foreground\"\n )}\n >\n {propertyTypeLabels[type]}\n </Button>\n ))}\n </div>\n </div>\n\n <Separator />\n\n <div>\n <p className=\"mb-2 text-xs font-medium text-sidebar-foreground\">\n Daily rate\n </p>\n <div className=\"space-y-2\">\n <div className=\"px-2\">\n <Slider\n value={[priceRange[0], priceRange[1]]}\n onValueChange={(value) => {\n const range = (\n Array.isArray(value) ? value : [value, value]\n ) as readonly number[]\n setPriceRange([\n range[0] ?? 0,\n range[1] ?? range[0] ?? 0,\n ])\n }}\n min={0}\n max={500}\n step={10}\n className=\"w-full\"\n />\n <div className=\"mt-2 flex items-center justify-between\">\n <span className=\"text-xs text-muted-foreground\">\n ${priceRange[0]}\n </span>\n <span className=\"text-xs text-muted-foreground\">\n ${priceRange[1]}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <Separator />\n\n <div>\n <p className=\"mb-2 text-xs font-medium text-sidebar-foreground\">\n Inventory\n </p>\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-xs text-sidebar-foreground\">\n Kits\n </span>\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-6 w-6\"\n onClick={() =>\n setBedrooms(\n bedrooms !== null && bedrooms > 0\n ? bedrooms - 1\n : null\n )\n }\n >\n <Minus className=\"h-3 w-3\" />\n </Button>\n <span className=\"w-6 text-center text-xs\">\n {bedrooms ?? \"Any\"}\n </span>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-6 w-6\"\n onClick={() => setBedrooms((bedrooms ?? 0) + 1)}\n >\n <Plus className=\"h-3 w-3\" />\n </Button>\n </div>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-xs text-sidebar-foreground\">\n Add-ons\n </span>\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-6 w-6\"\n onClick={() =>\n setBathrooms(\n bathrooms !== null && bathrooms > 0\n ? bathrooms - 1\n : null\n )\n }\n >\n <Minus className=\"h-3 w-3\" />\n </Button>\n <span className=\"w-6 text-center text-xs\">\n {bathrooms ?? \"Any\"}\n </span>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-6 w-6\"\n onClick={() => setBathrooms((bathrooms ?? 0) + 1)}\n >\n <Plus className=\"h-3 w-3\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </SidebarGroupContent>\n </SidebarGroup>\n </SidebarContent>\n </Sidebar>\n )\n}\n"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"path": "registry/example-apps/default/rentals/components/theme-provider.tsx",
|
|
34
|
-
"type": "registry:component",
|
|
35
|
-
"target": "components/example-apps/rentals/components/theme-provider.tsx",
|
|
36
|
-
"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"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"path": "registry/example-apps/default/rentals/components/theme-toggle.tsx",
|
|
40
|
-
"type": "registry:component",
|
|
41
|
-
"target": "components/example-apps/rentals/components/theme-toggle.tsx",
|
|
42
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Moon, Sun } from \"lucide-react\"\nimport { useTheme } from \"next-themes\"\n\nimport { Button } from \"@loveui/ui/ui/button\"\n\ninterface ThemeToggleProps {\n className?: string\n}\n\nexport function ThemeToggle({ className }: ThemeToggleProps) {\n const { setTheme, theme } = useTheme()\n\n return (\n <Button\n variant=\"outline\"\n size=\"icon\"\n className={className}\n onClick={() => setTheme(theme === \"light\" ? \"dark\" : \"light\")}\n >\n <Sun className=\"size-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90\" />\n <Moon className=\"absolute size-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0\" />\n <span className=\"sr-only\">Toggle theme</span>\n </Button>\n )\n}\n"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"path": "registry/example-apps/default/rentals/components/ui/badge.tsx",
|
|
46
|
-
"type": "registry:ui",
|
|
47
|
-
"target": "components/example-apps/rentals/components/ui/badge.tsx",
|
|
48
|
-
"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"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"path": "registry/example-apps/default/rentals/components/ui/button.tsx",
|
|
52
|
-
"type": "registry:ui",
|
|
53
|
-
"target": "components/example-apps/rentals/components/ui/button.tsx",
|
|
54
|
-
"content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\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 cursor-pointer 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\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: ButtonProps) {\n const Comp: any = asChild ? Slot : \"button\"\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...(props as any)}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"path": "registry/example-apps/default/rentals/components/ui/carousel.tsx",
|
|
58
|
-
"type": "registry:ui",
|
|
59
|
-
"target": "components/example-apps/rentals/components/ui/carousel.tsx",
|
|
60
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <>\n {canScrollPrev && (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n onClick={(e) => {\n e.stopPropagation()\n scrollPrev()\n }}\n {...props}\n >\n <ArrowLeft className=\"size-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )}\n </>\n )\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <>\n {canScrollNext && (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n onClick={(e) => {\n e.stopPropagation()\n scrollNext()\n }}\n {...props}\n >\n <ArrowRight className=\"size-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )}\n </>\n )\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"path": "registry/example-apps/default/rentals/components/ui/dropdown-menu.tsx",
|
|
64
|
-
"type": "registry:ui",
|
|
65
|
-
"target": "components/example-apps/rentals/components/ui/dropdown-menu.tsx",
|
|
66
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { Check, ChevronRight } from \"lucide-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 <ChevronRight className=\"ml-auto size-4\" />\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 <Check className=\"size-4\" />\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 <Check className=\"size-4\" />\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"
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"path": "registry/example-apps/default/rentals/components/ui/input.tsx",
|
|
70
|
-
"type": "registry:ui",
|
|
71
|
-
"target": "components/example-apps/rentals/components/ui/input.tsx",
|
|
72
|
-
"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"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"path": "registry/example-apps/default/rentals/components/ui/separator.tsx",
|
|
76
|
-
"type": "registry:ui",
|
|
77
|
-
"target": "components/example-apps/rentals/components/ui/separator.tsx",
|
|
78
|
-
"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"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"path": "registry/example-apps/default/rentals/components/ui/sheet.tsx",
|
|
82
|
-
"type": "registry:ui",
|
|
83
|
-
"target": "components/example-apps/rentals/components/ui/sheet.tsx",
|
|
84
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { X } from \"lucide-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 <X className=\"size-4\" />\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"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"path": "registry/example-apps/default/rentals/components/ui/sidebar.tsx",
|
|
88
|
-
"type": "registry:ui",
|
|
89
|
-
"target": "components/example-apps/rentals/components/ui/sidebar.tsx",
|
|
90
|
-
"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 { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft } from \"lucide-react\"\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 = \"offcanvas\",\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"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=offcanvas]: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=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]: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 <PanelLeft className=\"size-4\" />\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=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-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"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"path": "registry/example-apps/default/rentals/components/ui/skeleton.tsx",
|
|
94
|
-
"type": "registry:ui",
|
|
95
|
-
"target": "components/example-apps/rentals/components/ui/skeleton.tsx",
|
|
96
|
-
"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"
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"path": "registry/example-apps/default/rentals/components/ui/slider.tsx",
|
|
100
|
-
"type": "registry:ui",
|
|
101
|
-
"target": "components/example-apps/rentals/components/ui/slider.tsx",
|
|
102
|
-
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\"\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"absolute bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"path": "registry/example-apps/default/rentals/components/ui/tooltip.tsx",
|
|
106
|
-
"type": "registry:ui",
|
|
107
|
-
"target": "components/example-apps/rentals/components/ui/tooltip.tsx",
|
|
108
|
-
"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"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"path": "registry/example-apps/default/rentals/hooks/use-mobile.ts",
|
|
112
|
-
"type": "registry:hook",
|
|
113
|
-
"target": "components/example-apps/rentals/hooks/use-mobile.ts",
|
|
114
|
-
"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"
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
"path": "registry/example-apps/default/rentals/index.tsx",
|
|
118
|
-
"type": "registry:file",
|
|
119
|
-
"target": "components/example-apps/rentals/index.tsx",
|
|
120
|
-
"content": "/**\n * Wrapper export for embedding the app in the docs app\n */\n\"use client\"\n\nimport { SidebarInset, SidebarProvider } from \"@/components/ui/sidebar\"\n\nimport { ListingsPanel } from \"./components/dashboard/listings-panel\"\nimport { MapControls } from \"./components/dashboard/map-controls\"\nimport { MapView } from \"./components/dashboard/map-view\"\nimport { RentalsSidebar } from \"./components/dashboard/sidebar\"\n\nexport default function RentalsWrapper() {\n return (\n <SidebarProvider>\n <RentalsSidebar />\n <SidebarInset className=\"overflow-hidden\">\n <div className=\"relative h-full w-full overflow-hidden\">\n <MapView />\n <ListingsPanel />\n <MapControls />\n </div>\n </SidebarInset>\n </SidebarProvider>\n )\n}\n"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"path": "registry/example-apps/default/rentals/lib/utils.ts",
|
|
124
|
-
"type": "registry:lib",
|
|
125
|
-
"target": "components/example-apps/rentals/lib/utils.ts",
|
|
126
|
-
"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"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"path": "registry/example-apps/default/rentals/mock-data/listings.ts",
|
|
130
|
-
"type": "registry:lib",
|
|
131
|
-
"target": "components/example-apps/rentals/mock-data/listings.ts",
|
|
132
|
-
"content": "export type PropertyType =\n | \"apartment\"\n | \"house\"\n | \"villa\"\n | \"studio\"\n | \"loft\"\n | \"cottage\"\n\nexport type Listing = {\n id: string\n title: string\n description: string\n address: string\n city: string\n country: string\n coordinates: {\n lat: number\n lng: number\n }\n pricePerNight: number\n propertyType: PropertyType\n bedrooms: number\n beds: number\n bathrooms: number\n guests: number\n rating: number\n reviewCount: number\n images: string[]\n amenities: string[]\n host: {\n name: string\n avatar: string\n isSuperhost: boolean\n }\n isFavorite: boolean\n isNew: boolean\n instantBook: boolean\n}\n\nconst cameraImages = [\n \"https://images.unsplash.com/photo-1516035069371-29a1b244cc32?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1495707902641-75cac588d2e9?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1502982720700-bfff97f2ecac?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1452780212940-6f5c0d14d848?w=900&h=700&fit=crop\",\n]\n\nconst audioImages = [\n \"https://images.unsplash.com/photo-1511379938547-c1f69419868d?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1484704849700-f032a568e944?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1589903308904-1010c2294adc?w=900&h=700&fit=crop\",\n]\n\nconst cyclingImages = [\n \"https://images.unsplash.com/photo-1511994298241-608e28f14fde?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1532298229144-0ec0c57515c7?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1529422643029-d4585747aaf2?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1485965120184-e220f721d03e?w=900&h=700&fit=crop\",\n]\n\nconst campingImages = [\n \"https://images.unsplash.com/photo-1504851149312-7a075b496cc7?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1478131143081-80f7f84ca84d?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1470246973918-29a93221c455?w=900&h=700&fit=crop\",\n]\n\nconst droneImages = [\n \"https://images.unsplash.com/photo-1508614589041-895b88991e3e?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1521405924368-64c5b84bec60?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1524143986875-3b098d78b363?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1527977966376-1c8408f9f108?w=900&h=700&fit=crop\",\n]\n\nconst gamingImages = [\n \"https://images.unsplash.com/photo-1542751371-adc38448a05e?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1545239351-1141bd82e8a6?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1612287230202-1ff1d85d1bdf?w=900&h=700&fit=crop\",\n \"https://images.unsplash.com/photo-1598550476439-6847785fcea6?w=900&h=700&fit=crop\",\n]\n\nexport const listings: Listing[] = [\n {\n id: \"gear-1\",\n title: \"Sony FX3 Creator Cinema Kit\",\n description:\n \"Full-frame camera kit with cage, monitor, and dual batteries for short-form shoots.\",\n address: \"1141 W Colfax Ave\",\n city: \"Denver\",\n country: \"USA\",\n coordinates: { lat: 39.7392, lng: -104.9903 },\n pricePerNight: 185,\n propertyType: \"apartment\",\n bedrooms: 3,\n beds: 5,\n bathrooms: 2,\n guests: 6,\n rating: 4.9,\n reviewCount: 132,\n images: cameraImages,\n amenities: [\n \"Damage waiver\",\n \"Same-day pickup\",\n \"Tripod included\",\n \"ND filters\",\n ],\n host: {\n name: \"Mia Park\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=MiaPark\",\n isSuperhost: true,\n },\n isFavorite: true,\n isNew: false,\n instantBook: true,\n },\n {\n id: \"gear-2\",\n title: \"Canon R6 Mark II Event Bundle\",\n description:\n \"Low-light camera setup with two lenses and flash for events and portraits.\",\n address: \"219 SW Pine St\",\n city: \"Portland\",\n country: \"USA\",\n coordinates: { lat: 45.5152, lng: -122.6784 },\n pricePerNight: 165,\n propertyType: \"apartment\",\n bedrooms: 2,\n beds: 4,\n bathrooms: 2,\n guests: 4,\n rating: 4.8,\n reviewCount: 88,\n images: cameraImages,\n amenities: [\"Insurance included\", \"Lens cleaning kit\", \"Express return\"],\n host: {\n name: \"Noah Kim\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=NoahKim\",\n isSuperhost: true,\n },\n isFavorite: false,\n isNew: true,\n instantBook: true,\n },\n {\n id: \"gear-3\",\n title: \"Rode Podcast Studio Rack\",\n description:\n \"Two-mic recording station with interface, acoustic panels, and backup recorder.\",\n address: \"802 E 6th St\",\n city: \"Austin\",\n country: \"USA\",\n coordinates: { lat: 30.2672, lng: -97.7431 },\n pricePerNight: 95,\n propertyType: \"house\",\n bedrooms: 2,\n beds: 4,\n bathrooms: 3,\n guests: 5,\n rating: 4.7,\n reviewCount: 61,\n images: audioImages,\n amenities: [\"On-site sound check\", \"USB-C cables\", \"Pop filters\"],\n host: {\n name: \"Camden Lee\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=CamdenLee\",\n isSuperhost: false,\n },\n isFavorite: true,\n isNew: false,\n instantBook: true,\n },\n {\n id: \"gear-4\",\n title: \"Pioneer DJ Booth Starter Set\",\n description:\n \"Controller, monitors, and lighting for club practice sessions and pop-up sets.\",\n address: \"1430 2nd Ave\",\n city: \"Seattle\",\n country: \"USA\",\n coordinates: { lat: 47.6062, lng: -122.3321 },\n pricePerNight: 140,\n propertyType: \"house\",\n bedrooms: 3,\n beds: 5,\n bathrooms: 4,\n guests: 8,\n rating: 4.9,\n reviewCount: 109,\n images: audioImages,\n amenities: [\"Speaker stands\", \"MIDI cables\", \"Late-night pickup\"],\n host: {\n name: \"Zara Patel\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=ZaraPatel\",\n isSuperhost: true,\n },\n isFavorite: false,\n isNew: true,\n instantBook: false,\n },\n {\n id: \"gear-5\",\n title: \"Trek Domane Carbon Road Package\",\n description:\n \"Race-ready road bike with helmet, meter pedals, and roadside repair kit.\",\n address: \"1745 28th St\",\n city: \"Boulder\",\n country: \"USA\",\n coordinates: { lat: 40.015, lng: -105.2705 },\n pricePerNight: 125,\n propertyType: \"villa\",\n bedrooms: 2,\n beds: 3,\n bathrooms: 2,\n guests: 2,\n rating: 4.8,\n reviewCount: 73,\n images: cyclingImages,\n amenities: [\"Bike fit included\", \"Tube pack\", \"GPS mount\"],\n host: {\n name: \"Ethan Ruiz\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=EthanRuiz\",\n isSuperhost: true,\n },\n isFavorite: true,\n isNew: false,\n instantBook: true,\n },\n {\n id: \"gear-6\",\n title: \"Specialized Trail e-MTB Set\",\n description:\n \"Electric mountain bike package with charger, pads, and hydration vest.\",\n address: \"5025 N Harbor Dr\",\n city: \"San Diego\",\n country: \"USA\",\n coordinates: { lat: 32.7157, lng: -117.1611 },\n pricePerNight: 160,\n propertyType: \"villa\",\n bedrooms: 2,\n beds: 3,\n bathrooms: 3,\n guests: 2,\n rating: 4.9,\n reviewCount: 96,\n images: cyclingImages,\n amenities: [\"Helmet included\", \"Trail map pack\", \"Battery swap option\"],\n host: {\n name: \"Ava Brooks\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=AvaBrooks\",\n isSuperhost: true,\n },\n isFavorite: false,\n isNew: true,\n instantBook: true,\n },\n {\n id: \"gear-7\",\n title: \"4-Person Basecamp Weekend Kit\",\n description:\n \"Tent, stove, lanterns, and insulated sleeping system for quick camp escapes.\",\n address: \"8812 N 3rd St\",\n city: \"Phoenix\",\n country: \"USA\",\n coordinates: { lat: 33.4484, lng: -112.074 },\n pricePerNight: 84,\n propertyType: \"studio\",\n bedrooms: 4,\n beds: 8,\n bathrooms: 4,\n guests: 6,\n rating: 4.6,\n reviewCount: 57,\n images: campingImages,\n amenities: [\"Cooler included\", \"Fuel canister\", \"Camp chairs\"],\n host: {\n name: \"Leo Clark\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=LeoClark\",\n isSuperhost: false,\n },\n isFavorite: false,\n isNew: false,\n instantBook: true,\n },\n {\n id: \"gear-8\",\n title: \"Winter Touring Shelter Bundle\",\n description:\n \"Cold-weather tent system, avalanche beacons, and insulated cook station.\",\n address: \"311 W 200 S\",\n city: \"Salt Lake City\",\n country: \"USA\",\n coordinates: { lat: 40.7608, lng: -111.891 },\n pricePerNight: 112,\n propertyType: \"studio\",\n bedrooms: 3,\n beds: 7,\n bathrooms: 5,\n guests: 5,\n rating: 4.7,\n reviewCount: 48,\n images: campingImages,\n amenities: [\"Emergency beacon\", \"Snow stakes\", \"Warm liner set\"],\n host: {\n name: \"Iris Shaw\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=IrisShaw\",\n isSuperhost: true,\n },\n isFavorite: true,\n isNew: false,\n instantBook: false,\n },\n {\n id: \"gear-9\",\n title: \"DJI Mavic 3 Fly More Pack\",\n description:\n \"Long-range drone bundle with ND set, charging dock, and dual operator screens.\",\n address: \"810 Broadway\",\n city: \"Nashville\",\n country: \"USA\",\n coordinates: { lat: 36.1627, lng: -86.7816 },\n pricePerNight: 210,\n propertyType: \"loft\",\n bedrooms: 2,\n beds: 4,\n bathrooms: 3,\n guests: 3,\n rating: 4.9,\n reviewCount: 143,\n images: droneImages,\n amenities: [\"Flight insurance\", \"Landing pad\", \"48-hour support\"],\n host: {\n name: \"Remy Foster\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=RemyFoster\",\n isSuperhost: true,\n },\n isFavorite: true,\n isNew: true,\n instantBook: true,\n },\n {\n id: \"gear-10\",\n title: \"FPV Racing Drone Starter Crate\",\n description:\n \"Complete FPV setup with goggles, spare props, and training simulator access.\",\n address: \"155 NE 40th St\",\n city: \"Miami\",\n country: \"USA\",\n coordinates: { lat: 25.7617, lng: -80.1918 },\n pricePerNight: 132,\n propertyType: \"loft\",\n bedrooms: 3,\n beds: 5,\n bathrooms: 4,\n guests: 4,\n rating: 4.7,\n reviewCount: 77,\n images: droneImages,\n amenities: [\"Extra propellers\", \"Practice gates\", \"Battery bag\"],\n host: {\n name: \"Skye Morgan\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=SkyeMorgan\",\n isSuperhost: false,\n },\n isFavorite: false,\n isNew: false,\n instantBook: true,\n },\n {\n id: \"gear-11\",\n title: \"Pro Streaming Battle Station\",\n description:\n \"Dual-PC gaming setup with capture card, scene lights, and creator mic arm.\",\n address: \"227 W Hubbard St\",\n city: \"Chicago\",\n country: \"USA\",\n coordinates: { lat: 41.8781, lng: -87.6298 },\n pricePerNight: 118,\n propertyType: \"cottage\",\n bedrooms: 2,\n beds: 4,\n bathrooms: 4,\n guests: 3,\n rating: 4.8,\n reviewCount: 84,\n images: gamingImages,\n amenities: [\"Scene presets\", \"Cable management\", \"Overlays included\"],\n host: {\n name: \"Jules Quinn\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=JulesQuinn\",\n isSuperhost: true,\n },\n isFavorite: false,\n isNew: true,\n instantBook: true,\n },\n {\n id: \"gear-12\",\n title: \"VR Event Pop-up Arena Kit\",\n description:\n \"Portable VR package for activations with signage, chargers, and queue display.\",\n address: \"443 W 14th St\",\n city: \"New York\",\n country: \"USA\",\n coordinates: { lat: 40.7128, lng: -74.006 },\n pricePerNight: 225,\n propertyType: \"cottage\",\n bedrooms: 4,\n beds: 8,\n bathrooms: 5,\n guests: 10,\n rating: 4.9,\n reviewCount: 101,\n images: gamingImages,\n amenities: [\"On-site setup\", \"Safety mats\", \"Fast replacement\"],\n host: {\n name: \"Theo Reed\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=TheoReed\",\n isSuperhost: true,\n },\n isFavorite: true,\n isNew: false,\n instantBook: false,\n },\n {\n id: \"gear-13\",\n title: \"Portable Film Lighting Grid\",\n description:\n \"RGB panel package with softboxes and remote dimmer for interviews and product shots.\",\n address: \"780 N Highland Ave\",\n city: \"Los Angeles\",\n country: \"USA\",\n coordinates: { lat: 34.0522, lng: -118.2437 },\n pricePerNight: 138,\n propertyType: \"house\",\n bedrooms: 3,\n beds: 5,\n bathrooms: 4,\n guests: 5,\n rating: 4.8,\n reviewCount: 92,\n images: cameraImages,\n amenities: [\"Diffusion kit\", \"Sandbags\", \"Color cards\"],\n host: {\n name: \"Rae Dalton\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=RaeDalton\",\n isSuperhost: false,\n },\n isFavorite: false,\n isNew: false,\n instantBook: true,\n },\n {\n id: \"gear-14\",\n title: \"Wedding Photo Duo Package\",\n description:\n \"Two-camera setup with portrait primes, wireless flash triggers, and backup drive.\",\n address: \"940 Peachtree St NE\",\n city: \"Atlanta\",\n country: \"USA\",\n coordinates: { lat: 33.749, lng: -84.388 },\n pricePerNight: 196,\n propertyType: \"apartment\",\n bedrooms: 3,\n beds: 6,\n bathrooms: 3,\n guests: 6,\n rating: 4.9,\n reviewCount: 128,\n images: cameraImages,\n amenities: [\"Lens insurance\", \"Rain cover\", \"Color checker\"],\n host: {\n name: \"Kira Holt\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=KiraHolt\",\n isSuperhost: true,\n },\n isFavorite: true,\n isNew: false,\n instantBook: true,\n },\n {\n id: \"gear-15\",\n title: \"Field Audio Interview Pack\",\n description:\n \"Compact audio kit with lavs, boom mic, and timecode recorder for documentary crews.\",\n address: \"1810 Rue Sainte-Catherine O\",\n city: \"Montreal\",\n country: \"Canada\",\n coordinates: { lat: 45.5017, lng: -73.5673 },\n pricePerNight: 104,\n propertyType: \"house\",\n bedrooms: 2,\n beds: 4,\n bathrooms: 3,\n guests: 4,\n rating: 4.7,\n reviewCount: 59,\n images: audioImages,\n amenities: [\"Rechargeable battery bank\", \"Wind protection\", \"Hard case\"],\n host: {\n name: \"Nina Vale\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=NinaVale\",\n isSuperhost: false,\n },\n isFavorite: false,\n isNew: true,\n instantBook: true,\n },\n {\n id: \"gear-16\",\n title: \"Urban Courier Bike Fleet Kit\",\n description:\n \"Three-bike city set with helmets, pannier bags, and tracking mounts.\",\n address: \"390 W Cordova St\",\n city: \"Vancouver\",\n country: \"Canada\",\n coordinates: { lat: 49.2827, lng: -123.1207 },\n pricePerNight: 148,\n propertyType: \"villa\",\n bedrooms: 3,\n beds: 6,\n bathrooms: 4,\n guests: 6,\n rating: 4.8,\n reviewCount: 68,\n images: cyclingImages,\n amenities: [\"Helmet cleaning\", \"Bike locks\", \"Frame lights\"],\n host: {\n name: \"Owen Cross\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=OwenCross\",\n isSuperhost: true,\n },\n isFavorite: false,\n isNew: false,\n instantBook: false,\n },\n {\n id: \"gear-17\",\n title: \"Creator Office Workstation Set\",\n description:\n \"Desk setup with monitor arm, key light, and webcam for remote brand shoots.\",\n address: \"96 Shoreditch High St\",\n city: \"London\",\n country: \"UK\",\n coordinates: { lat: 51.5074, lng: -0.1278 },\n pricePerNight: 89,\n propertyType: \"cottage\",\n bedrooms: 2,\n beds: 3,\n bathrooms: 2,\n guests: 2,\n rating: 4.6,\n reviewCount: 53,\n images: gamingImages,\n amenities: [\"Cable kit\", \"Desk mount\", \"Audio interface\"],\n host: {\n name: \"Sage Bennett\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=SageBennett\",\n isSuperhost: false,\n },\n isFavorite: true,\n isNew: false,\n instantBook: true,\n },\n {\n id: \"gear-18\",\n title: \"Street Documentary Drone Rig\",\n description:\n \"Compact travel drone setup with fast charger and compliance checklist.\",\n address: \"27 Linienstrasse\",\n city: \"Berlin\",\n country: \"Germany\",\n coordinates: { lat: 52.52, lng: 13.405 },\n pricePerNight: 172,\n propertyType: \"loft\",\n bedrooms: 2,\n beds: 4,\n bathrooms: 3,\n guests: 3,\n rating: 4.9,\n reviewCount: 117,\n images: droneImages,\n amenities: [\"Flight log template\", \"Insurance PDF\", \"Travel case\"],\n host: {\n name: \"Arlo Finch\",\n avatar: \"https://api.dicebear.com/9.x/glass/svg?seed=ArloFinch\",\n isSuperhost: true,\n },\n isFavorite: true,\n isNew: true,\n instantBook: true,\n },\n]\n\nexport const propertyTypeLabels: Record<PropertyType, string> = {\n apartment: \"Cameras\",\n house: \"Audio\",\n villa: \"Cycling\",\n studio: \"Camping\",\n loft: \"Drones\",\n cottage: \"Gaming\",\n}\n"
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
"path": "registry/example-apps/default/rentals/store/rentals-store.ts",
|
|
136
|
-
"type": "registry:lib",
|
|
137
|
-
"target": "components/example-apps/rentals/store/rentals-store.ts",
|
|
138
|
-
"content": "import { create } from \"zustand\"\n\nimport {\n listings as initialListings,\n type Listing,\n type PropertyType,\n} from \"../mock-data/listings\"\n\ntype SortBy =\n | \"price-low\"\n | \"price-high\"\n | \"rating\"\n | \"newest\"\n | \"reviews\"\n | \"nearest\"\n\ntype MapStyle = \"default\" | \"streets\" | \"outdoors\" | \"satellite\"\n\ninterface RentalsState {\n listings: Listing[]\n searchQuery: string\n selectedPropertyTypes: PropertyType[]\n priceRange: [number, number]\n bedrooms: number | null\n bathrooms: number | null\n beds: number | null\n guests: number | null\n amenities: string[]\n sortBy: SortBy\n selectedListingId: string | null\n mapCenter: { lat: number; lng: number }\n mapZoom: number\n mapStyle: MapStyle\n userLocation: { lat: number; lng: number } | null\n setSearchQuery: (query: string) => void\n togglePropertyType: (type: PropertyType) => void\n setPriceRange: (range: [number, number]) => void\n setBedrooms: (count: number | null) => void\n setBathrooms: (count: number | null) => void\n setBeds: (count: number | null) => void\n setGuests: (count: number | null) => void\n toggleAmenity: (amenity: string) => void\n setSortBy: (sort: SortBy) => void\n toggleFavorite: (listingId: string) => void\n selectListing: (listingId: string | null) => void\n setMapCenter: (center: { lat: number; lng: number }) => void\n setMapZoom: (zoom: number) => void\n setMapStyle: (style: MapStyle) => void\n setUserLocation: (location: { lat: number; lng: number } | null) => void\n getFilteredListings: () => Listing[]\n getFavoriteListings: () => Listing[]\n resetFilters: () => void\n}\n\nconst defaultPriceRange: [number, number] = [0, 500]\n\nfunction calculateDistance(\n lat1: number,\n lng1: number,\n lat2: number,\n lng2: number\n): number {\n const R = 6371\n const dLat = ((lat2 - lat1) * Math.PI) / 180\n const dLng = ((lng2 - lng1) * Math.PI) / 180\n const a =\n Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos((lat1 * Math.PI) / 180) *\n Math.cos((lat2 * Math.PI) / 180) *\n Math.sin(dLng / 2) *\n Math.sin(dLng / 2)\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))\n return R * c\n}\n\nexport const useRentalsStore = create<RentalsState>((set, get) => ({\n listings: initialListings,\n searchQuery: \"\",\n selectedPropertyTypes: [],\n priceRange: defaultPriceRange,\n bedrooms: null,\n bathrooms: null,\n beds: null,\n guests: null,\n amenities: [],\n sortBy: \"price-low\",\n selectedListingId: null,\n mapCenter: { lat: 39.7392, lng: -104.9903 },\n mapZoom: 4,\n mapStyle: \"default\",\n userLocation: null,\n\n setSearchQuery: (query) => set({ searchQuery: query }),\n\n togglePropertyType: (type) =>\n set((state) => ({\n selectedPropertyTypes: state.selectedPropertyTypes.includes(type)\n ? state.selectedPropertyTypes.filter((t) => t !== type)\n : [...state.selectedPropertyTypes, type],\n })),\n\n setPriceRange: (range) => set({ priceRange: range }),\n\n setBedrooms: (count) => set({ bedrooms: count }),\n\n setBathrooms: (count) => set({ bathrooms: count }),\n\n setBeds: (count) => set({ beds: count }),\n\n setGuests: (count) => set({ guests: count }),\n\n toggleAmenity: (amenity) =>\n set((state) => ({\n amenities: state.amenities.includes(amenity)\n ? state.amenities.filter((a) => a !== amenity)\n : [...state.amenities, amenity],\n })),\n\n setSortBy: (sort) => set({ sortBy: sort }),\n\n toggleFavorite: (listingId) =>\n set((state) => ({\n listings: state.listings.map((listing) =>\n listing.id === listingId\n ? { ...listing, isFavorite: !listing.isFavorite }\n : listing\n ),\n })),\n\n selectListing: (listingId) => set({ selectedListingId: listingId }),\n\n setMapCenter: (center) => set({ mapCenter: center }),\n\n setMapZoom: (zoom) => set({ mapZoom: zoom }),\n\n setMapStyle: (style) => set({ mapStyle: style }),\n\n setUserLocation: (location) => set({ userLocation: location }),\n\n resetFilters: () =>\n set({\n searchQuery: \"\",\n selectedPropertyTypes: [],\n priceRange: defaultPriceRange,\n bedrooms: null,\n bathrooms: null,\n beds: null,\n guests: null,\n amenities: [],\n sortBy: \"price-low\",\n }),\n\n getFilteredListings: () => {\n const state = get()\n let filtered = [...state.listings]\n\n if (state.searchQuery) {\n const query = state.searchQuery.toLowerCase()\n filtered = filtered.filter(\n (listing) =>\n listing.title.toLowerCase().includes(query) ||\n listing.description.toLowerCase().includes(query) ||\n listing.city.toLowerCase().includes(query) ||\n listing.address.toLowerCase().includes(query)\n )\n }\n\n if (state.selectedPropertyTypes.length > 0) {\n filtered = filtered.filter((listing) =>\n state.selectedPropertyTypes.includes(listing.propertyType)\n )\n }\n\n filtered = filtered.filter(\n (listing) =>\n listing.pricePerNight >= state.priceRange[0] &&\n listing.pricePerNight <= state.priceRange[1]\n )\n\n if (state.bedrooms !== null) {\n filtered = filtered.filter(\n (listing) => listing.bedrooms >= state.bedrooms!\n )\n }\n\n if (state.bathrooms !== null) {\n filtered = filtered.filter(\n (listing) => listing.bathrooms >= state.bathrooms!\n )\n }\n\n if (state.beds !== null) {\n filtered = filtered.filter((listing) => listing.beds >= state.beds!)\n }\n\n if (state.guests !== null) {\n filtered = filtered.filter((listing) => listing.guests >= state.guests!)\n }\n\n if (state.amenities.length > 0) {\n filtered = filtered.filter((listing) =>\n state.amenities.every((amenity) => listing.amenities.includes(amenity))\n )\n }\n\n switch (state.sortBy) {\n case \"price-low\":\n filtered.sort((a, b) => a.pricePerNight - b.pricePerNight)\n break\n case \"price-high\":\n filtered.sort((a, b) => b.pricePerNight - a.pricePerNight)\n break\n case \"rating\":\n filtered.sort((a, b) => b.rating - a.rating)\n break\n case \"newest\":\n filtered.sort((a, b) => (b.isNew ? 1 : 0) - (a.isNew ? 1 : 0))\n break\n case \"reviews\":\n filtered.sort((a, b) => b.reviewCount - a.reviewCount)\n break\n case \"nearest\":\n if (state.userLocation) {\n filtered.sort((a, b) => {\n const distA = calculateDistance(\n state.userLocation!.lat,\n state.userLocation!.lng,\n a.coordinates.lat,\n a.coordinates.lng\n )\n const distB = calculateDistance(\n state.userLocation!.lat,\n state.userLocation!.lng,\n b.coordinates.lat,\n b.coordinates.lng\n )\n return distA - distB\n })\n }\n break\n }\n\n if (state.selectedListingId) {\n const selectedIndex = filtered.findIndex(\n (listing) => listing.id === state.selectedListingId\n )\n if (selectedIndex > 0) {\n const selected = filtered.splice(selectedIndex, 1)[0]\n filtered.unshift(selected)\n }\n }\n\n return filtered\n },\n\n getFavoriteListings: () => {\n const state = get()\n let favorites = state.listings.filter((listing) => listing.isFavorite)\n\n if (state.selectedListingId) {\n const selectedIndex = favorites.findIndex(\n (listing) => listing.id === state.selectedListingId\n )\n if (selectedIndex > 0) {\n const selected = favorites.splice(selectedIndex, 1)[0]\n favorites.unshift(selected)\n }\n }\n\n return favorites\n },\n}))\n"
|
|
139
|
-
}
|
|
140
|
-
],
|
|
141
|
-
"categories": [
|
|
142
|
-
"example-app",
|
|
143
|
-
"e-commerce",
|
|
144
|
-
"gear",
|
|
145
|
-
"marketplace",
|
|
146
|
-
"maps"
|
|
147
|
-
],
|
|
148
|
-
"dependencies": [
|
|
149
|
-
"@base-ui/react",
|
|
150
|
-
"@radix-ui/react-slider",
|
|
151
|
-
"@radix-ui/react-slot",
|
|
152
|
-
"class-variance-authority",
|
|
153
|
-
"clsx",
|
|
154
|
-
"embla-carousel-react",
|
|
155
|
-
"lucide-react",
|
|
156
|
-
"maplibre-gl",
|
|
157
|
-
"next-themes",
|
|
158
|
-
"tailwind-merge",
|
|
159
|
-
"usehooks-ts",
|
|
160
|
-
"zustand"
|
|
161
|
-
],
|
|
162
|
-
"registryDependencies": [
|
|
163
|
-
"https://www.loveui.dev/r/badge.json",
|
|
164
|
-
"https://www.loveui.dev/r/button.json",
|
|
165
|
-
"https://www.loveui.dev/r/input.json",
|
|
166
|
-
"https://www.loveui.dev/r/menu.json",
|
|
167
|
-
"https://www.loveui.dev/r/separator.json",
|
|
168
|
-
"https://www.loveui.dev/r/slider.json",
|
|
169
|
-
"https://www.loveui.dev/r/tooltip.json"
|
|
170
|
-
],
|
|
171
|
-
"meta": {
|
|
172
|
-
"source": "example-app",
|
|
173
|
-
"appName": "rentals",
|
|
174
|
-
"routes": [
|
|
175
|
-
{
|
|
176
|
-
"path": "/",
|
|
177
|
-
"title": "All Gear",
|
|
178
|
-
"description": "All gear listings map view"
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
"path": "/favorites",
|
|
182
|
-
"title": "Favorites",
|
|
183
|
-
"description": "Saved gear listings"
|
|
184
|
-
}
|
|
185
|
-
]
|
|
186
|
-
}
|
|
187
|
-
}
|