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
|
@@ -4,60 +4,63 @@ Product display card with image gallery, pricing, ratings, variant selectors, an
|
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
|
-
```
|
|
8
|
-
name: string = '';
|
|
9
|
-
price: number = 0;
|
|
10
|
-
salePrice: number | null = null;
|
|
11
|
-
currency: string = '$';
|
|
12
|
-
images: string[] = [];
|
|
13
|
-
rating: number = 0;
|
|
14
|
-
reviewCount: number = 0;
|
|
15
|
-
variants: ProductVariant[] = [];
|
|
16
|
-
inStock: boolean = true;
|
|
17
|
-
variant: 'vertical'
|
|
18
|
-
badge: string = '';
|
|
19
|
-
badgeVariant: 'sale'
|
|
20
|
-
loading: boolean = false;
|
|
21
|
-
favorite: boolean = false;
|
|
22
|
-
stockCount: number = -1;
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### Types
|
|
26
|
-
|
|
27
|
-
```ts
|
|
28
|
-
interface ProductVariant {
|
|
29
|
-
type: string; // e.g. 'Size', 'Color'
|
|
30
|
-
options: string[]; // e.g. ['S','M','L'] or ['#000','#fff']
|
|
31
|
-
}
|
|
7
|
+
```typescript
|
|
8
|
+
name: string = '';
|
|
9
|
+
price: number = 0;
|
|
10
|
+
salePrice: number | null = null; // attr: sale-price
|
|
11
|
+
currency: string = '$';
|
|
12
|
+
images: string[] = []; // attr: none (JS only)
|
|
13
|
+
rating: number = 0; // 0-5, supports half stars
|
|
14
|
+
reviewCount: number = 0; // attr: review-count
|
|
15
|
+
variants: ProductVariant[] = []; // attr: none (JS only)
|
|
16
|
+
inStock: boolean = true; // attr: in-stock
|
|
17
|
+
variant: 'vertical'|'horizontal'|'compact'|'featured'|'minimal'|'grid' = 'vertical';
|
|
18
|
+
badge: string = ''; // Badge text (e.g. "SALE", "NEW")
|
|
19
|
+
badgeVariant: 'sale'|'new'|'featured' = 'sale'; // attr: badge-variant
|
|
20
|
+
loading: boolean = false; // Skeleton loading state
|
|
21
|
+
favorite: boolean = false; // Heart toggle state
|
|
22
|
+
stockCount: number = -1; // attr: stock-count, -1=hidden, <5=urgency
|
|
32
23
|
```
|
|
33
24
|
|
|
34
25
|
## Events
|
|
35
26
|
|
|
36
|
-
- `add-to-cart`
|
|
37
|
-
- `variant-select`
|
|
38
|
-
- `image-click`
|
|
39
|
-
- `favorite`
|
|
40
|
-
- `quick-view`
|
|
27
|
+
- `add-to-cart` → `{ name, price, salePrice, selectedVariants: Record<string, string> }`
|
|
28
|
+
- `variant-select` → `{ type: string, value: string }`
|
|
29
|
+
- `image-click` → `{ index: number, src: string }`
|
|
30
|
+
- `favorite` → `{ favorited: boolean }`
|
|
31
|
+
- `quick-view` → `void`
|
|
41
32
|
|
|
42
33
|
## CSS Parts
|
|
43
34
|
|
|
44
|
-
|
|
35
|
+
- `base` - Outer card container
|
|
36
|
+
- `gallery` - Image gallery area
|
|
37
|
+
- `body` - Card body content
|
|
38
|
+
- `title` - Product name heading
|
|
39
|
+
- `rating` - Star rating area
|
|
40
|
+
- `stars` - Star rating container
|
|
41
|
+
- `price` - Price display area
|
|
42
|
+
- `price-current` - Current price
|
|
43
|
+
- `price-original` - Original price (strikethrough on sale)
|
|
44
|
+
- `discount` - Discount percentage badge
|
|
45
|
+
- `stock` - Stock status indicator
|
|
46
|
+
- `variants` - Variant selectors area
|
|
47
|
+
- `variant-group` - Variant selector group
|
|
48
|
+
- `variant-option` - Individual variant option button
|
|
49
|
+
- `cta` - Add-to-cart button
|
|
50
|
+
- `badge` - Product badge
|
|
51
|
+
- `favorite-btn` - Favorite/heart button
|
|
52
|
+
- `image` - Gallery image element
|
|
45
53
|
|
|
46
|
-
## Usage
|
|
54
|
+
## Basic Usage
|
|
47
55
|
|
|
48
56
|
```html
|
|
49
|
-
<snice-product-card
|
|
50
|
-
name="Running Shoes"
|
|
51
|
-
price="129.99"
|
|
52
|
-
sale-price="89.99"
|
|
53
|
-
rating="4.5"
|
|
54
|
-
review-count="342"
|
|
55
|
-
in-stock>
|
|
56
|
-
</snice-product-card>
|
|
57
|
+
<snice-product-card name="Running Shoes" price="129.99" rating="4.5" review-count="342" in-stock></snice-product-card>
|
|
57
58
|
```
|
|
58
59
|
|
|
59
60
|
```typescript
|
|
60
|
-
|
|
61
|
+
import 'snice/components/product-card/snice-product-card';
|
|
62
|
+
|
|
63
|
+
card.images = ['shoe1.jpg', 'shoe2.jpg'];
|
|
61
64
|
card.variants = [
|
|
62
65
|
{ type: 'Size', options: ['S', 'M', 'L', 'XL'] },
|
|
63
66
|
{ type: 'Color', options: ['#1a1a2e', '#e94560', '#0f3460'] }
|
|
@@ -67,3 +70,17 @@ card.addEventListener('add-to-cart', (e) => {
|
|
|
67
70
|
console.log(e.detail.name, e.detail.selectedVariants);
|
|
68
71
|
});
|
|
69
72
|
```
|
|
73
|
+
|
|
74
|
+
## Accessibility
|
|
75
|
+
|
|
76
|
+
- Star rating has `aria-label` with numeric rating
|
|
77
|
+
- Variant selectors use `role="radiogroup"` / `role="radio"` with `aria-checked`
|
|
78
|
+
- Gallery navigation buttons have `aria-label`
|
|
79
|
+
- Favorite button has descriptive `aria-label`
|
|
80
|
+
- Out-of-stock disables CTA button
|
|
81
|
+
|
|
82
|
+
## Types
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
interface ProductVariant { type: string; options: string[]; }
|
|
86
|
+
```
|
|
@@ -5,18 +5,18 @@ Determinate circular progress indicator with animated SVG ring fill and optional
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
|
-
value: number = 0;
|
|
8
|
+
value: number = 0; // 0 to max
|
|
9
9
|
max: number = 100;
|
|
10
10
|
size: 'small'|'medium'|'large' = 'medium';
|
|
11
|
-
thickness: number = 4;
|
|
12
|
-
color: string = '';
|
|
13
|
-
showValue: boolean = false;
|
|
14
|
-
label: string = '';
|
|
11
|
+
thickness: number = 4; // Ring stroke width
|
|
12
|
+
color: string = ''; // Custom ring color (CSS value)
|
|
13
|
+
showValue: boolean = false; // attr: show-value, show percentage in center
|
|
14
|
+
label: string = ''; // Custom center text
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## Events
|
|
18
18
|
|
|
19
|
-
- `progress-complete` → `{ value, max, component }`
|
|
19
|
+
- `progress-complete` → `{ value, max, component }` - Value reached max
|
|
20
20
|
|
|
21
21
|
## CSS Parts
|
|
22
22
|
|
|
@@ -27,28 +27,24 @@ label: string = ''; // custom center text
|
|
|
27
27
|
- `value` - Percentage text
|
|
28
28
|
- `label` - Label text
|
|
29
29
|
|
|
30
|
-
## Usage
|
|
30
|
+
## Basic Usage
|
|
31
31
|
|
|
32
32
|
```html
|
|
33
|
-
|
|
34
|
-
<snice-progress-ring value="75"></snice-progress-ring>
|
|
35
|
-
|
|
36
|
-
<!-- With percentage display -->
|
|
37
|
-
<snice-progress-ring value="42" show-value></snice-progress-ring>
|
|
38
|
-
|
|
39
|
-
<!-- With label -->
|
|
33
|
+
<snice-progress-ring value="75" show-value></snice-progress-ring>
|
|
40
34
|
<snice-progress-ring value="60" label="CPU"></snice-progress-ring>
|
|
41
|
-
|
|
42
|
-
<!-- Custom color -->
|
|
43
35
|
<snice-progress-ring value="80" color="#10b981" show-value></snice-progress-ring>
|
|
36
|
+
<snice-progress-ring value="50" size="large" thickness="6" show-value></snice-progress-ring>
|
|
37
|
+
```
|
|
44
38
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<snice-progress-ring value="50" size="large" show-value></snice-progress-ring>
|
|
48
|
-
|
|
49
|
-
<!-- Custom thickness -->
|
|
50
|
-
<snice-progress-ring value="65" thickness="6" show-value></snice-progress-ring>
|
|
39
|
+
```typescript
|
|
40
|
+
import 'snice/components/progress-ring/snice-progress-ring';
|
|
51
41
|
|
|
52
|
-
|
|
53
|
-
|
|
42
|
+
ring.addEventListener('progress-complete', () => {
|
|
43
|
+
console.log('Complete!');
|
|
44
|
+
});
|
|
54
45
|
```
|
|
46
|
+
|
|
47
|
+
## Accessibility
|
|
48
|
+
|
|
49
|
+
- Uses `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, `aria-valuemax`
|
|
50
|
+
- Label or percentage used as `aria-label`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# snice-progress
|
|
2
2
|
|
|
3
|
-
Progress indicator with linear or circular display.
|
|
3
|
+
Progress indicator with linear or circular display, indeterminate mode, striped/animated styles, and labels.
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
@@ -8,75 +8,58 @@ Progress indicator with linear or circular display.
|
|
|
8
8
|
value: number = 0;
|
|
9
9
|
max: number = 100;
|
|
10
10
|
variant: 'linear'|'circular' = 'linear';
|
|
11
|
-
indeterminate: boolean = false;
|
|
12
11
|
size: 'small'|'medium'|'large'|'xl'|'xxl'|'xxxl' = 'medium';
|
|
13
12
|
color: 'primary'|'success'|'warning'|'error'|'info'|string = 'primary';
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
indeterminate: boolean = false;
|
|
14
|
+
showLabel: boolean = false; // attr: show-label
|
|
15
|
+
label: string = ''; // Custom label text
|
|
16
16
|
striped: boolean = false;
|
|
17
17
|
animated: boolean = false;
|
|
18
|
-
thickness: number = 4;
|
|
18
|
+
thickness: number = 4; // Circular stroke width
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Methods
|
|
22
22
|
|
|
23
|
-
- `setProgress(value, max
|
|
23
|
+
- `setProgress(value: number, max?: number)` - Set progress value
|
|
24
24
|
- `getPercentage()` - Get calculated percentage (0-100)
|
|
25
25
|
|
|
26
26
|
## Events
|
|
27
27
|
|
|
28
|
-
- `progress-change` → `{ value, max, percentage, indeterminate }`
|
|
28
|
+
- `progress-change` → `{ value, max, percentage, indeterminate }` - Value changed
|
|
29
|
+
|
|
30
|
+
## CSS Parts
|
|
31
|
+
|
|
32
|
+
Linear: `base`, `bar`, `label`
|
|
33
|
+
Circular: `base`, `circle`, `circle-bg`, `circle-bar`, `label`
|
|
34
|
+
|
|
35
|
+
## CSS Custom Properties
|
|
36
|
+
|
|
37
|
+
```css
|
|
38
|
+
--progress-height: 0.5rem;
|
|
39
|
+
--progress-radius: 4px;
|
|
40
|
+
--progress-bg: var(--snice-color-border, rgb(226 226 226));
|
|
41
|
+
--progress-color: var(--snice-color-primary, rgb(37 99 235));
|
|
42
|
+
--progress-animation-duration: 1.5s;
|
|
43
|
+
```
|
|
29
44
|
|
|
30
|
-
## Usage
|
|
45
|
+
## Basic Usage
|
|
31
46
|
|
|
32
47
|
```html
|
|
33
|
-
<!-- Linear -->
|
|
34
48
|
<snice-progress value="50"></snice-progress>
|
|
35
|
-
|
|
36
|
-
<!-- Circular -->
|
|
37
49
|
<snice-progress variant="circular" value="75" size="xl"></snice-progress>
|
|
38
|
-
|
|
39
|
-
<!-- Indeterminate -->
|
|
40
50
|
<snice-progress indeterminate></snice-progress>
|
|
41
|
-
|
|
42
|
-
<!-- With label -->
|
|
43
51
|
<snice-progress value="60" show-label></snice-progress>
|
|
44
|
-
<snice-progress value="60" label="Uploading..."></snice-progress>
|
|
45
|
-
|
|
46
|
-
<!-- Striped and animated -->
|
|
47
52
|
<snice-progress value="70" striped animated></snice-progress>
|
|
48
|
-
|
|
49
|
-
<!-- Colors -->
|
|
50
53
|
<snice-progress value="80" color="success"></snice-progress>
|
|
51
|
-
<snice-progress value="80" color="#3b82f6"></snice-progress>
|
|
52
|
-
|
|
53
|
-
<!-- Custom max -->
|
|
54
|
-
<snice-progress value="3" max="10"></snice-progress>
|
|
55
54
|
```
|
|
56
55
|
|
|
57
56
|
```typescript
|
|
57
|
+
import 'snice/components/progress/snice-progress';
|
|
58
58
|
progress.setProgress(75);
|
|
59
|
-
progress.setProgress(3, 10);
|
|
60
59
|
console.log(progress.getPercentage());
|
|
61
60
|
```
|
|
62
61
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
- `
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
**CSS Parts (circular):**
|
|
69
|
-
- `base` - Outer progress container
|
|
70
|
-
- `circle` - The SVG element
|
|
71
|
-
- `circle-bg` - Background circle stroke
|
|
72
|
-
- `circle-bar` - Foreground progress arc
|
|
73
|
-
- `label` - Percentage or custom label text
|
|
74
|
-
|
|
75
|
-
## Features
|
|
76
|
-
|
|
77
|
-
- Linear and circular variants
|
|
78
|
-
- Indeterminate mode for unknown progress
|
|
79
|
-
- Optional percentage or custom label
|
|
80
|
-
- Striped and animated styles
|
|
81
|
-
- 5 semantic + custom CSS colors
|
|
82
|
-
- 6 sizes (small through xxxl)
|
|
62
|
+
## Accessibility
|
|
63
|
+
|
|
64
|
+
- Uses `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, `aria-valuemax`
|
|
65
|
+
- Label text used as `aria-label`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# snice-qr-code
|
|
2
2
|
|
|
3
|
-
QR code generator with customizable styling and export.
|
|
3
|
+
QR code generator with customizable styling, center overlays, and export.
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ QR code generator with customizable styling and export.
|
|
|
8
8
|
value: string = '';
|
|
9
9
|
size: number = 200;
|
|
10
10
|
errorCorrectionLevel: 'L'|'M'|'Q'|'H' = 'M'; // attr: error-correction-level
|
|
11
|
-
renderMode: 'canvas'|'svg' = 'canvas';
|
|
11
|
+
renderMode: 'canvas'|'svg' = 'canvas'; // attr: render-mode
|
|
12
12
|
dotStyle: 'square'|'rounded'|'dots' = 'square'; // attr: dot-style
|
|
13
13
|
margin: number = 4;
|
|
14
14
|
fgColor: string = '#000000'; // attr: fg-color
|
|
@@ -24,50 +24,48 @@ textOutlineColor: string = '#ffffff'; // attr: text-outline-color
|
|
|
24
24
|
|
|
25
25
|
## Methods
|
|
26
26
|
|
|
27
|
-
- `toSVGString()` -
|
|
27
|
+
- `toSVGString()` - SVG markup string (sync, only when renderMode='svg')
|
|
28
28
|
- `toDataURL(type?, quality?)` - Export as data URL (async)
|
|
29
29
|
- `toBlob(type?, quality?)` - Export as Blob (async)
|
|
30
30
|
- `download(filename?)` - Download as image file
|
|
31
31
|
|
|
32
32
|
## CSS Custom Properties
|
|
33
33
|
|
|
34
|
-
- `--qr-bg` - Container background
|
|
35
|
-
- `--qr-border-radius` - Container border radius
|
|
36
|
-
- `--qr-padding` - Container padding
|
|
34
|
+
- `--qr-bg` - Container background (`hsl(0 0% 100%)`)
|
|
35
|
+
- `--qr-border-radius` - Container border radius (`0`)
|
|
36
|
+
- `--qr-padding` - Container padding (`0`)
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## CSS Parts
|
|
39
|
+
|
|
40
|
+
- `base` - QR code container div
|
|
41
|
+
|
|
42
|
+
## Basic Usage
|
|
39
43
|
|
|
40
44
|
```html
|
|
41
|
-
<snice-qr-code value="https://example.com"
|
|
45
|
+
<snice-qr-code value="https://example.com"></snice-qr-code>
|
|
42
46
|
|
|
43
|
-
<!-- Custom colors -->
|
|
44
|
-
<snice-qr-code value="https://example.com" fg-color="#2196f3"
|
|
47
|
+
<!-- Custom colors + dot style -->
|
|
48
|
+
<snice-qr-code value="https://example.com" fg-color="#2196f3" dot-style="rounded"></snice-qr-code>
|
|
45
49
|
|
|
46
|
-
<!--
|
|
50
|
+
<!-- Center image overlay (use high error correction) -->
|
|
47
51
|
<snice-qr-code value="https://example.com" include-image image-url="/logo.png" error-correction-level="H"></snice-qr-code>
|
|
48
52
|
|
|
49
|
-
<!--
|
|
50
|
-
<snice-qr-code value="https://example.com"
|
|
53
|
+
<!-- Center text overlay -->
|
|
54
|
+
<snice-qr-code value="https://example.com" center-text="SCAN" error-correction-level="H"></snice-qr-code>
|
|
55
|
+
|
|
56
|
+
<!-- SVG render mode -->
|
|
57
|
+
<snice-qr-code value="https://example.com" render-mode="svg"></snice-qr-code>
|
|
51
58
|
```
|
|
52
59
|
|
|
53
60
|
```typescript
|
|
54
|
-
qr
|
|
61
|
+
const qr = document.querySelector('snice-qr-code');
|
|
55
62
|
const url = await qr.toDataURL('image/png');
|
|
56
63
|
const blob = await qr.toBlob('image/png');
|
|
57
64
|
qr.download('qr-code.png');
|
|
65
|
+
const svg = qr.toSVGString(); // only when renderMode='svg'
|
|
58
66
|
```
|
|
59
67
|
|
|
60
|
-
|
|
61
|
-
- `base` - QR code container div
|
|
62
|
-
|
|
63
|
-
## Common Data Formats
|
|
68
|
+
## Accessibility
|
|
64
69
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
// Email: 'mailto:name@example.com'
|
|
68
|
-
// Phone: 'tel:+1234567890'
|
|
69
|
-
// SMS: 'sms:+1234567890?body=Hello'
|
|
70
|
-
// WiFi: 'WIFI:T:WPA;S:NetworkName;P:password;;'
|
|
71
|
-
// Geo: 'geo:37.7749,-122.4194'
|
|
72
|
-
// vCard: 'BEGIN:VCARD\nVERSION:3.0\nFN:Name\nEND:VCARD'
|
|
73
|
-
```
|
|
70
|
+
- Purely visual output, no interactive elements
|
|
71
|
+
- Provide adjacent text or wrapper `aria-label` for screen readers
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# snice-qr-reader
|
|
2
2
|
|
|
3
|
-
QR code scanner using device camera
|
|
3
|
+
QR code scanner using device camera with real-time detection.
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
@@ -15,10 +15,10 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
|
|
|
15
15
|
|
|
16
16
|
## Methods
|
|
17
17
|
|
|
18
|
-
- `start()` - Start camera and scanning
|
|
18
|
+
- `start()` - Start camera and scanning (async)
|
|
19
19
|
- `stop()` - Stop scanning and release camera
|
|
20
|
-
- `snap()` - Take snapshot
|
|
21
|
-
- `scanImage(file: File)` - Scan QR code from image file
|
|
20
|
+
- `snap()` - Take snapshot, returns QR data string or null (async)
|
|
21
|
+
- `scanImage(file: File)` - Scan QR code from image file (async)
|
|
22
22
|
- `switchCamera()` - Toggle front/back camera
|
|
23
23
|
|
|
24
24
|
## Events
|
|
@@ -28,7 +28,15 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
|
|
|
28
28
|
- `camera-ready` → `{ reader }`
|
|
29
29
|
- `camera-error` → `{ error: any, reader }`
|
|
30
30
|
|
|
31
|
-
##
|
|
31
|
+
## CSS Custom Properties
|
|
32
|
+
|
|
33
|
+
- `--qr-reader-bg` - Container background (`rgb(0 0 0)`)
|
|
34
|
+
- `--qr-reader-overlay` - Overlay/gradient color (`rgb(0 0 0 / 0.7)`)
|
|
35
|
+
- `--qr-reader-controls-color` - Button icon/text color (`rgb(255 255 255)`)
|
|
36
|
+
- `--qr-reader-btn-bg` - Button background (`rgb(0 0 0 / 0.4)`)
|
|
37
|
+
- `--qr-reader-btn-hover-bg` - Button hover background (`rgb(0 0 0 / 0.6)`)
|
|
38
|
+
|
|
39
|
+
## Basic Usage
|
|
32
40
|
|
|
33
41
|
```html
|
|
34
42
|
<!-- Auto-start continuous scanning -->
|
|
@@ -46,28 +54,17 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
|
|
|
46
54
|
|
|
47
55
|
```typescript
|
|
48
56
|
reader.addEventListener('qr-scan', (e) => console.log(e.detail.data));
|
|
49
|
-
reader.start();
|
|
57
|
+
await reader.start();
|
|
50
58
|
|
|
51
59
|
// Manual snap
|
|
52
60
|
const result = await reader.snap();
|
|
61
|
+
|
|
62
|
+
// Scan from file
|
|
63
|
+
const data = await reader.scanImage(file);
|
|
53
64
|
```
|
|
54
65
|
|
|
55
|
-
##
|
|
66
|
+
## Accessibility
|
|
56
67
|
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
- `--qr-reader-controls-color` - Button icon/text color (default: `rgb(255 255 255)`)
|
|
60
|
-
- `--qr-reader-btn-bg` - Button background (default: `rgb(0 0 0 / 0.4)`)
|
|
61
|
-
- `--qr-reader-btn-hover-bg` - Button hover background (default: `rgb(0 0 0 / 0.6)`)
|
|
62
|
-
|
|
63
|
-
## Features
|
|
64
|
-
|
|
65
|
-
- ZXing WASM decoder (Apache 2.0 + MIT)
|
|
66
|
-
- Web Worker for non-blocking detection
|
|
67
|
-
- Front/back camera switching
|
|
68
|
-
- Configurable scan speed (1-10)
|
|
69
|
-
- Pick-first mode (max speed, auto-stop)
|
|
70
|
-
- Manual snapshot mode
|
|
71
|
-
- Tap-to-start interaction
|
|
68
|
+
- Requires HTTPS for mobile camera access
|
|
69
|
+
- Built-in control buttons with icon labels
|
|
72
70
|
- Camera released on stop/dispose
|
|
73
|
-
- HTTPS required for mobile
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# snice-radio
|
|
2
2
|
|
|
3
|
-
Form radio button input with automatic group management.
|
|
3
|
+
Form radio button input with automatic group management by name.
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
@@ -15,19 +15,19 @@ size: 'small'|'medium'|'large' = 'medium';
|
|
|
15
15
|
name: string = ''; // Group name for mutual exclusion
|
|
16
16
|
value: string = '';
|
|
17
17
|
label: string = '';
|
|
18
|
-
description: string = ''; // Subtitle text (block variant)
|
|
18
|
+
description: string = ''; // Subtitle text (block variant only)
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Methods
|
|
22
22
|
|
|
23
|
-
- `focus()` - Focus radio
|
|
23
|
+
- `focus()` - Focus radio input
|
|
24
24
|
- `blur()` - Remove focus
|
|
25
25
|
- `click()` - Programmatic click
|
|
26
26
|
- `select()` - Select and fire change event
|
|
27
27
|
|
|
28
28
|
## Events
|
|
29
29
|
|
|
30
|
-
- `radio-change` → `{ checked, value, radio }`
|
|
30
|
+
- `radio-change` → `{ checked: boolean, value: string, radio: SniceRadioElement }`
|
|
31
31
|
|
|
32
32
|
## Slots
|
|
33
33
|
|
|
@@ -35,15 +35,15 @@ description: string = ''; // Subtitle text (block variant)
|
|
|
35
35
|
|
|
36
36
|
## CSS Parts
|
|
37
37
|
|
|
38
|
-
- `input` - Hidden radio input
|
|
38
|
+
- `input` - Hidden native radio input
|
|
39
39
|
- `radio` - Radio circle container
|
|
40
40
|
- `dot` - Inner dot indicator
|
|
41
41
|
- `spinner` - Loading spinner
|
|
42
|
-
- `label` - Label text
|
|
43
42
|
- `content` - Content wrapper (block variant)
|
|
43
|
+
- `label` - Label text
|
|
44
44
|
- `description` - Description text (block variant)
|
|
45
45
|
|
|
46
|
-
## Usage
|
|
46
|
+
## Basic Usage
|
|
47
47
|
|
|
48
48
|
```html
|
|
49
49
|
<!-- Radio group -->
|
|
@@ -59,7 +59,6 @@ description: string = ''; // Subtitle text (block variant)
|
|
|
59
59
|
<snice-radio label="Disabled" disabled></snice-radio>
|
|
60
60
|
<snice-radio label="Loading" loading></snice-radio>
|
|
61
61
|
<snice-radio label="Invalid" invalid></snice-radio>
|
|
62
|
-
<snice-radio label="Required" required></snice-radio>
|
|
63
62
|
|
|
64
63
|
<!-- Block variant (card-style) -->
|
|
65
64
|
<snice-radio variant="block" name="plan" value="free" label="Free" description="For individuals" checked>
|
|
@@ -76,11 +75,14 @@ radio.addEventListener('radio-change', (e) => {
|
|
|
76
75
|
});
|
|
77
76
|
```
|
|
78
77
|
|
|
79
|
-
##
|
|
78
|
+
## Keyboard Navigation
|
|
79
|
+
|
|
80
|
+
- Arrow keys navigate within group (wraps around)
|
|
81
|
+
- Focused radio is auto-selected
|
|
82
|
+
|
|
83
|
+
## Accessibility
|
|
80
84
|
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
- Keyboard accessible (arrow keys navigate group, wraps around)
|
|
86
|
-
- Contains native `<input type="radio">` for form participation
|
|
85
|
+
- Native `<input type="radio">` for form participation
|
|
86
|
+
- `aria-invalid` when invalid
|
|
87
|
+
- Focus ring on keyboard navigation
|
|
88
|
+
- Required indicator on label
|
|
@@ -18,35 +18,46 @@ orientation: 'horizontal'|'vertical' = 'horizontal';
|
|
|
18
18
|
|
|
19
19
|
## Events
|
|
20
20
|
|
|
21
|
-
- `range-change`
|
|
21
|
+
- `range-change` → `{ valueLow: number, valueHigh: number, component: SniceRangeSliderElement }`
|
|
22
22
|
|
|
23
23
|
## CSS Parts
|
|
24
24
|
|
|
25
25
|
- `track` - The slider track
|
|
26
|
-
- `range` -
|
|
26
|
+
- `range` - Highlighted range between thumbs
|
|
27
27
|
- `thumb-low` - Low value thumb
|
|
28
28
|
- `thumb-high` - High value thumb
|
|
29
29
|
- `label-min` - Min label text
|
|
30
30
|
- `label-max` - Max label text
|
|
31
31
|
|
|
32
|
-
## Usage
|
|
32
|
+
## Basic Usage
|
|
33
33
|
|
|
34
34
|
```html
|
|
35
|
-
<!-- Basic -->
|
|
36
35
|
<snice-range-slider value-low="20" value-high="80"></snice-range-slider>
|
|
37
36
|
|
|
38
|
-
<!-- With tooltips -->
|
|
39
|
-
<snice-range-slider show-tooltip value-low="
|
|
40
|
-
|
|
41
|
-
<!-- With labels -->
|
|
42
|
-
<snice-range-slider show-labels min="0" max="1000"></snice-range-slider>
|
|
37
|
+
<!-- With tooltips and labels -->
|
|
38
|
+
<snice-range-slider show-tooltip show-labels min="0" max="1000" value-low="200" value-high="800"></snice-range-slider>
|
|
43
39
|
|
|
44
40
|
<!-- Custom step -->
|
|
45
41
|
<snice-range-slider min="0" max="100" step="5"></snice-range-slider>
|
|
46
42
|
|
|
47
43
|
<!-- Vertical -->
|
|
48
44
|
<snice-range-slider orientation="vertical" value-low="30" value-high="70"></snice-range-slider>
|
|
45
|
+
```
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
```typescript
|
|
48
|
+
slider.addEventListener('range-change', (e) => {
|
|
49
|
+
console.log(e.detail.valueLow, e.detail.valueHigh);
|
|
50
|
+
});
|
|
52
51
|
```
|
|
52
|
+
|
|
53
|
+
## Keyboard Navigation
|
|
54
|
+
|
|
55
|
+
- Arrow keys adjust focused thumb by step
|
|
56
|
+
- Home/End move to min/max bounds
|
|
57
|
+
- Each thumb independently focusable
|
|
58
|
+
|
|
59
|
+
## Accessibility
|
|
60
|
+
|
|
61
|
+
- `role="slider"` on each thumb with aria-valuenow/min/max
|
|
62
|
+
- Focus ring on keyboard navigation
|
|
63
|
+
- Track click moves nearest thumb
|