snice 3.1.0 → 3.3.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 +90 -41
- package/dist/components/accordion/snice-accordion-item.d.ts +2 -2
- package/dist/components/accordion/snice-accordion-item.js +9 -9
- package/dist/components/accordion/snice-accordion-item.js.map +1 -1
- package/dist/components/accordion/snice-accordion.d.ts +2 -2
- package/dist/components/accordion/snice-accordion.js +9 -9
- package/dist/components/accordion/snice-accordion.js.map +1 -1
- package/dist/components/actions/snice-actions.d.ts +28 -0
- package/dist/components/actions/snice-actions.js +220 -0
- package/dist/components/actions/snice-actions.js.map +1 -0
- package/dist/components/actions/snice-actions.types.d.ts +27 -0
- package/dist/components/alert/snice-alert.d.ts +2 -2
- package/dist/components/alert/snice-alert.js +9 -9
- package/dist/components/alert/snice-alert.js.map +1 -1
- package/dist/components/audio-recorder/snice-audio-recorder.d.ts +58 -0
- package/dist/components/audio-recorder/snice-audio-recorder.js +413 -0
- package/dist/components/audio-recorder/snice-audio-recorder.js.map +1 -0
- package/dist/components/audio-recorder/snice-audio-recorder.types.d.ts +28 -0
- package/dist/components/avatar/snice-avatar.d.ts +2 -2
- package/dist/components/avatar/snice-avatar.js +9 -9
- package/dist/components/avatar/snice-avatar.js.map +1 -1
- package/dist/components/badge/snice-badge.d.ts +2 -2
- package/dist/components/badge/snice-badge.js +10 -10
- 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 +2 -2
- package/dist/components/breadcrumbs/snice-breadcrumbs.js +9 -9
- package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
- package/dist/components/button/snice-button.d.ts +2 -2
- package/dist/components/button/snice-button.js +9 -9
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/components/calendar/snice-calendar.d.ts +46 -0
- package/dist/components/calendar/snice-calendar.js +294 -0
- package/dist/components/calendar/snice-calendar.js.map +1 -0
- package/dist/components/calendar/snice-calendar.types.d.ts +34 -0
- package/dist/components/camera/snice-camera.d.ts +39 -0
- package/dist/components/camera/snice-camera.js +286 -0
- package/dist/components/camera/snice-camera.js.map +1 -0
- package/dist/components/camera/snice-camera.types.d.ts +28 -0
- package/dist/components/card/snice-card.d.ts +2 -2
- package/dist/components/card/snice-card.js +9 -9
- package/dist/components/card/snice-card.js.map +1 -1
- package/dist/components/carousel/snice-carousel.d.ts +32 -0
- package/dist/components/carousel/snice-carousel.js +279 -0
- package/dist/components/carousel/snice-carousel.js.map +1 -0
- package/dist/components/carousel/snice-carousel.types.d.ts +22 -0
- package/dist/components/chart/snice-chart.d.ts +73 -0
- package/dist/components/chart/snice-chart.js +940 -0
- package/dist/components/chart/snice-chart.js.map +1 -0
- package/dist/components/chart/snice-chart.types.d.ts +71 -0
- package/dist/components/chat/snice-chat.d.ts +98 -0
- package/dist/components/chat/snice-chat.js +589 -0
- package/dist/components/chat/snice-chat.js.map +1 -0
- package/dist/components/chat/snice-chat.types.d.ts +141 -0
- package/dist/components/checkbox/snice-checkbox.d.ts +2 -2
- package/dist/components/checkbox/snice-checkbox.js +9 -9
- package/dist/components/checkbox/snice-checkbox.js.map +1 -1
- package/dist/components/chip/snice-chip.d.ts +2 -2
- package/dist/components/chip/snice-chip.js +9 -9
- package/dist/components/chip/snice-chip.js.map +1 -1
- package/dist/components/code-block/snice-code-block.d.ts +15 -0
- package/dist/components/code-block/snice-code-block.js +141 -0
- package/dist/components/code-block/snice-code-block.js.map +1 -0
- package/dist/components/code-block/snice-code-block.types.d.ts +15 -0
- 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/command-palette/snice-command-palette.d.ts +47 -0
- package/dist/components/command-palette/snice-command-palette.js +428 -0
- package/dist/components/command-palette/snice-command-palette.js.map +1 -0
- package/dist/components/command-palette/snice-command-palette.types.d.ts +49 -0
- package/dist/components/date-picker/snice-date-picker.d.ts +2 -2
- package/dist/components/date-picker/snice-date-picker.js +10 -10
- package/dist/components/date-picker/snice-date-picker.js.map +1 -1
- package/dist/components/divider/snice-divider.d.ts +2 -2
- package/dist/components/divider/snice-divider.js +9 -9
- package/dist/components/divider/snice-divider.js.map +1 -1
- package/dist/components/doc/snice-doc.d.ts +93 -0
- package/dist/components/doc/snice-doc.js +626 -0
- package/dist/components/doc/snice-doc.js.map +1 -0
- package/dist/components/doc/snice-doc.types.d.ts +118 -0
- package/dist/components/draw/snice-draw.d.ts +71 -0
- package/dist/components/draw/snice-draw.js +709 -0
- package/dist/components/draw/snice-draw.js.map +1 -0
- package/dist/components/draw/snice-draw.types.d.ts +41 -0
- package/dist/components/drawer/snice-drawer.d.ts +2 -2
- package/dist/components/drawer/snice-drawer.js +9 -9
- 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 +44 -0
- package/dist/components/file-upload/snice-file-upload.js +387 -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/gantt/snice-gantt.d.ts +29 -0
- package/dist/components/gantt/snice-gantt.js +268 -0
- package/dist/components/gantt/snice-gantt.js.map +1 -0
- package/dist/components/gantt/snice-gantt.types.d.ts +23 -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 +2 -2
- package/dist/components/input/snice-input.js +9 -9
- package/dist/components/input/snice-input.js.map +1 -1
- package/dist/components/kanban/snice-kanban.d.ts +31 -0
- package/dist/components/kanban/snice-kanban.js +243 -0
- package/dist/components/kanban/snice-kanban.js.map +1 -0
- package/dist/components/kanban/snice-kanban.types.d.ts +29 -0
- 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 +2 -2
- package/dist/components/layout/snice-layout-blog.js +9 -9
- 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 +9 -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 +9 -9
- package/dist/components/layout/snice-layout-centered.js.map +1 -1
- package/dist/components/layout/snice-layout-dashboard.d.ts +2 -2
- package/dist/components/layout/snice-layout-dashboard.js +9 -9
- 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 +9 -9
- package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
- package/dist/components/layout/snice-layout-landing.d.ts +2 -2
- package/dist/components/layout/snice-layout-landing.js +9 -9
- 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 +9 -9
- package/dist/components/layout/snice-layout-minimal.js.map +1 -1
- package/dist/components/layout/snice-layout-sidebar.d.ts +2 -2
- package/dist/components/layout/snice-layout-sidebar.js +9 -9
- 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 +9 -9
- package/dist/components/layout/snice-layout-split.js.map +1 -1
- package/dist/components/layout/snice-layout.d.ts +2 -2
- package/dist/components/layout/snice-layout.js +9 -9
- 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/list/snice-list-item.d.ts +6 -0
- package/dist/components/list/snice-list-item.js +68 -0
- package/dist/components/list/snice-list-item.js.map +1 -0
- package/dist/components/list/snice-list.d.ts +23 -0
- package/dist/components/list/snice-list.js +270 -0
- package/dist/components/list/snice-list.js.map +1 -0
- package/dist/components/list/snice-list.types.d.ts +28 -0
- package/dist/components/location/snice-location.d.ts +35 -0
- package/dist/components/location/snice-location.js +238 -0
- package/dist/components/location/snice-location.js.map +1 -0
- package/dist/components/location/snice-location.types.d.ts +35 -0
- package/dist/components/login/snice-login.d.ts +2 -2
- package/dist/components/login/snice-login.js +9 -9
- package/dist/components/login/snice-login.js.map +1 -1
- package/dist/components/menu/snice-menu-divider.d.ts +4 -0
- package/dist/components/menu/snice-menu-divider.js +53 -0
- package/dist/components/menu/snice-menu-divider.js.map +1 -0
- package/dist/components/menu/snice-menu-item.d.ts +10 -0
- package/dist/components/menu/snice-menu-item.js +99 -0
- package/dist/components/menu/snice-menu-item.js.map +1 -0
- package/dist/components/menu/snice-menu-item.types.d.ts +9 -0
- package/dist/components/menu/snice-menu.d.ts +27 -0
- package/dist/components/menu/snice-menu.js +199 -0
- package/dist/components/menu/snice-menu.js.map +1 -0
- package/dist/components/menu/snice-menu.types.d.ts +18 -0
- package/dist/components/modal/snice-modal.d.ts +2 -2
- package/dist/components/modal/snice-modal.js +9 -9
- package/dist/components/modal/snice-modal.js.map +1 -1
- package/dist/components/nav/snice-nav.js +1 -1
- package/dist/components/nav/snice-nav.js.map +1 -1
- package/dist/components/pagination/snice-pagination.d.ts +2 -2
- package/dist/components/pagination/snice-pagination.js +8 -8
- package/dist/components/pagination/snice-pagination.js.map +1 -1
- package/dist/components/progress/snice-progress.d.ts +2 -2
- package/dist/components/progress/snice-progress.js +9 -9
- package/dist/components/progress/snice-progress.js.map +1 -1
- package/dist/components/qr-code/qrcode.d.ts +28 -0
- package/dist/components/qr-code/qrcode.js +906 -0
- package/dist/components/qr-code/qrcode.js.map +1 -0
- package/dist/components/qr-code/snice-qr-code.d.ts +35 -0
- package/dist/components/qr-code/snice-qr-code.js +256 -0
- package/dist/components/qr-code/snice-qr-code.js.map +1 -0
- package/dist/components/qr-code/snice-qr-code.types.d.ts +33 -0
- package/dist/components/radio/snice-radio.d.ts +2 -2
- package/dist/components/radio/snice-radio.js +9 -9
- package/dist/components/radio/snice-radio.js.map +1 -1
- package/dist/components/select/snice-option.d.ts +2 -2
- package/dist/components/select/snice-option.js +8 -8
- package/dist/components/select/snice-option.js.map +1 -1
- package/dist/components/select/snice-select.d.ts +2 -2
- package/dist/components/select/snice-select.js +9 -9
- package/dist/components/select/snice-select.js.map +1 -1
- package/dist/components/skeleton/snice-skeleton.d.ts +2 -2
- package/dist/components/skeleton/snice-skeleton.js +9 -9
- 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/split-pane/snice-split-pane.d.ts +32 -0
- package/dist/components/split-pane/snice-split-pane.js +191 -0
- package/dist/components/split-pane/snice-split-pane.js.map +1 -0
- package/dist/components/split-pane/snice-split-pane.types.d.ts +19 -0
- package/dist/components/stat/snice-stat.d.ts +14 -0
- package/dist/components/stat/snice-stat.js +140 -0
- package/dist/components/stat/snice-stat.js.map +1 -0
- package/dist/components/stat/snice-stat.types.d.ts +12 -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 +9 -9
- package/dist/components/switch/snice-switch.js.map +1 -1
- package/dist/components/table/snice-cell-actions.d.ts +2 -2
- package/dist/components/table/snice-cell-actions.js +9 -9
- package/dist/components/table/snice-cell-actions.js.map +1 -1
- package/dist/components/table/snice-cell-boolean.d.ts +2 -2
- package/dist/components/table/snice-cell-boolean.js +9 -9
- package/dist/components/table/snice-cell-boolean.js.map +1 -1
- package/dist/components/table/snice-cell-color.d.ts +2 -2
- package/dist/components/table/snice-cell-color.js +9 -9
- package/dist/components/table/snice-cell-color.js.map +1 -1
- package/dist/components/table/snice-cell-currency.d.ts +2 -2
- package/dist/components/table/snice-cell-currency.js +9 -9
- package/dist/components/table/snice-cell-currency.js.map +1 -1
- package/dist/components/table/snice-cell-date.d.ts +2 -2
- package/dist/components/table/snice-cell-date.js +9 -9
- 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 +9 -9
- package/dist/components/table/snice-cell-duration.js.map +1 -1
- package/dist/components/table/snice-cell-email.d.ts +2 -2
- package/dist/components/table/snice-cell-email.js +9 -9
- package/dist/components/table/snice-cell-email.js.map +1 -1
- package/dist/components/table/snice-cell-filesize.d.ts +2 -2
- package/dist/components/table/snice-cell-filesize.js +9 -9
- package/dist/components/table/snice-cell-filesize.js.map +1 -1
- package/dist/components/table/snice-cell-image.d.ts +2 -2
- package/dist/components/table/snice-cell-image.js +9 -9
- package/dist/components/table/snice-cell-image.js.map +1 -1
- package/dist/components/table/snice-cell-json.d.ts +2 -2
- package/dist/components/table/snice-cell-json.js +9 -9
- package/dist/components/table/snice-cell-json.js.map +1 -1
- package/dist/components/table/snice-cell-link.d.ts +2 -2
- package/dist/components/table/snice-cell-link.js +9 -9
- package/dist/components/table/snice-cell-link.js.map +1 -1
- package/dist/components/table/snice-cell-location.d.ts +2 -2
- package/dist/components/table/snice-cell-location.js +9 -9
- package/dist/components/table/snice-cell-location.js.map +1 -1
- package/dist/components/table/snice-cell-number.d.ts +2 -2
- package/dist/components/table/snice-cell-number.js +9 -9
- package/dist/components/table/snice-cell-number.js.map +1 -1
- package/dist/components/table/snice-cell-percentage.d.ts +2 -2
- package/dist/components/table/snice-cell-percentage.js +9 -9
- package/dist/components/table/snice-cell-percentage.js.map +1 -1
- package/dist/components/table/snice-cell-phone.d.ts +2 -2
- package/dist/components/table/snice-cell-phone.js +9 -9
- package/dist/components/table/snice-cell-phone.js.map +1 -1
- package/dist/components/table/snice-cell-progress.d.ts +2 -2
- package/dist/components/table/snice-cell-progress.js +9 -9
- 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 +9 -9
- 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 +9 -9
- package/dist/components/table/snice-cell-sparkline.js.map +1 -1
- package/dist/components/table/snice-cell-status.d.ts +2 -2
- package/dist/components/table/snice-cell-status.js +9 -9
- package/dist/components/table/snice-cell-status.js.map +1 -1
- package/dist/components/table/snice-cell-tag.d.ts +2 -2
- package/dist/components/table/snice-cell-tag.js +9 -9
- package/dist/components/table/snice-cell-tag.js.map +1 -1
- package/dist/components/table/snice-cell-text.d.ts +2 -2
- package/dist/components/table/snice-cell-text.js +9 -9
- 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 +9 -9
- 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 +4 -4
- package/dist/components/table/snice-column.js.map +1 -1
- package/dist/components/table/snice-header.d.ts +2 -2
- package/dist/components/table/snice-header.js +9 -9
- 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 +8 -8
- 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 +8 -8
- package/dist/components/table/snice-rating.js.map +1 -1
- package/dist/components/table/snice-row.d.ts +2 -2
- package/dist/components/table/snice-row.js +10 -10
- package/dist/components/table/snice-row.js.map +1 -1
- package/dist/components/table/snice-table.d.ts +2 -3
- package/dist/components/table/snice-table.js +9 -14
- package/dist/components/table/snice-table.js.map +1 -1
- package/dist/components/tabs/snice-tab-panel.d.ts +2 -2
- package/dist/components/tabs/snice-tab-panel.js +9 -9
- package/dist/components/tabs/snice-tab-panel.js.map +1 -1
- package/dist/components/tabs/snice-tab.d.ts +2 -2
- package/dist/components/tabs/snice-tab.js +9 -9
- package/dist/components/tabs/snice-tab.js.map +1 -1
- package/dist/components/tabs/snice-tabs.d.ts +2 -2
- package/dist/components/tabs/snice-tabs.js +9 -9
- package/dist/components/tabs/snice-tabs.js.map +1 -1
- package/dist/components/terminal/snice-terminal.types.d.ts +133 -0
- 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 +2 -2
- package/dist/components/toast/snice-toast-container.js +8 -8
- package/dist/components/toast/snice-toast-container.js.map +1 -1
- package/dist/components/toast/snice-toast.d.ts +2 -2
- package/dist/components/toast/snice-toast.js +8 -8
- 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 +10 -10
- package/dist/components/tooltip/snice-tooltip.js.map +1 -1
- package/dist/components/tree/snice-tree-item.d.ts +35 -0
- package/dist/components/tree/snice-tree-item.js +301 -0
- package/dist/components/tree/snice-tree-item.js.map +1 -0
- package/dist/components/tree/snice-tree-item.types.d.ts +30 -0
- package/dist/components/tree/snice-tree.d.ts +45 -0
- package/dist/components/tree/snice-tree.js +390 -0
- package/dist/components/tree/snice-tree.js.map +1 -0
- package/dist/components/tree/snice-tree.types.d.ts +65 -0
- package/dist/components/virtual-scroller/snice-virtual-scroller.d.ts +31 -0
- package/dist/components/virtual-scroller/snice-virtual-scroller.js +160 -0
- package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -0
- package/dist/components/virtual-scroller/snice-virtual-scroller.types.d.ts +19 -0
- package/dist/index.cjs +125 -158
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +125 -158
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +125 -158
- package/dist/index.iife.js.map +1 -1
- package/dist/parts.d.ts +13 -16
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/template.d.ts +0 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/README.md +10 -1
- package/docs/ai/components/actions.md +81 -0
- package/docs/ai/components/audio-recorder.md +97 -0
- package/docs/ai/components/banner.md +84 -0
- package/docs/ai/components/calendar.md +95 -0
- package/docs/ai/components/camera.md +130 -0
- package/docs/ai/components/carousel.md +49 -0
- package/docs/ai/components/chart.md +160 -0
- package/docs/ai/components/chat.md +189 -0
- package/docs/ai/components/code-block.md +32 -0
- package/docs/ai/components/color-display.md +48 -0
- package/docs/ai/components/color-picker.md +75 -0
- package/docs/ai/components/command-palette.md +117 -0
- package/docs/ai/components/doc.md +154 -0
- package/docs/ai/components/draw.md +140 -0
- package/docs/ai/components/empty-state.md +72 -0
- package/docs/ai/components/file-upload.md +93 -0
- package/docs/ai/components/gantt.md +95 -0
- package/docs/ai/components/image.md +60 -0
- package/docs/ai/components/kanban.md +102 -0
- package/docs/ai/components/kpi.md +158 -0
- package/docs/ai/components/layout.md +261 -0
- package/docs/ai/components/link.md +77 -0
- package/docs/ai/components/list.md +50 -0
- package/docs/ai/components/location.md +75 -0
- package/docs/ai/components/menu.md +114 -0
- package/docs/ai/components/popover.md +70 -0
- package/docs/ai/components/qr-code.md +106 -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/split-pane.md +71 -0
- package/docs/ai/components/stat.md +29 -0
- package/docs/ai/components/stepper.md +216 -0
- package/docs/ai/components/textarea.md +87 -0
- package/docs/ai/components/timeline.md +77 -0
- package/docs/ai/components/tree.md +191 -0
- package/docs/ai/components/virtual-scroller.md +71 -0
- package/docs/components/actions.md +317 -0
- package/docs/components/alert.md +540 -0
- package/docs/components/audio-recorder.md +152 -0
- package/docs/components/badge.md +593 -0
- package/docs/components/banner.md +106 -0
- package/docs/components/breadcrumbs.md +568 -0
- package/docs/components/button.md +648 -0
- package/docs/components/calendar.md +397 -0
- package/docs/components/camera.md +383 -0
- package/docs/components/card.md +778 -0
- package/docs/components/carousel.md +63 -0
- package/docs/components/chart.md +526 -0
- package/docs/components/chat.md +482 -0
- package/docs/components/checkbox.md +714 -0
- package/docs/components/chip.md +670 -0
- package/docs/components/code-block.md +49 -0
- package/docs/components/color-display.md +96 -0
- package/docs/components/color-picker.md +81 -0
- package/docs/components/command-palette.md +159 -0
- package/docs/components/doc.md +357 -0
- package/docs/components/draw.md +307 -0
- package/docs/components/empty-state.md +79 -0
- package/docs/components/file-upload.md +263 -0
- package/docs/components/gantt.md +347 -0
- package/docs/components/image.md +110 -0
- package/docs/components/kanban.md +410 -0
- package/docs/components/kpi.md +251 -0
- package/docs/components/link.md +229 -0
- package/docs/components/list.md +65 -0
- package/docs/components/location.md +369 -0
- package/docs/components/menu.md +633 -0
- package/docs/components/popover.md +333 -0
- package/docs/components/qr-code.md +464 -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/split-pane.md +315 -0
- package/docs/components/stat.md +45 -0
- package/docs/components/stepper.md +410 -0
- package/docs/components/textarea.md +235 -0
- package/docs/components/timeline.md +192 -0
- package/docs/components/tree.md +536 -0
- package/docs/components/virtual-scroller.md +298 -0
- package/package.json +2 -1
- package/dist/components/snice-cell-BLFVdxPp.js +0 -4
- package/dist/components/snice-cell-BLFVdxPp.js.map +0 -1
|
@@ -0,0 +1,778 @@
|
|
|
1
|
+
# Card Component
|
|
2
|
+
|
|
3
|
+
The card component provides a container for grouped content with support for headers, footers, different visual styles, interactive states, and responsive sizing.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
- [Basic Usage](#basic-usage)
|
|
7
|
+
- [Properties](#properties)
|
|
8
|
+
- [Slots](#slots)
|
|
9
|
+
- [Events](#events)
|
|
10
|
+
- [Examples](#examples)
|
|
11
|
+
|
|
12
|
+
## Basic Usage
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<snice-card>
|
|
16
|
+
<p>Card content goes here</p>
|
|
17
|
+
</snice-card>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import 'snice/components/card/snice-card';
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Properties
|
|
25
|
+
|
|
26
|
+
| Property | Type | Default | Description |
|
|
27
|
+
|----------|------|---------|-------------|
|
|
28
|
+
| `variant` | `'elevated' \| 'bordered' \| 'flat'` | `'elevated'` | Visual style variant |
|
|
29
|
+
| `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Padding size |
|
|
30
|
+
| `clickable` | `boolean` | `false` | Enable hover and click states |
|
|
31
|
+
| `selected` | `boolean` | `false` | Show selected state |
|
|
32
|
+
| `disabled` | `boolean` | `false` | Disable interactions |
|
|
33
|
+
|
|
34
|
+
## Slots
|
|
35
|
+
|
|
36
|
+
### `header` (named slot)
|
|
37
|
+
Content for the card header section.
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<snice-card>
|
|
41
|
+
<div slot="header">Card Title</div>
|
|
42
|
+
<p>Body content</p>
|
|
43
|
+
</snice-card>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Default slot
|
|
47
|
+
Main body content of the card.
|
|
48
|
+
|
|
49
|
+
```html
|
|
50
|
+
<snice-card>
|
|
51
|
+
<p>This is the body content</p>
|
|
52
|
+
</snice-card>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### `footer` (named slot)
|
|
56
|
+
Content for the card footer section.
|
|
57
|
+
|
|
58
|
+
```html
|
|
59
|
+
<snice-card>
|
|
60
|
+
<p>Body content</p>
|
|
61
|
+
<div slot="footer">
|
|
62
|
+
<button>Action</button>
|
|
63
|
+
</div>
|
|
64
|
+
</snice-card>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Events
|
|
68
|
+
|
|
69
|
+
#### `card-click`
|
|
70
|
+
Fired when a clickable card is clicked.
|
|
71
|
+
|
|
72
|
+
**Event Detail:**
|
|
73
|
+
```typescript
|
|
74
|
+
{
|
|
75
|
+
selected: boolean;
|
|
76
|
+
disabled: boolean;
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Usage:**
|
|
81
|
+
```typescript
|
|
82
|
+
card.addEventListener('card-click', (e) => {
|
|
83
|
+
console.log('Card clicked, selected:', e.detail.selected);
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Examples
|
|
88
|
+
|
|
89
|
+
### Basic Cards
|
|
90
|
+
|
|
91
|
+
```html
|
|
92
|
+
<!-- Simple card -->
|
|
93
|
+
<snice-card>
|
|
94
|
+
<p>This is a basic card with default settings.</p>
|
|
95
|
+
</snice-card>
|
|
96
|
+
|
|
97
|
+
<!-- Card with text content -->
|
|
98
|
+
<snice-card>
|
|
99
|
+
<h3>Card Title</h3>
|
|
100
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
|
|
101
|
+
</snice-card>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Card with Header and Footer
|
|
105
|
+
|
|
106
|
+
```html
|
|
107
|
+
<snice-card>
|
|
108
|
+
<div slot="header">
|
|
109
|
+
<h3 style="margin: 0;">User Profile</h3>
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
<div>
|
|
113
|
+
<p><strong>Name:</strong> John Doe</p>
|
|
114
|
+
<p><strong>Email:</strong> john@example.com</p>
|
|
115
|
+
<p><strong>Role:</strong> Administrator</p>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<div slot="footer" style="display: flex; gap: 0.5rem; justify-content: flex-end;">
|
|
119
|
+
<button>Edit</button>
|
|
120
|
+
<button>Delete</button>
|
|
121
|
+
</div>
|
|
122
|
+
</snice-card>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Card Variants
|
|
126
|
+
|
|
127
|
+
```html
|
|
128
|
+
<!-- Elevated card (default) -->
|
|
129
|
+
<snice-card variant="elevated">
|
|
130
|
+
<p>Elevated card with shadow</p>
|
|
131
|
+
</snice-card>
|
|
132
|
+
|
|
133
|
+
<!-- Bordered card -->
|
|
134
|
+
<snice-card variant="bordered">
|
|
135
|
+
<p>Bordered card with no shadow</p>
|
|
136
|
+
</snice-card>
|
|
137
|
+
|
|
138
|
+
<!-- Flat card -->
|
|
139
|
+
<snice-card variant="flat">
|
|
140
|
+
<p>Flat card with minimal styling</p>
|
|
141
|
+
</snice-card>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Card Sizes
|
|
145
|
+
|
|
146
|
+
```html
|
|
147
|
+
<!-- Small card -->
|
|
148
|
+
<snice-card size="small">
|
|
149
|
+
<p>Small padding</p>
|
|
150
|
+
</snice-card>
|
|
151
|
+
|
|
152
|
+
<!-- Medium card (default) -->
|
|
153
|
+
<snice-card size="medium">
|
|
154
|
+
<p>Medium padding</p>
|
|
155
|
+
</snice-card>
|
|
156
|
+
|
|
157
|
+
<!-- Large card -->
|
|
158
|
+
<snice-card size="large">
|
|
159
|
+
<p>Large padding</p>
|
|
160
|
+
</snice-card>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Clickable Cards
|
|
164
|
+
|
|
165
|
+
```html
|
|
166
|
+
<snice-card clickable>
|
|
167
|
+
<h3>Interactive Card</h3>
|
|
168
|
+
<p>Click me to see the hover effect</p>
|
|
169
|
+
</snice-card>
|
|
170
|
+
|
|
171
|
+
<snice-card clickable selected>
|
|
172
|
+
<h3>Selected Card</h3>
|
|
173
|
+
<p>This card is in the selected state</p>
|
|
174
|
+
</snice-card>
|
|
175
|
+
|
|
176
|
+
<snice-card clickable disabled>
|
|
177
|
+
<h3>Disabled Card</h3>
|
|
178
|
+
<p>This card cannot be clicked</p>
|
|
179
|
+
</snice-card>
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Product Cards
|
|
183
|
+
|
|
184
|
+
```html
|
|
185
|
+
<style>
|
|
186
|
+
.product-grid {
|
|
187
|
+
display: grid;
|
|
188
|
+
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
|
189
|
+
gap: 1.5rem;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.product-image {
|
|
193
|
+
width: 100%;
|
|
194
|
+
height: 200px;
|
|
195
|
+
object-fit: cover;
|
|
196
|
+
border-radius: 0.375rem;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.product-title {
|
|
200
|
+
margin: 0.5rem 0;
|
|
201
|
+
font-size: 1.125rem;
|
|
202
|
+
font-weight: 600;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.product-price {
|
|
206
|
+
font-size: 1.25rem;
|
|
207
|
+
font-weight: 700;
|
|
208
|
+
color: #3b82f6;
|
|
209
|
+
}
|
|
210
|
+
</style>
|
|
211
|
+
|
|
212
|
+
<div class="product-grid">
|
|
213
|
+
<snice-card clickable>
|
|
214
|
+
<img class="product-image" src="/products/laptop.jpg" alt="Laptop">
|
|
215
|
+
<h3 class="product-title">Professional Laptop</h3>
|
|
216
|
+
<p>High-performance laptop for work and play</p>
|
|
217
|
+
<div class="product-price">$999</div>
|
|
218
|
+
</snice-card>
|
|
219
|
+
|
|
220
|
+
<snice-card clickable>
|
|
221
|
+
<img class="product-image" src="/products/phone.jpg" alt="Phone">
|
|
222
|
+
<h3 class="product-title">Smartphone</h3>
|
|
223
|
+
<p>Latest model with advanced features</p>
|
|
224
|
+
<div class="product-price">$699</div>
|
|
225
|
+
</snice-card>
|
|
226
|
+
|
|
227
|
+
<snice-card clickable>
|
|
228
|
+
<img class="product-image" src="/products/tablet.jpg" alt="Tablet">
|
|
229
|
+
<h3 class="product-title">Tablet Pro</h3>
|
|
230
|
+
<p>Perfect for creativity and productivity</p>
|
|
231
|
+
<div class="product-price">$449</div>
|
|
232
|
+
</snice-card>
|
|
233
|
+
</div>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### User Profile Cards
|
|
237
|
+
|
|
238
|
+
```html
|
|
239
|
+
<style>
|
|
240
|
+
.profile-card {
|
|
241
|
+
text-align: center;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.profile-avatar {
|
|
245
|
+
width: 80px;
|
|
246
|
+
height: 80px;
|
|
247
|
+
border-radius: 50%;
|
|
248
|
+
margin: 0 auto;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.profile-name {
|
|
252
|
+
margin: 1rem 0 0.25rem;
|
|
253
|
+
font-size: 1.25rem;
|
|
254
|
+
font-weight: 600;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.profile-role {
|
|
258
|
+
color: #6b7280;
|
|
259
|
+
margin: 0;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.profile-stats {
|
|
263
|
+
display: flex;
|
|
264
|
+
justify-content: space-around;
|
|
265
|
+
margin-top: 1rem;
|
|
266
|
+
padding-top: 1rem;
|
|
267
|
+
border-top: 1px solid #e5e7eb;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.stat {
|
|
271
|
+
text-align: center;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.stat-value {
|
|
275
|
+
font-size: 1.5rem;
|
|
276
|
+
font-weight: 700;
|
|
277
|
+
color: #3b82f6;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.stat-label {
|
|
281
|
+
font-size: 0.875rem;
|
|
282
|
+
color: #6b7280;
|
|
283
|
+
}
|
|
284
|
+
</style>
|
|
285
|
+
|
|
286
|
+
<snice-card class="profile-card">
|
|
287
|
+
<img class="profile-avatar" src="/avatars/user1.jpg" alt="User">
|
|
288
|
+
<h3 class="profile-name">Sarah Johnson</h3>
|
|
289
|
+
<p class="profile-role">Software Engineer</p>
|
|
290
|
+
|
|
291
|
+
<div class="profile-stats">
|
|
292
|
+
<div class="stat">
|
|
293
|
+
<div class="stat-value">142</div>
|
|
294
|
+
<div class="stat-label">Projects</div>
|
|
295
|
+
</div>
|
|
296
|
+
<div class="stat">
|
|
297
|
+
<div class="stat-value">1.2K</div>
|
|
298
|
+
<div class="stat-label">Followers</div>
|
|
299
|
+
</div>
|
|
300
|
+
<div class="stat">
|
|
301
|
+
<div class="stat-value">89</div>
|
|
302
|
+
<div class="stat-label">Following</div>
|
|
303
|
+
</div>
|
|
304
|
+
</div>
|
|
305
|
+
|
|
306
|
+
<div slot="footer">
|
|
307
|
+
<button style="width: 100%; padding: 0.5rem;">Follow</button>
|
|
308
|
+
</div>
|
|
309
|
+
</snice-card>
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### Pricing Cards
|
|
313
|
+
|
|
314
|
+
```html
|
|
315
|
+
<style>
|
|
316
|
+
.pricing-grid {
|
|
317
|
+
display: grid;
|
|
318
|
+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
319
|
+
gap: 2rem;
|
|
320
|
+
max-width: 900px;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.plan-name {
|
|
324
|
+
margin: 0;
|
|
325
|
+
font-size: 1.5rem;
|
|
326
|
+
font-weight: 700;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.plan-price {
|
|
330
|
+
margin: 1rem 0;
|
|
331
|
+
font-size: 2.5rem;
|
|
332
|
+
font-weight: 700;
|
|
333
|
+
color: #3b82f6;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.plan-price span {
|
|
337
|
+
font-size: 1rem;
|
|
338
|
+
color: #6b7280;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.plan-features {
|
|
342
|
+
list-style: none;
|
|
343
|
+
padding: 0;
|
|
344
|
+
margin: 1.5rem 0;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.plan-features li {
|
|
348
|
+
padding: 0.5rem 0;
|
|
349
|
+
border-bottom: 1px solid #f3f4f6;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.plan-features li:before {
|
|
353
|
+
content: "✓ ";
|
|
354
|
+
color: #10b981;
|
|
355
|
+
font-weight: bold;
|
|
356
|
+
}
|
|
357
|
+
</style>
|
|
358
|
+
|
|
359
|
+
<div class="pricing-grid">
|
|
360
|
+
<snice-card variant="bordered">
|
|
361
|
+
<div slot="header">
|
|
362
|
+
<h3 class="plan-name">Basic</h3>
|
|
363
|
+
</div>
|
|
364
|
+
|
|
365
|
+
<div class="plan-price">
|
|
366
|
+
$9
|
|
367
|
+
<span>/month</span>
|
|
368
|
+
</div>
|
|
369
|
+
|
|
370
|
+
<ul class="plan-features">
|
|
371
|
+
<li>Up to 5 projects</li>
|
|
372
|
+
<li>1 GB storage</li>
|
|
373
|
+
<li>Email support</li>
|
|
374
|
+
<li>Basic analytics</li>
|
|
375
|
+
</ul>
|
|
376
|
+
|
|
377
|
+
<div slot="footer">
|
|
378
|
+
<button style="width: 100%; padding: 0.75rem;">Choose Plan</button>
|
|
379
|
+
</div>
|
|
380
|
+
</snice-card>
|
|
381
|
+
|
|
382
|
+
<snice-card variant="elevated" selected>
|
|
383
|
+
<div slot="header">
|
|
384
|
+
<h3 class="plan-name">Pro</h3>
|
|
385
|
+
<span style="background: #3b82f6; color: white; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem;">POPULAR</span>
|
|
386
|
+
</div>
|
|
387
|
+
|
|
388
|
+
<div class="plan-price">
|
|
389
|
+
$29
|
|
390
|
+
<span>/month</span>
|
|
391
|
+
</div>
|
|
392
|
+
|
|
393
|
+
<ul class="plan-features">
|
|
394
|
+
<li>Unlimited projects</li>
|
|
395
|
+
<li>10 GB storage</li>
|
|
396
|
+
<li>Priority support</li>
|
|
397
|
+
<li>Advanced analytics</li>
|
|
398
|
+
<li>API access</li>
|
|
399
|
+
</ul>
|
|
400
|
+
|
|
401
|
+
<div slot="footer">
|
|
402
|
+
<button style="width: 100%; padding: 0.75rem; background: #3b82f6; color: white; border: none; border-radius: 0.375rem;">Choose Plan</button>
|
|
403
|
+
</div>
|
|
404
|
+
</snice-card>
|
|
405
|
+
|
|
406
|
+
<snice-card variant="bordered">
|
|
407
|
+
<div slot="header">
|
|
408
|
+
<h3 class="plan-name">Enterprise</h3>
|
|
409
|
+
</div>
|
|
410
|
+
|
|
411
|
+
<div class="plan-price">
|
|
412
|
+
$99
|
|
413
|
+
<span>/month</span>
|
|
414
|
+
</div>
|
|
415
|
+
|
|
416
|
+
<ul class="plan-features">
|
|
417
|
+
<li>Unlimited everything</li>
|
|
418
|
+
<li>100 GB storage</li>
|
|
419
|
+
<li>24/7 phone support</li>
|
|
420
|
+
<li>Custom analytics</li>
|
|
421
|
+
<li>Dedicated account manager</li>
|
|
422
|
+
</ul>
|
|
423
|
+
|
|
424
|
+
<div slot="footer">
|
|
425
|
+
<button style="width: 100%; padding: 0.75rem;">Contact Sales</button>
|
|
426
|
+
</div>
|
|
427
|
+
</snice-card>
|
|
428
|
+
</div>
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Dashboard Stat Cards
|
|
432
|
+
|
|
433
|
+
```html
|
|
434
|
+
<style>
|
|
435
|
+
.stat-cards {
|
|
436
|
+
display: grid;
|
|
437
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
438
|
+
gap: 1rem;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.stat-card-content {
|
|
442
|
+
display: flex;
|
|
443
|
+
justify-content: space-between;
|
|
444
|
+
align-items: center;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
.stat-info h4 {
|
|
448
|
+
margin: 0;
|
|
449
|
+
font-size: 0.875rem;
|
|
450
|
+
color: #6b7280;
|
|
451
|
+
font-weight: 500;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.stat-info .value {
|
|
455
|
+
margin: 0.5rem 0 0;
|
|
456
|
+
font-size: 2rem;
|
|
457
|
+
font-weight: 700;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.stat-icon {
|
|
461
|
+
font-size: 2.5rem;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
.stat-change {
|
|
465
|
+
margin-top: 0.5rem;
|
|
466
|
+
font-size: 0.875rem;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.stat-change.positive {
|
|
470
|
+
color: #10b981;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
.stat-change.negative {
|
|
474
|
+
color: #ef4444;
|
|
475
|
+
}
|
|
476
|
+
</style>
|
|
477
|
+
|
|
478
|
+
<div class="stat-cards">
|
|
479
|
+
<snice-card>
|
|
480
|
+
<div class="stat-card-content">
|
|
481
|
+
<div class="stat-info">
|
|
482
|
+
<h4>Total Revenue</h4>
|
|
483
|
+
<div class="value">$45,231</div>
|
|
484
|
+
<div class="stat-change positive">↑ 12.5% from last month</div>
|
|
485
|
+
</div>
|
|
486
|
+
<div class="stat-icon">💰</div>
|
|
487
|
+
</div>
|
|
488
|
+
</snice-card>
|
|
489
|
+
|
|
490
|
+
<snice-card>
|
|
491
|
+
<div class="stat-card-content">
|
|
492
|
+
<div class="stat-info">
|
|
493
|
+
<h4>New Users</h4>
|
|
494
|
+
<div class="value">1,234</div>
|
|
495
|
+
<div class="stat-change positive">↑ 8.2% from last month</div>
|
|
496
|
+
</div>
|
|
497
|
+
<div class="stat-icon">👥</div>
|
|
498
|
+
</div>
|
|
499
|
+
</snice-card>
|
|
500
|
+
|
|
501
|
+
<snice-card>
|
|
502
|
+
<div class="stat-card-content">
|
|
503
|
+
<div class="stat-info">
|
|
504
|
+
<h4>Active Sessions</h4>
|
|
505
|
+
<div class="value">852</div>
|
|
506
|
+
<div class="stat-change negative">↓ 3.1% from last month</div>
|
|
507
|
+
</div>
|
|
508
|
+
<div class="stat-icon">📊</div>
|
|
509
|
+
</div>
|
|
510
|
+
</snice-card>
|
|
511
|
+
|
|
512
|
+
<snice-card>
|
|
513
|
+
<div class="stat-card-content">
|
|
514
|
+
<div class="stat-info">
|
|
515
|
+
<h4>Support Tickets</h4>
|
|
516
|
+
<div class="value">23</div>
|
|
517
|
+
<div class="stat-change positive">↓ 45.2% from last month</div>
|
|
518
|
+
</div>
|
|
519
|
+
<div class="stat-icon">🎫</div>
|
|
520
|
+
</div>
|
|
521
|
+
</snice-card>
|
|
522
|
+
</div>
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
### Interactive Selection Cards
|
|
526
|
+
|
|
527
|
+
```html
|
|
528
|
+
<style>
|
|
529
|
+
.selection-grid {
|
|
530
|
+
display: grid;
|
|
531
|
+
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
|
532
|
+
gap: 1rem;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
.option-card {
|
|
536
|
+
text-align: center;
|
|
537
|
+
padding: 1.5rem;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
.option-icon {
|
|
541
|
+
font-size: 3rem;
|
|
542
|
+
margin-bottom: 0.5rem;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.option-title {
|
|
546
|
+
font-weight: 600;
|
|
547
|
+
margin: 0.5rem 0;
|
|
548
|
+
}
|
|
549
|
+
</style>
|
|
550
|
+
|
|
551
|
+
<div class="selection-grid">
|
|
552
|
+
<snice-card id="card-1" clickable class="option-card">
|
|
553
|
+
<div class="option-icon">💳</div>
|
|
554
|
+
<h4 class="option-title">Credit Card</h4>
|
|
555
|
+
<p style="font-size: 0.875rem; color: #6b7280; margin: 0;">Pay with card</p>
|
|
556
|
+
</snice-card>
|
|
557
|
+
|
|
558
|
+
<snice-card id="card-2" clickable class="option-card">
|
|
559
|
+
<div class="option-icon">🏦</div>
|
|
560
|
+
<h4 class="option-title">Bank Transfer</h4>
|
|
561
|
+
<p style="font-size: 0.875rem; color: #6b7280; margin: 0;">Direct transfer</p>
|
|
562
|
+
</snice-card>
|
|
563
|
+
|
|
564
|
+
<snice-card id="card-3" clickable class="option-card">
|
|
565
|
+
<div class="option-icon">📱</div>
|
|
566
|
+
<h4 class="option-title">Mobile Payment</h4>
|
|
567
|
+
<p style="font-size: 0.875rem; color: #6b7280; margin: 0;">Apple/Google Pay</p>
|
|
568
|
+
</snice-card>
|
|
569
|
+
</div>
|
|
570
|
+
|
|
571
|
+
<script type="module">
|
|
572
|
+
import type { SniceCardElement } from 'snice/components/card/snice-card.types';
|
|
573
|
+
|
|
574
|
+
const cards = ['card-1', 'card-2', 'card-3'].map(id =>
|
|
575
|
+
document.getElementById(id) as SniceCardElement
|
|
576
|
+
);
|
|
577
|
+
|
|
578
|
+
cards.forEach(card => {
|
|
579
|
+
card.addEventListener('card-click', () => {
|
|
580
|
+
// Deselect all other cards
|
|
581
|
+
cards.forEach(c => c.selected = false);
|
|
582
|
+
// Select clicked card
|
|
583
|
+
card.selected = true;
|
|
584
|
+
console.log('Selected payment method:', card.querySelector('.option-title').textContent);
|
|
585
|
+
});
|
|
586
|
+
});
|
|
587
|
+
</script>
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### Blog Post Cards
|
|
591
|
+
|
|
592
|
+
```html
|
|
593
|
+
<style>
|
|
594
|
+
.blog-card-image {
|
|
595
|
+
width: 100%;
|
|
596
|
+
height: 200px;
|
|
597
|
+
object-fit: cover;
|
|
598
|
+
border-radius: 0.375rem 0.375rem 0 0;
|
|
599
|
+
margin: -1rem -1rem 1rem;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
.blog-meta {
|
|
603
|
+
display: flex;
|
|
604
|
+
gap: 1rem;
|
|
605
|
+
font-size: 0.875rem;
|
|
606
|
+
color: #6b7280;
|
|
607
|
+
margin-bottom: 0.5rem;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.blog-title {
|
|
611
|
+
margin: 0 0 0.5rem;
|
|
612
|
+
font-size: 1.25rem;
|
|
613
|
+
font-weight: 600;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
.blog-excerpt {
|
|
617
|
+
color: #4b5563;
|
|
618
|
+
line-height: 1.6;
|
|
619
|
+
}
|
|
620
|
+
</style>
|
|
621
|
+
|
|
622
|
+
<snice-card clickable>
|
|
623
|
+
<img class="blog-card-image" src="/blog/post1.jpg" alt="Blog post">
|
|
624
|
+
|
|
625
|
+
<div class="blog-meta">
|
|
626
|
+
<span>📅 March 15, 2025</span>
|
|
627
|
+
<span>👤 John Doe</span>
|
|
628
|
+
</div>
|
|
629
|
+
|
|
630
|
+
<h3 class="blog-title">Getting Started with Web Components</h3>
|
|
631
|
+
|
|
632
|
+
<p class="blog-excerpt">
|
|
633
|
+
Learn how to build reusable, encapsulated components using modern web standards.
|
|
634
|
+
This comprehensive guide covers everything from basics to advanced patterns.
|
|
635
|
+
</p>
|
|
636
|
+
|
|
637
|
+
<div slot="footer">
|
|
638
|
+
<a href="/blog/post-1" style="color: #3b82f6; text-decoration: none; font-weight: 600;">
|
|
639
|
+
Read more →
|
|
640
|
+
</a>
|
|
641
|
+
</div>
|
|
642
|
+
</snice-card>
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
### Notification Cards
|
|
646
|
+
|
|
647
|
+
```html
|
|
648
|
+
<style>
|
|
649
|
+
.notification-card {
|
|
650
|
+
display: flex;
|
|
651
|
+
gap: 1rem;
|
|
652
|
+
align-items: start;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
.notification-icon {
|
|
656
|
+
font-size: 2rem;
|
|
657
|
+
flex-shrink: 0;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.notification-content {
|
|
661
|
+
flex: 1;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
.notification-title {
|
|
665
|
+
margin: 0 0 0.25rem;
|
|
666
|
+
font-weight: 600;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.notification-time {
|
|
670
|
+
font-size: 0.875rem;
|
|
671
|
+
color: #6b7280;
|
|
672
|
+
margin-top: 0.5rem;
|
|
673
|
+
}
|
|
674
|
+
</style>
|
|
675
|
+
|
|
676
|
+
<div style="display: flex; flex-direction: column; gap: 1rem; max-width: 400px;">
|
|
677
|
+
<snice-card clickable size="small">
|
|
678
|
+
<div class="notification-card">
|
|
679
|
+
<div class="notification-icon">✉️</div>
|
|
680
|
+
<div class="notification-content">
|
|
681
|
+
<h4 class="notification-title">New message from Alice</h4>
|
|
682
|
+
<p style="margin: 0;">Hey, are you available for a quick call?</p>
|
|
683
|
+
<div class="notification-time">5 minutes ago</div>
|
|
684
|
+
</div>
|
|
685
|
+
</div>
|
|
686
|
+
</snice-card>
|
|
687
|
+
|
|
688
|
+
<snice-card clickable size="small">
|
|
689
|
+
<div class="notification-card">
|
|
690
|
+
<div class="notification-icon">🔔</div>
|
|
691
|
+
<div class="notification-content">
|
|
692
|
+
<h4 class="notification-title">System update available</h4>
|
|
693
|
+
<p style="margin: 0;">Version 2.0 is ready to install</p>
|
|
694
|
+
<div class="notification-time">1 hour ago</div>
|
|
695
|
+
</div>
|
|
696
|
+
</div>
|
|
697
|
+
</snice-card>
|
|
698
|
+
|
|
699
|
+
<snice-card clickable size="small">
|
|
700
|
+
<div class="notification-card">
|
|
701
|
+
<div class="notification-icon">✅</div>
|
|
702
|
+
<div class="notification-content">
|
|
703
|
+
<h4 class="notification-title">Task completed</h4>
|
|
704
|
+
<p style="margin: 0;">Your export is ready to download</p>
|
|
705
|
+
<div class="notification-time">2 hours ago</div>
|
|
706
|
+
</div>
|
|
707
|
+
</div>
|
|
708
|
+
</snice-card>
|
|
709
|
+
</div>
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
## Accessibility
|
|
713
|
+
|
|
714
|
+
- **Keyboard support**: Clickable cards are fully keyboard accessible
|
|
715
|
+
- **ARIA attributes**: Proper roles and states for interactive cards
|
|
716
|
+
- **Focus indicators**: Clear focus states for keyboard navigation
|
|
717
|
+
- **Screen reader friendly**: Content structure is semantic and accessible
|
|
718
|
+
|
|
719
|
+
## Browser Support
|
|
720
|
+
|
|
721
|
+
- Modern browsers (Chrome, Firefox, Safari, Edge)
|
|
722
|
+
- Requires Custom Elements v1 and Shadow DOM support
|
|
723
|
+
|
|
724
|
+
## Best Practices
|
|
725
|
+
|
|
726
|
+
1. **Use appropriate variants**: Choose styles that match your design system
|
|
727
|
+
2. **Keep content focused**: Cards should contain related information
|
|
728
|
+
3. **Use headers wisely**: Headers help organize card content
|
|
729
|
+
4. **Make clickable cards obvious**: Use hover states to indicate interactivity
|
|
730
|
+
5. **Don't overload cards**: Keep content concise and scannable
|
|
731
|
+
6. **Group related cards**: Use grids or lists for multiple cards
|
|
732
|
+
7. **Use footers for actions**: Place buttons and links in the footer
|
|
733
|
+
8. **Consider mobile**: Ensure cards stack well on smaller screens
|
|
734
|
+
9. **Test keyboard navigation**: Ensure clickable cards work without a mouse
|
|
735
|
+
10. **Provide feedback**: Show selected or active states clearly
|
|
736
|
+
|
|
737
|
+
## Common Patterns
|
|
738
|
+
|
|
739
|
+
### Content Container
|
|
740
|
+
```html
|
|
741
|
+
<snice-card>
|
|
742
|
+
<h3>Section Title</h3>
|
|
743
|
+
<p>Content goes here</p>
|
|
744
|
+
</snice-card>
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
### Selectable Option
|
|
748
|
+
```html
|
|
749
|
+
<snice-card clickable selected>
|
|
750
|
+
<h4>Selected Option</h4>
|
|
751
|
+
</snice-card>
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
### Information Display
|
|
755
|
+
```html
|
|
756
|
+
<snice-card>
|
|
757
|
+
<div slot="header">Stats</div>
|
|
758
|
+
<p>Metric: 123</p>
|
|
759
|
+
</snice-card>
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
### Action Card
|
|
763
|
+
```html
|
|
764
|
+
<snice-card>
|
|
765
|
+
<p>Content</p>
|
|
766
|
+
<div slot="footer">
|
|
767
|
+
<button>Action</button>
|
|
768
|
+
</div>
|
|
769
|
+
</snice-card>
|
|
770
|
+
```
|
|
771
|
+
|
|
772
|
+
## Variant Styles
|
|
773
|
+
|
|
774
|
+
| Variant | Appearance | Use Case |
|
|
775
|
+
|---------|------------|----------|
|
|
776
|
+
| `elevated` | Shadow | Cards that float above the page |
|
|
777
|
+
| `bordered` | Border, no shadow | Subtle separation within content |
|
|
778
|
+
| `flat` | Minimal styling | Lightweight content containers |
|