snice 4.27.0 → 4.29.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/adapters/react/action-bar.d.ts +30 -0
- package/adapters/react/action-bar.d.ts.map +1 -0
- package/adapters/react/action-bar.js +24 -0
- package/adapters/react/action-bar.js.map +1 -0
- package/adapters/react/action-bar.tsx +38 -0
- package/adapters/react/binpack.d.ts +35 -0
- package/adapters/react/binpack.d.ts.map +1 -0
- package/adapters/react/binpack.js +24 -0
- package/adapters/react/binpack.js.map +1 -0
- package/adapters/react/binpack.tsx +43 -0
- package/adapters/react/components.d.ts +4 -0
- package/adapters/react/components.d.ts.map +1 -1
- package/adapters/react/components.js +2 -0
- package/adapters/react/components.js.map +1 -1
- package/adapters/react/components.ts +4 -0
- package/adapters/react/useRequestHandler.d.ts +56 -0
- package/adapters/react/useRequestHandler.js +103 -0
- package/adapters/react/useRequestHandler.js.map +1 -0
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.min.js +1 -1
- package/dist/cdn/action-bar/README.md +27 -0
- package/dist/cdn/action-bar/snice-action-bar.js +249 -0
- package/dist/cdn/action-bar/snice-action-bar.js.map +1 -0
- package/dist/cdn/action-bar/snice-action-bar.min.js +12 -0
- package/dist/cdn/action-bar/snice-action-bar.min.js.map +1 -0
- package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
- package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
- package/dist/cdn/alert/snice-alert.js +1 -1
- package/dist/cdn/alert/snice-alert.min.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
- package/dist/cdn/availability/snice-availability.js +1 -1
- package/dist/cdn/availability/snice-availability.min.js +1 -1
- package/dist/cdn/avatar/snice-avatar.js +1 -1
- package/dist/cdn/avatar/snice-avatar.min.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
- package/dist/cdn/badge/snice-badge.js +2 -2
- package/dist/cdn/badge/snice-badge.js.map +1 -1
- package/dist/cdn/badge/snice-badge.min.js +2 -2
- package/dist/cdn/badge/snice-badge.min.js.map +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/banner/snice-banner.min.js +1 -1
- package/dist/cdn/binpack/README.md +27 -0
- package/dist/cdn/binpack/snice-binpack.js +1037 -0
- package/dist/cdn/binpack/snice-binpack.js.map +1 -0
- package/dist/cdn/binpack/snice-binpack.min.js +13 -0
- package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
- package/dist/cdn/book/snice-book.js +1 -1
- package/dist/cdn/book/snice-book.min.js +1 -1
- package/dist/cdn/booking/snice-booking.js +1 -1
- package/dist/cdn/booking/snice-booking.min.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
- package/dist/cdn/button/README.md +1 -1
- package/dist/cdn/button/snice-button.js +11 -10
- package/dist/cdn/button/snice-button.js.map +1 -1
- package/dist/cdn/button/snice-button.min.js +3 -3
- package/dist/cdn/button/snice-button.min.js.map +1 -1
- package/dist/cdn/calendar/snice-calendar.js +1 -1
- package/dist/cdn/calendar/snice-calendar.min.js +1 -1
- package/dist/cdn/camera/snice-camera.js +1 -1
- package/dist/cdn/camera/snice-camera.min.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
- package/dist/cdn/card/snice-card.js +1 -1
- package/dist/cdn/card/snice-card.min.js +1 -1
- package/dist/cdn/carousel/snice-carousel.js +1 -1
- package/dist/cdn/carousel/snice-carousel.min.js +1 -1
- package/dist/cdn/cart/snice-cart.js +1 -1
- package/dist/cdn/cart/snice-cart.min.js +1 -1
- package/dist/cdn/chart/snice-chart.js +1 -1
- package/dist/cdn/chart/snice-chart.min.js +1 -1
- package/dist/cdn/chat/snice-chat.js +1 -1
- package/dist/cdn/chat/snice-chat.min.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
- package/dist/cdn/chip/snice-chip.js +1 -1
- package/dist/cdn/chip/snice-chip.min.js +1 -1
- package/dist/cdn/code-block/snice-code-block.js +1 -1
- package/dist/cdn/code-block/snice-code-block.min.js +1 -1
- package/dist/cdn/color-display/snice-color-display.js +1 -1
- package/dist/cdn/color-display/snice-color-display.min.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
- package/dist/cdn/comments/snice-comments.js +1 -1
- package/dist/cdn/comments/snice-comments.min.js +1 -1
- package/dist/cdn/countdown/snice-countdown.js +1 -1
- package/dist/cdn/countdown/snice-countdown.min.js +1 -1
- package/dist/cdn/cropper/snice-cropper.js +1 -1
- package/dist/cdn/cropper/snice-cropper.min.js +1 -1
- package/dist/cdn/data-card/snice-data-card.js +1 -1
- package/dist/cdn/data-card/snice-data-card.min.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
- package/dist/cdn/diff/snice-diff.js +1 -1
- package/dist/cdn/diff/snice-diff.min.js +1 -1
- package/dist/cdn/divider/snice-divider.js +1 -1
- package/dist/cdn/divider/snice-divider.min.js +1 -1
- package/dist/cdn/doc/snice-doc.js +1 -1
- package/dist/cdn/doc/snice-doc.min.js +1 -1
- package/dist/cdn/draw/snice-draw.js +1 -1
- package/dist/cdn/draw/snice-draw.min.js +1 -1
- package/dist/cdn/drawer/snice-drawer.js +1 -1
- package/dist/cdn/drawer/snice-drawer.min.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
- package/dist/cdn/estimate/snice-estimate.js +1 -1
- package/dist/cdn/estimate/snice-estimate.min.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
- package/dist/cdn/flow/snice-flow.js +1 -1
- package/dist/cdn/flow/snice-flow.min.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
- package/dist/cdn/funnel/snice-funnel.js +1 -1
- package/dist/cdn/funnel/snice-funnel.min.js +1 -1
- package/dist/cdn/gantt/snice-gantt.js +1 -1
- package/dist/cdn/gantt/snice-gantt.min.js +1 -1
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/gauge/snice-gauge.min.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
- package/dist/cdn/image/snice-image.js +1 -1
- package/dist/cdn/image/snice-image.min.js +1 -1
- package/dist/cdn/input/snice-input.js +1 -1
- package/dist/cdn/input/snice-input.min.js +1 -1
- package/dist/cdn/invoice/snice-invoice.js +1 -1
- package/dist/cdn/invoice/snice-invoice.min.js +1 -1
- package/dist/cdn/kanban/snice-kanban.js +1 -1
- package/dist/cdn/kanban/snice-kanban.min.js +1 -1
- package/dist/cdn/key-value/snice-key-value.js +1 -1
- package/dist/cdn/key-value/snice-key-value.min.js +1 -1
- package/dist/cdn/kpi/snice-kpi.js +1 -1
- package/dist/cdn/kpi/snice-kpi.min.js +1 -1
- package/dist/cdn/layout/snice-layout.js +1 -1
- package/dist/cdn/layout/snice-layout.min.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
- package/dist/cdn/link/snice-link.js +1 -1
- package/dist/cdn/link/snice-link.min.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
- package/dist/cdn/list/snice-list.js +1 -1
- package/dist/cdn/list/snice-list.min.js +1 -1
- package/dist/cdn/location/snice-location.js +1 -1
- package/dist/cdn/location/snice-location.min.js +1 -1
- package/dist/cdn/login/README.md +2 -2
- package/dist/cdn/login/snice-login.js +11 -10
- package/dist/cdn/login/snice-login.js.map +1 -1
- package/dist/cdn/login/snice-login.min.js +5 -5
- package/dist/cdn/login/snice-login.min.js.map +1 -1
- package/dist/cdn/map/snice-map.js +1 -1
- package/dist/cdn/map/snice-map.min.js +1 -1
- package/dist/cdn/markdown/snice-markdown.js +1 -1
- package/dist/cdn/markdown/snice-markdown.min.js +1 -1
- package/dist/cdn/masonry/snice-masonry.js +1 -1
- package/dist/cdn/masonry/snice-masonry.min.js +1 -1
- package/dist/cdn/menu/snice-menu.js +1 -1
- package/dist/cdn/menu/snice-menu.min.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
- package/dist/cdn/modal/snice-modal.js +1 -1
- package/dist/cdn/modal/snice-modal.min.js +1 -1
- package/dist/cdn/music-player/snice-music-player.js +1 -1
- package/dist/cdn/music-player/snice-music-player.min.js +1 -1
- package/dist/cdn/nav/snice-nav.js +1 -1
- package/dist/cdn/nav/snice-nav.min.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
- package/dist/cdn/pagination/snice-pagination.js +1 -1
- package/dist/cdn/pagination/snice-pagination.min.js +1 -1
- package/dist/cdn/paint/snice-paint.js +1 -1
- package/dist/cdn/paint/snice-paint.min.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
- package/dist/cdn/product-card/snice-product-card.js +1 -1
- package/dist/cdn/product-card/snice-product-card.min.js +1 -1
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress/snice-progress.min.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
- package/dist/cdn/radio/snice-radio.js +1 -1
- package/dist/cdn/radio/snice-radio.min.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
- package/dist/cdn/rating/snice-rating.js +1 -1
- package/dist/cdn/rating/snice-rating.min.js +1 -1
- package/dist/cdn/receipt/snice-receipt.js +1 -1
- package/dist/cdn/receipt/snice-receipt.min.js +1 -1
- package/dist/cdn/recipe/snice-recipe.js +1 -1
- package/dist/cdn/recipe/snice-recipe.min.js +1 -1
- package/dist/cdn/runtime/README.md +2 -2
- package/dist/cdn/runtime/snice-runtime.esm.js +152 -62
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +152 -61
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +8 -8
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/snice-sankey.js +1 -1
- package/dist/cdn/sankey/snice-sankey.min.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
- package/dist/cdn/select/snice-select.js +1 -1
- package/dist/cdn/select/snice-select.min.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
- package/dist/cdn/slider/snice-slider.js +1 -1
- package/dist/cdn/slider/snice-slider.min.js +1 -1
- package/dist/cdn/sortable/snice-sortable.js +1 -1
- package/dist/cdn/sortable/snice-sortable.min.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
- package/dist/cdn/spinner/snice-spinner.js +1 -1
- package/dist/cdn/spinner/snice-spinner.min.js +1 -1
- package/dist/cdn/split-button/snice-split-button.js +1 -1
- package/dist/cdn/split-button/snice-split-button.min.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
- package/dist/cdn/step-input/snice-step-input.js +1 -1
- package/dist/cdn/step-input/snice-step-input.min.js +1 -1
- package/dist/cdn/stepper/snice-stepper.js +1 -1
- package/dist/cdn/stepper/snice-stepper.min.js +1 -1
- package/dist/cdn/switch/snice-switch.js +1 -1
- package/dist/cdn/switch/snice-switch.min.js +1 -1
- package/dist/cdn/table/README.md +1 -1
- package/dist/cdn/table/snice-table.js +11 -10
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +73 -73
- package/dist/cdn/table/snice-table.min.js.map +1 -1
- package/dist/cdn/tabs/snice-tabs.js +1 -1
- package/dist/cdn/tabs/snice-tabs.min.js +1 -1
- package/dist/cdn/tag/snice-tag.js +1 -1
- package/dist/cdn/tag/snice-tag.min.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
- package/dist/cdn/terminal/snice-terminal.js +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/textarea/snice-textarea.min.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
- package/dist/cdn/timeline/snice-timeline.js +1 -1
- package/dist/cdn/timeline/snice-timeline.min.js +1 -1
- package/dist/cdn/timer/snice-timer.js +1 -1
- package/dist/cdn/timer/snice-timer.min.js +1 -1
- package/dist/cdn/toast/snice-toast.js +1 -1
- package/dist/cdn/toast/snice-toast.min.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
- package/dist/cdn/tree/snice-tree.js +1 -1
- package/dist/cdn/tree/snice-tree.min.js +1 -1
- package/dist/cdn/treemap/snice-treemap.js +1 -1
- package/dist/cdn/treemap/snice-treemap.min.js +1 -1
- package/dist/cdn/user-card/snice-user-card.js +1 -1
- package/dist/cdn/user-card/snice-user-card.min.js +1 -1
- package/dist/cdn/video-player/snice-video-player.js +1 -1
- package/dist/cdn/video-player/snice-video-player.min.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
- package/dist/cdn/weather/snice-weather.js +1 -1
- package/dist/cdn/weather/snice-weather.min.js +1 -1
- package/dist/cdn/work-order/snice-work-order.js +1 -1
- package/dist/cdn/work-order/snice-work-order.min.js +1 -1
- package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
- package/dist/components/action-bar/snice-action-bar.js +182 -0
- package/dist/components/action-bar/snice-action-bar.js.map +1 -0
- package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
- package/dist/components/badge/snice-badge.js +1 -1
- package/dist/components/badge/snice-badge.js.map +1 -1
- package/dist/components/binpack/snice-binpack.d.ts +82 -0
- package/dist/components/binpack/snice-binpack.js +970 -0
- package/dist/components/binpack/snice-binpack.js.map +1 -0
- package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
- package/dist/components/button/snice-button.d.ts +2 -2
- package/dist/components/button/snice-button.js +11 -10
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/create-request-handler.d.ts +42 -0
- package/dist/index.cjs +149 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +149 -59
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +149 -58
- package/dist/index.iife.js.map +1 -1
- package/dist/parts.d.ts +9 -7
- package/dist/react/useRequestHandler.d.ts +56 -0
- package/dist/react/useRequestHandler.js +103 -0
- package/dist/react/useRequestHandler.js.map +1 -0
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/DEVELOPMENT.md +1 -1
- package/docs/ai/components/accordion.md +46 -80
- package/docs/ai/components/action-bar.md +75 -0
- package/docs/ai/components/activity-feed.md +7 -7
- package/docs/ai/components/alert.md +26 -44
- package/docs/ai/components/app-tiles.md +34 -39
- package/docs/ai/components/approval-flow.md +1 -1
- package/docs/ai/components/audio-recorder.md +35 -67
- package/docs/ai/components/availability.md +13 -34
- package/docs/ai/components/avatar-group.md +26 -13
- package/docs/ai/components/avatar.md +52 -36
- package/docs/ai/components/badge.md +21 -32
- package/docs/ai/components/banner.md +21 -43
- package/docs/ai/components/binpack.md +89 -0
- package/docs/ai/components/book.md +25 -23
- package/docs/ai/components/booking.md +31 -36
- package/docs/ai/components/breadcrumbs.md +36 -11
- package/docs/ai/components/button.md +33 -44
- package/docs/ai/components/calendar.md +37 -70
- package/docs/ai/components/camera-annotate.md +31 -64
- package/docs/ai/components/camera.md +38 -120
- package/docs/ai/components/candlestick.md +32 -52
- package/docs/ai/components/card.md +20 -30
- package/docs/ai/components/carousel.md +32 -32
- package/docs/ai/components/cart.md +24 -29
- package/docs/ai/components/chart.md +29 -114
- package/docs/ai/components/chat.md +38 -75
- package/docs/ai/components/checkbox.md +22 -41
- package/docs/ai/components/chip.md +18 -54
- package/docs/ai/components/code-block.md +57 -178
- package/docs/ai/components/color-display.md +12 -32
- package/docs/ai/components/color-picker.md +17 -39
- package/docs/ai/components/command-palette.md +49 -71
- package/docs/ai/components/comments.md +55 -36
- package/docs/ai/components/countdown.md +28 -30
- package/docs/ai/components/cropper.md +33 -33
- package/docs/ai/components/data-card.md +20 -14
- package/docs/ai/components/date-picker.md +40 -47
- package/docs/ai/components/date-range-picker.md +31 -15
- package/docs/ai/components/date-time-picker.md +23 -46
- package/docs/ai/components/diff.md +30 -31
- package/docs/ai/components/divider.md +17 -47
- package/docs/ai/components/doc.md +43 -68
- package/docs/ai/components/draw.md +35 -87
- package/docs/ai/components/drawer.md +48 -77
- package/docs/ai/components/empty-state.md +10 -44
- package/docs/ai/components/estimate.md +33 -58
- package/docs/ai/components/file-gallery.md +48 -100
- package/docs/ai/components/file-upload.md +17 -53
- package/docs/ai/components/flip-card.md +31 -23
- package/docs/ai/components/flow.md +37 -65
- package/docs/ai/components/form-builder.md +35 -75
- package/docs/ai/components/form-layout.md +10 -20
- package/docs/ai/components/funnel.md +33 -48
- package/docs/ai/components/gantt.md +27 -23
- package/docs/ai/components/gauge.md +16 -17
- package/docs/ai/components/heatmap.md +21 -21
- package/docs/ai/components/image.md +7 -13
- package/docs/ai/components/input.md +38 -70
- package/docs/ai/components/invoice.md +35 -36
- package/docs/ai/components/kanban.md +32 -61
- package/docs/ai/components/key-value.md +32 -16
- package/docs/ai/components/kpi.md +38 -73
- package/docs/ai/components/layout.md +29 -23
- package/docs/ai/components/leaderboard.md +28 -37
- package/docs/ai/components/link-preview.md +12 -18
- package/docs/ai/components/link.md +10 -7
- package/docs/ai/components/list.md +21 -5
- package/docs/ai/components/location.md +21 -25
- package/docs/ai/components/login.md +14 -9
- package/docs/ai/components/map.md +27 -33
- package/docs/ai/components/markdown.md +20 -24
- package/docs/ai/components/masonry.md +10 -14
- package/docs/ai/components/mentions.md +26 -12
- package/docs/ai/components/menu.md +54 -52
- package/docs/ai/components/message-strip.md +20 -20
- package/docs/ai/components/metric-table.md +14 -21
- package/docs/ai/components/modal.md +27 -18
- package/docs/ai/components/music-player.md +49 -41
- package/docs/ai/components/nav.md +34 -31
- package/docs/ai/components/network-graph.md +27 -42
- package/docs/ai/components/notification-center.md +31 -33
- package/docs/ai/components/order-tracker.md +36 -27
- package/docs/ai/components/org-chart.md +36 -31
- package/docs/ai/components/pagination.md +34 -26
- package/docs/ai/components/paint.md +53 -91
- package/docs/ai/components/pdf-viewer.md +35 -36
- package/docs/ai/components/permission-matrix.md +26 -31
- package/docs/ai/components/podcast-player.md +64 -70
- package/docs/ai/components/pricing-table.md +37 -48
- package/docs/ai/components/product-card.md +58 -41
- package/docs/ai/components/progress-ring.md +20 -24
- package/docs/ai/components/progress.md +28 -45
- package/docs/ai/components/qr-code.md +25 -27
- package/docs/ai/components/qr-reader.md +20 -23
- package/docs/ai/components/radio.md +17 -15
- package/docs/ai/components/range-slider.md +22 -11
- package/docs/ai/components/rating.md +29 -33
- package/docs/ai/components/receipt.md +50 -127
- package/docs/ai/components/recipe.md +44 -42
- package/docs/ai/components/sankey.md +21 -30
- package/docs/ai/components/scheduler.md +29 -41
- package/docs/ai/components/segmented-control.md +11 -15
- package/docs/ai/components/select.md +58 -102
- package/docs/ai/components/skeleton.md +16 -30
- package/docs/ai/components/slider.md +26 -20
- package/docs/ai/components/sortable.md +25 -27
- package/docs/ai/components/sparkline.md +21 -17
- package/docs/ai/components/spinner.md +9 -5
- package/docs/ai/components/split-button.md +10 -13
- package/docs/ai/components/split-pane.md +19 -14
- package/docs/ai/components/spotlight.md +31 -26
- package/docs/ai/components/spreadsheet.md +51 -97
- package/docs/ai/components/stat-group.md +9 -19
- package/docs/ai/components/step-input.md +17 -15
- package/docs/ai/components/stepper.md +14 -15
- package/docs/ai/components/switch.md +15 -9
- package/docs/ai/components/table.md +24 -84
- package/docs/ai/components/tabs.md +18 -10
- package/docs/ai/components/tag-input.md +18 -29
- package/docs/ai/components/tag.md +10 -22
- package/docs/ai/components/terminal.md +9 -9
- package/docs/ai/components/testimonial.md +9 -19
- package/docs/ai/components/textarea.md +15 -16
- package/docs/ai/components/theme.md +3 -3
- package/docs/ai/components/time-picker.md +30 -49
- package/docs/ai/components/time-range-picker.md +16 -15
- package/docs/ai/components/timeline.md +5 -4
- package/docs/ai/components/timer.md +8 -8
- package/docs/ai/components/toast.md +24 -18
- package/docs/ai/components/tooltip.md +11 -22
- package/docs/ai/components/tree.md +9 -9
- package/docs/ai/components/treemap.md +14 -13
- package/docs/ai/components/user-card.md +21 -27
- package/docs/ai/components/video-player.md +35 -52
- package/docs/ai/components/virtual-scroller.md +1 -1
- package/docs/ai/components/waterfall.md +17 -16
- package/docs/ai/components/weather.md +19 -34
- package/docs/ai/components/work-order.md +58 -134
- package/docs/ai/patterns.md +63 -0
- package/docs/components/accordion.md +72 -151
- package/docs/components/action-bar.md +185 -0
- package/docs/components/activity-feed.md +9 -14
- package/docs/components/alert.md +17 -109
- package/docs/components/app-tiles.md +58 -43
- package/docs/components/approval-flow.md +8 -14
- package/docs/components/audio-recorder.md +45 -51
- package/docs/components/availability.md +30 -45
- package/docs/components/avatar-group.md +34 -14
- package/docs/components/avatar.md +20 -55
- package/docs/components/badge.md +53 -470
- package/docs/components/banner.md +44 -30
- package/docs/components/binpack.md +208 -0
- package/docs/components/book.md +78 -57
- package/docs/components/booking.md +35 -87
- package/docs/components/breadcrumbs.md +74 -448
- package/docs/components/button.md +72 -603
- package/docs/components/calendar.md +77 -261
- package/docs/components/camera-annotate.md +44 -96
- package/docs/components/camera.md +94 -333
- package/docs/components/candlestick.md +79 -116
- package/docs/components/card.md +51 -689
- package/docs/components/carousel.md +29 -76
- package/docs/components/cart.md +44 -136
- package/docs/components/chart.md +95 -438
- package/docs/components/chat.md +175 -439
- package/docs/components/checkbox.md +52 -609
- package/docs/components/chip.md +45 -574
- package/docs/components/code-block.md +157 -421
- package/docs/components/color-display.md +45 -54
- package/docs/components/color-picker.md +103 -36
- package/docs/components/command-palette.md +98 -92
- package/docs/components/comments.md +16 -10
- package/docs/components/countdown.md +15 -20
- package/docs/components/cropper.md +14 -16
- package/docs/components/data-card.md +16 -15
- package/docs/components/date-picker.md +45 -25
- package/docs/components/date-range-picker.md +140 -87
- package/docs/components/date-time-picker.md +25 -28
- package/docs/components/diff.md +22 -17
- package/docs/components/divider.md +18 -20
- package/docs/components/doc.md +105 -197
- package/docs/components/draw.md +117 -223
- package/docs/components/drawer.md +113 -478
- package/docs/components/empty-state.md +13 -29
- package/docs/components/estimate.md +58 -118
- package/docs/components/file-gallery.md +123 -495
- package/docs/components/file-upload.md +36 -123
- package/docs/components/flip-card.md +30 -34
- package/docs/components/flow.md +74 -89
- package/docs/components/form-builder.md +59 -86
- package/docs/components/form-layout.md +21 -31
- package/docs/components/funnel.md +21 -22
- package/docs/components/gantt.md +5 -5
- package/docs/components/gauge.md +5 -23
- package/docs/components/heatmap.md +13 -55
- package/docs/components/image.md +28 -32
- package/docs/components/input.md +25 -14
- package/docs/components/invoice.md +34 -33
- package/docs/components/kanban.md +99 -394
- package/docs/components/key-value.md +22 -12
- package/docs/components/kpi.md +41 -112
- package/docs/components/layout.md +7 -13
- package/docs/components/leaderboard.md +52 -76
- package/docs/components/link-preview.md +20 -16
- package/docs/components/link.md +22 -19
- package/docs/components/list.md +44 -26
- package/docs/components/location.md +9 -13
- package/docs/components/login.md +42 -36
- package/docs/components/map.md +24 -46
- package/docs/components/markdown.md +14 -25
- package/docs/components/masonry.md +15 -13
- package/docs/components/mentions.md +36 -25
- package/docs/components/menu.md +39 -46
- package/docs/components/message-strip.md +15 -51
- package/docs/components/metric-table.md +50 -72
- package/docs/components/modal.md +32 -43
- package/docs/components/music-player.md +41 -49
- package/docs/components/nav.md +23 -13
- package/docs/components/network-graph.md +14 -13
- package/docs/components/notification-center.md +68 -172
- package/docs/components/order-tracker.md +72 -117
- package/docs/components/org-chart.md +58 -207
- package/docs/components/pagination.md +67 -89
- package/docs/components/paint.md +86 -172
- package/docs/components/pdf-viewer.md +46 -151
- package/docs/components/permission-matrix.md +61 -112
- package/docs/components/podcast-player.md +41 -119
- package/docs/components/pricing-table.md +104 -147
- package/docs/components/product-card.md +94 -197
- package/docs/components/progress-ring.md +29 -32
- package/docs/components/progress.md +30 -61
- package/docs/components/qr-code.md +53 -61
- package/docs/components/qr-reader.md +53 -42
- package/docs/components/radio.md +42 -40
- package/docs/components/range-slider.md +41 -30
- package/docs/components/rating.md +50 -84
- package/docs/components/receipt.md +91 -129
- package/docs/components/recipe.md +107 -216
- package/docs/components/sankey.md +47 -83
- package/docs/components/scheduler.md +81 -184
- package/docs/components/segmented-control.md +48 -40
- package/docs/components/select.md +107 -129
- package/docs/components/skeleton.md +33 -47
- package/docs/components/slider.md +49 -53
- package/docs/components/sortable.md +43 -186
- package/docs/components/sparkline.md +26 -25
- package/docs/components/spinner.md +32 -37
- package/docs/components/split-button.md +43 -23
- package/docs/components/split-pane.md +41 -58
- package/docs/components/spotlight.md +53 -145
- package/docs/components/spreadsheet.md +84 -307
- package/docs/components/stat-group.md +27 -61
- package/docs/components/step-input.md +44 -41
- package/docs/components/stepper.md +55 -89
- package/docs/components/switch.md +39 -39
- package/docs/components/table.md +27 -32
- package/docs/components/tabs.md +36 -27
- package/docs/components/tag-input.md +50 -176
- package/docs/components/tag.md +12 -50
- package/docs/components/terminal.md +32 -37
- package/docs/components/testimonial.md +24 -81
- package/docs/components/textarea.md +9 -14
- package/docs/components/theme.md +10 -23
- package/docs/components/time-picker.md +48 -72
- package/docs/components/time-range-picker.md +22 -41
- package/docs/components/timeline.md +7 -14
- package/docs/components/timer.md +16 -32
- package/docs/components/toast.md +19 -45
- package/docs/components/tooltip.md +13 -115
- package/docs/components/tree.md +2 -19
- package/docs/components/treemap.md +19 -43
- package/docs/components/user-card.md +13 -22
- package/docs/components/video-player.md +53 -227
- package/docs/components/virtual-scroller.md +11 -44
- package/docs/components/waterfall.md +58 -137
- package/docs/components/weather.md +94 -153
- package/docs/components/work-order.md +56 -143
- package/docs/plans/2026-03-09-action-bar-design.md +104 -0
- package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
- package/docs/plans/2026-03-10-react-integration-design.md +166 -0
- package/docs/request-response.md +77 -0
- package/package.json +20 -10
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/countdown.md -->
|
|
2
2
|
|
|
3
3
|
# Countdown Component
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A countdown timer to a target date with live-updating segments for days, hours, minutes, and seconds. Supports three visual variants (simple, flip, circular) and configurable display formats.
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
8
|
- [Properties](#properties)
|
|
@@ -30,8 +30,6 @@ The countdown component displays a countdown timer to a target date with live-up
|
|
|
30
30
|
|
|
31
31
|
## CSS Custom Properties
|
|
32
32
|
|
|
33
|
-
The countdown component uses standard Snice design tokens:
|
|
34
|
-
|
|
35
33
|
| Property | Description |
|
|
36
34
|
|----------|-------------|
|
|
37
35
|
| `--snice-font-family` | Font family |
|
|
@@ -47,15 +45,13 @@ The countdown component uses standard Snice design tokens:
|
|
|
47
45
|
|
|
48
46
|
## CSS Parts
|
|
49
47
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
|
53
|
-
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
| `label` | `<span>` | Text label within a segment (e.g. "Days") |
|
|
58
|
-
| `separator` | `<span>` | Colon separator between segments |
|
|
48
|
+
| Part | Description |
|
|
49
|
+
|------|-------------|
|
|
50
|
+
| `base` | Outer countdown container |
|
|
51
|
+
| `segment` | Individual time segment (days, hours, etc.) |
|
|
52
|
+
| `value` | Digit value within a segment |
|
|
53
|
+
| `label` | Text label within a segment (e.g. "Days") |
|
|
54
|
+
| `separator` | Colon separator between segments |
|
|
59
55
|
|
|
60
56
|
```css
|
|
61
57
|
snice-countdown::part(value) {
|
|
@@ -109,9 +105,9 @@ Use `variant="circular"` to display each segment inside a circular progress ring
|
|
|
109
105
|
<snice-countdown target="2026-06-15T18:00:00Z" variant="circular" format="hms"></snice-countdown>
|
|
110
106
|
```
|
|
111
107
|
|
|
112
|
-
### Short Format
|
|
108
|
+
### Short Format
|
|
113
109
|
|
|
114
|
-
Use `format="ms"` for a
|
|
110
|
+
Use `format="ms"` for a countdown that only shows minutes and seconds.
|
|
115
111
|
|
|
116
112
|
```html
|
|
117
113
|
<snice-countdown target="2026-02-22T12:30:00Z" format="ms" variant="simple"></snice-countdown>
|
|
@@ -135,7 +131,6 @@ Listen for completion and tick events to trigger actions.
|
|
|
135
131
|
|
|
136
132
|
countdown.addEventListener('countdown-tick', (e) => {
|
|
137
133
|
if (e.detail.total <= 60) {
|
|
138
|
-
// Last minute — add urgency styling
|
|
139
134
|
countdown.style.color = 'red';
|
|
140
135
|
}
|
|
141
136
|
});
|
|
@@ -144,7 +139,7 @@ Listen for completion and tick events to trigger actions.
|
|
|
144
139
|
|
|
145
140
|
## Accessibility
|
|
146
141
|
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
-
|
|
142
|
+
- Live updates every second with current values
|
|
143
|
+
- A `.complete` CSS class is added to the host element when the countdown finishes
|
|
144
|
+
- Each time segment has a descriptive label below the digits
|
|
145
|
+
- Segment labels provide context for screen readers
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/cropper.md -->
|
|
2
2
|
|
|
3
3
|
# Cropper Component
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
An image cropping tool with a draggable and resizable crop area, rotation, zoom controls, optional aspect ratio locking, and a rule-of-thirds grid overlay. Outputs cropped images as Blob objects in PNG, JPEG, or WebP format.
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
8
|
- [Properties](#properties)
|
|
@@ -31,7 +31,7 @@ The cropper component provides an image cropping tool with a draggable and resiz
|
|
|
31
31
|
| `crop()` | -- | `Promise<Blob \| null>` | Produce a cropped image Blob from the current crop area |
|
|
32
32
|
| `rotate()` | `degrees: number` | `void` | Rotate the image by the given degrees (cumulative) |
|
|
33
33
|
| `zoom()` | `level: number` | `void` | Set the zoom level (range: 0.1 to 10) |
|
|
34
|
-
| `reset()` | -- | `void` | Reset rotation, zoom, and crop area to
|
|
34
|
+
| `reset()` | -- | `void` | Reset rotation, zoom, and crop area to defaults |
|
|
35
35
|
|
|
36
36
|
## Events
|
|
37
37
|
|
|
@@ -55,13 +55,11 @@ The cropper component provides an image cropping tool with a draggable and resiz
|
|
|
55
55
|
|
|
56
56
|
## CSS Parts
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
|
61
|
-
|
|
62
|
-
| `
|
|
63
|
-
| `image-container` | `<div>` | Image display area |
|
|
64
|
-
| `crop-area` | `<div>` | Draggable/resizable crop region with handles |
|
|
58
|
+
| Part | Description |
|
|
59
|
+
|------|-------------|
|
|
60
|
+
| `base` | Outer cropper container |
|
|
61
|
+
| `image-container` | Image display area |
|
|
62
|
+
| `crop-area` | Draggable/resizable crop region with handles |
|
|
65
63
|
|
|
66
64
|
```css
|
|
67
65
|
snice-cropper::part(base) {
|
|
@@ -103,7 +101,7 @@ Load an image and let the user crop it freely.
|
|
|
103
101
|
const blob = await cropper.crop();
|
|
104
102
|
if (blob) {
|
|
105
103
|
const url = URL.createObjectURL(blob);
|
|
106
|
-
window.open(url);
|
|
104
|
+
window.open(url);
|
|
107
105
|
}
|
|
108
106
|
}
|
|
109
107
|
window.handleCrop = handleCrop;
|
|
@@ -141,7 +139,7 @@ Lock to a widescreen aspect ratio for video thumbnails or banner images.
|
|
|
141
139
|
Use the `rotate()` and `zoom()` methods for image adjustment.
|
|
142
140
|
|
|
143
141
|
```html
|
|
144
|
-
<snice-cropper id="editor" src="/photos/vacation.jpg"
|
|
142
|
+
<snice-cropper id="editor" src="/photos/vacation.jpg"></snice-cropper>
|
|
145
143
|
|
|
146
144
|
<div style="display: flex; gap: 0.5rem; margin-top: 1rem;">
|
|
147
145
|
<button onclick="document.getElementById('editor').rotate(-90)">Rotate Left</button>
|
|
@@ -173,7 +171,7 @@ Track the crop area position and dimensions in real time.
|
|
|
173
171
|
|
|
174
172
|
## Accessibility
|
|
175
173
|
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
-
|
|
174
|
+
- Drag interaction: The crop area can be repositioned by dragging, and resized via 8 corner and edge handles
|
|
175
|
+
- Rule-of-thirds grid overlay helps with composition alignment
|
|
176
|
+
- Dark mask outside the crop area clearly indicates the cropped region
|
|
177
|
+
- When `aspectRatio` is set, resize handles maintain the locked ratio automatically
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/data-card.md -->
|
|
2
2
|
|
|
3
3
|
# Data Card
|
|
4
4
|
`<snice-data-card>`
|
|
@@ -13,25 +13,13 @@ A key-value detail panel for displaying structured data with grouped sections, m
|
|
|
13
13
|
- [CSS Parts](#css-parts)
|
|
14
14
|
- [Basic Usage](#basic-usage)
|
|
15
15
|
- [Examples](#examples)
|
|
16
|
-
|
|
17
|
-
## Importing
|
|
18
|
-
|
|
19
|
-
**ESM (bundler)**
|
|
20
|
-
```typescript
|
|
21
|
-
import 'snice/components/data-card/snice-data-card';
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**CDN**
|
|
25
|
-
```html
|
|
26
|
-
<script src="snice-runtime.min.js"></script>
|
|
27
|
-
<script src="snice-data-card.min.js"></script>
|
|
28
|
-
```
|
|
16
|
+
- [Accessibility](#accessibility)
|
|
29
17
|
|
|
30
18
|
## Properties
|
|
31
19
|
|
|
32
20
|
| Property | Type | Default | Description |
|
|
33
21
|
|----------|------|---------|-------------|
|
|
34
|
-
| `fields` | `DataCardField[]` | `[]` | Array of field objects |
|
|
22
|
+
| `fields` | `DataCardField[]` | `[]` | Array of field objects (JS only, no attribute) |
|
|
35
23
|
| `editable` | `boolean` | `false` | Enable global edit mode |
|
|
36
24
|
| `variant` | `'default' \| 'horizontal' \| 'compact'` | `'default'` | Layout variant |
|
|
37
25
|
|
|
@@ -107,6 +95,12 @@ import 'snice/components/data-card/snice-data-card';
|
|
|
107
95
|
</script>
|
|
108
96
|
```
|
|
109
97
|
|
|
98
|
+
**CDN**
|
|
99
|
+
```html
|
|
100
|
+
<script src="snice-runtime.min.js"></script>
|
|
101
|
+
<script src="snice-data-card.min.js"></script>
|
|
102
|
+
```
|
|
103
|
+
|
|
110
104
|
## Examples
|
|
111
105
|
|
|
112
106
|
### Value Types
|
|
@@ -203,3 +197,10 @@ Use `getValues()` and `setValues()` for programmatic data access.
|
|
|
203
197
|
card.setValues({ Name: 'Jane', Age: 25 });
|
|
204
198
|
</script>
|
|
205
199
|
```
|
|
200
|
+
|
|
201
|
+
## Accessibility
|
|
202
|
+
|
|
203
|
+
- Edit mode inputs support Enter to save and Escape to cancel
|
|
204
|
+
- Edit toggle button is hidden when no fields are editable
|
|
205
|
+
- Links open in new tabs with `rel="noopener"` for security
|
|
206
|
+
- Use `slot="title"` to provide a descriptive heading for the card
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/date-picker.md -->
|
|
2
2
|
|
|
3
3
|
# Date Picker
|
|
4
4
|
`<snice-date-picker>`
|
|
5
5
|
|
|
6
|
-
Calendar-based date input with format options and validation.
|
|
6
|
+
Calendar-based date input with format options and validation. Form-associated custom element.
|
|
7
7
|
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<script src="snice-runtime.min.js"></script>
|
|
18
|
-
<script src="snice-date-picker.min.js"></script>
|
|
19
|
-
```
|
|
8
|
+
## Table of Contents
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Methods](#methods)
|
|
11
|
+
- [Events](#events)
|
|
12
|
+
- [CSS Parts](#css-parts)
|
|
13
|
+
- [Basic Usage](#basic-usage)
|
|
14
|
+
- [Examples](#examples)
|
|
15
|
+
- [Keyboard Navigation](#keyboard-navigation)
|
|
16
|
+
- [Accessibility](#accessibility)
|
|
20
17
|
|
|
21
18
|
## Properties
|
|
22
19
|
|
|
@@ -36,26 +33,26 @@ import 'snice/components/date-picker/snice-date-picker';
|
|
|
36
33
|
| `required` | `required` | `boolean` | `false` | Marks as required |
|
|
37
34
|
| `invalid` | `invalid` | `boolean` | `false` | Shows invalid styling |
|
|
38
35
|
| `clearable` | `clearable` | `boolean` | `false` | Shows clear button |
|
|
39
|
-
| `min` | `min` | `string` | `''` | Minimum selectable date |
|
|
40
|
-
| `max` | `max` | `string` | `''` | Maximum selectable date |
|
|
36
|
+
| `min` | `min` | `string` | `''` | Minimum selectable date (ISO format) |
|
|
37
|
+
| `max` | `max` | `string` | `''` | Maximum selectable date (ISO format) |
|
|
41
38
|
| `name` | `name` | `string` | `''` | Form field name |
|
|
42
39
|
| `showCalendar` | `show-calendar` | `boolean` | `false` | Calendar visibility |
|
|
43
|
-
| `firstDayOfWeek` | `first-day-of-week` | `number` | `0` | First day of week (0=Sun) |
|
|
40
|
+
| `firstDayOfWeek` | `first-day-of-week` | `number` | `0` | First day of week (0=Sun, 1=Mon) |
|
|
44
41
|
|
|
45
42
|
## Methods
|
|
46
43
|
|
|
47
44
|
| Method | Arguments | Description |
|
|
48
45
|
|--------|-----------|-------------|
|
|
49
|
-
| `focus()` |
|
|
50
|
-
| `blur()` |
|
|
51
|
-
| `clear()` |
|
|
52
|
-
| `open()` |
|
|
53
|
-
| `close()` |
|
|
46
|
+
| `focus()` | -- | Focuses the input |
|
|
47
|
+
| `blur()` | -- | Removes focus |
|
|
48
|
+
| `clear()` | -- | Clears the selected date |
|
|
49
|
+
| `open()` | -- | Opens the calendar popup |
|
|
50
|
+
| `close()` | -- | Closes the calendar popup |
|
|
54
51
|
| `selectDate()` | `date: Date` | Programmatically selects a date |
|
|
55
52
|
| `goToMonth()` | `year: number, month: number` | Navigates calendar to a month |
|
|
56
|
-
| `goToToday()` |
|
|
57
|
-
| `checkValidity()` |
|
|
58
|
-
| `reportValidity()` |
|
|
53
|
+
| `goToToday()` | -- | Selects today's date |
|
|
54
|
+
| `checkValidity()` | -- | Returns input validity |
|
|
55
|
+
| `reportValidity()` | -- | Reports input validity |
|
|
59
56
|
| `setCustomValidity()` | `message: string` | Sets custom validation message |
|
|
60
57
|
|
|
61
58
|
## Events
|
|
@@ -93,6 +90,12 @@ import 'snice/components/date-picker/snice-date-picker';
|
|
|
93
90
|
<snice-date-picker label="Select date"></snice-date-picker>
|
|
94
91
|
```
|
|
95
92
|
|
|
93
|
+
**CDN**
|
|
94
|
+
```html
|
|
95
|
+
<script src="snice-runtime.min.js"></script>
|
|
96
|
+
<script src="snice-date-picker.min.js"></script>
|
|
97
|
+
```
|
|
98
|
+
|
|
96
99
|
## Examples
|
|
97
100
|
|
|
98
101
|
### Variants
|
|
@@ -204,3 +207,20 @@ dp.addEventListener('datepicker-change', (e) => {
|
|
|
204
207
|
console.log('ISO:', e.detail.iso);
|
|
205
208
|
});
|
|
206
209
|
```
|
|
210
|
+
|
|
211
|
+
## Keyboard Navigation
|
|
212
|
+
|
|
213
|
+
- **Enter / Space** on input opens the calendar
|
|
214
|
+
- **Escape** closes the calendar and returns focus to input
|
|
215
|
+
- **Tab** navigates between focusable elements in the calendar
|
|
216
|
+
- Calendar days are focusable buttons with aria-labels
|
|
217
|
+
|
|
218
|
+
## Accessibility
|
|
219
|
+
|
|
220
|
+
- Form-associated custom element with `ElementInternals`
|
|
221
|
+
- Calendar popup uses `popover="manual"` for proper layering
|
|
222
|
+
- Day buttons include `aria-label` with formatted date
|
|
223
|
+
- Input supports `aria-invalid` when in invalid state
|
|
224
|
+
- Required fields show visual indicator on the label
|
|
225
|
+
- Calendar toggle button has `aria-label="Open calendar"`
|
|
226
|
+
- Clear button has `aria-label="Clear"`
|
|
@@ -1,39 +1,130 @@
|
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/date-range-picker.md -->
|
|
2
|
+
|
|
1
3
|
# Date Range Picker
|
|
4
|
+
`<snice-date-range-picker>`
|
|
5
|
+
|
|
6
|
+
Date range selection with an interactive calendar dropdown, optional presets sidebar, year picker, and support for multiple date formats. Form-associated custom element.
|
|
7
|
+
|
|
8
|
+
## Table of Contents
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Methods](#methods)
|
|
11
|
+
- [Events](#events)
|
|
12
|
+
- [CSS Parts](#css-parts)
|
|
13
|
+
- [Basic Usage](#basic-usage)
|
|
14
|
+
- [Examples](#examples)
|
|
15
|
+
- [Accessibility](#accessibility)
|
|
16
|
+
|
|
17
|
+
## Properties
|
|
18
|
+
|
|
19
|
+
| Property | Attribute | Type | Default | Description |
|
|
20
|
+
|----------|-----------|------|---------|-------------|
|
|
21
|
+
| `start` | `start` | `string` | `''` | Start date (formatted string or ISO) |
|
|
22
|
+
| `end` | `end` | `string` | `''` | End date (formatted string or ISO) |
|
|
23
|
+
| `size` | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Input size |
|
|
24
|
+
| `variant` | `variant` | `'outlined' \| 'filled' \| 'underlined'` | `'outlined'` | Input style variant |
|
|
25
|
+
| `format` | `format` | `DateRangeFormat` | `'mm/dd/yyyy'` | Date display format |
|
|
26
|
+
| `placeholder` | `placeholder` | `string` | `''` | Input placeholder text |
|
|
27
|
+
| `label` | `label` | `string` | `''` | Label text |
|
|
28
|
+
| `helperText` | `helper-text` | `string` | `''` | Helper text below input |
|
|
29
|
+
| `errorText` | `error-text` | `string` | `''` | Error text below input |
|
|
30
|
+
| `disabled` | `disabled` | `boolean` | `false` | Disables the component |
|
|
31
|
+
| `readonly` | `readonly` | `boolean` | `false` | Makes the component read-only |
|
|
32
|
+
| `loading` | `loading` | `boolean` | `false` | Shows loading spinner |
|
|
33
|
+
| `required` | `required` | `boolean` | `false` | Marks as required |
|
|
34
|
+
| `invalid` | `invalid` | `boolean` | `false` | Shows error styling |
|
|
35
|
+
| `clearable` | `clearable` | `boolean` | `false` | Shows clear button |
|
|
36
|
+
| `min` | `min` | `string` | `''` | Minimum selectable date (ISO format) |
|
|
37
|
+
| `max` | `max` | `string` | `''` | Maximum selectable date (ISO format) |
|
|
38
|
+
| `name` | `name` | `string` | `''` | Form field name |
|
|
39
|
+
| `columns` | `columns` | `number` | `1` | Calendar columns (1 or 2) |
|
|
40
|
+
| `firstDayOfWeek` | `first-day-of-week` | `number` | `0` | First day of week (0=Sun) |
|
|
41
|
+
| `presets` | N/A | `DateRangePreset[]` | `[]` | Preset ranges (JS only) |
|
|
42
|
+
| `showCalendar` | `show-calendar` | `boolean` | `false` | Calendar visibility |
|
|
43
|
+
|
|
44
|
+
### DateRangePreset Object
|
|
2
45
|
|
|
3
|
-
|
|
46
|
+
```typescript
|
|
47
|
+
interface DateRangePreset {
|
|
48
|
+
label: string;
|
|
49
|
+
start: Date;
|
|
50
|
+
end: Date;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Supported Formats
|
|
55
|
+
|
|
56
|
+
`'mm/dd/yyyy'` | `'dd/mm/yyyy'` | `'yyyy-mm-dd'` | `'yyyy/mm/dd'` | `'dd-mm-yyyy'` | `'mm-dd-yyyy'` | `'mmmm dd, yyyy'`
|
|
57
|
+
|
|
58
|
+
## Methods
|
|
59
|
+
|
|
60
|
+
| Method | Arguments | Description |
|
|
61
|
+
|--------|-----------|-------------|
|
|
62
|
+
| `open()` | -- | Open the calendar dropdown |
|
|
63
|
+
| `close()` | -- | Close the calendar dropdown |
|
|
64
|
+
| `clear()` | -- | Clear both dates |
|
|
65
|
+
| `focus()` | -- | Focus the input |
|
|
66
|
+
| `blur()` | -- | Blur the input |
|
|
67
|
+
| `selectRange()` | `start: Date, end: Date` | Programmatically select a date range |
|
|
68
|
+
| `checkValidity()` | -- | Check form validity |
|
|
69
|
+
| `reportValidity()` | -- | Report form validity |
|
|
70
|
+
| `setCustomValidity()` | `message: string` | Set custom validation message |
|
|
71
|
+
|
|
72
|
+
## Events
|
|
73
|
+
|
|
74
|
+
| Event | Detail | Description |
|
|
75
|
+
|-------|--------|-------------|
|
|
76
|
+
| `daterange-change` | `{ start, end, startDate, endDate, startIso, endIso }` | Range selected or cleared |
|
|
77
|
+
| `daterange-open` | `{ dateRangePicker }` | Calendar opened |
|
|
78
|
+
| `daterange-close` | `{ dateRangePicker }` | Calendar closed |
|
|
79
|
+
| `daterange-clear` | `{ dateRangePicker }` | Range cleared |
|
|
80
|
+
| `daterange-preset` | `{ label, start, end, dateRangePicker }` | Preset selected |
|
|
81
|
+
| `daterange-focus` | `{ dateRangePicker }` | Input focused |
|
|
82
|
+
| `daterange-blur` | `{ dateRangePicker }` | Input blurred |
|
|
83
|
+
|
|
84
|
+
## CSS Parts
|
|
85
|
+
|
|
86
|
+
| Part | Description |
|
|
87
|
+
|------|-------------|
|
|
88
|
+
| `input` | The text input element |
|
|
89
|
+
| `calendar-toggle` | Calendar icon button |
|
|
90
|
+
| `clear` | Clear button |
|
|
91
|
+
| `spinner` | Loading spinner |
|
|
92
|
+
| `calendar` | Calendar dropdown container |
|
|
93
|
+
| `helper-text` | Helper text element |
|
|
94
|
+
| `error-text` | Error text element |
|
|
4
95
|
|
|
5
96
|
## Basic Usage
|
|
6
97
|
|
|
98
|
+
```typescript
|
|
99
|
+
import 'snice/components/date-range-picker/snice-date-range-picker';
|
|
100
|
+
```
|
|
101
|
+
|
|
7
102
|
```html
|
|
8
|
-
<snice-date-range-picker
|
|
9
|
-
label="Select Date Range"
|
|
10
|
-
clearable
|
|
11
|
-
></snice-date-range-picker>
|
|
103
|
+
<snice-date-range-picker label="Select Date Range" clearable></snice-date-range-picker>
|
|
12
104
|
```
|
|
13
105
|
|
|
14
|
-
|
|
106
|
+
**CDN**
|
|
107
|
+
```html
|
|
108
|
+
<script src="snice-runtime.min.js"></script>
|
|
109
|
+
<script src="snice-date-range-picker.min.js"></script>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Examples
|
|
113
|
+
|
|
114
|
+
### Dual Column Calendar
|
|
15
115
|
|
|
16
|
-
|
|
116
|
+
Use the `columns` attribute to show two months side-by-side for easier range selection.
|
|
17
117
|
|
|
18
118
|
```html
|
|
19
|
-
<snice-date-range-picker
|
|
20
|
-
label="Booking Dates"
|
|
21
|
-
columns="2"
|
|
22
|
-
clearable
|
|
23
|
-
></snice-date-range-picker>
|
|
119
|
+
<snice-date-range-picker label="Booking Dates" columns="2" clearable></snice-date-range-picker>
|
|
24
120
|
```
|
|
25
121
|
|
|
26
|
-
|
|
122
|
+
### Presets
|
|
27
123
|
|
|
28
|
-
|
|
124
|
+
Set the `presets` property via JavaScript to add quick-select preset buttons to the calendar sidebar.
|
|
29
125
|
|
|
30
126
|
```html
|
|
31
|
-
<snice-date-range-picker
|
|
32
|
-
id="my-picker"
|
|
33
|
-
label="Report Period"
|
|
34
|
-
columns="2"
|
|
35
|
-
clearable
|
|
36
|
-
></snice-date-range-picker>
|
|
127
|
+
<snice-date-range-picker id="my-picker" label="Report Period" columns="2" clearable></snice-date-range-picker>
|
|
37
128
|
```
|
|
38
129
|
|
|
39
130
|
```typescript
|
|
@@ -48,32 +139,36 @@ picker.presets = [
|
|
|
48
139
|
|
|
49
140
|
Hovering over a preset shows a dashed preview of the range on the calendar. Clicking a preset selects both dates and closes the calendar.
|
|
50
141
|
|
|
51
|
-
|
|
142
|
+
### Date Formats
|
|
143
|
+
|
|
144
|
+
Use the `format` attribute to control how dates are displayed.
|
|
52
145
|
|
|
53
146
|
```html
|
|
54
|
-
<snice-date-range-picker format="mm/dd/yyyy"></snice-date-range-picker>
|
|
55
|
-
<snice-date-range-picker format="dd/mm/yyyy"></snice-date-range-picker>
|
|
56
|
-
<snice-date-range-picker format="yyyy-mm-dd"></snice-date-range-picker>
|
|
57
|
-
<snice-date-range-picker format="mmmm dd, yyyy"></snice-date-range-picker>
|
|
147
|
+
<snice-date-range-picker format="mm/dd/yyyy"></snice-date-range-picker>
|
|
148
|
+
<snice-date-range-picker format="dd/mm/yyyy"></snice-date-range-picker>
|
|
149
|
+
<snice-date-range-picker format="yyyy-mm-dd"></snice-date-range-picker>
|
|
150
|
+
<snice-date-range-picker format="mmmm dd, yyyy"></snice-date-range-picker>
|
|
58
151
|
```
|
|
59
152
|
|
|
60
153
|
The `start` and `end` attributes accept ISO format (`yyyy-mm-dd`) regardless of the display format.
|
|
61
154
|
|
|
62
|
-
|
|
155
|
+
### Sizes and Variants
|
|
156
|
+
|
|
157
|
+
Use the `size` and `variant` attributes to control the input appearance.
|
|
63
158
|
|
|
64
159
|
```html
|
|
65
|
-
<!-- Sizes -->
|
|
66
160
|
<snice-date-range-picker size="small"></snice-date-range-picker>
|
|
67
161
|
<snice-date-range-picker size="medium"></snice-date-range-picker>
|
|
68
162
|
<snice-date-range-picker size="large"></snice-date-range-picker>
|
|
69
163
|
|
|
70
|
-
<!-- Variants -->
|
|
71
164
|
<snice-date-range-picker variant="outlined"></snice-date-range-picker>
|
|
72
165
|
<snice-date-range-picker variant="filled"></snice-date-range-picker>
|
|
73
166
|
<snice-date-range-picker variant="underlined"></snice-date-range-picker>
|
|
74
167
|
```
|
|
75
168
|
|
|
76
|
-
|
|
169
|
+
### States
|
|
170
|
+
|
|
171
|
+
Use `required`, `invalid`, `disabled`, `readonly`, and `loading` for different interaction states.
|
|
77
172
|
|
|
78
173
|
```html
|
|
79
174
|
<snice-date-range-picker required helper-text="Required field"></snice-date-range-picker>
|
|
@@ -83,11 +178,11 @@ The `start` and `end` attributes accept ISO format (`yyyy-mm-dd`) regardless of
|
|
|
83
178
|
<snice-date-range-picker loading></snice-date-range-picker>
|
|
84
179
|
```
|
|
85
180
|
|
|
86
|
-
|
|
181
|
+
### Year Picker
|
|
87
182
|
|
|
88
183
|
Click the year in the calendar header to open a 12-year grid. Navigate between year ranges with the arrow buttons, then click a year to return to the day view.
|
|
89
184
|
|
|
90
|
-
|
|
185
|
+
### Form Integration
|
|
91
186
|
|
|
92
187
|
The component is form-associated. When used inside a `<form>` with a `name` attribute, it submits two values: `{name}-start` and `{name}-end`.
|
|
93
188
|
|
|
@@ -98,63 +193,21 @@ The component is form-associated. When used inside a `<form>` with a `name` attr
|
|
|
98
193
|
</form>
|
|
99
194
|
```
|
|
100
195
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
| Property | Attribute | Type | Default | Description |
|
|
104
|
-
|----------|-----------|------|---------|-------------|
|
|
105
|
-
| `start` | `start` | `string` | `''` | Start date (formatted string or ISO) |
|
|
106
|
-
| `end` | `end` | `string` | `''` | End date (formatted string or ISO) |
|
|
107
|
-
| `size` | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Input size |
|
|
108
|
-
| `variant` | `variant` | `'outlined' \| 'filled' \| 'underlined'` | `'outlined'` | Input style variant |
|
|
109
|
-
| `format` | `format` | `DateRangeFormat` | `'mm/dd/yyyy'` | Date display format |
|
|
110
|
-
| `label` | `label` | `string` | `''` | Label text |
|
|
111
|
-
| `helperText` | `helper-text` | `string` | `''` | Helper text below input |
|
|
112
|
-
| `errorText` | `error-text` | `string` | `''` | Error text below input |
|
|
113
|
-
| `disabled` | `disabled` | `boolean` | `false` | Disables the component |
|
|
114
|
-
| `readonly` | `readonly` | `boolean` | `false` | Makes the component read-only |
|
|
115
|
-
| `loading` | `loading` | `boolean` | `false` | Shows loading spinner |
|
|
116
|
-
| `required` | `required` | `boolean` | `false` | Marks as required |
|
|
117
|
-
| `invalid` | `invalid` | `boolean` | `false` | Shows error styling |
|
|
118
|
-
| `clearable` | `clearable` | `boolean` | `false` | Shows clear button |
|
|
119
|
-
| `min` | `min` | `string` | `''` | Minimum selectable date |
|
|
120
|
-
| `max` | `max` | `string` | `''` | Maximum selectable date |
|
|
121
|
-
| `name` | `name` | `string` | `''` | Form field name |
|
|
122
|
-
| `columns` | `columns` | `number` | `1` | Calendar columns (1 or 2) |
|
|
123
|
-
| `firstDayOfWeek` | `first-day-of-week` | `number` | `0` | First day of week (0=Sun) |
|
|
124
|
-
| `presets` | N/A | `DateRangePreset[]` | `[]` | Preset ranges (JS only) |
|
|
125
|
-
|
|
126
|
-
## Events
|
|
196
|
+
### Event Handling
|
|
127
197
|
|
|
128
|
-
|
|
129
|
-
|-------|--------|-------------|
|
|
130
|
-
| `daterange-change` | `{ start, end, startDate, endDate, startIso, endIso }` | Range selected or cleared |
|
|
131
|
-
| `daterange-open` | `{ dateRangePicker }` | Calendar opened |
|
|
132
|
-
| `daterange-close` | `{ dateRangePicker }` | Calendar closed |
|
|
133
|
-
| `daterange-clear` | `{ dateRangePicker }` | Range cleared |
|
|
134
|
-
| `daterange-preset` | `{ label, start, end }` | Preset selected |
|
|
198
|
+
Listen for range changes using the `daterange-change` event.
|
|
135
199
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
| `close()` | Close the calendar dropdown |
|
|
142
|
-
| `clear()` | Clear both dates |
|
|
143
|
-
| `focus()` | Focus the input |
|
|
144
|
-
| `blur()` | Blur the input |
|
|
145
|
-
| `selectRange(start, end)` | Programmatically select a date range |
|
|
146
|
-
| `checkValidity()` | Check form validity |
|
|
147
|
-
| `reportValidity()` | Report form validity |
|
|
148
|
-
| `setCustomValidity(msg)` | Set custom validation message |
|
|
200
|
+
```typescript
|
|
201
|
+
picker.addEventListener('daterange-change', (e) => {
|
|
202
|
+
console.log('Start:', e.detail.startIso, 'End:', e.detail.endIso);
|
|
203
|
+
});
|
|
204
|
+
```
|
|
149
205
|
|
|
150
|
-
##
|
|
206
|
+
## Accessibility
|
|
151
207
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
| `calendar` | Calendar dropdown container |
|
|
159
|
-
| `error-text` | Error text element |
|
|
160
|
-
| `helper-text` | Helper text element |
|
|
208
|
+
- Form-associated custom element with `ElementInternals`
|
|
209
|
+
- Calendar popup uses `popover="manual"` for proper layering
|
|
210
|
+
- Navigation buttons have `aria-label` attributes
|
|
211
|
+
- Required fields show visual indicator on the label
|
|
212
|
+
- Calendar toggle button has `aria-label="Toggle calendar"`
|
|
213
|
+
- Clear button has `aria-label="Clear"`
|