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
package/dist/parts.d.ts
CHANGED
|
@@ -170,9 +170,10 @@ export declare function parseKeyboardFilter(spec: string): KeyboardFilter;
|
|
|
170
170
|
*/
|
|
171
171
|
export declare function matchesKeyboardFilter(event: KeyboardEvent, filter: KeyboardFilter): boolean;
|
|
172
172
|
export declare class ConditionalIfPart extends Part {
|
|
173
|
-
private
|
|
173
|
+
private startNode;
|
|
174
|
+
private endNode;
|
|
174
175
|
private value;
|
|
175
|
-
private
|
|
176
|
+
private childFragment;
|
|
176
177
|
constructor(ifElement: Element);
|
|
177
178
|
commit(value: any): void;
|
|
178
179
|
clear(): void;
|
|
@@ -182,14 +183,15 @@ export declare class ConditionalIfPart extends Part {
|
|
|
182
183
|
* Removes/inserts matching branch based on value
|
|
183
184
|
*/
|
|
184
185
|
export declare class ConditionalCasePart extends Part {
|
|
185
|
-
private
|
|
186
|
+
private startNode;
|
|
187
|
+
private endNode;
|
|
186
188
|
private value;
|
|
187
|
-
private
|
|
188
|
-
private
|
|
189
|
-
private
|
|
190
|
-
private currentChild;
|
|
189
|
+
private branches;
|
|
190
|
+
private defaultBranch;
|
|
191
|
+
private currentKey;
|
|
191
192
|
constructor(caseElement: Element);
|
|
192
193
|
commit(value: any): void;
|
|
194
|
+
private _collectCurrent;
|
|
193
195
|
clear(): void;
|
|
194
196
|
}
|
|
195
197
|
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useRequestHandler — React hook for handling @request channels
|
|
3
|
+
* outside of the Snice element/controller decorator system.
|
|
4
|
+
*
|
|
5
|
+
* Listens for @request CustomEvents on a ref'd element (or document),
|
|
6
|
+
* performs the discovery/data handshake, and dispatches to your route map.
|
|
7
|
+
*
|
|
8
|
+
* The route map is **not** required to be stable across renders — the hook
|
|
9
|
+
* always uses the latest callbacks without re-attaching listeners.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* import { useRequestHandler } from 'snice/react/useRequestHandler';
|
|
14
|
+
*
|
|
15
|
+
* function App() {
|
|
16
|
+
* const containerRef = useRef<HTMLDivElement>(null);
|
|
17
|
+
*
|
|
18
|
+
* useRequestHandler(containerRef, {
|
|
19
|
+
* 'fetch-user': async (payload) => {
|
|
20
|
+
* const res = await fetch(`/api/users/${payload.id}`);
|
|
21
|
+
* return res.json();
|
|
22
|
+
* },
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* return (
|
|
26
|
+
* <div ref={containerRef}>
|
|
27
|
+
* <snice-user-card />
|
|
28
|
+
* </div>
|
|
29
|
+
* );
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```tsx
|
|
35
|
+
* // Global handler (no ref — listens on document)
|
|
36
|
+
* useRequestHandler(null, {
|
|
37
|
+
* 'fetch-user': async (payload) => ({ name: 'Jane', id: payload.id }),
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export type UseRequestRoute = (payload: any) => any | Promise<any>;
|
|
42
|
+
export type UseRequestRouteMap = Record<string, UseRequestRoute>;
|
|
43
|
+
export interface UseRequestHandlerOptions {
|
|
44
|
+
/** If true, the handler will NOT stop propagation. Default: false */
|
|
45
|
+
passive?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* React hook that attaches request handlers for @request channels.
|
|
49
|
+
*
|
|
50
|
+
* @param ref React ref to the target element, or null to use document.
|
|
51
|
+
* @param routes Map of channel names to handler functions.
|
|
52
|
+
* @param options Optional configuration.
|
|
53
|
+
*/
|
|
54
|
+
export declare function useRequestHandler(ref: {
|
|
55
|
+
current: EventTarget | null;
|
|
56
|
+
} | null, routes: UseRequestRouteMap, options?: UseRequestHandlerOptions): void;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* snice v4.28.0
|
|
3
|
+
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
4
|
+
* (c) 2024
|
|
5
|
+
* Released under the MIT License.
|
|
6
|
+
*/
|
|
7
|
+
import { useRef, useEffect } from 'react';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* useRequestHandler — React hook for handling @request channels
|
|
11
|
+
* outside of the Snice element/controller decorator system.
|
|
12
|
+
*
|
|
13
|
+
* Listens for @request CustomEvents on a ref'd element (or document),
|
|
14
|
+
* performs the discovery/data handshake, and dispatches to your route map.
|
|
15
|
+
*
|
|
16
|
+
* The route map is **not** required to be stable across renders — the hook
|
|
17
|
+
* always uses the latest callbacks without re-attaching listeners.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* import { useRequestHandler } from 'snice/react/useRequestHandler';
|
|
22
|
+
*
|
|
23
|
+
* function App() {
|
|
24
|
+
* const containerRef = useRef<HTMLDivElement>(null);
|
|
25
|
+
*
|
|
26
|
+
* useRequestHandler(containerRef, {
|
|
27
|
+
* 'fetch-user': async (payload) => {
|
|
28
|
+
* const res = await fetch(`/api/users/${payload.id}`);
|
|
29
|
+
* return res.json();
|
|
30
|
+
* },
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* return (
|
|
34
|
+
* <div ref={containerRef}>
|
|
35
|
+
* <snice-user-card />
|
|
36
|
+
* </div>
|
|
37
|
+
* );
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* // Global handler (no ref — listens on document)
|
|
44
|
+
* useRequestHandler(null, {
|
|
45
|
+
* 'fetch-user': async (payload) => ({ name: 'Jane', id: payload.id }),
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
/**
|
|
50
|
+
* React hook that attaches request handlers for @request channels.
|
|
51
|
+
*
|
|
52
|
+
* @param ref React ref to the target element, or null to use document.
|
|
53
|
+
* @param routes Map of channel names to handler functions.
|
|
54
|
+
* @param options Optional configuration.
|
|
55
|
+
*/
|
|
56
|
+
function useRequestHandler(ref, routes, options) {
|
|
57
|
+
const routesRef = useRef(routes);
|
|
58
|
+
routesRef.current = routes;
|
|
59
|
+
const optionsRef = useRef(options);
|
|
60
|
+
optionsRef.current = options;
|
|
61
|
+
const channelKeys = Object.keys(routes).sort().join('\0');
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
const target = ref?.current ?? document;
|
|
64
|
+
const cleanups = [];
|
|
65
|
+
for (const channelName of channelKeys.split('\0')) {
|
|
66
|
+
if (!channelName)
|
|
67
|
+
continue;
|
|
68
|
+
const eventName = `@request/${channelName}`;
|
|
69
|
+
const listener = (event) => {
|
|
70
|
+
const ce = event;
|
|
71
|
+
const { discovery, data, payload } = ce.detail;
|
|
72
|
+
if (!optionsRef.current?.passive) {
|
|
73
|
+
ce.preventDefault();
|
|
74
|
+
ce.stopImmediatePropagation();
|
|
75
|
+
ce.stopPropagation();
|
|
76
|
+
}
|
|
77
|
+
discovery.resolve();
|
|
78
|
+
const handler = routesRef.current[channelName];
|
|
79
|
+
if (!handler) {
|
|
80
|
+
data.reject(new Error(`useRequestHandler: no handler for "${channelName}"`));
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
Promise.resolve()
|
|
84
|
+
.then(() => handler(payload))
|
|
85
|
+
.then((result) => data.resolve(result))
|
|
86
|
+
.catch((error) => {
|
|
87
|
+
data.reject(error);
|
|
88
|
+
console.error(`useRequestHandler: error in "${channelName}" handler:`, error);
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
target.addEventListener(eventName, listener);
|
|
92
|
+
cleanups.push(() => target.removeEventListener(eventName, listener));
|
|
93
|
+
}
|
|
94
|
+
return () => {
|
|
95
|
+
for (const fn of cleanups)
|
|
96
|
+
fn();
|
|
97
|
+
};
|
|
98
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
99
|
+
}, [channelKeys, ref]);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export { useRequestHandler };
|
|
103
|
+
//# sourceMappingURL=useRequestHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRequestHandler.js","sources":["../../src/src/react/useRequestHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AAYH;;;;;;AAMG;SACa,iBAAiB,CAC/B,GAA2C,EAC3C,MAA0B,EAC1B,OAAkC,EAAA;AAElC,IAAA,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;AAChC,IAAA,SAAS,CAAC,OAAO,GAAG,MAAM;AAE1B,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;AAClC,IAAA,UAAU,CAAC,OAAO,GAAG,OAAO;AAE5B,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IAEzD,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,MAAM,GAAgB,GAAG,EAAE,OAAO,IAAI,QAAQ;QACpD,MAAM,QAAQ,GAAmB,EAAE;QAEnC,KAAK,MAAM,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,WAAW;gBAAE;AAClB,YAAA,MAAM,SAAS,GAAG,CAAA,SAAA,EAAY,WAAW,EAAE;AAE3C,YAAA,MAAM,QAAQ,GAAG,CAAC,KAAY,KAAI;gBAChC,MAAM,EAAE,GAAG,KAAoB;gBAC/B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM;AAE9C,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE;oBAChC,EAAE,CAAC,cAAc,EAAE;oBACnB,EAAE,CAAC,wBAAwB,EAAE;oBAC7B,EAAE,CAAC,eAAe,EAAE;gBACtB;gBAEA,SAAS,CAAC,OAAO,EAAE;gBAEnB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE;oBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAA,mCAAA,EAAsC,WAAW,CAAA,CAAA,CAAG,CAAC,CAAC;oBAC5E;gBACF;gBAEA,OAAO,CAAC,OAAO;qBACZ,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC;AAC3B,qBAAA,IAAI,CAAC,CAAC,MAAW,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1C,qBAAA,KAAK,CAAC,CAAC,KAAU,KAAI;AACpB,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,CAAA,6BAAA,EAAgC,WAAW,CAAA,UAAA,CAAY,EAAE,KAAK,CAAC;AAC/E,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC;AAED,YAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC5C,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtE;AAEA,QAAA,OAAO,MAAK;YACV,KAAK,MAAM,EAAE,IAAI,QAAQ;AAAE,gBAAA,EAAE,EAAE;AACjC,QAAA,CAAC;;AAEH,IAAA,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACxB;;;;"}
|
package/dist/symbols.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v4.
|
|
2
|
+
* snice v4.28.0
|
|
3
3
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
package/dist/symbols.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v4.
|
|
2
|
+
* snice v4.28.0
|
|
3
3
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
package/dist/transitions.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v4.
|
|
2
|
+
* snice v4.28.0
|
|
3
3
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
package/dist/transitions.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v4.
|
|
2
|
+
* snice v4.28.0
|
|
3
3
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
package/docs/ai/DEVELOPMENT.md
CHANGED
|
@@ -98,7 +98,7 @@ All CDN builds use the shared runtime (external `snice` imports). Load `snice-ru
|
|
|
98
98
|
- IIFE: `.js` + `.min.js`
|
|
99
99
|
- Sourcemaps + README
|
|
100
100
|
|
|
101
|
-
**Size:** Runtime ~
|
|
101
|
+
**Size:** Runtime ~18KB gzip, components ~1-93KB each
|
|
102
102
|
|
|
103
103
|
**Features:**
|
|
104
104
|
- Shared runtime (external snice imports)
|
|
@@ -8,61 +8,75 @@ Collapsible sections with single or multiple open mode and keyboard navigation.
|
|
|
8
8
|
|
|
9
9
|
Container managing accordion items.
|
|
10
10
|
|
|
11
|
+
### snice-accordion-item
|
|
12
|
+
|
|
13
|
+
Individual collapsible section.
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
|
|
17
|
+
### snice-accordion
|
|
18
|
+
|
|
11
19
|
```typescript
|
|
12
20
|
multiple: boolean = false; // Allow multiple items open
|
|
13
21
|
variant: 'bordered' | 'elevated' = 'bordered'; // Visual style variant
|
|
14
22
|
```
|
|
15
23
|
|
|
16
|
-
|
|
24
|
+
### snice-accordion-item
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
itemId: string = ''; // attr: item-id, auto-generated if not provided
|
|
28
|
+
open: boolean = false;
|
|
29
|
+
disabled: boolean = false;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Methods
|
|
33
|
+
|
|
34
|
+
### snice-accordion
|
|
35
|
+
|
|
17
36
|
- `openItem(id)` - Open specific item
|
|
18
37
|
- `closeItem(id)` - Close specific item
|
|
19
38
|
- `toggleItem(id)` - Toggle specific item
|
|
20
39
|
- `openAll()` - Open all (multiple mode only)
|
|
21
40
|
- `closeAll()` - Close all
|
|
22
41
|
|
|
23
|
-
**Events:**
|
|
24
|
-
- `accordion-open` - {itemId, item}
|
|
25
|
-
- `accordion-close` - {itemId, item}
|
|
26
|
-
|
|
27
42
|
### snice-accordion-item
|
|
28
43
|
|
|
29
|
-
Individual collapsible section.
|
|
30
|
-
|
|
31
|
-
```typescript
|
|
32
|
-
itemId: string; // Auto-generated if not provided
|
|
33
|
-
open: boolean = false;
|
|
34
|
-
disabled: boolean = false;
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Methods:**
|
|
38
44
|
- `toggle()` - Toggle open/closed
|
|
39
45
|
- `expand(animate = true)` - Open
|
|
40
46
|
- `collapse(animate = true)` - Close
|
|
41
47
|
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
## Events
|
|
49
|
+
|
|
50
|
+
- `accordion-open` → `{ itemId, item }` - Item opened (on container)
|
|
51
|
+
- `accordion-close` → `{ itemId, item }` - Item closed (on container)
|
|
52
|
+
- `accordion-item-toggle` → `{ itemId, open }` - Item toggled (on item)
|
|
53
|
+
|
|
54
|
+
## Slots
|
|
55
|
+
|
|
56
|
+
### snice-accordion
|
|
57
|
+
- `(default)` - `<snice-accordion-item>` elements
|
|
44
58
|
|
|
45
|
-
|
|
59
|
+
### snice-accordion-item
|
|
46
60
|
- `header` - Clickable trigger content
|
|
47
|
-
- default - Collapsible content
|
|
61
|
+
- `(default)` - Collapsible content
|
|
62
|
+
|
|
63
|
+
## CSS Parts
|
|
48
64
|
|
|
49
|
-
|
|
65
|
+
(on snice-accordion-item)
|
|
50
66
|
- `header` - The clickable button trigger
|
|
51
67
|
- `title` - Span wrapping the header slot
|
|
52
68
|
- `icon` - The chevron SVG icon
|
|
53
69
|
- `content` - The collapsible content wrapper
|
|
54
70
|
- `content-inner` - Inner div containing the default slot
|
|
55
71
|
|
|
56
|
-
## Usage
|
|
72
|
+
## Basic Usage
|
|
57
73
|
|
|
58
74
|
```html
|
|
59
|
-
<!-- Basic -->
|
|
60
75
|
<snice-accordion>
|
|
61
76
|
<snice-accordion-item item-id="item-1">
|
|
62
77
|
<span slot="header">Section 1</span>
|
|
63
78
|
<div>Content 1</div>
|
|
64
79
|
</snice-accordion-item>
|
|
65
|
-
|
|
66
80
|
<snice-accordion-item item-id="item-2">
|
|
67
81
|
<span slot="header">Section 2</span>
|
|
68
82
|
<div>Content 2</div>
|
|
@@ -75,71 +89,23 @@ disabled: boolean = false;
|
|
|
75
89
|
<span slot="header">A</span>
|
|
76
90
|
<p>Content A</p>
|
|
77
91
|
</snice-accordion-item>
|
|
78
|
-
|
|
79
|
-
<snice-accordion-item item-id="b" open>
|
|
80
|
-
<span slot="header">B</span>
|
|
81
|
-
<p>Content B</p>
|
|
82
|
-
</snice-accordion-item>
|
|
83
92
|
</snice-accordion>
|
|
84
93
|
|
|
85
|
-
<!--
|
|
86
|
-
<snice-accordion>
|
|
87
|
-
<snice-accordion-item item-id="active">
|
|
88
|
-
<span slot="header">Active</span>
|
|
89
|
-
<p>Can open</p>
|
|
90
|
-
</snice-accordion-item>
|
|
91
|
-
|
|
92
|
-
<snice-accordion-item item-id="disabled" disabled>
|
|
93
|
-
<span slot="header">Disabled</span>
|
|
94
|
-
<p>Cannot open</p>
|
|
95
|
-
</snice-accordion-item>
|
|
96
|
-
</snice-accordion>
|
|
97
|
-
```
|
|
94
|
+
<!-- Elevated variant -->
|
|
95
|
+
<snice-accordion variant="elevated">...</snice-accordion>
|
|
98
96
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
// Control items
|
|
103
|
-
accordion.openItem('item-1');
|
|
104
|
-
accordion.closeItem('item-2');
|
|
105
|
-
accordion.toggleItem('item-3');
|
|
106
|
-
accordion.openAll(); // Multiple mode only
|
|
107
|
-
accordion.closeAll();
|
|
108
|
-
|
|
109
|
-
// Listen for events
|
|
110
|
-
accordion.addEventListener('accordion-open', (e) => {
|
|
111
|
-
console.log('Opened:', e.detail.itemId);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
// Control individual item
|
|
115
|
-
item.toggle();
|
|
116
|
-
item.expand();
|
|
117
|
-
item.collapse();
|
|
97
|
+
<!-- Disabled item -->
|
|
98
|
+
<snice-accordion-item item-id="disabled" disabled>...</snice-accordion-item>
|
|
118
99
|
```
|
|
119
100
|
|
|
120
101
|
## Keyboard Navigation
|
|
121
102
|
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
- **Home** - First item
|
|
125
|
-
- **End** - Last item
|
|
103
|
+
- **Arrow Down/Up** - Next/previous item
|
|
104
|
+
- **Home/End** - First/last item
|
|
126
105
|
- **Enter/Space** - Toggle focused item
|
|
127
106
|
|
|
128
|
-
##
|
|
129
|
-
|
|
130
|
-
- Single or multiple open mode
|
|
131
|
-
- Keyboard navigation
|
|
132
|
-
- Click or keyboard to toggle
|
|
133
|
-
- Auto-generated item IDs
|
|
134
|
-
- Disabled state
|
|
135
|
-
- Open/close events
|
|
136
|
-
- Accessibility: aria-expanded, button roles
|
|
137
|
-
- Smooth animations
|
|
138
|
-
|
|
139
|
-
## Notes
|
|
107
|
+
## Accessibility
|
|
140
108
|
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
- Disabled items cannot be toggled
|
|
145
|
-
- Header slot required for trigger content
|
|
109
|
+
- `aria-expanded` on headers, `button` role
|
|
110
|
+
- Full keyboard navigation
|
|
111
|
+
- Visible focus indicators
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# snice-action-bar
|
|
2
|
+
|
|
3
|
+
Positioned, animated container for contextual actions within a relative parent.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
open: boolean = false; // attr: open
|
|
9
|
+
position: 'top'|'bottom'|'left'|'right'|'top-left'|'top-right'|'bottom-left'|'bottom-right' = 'bottom';
|
|
10
|
+
size: 'small'|'medium' = 'medium';
|
|
11
|
+
variant: 'default'|'pill' = 'default';
|
|
12
|
+
noAnimation: boolean = false; // attr: no-animation — always visible, no transitions
|
|
13
|
+
noEscapeDismiss: boolean = false; // attr: no-escape-dismiss
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Methods
|
|
17
|
+
|
|
18
|
+
- `show()` - Open
|
|
19
|
+
- `hide()` - Close
|
|
20
|
+
- `toggle()` - Toggle open state
|
|
21
|
+
|
|
22
|
+
## Events
|
|
23
|
+
|
|
24
|
+
- `action-bar-open` → `{ actionBar: SniceActionBarElement }`
|
|
25
|
+
- `action-bar-close` → `{ actionBar: SniceActionBarElement }`
|
|
26
|
+
|
|
27
|
+
## Slots
|
|
28
|
+
|
|
29
|
+
- `(default)` - Action content (buttons, icons, etc.)
|
|
30
|
+
|
|
31
|
+
## CSS Parts
|
|
32
|
+
|
|
33
|
+
- `base` - The inner toolbar container
|
|
34
|
+
|
|
35
|
+
## CSS Custom Properties
|
|
36
|
+
|
|
37
|
+
- `--action-bar-background` - Background color
|
|
38
|
+
- `--action-bar-border` - Border style
|
|
39
|
+
- `--action-bar-border-radius` - Border radius
|
|
40
|
+
- `--action-bar-padding` - Inner padding
|
|
41
|
+
- `--action-bar-gap` - Gap between items
|
|
42
|
+
- `--action-bar-shadow` - Box shadow
|
|
43
|
+
- `--action-bar-z-index` - Z-index
|
|
44
|
+
|
|
45
|
+
## Basic Usage
|
|
46
|
+
|
|
47
|
+
```html
|
|
48
|
+
<div style="position:relative"
|
|
49
|
+
onmouseenter="this.querySelector('snice-action-bar').show()"
|
|
50
|
+
onmouseleave="this.querySelector('snice-action-bar').hide()">
|
|
51
|
+
<p>Content</p>
|
|
52
|
+
<snice-action-bar position="bottom" variant="pill">
|
|
53
|
+
<button>Edit</button>
|
|
54
|
+
<button>Delete</button>
|
|
55
|
+
</snice-action-bar>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<!-- Always visible -->
|
|
59
|
+
<snice-action-bar no-animation position="top-right" size="small">
|
|
60
|
+
<button>Edit</button>
|
|
61
|
+
</snice-action-bar>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Keyboard Navigation
|
|
65
|
+
|
|
66
|
+
- Arrow keys navigate focusable children (roving tabindex)
|
|
67
|
+
- `Escape` closes unless `no-escape-dismiss`
|
|
68
|
+
- `Home`/`End` jump to first/last
|
|
69
|
+
- `role="toolbar"`
|
|
70
|
+
|
|
71
|
+
## Accessibility
|
|
72
|
+
|
|
73
|
+
- `role="toolbar"` with `aria-label="Actions"`
|
|
74
|
+
- Roving keyboard navigation
|
|
75
|
+
- Escape dismiss (configurable)
|
|
@@ -26,16 +26,16 @@ interface Activity {
|
|
|
26
26
|
}
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
## Events
|
|
30
|
-
|
|
31
|
-
- `activity-click` -> `{ activity: Activity }`
|
|
32
|
-
- `load-more` -> `{ count: number }`
|
|
33
|
-
|
|
34
29
|
## Methods
|
|
35
30
|
|
|
36
31
|
- `addActivity(activity)` - Prepend activity to feed
|
|
37
32
|
- `clearFilter()` - Reset filter to show all
|
|
38
33
|
|
|
34
|
+
## Events
|
|
35
|
+
|
|
36
|
+
- `activity-click` → `{ activity: Activity }`
|
|
37
|
+
- `load-more` → `{ count: number }`
|
|
38
|
+
|
|
39
39
|
## CSS Parts
|
|
40
40
|
|
|
41
41
|
- `base` - Feed container
|
|
@@ -47,7 +47,7 @@ interface Activity {
|
|
|
47
47
|
- `timestamp` - Timestamp text
|
|
48
48
|
- `group-header` - Date group header
|
|
49
49
|
|
|
50
|
-
## Usage
|
|
50
|
+
## Basic Usage
|
|
51
51
|
|
|
52
52
|
```html
|
|
53
53
|
<snice-activity-feed group-by="date"></snice-activity-feed>
|
|
@@ -57,8 +57,8 @@ interface Activity {
|
|
|
57
57
|
feed.activities = [
|
|
58
58
|
{ id: '1', actor: { name: 'Alice', avatar: 'alice.jpg' }, action: 'created', target: 'Project Alpha', timestamp: '2024-01-15T10:30:00Z', type: 'create', icon: '+' },
|
|
59
59
|
{ id: '2', actor: { name: 'Bob' }, action: 'commented on', target: 'Issue #42', timestamp: '2024-01-15T11:00:00Z', type: 'comment' },
|
|
60
|
-
{ id: '3', actor: { name: 'Charlie' }, action: 'deployed', target: 'v2.0.0', timestamp: '2024-01-14T09:00:00Z', type: 'deploy' }
|
|
61
60
|
];
|
|
62
61
|
feed.addEventListener('activity-click', e => console.log(e.detail.activity));
|
|
63
62
|
feed.addEventListener('load-more', e => console.log('Load more, current:', e.detail.count));
|
|
63
|
+
feed.addActivity({ id: '3', actor: { name: 'System' }, action: 'deployed', target: 'v3.0', timestamp: new Date().toISOString(), type: 'deploy' });
|
|
64
64
|
```
|
|
@@ -9,18 +9,13 @@ variant: 'info'|'success'|'warning'|'error' = 'info';
|
|
|
9
9
|
size: 'small'|'medium'|'large' = 'medium';
|
|
10
10
|
title: string = '';
|
|
11
11
|
dismissible: boolean = false;
|
|
12
|
-
icon: string = '';
|
|
12
|
+
icon: string = ''; // URL, emoji, or 'none'. Use icon slot for icon fonts.
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
## Slots
|
|
16
|
-
|
|
17
|
-
- `(default)` - Alert message content
|
|
18
|
-
- `icon` - Custom icon content (overrides `icon` property and default icons)
|
|
19
|
-
|
|
20
15
|
## Methods
|
|
21
16
|
|
|
22
17
|
- `show()` - Show alert
|
|
23
|
-
- `hide()` - Hide alert
|
|
18
|
+
- `hide()` - Hide alert with animation
|
|
24
19
|
|
|
25
20
|
## Events
|
|
26
21
|
|
|
@@ -28,30 +23,29 @@ icon: string = '';
|
|
|
28
23
|
- `alert-shown` → `{ variant, title }` - Alert shown
|
|
29
24
|
- `alert-hidden` → `{ variant, title }` - Alert hidden after animation
|
|
30
25
|
|
|
31
|
-
##
|
|
26
|
+
## Slots
|
|
27
|
+
|
|
28
|
+
- `(default)` - Alert message content
|
|
29
|
+
- `icon` - Custom icon content (overrides `icon` property and default icons)
|
|
30
|
+
|
|
31
|
+
## CSS Parts
|
|
32
|
+
|
|
33
|
+
- `icon` - The icon container
|
|
34
|
+
|
|
35
|
+
## Basic Usage
|
|
32
36
|
|
|
33
37
|
```html
|
|
34
38
|
<!-- Basic -->
|
|
35
39
|
<snice-alert>Alert message</snice-alert>
|
|
36
40
|
|
|
37
|
-
<!--
|
|
38
|
-
<snice-alert variant="success">
|
|
39
|
-
|
|
40
|
-
</snice-alert>
|
|
41
|
-
|
|
42
|
-
<!-- Error -->
|
|
43
|
-
<snice-alert variant="error">
|
|
44
|
-
An error occurred
|
|
45
|
-
</snice-alert>
|
|
46
|
-
|
|
47
|
-
<!-- Warning -->
|
|
48
|
-
<snice-alert variant="warning">
|
|
49
|
-
Please review your input
|
|
50
|
-
</snice-alert>
|
|
41
|
+
<!-- Variants -->
|
|
42
|
+
<snice-alert variant="success">Operation completed!</snice-alert>
|
|
43
|
+
<snice-alert variant="error">An error occurred</snice-alert>
|
|
44
|
+
<snice-alert variant="warning">Please review your input</snice-alert>
|
|
51
45
|
|
|
52
46
|
<!-- With title -->
|
|
53
47
|
<snice-alert variant="info" title="Information">
|
|
54
|
-
Additional details
|
|
48
|
+
Additional details.
|
|
55
49
|
</snice-alert>
|
|
56
50
|
|
|
57
51
|
<!-- Dismissible -->
|
|
@@ -59,37 +53,25 @@ icon: string = '';
|
|
|
59
53
|
Can be closed by user
|
|
60
54
|
</snice-alert>
|
|
61
55
|
|
|
62
|
-
<!--
|
|
63
|
-
|
|
64
|
-
<!-- Icon SLOT — for Material Symbols, Font Awesome, SVGs -->
|
|
56
|
+
<!-- Icon SLOT for Material Symbols, Font Awesome, SVGs -->
|
|
65
57
|
<snice-alert variant="info">
|
|
66
58
|
<span slot="icon" class="material-symbols-outlined">info</span>
|
|
67
59
|
Information message
|
|
68
60
|
</snice-alert>
|
|
69
61
|
|
|
70
|
-
<!-- Icon PROPERTY
|
|
71
|
-
<snice-alert icon="🎉">Custom icon alert</snice-alert>
|
|
62
|
+
<!-- Icon PROPERTY for emoji, URLs, image files only -->
|
|
72
63
|
<snice-alert icon="/icons/info.svg">With image icon</snice-alert>
|
|
73
64
|
|
|
65
|
+
<!-- No icon -->
|
|
66
|
+
<snice-alert icon="none">No icon alert</snice-alert>
|
|
67
|
+
|
|
74
68
|
<!-- Sizes -->
|
|
75
69
|
<snice-alert size="small">Small</snice-alert>
|
|
76
|
-
<snice-alert size="medium">Medium</snice-alert>
|
|
77
70
|
<snice-alert size="large">Large</snice-alert>
|
|
78
71
|
```
|
|
79
72
|
|
|
80
|
-
##
|
|
81
|
-
|
|
82
|
-
- 4 variants with semantic colors
|
|
83
|
-
- 3 size options
|
|
84
|
-
- Optional title
|
|
85
|
-
- Optional dismiss button
|
|
86
|
-
- Custom icon support (URL, image files, emoji). Use slot for icon fonts.
|
|
87
|
-
- Show/hide methods
|
|
88
|
-
- Accessibility: role="alert"
|
|
89
|
-
|
|
90
|
-
## Variants
|
|
73
|
+
## Accessibility
|
|
91
74
|
|
|
92
|
-
- `
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
- `error` - Red, errors/problems
|
|
75
|
+
- `role="alert"` with `aria-live="polite"`
|
|
76
|
+
- Dismiss button is keyboard accessible
|
|
77
|
+
- WCAG AA color contrast
|