snice 4.27.0 → 4.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/react/action-bar.d.ts +30 -0
- package/adapters/react/action-bar.d.ts.map +1 -0
- package/adapters/react/action-bar.js +24 -0
- package/adapters/react/action-bar.js.map +1 -0
- package/adapters/react/action-bar.tsx +38 -0
- package/adapters/react/binpack.d.ts +35 -0
- package/adapters/react/binpack.d.ts.map +1 -0
- package/adapters/react/binpack.js +24 -0
- package/adapters/react/binpack.js.map +1 -0
- package/adapters/react/binpack.tsx +43 -0
- package/adapters/react/components.d.ts +4 -0
- package/adapters/react/components.d.ts.map +1 -1
- package/adapters/react/components.js +2 -0
- package/adapters/react/components.js.map +1 -1
- package/adapters/react/components.ts +4 -0
- package/adapters/react/useRequestHandler.d.ts +56 -0
- package/adapters/react/useRequestHandler.js +103 -0
- package/adapters/react/useRequestHandler.js.map +1 -0
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.min.js +1 -1
- package/dist/cdn/action-bar/README.md +27 -0
- package/dist/cdn/action-bar/snice-action-bar.js +249 -0
- package/dist/cdn/action-bar/snice-action-bar.js.map +1 -0
- package/dist/cdn/action-bar/snice-action-bar.min.js +12 -0
- package/dist/cdn/action-bar/snice-action-bar.min.js.map +1 -0
- package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
- package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
- package/dist/cdn/alert/snice-alert.js +1 -1
- package/dist/cdn/alert/snice-alert.min.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
- package/dist/cdn/availability/snice-availability.js +1 -1
- package/dist/cdn/availability/snice-availability.min.js +1 -1
- package/dist/cdn/avatar/snice-avatar.js +1 -1
- package/dist/cdn/avatar/snice-avatar.min.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
- package/dist/cdn/badge/snice-badge.js +2 -2
- package/dist/cdn/badge/snice-badge.js.map +1 -1
- package/dist/cdn/badge/snice-badge.min.js +2 -2
- package/dist/cdn/badge/snice-badge.min.js.map +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/banner/snice-banner.min.js +1 -1
- package/dist/cdn/binpack/README.md +27 -0
- package/dist/cdn/binpack/snice-binpack.js +1037 -0
- package/dist/cdn/binpack/snice-binpack.js.map +1 -0
- package/dist/cdn/binpack/snice-binpack.min.js +13 -0
- package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
- package/dist/cdn/book/snice-book.js +1 -1
- package/dist/cdn/book/snice-book.min.js +1 -1
- package/dist/cdn/booking/snice-booking.js +1 -1
- package/dist/cdn/booking/snice-booking.min.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
- package/dist/cdn/button/README.md +1 -1
- package/dist/cdn/button/snice-button.js +11 -10
- package/dist/cdn/button/snice-button.js.map +1 -1
- package/dist/cdn/button/snice-button.min.js +3 -3
- package/dist/cdn/button/snice-button.min.js.map +1 -1
- package/dist/cdn/calendar/snice-calendar.js +1 -1
- package/dist/cdn/calendar/snice-calendar.min.js +1 -1
- package/dist/cdn/camera/snice-camera.js +1 -1
- package/dist/cdn/camera/snice-camera.min.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
- package/dist/cdn/card/snice-card.js +1 -1
- package/dist/cdn/card/snice-card.min.js +1 -1
- package/dist/cdn/carousel/snice-carousel.js +1 -1
- package/dist/cdn/carousel/snice-carousel.min.js +1 -1
- package/dist/cdn/cart/snice-cart.js +1 -1
- package/dist/cdn/cart/snice-cart.min.js +1 -1
- package/dist/cdn/chart/snice-chart.js +1 -1
- package/dist/cdn/chart/snice-chart.min.js +1 -1
- package/dist/cdn/chat/snice-chat.js +1 -1
- package/dist/cdn/chat/snice-chat.min.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
- package/dist/cdn/chip/snice-chip.js +1 -1
- package/dist/cdn/chip/snice-chip.min.js +1 -1
- package/dist/cdn/code-block/snice-code-block.js +1 -1
- package/dist/cdn/code-block/snice-code-block.min.js +1 -1
- package/dist/cdn/color-display/snice-color-display.js +1 -1
- package/dist/cdn/color-display/snice-color-display.min.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
- package/dist/cdn/comments/snice-comments.js +1 -1
- package/dist/cdn/comments/snice-comments.min.js +1 -1
- package/dist/cdn/countdown/snice-countdown.js +1 -1
- package/dist/cdn/countdown/snice-countdown.min.js +1 -1
- package/dist/cdn/cropper/snice-cropper.js +1 -1
- package/dist/cdn/cropper/snice-cropper.min.js +1 -1
- package/dist/cdn/data-card/snice-data-card.js +1 -1
- package/dist/cdn/data-card/snice-data-card.min.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
- package/dist/cdn/diff/snice-diff.js +1 -1
- package/dist/cdn/diff/snice-diff.min.js +1 -1
- package/dist/cdn/divider/snice-divider.js +1 -1
- package/dist/cdn/divider/snice-divider.min.js +1 -1
- package/dist/cdn/doc/snice-doc.js +1 -1
- package/dist/cdn/doc/snice-doc.min.js +1 -1
- package/dist/cdn/draw/snice-draw.js +1 -1
- package/dist/cdn/draw/snice-draw.min.js +1 -1
- package/dist/cdn/drawer/snice-drawer.js +1 -1
- package/dist/cdn/drawer/snice-drawer.min.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
- package/dist/cdn/estimate/snice-estimate.js +1 -1
- package/dist/cdn/estimate/snice-estimate.min.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
- package/dist/cdn/flow/snice-flow.js +1 -1
- package/dist/cdn/flow/snice-flow.min.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
- package/dist/cdn/funnel/snice-funnel.js +1 -1
- package/dist/cdn/funnel/snice-funnel.min.js +1 -1
- package/dist/cdn/gantt/snice-gantt.js +1 -1
- package/dist/cdn/gantt/snice-gantt.min.js +1 -1
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/gauge/snice-gauge.min.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
- package/dist/cdn/image/snice-image.js +1 -1
- package/dist/cdn/image/snice-image.min.js +1 -1
- package/dist/cdn/input/snice-input.js +1 -1
- package/dist/cdn/input/snice-input.min.js +1 -1
- package/dist/cdn/invoice/snice-invoice.js +1 -1
- package/dist/cdn/invoice/snice-invoice.min.js +1 -1
- package/dist/cdn/kanban/snice-kanban.js +1 -1
- package/dist/cdn/kanban/snice-kanban.min.js +1 -1
- package/dist/cdn/key-value/snice-key-value.js +1 -1
- package/dist/cdn/key-value/snice-key-value.min.js +1 -1
- package/dist/cdn/kpi/snice-kpi.js +1 -1
- package/dist/cdn/kpi/snice-kpi.min.js +1 -1
- package/dist/cdn/layout/snice-layout.js +1 -1
- package/dist/cdn/layout/snice-layout.min.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
- package/dist/cdn/link/snice-link.js +1 -1
- package/dist/cdn/link/snice-link.min.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
- package/dist/cdn/list/snice-list.js +1 -1
- package/dist/cdn/list/snice-list.min.js +1 -1
- package/dist/cdn/location/snice-location.js +1 -1
- package/dist/cdn/location/snice-location.min.js +1 -1
- package/dist/cdn/login/README.md +2 -2
- package/dist/cdn/login/snice-login.js +11 -10
- package/dist/cdn/login/snice-login.js.map +1 -1
- package/dist/cdn/login/snice-login.min.js +5 -5
- package/dist/cdn/login/snice-login.min.js.map +1 -1
- package/dist/cdn/map/snice-map.js +1 -1
- package/dist/cdn/map/snice-map.min.js +1 -1
- package/dist/cdn/markdown/snice-markdown.js +1 -1
- package/dist/cdn/markdown/snice-markdown.min.js +1 -1
- package/dist/cdn/masonry/snice-masonry.js +1 -1
- package/dist/cdn/masonry/snice-masonry.min.js +1 -1
- package/dist/cdn/menu/snice-menu.js +1 -1
- package/dist/cdn/menu/snice-menu.min.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
- package/dist/cdn/modal/snice-modal.js +1 -1
- package/dist/cdn/modal/snice-modal.min.js +1 -1
- package/dist/cdn/music-player/snice-music-player.js +1 -1
- package/dist/cdn/music-player/snice-music-player.min.js +1 -1
- package/dist/cdn/nav/snice-nav.js +1 -1
- package/dist/cdn/nav/snice-nav.min.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
- package/dist/cdn/pagination/snice-pagination.js +1 -1
- package/dist/cdn/pagination/snice-pagination.min.js +1 -1
- package/dist/cdn/paint/snice-paint.js +1 -1
- package/dist/cdn/paint/snice-paint.min.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
- package/dist/cdn/product-card/snice-product-card.js +1 -1
- package/dist/cdn/product-card/snice-product-card.min.js +1 -1
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress/snice-progress.min.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
- package/dist/cdn/radio/snice-radio.js +1 -1
- package/dist/cdn/radio/snice-radio.min.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
- package/dist/cdn/rating/snice-rating.js +1 -1
- package/dist/cdn/rating/snice-rating.min.js +1 -1
- package/dist/cdn/receipt/snice-receipt.js +1 -1
- package/dist/cdn/receipt/snice-receipt.min.js +1 -1
- package/dist/cdn/recipe/snice-recipe.js +1 -1
- package/dist/cdn/recipe/snice-recipe.min.js +1 -1
- package/dist/cdn/runtime/README.md +2 -2
- package/dist/cdn/runtime/snice-runtime.esm.js +152 -62
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +152 -61
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +8 -8
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/snice-sankey.js +1 -1
- package/dist/cdn/sankey/snice-sankey.min.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
- package/dist/cdn/select/snice-select.js +1 -1
- package/dist/cdn/select/snice-select.min.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
- package/dist/cdn/slider/snice-slider.js +1 -1
- package/dist/cdn/slider/snice-slider.min.js +1 -1
- package/dist/cdn/sortable/snice-sortable.js +1 -1
- package/dist/cdn/sortable/snice-sortable.min.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
- package/dist/cdn/spinner/snice-spinner.js +1 -1
- package/dist/cdn/spinner/snice-spinner.min.js +1 -1
- package/dist/cdn/split-button/snice-split-button.js +1 -1
- package/dist/cdn/split-button/snice-split-button.min.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
- package/dist/cdn/step-input/snice-step-input.js +1 -1
- package/dist/cdn/step-input/snice-step-input.min.js +1 -1
- package/dist/cdn/stepper/snice-stepper.js +1 -1
- package/dist/cdn/stepper/snice-stepper.min.js +1 -1
- package/dist/cdn/switch/snice-switch.js +1 -1
- package/dist/cdn/switch/snice-switch.min.js +1 -1
- package/dist/cdn/table/README.md +1 -1
- package/dist/cdn/table/snice-table.js +11 -10
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +73 -73
- package/dist/cdn/table/snice-table.min.js.map +1 -1
- package/dist/cdn/tabs/snice-tabs.js +1 -1
- package/dist/cdn/tabs/snice-tabs.min.js +1 -1
- package/dist/cdn/tag/snice-tag.js +1 -1
- package/dist/cdn/tag/snice-tag.min.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
- package/dist/cdn/terminal/snice-terminal.js +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/textarea/snice-textarea.min.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
- package/dist/cdn/timeline/snice-timeline.js +1 -1
- package/dist/cdn/timeline/snice-timeline.min.js +1 -1
- package/dist/cdn/timer/snice-timer.js +1 -1
- package/dist/cdn/timer/snice-timer.min.js +1 -1
- package/dist/cdn/toast/snice-toast.js +1 -1
- package/dist/cdn/toast/snice-toast.min.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
- package/dist/cdn/tree/snice-tree.js +1 -1
- package/dist/cdn/tree/snice-tree.min.js +1 -1
- package/dist/cdn/treemap/snice-treemap.js +1 -1
- package/dist/cdn/treemap/snice-treemap.min.js +1 -1
- package/dist/cdn/user-card/snice-user-card.js +1 -1
- package/dist/cdn/user-card/snice-user-card.min.js +1 -1
- package/dist/cdn/video-player/snice-video-player.js +1 -1
- package/dist/cdn/video-player/snice-video-player.min.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
- package/dist/cdn/weather/snice-weather.js +1 -1
- package/dist/cdn/weather/snice-weather.min.js +1 -1
- package/dist/cdn/work-order/snice-work-order.js +1 -1
- package/dist/cdn/work-order/snice-work-order.min.js +1 -1
- package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
- package/dist/components/action-bar/snice-action-bar.js +182 -0
- package/dist/components/action-bar/snice-action-bar.js.map +1 -0
- package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
- package/dist/components/badge/snice-badge.js +1 -1
- package/dist/components/badge/snice-badge.js.map +1 -1
- package/dist/components/binpack/snice-binpack.d.ts +82 -0
- package/dist/components/binpack/snice-binpack.js +970 -0
- package/dist/components/binpack/snice-binpack.js.map +1 -0
- package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
- package/dist/components/button/snice-button.d.ts +2 -2
- package/dist/components/button/snice-button.js +11 -10
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/create-request-handler.d.ts +42 -0
- package/dist/index.cjs +149 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +149 -59
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +149 -58
- package/dist/index.iife.js.map +1 -1
- package/dist/parts.d.ts +9 -7
- package/dist/react/useRequestHandler.d.ts +56 -0
- package/dist/react/useRequestHandler.js +103 -0
- package/dist/react/useRequestHandler.js.map +1 -0
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/DEVELOPMENT.md +1 -1
- package/docs/ai/components/accordion.md +46 -80
- package/docs/ai/components/action-bar.md +75 -0
- package/docs/ai/components/activity-feed.md +7 -7
- package/docs/ai/components/alert.md +26 -44
- package/docs/ai/components/app-tiles.md +34 -39
- package/docs/ai/components/approval-flow.md +1 -1
- package/docs/ai/components/audio-recorder.md +35 -67
- package/docs/ai/components/availability.md +13 -34
- package/docs/ai/components/avatar-group.md +26 -13
- package/docs/ai/components/avatar.md +52 -36
- package/docs/ai/components/badge.md +21 -32
- package/docs/ai/components/banner.md +21 -43
- package/docs/ai/components/binpack.md +89 -0
- package/docs/ai/components/book.md +25 -23
- package/docs/ai/components/booking.md +31 -36
- package/docs/ai/components/breadcrumbs.md +36 -11
- package/docs/ai/components/button.md +33 -44
- package/docs/ai/components/calendar.md +37 -70
- package/docs/ai/components/camera-annotate.md +31 -64
- package/docs/ai/components/camera.md +38 -120
- package/docs/ai/components/candlestick.md +32 -52
- package/docs/ai/components/card.md +20 -30
- package/docs/ai/components/carousel.md +32 -32
- package/docs/ai/components/cart.md +24 -29
- package/docs/ai/components/chart.md +29 -114
- package/docs/ai/components/chat.md +38 -75
- package/docs/ai/components/checkbox.md +22 -41
- package/docs/ai/components/chip.md +18 -54
- package/docs/ai/components/code-block.md +57 -178
- package/docs/ai/components/color-display.md +12 -32
- package/docs/ai/components/color-picker.md +17 -39
- package/docs/ai/components/command-palette.md +49 -71
- package/docs/ai/components/comments.md +55 -36
- package/docs/ai/components/countdown.md +28 -30
- package/docs/ai/components/cropper.md +33 -33
- package/docs/ai/components/data-card.md +20 -14
- package/docs/ai/components/date-picker.md +40 -47
- package/docs/ai/components/date-range-picker.md +31 -15
- package/docs/ai/components/date-time-picker.md +23 -46
- package/docs/ai/components/diff.md +30 -31
- package/docs/ai/components/divider.md +17 -47
- package/docs/ai/components/doc.md +43 -68
- package/docs/ai/components/draw.md +35 -87
- package/docs/ai/components/drawer.md +48 -77
- package/docs/ai/components/empty-state.md +10 -44
- package/docs/ai/components/estimate.md +33 -58
- package/docs/ai/components/file-gallery.md +48 -100
- package/docs/ai/components/file-upload.md +17 -53
- package/docs/ai/components/flip-card.md +31 -23
- package/docs/ai/components/flow.md +37 -65
- package/docs/ai/components/form-builder.md +35 -75
- package/docs/ai/components/form-layout.md +10 -20
- package/docs/ai/components/funnel.md +33 -48
- package/docs/ai/components/gantt.md +27 -23
- package/docs/ai/components/gauge.md +16 -17
- package/docs/ai/components/heatmap.md +21 -21
- package/docs/ai/components/image.md +7 -13
- package/docs/ai/components/input.md +38 -70
- package/docs/ai/components/invoice.md +35 -36
- package/docs/ai/components/kanban.md +32 -61
- package/docs/ai/components/key-value.md +32 -16
- package/docs/ai/components/kpi.md +38 -73
- package/docs/ai/components/layout.md +29 -23
- package/docs/ai/components/leaderboard.md +28 -37
- package/docs/ai/components/link-preview.md +12 -18
- package/docs/ai/components/link.md +10 -7
- package/docs/ai/components/list.md +21 -5
- package/docs/ai/components/location.md +21 -25
- package/docs/ai/components/login.md +14 -9
- package/docs/ai/components/map.md +27 -33
- package/docs/ai/components/markdown.md +20 -24
- package/docs/ai/components/masonry.md +10 -14
- package/docs/ai/components/mentions.md +26 -12
- package/docs/ai/components/menu.md +54 -52
- package/docs/ai/components/message-strip.md +20 -20
- package/docs/ai/components/metric-table.md +14 -21
- package/docs/ai/components/modal.md +27 -18
- package/docs/ai/components/music-player.md +49 -41
- package/docs/ai/components/nav.md +34 -31
- package/docs/ai/components/network-graph.md +27 -42
- package/docs/ai/components/notification-center.md +31 -33
- package/docs/ai/components/order-tracker.md +36 -27
- package/docs/ai/components/org-chart.md +36 -31
- package/docs/ai/components/pagination.md +34 -26
- package/docs/ai/components/paint.md +53 -91
- package/docs/ai/components/pdf-viewer.md +35 -36
- package/docs/ai/components/permission-matrix.md +26 -31
- package/docs/ai/components/podcast-player.md +64 -70
- package/docs/ai/components/pricing-table.md +37 -48
- package/docs/ai/components/product-card.md +58 -41
- package/docs/ai/components/progress-ring.md +20 -24
- package/docs/ai/components/progress.md +28 -45
- package/docs/ai/components/qr-code.md +25 -27
- package/docs/ai/components/qr-reader.md +20 -23
- package/docs/ai/components/radio.md +17 -15
- package/docs/ai/components/range-slider.md +22 -11
- package/docs/ai/components/rating.md +29 -33
- package/docs/ai/components/receipt.md +50 -127
- package/docs/ai/components/recipe.md +44 -42
- package/docs/ai/components/sankey.md +21 -30
- package/docs/ai/components/scheduler.md +29 -41
- package/docs/ai/components/segmented-control.md +11 -15
- package/docs/ai/components/select.md +58 -102
- package/docs/ai/components/skeleton.md +16 -30
- package/docs/ai/components/slider.md +26 -20
- package/docs/ai/components/sortable.md +25 -27
- package/docs/ai/components/sparkline.md +21 -17
- package/docs/ai/components/spinner.md +9 -5
- package/docs/ai/components/split-button.md +10 -13
- package/docs/ai/components/split-pane.md +19 -14
- package/docs/ai/components/spotlight.md +31 -26
- package/docs/ai/components/spreadsheet.md +51 -97
- package/docs/ai/components/stat-group.md +9 -19
- package/docs/ai/components/step-input.md +17 -15
- package/docs/ai/components/stepper.md +14 -15
- package/docs/ai/components/switch.md +15 -9
- package/docs/ai/components/table.md +24 -84
- package/docs/ai/components/tabs.md +18 -10
- package/docs/ai/components/tag-input.md +18 -29
- package/docs/ai/components/tag.md +10 -22
- package/docs/ai/components/terminal.md +9 -9
- package/docs/ai/components/testimonial.md +9 -19
- package/docs/ai/components/textarea.md +15 -16
- package/docs/ai/components/theme.md +3 -3
- package/docs/ai/components/time-picker.md +30 -49
- package/docs/ai/components/time-range-picker.md +16 -15
- package/docs/ai/components/timeline.md +5 -4
- package/docs/ai/components/timer.md +8 -8
- package/docs/ai/components/toast.md +24 -18
- package/docs/ai/components/tooltip.md +11 -22
- package/docs/ai/components/tree.md +9 -9
- package/docs/ai/components/treemap.md +14 -13
- package/docs/ai/components/user-card.md +21 -27
- package/docs/ai/components/video-player.md +35 -52
- package/docs/ai/components/virtual-scroller.md +1 -1
- package/docs/ai/components/waterfall.md +17 -16
- package/docs/ai/components/weather.md +19 -34
- package/docs/ai/components/work-order.md +58 -134
- package/docs/ai/patterns.md +63 -0
- package/docs/components/accordion.md +72 -151
- package/docs/components/action-bar.md +185 -0
- package/docs/components/activity-feed.md +9 -14
- package/docs/components/alert.md +17 -109
- package/docs/components/app-tiles.md +58 -43
- package/docs/components/approval-flow.md +8 -14
- package/docs/components/audio-recorder.md +45 -51
- package/docs/components/availability.md +30 -45
- package/docs/components/avatar-group.md +34 -14
- package/docs/components/avatar.md +20 -55
- package/docs/components/badge.md +53 -470
- package/docs/components/banner.md +44 -30
- package/docs/components/binpack.md +208 -0
- package/docs/components/book.md +78 -57
- package/docs/components/booking.md +35 -87
- package/docs/components/breadcrumbs.md +74 -448
- package/docs/components/button.md +72 -603
- package/docs/components/calendar.md +77 -261
- package/docs/components/camera-annotate.md +44 -96
- package/docs/components/camera.md +94 -333
- package/docs/components/candlestick.md +79 -116
- package/docs/components/card.md +51 -689
- package/docs/components/carousel.md +29 -76
- package/docs/components/cart.md +44 -136
- package/docs/components/chart.md +95 -438
- package/docs/components/chat.md +175 -439
- package/docs/components/checkbox.md +52 -609
- package/docs/components/chip.md +45 -574
- package/docs/components/code-block.md +157 -421
- package/docs/components/color-display.md +45 -54
- package/docs/components/color-picker.md +103 -36
- package/docs/components/command-palette.md +98 -92
- package/docs/components/comments.md +16 -10
- package/docs/components/countdown.md +15 -20
- package/docs/components/cropper.md +14 -16
- package/docs/components/data-card.md +16 -15
- package/docs/components/date-picker.md +45 -25
- package/docs/components/date-range-picker.md +140 -87
- package/docs/components/date-time-picker.md +25 -28
- package/docs/components/diff.md +22 -17
- package/docs/components/divider.md +18 -20
- package/docs/components/doc.md +105 -197
- package/docs/components/draw.md +117 -223
- package/docs/components/drawer.md +113 -478
- package/docs/components/empty-state.md +13 -29
- package/docs/components/estimate.md +58 -118
- package/docs/components/file-gallery.md +123 -495
- package/docs/components/file-upload.md +36 -123
- package/docs/components/flip-card.md +30 -34
- package/docs/components/flow.md +74 -89
- package/docs/components/form-builder.md +59 -86
- package/docs/components/form-layout.md +21 -31
- package/docs/components/funnel.md +21 -22
- package/docs/components/gantt.md +5 -5
- package/docs/components/gauge.md +5 -23
- package/docs/components/heatmap.md +13 -55
- package/docs/components/image.md +28 -32
- package/docs/components/input.md +25 -14
- package/docs/components/invoice.md +34 -33
- package/docs/components/kanban.md +99 -394
- package/docs/components/key-value.md +22 -12
- package/docs/components/kpi.md +41 -112
- package/docs/components/layout.md +7 -13
- package/docs/components/leaderboard.md +52 -76
- package/docs/components/link-preview.md +20 -16
- package/docs/components/link.md +22 -19
- package/docs/components/list.md +44 -26
- package/docs/components/location.md +9 -13
- package/docs/components/login.md +42 -36
- package/docs/components/map.md +24 -46
- package/docs/components/markdown.md +14 -25
- package/docs/components/masonry.md +15 -13
- package/docs/components/mentions.md +36 -25
- package/docs/components/menu.md +39 -46
- package/docs/components/message-strip.md +15 -51
- package/docs/components/metric-table.md +50 -72
- package/docs/components/modal.md +32 -43
- package/docs/components/music-player.md +41 -49
- package/docs/components/nav.md +23 -13
- package/docs/components/network-graph.md +14 -13
- package/docs/components/notification-center.md +68 -172
- package/docs/components/order-tracker.md +72 -117
- package/docs/components/org-chart.md +58 -207
- package/docs/components/pagination.md +67 -89
- package/docs/components/paint.md +86 -172
- package/docs/components/pdf-viewer.md +46 -151
- package/docs/components/permission-matrix.md +61 -112
- package/docs/components/podcast-player.md +41 -119
- package/docs/components/pricing-table.md +104 -147
- package/docs/components/product-card.md +94 -197
- package/docs/components/progress-ring.md +29 -32
- package/docs/components/progress.md +30 -61
- package/docs/components/qr-code.md +53 -61
- package/docs/components/qr-reader.md +53 -42
- package/docs/components/radio.md +42 -40
- package/docs/components/range-slider.md +41 -30
- package/docs/components/rating.md +50 -84
- package/docs/components/receipt.md +91 -129
- package/docs/components/recipe.md +107 -216
- package/docs/components/sankey.md +47 -83
- package/docs/components/scheduler.md +81 -184
- package/docs/components/segmented-control.md +48 -40
- package/docs/components/select.md +107 -129
- package/docs/components/skeleton.md +33 -47
- package/docs/components/slider.md +49 -53
- package/docs/components/sortable.md +43 -186
- package/docs/components/sparkline.md +26 -25
- package/docs/components/spinner.md +32 -37
- package/docs/components/split-button.md +43 -23
- package/docs/components/split-pane.md +41 -58
- package/docs/components/spotlight.md +53 -145
- package/docs/components/spreadsheet.md +84 -307
- package/docs/components/stat-group.md +27 -61
- package/docs/components/step-input.md +44 -41
- package/docs/components/stepper.md +55 -89
- package/docs/components/switch.md +39 -39
- package/docs/components/table.md +27 -32
- package/docs/components/tabs.md +36 -27
- package/docs/components/tag-input.md +50 -176
- package/docs/components/tag.md +12 -50
- package/docs/components/terminal.md +32 -37
- package/docs/components/testimonial.md +24 -81
- package/docs/components/textarea.md +9 -14
- package/docs/components/theme.md +10 -23
- package/docs/components/time-picker.md +48 -72
- package/docs/components/time-range-picker.md +22 -41
- package/docs/components/timeline.md +7 -14
- package/docs/components/timer.md +16 -32
- package/docs/components/toast.md +19 -45
- package/docs/components/tooltip.md +13 -115
- package/docs/components/tree.md +2 -19
- package/docs/components/treemap.md +19 -43
- package/docs/components/user-card.md +13 -22
- package/docs/components/video-player.md +53 -227
- package/docs/components/virtual-scroller.md +11 -44
- package/docs/components/waterfall.md +58 -137
- package/docs/components/weather.md +94 -153
- package/docs/components/work-order.md +56 -143
- package/docs/plans/2026-03-09-action-bar-design.md +104 -0
- package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
- package/docs/plans/2026-03-10-react-integration-design.md +166 -0
- package/docs/request-response.md +77 -0
- package/package.json +20 -10
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/rating.md -->
|
|
2
2
|
|
|
3
|
-
# Rating
|
|
3
|
+
# Rating
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
An interactive star rating input with configurable precision, custom icons, and keyboard navigation.
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
|
+
|
|
8
9
|
- [Properties](#properties)
|
|
9
10
|
- [Events](#events)
|
|
10
11
|
- [CSS Custom Properties](#css-custom-properties)
|
|
11
12
|
- [CSS Parts](#css-parts)
|
|
12
13
|
- [Basic Usage](#basic-usage)
|
|
13
14
|
- [Examples](#examples)
|
|
15
|
+
- [Keyboard Navigation](#keyboard-navigation)
|
|
14
16
|
- [Accessibility](#accessibility)
|
|
15
17
|
|
|
16
18
|
## Properties
|
|
@@ -19,81 +21,50 @@ The rating component provides an interactive star rating input with configurable
|
|
|
19
21
|
|----------|------|---------|-------------|
|
|
20
22
|
| `value` | `number` | `0` | Current rating value |
|
|
21
23
|
| `max` | `number` | `5` | Maximum number of stars |
|
|
22
|
-
| `icon` | `string` | `'
|
|
24
|
+
| `icon` | `string` | `'★'` | Character used for each rating item |
|
|
23
25
|
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Display size |
|
|
24
26
|
| `readonly` | `boolean` | `false` | Disable user interaction |
|
|
25
|
-
| `precision` | `'full' \| 'half'` | `'full'` | Click precision (full
|
|
27
|
+
| `precision` | `'full' \| 'half'` | `'full'` | Click precision (full or half star increments) |
|
|
26
28
|
|
|
27
29
|
## Events
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
**Event Detail:**
|
|
33
|
-
```typescript
|
|
34
|
-
{
|
|
35
|
-
value: number; // The new rating value
|
|
36
|
-
}
|
|
37
|
-
```
|
|
31
|
+
| Event | Detail | Description |
|
|
32
|
+
|-------|--------|-------------|
|
|
33
|
+
| `rating-change` | `{ value: number }` | Fired when the rating value changes |
|
|
38
34
|
|
|
39
35
|
## CSS Custom Properties
|
|
40
36
|
|
|
41
37
|
| Property | Description | Default |
|
|
42
38
|
|----------|-------------|---------|
|
|
43
|
-
| `--rating-color` | Filled star color | `var(--snice-color-warning)` |
|
|
44
|
-
| `--rating-color-empty` | Empty star color | `var(--snice-color-border)` |
|
|
45
|
-
| `--rating-size` | Star size (set automatically by `size` property) | `1.5rem`
|
|
39
|
+
| `--rating-color` | Filled star color | `var(--snice-color-warning, rgb(234 179 8))` |
|
|
40
|
+
| `--rating-color-empty` | Empty star color | `var(--snice-color-border, rgb(226 226 226))` |
|
|
41
|
+
| `--rating-size` | Star size (set automatically by `size` property) | `1.5rem` |
|
|
46
42
|
|
|
47
43
|
## CSS Parts
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
|
52
|
-
|
|
53
|
-
| `base` | `<div>` | Outer rating container |
|
|
54
|
-
| `star` | `<span>` | Individual star/icon element |
|
|
55
|
-
|
|
56
|
-
```css
|
|
57
|
-
snice-rating::part(star) {
|
|
58
|
-
transition: transform 0.2s ease;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
snice-rating::part(star):hover {
|
|
62
|
-
transform: scale(1.2);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
snice-rating::part(base) {
|
|
66
|
-
gap: 0.25rem;
|
|
67
|
-
}
|
|
68
|
-
```
|
|
45
|
+
| Part | Description |
|
|
46
|
+
|------|-------------|
|
|
47
|
+
| `base` | The outer rating container |
|
|
48
|
+
| `star` | Individual star/icon element |
|
|
69
49
|
|
|
70
50
|
## Basic Usage
|
|
71
51
|
|
|
72
|
-
```html
|
|
73
|
-
<snice-rating value="3" max="5"></snice-rating>
|
|
74
|
-
```
|
|
75
|
-
|
|
76
52
|
```typescript
|
|
77
53
|
import 'snice/components/rating/snice-rating';
|
|
78
54
|
```
|
|
79
55
|
|
|
80
|
-
## Examples
|
|
81
|
-
|
|
82
|
-
### Basic Rating
|
|
83
|
-
|
|
84
56
|
```html
|
|
85
|
-
<snice-rating value="3"></snice-rating>
|
|
86
|
-
<snice-rating value="4" max="5"></snice-rating>
|
|
87
|
-
<snice-rating value="0"></snice-rating>
|
|
57
|
+
<snice-rating value="3" max="5"></snice-rating>
|
|
88
58
|
```
|
|
89
59
|
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
90
62
|
### Half-Star Precision
|
|
91
63
|
|
|
92
|
-
Use
|
|
64
|
+
Use `precision="half"` to allow half-star selections.
|
|
93
65
|
|
|
94
66
|
```html
|
|
95
67
|
<snice-rating value="3.5" precision="half"></snice-rating>
|
|
96
|
-
<snice-rating value="2.5" precision="half" max="5"></snice-rating>
|
|
97
68
|
```
|
|
98
69
|
|
|
99
70
|
### Sizes
|
|
@@ -111,44 +82,21 @@ Use the `size` attribute to adjust the display size.
|
|
|
111
82
|
Use the `icon` attribute to replace the default star with any character or emoji.
|
|
112
83
|
|
|
113
84
|
```html
|
|
114
|
-
|
|
115
|
-
<snice-rating value="
|
|
116
|
-
|
|
117
|
-
<!-- Thumbs up rating -->
|
|
118
|
-
<snice-rating value="7" icon="👍" max="10"></snice-rating>
|
|
119
|
-
|
|
120
|
-
<!-- Circle rating -->
|
|
121
|
-
<snice-rating value="2" icon="●" max="4"></snice-rating>
|
|
85
|
+
<snice-rating value="3" icon="❤" max="5"></snice-rating>
|
|
86
|
+
<snice-rating value="7" icon="👍" max="10"></snice-rating>
|
|
122
87
|
```
|
|
123
88
|
|
|
124
89
|
### Readonly Display
|
|
125
90
|
|
|
126
|
-
Use
|
|
91
|
+
Use `readonly` to display a rating without allowing interaction.
|
|
127
92
|
|
|
128
93
|
```html
|
|
129
94
|
<snice-rating value="4.5" precision="half" readonly></snice-rating>
|
|
130
|
-
<snice-rating value="3" readonly></snice-rating>
|
|
131
95
|
```
|
|
132
96
|
|
|
133
|
-
###
|
|
97
|
+
### Custom Colors
|
|
134
98
|
|
|
135
|
-
|
|
136
|
-
<snice-rating id="product-rating" value="0" max="5"></snice-rating>
|
|
137
|
-
<p id="rating-label">No rating selected</p>
|
|
138
|
-
|
|
139
|
-
<script type="module">
|
|
140
|
-
import 'snice/components/rating/snice-rating';
|
|
141
|
-
|
|
142
|
-
const rating = document.getElementById('product-rating');
|
|
143
|
-
const label = document.getElementById('rating-label');
|
|
144
|
-
|
|
145
|
-
rating.addEventListener('rating-change', (e) => {
|
|
146
|
-
label.textContent = `You rated: ${e.detail.value} out of 5`;
|
|
147
|
-
});
|
|
148
|
-
</script>
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### Custom Styled Rating
|
|
99
|
+
Override CSS custom properties to customize the colors.
|
|
152
100
|
|
|
153
101
|
```html
|
|
154
102
|
<style>
|
|
@@ -157,14 +105,32 @@ Use the `readonly` attribute to display a rating without allowing interaction.
|
|
|
157
105
|
--rating-color-empty: #f8bbd0;
|
|
158
106
|
}
|
|
159
107
|
</style>
|
|
108
|
+
<snice-rating class="custom-rating" value="3" icon="❤" max="5"></snice-rating>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Event Handling
|
|
112
|
+
|
|
113
|
+
Listen to `rating-change` to respond to user input.
|
|
160
114
|
|
|
161
|
-
|
|
115
|
+
```typescript
|
|
116
|
+
rating.addEventListener('rating-change', (e) => {
|
|
117
|
+
console.log('You rated:', e.detail.value);
|
|
118
|
+
});
|
|
162
119
|
```
|
|
163
120
|
|
|
121
|
+
## Keyboard Navigation
|
|
122
|
+
|
|
123
|
+
| Key | Action |
|
|
124
|
+
|-----|--------|
|
|
125
|
+
| `ArrowRight` / `ArrowUp` | Increase rating by one step |
|
|
126
|
+
| `ArrowLeft` / `ArrowDown` | Decrease rating by one step |
|
|
127
|
+
|
|
128
|
+
Step size is 1 for `'full'` precision and 0.5 for `'half'` precision.
|
|
129
|
+
|
|
164
130
|
## Accessibility
|
|
165
131
|
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
-
|
|
169
|
-
-
|
|
170
|
-
-
|
|
132
|
+
- Uses `role="radiogroup"` for the container with `role="radio"` per star
|
|
133
|
+
- Arrow keys navigate the rating value
|
|
134
|
+
- Focus ring shown on keyboard navigation
|
|
135
|
+
- When `readonly` is set, the component is not focusable
|
|
136
|
+
- Each star announces its position (e.g., "3 of 5")
|
|
@@ -1,50 +1,48 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/receipt.md -->
|
|
2
2
|
|
|
3
|
-
# Receipt
|
|
3
|
+
# Receipt
|
|
4
4
|
|
|
5
5
|
A transaction receipt component for displaying purchase details with merchant info, line items, totals, and payment method. Supports multiple visual variants including thermal printer style.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Table of Contents
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<script src="snice-receipt.min.js"></script>
|
|
18
|
-
```
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Methods](#methods)
|
|
11
|
+
- [Slots](#slots)
|
|
12
|
+
- [CSS Custom Properties](#css-custom-properties)
|
|
13
|
+
- [CSS Parts](#css-parts)
|
|
14
|
+
- [Basic Usage](#basic-usage)
|
|
15
|
+
- [Examples](#examples)
|
|
16
|
+
- [Accessibility](#accessibility)
|
|
19
17
|
|
|
20
18
|
## Properties
|
|
21
19
|
|
|
22
20
|
| Property | Type | Default | Description |
|
|
23
21
|
|----------|------|---------|-------------|
|
|
24
|
-
| `receiptNumber` | `string` | `''` | Receipt identifier |
|
|
22
|
+
| `receiptNumber` (attr: `receipt-number`) | `string` | `''` | Receipt identifier |
|
|
25
23
|
| `date` | `string` | `''` | Receipt date/time (displayed as-is) |
|
|
26
|
-
| `currency` | `string` | `'USD'` |
|
|
27
|
-
| `locale` | `string` | `''` | Locale for currency formatting |
|
|
28
|
-
| `merchant` | `ReceiptMerchant` | `{ name: '' }` | Merchant/store information |
|
|
29
|
-
| `items` | `ReceiptItem[]` | `[]` | Line items |
|
|
30
|
-
| `tax` | `number` | `0` |
|
|
31
|
-
| `taxes` | `ReceiptTaxLine[]` | `[]` | Multiple tax lines |
|
|
32
|
-
| `subtotal` | `number` | `0` | Pre-tax subtotal (auto-calculated if 0) |
|
|
24
|
+
| `currency` | `string` | `'USD'` | ISO 4217 currency code for formatting |
|
|
25
|
+
| `locale` | `string` | `''` | Locale for `Intl.NumberFormat` currency formatting |
|
|
26
|
+
| `merchant` | `ReceiptMerchant` | `{ name: '' }` | Merchant/store information (JS only) |
|
|
27
|
+
| `items` | `ReceiptItem[]` | `[]` | Line items (JS only) |
|
|
28
|
+
| `tax` | `number` | `0` | Single tax amount |
|
|
29
|
+
| `taxes` | `ReceiptTaxLine[]` | `[]` | Multiple tax lines (overrides `tax`, JS only) |
|
|
30
|
+
| `subtotal` | `number` | `0` | Pre-tax subtotal (auto-calculated from items if 0) |
|
|
33
31
|
| `total` | `number` | `0` | Grand total (auto-calculated if 0) |
|
|
34
32
|
| `tip` | `number` | `0` | Tip/gratuity amount |
|
|
35
33
|
| `discount` | `number` | `0` | Discount amount |
|
|
36
|
-
| `discountLabel` | `string` | `'Discount'` | Label for discount line |
|
|
37
|
-
| `paymentMethod` | `string` | `''` | Payment method
|
|
38
|
-
| `paymentDetails` | `string` | `''` | Additional payment info |
|
|
34
|
+
| `discountLabel` (attr: `discount-label`) | `string` | `'Discount'` | Label for discount line |
|
|
35
|
+
| `paymentMethod` (attr: `payment-method`) | `string` | `''` | Payment method text |
|
|
36
|
+
| `paymentDetails` (attr: `payment-details`) | `string` | `''` | Additional payment info |
|
|
39
37
|
| `variant` | `'standard' \| 'thermal' \| 'modern' \| 'minimal' \| 'detailed'` | `'standard'` | Visual style variant |
|
|
40
|
-
| `showQr` | `boolean` | `false` | Show QR code
|
|
41
|
-
| `qrData` | `string` | `''` | QR code data |
|
|
42
|
-
| `qrPosition` | `'top' \| 'bottom' \| 'footer'` | `'bottom'` | QR code placement |
|
|
43
|
-
| `thankYou` | `string` | `'Thank you for your purchase!'` | Footer message |
|
|
38
|
+
| `showQr` (attr: `show-qr`) | `boolean` | `false` | Show QR code slot |
|
|
39
|
+
| `qrData` (attr: `qr-data`) | `string` | `''` | QR code data |
|
|
40
|
+
| `qrPosition` (attr: `qr-position`) | `'top' \| 'bottom' \| 'footer'` | `'bottom'` | QR code placement |
|
|
41
|
+
| `thankYou` (attr: `thank-you`) | `string` | `'Thank you for your purchase!'` | Footer message |
|
|
44
42
|
| `cashier` | `string` | `''` | Cashier name |
|
|
45
|
-
| `terminalId` | `string` | `''` | Terminal/register identifier |
|
|
43
|
+
| `terminalId` (attr: `terminal-id`) | `string` | `''` | Terminal/register identifier |
|
|
46
44
|
|
|
47
|
-
###
|
|
45
|
+
### Type Interfaces
|
|
48
46
|
|
|
49
47
|
```typescript
|
|
50
48
|
interface ReceiptMerchant {
|
|
@@ -56,11 +54,7 @@ interface ReceiptMerchant {
|
|
|
56
54
|
website?: string;
|
|
57
55
|
taxId?: string;
|
|
58
56
|
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### ReceiptItem Interface
|
|
62
57
|
|
|
63
|
-
```typescript
|
|
64
58
|
interface ReceiptItem {
|
|
65
59
|
name: string;
|
|
66
60
|
quantity: number;
|
|
@@ -69,11 +63,7 @@ interface ReceiptItem {
|
|
|
69
63
|
discount?: number;
|
|
70
64
|
note?: string;
|
|
71
65
|
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### ReceiptTaxLine Interface
|
|
75
66
|
|
|
76
|
-
```typescript
|
|
77
67
|
interface ReceiptTaxLine {
|
|
78
68
|
label: string;
|
|
79
69
|
rate?: number;
|
|
@@ -83,59 +73,59 @@ interface ReceiptTaxLine {
|
|
|
83
73
|
|
|
84
74
|
## Methods
|
|
85
75
|
|
|
86
|
-
| Method |
|
|
87
|
-
|
|
88
|
-
| `print()` |
|
|
76
|
+
| Method | Arguments | Description |
|
|
77
|
+
|--------|-----------|-------------|
|
|
78
|
+
| `print()` | — | Open print dialog with receipt styles |
|
|
89
79
|
|
|
90
80
|
## Slots
|
|
91
81
|
|
|
92
|
-
|
|
|
93
|
-
|
|
94
|
-
|
|
|
95
|
-
| `
|
|
96
|
-
|
|
|
82
|
+
| Name | Description |
|
|
83
|
+
|------|-------------|
|
|
84
|
+
| (default) | Additional footer content below thank-you message |
|
|
85
|
+
| `qr` | QR code content (shown when `show-qr` is set) |
|
|
86
|
+
| `barcode` | Barcode content displayed near the footer |
|
|
97
87
|
|
|
98
88
|
## CSS Custom Properties
|
|
99
89
|
|
|
100
|
-
| Property |
|
|
101
|
-
|
|
102
|
-
| `--receipt-max-width` | `22rem` |
|
|
103
|
-
| `--receipt-padding` | `1.5rem` |
|
|
104
|
-
| `--receipt-bg` | `white` |
|
|
105
|
-
| `--receipt-text` | `rgb(23 23 23)` |
|
|
106
|
-
| `--receipt-text-secondary` | `rgb(82 82 82)` |
|
|
107
|
-
| `--receipt-border` | `rgb(226 226 226)` |
|
|
108
|
-
| `--receipt-border-radius` | `8px` |
|
|
109
|
-
| `--receipt-divider-style` |
|
|
110
|
-
| `--receipt-merchant-font-size` | `1.25rem` |
|
|
111
|
-
| `--receipt-total-font-size` | `1.125rem` |
|
|
112
|
-
| `--receipt-total-font-weight` | `700` |
|
|
113
|
-
| `--receipt-thermal-font` | `'Courier New', monospace` |
|
|
114
|
-
| `--receipt-thermal-width` |
|
|
115
|
-
| `--receipt-thermal-bg` | `rgb(255 255 248)` |
|
|
116
|
-
| `--receipt-modern-radius` |
|
|
117
|
-
| `--receipt-modern-shadow` | `0 4px 24px rgb(0 0 0 / 0.08)` |
|
|
118
|
-
| `--receipt-qr-size` |
|
|
90
|
+
| Property | Description | Default |
|
|
91
|
+
|----------|-------------|---------|
|
|
92
|
+
| `--receipt-max-width` | Maximum width | `22rem` |
|
|
93
|
+
| `--receipt-padding` | Internal padding | `1.5rem` |
|
|
94
|
+
| `--receipt-bg` | Background color | `white` |
|
|
95
|
+
| `--receipt-text` | Text color | `rgb(23 23 23)` |
|
|
96
|
+
| `--receipt-text-secondary` | Secondary text | `rgb(82 82 82)` |
|
|
97
|
+
| `--receipt-border` | Border color | `rgb(226 226 226)` |
|
|
98
|
+
| `--receipt-border-radius` | Border radius | `8px` |
|
|
99
|
+
| `--receipt-divider-style` | Divider line style | `dashed` |
|
|
100
|
+
| `--receipt-merchant-font-size` | Merchant name size | `1.25rem` |
|
|
101
|
+
| `--receipt-total-font-size` | Total amount size | `1.125rem` |
|
|
102
|
+
| `--receipt-total-font-weight` | Total weight | `700` |
|
|
103
|
+
| `--receipt-thermal-font` | Thermal variant font | `'Courier New', monospace` |
|
|
104
|
+
| `--receipt-thermal-width` | Thermal variant width | `18rem` |
|
|
105
|
+
| `--receipt-thermal-bg` | Thermal variant background | `rgb(255 255 248)` |
|
|
106
|
+
| `--receipt-modern-radius` | Modern variant radius | `12px` |
|
|
107
|
+
| `--receipt-modern-shadow` | Modern variant shadow | `0 4px 24px rgb(0 0 0 / 0.08)` |
|
|
108
|
+
| `--receipt-qr-size` | QR code size | `6rem` |
|
|
119
109
|
|
|
120
110
|
## CSS Parts
|
|
121
111
|
|
|
122
112
|
| Part | Description |
|
|
123
113
|
|------|-------------|
|
|
124
114
|
| `base` | Root container |
|
|
115
|
+
| `divider` | Section dividers |
|
|
125
116
|
| `header` | Merchant header section |
|
|
126
117
|
| `logo` | Merchant logo image |
|
|
127
118
|
| `merchant-name` | Merchant name |
|
|
128
119
|
| `merchant-address` | Merchant address |
|
|
129
120
|
| `merchant-contact` | Contact info line |
|
|
130
|
-
| `
|
|
131
|
-
| `
|
|
132
|
-
| `
|
|
133
|
-
| `
|
|
134
|
-
| `items-header` | Items section header |
|
|
121
|
+
| `meta` | Receipt metadata section |
|
|
122
|
+
| `receipt-number` | Receipt number value |
|
|
123
|
+
| `date` | Date value |
|
|
124
|
+
| `items-header` | Items column header row |
|
|
135
125
|
| `items` | Items container |
|
|
136
126
|
| `item` | Individual item row |
|
|
137
127
|
| `item-name` | Item name |
|
|
138
|
-
| `item-sku` | Item SKU |
|
|
128
|
+
| `item-sku` | Item SKU (detailed variant) |
|
|
139
129
|
| `item-qty` | Item quantity |
|
|
140
130
|
| `item-price` | Item price |
|
|
141
131
|
| `totals` | Totals section |
|
|
@@ -154,6 +144,10 @@ interface ReceiptTaxLine {
|
|
|
154
144
|
|
|
155
145
|
## Basic Usage
|
|
156
146
|
|
|
147
|
+
```typescript
|
|
148
|
+
import 'snice/components/receipt/snice-receipt';
|
|
149
|
+
```
|
|
150
|
+
|
|
157
151
|
```html
|
|
158
152
|
<snice-receipt
|
|
159
153
|
receipt-number="RCT-48291"
|
|
@@ -165,8 +159,9 @@ interface ReceiptTaxLine {
|
|
|
165
159
|
```
|
|
166
160
|
|
|
167
161
|
```typescript
|
|
168
|
-
|
|
169
|
-
|
|
162
|
+
const receipt = document.querySelector('snice-receipt');
|
|
163
|
+
receipt.merchant = { name: 'Coffee Shop', address: '789 Main St' };
|
|
164
|
+
receipt.items = [
|
|
170
165
|
{ name: 'Latte', quantity: 2, price: 5.50 },
|
|
171
166
|
{ name: 'Muffin', quantity: 1, price: 3.95 }
|
|
172
167
|
];
|
|
@@ -174,43 +169,23 @@ rcpt.items = [
|
|
|
174
169
|
|
|
175
170
|
## Examples
|
|
176
171
|
|
|
177
|
-
### Standard Receipt
|
|
178
|
-
|
|
179
|
-
```html
|
|
180
|
-
<snice-receipt
|
|
181
|
-
receipt-number="RCT-001"
|
|
182
|
-
date="2026-03-01 2:30 PM"
|
|
183
|
-
payment-method="Credit Card">
|
|
184
|
-
</snice-receipt>
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
```typescript
|
|
188
|
-
receipt.merchant = {
|
|
189
|
-
name: 'My Store',
|
|
190
|
-
address: '123 Main St',
|
|
191
|
-
phone: '(555) 123-4567'
|
|
192
|
-
};
|
|
193
|
-
receipt.items = [
|
|
194
|
-
{ name: 'Item 1', quantity: 1, price: 19.99 },
|
|
195
|
-
{ name: 'Item 2', quantity: 2, price: 9.99 }
|
|
196
|
-
];
|
|
197
|
-
```
|
|
198
|
-
|
|
199
172
|
### Thermal Printer Style
|
|
200
173
|
|
|
174
|
+
Use `variant="thermal"` for a monospace, narrow-width thermal printer aesthetic.
|
|
175
|
+
|
|
201
176
|
```html
|
|
202
177
|
<snice-receipt
|
|
203
178
|
variant="thermal"
|
|
204
179
|
receipt-number="00847"
|
|
205
180
|
date="03/01/2026 14:30"
|
|
206
|
-
currency="USD"
|
|
207
|
-
tax="2.10"
|
|
208
181
|
payment-method="Cash">
|
|
209
182
|
</snice-receipt>
|
|
210
183
|
```
|
|
211
184
|
|
|
212
185
|
### Modern Variant
|
|
213
186
|
|
|
187
|
+
Use `variant="modern"` for a card-based style with rounded sections and shadows.
|
|
188
|
+
|
|
214
189
|
```html
|
|
215
190
|
<snice-receipt
|
|
216
191
|
variant="modern"
|
|
@@ -220,18 +195,11 @@ receipt.items = [
|
|
|
220
195
|
</snice-receipt>
|
|
221
196
|
```
|
|
222
197
|
|
|
223
|
-
###
|
|
198
|
+
### Multiple Tax Lines
|
|
224
199
|
|
|
225
|
-
|
|
226
|
-
<snice-receipt
|
|
227
|
-
receipt-number="RCT-003"
|
|
228
|
-
currency="CAD">
|
|
229
|
-
</snice-receipt>
|
|
230
|
-
```
|
|
200
|
+
Set `taxes` for multi-line tax breakdowns (overrides single `tax` property).
|
|
231
201
|
|
|
232
202
|
```typescript
|
|
233
|
-
receipt.merchant = { name: 'Canadian Store' };
|
|
234
|
-
receipt.items = [{ name: 'Product', quantity: 1, price: 100 }];
|
|
235
203
|
receipt.taxes = [
|
|
236
204
|
{ label: 'GST', rate: 5, amount: 5.00 },
|
|
237
205
|
{ label: 'PST', rate: 7, amount: 7.00 }
|
|
@@ -240,54 +208,48 @@ receipt.taxes = [
|
|
|
240
208
|
|
|
241
209
|
### With Tip
|
|
242
210
|
|
|
243
|
-
|
|
244
|
-
<snice-receipt
|
|
245
|
-
receipt-number="T-128"
|
|
246
|
-
date="2026-03-01"
|
|
247
|
-
payment-method="Visa •••• 4242">
|
|
248
|
-
</snice-receipt>
|
|
249
|
-
```
|
|
211
|
+
Set `tip` for restaurant-style receipts with gratuity.
|
|
250
212
|
|
|
251
213
|
```typescript
|
|
252
|
-
receipt.merchant = { name: 'Bistro Restaurant' };
|
|
253
214
|
receipt.items = [
|
|
254
215
|
{ name: 'Steak Dinner', quantity: 2, price: 32.00 },
|
|
255
216
|
{ name: 'Wine', quantity: 1, price: 45.00 }
|
|
256
217
|
];
|
|
257
|
-
receipt.subtotal = 109.00;
|
|
258
218
|
receipt.tax = 10.90;
|
|
259
|
-
receipt.tip = 22.00;
|
|
260
|
-
receipt.total = 141.90;
|
|
219
|
+
receipt.tip = 22.00;
|
|
261
220
|
```
|
|
262
221
|
|
|
263
222
|
### With QR Code
|
|
264
223
|
|
|
224
|
+
Set `show-qr` and use the `qr` slot for QR code content.
|
|
225
|
+
|
|
265
226
|
```html
|
|
266
|
-
<snice-receipt
|
|
267
|
-
receipt-number="RCT-004"
|
|
268
|
-
show-qr
|
|
269
|
-
qr-position="top">
|
|
227
|
+
<snice-receipt show-qr qr-position="bottom">
|
|
270
228
|
<img slot="qr" src="/loyalty-qr.svg" alt="Loyalty QR" />
|
|
271
229
|
</snice-receipt>
|
|
272
230
|
```
|
|
273
231
|
|
|
274
232
|
### With Barcode
|
|
275
233
|
|
|
234
|
+
Use the `barcode` slot for barcode content.
|
|
235
|
+
|
|
276
236
|
```html
|
|
277
237
|
<snice-receipt receipt-number="RCT-005">
|
|
278
|
-
<svg slot="barcode" viewBox="0 0 100 30">
|
|
279
|
-
<!-- Barcode SVG -->
|
|
280
|
-
</svg>
|
|
238
|
+
<svg slot="barcode" viewBox="0 0 100 30"><!-- barcode SVG --></svg>
|
|
281
239
|
</snice-receipt>
|
|
282
240
|
```
|
|
283
241
|
|
|
284
|
-
### Print
|
|
242
|
+
### Print
|
|
285
243
|
|
|
286
|
-
|
|
287
|
-
<snice-receipt></snice-receipt>
|
|
288
|
-
<button>Print Receipt</button>
|
|
289
|
-
```
|
|
244
|
+
Use `print()` to open a print dialog with receipt styles.
|
|
290
245
|
|
|
291
246
|
```typescript
|
|
292
247
|
receipt.print();
|
|
293
248
|
```
|
|
249
|
+
|
|
250
|
+
## Accessibility
|
|
251
|
+
|
|
252
|
+
- Semantic HTML structure with logical content order
|
|
253
|
+
- Print styles included for all variants
|
|
254
|
+
- Currency formatted using `Intl.NumberFormat` for locale-appropriate display
|
|
255
|
+
- Subtotal auto-calculated from items if not set; total auto-calculated as subtotal + tax - discount + tip
|