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/waterfall.md -->
|
|
2
2
|
|
|
3
|
-
# Waterfall
|
|
3
|
+
# Waterfall
|
|
4
|
+
`<snice-waterfall>`
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Renders a waterfall chart (bridge chart) that visualizes the cumulative effect of sequential positive and negative values. Bars are color-coded by type: green for increases, red for decreases, and blue for totals.
|
|
6
7
|
|
|
7
8
|
## Table of Contents
|
|
8
9
|
- [Properties](#properties)
|
|
@@ -12,7 +13,6 @@ The waterfall component renders a waterfall chart (also known as a bridge chart)
|
|
|
12
13
|
- [Basic Usage](#basic-usage)
|
|
13
14
|
- [Examples](#examples)
|
|
14
15
|
- [Accessibility](#accessibility)
|
|
15
|
-
- [Browser Support](#browser-support)
|
|
16
16
|
|
|
17
17
|
## Properties
|
|
18
18
|
|
|
@@ -24,13 +24,13 @@ The waterfall component renders a waterfall chart (also known as a bridge chart)
|
|
|
24
24
|
| `showConnectors` (attr: `show-connectors`) | `boolean` | `true` | Show connector lines between bars |
|
|
25
25
|
| `animated` | `boolean` | `false` | Animate bars on render |
|
|
26
26
|
|
|
27
|
-
### WaterfallDataPoint
|
|
27
|
+
### WaterfallDataPoint Interface
|
|
28
28
|
|
|
29
29
|
```typescript
|
|
30
30
|
interface WaterfallDataPoint {
|
|
31
|
-
label: string;
|
|
32
|
-
value: number;
|
|
33
|
-
type?: 'increase' | 'decrease' | 'total';
|
|
31
|
+
label: string;
|
|
32
|
+
value: number;
|
|
33
|
+
type?: 'increase' | 'decrease' | 'total'; // auto-detected from value sign if omitted
|
|
34
34
|
}
|
|
35
35
|
```
|
|
36
36
|
|
|
@@ -38,27 +38,10 @@ When `type` is omitted, it is automatically determined: positive values render a
|
|
|
38
38
|
|
|
39
39
|
## Events
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
```typescript
|
|
46
|
-
{
|
|
47
|
-
item: WaterfallDataPoint;
|
|
48
|
-
index: number;
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### `bar-hover`
|
|
53
|
-
Fired when the mouse enters a bar.
|
|
54
|
-
|
|
55
|
-
**Event Detail:**
|
|
56
|
-
```typescript
|
|
57
|
-
{
|
|
58
|
-
item: WaterfallDataPoint;
|
|
59
|
-
index: number;
|
|
60
|
-
}
|
|
61
|
-
```
|
|
41
|
+
| Event | Detail | Description |
|
|
42
|
+
|-------|--------|-------------|
|
|
43
|
+
| `bar-click` | `{ item: WaterfallDataPoint, index: number }` | Bar clicked |
|
|
44
|
+
| `bar-hover` | `{ item: WaterfallDataPoint, index: number }` | Mouse entered a bar |
|
|
62
45
|
|
|
63
46
|
## CSS Custom Properties
|
|
64
47
|
|
|
@@ -75,123 +58,74 @@ Fired when the mouse enters a bar.
|
|
|
75
58
|
|
|
76
59
|
## CSS Parts
|
|
77
60
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
|
81
|
-
|
|
82
|
-
| `base` | `<div>` | The main waterfall container |
|
|
83
|
-
| `chart` | `<div>` | The chart rendering area |
|
|
61
|
+
| Part | Description |
|
|
62
|
+
|------|-------------|
|
|
63
|
+
| `base` | The main waterfall container |
|
|
64
|
+
| `chart` | The chart rendering area |
|
|
84
65
|
|
|
85
|
-
|
|
86
|
-
snice-waterfall::part(base) {
|
|
87
|
-
border-radius: 8px;
|
|
88
|
-
overflow: hidden;
|
|
89
|
-
}
|
|
66
|
+
## Basic Usage
|
|
90
67
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
68
|
+
```typescript
|
|
69
|
+
import 'snice/components/waterfall/snice-waterfall';
|
|
94
70
|
```
|
|
95
71
|
|
|
96
|
-
## Basic Usage
|
|
97
|
-
|
|
98
72
|
```html
|
|
99
|
-
<snice-waterfall></snice-waterfall>
|
|
73
|
+
<snice-waterfall show-values show-connectors></snice-waterfall>
|
|
100
74
|
```
|
|
101
75
|
|
|
102
76
|
```typescript
|
|
103
|
-
|
|
77
|
+
chart.data = [
|
|
78
|
+
{ label: 'Starting Balance', value: 1000, type: 'total' },
|
|
79
|
+
{ label: 'Revenue', value: 500 },
|
|
80
|
+
{ label: 'Costs', value: -200 },
|
|
81
|
+
{ label: 'Tax', value: -100 },
|
|
82
|
+
{ label: 'Net Income', value: 1200, type: 'total' }
|
|
83
|
+
];
|
|
104
84
|
```
|
|
105
85
|
|
|
106
86
|
## Examples
|
|
107
87
|
|
|
108
|
-
### Profit
|
|
88
|
+
### Profit and Loss
|
|
109
89
|
|
|
110
90
|
Show how revenue, costs, and taxes contribute to a final balance.
|
|
111
91
|
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
{ label: 'Services', value: 300 },
|
|
123
|
-
{ label: 'Costs', value: -200 },
|
|
124
|
-
{ label: 'Wages', value: -350 },
|
|
125
|
-
{ label: 'Tax', value: -100 },
|
|
126
|
-
{ label: 'Net Income', value: 1150, type: 'total' }
|
|
127
|
-
];
|
|
128
|
-
</script>
|
|
92
|
+
```typescript
|
|
93
|
+
chart.data = [
|
|
94
|
+
{ label: 'Starting Balance', value: 1000, type: 'total' },
|
|
95
|
+
{ label: 'Revenue', value: 500 },
|
|
96
|
+
{ label: 'Services', value: 300 },
|
|
97
|
+
{ label: 'Costs', value: -200 },
|
|
98
|
+
{ label: 'Wages', value: -350 },
|
|
99
|
+
{ label: 'Tax', value: -100 },
|
|
100
|
+
{ label: 'Net Income', value: 1150, type: 'total' }
|
|
101
|
+
];
|
|
129
102
|
```
|
|
130
103
|
|
|
131
104
|
### Horizontal Orientation
|
|
132
105
|
|
|
133
|
-
|
|
106
|
+
Use the `orientation` attribute to render the chart horizontally.
|
|
134
107
|
|
|
135
108
|
```html
|
|
136
|
-
<snice-waterfall
|
|
137
|
-
|
|
138
|
-
<script type="module">
|
|
139
|
-
const chart = document.getElementById('horizontal-chart');
|
|
140
|
-
chart.data = [
|
|
141
|
-
{ label: 'Q1 Start', value: 5000, type: 'total' },
|
|
142
|
-
{ label: 'Sales', value: 2000 },
|
|
143
|
-
{ label: 'Returns', value: -300 },
|
|
144
|
-
{ label: 'Marketing', value: -800 },
|
|
145
|
-
{ label: 'Q1 End', value: 5900, type: 'total' }
|
|
146
|
-
];
|
|
147
|
-
</script>
|
|
109
|
+
<snice-waterfall orientation="horizontal" show-values></snice-waterfall>
|
|
148
110
|
```
|
|
149
111
|
|
|
150
112
|
### Animated Chart
|
|
151
113
|
|
|
152
|
-
Use the `animated`
|
|
114
|
+
Use the `animated` attribute to animate bars when the chart renders.
|
|
153
115
|
|
|
154
116
|
```html
|
|
155
|
-
<snice-waterfall
|
|
156
|
-
|
|
157
|
-
<script type="module">
|
|
158
|
-
const chart = document.getElementById('animated-chart');
|
|
159
|
-
chart.data = [
|
|
160
|
-
{ label: 'January', value: 10000, type: 'total' },
|
|
161
|
-
{ label: 'New Subscriptions', value: 3500 },
|
|
162
|
-
{ label: 'Upgrades', value: 1200 },
|
|
163
|
-
{ label: 'Churn', value: -2100 },
|
|
164
|
-
{ label: 'Refunds', value: -400 },
|
|
165
|
-
{ label: 'February', value: 12200, type: 'total' }
|
|
166
|
-
];
|
|
167
|
-
</script>
|
|
117
|
+
<snice-waterfall animated show-values show-connectors></snice-waterfall>
|
|
168
118
|
```
|
|
169
119
|
|
|
170
120
|
### Bar Click Handling
|
|
171
121
|
|
|
172
122
|
Listen for bar clicks to display details or navigate to related views.
|
|
173
123
|
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const chart = document.getElementById('clickable-chart');
|
|
180
|
-
const info = document.getElementById('click-info');
|
|
181
|
-
|
|
182
|
-
chart.data = [
|
|
183
|
-
{ label: 'Budget', value: 50000, type: 'total' },
|
|
184
|
-
{ label: 'Hiring', value: -15000 },
|
|
185
|
-
{ label: 'Equipment', value: -8000 },
|
|
186
|
-
{ label: 'Revenue', value: 20000 },
|
|
187
|
-
{ label: 'Remaining', value: 47000, type: 'total' }
|
|
188
|
-
];
|
|
189
|
-
|
|
190
|
-
chart.addEventListener('bar-click', (e) => {
|
|
191
|
-
const { item, index } = e.detail;
|
|
192
|
-
info.textContent = `Clicked: ${item.label} = ${item.value > 0 ? '+' : ''}${item.value}`;
|
|
193
|
-
});
|
|
194
|
-
</script>
|
|
124
|
+
```typescript
|
|
125
|
+
chart.addEventListener('bar-click', (e) => {
|
|
126
|
+
const { item, index } = e.detail;
|
|
127
|
+
console.log(`Clicked: ${item.label} = ${item.value}`);
|
|
128
|
+
});
|
|
195
129
|
```
|
|
196
130
|
|
|
197
131
|
### Without Connectors or Values
|
|
@@ -199,31 +133,18 @@ Listen for bar clicks to display details or navigate to related views.
|
|
|
199
133
|
Hide connector lines and value labels for a cleaner visual.
|
|
200
134
|
|
|
201
135
|
```html
|
|
202
|
-
<snice-waterfall
|
|
203
|
-
|
|
204
|
-
<script type="module">
|
|
205
|
-
const chart = document.getElementById('clean-chart');
|
|
206
|
-
chart.showValues = false;
|
|
207
|
-
chart.showConnectors = false;
|
|
208
|
-
chart.data = [
|
|
209
|
-
{ label: 'Start', value: 100, type: 'total' },
|
|
210
|
-
{ label: 'Add', value: 40 },
|
|
211
|
-
{ label: 'Remove', value: -25 },
|
|
212
|
-
{ label: 'Add', value: 15 },
|
|
213
|
-
{ label: 'End', value: 130, type: 'total' }
|
|
214
|
-
];
|
|
215
|
-
</script>
|
|
136
|
+
<snice-waterfall></snice-waterfall>
|
|
216
137
|
```
|
|
217
138
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
- **Color and text**: Bar types are distinguishable not only by color but also by their value labels (positive/negative numbers)
|
|
223
|
-
- **Keyboard support**: Bars are focusable and clickable via keyboard
|
|
224
|
-
- **Reduced motion**: When `animated` is set, animations respect `prefers-reduced-motion`
|
|
139
|
+
```typescript
|
|
140
|
+
chart.showValues = false;
|
|
141
|
+
chart.showConnectors = false;
|
|
142
|
+
```
|
|
225
143
|
|
|
226
|
-
##
|
|
144
|
+
## Accessibility
|
|
227
145
|
|
|
228
|
-
-
|
|
229
|
-
-
|
|
146
|
+
- Bars use appropriate roles for data visualization
|
|
147
|
+
- Value labels provide screen reader text when `showValues` is enabled
|
|
148
|
+
- Bar types are distinguishable by color and value labels
|
|
149
|
+
- Bars are focusable and clickable via keyboard
|
|
150
|
+
- Animations respect `prefers-reduced-motion`
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/weather.md -->
|
|
2
2
|
|
|
3
|
-
# Weather
|
|
3
|
+
# Weather
|
|
4
|
+
`<snice-weather>`
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Displays current weather conditions with temperature, condition description, humidity, wind speed, and an optional multi-day forecast. The component does not make API calls; it receives all data via properties.
|
|
6
7
|
|
|
7
8
|
## Table of Contents
|
|
8
9
|
- [Properties](#properties)
|
|
@@ -11,7 +12,6 @@ The weather component displays current weather conditions with temperature, cond
|
|
|
11
12
|
- [Basic Usage](#basic-usage)
|
|
12
13
|
- [Examples](#examples)
|
|
13
14
|
- [Accessibility](#accessibility)
|
|
14
|
-
- [Browser Support](#browser-support)
|
|
15
15
|
|
|
16
16
|
## Properties
|
|
17
17
|
|
|
@@ -21,52 +21,41 @@ The weather component displays current weather conditions with temperature, cond
|
|
|
21
21
|
| `unit` | `'celsius' \| 'fahrenheit'` | `'celsius'` | Temperature unit |
|
|
22
22
|
| `variant` | `'compact' \| 'full'` | `'full'` | Display variant |
|
|
23
23
|
|
|
24
|
-
### WeatherData
|
|
24
|
+
### WeatherData Interface
|
|
25
25
|
|
|
26
26
|
```typescript
|
|
27
27
|
interface WeatherData {
|
|
28
|
-
temp: number;
|
|
29
|
-
condition: string; //
|
|
28
|
+
temp: number;
|
|
29
|
+
condition: string; // e.g., "Sunny", "Partly Cloudy", "Rain"
|
|
30
30
|
icon?: string; // Emoji or custom icon (auto-detected from condition if omitted)
|
|
31
31
|
humidity?: number; // Humidity percentage
|
|
32
32
|
wind?: number; // Wind speed in km/h
|
|
33
|
-
forecast?: WeatherForecastDay[];
|
|
33
|
+
forecast?: WeatherForecastDay[];
|
|
34
34
|
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### WeatherForecastDay
|
|
38
35
|
|
|
39
|
-
```typescript
|
|
40
36
|
interface WeatherForecastDay {
|
|
41
|
-
day: string; //
|
|
42
|
-
high: number;
|
|
43
|
-
low: number;
|
|
44
|
-
condition: string;
|
|
45
|
-
icon?: string; //
|
|
37
|
+
day: string; // e.g., "Mon", "Tue"
|
|
38
|
+
high: number;
|
|
39
|
+
low: number;
|
|
40
|
+
condition: string;
|
|
41
|
+
icon?: string; // Auto-detected if omitted
|
|
46
42
|
}
|
|
47
43
|
```
|
|
48
44
|
|
|
49
|
-
### Variants
|
|
50
|
-
|
|
51
|
-
| Variant | Description |
|
|
52
|
-
|---------|-------------|
|
|
53
|
-
| `full` | Shows current weather, detail row (humidity and wind), and multi-day forecast |
|
|
54
|
-
| `compact` | Shows only the current temperature and weather icon; hides details and forecast |
|
|
55
|
-
|
|
56
45
|
### Auto-Detected Icons
|
|
57
46
|
|
|
58
|
-
When the `icon` property is omitted
|
|
47
|
+
When the `icon` property is omitted, the component maps the `condition` string to an appropriate emoji:
|
|
59
48
|
|
|
60
49
|
| Condition (contains) | Icon |
|
|
61
50
|
|----------------------|------|
|
|
62
|
-
| sun / clear | Sun
|
|
63
|
-
| partly cloud | Partly cloudy
|
|
64
|
-
| cloud | Cloud
|
|
65
|
-
| rain | Rain
|
|
66
|
-
| snow | Snow
|
|
67
|
-
| thunder / storm | Thunderstorm
|
|
68
|
-
| fog / mist | Fog
|
|
69
|
-
| wind | Wind
|
|
51
|
+
| sun / clear | Sun |
|
|
52
|
+
| partly cloud | Partly cloudy |
|
|
53
|
+
| cloud | Cloud |
|
|
54
|
+
| rain | Rain |
|
|
55
|
+
| snow | Snow |
|
|
56
|
+
| thunder / storm | Thunderstorm |
|
|
57
|
+
| fog / mist | Fog |
|
|
58
|
+
| wind | Wind |
|
|
70
59
|
|
|
71
60
|
## CSS Custom Properties
|
|
72
61
|
|
|
@@ -84,35 +73,30 @@ When the `icon` property is omitted on either the main data or forecast days, th
|
|
|
84
73
|
|
|
85
74
|
## CSS Parts
|
|
86
75
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
|
90
|
-
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `details` | `<div>` | Details row showing humidity and wind speed |
|
|
94
|
-
| `forecast` | `<div>` | Multi-day forecast section with day columns |
|
|
76
|
+
| Part | Description |
|
|
77
|
+
|------|-------------|
|
|
78
|
+
| `base` | Outer weather card container |
|
|
79
|
+
| `current` | Current conditions section with icon, temperature, and condition text |
|
|
80
|
+
| `details` | Details row showing humidity and wind speed |
|
|
81
|
+
| `forecast` | Multi-day forecast section with day columns |
|
|
95
82
|
|
|
96
|
-
|
|
97
|
-
snice-weather::part(base) {
|
|
98
|
-
border-radius: 12px;
|
|
99
|
-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
100
|
-
}
|
|
83
|
+
## Basic Usage
|
|
101
84
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
padding-top: 1rem;
|
|
105
|
-
}
|
|
85
|
+
```typescript
|
|
86
|
+
import 'snice/components/weather/snice-weather';
|
|
106
87
|
```
|
|
107
88
|
|
|
108
|
-
## Basic Usage
|
|
109
|
-
|
|
110
89
|
```html
|
|
111
90
|
<snice-weather></snice-weather>
|
|
112
91
|
```
|
|
113
92
|
|
|
114
93
|
```typescript
|
|
115
|
-
|
|
94
|
+
weather.data = {
|
|
95
|
+
temp: 22,
|
|
96
|
+
condition: 'Partly Cloudy',
|
|
97
|
+
humidity: 65,
|
|
98
|
+
wind: 12
|
|
99
|
+
};
|
|
116
100
|
```
|
|
117
101
|
|
|
118
102
|
## Examples
|
|
@@ -121,27 +105,20 @@ import 'snice/components/weather/snice-weather';
|
|
|
121
105
|
|
|
122
106
|
Show current conditions with humidity, wind, and a multi-day forecast.
|
|
123
107
|
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
condition: '
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
{ day: 'Tue', high: 20, low: 15, condition: 'Rain' },
|
|
139
|
-
{ day: 'Wed', high: 22, low: 16, condition: 'Cloudy' },
|
|
140
|
-
{ day: 'Thu', high: 25, low: 19, condition: 'Sunny' },
|
|
141
|
-
{ day: 'Fri', high: 21, low: 14, condition: 'Thunderstorm' }
|
|
142
|
-
]
|
|
143
|
-
};
|
|
144
|
-
</script>
|
|
108
|
+
```typescript
|
|
109
|
+
weather.data = {
|
|
110
|
+
temp: 22,
|
|
111
|
+
condition: 'Partly Cloudy',
|
|
112
|
+
humidity: 65,
|
|
113
|
+
wind: 12,
|
|
114
|
+
forecast: [
|
|
115
|
+
{ day: 'Mon', high: 24, low: 18, condition: 'Sunny' },
|
|
116
|
+
{ day: 'Tue', high: 20, low: 15, condition: 'Rain' },
|
|
117
|
+
{ day: 'Wed', high: 22, low: 16, condition: 'Cloudy' },
|
|
118
|
+
{ day: 'Thu', high: 25, low: 19, condition: 'Sunny' },
|
|
119
|
+
{ day: 'Fri', high: 21, low: 14, condition: 'Thunderstorm' }
|
|
120
|
+
]
|
|
121
|
+
};
|
|
145
122
|
```
|
|
146
123
|
|
|
147
124
|
### Compact Variant
|
|
@@ -149,15 +126,14 @@ Show current conditions with humidity, wind, and a multi-day forecast.
|
|
|
149
126
|
Use the `compact` variant for a small weather badge showing just the temperature and icon.
|
|
150
127
|
|
|
151
128
|
```html
|
|
152
|
-
<snice-weather
|
|
129
|
+
<snice-weather unit="fahrenheit" variant="compact"></snice-weather>
|
|
130
|
+
```
|
|
153
131
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
};
|
|
160
|
-
</script>
|
|
132
|
+
```typescript
|
|
133
|
+
weather.data = {
|
|
134
|
+
temp: 72,
|
|
135
|
+
condition: 'Sunny'
|
|
136
|
+
};
|
|
161
137
|
```
|
|
162
138
|
|
|
163
139
|
### Fahrenheit Units
|
|
@@ -165,90 +141,55 @@ Use the `compact` variant for a small weather badge showing just the temperature
|
|
|
165
141
|
Set `unit="fahrenheit"` for Fahrenheit temperature display.
|
|
166
142
|
|
|
167
143
|
```html
|
|
168
|
-
<snice-weather
|
|
169
|
-
|
|
170
|
-
<script type="module">
|
|
171
|
-
const weather = document.getElementById('weather-f');
|
|
172
|
-
weather.data = {
|
|
173
|
-
temp: 85,
|
|
174
|
-
condition: 'Clear',
|
|
175
|
-
humidity: 45,
|
|
176
|
-
wind: 8,
|
|
177
|
-
forecast: [
|
|
178
|
-
{ day: 'Sat', high: 87, low: 72, condition: 'Sunny' },
|
|
179
|
-
{ day: 'Sun', high: 82, low: 68, condition: 'Partly Cloudy' },
|
|
180
|
-
{ day: 'Mon', high: 79, low: 65, condition: 'Rain' }
|
|
181
|
-
]
|
|
182
|
-
};
|
|
183
|
-
</script>
|
|
144
|
+
<snice-weather unit="fahrenheit"></snice-weather>
|
|
184
145
|
```
|
|
185
146
|
|
|
186
147
|
### Custom Icons
|
|
187
148
|
|
|
188
149
|
Override the auto-detected icons by providing explicit `icon` values.
|
|
189
150
|
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
icon: '/icons/weather/
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
forecast: [
|
|
202
|
-
{ day: 'Mon', high: 20, low: 14, condition: 'Rain', icon: '/icons/weather/rain.svg' },
|
|
203
|
-
{ day: 'Tue', high: 22, low: 15, condition: 'Snow', icon: '/icons/weather/snow.svg' }
|
|
204
|
-
]
|
|
205
|
-
};
|
|
206
|
-
</script>
|
|
151
|
+
```typescript
|
|
152
|
+
weather.data = {
|
|
153
|
+
temp: 18,
|
|
154
|
+
condition: 'Overcast',
|
|
155
|
+
icon: '/icons/weather/overcast.svg',
|
|
156
|
+
humidity: 80,
|
|
157
|
+
wind: 20,
|
|
158
|
+
forecast: [
|
|
159
|
+
{ day: 'Mon', high: 20, low: 14, condition: 'Rain', icon: '/icons/weather/rain.svg' }
|
|
160
|
+
]
|
|
161
|
+
};
|
|
207
162
|
```
|
|
208
163
|
|
|
209
164
|
### Fetching Data from an API
|
|
210
165
|
|
|
211
166
|
The weather component does not call any APIs itself. Fetch data externally and pass it in.
|
|
212
167
|
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
import type { SniceWeatherElement } from 'snice/components/weather/snice-weather.types';
|
|
218
|
-
|
|
219
|
-
const weather = document.getElementById('live-weather') as SniceWeatherElement;
|
|
220
|
-
|
|
221
|
-
async function loadWeather() {
|
|
222
|
-
const response = await fetch('/api/weather?city=london');
|
|
223
|
-
const apiData = await response.json();
|
|
224
|
-
|
|
225
|
-
weather.data = {
|
|
226
|
-
temp: apiData.current.temp,
|
|
227
|
-
condition: apiData.current.condition,
|
|
228
|
-
humidity: apiData.current.humidity,
|
|
229
|
-
wind: apiData.current.wind_speed,
|
|
230
|
-
forecast: apiData.daily.map(day => ({
|
|
231
|
-
day: day.day_name.slice(0, 3),
|
|
232
|
-
high: day.high,
|
|
233
|
-
low: day.low,
|
|
234
|
-
condition: day.condition
|
|
235
|
-
}))
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
loadWeather();
|
|
240
|
-
</script>
|
|
241
|
-
```
|
|
168
|
+
```typescript
|
|
169
|
+
async function loadWeather() {
|
|
170
|
+
const response = await fetch('/api/weather?city=london');
|
|
171
|
+
const apiData = await response.json();
|
|
242
172
|
|
|
243
|
-
|
|
173
|
+
weather.data = {
|
|
174
|
+
temp: apiData.current.temp,
|
|
175
|
+
condition: apiData.current.condition,
|
|
176
|
+
humidity: apiData.current.humidity,
|
|
177
|
+
wind: apiData.current.wind_speed,
|
|
178
|
+
forecast: apiData.daily.map(day => ({
|
|
179
|
+
day: day.day_name.slice(0, 3),
|
|
180
|
+
high: day.high,
|
|
181
|
+
low: day.low,
|
|
182
|
+
condition: day.condition
|
|
183
|
+
}))
|
|
184
|
+
};
|
|
185
|
+
}
|
|
244
186
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
- **Weather icons**: Icons have alt text derived from the condition string for screen readers
|
|
248
|
-
- **Forecast readability**: Each forecast day includes high and low temperatures with labels
|
|
249
|
-
- **Color contrast**: All text meets WCAG AA contrast standards
|
|
187
|
+
loadWeather();
|
|
188
|
+
```
|
|
250
189
|
|
|
251
|
-
##
|
|
190
|
+
## Accessibility
|
|
252
191
|
|
|
253
|
-
-
|
|
254
|
-
-
|
|
192
|
+
- The unit (C or F) is included in screen reader text alongside the temperature value
|
|
193
|
+
- Weather icons have alt text derived from the condition string
|
|
194
|
+
- Each forecast day includes high and low temperatures with labels
|
|
195
|
+
- All text meets WCAG AA contrast standards
|