snice 4.28.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 +1 -1
- package/dist/cdn/badge/snice-badge.min.js +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 +2 -2
- package/dist/cdn/button/snice-button.js.map +1 -1
- package/dist/cdn/button/snice-button.min.js +2 -2
- 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 +2 -2
- package/dist/cdn/login/snice-login.js.map +1 -1
- package/dist/cdn/login/snice-login.min.js +2 -2
- 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 +73 -5
- 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 +73 -4
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +7 -7
- 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 +2 -2
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +2 -2
- 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/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.js +1 -1
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/create-request-handler.d.ts +42 -0
- package/dist/index.cjs +70 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +70 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +70 -1
- package/dist/index.iife.js.map +1 -1
- 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 +1 -1
package/docs/components/kpi.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/kpi.md -->
|
|
2
2
|
|
|
3
3
|
# KPI Component
|
|
4
4
|
|
|
@@ -12,6 +12,7 @@ A key performance indicator display component for showing metrics with optional
|
|
|
12
12
|
- [CSS Parts](#css-parts)
|
|
13
13
|
- [Basic Usage](#basic-usage)
|
|
14
14
|
- [Examples](#examples)
|
|
15
|
+
- [Accessibility](#accessibility)
|
|
15
16
|
|
|
16
17
|
## Properties
|
|
17
18
|
|
|
@@ -19,12 +20,12 @@ A key performance indicator display component for showing metrics with optional
|
|
|
19
20
|
|----------|------|---------|-------------|
|
|
20
21
|
| `label` | `string` | `''` | Label text (metric name) |
|
|
21
22
|
| `value` | `string \| number` | `''` | Main metric value to display |
|
|
22
|
-
| `trend-value` | `string \| number` | `undefined` | Optional trend value (e.g., "+12.5%") |
|
|
23
|
-
| `
|
|
24
|
-
| `sentiment` | `
|
|
25
|
-
| `size` | `
|
|
26
|
-
| `show-sparkline` | `boolean` | `true` | Whether to show sparkline when data is provided |
|
|
27
|
-
| `color-value` | `boolean` | `false` | Apply sentiment color to main value |
|
|
23
|
+
| `trendValue` (attr: `trend-value`) | `string \| number` | `undefined` | Optional trend value (e.g., "+12.5%") |
|
|
24
|
+
| `trendData` | `number[]` | `undefined` | Data for sparkline chart (set via JavaScript) |
|
|
25
|
+
| `sentiment` | `'up' \| 'down' \| 'neutral'` | `undefined` | Trend sentiment |
|
|
26
|
+
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Component size |
|
|
27
|
+
| `showSparkline` (attr: `show-sparkline`) | `boolean` | `true` | Whether to show sparkline when data is provided |
|
|
28
|
+
| `colorValue` (attr: `color-value`) | `boolean` | `false` | Apply sentiment color to main value |
|
|
28
29
|
|
|
29
30
|
## Slots
|
|
30
31
|
|
|
@@ -33,22 +34,6 @@ A key performance indicator display component for showing metrics with optional
|
|
|
33
34
|
| `before` | Content displayed before the label/value (e.g., icons) |
|
|
34
35
|
| `after` | Content displayed after sparkline (e.g., additional actions) |
|
|
35
36
|
|
|
36
|
-
## With Icon (Before Slot)
|
|
37
|
-
|
|
38
|
-
```html
|
|
39
|
-
<snice-kpi
|
|
40
|
-
label="Total Revenue"
|
|
41
|
-
value="$45,231"
|
|
42
|
-
trend-value="+12%"
|
|
43
|
-
sentiment="up">
|
|
44
|
-
<div slot="before" style="display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; background: var(--snice-color-primary-subtle); border-radius: var(--snice-border-radius-md); margin-bottom: var(--snice-spacing-xs);">
|
|
45
|
-
<svg style="width: 1.5rem; height: 1.5rem; color: var(--snice-color-primary); fill: currentColor;" viewBox="0 0 24 24">
|
|
46
|
-
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/>
|
|
47
|
-
</svg>
|
|
48
|
-
</div>
|
|
49
|
-
</snice-kpi>
|
|
50
|
-
```
|
|
51
|
-
|
|
52
37
|
## CSS Parts
|
|
53
38
|
|
|
54
39
|
| Part | Description |
|
|
@@ -83,6 +68,10 @@ snice-kpi::part(trend) {
|
|
|
83
68
|
|
|
84
69
|
## Basic Usage
|
|
85
70
|
|
|
71
|
+
```typescript
|
|
72
|
+
import 'snice/components/kpi/snice-kpi';
|
|
73
|
+
```
|
|
74
|
+
|
|
86
75
|
```html
|
|
87
76
|
<snice-kpi
|
|
88
77
|
label="Total Revenue"
|
|
@@ -90,7 +79,9 @@ snice-kpi::part(trend) {
|
|
|
90
79
|
</snice-kpi>
|
|
91
80
|
```
|
|
92
81
|
|
|
93
|
-
##
|
|
82
|
+
## Examples
|
|
83
|
+
|
|
84
|
+
### With Trend Indicator
|
|
94
85
|
|
|
95
86
|
```html
|
|
96
87
|
<snice-kpi
|
|
@@ -101,7 +92,7 @@ snice-kpi::part(trend) {
|
|
|
101
92
|
</snice-kpi>
|
|
102
93
|
```
|
|
103
94
|
|
|
104
|
-
|
|
95
|
+
### With Sparkline
|
|
105
96
|
|
|
106
97
|
```html
|
|
107
98
|
<snice-kpi
|
|
@@ -119,9 +110,24 @@ snice-kpi::part(trend) {
|
|
|
119
110
|
</script>
|
|
120
111
|
```
|
|
121
112
|
|
|
122
|
-
|
|
113
|
+
### With Icon (Before Slot)
|
|
114
|
+
|
|
115
|
+
```html
|
|
116
|
+
<snice-kpi
|
|
117
|
+
label="Total Revenue"
|
|
118
|
+
value="$45,231"
|
|
119
|
+
trend-value="+12%"
|
|
120
|
+
sentiment="up">
|
|
121
|
+
<div slot="before" style="display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; background: var(--snice-color-primary-subtle); border-radius: var(--snice-border-radius-md); margin-bottom: var(--snice-spacing-xs);">
|
|
122
|
+
<svg style="width: 1.5rem; height: 1.5rem; color: var(--snice-color-primary); fill: currentColor;" viewBox="0 0 24 24">
|
|
123
|
+
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/>
|
|
124
|
+
</svg>
|
|
125
|
+
</div>
|
|
126
|
+
</snice-kpi>
|
|
127
|
+
```
|
|
123
128
|
|
|
124
129
|
### Dashboard Metrics
|
|
130
|
+
|
|
125
131
|
```html
|
|
126
132
|
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;">
|
|
127
133
|
<snice-kpi
|
|
@@ -157,6 +163,7 @@ snice-kpi::part(trend) {
|
|
|
157
163
|
```
|
|
158
164
|
|
|
159
165
|
### Without Sparkline
|
|
166
|
+
|
|
160
167
|
```html
|
|
161
168
|
<snice-kpi
|
|
162
169
|
label="Customer Satisfaction"
|
|
@@ -167,59 +174,26 @@ snice-kpi::part(trend) {
|
|
|
167
174
|
</snice-kpi>
|
|
168
175
|
```
|
|
169
176
|
|
|
170
|
-
###
|
|
171
|
-
```html
|
|
172
|
-
<snice-kpi
|
|
173
|
-
id="nps"
|
|
174
|
-
label="Net Promoter Score"
|
|
175
|
-
value="72"
|
|
176
|
-
trend-value="+4 pts"
|
|
177
|
-
sentiment="up">
|
|
178
|
-
</snice-kpi>
|
|
179
|
-
|
|
180
|
-
<snice-kpi
|
|
181
|
-
id="cac"
|
|
182
|
-
label="Customer Acquisition Cost"
|
|
183
|
-
value="$156"
|
|
184
|
-
trend-value="-5.2%"
|
|
185
|
-
sentiment="down">
|
|
186
|
-
</snice-kpi>
|
|
187
|
-
```
|
|
177
|
+
### Sentiment Variants
|
|
188
178
|
|
|
189
|
-
## Features
|
|
190
|
-
|
|
191
|
-
- **Clear Value Display**: Large, prominent metric value
|
|
192
|
-
- **Icon Support**: Optional icon slot for visual branding
|
|
193
|
-
- **Trend Indicators**: Optional trend value with sentiment icons
|
|
194
|
-
- **Sparkline Integration**: Built-in sparkline chart support
|
|
195
|
-
- **Sentiment Colors**: Visual feedback with up/down/neutral states
|
|
196
|
-
- **Multiple Sizes**: Small, medium, and large variants
|
|
197
|
-
- **Flexible Layout**: Responsive and adaptable to different layouts
|
|
198
|
-
|
|
199
|
-
## Sentiment Variants
|
|
200
|
-
|
|
201
|
-
### Up (Positive)
|
|
202
179
|
```html
|
|
180
|
+
<!-- Up (Positive) -->
|
|
203
181
|
<snice-kpi
|
|
204
182
|
label="Profit Margin"
|
|
205
183
|
value="34.2%"
|
|
206
184
|
trend-value="+3.5%"
|
|
207
185
|
sentiment="up">
|
|
208
186
|
</snice-kpi>
|
|
209
|
-
```
|
|
210
187
|
|
|
211
|
-
|
|
212
|
-
```html
|
|
188
|
+
<!-- Down (Attention Needed) -->
|
|
213
189
|
<snice-kpi
|
|
214
190
|
label="Churn Rate"
|
|
215
191
|
value="2.3%"
|
|
216
192
|
trend-value="+0.8%"
|
|
217
193
|
sentiment="down">
|
|
218
194
|
</snice-kpi>
|
|
219
|
-
```
|
|
220
195
|
|
|
221
|
-
|
|
222
|
-
```html
|
|
196
|
+
<!-- Neutral (Stable) -->
|
|
223
197
|
<snice-kpi
|
|
224
198
|
label="Market Share"
|
|
225
199
|
value="28.5%"
|
|
@@ -228,50 +202,12 @@ snice-kpi::part(trend) {
|
|
|
228
202
|
</snice-kpi>
|
|
229
203
|
```
|
|
230
204
|
|
|
231
|
-
|
|
205
|
+
### Sizes
|
|
232
206
|
|
|
233
|
-
### Small
|
|
234
207
|
```html
|
|
235
|
-
<snice-kpi
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
size="small">
|
|
239
|
-
</snice-kpi>
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
### Medium (Default)
|
|
243
|
-
```html
|
|
244
|
-
<snice-kpi
|
|
245
|
-
label="Active Users"
|
|
246
|
-
value="1,234"
|
|
247
|
-
size="medium">
|
|
248
|
-
</snice-kpi>
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
### Large
|
|
252
|
-
```html
|
|
253
|
-
<snice-kpi
|
|
254
|
-
label="Active Users"
|
|
255
|
-
value="1,234"
|
|
256
|
-
size="large">
|
|
257
|
-
</snice-kpi>
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
## Theming
|
|
261
|
-
|
|
262
|
-
The component uses these CSS custom properties:
|
|
263
|
-
|
|
264
|
-
```css
|
|
265
|
-
--snice-color-background
|
|
266
|
-
--snice-color-border
|
|
267
|
-
--snice-color-text
|
|
268
|
-
--snice-color-text-secondary
|
|
269
|
-
--snice-color-success
|
|
270
|
-
--snice-color-danger
|
|
271
|
-
--snice-spacing-*
|
|
272
|
-
--snice-font-size-*
|
|
273
|
-
--snice-font-weight-*
|
|
274
|
-
--snice-border-radius-md
|
|
208
|
+
<snice-kpi label="Active Users" value="1,234" size="small"></snice-kpi>
|
|
209
|
+
<snice-kpi label="Active Users" value="1,234" size="medium"></snice-kpi>
|
|
210
|
+
<snice-kpi label="Active Users" value="1,234" size="large"></snice-kpi>
|
|
275
211
|
```
|
|
276
212
|
|
|
277
213
|
## Accessibility
|
|
@@ -279,10 +215,3 @@ The component uses these CSS custom properties:
|
|
|
279
215
|
- Labels provide context for displayed values
|
|
280
216
|
- Sentiment indicators have clear visual differentiation (color + icon)
|
|
281
217
|
- Sufficient color contrast for all text elements
|
|
282
|
-
|
|
283
|
-
## Performance
|
|
284
|
-
|
|
285
|
-
- Lightweight component with minimal DOM
|
|
286
|
-
- Efficient sparkline rendering via SVG
|
|
287
|
-
- CSS containment for optimized rendering
|
|
288
|
-
- No external dependencies beyond sparkline component
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/layout.md -->
|
|
2
2
|
|
|
3
3
|
# Layout
|
|
4
4
|
`<snice-layout>`
|
|
5
5
|
|
|
6
6
|
Application layout with header navigation, main content area, and footer.
|
|
7
7
|
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**CDN**
|
|
16
|
-
```html
|
|
17
|
-
<script src="snice-runtime.min.js"></script>
|
|
18
|
-
<script src="snice-layout.min.js"></script>
|
|
19
|
-
```
|
|
8
|
+
## Table of Contents
|
|
9
|
+
- [Methods](#methods)
|
|
10
|
+
- [Slots](#slots)
|
|
11
|
+
- [CSS Parts](#css-parts)
|
|
12
|
+
- [Basic Usage](#basic-usage)
|
|
13
|
+
- [Examples](#examples)
|
|
20
14
|
|
|
21
15
|
## Methods
|
|
22
16
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/leaderboard.md -->
|
|
2
2
|
|
|
3
|
-
# Leaderboard
|
|
3
|
+
# Leaderboard
|
|
4
|
+
`<snice-leaderboard>`
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
A ranked list of entries with optional avatars, change indicators, and podium highlighting. Supports a dual API: declarative child elements (`<snice-leaderboard-entry>`) and an imperative `setEntries()` method.
|
|
6
7
|
|
|
7
8
|
## Table of Contents
|
|
9
|
+
- [Components](#components)
|
|
8
10
|
- [Properties](#properties)
|
|
9
11
|
- [Methods](#methods)
|
|
10
12
|
- [Events](#events)
|
|
@@ -12,11 +14,25 @@ The leaderboard component displays a ranked list of entries with optional avatar
|
|
|
12
14
|
- [CSS Custom Properties](#css-custom-properties)
|
|
13
15
|
- [CSS Parts](#css-parts)
|
|
14
16
|
- [Basic Usage](#basic-usage)
|
|
15
|
-
- [
|
|
16
|
-
- [Imperative API (setEntries)](#imperative-api-setentries)
|
|
17
|
-
- [Variants](#variants)
|
|
17
|
+
- [Examples](#examples)
|
|
18
18
|
- [Accessibility](#accessibility)
|
|
19
19
|
|
|
20
|
+
## Components
|
|
21
|
+
|
|
22
|
+
- `<snice-leaderboard>` - The container component
|
|
23
|
+
- `<snice-leaderboard-entry>` - Data container child element (does not render its own shadow DOM)
|
|
24
|
+
|
|
25
|
+
### Entry Attributes
|
|
26
|
+
|
|
27
|
+
| Attribute | Type | Default | Description |
|
|
28
|
+
|-----------|------|---------|-------------|
|
|
29
|
+
| `rank` | `number` | `0` | Position/rank number |
|
|
30
|
+
| `name` | `string` | `''` | Display name |
|
|
31
|
+
| `score` | `string` | `''` | Score to display |
|
|
32
|
+
| `avatar` | `string` | `''` | URL to avatar image (optional) |
|
|
33
|
+
| `change` | `number` | `0` | Rank change indicator (positive = up, negative = down) |
|
|
34
|
+
| `highlighted` | `boolean` | `false` | Highlight this entry |
|
|
35
|
+
|
|
20
36
|
## Properties
|
|
21
37
|
|
|
22
38
|
| Property | Type | Default | Description |
|
|
@@ -27,36 +43,29 @@ The leaderboard component displays a ranked list of entries with optional avatar
|
|
|
27
43
|
|
|
28
44
|
## Methods
|
|
29
45
|
|
|
30
|
-
|
|
46
|
+
| Method | Arguments | Description |
|
|
47
|
+
|--------|-----------|-------------|
|
|
48
|
+
| `setEntries()` | `entries: LeaderboardEntry[]` | Set entries imperatively. Slot children take precedence. |
|
|
31
49
|
|
|
32
|
-
|
|
50
|
+
### LeaderboardEntry Interface
|
|
33
51
|
|
|
34
52
|
```typescript
|
|
35
53
|
interface LeaderboardEntry {
|
|
36
|
-
rank: number;
|
|
37
|
-
name: string;
|
|
38
|
-
score: number | string;
|
|
39
|
-
avatar?: string;
|
|
40
|
-
change?: number;
|
|
41
|
-
highlighted?: boolean;
|
|
54
|
+
rank: number;
|
|
55
|
+
name: string;
|
|
56
|
+
score: number | string;
|
|
57
|
+
avatar?: string;
|
|
58
|
+
change?: number;
|
|
59
|
+
highlighted?: boolean;
|
|
42
60
|
}
|
|
43
61
|
```
|
|
44
62
|
|
|
45
63
|
## Events
|
|
46
64
|
|
|
47
|
-
|
|
65
|
+
| Event | Detail | Description |
|
|
66
|
+
|-------|--------|-------------|
|
|
67
|
+
| `entry-click` | `{ entry: LeaderboardEntry, index: number }` | Fired when a leaderboard entry is clicked |
|
|
48
68
|
|
|
49
|
-
Fired when a leaderboard entry is clicked.
|
|
50
|
-
|
|
51
|
-
**Event Detail:**
|
|
52
|
-
```typescript
|
|
53
|
-
{
|
|
54
|
-
entry: LeaderboardEntry; // The clicked entry data
|
|
55
|
-
index: number; // Index of the entry
|
|
56
|
-
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Example:**
|
|
60
69
|
```typescript
|
|
61
70
|
leaderboard.addEventListener('entry-click', (e) => {
|
|
62
71
|
console.log('Clicked:', e.detail.entry.name);
|
|
@@ -83,7 +92,7 @@ leaderboard.addEventListener('entry-click', (e) => {
|
|
|
83
92
|
| `--leaderboard-bg-element` | Element background | `var(--snice-color-background-element)` |
|
|
84
93
|
| `--leaderboard-radius` | Border radius | `var(--snice-border-radius-lg)` |
|
|
85
94
|
|
|
86
|
-
|
|
95
|
+
## CSS Parts
|
|
87
96
|
|
|
88
97
|
| Part | Description |
|
|
89
98
|
|------|-------------|
|
|
@@ -94,6 +103,10 @@ leaderboard.addEventListener('entry-click', (e) => {
|
|
|
94
103
|
|
|
95
104
|
## Basic Usage
|
|
96
105
|
|
|
106
|
+
```typescript
|
|
107
|
+
import 'snice/components/leaderboard/snice-leaderboard';
|
|
108
|
+
```
|
|
109
|
+
|
|
97
110
|
```html
|
|
98
111
|
<snice-leaderboard title="Top Players">
|
|
99
112
|
<snice-leaderboard-entry rank="1" name="Alice" score="2500"></snice-leaderboard-entry>
|
|
@@ -101,53 +114,23 @@ leaderboard.addEventListener('entry-click', (e) => {
|
|
|
101
114
|
</snice-leaderboard>
|
|
102
115
|
```
|
|
103
116
|
|
|
104
|
-
|
|
105
|
-
import 'snice/components/leaderboard/snice-leaderboard';
|
|
106
|
-
```
|
|
117
|
+
## Examples
|
|
107
118
|
|
|
108
|
-
|
|
119
|
+
### Declarative API (Child Elements)
|
|
109
120
|
|
|
110
|
-
Use `<snice-leaderboard-entry>` elements as children
|
|
121
|
+
Use `<snice-leaderboard-entry>` elements as children. The parent reads attributes and renders the full UI.
|
|
111
122
|
|
|
112
123
|
```html
|
|
113
124
|
<snice-leaderboard variant="podium" title="Season Rankings">
|
|
114
|
-
<snice-leaderboard-entry
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
score="2,500"
|
|
118
|
-
avatar="alice.jpg"
|
|
119
|
-
change="3"
|
|
120
|
-
highlighted>
|
|
121
|
-
</snice-leaderboard-entry>
|
|
122
|
-
<snice-leaderboard-entry
|
|
123
|
-
rank="2"
|
|
124
|
-
name="Bob"
|
|
125
|
-
score="2,100"
|
|
126
|
-
change="-1">
|
|
127
|
-
</snice-leaderboard-entry>
|
|
128
|
-
<snice-leaderboard-entry
|
|
129
|
-
rank="3"
|
|
130
|
-
name="Charlie"
|
|
131
|
-
score="1,800"
|
|
132
|
-
change="2">
|
|
133
|
-
</snice-leaderboard-entry>
|
|
125
|
+
<snice-leaderboard-entry rank="1" name="Alice" score="2,500" avatar="alice.jpg" change="3" highlighted></snice-leaderboard-entry>
|
|
126
|
+
<snice-leaderboard-entry rank="2" name="Bob" score="2,100" change="-1"></snice-leaderboard-entry>
|
|
127
|
+
<snice-leaderboard-entry rank="3" name="Charlie" score="1,800" change="2"></snice-leaderboard-entry>
|
|
134
128
|
</snice-leaderboard>
|
|
135
129
|
```
|
|
136
130
|
|
|
137
|
-
###
|
|
131
|
+
### Imperative API (setEntries)
|
|
138
132
|
|
|
139
|
-
|
|
140
|
-
|-----------|------|---------|-------------|
|
|
141
|
-
| `rank` | `number` | `0` | Position/rank number |
|
|
142
|
-
| `name` | `string` | `''` | Display name |
|
|
143
|
-
| `score` | `string` | `''` | Score to display |
|
|
144
|
-
| `avatar` | `string` | `''` | URL to avatar image (optional) |
|
|
145
|
-
| `change` | `number` | `0` | Rank change indicator (positive = up, negative = down) |
|
|
146
|
-
| `highlighted` | `boolean` | `false` | Highlight this entry |
|
|
147
|
-
|
|
148
|
-
## Imperative API (setEntries)
|
|
149
|
-
|
|
150
|
-
For dynamic data (e.g., fetched from an API), use the `setEntries()` method.
|
|
133
|
+
For dynamic data, use the `setEntries()` method. Slot children take precedence when both are used.
|
|
151
134
|
|
|
152
135
|
```typescript
|
|
153
136
|
leaderboard.setEntries([
|
|
@@ -158,30 +141,23 @@ leaderboard.setEntries([
|
|
|
158
141
|
]);
|
|
159
142
|
```
|
|
160
143
|
|
|
161
|
-
###
|
|
162
|
-
|
|
163
|
-
When **both** child elements and `setEntries()` are used:
|
|
164
|
-
- Child elements (`<snice-leaderboard-entry>`) take precedence
|
|
165
|
-
- `setEntries()` calls are ignored while child elements are present
|
|
166
|
-
- When all children are removed, `setEntries()` becomes active again
|
|
167
|
-
|
|
168
|
-
## Variants
|
|
144
|
+
### Variants
|
|
169
145
|
|
|
170
|
-
|
|
146
|
+
#### Default
|
|
171
147
|
A flat list of ranked entries.
|
|
172
148
|
|
|
173
149
|
```html
|
|
174
150
|
<snice-leaderboard>...</snice-leaderboard>
|
|
175
151
|
```
|
|
176
152
|
|
|
177
|
-
|
|
153
|
+
#### Podium
|
|
178
154
|
The top 3 entries are displayed in a podium layout (2nd, 1st, 3rd). Remaining entries appear as a regular list below.
|
|
179
155
|
|
|
180
156
|
```html
|
|
181
157
|
<snice-leaderboard variant="podium">...</snice-leaderboard>
|
|
182
158
|
```
|
|
183
159
|
|
|
184
|
-
|
|
160
|
+
#### Compact
|
|
185
161
|
Tighter spacing with smaller avatars, suitable for sidebars or smaller containers.
|
|
186
162
|
|
|
187
163
|
```html
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/link-preview.md -->
|
|
2
2
|
|
|
3
3
|
# Link Preview
|
|
4
4
|
`<snice-link-preview>`
|
|
5
5
|
|
|
6
|
-
Displays a rich preview card for a URL with image, title, description, and site info.
|
|
6
|
+
Displays a rich preview card for a URL with image, title, description, and site info. Clicking the card opens the URL in a new tab.
|
|
7
7
|
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**CDN**
|
|
16
|
-
```html
|
|
17
|
-
<script src="snice-runtime.min.js"></script>
|
|
18
|
-
<script src="snice-link-preview.min.js"></script>
|
|
19
|
-
```
|
|
8
|
+
## Table of Contents
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Events](#events)
|
|
11
|
+
- [CSS Parts](#css-parts)
|
|
12
|
+
- [Basic Usage](#basic-usage)
|
|
13
|
+
- [Examples](#examples)
|
|
14
|
+
- [Accessibility](#accessibility)
|
|
20
15
|
|
|
21
16
|
## Properties
|
|
22
17
|
|
|
@@ -26,8 +21,8 @@ import 'snice/components/link-preview/snice-link-preview';
|
|
|
26
21
|
| `title` | `string` | `''` | Preview title (clamped to 2 lines) |
|
|
27
22
|
| `description` | `string` | `''` | Preview description (clamped to 3 lines) |
|
|
28
23
|
| `image` | `string` | `''` | Preview image URL |
|
|
29
|
-
| `siteName` (attr: `site-name`) | `string` | `''` | Site name in footer |
|
|
30
|
-
| `favicon` | `string` | `''` | Favicon URL in footer |
|
|
24
|
+
| `siteName` (attr: `site-name`) | `string` | `''` | Site name shown in footer |
|
|
25
|
+
| `favicon` | `string` | `''` | Favicon URL shown in footer |
|
|
31
26
|
| `variant` | `'vertical' \| 'horizontal'` | `'vertical'` | Card layout direction |
|
|
32
27
|
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Card size |
|
|
33
28
|
|
|
@@ -155,3 +150,12 @@ When no image is provided, a placeholder link icon is shown.
|
|
|
155
150
|
});
|
|
156
151
|
</script>
|
|
157
152
|
```
|
|
153
|
+
|
|
154
|
+
## Accessibility
|
|
155
|
+
|
|
156
|
+
- The card has `role="article"` and `tabindex="0"` for keyboard focus
|
|
157
|
+
- Keyboard activation via Enter or Space keys
|
|
158
|
+
- Images use `loading="lazy"` and empty `alt` attributes (decorative)
|
|
159
|
+
- Title is clamped to 2 lines, description to 3 lines with CSS overflow
|
|
160
|
+
- Focus ring is visible via `:focus-visible` styling
|
|
161
|
+
- Click opens URL in new tab with `noopener,noreferrer`
|
package/docs/components/link.md
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
<!-- AI: For
|
|
1
|
+
<!-- AI: For the AI-optimized version of this doc, see docs/ai/components/link.md -->
|
|
2
2
|
|
|
3
3
|
# Link
|
|
4
4
|
`<snice-link>`
|
|
5
5
|
|
|
6
6
|
A customizable hyperlink component with variants, external link handling, and hash routing support.
|
|
7
7
|
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
```html
|
|
17
|
-
<script src="snice-runtime.min.js"></script>
|
|
18
|
-
<script src="snice-link.min.js"></script>
|
|
19
|
-
```
|
|
8
|
+
## Table of Contents
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Events](#events)
|
|
11
|
+
- [Slots](#slots)
|
|
12
|
+
- [CSS Parts](#css-parts)
|
|
13
|
+
- [Basic Usage](#basic-usage)
|
|
14
|
+
- [Examples](#examples)
|
|
15
|
+
- [Accessibility](#accessibility)
|
|
20
16
|
|
|
21
17
|
## Properties
|
|
22
18
|
|
|
@@ -26,9 +22,9 @@ import 'snice/components/link/snice-link';
|
|
|
26
22
|
| `target` | `'_self' \| '_blank' \| '_parent' \| '_top'` | `'_self'` | Link target |
|
|
27
23
|
| `variant` | `'default' \| 'primary' \| 'secondary' \| 'muted'` | `'default'` | Visual style |
|
|
28
24
|
| `disabled` | `boolean` | `false` | Disables the link |
|
|
29
|
-
| `external` | `boolean` | `false` | Opens in new tab with `noopener noreferrer` |
|
|
25
|
+
| `external` | `boolean` | `false` | Opens in new tab with `noopener noreferrer` and shows arrow icon |
|
|
30
26
|
| `underline` | `boolean` | `false` | Shows text underline |
|
|
31
|
-
| `hash` | `boolean` | `false` | Auto-prepends `#` to href |
|
|
27
|
+
| `hash` | `boolean` | `false` | Auto-prepends `#` to href for SPA routing |
|
|
32
28
|
|
|
33
29
|
## Events
|
|
34
30
|
|
|
@@ -45,10 +41,10 @@ import 'snice/components/link/snice-link';
|
|
|
45
41
|
|
|
46
42
|
## CSS Parts
|
|
47
43
|
|
|
48
|
-
| Part | Description |
|
|
49
|
-
|
|
50
|
-
| `link` | The anchor element |
|
|
51
|
-
| `external-icon` | The external link arrow icon |
|
|
44
|
+
| Part | Element | Description |
|
|
45
|
+
|------|---------|-------------|
|
|
46
|
+
| `link` | `<a>` | The anchor element |
|
|
47
|
+
| `external-icon` | `<span>` | The external link arrow icon (visible when `external` is set) |
|
|
52
48
|
|
|
53
49
|
## Basic Usage
|
|
54
50
|
|
|
@@ -143,3 +139,10 @@ Links display inline and work naturally within text.
|
|
|
143
139
|
<snice-link href="https://github.com" external variant="muted">GitHub</snice-link>
|
|
144
140
|
</footer>
|
|
145
141
|
```
|
|
142
|
+
|
|
143
|
+
## Accessibility
|
|
144
|
+
|
|
145
|
+
- Renders a standard `<a>` element inside shadow DOM
|
|
146
|
+
- External links automatically get `rel="noopener noreferrer"` and `target="_blank"`
|
|
147
|
+
- Disabled links prevent click events and use `pointer-events: none` with a `not-allowed` cursor
|
|
148
|
+
- The `navigate` event is cancelable, allowing routers to prevent default browser navigation
|