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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Key-value pair editor for HTTP headers, env vars, config entries. Dual API: declarative `<snice-kv-pair>` children or imperative `setItems()`.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Components
|
|
6
6
|
|
|
7
7
|
- `snice-key-value` — Container/editor
|
|
8
8
|
- `snice-kv-pair` — Data container child (no shadow DOM)
|
|
@@ -22,7 +22,7 @@ readonly: boolean = false;
|
|
|
22
22
|
name: string = '';
|
|
23
23
|
variant: 'default'|'compact' = 'default';
|
|
24
24
|
mode: 'edit'|'view' = 'edit'; // view = read-only display
|
|
25
|
-
showCopy: boolean = false; // attr: show-copy
|
|
25
|
+
showCopy: boolean = false; // attr: show-copy
|
|
26
26
|
value: string; // readonly getter — JSON string of items
|
|
27
27
|
```
|
|
28
28
|
|
|
@@ -34,13 +34,6 @@ value: string = '';
|
|
|
34
34
|
description: string = '';
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
## Events
|
|
38
|
-
|
|
39
|
-
- `kv-add` → `{ item: KeyValueItem, index: number }`
|
|
40
|
-
- `kv-remove` → `{ item: KeyValueItem, index: number }`
|
|
41
|
-
- `kv-change` → `{ items: KeyValueItem[] }`
|
|
42
|
-
- `kv-copy` → `{ items: KeyValueItem[] }`
|
|
43
|
-
|
|
44
37
|
## Methods
|
|
45
38
|
|
|
46
39
|
- `setItems(items)` - Set items imperatively (ignored in slot mode)
|
|
@@ -50,7 +43,26 @@ description: string = '';
|
|
|
50
43
|
- `getItems()` - Returns non-empty items
|
|
51
44
|
- `focus()` - Focus first key input
|
|
52
45
|
|
|
53
|
-
##
|
|
46
|
+
## Events
|
|
47
|
+
|
|
48
|
+
- `kv-add` → `{ item: KeyValueItem, index: number }`
|
|
49
|
+
- `kv-remove` → `{ item: KeyValueItem, index: number }`
|
|
50
|
+
- `kv-change` → `{ items: KeyValueItem[] }`
|
|
51
|
+
- `kv-copy` → `{ items: KeyValueItem[] }`
|
|
52
|
+
|
|
53
|
+
## Slots
|
|
54
|
+
|
|
55
|
+
- `(default)` - `<snice-kv-pair>` child elements
|
|
56
|
+
|
|
57
|
+
## CSS Parts
|
|
58
|
+
|
|
59
|
+
`base`, `title`, `copy-button`, `rows`, `row`, `key-input`, `value-input`, `description-input`, `delete-button`, `view-row`, `view-key`, `view-value`, `view-desc`, `empty`
|
|
60
|
+
|
|
61
|
+
## Basic Usage
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
import 'snice/components/key-value/snice-key-value';
|
|
65
|
+
```
|
|
54
66
|
|
|
55
67
|
```html
|
|
56
68
|
<!-- Declarative -->
|
|
@@ -77,14 +89,18 @@ kv.addEventListener('kv-change', e => console.log(e.detail.items));
|
|
|
77
89
|
|
|
78
90
|
<!-- Compact with descriptions -->
|
|
79
91
|
<snice-key-value variant="compact" show-description></snice-key-value>
|
|
92
|
+
|
|
93
|
+
<!-- View mode -->
|
|
94
|
+
<snice-key-value mode="view" label="Response Headers">
|
|
95
|
+
<snice-kv-pair key="Content-Type" value="application/json"></snice-kv-pair>
|
|
96
|
+
</snice-key-value>
|
|
80
97
|
```
|
|
81
98
|
|
|
82
99
|
## Behavior
|
|
83
100
|
|
|
84
|
-
- **Auto-expand** (default): last row non-empty
|
|
85
|
-
- **Fixed rows**: `rows="5"`
|
|
101
|
+
- **Auto-expand** (default): last row non-empty -> new empty row appended
|
|
102
|
+
- **Fixed rows**: `rows="5"` -> exactly 5, no delete buttons, no auto-expand
|
|
86
103
|
- **Slot precedence**: `<snice-kv-pair>` children override `setItems()`
|
|
87
|
-
- **View mode**: `mode="view"` renders as read-only text
|
|
88
|
-
- **Copy button**: `show-copy` adds clipboard button
|
|
89
|
-
- **Form associated**: `value` getter returns
|
|
90
|
-
- Delete all rows → one empty row remains
|
|
104
|
+
- **View mode**: `mode="view"` renders as read-only text, empty items hidden
|
|
105
|
+
- **Copy button**: `show-copy` adds clipboard button, copies JSON
|
|
106
|
+
- **Form associated**: `value` getter returns JSON string, `setFormValue()` on every change
|
|
@@ -2,39 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
Key performance indicator display with value, label, trend, sparkline, and sentiment.
|
|
4
4
|
|
|
5
|
-
>
|
|
5
|
+
> `snice-stat` has been merged into `snice-kpi`.
|
|
6
6
|
|
|
7
7
|
## Properties
|
|
8
8
|
|
|
9
9
|
```typescript
|
|
10
|
-
label: string = ''
|
|
11
|
-
value: string | number = ''
|
|
12
|
-
trendValue?: string | number
|
|
13
|
-
trendData?: number[]
|
|
14
|
-
sentiment?: KpiSentiment
|
|
15
|
-
size: KpiSize = 'medium'
|
|
16
|
-
showSparkline: boolean = true
|
|
17
|
-
colorValue: boolean = false
|
|
10
|
+
label: string = '';
|
|
11
|
+
value: string | number = '';
|
|
12
|
+
trendValue?: string | number; // attr: trend-value
|
|
13
|
+
trendData?: number[]; // Sparkline data array (JS only, attribute: false)
|
|
14
|
+
sentiment?: KpiSentiment; // 'up' | 'down' | 'neutral'
|
|
15
|
+
size: KpiSize = 'medium'; // 'small' | 'medium' | 'large'
|
|
16
|
+
showSparkline: boolean = true; // attr: show-sparkline
|
|
17
|
+
colorValue: boolean = false; // attr: color-value — apply sentiment color to value
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
## Slots
|
|
21
21
|
|
|
22
|
+
- `before` - Content before label/value (e.g., icons)
|
|
23
|
+
- `after` - Content after sparkline (e.g., actions)
|
|
24
|
+
|
|
25
|
+
## CSS Parts
|
|
26
|
+
|
|
27
|
+
- `container` - Main container
|
|
28
|
+
- `header` - Header section
|
|
29
|
+
- `main` - Main content (label + value)
|
|
30
|
+
- `label` - Label text
|
|
31
|
+
- `value` - Value text
|
|
32
|
+
- `trend` - Trend container
|
|
33
|
+
- `trend-icon` - Trend icon (up/down/neutral arrow)
|
|
34
|
+
- `trend-value` - Trend value text
|
|
35
|
+
- `sparkline` - Sparkline container
|
|
36
|
+
|
|
37
|
+
## Basic Usage
|
|
38
|
+
|
|
22
39
|
```typescript
|
|
23
|
-
|
|
24
|
-
after // Content after sparkline (e.g., actions)
|
|
40
|
+
import 'snice/components/kpi/snice-kpi';
|
|
25
41
|
```
|
|
26
42
|
|
|
27
|
-
## Usage
|
|
28
|
-
|
|
29
43
|
```html
|
|
30
44
|
<!-- Basic -->
|
|
31
45
|
<snice-kpi label="Revenue" value="$45,231"></snice-kpi>
|
|
32
46
|
|
|
33
|
-
<!-- With icon (before slot) -->
|
|
34
|
-
<snice-kpi label="Revenue" value="$45,231">
|
|
35
|
-
<div slot="before">🏆</div>
|
|
36
|
-
</snice-kpi>
|
|
37
|
-
|
|
38
47
|
<!-- With trend -->
|
|
39
48
|
<snice-kpi
|
|
40
49
|
label="Monthly Revenue"
|
|
@@ -59,9 +68,9 @@ sales.trendData = [20, 25, 22, 30, 28, 35, 32];
|
|
|
59
68
|
|
|
60
69
|
```html
|
|
61
70
|
<!-- Sentiments -->
|
|
62
|
-
<snice-kpi sentiment="up"></snice-kpi> <!-- Green,
|
|
63
|
-
<snice-kpi sentiment="down"></snice-kpi> <!-- Red,
|
|
64
|
-
<snice-kpi sentiment="neutral"></snice-kpi> <!-- Gray,
|
|
71
|
+
<snice-kpi sentiment="up"></snice-kpi> <!-- Green, arrow up -->
|
|
72
|
+
<snice-kpi sentiment="down"></snice-kpi> <!-- Red, arrow down -->
|
|
73
|
+
<snice-kpi sentiment="neutral"></snice-kpi> <!-- Gray, arrow right -->
|
|
65
74
|
|
|
66
75
|
<!-- Sizes -->
|
|
67
76
|
<snice-kpi size="small"></snice-kpi>
|
|
@@ -71,58 +80,14 @@ sales.trendData = [20, 25, 22, 30, 28, 35, 32];
|
|
|
71
80
|
<!-- Without sparkline -->
|
|
72
81
|
<snice-kpi show-sparkline="false"></snice-kpi>
|
|
73
82
|
|
|
74
|
-
<!--
|
|
75
|
-
<
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
label="MRR"
|
|
79
|
-
value="$127K"
|
|
80
|
-
trend-value="+22%"
|
|
81
|
-
sentiment="up">
|
|
82
|
-
</snice-kpi>
|
|
83
|
-
|
|
84
|
-
<snice-kpi
|
|
85
|
-
id="users"
|
|
86
|
-
label="Active Users"
|
|
87
|
-
value="2,345"
|
|
88
|
-
trend-value="+8.7%"
|
|
89
|
-
sentiment="up">
|
|
90
|
-
</snice-kpi>
|
|
91
|
-
|
|
92
|
-
<snice-kpi
|
|
93
|
-
id="churn"
|
|
94
|
-
label="Churn"
|
|
95
|
-
value="2.3%"
|
|
96
|
-
trend-value="+0.8%"
|
|
97
|
-
sentiment="down">
|
|
98
|
-
</snice-kpi>
|
|
99
|
-
</div>
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
```typescript
|
|
103
|
-
mrr.trendData = [100, 110, 105, 120, 115, 130, 127];
|
|
104
|
-
users.trendData = [2000, 2100, 2200, 2250, 2300, 2345];
|
|
105
|
-
churn.trendData = [1.5, 1.8, 2.0, 2.2, 2.1, 2.3];
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## CSS Parts
|
|
109
|
-
|
|
110
|
-
```css
|
|
111
|
-
::part(container) /* Main container */
|
|
112
|
-
::part(header) /* Header section */
|
|
113
|
-
::part(main) /* Main content (label + value) */
|
|
114
|
-
::part(label) /* Label text */
|
|
115
|
-
::part(value) /* Value text */
|
|
116
|
-
::part(trend) /* Trend container */
|
|
117
|
-
::part(trend-icon) /* Trend icon (↑↓→) */
|
|
118
|
-
::part(trend-value) /* Trend value text */
|
|
119
|
-
::part(sparkline) /* Sparkline container */
|
|
83
|
+
<!-- With icon slot -->
|
|
84
|
+
<snice-kpi label="Revenue" value="$45,231">
|
|
85
|
+
<div slot="before">icon here</div>
|
|
86
|
+
</snice-kpi>
|
|
120
87
|
```
|
|
121
88
|
|
|
122
|
-
##
|
|
89
|
+
## Accessibility
|
|
123
90
|
|
|
124
|
-
-
|
|
125
|
-
- Sentiment
|
|
126
|
-
-
|
|
127
|
-
- Value can be string or number for formatting flexibility
|
|
128
|
-
- showSparkline=false hides sparkline even if data provided
|
|
91
|
+
- Labels provide context for values
|
|
92
|
+
- Sentiment: color + icon differentiation
|
|
93
|
+
- Sufficient color contrast
|
|
@@ -2,42 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
Application layout with header navigation, main content area, and footer.
|
|
4
4
|
|
|
5
|
+
## Methods
|
|
6
|
+
|
|
7
|
+
- `update(appContext, placards, currentRoute, routeParams)` - Update layout navigation from router state
|
|
8
|
+
|
|
5
9
|
## Slots
|
|
6
10
|
|
|
7
11
|
- `brand` - Logo/brand in header
|
|
8
12
|
- `page` - Main page content
|
|
9
13
|
- `footer` - Footer content
|
|
10
14
|
|
|
11
|
-
##
|
|
15
|
+
## CSS Parts
|
|
12
16
|
|
|
13
|
-
- `
|
|
17
|
+
- `base` - Outer layout container div
|
|
18
|
+
- `header` - Header element with navigation
|
|
19
|
+
- `brand` - Brand/logo area within header
|
|
20
|
+
- `main` - Main content area
|
|
21
|
+
- `footer` - Footer element
|
|
14
22
|
|
|
15
|
-
## Usage
|
|
23
|
+
## Basic Usage
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import 'snice/components/layout/snice-layout';
|
|
27
|
+
```
|
|
16
28
|
|
|
17
29
|
```html
|
|
18
30
|
<snice-layout>
|
|
19
|
-
<div slot="brand">
|
|
20
|
-
|
|
21
|
-
</div>
|
|
22
|
-
<div slot="page">
|
|
23
|
-
<!-- Page content -->
|
|
24
|
-
</div>
|
|
25
|
-
<div slot="footer">
|
|
26
|
-
<p>© 2025 My Company</p>
|
|
27
|
-
</div>
|
|
31
|
+
<div slot="brand"><h1>My App</h1></div>
|
|
32
|
+
<div slot="page">Page content</div>
|
|
33
|
+
<div slot="footer"><p>© 2025 My Company</p></div>
|
|
28
34
|
</snice-layout>
|
|
29
35
|
```
|
|
30
36
|
|
|
31
|
-
|
|
32
|
-
- `base` - Outer layout container div
|
|
33
|
-
- `header` - Header element with navigation
|
|
34
|
-
- `brand` - Brand/logo area within header
|
|
35
|
-
- `main` - Main content area
|
|
36
|
-
- `footer` - Footer element
|
|
37
|
+
## Examples
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
```html
|
|
40
|
+
<!-- Router integration -->
|
|
41
|
+
<snice-layout id="app-layout">
|
|
42
|
+
<img slot="brand" src="/logo.svg" alt="Logo" />
|
|
43
|
+
<div slot="page"></div>
|
|
44
|
+
</snice-layout>
|
|
45
|
+
```
|
|
39
46
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
- Slotted brand, page, and footer areas
|
|
47
|
+
```typescript
|
|
48
|
+
layout.update(appContext, placards, currentRoute, routeParams);
|
|
49
|
+
```
|
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Ranked list with podium variant, avatars, change indicators. Dual API: declarative children or imperative setter.
|
|
4
4
|
|
|
5
|
+
## Components
|
|
6
|
+
|
|
7
|
+
- `<snice-leaderboard>` - Container
|
|
8
|
+
- `<snice-leaderboard-entry>` - Data container child (attrs: `rank`, `name`, `score`, `avatar`, `change`, `highlighted`)
|
|
9
|
+
|
|
5
10
|
## Properties
|
|
6
11
|
|
|
7
12
|
```ts
|
|
8
|
-
variant: 'default'
|
|
9
|
-
size: 'small'
|
|
10
|
-
title: string
|
|
13
|
+
variant: 'default'|'podium'|'compact' = 'default';
|
|
14
|
+
size: 'small'|'medium'|'large' = 'medium';
|
|
15
|
+
title: string = '';
|
|
11
16
|
```
|
|
12
17
|
|
|
13
18
|
## Methods
|
|
14
19
|
|
|
15
|
-
|
|
16
|
-
setEntries(entries: LeaderboardEntry[]): void // Set entries imperatively
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### LeaderboardEntry
|
|
20
|
+
- `setEntries(entries: LeaderboardEntry[]): void` - Set entries imperatively (slot children take precedence)
|
|
20
21
|
|
|
21
22
|
```ts
|
|
22
23
|
interface LeaderboardEntry {
|
|
@@ -29,48 +30,38 @@ interface LeaderboardEntry {
|
|
|
29
30
|
}
|
|
30
31
|
```
|
|
31
32
|
|
|
32
|
-
## Slots
|
|
33
|
-
|
|
34
|
-
- `(default)` - `<snice-leaderboard-entry>` child elements for declarative API
|
|
35
|
-
|
|
36
|
-
## Child Elements
|
|
37
|
-
|
|
38
|
-
### `<snice-leaderboard-entry>`
|
|
39
|
-
|
|
40
|
-
Data container element. Attributes: `rank` (Number), `name` (String), `score` (String), `avatar` (String, optional), `change` (Number, optional), `highlighted` (Boolean).
|
|
41
|
-
|
|
42
|
-
**Slot children take precedence over `setEntries()`.** When all children removed, falls back to imperative mode.
|
|
43
|
-
|
|
44
33
|
## Events
|
|
45
34
|
|
|
46
|
-
- `entry-click`
|
|
35
|
+
- `entry-click` → `{ entry: LeaderboardEntry, index: number }`
|
|
47
36
|
|
|
48
|
-
##
|
|
37
|
+
## Slots
|
|
49
38
|
|
|
50
|
-
- `default`
|
|
51
|
-
- `podium` -- Top 3 shown as podium, rest as list
|
|
52
|
-
- `compact` -- Tighter spacing, smaller avatars
|
|
39
|
+
- `(default)` - `<snice-leaderboard-entry>` child elements for declarative API
|
|
53
40
|
|
|
54
41
|
## CSS Custom Properties
|
|
55
42
|
|
|
56
43
|
```css
|
|
57
|
-
--leaderboard-bg /*
|
|
58
|
-
--leaderboard-text /*
|
|
59
|
-
--leaderboard-text-secondary /*
|
|
60
|
-
--leaderboard-border /*
|
|
61
|
-
--leaderboard-primary /*
|
|
62
|
-
--leaderboard-success /*
|
|
63
|
-
--leaderboard-danger /*
|
|
64
|
-
--leaderboard-bg-element /*
|
|
65
|
-
--leaderboard-radius /*
|
|
44
|
+
--leaderboard-bg /* var(--snice-color-background) */
|
|
45
|
+
--leaderboard-text /* var(--snice-color-text) */
|
|
46
|
+
--leaderboard-text-secondary /* var(--snice-color-text-secondary) */
|
|
47
|
+
--leaderboard-border /* var(--snice-color-border) */
|
|
48
|
+
--leaderboard-primary /* var(--snice-color-primary) */
|
|
49
|
+
--leaderboard-success /* var(--snice-color-success) */
|
|
50
|
+
--leaderboard-danger /* var(--snice-color-danger) */
|
|
51
|
+
--leaderboard-bg-element /* var(--snice-color-background-element) */
|
|
52
|
+
--leaderboard-radius /* var(--snice-border-radius-lg) */
|
|
66
53
|
```
|
|
67
54
|
|
|
68
|
-
|
|
55
|
+
## CSS Parts
|
|
56
|
+
|
|
57
|
+
- `base` - Outer container
|
|
58
|
+
- `title` - Title heading
|
|
59
|
+
- `list` - Entries list
|
|
60
|
+
- `empty` - Empty state
|
|
69
61
|
|
|
70
|
-
## Usage
|
|
62
|
+
## Basic Usage
|
|
71
63
|
|
|
72
64
|
```html
|
|
73
|
-
<!-- Declarative -->
|
|
74
65
|
<snice-leaderboard variant="podium" title="Top Players">
|
|
75
66
|
<snice-leaderboard-entry rank="1" name="Alice" score="2500" change="3" highlighted></snice-leaderboard-entry>
|
|
76
67
|
<snice-leaderboard-entry rank="2" name="Bob" score="2100" change="-1"></snice-leaderboard-entry>
|
|
@@ -4,7 +4,7 @@ Rich URL preview card with image, title, description, and site info.
|
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
|
-
```
|
|
7
|
+
```ts
|
|
8
8
|
url: string = '';
|
|
9
9
|
title: string = '';
|
|
10
10
|
description: string = '';
|
|
@@ -19,7 +19,17 @@ size: 'small'|'medium'|'large' = 'medium';
|
|
|
19
19
|
|
|
20
20
|
- `link-click` → `{ url: string }`
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## CSS Parts
|
|
23
|
+
|
|
24
|
+
- `base` - Outer preview card container
|
|
25
|
+
- `content` - Text content area (title, description, footer)
|
|
26
|
+
- `title` - Title text element
|
|
27
|
+
|
|
28
|
+
## Basic Usage
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import 'snice/components/link-preview/snice-link-preview';
|
|
32
|
+
```
|
|
23
33
|
|
|
24
34
|
```html
|
|
25
35
|
<!-- Vertical (default) -->
|
|
@@ -37,19 +47,3 @@ size: 'small'|'medium'|'large' = 'medium';
|
|
|
37
47
|
url="https://example.com" title="Quick Link" description="Short.">
|
|
38
48
|
</snice-link-preview>
|
|
39
49
|
```
|
|
40
|
-
|
|
41
|
-
## CSS Parts
|
|
42
|
-
|
|
43
|
-
- `base` - The outer preview card container
|
|
44
|
-
- `content` - The text content area (title, description, footer)
|
|
45
|
-
- `title` - The title text element
|
|
46
|
-
|
|
47
|
-
## Features
|
|
48
|
-
|
|
49
|
-
- Vertical (image top) and horizontal (image left) layouts
|
|
50
|
-
- 3 sizes: small, medium, large
|
|
51
|
-
- Placeholder icon when no image
|
|
52
|
-
- Title clamped to 2 lines, description to 3
|
|
53
|
-
- Domain extracted from URL
|
|
54
|
-
- Click opens URL in new tab (noopener, noreferrer)
|
|
55
|
-
- Keyboard accessible (Enter/Space)
|
|
@@ -4,7 +4,7 @@ Hyperlink component with variants, external link handling, and hash routing.
|
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
|
-
```
|
|
7
|
+
```ts
|
|
8
8
|
href: string = '';
|
|
9
9
|
target: '_self'|'_blank'|'_parent'|'_top' = '_self';
|
|
10
10
|
variant: 'default'|'primary'|'secondary'|'muted' = 'default';
|
|
@@ -14,24 +14,27 @@ underline: boolean = false;
|
|
|
14
14
|
hash: boolean = false; // auto-prepend # to href
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
## Slots
|
|
18
|
-
|
|
19
|
-
- `(default)` - Link text content
|
|
20
|
-
|
|
21
17
|
## Events
|
|
22
18
|
|
|
23
19
|
- `click` → `MouseEvent` (prevented when disabled)
|
|
24
20
|
- `navigate` → `{ href: string }` (hash links only, cancelable)
|
|
25
21
|
|
|
22
|
+
## Slots
|
|
23
|
+
|
|
24
|
+
- `(default)` - Link text content
|
|
25
|
+
|
|
26
26
|
## CSS Parts
|
|
27
27
|
|
|
28
28
|
- `link` - Anchor element
|
|
29
29
|
- `external-icon` - External arrow icon
|
|
30
30
|
|
|
31
|
-
## Usage
|
|
31
|
+
## Basic Usage
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
import 'snice/components/link/snice-link';
|
|
35
|
+
```
|
|
32
36
|
|
|
33
37
|
```html
|
|
34
|
-
<!-- Basic -->
|
|
35
38
|
<snice-link href="/about">About</snice-link>
|
|
36
39
|
|
|
37
40
|
<!-- Variants -->
|
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
List container with search, infinite scroll, and composable list items.
|
|
4
4
|
|
|
5
|
+
## Components
|
|
6
|
+
|
|
7
|
+
- `<snice-list>` - Container with search, infinite scroll, loading
|
|
8
|
+
- `<snice-list-item>` - Individual item with heading, description, slots
|
|
9
|
+
|
|
5
10
|
## Properties
|
|
6
11
|
|
|
7
|
-
```
|
|
12
|
+
```ts
|
|
8
13
|
// snice-list
|
|
9
14
|
dividers: boolean = false;
|
|
10
15
|
searchable: boolean = false;
|
|
@@ -22,6 +27,11 @@ selected: boolean = false;
|
|
|
22
27
|
disabled: boolean = false;
|
|
23
28
|
```
|
|
24
29
|
|
|
30
|
+
## Requests
|
|
31
|
+
|
|
32
|
+
- `list/search` → `{ query, list }` - Handle search (debounced 300ms)
|
|
33
|
+
- `list/load-more` → `{ page, list }` - Infinite scroll pagination
|
|
34
|
+
|
|
25
35
|
## Slots (snice-list)
|
|
26
36
|
|
|
27
37
|
- `(default)` - List items
|
|
@@ -36,12 +46,18 @@ disabled: boolean = false;
|
|
|
36
46
|
- `before` - Icon/avatar area
|
|
37
47
|
- `after` - Badge/metadata area
|
|
38
48
|
|
|
39
|
-
##
|
|
49
|
+
## CSS Parts (snice-list)
|
|
50
|
+
|
|
51
|
+
- `container` - Outer list container
|
|
52
|
+
- `search` - Search input wrapper
|
|
53
|
+
- `loading` - Loading skeletons wrapper
|
|
54
|
+
- `sentinel` - Infinite scroll sentinel
|
|
40
55
|
|
|
41
|
-
|
|
42
|
-
- `list/load-more` → `{ page, list }` - Infinite scroll
|
|
56
|
+
## Basic Usage
|
|
43
57
|
|
|
44
|
-
|
|
58
|
+
```typescript
|
|
59
|
+
import 'snice/components/list/snice-list';
|
|
60
|
+
```
|
|
45
61
|
|
|
46
62
|
```html
|
|
47
63
|
<!-- Basic with dividers -->
|
|
@@ -4,7 +4,7 @@ Display location information with addresses, coordinates, and maps.
|
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
|
-
```
|
|
7
|
+
```ts
|
|
8
8
|
mode: 'full'|'compact'|'coordinates'|'address' = 'full';
|
|
9
9
|
name: string = '';
|
|
10
10
|
address: string = '';
|
|
@@ -22,22 +22,33 @@ mapUrl: string = ''; // attr: map-url
|
|
|
22
22
|
clickable: boolean = false;
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
## Methods
|
|
26
|
+
|
|
27
|
+
- `getData()` → `LocationData`
|
|
28
|
+
- `getCoordinates()` → `{ latitude, longitude } | null`
|
|
29
|
+
- `getFullAddress()` → `string`
|
|
30
|
+
- `openMap()` → Opens location in maps (new tab)
|
|
31
|
+
|
|
32
|
+
## Events
|
|
33
|
+
|
|
34
|
+
- `location-click` → `LocationData` (when clickable)
|
|
35
|
+
|
|
25
36
|
## Slots
|
|
26
37
|
|
|
27
38
|
- `icon` - Custom icon content (overrides `icon`/`iconImage` properties)
|
|
28
39
|
|
|
29
|
-
##
|
|
40
|
+
## CSS Parts
|
|
30
41
|
|
|
31
|
-
- `
|
|
32
|
-
- `
|
|
33
|
-
- `
|
|
34
|
-
- `
|
|
42
|
+
- `base` - Outer location container
|
|
43
|
+
- `icon` - Icon container
|
|
44
|
+
- `content` - Content area (name, address, coordinates)
|
|
45
|
+
- `map` - Embedded map container
|
|
35
46
|
|
|
36
|
-
##
|
|
37
|
-
|
|
38
|
-
- `location-click` → `LocationData` - Clicked (when clickable)
|
|
47
|
+
## Basic Usage
|
|
39
48
|
|
|
40
|
-
|
|
49
|
+
```typescript
|
|
50
|
+
import 'snice/components/location/snice-location';
|
|
51
|
+
```
|
|
41
52
|
|
|
42
53
|
```html
|
|
43
54
|
<snice-location
|
|
@@ -61,18 +72,3 @@ clickable: boolean = false;
|
|
|
61
72
|
<span slot="icon" class="material-symbols-outlined">business</span>
|
|
62
73
|
</snice-location>
|
|
63
74
|
```
|
|
64
|
-
|
|
65
|
-
**CSS Parts:**
|
|
66
|
-
- `base` - The outer location container
|
|
67
|
-
- `icon` - The icon container
|
|
68
|
-
- `content` - The content area with name, address, coordinates
|
|
69
|
-
- `map` - The embedded map container
|
|
70
|
-
|
|
71
|
-
## Features
|
|
72
|
-
|
|
73
|
-
- 4 display modes (full/compact/coordinates/address)
|
|
74
|
-
- Embedded Google Maps support
|
|
75
|
-
- Custom icons (emoji, URL, image). Use slot for icon fonts.
|
|
76
|
-
- Clickable to open in maps app
|
|
77
|
-
- Custom map URL support
|
|
78
|
-
- Complete address formatting
|
|
@@ -4,7 +4,7 @@ Login form with username/password using @request/@respond pattern.
|
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
7
|
-
```
|
|
7
|
+
```ts
|
|
8
8
|
variant: 'default'|'card'|'minimal' = 'default';
|
|
9
9
|
size: 'small'|'medium'|'large' = 'medium';
|
|
10
10
|
title: string = 'Sign In';
|
|
@@ -17,11 +17,11 @@ actionText: string = 'Sign In'; // attr: action-text
|
|
|
17
17
|
|
|
18
18
|
## Methods
|
|
19
19
|
|
|
20
|
-
- `login(credentials?)`
|
|
21
|
-
- `setCredentials({username?, password?, remember?})`
|
|
22
|
-
- `reset()`
|
|
23
|
-
- `setError(message)`
|
|
24
|
-
- `clearError()`
|
|
20
|
+
- `login(credentials?)` → Trigger login via @request (async)
|
|
21
|
+
- `setCredentials({username?, password?, remember?})` → Set form values
|
|
22
|
+
- `reset()` → Clear form, alert, loading
|
|
23
|
+
- `setError(message)` → Show error alert
|
|
24
|
+
- `clearError()` → Clear alert
|
|
25
25
|
|
|
26
26
|
## Requests
|
|
27
27
|
|
|
@@ -29,7 +29,7 @@ actionText: string = 'Sign In'; // attr: action-text
|
|
|
29
29
|
|
|
30
30
|
## Types
|
|
31
31
|
|
|
32
|
-
```
|
|
32
|
+
```ts
|
|
33
33
|
interface LoginCredentials {
|
|
34
34
|
username: string;
|
|
35
35
|
password: string;
|
|
@@ -60,14 +60,19 @@ interface LoginResult {
|
|
|
60
60
|
- `before-submit`, `after-submit` - Around button
|
|
61
61
|
- `footer` - Footer content
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
## CSS Parts
|
|
64
|
+
|
|
64
65
|
- `base` - Outer login container
|
|
65
66
|
- `header` - Header section
|
|
66
67
|
- `title` - H1 title element
|
|
67
68
|
- `form` - The login form
|
|
68
69
|
- `footer` - Footer section
|
|
69
70
|
|
|
70
|
-
## Usage
|
|
71
|
+
## Basic Usage
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
import 'snice/components/login/snice-login';
|
|
75
|
+
```
|
|
71
76
|
|
|
72
77
|
```html
|
|
73
78
|
<!-- With controller -->
|