@webjsdev/ui 0.3.16 → 0.4.0
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 +71 -10
- package/THIRD_PARTY_NOTICES.md +349 -0
- package/package.json +4 -2
- package/packages/registry/blocks/_shared/placeholder.svg +1 -0
- package/packages/registry/blocks/charts/chart-area-axes.ts +72 -0
- package/packages/registry/blocks/charts/chart-area-default.ts +64 -0
- package/packages/registry/blocks/charts/chart-area-gradient.ts +82 -0
- package/packages/registry/blocks/charts/chart-area-icons.ts +77 -0
- package/packages/registry/blocks/charts/chart-area-interactive.ts +204 -0
- package/packages/registry/blocks/charts/chart-area-legend.ts +72 -0
- package/packages/registry/blocks/charts/chart-area-linear.ts +64 -0
- package/packages/registry/blocks/charts/chart-area-stacked-expand.ts +77 -0
- package/packages/registry/blocks/charts/chart-area-stacked.ts +71 -0
- package/packages/registry/blocks/charts/chart-area-step.ts +68 -0
- package/packages/registry/blocks/charts/chart-bar-active.ts +93 -0
- package/packages/registry/blocks/charts/chart-bar-default.ts +60 -0
- package/packages/registry/blocks/charts/chart-bar-horizontal.ts +62 -0
- package/packages/registry/blocks/charts/chart-bar-interactive.ts +185 -0
- package/packages/registry/blocks/charts/chart-bar-label-custom.ts +78 -0
- package/packages/registry/blocks/charts/chart-bar-label.ts +66 -0
- package/packages/registry/blocks/charts/chart-bar-mixed.ts +87 -0
- package/packages/registry/blocks/charts/chart-bar-multiple.ts +67 -0
- package/packages/registry/blocks/charts/chart-bar-negative.ts +61 -0
- package/packages/registry/blocks/charts/chart-bar-stacked.ts +68 -0
- package/packages/registry/blocks/charts/chart-line-default.ts +61 -0
- package/packages/registry/blocks/charts/chart-line-dots-colors.ts +86 -0
- package/packages/registry/blocks/charts/chart-line-dots-custom.ts +75 -0
- package/packages/registry/blocks/charts/chart-line-dots.ts +65 -0
- package/packages/registry/blocks/charts/chart-line-interactive.ts +185 -0
- package/packages/registry/blocks/charts/chart-line-label-custom.ts +94 -0
- package/packages/registry/blocks/charts/chart-line-label.ts +73 -0
- package/packages/registry/blocks/charts/chart-line-linear.ts +61 -0
- package/packages/registry/blocks/charts/chart-line-multiple.ts +71 -0
- package/packages/registry/blocks/charts/chart-line-step.ts +61 -0
- package/packages/registry/blocks/charts/chart-pie-donut-active.ts +86 -0
- package/packages/registry/blocks/charts/chart-pie-donut-text.ts +89 -0
- package/packages/registry/blocks/charts/chart-pie-donut.ts +77 -0
- package/packages/registry/blocks/charts/chart-pie-interactive.ts +120 -0
- package/packages/registry/blocks/charts/chart-pie-label-custom.ts +82 -0
- package/packages/registry/blocks/charts/chart-pie-label-list.ts +86 -0
- package/packages/registry/blocks/charts/chart-pie-label.ts +77 -0
- package/packages/registry/blocks/charts/chart-pie-legend.ts +79 -0
- package/packages/registry/blocks/charts/chart-pie-separator-none.ts +77 -0
- package/packages/registry/blocks/charts/chart-pie-simple.ts +77 -0
- package/packages/registry/blocks/charts/chart-pie-stacked.ts +99 -0
- package/packages/registry/blocks/charts/chart-radar-default.ts +61 -0
- package/packages/registry/blocks/charts/chart-radar-dots.ts +61 -0
- package/packages/registry/blocks/charts/chart-radar-grid-circle-fill.ts +61 -0
- package/packages/registry/blocks/charts/chart-radar-grid-circle-no-lines.ts +61 -0
- package/packages/registry/blocks/charts/chart-radar-grid-circle.ts +61 -0
- package/packages/registry/blocks/charts/chart-radar-grid-custom.ts +61 -0
- package/packages/registry/blocks/charts/chart-radar-grid-fill.ts +61 -0
- package/packages/registry/blocks/charts/chart-radar-grid-none.ts +60 -0
- package/packages/registry/blocks/charts/chart-radar-icons.ts +76 -0
- package/packages/registry/blocks/charts/chart-radar-label-custom.ts +77 -0
- package/packages/registry/blocks/charts/chart-radar-legend.ts +70 -0
- package/packages/registry/blocks/charts/chart-radar-lines-only.ts +68 -0
- package/packages/registry/blocks/charts/chart-radar-multiple.ts +68 -0
- package/packages/registry/blocks/charts/chart-radar-radius.ts +68 -0
- package/packages/registry/blocks/charts/chart-radial-grid.ts +80 -0
- package/packages/registry/blocks/charts/chart-radial-label.ts +85 -0
- package/packages/registry/blocks/charts/chart-radial-shape.ts +81 -0
- package/packages/registry/blocks/charts/chart-radial-simple.ts +79 -0
- package/packages/registry/blocks/charts/chart-radial-stacked.ts +69 -0
- package/packages/registry/blocks/charts/chart-radial-text.ts +82 -0
- package/packages/registry/blocks/charts/chart-tooltip-advanced.ts +84 -0
- package/packages/registry/blocks/charts/chart-tooltip-default.ts +62 -0
- package/packages/registry/blocks/charts/chart-tooltip-formatter.ts +75 -0
- package/packages/registry/blocks/charts/chart-tooltip-icons.ts +68 -0
- package/packages/registry/blocks/charts/chart-tooltip-indicator-line.ts +62 -0
- package/packages/registry/blocks/charts/chart-tooltip-indicator-none.ts +62 -0
- package/packages/registry/blocks/charts/chart-tooltip-label-custom.ts +65 -0
- package/packages/registry/blocks/charts/chart-tooltip-label-formatter.ts +66 -0
- package/packages/registry/blocks/charts/chart-tooltip-label-none.ts +62 -0
- package/packages/registry/blocks/dashboard-01/components/app-sidebar.ts +108 -0
- package/packages/registry/blocks/dashboard-01/components/chart-area-interactive.ts +276 -0
- package/packages/registry/blocks/dashboard-01/components/dashboard-data.ts +89 -0
- package/packages/registry/blocks/dashboard-01/components/data-table.ts +637 -0
- package/packages/registry/blocks/dashboard-01/components/nav-documents.ts +65 -0
- package/packages/registry/blocks/dashboard-01/components/nav-main.ts +61 -0
- package/packages/registry/blocks/dashboard-01/components/nav-secondary.ts +40 -0
- package/packages/registry/blocks/dashboard-01/components/nav-user.ts +66 -0
- package/packages/registry/blocks/dashboard-01/components/section-cards.ts +59 -0
- package/packages/registry/blocks/dashboard-01/components/site-header.ts +52 -0
- package/packages/registry/blocks/dashboard-01/page.ts +39 -0
- package/packages/registry/blocks/login-01/components/login-form.ts +70 -0
- package/packages/registry/blocks/login-01/page.ts +19 -0
- package/packages/registry/blocks/login-02/components/login-form.ts +68 -0
- package/packages/registry/blocks/login-02/page.ts +36 -0
- package/packages/registry/blocks/login-03/components/login-form.ts +89 -0
- package/packages/registry/blocks/login-03/page.ts +28 -0
- package/packages/registry/blocks/login-04/components/login-form.ts +91 -0
- package/packages/registry/blocks/login-04/page.ts +20 -0
- package/packages/registry/blocks/login-05/components/login-form.ts +75 -0
- package/packages/registry/blocks/login-05/page.ts +19 -0
- package/packages/registry/blocks/preview/cards/activate-agent-dialog.ts +77 -0
- package/packages/registry/blocks/preview/cards/analytics-card.ts +64 -0
- package/packages/registry/blocks/preview/cards/anomaly-alert.ts +35 -0
- package/packages/registry/blocks/preview/cards/bar-chart-card.ts +91 -0
- package/packages/registry/blocks/preview/cards/book-appointment.ts +51 -0
- package/packages/registry/blocks/preview/cards/codespaces-card.ts +172 -0
- package/packages/registry/blocks/preview/cards/contributions-activity.ts +63 -0
- package/packages/registry/blocks/preview/cards/contributors.ts +51 -0
- package/packages/registry/blocks/preview/cards/environment-variables.ts +47 -0
- package/packages/registry/blocks/preview/cards/feedback-form.ts +61 -0
- package/packages/registry/blocks/preview/cards/file-upload.ts +51 -0
- package/packages/registry/blocks/preview/cards/github-profile.ts +66 -0
- package/packages/registry/blocks/preview/cards/icon-preview-grid.ts +47 -0
- package/packages/registry/blocks/preview/cards/invite-team.ts +78 -0
- package/packages/registry/blocks/preview/cards/invoice.ts +91 -0
- package/packages/registry/blocks/preview/cards/live-waveform.ts +330 -0
- package/packages/registry/blocks/preview/cards/no-team-members.ts +61 -0
- package/packages/registry/blocks/preview/cards/not-found.ts +46 -0
- package/packages/registry/blocks/preview/cards/observability-card.ts +44 -0
- package/packages/registry/blocks/preview/cards/pie-chart-card.ts +84 -0
- package/packages/registry/blocks/preview/cards/report-bug.ts +71 -0
- package/packages/registry/blocks/preview/cards/shipping-address.ts +79 -0
- package/packages/registry/blocks/preview/cards/shortcuts.ts +57 -0
- package/packages/registry/blocks/preview/cards/skeleton-loading.ts +37 -0
- package/packages/registry/blocks/preview/cards/sleep-report.ts +85 -0
- package/packages/registry/blocks/preview/cards/style-overview.ts +64 -0
- package/packages/registry/blocks/preview/cards/typography-specimen.ts +107 -0
- package/packages/registry/blocks/preview/cards/ui-elements.ts +164 -0
- package/packages/registry/blocks/preview/cards/usage-card.ts +63 -0
- package/packages/registry/blocks/preview/cards/visitors.ts +71 -0
- package/packages/registry/blocks/preview/cards/weekly-fitness-summary.ts +54 -0
- package/packages/registry/blocks/preview/page.ts +103 -0
- package/packages/registry/blocks/preview-02/cards/account-access.ts +70 -0
- package/packages/registry/blocks/preview-02/cards/card-overview.ts +75 -0
- package/packages/registry/blocks/preview-02/cards/claimable-balance.ts +54 -0
- package/packages/registry/blocks/preview-02/cards/contribution-history.ts +80 -0
- package/packages/registry/blocks/preview-02/cards/cover-art.ts +41 -0
- package/packages/registry/blocks/preview-02/cards/dividend-income.ts +76 -0
- package/packages/registry/blocks/preview-02/cards/empty-connect-bank.ts +38 -0
- package/packages/registry/blocks/preview-02/cards/empty-distribute-track.ts +38 -0
- package/packages/registry/blocks/preview-02/cards/empty-explore-catalog.ts +39 -0
- package/packages/registry/blocks/preview-02/cards/faq.ts +79 -0
- package/packages/registry/blocks/preview-02/cards/front-door.ts +40 -0
- package/packages/registry/blocks/preview-02/cards/index-investing.ts +31 -0
- package/packages/registry/blocks/preview-02/cards/kitchen-island.ts +90 -0
- package/packages/registry/blocks/preview-02/cards/loading-card.ts +34 -0
- package/packages/registry/blocks/preview-02/cards/new-milestone.ts +53 -0
- package/packages/registry/blocks/preview-02/cards/notification-settings.ts +126 -0
- package/packages/registry/blocks/preview-02/cards/payments.ts +88 -0
- package/packages/registry/blocks/preview-02/cards/payout-threshold.ts +92 -0
- package/packages/registry/blocks/preview-02/cards/power-usage.ts +84 -0
- package/packages/registry/blocks/preview-02/cards/preferences.ts +89 -0
- package/packages/registry/blocks/preview-02/cards/qr-connect.ts +54 -0
- package/packages/registry/blocks/preview-02/cards/receiving-method.ts +89 -0
- package/packages/registry/blocks/preview-02/cards/recent-transactions.ts +101 -0
- package/packages/registry/blocks/preview-02/cards/release-catalog.ts +73 -0
- package/packages/registry/blocks/preview-02/cards/roller-shades.ts +110 -0
- package/packages/registry/blocks/preview-02/cards/savings-progress.ts +68 -0
- package/packages/registry/blocks/preview-02/cards/savings-targets.ts +132 -0
- package/packages/registry/blocks/preview-02/cards/sidebar-nav.ts +88 -0
- package/packages/registry/blocks/preview-02/cards/social-links.ts +57 -0
- package/packages/registry/blocks/preview-02/cards/stock-performance.ts +106 -0
- package/packages/registry/blocks/preview-02/cards/syncing-state.ts +37 -0
- package/packages/registry/blocks/preview-02/cards/transfer-funds.ts +111 -0
- package/packages/registry/blocks/preview-02/cards/upcoming-payments.ts +69 -0
- package/packages/registry/blocks/preview-02/page.ts +111 -0
- package/packages/registry/blocks/preview-03/cards/files-chat.ts +75 -0
- package/packages/registry/blocks/preview-03/cards/group-chat.ts +114 -0
- package/packages/registry/blocks/preview-03/cards/reasoning-chat.ts +88 -0
- package/packages/registry/blocks/preview-03/cards/simple-chat.ts +53 -0
- package/packages/registry/blocks/preview-03/components/chat-card.ts +126 -0
- package/packages/registry/blocks/preview-03/components/chat-player.ts +174 -0
- package/packages/registry/blocks/preview-03/components/part-file.ts +77 -0
- package/packages/registry/blocks/preview-03/components/part-reasoning.ts +25 -0
- package/packages/registry/blocks/preview-03/components/part-source.ts +48 -0
- package/packages/registry/blocks/preview-03/components/part-text.ts +69 -0
- package/packages/registry/blocks/preview-03/components/part-tool.ts +71 -0
- package/packages/registry/blocks/preview-03/components/prompt-input.ts +86 -0
- package/packages/registry/blocks/preview-03/page.ts +39 -0
- package/packages/registry/blocks/sidebar-01/components/app-sidebar.ts +113 -0
- package/packages/registry/blocks/sidebar-01/components/search-form.ts +33 -0
- package/packages/registry/blocks/sidebar-01/components/version-switcher.ts +50 -0
- package/packages/registry/blocks/sidebar-01/page.ts +58 -0
- package/packages/registry/blocks/sidebar-02/components/app-sidebar.ts +131 -0
- package/packages/registry/blocks/sidebar-02/components/search-form.ts +33 -0
- package/packages/registry/blocks/sidebar-02/components/version-switcher.ts +50 -0
- package/packages/registry/blocks/sidebar-02/page.ts +53 -0
- package/packages/registry/blocks/sidebar-03/components/app-sidebar.ts +134 -0
- package/packages/registry/blocks/sidebar-03/page.ts +60 -0
- package/packages/registry/blocks/sidebar-04/components/app-sidebar.ts +136 -0
- package/packages/registry/blocks/sidebar-04/page.ts +58 -0
- package/packages/registry/blocks/sidebar-05/components/app-sidebar.ts +147 -0
- package/packages/registry/blocks/sidebar-05/components/search-form.ts +33 -0
- package/packages/registry/blocks/sidebar-05/page.ts +58 -0
- package/packages/registry/blocks/sidebar-06/components/app-sidebar.ts +105 -0
- package/packages/registry/blocks/sidebar-06/components/nav-main.ts +56 -0
- package/packages/registry/blocks/sidebar-06/components/sidebar-opt-in-form.ts +44 -0
- package/packages/registry/blocks/sidebar-06/page.ts +57 -0
- package/packages/registry/blocks/sidebar-07/components/app-sidebar.ts +108 -0
- package/packages/registry/blocks/sidebar-07/components/nav-main.ts +61 -0
- package/packages/registry/blocks/sidebar-07/components/nav-projects.ts +65 -0
- package/packages/registry/blocks/sidebar-07/components/nav-user.ts +70 -0
- package/packages/registry/blocks/sidebar-07/components/team-switcher.ts +66 -0
- package/packages/registry/blocks/sidebar-07/page.ts +59 -0
- package/packages/registry/blocks/sidebar-08/components/app-sidebar.ts +122 -0
- package/packages/registry/blocks/sidebar-08/components/nav-main.ts +68 -0
- package/packages/registry/blocks/sidebar-08/components/nav-projects.ts +65 -0
- package/packages/registry/blocks/sidebar-08/components/nav-secondary.ts +40 -0
- package/packages/registry/blocks/sidebar-08/components/nav-user.ts +70 -0
- package/packages/registry/blocks/sidebar-08/page.ts +59 -0
- package/packages/registry/blocks/sidebar-09/components/app-sidebar.ts +213 -0
- package/packages/registry/blocks/sidebar-09/components/nav-user.ts +70 -0
- package/packages/registry/blocks/sidebar-09/page.ts +52 -0
- package/packages/registry/blocks/sidebar-10/components/app-sidebar.ts +125 -0
- package/packages/registry/blocks/sidebar-10/components/nav-actions.ts +84 -0
- package/packages/registry/blocks/sidebar-10/components/nav-favorites.ts +66 -0
- package/packages/registry/blocks/sidebar-10/components/nav-main.ts +37 -0
- package/packages/registry/blocks/sidebar-10/components/nav-secondary.ts +43 -0
- package/packages/registry/blocks/sidebar-10/components/nav-workspaces.ts +78 -0
- package/packages/registry/blocks/sidebar-10/components/team-switcher.ts +63 -0
- package/packages/registry/blocks/sidebar-10/page.ts +46 -0
- package/packages/registry/blocks/sidebar-11/components/app-sidebar.ts +114 -0
- package/packages/registry/blocks/sidebar-11/page.ts +63 -0
- package/packages/registry/blocks/sidebar-12/components/app-sidebar.ts +63 -0
- package/packages/registry/blocks/sidebar-12/components/calendars.ts +53 -0
- package/packages/registry/blocks/sidebar-12/components/date-picker.ts +26 -0
- package/packages/registry/blocks/sidebar-12/components/nav-user.ts +70 -0
- package/packages/registry/blocks/sidebar-12/page.ts +43 -0
- package/packages/registry/blocks/sidebar-13/components/settings-dialog.ts +114 -0
- package/packages/registry/blocks/sidebar-13/page.ts +21 -0
- package/packages/registry/blocks/sidebar-14/components/app-sidebar.ts +120 -0
- package/packages/registry/blocks/sidebar-14/page.ts +55 -0
- package/packages/registry/blocks/sidebar-15/components/calendars.ts +53 -0
- package/packages/registry/blocks/sidebar-15/components/date-picker.ts +26 -0
- package/packages/registry/blocks/sidebar-15/components/nav-favorites.ts +66 -0
- package/packages/registry/blocks/sidebar-15/components/nav-main.ts +35 -0
- package/packages/registry/blocks/sidebar-15/components/nav-secondary.ts +43 -0
- package/packages/registry/blocks/sidebar-15/components/nav-user.ts +70 -0
- package/packages/registry/blocks/sidebar-15/components/nav-workspaces.ts +75 -0
- package/packages/registry/blocks/sidebar-15/components/sidebar-left.ts +126 -0
- package/packages/registry/blocks/sidebar-15/components/sidebar-right.ts +62 -0
- package/packages/registry/blocks/sidebar-15/components/team-switcher.ts +63 -0
- package/packages/registry/blocks/sidebar-15/page.ts +47 -0
- package/packages/registry/blocks/sidebar-16/components/app-sidebar.ts +124 -0
- package/packages/registry/blocks/sidebar-16/components/nav-main.ts +67 -0
- package/packages/registry/blocks/sidebar-16/components/nav-projects.ts +65 -0
- package/packages/registry/blocks/sidebar-16/components/nav-secondary.ts +40 -0
- package/packages/registry/blocks/sidebar-16/components/nav-user.ts +70 -0
- package/packages/registry/blocks/sidebar-16/components/search-form.ts +27 -0
- package/packages/registry/blocks/sidebar-16/components/site-header.ts +42 -0
- package/packages/registry/blocks/sidebar-16/page.ts +38 -0
- package/packages/registry/blocks/signup-01/components/signup-form.ts +78 -0
- package/packages/registry/blocks/signup-01/page.ts +19 -0
- package/packages/registry/blocks/signup-02/components/signup-form.ts +78 -0
- package/packages/registry/blocks/signup-02/page.ts +36 -0
- package/packages/registry/blocks/signup-03/components/signup-form.ts +79 -0
- package/packages/registry/blocks/signup-03/page.ts +28 -0
- package/packages/registry/blocks/signup-04/components/signup-form.ts +100 -0
- package/packages/registry/blocks/signup-04/page.ts +20 -0
- package/packages/registry/blocks/signup-05/components/signup-form.ts +75 -0
- package/packages/registry/blocks/signup-05/page.ts +20 -0
- package/packages/registry/components/accordion.ts +20 -7
- package/packages/registry/components/alert-dialog.ts +58 -13
- package/packages/registry/components/alert.ts +11 -6
- package/packages/registry/components/attachment.ts +119 -0
- package/packages/registry/components/avatar.ts +17 -8
- package/packages/registry/components/badge.ts +16 -9
- package/packages/registry/components/breadcrumb.ts +6 -6
- package/packages/registry/components/bubble.ts +95 -0
- package/packages/registry/components/button-group.ts +73 -0
- package/packages/registry/components/button.ts +35 -25
- package/packages/registry/components/calendar.ts +566 -0
- package/packages/registry/components/card.ts +8 -8
- package/packages/registry/components/carousel.ts +352 -0
- package/packages/registry/components/chart-element.ts +547 -0
- package/packages/registry/components/chart-geometry.ts +457 -0
- package/packages/registry/components/chart.ts +932 -0
- package/packages/registry/components/checkbox.ts +22 -84
- package/packages/registry/components/code-block.ts +191 -0
- package/packages/registry/components/collapsible.ts +5 -2
- package/packages/registry/components/combobox.ts +802 -0
- package/packages/registry/components/command.ts +618 -0
- package/packages/registry/components/context-menu.ts +302 -0
- package/packages/registry/components/dialog.ts +156 -45
- package/packages/registry/components/direction.ts +43 -0
- package/packages/registry/components/drawer.ts +226 -0
- package/packages/registry/components/dropdown-menu.ts +262 -83
- package/packages/registry/components/empty.ts +88 -0
- package/packages/registry/components/field.ts +165 -0
- package/packages/registry/components/floating.ts +124 -0
- package/packages/registry/components/hover-card.ts +19 -8
- package/packages/registry/components/input-group.ts +118 -0
- package/packages/registry/components/input-otp.ts +365 -0
- package/packages/registry/components/input.ts +3 -3
- package/packages/registry/components/item.ts +134 -0
- package/packages/registry/components/kbd.ts +2 -2
- package/packages/registry/components/label.ts +1 -1
- package/packages/registry/components/marker.ts +63 -0
- package/packages/registry/components/menubar.ts +388 -0
- package/packages/registry/components/message-scroller.ts +470 -0
- package/packages/registry/components/message.ts +69 -0
- package/packages/registry/components/native-select.ts +5 -5
- package/packages/registry/components/navigation-menu.ts +564 -0
- package/packages/registry/components/pagination.ts +5 -5
- package/packages/registry/components/popover.ts +30 -84
- package/packages/registry/components/progress.ts +7 -3
- package/packages/registry/components/questionnaire.ts +840 -0
- package/packages/registry/components/radio-group.ts +18 -73
- package/packages/registry/components/resizable.ts +330 -0
- package/packages/registry/components/scroll-area.ts +46 -0
- package/packages/registry/components/select.ts +650 -0
- package/packages/registry/components/separator.ts +1 -1
- package/packages/registry/components/sheet.ts +128 -0
- package/packages/registry/components/sidebar.ts +457 -0
- package/packages/registry/components/skeleton.ts +1 -1
- package/packages/registry/components/slider.ts +333 -0
- package/packages/registry/components/sonner.ts +74 -7
- package/packages/registry/components/spinner.ts +66 -0
- package/packages/registry/components/switch.ts +117 -9
- package/packages/registry/components/table.ts +11 -9
- package/packages/registry/components/tabs.ts +76 -25
- package/packages/registry/components/textarea.ts +1 -1
- package/packages/registry/components/toggle-group.ts +30 -11
- package/packages/registry/components/toggle.ts +20 -13
- package/packages/registry/components/tooltip.ts +68 -7
- package/packages/registry/components/trace.ts +75 -0
- package/packages/registry/lib/icons-hugeicons.ts +955 -0
- package/packages/registry/lib/icons-phosphor.ts +955 -0
- package/packages/registry/lib/icons-remixicon.ts +955 -0
- package/packages/registry/lib/icons-tabler.ts +955 -0
- package/packages/registry/lib/icons.ts +768 -0
- package/packages/registry/lib/utils.ts +49 -4
- package/packages/registry/registry.json +4092 -60
- package/packages/registry/styles/shadcn-tailwind.css +654 -0
- package/packages/registry/styles/style-luma.css +1987 -0
- package/packages/registry/styles/style-lyra.css +1965 -0
- package/packages/registry/styles/style-maia.css +1987 -0
- package/packages/registry/styles/style-mira.css +1992 -0
- package/packages/registry/styles/style-new-york.css +1597 -0
- package/packages/registry/styles/style-nova.css +1990 -0
- package/packages/registry/styles/style-rhea.css +1987 -0
- package/packages/registry/styles/style-sera.css +1977 -0
- package/packages/registry/styles/style-vega.css +1990 -0
- package/packages/registry/styles/supplement.json +54 -0
- package/packages/registry/styles/tw-animate.css +6 -0
- package/packages/registry/themes/base-colors.js +8 -2
- package/packages/registry/themes/fonts.js +120 -0
- package/packages/registry/themes/index.css +2 -0
- package/packages/registry/themes/items.js +61 -0
- package/packages/registry/themes/preset.js +302 -0
- package/packages/registry/themes/themes.js +1193 -0
- package/src/commands/add.js +236 -12
- package/src/commands/diff.js +34 -20
- package/src/commands/info.js +7 -0
- package/src/commands/init.js +125 -8
- package/src/commands/list.js +43 -11
- package/src/commands/view.js +33 -5
- package/src/registry/extract.js +192 -2
- package/src/registry/icons.js +31 -0
- package/src/registry/local.js +15 -1
- package/src/registry/schema.js +13 -0
- package/src/registry/style-bake.js +506 -0
- package/src/utils/theme.js +110 -21
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's appointment card: the day's time slots as a toggle
|
|
3
|
+
* group, a note for new patients, and a booking button. A fragment helper;
|
|
4
|
+
* the slots are the kit's `<ui-toggle-group>`. Installed by
|
|
5
|
+
* `npx @webjsdev/ui add preview` at `components/preview/book-appointment.ts`.
|
|
6
|
+
* Ported from shadcn/ui's preview block.
|
|
7
|
+
*/
|
|
8
|
+
import { html } from '@webjsdev/core';
|
|
9
|
+
import { cn } from '../../../lib/utils.ts';
|
|
10
|
+
import { alertClass, alertDescriptionClass, alertTitleClass } from '../../../components/alert.ts';
|
|
11
|
+
import { buttonClass } from '../../../components/button.ts';
|
|
12
|
+
import {
|
|
13
|
+
cardClass,
|
|
14
|
+
cardContentClass,
|
|
15
|
+
cardDescriptionClass,
|
|
16
|
+
cardFooterClass,
|
|
17
|
+
cardHeaderClass,
|
|
18
|
+
cardTitleClass,
|
|
19
|
+
} from '../../../components/card.ts';
|
|
20
|
+
import { fieldClass, fieldGroupClass, fieldLabelClass } from '../../../components/field.ts';
|
|
21
|
+
import '../../../components/toggle-group.ts';
|
|
22
|
+
|
|
23
|
+
const SLOTS = ['9:00 AM', '10:30 AM', '11:00 AM', '1:30 PM'];
|
|
24
|
+
|
|
25
|
+
export function bookAppointment() {
|
|
26
|
+
return html`
|
|
27
|
+
<div data-slot="card" data-size="default" class=${cardClass()}>
|
|
28
|
+
<div data-slot="card-header" class=${cardHeaderClass()}>
|
|
29
|
+
<div data-slot="card-title" class=${cardTitleClass()}>Book Appointment</div>
|
|
30
|
+
<div data-slot="card-description" class=${cardDescriptionClass()}>Dr. Sarah Chen · Cardiology</div>
|
|
31
|
+
</div>
|
|
32
|
+
<div data-slot="card-content" class=${cn(cardContentClass(), 'flex flex-col gap-4')}>
|
|
33
|
+
<div data-slot="field-group" class=${fieldGroupClass()}>
|
|
34
|
+
<div role="group" data-slot="field" data-orientation="vertical" class=${fieldClass()}>
|
|
35
|
+
<div data-slot="field-label" id="book-appointment-slots" class=${fieldLabelClass()}>Available on March 18, 2026</div>
|
|
36
|
+
<ui-toggle-group type="multiple" spacing="2" value="slot-0" aria-labelledby="book-appointment-slots">
|
|
37
|
+
${SLOTS.map((time, index) => html`<ui-toggle-group-item value=${`slot-${index}`}>${time}</ui-toggle-group-item>`)}
|
|
38
|
+
</ui-toggle-group>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<div role="alert" data-slot="alert" data-variant="default" class=${alertClass()}>
|
|
42
|
+
<div data-slot="alert-title" class=${alertTitleClass()}>New patient?</div>
|
|
43
|
+
<div data-slot="alert-description" class=${alertDescriptionClass()}>Please arrive 15 minutes early.</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div data-slot="card-footer" class=${cardFooterClass()}>
|
|
47
|
+
<button type="button" data-slot="button" data-variant="default" data-size="default" class=${cn(buttonClass(), 'w-full')}>Book Appointment</button>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's codespaces card, after GitHub's "Code" menu: a
|
|
3
|
+
* Codespaces tab with an empty state and a Local tab with the clone URLs.
|
|
4
|
+
* A fragment helper, rendered by the server, with the kit's `<ui-tabs>`,
|
|
5
|
+
* `<ui-tooltip>` and `<ui-dropdown-menu>`. Installed by
|
|
6
|
+
* `npx @webjsdev/ui add preview` at `components/preview/codespaces-card.ts`.
|
|
7
|
+
* Ported from shadcn/ui's preview block.
|
|
8
|
+
*
|
|
9
|
+
* shadcn shows a spinner on "Create Codespace" for two seconds after a click.
|
|
10
|
+
* Here the button is shown at rest; give it a server action to run.
|
|
11
|
+
*/
|
|
12
|
+
import { html } from '@webjsdev/core';
|
|
13
|
+
import { cn } from '../../../lib/utils.ts';
|
|
14
|
+
import { buttonClass } from '../../../components/button.ts';
|
|
15
|
+
import { cardClass, cardContentClass } from '../../../components/card.ts';
|
|
16
|
+
import '../../../components/dropdown-menu.ts';
|
|
17
|
+
import {
|
|
18
|
+
emptyClass,
|
|
19
|
+
emptyContentClass,
|
|
20
|
+
emptyDescriptionClass,
|
|
21
|
+
emptyHeaderClass,
|
|
22
|
+
emptyMediaClass,
|
|
23
|
+
emptyTitleClass,
|
|
24
|
+
} from '../../../components/empty.ts';
|
|
25
|
+
import { fieldClass, fieldDescriptionClass, fieldLabelClass } from '../../../components/field.ts';
|
|
26
|
+
import {
|
|
27
|
+
inputGroupAddonClass,
|
|
28
|
+
inputGroupButtonClass,
|
|
29
|
+
inputGroupClass,
|
|
30
|
+
inputGroupInputClass,
|
|
31
|
+
} from '../../../components/input-group.ts';
|
|
32
|
+
import {
|
|
33
|
+
itemActionsClass,
|
|
34
|
+
itemClass,
|
|
35
|
+
itemContentClass,
|
|
36
|
+
itemDescriptionClass,
|
|
37
|
+
itemTitleClass,
|
|
38
|
+
} from '../../../components/item.ts';
|
|
39
|
+
import { separatorClass } from '../../../components/separator.ts';
|
|
40
|
+
import '../../../components/tabs.ts';
|
|
41
|
+
import '../../../components/tooltip.ts';
|
|
42
|
+
import { ContainerIcon, CopyIcon, DownloadIcon, InfoIcon, MonitorIcon, MoreHorizontalIcon, PlusIcon, ServerIcon, ShareIcon, TerminalIcon, ZapIcon } from '../../../lib/icons.ts';
|
|
43
|
+
|
|
44
|
+
const separator = () => html`<div data-slot="separator" data-orientation="horizontal" role="none" class=${cn(separatorClass(), '-mx-2 my-2 w-auto!')}></div>`;
|
|
45
|
+
|
|
46
|
+
const CLONE_URLS = [
|
|
47
|
+
{ value: 'https', id: 'codespaces-https-url', label: 'HTTPS URL', url: 'https://github.com/shadcn-ui/ui.git', hint: html`Clone using the web URL.` },
|
|
48
|
+
{ value: 'ssh', id: 'codespaces-ssh-url', label: 'SSH URL', url: 'git@github.com:webjsdev/webjs.git', hint: html`Use a password-protected SSH key.` },
|
|
49
|
+
{ value: 'cli', id: 'codespaces-cli-command', label: 'CLI Command', url: 'gh repo clone webjsdev/webjs', hint: html`Work fast with our official CLI. <a href="#learn-more">Learn more</a>` },
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
export function codespacesCard() {
|
|
53
|
+
return html`
|
|
54
|
+
<div data-slot="card" data-size="default" class=${cardClass()}>
|
|
55
|
+
<div data-slot="card-content" class=${cardContentClass()}>
|
|
56
|
+
<ui-tabs value="codespaces">
|
|
57
|
+
<ui-tabs-list class="w-full">
|
|
58
|
+
<ui-tabs-trigger value="codespaces">Codespaces</ui-tabs-trigger>
|
|
59
|
+
<ui-tabs-trigger value="local">Local</ui-tabs-trigger>
|
|
60
|
+
</ui-tabs-list>
|
|
61
|
+
<ui-tabs-content value="codespaces">
|
|
62
|
+
<div data-slot="item" data-variant="default" data-size="sm" class=${cn(itemClass({ size: 'sm' }), 'px-1 pt-2')}>
|
|
63
|
+
<div data-slot="item-content" class=${itemContentClass()}>
|
|
64
|
+
<div data-slot="item-title" class=${itemTitleClass()}>Codespaces</div>
|
|
65
|
+
<p data-slot="item-description" class=${itemDescriptionClass()}>Your workspaces in the cloud</p>
|
|
66
|
+
</div>
|
|
67
|
+
<div data-slot="item-actions" class=${itemActionsClass()}>
|
|
68
|
+
<ui-tooltip>
|
|
69
|
+
<ui-tooltip-trigger>
|
|
70
|
+
<button type="button" aria-label="Create a codespace on main" data-slot="button" data-variant="ghost" data-size="icon-sm" class=${buttonClass({ variant: 'ghost', size: 'icon-sm' })}>
|
|
71
|
+
${PlusIcon()}
|
|
72
|
+
</button>
|
|
73
|
+
</ui-tooltip-trigger>
|
|
74
|
+
<ui-tooltip-content side="bottom">Create a codespace on main</ui-tooltip-content>
|
|
75
|
+
</ui-tooltip>
|
|
76
|
+
<ui-dropdown-menu>
|
|
77
|
+
<ui-dropdown-menu-trigger>
|
|
78
|
+
<button type="button" aria-label="Codespace options" data-slot="button" data-variant="ghost" data-size="icon-sm" class=${buttonClass({ variant: 'ghost', size: 'icon-sm' })}>
|
|
79
|
+
${MoreHorizontalIcon()}
|
|
80
|
+
</button>
|
|
81
|
+
</ui-dropdown-menu-trigger>
|
|
82
|
+
<ui-dropdown-menu-content align="end" class="w-56">
|
|
83
|
+
<ui-dropdown-menu-group>
|
|
84
|
+
<ui-dropdown-menu-item>${PlusIcon()}New with options...</ui-dropdown-menu-item>
|
|
85
|
+
<ui-dropdown-menu-item>${ContainerIcon()}Configure container</ui-dropdown-menu-item>
|
|
86
|
+
<ui-dropdown-menu-item>${ZapIcon()}Set up prebuilds</ui-dropdown-menu-item>
|
|
87
|
+
</ui-dropdown-menu-group>
|
|
88
|
+
<ui-dropdown-menu-separator></ui-dropdown-menu-separator>
|
|
89
|
+
<ui-dropdown-menu-group>
|
|
90
|
+
<ui-dropdown-menu-item>${ServerIcon()}Manage codespaces</ui-dropdown-menu-item>
|
|
91
|
+
<ui-dropdown-menu-item>${ShareIcon()}Share deep link</ui-dropdown-menu-item>
|
|
92
|
+
<ui-dropdown-menu-item>${InfoIcon()}What are codespaces?</ui-dropdown-menu-item>
|
|
93
|
+
</ui-dropdown-menu-group>
|
|
94
|
+
</ui-dropdown-menu-content>
|
|
95
|
+
</ui-dropdown-menu>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
${separator()}
|
|
99
|
+
<div data-slot="empty" class=${cn(emptyClass(), 'p-4')}>
|
|
100
|
+
<div data-slot="empty-header" class=${emptyHeaderClass()}>
|
|
101
|
+
<div data-slot="empty-icon" data-variant="icon" class=${emptyMediaClass({ variant: 'icon' })}>${ServerIcon()}</div>
|
|
102
|
+
<div data-slot="empty-title" class=${emptyTitleClass()}>No codespaces</div>
|
|
103
|
+
<div data-slot="empty-description" class=${emptyDescriptionClass()}>
|
|
104
|
+
You don't have any codespaces with this repository
|
|
105
|
+
checked out
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
<div data-slot="empty-content" class=${emptyContentClass()}>
|
|
109
|
+
<button type="button" data-slot="button" data-variant="default" data-size="sm" class=${buttonClass({ size: 'sm' })}>Create Codespace</button>
|
|
110
|
+
<a href="#learn-more" class="text-xs text-muted-foreground underline underline-offset-4">Learn more about codespaces</a>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
${separator()}
|
|
114
|
+
<div class="p-1.5 text-xs text-muted-foreground">
|
|
115
|
+
Codespace usage for this repository is paid for by
|
|
116
|
+
<span class="font-medium">webjsdev</span>.
|
|
117
|
+
</div>
|
|
118
|
+
</ui-tabs-content>
|
|
119
|
+
<ui-tabs-content value="local">
|
|
120
|
+
<div data-slot="item" data-variant="default" data-size="sm" class=${cn(itemClass({ size: 'sm' }), 'hidden p-0')}>
|
|
121
|
+
<div data-slot="item-content" class=${itemContentClass()}>
|
|
122
|
+
<div data-slot="item-title" class=${cn(itemTitleClass(), 'gap-2')}>${TerminalIcon('size-4')}Clone</div>
|
|
123
|
+
</div>
|
|
124
|
+
<div data-slot="item-actions" class=${itemActionsClass()}>
|
|
125
|
+
<ui-tooltip>
|
|
126
|
+
<ui-tooltip-trigger>
|
|
127
|
+
<button type="button" aria-label="Which remote URL should I use?" data-slot="button" data-variant="ghost" data-size="icon" class=${buttonClass({ variant: 'ghost', size: 'icon' })}>
|
|
128
|
+
${InfoIcon()}
|
|
129
|
+
</button>
|
|
130
|
+
</ui-tooltip-trigger>
|
|
131
|
+
<ui-tooltip-content side="left">Which remote URL should I use?</ui-tooltip-content>
|
|
132
|
+
</ui-tooltip>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
<ui-tabs value="https">
|
|
136
|
+
<ui-tabs-list variant="underline" class="w-full justify-start border-b **:[button]:flex-0">
|
|
137
|
+
<ui-tabs-trigger value="https">HTTPS</ui-tabs-trigger>
|
|
138
|
+
<ui-tabs-trigger value="ssh">SSH</ui-tabs-trigger>
|
|
139
|
+
<ui-tabs-trigger value="cli">GitHub CLI</ui-tabs-trigger>
|
|
140
|
+
</ui-tabs-list>
|
|
141
|
+
<div class="rounded-md border bg-muted/30 p-2">
|
|
142
|
+
${CLONE_URLS.map((c) => html`
|
|
143
|
+
<ui-tabs-content value=${c.value}>
|
|
144
|
+
<div role="group" data-slot="field" data-orientation="vertical" class=${cn(fieldClass(), 'gap-2')}>
|
|
145
|
+
<label data-slot="field-label" for=${c.id} class=${cn(fieldLabelClass(), 'sr-only')}>${c.label}</label>
|
|
146
|
+
<div data-slot="input-group" role="group" class=${inputGroupClass()}>
|
|
147
|
+
<div data-slot="input-group-addon" data-align="inline-end" role="group" class=${inputGroupAddonClass({ align: 'inline-end' })}>
|
|
148
|
+
<button type="button" aria-label="Copy" data-slot="button" data-variant="ghost" data-size="icon-xs" class=${inputGroupButtonClass({ size: 'icon-xs' })}>${CopyIcon()}</button>
|
|
149
|
+
</div>
|
|
150
|
+
<input data-slot="input-group-control" id=${c.id} value=${c.url} readonly class=${inputGroupInputClass()}>
|
|
151
|
+
</div>
|
|
152
|
+
<p data-slot="field-description" class=${fieldDescriptionClass()}>${c.hint}</p>
|
|
153
|
+
</div>
|
|
154
|
+
</ui-tabs-content>
|
|
155
|
+
`)}
|
|
156
|
+
</div>
|
|
157
|
+
</ui-tabs>
|
|
158
|
+
${separator()}
|
|
159
|
+
<div class="flex flex-col">
|
|
160
|
+
<button type="button" data-slot="button" data-variant="ghost" data-size="sm" class=${cn(buttonClass({ variant: 'ghost', size: 'sm' }), 'justify-start gap-1.5')}>
|
|
161
|
+
${MonitorIcon()}Open with GitHub Desktop
|
|
162
|
+
</button>
|
|
163
|
+
<button type="button" data-slot="button" data-variant="ghost" data-size="sm" class=${cn(buttonClass({ variant: 'ghost', size: 'sm' }), 'justify-start gap-1.5')}>
|
|
164
|
+
${DownloadIcon()}Download ZIP
|
|
165
|
+
</button>
|
|
166
|
+
</div>
|
|
167
|
+
</ui-tabs-content>
|
|
168
|
+
</ui-tabs>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
`;
|
|
172
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's contributions and activity card: one privacy setting as
|
|
3
|
+
* a checkbox with its description. A fragment helper, rendered by the server.
|
|
4
|
+
* Installed by `npx @webjsdev/ui add preview` at
|
|
5
|
+
* `components/preview/contributions-activity.ts`. Ported from shadcn/ui's
|
|
6
|
+
* preview block.
|
|
7
|
+
*
|
|
8
|
+
* The `<form>` has no `action` yet. Bind a server action from a
|
|
9
|
+
* `'use server'` file (`<form action=${saveActivity}>`) before you ship it.
|
|
10
|
+
*/
|
|
11
|
+
import { html } from '@webjsdev/core';
|
|
12
|
+
import { cn } from '../../../lib/utils.ts';
|
|
13
|
+
import { buttonClass } from '../../../components/button.ts';
|
|
14
|
+
import {
|
|
15
|
+
cardClass,
|
|
16
|
+
cardContentClass,
|
|
17
|
+
cardDescriptionClass,
|
|
18
|
+
cardFooterClass,
|
|
19
|
+
cardHeaderClass,
|
|
20
|
+
cardTitleClass,
|
|
21
|
+
} from '../../../components/card.ts';
|
|
22
|
+
import { checkboxClass } from '../../../components/checkbox.ts';
|
|
23
|
+
import {
|
|
24
|
+
fieldClass,
|
|
25
|
+
fieldContentClass,
|
|
26
|
+
fieldDescriptionClass,
|
|
27
|
+
fieldGroupClass,
|
|
28
|
+
fieldLabelClass,
|
|
29
|
+
fieldLegendClass,
|
|
30
|
+
fieldSetClass,
|
|
31
|
+
} from '../../../components/field.ts';
|
|
32
|
+
|
|
33
|
+
export function contributionsActivity() {
|
|
34
|
+
return html`
|
|
35
|
+
<div data-slot="card" data-size="default" class=${cardClass()}>
|
|
36
|
+
<div data-slot="card-header" class=${cardHeaderClass()}>
|
|
37
|
+
<div data-slot="card-title" class=${cardTitleClass()}>Contributions & Activity</div>
|
|
38
|
+
<div data-slot="card-description" class=${cardDescriptionClass()}>Manage your contributions and activity visibility.</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div data-slot="card-content" class=${cardContentClass()}>
|
|
41
|
+
<form id="contributions-activity">
|
|
42
|
+
<div data-slot="field-group" class=${fieldGroupClass()}>
|
|
43
|
+
<fieldset data-slot="field-set" class=${fieldSetClass()}>
|
|
44
|
+
<legend data-slot="field-legend" data-variant="legend" class=${cn(fieldLegendClass(), 'sr-only')}>Contributions & activity</legend>
|
|
45
|
+
<div data-slot="field-group" class=${fieldGroupClass()}>
|
|
46
|
+
<div role="group" data-slot="field" data-orientation="horizontal" class=${fieldClass({ orientation: 'horizontal' })}>
|
|
47
|
+
<input type="checkbox" data-slot="checkbox" id="activity-private-profile" name="private-profile" aria-describedby="activity-private-profile-description" class=${checkboxClass()}>
|
|
48
|
+
<div data-slot="field-content" class=${fieldContentClass()}>
|
|
49
|
+
<label data-slot="field-label" for="activity-private-profile" class=${fieldLabelClass()}>Make profile private and hide activity</label>
|
|
50
|
+
<p data-slot="field-description" id="activity-private-profile-description" class=${fieldDescriptionClass()}>Enabling this will hide your contributions and activity from your GitHub profile and from social features like followers, stars, feeds, leaderboards and releases.</p>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</fieldset>
|
|
55
|
+
</div>
|
|
56
|
+
</form>
|
|
57
|
+
</div>
|
|
58
|
+
<div data-slot="card-footer" class=${cardFooterClass()}>
|
|
59
|
+
<button type="submit" form="contributions-activity" data-slot="button" data-variant="default" data-size="default" class=${cn(buttonClass(), 'style-sera:w-full')}>Save Changes</button>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
`;
|
|
63
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's contributors card: a count badge over a wall of
|
|
3
|
+
* contributor avatars, and a link to the rest. A fragment helper, rendered by
|
|
4
|
+
* the server. Installed by `npx @webjsdev/ui add preview` at
|
|
5
|
+
* `components/preview/contributors.ts`. Ported from shadcn/ui's preview block.
|
|
6
|
+
*
|
|
7
|
+
* The avatars are GitHub profile pictures by username. Replace the list with
|
|
8
|
+
* your own contributors.
|
|
9
|
+
*/
|
|
10
|
+
import { html } from '@webjsdev/core';
|
|
11
|
+
import { cn } from '../../../lib/utils.ts';
|
|
12
|
+
import { avatarClass, avatarFallbackClass, avatarImageClass } from '../../../components/avatar.ts';
|
|
13
|
+
import { badgeClass } from '../../../components/badge.ts';
|
|
14
|
+
import {
|
|
15
|
+
cardClass,
|
|
16
|
+
cardContentClass,
|
|
17
|
+
cardFooterClass,
|
|
18
|
+
cardHeaderClass,
|
|
19
|
+
cardTitleClass,
|
|
20
|
+
} from '../../../components/card.ts';
|
|
21
|
+
|
|
22
|
+
// GitHub usernames shown as contributor avatars.
|
|
23
|
+
const USERNAMES = [
|
|
24
|
+
'webjsdev', 'vercel', 'nextjs', 'tailwindlabs', 'typescript-lang', 'eslint', 'prettier', 'babel',
|
|
25
|
+
'webpack', 'rollup', 'parcel', 'vite', 'react', 'vue', 'angular', 'solid',
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
export function contributors() {
|
|
29
|
+
return html`
|
|
30
|
+
<div data-slot="card" data-size="default" class=${cn(cardClass(), 'max-w-sm')}>
|
|
31
|
+
<div data-slot="card-header" class=${cardHeaderClass()}>
|
|
32
|
+
<div data-slot="card-title" class=${cardTitleClass()}>
|
|
33
|
+
Contributors <span data-slot="badge" data-variant="secondary" class=${badgeClass({ variant: 'secondary' })}>312</span>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<div data-slot="card-content" class=${cardContentClass()}>
|
|
37
|
+
<div class="flex flex-wrap gap-2">
|
|
38
|
+
${USERNAMES.map((username) => html`
|
|
39
|
+
<span data-slot="avatar" data-size="default" class=${cn(avatarClass(), 'grayscale')}>
|
|
40
|
+
<span data-slot="avatar-fallback" class=${avatarFallbackClass()}>${username.charAt(0)}</span>
|
|
41
|
+
<img data-slot="avatar-image" src=${`https://github.com/${username}.png`} alt=${username} class=${avatarImageClass()}>
|
|
42
|
+
</span>
|
|
43
|
+
`)}
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div data-slot="card-footer" class=${cardFooterClass()}>
|
|
47
|
+
<a href="#" class="text-sm underline underline-offset-4">+ 810 contributors</a>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's environment variables card: three variables with their
|
|
3
|
+
* values masked or shown, and edit and deploy buttons. A fragment helper,
|
|
4
|
+
* rendered by the server. Installed by `npx @webjsdev/ui add preview` at
|
|
5
|
+
* `components/preview/environment-variables.ts`. Ported from shadcn/ui's
|
|
6
|
+
* preview block.
|
|
7
|
+
*/
|
|
8
|
+
import { html } from '@webjsdev/core';
|
|
9
|
+
import { cn } from '../../../lib/utils.ts';
|
|
10
|
+
import { buttonClass } from '../../../components/button.ts';
|
|
11
|
+
import {
|
|
12
|
+
cardClass,
|
|
13
|
+
cardContentClass,
|
|
14
|
+
cardDescriptionClass,
|
|
15
|
+
cardFooterClass,
|
|
16
|
+
cardHeaderClass,
|
|
17
|
+
cardTitleClass,
|
|
18
|
+
} from '../../../components/card.ts';
|
|
19
|
+
|
|
20
|
+
const VARIABLES = [
|
|
21
|
+
{ key: 'DATABASE_URL', masked: true },
|
|
22
|
+
{ key: 'NEXT_PUBLIC_API', masked: false },
|
|
23
|
+
{ key: 'STRIPE_SECRET', masked: true },
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
export function environmentVariables() {
|
|
27
|
+
return html`
|
|
28
|
+
<div data-slot="card" data-size="default" class=${cardClass()}>
|
|
29
|
+
<div data-slot="card-header" class=${cardHeaderClass()}>
|
|
30
|
+
<div data-slot="card-title" class=${cardTitleClass()}>Environment Variables</div>
|
|
31
|
+
<div data-slot="card-description" class=${cardDescriptionClass()}>Production · 8 variables</div>
|
|
32
|
+
</div>
|
|
33
|
+
<div data-slot="card-content" class=${cn(cardContentClass(), 'flex flex-col gap-2')}>
|
|
34
|
+
${VARIABLES.map((env) => html`
|
|
35
|
+
<div class="flex items-center gap-2 rounded-md px-2.5 py-2 font-mono text-xs ring ring-border">
|
|
36
|
+
<span class="font-medium">${env.key}</span>
|
|
37
|
+
<span class="ml-auto text-muted-foreground">${env.masked ? '••••••••' : 'https://api.example.com'}</span>
|
|
38
|
+
</div>
|
|
39
|
+
`)}
|
|
40
|
+
</div>
|
|
41
|
+
<div data-slot="card-footer" class=${cardFooterClass()}>
|
|
42
|
+
<button type="button" data-slot="button" data-variant="outline" data-size="default" class=${buttonClass({ variant: 'outline' })}>Edit</button>
|
|
43
|
+
<button type="button" data-slot="button" data-variant="default" data-size="default" class=${cn(buttonClass(), 'ml-auto')}>Deploy</button>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
`;
|
|
47
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's feedback form card: a topic picker and a feedback field.
|
|
3
|
+
* A fragment helper, rendered by the server. Installed by
|
|
4
|
+
* `npx @webjsdev/ui add preview` at `components/preview/feedback-form.ts`.
|
|
5
|
+
* Ported from shadcn/ui's preview block.
|
|
6
|
+
*
|
|
7
|
+
* The `<form>` has no `action` yet. Bind a server action from a
|
|
8
|
+
* `'use server'` file (`<form action=${sendFeedback}>`) before you ship it.
|
|
9
|
+
*/
|
|
10
|
+
import { html } from '@webjsdev/core';
|
|
11
|
+
import { cn } from '../../../lib/utils.ts';
|
|
12
|
+
import { buttonClass } from '../../../components/button.ts';
|
|
13
|
+
import { cardClass, cardContentClass, cardFooterClass } from '../../../components/card.ts';
|
|
14
|
+
import { fieldClass, fieldGroupClass, fieldLabelClass } from '../../../components/field.ts';
|
|
15
|
+
import { nativeSelectClass, nativeSelectIconClass, nativeSelectWrapperClass } from '../../../components/native-select.ts';
|
|
16
|
+
import { textareaClass } from '../../../components/textarea.ts';
|
|
17
|
+
import { ChevronDownIcon } from '../../../lib/icons.ts';
|
|
18
|
+
|
|
19
|
+
const TOPICS = [
|
|
20
|
+
['', 'Select a topic'],
|
|
21
|
+
['ai', 'AI'],
|
|
22
|
+
['accounts-and-access-controls', 'Accounts and Access Controls'],
|
|
23
|
+
['billing', 'Billing'],
|
|
24
|
+
['cdn', 'CDN (Firewall, Caching)'],
|
|
25
|
+
['ci-cd', 'CI/CD (Builds, Deployments, Environment Variables)'],
|
|
26
|
+
['dashboard-interface', 'Dashboard Interface (Navigation, UI Issues)'],
|
|
27
|
+
['domains', 'Domains'],
|
|
28
|
+
['frameworks', 'Frameworks'],
|
|
29
|
+
['marketplace-and-integrations', 'Marketplace and Integrations'],
|
|
30
|
+
['observability', 'Observability (Observability, Logs, Monitoring)'],
|
|
31
|
+
['storage', 'Storage'],
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
export function feedbackForm() {
|
|
35
|
+
return html`
|
|
36
|
+
<div data-slot="card" data-size="default" class=${cardClass()}>
|
|
37
|
+
<div data-slot="card-content" class=${cardContentClass()}>
|
|
38
|
+
<form id="feedback-form">
|
|
39
|
+
<div data-slot="field-group" class=${fieldGroupClass()}>
|
|
40
|
+
<div role="group" data-slot="field" data-orientation="vertical" class=${fieldClass()}>
|
|
41
|
+
<label data-slot="field-label" for="feedback-form-topic" class=${fieldLabelClass()}>Topic</label>
|
|
42
|
+
<div data-slot="native-select-wrapper" class=${nativeSelectWrapperClass()}>
|
|
43
|
+
<select data-slot="native-select" id="feedback-form-topic" name="topic" class=${nativeSelectClass()}>
|
|
44
|
+
${TOPICS.map(([value, label]) => html`<option value=${value}>${label}</option>`)}
|
|
45
|
+
</select>
|
|
46
|
+
${ChevronDownIcon(nativeSelectIconClass())}
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div role="group" data-slot="field" data-orientation="vertical" class=${fieldClass()}>
|
|
50
|
+
<label data-slot="field-label" for="feedback-form-feedback" class=${fieldLabelClass()}>Feedback</label>
|
|
51
|
+
<textarea data-slot="textarea" id="feedback-form-feedback" name="feedback" placeholder="Your feedback helps us improve..." class=${textareaClass()}></textarea>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</form>
|
|
55
|
+
</div>
|
|
56
|
+
<div data-slot="card-footer" class=${cardFooterClass()}>
|
|
57
|
+
<button type="submit" form="feedback-form" data-slot="button" data-variant="default" data-size="default" class=${cn(buttonClass(), 'style-sera:w-full')}>Submit</button>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
`;
|
|
61
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's file upload card: an empty state inviting a drop or a
|
|
3
|
+
* browse. A fragment helper, rendered by the server. Installed by
|
|
4
|
+
* `npx @webjsdev/ui add preview` at `components/preview/file-upload.ts`.
|
|
5
|
+
* Ported from shadcn/ui's preview block.
|
|
6
|
+
*
|
|
7
|
+
* "Browse Files" is a placeholder: make it a `<label>` for an
|
|
8
|
+
* `<input type="file">` inside a form bound to your upload action.
|
|
9
|
+
*/
|
|
10
|
+
import { html } from '@webjsdev/core';
|
|
11
|
+
import { cn } from '../../../lib/utils.ts';
|
|
12
|
+
import { buttonClass } from '../../../components/button.ts';
|
|
13
|
+
import {
|
|
14
|
+
cardClass,
|
|
15
|
+
cardContentClass,
|
|
16
|
+
cardDescriptionClass,
|
|
17
|
+
cardHeaderClass,
|
|
18
|
+
cardTitleClass,
|
|
19
|
+
} from '../../../components/card.ts';
|
|
20
|
+
import {
|
|
21
|
+
emptyClass,
|
|
22
|
+
emptyContentClass,
|
|
23
|
+
emptyDescriptionClass,
|
|
24
|
+
emptyHeaderClass,
|
|
25
|
+
emptyMediaClass,
|
|
26
|
+
emptyTitleClass,
|
|
27
|
+
} from '../../../components/empty.ts';
|
|
28
|
+
import { UploadCloudIcon } from '../../../lib/icons.ts';
|
|
29
|
+
|
|
30
|
+
export function fileUpload() {
|
|
31
|
+
return html`
|
|
32
|
+
<div data-slot="card" data-size="default" class=${cardClass()}>
|
|
33
|
+
<div data-slot="card-header" class=${cardHeaderClass()}>
|
|
34
|
+
<div data-slot="card-title" class=${cardTitleClass()}>File Upload</div>
|
|
35
|
+
<div data-slot="card-description" class=${cardDescriptionClass()}>Drag and drop or browse</div>
|
|
36
|
+
</div>
|
|
37
|
+
<div data-slot="card-content" class=${cardContentClass()}>
|
|
38
|
+
<div data-slot="empty" class=${cn(emptyClass(), 'border')}>
|
|
39
|
+
<div data-slot="empty-header" class=${emptyHeaderClass()}>
|
|
40
|
+
<div data-slot="empty-icon" data-variant="icon" class=${emptyMediaClass({ variant: 'icon' })}>${UploadCloudIcon()}</div>
|
|
41
|
+
<div data-slot="empty-title" class=${emptyTitleClass()}>Upload files</div>
|
|
42
|
+
<div data-slot="empty-description" class=${emptyDescriptionClass()}>PNG, JPG, PDF up to 10MB</div>
|
|
43
|
+
</div>
|
|
44
|
+
<div data-slot="empty-content" class=${emptyContentClass()}>
|
|
45
|
+
<button type="button" data-slot="button" data-variant="default" data-size="default" class=${buttonClass()}>Browse Files</button>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's profile card: a name, a public email and a bio. A
|
|
3
|
+
* fragment helper, rendered by the server. Installed by
|
|
4
|
+
* `npx @webjsdev/ui add preview` at `components/preview/github-profile.ts`.
|
|
5
|
+
* Ported from shadcn/ui's preview block.
|
|
6
|
+
*
|
|
7
|
+
* The `<form>` has no `action` yet. Bind a server action from a
|
|
8
|
+
* `'use server'` file (`<form action=${saveProfile}>`) before you ship it.
|
|
9
|
+
*/
|
|
10
|
+
import { html } from '@webjsdev/core';
|
|
11
|
+
import { cn } from '../../../lib/utils.ts';
|
|
12
|
+
import { buttonClass } from '../../../components/button.ts';
|
|
13
|
+
import {
|
|
14
|
+
cardClass,
|
|
15
|
+
cardContentClass,
|
|
16
|
+
cardDescriptionClass,
|
|
17
|
+
cardFooterClass,
|
|
18
|
+
cardHeaderClass,
|
|
19
|
+
cardTitleClass,
|
|
20
|
+
} from '../../../components/card.ts';
|
|
21
|
+
import { fieldClass, fieldDescriptionClass, fieldGroupClass, fieldLabelClass } from '../../../components/field.ts';
|
|
22
|
+
import { inputClass } from '../../../components/input.ts';
|
|
23
|
+
import { nativeSelectClass, nativeSelectIconClass, nativeSelectWrapperClass } from '../../../components/native-select.ts';
|
|
24
|
+
import { textareaClass } from '../../../components/textarea.ts';
|
|
25
|
+
import { ChevronDownIcon } from '../../../lib/icons.ts';
|
|
26
|
+
|
|
27
|
+
export function githubProfile() {
|
|
28
|
+
return html`
|
|
29
|
+
<div data-slot="card" data-size="default" class=${cn(cardClass(), 'mx-auto w-full max-w-md')}>
|
|
30
|
+
<div data-slot="card-header" class=${cardHeaderClass()}>
|
|
31
|
+
<div data-slot="card-title" class=${cardTitleClass()}>Profile</div>
|
|
32
|
+
<div data-slot="card-description" class=${cardDescriptionClass()}>Manage your profile information.</div>
|
|
33
|
+
</div>
|
|
34
|
+
<div data-slot="card-content" class=${cardContentClass()}>
|
|
35
|
+
<form id="profile">
|
|
36
|
+
<div data-slot="field-group" class=${fieldGroupClass()}>
|
|
37
|
+
<div role="group" data-slot="field" data-orientation="vertical" class=${fieldClass()}>
|
|
38
|
+
<label data-slot="field-label" for="profile-name" class=${fieldLabelClass()}>Name</label>
|
|
39
|
+
<input data-slot="input" id="profile-name" name="name" placeholder="vivek" class=${inputClass()}>
|
|
40
|
+
<p data-slot="field-description" class=${fieldDescriptionClass()}>Your name may appear around GitHub where you contribute or are mentioned. You can remove it at any time.</p>
|
|
41
|
+
</div>
|
|
42
|
+
<div role="group" data-slot="field" data-orientation="vertical" class=${fieldClass()}>
|
|
43
|
+
<label data-slot="field-label" for="profile-email" class=${fieldLabelClass()}>Public Email</label>
|
|
44
|
+
<div data-slot="native-select-wrapper" class=${nativeSelectWrapperClass()}>
|
|
45
|
+
<select data-slot="native-select" id="profile-email" name="email" class=${nativeSelectClass()}>
|
|
46
|
+
<option value="vivek@example.com">vivek@example.com</option>
|
|
47
|
+
<option value="m@gmail.com">m@gmail.com</option>
|
|
48
|
+
</select>
|
|
49
|
+
${ChevronDownIcon(nativeSelectIconClass())}
|
|
50
|
+
</div>
|
|
51
|
+
<p data-slot="field-description" class=${fieldDescriptionClass()}>You can manage verified email addresses in your <a href="#email-settings">email settings</a>.</p>
|
|
52
|
+
</div>
|
|
53
|
+
<div role="group" data-slot="field" data-orientation="vertical" class=${fieldClass()}>
|
|
54
|
+
<label data-slot="field-label" for="profile-bio" class=${fieldLabelClass()}>Bio</label>
|
|
55
|
+
<textarea data-slot="textarea" id="profile-bio" name="bio" placeholder="Tell us a little bit about yourself" class=${textareaClass()}></textarea>
|
|
56
|
+
<p data-slot="field-description" class=${fieldDescriptionClass()}>You can <span>@mention</span> other users and organizations to link to them.</p>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</form>
|
|
60
|
+
</div>
|
|
61
|
+
<div data-slot="card-footer" class=${cardFooterClass()}>
|
|
62
|
+
<button type="submit" form="profile" data-slot="button" data-variant="default" data-size="default" class=${cn(buttonClass(), 'style-sera:w-full')}>Save Profile</button>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
`;
|
|
66
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The preview block's icon grid card: sixteen common interface icons, each
|
|
3
|
+
* in a bordered tile. A fragment helper, rendered by the server. Installed by
|
|
4
|
+
* `npx @webjsdev/ui add preview` at `components/preview/icon-preview-grid.ts`.
|
|
5
|
+
* Ported from shadcn/ui's preview block.
|
|
6
|
+
*
|
|
7
|
+
* shadcn draws each icon from the icon library the configurator picks. These
|
|
8
|
+
* are the Lucide ones, inline; swap the SVGs for another set's.
|
|
9
|
+
*/
|
|
10
|
+
import { html } from '@webjsdev/core';
|
|
11
|
+
import { cardClass, cardContentClass } from '../../../components/card.ts';
|
|
12
|
+
|
|
13
|
+
// copy, circle-alert, trash, share, shopping-bag, more-horizontal, loader-2,
|
|
14
|
+
// plus, minus, arrow-left, arrow-right, check, chevron-down, chevron-right,
|
|
15
|
+
// search, settings.
|
|
16
|
+
const PREVIEW_ICONS = [
|
|
17
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg>`,
|
|
18
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><line x1="12" x2="12" y1="8" y2="12"></line><line x1="12" x2="12.01" y1="16" y2="16"></line></svg>`,
|
|
19
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"></path><path d="M3 6h18"></path><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg>`,
|
|
20
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2v13"></path><path d="m16 6-4-4-4 4"></path><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path></svg>`,
|
|
21
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 10a4 4 0 0 1-8 0"></path><path d="M3.103 6.034h17.794"></path><path d="M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z"></path></svg>`,
|
|
22
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg>`,
|
|
23
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"></path></svg>`,
|
|
24
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>`,
|
|
25
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path></svg>`,
|
|
26
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>`,
|
|
27
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>`,
|
|
28
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>`,
|
|
29
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg>`,
|
|
30
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg>`,
|
|
31
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg>`,
|
|
32
|
+
() => html`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg>`,
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
export function iconPreviewGrid() {
|
|
36
|
+
return html`
|
|
37
|
+
<div data-slot="card" data-size="default" class=${cardClass()}>
|
|
38
|
+
<div data-slot="card-content" class=${cardContentClass()}>
|
|
39
|
+
<div class="grid grid-cols-8 place-items-center gap-4">
|
|
40
|
+
${PREVIEW_ICONS.map((icon) => html`
|
|
41
|
+
<div class="flex size-8 items-center justify-center rounded-md ring ring-border style-sera:rounded-none *:[svg]:size-4">${icon()}</div>
|
|
42
|
+
`)}
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
`;
|
|
47
|
+
}
|