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,92 @@
|
|
|
1
|
+
# snice-select
|
|
2
|
+
|
|
3
|
+
Customizable dropdown selection with single/multiple selection, search, and icons.
|
|
4
|
+
|
|
5
|
+
## Components
|
|
6
|
+
|
|
7
|
+
### snice-select (Container)
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
value: string = ''; // Selected value (comma-separated for multiple)
|
|
11
|
+
disabled: boolean = false; // Disabled state
|
|
12
|
+
required: boolean = false; // Required for form validation
|
|
13
|
+
invalid: boolean = false; // Invalid state styling
|
|
14
|
+
readonly: boolean = false; // Readonly state
|
|
15
|
+
multiple: boolean = false; // Allow multiple selection
|
|
16
|
+
searchable: boolean = false; // Show search input
|
|
17
|
+
clearable: boolean = false; // Show clear button
|
|
18
|
+
open: boolean = false; // Dropdown open state
|
|
19
|
+
size: 'small'|'medium'|'large' = 'medium';
|
|
20
|
+
name: string = ''; // Form field name
|
|
21
|
+
label: string = ''; // Label text
|
|
22
|
+
placeholder: string = 'Select an option';
|
|
23
|
+
maxHeight: string = '200px'; // Max dropdown height
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Methods:**
|
|
27
|
+
```typescript
|
|
28
|
+
selectOption(value: string) // Select option by value
|
|
29
|
+
clear() // Clear selection
|
|
30
|
+
openDropdown() // Open dropdown
|
|
31
|
+
closeDropdown() // Close dropdown
|
|
32
|
+
toggleDropdown() // Toggle dropdown
|
|
33
|
+
focus() // Focus trigger
|
|
34
|
+
blur() // Blur and close
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Events:**
|
|
38
|
+
```typescript
|
|
39
|
+
'@snice/select-change' // { value, option, select }
|
|
40
|
+
'@snice/select-open' // { select }
|
|
41
|
+
'@snice/select-close' // { select }
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### snice-option (Option Item)
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
value: string = ''; // Option value (defaults to label)
|
|
48
|
+
label: string = ''; // Option label (defaults to textContent)
|
|
49
|
+
disabled: boolean = false; // Disabled state
|
|
50
|
+
selected: boolean = false; // Initially selected
|
|
51
|
+
icon: string = ''; // Icon URL
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Getter:**
|
|
55
|
+
```typescript
|
|
56
|
+
optionData // { value, label, disabled, selected, icon }
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Usage
|
|
60
|
+
|
|
61
|
+
```html
|
|
62
|
+
<snice-select label="Choose" name="choice">
|
|
63
|
+
<snice-option value="1">Option 1</snice-option>
|
|
64
|
+
<snice-option value="2">Option 2</snice-option>
|
|
65
|
+
</snice-select>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
select.addEventListener('@snice/select-change', (e) => {
|
|
70
|
+
console.log(e.detail.value);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
select.selectOption('1');
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Features
|
|
77
|
+
|
|
78
|
+
- Single and multiple selection
|
|
79
|
+
- Search filtering
|
|
80
|
+
- Keyboard navigation
|
|
81
|
+
- Form integration
|
|
82
|
+
- Icons in options
|
|
83
|
+
- Clearable selection
|
|
84
|
+
- Disabled options
|
|
85
|
+
|
|
86
|
+
## Notes
|
|
87
|
+
|
|
88
|
+
- Options must be direct children of select
|
|
89
|
+
- Multiple selection values are comma-separated
|
|
90
|
+
- Hidden native select for form submission
|
|
91
|
+
- Dropdown closes outside click
|
|
92
|
+
- Search shows in dropdown when open
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# snice-skeleton
|
|
2
|
+
|
|
3
|
+
Loading placeholder with animated shimmer effect.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
variant: 'text'|'circular'|'rectangular'|'rounded' = 'text';
|
|
9
|
+
width: string = '';
|
|
10
|
+
height: string = '';
|
|
11
|
+
animation: 'pulse'|'wave'|'none' = 'pulse';
|
|
12
|
+
count: number = 1;
|
|
13
|
+
spacing: string = '8px';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<!-- Text placeholder -->
|
|
20
|
+
<snice-skeleton variant="text"></snice-skeleton>
|
|
21
|
+
<snice-skeleton variant="text" width="200px"></snice-skeleton>
|
|
22
|
+
|
|
23
|
+
<!-- Circular (avatar) -->
|
|
24
|
+
<snice-skeleton variant="circular" width="40px" height="40px"></snice-skeleton>
|
|
25
|
+
|
|
26
|
+
<!-- Rectangular -->
|
|
27
|
+
<snice-skeleton variant="rectangular" width="100%" height="200px"></snice-skeleton>
|
|
28
|
+
|
|
29
|
+
<!-- Rounded (card) -->
|
|
30
|
+
<snice-skeleton variant="rounded" width="300px" height="150px"></snice-skeleton>
|
|
31
|
+
|
|
32
|
+
<!-- Multiple lines -->
|
|
33
|
+
<snice-skeleton variant="text" count="3"></snice-skeleton>
|
|
34
|
+
<snice-skeleton variant="text" count="5" spacing="12px"></snice-skeleton>
|
|
35
|
+
|
|
36
|
+
<!-- Animation types -->
|
|
37
|
+
<snice-skeleton animation="pulse"></snice-skeleton>
|
|
38
|
+
<snice-skeleton animation="wave"></snice-skeleton>
|
|
39
|
+
<snice-skeleton animation="none"></snice-skeleton>
|
|
40
|
+
|
|
41
|
+
<!-- Complex layout -->
|
|
42
|
+
<div style="display: flex; gap: 16px;">
|
|
43
|
+
<snice-skeleton variant="circular" width="48px" height="48px"></snice-skeleton>
|
|
44
|
+
<div style="flex: 1;">
|
|
45
|
+
<snice-skeleton variant="text" width="40%"></snice-skeleton>
|
|
46
|
+
<snice-skeleton variant="text" width="60%"></snice-skeleton>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Features
|
|
52
|
+
|
|
53
|
+
- 4 shape variants (text/circular/rectangular/rounded)
|
|
54
|
+
- 3 animation styles (pulse/wave/none)
|
|
55
|
+
- Custom dimensions
|
|
56
|
+
- Multiple skeleton elements with spacing
|
|
57
|
+
- Mimics loading content shapes
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# snice-slider
|
|
2
|
+
|
|
3
|
+
Range slider for numeric value selection.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
value: number = 0;
|
|
9
|
+
min: number = 0;
|
|
10
|
+
max: number = 100;
|
|
11
|
+
step: number = 1;
|
|
12
|
+
variant: 'default'|'primary'|'success'|'warning'|'danger' = 'default';
|
|
13
|
+
size: 'small'|'medium'|'large' = 'medium';
|
|
14
|
+
disabled: boolean = false;
|
|
15
|
+
required: boolean = false;
|
|
16
|
+
invalid: boolean = false;
|
|
17
|
+
readonly: boolean = false;
|
|
18
|
+
label: string = '';
|
|
19
|
+
helperText: string = '';
|
|
20
|
+
errorText: string = '';
|
|
21
|
+
name: string = '';
|
|
22
|
+
showValue: boolean = false;
|
|
23
|
+
showTicks: boolean = false;
|
|
24
|
+
vertical: boolean = false;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Methods
|
|
28
|
+
|
|
29
|
+
- `focus()` - Focus slider thumb
|
|
30
|
+
- `blur()` - Blur slider thumb
|
|
31
|
+
|
|
32
|
+
## Events
|
|
33
|
+
|
|
34
|
+
- `input` - {value, slider} - During drag
|
|
35
|
+
- `change` - {value, slider} - After drag complete
|
|
36
|
+
|
|
37
|
+
## Usage
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<!-- Basic -->
|
|
41
|
+
<snice-slider label="Volume" min="0" max="100"></snice-slider>
|
|
42
|
+
|
|
43
|
+
<!-- With value display -->
|
|
44
|
+
<snice-slider show-value value="50"></snice-slider>
|
|
45
|
+
|
|
46
|
+
<!-- With ticks -->
|
|
47
|
+
<snice-slider show-ticks min="0" max="10" step="1"></snice-slider>
|
|
48
|
+
|
|
49
|
+
<!-- Variants -->
|
|
50
|
+
<snice-slider variant="primary"></snice-slider>
|
|
51
|
+
<snice-slider variant="success"></snice-slider>
|
|
52
|
+
<snice-slider variant="warning"></snice-slider>
|
|
53
|
+
<snice-slider variant="danger"></snice-slider>
|
|
54
|
+
|
|
55
|
+
<!-- Sizes -->
|
|
56
|
+
<snice-slider size="small"></snice-slider>
|
|
57
|
+
<snice-slider size="medium"></snice-slider>
|
|
58
|
+
<snice-slider size="large"></snice-slider>
|
|
59
|
+
|
|
60
|
+
<!-- Vertical -->
|
|
61
|
+
<snice-slider vertical></snice-slider>
|
|
62
|
+
|
|
63
|
+
<!-- Step increments -->
|
|
64
|
+
<snice-slider min="0" max="100" step="5" value="50"></snice-slider>
|
|
65
|
+
|
|
66
|
+
<!-- Events -->
|
|
67
|
+
<snice-slider id="slider"></snice-slider>
|
|
68
|
+
<script>
|
|
69
|
+
const slider = document.querySelector('#slider');
|
|
70
|
+
slider.addEventListener('@snice/slider-change', (e) => {
|
|
71
|
+
console.log('Value:', e.detail.value);
|
|
72
|
+
});
|
|
73
|
+
</script>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Features
|
|
77
|
+
|
|
78
|
+
- Form-associated custom element
|
|
79
|
+
- Mouse and touch support
|
|
80
|
+
- Keyboard navigation (arrows, home/end, page up/down)
|
|
81
|
+
- 5 color variants
|
|
82
|
+
- 3 sizes
|
|
83
|
+
- Vertical orientation
|
|
84
|
+
- Optional value display
|
|
85
|
+
- Optional tick marks
|
|
86
|
+
- Step increments
|
|
87
|
+
- Accessible
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# snice-sparkline
|
|
2
|
+
|
|
3
|
+
Compact inline chart for visualizing trends and patterns. For dashboards, tables, data-dense interfaces.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
data: number[] = [] // Values to visualize
|
|
9
|
+
type: SparklineType = 'line' // 'line' | 'bar' | 'area'
|
|
10
|
+
color: SparklineColor = 'primary' // 'primary' | 'success' | 'warning' | 'danger' | 'muted'
|
|
11
|
+
customColor?: string // Any CSS color (overrides color)
|
|
12
|
+
width: number = 100 // Chart width in pixels
|
|
13
|
+
height: number = 30 // Chart height in pixels
|
|
14
|
+
strokeWidth: number = 2 // Line/dot stroke width
|
|
15
|
+
showDots: boolean = false // Show dots on data points (line charts)
|
|
16
|
+
showArea: boolean = false // Show area fill (line charts)
|
|
17
|
+
smooth: boolean = false // Use smooth bezier curves
|
|
18
|
+
min?: number // Min value for scaling (auto if unset)
|
|
19
|
+
max?: number // Max value for scaling (auto if unset)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<!-- Basic -->
|
|
26
|
+
<snice-sparkline id="chart"></snice-sparkline>
|
|
27
|
+
<script>
|
|
28
|
+
document.getElementById('chart').data = [10, 20, 15, 25, 30];
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<!-- Line chart -->
|
|
32
|
+
<snice-sparkline id="line" type="line"></snice-sparkline>
|
|
33
|
+
|
|
34
|
+
<!-- Bar chart -->
|
|
35
|
+
<snice-sparkline id="bar" type="bar"></snice-sparkline>
|
|
36
|
+
|
|
37
|
+
<!-- Area chart -->
|
|
38
|
+
<snice-sparkline id="area" type="area"></snice-sparkline>
|
|
39
|
+
|
|
40
|
+
<!-- Smooth curves -->
|
|
41
|
+
<snice-sparkline id="smooth" smooth></snice-sparkline>
|
|
42
|
+
|
|
43
|
+
<!-- With dots -->
|
|
44
|
+
<snice-sparkline id="dots" show-dots></snice-sparkline>
|
|
45
|
+
|
|
46
|
+
<!-- With area fill -->
|
|
47
|
+
<snice-sparkline id="fill" show-area></snice-sparkline>
|
|
48
|
+
|
|
49
|
+
<!-- Colors -->
|
|
50
|
+
<snice-sparkline color="primary"></snice-sparkline>
|
|
51
|
+
<snice-sparkline color="success"></snice-sparkline>
|
|
52
|
+
<snice-sparkline color="warning"></snice-sparkline>
|
|
53
|
+
<snice-sparkline color="danger"></snice-sparkline>
|
|
54
|
+
<snice-sparkline color="muted"></snice-sparkline>
|
|
55
|
+
|
|
56
|
+
<!-- Custom colors -->
|
|
57
|
+
<snice-sparkline custom-color="#9333ea"></snice-sparkline>
|
|
58
|
+
<snice-sparkline custom-color="rgb(147, 51, 234)"></snice-sparkline>
|
|
59
|
+
<snice-sparkline custom-color="hsl(270, 80%, 60%)"></snice-sparkline>
|
|
60
|
+
|
|
61
|
+
<!-- Sizing -->
|
|
62
|
+
<snice-sparkline width="200" height="50"></snice-sparkline>
|
|
63
|
+
|
|
64
|
+
<!-- Custom scale -->
|
|
65
|
+
<snice-sparkline min="0" max="100"></snice-sparkline>
|
|
66
|
+
|
|
67
|
+
<!-- Combined features -->
|
|
68
|
+
<snice-sparkline
|
|
69
|
+
id="advanced"
|
|
70
|
+
type="line"
|
|
71
|
+
color="primary"
|
|
72
|
+
width="150"
|
|
73
|
+
height="40"
|
|
74
|
+
smooth
|
|
75
|
+
show-area
|
|
76
|
+
min="0">
|
|
77
|
+
</snice-sparkline>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## CSS Parts
|
|
81
|
+
|
|
82
|
+
```css
|
|
83
|
+
::part(container) /* Container div */
|
|
84
|
+
::part(svg) /* SVG element */
|
|
85
|
+
::part(line) /* Line/path element */
|
|
86
|
+
::part(area) /* Area polygon/path */
|
|
87
|
+
::part(bar) /* Bar rect */
|
|
88
|
+
::part(dot) /* Dot circle */
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Styling
|
|
92
|
+
|
|
93
|
+
```css
|
|
94
|
+
--snice-color-primary
|
|
95
|
+
--snice-color-success
|
|
96
|
+
--snice-color-warning
|
|
97
|
+
--snice-color-danger
|
|
98
|
+
--snice-color-text-secondary
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## In Tables
|
|
102
|
+
|
|
103
|
+
```html
|
|
104
|
+
<snice-table id="table"></snice-table>
|
|
105
|
+
<script>
|
|
106
|
+
document.getElementById('table').data = [
|
|
107
|
+
{
|
|
108
|
+
product: 'A',
|
|
109
|
+
trend: [10, 15, 12, 18, 22, 25]
|
|
110
|
+
}
|
|
111
|
+
];
|
|
112
|
+
|
|
113
|
+
document.getElementById('table').columns = [
|
|
114
|
+
{ key: 'product', label: 'Product' },
|
|
115
|
+
{
|
|
116
|
+
key: 'trend',
|
|
117
|
+
label: 'Trend',
|
|
118
|
+
render: (value) => {
|
|
119
|
+
const sparkline = document.createElement('snice-sparkline');
|
|
120
|
+
sparkline.data = value;
|
|
121
|
+
sparkline.width = 80;
|
|
122
|
+
sparkline.height = 25;
|
|
123
|
+
sparkline.color = 'primary';
|
|
124
|
+
return sparkline;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
];
|
|
128
|
+
</script>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Common Patterns
|
|
132
|
+
|
|
133
|
+
```html
|
|
134
|
+
<!-- Website traffic -->
|
|
135
|
+
<snice-sparkline
|
|
136
|
+
id="traffic"
|
|
137
|
+
color="primary"
|
|
138
|
+
width="150"
|
|
139
|
+
height="40"
|
|
140
|
+
smooth
|
|
141
|
+
show-area>
|
|
142
|
+
</snice-sparkline>
|
|
143
|
+
|
|
144
|
+
<!-- Sales bars -->
|
|
145
|
+
<snice-sparkline
|
|
146
|
+
id="sales"
|
|
147
|
+
type="bar"
|
|
148
|
+
color="success"
|
|
149
|
+
width="150"
|
|
150
|
+
height="40">
|
|
151
|
+
</snice-sparkline>
|
|
152
|
+
|
|
153
|
+
<!-- Response time with dots -->
|
|
154
|
+
<snice-sparkline
|
|
155
|
+
id="response"
|
|
156
|
+
color="warning"
|
|
157
|
+
smooth
|
|
158
|
+
show-dots>
|
|
159
|
+
</snice-sparkline>
|
|
160
|
+
|
|
161
|
+
<!-- Error rate -->
|
|
162
|
+
<snice-sparkline
|
|
163
|
+
id="errors"
|
|
164
|
+
type="area"
|
|
165
|
+
color="danger"
|
|
166
|
+
min="0">
|
|
167
|
+
</snice-sparkline>
|
|
168
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# snice-spinner
|
|
2
|
+
|
|
3
|
+
Animated loading spinner.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
size: 'small'|'medium'|'large'|'xl' = 'medium';
|
|
9
|
+
color: 'primary'|'success'|'warning'|'error'|'info' = 'primary';
|
|
10
|
+
label: string = '';
|
|
11
|
+
thickness: number = 4;
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```html
|
|
17
|
+
<!-- Basic -->
|
|
18
|
+
<snice-spinner></snice-spinner>
|
|
19
|
+
|
|
20
|
+
<!-- Sizes -->
|
|
21
|
+
<snice-spinner size="small"></snice-spinner>
|
|
22
|
+
<snice-spinner size="medium"></snice-spinner>
|
|
23
|
+
<snice-spinner size="large"></snice-spinner>
|
|
24
|
+
<snice-spinner size="xl"></snice-spinner>
|
|
25
|
+
|
|
26
|
+
<!-- Colors -->
|
|
27
|
+
<snice-spinner color="primary"></snice-spinner>
|
|
28
|
+
<snice-spinner color="success"></snice-spinner>
|
|
29
|
+
<snice-spinner color="warning"></snice-spinner>
|
|
30
|
+
<snice-spinner color="error"></snice-spinner>
|
|
31
|
+
<snice-spinner color="info"></snice-spinner>
|
|
32
|
+
|
|
33
|
+
<!-- With label -->
|
|
34
|
+
<snice-spinner label="Loading..."></snice-spinner>
|
|
35
|
+
|
|
36
|
+
<!-- Custom thickness -->
|
|
37
|
+
<snice-spinner thickness="6"></snice-spinner>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Features
|
|
41
|
+
|
|
42
|
+
- Smooth circular animation
|
|
43
|
+
- 4 sizes
|
|
44
|
+
- 5 color variants
|
|
45
|
+
- Optional label
|
|
46
|
+
- Accessible (role=status, aria-label)
|
|
47
|
+
- Lightweight SVG-based
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# snice-stepper
|
|
2
|
+
|
|
3
|
+
Step indicator for multi-step processes, wizards, workflows. Shows progress with pending/active/completed/error states.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
steps: Step[] = [] // Array of step objects
|
|
9
|
+
currentStep: number = 0 // Current active step index
|
|
10
|
+
orientation: StepperOrientation = 'horizontal' // 'horizontal' | 'vertical'
|
|
11
|
+
clickable: boolean = false // Enable click navigation
|
|
12
|
+
|
|
13
|
+
// Step object:
|
|
14
|
+
{
|
|
15
|
+
label: string; // Step label (required)
|
|
16
|
+
description?: string; // Optional description
|
|
17
|
+
status?: StepStatus; // Override auto status: 'pending' | 'active' | 'completed' | 'error'
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<!-- Basic horizontal -->
|
|
25
|
+
<snice-stepper id="basic"></snice-stepper>
|
|
26
|
+
<script>
|
|
27
|
+
document.getElementById('basic').steps = [
|
|
28
|
+
{ label: 'Step 1' },
|
|
29
|
+
{ label: 'Step 2' },
|
|
30
|
+
{ label: 'Step 3' }
|
|
31
|
+
];
|
|
32
|
+
document.getElementById('basic').currentStep = 1;
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<!-- With panels (auto show/hide) -->
|
|
36
|
+
<snice-stepper id="wizard" clickable></snice-stepper>
|
|
37
|
+
<snice-stepper-panel>Step 1 content</snice-stepper-panel>
|
|
38
|
+
<snice-stepper-panel>Step 2 content</snice-stepper-panel>
|
|
39
|
+
<snice-stepper-panel>Step 3 content</snice-stepper-panel>
|
|
40
|
+
<script>
|
|
41
|
+
document.getElementById('wizard').steps = [
|
|
42
|
+
{ label: 'Account' },
|
|
43
|
+
{ label: 'Profile' },
|
|
44
|
+
{ label: 'Complete' }
|
|
45
|
+
];
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<!-- Vertical with descriptions -->
|
|
49
|
+
<snice-stepper id="vertical" orientation="vertical"></snice-stepper>
|
|
50
|
+
<script>
|
|
51
|
+
document.getElementById('vertical').steps = [
|
|
52
|
+
{ label: 'Account', description: 'Create your account' },
|
|
53
|
+
{ label: 'Profile', description: 'Personal info' },
|
|
54
|
+
{ label: 'Complete', description: 'Finish setup' }
|
|
55
|
+
];
|
|
56
|
+
</script>
|
|
57
|
+
|
|
58
|
+
<!-- Clickable navigation -->
|
|
59
|
+
<snice-stepper id="wizard" clickable></snice-stepper>
|
|
60
|
+
<script>
|
|
61
|
+
const wizard = document.getElementById('wizard');
|
|
62
|
+
wizard.steps = [
|
|
63
|
+
{ label: 'Cart' },
|
|
64
|
+
{ label: 'Delivery' },
|
|
65
|
+
{ label: 'Payment' },
|
|
66
|
+
{ label: 'Confirm' }
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
wizard.addEventListener('step-change', (e) => {
|
|
70
|
+
console.log(e.detail.previousStep); // Previous step index
|
|
71
|
+
console.log(e.detail.currentStep); // New step index
|
|
72
|
+
console.log(e.detail.step); // Step object
|
|
73
|
+
// e.preventDefault(); to cancel navigation
|
|
74
|
+
});
|
|
75
|
+
</script>
|
|
76
|
+
|
|
77
|
+
<!-- Error state -->
|
|
78
|
+
<snice-stepper id="validation"></snice-stepper>
|
|
79
|
+
<script>
|
|
80
|
+
document.getElementById('validation').steps = [
|
|
81
|
+
{ label: 'Upload', status: 'completed' },
|
|
82
|
+
{ label: 'Validate', status: 'error' },
|
|
83
|
+
{ label: 'Process', status: 'pending' }
|
|
84
|
+
];
|
|
85
|
+
</script>
|
|
86
|
+
|
|
87
|
+
<!-- Programmatic navigation -->
|
|
88
|
+
<script>
|
|
89
|
+
const stepper = document.getElementById('my-stepper');
|
|
90
|
+
stepper.currentStep++; // Next
|
|
91
|
+
stepper.currentStep--; // Previous
|
|
92
|
+
stepper.currentStep = 2; // Go to step 3
|
|
93
|
+
</script>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Events
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
// step-change (only in clickable mode)
|
|
100
|
+
stepper.addEventListener('step-change', (e) => {
|
|
101
|
+
const { previousStep, currentStep, step } = e.detail;
|
|
102
|
+
e.preventDefault(); // Cancel navigation if needed
|
|
103
|
+
});
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## CSS Parts
|
|
107
|
+
|
|
108
|
+
```css
|
|
109
|
+
::part(container) /* Main container */
|
|
110
|
+
::part(step) /* Individual step */
|
|
111
|
+
::part(step-indicator) /* Circular indicator */
|
|
112
|
+
::part(step-content) /* Label + description wrapper */
|
|
113
|
+
::part(step-label) /* Step label text */
|
|
114
|
+
::part(step-description) /* Description text */
|
|
115
|
+
::part(step-connector) /* Line between steps */
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Styling
|
|
119
|
+
|
|
120
|
+
```css
|
|
121
|
+
--snice-color-primary /* Active state */
|
|
122
|
+
--snice-color-success /* Completed state */
|
|
123
|
+
--snice-color-danger /* Error state */
|
|
124
|
+
--snice-color-text
|
|
125
|
+
--snice-color-text-secondary /* Pending state */
|
|
126
|
+
--snice-color-text-inverse /* Indicator text */
|
|
127
|
+
--snice-color-background
|
|
128
|
+
--snice-color-border
|
|
129
|
+
--snice-spacing-xs
|
|
130
|
+
--snice-spacing-sm
|
|
131
|
+
--snice-spacing-md
|
|
132
|
+
--snice-spacing-lg
|
|
133
|
+
--snice-font-size-xs
|
|
134
|
+
--snice-font-size-sm
|
|
135
|
+
--snice-font-weight-medium
|
|
136
|
+
--snice-font-weight-semibold
|
|
137
|
+
--snice-transition-fast
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Common Patterns
|
|
141
|
+
|
|
142
|
+
```html
|
|
143
|
+
<!-- Checkout flow -->
|
|
144
|
+
<snice-stepper id="checkout" clickable></snice-stepper>
|
|
145
|
+
<button onclick="document.getElementById('checkout').currentStep--">Back</button>
|
|
146
|
+
<button onclick="document.getElementById('checkout').currentStep++">Next</button>
|
|
147
|
+
<script>
|
|
148
|
+
document.getElementById('checkout').steps = [
|
|
149
|
+
{ label: 'Cart', description: 'Review items' },
|
|
150
|
+
{ label: 'Delivery', description: 'Shipping address' },
|
|
151
|
+
{ label: 'Payment', description: 'Billing info' },
|
|
152
|
+
{ label: 'Confirm', description: 'Place order' }
|
|
153
|
+
];
|
|
154
|
+
</script>
|
|
155
|
+
|
|
156
|
+
<!-- Onboarding wizard (vertical) -->
|
|
157
|
+
<snice-stepper id="onboarding" orientation="vertical" clickable></snice-stepper>
|
|
158
|
+
<script>
|
|
159
|
+
document.getElementById('onboarding').steps = [
|
|
160
|
+
{ label: 'Welcome' },
|
|
161
|
+
{ label: 'Profile Setup' },
|
|
162
|
+
{ label: 'Preferences' },
|
|
163
|
+
{ label: 'Get Started' }
|
|
164
|
+
];
|
|
165
|
+
</script>
|
|
166
|
+
|
|
167
|
+
<!-- Form validation -->
|
|
168
|
+
<snice-stepper id="form"></snice-stepper>
|
|
169
|
+
<script>
|
|
170
|
+
document.getElementById('form').steps = [
|
|
171
|
+
{ label: 'Personal Info', status: 'completed' },
|
|
172
|
+
{ label: 'Address', status: 'error' }, // Has validation error
|
|
173
|
+
{ label: 'Review', status: 'pending' }
|
|
174
|
+
];
|
|
175
|
+
</script>
|
|
176
|
+
|
|
177
|
+
<!-- Progress tracker -->
|
|
178
|
+
<snice-stepper id="upload"></snice-stepper>
|
|
179
|
+
<script>
|
|
180
|
+
const upload = document.getElementById('upload');
|
|
181
|
+
upload.steps = [
|
|
182
|
+
{ label: 'Upload', status: 'completed' },
|
|
183
|
+
{ label: 'Process', status: 'active' },
|
|
184
|
+
{ label: 'Complete', status: 'pending' }
|
|
185
|
+
];
|
|
186
|
+
upload.currentStep = 1;
|
|
187
|
+
</script>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Stepper Panels
|
|
191
|
+
|
|
192
|
+
```html
|
|
193
|
+
<!-- Panels auto show/hide based on currentStep -->
|
|
194
|
+
<snice-stepper id="wizard"></snice-stepper>
|
|
195
|
+
<snice-stepper-panel>Content for step 0</snice-stepper-panel>
|
|
196
|
+
<snice-stepper-panel>Content for step 1</snice-stepper-panel>
|
|
197
|
+
<snice-stepper-panel>Content for step 2</snice-stepper-panel>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
- Panels must be direct children of stepper
|
|
201
|
+
- Panel index matches order (first panel = step 0, etc.)
|
|
202
|
+
- Automatically activated when stepper.currentStep changes
|
|
203
|
+
- Only active panel is visible (display: block), others hidden
|
|
204
|
+
|
|
205
|
+
## Notes
|
|
206
|
+
|
|
207
|
+
- Status auto-computed from currentStep if not explicitly set:
|
|
208
|
+
- Steps before currentStep: 'completed' (shows ✓)
|
|
209
|
+
- Step at currentStep: 'active'
|
|
210
|
+
- Steps after currentStep: 'pending'
|
|
211
|
+
- Completed steps show checkmark (✓) instead of number
|
|
212
|
+
- Connector lines auto-hidden on last step
|
|
213
|
+
- Click events only work when clickable=true
|
|
214
|
+
- step-change event is cancelable via preventDefault()
|
|
215
|
+
- Orientation affects layout but not behavior
|
|
216
|
+
- Panels sync automatically via @watch decorator on currentStep
|