snice 4.28.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 +1 -1
- package/dist/cdn/badge/snice-badge.min.js +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 +2 -2
- package/dist/cdn/button/snice-button.js.map +1 -1
- package/dist/cdn/button/snice-button.min.js +2 -2
- 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 +2 -2
- package/dist/cdn/login/snice-login.js.map +1 -1
- package/dist/cdn/login/snice-login.min.js +2 -2
- 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 +73 -5
- 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 +73 -4
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +7 -7
- 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 +2 -2
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +2 -2
- 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/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.js +1 -1
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/create-request-handler.d.ts +42 -0
- package/dist/index.cjs +70 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +70 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +70 -1
- package/dist/index.iife.js.map +1 -1
- 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 +1 -1
|
@@ -6,42 +6,38 @@ Multi-option switcher with sliding indicator. One selected at a time.
|
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
8
|
value: string = '';
|
|
9
|
-
options: SegmentedControlOption[] = []; // { value, label, icon?, disabled? }
|
|
9
|
+
options: SegmentedControlOption[] = []; // JS only: { value, label, icon?, disabled? }
|
|
10
10
|
size: 'small'|'medium'|'large' = 'medium';
|
|
11
11
|
disabled: boolean = false;
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
+
## Events
|
|
15
|
+
|
|
16
|
+
- `value-change` → `{ value: string, previousValue: string, option: SegmentedControlOption, control }`
|
|
17
|
+
|
|
14
18
|
## CSS Parts
|
|
15
19
|
|
|
16
20
|
- `base` - Root container
|
|
17
21
|
- `indicator` - Sliding selection indicator
|
|
18
22
|
- `segment` - Individual option button
|
|
19
23
|
|
|
20
|
-
##
|
|
21
|
-
|
|
22
|
-
- `value-change` → `{ value, previousValue, option, control }`
|
|
23
|
-
|
|
24
|
-
## Usage
|
|
24
|
+
## Basic Usage
|
|
25
25
|
|
|
26
26
|
```html
|
|
27
|
-
<snice-segmented-control></snice-segmented-control>
|
|
27
|
+
<snice-segmented-control value="week"></snice-segmented-control>
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
```typescript
|
|
31
31
|
control.options = [
|
|
32
32
|
{ value: 'day', label: 'Day' },
|
|
33
33
|
{ value: 'week', label: 'Week' },
|
|
34
|
-
{ value: 'month', label: 'Month' }
|
|
34
|
+
{ value: 'month', label: 'Month' }
|
|
35
35
|
];
|
|
36
|
-
control.value = 'week';
|
|
37
36
|
control.addEventListener('value-change', (e) => console.log(e.detail.value));
|
|
38
37
|
```
|
|
39
38
|
|
|
40
|
-
##
|
|
39
|
+
## Accessibility
|
|
41
40
|
|
|
42
|
-
-
|
|
41
|
+
- ARIA radiogroup/radio roles
|
|
43
42
|
- Sliding indicator animates between selections
|
|
44
|
-
-
|
|
45
|
-
- ARIA radiogroup/radio roles for accessibility
|
|
46
|
-
- Diff from tabs: no content panes, just a value selector
|
|
47
|
-
- Diff from switch: more than two options
|
|
43
|
+
- First non-disabled option selected if no value set
|
|
@@ -1,142 +1,98 @@
|
|
|
1
1
|
# snice-select
|
|
2
2
|
|
|
3
|
-
Customizable dropdown selection with single/multiple
|
|
3
|
+
Customizable dropdown selection with single/multiple, search, editable input, and icons.
|
|
4
4
|
|
|
5
5
|
## Components
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- `snice-select` - Container with trigger, dropdown, form integration
|
|
8
|
+
- `snice-option` - Declarative option elements
|
|
9
|
+
|
|
10
|
+
## Properties
|
|
11
|
+
|
|
12
|
+
### snice-select
|
|
8
13
|
|
|
9
14
|
```typescript
|
|
10
|
-
value: string = ''; //
|
|
11
|
-
disabled: boolean = false;
|
|
12
|
-
required: boolean = false;
|
|
13
|
-
invalid: boolean = false;
|
|
14
|
-
readonly: boolean = false;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
value: string = ''; // Comma-separated for multiple
|
|
16
|
+
disabled: boolean = false;
|
|
17
|
+
required: boolean = false;
|
|
18
|
+
invalid: boolean = false;
|
|
19
|
+
readonly: boolean = false;
|
|
20
|
+
loading: boolean = false;
|
|
21
|
+
multiple: boolean = false;
|
|
22
|
+
searchable: boolean = false;
|
|
23
|
+
clearable: boolean = false;
|
|
24
|
+
editable: boolean = false; // Text input trigger instead of button
|
|
25
|
+
allowFreeText: boolean = false; // attr: allow-free-text
|
|
20
26
|
remote: boolean = false; // Remote search via @request('select/search')
|
|
21
|
-
searchDebounce: number = 300; // attr: search-debounce
|
|
22
|
-
open: boolean = false;
|
|
23
|
-
loading: boolean = false; // Loading state (shows spinner)
|
|
27
|
+
searchDebounce: number = 300; // attr: search-debounce
|
|
28
|
+
open: boolean = false;
|
|
24
29
|
size: 'small'|'medium'|'large' = 'medium';
|
|
25
|
-
name: string = '';
|
|
26
|
-
label: string = '';
|
|
30
|
+
name: string = '';
|
|
31
|
+
label: string = '';
|
|
27
32
|
placeholder: string = 'Select an option';
|
|
28
|
-
maxHeight: string = '200px'; //
|
|
29
|
-
options: SelectOption[] = []; //
|
|
33
|
+
maxHeight: string = '200px'; // attr: max-height
|
|
34
|
+
options: SelectOption[] = []; // JS only, works alongside <snice-option> children
|
|
30
35
|
```
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
```typescript
|
|
34
|
-
selectOption(value: string) // Select option by value
|
|
35
|
-
clear() // Clear selection
|
|
36
|
-
openDropdown() // Open dropdown
|
|
37
|
-
closeDropdown() // Close dropdown
|
|
38
|
-
toggleDropdown() // Toggle dropdown
|
|
39
|
-
focus() // Focus trigger (or input in editable mode)
|
|
40
|
-
blur() // Blur and close
|
|
41
|
-
```
|
|
37
|
+
### snice-option
|
|
42
38
|
|
|
43
|
-
**Events:**
|
|
44
39
|
```typescript
|
|
45
|
-
'
|
|
46
|
-
'
|
|
47
|
-
|
|
40
|
+
value: string = ''; // Falls back to label
|
|
41
|
+
label: string = ''; // Falls back to textContent
|
|
42
|
+
disabled: boolean = false;
|
|
43
|
+
selected: boolean = false;
|
|
44
|
+
icon: string = ''; // Icon URL
|
|
48
45
|
```
|
|
49
46
|
|
|
50
|
-
|
|
47
|
+
## Methods
|
|
51
48
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
selected: boolean = false; // Initially selected
|
|
57
|
-
icon: string = ''; // Icon URL
|
|
58
|
-
```
|
|
49
|
+
- `focus()` / `blur()` - Focus/blur trigger
|
|
50
|
+
- `clear()` - Clear selection
|
|
51
|
+
- `openDropdown()` / `closeDropdown()` / `toggleDropdown()` - Dropdown control
|
|
52
|
+
- `selectOption(value)` - Select by value
|
|
59
53
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
## Events
|
|
55
|
+
|
|
56
|
+
- `select-change` → `{ value: string | string[], option?, select }`
|
|
57
|
+
- `select-open` → `{ select }`
|
|
58
|
+
- `select-close` → `{ select }`
|
|
59
|
+
|
|
60
|
+
## CSS Parts
|
|
64
61
|
|
|
65
|
-
|
|
62
|
+
- `label`, `trigger`, `value`, `input`, `arrow`, `spinner`
|
|
63
|
+
- `dropdown`, `search`, `search-input`, `options`, `option`
|
|
64
|
+
|
|
65
|
+
## Basic Usage
|
|
66
66
|
|
|
67
67
|
```html
|
|
68
|
-
<!--
|
|
68
|
+
<!-- Declarative options -->
|
|
69
69
|
<snice-select label="Choose" name="choice">
|
|
70
70
|
<snice-option value="1">Option 1</snice-option>
|
|
71
71
|
<snice-option value="2">Option 2</snice-option>
|
|
72
72
|
</snice-select>
|
|
73
73
|
|
|
74
|
-
<!-- Editable input
|
|
74
|
+
<!-- Editable input mode -->
|
|
75
75
|
<snice-select editable label="Fruit" placeholder="Type or select..."></snice-select>
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
```typescript
|
|
79
|
-
// Programmatic options (required for editable mode or in addition to children)
|
|
80
79
|
select.options = [
|
|
81
80
|
{ value: 'apple', label: 'Apple' },
|
|
82
|
-
{ value: 'banana', label: 'Banana', icon: '/icons/banana.svg' }
|
|
83
|
-
{ value: 'cherry', label: 'Cherry', disabled: true },
|
|
81
|
+
{ value: 'banana', label: 'Banana', icon: '/icons/banana.svg' }
|
|
84
82
|
];
|
|
85
|
-
|
|
86
|
-
select.addEventListener('select-change', (e) => {
|
|
87
|
-
console.log(e.detail.value);
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
select.selectOption('1');
|
|
83
|
+
select.addEventListener('select-change', (e) => console.log(e.detail.value));
|
|
91
84
|
```
|
|
92
85
|
|
|
93
86
|
## Editable Mode
|
|
94
87
|
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
- Blur commits the value and closes
|
|
100
|
-
- If no match and `allow-free-text` is set, accepts custom value
|
|
101
|
-
- If no match and no `allow-free-text`, reverts to last valid value
|
|
102
|
-
- Options set via JS `options` property (array), child `<snice-option>` elements, or both (merged)
|
|
103
|
-
|
|
104
|
-
## Remote Search (@request/@respond)
|
|
105
|
-
|
|
106
|
-
When `remote` is set with `searchable` or `editable`:
|
|
107
|
-
- Typing fires `@request('select/search')` with `{ query, select }` after debounce
|
|
108
|
-
- Controller `@respond('select/search')` returns `SelectOption[]`
|
|
109
|
-
- Dropdown shows spinner while waiting, then refreshes with results
|
|
110
|
-
- Opening dropdown triggers initial search with current query
|
|
111
|
-
- `loading` property no longer closes dropdown when `remote` is true
|
|
112
|
-
|
|
113
|
-
```typescript
|
|
114
|
-
// Controller
|
|
115
|
-
@respond('select/search')
|
|
116
|
-
async handleSearch(req, respond) {
|
|
117
|
-
const results = await fetch(`/api/users?q=${req.query}`).then(r => r.json());
|
|
118
|
-
respond(results.map(u => ({ value: u.id, label: u.name })));
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Features
|
|
123
|
-
|
|
124
|
-
- Single and multiple selection
|
|
125
|
-
- Search filtering (in-dropdown or editable input)
|
|
126
|
-
- Remote async search via @request/@respond
|
|
127
|
-
- Editable text input mode (replaces combobox)
|
|
128
|
-
- Keyboard navigation
|
|
129
|
-
- Form integration
|
|
130
|
-
- Icons in options
|
|
131
|
-
- Clearable selection
|
|
132
|
-
- Disabled options
|
|
133
|
-
- Programmatic options array (works alongside child elements)
|
|
88
|
+
- `editable` renders text input instead of button
|
|
89
|
+
- Typing filters options; blur commits value
|
|
90
|
+
- `allow-free-text` accepts values not in options list
|
|
91
|
+
- `remote` + `editable` enables async search via @request/@respond
|
|
134
92
|
|
|
135
|
-
##
|
|
93
|
+
## Accessibility
|
|
136
94
|
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
- Hidden native select for form submission
|
|
95
|
+
- Hidden native `<select>` for form submission
|
|
96
|
+
- Arrow keys, Enter, Escape for keyboard navigation
|
|
140
97
|
- Dropdown closes on outside click
|
|
141
|
-
-
|
|
142
|
-
- Child `<snice-option>` elements take precedence when both children and programmatic options are provided
|
|
98
|
+
- Children take precedence over `options` array
|
|
@@ -13,41 +13,27 @@ count: number = 1;
|
|
|
13
13
|
spacing: string = '8px';
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
- `base` - Outer skeleton container
|
|
18
|
-
- `bone` - Individual skeleton placeholder element
|
|
16
|
+
## CSS Custom Properties
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
- `--skeleton-bg` - Background color
|
|
19
|
+
- `--skeleton-highlight` - Wave highlight color
|
|
20
|
+
- `--skeleton-duration` - Animation duration (`1.5s`)
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
<!-- Text placeholder -->
|
|
24
|
-
<snice-skeleton variant="text"></snice-skeleton>
|
|
25
|
-
<snice-skeleton variant="text" width="200px"></snice-skeleton>
|
|
22
|
+
## CSS Parts
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
- `base` - Outer container
|
|
25
|
+
- `bone` - Individual placeholder element
|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
<snice-skeleton variant="rectangular" width="100%" height="200px"></snice-skeleton>
|
|
27
|
+
## Basic Usage
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
<snice-skeleton variant="rounded" width="300px" height="150px"></snice-skeleton>
|
|
35
|
-
|
|
36
|
-
<!-- Multiple lines -->
|
|
29
|
+
```html
|
|
37
30
|
<snice-skeleton variant="text" count="3"></snice-skeleton>
|
|
38
|
-
<snice-skeleton variant="
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
<snice-skeleton variant="circular" width="48px" height="48px"></snice-skeleton>
|
|
32
|
+
<snice-skeleton variant="rectangular" width="100%" height="200px"></snice-skeleton>
|
|
33
|
+
<snice-skeleton variant="rounded" width="300px" height="150px"></snice-skeleton>
|
|
41
34
|
<snice-skeleton animation="pulse"></snice-skeleton>
|
|
42
|
-
<snice-skeleton animation="wave"></snice-skeleton>
|
|
43
|
-
<snice-skeleton animation="none"></snice-skeleton>
|
|
44
|
-
|
|
45
|
-
<!-- Complex layout -->
|
|
46
|
-
<div style="display: flex; gap: 16px;">
|
|
47
|
-
<snice-skeleton variant="circular" width="48px" height="48px"></snice-skeleton>
|
|
48
|
-
<div style="flex: 1;">
|
|
49
|
-
<snice-skeleton variant="text" width="40%"></snice-skeleton>
|
|
50
|
-
<snice-skeleton variant="text" width="60%"></snice-skeleton>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
35
|
```
|
|
36
|
+
|
|
37
|
+
## Accessibility
|
|
38
|
+
|
|
39
|
+
- Decorative only; use `aria-busy="true"` on container while loading
|
|
@@ -15,6 +15,7 @@ disabled: boolean = false;
|
|
|
15
15
|
required: boolean = false;
|
|
16
16
|
invalid: boolean = false;
|
|
17
17
|
readonly: boolean = false;
|
|
18
|
+
loading: boolean = false;
|
|
18
19
|
label: string = '';
|
|
19
20
|
helperText: string = ''; // attr: helper-text
|
|
20
21
|
errorText: string = ''; // attr: error-text
|
|
@@ -22,37 +23,42 @@ name: string = '';
|
|
|
22
23
|
showValue: boolean = false; // attr: show-value
|
|
23
24
|
showTicks: boolean = false; // attr: show-ticks
|
|
24
25
|
vertical: boolean = false;
|
|
25
|
-
|
|
26
|
-
// form-align: CSS-only attribute (no JS property). Gives the slider track area
|
|
27
|
-
// min-height: 2.5rem (40px) so it aligns with input/select fields in form rows.
|
|
26
|
+
// form-align: CSS-only attribute, aligns with inputs in form rows
|
|
28
27
|
```
|
|
29
28
|
|
|
29
|
+
## Methods
|
|
30
|
+
|
|
31
|
+
- `focus()` / `blur()` - Focus/blur thumb
|
|
32
|
+
- `checkValidity()` - Returns boolean
|
|
33
|
+
- `reportValidity()` - Returns boolean
|
|
34
|
+
- `setCustomValidity(message)` - Set validation message
|
|
35
|
+
|
|
30
36
|
## Events
|
|
31
37
|
|
|
32
|
-
- `slider-input` → `{ value, slider }` - During drag
|
|
33
|
-
- `slider-change` → `{ value, slider }` - After
|
|
38
|
+
- `slider-input` → `{ value: number, slider }` - During drag
|
|
39
|
+
- `slider-change` → `{ value: number, slider }` - After commit
|
|
34
40
|
|
|
35
|
-
##
|
|
41
|
+
## CSS Parts
|
|
36
42
|
|
|
37
|
-
- `
|
|
38
|
-
- `blur()` - Blur slider thumb
|
|
39
|
-
- `checkValidity()` - Check validation, returns `boolean`
|
|
40
|
-
- `reportValidity()` - Report validation to user, returns `boolean`
|
|
41
|
-
- `setCustomValidity(message)` - Set custom validation message
|
|
43
|
+
- `track`, `fill`, `thumb`, `spinner`, `error-text`, `helper-text`
|
|
42
44
|
|
|
43
|
-
## Usage
|
|
45
|
+
## Basic Usage
|
|
44
46
|
|
|
45
47
|
```html
|
|
46
|
-
<snice-slider label="Volume" min="0" max="100"></snice-slider>
|
|
47
|
-
<snice-slider show-value value="50"></snice-slider>
|
|
48
|
+
<snice-slider label="Volume" min="0" max="100" value="50" show-value></snice-slider>
|
|
48
49
|
<snice-slider show-ticks min="0" max="10" step="1"></snice-slider>
|
|
49
|
-
<snice-slider variant="primary"></snice-slider>
|
|
50
|
-
<snice-slider size="small"></snice-slider>
|
|
50
|
+
<snice-slider variant="primary" size="large"></snice-slider>
|
|
51
51
|
<snice-slider vertical></snice-slider>
|
|
52
|
-
<snice-slider label="Qty" form-align></snice-slider>
|
|
53
|
-
<snice-slider min="0" max="100" step="5" value="50"></snice-slider>
|
|
52
|
+
<snice-slider label="Qty" form-align></snice-slider>
|
|
54
53
|
```
|
|
55
54
|
|
|
56
|
-
##
|
|
55
|
+
## Keyboard Navigation
|
|
56
|
+
|
|
57
|
+
- Arrow keys: adjust by step
|
|
58
|
+
- Home/End: min/max
|
|
59
|
+
|
|
60
|
+
## Accessibility
|
|
57
61
|
|
|
58
|
-
|
|
62
|
+
- Form-associated via ElementInternals
|
|
63
|
+
- `role="slider"` with aria-valuenow/min/max
|
|
64
|
+
- Validation via checkValidity/reportValidity/setCustomValidity
|
|
@@ -4,42 +4,30 @@ Drag-and-drop sortable container for reordering child elements.
|
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
|
-
```
|
|
8
|
-
direction: 'vertical'
|
|
9
|
-
handle: string = ''
|
|
10
|
-
disabled: boolean = false
|
|
11
|
-
group: string = ''
|
|
7
|
+
```typescript
|
|
8
|
+
direction: 'vertical'|'horizontal' = 'vertical';
|
|
9
|
+
handle: string = ''; // CSS selector for drag handle
|
|
10
|
+
disabled: boolean = false;
|
|
11
|
+
group: string = ''; // Group name for cross-container sorting
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
## Slots
|
|
15
|
-
|
|
16
|
-
- `default` - Items to be sortable (automatically set to `draggable`)
|
|
17
|
-
|
|
18
14
|
## Events
|
|
19
15
|
|
|
20
|
-
- `sort-start`
|
|
21
|
-
- `sort-end`
|
|
22
|
-
- `sort-change`
|
|
23
|
-
|
|
24
|
-
## CSS Parts
|
|
25
|
-
|
|
26
|
-
- `base` - The outer sortable container
|
|
16
|
+
- `sort-start` → `{ index: number, item: HTMLElement }`
|
|
17
|
+
- `sort-end` → `{ oldIndex: number, newIndex: number, item: HTMLElement }`
|
|
18
|
+
- `sort-change` → `{ oldIndex: number, newIndex: number, item: HTMLElement }`
|
|
27
19
|
|
|
28
|
-
##
|
|
20
|
+
## Slots
|
|
29
21
|
|
|
30
|
-
-
|
|
31
|
-
- `--snice-transition-fast` - Drag transition speed (default: `150ms`)
|
|
32
|
-
- `--snice-color-primary` - Ghost outline color (default: `rgb(37 99 235)`)
|
|
22
|
+
- `(default)` - Items to be sortable (auto set `draggable`)
|
|
33
23
|
|
|
34
|
-
## CSS
|
|
24
|
+
## CSS Parts
|
|
35
25
|
|
|
36
|
-
-
|
|
37
|
-
- `.sortable-ghost` - Dashed outline placeholder
|
|
26
|
+
- `base` - Outer sortable container
|
|
38
27
|
|
|
39
|
-
## Usage
|
|
28
|
+
## Basic Usage
|
|
40
29
|
|
|
41
30
|
```html
|
|
42
|
-
<!-- Vertical sortable list -->
|
|
43
31
|
<snice-sortable>
|
|
44
32
|
<div>Item 1</div>
|
|
45
33
|
<div>Item 2</div>
|
|
@@ -48,9 +36,13 @@ group: string = '' // group name for cross-container sorting
|
|
|
48
36
|
|
|
49
37
|
<!-- Horizontal with drag handle -->
|
|
50
38
|
<snice-sortable direction="horizontal" handle=".drag-handle">
|
|
51
|
-
<div><span class="drag-handle"
|
|
52
|
-
<div><span class="drag-handle"
|
|
39
|
+
<div><span class="drag-handle">☰</span> Item A</div>
|
|
40
|
+
<div><span class="drag-handle">☰</span> Item B</div>
|
|
53
41
|
</snice-sortable>
|
|
42
|
+
|
|
43
|
+
<!-- Cross-container sorting -->
|
|
44
|
+
<snice-sortable group="tasks">...</snice-sortable>
|
|
45
|
+
<snice-sortable group="tasks">...</snice-sortable>
|
|
54
46
|
```
|
|
55
47
|
|
|
56
48
|
```typescript
|
|
@@ -58,3 +50,9 @@ sortable.addEventListener('sort-change', (e) => {
|
|
|
58
50
|
console.log(`Moved from ${e.detail.oldIndex} to ${e.detail.newIndex}`);
|
|
59
51
|
});
|
|
60
52
|
```
|
|
53
|
+
|
|
54
|
+
## Accessibility
|
|
55
|
+
|
|
56
|
+
- Items auto `draggable="true"`
|
|
57
|
+
- Ghost placeholder with dashed outline
|
|
58
|
+
- `.sortable-dragging` / `.sortable-ghost` classes during drag
|
|
@@ -8,34 +8,33 @@ Compact inline chart for visualizing trends and patterns.
|
|
|
8
8
|
data: number[] = [];
|
|
9
9
|
type: 'line'|'bar'|'area' = 'line';
|
|
10
10
|
color: 'primary'|'success'|'warning'|'danger'|'muted' = 'primary';
|
|
11
|
-
customColor
|
|
11
|
+
customColor?: string; // attr: custom-color, overrides color
|
|
12
12
|
width: number = 100;
|
|
13
13
|
height: number = 30;
|
|
14
|
-
strokeWidth: number = 2;
|
|
15
|
-
showDots: boolean = false;
|
|
16
|
-
showArea: boolean = false;
|
|
14
|
+
strokeWidth: number = 2; // attr: stroke-width
|
|
15
|
+
showDots: boolean = false; // attr: show-dots
|
|
16
|
+
showArea: boolean = false; // attr: show-area
|
|
17
17
|
smooth: boolean = false;
|
|
18
|
-
min?: number;
|
|
19
|
-
max?: number;
|
|
18
|
+
min?: number; // auto-calculated if unset
|
|
19
|
+
max?: number; // auto-calculated if unset
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## CSS Parts
|
|
23
23
|
|
|
24
|
-
- `container` -
|
|
24
|
+
- `container` - Outer container
|
|
25
25
|
- `svg` - SVG element
|
|
26
|
-
- `line` - Line
|
|
27
|
-
- `area` - Area
|
|
28
|
-
- `
|
|
29
|
-
- `
|
|
26
|
+
- `line` - Line path
|
|
27
|
+
- `area` - Area fill path
|
|
28
|
+
- `dot` - Data point circle
|
|
29
|
+
- `bar` - Bar rectangle
|
|
30
30
|
|
|
31
|
-
## Usage
|
|
31
|
+
## Basic Usage
|
|
32
32
|
|
|
33
33
|
```html
|
|
34
|
-
<snice-sparkline></snice-sparkline>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
sparkline.data = [10, 20, 15, 25, 30];
|
|
34
|
+
<snice-sparkline id="chart"></snice-sparkline>
|
|
35
|
+
<script>
|
|
36
|
+
document.getElementById('chart').data = [10, 20, 15, 25, 30];
|
|
37
|
+
</script>
|
|
39
38
|
```
|
|
40
39
|
|
|
41
40
|
```html
|
|
@@ -45,3 +44,8 @@ sparkline.data = [10, 20, 15, 25, 30];
|
|
|
45
44
|
<snice-sparkline custom-color="#9333ea"></snice-sparkline>
|
|
46
45
|
<snice-sparkline min="0" max="100"></snice-sparkline>
|
|
47
46
|
```
|
|
47
|
+
|
|
48
|
+
## Accessibility
|
|
49
|
+
|
|
50
|
+
- Decorative; use `aria-busy="true"` on container while loading
|
|
51
|
+
- Add `aria-label` to describe the trend for screen readers
|
|
@@ -13,11 +13,11 @@ thickness: number = 4;
|
|
|
13
13
|
|
|
14
14
|
## CSS Parts
|
|
15
15
|
|
|
16
|
-
- `base` -
|
|
17
|
-
- `circle` -
|
|
18
|
-
- `label` -
|
|
16
|
+
- `base` - Outer spinner container
|
|
17
|
+
- `circle` - SVG spinner circle
|
|
18
|
+
- `label` - Label text element
|
|
19
19
|
|
|
20
|
-
## Usage
|
|
20
|
+
## Basic Usage
|
|
21
21
|
|
|
22
22
|
```html
|
|
23
23
|
<snice-spinner></snice-spinner>
|
|
@@ -25,8 +25,12 @@ thickness: number = 4;
|
|
|
25
25
|
<snice-spinner size="large"></snice-spinner>
|
|
26
26
|
<snice-spinner size="xl"></snice-spinner>
|
|
27
27
|
<snice-spinner color="success"></snice-spinner>
|
|
28
|
-
<snice-spinner color="warning"></snice-spinner>
|
|
29
28
|
<snice-spinner color="error"></snice-spinner>
|
|
30
29
|
<snice-spinner label="Loading..."></snice-spinner>
|
|
31
30
|
<snice-spinner thickness="6"></snice-spinner>
|
|
32
31
|
```
|
|
32
|
+
|
|
33
|
+
## Accessibility
|
|
34
|
+
|
|
35
|
+
- `role="status"` with `aria-label`
|
|
36
|
+
- `label` property provides visible descriptive text
|
|
@@ -13,10 +13,15 @@ disabled: boolean = false;
|
|
|
13
13
|
loading: boolean = false;
|
|
14
14
|
outline: boolean = false;
|
|
15
15
|
pill: boolean = false;
|
|
16
|
-
icon: string = ''; //
|
|
17
|
-
iconPlacement: 'start'|'end' = 'start';
|
|
16
|
+
icon: string = ''; // URL, image file, or emoji
|
|
17
|
+
iconPlacement: 'start'|'end' = 'start'; // attr: icon-placement
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
+
## Events
|
|
21
|
+
|
|
22
|
+
- `primary-click` → `{ button }`
|
|
23
|
+
- `action-click` → `{ value, action, button }`
|
|
24
|
+
|
|
20
25
|
## CSS Parts
|
|
21
26
|
|
|
22
27
|
- `base` - Root container
|
|
@@ -27,12 +32,7 @@ iconPlacement: 'start'|'end' = 'start';
|
|
|
27
32
|
- `menu-items` - Menu items wrapper
|
|
28
33
|
- `action` - Individual action button
|
|
29
34
|
|
|
30
|
-
##
|
|
31
|
-
|
|
32
|
-
- `primary-click` → `{ button }`
|
|
33
|
-
- `action-click` → `{ value, action, button }`
|
|
34
|
-
|
|
35
|
-
## Usage
|
|
35
|
+
## Basic Usage
|
|
36
36
|
|
|
37
37
|
```html
|
|
38
38
|
<snice-split-button label="Save" variant="primary"></snice-split-button>
|
|
@@ -49,10 +49,7 @@ btn.addEventListener('primary-click', () => console.log('Save clicked'));
|
|
|
49
49
|
btn.addEventListener('action-click', (e) => console.log(e.detail.value));
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
##
|
|
52
|
+
## Accessibility
|
|
53
53
|
|
|
54
|
-
-
|
|
55
|
-
- Chevron dropdown triggers menu of alternative actions
|
|
56
|
-
- Menu closes after action click or outside click
|
|
57
|
-
- Escape key closes menu
|
|
54
|
+
- Menu closes on action click, outside click, or Escape key
|
|
58
55
|
- Actions set via JS property (array), not child elements
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# snice-split-pane
|
|
2
2
|
|
|
3
|
-
Resizable split pane layout.
|
|
3
|
+
Resizable split pane layout with draggable divider.
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
@@ -13,30 +13,30 @@ snapSize: number = 0; // attr: snap-size, percentage, 0 = no snap
|
|
|
13
13
|
disabled: boolean = false;
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Methods
|
|
17
17
|
|
|
18
|
-
- `
|
|
19
|
-
- `
|
|
18
|
+
- `getPrimarySize()` → `number` - Get primary pane percentage
|
|
19
|
+
- `getSecondarySize()` → `number` - Get secondary pane percentage
|
|
20
|
+
- `setPrimarySize(size)` - Set primary pane percentage
|
|
21
|
+
- `reset()` - Reset to 50/50
|
|
20
22
|
|
|
21
23
|
## Events
|
|
22
24
|
|
|
23
25
|
- `pane-resize` → `{ primarySize, secondarySize, splitPane }`
|
|
24
26
|
|
|
25
|
-
##
|
|
27
|
+
## Slots
|
|
26
28
|
|
|
27
|
-
- `
|
|
28
|
-
- `
|
|
29
|
-
- `setPrimarySize(size)` - Set primary pane percentage
|
|
30
|
-
- `reset()` - Reset to 50/50
|
|
29
|
+
- `primary` - Primary pane content (left or top)
|
|
30
|
+
- `secondary` - Secondary pane content (right or bottom)
|
|
31
31
|
|
|
32
32
|
## CSS Parts
|
|
33
33
|
|
|
34
|
-
- `primary` -
|
|
35
|
-
- `divider` -
|
|
36
|
-
- `handle` -
|
|
37
|
-
- `secondary` -
|
|
34
|
+
- `primary` - Primary pane container
|
|
35
|
+
- `divider` - Draggable divider bar
|
|
36
|
+
- `handle` - Visual handle inside divider
|
|
37
|
+
- `secondary` - Secondary pane container
|
|
38
38
|
|
|
39
|
-
## Usage
|
|
39
|
+
## Basic Usage
|
|
40
40
|
|
|
41
41
|
```html
|
|
42
42
|
<snice-split-pane style="height: 400px;">
|
|
@@ -54,3 +54,8 @@ disabled: boolean = false;
|
|
|
54
54
|
<div slot="secondary">70%</div>
|
|
55
55
|
</snice-split-pane>
|
|
56
56
|
```
|
|
57
|
+
|
|
58
|
+
## Accessibility
|
|
59
|
+
|
|
60
|
+
- Divider keyboard-accessible with arrow keys
|
|
61
|
+
- Mouse, touch, and keyboard input supported
|