snice 2.5.4 → 3.2.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/README.md +537 -869
- package/bin/templates/base/src/components/counter-button.ts +13 -26
- package/bin/templates/base/src/controllers/counter-controller.ts +3 -3
- package/dist/components/accordion/snice-accordion-item.d.ts +4 -5
- package/dist/components/accordion/snice-accordion-item.js +37 -39
- package/dist/components/accordion/snice-accordion-item.js.map +1 -1
- package/dist/components/accordion/snice-accordion.d.ts +5 -11
- package/dist/components/accordion/snice-accordion.js +51 -52
- package/dist/components/accordion/snice-accordion.js.map +1 -1
- package/dist/components/alert/snice-alert.d.ts +2 -6
- package/dist/components/alert/snice-alert.js +41 -56
- package/dist/components/alert/snice-alert.js.map +1 -1
- package/dist/components/avatar/snice-avatar.d.ts +2 -6
- package/dist/components/avatar/snice-avatar.js +64 -71
- package/dist/components/avatar/snice-avatar.js.map +1 -1
- package/dist/components/badge/snice-badge.d.ts +2 -3
- package/dist/components/badge/snice-badge.js +22 -23
- package/dist/components/badge/snice-badge.js.map +1 -1
- package/dist/components/banner/snice-banner.d.ts +22 -0
- package/dist/components/banner/snice-banner.js +180 -0
- package/dist/components/banner/snice-banner.js.map +1 -0
- package/dist/components/banner/snice-banner.types.d.ts +14 -0
- package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +5 -12
- package/dist/components/breadcrumbs/snice-breadcrumbs.js +88 -89
- package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
- package/dist/components/button/snice-button.d.ts +3 -7
- package/dist/components/button/snice-button.js +37 -58
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/components/card/snice-card.d.ts +5 -8
- package/dist/components/card/snice-card.js +71 -56
- package/dist/components/card/snice-card.js.map +1 -1
- package/dist/components/checkbox/snice-checkbox.d.ts +4 -13
- package/dist/components/checkbox/snice-checkbox.js +66 -137
- package/dist/components/checkbox/snice-checkbox.js.map +1 -1
- package/dist/components/chip/snice-chip.d.ts +5 -11
- package/dist/components/chip/snice-chip.js +44 -47
- package/dist/components/chip/snice-chip.js.map +1 -1
- package/dist/components/color-display/snice-color-display.d.ts +14 -0
- package/dist/components/color-display/snice-color-display.js +151 -0
- package/dist/components/color-display/snice-color-display.js.map +1 -0
- package/dist/components/color-display/snice-color-display.types.d.ts +10 -0
- package/dist/components/color-picker/snice-color-picker.d.ts +50 -0
- package/dist/components/color-picker/snice-color-picker.js +489 -0
- package/dist/components/color-picker/snice-color-picker.js.map +1 -0
- package/dist/components/color-picker/snice-color-picker.types.d.ts +19 -0
- package/dist/components/date-picker/snice-date-picker.d.ts +11 -11
- package/dist/components/date-picker/snice-date-picker.js +134 -133
- package/dist/components/date-picker/snice-date-picker.js.map +1 -1
- package/dist/components/divider/snice-divider.d.ts +2 -4
- package/dist/components/divider/snice-divider.js +14 -22
- package/dist/components/divider/snice-divider.js.map +1 -1
- package/dist/components/drawer/snice-drawer.d.ts +4 -4
- package/dist/components/drawer/snice-drawer.js +25 -19
- package/dist/components/drawer/snice-drawer.js.map +1 -1
- package/dist/components/empty-state/snice-empty-state.d.ts +13 -0
- package/dist/components/empty-state/snice-empty-state.js +121 -0
- package/dist/components/empty-state/snice-empty-state.js.map +1 -0
- package/dist/components/empty-state/snice-empty-state.types.d.ts +9 -0
- package/dist/components/file-upload/snice-file-upload.d.ts +45 -0
- package/dist/components/file-upload/snice-file-upload.js +394 -0
- package/dist/components/file-upload/snice-file-upload.js.map +1 -0
- package/dist/components/file-upload/snice-file-upload.types.d.ts +22 -0
- package/dist/components/image/snice-image.d.ts +22 -0
- package/dist/components/image/snice-image.js +201 -0
- package/dist/components/image/snice-image.js.map +1 -0
- package/dist/components/image/snice-image.types.d.ts +17 -0
- package/dist/components/input/snice-input.d.ts +8 -6
- package/dist/components/input/snice-input.js +122 -105
- package/dist/components/input/snice-input.js.map +1 -1
- package/dist/components/kpi/snice-kpi.d.ts +16 -0
- package/dist/components/kpi/snice-kpi.js +162 -0
- package/dist/components/kpi/snice-kpi.js.map +1 -0
- package/dist/components/kpi/snice-kpi.types.d.ts +12 -0
- package/dist/components/layout/snice-layout-blog.d.ts +4 -4
- package/dist/components/layout/snice-layout-blog.js +21 -19
- package/dist/components/layout/snice-layout-blog.js.map +1 -1
- package/dist/components/layout/snice-layout-card.d.ts +2 -2
- package/dist/components/layout/snice-layout-card.js +16 -9
- package/dist/components/layout/snice-layout-card.js.map +1 -1
- package/dist/components/layout/snice-layout-centered.d.ts +2 -2
- package/dist/components/layout/snice-layout-centered.js +14 -7
- package/dist/components/layout/snice-layout-centered.js.map +1 -1
- package/dist/components/layout/snice-layout-dashboard.d.ts +5 -5
- package/dist/components/layout/snice-layout-dashboard.js +38 -30
- package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
- package/dist/components/layout/snice-layout-fullscreen.d.ts +2 -2
- package/dist/components/layout/snice-layout-fullscreen.js +17 -10
- package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
- package/dist/components/layout/snice-layout-landing.d.ts +4 -4
- package/dist/components/layout/snice-layout-landing.js +21 -19
- package/dist/components/layout/snice-layout-landing.js.map +1 -1
- package/dist/components/layout/snice-layout-minimal.d.ts +2 -2
- package/dist/components/layout/snice-layout-minimal.js +17 -6
- package/dist/components/layout/snice-layout-minimal.js.map +1 -1
- package/dist/components/layout/snice-layout-sidebar.d.ts +5 -4
- package/dist/components/layout/snice-layout-sidebar.js +42 -20
- package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
- package/dist/components/layout/snice-layout-split.d.ts +2 -2
- package/dist/components/layout/snice-layout-split.js +14 -7
- package/dist/components/layout/snice-layout-split.js.map +1 -1
- package/dist/components/layout/snice-layout.d.ts +4 -4
- package/dist/components/layout/snice-layout.js +16 -10
- package/dist/components/layout/snice-layout.js.map +1 -1
- package/dist/components/link/snice-link.d.ts +13 -0
- package/dist/components/link/snice-link.js +137 -0
- package/dist/components/link/snice-link.js.map +1 -0
- package/dist/components/link/snice-link.types.d.ts +11 -0
- package/dist/components/login/snice-login.d.ts +6 -11
- package/dist/components/login/snice-login.js +97 -71
- package/dist/components/login/snice-login.js.map +1 -1
- package/dist/components/modal/snice-modal.d.ts +5 -9
- package/dist/components/modal/snice-modal.js +47 -78
- package/dist/components/modal/snice-modal.js.map +1 -1
- package/dist/components/nav/snice-nav.d.ts +13 -7
- package/dist/components/nav/snice-nav.js +191 -100
- package/dist/components/nav/snice-nav.js.map +1 -1
- package/dist/components/nav/snice-nav.types.d.ts +3 -3
- package/dist/components/pagination/snice-pagination.d.ts +6 -7
- package/dist/components/pagination/snice-pagination.js +94 -81
- package/dist/components/pagination/snice-pagination.js.map +1 -1
- package/dist/components/progress/snice-progress.d.ts +2 -7
- package/dist/components/progress/snice-progress.js +41 -98
- package/dist/components/progress/snice-progress.js.map +1 -1
- package/dist/components/radio/snice-radio.d.ts +4 -4
- package/dist/components/radio/snice-radio.js +52 -44
- package/dist/components/radio/snice-radio.js.map +1 -1
- package/dist/components/select/snice-option.d.ts +2 -1
- package/dist/components/select/snice-option.js +12 -5
- package/dist/components/select/snice-option.js.map +1 -1
- package/dist/components/select/snice-select.d.ts +9 -21
- package/dist/components/select/snice-select.js +98 -170
- package/dist/components/select/snice-select.js.map +1 -1
- package/dist/components/skeleton/snice-skeleton.d.ts +2 -6
- package/dist/components/skeleton/snice-skeleton.js +18 -49
- package/dist/components/skeleton/snice-skeleton.js.map +1 -1
- package/dist/components/slider/snice-slider.d.ts +53 -0
- package/dist/components/slider/snice-slider.js +479 -0
- package/dist/components/slider/snice-slider.js.map +1 -0
- package/dist/components/slider/snice-slider.types.d.ts +26 -0
- package/dist/components/snice-cell-C0slgOpe.js +4 -0
- package/dist/components/snice-cell-C0slgOpe.js.map +1 -0
- package/dist/components/sparkline/snice-sparkline.d.ts +21 -0
- package/dist/components/sparkline/snice-sparkline.js +228 -0
- package/dist/components/sparkline/snice-sparkline.js.map +1 -0
- package/dist/components/sparkline/snice-sparkline.types.d.ts +16 -0
- package/dist/components/spinner/snice-spinner.d.ts +10 -0
- package/dist/components/spinner/snice-spinner.js +109 -0
- package/dist/components/spinner/snice-spinner.js.map +1 -0
- package/dist/components/spinner/snice-spinner.types.d.ts +8 -0
- package/dist/components/stepper/snice-stepper-panel.d.ts +8 -0
- package/dist/components/stepper/snice-stepper-panel.js +70 -0
- package/dist/components/stepper/snice-stepper-panel.js.map +1 -0
- package/dist/components/stepper/snice-stepper-panel.types.d.ts +4 -0
- package/dist/components/stepper/snice-stepper.d.ts +15 -0
- package/dist/components/stepper/snice-stepper.js +163 -0
- package/dist/components/stepper/snice-stepper.js.map +1 -0
- package/dist/components/stepper/snice-stepper.types.d.ts +13 -0
- package/dist/components/switch/snice-switch.d.ts +2 -2
- package/dist/components/switch/snice-switch.js +38 -26
- package/dist/components/switch/snice-switch.js.map +1 -1
- package/dist/components/table/snice-cell-actions.d.ts +24 -0
- package/dist/components/table/snice-cell-actions.js +149 -0
- package/dist/components/table/snice-cell-actions.js.map +1 -0
- package/dist/components/table/snice-cell-boolean.d.ts +2 -2
- package/dist/components/table/snice-cell-boolean.js +13 -7
- package/dist/components/table/snice-cell-boolean.js.map +1 -1
- package/dist/components/table/snice-cell-color.d.ts +18 -0
- package/dist/components/table/snice-cell-color.js +149 -0
- package/dist/components/table/snice-cell-color.js.map +1 -0
- package/dist/components/table/snice-cell-currency.d.ts +24 -0
- package/dist/components/table/snice-cell-currency.js +235 -0
- package/dist/components/table/snice-cell-currency.js.map +1 -0
- package/dist/components/table/snice-cell-date.d.ts +2 -2
- package/dist/components/table/snice-cell-date.js +14 -8
- package/dist/components/table/snice-cell-date.js.map +1 -1
- package/dist/components/table/snice-cell-duration.d.ts +2 -2
- package/dist/components/table/snice-cell-duration.js +12 -6
- package/dist/components/table/snice-cell-duration.js.map +1 -1
- package/dist/components/table/snice-cell-email.d.ts +15 -0
- package/dist/components/table/snice-cell-email.js +125 -0
- package/dist/components/table/snice-cell-email.js.map +1 -0
- package/dist/components/table/snice-cell-filesize.d.ts +2 -2
- package/dist/components/table/snice-cell-filesize.js +12 -6
- package/dist/components/table/snice-cell-filesize.js.map +1 -1
- package/dist/components/table/snice-cell-image.d.ts +20 -0
- package/dist/components/table/snice-cell-image.js +162 -0
- package/dist/components/table/snice-cell-image.js.map +1 -0
- package/dist/components/table/snice-cell-json.d.ts +20 -0
- package/dist/components/table/snice-cell-json.js +186 -0
- package/dist/components/table/snice-cell-json.js.map +1 -0
- package/dist/components/table/snice-cell-link.d.ts +17 -0
- package/dist/components/table/snice-cell-link.js +142 -0
- package/dist/components/table/snice-cell-link.js.map +1 -0
- package/dist/components/table/snice-cell-location.d.ts +19 -0
- package/dist/components/table/snice-cell-location.js +185 -0
- package/dist/components/table/snice-cell-location.js.map +1 -0
- package/dist/components/table/snice-cell-number.d.ts +2 -2
- package/dist/components/table/snice-cell-number.js +12 -6
- package/dist/components/table/snice-cell-number.js.map +1 -1
- package/dist/components/table/snice-cell-percentage.d.ts +22 -0
- package/dist/components/table/snice-cell-percentage.js +208 -0
- package/dist/components/table/snice-cell-percentage.js.map +1 -0
- package/dist/components/table/snice-cell-phone.d.ts +18 -0
- package/dist/components/table/snice-cell-phone.js +153 -0
- package/dist/components/table/snice-cell-phone.js.map +1 -0
- package/dist/components/table/snice-cell-progress.d.ts +2 -2
- package/dist/components/table/snice-cell-progress.js +12 -6
- package/dist/components/table/snice-cell-progress.js.map +1 -1
- package/dist/components/table/snice-cell-rating.d.ts +2 -2
- package/dist/components/table/snice-cell-rating.js +12 -6
- package/dist/components/table/snice-cell-rating.js.map +1 -1
- package/dist/components/table/snice-cell-sparkline.d.ts +2 -2
- package/dist/components/table/snice-cell-sparkline.js +13 -7
- package/dist/components/table/snice-cell-sparkline.js.map +1 -1
- package/dist/components/table/snice-cell-status.d.ts +17 -0
- package/dist/components/table/snice-cell-status.js +144 -0
- package/dist/components/table/snice-cell-status.js.map +1 -0
- package/dist/components/table/snice-cell-tag.d.ts +16 -0
- package/dist/components/table/snice-cell-tag.js +131 -0
- package/dist/components/table/snice-cell-tag.js.map +1 -0
- package/dist/components/table/snice-cell-text.d.ts +2 -2
- package/dist/components/table/snice-cell-text.js +14 -8
- package/dist/components/table/snice-cell-text.js.map +1 -1
- package/dist/components/table/snice-cell.d.ts +2 -2
- package/dist/components/table/snice-cell.js +12 -6
- package/dist/components/table/snice-cell.js.map +1 -1
- package/dist/components/table/snice-column.d.ts +1 -1
- package/dist/components/table/snice-column.js +6 -3
- package/dist/components/table/snice-column.js.map +1 -1
- package/dist/components/table/snice-header.d.ts +5 -5
- package/dist/components/table/snice-header.js +60 -50
- package/dist/components/table/snice-header.js.map +1 -1
- package/dist/components/table/snice-progress.d.ts +2 -2
- package/dist/components/table/snice-progress.js +18 -11
- package/dist/components/table/snice-progress.js.map +1 -1
- package/dist/components/table/snice-rating.d.ts +2 -2
- package/dist/components/table/snice-rating.js +15 -8
- package/dist/components/table/snice-rating.js.map +1 -1
- package/dist/components/table/snice-row.d.ts +17 -6
- package/dist/components/table/snice-row.js +95 -44
- package/dist/components/table/snice-row.js.map +1 -1
- package/dist/components/table/snice-table.d.ts +18 -10
- package/dist/components/table/snice-table.js +355 -173
- package/dist/components/table/snice-table.js.map +1 -1
- package/dist/components/table/snice-table.types.d.ts +101 -2
- package/dist/components/tabs/snice-tab-panel.d.ts +2 -2
- package/dist/components/tabs/snice-tab-panel.js +12 -6
- package/dist/components/tabs/snice-tab-panel.js.map +1 -1
- package/dist/components/tabs/snice-tab.d.ts +6 -5
- package/dist/components/tabs/snice-tab.js +36 -19
- package/dist/components/tabs/snice-tab.js.map +1 -1
- package/dist/components/tabs/snice-tabs.d.ts +5 -5
- package/dist/components/tabs/snice-tabs.js +38 -28
- package/dist/components/tabs/snice-tabs.js.map +1 -1
- package/dist/components/textarea/snice-textarea.d.ts +52 -0
- package/dist/components/textarea/snice-textarea.js +407 -0
- package/dist/components/textarea/snice-textarea.js.map +1 -0
- package/dist/components/textarea/snice-textarea.types.d.ts +30 -0
- package/dist/components/timeline/snice-timeline.d.ts +11 -0
- package/dist/components/timeline/snice-timeline.js +112 -0
- package/dist/components/timeline/snice-timeline.js.map +1 -0
- package/dist/components/timeline/snice-timeline.types.d.ts +16 -0
- package/dist/components/toast/snice-toast-container.d.ts +7 -7
- package/dist/components/toast/snice-toast-container.js +19 -12
- package/dist/components/toast/snice-toast-container.js.map +1 -1
- package/dist/components/toast/snice-toast.d.ts +3 -15
- package/dist/components/toast/snice-toast.js +49 -108
- package/dist/components/toast/snice-toast.js.map +1 -1
- package/dist/components/tooltip/snice-tooltip.d.ts +2 -2
- package/dist/components/tooltip/snice-tooltip.js +15 -8
- package/dist/components/tooltip/snice-tooltip.js.map +1 -1
- package/dist/context.d.ts +44 -0
- package/dist/element-ready.d.ts +40 -0
- package/dist/{types/element.d.ts → element.d.ts} +2 -8
- package/dist/{types/events.d.ts → events.d.ts} +0 -4
- package/dist/index.cjs +2556 -605
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +21 -0
- package/dist/index.esm.js +2535 -604
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +2556 -605
- package/dist/index.iife.js.map +1 -1
- package/dist/method-decorators.d.ts +121 -0
- package/dist/on.d.ts +59 -0
- package/dist/parts.d.ts +156 -0
- package/dist/render-debug.d.ts +27 -0
- package/dist/render-tracker.d.ts +14 -0
- package/dist/render.d.ts +96 -0
- package/dist/symbols.cjs +163 -0
- package/dist/symbols.cjs.map +1 -1
- package/dist/{types/symbols.d.ts → symbols.d.ts} +22 -0
- package/dist/symbols.esm.js +27 -3
- package/dist/symbols.esm.js.map +1 -1
- package/dist/template.d.ts +99 -0
- package/dist/transitions.cjs +219 -0
- package/dist/transitions.esm.js +2 -2
- package/dist/types/context.d.ts +48 -0
- package/dist/types/element-options.d.ts +26 -0
- package/dist/types/index.d.ts +25 -9
- package/dist/types/nav-context.d.ts +19 -0
- package/dist/types/{types/on-options.d.ts → on-options.d.ts} +2 -0
- package/dist/types/{types/placard.d.ts → placard.d.ts} +0 -1
- package/docs/ai/README.md +26 -0
- package/docs/ai/api.md +175 -0
- package/docs/ai/architecture.md +160 -0
- package/docs/ai/components/accordion.md +174 -0
- package/docs/ai/components/alert.md +77 -0
- package/docs/ai/components/avatar.md +61 -0
- package/docs/ai/components/badge.md +69 -0
- package/docs/ai/components/banner.md +84 -0
- package/docs/ai/components/breadcrumbs.md +74 -0
- package/docs/ai/components/button.md +75 -0
- package/docs/ai/components/card.md +61 -0
- package/docs/ai/components/checkbox.md +74 -0
- package/docs/ai/components/chip.md +73 -0
- package/docs/ai/components/color-display.md +48 -0
- package/docs/ai/components/color-picker.md +75 -0
- package/docs/ai/components/date-picker.md +75 -0
- package/docs/ai/components/divider.md +66 -0
- package/docs/ai/components/drawer.md +80 -0
- package/docs/ai/components/empty-state.md +72 -0
- package/docs/ai/components/file-upload.md +93 -0
- package/docs/ai/components/image.md +60 -0
- package/docs/ai/components/input.md +111 -0
- package/docs/ai/components/kpi.md +158 -0
- package/docs/ai/components/link.md +77 -0
- package/docs/ai/components/login.md +109 -0
- package/docs/ai/components/modal.md +67 -0
- package/docs/ai/components/nav.md +76 -0
- package/docs/ai/components/pagination.md +55 -0
- package/docs/ai/components/progress.md +72 -0
- package/docs/ai/components/radio.md +79 -0
- package/docs/ai/components/select.md +92 -0
- package/docs/ai/components/skeleton.md +57 -0
- package/docs/ai/components/slider.md +87 -0
- package/docs/ai/components/sparkline.md +168 -0
- package/docs/ai/components/spinner.md +47 -0
- package/docs/ai/components/stepper.md +216 -0
- package/docs/ai/components/switch.md +53 -0
- package/docs/ai/components/table.md +227 -0
- package/docs/ai/components/tabs.md +83 -0
- package/docs/ai/components/textarea.md +87 -0
- package/docs/ai/components/timeline.md +77 -0
- package/docs/ai/components/toast.md +140 -0
- package/docs/ai/components/tooltip.md +146 -0
- package/docs/ai/patterns.md +244 -0
- package/docs/components/accordion.md +558 -0
- package/docs/components/banner.md +106 -0
- package/docs/components/color-display.md +96 -0
- package/docs/components/color-picker.md +81 -0
- package/docs/components/drawer.md +602 -0
- package/docs/components/empty-state.md +79 -0
- package/docs/components/file-upload.md +263 -0
- package/docs/components/image.md +110 -0
- package/docs/components/kpi.md +251 -0
- package/docs/components/link.md +229 -0
- package/docs/components/modal.md +558 -0
- package/docs/components/nav.md +239 -0
- package/docs/components/pagination.md +289 -0
- package/docs/components/select.md +599 -0
- package/docs/components/slider.md +297 -0
- package/docs/components/sparkline.md +293 -0
- package/docs/components/spinner.md +63 -0
- package/docs/components/stepper.md +410 -0
- package/docs/components/switch.md +354 -0
- package/docs/components/tabs.md +546 -0
- package/docs/components/textarea.md +235 -0
- package/docs/components/timeline.md +192 -0
- package/docs/components/toast.md +506 -0
- package/docs/components/tooltip.md +523 -0
- package/docs/controllers.md +744 -0
- package/docs/elements.md +855 -0
- package/docs/events.md +807 -0
- package/docs/migration-v2-to-v3.md +569 -0
- package/docs/observe.md +588 -0
- package/docs/placards.md +401 -0
- package/docs/request-response.md +852 -0
- package/docs/routing.md +1186 -0
- package/package.json +11 -11
- package/dist/components/snice-cell-C9N6yGxQ.js +0 -4
- package/dist/components/snice-cell-C9N6yGxQ.js.map +0 -1
- package/dist/types/types/index.d.ts +0 -23
- /package/dist/{types/controller.d.ts → controller.d.ts} +0 -0
- /package/dist/{types/global.d.ts → global.d.ts} +0 -0
- /package/dist/{types/observe.d.ts → observe.d.ts} +0 -0
- /package/dist/{types/request-response.d.ts → request-response.d.ts} +0 -0
- /package/dist/{types/router.d.ts → router.d.ts} +0 -0
- /package/dist/{types/testing.d.ts → testing.d.ts} +0 -0
- /package/dist/{types/transitions.d.ts → transitions.d.ts} +0 -0
- /package/dist/types/{types/adopted-options.d.ts → adopted-options.d.ts} +0 -0
- /package/dist/types/{types/app-context.d.ts → app-context.d.ts} +0 -0
- /package/dist/types/{types/dispatch-options.d.ts → dispatch-options.d.ts} +0 -0
- /package/dist/types/{types/guard.d.ts → guard.d.ts} +0 -0
- /package/dist/types/{types/i-controller.d.ts → i-controller.d.ts} +0 -0
- /package/dist/types/{types/moved-options.d.ts → moved-options.d.ts} +0 -0
- /package/dist/types/{types/observe-options.d.ts → observe-options.d.ts} +0 -0
- /package/dist/types/{types/page-options.d.ts → page-options.d.ts} +0 -0
- /package/dist/types/{types/part-options.d.ts → part-options.d.ts} +0 -0
- /package/dist/types/{types/property-converter.d.ts → property-converter.d.ts} +0 -0
- /package/dist/types/{types/property-options.d.ts → property-options.d.ts} +0 -0
- /package/dist/types/{types/query-options.d.ts → query-options.d.ts} +0 -0
- /package/dist/types/{types/request-options.d.ts → request-options.d.ts} +0 -0
- /package/dist/types/{types/respond-options.d.ts → respond-options.d.ts} +0 -0
- /package/dist/types/{types/route-params.d.ts → route-params.d.ts} +0 -0
- /package/dist/types/{types/router-instance.d.ts → router-instance.d.ts} +0 -0
- /package/dist/types/{types/router-options.d.ts → router-options.d.ts} +0 -0
- /package/dist/types/{types/simple-array.d.ts → simple-array.d.ts} +0 -0
- /package/dist/types/{types/snice-element.d.ts → snice-element.d.ts} +0 -0
- /package/dist/types/{types/snice-global.d.ts → snice-global.d.ts} +0 -0
- /package/dist/types/{types/transition.d.ts → transition.d.ts} +0 -0
- /package/dist/{types/utils.d.ts → utils.d.ts} +0 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# Slider Component
|
|
2
|
+
|
|
3
|
+
The `<snice-slider>` component provides an interactive range slider for selecting numeric values with mouse, touch, and keyboard support.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
- [Basic Usage](#basic-usage)
|
|
7
|
+
- [Properties](#properties)
|
|
8
|
+
- [Methods](#methods)
|
|
9
|
+
- [Events](#events)
|
|
10
|
+
- [Keyboard Navigation](#keyboard-navigation)
|
|
11
|
+
- [Features](#features)
|
|
12
|
+
- [Examples](#examples)
|
|
13
|
+
|
|
14
|
+
## Basic Usage
|
|
15
|
+
|
|
16
|
+
```html
|
|
17
|
+
<snice-slider
|
|
18
|
+
label="Volume"
|
|
19
|
+
min="0"
|
|
20
|
+
max="100"
|
|
21
|
+
value="50"
|
|
22
|
+
show-value
|
|
23
|
+
></snice-slider>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import 'snice/components/slider/snice-slider';
|
|
28
|
+
|
|
29
|
+
const slider = document.querySelector('snice-slider');
|
|
30
|
+
slider.addEventListener('@snice/slider-change', (e) => {
|
|
31
|
+
console.log('Value:', e.detail.value);
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Properties
|
|
36
|
+
|
|
37
|
+
| Property | Type | Default | Description |
|
|
38
|
+
|----------|------|---------|-------------|
|
|
39
|
+
| `value` | `number` | `0` | Current slider value |
|
|
40
|
+
| `min` | `number` | `0` | Minimum value |
|
|
41
|
+
| `max` | `number` | `100` | Maximum value |
|
|
42
|
+
| `step` | `number` | `1` | Step increment |
|
|
43
|
+
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Size variant |
|
|
44
|
+
| `variant` | `'default' \| 'primary' \| 'success' \| 'warning' \| 'danger'` | `'default'` | Color variant |
|
|
45
|
+
| `label` | `string` | `''` | Label text |
|
|
46
|
+
| `helperText` | `string` | `''` | Helper text below slider |
|
|
47
|
+
| `errorText` | `string` | `''` | Error message (shown when invalid) |
|
|
48
|
+
| `disabled` | `boolean` | `false` | Whether slider is disabled |
|
|
49
|
+
| `readonly` | `boolean` | `false` | Whether slider is readonly |
|
|
50
|
+
| `required` | `boolean` | `false` | Whether slider is required |
|
|
51
|
+
| `invalid` | `boolean` | `false` | Whether to show invalid state |
|
|
52
|
+
| `name` | `string` | `''` | Form field name |
|
|
53
|
+
| `showValue` | `boolean` | `false` | Display current value |
|
|
54
|
+
| `showTicks` | `boolean` | `false` | Show tick marks |
|
|
55
|
+
| `vertical` | `boolean` | `false` | Vertical orientation |
|
|
56
|
+
|
|
57
|
+
## Methods
|
|
58
|
+
|
|
59
|
+
### `focus(): void`
|
|
60
|
+
Give focus to the slider thumb.
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
slider.focus();
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### `blur(): void`
|
|
67
|
+
Remove focus from the slider thumb.
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
slider.blur();
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### `checkValidity(): boolean`
|
|
74
|
+
Check if the slider passes validation.
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
const isValid = slider.checkValidity();
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### `reportValidity(): boolean`
|
|
81
|
+
Report validation status to the user.
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
slider.reportValidity();
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### `setCustomValidity(message: string): void`
|
|
88
|
+
Set a custom validation message.
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
slider.setCustomValidity('Value must be between 10 and 90');
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Events
|
|
95
|
+
|
|
96
|
+
### `@snice/slider-input`
|
|
97
|
+
Fired continuously while dragging the slider.
|
|
98
|
+
|
|
99
|
+
**Detail**: `{ value: number, slider: SniceSliderElement }`
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
slider.addEventListener('@snice/slider-input', (e) => {
|
|
103
|
+
console.log('Current value:', e.detail.value);
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### `@snice/slider-change`
|
|
108
|
+
Fired when the slider value is committed (after drag ends or keyboard input).
|
|
109
|
+
|
|
110
|
+
**Detail**: `{ value: number, slider: SniceSliderElement }`
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
slider.addEventListener('@snice/slider-change', (e) => {
|
|
114
|
+
console.log('Final value:', e.detail.value);
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Keyboard Navigation
|
|
119
|
+
|
|
120
|
+
The slider supports full keyboard navigation:
|
|
121
|
+
|
|
122
|
+
| Key | Action |
|
|
123
|
+
|-----|--------|
|
|
124
|
+
| `←` / `↓` | Decrease by step |
|
|
125
|
+
| `→` / `↑` | Increase by step |
|
|
126
|
+
| `Home` | Jump to minimum |
|
|
127
|
+
| `End` | Jump to maximum |
|
|
128
|
+
| `Page Down` | Decrease by 10× step |
|
|
129
|
+
| `Page Up` | Increase by 10× step |
|
|
130
|
+
|
|
131
|
+
## Features
|
|
132
|
+
|
|
133
|
+
- **Input Devices**: Full mouse, touch, and keyboard support
|
|
134
|
+
- **Form Integration**: Form-associated custom element with validation
|
|
135
|
+
- **Visual Variants**: Five color options (default, primary, success, warning, danger)
|
|
136
|
+
- **Orientations**: Horizontal (default) or vertical layout
|
|
137
|
+
- **Value Display**: Optional current value indicator
|
|
138
|
+
- **Tick Marks**: Optional visual step indicators
|
|
139
|
+
- **Step Control**: Configure increment size
|
|
140
|
+
- **Accessibility**: Full ARIA support with keyboard navigation
|
|
141
|
+
|
|
142
|
+
## Examples
|
|
143
|
+
|
|
144
|
+
### Basic Slider
|
|
145
|
+
|
|
146
|
+
```html
|
|
147
|
+
<snice-slider
|
|
148
|
+
label="Volume"
|
|
149
|
+
min="0"
|
|
150
|
+
max="100"
|
|
151
|
+
value="50"
|
|
152
|
+
></snice-slider>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### With Value Display
|
|
156
|
+
|
|
157
|
+
```html
|
|
158
|
+
<snice-slider
|
|
159
|
+
label="Brightness"
|
|
160
|
+
min="0"
|
|
161
|
+
max="100"
|
|
162
|
+
value="75"
|
|
163
|
+
show-value
|
|
164
|
+
></snice-slider>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### With Tick Marks
|
|
168
|
+
|
|
169
|
+
```html
|
|
170
|
+
<snice-slider
|
|
171
|
+
label="Rating"
|
|
172
|
+
min="0"
|
|
173
|
+
max="10"
|
|
174
|
+
step="1"
|
|
175
|
+
show-ticks
|
|
176
|
+
show-value
|
|
177
|
+
></snice-slider>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Different Variants
|
|
181
|
+
|
|
182
|
+
```html
|
|
183
|
+
<snice-slider variant="default" label="Default"></snice-slider>
|
|
184
|
+
<snice-slider variant="primary" label="Primary"></snice-slider>
|
|
185
|
+
<snice-slider variant="success" label="Success"></snice-slider>
|
|
186
|
+
<snice-slider variant="warning" label="Warning"></snice-slider>
|
|
187
|
+
<snice-slider variant="danger" label="Danger"></snice-slider>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Different Sizes
|
|
191
|
+
|
|
192
|
+
```html
|
|
193
|
+
<snice-slider size="small" label="Small"></snice-slider>
|
|
194
|
+
<snice-slider size="medium" label="Medium"></snice-slider>
|
|
195
|
+
<snice-slider size="large" label="Large"></snice-slider>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Custom Range and Step
|
|
199
|
+
|
|
200
|
+
```html
|
|
201
|
+
<!-- Temperature: 60-80°F in 0.5° increments -->
|
|
202
|
+
<snice-slider
|
|
203
|
+
label="Temperature"
|
|
204
|
+
min="60"
|
|
205
|
+
max="80"
|
|
206
|
+
step="0.5"
|
|
207
|
+
value="72"
|
|
208
|
+
show-value
|
|
209
|
+
></snice-slider>
|
|
210
|
+
|
|
211
|
+
<!-- Percentage: 0-100 in 5% increments -->
|
|
212
|
+
<snice-slider
|
|
213
|
+
label="Discount"
|
|
214
|
+
min="0"
|
|
215
|
+
max="100"
|
|
216
|
+
step="5"
|
|
217
|
+
value="20"
|
|
218
|
+
show-value
|
|
219
|
+
show-ticks
|
|
220
|
+
></snice-slider>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Vertical Slider
|
|
224
|
+
|
|
225
|
+
```html
|
|
226
|
+
<snice-slider
|
|
227
|
+
label="Volume"
|
|
228
|
+
min="0"
|
|
229
|
+
max="100"
|
|
230
|
+
value="60"
|
|
231
|
+
vertical
|
|
232
|
+
show-value
|
|
233
|
+
></snice-slider>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Error State
|
|
237
|
+
|
|
238
|
+
```html
|
|
239
|
+
<snice-slider
|
|
240
|
+
label="Age"
|
|
241
|
+
min="0"
|
|
242
|
+
max="120"
|
|
243
|
+
value="150"
|
|
244
|
+
invalid
|
|
245
|
+
error-text="Value must be between 0 and 120"
|
|
246
|
+
></snice-slider>
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### In a Form
|
|
250
|
+
|
|
251
|
+
```html
|
|
252
|
+
<form id="settings-form">
|
|
253
|
+
<snice-slider
|
|
254
|
+
name="volume"
|
|
255
|
+
label="Volume"
|
|
256
|
+
min="0"
|
|
257
|
+
max="100"
|
|
258
|
+
value="50"
|
|
259
|
+
required
|
|
260
|
+
></snice-slider>
|
|
261
|
+
|
|
262
|
+
<snice-slider
|
|
263
|
+
name="brightness"
|
|
264
|
+
label="Brightness"
|
|
265
|
+
min="0"
|
|
266
|
+
max="100"
|
|
267
|
+
value="75"
|
|
268
|
+
></snice-slider>
|
|
269
|
+
|
|
270
|
+
<button type="submit">Save Settings</button>
|
|
271
|
+
</form>
|
|
272
|
+
|
|
273
|
+
<script>
|
|
274
|
+
document.getElementById('settings-form').addEventListener('submit', (e) => {
|
|
275
|
+
e.preventDefault();
|
|
276
|
+
const formData = new FormData(e.target);
|
|
277
|
+
console.log('Volume:', formData.get('volume'));
|
|
278
|
+
console.log('Brightness:', formData.get('brightness'));
|
|
279
|
+
});
|
|
280
|
+
</script>
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Real-time Value Display
|
|
284
|
+
|
|
285
|
+
```html
|
|
286
|
+
<snice-slider id="volume-slider" min="0" max="100" value="50"></snice-slider>
|
|
287
|
+
<div id="volume-display">Volume: 50</div>
|
|
288
|
+
|
|
289
|
+
<script>
|
|
290
|
+
const slider = document.getElementById('volume-slider');
|
|
291
|
+
const display = document.getElementById('volume-display');
|
|
292
|
+
|
|
293
|
+
slider.addEventListener('@snice/slider-input', (e) => {
|
|
294
|
+
display.textContent = `Volume: ${e.detail.value}`;
|
|
295
|
+
});
|
|
296
|
+
</script>
|
|
297
|
+
```
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# Sparkline Component
|
|
2
|
+
|
|
3
|
+
A lightweight inline chart component for visualizing trends and patterns in compact spaces. Perfect for dashboards, tables, and data-dense interfaces.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Multiple Chart Types**: line, bar, area
|
|
8
|
+
- **Semantic Colors**: primary, success, warning, danger, muted
|
|
9
|
+
- **Custom Colors**: Use any color with the `custom-color` attribute
|
|
10
|
+
- **Smooth Curves**: Optional smooth bezier curve interpolation
|
|
11
|
+
- **Customizable Size**: Configurable width and height
|
|
12
|
+
- **Optional Enhancements**: Dots, area fill, custom stroke width
|
|
13
|
+
- **Flexible Data Range**: Optional min/max values for scaling
|
|
14
|
+
|
|
15
|
+
## Basic Usage
|
|
16
|
+
|
|
17
|
+
```html
|
|
18
|
+
<snice-sparkline id="chart"></snice-sparkline>
|
|
19
|
+
|
|
20
|
+
<script>
|
|
21
|
+
document.getElementById('chart').data = [10, 20, 15, 25, 30];
|
|
22
|
+
</script>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Properties
|
|
26
|
+
|
|
27
|
+
| Property | Type | Default | Description |
|
|
28
|
+
|----------|------|---------|-------------|
|
|
29
|
+
| `data` | `number[]` | `[]` | Array of numeric values to visualize |
|
|
30
|
+
| `type` | `SparklineType` | `'line'` | Chart type ('line', 'bar', 'area') |
|
|
31
|
+
| `color` | `SparklineColor` | `'primary'` | Color variant ('primary', 'success', 'warning', 'danger', 'muted') |
|
|
32
|
+
| `custom-color` | `string` | `undefined` | Custom color (overrides `color`) - any valid CSS color |
|
|
33
|
+
| `width` | `number` | `100` | Chart width in pixels |
|
|
34
|
+
| `height` | `number` | `30` | Chart height in pixels |
|
|
35
|
+
| `strokeWidth` | `number` | `2` | Line/dot stroke width |
|
|
36
|
+
| `showDots` | `boolean` | `false` | Show dots on data points (line charts) |
|
|
37
|
+
| `showArea` | `boolean` | `false` | Show area fill (line charts) |
|
|
38
|
+
| `smooth` | `boolean` | `false` | Use smooth bezier curves instead of sharp lines |
|
|
39
|
+
| `min` | `number` | `undefined` | Minimum value for scaling (auto if not set) |
|
|
40
|
+
| `max` | `number` | `undefined` | Maximum value for scaling (auto if not set) |
|
|
41
|
+
|
|
42
|
+
## Chart Types
|
|
43
|
+
|
|
44
|
+
### Line Chart
|
|
45
|
+
```html
|
|
46
|
+
<snice-sparkline type="line"></snice-sparkline>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Bar Chart
|
|
50
|
+
```html
|
|
51
|
+
<snice-sparkline type="bar"></snice-sparkline>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Area Chart
|
|
55
|
+
```html
|
|
56
|
+
<snice-sparkline type="area"></snice-sparkline>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Colors
|
|
60
|
+
|
|
61
|
+
### Primary
|
|
62
|
+
```html
|
|
63
|
+
<snice-sparkline color="primary"></snice-sparkline>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Success
|
|
67
|
+
```html
|
|
68
|
+
<snice-sparkline color="success"></snice-sparkline>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Warning
|
|
72
|
+
```html
|
|
73
|
+
<snice-sparkline color="warning"></snice-sparkline>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Danger
|
|
77
|
+
```html
|
|
78
|
+
<snice-sparkline color="danger"></snice-sparkline>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Muted
|
|
82
|
+
```html
|
|
83
|
+
<snice-sparkline color="muted"></snice-sparkline>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Customization
|
|
87
|
+
|
|
88
|
+
### With Dots
|
|
89
|
+
```html
|
|
90
|
+
<snice-sparkline show-dots></snice-sparkline>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### With Area Fill
|
|
94
|
+
```html
|
|
95
|
+
<snice-sparkline show-area></snice-sparkline>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Custom Size
|
|
99
|
+
```html
|
|
100
|
+
<snice-sparkline width="200" height="50"></snice-sparkline>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Thick Stroke
|
|
104
|
+
```html
|
|
105
|
+
<snice-sparkline stroke-width="3"></snice-sparkline>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Custom Scale
|
|
109
|
+
```html
|
|
110
|
+
<snice-sparkline min="0" max="100"></snice-sparkline>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Smooth Curves
|
|
114
|
+
```html
|
|
115
|
+
<snice-sparkline smooth></snice-sparkline>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Custom Colors
|
|
119
|
+
```html
|
|
120
|
+
<!-- Hex color -->
|
|
121
|
+
<snice-sparkline custom-color="#9333ea"></snice-sparkline>
|
|
122
|
+
|
|
123
|
+
<!-- RGB color -->
|
|
124
|
+
<snice-sparkline custom-color="rgb(147, 51, 234)"></snice-sparkline>
|
|
125
|
+
|
|
126
|
+
<!-- Any valid CSS color -->
|
|
127
|
+
<snice-sparkline custom-color="hsl(270, 80%, 60%)"></snice-sparkline>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## CSS Parts
|
|
131
|
+
|
|
132
|
+
Use `::part()` to style internal elements:
|
|
133
|
+
|
|
134
|
+
```css
|
|
135
|
+
snice-sparkline::part(container) {
|
|
136
|
+
padding: 4px;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
snice-sparkline::part(svg) {
|
|
140
|
+
filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
snice-sparkline::part(line) {
|
|
144
|
+
stroke-dasharray: 4;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
snice-sparkline::part(bar) {
|
|
148
|
+
rx: 2;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
snice-sparkline::part(area) {
|
|
152
|
+
opacity: 0.3;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
snice-sparkline::part(dot) {
|
|
156
|
+
fill: white;
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Theming
|
|
161
|
+
|
|
162
|
+
The component uses these CSS custom properties:
|
|
163
|
+
|
|
164
|
+
```css
|
|
165
|
+
--snice-color-primary
|
|
166
|
+
--snice-color-success
|
|
167
|
+
--snice-color-warning
|
|
168
|
+
--snice-color-danger
|
|
169
|
+
--snice-color-text-secondary
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Examples
|
|
173
|
+
|
|
174
|
+
### Website Traffic Trend
|
|
175
|
+
```html
|
|
176
|
+
<div>
|
|
177
|
+
<label>Daily Visitors</label>
|
|
178
|
+
<snice-sparkline
|
|
179
|
+
id="traffic"
|
|
180
|
+
color="primary"
|
|
181
|
+
width="150"
|
|
182
|
+
height="40"
|
|
183
|
+
show-area>
|
|
184
|
+
</snice-sparkline>
|
|
185
|
+
</div>
|
|
186
|
+
|
|
187
|
+
<script>
|
|
188
|
+
document.getElementById('traffic').data = [
|
|
189
|
+
1200, 1350, 1100, 1450, 1600, 1550, 1700,
|
|
190
|
+
1800, 1650, 1900, 2100, 2000, 2200, 2400
|
|
191
|
+
];
|
|
192
|
+
</script>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Sales Performance
|
|
196
|
+
```html
|
|
197
|
+
<div>
|
|
198
|
+
<label>Weekly Sales</label>
|
|
199
|
+
<snice-sparkline
|
|
200
|
+
id="sales"
|
|
201
|
+
type="bar"
|
|
202
|
+
color="success"
|
|
203
|
+
width="150"
|
|
204
|
+
height="40">
|
|
205
|
+
</snice-sparkline>
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
<script>
|
|
209
|
+
document.getElementById('sales').data = [45, 52, 48, 61, 55, 70, 68];
|
|
210
|
+
</script>
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Server Response Time
|
|
214
|
+
```html
|
|
215
|
+
<div>
|
|
216
|
+
<label>Response Time (ms)</label>
|
|
217
|
+
<snice-sparkline
|
|
218
|
+
id="response"
|
|
219
|
+
color="warning"
|
|
220
|
+
width="150"
|
|
221
|
+
height="40"
|
|
222
|
+
show-dots>
|
|
223
|
+
</snice-sparkline>
|
|
224
|
+
</div>
|
|
225
|
+
|
|
226
|
+
<script>
|
|
227
|
+
document.getElementById('response').data = [
|
|
228
|
+
120, 135, 115, 145, 160, 155, 140, 130, 125, 120
|
|
229
|
+
];
|
|
230
|
+
</script>
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Error Rate
|
|
234
|
+
```html
|
|
235
|
+
<div>
|
|
236
|
+
<label>Error Rate</label>
|
|
237
|
+
<snice-sparkline
|
|
238
|
+
id="errors"
|
|
239
|
+
type="area"
|
|
240
|
+
color="danger"
|
|
241
|
+
width="150"
|
|
242
|
+
height="40"
|
|
243
|
+
min="0">
|
|
244
|
+
</snice-sparkline>
|
|
245
|
+
</div>
|
|
246
|
+
|
|
247
|
+
<script>
|
|
248
|
+
document.getElementById('errors').data = [
|
|
249
|
+
5, 3, 7, 12, 8, 15, 25, 20, 18, 22, 15, 10, 5, 3, 1, 0
|
|
250
|
+
];
|
|
251
|
+
</script>
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### In Table Cells
|
|
255
|
+
```html
|
|
256
|
+
<table>
|
|
257
|
+
<tr>
|
|
258
|
+
<td>Product A</td>
|
|
259
|
+
<td><snice-sparkline id="product-a" width="80" height="25"></snice-sparkline></td>
|
|
260
|
+
</tr>
|
|
261
|
+
<tr>
|
|
262
|
+
<td>Product B</td>
|
|
263
|
+
<td><snice-sparkline id="product-b" width="80" height="25"></snice-sparkline></td>
|
|
264
|
+
</tr>
|
|
265
|
+
</table>
|
|
266
|
+
|
|
267
|
+
<script>
|
|
268
|
+
document.getElementById('product-a').data = [10, 12, 15, 14, 18, 22, 25];
|
|
269
|
+
document.getElementById('product-b').data = [30, 28, 25, 27, 24, 22, 20];
|
|
270
|
+
</script>
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Best Practices
|
|
274
|
+
|
|
275
|
+
1. **Keep it Simple**: Sparklines are meant to show trends, not detailed analysis
|
|
276
|
+
2. **Consistent Sizing**: Use the same dimensions for sparklines in a group
|
|
277
|
+
3. **Appropriate Scale**: Set `min`/`max` when comparing multiple charts
|
|
278
|
+
4. **Semantic Colors**: Use colors that match the data meaning (success=good, danger=bad)
|
|
279
|
+
5. **Add Context**: Always label sparklines so users understand what they represent
|
|
280
|
+
|
|
281
|
+
## Accessibility
|
|
282
|
+
|
|
283
|
+
- Sparklines are decorative visualizations
|
|
284
|
+
- Always provide text labels or tooltips for the data
|
|
285
|
+
- Consider adding `aria-label` to describe the trend
|
|
286
|
+
- Ensure sufficient color contrast for visibility
|
|
287
|
+
|
|
288
|
+
## Performance
|
|
289
|
+
|
|
290
|
+
- Lightweight SVG rendering
|
|
291
|
+
- No external dependencies
|
|
292
|
+
- Efficiently handles data updates
|
|
293
|
+
- Suitable for rendering many sparklines simultaneously
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Spinner Component
|
|
2
|
+
|
|
3
|
+
The `<snice-spinner>` component provides an animated loading indicator.
|
|
4
|
+
|
|
5
|
+
## Basic Usage
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<snice-spinner></snice-spinner>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Properties
|
|
12
|
+
|
|
13
|
+
| Property | Type | Default | Description |
|
|
14
|
+
|----------|------|---------|-------------|
|
|
15
|
+
| `size` | `'small' \| 'medium' \| 'large' \| 'xl'` | `'medium'` | Spinner size |
|
|
16
|
+
| `color` | `'primary' \| 'success' \| 'warning' \| 'error' \| 'info'` | `'primary'` | Color variant |
|
|
17
|
+
| `label` | `string` | `''` | Accessible label |
|
|
18
|
+
| `thickness` | `number` | `4` | Stroke thickness |
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
|
|
22
|
+
### Sizes
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<snice-spinner size="small"></snice-spinner>
|
|
26
|
+
<snice-spinner size="medium"></snice-spinner>
|
|
27
|
+
<snice-spinner size="large"></snice-spinner>
|
|
28
|
+
<snice-spinner size="xl"></snice-spinner>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Colors
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<snice-spinner color="primary"></snice-spinner>
|
|
35
|
+
<snice-spinner color="success"></snice-spinner>
|
|
36
|
+
<snice-spinner color="warning"></snice-spinner>
|
|
37
|
+
<snice-spinner color="error"></snice-spinner>
|
|
38
|
+
<snice-spinner color="info"></snice-spinner>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### With Label
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<snice-spinner label="Loading data..."></snice-spinner>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Loading State
|
|
48
|
+
|
|
49
|
+
```html
|
|
50
|
+
<div style="text-align: center; padding: 2rem;">
|
|
51
|
+
<snice-spinner size="large" color="primary"></snice-spinner>
|
|
52
|
+
<p>Loading content...</p>
|
|
53
|
+
</div>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Inline Spinner
|
|
57
|
+
|
|
58
|
+
```html
|
|
59
|
+
<button disabled>
|
|
60
|
+
<snice-spinner size="small"></snice-spinner>
|
|
61
|
+
Processing...
|
|
62
|
+
</button>
|
|
63
|
+
```
|