@vamos-ui/react 0.0.0-stage → 0.3.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/LICENSE +21 -0
- package/README.md +27 -2
- package/dist/blocks/block-heading.d.ts +29 -0
- package/dist/blocks/block-heading.js +39 -0
- package/dist/blocks/block-image.d.ts +52 -0
- package/dist/blocks/block-image.js +48 -0
- package/dist/blocks/block-link.d.ts +30 -0
- package/dist/blocks/block-link.js +36 -0
- package/dist/blocks/create-blocks.d.ts +54 -0
- package/dist/blocks/create-blocks.js +52 -0
- package/dist/blocks/index.d.ts +55 -0
- package/dist/blocks/index.js +59 -0
- package/dist/blocks/json-ld.d.ts +18 -0
- package/dist/blocks/json-ld.js +44 -0
- package/dist/blocks/labels.d.ts +20 -0
- package/dist/blocks/labels.js +43 -0
- package/dist/blocks/rich-text.d.ts +36 -0
- package/dist/blocks/rich-text.js +106 -0
- package/dist/blocks/schema/define-block.d.ts +151 -0
- package/dist/blocks/schema/define-block.js +120 -0
- package/dist/blocks/schema/emphasis.d.ts +17 -0
- package/dist/blocks/schema/emphasis.js +69 -0
- package/dist/blocks/schema/fields.d.ts +497 -0
- package/dist/blocks/schema/fields.js +240 -0
- package/dist/blocks/schema/icons.d.ts +2 -0
- package/dist/blocks/schema/icons.js +26 -0
- package/dist/blocks/schema/index.d.ts +18 -0
- package/dist/blocks/schema/index.js +21 -0
- package/dist/blocks/schema/lint-types.d.ts +16 -0
- package/dist/blocks/schema/lint-types.js +2 -0
- package/dist/blocks/schema/lint.d.ts +32 -0
- package/dist/blocks/schema/lint.js +164 -0
- package/dist/blocks/schema/localize.d.ts +20 -0
- package/dist/blocks/schema/localize.js +29 -0
- package/dist/blocks/schema/localized.d.ts +25 -0
- package/dist/blocks/schema/localized.js +53 -0
- package/dist/blocks/schema/migrate.d.ts +24 -0
- package/dist/blocks/schema/migrate.js +75 -0
- package/dist/blocks/schema/nodes.d.ts +196 -0
- package/dist/blocks/schema/nodes.js +78 -0
- package/dist/blocks/schema/rich-doc-schema.d.ts +32 -0
- package/dist/blocks/schema/rich-doc-schema.js +66 -0
- package/dist/blocks/schema/rich-doc.d.ts +90 -0
- package/dist/blocks/schema/rich-doc.js +62 -0
- package/dist/blocks/schema/safety.d.ts +20 -0
- package/dist/blocks/schema/safety.js +49 -0
- package/dist/blocks/schema/types.d.ts +172 -0
- package/dist/blocks/schema/types.js +3 -0
- package/dist/blocks/schema/validate.d.ts +17 -0
- package/dist/blocks/schema/validate.js +32 -0
- package/dist/blocks/schema/walk.d.ts +22 -0
- package/dist/blocks/schema/walk.js +60 -0
- package/dist/blocks/section-header.d.ts +38 -0
- package/dist/blocks/section-header.js +22 -0
- package/dist/blocks/section.d.ts +59 -0
- package/dist/blocks/section.js +66 -0
- package/dist/blocks/site/_kit-1.d.ts +101 -0
- package/dist/blocks/site/_kit-1.js +137 -0
- package/dist/blocks/site/_site-icon-1.d.ts +6 -0
- package/dist/blocks/site/_site-icon-1.js +15 -0
- package/dist/blocks/site/announcement-bar.d.ts +42 -0
- package/dist/blocks/site/announcement-bar.js +38 -0
- package/dist/blocks/site/announcement-dismiss.d.ts +18 -0
- package/dist/blocks/site/announcement-dismiss.js +28 -0
- package/dist/blocks/site/article-layout.d.ts +65 -0
- package/dist/blocks/site/article-layout.js +88 -0
- package/dist/blocks/site/blog-list.d.ts +79 -0
- package/dist/blocks/site/blog-list.js +78 -0
- package/dist/blocks/site/comparison-table.d.ts +54 -0
- package/dist/blocks/site/comparison-table.js +38 -0
- package/dist/blocks/site/consent-banner.d.ts +52 -0
- package/dist/blocks/site/consent-banner.js +33 -0
- package/dist/blocks/site/contact-dock.d.ts +52 -0
- package/dist/blocks/site/contact-dock.js +55 -0
- package/dist/blocks/site/contact-form.d.ts +60 -0
- package/dist/blocks/site/contact-form.js +45 -0
- package/dist/blocks/site/cta-booking.d.ts +43 -0
- package/dist/blocks/site/cta-booking.js +69 -0
- package/dist/blocks/site/cta.d.ts +74 -0
- package/dist/blocks/site/cta.js +113 -0
- package/dist/blocks/site/embed-facade.d.ts +20 -0
- package/dist/blocks/site/embed-facade.js +21 -0
- package/dist/blocks/site/faq.d.ts +48 -0
- package/dist/blocks/site/faq.js +52 -0
- package/dist/blocks/site/feature-grid.d.ts +46 -0
- package/dist/blocks/site/feature-grid.js +50 -0
- package/dist/blocks/site/feature-tabs.d.ts +22 -0
- package/dist/blocks/site/feature-tabs.js +11 -0
- package/dist/blocks/site/footer.d.ts +68 -0
- package/dist/blocks/site/footer.js +61 -0
- package/dist/blocks/site/gallery-section.d.ts +42 -0
- package/dist/blocks/site/gallery-section.js +48 -0
- package/dist/blocks/site/hero-video.d.ts +15 -0
- package/dist/blocks/site/hero-video.js +31 -0
- package/dist/blocks/site/hero.d.ts +64 -0
- package/dist/blocks/site/hero.js +73 -0
- package/dist/blocks/site/logo-strip.d.ts +44 -0
- package/dist/blocks/site/logo-strip.js +27 -0
- package/dist/blocks/site/map-hours.d.ts +83 -0
- package/dist/blocks/site/map-hours.js +125 -0
- package/dist/blocks/site/media-text.d.ts +45 -0
- package/dist/blocks/site/media-text.js +56 -0
- package/dist/blocks/site/menu-list.d.ts +74 -0
- package/dist/blocks/site/menu-list.js +84 -0
- package/dist/blocks/site/navbar-submenu.d.ts +18 -0
- package/dist/blocks/site/navbar-submenu.js +51 -0
- package/dist/blocks/site/navbar.d.ts +67 -0
- package/dist/blocks/site/navbar.js +64 -0
- package/dist/blocks/site/not-found.d.ts +40 -0
- package/dist/blocks/site/not-found.js +38 -0
- package/dist/blocks/site/page-intro.d.ts +46 -0
- package/dist/blocks/site/page-intro.js +44 -0
- package/dist/blocks/site/pricing-table.d.ts +67 -0
- package/dist/blocks/site/pricing-table.js +83 -0
- package/dist/blocks/site/process.d.ts +36 -0
- package/dist/blocks/site/process.js +42 -0
- package/dist/blocks/site/registry-1.d.ts +720 -0
- package/dist/blocks/site/registry-1.js +783 -0
- package/dist/blocks/site/registry-2.d.ts +914 -0
- package/dist/blocks/site/registry-2.js +563 -0
- package/dist/blocks/site/rich-text-section.d.ts +34 -0
- package/dist/blocks/site/rich-text-section.js +32 -0
- package/dist/blocks/site/shared/brand-icons.d.ts +21 -0
- package/dist/blocks/site/shared/brand-icons.js +56 -0
- package/dist/blocks/site/shared/consent-gate.d.ts +41 -0
- package/dist/blocks/site/shared/consent-gate.js +43 -0
- package/dist/blocks/site/shared/consent-island.d.ts +38 -0
- package/dist/blocks/site/shared/consent-island.js +63 -0
- package/dist/blocks/site/shared/consent.d.ts +49 -0
- package/dist/blocks/site/shared/consent.js +130 -0
- package/dist/blocks/site/shared/contact-form-island.d.ts +41 -0
- package/dist/blocks/site/shared/contact-form-island.js +100 -0
- package/dist/blocks/site/shared/copy-link.d.ts +10 -0
- package/dist/blocks/site/shared/copy-link.js +25 -0
- package/dist/blocks/site/shared/dock-avoid.d.ts +15 -0
- package/dist/blocks/site/shared/dock-avoid.js +107 -0
- package/dist/blocks/site/shared/dock-hours.d.ts +13 -0
- package/dist/blocks/site/shared/dock-hours.js +25 -0
- package/dist/blocks/site/shared/gallery-lightbox.d.ts +12 -0
- package/dist/blocks/site/shared/gallery-lightbox.js +10 -0
- package/dist/blocks/site/shared/island-keys.d.ts +10 -0
- package/dist/blocks/site/shared/island-keys.js +44 -0
- package/dist/blocks/site/shared/kit-2.d.ts +55 -0
- package/dist/blocks/site/shared/kit-2.js +84 -0
- package/dist/blocks/site/shared/labels-2.d.ts +209 -0
- package/dist/blocks/site/shared/labels-2.js +427 -0
- package/dist/blocks/site/shared/open-now.d.ts +22 -0
- package/dist/blocks/site/shared/open-now.js +27 -0
- package/dist/blocks/site/shared/opening-hours.d.ts +117 -0
- package/dist/blocks/site/shared/opening-hours.js +245 -0
- package/dist/blocks/site/shared/site-accent.d.ts +48 -0
- package/dist/blocks/site/shared/site-accent.js +249 -0
- package/dist/blocks/site/shared/site-form.d.ts +79 -0
- package/dist/blocks/site/shared/site-form.js +111 -0
- package/dist/blocks/site/shared/site-routing.d.ts +54 -0
- package/dist/blocks/site/shared/site-routing.js +86 -0
- package/dist/blocks/site/shared/testimonials-carousel.d.ts +17 -0
- package/dist/blocks/site/shared/testimonials-carousel.js +64 -0
- package/dist/blocks/site/site-shell.d.ts +108 -0
- package/dist/blocks/site/site-shell.js +254 -0
- package/dist/blocks/site/stats-band.d.ts +42 -0
- package/dist/blocks/site/stats-band.js +45 -0
- package/dist/blocks/site/team.d.ts +44 -0
- package/dist/blocks/site/team.js +48 -0
- package/dist/blocks/site/testimonials.d.ts +68 -0
- package/dist/blocks/site/testimonials.js +66 -0
- package/dist/blocks/types.d.ts +63 -0
- package/dist/blocks/types.js +2 -0
- package/dist/business/approval-flow.d.ts +152 -0
- package/dist/business/approval-flow.js +221 -0
- package/dist/business/export-core.d.ts +55 -0
- package/dist/business/export-core.js +101 -0
- package/dist/business/export.d.ts +148 -0
- package/dist/business/export.js +264 -0
- package/dist/business/import-core.d.ts +104 -0
- package/dist/business/import-core.js +281 -0
- package/dist/business/import-wizard.d.ts +186 -0
- package/dist/business/import-wizard.js +401 -0
- package/dist/business/index.d.ts +12 -0
- package/dist/business/index.js +22 -0
- package/dist/business/line-items-core.d.ts +129 -0
- package/dist/business/line-items-core.js +183 -0
- package/dist/business/line-items.d.ts +119 -0
- package/dist/business/line-items.js +299 -0
- package/dist/business/multi-step-form.d.ts +131 -0
- package/dist/business/multi-step-form.js +337 -0
- package/dist/business/permission-core.d.ts +59 -0
- package/dist/business/permission-core.js +99 -0
- package/dist/business/permission-matrix.d.ts +158 -0
- package/dist/business/permission-matrix.js +341 -0
- package/dist/business/setup-checklist.d.ts +80 -0
- package/dist/business/setup-checklist.js +92 -0
- package/dist/business/signer-status.d.ts +53 -0
- package/dist/business/signer-status.js +76 -0
- package/dist/charts/area-chart.d.ts +35 -0
- package/dist/charts/area-chart.js +33 -0
- package/dist/charts/bar-chart.d.ts +27 -0
- package/dist/charts/bar-chart.js +46 -0
- package/dist/charts/bar-list.d.ts +47 -0
- package/dist/charts/bar-list.js +60 -0
- package/dist/charts/chart-shell.d.ts +173 -0
- package/dist/charts/chart-shell.js +205 -0
- package/dist/charts/chart.d.ts +73 -0
- package/dist/charts/chart.js +106 -0
- package/dist/charts/combo-chart.d.ts +29 -0
- package/dist/charts/combo-chart.js +47 -0
- package/dist/charts/donut-chart.d.ts +33 -0
- package/dist/charts/donut-chart.js +113 -0
- package/dist/charts/funnel.d.ts +51 -0
- package/dist/charts/funnel.js +69 -0
- package/dist/charts/gauge.d.ts +62 -0
- package/dist/charts/gauge.js +104 -0
- package/dist/charts/heatmap.d.ts +81 -0
- package/dist/charts/heatmap.js +338 -0
- package/dist/charts/index.d.ts +12 -0
- package/dist/charts/index.js +14 -0
- package/dist/charts/line-chart.d.ts +21 -0
- package/dist/charts/line-chart.js +36 -0
- package/dist/charts/test-utils.d.ts +2 -0
- package/dist/charts/test-utils.js +38 -0
- package/dist/charts/utils.d.ts +130 -0
- package/dist/charts/utils.js +262 -0
- package/dist/components/_qr-core.d.ts +26 -0
- package/dist/components/_qr-core.js +376 -0
- package/dist/components/accordion.d.ts +47 -0
- package/dist/components/accordion.js +70 -0
- package/dist/components/activity-timeline.d.ts +149 -0
- package/dist/components/activity-timeline.js +122 -0
- package/dist/components/address-field.d.ts +116 -0
- package/dist/components/address-field.js +219 -0
- package/dist/components/alert-dialog.d.ts +99 -0
- package/dist/components/alert-dialog.js +192 -0
- package/dist/components/alert.d.ts +42 -0
- package/dist/components/alert.js +82 -0
- package/dist/components/app-shell.d.ts +159 -0
- package/dist/components/app-shell.js +289 -0
- package/dist/components/attachment-list.d.ts +96 -0
- package/dist/components/attachment-list.js +196 -0
- package/dist/components/audit-log.d.ts +150 -0
- package/dist/components/audit-log.js +205 -0
- package/dist/components/avatar.d.ts +87 -0
- package/dist/components/avatar.js +126 -0
- package/dist/components/backup-codes.d.ts +42 -0
- package/dist/components/backup-codes.js +67 -0
- package/dist/components/badge.d.ts +41 -0
- package/dist/components/badge.js +68 -0
- package/dist/components/breadcrumb.d.ts +78 -0
- package/dist/components/breadcrumb.js +106 -0
- package/dist/components/button-group.d.ts +52 -0
- package/dist/components/button-group.js +77 -0
- package/dist/components/button.d.ts +58 -0
- package/dist/components/button.js +107 -0
- package/dist/components/calendar.d.ts +240 -0
- package/dist/components/calendar.js +483 -0
- package/dist/components/card.d.ts +66 -0
- package/dist/components/card.js +76 -0
- package/dist/components/carousel.d.ts +170 -0
- package/dist/components/carousel.js +348 -0
- package/dist/components/checkbox.d.ts +78 -0
- package/dist/components/checkbox.js +138 -0
- package/dist/components/color-picker.d.ts +112 -0
- package/dist/components/color-picker.js +235 -0
- package/dist/components/combobox.d.ts +136 -0
- package/dist/components/combobox.js +294 -0
- package/dist/components/command.d.ts +281 -0
- package/dist/components/command.js +498 -0
- package/dist/components/comment-thread.d.ts +252 -0
- package/dist/components/comment-thread.js +449 -0
- package/dist/components/context-menu.d.ts +77 -0
- package/dist/components/context-menu.js +82 -0
- package/dist/components/currency-input.d.ts +43 -0
- package/dist/components/currency-input.js +85 -0
- package/dist/components/date-picker.d.ts +141 -0
- package/dist/components/date-picker.js +241 -0
- package/dist/components/date-range-picker.d.ts +91 -0
- package/dist/components/date-range-picker.js +251 -0
- package/dist/components/description-list.d.ts +92 -0
- package/dist/components/description-list.js +42 -0
- package/dist/components/dialog.d.ts +139 -0
- package/dist/components/dialog.js +185 -0
- package/dist/components/dropdown-menu.d.ts +100 -0
- package/dist/components/dropdown-menu.js +102 -0
- package/dist/components/editor-layout.d.ts +166 -0
- package/dist/components/editor-layout.js +237 -0
- package/dist/components/empty-state.d.ts +49 -0
- package/dist/components/empty-state.js +68 -0
- package/dist/components/entity-card.d.ts +83 -0
- package/dist/components/entity-card.js +92 -0
- package/dist/components/file-upload.d.ts +256 -0
- package/dist/components/file-upload.js +490 -0
- package/dist/components/formatted-input.d.ts +177 -0
- package/dist/components/formatted-input.js +399 -0
- package/dist/components/hierarchy-chart.d.ts +190 -0
- package/dist/components/hierarchy-chart.js +890 -0
- package/dist/components/hover-card.d.ts +21 -0
- package/dist/components/hover-card.js +32 -0
- package/dist/components/iban-input.d.ts +38 -0
- package/dist/components/iban-input.js +112 -0
- package/dist/components/id-input.d.ts +65 -0
- package/dist/components/id-input.js +130 -0
- package/dist/components/image.d.ts +130 -0
- package/dist/components/image.js +168 -0
- package/dist/components/input-otp.d.ts +62 -0
- package/dist/components/input-otp.js +73 -0
- package/dist/components/input.d.ts +141 -0
- package/dist/components/input.js +187 -0
- package/dist/components/item.d.ts +96 -0
- package/dist/components/item.js +113 -0
- package/dist/components/kbd.d.ts +64 -0
- package/dist/components/kbd.js +119 -0
- package/dist/components/list-layout.d.ts +144 -0
- package/dist/components/list-layout.js +210 -0
- package/dist/components/native-select.d.ts +33 -0
- package/dist/components/native-select.js +48 -0
- package/dist/components/navigation-menu.d.ts +127 -0
- package/dist/components/navigation-menu.js +129 -0
- package/dist/components/notification-center.d.ts +164 -0
- package/dist/components/notification-center.js +399 -0
- package/dist/components/page-header.d.ts +60 -0
- package/dist/components/page-header.js +60 -0
- package/dist/components/pagination.d.ts +121 -0
- package/dist/components/pagination.js +174 -0
- package/dist/components/phone-input.d.ts +49 -0
- package/dist/components/phone-input.js +266 -0
- package/dist/components/pin-map.d.ts +58 -0
- package/dist/components/pin-map.js +167 -0
- package/dist/components/popover.d.ts +38 -0
- package/dist/components/popover.js +69 -0
- package/dist/components/progress.d.ts +79 -0
- package/dist/components/progress.js +97 -0
- package/dist/components/qr-code.d.ts +36 -0
- package/dist/components/qr-code.js +27 -0
- package/dist/components/radio-group.d.ts +43 -0
- package/dist/components/radio-group.js +81 -0
- package/dist/components/record-detail-layout.d.ts +167 -0
- package/dist/components/record-detail-layout.js +233 -0
- package/dist/components/record-picker.d.ts +199 -0
- package/dist/components/record-picker.js +650 -0
- package/dist/components/resizable.d.ts +50 -0
- package/dist/components/resizable.js +88 -0
- package/dist/components/scroll-area.d.ts +40 -0
- package/dist/components/scroll-area.js +56 -0
- package/dist/components/select.d.ts +126 -0
- package/dist/components/select.js +137 -0
- package/dist/components/separator.d.ts +31 -0
- package/dist/components/separator.js +41 -0
- package/dist/components/settings-layout.d.ts +134 -0
- package/dist/components/settings-layout.js +180 -0
- package/dist/components/sheet.d.ts +103 -0
- package/dist/components/sheet.js +165 -0
- package/dist/components/sidebar.d.ts +171 -0
- package/dist/components/sidebar.js +421 -0
- package/dist/components/signature-pad.d.ts +85 -0
- package/dist/components/signature-pad.js +283 -0
- package/dist/components/skeleton.d.ts +64 -0
- package/dist/components/skeleton.js +53 -0
- package/dist/components/sla-timer.d.ts +75 -0
- package/dist/components/sla-timer.js +142 -0
- package/dist/components/slider.d.ts +57 -0
- package/dist/components/slider.js +133 -0
- package/dist/components/slug-input.d.ts +69 -0
- package/dist/components/slug-input.js +201 -0
- package/dist/components/sparkline.d.ts +54 -0
- package/dist/components/sparkline.js +122 -0
- package/dist/components/spinner.d.ts +34 -0
- package/dist/components/spinner.js +34 -0
- package/dist/components/stat.d.ts +135 -0
- package/dist/components/stat.js +130 -0
- package/dist/components/status-picker.d.ts +107 -0
- package/dist/components/status-picker.js +175 -0
- package/dist/components/stepper.d.ts +86 -0
- package/dist/components/stepper.js +103 -0
- package/dist/components/switch.d.ts +34 -0
- package/dist/components/switch.js +70 -0
- package/dist/components/table.d.ts +101 -0
- package/dist/components/table.js +72 -0
- package/dist/components/tabs.d.ts +103 -0
- package/dist/components/tabs.js +173 -0
- package/dist/components/tag-input.d.ts +77 -0
- package/dist/components/tag-input.js +305 -0
- package/dist/components/task-list.d.ts +89 -0
- package/dist/components/task-list.js +238 -0
- package/dist/components/time-picker.d.ts +119 -0
- package/dist/components/time-picker.js +399 -0
- package/dist/components/toast.d.ts +87 -0
- package/dist/components/toast.js +142 -0
- package/dist/components/toggle.d.ts +77 -0
- package/dist/components/toggle.js +109 -0
- package/dist/components/tooltip.d.ts +69 -0
- package/dist/components/tooltip.js +105 -0
- package/dist/components/top-bar.d.ts +87 -0
- package/dist/components/top-bar.js +99 -0
- package/dist/components/tour.d.ts +60 -0
- package/dist/components/tour.js +139 -0
- package/dist/components/tree-select.d.ts +89 -0
- package/dist/components/tree-select.js +243 -0
- package/dist/components/tree-view.d.ts +109 -0
- package/dist/components/tree-view.js +170 -0
- package/dist/components/typography.d.ts +107 -0
- package/dist/components/typography.js +128 -0
- package/dist/components/user-picker.d.ts +89 -0
- package/dist/components/user-picker.js +162 -0
- package/dist/components/version-history.d.ts +191 -0
- package/dist/components/version-history.js +431 -0
- package/dist/data-table/csv.d.ts +27 -0
- package/dist/data-table/csv.js +68 -0
- package/dist/data-table/data-table.d.ts +423 -0
- package/dist/data-table/data-table.js +1259 -0
- package/dist/data-table/filter-bar.d.ts +146 -0
- package/dist/data-table/filter-bar.js +569 -0
- package/dist/data-table/filter-fns.d.ts +65 -0
- package/dist/data-table/filter-fns.js +382 -0
- package/dist/data-table/index.d.ts +8 -0
- package/dist/data-table/index.js +9 -0
- package/dist/data-table/saved-views.d.ts +100 -0
- package/dist/data-table/saved-views.js +251 -0
- package/dist/data-table/types.d.ts +168 -0
- package/dist/data-table/types.js +87 -0
- package/dist/data-table/url-state.d.ts +94 -0
- package/dist/data-table/url-state.js +303 -0
- package/dist/data-table/view-state.d.ts +16 -0
- package/dist/data-table/view-state.js +81 -0
- package/dist/editor/_test-setup.d.ts +1 -0
- package/dist/editor/_test-setup.js +33 -0
- package/dist/editor/block-editor.d.ts +137 -0
- package/dist/editor/block-editor.js +280 -0
- package/dist/editor/commands.d.ts +31 -0
- package/dist/editor/commands.js +150 -0
- package/dist/editor/context.d.ts +108 -0
- package/dist/editor/context.js +30 -0
- package/dist/editor/convert.d.ts +66 -0
- package/dist/editor/convert.js +567 -0
- package/dist/editor/drag-handle.d.ts +10 -0
- package/dist/editor/drag-handle.js +69 -0
- package/dist/editor/extensions.d.ts +34 -0
- package/dist/editor/extensions.js +239 -0
- package/dist/editor/index.d.ts +14 -0
- package/dist/editor/index.js +17 -0
- package/dist/editor/inserter.d.ts +12 -0
- package/dist/editor/inserter.js +88 -0
- package/dist/editor/inspector.d.ts +17 -0
- package/dist/editor/inspector.js +65 -0
- package/dist/editor/items.d.ts +62 -0
- package/dist/editor/items.js +195 -0
- package/dist/editor/labels.d.ts +119 -0
- package/dist/editor/labels.js +130 -0
- package/dist/editor/markdown.d.ts +14 -0
- package/dist/editor/markdown.js +209 -0
- package/dist/editor/menus.d.ts +20 -0
- package/dist/editor/menus.js +236 -0
- package/dist/editor/nodes.d.ts +14 -0
- package/dist/editor/nodes.js +201 -0
- package/dist/editor/outline.d.ts +11 -0
- package/dist/editor/outline.js +52 -0
- package/dist/editor/schema-form.d.ts +64 -0
- package/dist/editor/schema-form.js +290 -0
- package/dist/editor/slash-menu.d.ts +15 -0
- package/dist/editor/slash-menu.js +119 -0
- package/dist/fonts/catalog.d.ts +53 -0
- package/dist/fonts/catalog.js +121 -0
- package/dist/fonts/font-picker.d.ts +70 -0
- package/dist/fonts/font-picker.js +225 -0
- package/dist/fonts/index.d.ts +6 -0
- package/dist/fonts/index.js +7 -0
- package/dist/fonts/loader.d.ts +66 -0
- package/dist/fonts/loader.js +161 -0
- package/dist/fonts/pairing-picker.d.ts +31 -0
- package/dist/fonts/pairing-picker.js +81 -0
- package/dist/fonts/pairings.d.ts +84 -0
- package/dist/fonts/pairings.js +149 -0
- package/dist/fonts/provider.d.ts +34 -0
- package/dist/fonts/provider.js +51 -0
- package/dist/form/index.d.ts +1 -0
- package/dist/form/index.js +1 -0
- package/dist/format/core.d.ts +149 -0
- package/dist/format/core.js +357 -0
- package/dist/format/index.d.ts +4 -0
- package/dist/format/index.js +5 -0
- package/dist/format/use-format.d.ts +1 -0
- package/dist/format/use-format.js +3 -0
- package/dist/index.d.ts +91 -0
- package/dist/index.js +92 -0
- package/dist/lib/cn.d.ts +3 -0
- package/dist/lib/cn.js +16 -0
- package/dist/lib/color.d.ts +64 -0
- package/dist/lib/color.js +177 -0
- package/dist/lib/compose-refs.d.ts +24 -0
- package/dist/lib/compose-refs.js +45 -0
- package/dist/lib/data-islands.d.ts +194 -0
- package/dist/lib/data-islands.js +368 -0
- package/dist/lib/date.d.ts +129 -0
- package/dist/lib/date.js +386 -0
- package/dist/lib/field-context.d.ts +64 -0
- package/dist/lib/field-context.js +62 -0
- package/dist/lib/floating-arrow.d.ts +18 -0
- package/dist/lib/floating-arrow.js +15 -0
- package/dist/lib/islands.d.ts +38 -0
- package/dist/lib/islands.js +40 -0
- package/dist/lib/labels.d.ts +51 -0
- package/dist/lib/labels.js +56 -0
- package/dist/lib/layer.d.ts +36 -0
- package/dist/lib/layer.js +42 -0
- package/dist/lib/locale.d.ts +85 -0
- package/dist/lib/locale.js +105 -0
- package/dist/lib/menu.d.ts +58 -0
- package/dist/lib/menu.js +99 -0
- package/dist/lib/message-format.d.ts +20 -0
- package/dist/lib/message-format.js +116 -0
- package/dist/lib/nav.d.ts +132 -0
- package/dist/lib/nav.js +178 -0
- package/dist/lib/provider.d.ts +100 -0
- package/dist/lib/provider.js +105 -0
- package/dist/lib/public.d.ts +23 -0
- package/dist/lib/public.js +34 -0
- package/dist/lib/sr-name.d.ts +18 -0
- package/dist/lib/sr-name.js +17 -0
- package/dist/lib/text.d.ts +100 -0
- package/dist/lib/text.js +233 -0
- package/dist/lib/theme-scope.d.ts +58 -0
- package/dist/lib/theme-scope.js +59 -0
- package/dist/lib/use-async-list.d.ts +60 -0
- package/dist/lib/use-async-list.js +119 -0
- package/dist/lib/use-container-width.d.ts +19 -0
- package/dist/lib/use-container-width.js +39 -0
- package/dist/lib/use-controllable-state.d.ts +33 -0
- package/dist/lib/use-controllable-state.js +56 -0
- package/dist/lib/use-edge-fade.d.ts +13 -0
- package/dist/lib/use-edge-fade.js +43 -0
- package/dist/lib/use-formatted-input.d.ts +69 -0
- package/dist/lib/use-formatted-input.js +152 -0
- package/dist/lib/use-hotkeys.d.ts +80 -0
- package/dist/lib/use-hotkeys.js +221 -0
- package/dist/lib/use-hover-intent.d.ts +44 -0
- package/dist/lib/use-hover-intent.js +119 -0
- package/dist/lib/use-media-query.d.ts +21 -0
- package/dist/lib/use-media-query.js +28 -0
- package/dist/lib/use-reduced-motion.d.ts +8 -0
- package/dist/lib/use-reduced-motion.js +13 -0
- package/dist/lib/use-tree.d.ts +153 -0
- package/dist/lib/use-tree.js +534 -0
- package/dist/lib/value-format.d.ts +25 -0
- package/dist/lib/value-format.js +56 -0
- package/dist/lib/variants.d.ts +131 -0
- package/dist/lib/variants.js +109 -0
- package/dist/locale-data/core/date.d.ts +24 -0
- package/dist/locale-data/core/date.js +68 -0
- package/dist/locale-data/core/decimal.d.ts +19 -0
- package/dist/locale-data/core/decimal.js +79 -0
- package/dist/locale-data/core/holidays.d.ts +30 -0
- package/dist/locale-data/core/holidays.js +79 -0
- package/dist/locale-data/core/iban.d.ts +29 -0
- package/dist/locale-data/core/iban.js +74 -0
- package/dist/locale-data/core/index.d.ts +7 -0
- package/dist/locale-data/core/index.js +6 -0
- package/dist/locale-data/core/types.d.ts +173 -0
- package/dist/locale-data/core/types.js +6 -0
- package/dist/locale-data/core/week-info.d.ts +23 -0
- package/dist/locale-data/core/week-info.js +85 -0
- package/dist/locale-data/core/working-days.d.ts +27 -0
- package/dist/locale-data/core/working-days.js +133 -0
- package/dist/locale-data/index.d.ts +2 -0
- package/dist/locale-data/index.js +4 -0
- package/dist/locale-data/tr/address-tr.json +1 -0
- package/dist/locale-data/tr/address.d.ts +23 -0
- package/dist/locale-data/tr/address.js +52 -0
- package/dist/locale-data/tr/holidays.d.ts +31 -0
- package/dist/locale-data/tr/holidays.js +81 -0
- package/dist/locale-data/tr/iban.d.ts +21 -0
- package/dist/locale-data/tr/iban.js +45 -0
- package/dist/locale-data/tr/id.d.ts +36 -0
- package/dist/locale-data/tr/id.js +120 -0
- package/dist/locale-data/tr/index.d.ts +12 -0
- package/dist/locale-data/tr/index.js +33 -0
- package/dist/locale-data/tr/kdv.d.ts +91 -0
- package/dist/locale-data/tr/kdv.js +222 -0
- package/dist/locales/en.d.ts +2102 -0
- package/dist/locales/en.js +2088 -0
- package/dist/locales/tr.d.ts +2086 -0
- package/dist/locales/tr.js +2087 -0
- package/dist/media/focal-point.d.ts +42 -0
- package/dist/media/focal-point.js +96 -0
- package/dist/media/gallery-layout.d.ts +19 -0
- package/dist/media/gallery-layout.js +61 -0
- package/dist/media/gallery.d.ts +64 -0
- package/dist/media/gallery.js +140 -0
- package/dist/media/image-cropper.d.ts +86 -0
- package/dist/media/image-cropper.js +170 -0
- package/dist/media/image-field.d.ts +115 -0
- package/dist/media/image-field.js +212 -0
- package/dist/media/index.d.ts +19 -0
- package/dist/media/index.js +23 -0
- package/dist/media/lightbox.d.ts +82 -0
- package/dist/media/lightbox.js +171 -0
- package/dist/media/link-preview.d.ts +97 -0
- package/dist/media/link-preview.js +177 -0
- package/dist/media/media-library.d.ts +244 -0
- package/dist/media/media-library.js +776 -0
- package/dist/media/media-picker.d.ts +96 -0
- package/dist/media/media-picker.js +209 -0
- package/dist/media/media-provider.d.ts +23 -0
- package/dist/media/media-provider.js +44 -0
- package/dist/media/media-utils.d.ts +39 -0
- package/dist/media/media-utils.js +145 -0
- package/dist/media/memory-adapter.d.ts +22 -0
- package/dist/media/memory-adapter.js +162 -0
- package/dist/media/rest-adapter.d.ts +90 -0
- package/dist/media/rest-adapter.js +208 -0
- package/dist/media/serp.d.ts +62 -0
- package/dist/media/serp.js +108 -0
- package/dist/media/test-fixtures.d.ts +3 -0
- package/dist/media/test-fixtures.js +37 -0
- package/dist/media/types.d.ts +183 -0
- package/dist/media/types.js +3 -0
- package/dist/media/use-pan-zoom.d.ts +51 -0
- package/dist/media/use-pan-zoom.js +156 -0
- package/dist/media/use-upload-queue.d.ts +64 -0
- package/dist/media/use-upload-queue.js +115 -0
- package/dist/media/video-player.d.ts +135 -0
- package/dist/media/video-player.js +319 -0
- package/dist/motion/core.d.ts +32 -0
- package/dist/motion/core.js +77 -0
- package/dist/motion/count-up.d.ts +29 -0
- package/dist/motion/count-up.js +92 -0
- package/dist/motion/index.d.ts +11 -0
- package/dist/motion/index.js +13 -0
- package/dist/motion/motion-scope.d.ts +17 -0
- package/dist/motion/motion-scope.js +16 -0
- package/dist/motion/page-transition.d.ts +33 -0
- package/dist/motion/page-transition.js +61 -0
- package/dist/motion/parallax.d.ts +37 -0
- package/dist/motion/parallax.js +90 -0
- package/dist/motion/pointer.d.ts +38 -0
- package/dist/motion/pointer.js +117 -0
- package/dist/motion/reveal.d.ts +72 -0
- package/dist/motion/reveal.js +133 -0
- package/dist/motion/scroll-shrink.d.ts +18 -0
- package/dist/motion/scroll-shrink.js +47 -0
- package/dist/motion/skeleton-swap.d.ts +17 -0
- package/dist/motion/skeleton-swap.js +43 -0
- package/dist/motion/text-reveal.d.ts +30 -0
- package/dist/motion/text-reveal.js +29 -0
- package/dist/motion/ticker.d.ts +35 -0
- package/dist/motion/ticker.js +16 -0
- package/dist/next/index.d.ts +42 -0
- package/dist/next/index.js +36 -0
- package/dist/render/block-renderer.d.ts +56 -0
- package/dist/render/block-renderer.js +137 -0
- package/dist/render/index.d.ts +6 -0
- package/dist/render/index.js +7 -0
- package/dist/render/prepare.d.ts +61 -0
- package/dist/render/prepare.js +119 -0
- package/dist/scheduler/core/duration.d.ts +83 -0
- package/dist/scheduler/core/duration.js +174 -0
- package/dist/scheduler/core/gantt.d.ts +63 -0
- package/dist/scheduler/core/gantt.js +226 -0
- package/dist/scheduler/core/index.d.ts +6 -0
- package/dist/scheduler/core/index.js +7 -0
- package/dist/scheduler/core/layout.d.ts +97 -0
- package/dist/scheduler/core/layout.js +249 -0
- package/dist/scheduler/core/time-scale.d.ts +89 -0
- package/dist/scheduler/core/time-scale.js +173 -0
- package/dist/scheduler/gantt.d.ts +125 -0
- package/dist/scheduler/gantt.js +532 -0
- package/dist/scheduler/index.d.ts +6 -0
- package/dist/scheduler/index.js +7 -0
- package/dist/scheduler/resource-calendar.d.ts +218 -0
- package/dist/scheduler/resource-calendar.js +661 -0
- package/dist/scheduler/scheduler.d.ts +168 -0
- package/dist/scheduler/scheduler.js +768 -0
- package/dist/scheduler/shared.d.ts +63 -0
- package/dist/scheduler/shared.js +145 -0
- package/dist/scheduler/time-tracker.d.ts +138 -0
- package/dist/scheduler/time-tracker.js +403 -0
- package/dist/sortable/core.d.ts +67 -0
- package/dist/sortable/core.js +167 -0
- package/dist/sortable/index.d.ts +8 -0
- package/dist/sortable/index.js +10 -0
- package/dist/sortable/kanban-core.d.ts +70 -0
- package/dist/sortable/kanban-core.js +67 -0
- package/dist/sortable/kanban.d.ts +147 -0
- package/dist/sortable/kanban.js +472 -0
- package/dist/sortable/sortable-list.d.ts +71 -0
- package/dist/sortable/sortable-list.js +76 -0
- package/dist/sortable/sortable-tree.d.ts +105 -0
- package/dist/sortable/sortable-tree.js +462 -0
- package/dist/sortable/sortable.d.ts +188 -0
- package/dist/sortable/sortable.js +485 -0
- package/dist/sortable/use-pointer-drag.d.ts +75 -0
- package/dist/sortable/use-pointer-drag.js +173 -0
- package/dist/sortable/use-time-scale.d.ts +11 -0
- package/dist/sortable/use-time-scale.js +19 -0
- package/dist/styles/base.css +51 -0
- package/dist/styles/blocks.css +949 -0
- package/dist/styles/calendar.css +642 -0
- package/dist/styles/charts.css +264 -0
- package/dist/styles/data.css +474 -0
- package/dist/styles/editors.css +1022 -0
- package/dist/styles/forms.css +406 -0
- package/dist/styles/media.css +515 -0
- package/dist/styles/motion.css +389 -0
- package/dist/styles/navigation.css +293 -0
- package/dist/styles/overlays.css +244 -0
- package/dist/styles.css +743 -0
- package/package.json +160 -4
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
import { type ButtonProps } from "./button.js";
|
|
4
|
+
/**
|
|
5
|
+
* Merged-edge styling for any row of controls. Corner rounding is done with logical
|
|
6
|
+
* properties (`rounded-s` / `rounded-e`), so the group is RTL-safe.
|
|
7
|
+
*/
|
|
8
|
+
export declare const buttonGroupVariants: (props?: ({
|
|
9
|
+
orientation?: "vertical" | "horizontal" | null | undefined;
|
|
10
|
+
attached?: boolean | null | undefined;
|
|
11
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
12
|
+
type GroupSize = "xs" | "sm" | "md" | "lg";
|
|
13
|
+
export interface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement>, Omit<VariantProps<typeof buttonGroupVariants>, "attached" | "orientation"> {
|
|
14
|
+
/** Merged borders (default). `false` keeps a small gap between the buttons. */
|
|
15
|
+
attached?: boolean;
|
|
16
|
+
orientation?: "horizontal" | "vertical";
|
|
17
|
+
/** Default variant for direct Button / IconButton children that don't set one. */
|
|
18
|
+
variant?: ButtonProps["variant"];
|
|
19
|
+
/** Default size for direct Button / IconButton children that don't set one. */
|
|
20
|
+
size?: GroupSize;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Related buttons merged into one control: split "Save ▾", pager arrows, an editor toolbar,
|
|
24
|
+
* a search field + "Go". `role="group"` — give it an `aria-label`. Every button stays its own
|
|
25
|
+
* tab stop. Server-compatible.
|
|
26
|
+
*
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <ButtonGroup aria-label="Pagination" size="sm">
|
|
29
|
+
* <IconButton label="Previous page"><ChevronLeft /></IconButton>
|
|
30
|
+
* <ButtonGroupText>21–40 of 340</ButtonGroupText>
|
|
31
|
+
* <IconButton label="Next page"><ChevronRight /></IconButton>
|
|
32
|
+
* </ButtonGroup>
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* For a selected state (view switch, text alignment) use `ToggleGroup`; for a form value use
|
|
36
|
+
* `RadioGroup variant="segmented"`.
|
|
37
|
+
*/
|
|
38
|
+
export declare const ButtonGroup: React.ForwardRefExoticComponent<ButtonGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
39
|
+
export interface ButtonGroupSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
40
|
+
orientation?: "horizontal" | "vertical";
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Hairline between two attached buttons that share a fill (a primary split button), where
|
|
44
|
+
* the merged border would otherwise disappear.
|
|
45
|
+
*/
|
|
46
|
+
export declare const ButtonGroupSeparator: React.ForwardRefExoticComponent<ButtonGroupSeparatorProps & React.RefAttributes<HTMLDivElement>>;
|
|
47
|
+
export interface ButtonGroupTextProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
48
|
+
size?: GroupSize;
|
|
49
|
+
}
|
|
50
|
+
/** A static segment inside a group: "21–40 of 340", a unit, a prefix. */
|
|
51
|
+
export declare const ButtonGroupText: React.ForwardRefExoticComponent<ButtonGroupTextProps & React.RefAttributes<HTMLSpanElement>>;
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../lib/cn.js";
|
|
5
|
+
import { Button, IconButton } from "./button.js";
|
|
6
|
+
/**
|
|
7
|
+
* Merged-edge styling for any row of controls. Corner rounding is done with logical
|
|
8
|
+
* properties (`rounded-s` / `rounded-e`), so the group is RTL-safe.
|
|
9
|
+
*/
|
|
10
|
+
export const buttonGroupVariants = cva("relative isolate inline-flex w-fit max-w-full", {
|
|
11
|
+
variants: {
|
|
12
|
+
orientation: {
|
|
13
|
+
horizontal: "flex-row items-stretch",
|
|
14
|
+
vertical: "flex-col items-stretch",
|
|
15
|
+
},
|
|
16
|
+
attached: {
|
|
17
|
+
true: "[&>*:focus-visible]:z-10 [&>*:focus-within]:z-10 [&>*:hover]:z-[1] [&>[data-slot=button]]:shadow-none!",
|
|
18
|
+
false: "gap-2",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
compoundVariants: [
|
|
22
|
+
{
|
|
23
|
+
orientation: "horizontal",
|
|
24
|
+
attached: true,
|
|
25
|
+
className: "[&>*:not(:first-child)]:rounded-s-none [&>*:not(:last-child)]:rounded-e-none [&>*:not(:first-child)]:-ms-px [&>[data-slot=button-group-separator]+*]:ms-0",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
orientation: "vertical",
|
|
29
|
+
attached: true,
|
|
30
|
+
className: "[&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none [&>*:not(:first-child)]:-mt-px [&>[data-slot=button-group-separator]+*]:mt-0",
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
defaultVariants: { orientation: "horizontal", attached: true },
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Related buttons merged into one control: split "Save ▾", pager arrows, an editor toolbar,
|
|
37
|
+
* a search field + "Go". `role="group"` — give it an `aria-label`. Every button stays its own
|
|
38
|
+
* tab stop. Server-compatible.
|
|
39
|
+
*
|
|
40
|
+
* ```tsx
|
|
41
|
+
* <ButtonGroup aria-label="Pagination" size="sm">
|
|
42
|
+
* <IconButton label="Previous page"><ChevronLeft /></IconButton>
|
|
43
|
+
* <ButtonGroupText>21–40 of 340</ButtonGroupText>
|
|
44
|
+
* <IconButton label="Next page"><ChevronRight /></IconButton>
|
|
45
|
+
* </ButtonGroup>
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* For a selected state (view switch, text alignment) use `ToggleGroup`; for a form value use
|
|
49
|
+
* `RadioGroup variant="segmented"`.
|
|
50
|
+
*/
|
|
51
|
+
export const ButtonGroup = React.forwardRef(function ButtonGroup({ attached = true, orientation = "horizontal", variant, size, className, children, ...props }, ref) {
|
|
52
|
+
const content = variant || size
|
|
53
|
+
? React.Children.map(children, (child) => {
|
|
54
|
+
if (!React.isValidElement(child))
|
|
55
|
+
return child;
|
|
56
|
+
if (child.type !== Button && child.type !== IconButton)
|
|
57
|
+
return child;
|
|
58
|
+
const p = child.props;
|
|
59
|
+
return React.cloneElement(child, {
|
|
60
|
+
variant: p.variant ?? variant,
|
|
61
|
+
size: p.size ?? size,
|
|
62
|
+
});
|
|
63
|
+
})
|
|
64
|
+
: children;
|
|
65
|
+
return (_jsx("div", { ref: ref, role: "group", "data-slot": "button-group", "data-orientation": orientation, "data-attached": attached ? "" : undefined, "data-variant": variant, className: cn(buttonGroupVariants({ orientation, attached }), variant === "primary" && "[--group-sep:color-mix(in_srgb,var(--accent-fg)_22%,transparent)]", className), ...props, children: content }));
|
|
66
|
+
});
|
|
67
|
+
/**
|
|
68
|
+
* Hairline between two attached buttons that share a fill (a primary split button), where
|
|
69
|
+
* the merged border would otherwise disappear.
|
|
70
|
+
*/
|
|
71
|
+
export const ButtonGroupSeparator = React.forwardRef(function ButtonGroupSeparator({ orientation = "vertical", className, ...props }, ref) {
|
|
72
|
+
return (_jsx("div", { ref: ref, "aria-hidden": true, "data-slot": "button-group-separator", className: cn("relative z-20 shrink-0 self-stretch bg-(--group-sep,var(--field-border))", orientation === "vertical" ? "w-px" : "h-px", className), ...props }));
|
|
73
|
+
});
|
|
74
|
+
/** A static segment inside a group: "21–40 of 340", a unit, a prefix. */
|
|
75
|
+
export const ButtonGroupText = React.forwardRef(function ButtonGroupText({ size = "md", className, ...props }, ref) {
|
|
76
|
+
return (_jsx("span", { ref: ref, "data-slot": "button-group-text", className: cn("inline-flex shrink-0 items-center whitespace-nowrap border border-field-border bg-surface-2 font-medium tabular text-fg-muted [&_svg]:size-4", size === "xs" ? "h-7 rounded-ui-sm px-2.5 text-xs" : size === "sm" ? "h-8 rounded-ui-sm px-3 text-[13px]" : size === "lg" ? "h-12 rounded-ui px-5 text-[15px]" : "h-(--control-h) rounded-ui px-3.5 text-sm", className), ...props }));
|
|
77
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
import { type TooltipContentProps } from "./tooltip.js";
|
|
4
|
+
export declare const buttonVariants: (props?: ({
|
|
5
|
+
variant?: "link" | "danger" | "ghost" | "solid" | "primary" | "secondary" | "soft" | "danger-ghost" | null | undefined;
|
|
6
|
+
size?: "sm" | "md" | "lg" | "xl" | "icon" | "xs" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
7
|
+
block?: boolean | null | undefined;
|
|
8
|
+
pill?: boolean | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
11
|
+
/** Render as the child element (e.g. Next <Link>), keeping the styles. */
|
|
12
|
+
asChild?: boolean;
|
|
13
|
+
/** Spinner, `aria-busy` and click lock. */
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
/** Text shown (and announced) while loading, e.g. "Saving…". Replaces the label. */
|
|
16
|
+
loadingText?: string;
|
|
17
|
+
/**
|
|
18
|
+
* `"inline"` (default): the spinner sits before the label (replacing a leading icon).
|
|
19
|
+
* `"replace"`: the label is hidden and the spinner centred — the width never changes.
|
|
20
|
+
*/
|
|
21
|
+
loadingMode?: "inline" | "replace";
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Starts an action. One `primary` per screen; the rest `secondary` or `ghost`.
|
|
25
|
+
*
|
|
26
|
+
* ```tsx
|
|
27
|
+
* <Button variant="primary" loading={saving} loadingText="Publishing…">Publish</Button>
|
|
28
|
+
* <Button asChild><Link href="/posts/new">New post</Link></Button>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* Defaults to `type="button"` (no accidental form submits). With `asChild` + `disabled`/`loading`
|
|
32
|
+
* the element gets `aria-disabled`, leaves the tab order and ignores clicks.
|
|
33
|
+
*/
|
|
34
|
+
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
35
|
+
export interface IconButtonProps extends Omit<ButtonProps, "size" | "aria-label" | "loadingText" | "loadingMode"> {
|
|
36
|
+
/** Accessible name — required for icon-only controls. Also shown as the tooltip. */
|
|
37
|
+
label: string;
|
|
38
|
+
size?: "xs" | "sm" | "md" | "lg";
|
|
39
|
+
/**
|
|
40
|
+
* Tooltip text. Default: `label`. A string shows different text (the accessible name stays `label`);
|
|
41
|
+
* `false` turns the tooltip off and uses the native `title` instead.
|
|
42
|
+
* Inside a `TooltipProvider` (App shell ships one) the label is a Tooltip; without one it falls back to `title`.
|
|
43
|
+
*/
|
|
44
|
+
tooltip?: boolean | string;
|
|
45
|
+
/** Side the tooltip opens on. Default `"top"`. */
|
|
46
|
+
tooltipSide?: TooltipContentProps["side"];
|
|
47
|
+
/** Shortcut hint in the tooltip, e.g. `"mod+e"`. */
|
|
48
|
+
shortcut?: string | string[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Icon-only button. `label` is required: it becomes the accessible name and the tooltip.
|
|
52
|
+
*
|
|
53
|
+
* ```tsx
|
|
54
|
+
* <IconButton label="Delete post" variant="danger-ghost"><Trash2 /></IconButton>
|
|
55
|
+
* <IconButton label="Edit" shortcut="mod+e"><Pencil /></IconButton>
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Slot } from "radix-ui";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
import { Spinner } from "./spinner.js";
|
|
7
|
+
import { IconButtonTooltip } from "./tooltip.js";
|
|
8
|
+
export const buttonVariants = cva([
|
|
9
|
+
"relative inline-flex shrink-0 select-none items-center justify-center whitespace-nowrap font-medium",
|
|
10
|
+
"transition-[background-color,border-color,box-shadow,color,filter,opacity] duration-150 focus-ring",
|
|
11
|
+
"disabled:pointer-events-none disabled:opacity-45 aria-disabled:pointer-events-none aria-disabled:opacity-45",
|
|
12
|
+
"motion-safe:active:translate-y-px [&_svg]:shrink-0",
|
|
13
|
+
// loading: the spinner replaces a leading icon instead of adding a second one
|
|
14
|
+
"[&[data-loading]>[data-slot=spinner]+svg]:hidden",
|
|
15
|
+
], {
|
|
16
|
+
variants: {
|
|
17
|
+
variant: {
|
|
18
|
+
/** The one loud action on a screen. */
|
|
19
|
+
primary: "bg-accent text-accent-fg font-semibold shadow-[inset_0_1px_0_rgb(255_255_255/0.35),0_1px_2px_rgb(0_0_0/0.12)] ring-1 ring-[color-mix(in_srgb,var(--fg)_10%,transparent)] hover:brightness-[1.04]",
|
|
20
|
+
/** Default: a calm action on a surface. */
|
|
21
|
+
secondary: "border border-field-border bg-field text-fg shadow-[0_1px_1px_rgb(0_0_0/0.04)] hover:border-field-border-hover hover:bg-hover glass:border-field-border-hover",
|
|
22
|
+
ghost: "text-fg hover:bg-hover",
|
|
23
|
+
soft: "bg-accent-soft text-accent-ink hover:brightness-95",
|
|
24
|
+
/** Dark, typographic action for decisive steps ("Publish"). */
|
|
25
|
+
solid: "bg-fg text-scene hover:opacity-90",
|
|
26
|
+
danger: "bg-danger-solid text-white shadow-sm hover:brightness-110",
|
|
27
|
+
"danger-ghost": "text-danger hover:bg-[color-mix(in_srgb,var(--danger)_10%,transparent)]",
|
|
28
|
+
link: "h-auto! p-0! text-accent-ink underline-offset-4 hover:underline",
|
|
29
|
+
},
|
|
30
|
+
size: {
|
|
31
|
+
xs: "h-7 gap-1 rounded-ui-sm px-2.5 text-xs [&_svg]:size-3.5",
|
|
32
|
+
sm: "h-8 gap-1.5 rounded-ui-sm px-3 text-[13px] [&_svg]:size-3.5",
|
|
33
|
+
md: "h-(--control-h) gap-2 rounded-ui px-4 text-sm [&_svg]:size-4",
|
|
34
|
+
lg: "h-12 gap-2.5 rounded-ui px-6 text-[15px] [&_svg]:size-[18px]",
|
|
35
|
+
/** Hero / website CTA. */
|
|
36
|
+
xl: "h-14 gap-3 rounded-ui px-8 text-base [&_svg]:size-5",
|
|
37
|
+
"icon-xs": "size-7 rounded-ui-sm [&_svg]:size-3.5",
|
|
38
|
+
"icon-sm": "size-8 rounded-ui-sm [&_svg]:size-4",
|
|
39
|
+
icon: "size-(--control-h) rounded-ui [&_svg]:size-[18px]",
|
|
40
|
+
"icon-lg": "size-12 rounded-ui [&_svg]:size-5",
|
|
41
|
+
},
|
|
42
|
+
block: { true: "w-full" },
|
|
43
|
+
pill: { true: "rounded-full!" },
|
|
44
|
+
},
|
|
45
|
+
defaultVariants: { variant: "secondary", size: "md" },
|
|
46
|
+
});
|
|
47
|
+
const spinnerSize = (size) => (size === "xs" || size === "sm" || size === "icon-xs" ? "xs" : size === "lg" || size === "xl" || size === "icon-lg" ? "md" : "sm");
|
|
48
|
+
/**
|
|
49
|
+
* Starts an action. One `primary` per screen; the rest `secondary` or `ghost`.
|
|
50
|
+
*
|
|
51
|
+
* ```tsx
|
|
52
|
+
* <Button variant="primary" loading={saving} loadingText="Publishing…">Publish</Button>
|
|
53
|
+
* <Button asChild><Link href="/posts/new">New post</Link></Button>
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* Defaults to `type="button"` (no accidental form submits). With `asChild` + `disabled`/`loading`
|
|
57
|
+
* the element gets `aria-disabled`, leaves the tab order and ignores clicks.
|
|
58
|
+
*/
|
|
59
|
+
export const Button = React.forwardRef(function Button({ className, variant, size, block, pill, asChild, loading, loadingText, loadingMode = "inline", disabled, children, type, onClick, ...props }, ref) {
|
|
60
|
+
const classes = cn(buttonVariants({ variant, size, block, pill }), className);
|
|
61
|
+
const state = {
|
|
62
|
+
"data-slot": "button",
|
|
63
|
+
"data-variant": variant ?? "secondary",
|
|
64
|
+
"data-size": size ?? "md",
|
|
65
|
+
"data-loading": loading ? "" : undefined,
|
|
66
|
+
"aria-busy": loading || undefined,
|
|
67
|
+
};
|
|
68
|
+
const spinner = _jsx(Spinner, { size: spinnerSize(size), className: loadingMode === "replace" ? "absolute" : undefined });
|
|
69
|
+
if (asChild) {
|
|
70
|
+
const inert = disabled || loading;
|
|
71
|
+
const slotProps = {
|
|
72
|
+
ref,
|
|
73
|
+
className: classes,
|
|
74
|
+
...state,
|
|
75
|
+
"aria-disabled": inert || undefined,
|
|
76
|
+
tabIndex: inert ? -1 : undefined,
|
|
77
|
+
// No wrapper function here, so Button stays usable from server components. While inert the
|
|
78
|
+
// element leaves the tab order and `aria-disabled:pointer-events-none` blocks pointer clicks.
|
|
79
|
+
onClick: inert ? undefined : onClick,
|
|
80
|
+
...props,
|
|
81
|
+
};
|
|
82
|
+
// Slot needs the spinner and the Slottable as direct children (no fragment).
|
|
83
|
+
return loading ? (_jsxs(Slot.Root, { ...slotProps, children: [spinner, _jsx(Slot.Slottable, { children: children })] })) : (_jsx(Slot.Root, { ...slotProps, children: children }));
|
|
84
|
+
}
|
|
85
|
+
let content = children;
|
|
86
|
+
if (loading && loadingText)
|
|
87
|
+
content = loadingMode === "replace" ? _jsxs(_Fragment, { children: [_jsx("span", { className: "invisible", children: children }), _jsx("span", { className: "sr-only", children: loadingText })] }) : loadingText;
|
|
88
|
+
// opacity-0 (not visibility:hidden) keeps the label in the accessibility tree, so the busy button keeps its name.
|
|
89
|
+
else if (loading && loadingMode === "replace")
|
|
90
|
+
content = _jsx("span", { className: "inline-flex items-center gap-[inherit] opacity-0", children: children });
|
|
91
|
+
return (_jsxs("button", { ref: ref, type: type ?? "button", className: classes, disabled: disabled || loading, onClick: onClick, ...state, ...props, children: [loading ? spinner : null, content] }));
|
|
92
|
+
});
|
|
93
|
+
const iconSize = { xs: "icon-xs", sm: "icon-sm", md: "icon", lg: "icon-lg" };
|
|
94
|
+
/**
|
|
95
|
+
* Icon-only button. `label` is required: it becomes the accessible name and the tooltip.
|
|
96
|
+
*
|
|
97
|
+
* ```tsx
|
|
98
|
+
* <IconButton label="Delete post" variant="danger-ghost"><Trash2 /></IconButton>
|
|
99
|
+
* <IconButton label="Edit" shortcut="mod+e"><Pencil /></IconButton>
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export const IconButton = React.forwardRef(function IconButton({ label, size = "md", variant = "ghost", title, loading, tooltip = true, tooltipSide, shortcut, children, ...props }, ref) {
|
|
103
|
+
if (tooltip === false) {
|
|
104
|
+
return (_jsx(Button, { ref: ref, "aria-label": label, title: title ?? label, variant: variant, size: iconSize[size], loading: loading, loadingMode: "replace", ...props, children: children }));
|
|
105
|
+
}
|
|
106
|
+
return (_jsx(IconButtonTooltip, { label: typeof tooltip === "string" ? tooltip : label, side: tooltipSide, shortcut: shortcut, children: _jsx(Button, { ref: ref, "aria-label": label, ...(title !== undefined ? { title } : null), variant: variant, size: iconSize[size], loading: loading, loadingMode: "replace", ...props, children: children }) }));
|
|
107
|
+
});
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type DayPickerProps, type Matcher, type Modifiers } from "react-day-picker";
|
|
3
|
+
import { type IsoDateRange, type IsoDateString } from "../lib/date.js";
|
|
4
|
+
import type { Holiday, HolidayProvider } from "../locale-data/core/types.js";
|
|
5
|
+
declare const calendarLabels: {
|
|
6
|
+
prevMonth: string;
|
|
7
|
+
nextMonth: string;
|
|
8
|
+
prevYear: string;
|
|
9
|
+
nextYear: string;
|
|
10
|
+
selectMonth: string;
|
|
11
|
+
selectYear: string;
|
|
12
|
+
nav: string;
|
|
13
|
+
today: string;
|
|
14
|
+
todayDay: string;
|
|
15
|
+
selectedDay: string;
|
|
16
|
+
weekNumber: string;
|
|
17
|
+
weekColumn: string;
|
|
18
|
+
weekColumnShort: string;
|
|
19
|
+
holiday: string;
|
|
20
|
+
halfDay: string;
|
|
21
|
+
weekend: string;
|
|
22
|
+
more: string;
|
|
23
|
+
loading: string;
|
|
24
|
+
slots: string;
|
|
25
|
+
noSlots: string;
|
|
26
|
+
slotsError: string;
|
|
27
|
+
retry: string;
|
|
28
|
+
slotsLeft: string;
|
|
29
|
+
unavailable: string;
|
|
30
|
+
};
|
|
31
|
+
export type CalendarLabels = typeof calendarLabels;
|
|
32
|
+
/** A day matcher: any react-day-picker matcher, or a `YYYY-MM-DD` string. */
|
|
33
|
+
export type DayMatcher = Matcher | IsoDateString;
|
|
34
|
+
/** Turns string / matcher input into react-day-picker matchers (min/max become `before`/`after`). */
|
|
35
|
+
export declare function toDayMatchers(options: {
|
|
36
|
+
min?: IsoDateString;
|
|
37
|
+
max?: IsoDateString;
|
|
38
|
+
disabledDays?: DayMatcher | DayMatcher[];
|
|
39
|
+
}): Matcher[];
|
|
40
|
+
/** react-day-picker `weekStartsOn` (0 = Sunday) and `firstWeekContainsDate` of a locale. */
|
|
41
|
+
export declare function useCalendarWeek(locale?: string): {
|
|
42
|
+
weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
43
|
+
firstWeekContainsDate: 1 | 4;
|
|
44
|
+
/** ISO weekdays (1 = Monday … 7 = Sunday) of the weekend. */
|
|
45
|
+
weekend: number[];
|
|
46
|
+
};
|
|
47
|
+
type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
|
|
48
|
+
export type CalendarGridSize = "sm" | "md" | "lg";
|
|
49
|
+
interface CalendarGridOwnProps {
|
|
50
|
+
/** Cell size: sm = 32px, md = `--control-h` (density axis), lg = 76px cells with a content area. */
|
|
51
|
+
size?: CalendarGridSize;
|
|
52
|
+
/** Content under the day number: dots, a count, a price. */
|
|
53
|
+
renderDayExtra?: (date: Date, modifiers: Modifiers) => React.ReactNode;
|
|
54
|
+
/** Extra words appended to a day's accessible name ("Republic Day, 2 scheduled posts"). */
|
|
55
|
+
describeDay?: (date: Date, modifiers: Modifiers) => string | undefined;
|
|
56
|
+
/** Native tooltip of a day (holiday names). */
|
|
57
|
+
dayTitle?: (date: Date, modifiers: Modifiers) => string | undefined;
|
|
58
|
+
/** Mark the locale's weekend days with `data-weekend`. Default `true`. */
|
|
59
|
+
markWeekends?: boolean;
|
|
60
|
+
/** Built-in strings (`calendar` namespace). */
|
|
61
|
+
labels?: Partial<CalendarLabels>;
|
|
62
|
+
/** react-day-picker's own label functions (advanced). */
|
|
63
|
+
ariaLabels?: DayPickerProps["labels"];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The shared month grid behind Calendar, Date picker and Date range picker: react-day-picker v9
|
|
67
|
+
* styled with tokens, with locale-aware week start (`getWeekInfo`), weekend marks, localized
|
|
68
|
+
* labels, and stable `data-*` hooks (`data-today`, `data-selected`, `data-range-start|middle|end`,
|
|
69
|
+
* `data-disabled`, `data-outside`, `data-weekend`, `data-holiday`).
|
|
70
|
+
*
|
|
71
|
+
* All react-day-picker props pass through (`mode`, `selected`, `onSelect`, `modifiers`,
|
|
72
|
+
* `numberOfMonths`, `captionLayout`, `showWeekNumber`…). Dates here are `Date` objects; the
|
|
73
|
+
* higher-level components take `YYYY-MM-DD` strings.
|
|
74
|
+
*
|
|
75
|
+
* ```tsx
|
|
76
|
+
* <CalendarGrid mode="single" selected={day} onSelect={setDay} />
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export type CalendarGridProps = DistributiveOmit<DayPickerProps, "labels"> & CalendarGridOwnProps;
|
|
80
|
+
/** react-day-picker styled with tokens. See `CalendarGridProps`. */
|
|
81
|
+
export declare function CalendarGrid(props: CalendarGridProps): React.JSX.Element;
|
|
82
|
+
export type CalendarTone = "neutral" | "accent" | "success" | "warning" | "danger" | "info";
|
|
83
|
+
/** Something on a day: a scheduled post, an absence, "3 slots left". */
|
|
84
|
+
export interface CalendarMarker {
|
|
85
|
+
label: string;
|
|
86
|
+
tone?: CalendarTone;
|
|
87
|
+
/** Shown as a number in `lg` cells and summed for density. */
|
|
88
|
+
count?: number;
|
|
89
|
+
}
|
|
90
|
+
export interface CalendarDayInfo {
|
|
91
|
+
iso: IsoDateString;
|
|
92
|
+
isToday: boolean;
|
|
93
|
+
isWeekend: boolean;
|
|
94
|
+
outside: boolean;
|
|
95
|
+
selected: boolean;
|
|
96
|
+
disabled: boolean;
|
|
97
|
+
holidays: Holiday[];
|
|
98
|
+
markers: CalendarMarker[];
|
|
99
|
+
}
|
|
100
|
+
export interface CalendarLegendItem {
|
|
101
|
+
label: string;
|
|
102
|
+
tone?: CalendarTone;
|
|
103
|
+
/** `"dot"` (default), `"holiday"` (tinted cell) or `"today"` (accent bar). */
|
|
104
|
+
kind?: "dot" | "holiday" | "today";
|
|
105
|
+
}
|
|
106
|
+
type CalendarSelectionProps = {
|
|
107
|
+
/** Selection mode. Default `"single"`. */
|
|
108
|
+
mode?: "single";
|
|
109
|
+
value?: IsoDateString | null;
|
|
110
|
+
defaultValue?: IsoDateString | null;
|
|
111
|
+
onValueChange?: (value: IsoDateString | null) => void;
|
|
112
|
+
} | {
|
|
113
|
+
mode: "multiple";
|
|
114
|
+
value?: IsoDateString[];
|
|
115
|
+
defaultValue?: IsoDateString[];
|
|
116
|
+
onValueChange?: (value: IsoDateString[]) => void;
|
|
117
|
+
} | {
|
|
118
|
+
mode: "range";
|
|
119
|
+
value?: IsoDateRange | null;
|
|
120
|
+
defaultValue?: IsoDateRange | null;
|
|
121
|
+
onValueChange?: (value: IsoDateRange | null) => void;
|
|
122
|
+
} | {
|
|
123
|
+
/** Display only: no selection. */
|
|
124
|
+
mode: "none";
|
|
125
|
+
value?: undefined;
|
|
126
|
+
defaultValue?: undefined;
|
|
127
|
+
onValueChange?: undefined;
|
|
128
|
+
};
|
|
129
|
+
interface CalendarBaseProps {
|
|
130
|
+
/** Visible months: 1, 2, 3, or 12 (year view with compact cells). Default 1. */
|
|
131
|
+
months?: 1 | 2 | 3 | 12;
|
|
132
|
+
/** Visible month (`YYYY-MM` or any date in it), controlled. */
|
|
133
|
+
month?: string;
|
|
134
|
+
/** Initial visible month. Default: the month of the value, else today. */
|
|
135
|
+
defaultMonth?: string;
|
|
136
|
+
/** Called with `YYYY-MM-01` of the first visible month. */
|
|
137
|
+
onMonthChange?: (month: IsoDateString) => void;
|
|
138
|
+
/** Called with the visible window, e.g. to fetch events for it. */
|
|
139
|
+
onVisibleRangeChange?: (range: {
|
|
140
|
+
start: IsoDateString;
|
|
141
|
+
end: IsoDateString;
|
|
142
|
+
}) => void;
|
|
143
|
+
/** Earliest selectable date. */
|
|
144
|
+
min?: IsoDateString;
|
|
145
|
+
/** Latest selectable date. */
|
|
146
|
+
max?: IsoDateString;
|
|
147
|
+
/** Days that cannot be picked (unavailable, fully booked). */
|
|
148
|
+
disabledDays?: DayMatcher | DayMatcher[];
|
|
149
|
+
/** `true`: a selected day cannot be cleared by clicking it again (single mode). */
|
|
150
|
+
required?: boolean;
|
|
151
|
+
/** Week numbers in the first column (locale week rules). */
|
|
152
|
+
showWeekNumbers?: boolean;
|
|
153
|
+
/** Holiday data. Default: the active locale's pack (`tr` → Turkish public holidays); `false` hides them. */
|
|
154
|
+
holidays?: HolidayProvider | HolidayProvider[] | false;
|
|
155
|
+
/** Holiday region filter (ISO 3166-2). */
|
|
156
|
+
holidayRegion?: string;
|
|
157
|
+
/** Per-day markers, keyed by `YYYY-MM-DD`. */
|
|
158
|
+
markers?: Record<IsoDateString, CalendarMarker | CalendarMarker[]>;
|
|
159
|
+
/** Custom content under the day number (replaces the marker dots). */
|
|
160
|
+
renderDay?: (date: Date, info: CalendarDayInfo) => React.ReactNode;
|
|
161
|
+
/** Cell size. sm 32px, md `--control-h`, lg 76px with a content area. Default `"md"` (`"sm"` in the year view). */
|
|
162
|
+
size?: CalendarGridSize;
|
|
163
|
+
/** `"card"` wraps the calendar in a surface. Default `"plain"`. */
|
|
164
|
+
variant?: "plain" | "card";
|
|
165
|
+
/** Header with title, previous / next and Today. Default `true`. */
|
|
166
|
+
header?: boolean;
|
|
167
|
+
/** Extra content at the end of the header (filters, a view switch). */
|
|
168
|
+
headerAction?: React.ReactNode;
|
|
169
|
+
/** Legend under the grid. Holidays in view are added automatically. */
|
|
170
|
+
legend?: CalendarLegendItem[] | boolean;
|
|
171
|
+
/** Placeholder dots while the visible range is loading. */
|
|
172
|
+
loading?: boolean;
|
|
173
|
+
/** Week start override (0 = Sunday … 6). Default from the locale. */
|
|
174
|
+
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
175
|
+
/** Content under the grid (pickers put Clear / Apply here). */
|
|
176
|
+
footer?: React.ReactNode;
|
|
177
|
+
/** Extra react-day-picker props for the grid. */
|
|
178
|
+
gridProps?: Partial<CalendarGridOwnProps> & Omit<Partial<DayPickerProps>, "mode" | "selected" | "onSelect" | "labels">;
|
|
179
|
+
className?: string;
|
|
180
|
+
id?: string;
|
|
181
|
+
"aria-label"?: string;
|
|
182
|
+
labels?: Partial<CalendarLabels>;
|
|
183
|
+
}
|
|
184
|
+
export type CalendarProps = CalendarBaseProps & CalendarSelectionProps;
|
|
185
|
+
/**
|
|
186
|
+
* Standalone month, multi-month or year calendar with per-day content: marker dots, holidays,
|
|
187
|
+
* counts, availability. Values are `YYYY-MM-DD` strings. Week start, weekend and month names
|
|
188
|
+
* follow the locale; holidays come from the locale pack (Turkish public holidays for `tr`).
|
|
189
|
+
*
|
|
190
|
+
* ```tsx
|
|
191
|
+
* <Calendar
|
|
192
|
+
* value={day}
|
|
193
|
+
* onValueChange={setDay}
|
|
194
|
+
* markers={{ "2026-11-12": { label: "2 scheduled posts", tone: "accent", count: 2 } }}
|
|
195
|
+
* />
|
|
196
|
+
* <Calendar months={12} size="sm" markers={density} />
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
export declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<HTMLDivElement>>;
|
|
200
|
+
export interface CalendarLegendProps extends React.HTMLAttributes<HTMLUListElement> {
|
|
201
|
+
items: CalendarLegendItem[];
|
|
202
|
+
labels?: Partial<CalendarLabels>;
|
|
203
|
+
}
|
|
204
|
+
/** Key for the marks on a Calendar (dot tones, holidays, today). */
|
|
205
|
+
export declare const CalendarLegend: React.ForwardRefExoticComponent<CalendarLegendProps & React.RefAttributes<HTMLUListElement>>;
|
|
206
|
+
export interface CalendarSlot {
|
|
207
|
+
/** `"HH:mm"` (24h). The value reported on select. */
|
|
208
|
+
start: string;
|
|
209
|
+
end?: string;
|
|
210
|
+
available: boolean;
|
|
211
|
+
/** Extra text ("1 left", "$45"). */
|
|
212
|
+
label?: string;
|
|
213
|
+
}
|
|
214
|
+
export interface CalendarSlotsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
|
|
215
|
+
slots: CalendarSlot[];
|
|
216
|
+
value?: string | null;
|
|
217
|
+
defaultValue?: string | null;
|
|
218
|
+
onValueChange?: (start: string | null) => void;
|
|
219
|
+
/** The day the slots belong to (`YYYY-MM-DD`), shown as the heading. */
|
|
220
|
+
day?: IsoDateString | null;
|
|
221
|
+
loading?: boolean;
|
|
222
|
+
/** Error text; shows a retry button when `onRetry` is set. */
|
|
223
|
+
error?: React.ReactNode;
|
|
224
|
+
onRetry?: () => void;
|
|
225
|
+
/** Display hour cycle. Default from the locale. */
|
|
226
|
+
hourCycle?: 12 | 24;
|
|
227
|
+
/** Columns of the slot grid. Default 3. */
|
|
228
|
+
columns?: 2 | 3 | 4;
|
|
229
|
+
labels?: Partial<CalendarLabels>;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Time slots for the selected day (booking). A `radiogroup` with roving focus: arrows move,
|
|
233
|
+
* Space / Enter selects. Unavailable slots are shown struck through and skipped.
|
|
234
|
+
*
|
|
235
|
+
* ```tsx
|
|
236
|
+
* <CalendarSlots day={day} slots={slots} value={time} onValueChange={setTime} />
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
export declare const CalendarSlots: React.ForwardRefExoticComponent<CalendarSlotsProps & React.RefAttributes<HTMLDivElement>>;
|
|
240
|
+
export {};
|