snice 4.27.0 → 4.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/react/action-bar.d.ts +30 -0
- package/adapters/react/action-bar.d.ts.map +1 -0
- package/adapters/react/action-bar.js +24 -0
- package/adapters/react/action-bar.js.map +1 -0
- package/adapters/react/action-bar.tsx +38 -0
- package/adapters/react/binpack.d.ts +35 -0
- package/adapters/react/binpack.d.ts.map +1 -0
- package/adapters/react/binpack.js +24 -0
- package/adapters/react/binpack.js.map +1 -0
- package/adapters/react/binpack.tsx +43 -0
- package/adapters/react/components.d.ts +4 -0
- package/adapters/react/components.d.ts.map +1 -1
- package/adapters/react/components.js +2 -0
- package/adapters/react/components.js.map +1 -1
- package/adapters/react/components.ts +4 -0
- package/adapters/react/useRequestHandler.d.ts +56 -0
- package/adapters/react/useRequestHandler.js +103 -0
- package/adapters/react/useRequestHandler.js.map +1 -0
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.min.js +1 -1
- package/dist/cdn/action-bar/README.md +27 -0
- package/dist/cdn/action-bar/snice-action-bar.js +249 -0
- package/dist/cdn/action-bar/snice-action-bar.js.map +1 -0
- package/dist/cdn/action-bar/snice-action-bar.min.js +12 -0
- package/dist/cdn/action-bar/snice-action-bar.min.js.map +1 -0
- package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
- package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
- package/dist/cdn/alert/snice-alert.js +1 -1
- package/dist/cdn/alert/snice-alert.min.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
- package/dist/cdn/availability/snice-availability.js +1 -1
- package/dist/cdn/availability/snice-availability.min.js +1 -1
- package/dist/cdn/avatar/snice-avatar.js +1 -1
- package/dist/cdn/avatar/snice-avatar.min.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
- package/dist/cdn/badge/snice-badge.js +2 -2
- package/dist/cdn/badge/snice-badge.js.map +1 -1
- package/dist/cdn/badge/snice-badge.min.js +2 -2
- package/dist/cdn/badge/snice-badge.min.js.map +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/banner/snice-banner.min.js +1 -1
- package/dist/cdn/binpack/README.md +27 -0
- package/dist/cdn/binpack/snice-binpack.js +1037 -0
- package/dist/cdn/binpack/snice-binpack.js.map +1 -0
- package/dist/cdn/binpack/snice-binpack.min.js +13 -0
- package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
- package/dist/cdn/book/snice-book.js +1 -1
- package/dist/cdn/book/snice-book.min.js +1 -1
- package/dist/cdn/booking/snice-booking.js +1 -1
- package/dist/cdn/booking/snice-booking.min.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
- package/dist/cdn/button/README.md +1 -1
- package/dist/cdn/button/snice-button.js +11 -10
- package/dist/cdn/button/snice-button.js.map +1 -1
- package/dist/cdn/button/snice-button.min.js +3 -3
- package/dist/cdn/button/snice-button.min.js.map +1 -1
- package/dist/cdn/calendar/snice-calendar.js +1 -1
- package/dist/cdn/calendar/snice-calendar.min.js +1 -1
- package/dist/cdn/camera/snice-camera.js +1 -1
- package/dist/cdn/camera/snice-camera.min.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
- package/dist/cdn/card/snice-card.js +1 -1
- package/dist/cdn/card/snice-card.min.js +1 -1
- package/dist/cdn/carousel/snice-carousel.js +1 -1
- package/dist/cdn/carousel/snice-carousel.min.js +1 -1
- package/dist/cdn/cart/snice-cart.js +1 -1
- package/dist/cdn/cart/snice-cart.min.js +1 -1
- package/dist/cdn/chart/snice-chart.js +1 -1
- package/dist/cdn/chart/snice-chart.min.js +1 -1
- package/dist/cdn/chat/snice-chat.js +1 -1
- package/dist/cdn/chat/snice-chat.min.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
- package/dist/cdn/chip/snice-chip.js +1 -1
- package/dist/cdn/chip/snice-chip.min.js +1 -1
- package/dist/cdn/code-block/snice-code-block.js +1 -1
- package/dist/cdn/code-block/snice-code-block.min.js +1 -1
- package/dist/cdn/color-display/snice-color-display.js +1 -1
- package/dist/cdn/color-display/snice-color-display.min.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
- package/dist/cdn/comments/snice-comments.js +1 -1
- package/dist/cdn/comments/snice-comments.min.js +1 -1
- package/dist/cdn/countdown/snice-countdown.js +1 -1
- package/dist/cdn/countdown/snice-countdown.min.js +1 -1
- package/dist/cdn/cropper/snice-cropper.js +1 -1
- package/dist/cdn/cropper/snice-cropper.min.js +1 -1
- package/dist/cdn/data-card/snice-data-card.js +1 -1
- package/dist/cdn/data-card/snice-data-card.min.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
- package/dist/cdn/diff/snice-diff.js +1 -1
- package/dist/cdn/diff/snice-diff.min.js +1 -1
- package/dist/cdn/divider/snice-divider.js +1 -1
- package/dist/cdn/divider/snice-divider.min.js +1 -1
- package/dist/cdn/doc/snice-doc.js +1 -1
- package/dist/cdn/doc/snice-doc.min.js +1 -1
- package/dist/cdn/draw/snice-draw.js +1 -1
- package/dist/cdn/draw/snice-draw.min.js +1 -1
- package/dist/cdn/drawer/snice-drawer.js +1 -1
- package/dist/cdn/drawer/snice-drawer.min.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
- package/dist/cdn/estimate/snice-estimate.js +1 -1
- package/dist/cdn/estimate/snice-estimate.min.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
- package/dist/cdn/flow/snice-flow.js +1 -1
- package/dist/cdn/flow/snice-flow.min.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
- package/dist/cdn/funnel/snice-funnel.js +1 -1
- package/dist/cdn/funnel/snice-funnel.min.js +1 -1
- package/dist/cdn/gantt/snice-gantt.js +1 -1
- package/dist/cdn/gantt/snice-gantt.min.js +1 -1
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/gauge/snice-gauge.min.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
- package/dist/cdn/image/snice-image.js +1 -1
- package/dist/cdn/image/snice-image.min.js +1 -1
- package/dist/cdn/input/snice-input.js +1 -1
- package/dist/cdn/input/snice-input.min.js +1 -1
- package/dist/cdn/invoice/snice-invoice.js +1 -1
- package/dist/cdn/invoice/snice-invoice.min.js +1 -1
- package/dist/cdn/kanban/snice-kanban.js +1 -1
- package/dist/cdn/kanban/snice-kanban.min.js +1 -1
- package/dist/cdn/key-value/snice-key-value.js +1 -1
- package/dist/cdn/key-value/snice-key-value.min.js +1 -1
- package/dist/cdn/kpi/snice-kpi.js +1 -1
- package/dist/cdn/kpi/snice-kpi.min.js +1 -1
- package/dist/cdn/layout/snice-layout.js +1 -1
- package/dist/cdn/layout/snice-layout.min.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
- package/dist/cdn/link/snice-link.js +1 -1
- package/dist/cdn/link/snice-link.min.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
- package/dist/cdn/list/snice-list.js +1 -1
- package/dist/cdn/list/snice-list.min.js +1 -1
- package/dist/cdn/location/snice-location.js +1 -1
- package/dist/cdn/location/snice-location.min.js +1 -1
- package/dist/cdn/login/README.md +2 -2
- package/dist/cdn/login/snice-login.js +11 -10
- package/dist/cdn/login/snice-login.js.map +1 -1
- package/dist/cdn/login/snice-login.min.js +5 -5
- package/dist/cdn/login/snice-login.min.js.map +1 -1
- package/dist/cdn/map/snice-map.js +1 -1
- package/dist/cdn/map/snice-map.min.js +1 -1
- package/dist/cdn/markdown/snice-markdown.js +1 -1
- package/dist/cdn/markdown/snice-markdown.min.js +1 -1
- package/dist/cdn/masonry/snice-masonry.js +1 -1
- package/dist/cdn/masonry/snice-masonry.min.js +1 -1
- package/dist/cdn/menu/snice-menu.js +1 -1
- package/dist/cdn/menu/snice-menu.min.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
- package/dist/cdn/modal/snice-modal.js +1 -1
- package/dist/cdn/modal/snice-modal.min.js +1 -1
- package/dist/cdn/music-player/snice-music-player.js +1 -1
- package/dist/cdn/music-player/snice-music-player.min.js +1 -1
- package/dist/cdn/nav/snice-nav.js +1 -1
- package/dist/cdn/nav/snice-nav.min.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
- package/dist/cdn/pagination/snice-pagination.js +1 -1
- package/dist/cdn/pagination/snice-pagination.min.js +1 -1
- package/dist/cdn/paint/snice-paint.js +1 -1
- package/dist/cdn/paint/snice-paint.min.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
- package/dist/cdn/product-card/snice-product-card.js +1 -1
- package/dist/cdn/product-card/snice-product-card.min.js +1 -1
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress/snice-progress.min.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
- package/dist/cdn/radio/snice-radio.js +1 -1
- package/dist/cdn/radio/snice-radio.min.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
- package/dist/cdn/rating/snice-rating.js +1 -1
- package/dist/cdn/rating/snice-rating.min.js +1 -1
- package/dist/cdn/receipt/snice-receipt.js +1 -1
- package/dist/cdn/receipt/snice-receipt.min.js +1 -1
- package/dist/cdn/recipe/snice-recipe.js +1 -1
- package/dist/cdn/recipe/snice-recipe.min.js +1 -1
- package/dist/cdn/runtime/README.md +2 -2
- package/dist/cdn/runtime/snice-runtime.esm.js +152 -62
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +152 -61
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +8 -8
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/snice-sankey.js +1 -1
- package/dist/cdn/sankey/snice-sankey.min.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
- package/dist/cdn/select/snice-select.js +1 -1
- package/dist/cdn/select/snice-select.min.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
- package/dist/cdn/slider/snice-slider.js +1 -1
- package/dist/cdn/slider/snice-slider.min.js +1 -1
- package/dist/cdn/sortable/snice-sortable.js +1 -1
- package/dist/cdn/sortable/snice-sortable.min.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
- package/dist/cdn/spinner/snice-spinner.js +1 -1
- package/dist/cdn/spinner/snice-spinner.min.js +1 -1
- package/dist/cdn/split-button/snice-split-button.js +1 -1
- package/dist/cdn/split-button/snice-split-button.min.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
- package/dist/cdn/step-input/snice-step-input.js +1 -1
- package/dist/cdn/step-input/snice-step-input.min.js +1 -1
- package/dist/cdn/stepper/snice-stepper.js +1 -1
- package/dist/cdn/stepper/snice-stepper.min.js +1 -1
- package/dist/cdn/switch/snice-switch.js +1 -1
- package/dist/cdn/switch/snice-switch.min.js +1 -1
- package/dist/cdn/table/README.md +1 -1
- package/dist/cdn/table/snice-table.js +11 -10
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +73 -73
- package/dist/cdn/table/snice-table.min.js.map +1 -1
- package/dist/cdn/tabs/snice-tabs.js +1 -1
- package/dist/cdn/tabs/snice-tabs.min.js +1 -1
- package/dist/cdn/tag/snice-tag.js +1 -1
- package/dist/cdn/tag/snice-tag.min.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
- package/dist/cdn/terminal/snice-terminal.js +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/textarea/snice-textarea.min.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
- package/dist/cdn/timeline/snice-timeline.js +1 -1
- package/dist/cdn/timeline/snice-timeline.min.js +1 -1
- package/dist/cdn/timer/snice-timer.js +1 -1
- package/dist/cdn/timer/snice-timer.min.js +1 -1
- package/dist/cdn/toast/snice-toast.js +1 -1
- package/dist/cdn/toast/snice-toast.min.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
- package/dist/cdn/tree/snice-tree.js +1 -1
- package/dist/cdn/tree/snice-tree.min.js +1 -1
- package/dist/cdn/treemap/snice-treemap.js +1 -1
- package/dist/cdn/treemap/snice-treemap.min.js +1 -1
- package/dist/cdn/user-card/snice-user-card.js +1 -1
- package/dist/cdn/user-card/snice-user-card.min.js +1 -1
- package/dist/cdn/video-player/snice-video-player.js +1 -1
- package/dist/cdn/video-player/snice-video-player.min.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
- package/dist/cdn/weather/snice-weather.js +1 -1
- package/dist/cdn/weather/snice-weather.min.js +1 -1
- package/dist/cdn/work-order/snice-work-order.js +1 -1
- package/dist/cdn/work-order/snice-work-order.min.js +1 -1
- package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
- package/dist/components/action-bar/snice-action-bar.js +182 -0
- package/dist/components/action-bar/snice-action-bar.js.map +1 -0
- package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
- package/dist/components/badge/snice-badge.js +1 -1
- package/dist/components/badge/snice-badge.js.map +1 -1
- package/dist/components/binpack/snice-binpack.d.ts +82 -0
- package/dist/components/binpack/snice-binpack.js +970 -0
- package/dist/components/binpack/snice-binpack.js.map +1 -0
- package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
- package/dist/components/button/snice-button.d.ts +2 -2
- package/dist/components/button/snice-button.js +11 -10
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/create-request-handler.d.ts +42 -0
- package/dist/index.cjs +149 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +149 -59
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +149 -58
- package/dist/index.iife.js.map +1 -1
- package/dist/parts.d.ts +9 -7
- package/dist/react/useRequestHandler.d.ts +56 -0
- package/dist/react/useRequestHandler.js +103 -0
- package/dist/react/useRequestHandler.js.map +1 -0
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/DEVELOPMENT.md +1 -1
- package/docs/ai/components/accordion.md +46 -80
- package/docs/ai/components/action-bar.md +75 -0
- package/docs/ai/components/activity-feed.md +7 -7
- package/docs/ai/components/alert.md +26 -44
- package/docs/ai/components/app-tiles.md +34 -39
- package/docs/ai/components/approval-flow.md +1 -1
- package/docs/ai/components/audio-recorder.md +35 -67
- package/docs/ai/components/availability.md +13 -34
- package/docs/ai/components/avatar-group.md +26 -13
- package/docs/ai/components/avatar.md +52 -36
- package/docs/ai/components/badge.md +21 -32
- package/docs/ai/components/banner.md +21 -43
- package/docs/ai/components/binpack.md +89 -0
- package/docs/ai/components/book.md +25 -23
- package/docs/ai/components/booking.md +31 -36
- package/docs/ai/components/breadcrumbs.md +36 -11
- package/docs/ai/components/button.md +33 -44
- package/docs/ai/components/calendar.md +37 -70
- package/docs/ai/components/camera-annotate.md +31 -64
- package/docs/ai/components/camera.md +38 -120
- package/docs/ai/components/candlestick.md +32 -52
- package/docs/ai/components/card.md +20 -30
- package/docs/ai/components/carousel.md +32 -32
- package/docs/ai/components/cart.md +24 -29
- package/docs/ai/components/chart.md +29 -114
- package/docs/ai/components/chat.md +38 -75
- package/docs/ai/components/checkbox.md +22 -41
- package/docs/ai/components/chip.md +18 -54
- package/docs/ai/components/code-block.md +57 -178
- package/docs/ai/components/color-display.md +12 -32
- package/docs/ai/components/color-picker.md +17 -39
- package/docs/ai/components/command-palette.md +49 -71
- package/docs/ai/components/comments.md +55 -36
- package/docs/ai/components/countdown.md +28 -30
- package/docs/ai/components/cropper.md +33 -33
- package/docs/ai/components/data-card.md +20 -14
- package/docs/ai/components/date-picker.md +40 -47
- package/docs/ai/components/date-range-picker.md +31 -15
- package/docs/ai/components/date-time-picker.md +23 -46
- package/docs/ai/components/diff.md +30 -31
- package/docs/ai/components/divider.md +17 -47
- package/docs/ai/components/doc.md +43 -68
- package/docs/ai/components/draw.md +35 -87
- package/docs/ai/components/drawer.md +48 -77
- package/docs/ai/components/empty-state.md +10 -44
- package/docs/ai/components/estimate.md +33 -58
- package/docs/ai/components/file-gallery.md +48 -100
- package/docs/ai/components/file-upload.md +17 -53
- package/docs/ai/components/flip-card.md +31 -23
- package/docs/ai/components/flow.md +37 -65
- package/docs/ai/components/form-builder.md +35 -75
- package/docs/ai/components/form-layout.md +10 -20
- package/docs/ai/components/funnel.md +33 -48
- package/docs/ai/components/gantt.md +27 -23
- package/docs/ai/components/gauge.md +16 -17
- package/docs/ai/components/heatmap.md +21 -21
- package/docs/ai/components/image.md +7 -13
- package/docs/ai/components/input.md +38 -70
- package/docs/ai/components/invoice.md +35 -36
- package/docs/ai/components/kanban.md +32 -61
- package/docs/ai/components/key-value.md +32 -16
- package/docs/ai/components/kpi.md +38 -73
- package/docs/ai/components/layout.md +29 -23
- package/docs/ai/components/leaderboard.md +28 -37
- package/docs/ai/components/link-preview.md +12 -18
- package/docs/ai/components/link.md +10 -7
- package/docs/ai/components/list.md +21 -5
- package/docs/ai/components/location.md +21 -25
- package/docs/ai/components/login.md +14 -9
- package/docs/ai/components/map.md +27 -33
- package/docs/ai/components/markdown.md +20 -24
- package/docs/ai/components/masonry.md +10 -14
- package/docs/ai/components/mentions.md +26 -12
- package/docs/ai/components/menu.md +54 -52
- package/docs/ai/components/message-strip.md +20 -20
- package/docs/ai/components/metric-table.md +14 -21
- package/docs/ai/components/modal.md +27 -18
- package/docs/ai/components/music-player.md +49 -41
- package/docs/ai/components/nav.md +34 -31
- package/docs/ai/components/network-graph.md +27 -42
- package/docs/ai/components/notification-center.md +31 -33
- package/docs/ai/components/order-tracker.md +36 -27
- package/docs/ai/components/org-chart.md +36 -31
- package/docs/ai/components/pagination.md +34 -26
- package/docs/ai/components/paint.md +53 -91
- package/docs/ai/components/pdf-viewer.md +35 -36
- package/docs/ai/components/permission-matrix.md +26 -31
- package/docs/ai/components/podcast-player.md +64 -70
- package/docs/ai/components/pricing-table.md +37 -48
- package/docs/ai/components/product-card.md +58 -41
- package/docs/ai/components/progress-ring.md +20 -24
- package/docs/ai/components/progress.md +28 -45
- package/docs/ai/components/qr-code.md +25 -27
- package/docs/ai/components/qr-reader.md +20 -23
- package/docs/ai/components/radio.md +17 -15
- package/docs/ai/components/range-slider.md +22 -11
- package/docs/ai/components/rating.md +29 -33
- package/docs/ai/components/receipt.md +50 -127
- package/docs/ai/components/recipe.md +44 -42
- package/docs/ai/components/sankey.md +21 -30
- package/docs/ai/components/scheduler.md +29 -41
- package/docs/ai/components/segmented-control.md +11 -15
- package/docs/ai/components/select.md +58 -102
- package/docs/ai/components/skeleton.md +16 -30
- package/docs/ai/components/slider.md +26 -20
- package/docs/ai/components/sortable.md +25 -27
- package/docs/ai/components/sparkline.md +21 -17
- package/docs/ai/components/spinner.md +9 -5
- package/docs/ai/components/split-button.md +10 -13
- package/docs/ai/components/split-pane.md +19 -14
- package/docs/ai/components/spotlight.md +31 -26
- package/docs/ai/components/spreadsheet.md +51 -97
- package/docs/ai/components/stat-group.md +9 -19
- package/docs/ai/components/step-input.md +17 -15
- package/docs/ai/components/stepper.md +14 -15
- package/docs/ai/components/switch.md +15 -9
- package/docs/ai/components/table.md +24 -84
- package/docs/ai/components/tabs.md +18 -10
- package/docs/ai/components/tag-input.md +18 -29
- package/docs/ai/components/tag.md +10 -22
- package/docs/ai/components/terminal.md +9 -9
- package/docs/ai/components/testimonial.md +9 -19
- package/docs/ai/components/textarea.md +15 -16
- package/docs/ai/components/theme.md +3 -3
- package/docs/ai/components/time-picker.md +30 -49
- package/docs/ai/components/time-range-picker.md +16 -15
- package/docs/ai/components/timeline.md +5 -4
- package/docs/ai/components/timer.md +8 -8
- package/docs/ai/components/toast.md +24 -18
- package/docs/ai/components/tooltip.md +11 -22
- package/docs/ai/components/tree.md +9 -9
- package/docs/ai/components/treemap.md +14 -13
- package/docs/ai/components/user-card.md +21 -27
- package/docs/ai/components/video-player.md +35 -52
- package/docs/ai/components/virtual-scroller.md +1 -1
- package/docs/ai/components/waterfall.md +17 -16
- package/docs/ai/components/weather.md +19 -34
- package/docs/ai/components/work-order.md +58 -134
- package/docs/ai/patterns.md +63 -0
- package/docs/components/accordion.md +72 -151
- package/docs/components/action-bar.md +185 -0
- package/docs/components/activity-feed.md +9 -14
- package/docs/components/alert.md +17 -109
- package/docs/components/app-tiles.md +58 -43
- package/docs/components/approval-flow.md +8 -14
- package/docs/components/audio-recorder.md +45 -51
- package/docs/components/availability.md +30 -45
- package/docs/components/avatar-group.md +34 -14
- package/docs/components/avatar.md +20 -55
- package/docs/components/badge.md +53 -470
- package/docs/components/banner.md +44 -30
- package/docs/components/binpack.md +208 -0
- package/docs/components/book.md +78 -57
- package/docs/components/booking.md +35 -87
- package/docs/components/breadcrumbs.md +74 -448
- package/docs/components/button.md +72 -603
- package/docs/components/calendar.md +77 -261
- package/docs/components/camera-annotate.md +44 -96
- package/docs/components/camera.md +94 -333
- package/docs/components/candlestick.md +79 -116
- package/docs/components/card.md +51 -689
- package/docs/components/carousel.md +29 -76
- package/docs/components/cart.md +44 -136
- package/docs/components/chart.md +95 -438
- package/docs/components/chat.md +175 -439
- package/docs/components/checkbox.md +52 -609
- package/docs/components/chip.md +45 -574
- package/docs/components/code-block.md +157 -421
- package/docs/components/color-display.md +45 -54
- package/docs/components/color-picker.md +103 -36
- package/docs/components/command-palette.md +98 -92
- package/docs/components/comments.md +16 -10
- package/docs/components/countdown.md +15 -20
- package/docs/components/cropper.md +14 -16
- package/docs/components/data-card.md +16 -15
- package/docs/components/date-picker.md +45 -25
- package/docs/components/date-range-picker.md +140 -87
- package/docs/components/date-time-picker.md +25 -28
- package/docs/components/diff.md +22 -17
- package/docs/components/divider.md +18 -20
- package/docs/components/doc.md +105 -197
- package/docs/components/draw.md +117 -223
- package/docs/components/drawer.md +113 -478
- package/docs/components/empty-state.md +13 -29
- package/docs/components/estimate.md +58 -118
- package/docs/components/file-gallery.md +123 -495
- package/docs/components/file-upload.md +36 -123
- package/docs/components/flip-card.md +30 -34
- package/docs/components/flow.md +74 -89
- package/docs/components/form-builder.md +59 -86
- package/docs/components/form-layout.md +21 -31
- package/docs/components/funnel.md +21 -22
- package/docs/components/gantt.md +5 -5
- package/docs/components/gauge.md +5 -23
- package/docs/components/heatmap.md +13 -55
- package/docs/components/image.md +28 -32
- package/docs/components/input.md +25 -14
- package/docs/components/invoice.md +34 -33
- package/docs/components/kanban.md +99 -394
- package/docs/components/key-value.md +22 -12
- package/docs/components/kpi.md +41 -112
- package/docs/components/layout.md +7 -13
- package/docs/components/leaderboard.md +52 -76
- package/docs/components/link-preview.md +20 -16
- package/docs/components/link.md +22 -19
- package/docs/components/list.md +44 -26
- package/docs/components/location.md +9 -13
- package/docs/components/login.md +42 -36
- package/docs/components/map.md +24 -46
- package/docs/components/markdown.md +14 -25
- package/docs/components/masonry.md +15 -13
- package/docs/components/mentions.md +36 -25
- package/docs/components/menu.md +39 -46
- package/docs/components/message-strip.md +15 -51
- package/docs/components/metric-table.md +50 -72
- package/docs/components/modal.md +32 -43
- package/docs/components/music-player.md +41 -49
- package/docs/components/nav.md +23 -13
- package/docs/components/network-graph.md +14 -13
- package/docs/components/notification-center.md +68 -172
- package/docs/components/order-tracker.md +72 -117
- package/docs/components/org-chart.md +58 -207
- package/docs/components/pagination.md +67 -89
- package/docs/components/paint.md +86 -172
- package/docs/components/pdf-viewer.md +46 -151
- package/docs/components/permission-matrix.md +61 -112
- package/docs/components/podcast-player.md +41 -119
- package/docs/components/pricing-table.md +104 -147
- package/docs/components/product-card.md +94 -197
- package/docs/components/progress-ring.md +29 -32
- package/docs/components/progress.md +30 -61
- package/docs/components/qr-code.md +53 -61
- package/docs/components/qr-reader.md +53 -42
- package/docs/components/radio.md +42 -40
- package/docs/components/range-slider.md +41 -30
- package/docs/components/rating.md +50 -84
- package/docs/components/receipt.md +91 -129
- package/docs/components/recipe.md +107 -216
- package/docs/components/sankey.md +47 -83
- package/docs/components/scheduler.md +81 -184
- package/docs/components/segmented-control.md +48 -40
- package/docs/components/select.md +107 -129
- package/docs/components/skeleton.md +33 -47
- package/docs/components/slider.md +49 -53
- package/docs/components/sortable.md +43 -186
- package/docs/components/sparkline.md +26 -25
- package/docs/components/spinner.md +32 -37
- package/docs/components/split-button.md +43 -23
- package/docs/components/split-pane.md +41 -58
- package/docs/components/spotlight.md +53 -145
- package/docs/components/spreadsheet.md +84 -307
- package/docs/components/stat-group.md +27 -61
- package/docs/components/step-input.md +44 -41
- package/docs/components/stepper.md +55 -89
- package/docs/components/switch.md +39 -39
- package/docs/components/table.md +27 -32
- package/docs/components/tabs.md +36 -27
- package/docs/components/tag-input.md +50 -176
- package/docs/components/tag.md +12 -50
- package/docs/components/terminal.md +32 -37
- package/docs/components/testimonial.md +24 -81
- package/docs/components/textarea.md +9 -14
- package/docs/components/theme.md +10 -23
- package/docs/components/time-picker.md +48 -72
- package/docs/components/time-range-picker.md +22 -41
- package/docs/components/timeline.md +7 -14
- package/docs/components/timer.md +16 -32
- package/docs/components/toast.md +19 -45
- package/docs/components/tooltip.md +13 -115
- package/docs/components/tree.md +2 -19
- package/docs/components/treemap.md +19 -43
- package/docs/components/user-card.md +13 -22
- package/docs/components/video-player.md +53 -227
- package/docs/components/virtual-scroller.md +11 -44
- package/docs/components/waterfall.md +58 -137
- package/docs/components/weather.md +94 -153
- package/docs/components/work-order.md +56 -143
- package/docs/plans/2026-03-09-action-bar-design.md +104 -0
- package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
- package/docs/plans/2026-03-10-react-integration-design.md +166 -0
- package/docs/request-response.md +77 -0
- package/package.json +20 -10
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/banner.md -->
|
|
2
2
|
|
|
3
3
|
# Banner Component
|
|
4
|
+
`<snice-banner>`
|
|
4
5
|
|
|
5
|
-
The
|
|
6
|
+
The banner component displays fixed-position notification banners at the top or bottom of the viewport. Supports multiple variants, dismissible close button, and optional action button.
|
|
6
7
|
|
|
7
8
|
## Table of Contents
|
|
8
9
|
- [Properties](#properties)
|
|
@@ -12,6 +13,7 @@ The `<snice-banner>` component displays fixed-position notification banners at t
|
|
|
12
13
|
- [CSS Parts](#css-parts)
|
|
13
14
|
- [Basic Usage](#basic-usage)
|
|
14
15
|
- [Examples](#examples)
|
|
16
|
+
- [Accessibility](#accessibility)
|
|
15
17
|
|
|
16
18
|
## Properties
|
|
17
19
|
|
|
@@ -21,32 +23,17 @@ The `<snice-banner>` component displays fixed-position notification banners at t
|
|
|
21
23
|
| `position` | `'top' \| 'bottom'` | `'top'` | Position on screen |
|
|
22
24
|
| `message` | `string` | `''` | Banner message |
|
|
23
25
|
| `dismissible` | `boolean` | `true` | Show close button |
|
|
24
|
-
| `icon` | `string` | `''` | Custom icon (
|
|
25
|
-
| `actionText` | `string` | `''` | Action button text |
|
|
26
|
+
| `icon` | `string` | `''` | Custom icon (emoji, URL, image file). Default icons per variant. |
|
|
27
|
+
| `actionText` (attr: `action-text`) | `string` | `''` | Action button text |
|
|
26
28
|
| `open` | `boolean` | `false` | Banner visibility |
|
|
27
29
|
|
|
28
30
|
## Methods
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
#### `hide(): void`
|
|
38
|
-
Hide the banner.
|
|
39
|
-
|
|
40
|
-
```typescript
|
|
41
|
-
banner.hide();
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
#### `toggle(): void`
|
|
45
|
-
Toggle banner visibility.
|
|
46
|
-
|
|
47
|
-
```typescript
|
|
48
|
-
banner.toggle();
|
|
49
|
-
```
|
|
32
|
+
| Method | Arguments | Description |
|
|
33
|
+
|--------|-----------|-------------|
|
|
34
|
+
| `show()` | -- | Show the banner |
|
|
35
|
+
| `hide()` | -- | Hide the banner |
|
|
36
|
+
| `toggle()` | -- | Toggle banner visibility |
|
|
50
37
|
|
|
51
38
|
## Events
|
|
52
39
|
|
|
@@ -58,9 +45,9 @@ banner.toggle();
|
|
|
58
45
|
|
|
59
46
|
## Slots
|
|
60
47
|
|
|
61
|
-
|
|
|
62
|
-
|
|
63
|
-
| `icon` | Custom icon content. Overrides the `icon` property and default variant icons. |
|
|
48
|
+
| Name | Description |
|
|
49
|
+
|------|-------------|
|
|
50
|
+
| `icon` | Custom icon content. Overrides the `icon` property and default variant icons. Use for icon fonts. |
|
|
64
51
|
| (default) | Additional content after the message |
|
|
65
52
|
|
|
66
53
|
### Icon Slot Usage
|
|
@@ -79,8 +66,6 @@ Use the `icon` slot for external CSS-based icon fonts:
|
|
|
79
66
|
|
|
80
67
|
## CSS Parts
|
|
81
68
|
|
|
82
|
-
Style internal elements from outside the shadow DOM using `::part()`.
|
|
83
|
-
|
|
84
69
|
| Part | Element | Description |
|
|
85
70
|
|------|---------|-------------|
|
|
86
71
|
| `banner` | `<div>` | The main banner container |
|
|
@@ -89,8 +74,22 @@ Style internal elements from outside the shadow DOM using `::part()`.
|
|
|
89
74
|
| `action` | `<button>` | The action button (when `actionText` is set) |
|
|
90
75
|
| `close` | `<button>` | The close/dismiss button |
|
|
91
76
|
|
|
77
|
+
```css
|
|
78
|
+
snice-banner::part(banner) {
|
|
79
|
+
font-size: 1rem;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
snice-banner::part(action) {
|
|
83
|
+
font-weight: 600;
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
92
87
|
## Basic Usage
|
|
93
88
|
|
|
89
|
+
```typescript
|
|
90
|
+
import 'snice/components/banner/snice-banner';
|
|
91
|
+
```
|
|
92
|
+
|
|
94
93
|
```html
|
|
95
94
|
<snice-banner
|
|
96
95
|
variant="info"
|
|
@@ -103,6 +102,8 @@ Style internal elements from outside the shadow DOM using `::part()`.
|
|
|
103
102
|
|
|
104
103
|
### Variants
|
|
105
104
|
|
|
105
|
+
Use the `variant` attribute to set the banner style.
|
|
106
|
+
|
|
106
107
|
```html
|
|
107
108
|
<snice-banner variant="info" message="Info message" open></snice-banner>
|
|
108
109
|
<snice-banner variant="success" message="Success!" open></snice-banner>
|
|
@@ -112,13 +113,14 @@ Style internal elements from outside the shadow DOM using `::part()`.
|
|
|
112
113
|
|
|
113
114
|
### With Action Button
|
|
114
115
|
|
|
116
|
+
Use `action-text` to show an action button. Listen for `banner-action` to handle clicks.
|
|
117
|
+
|
|
115
118
|
```html
|
|
116
119
|
<snice-banner
|
|
117
120
|
message="A new version is available"
|
|
118
121
|
action-text="Update Now"
|
|
119
122
|
open
|
|
120
123
|
></snice-banner>
|
|
121
|
-
|
|
122
124
|
```
|
|
123
125
|
|
|
124
126
|
```typescript
|
|
@@ -129,6 +131,8 @@ banner.addEventListener('banner-action', () => {
|
|
|
129
131
|
|
|
130
132
|
### Bottom Position
|
|
131
133
|
|
|
134
|
+
Use `position="bottom"` to anchor the banner to the bottom of the viewport.
|
|
135
|
+
|
|
132
136
|
```html
|
|
133
137
|
<snice-banner
|
|
134
138
|
position="bottom"
|
|
@@ -140,6 +144,8 @@ banner.addEventListener('banner-action', () => {
|
|
|
140
144
|
|
|
141
145
|
### Not Dismissible
|
|
142
146
|
|
|
147
|
+
Set `dismissible="false"` to hide the close button.
|
|
148
|
+
|
|
143
149
|
```html
|
|
144
150
|
<snice-banner
|
|
145
151
|
message="Maintenance mode active"
|
|
@@ -151,6 +157,8 @@ banner.addEventListener('banner-action', () => {
|
|
|
151
157
|
|
|
152
158
|
### Programmatic Control
|
|
153
159
|
|
|
160
|
+
Use `show()`, `hide()`, and `toggle()` methods.
|
|
161
|
+
|
|
154
162
|
```html
|
|
155
163
|
<snice-banner id="myBanner" message="Hello"></snice-banner>
|
|
156
164
|
|
|
@@ -158,3 +166,9 @@ banner.addEventListener('banner-action', () => {
|
|
|
158
166
|
<button onclick="myBanner.hide()">Hide</button>
|
|
159
167
|
<button onclick="myBanner.toggle()">Toggle</button>
|
|
160
168
|
```
|
|
169
|
+
|
|
170
|
+
## Accessibility
|
|
171
|
+
|
|
172
|
+
- **ARIA role**: Banner has `role="alert"` for screen reader announcements
|
|
173
|
+
- **Close button**: Has `aria-label="Close"` for screen readers
|
|
174
|
+
- **Keyboard accessible**: Close and action buttons are keyboard focusable
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/binpack.md -->
|
|
2
|
+
|
|
3
|
+
# Binpack Component
|
|
4
|
+
`<snice-binpack>`
|
|
5
|
+
|
|
6
|
+
A JavaScript-driven bin-packing layout component. Uses the maximal rectangles algorithm to efficiently pack items of varying sizes into a container with absolute positioning and smooth transitions.
|
|
7
|
+
|
|
8
|
+
## Table of Contents
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Methods](#methods)
|
|
11
|
+
- [Events](#events)
|
|
12
|
+
- [Slots](#slots)
|
|
13
|
+
- [CSS Custom Properties](#css-custom-properties)
|
|
14
|
+
- [CSS Parts](#css-parts)
|
|
15
|
+
- [Basic Usage](#basic-usage)
|
|
16
|
+
- [Examples](#examples)
|
|
17
|
+
|
|
18
|
+
## Properties
|
|
19
|
+
|
|
20
|
+
| Property | Attribute | Type | Default | Description |
|
|
21
|
+
|----------|-----------|------|---------|-------------|
|
|
22
|
+
| `gap` | `gap` | `string` | `'1rem'` | Spacing between items |
|
|
23
|
+
| `columnWidth` | `column-width` | `number` | `0` | Grid snap width (0 = no grid) |
|
|
24
|
+
| `rowHeight` | `row-height` | `number` | `0` | Grid snap height (0 = no grid) |
|
|
25
|
+
| `horizontal` | `horizontal` | `boolean` | `false` | Pack horizontally instead of vertically |
|
|
26
|
+
| `originLeft` | `origin-left` | `boolean` | `true` | `false` = right-to-left |
|
|
27
|
+
| `originTop` | `origin-top` | `boolean` | `true` | `false` = bottom-to-top |
|
|
28
|
+
| `transitionDuration` | `transition-duration` | `string` | `'0.4s'` | CSS transition duration for item movement |
|
|
29
|
+
| `stagger` | `stagger` | `number` | `0` | Delay in ms between each item's transition |
|
|
30
|
+
| `resize` | `resize` | `boolean` | `true` | Auto re-layout on container resize |
|
|
31
|
+
| `draggable` | `draggable` | `boolean` | `false` | Enable drag-to-reorder |
|
|
32
|
+
| `dragThrottle` | `drag-throttle` | `number` | `120` | Throttle interval (ms) for drag layout updates |
|
|
33
|
+
|
|
34
|
+
## Methods
|
|
35
|
+
|
|
36
|
+
| Method | Arguments | Description |
|
|
37
|
+
|--------|-----------|-------------|
|
|
38
|
+
| `layout()` | -- | Perform a full re-layout |
|
|
39
|
+
| `fit()` | `element: HTMLElement, x?: number, y?: number` | Position specific item at coordinates, reflow others |
|
|
40
|
+
| `reloadItems()` | -- | Re-collect items from DOM |
|
|
41
|
+
| `stamp()` | `elements: HTMLElement \| HTMLElement[]` | Layout around fixed elements |
|
|
42
|
+
| `unstamp()` | `elements: HTMLElement \| HTMLElement[]` | Remove stamp constraint |
|
|
43
|
+
| `getItemElements()` | -- | Returns array of all layout items |
|
|
44
|
+
| `getLayout()` | -- | Returns `BinpackLayout` object with item positions |
|
|
45
|
+
| `setLayout()` | `layout: BinpackLayout` | Apply a saved layout (reorder, hide/show items) |
|
|
46
|
+
|
|
47
|
+
## Events
|
|
48
|
+
|
|
49
|
+
| Event | Detail | Description |
|
|
50
|
+
|-------|--------|-------------|
|
|
51
|
+
| `binpack-layout-complete` | `{ items: HTMLElement[] }` | Fired after layout completes |
|
|
52
|
+
| `binpack-fit-complete` | `{ item: HTMLElement, x: number, y: number }` | Fired after `fit()` completes |
|
|
53
|
+
| `binpack-drag-item-positioned` | `{ item: HTMLElement, x: number, y: number }` | Fired after a dragged item settles into its new position |
|
|
54
|
+
|
|
55
|
+
## Slots
|
|
56
|
+
|
|
57
|
+
| Name | Description |
|
|
58
|
+
|------|-------------|
|
|
59
|
+
| (default) | Items to pack. Each item should have explicit width and height. |
|
|
60
|
+
|
|
61
|
+
## CSS Custom Properties
|
|
62
|
+
|
|
63
|
+
| Property | Description | Default |
|
|
64
|
+
|----------|-------------|---------|
|
|
65
|
+
| `--binpack-gap` | Gap between items (set via `gap` property) | `1rem` |
|
|
66
|
+
| `--binpack-transition-duration` | Transition duration for item movement (set via `transition-duration` property) | `0.4s` |
|
|
67
|
+
|
|
68
|
+
## CSS Parts
|
|
69
|
+
|
|
70
|
+
| Part | Description |
|
|
71
|
+
|------|-------------|
|
|
72
|
+
| `base` | The inner container element |
|
|
73
|
+
|
|
74
|
+
## Basic Usage
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
import 'snice/components/binpack/snice-binpack';
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```html
|
|
81
|
+
<snice-binpack gap="0.5rem">
|
|
82
|
+
<div style="width: 100px; height: 100px;">A</div>
|
|
83
|
+
<div style="width: 150px; height: 80px;">B</div>
|
|
84
|
+
<div style="width: 80px; height: 120px;">C</div>
|
|
85
|
+
</snice-binpack>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Examples
|
|
89
|
+
|
|
90
|
+
### Horizontal Packing
|
|
91
|
+
|
|
92
|
+
Use the `horizontal` attribute to pack items left-to-right instead of top-to-bottom. Set a fixed height on the container.
|
|
93
|
+
|
|
94
|
+
```html
|
|
95
|
+
<snice-binpack horizontal gap="0.5rem" style="height: 300px;">
|
|
96
|
+
<div style="width: 100px; height: 100px;">A</div>
|
|
97
|
+
<div style="width: 80px; height: 150px;">B</div>
|
|
98
|
+
<div style="width: 120px; height: 80px;">C</div>
|
|
99
|
+
</snice-binpack>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Grid-Snapped Layout
|
|
103
|
+
|
|
104
|
+
Use `column-width` and `row-height` to snap items to a grid.
|
|
105
|
+
|
|
106
|
+
```html
|
|
107
|
+
<snice-binpack column-width="100" row-height="100" gap="0.5rem">
|
|
108
|
+
<div style="width: 80px; height: 80px;">A</div>
|
|
109
|
+
<div style="width: 180px; height: 80px;">B</div>
|
|
110
|
+
<div style="width: 80px; height: 160px;">C</div>
|
|
111
|
+
</snice-binpack>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Staggered Transitions
|
|
115
|
+
|
|
116
|
+
Use `stagger` to add incremental delay between each item's transition.
|
|
117
|
+
|
|
118
|
+
```html
|
|
119
|
+
<snice-binpack transition-duration="0.6s" stagger="40">
|
|
120
|
+
<div style="width: 100px; height: 100px;">A</div>
|
|
121
|
+
<div style="width: 100px; height: 100px;">B</div>
|
|
122
|
+
<div style="width: 100px; height: 100px;">C</div>
|
|
123
|
+
</snice-binpack>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Right-to-Left
|
|
127
|
+
|
|
128
|
+
Set `origin-left="false"` to pack items from the right side.
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<snice-binpack origin-left="false" gap="0.5rem">
|
|
132
|
+
<div style="width: 100px; height: 100px;">A</div>
|
|
133
|
+
<div style="width: 150px; height: 80px;">B</div>
|
|
134
|
+
</snice-binpack>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Draggable Dashboard
|
|
138
|
+
|
|
139
|
+
Enable `draggable` to let users drag items to rearrange them.
|
|
140
|
+
|
|
141
|
+
```html
|
|
142
|
+
<snice-binpack draggable gap="8px" column-width="80" row-height="80">
|
|
143
|
+
<div style="width: 160px; height: 160px;">Revenue</div>
|
|
144
|
+
<div style="width: 80px; height: 80px;">CPU</div>
|
|
145
|
+
<div style="width: 160px; height: 80px;">Orders</div>
|
|
146
|
+
</snice-binpack>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
CSS classes applied during drag:
|
|
150
|
+
- `.binpack-dragging` -- applied during drag (no transition, z-index: 100)
|
|
151
|
+
- `.binpack-positioning` -- applied while animating to final position after drop
|
|
152
|
+
|
|
153
|
+
```javascript
|
|
154
|
+
pack.addEventListener('binpack-drag-item-positioned', (e) => {
|
|
155
|
+
const { item, x, y } = e.detail;
|
|
156
|
+
console.log('Item dropped at', x, y);
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Dynamic Items
|
|
161
|
+
|
|
162
|
+
Items can be added or removed dynamically. The layout automatically updates via slot change detection.
|
|
163
|
+
|
|
164
|
+
```javascript
|
|
165
|
+
const pack = document.querySelector('snice-binpack');
|
|
166
|
+
|
|
167
|
+
// Add an item
|
|
168
|
+
const item = document.createElement('div');
|
|
169
|
+
item.style.width = '120px';
|
|
170
|
+
item.style.height = '80px';
|
|
171
|
+
pack.appendChild(item);
|
|
172
|
+
|
|
173
|
+
// Remove an item
|
|
174
|
+
pack.lastElementChild.remove();
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Stamp (Fixed Elements)
|
|
178
|
+
|
|
179
|
+
Use `stamp()` to mark elements as fixed -- other items layout around them.
|
|
180
|
+
|
|
181
|
+
```javascript
|
|
182
|
+
const pack = document.getElementById('stamp-demo');
|
|
183
|
+
const fixed = document.getElementById('fixed');
|
|
184
|
+
pack.stamp(fixed); // Items layout around it
|
|
185
|
+
pack.unstamp(fixed); // Resume normal layout
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Save and Restore Layout
|
|
189
|
+
|
|
190
|
+
Use `getLayout()` and `setLayout()` to persist item arrangement. Items must have a `name` attribute.
|
|
191
|
+
|
|
192
|
+
```javascript
|
|
193
|
+
// Save
|
|
194
|
+
const layout = pack.getLayout();
|
|
195
|
+
localStorage.setItem('dashboard', JSON.stringify(layout));
|
|
196
|
+
|
|
197
|
+
// Restore
|
|
198
|
+
const saved = JSON.parse(localStorage.getItem('dashboard'));
|
|
199
|
+
pack.setLayout(saved);
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Notes
|
|
203
|
+
|
|
204
|
+
- Items must have explicit `width` and `height` (the component does not auto-size items)
|
|
205
|
+
- The container uses `position: relative` and items are absolutely positioned with `transform` for smooth transitions
|
|
206
|
+
- Uses `ResizeObserver` on both the container and individual items for automatic re-layout
|
|
207
|
+
- FOUC is prevented by gating transitions behind the `[ready]` attribute
|
|
208
|
+
- Uses `contain: layout style` on `:host` (not `paint`, as items use absolute positioning that may overflow)
|
package/docs/components/book.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/book.md -->
|
|
2
2
|
|
|
3
3
|
# Book Component
|
|
4
|
+
`<snice-book>`
|
|
4
5
|
|
|
5
|
-
The book component displays content as a page-flipping book with realistic 3D page-turn animations. It supports a customizable cover page, keyboard
|
|
6
|
+
The book component displays content as a page-flipping book with realistic 3D page-turn animations. It supports a customizable cover page, keyboard navigation, and programmatic page control.
|
|
6
7
|
|
|
7
8
|
## Table of Contents
|
|
9
|
+
- [Components](#components)
|
|
8
10
|
- [Properties](#properties)
|
|
9
11
|
- [Methods](#methods)
|
|
10
12
|
- [Events](#events)
|
|
@@ -13,17 +15,26 @@ The book component displays content as a page-flipping book with realistic 3D pa
|
|
|
13
15
|
- [CSS Parts](#css-parts)
|
|
14
16
|
- [Basic Usage](#basic-usage)
|
|
15
17
|
- [Examples](#examples)
|
|
18
|
+
- [Keyboard Navigation](#keyboard-navigation)
|
|
16
19
|
- [Accessibility](#accessibility)
|
|
17
20
|
|
|
21
|
+
## Components
|
|
22
|
+
|
|
23
|
+
### `<snice-book>`
|
|
24
|
+
Main book container with page-flip animation.
|
|
25
|
+
|
|
26
|
+
### `<snice-book-page>`
|
|
27
|
+
Individual page element. Each child becomes one page in the book. Supports `front` and `back` named slots for double-sided pages.
|
|
28
|
+
|
|
18
29
|
## Properties
|
|
19
30
|
|
|
20
31
|
| Property | Type | Default | Description |
|
|
21
32
|
|----------|------|---------|-------------|
|
|
22
|
-
| `currentPage` (attr: `current-page`) | `number` | `0` | Current page number (0
|
|
33
|
+
| `currentPage` (attr: `current-page`) | `number` | `0` | Current page number (0 = cover closed) |
|
|
23
34
|
| `coverImage` (attr: `cover-image`) | `string` | `''` | URL for the cover page image |
|
|
24
35
|
| `title` | `string` | `''` | Book title displayed on the cover |
|
|
25
36
|
| `author` | `string` | `''` | Author name displayed on the cover |
|
|
26
|
-
| `totalPages` | `number` | _(read-only)_ | Total number of pages (count of slotted
|
|
37
|
+
| `totalPages` | `number` | _(read-only)_ | Total number of pages (count of slotted `<snice-book-page>` elements) |
|
|
27
38
|
|
|
28
39
|
## Methods
|
|
29
40
|
|
|
@@ -47,24 +58,22 @@ The book component displays content as a page-flipping book with realistic 3D pa
|
|
|
47
58
|
|
|
48
59
|
| Name | Description |
|
|
49
60
|
|------|-------------|
|
|
50
|
-
| (default) |
|
|
61
|
+
| (default) | `<snice-book-page>` elements. Each child element becomes one page in the book. |
|
|
51
62
|
|
|
52
63
|
## CSS Custom Properties
|
|
53
64
|
|
|
54
|
-
| Property | Description |
|
|
55
|
-
|
|
56
|
-
| `--page-bg` | Page background color
|
|
57
|
-
| `--dark-text` | Primary text color
|
|
58
|
-
| `--baseline` | Base spacing unit
|
|
59
|
-
| `--book-title` | Book title font family
|
|
60
|
-
| `--title` | Section title / body heading font
|
|
61
|
-
| `--body` | Body text font
|
|
62
|
-
| `--base-size` | Base font size, derived from baseline
|
|
65
|
+
| Property | Description | Default |
|
|
66
|
+
|----------|-------------|---------|
|
|
67
|
+
| `--page-bg` | Page background color | `#F5F5F5` |
|
|
68
|
+
| `--dark-text` | Primary text color | `#2A2935` |
|
|
69
|
+
| `--baseline` | Base spacing unit | `12px` |
|
|
70
|
+
| `--book-title` | Book title font family | `'Tulpen One', sans-serif` |
|
|
71
|
+
| `--title` | Section title / body heading font | `'Cormorant Garamond', serif` |
|
|
72
|
+
| `--body` | Body text font | `'Cormorant Garamond', serif` |
|
|
73
|
+
| `--base-size` | Base font size, derived from baseline | `calc(var(--baseline) * 1.2)` |
|
|
63
74
|
|
|
64
75
|
## CSS Parts
|
|
65
76
|
|
|
66
|
-
Style internal elements from outside the shadow DOM using `::part()`.
|
|
67
|
-
|
|
68
77
|
| Part | Element | Description |
|
|
69
78
|
|------|---------|-------------|
|
|
70
79
|
| `base` | `<div>` | The outer cover container |
|
|
@@ -83,18 +92,24 @@ snice-book::part(book) {
|
|
|
83
92
|
|
|
84
93
|
## Basic Usage
|
|
85
94
|
|
|
95
|
+
```typescript
|
|
96
|
+
import 'snice/components/book/snice-book';
|
|
97
|
+
```
|
|
98
|
+
|
|
86
99
|
```html
|
|
87
100
|
<snice-book>
|
|
88
|
-
<
|
|
89
|
-
|
|
90
|
-
|
|
101
|
+
<snice-book-page>
|
|
102
|
+
<div>Page 1 content</div>
|
|
103
|
+
</snice-book-page>
|
|
104
|
+
<snice-book-page>
|
|
105
|
+
<div>Page 2 content</div>
|
|
106
|
+
</snice-book-page>
|
|
107
|
+
<snice-book-page>
|
|
108
|
+
<div>Page 3 content</div>
|
|
109
|
+
</snice-book-page>
|
|
91
110
|
</snice-book>
|
|
92
111
|
```
|
|
93
112
|
|
|
94
|
-
```typescript
|
|
95
|
-
import 'snice/components/book/snice-book';
|
|
96
|
-
```
|
|
97
|
-
|
|
98
113
|
## Examples
|
|
99
114
|
|
|
100
115
|
### Basic Book with Cover
|
|
@@ -103,10 +118,12 @@ Use the `title`, `author`, and `cover-image` attributes to create a book with a
|
|
|
103
118
|
|
|
104
119
|
```html
|
|
105
120
|
<snice-book title="The Great Gatsby" author="F. Scott Fitzgerald" cover-image="/covers/gatsby.jpg">
|
|
106
|
-
<
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
<
|
|
121
|
+
<snice-book-page>
|
|
122
|
+
<div>In my younger and more vulnerable years...</div>
|
|
123
|
+
</snice-book-page>
|
|
124
|
+
<snice-book-page>
|
|
125
|
+
<div>Chapter 2 content here...</div>
|
|
126
|
+
</snice-book-page>
|
|
110
127
|
</snice-book>
|
|
111
128
|
```
|
|
112
129
|
|
|
@@ -116,23 +133,20 @@ Use methods to control the book from JavaScript.
|
|
|
116
133
|
|
|
117
134
|
```html
|
|
118
135
|
<snice-book id="tutorial-book" title="Tutorial">
|
|
119
|
-
<div>Step 1: Install
|
|
120
|
-
<div>Step 2: Import
|
|
121
|
-
<div>Step 3:
|
|
122
|
-
<div>Step 4: Customize with properties</div>
|
|
136
|
+
<snice-book-page><div>Step 1: Install</div></snice-book-page>
|
|
137
|
+
<snice-book-page><div>Step 2: Import</div></snice-book-page>
|
|
138
|
+
<snice-book-page><div>Step 3: Use</div></snice-book-page>
|
|
123
139
|
</snice-book>
|
|
124
140
|
|
|
125
141
|
<button onclick="document.getElementById('tutorial-book').prevPage()">Previous</button>
|
|
126
142
|
<button onclick="document.getElementById('tutorial-book').nextPage()">Next</button>
|
|
143
|
+
```
|
|
127
144
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
console.log(`Turned to page ${e.detail.page} (${e.detail.direction})`);
|
|
134
|
-
});
|
|
135
|
-
</script>
|
|
145
|
+
```typescript
|
|
146
|
+
const book = document.getElementById('tutorial-book');
|
|
147
|
+
book.addEventListener('page-turn', (e) => {
|
|
148
|
+
console.log(`Turned to page ${e.detail.page} (${e.detail.direction})`);
|
|
149
|
+
});
|
|
136
150
|
```
|
|
137
151
|
|
|
138
152
|
### Rich HTML Content Pages
|
|
@@ -141,26 +155,33 @@ Each page can contain arbitrary HTML including text, images, and interactive ele
|
|
|
141
155
|
|
|
142
156
|
```html
|
|
143
157
|
<snice-book title="Product Catalog">
|
|
144
|
-
<
|
|
145
|
-
<
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
<
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
</div>
|
|
158
|
+
<snice-book-page>
|
|
159
|
+
<div style="padding: 2rem;">
|
|
160
|
+
<h2>Introduction</h2>
|
|
161
|
+
<p>Browse our latest collection.</p>
|
|
162
|
+
</div>
|
|
163
|
+
</snice-book-page>
|
|
164
|
+
<snice-book-page>
|
|
165
|
+
<div style="padding: 2rem;">
|
|
166
|
+
<h3>Widget Pro</h3>
|
|
167
|
+
<img src="/products/widget-pro.jpg" alt="Widget Pro" style="width: 100%;">
|
|
168
|
+
<p>Starting at $29.99.</p>
|
|
169
|
+
</div>
|
|
170
|
+
</snice-book-page>
|
|
158
171
|
</snice-book>
|
|
159
172
|
```
|
|
160
173
|
|
|
174
|
+
## Keyboard Navigation
|
|
175
|
+
|
|
176
|
+
| Key | Action |
|
|
177
|
+
|-----|--------|
|
|
178
|
+
| Arrow Right | Next page |
|
|
179
|
+
| Arrow Left | Previous page |
|
|
180
|
+
|
|
181
|
+
The book must be focused (it sets `tabindex="0"` on ready).
|
|
182
|
+
|
|
161
183
|
## Accessibility
|
|
162
184
|
|
|
163
|
-
- **Keyboard support**: Arrow
|
|
164
|
-
- **Focus management**: The book is focusable and responds to keyboard input
|
|
165
|
-
- **Screen readers**: Page turn events
|
|
166
|
-
- **Touch support**: Swipe gestures on touch devices for natural page turning
|
|
185
|
+
- **Keyboard support**: Arrow keys for page navigation when focused
|
|
186
|
+
- **Focus management**: The book is focusable and responds to keyboard input
|
|
187
|
+
- **Screen readers**: Page turn events provide feedback on current position
|