snice 4.9.0 → 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/react/app-tiles.d.ts +28 -0
- package/adapters/react/app-tiles.d.ts.map +1 -0
- package/adapters/react/app-tiles.js +24 -0
- package/adapters/react/app-tiles.js.map +1 -0
- package/adapters/react/app-tiles.tsx +36 -0
- package/adapters/react/book.d.ts +28 -0
- package/adapters/react/book.d.ts.map +1 -0
- package/adapters/react/book.js +24 -0
- package/adapters/react/book.js.map +1 -0
- package/adapters/react/book.tsx +36 -0
- package/adapters/react/carousel.d.ts +1 -0
- package/adapters/react/carousel.d.ts.map +1 -1
- package/adapters/react/carousel.js +1 -1
- package/adapters/react/carousel.js.map +1 -1
- package/adapters/react/carousel.tsx +2 -1
- package/adapters/react/comments.d.ts +29 -0
- package/adapters/react/comments.d.ts.map +1 -0
- package/adapters/react/comments.js +24 -0
- package/adapters/react/comments.js.map +1 -0
- package/adapters/react/comments.tsx +37 -0
- package/adapters/react/components.d.ts +52 -0
- package/adapters/react/components.d.ts.map +1 -1
- package/adapters/react/components.js +26 -0
- package/adapters/react/components.js.map +1 -1
- package/adapters/react/components.ts +52 -0
- package/adapters/react/countdown.d.ts +31 -0
- package/adapters/react/countdown.d.ts.map +1 -0
- package/adapters/react/countdown.js +24 -0
- package/adapters/react/countdown.js.map +1 -0
- package/adapters/react/countdown.tsx +39 -0
- package/adapters/react/cropper.d.ts +29 -0
- package/adapters/react/cropper.d.ts.map +1 -0
- package/adapters/react/cropper.js +24 -0
- package/adapters/react/cropper.js.map +1 -0
- package/adapters/react/cropper.tsx +37 -0
- package/adapters/react/diff.d.ts +31 -0
- package/adapters/react/diff.d.ts.map +1 -0
- package/adapters/react/diff.js +24 -0
- package/adapters/react/diff.js.map +1 -0
- package/adapters/react/diff.tsx +39 -0
- package/adapters/react/flip-card.d.ts +28 -0
- package/adapters/react/flip-card.d.ts.map +1 -0
- package/adapters/react/flip-card.js +24 -0
- package/adapters/react/flip-card.js.map +1 -0
- package/adapters/react/flip-card.tsx +36 -0
- package/adapters/react/flow.d.ts +32 -0
- package/adapters/react/flow.d.ts.map +1 -0
- package/adapters/react/flow.js +24 -0
- package/adapters/react/flow.js.map +1 -0
- package/adapters/react/flow.tsx +40 -0
- package/adapters/react/gantt.d.ts +27 -0
- package/adapters/react/gantt.d.ts.map +1 -0
- package/adapters/react/gantt.js +24 -0
- package/adapters/react/gantt.js.map +1 -0
- package/adapters/react/gantt.tsx +35 -0
- package/adapters/react/map.d.ts +30 -0
- package/adapters/react/map.d.ts.map +1 -0
- package/adapters/react/map.js +24 -0
- package/adapters/react/map.js.map +1 -0
- package/adapters/react/map.tsx +38 -0
- package/adapters/react/markdown.d.ts +26 -0
- package/adapters/react/markdown.d.ts.map +1 -0
- package/adapters/react/markdown.js +24 -0
- package/adapters/react/markdown.js.map +1 -0
- package/adapters/react/markdown.tsx +34 -0
- package/adapters/react/notification-center.d.ts +26 -0
- package/adapters/react/notification-center.d.ts.map +1 -0
- package/adapters/react/notification-center.js +24 -0
- package/adapters/react/notification-center.js.map +1 -0
- package/adapters/react/notification-center.tsx +34 -0
- package/adapters/react/org-chart.d.ts +28 -0
- package/adapters/react/org-chart.d.ts.map +1 -0
- package/adapters/react/org-chart.js +24 -0
- package/adapters/react/org-chart.js.map +1 -0
- package/adapters/react/org-chart.tsx +36 -0
- package/adapters/react/pdf-viewer.d.ts +28 -0
- package/adapters/react/pdf-viewer.d.ts.map +1 -0
- package/adapters/react/pdf-viewer.js +24 -0
- package/adapters/react/pdf-viewer.js.map +1 -0
- package/adapters/react/pdf-viewer.tsx +36 -0
- package/adapters/react/podcast-player.d.ts +40 -0
- package/adapters/react/podcast-player.d.ts.map +1 -0
- package/adapters/react/podcast-player.js +24 -0
- package/adapters/react/podcast-player.js.map +1 -0
- package/adapters/react/podcast-player.tsx +48 -0
- package/adapters/react/pricing-table.d.ts +27 -0
- package/adapters/react/pricing-table.d.ts.map +1 -0
- package/adapters/react/pricing-table.js +24 -0
- package/adapters/react/pricing-table.js.map +1 -0
- package/adapters/react/pricing-table.tsx +35 -0
- package/adapters/react/rating.d.ts +30 -0
- package/adapters/react/rating.d.ts.map +1 -0
- package/adapters/react/rating.js +24 -0
- package/adapters/react/rating.js.map +1 -0
- package/adapters/react/rating.tsx +38 -0
- package/adapters/react/recipe.d.ts +43 -0
- package/adapters/react/recipe.d.ts.map +1 -0
- package/adapters/react/recipe.js +24 -0
- package/adapters/react/recipe.js.map +1 -0
- package/adapters/react/recipe.tsx +51 -0
- package/adapters/react/sortable.d.ts +28 -0
- package/adapters/react/sortable.d.ts.map +1 -0
- package/adapters/react/sortable.js +24 -0
- package/adapters/react/sortable.js.map +1 -0
- package/adapters/react/sortable.tsx +36 -0
- package/adapters/react/spotlight.d.ts +27 -0
- package/adapters/react/spotlight.d.ts.map +1 -0
- package/adapters/react/spotlight.js +24 -0
- package/adapters/react/spotlight.js.map +1 -0
- package/adapters/react/spotlight.tsx +35 -0
- package/adapters/react/spreadsheet.d.ts +27 -0
- package/adapters/react/spreadsheet.d.ts.map +1 -0
- package/adapters/react/spreadsheet.js +24 -0
- package/adapters/react/spreadsheet.js.map +1 -0
- package/adapters/react/spreadsheet.tsx +35 -0
- package/adapters/react/tag-input.d.ts +33 -0
- package/adapters/react/tag-input.d.ts.map +1 -0
- package/adapters/react/tag-input.js +24 -0
- package/adapters/react/tag-input.js.map +1 -0
- package/adapters/react/tag-input.tsx +41 -0
- package/adapters/react/testimonial.d.ts +31 -0
- package/adapters/react/testimonial.d.ts.map +1 -0
- package/adapters/react/testimonial.js +24 -0
- package/adapters/react/testimonial.js.map +1 -0
- package/adapters/react/testimonial.tsx +39 -0
- package/adapters/react/video-player.d.ts +34 -0
- package/adapters/react/video-player.d.ts.map +1 -0
- package/adapters/react/video-player.js +24 -0
- package/adapters/react/video-player.js.map +1 -0
- package/adapters/react/video-player.tsx +42 -0
- package/adapters/react/waterfall.d.ts +29 -0
- package/adapters/react/waterfall.d.ts.map +1 -0
- package/adapters/react/waterfall.js +24 -0
- package/adapters/react/waterfall.js.map +1 -0
- package/adapters/react/waterfall.tsx +37 -0
- package/adapters/react/weather.d.ts +27 -0
- package/adapters/react/weather.d.ts.map +1 -0
- package/adapters/react/weather.js +24 -0
- package/adapters/react/weather.js.map +1 -0
- package/adapters/react/weather.tsx +35 -0
- package/bin/templates/CLAUDE.md +169 -113
- package/bin/templates/pwa/README.md +72 -94
- package/bin/templates/pwa/src/components/app-header.ts +218 -0
- package/bin/templates/pwa/src/components/notification-badge.ts +68 -0
- package/bin/templates/pwa/src/components/search-bar.ts +99 -0
- package/bin/templates/pwa/src/controllers/notification-controller.ts +42 -0
- package/bin/templates/pwa/src/guards/auth.ts +1 -1
- package/bin/templates/pwa/src/main.ts +19 -0
- package/bin/templates/pwa/src/pages/dashboard.ts +124 -23
- package/bin/templates/pwa/src/pages/data.ts +329 -0
- package/bin/templates/pwa/src/pages/notifications.ts +112 -30
- package/bin/templates/pwa/src/pages/profile.ts +86 -52
- package/bin/templates/pwa/src/pages/settings.ts +291 -0
- package/bin/templates/pwa/src/styles/global.css +12 -3
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.min.js +1 -1
- package/dist/cdn/alert/snice-alert.js +1 -1
- package/dist/cdn/alert/snice-alert.min.js +1 -1
- package/dist/cdn/app-tiles/README.md +27 -0
- package/dist/cdn/app-tiles/snice-app-tiles.js +333 -0
- package/dist/cdn/app-tiles/snice-app-tiles.js.map +1 -0
- package/dist/cdn/app-tiles/snice-app-tiles.min.js +11 -0
- package/dist/cdn/app-tiles/snice-app-tiles.min.js.map +1 -0
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
- package/dist/cdn/avatar/snice-avatar.js +1 -1
- package/dist/cdn/avatar/snice-avatar.min.js +1 -1
- package/dist/cdn/badge/snice-badge.js +1 -1
- package/dist/cdn/badge/snice-badge.min.js +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/banner/snice-banner.min.js +1 -1
- package/dist/cdn/book/README.md +27 -0
- package/dist/cdn/book/snice-book.js +353 -0
- package/dist/cdn/book/snice-book.js.map +1 -0
- package/dist/cdn/book/snice-book.min.js +13 -0
- package/dist/cdn/book/snice-book.min.js.map +1 -0
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
- package/dist/cdn/button/snice-button.js +1 -1
- package/dist/cdn/button/snice-button.min.js +1 -1
- package/dist/cdn/calendar/snice-calendar.js +1 -1
- package/dist/cdn/calendar/snice-calendar.min.js +1 -1
- package/dist/cdn/camera/README.md +1 -1
- package/dist/cdn/camera/snice-camera.js +1 -1
- package/dist/cdn/camera/snice-camera.min.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
- package/dist/cdn/card/snice-card.js +1 -1
- package/dist/cdn/card/snice-card.min.js +1 -1
- package/dist/cdn/carousel/README.md +2 -2
- package/dist/cdn/carousel/snice-carousel.js +9 -3
- package/dist/cdn/carousel/snice-carousel.js.map +1 -1
- package/dist/cdn/carousel/snice-carousel.min.js +3 -3
- package/dist/cdn/carousel/snice-carousel.min.js.map +1 -1
- package/dist/cdn/chart/snice-chart.js +1 -1
- package/dist/cdn/chart/snice-chart.min.js +1 -1
- package/dist/cdn/chat/snice-chat.js +1 -1
- package/dist/cdn/chat/snice-chat.min.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
- package/dist/cdn/chip/snice-chip.js +1 -1
- package/dist/cdn/chip/snice-chip.min.js +1 -1
- package/dist/cdn/code-block/snice-code-block.js +1 -1
- package/dist/cdn/code-block/snice-code-block.min.js +1 -1
- package/dist/cdn/color-display/snice-color-display.js +1 -1
- package/dist/cdn/color-display/snice-color-display.min.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
- package/dist/cdn/comments/README.md +27 -0
- package/dist/cdn/comments/snice-comments.js +544 -0
- package/dist/cdn/comments/snice-comments.js.map +1 -0
- package/dist/cdn/comments/snice-comments.min.js +100 -0
- package/dist/cdn/comments/snice-comments.min.js.map +1 -0
- package/dist/cdn/countdown/README.md +27 -0
- package/dist/cdn/countdown/snice-countdown.js +235 -0
- package/dist/cdn/countdown/snice-countdown.js.map +1 -0
- package/dist/cdn/countdown/snice-countdown.min.js +14 -0
- package/dist/cdn/countdown/snice-countdown.min.js.map +1 -0
- package/dist/cdn/cropper/README.md +27 -0
- package/dist/cdn/cropper/snice-cropper.js +352 -0
- package/dist/cdn/cropper/snice-cropper.js.map +1 -0
- package/dist/cdn/cropper/snice-cropper.min.js +25 -0
- package/dist/cdn/cropper/snice-cropper.min.js.map +1 -0
- package/dist/cdn/date-picker/snice-date-picker.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
- package/dist/cdn/diff/README.md +27 -0
- package/dist/cdn/diff/snice-diff.js +441 -0
- package/dist/cdn/diff/snice-diff.js.map +1 -0
- package/dist/cdn/diff/snice-diff.min.js +54 -0
- package/dist/cdn/diff/snice-diff.min.js.map +1 -0
- package/dist/cdn/divider/snice-divider.js +1 -1
- package/dist/cdn/divider/snice-divider.min.js +1 -1
- package/dist/cdn/doc/snice-doc.js +1 -1
- package/dist/cdn/doc/snice-doc.min.js +1 -1
- package/dist/cdn/draw/snice-draw.js +1 -1
- package/dist/cdn/draw/snice-draw.min.js +1 -1
- package/dist/cdn/drawer/snice-drawer.js +1 -1
- package/dist/cdn/drawer/snice-drawer.min.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
- package/dist/cdn/flip-card/README.md +27 -0
- package/dist/cdn/flip-card/snice-flip-card.js +183 -0
- package/dist/cdn/flip-card/snice-flip-card.js.map +1 -0
- package/dist/cdn/flip-card/snice-flip-card.min.js +22 -0
- package/dist/cdn/flip-card/snice-flip-card.min.js.map +1 -0
- package/dist/cdn/flow/README.md +27 -0
- package/dist/cdn/flow/snice-flow.js +822 -0
- package/dist/cdn/flow/snice-flow.js.map +1 -0
- package/dist/cdn/flow/snice-flow.min.js +17 -0
- package/dist/cdn/flow/snice-flow.min.js.map +1 -0
- package/dist/cdn/funnel/snice-funnel.js +1 -1
- package/dist/cdn/funnel/snice-funnel.min.js +1 -1
- package/dist/cdn/gantt/README.md +27 -0
- package/dist/cdn/gantt/snice-gantt.js +436 -0
- package/dist/cdn/gantt/snice-gantt.js.map +1 -0
- package/dist/cdn/gantt/snice-gantt.min.js +60 -0
- package/dist/cdn/gantt/snice-gantt.min.js.map +1 -0
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/gauge/snice-gauge.min.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
- package/dist/cdn/image/snice-image.js +1 -1
- package/dist/cdn/image/snice-image.min.js +1 -1
- package/dist/cdn/input/snice-input.js +1 -1
- package/dist/cdn/input/snice-input.min.js +1 -1
- package/dist/cdn/kanban/snice-kanban.js +1 -1
- package/dist/cdn/kanban/snice-kanban.min.js +1 -1
- package/dist/cdn/kpi/snice-kpi.js +1 -1
- package/dist/cdn/kpi/snice-kpi.min.js +1 -1
- package/dist/cdn/layout/snice-layout.js +1 -1
- package/dist/cdn/layout/snice-layout.min.js +1 -1
- package/dist/cdn/link/snice-link.js +1 -1
- package/dist/cdn/link/snice-link.min.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
- package/dist/cdn/list/snice-list.js +1 -1
- package/dist/cdn/list/snice-list.min.js +1 -1
- package/dist/cdn/location/snice-location.js +1 -1
- package/dist/cdn/location/snice-location.min.js +1 -1
- package/dist/cdn/login/snice-login.js +1 -1
- package/dist/cdn/login/snice-login.min.js +1 -1
- package/dist/cdn/map/README.md +27 -0
- package/dist/cdn/map/snice-map.js +415 -0
- package/dist/cdn/map/snice-map.js.map +1 -0
- package/dist/cdn/map/snice-map.min.js +52 -0
- package/dist/cdn/map/snice-map.min.js.map +1 -0
- package/dist/cdn/markdown/README.md +27 -0
- package/dist/cdn/markdown/snice-markdown.js +317 -0
- package/dist/cdn/markdown/snice-markdown.js.map +1 -0
- package/dist/cdn/markdown/snice-markdown.min.js +11 -0
- package/dist/cdn/markdown/snice-markdown.min.js.map +1 -0
- package/dist/cdn/masonry/snice-masonry.js +1 -1
- package/dist/cdn/masonry/snice-masonry.min.js +1 -1
- package/dist/cdn/menu/snice-menu.js +1 -1
- package/dist/cdn/menu/snice-menu.min.js +1 -1
- package/dist/cdn/modal/snice-modal.js +1 -1
- package/dist/cdn/modal/snice-modal.min.js +1 -1
- package/dist/cdn/music-player/snice-music-player.js +1 -1
- package/dist/cdn/music-player/snice-music-player.min.js +1 -1
- package/dist/cdn/nav/snice-nav.js +1 -1
- package/dist/cdn/nav/snice-nav.min.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
- package/dist/cdn/notification-center/README.md +27 -0
- package/dist/cdn/notification-center/snice-notification-center.js +204 -0
- package/dist/cdn/notification-center/snice-notification-center.js.map +1 -0
- package/dist/cdn/notification-center/snice-notification-center.min.js +33 -0
- package/dist/cdn/notification-center/snice-notification-center.min.js.map +1 -0
- package/dist/cdn/org-chart/README.md +27 -0
- package/dist/cdn/org-chart/snice-org-chart.js +294 -0
- package/dist/cdn/org-chart/snice-org-chart.js.map +1 -0
- package/dist/cdn/org-chart/snice-org-chart.min.js +32 -0
- package/dist/cdn/org-chart/snice-org-chart.min.js.map +1 -0
- package/dist/cdn/pagination/snice-pagination.js +1 -1
- package/dist/cdn/pagination/snice-pagination.min.js +1 -1
- package/dist/cdn/paint/snice-paint.js +1 -1
- package/dist/cdn/paint/snice-paint.min.js +1 -1
- package/dist/cdn/pdf-viewer/README.md +27 -0
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +588 -0
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js.map +1 -0
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +88 -0
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js.map +1 -0
- package/dist/cdn/podcast-player/README.md +27 -0
- package/dist/cdn/podcast-player/snice-podcast-player.js +835 -0
- package/dist/cdn/podcast-player/snice-podcast-player.js.map +1 -0
- package/dist/cdn/podcast-player/snice-podcast-player.min.js +209 -0
- package/dist/cdn/podcast-player/snice-podcast-player.min.js.map +1 -0
- package/dist/cdn/pricing-table/README.md +27 -0
- package/dist/cdn/pricing-table/snice-pricing-table.js +491 -0
- package/dist/cdn/pricing-table/snice-pricing-table.js.map +1 -0
- package/dist/cdn/pricing-table/snice-pricing-table.min.js +141 -0
- package/dist/cdn/pricing-table/snice-pricing-table.min.js.map +1 -0
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress/snice-progress.min.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
- package/dist/cdn/radio/snice-radio.js +1 -1
- package/dist/cdn/radio/snice-radio.min.js +1 -1
- package/dist/cdn/rating/README.md +27 -0
- package/dist/cdn/rating/snice-rating.js +210 -0
- package/dist/cdn/rating/snice-rating.js.map +1 -0
- package/dist/cdn/rating/snice-rating.min.js +25 -0
- package/dist/cdn/rating/snice-rating.min.js.map +1 -0
- package/dist/cdn/recipe/README.md +27 -0
- package/dist/cdn/recipe/snice-recipe.js +619 -0
- package/dist/cdn/recipe/snice-recipe.js.map +1 -0
- package/dist/cdn/recipe/snice-recipe.min.js +185 -0
- package/dist/cdn/recipe/snice-recipe.min.js.map +1 -0
- package/dist/cdn/runtime/README.md +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.js +10 -3
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +4 -4
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +10 -3
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +4 -4
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/snice-sankey.js +1 -1
- package/dist/cdn/sankey/snice-sankey.min.js +1 -1
- package/dist/cdn/select/snice-select.js +1 -1
- package/dist/cdn/select/snice-select.min.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
- package/dist/cdn/slider/snice-slider.js +1 -1
- package/dist/cdn/slider/snice-slider.min.js +1 -1
- package/dist/cdn/sortable/README.md +27 -0
- package/dist/cdn/sortable/snice-sortable.js +254 -0
- package/dist/cdn/sortable/snice-sortable.js.map +1 -0
- package/dist/cdn/sortable/snice-sortable.min.js +12 -0
- package/dist/cdn/sortable/snice-sortable.min.js.map +1 -0
- package/dist/cdn/sparkline/snice-sparkline.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
- package/dist/cdn/spinner/snice-spinner.js +1 -1
- package/dist/cdn/spinner/snice-spinner.min.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
- package/dist/cdn/spotlight/README.md +27 -0
- package/dist/cdn/spotlight/snice-spotlight.js +397 -0
- package/dist/cdn/spotlight/snice-spotlight.js.map +1 -0
- package/dist/cdn/spotlight/snice-spotlight.min.js +8 -0
- package/dist/cdn/spotlight/snice-spotlight.min.js.map +1 -0
- package/dist/cdn/spreadsheet/README.md +27 -0
- package/dist/cdn/spreadsheet/snice-spreadsheet.js +1171 -0
- package/dist/cdn/spreadsheet/snice-spreadsheet.js.map +1 -0
- package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +30 -0
- package/dist/cdn/spreadsheet/snice-spreadsheet.min.js.map +1 -0
- package/dist/cdn/stepper/snice-stepper.js +1 -1
- package/dist/cdn/stepper/snice-stepper.min.js +1 -1
- package/dist/cdn/switch/snice-switch.js +1 -1
- package/dist/cdn/switch/snice-switch.min.js +1 -1
- package/dist/cdn/table/snice-table.js +1 -1
- package/dist/cdn/table/snice-table.min.js +1 -1
- package/dist/cdn/tabs/snice-tabs.js +1 -1
- package/dist/cdn/tabs/snice-tabs.min.js +1 -1
- package/dist/cdn/tag-input/README.md +27 -0
- package/dist/cdn/tag-input/snice-tag-input.js +387 -0
- package/dist/cdn/tag-input/snice-tag-input.js.map +1 -0
- package/dist/cdn/tag-input/snice-tag-input.min.js +65 -0
- package/dist/cdn/tag-input/snice-tag-input.min.js.map +1 -0
- package/dist/cdn/terminal/snice-terminal.js +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -1
- package/dist/cdn/testimonial/README.md +27 -0
- package/dist/cdn/testimonial/snice-testimonial.js +187 -0
- package/dist/cdn/testimonial/snice-testimonial.js.map +1 -0
- package/dist/cdn/testimonial/snice-testimonial.min.js +21 -0
- package/dist/cdn/testimonial/snice-testimonial.min.js.map +1 -0
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/textarea/snice-textarea.min.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
- package/dist/cdn/timeline/snice-timeline.js +1 -1
- package/dist/cdn/timeline/snice-timeline.min.js +1 -1
- package/dist/cdn/timer/snice-timer.js +1 -1
- package/dist/cdn/timer/snice-timer.min.js +1 -1
- package/dist/cdn/toast/snice-toast.js +1 -1
- package/dist/cdn/toast/snice-toast.min.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
- package/dist/cdn/tree/snice-tree.js +1 -1
- package/dist/cdn/tree/snice-tree.min.js +1 -1
- package/dist/cdn/treemap/snice-treemap.js +1 -1
- package/dist/cdn/treemap/snice-treemap.min.js +1 -1
- package/dist/cdn/video-player/README.md +27 -0
- package/dist/cdn/video-player/snice-video-player.js +721 -0
- package/dist/cdn/video-player/snice-video-player.js.map +1 -0
- package/dist/cdn/video-player/snice-video-player.min.js +153 -0
- package/dist/cdn/video-player/snice-video-player.min.js.map +1 -0
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
- package/dist/cdn/waterfall/README.md +27 -0
- package/dist/cdn/waterfall/snice-waterfall.js +292 -0
- package/dist/cdn/waterfall/snice-waterfall.js.map +1 -0
- package/dist/cdn/waterfall/snice-waterfall.min.js +12 -0
- package/dist/cdn/waterfall/snice-waterfall.min.js.map +1 -0
- package/dist/cdn/weather/README.md +27 -0
- package/dist/cdn/weather/snice-weather.js +194 -0
- package/dist/cdn/weather/snice-weather.js.map +1 -0
- package/dist/cdn/weather/snice-weather.min.js +42 -0
- package/dist/cdn/weather/snice-weather.min.js.map +1 -0
- package/dist/components/app-tiles/snice-app-tiles.d.ts +36 -0
- package/dist/components/app-tiles/snice-app-tiles.js +265 -0
- package/dist/components/app-tiles/snice-app-tiles.js.map +1 -0
- package/dist/components/app-tiles/snice-app-tiles.types.d.ts +22 -0
- package/dist/components/book/snice-book.d.ts +46 -0
- package/dist/components/book/snice-book.js +285 -0
- package/dist/components/book/snice-book.js.map +1 -0
- package/dist/components/book/snice-book.types.d.ts +21 -0
- package/dist/components/carousel/snice-carousel.js +8 -2
- package/dist/components/carousel/snice-carousel.js.map +1 -1
- package/dist/components/comments/snice-comments.d.ts +62 -0
- package/dist/components/comments/snice-comments.js +476 -0
- package/dist/components/comments/snice-comments.js.map +1 -0
- package/dist/components/comments/snice-comments.types.d.ts +64 -0
- package/dist/components/countdown/snice-countdown.d.ts +21 -0
- package/dist/components/countdown/snice-countdown.js +168 -0
- package/dist/components/countdown/snice-countdown.js.map +1 -0
- package/dist/components/countdown/snice-countdown.types.d.ts +18 -0
- package/dist/components/cropper/snice-cropper.d.ts +32 -0
- package/dist/components/cropper/snice-cropper.js +285 -0
- package/dist/components/cropper/snice-cropper.js.map +1 -0
- package/dist/components/cropper/snice-cropper.types.d.ts +26 -0
- package/dist/components/diff/snice-diff.d.ts +32 -0
- package/dist/components/diff/snice-diff.js +374 -0
- package/dist/components/diff/snice-diff.js.map +1 -0
- package/dist/components/diff/snice-diff.types.d.ts +26 -0
- package/dist/components/flip-card/snice-flip-card.d.ts +15 -0
- package/dist/components/flip-card/snice-flip-card.js +116 -0
- package/dist/components/flip-card/snice-flip-card.js.map +1 -0
- package/dist/components/flip-card/snice-flip-card.types.d.ts +16 -0
- package/dist/components/flow/snice-flow.d.ts +91 -0
- package/dist/components/flow/snice-flow.js +755 -0
- package/dist/components/flow/snice-flow.js.map +1 -0
- package/dist/components/flow/snice-flow.types.d.ts +64 -0
- package/dist/components/gantt/snice-gantt.d.ts +34 -0
- package/dist/components/gantt/snice-gantt.js +369 -0
- package/dist/components/gantt/snice-gantt.js.map +1 -0
- package/dist/components/gantt/snice-gantt.types.d.ts +37 -0
- package/dist/components/map/snice-map.d.ts +44 -0
- package/dist/components/map/snice-map.js +348 -0
- package/dist/components/map/snice-map.js.map +1 -0
- package/dist/components/map/snice-map.types.d.ts +41 -0
- package/dist/components/markdown/snice-markdown.d.ts +24 -0
- package/dist/components/markdown/snice-markdown.js +250 -0
- package/dist/components/markdown/snice-markdown.js.map +1 -0
- package/dist/components/markdown/snice-markdown.types.d.ts +16 -0
- package/dist/components/notification-center/snice-notification-center.d.ts +18 -0
- package/dist/components/notification-center/snice-notification-center.js +137 -0
- package/dist/components/notification-center/snice-notification-center.js.map +1 -0
- package/dist/components/notification-center/snice-notification-center.types.d.ts +24 -0
- package/dist/components/org-chart/snice-org-chart.d.ts +28 -0
- package/dist/components/org-chart/snice-org-chart.js +227 -0
- package/dist/components/org-chart/snice-org-chart.js.map +1 -0
- package/dist/components/org-chart/snice-org-chart.types.d.ts +28 -0
- package/dist/components/pdf-viewer/pdf.min.mjs +21 -0
- package/dist/components/pdf-viewer/pdf.worker.min.mjs +21 -0
- package/dist/components/pdf-viewer/snice-pdf-viewer.d.ts +60 -0
- package/dist/components/pdf-viewer/snice-pdf-viewer.js +521 -0
- package/dist/components/pdf-viewer/snice-pdf-viewer.js.map +1 -0
- package/dist/components/pdf-viewer/snice-pdf-viewer.types.d.ts +25 -0
- package/dist/components/podcast-player/snice-podcast-player.d.ts +72 -0
- package/dist/components/podcast-player/snice-podcast-player.js +768 -0
- package/dist/components/podcast-player/snice-podcast-player.js.map +1 -0
- package/dist/components/podcast-player/snice-podcast-player.types.d.ts +79 -0
- package/dist/components/pricing-table/snice-pricing-table.d.ts +51 -0
- package/dist/components/pricing-table/snice-pricing-table.js +422 -0
- package/dist/components/pricing-table/snice-pricing-table.js.map +1 -0
- package/dist/components/pricing-table/snice-pricing-table.types.d.ts +49 -0
- package/dist/components/rating/snice-rating.d.ts +15 -0
- package/dist/components/rating/snice-rating.js +143 -0
- package/dist/components/rating/snice-rating.js.map +1 -0
- package/dist/components/rating/snice-rating.types.d.ts +15 -0
- package/dist/components/recipe/snice-recipe.d.ts +53 -0
- package/dist/components/recipe/snice-recipe.js +552 -0
- package/dist/components/recipe/snice-recipe.js.map +1 -0
- package/dist/components/recipe/snice-recipe.types.d.ts +56 -0
- package/dist/components/sortable/snice-sortable.d.ts +24 -0
- package/dist/components/sortable/snice-sortable.js +187 -0
- package/dist/components/sortable/snice-sortable.js.map +1 -0
- package/dist/components/sortable/snice-sortable.types.d.ts +20 -0
- package/dist/components/spotlight/snice-spotlight.d.ts +42 -0
- package/dist/components/spotlight/snice-spotlight.js +330 -0
- package/dist/components/spotlight/snice-spotlight.js.map +1 -0
- package/dist/components/spotlight/snice-spotlight.types.d.ts +26 -0
- package/dist/components/spreadsheet/snice-spreadsheet.d.ts +102 -0
- package/dist/components/spreadsheet/snice-spreadsheet.js +1104 -0
- package/dist/components/spreadsheet/snice-spreadsheet.js.map +1 -0
- package/dist/components/spreadsheet/snice-spreadsheet.types.d.ts +54 -0
- package/dist/components/tag-input/snice-tag-input.d.ts +40 -0
- package/dist/components/tag-input/snice-tag-input.js +320 -0
- package/dist/components/tag-input/snice-tag-input.js.map +1 -0
- package/dist/components/tag-input/snice-tag-input.types.d.ts +29 -0
- package/dist/components/testimonial/snice-testimonial.d.ts +15 -0
- package/dist/components/testimonial/snice-testimonial.js +120 -0
- package/dist/components/testimonial/snice-testimonial.js.map +1 -0
- package/dist/components/testimonial/snice-testimonial.types.d.ts +10 -0
- package/dist/components/video-player/snice-video-player.d.ts +78 -0
- package/dist/components/video-player/snice-video-player.js +654 -0
- package/dist/components/video-player/snice-video-player.js.map +1 -0
- package/dist/components/video-player/snice-video-player.types.d.ts +47 -0
- package/dist/components/waterfall/snice-waterfall.d.ts +30 -0
- package/dist/components/waterfall/snice-waterfall.js +225 -0
- package/dist/components/waterfall/snice-waterfall.js.map +1 -0
- package/dist/components/waterfall/snice-waterfall.types.d.ts +23 -0
- package/dist/components/weather/snice-weather.d.ts +10 -0
- package/dist/components/weather/snice-weather.js +127 -0
- package/dist/components/weather/snice-weather.js.map +1 -0
- package/dist/components/weather/snice-weather.types.d.ts +22 -0
- package/dist/index.cjs +8 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +8 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +8 -1
- package/dist/index.iife.js.map +1 -1
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/DEVELOPMENT.md +1 -1
- package/docs/ai/api.md +6 -3
- package/docs/ai/components/accordion.md +0 -34
- package/docs/ai/components/app-tiles.md +77 -0
- package/docs/ai/components/audio-recorder.md +2 -0
- package/docs/ai/components/badge.md +7 -0
- package/docs/ai/components/book.md +78 -0
- package/docs/ai/components/button.md +5 -0
- package/docs/ai/components/chart.md +0 -24
- package/docs/ai/components/chat.md +7 -95
- package/docs/ai/components/code-block.md +3 -82
- package/docs/ai/components/color-display.md +3 -3
- package/docs/ai/components/color-picker.md +4 -4
- package/docs/ai/components/comments.md +75 -0
- package/docs/ai/components/countdown.md +54 -0
- package/docs/ai/components/cropper.md +57 -0
- package/docs/ai/components/date-picker.md +15 -9
- package/docs/ai/components/diff.md +66 -0
- package/docs/ai/components/divider.md +1 -1
- package/docs/ai/components/draw.md +5 -5
- package/docs/ai/components/drawer.md +5 -5
- package/docs/ai/components/empty-state.md +2 -2
- package/docs/ai/components/file-gallery.md +16 -87
- package/docs/ai/components/file-upload.md +6 -6
- package/docs/ai/components/flip-card.md +52 -0
- package/docs/ai/components/flow.md +104 -0
- package/docs/ai/components/funnel.md +3 -3
- package/docs/ai/components/gantt.md +63 -0
- package/docs/ai/components/gauge.md +1 -1
- package/docs/ai/components/heatmap.md +5 -5
- package/docs/ai/components/input.md +20 -18
- package/docs/ai/components/kanban.md +2 -2
- package/docs/ai/components/kpi.md +4 -53
- package/docs/ai/components/layout.md +10 -235
- package/docs/ai/components/link-preview.md +20 -29
- package/docs/ai/components/link.md +27 -47
- package/docs/ai/components/list.md +51 -31
- package/docs/ai/components/location.md +15 -27
- package/docs/ai/components/login.md +43 -94
- package/docs/ai/components/map.md +72 -0
- package/docs/ai/components/markdown.md +63 -0
- package/docs/ai/components/masonry.md +10 -6
- package/docs/ai/components/menu.md +40 -72
- package/docs/ai/components/modal.md +25 -42
- package/docs/ai/components/music-player.md +37 -89
- package/docs/ai/components/nav.md +25 -39
- package/docs/ai/components/network-graph.md +39 -43
- package/docs/ai/components/notification-center.md +79 -0
- package/docs/ai/components/org-chart.md +62 -0
- package/docs/ai/components/pagination.md +16 -18
- package/docs/ai/components/pdf-viewer.md +57 -0
- package/docs/ai/components/podcast-player.md +94 -0
- package/docs/ai/components/pricing-table.md +87 -0
- package/docs/ai/components/progress.md +23 -39
- package/docs/ai/components/qr-code.md +37 -84
- package/docs/ai/components/qr-reader.md +51 -61
- package/docs/ai/components/radio.md +27 -39
- package/docs/ai/components/rating.md +56 -0
- package/docs/ai/components/recipe.md +90 -0
- package/docs/ai/components/skeleton.md +0 -8
- package/docs/ai/components/slider.md +10 -50
- package/docs/ai/components/sortable.md +57 -0
- package/docs/ai/components/sparkline.md +26 -152
- package/docs/ai/components/spinner.md +0 -21
- package/docs/ai/components/split-pane.md +16 -38
- package/docs/ai/components/spotlight.md +61 -0
- package/docs/ai/components/spreadsheet.md +138 -0
- package/docs/ai/components/stepper.md +37 -183
- package/docs/ai/components/switch.md +28 -35
- package/docs/ai/components/table.md +43 -172
- package/docs/ai/components/tabs.md +31 -52
- package/docs/ai/components/tag-input.md +70 -0
- package/docs/ai/components/terminal.md +34 -116
- package/docs/ai/components/testimonial.md +56 -0
- package/docs/ai/components/textarea.md +11 -43
- package/docs/ai/components/theme.md +120 -0
- package/docs/ai/components/time-range-picker.md +17 -49
- package/docs/ai/components/timeline.md +7 -46
- package/docs/ai/components/timer.md +41 -37
- package/docs/ai/components/toast.md +19 -90
- package/docs/ai/components/tooltip.md +17 -104
- package/docs/ai/components/tree.md +38 -162
- package/docs/ai/components/treemap.md +23 -44
- package/docs/ai/components/video-player.md +91 -0
- package/docs/ai/components/virtual-scroller.md +23 -46
- package/docs/ai/components/waterfall.md +56 -0
- package/docs/ai/components/weather.md +78 -0
- package/docs/ai/decorators.md +25 -3
- package/docs/ai/patterns.md +18 -2
- package/docs/components/accordion.md +8 -6
- package/docs/components/alert.md +2 -0
- package/docs/components/app-tiles.md +162 -0
- package/docs/components/audio-recorder.md +6 -0
- package/docs/components/avatar.md +225 -0
- package/docs/components/badge.md +2 -0
- package/docs/components/banner.md +2 -0
- package/docs/components/book.md +184 -0
- package/docs/components/breadcrumbs.md +2 -0
- package/docs/components/button.md +15 -0
- package/docs/components/calendar.md +2 -0
- package/docs/components/camera-annotate.md +2 -0
- package/docs/components/camera.md +2 -0
- package/docs/components/candlestick.md +2 -0
- package/docs/components/card.md +2 -0
- package/docs/components/carousel.md +205 -36
- package/docs/components/chart.md +2 -0
- package/docs/components/chat.md +2 -0
- package/docs/components/checkbox.md +2 -0
- package/docs/components/chip.md +2 -0
- package/docs/components/code-block.md +2 -0
- package/docs/components/color-display.md +2 -0
- package/docs/components/color-picker.md +6 -4
- package/docs/components/command-palette.md +2 -0
- package/docs/components/comments.md +235 -0
- package/docs/components/countdown.md +121 -0
- package/docs/components/cropper.md +152 -0
- package/docs/components/date-picker.md +201 -0
- package/docs/components/diff.md +177 -0
- package/docs/components/divider.md +132 -0
- package/docs/components/doc.md +2 -0
- package/docs/components/draw.md +2 -0
- package/docs/components/drawer.md +2 -0
- package/docs/components/empty-state.md +2 -0
- package/docs/components/file-gallery.md +2 -0
- package/docs/components/file-upload.md +2 -0
- package/docs/components/flip-card.md +169 -0
- package/docs/components/flow.md +208 -0
- package/docs/components/funnel.md +2 -0
- package/docs/components/gantt.md +187 -0
- package/docs/components/gauge.md +2 -0
- package/docs/components/heatmap.md +2 -0
- package/docs/components/image.md +2 -0
- package/docs/components/input.md +242 -0
- package/docs/components/kanban.md +2 -0
- package/docs/components/kpi.md +2 -0
- package/docs/components/layout.md +84 -0
- package/docs/components/link-preview.md +66 -92
- package/docs/components/link.md +73 -157
- package/docs/components/list.md +140 -44
- package/docs/components/location.md +96 -283
- package/docs/components/login.md +131 -498
- package/docs/components/map.md +203 -0
- package/docs/components/markdown.md +220 -0
- package/docs/components/masonry.md +57 -102
- package/docs/components/menu.md +87 -494
- package/docs/components/modal.md +83 -436
- package/docs/components/music-player.md +116 -221
- package/docs/components/nav.md +107 -170
- package/docs/components/network-graph.md +83 -111
- package/docs/components/notification-center.md +256 -0
- package/docs/components/org-chart.md +275 -0
- package/docs/components/pagination.md +75 -218
- package/docs/components/paint.md +108 -73
- package/docs/components/pdf-viewer.md +204 -0
- package/docs/components/podcast-player.md +277 -0
- package/docs/components/pricing-table.md +249 -0
- package/docs/components/progress.md +169 -0
- package/docs/components/qr-code.md +95 -378
- package/docs/components/qr-reader.md +83 -258
- package/docs/components/radio.md +151 -0
- package/docs/components/rating.md +154 -0
- package/docs/components/recipe.md +323 -0
- package/docs/components/sankey.md +84 -107
- package/docs/components/select.md +114 -485
- package/docs/components/skeleton.md +96 -0
- package/docs/components/slider.md +92 -235
- package/docs/components/sortable.md +267 -0
- package/docs/components/sparkline.md +76 -222
- package/docs/components/spinner.md +37 -18
- package/docs/components/split-pane.md +62 -226
- package/docs/components/spotlight.md +240 -0
- package/docs/components/spreadsheet.md +405 -0
- package/docs/components/stepper.md +72 -306
- package/docs/components/switch.md +69 -293
- package/docs/components/table.md +250 -0
- package/docs/components/tabs.md +92 -471
- package/docs/components/tag-input.md +257 -0
- package/docs/components/terminal.md +87 -391
- package/docs/components/testimonial.md +185 -0
- package/docs/components/textarea.md +96 -181
- package/docs/components/theme.md +216 -0
- package/docs/components/time-range-picker.md +99 -151
- package/docs/components/timeline.md +67 -115
- package/docs/components/timer.md +44 -86
- package/docs/components/toast.md +93 -432
- package/docs/components/tooltip.md +75 -419
- package/docs/components/tree.md +110 -436
- package/docs/components/treemap.md +86 -129
- package/docs/components/video-player.md +336 -0
- package/docs/components/virtual-scroller.md +86 -226
- package/docs/components/waterfall.md +217 -0
- package/docs/components/weather.md +239 -0
- package/docs/routing.md +2 -2
- package/package.json +1 -1
- package/docs/ai/components/popover.md +0 -70
- package/docs/components/popover.md +0 -333
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/spreadsheet.md instead)
|
|
2
|
+
|
|
3
|
+
# Spreadsheet Component
|
|
4
|
+
|
|
5
|
+
The spreadsheet component provides an Excel-like editable grid with formula support, multi-cell range selection, undo/redo, column resizing, context menus, copy/paste, and an auto-expanding grid. It supports both reading and editing tabular data with full keyboard-driven navigation.
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
- [Basic Usage](#basic-usage)
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Methods](#methods)
|
|
11
|
+
- [Events](#events)
|
|
12
|
+
- [Formula Support](#formula-support)
|
|
13
|
+
- [Multi-Cell Selection](#multi-cell-selection)
|
|
14
|
+
- [Column Resizing](#column-resizing)
|
|
15
|
+
- [Context Menu](#context-menu)
|
|
16
|
+
- [Undo/Redo](#undoredo)
|
|
17
|
+
- [Auto-Expanding Grid](#auto-expanding-grid)
|
|
18
|
+
- [Keyboard Shortcuts](#keyboard-shortcuts)
|
|
19
|
+
- [CSS Custom Properties](#css-custom-properties)
|
|
20
|
+
- [Examples](#examples)
|
|
21
|
+
- [Accessibility](#accessibility)
|
|
22
|
+
|
|
23
|
+
## Basic Usage
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<snice-spreadsheet></snice-spreadsheet>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import 'snice/components/spreadsheet/snice-spreadsheet';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Properties
|
|
34
|
+
|
|
35
|
+
| Property | Type | Default | Description |
|
|
36
|
+
|----------|------|---------|-------------|
|
|
37
|
+
| `data` | `any[][]` | `[]` | Two-dimensional array of cell values |
|
|
38
|
+
| `columns` | `SpreadsheetColumn[]` | `[]` | Column definitions with header, type, and width |
|
|
39
|
+
| `readonly` | `boolean` | `false` | Prevents cell editing when true |
|
|
40
|
+
|
|
41
|
+
### SpreadsheetColumn
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
interface SpreadsheetColumn {
|
|
45
|
+
header: string; // Column header text
|
|
46
|
+
type?: 'text' | 'number' | 'date' | 'boolean' | 'select'; // Cell type
|
|
47
|
+
width?: number; // Column width in pixels
|
|
48
|
+
options?: string[]; // Available options for 'select' type cells
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### CellPosition
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
interface CellPosition {
|
|
56
|
+
row: number;
|
|
57
|
+
col: number;
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### CellRange
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
interface CellRange {
|
|
65
|
+
start: CellPosition;
|
|
66
|
+
end: CellPosition;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Methods
|
|
71
|
+
|
|
72
|
+
#### `getCell(row: number, col: number): any`
|
|
73
|
+
Get the resolved value of a cell. For formula cells, returns the computed result.
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
const value = spreadsheet.getCell(0, 1); // Get value at row 0, column 1
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### `setCell(row: number, col: number, value: any): void`
|
|
80
|
+
Set a cell value. Auto-expands the data grid if the position is beyond current bounds. The change is added to the undo stack.
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
spreadsheet.setCell(0, 1, 250);
|
|
84
|
+
spreadsheet.setCell(2, 0, '=SUM(B1:B2)');
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### `getData(): any[][]`
|
|
88
|
+
Get a copy of all current data.
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
const allData = spreadsheet.getData();
|
|
92
|
+
console.log(allData);
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### `setData(data: any[][]): void`
|
|
96
|
+
Replace all data in the spreadsheet.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
spreadsheet.setData([
|
|
100
|
+
['Alice', 100],
|
|
101
|
+
['Bob', 200],
|
|
102
|
+
['Total', '=SUM(B1:B2)']
|
|
103
|
+
]);
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Events
|
|
107
|
+
|
|
108
|
+
### `cell-change`
|
|
109
|
+
Fired when a cell value is modified.
|
|
110
|
+
|
|
111
|
+
**Event Detail:**
|
|
112
|
+
```typescript
|
|
113
|
+
{
|
|
114
|
+
row: number;
|
|
115
|
+
col: number;
|
|
116
|
+
value: any;
|
|
117
|
+
oldValue: any;
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### `cell-select`
|
|
122
|
+
Fired when a cell is selected.
|
|
123
|
+
|
|
124
|
+
**Event Detail:**
|
|
125
|
+
```typescript
|
|
126
|
+
{
|
|
127
|
+
row: number;
|
|
128
|
+
col: number;
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### `row-select`
|
|
133
|
+
Fired when a row is selected (by clicking the row number).
|
|
134
|
+
|
|
135
|
+
**Event Detail:**
|
|
136
|
+
```typescript
|
|
137
|
+
{
|
|
138
|
+
row: number;
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### `column-sort`
|
|
143
|
+
Fired when a column header is clicked to sort.
|
|
144
|
+
|
|
145
|
+
**Event Detail:**
|
|
146
|
+
```typescript
|
|
147
|
+
{
|
|
148
|
+
col: number;
|
|
149
|
+
direction: 'asc' | 'desc';
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Formula Support
|
|
154
|
+
|
|
155
|
+
Cells starting with `=` are evaluated as formulas. Supported functions:
|
|
156
|
+
|
|
157
|
+
| Function | Description | Example |
|
|
158
|
+
|----------|-------------|---------|
|
|
159
|
+
| `SUM` | Sum of values in range | `=SUM(A1:A5)` |
|
|
160
|
+
| `AVG` / `AVERAGE` | Average of values in range | `=AVG(B1:B10)` |
|
|
161
|
+
| `COUNT` | Count of non-empty cells in range | `=COUNT(A1:A10)` |
|
|
162
|
+
| `MIN` | Minimum value in range | `=MIN(C1:C5)` |
|
|
163
|
+
| `MAX` | Maximum value in range | `=MAX(C1:C5)` |
|
|
164
|
+
|
|
165
|
+
Cell references use spreadsheet-style notation (A1, B2, etc.) where letters are columns and numbers are rows.
|
|
166
|
+
|
|
167
|
+
## Multi-Cell Selection
|
|
168
|
+
|
|
169
|
+
The spreadsheet supports selecting a range of cells, similar to Excel or Google Sheets.
|
|
170
|
+
|
|
171
|
+
- **Click and drag**: Click a cell and drag to select a range
|
|
172
|
+
- **Shift+Click**: Click a cell, then Shift+Click another to select the range between them
|
|
173
|
+
- **Shift+Arrow keys**: Extend the selection one cell at a time in the arrow direction
|
|
174
|
+
|
|
175
|
+
When a range is selected:
|
|
176
|
+
- The anchor cell (where selection started) has a thick blue border
|
|
177
|
+
- Other cells in the range have a light blue fill
|
|
178
|
+
- The **status bar** at the bottom shows COUNT, SUM, and AVG of numeric cells in the selection
|
|
179
|
+
|
|
180
|
+
## Column Resizing
|
|
181
|
+
|
|
182
|
+
Drag the right edge of any column header to resize it. A blue highlight appears on hover to indicate the resize handle. The minimum column width is 40px.
|
|
183
|
+
|
|
184
|
+
## Context Menu
|
|
185
|
+
|
|
186
|
+
Right-click any cell to open the context menu with these options:
|
|
187
|
+
|
|
188
|
+
| Action | Description |
|
|
189
|
+
|--------|-------------|
|
|
190
|
+
| Cut | Copy selected cell(s) and clear |
|
|
191
|
+
| Copy | Copy selected cell(s) to clipboard |
|
|
192
|
+
| Paste | Paste from clipboard |
|
|
193
|
+
| Insert Row Above | Add empty row above current |
|
|
194
|
+
| Insert Row Below | Add empty row below current |
|
|
195
|
+
| Delete Row | Remove current row |
|
|
196
|
+
| Insert Column Left | Add empty column to the left |
|
|
197
|
+
| Insert Column Right | Add empty column to the right |
|
|
198
|
+
| Delete Column | Remove current column |
|
|
199
|
+
| Clear Cell(s) | Clear selected cell(s) contents |
|
|
200
|
+
|
|
201
|
+
The context menu closes when clicking outside, pressing Escape, or selecting an action.
|
|
202
|
+
|
|
203
|
+
## Undo/Redo
|
|
204
|
+
|
|
205
|
+
The spreadsheet maintains an undo/redo history stack (up to 100 entries) for cell value changes.
|
|
206
|
+
|
|
207
|
+
- **Ctrl+Z**: Undo the last change
|
|
208
|
+
- **Ctrl+Y** or **Ctrl+Shift+Z**: Redo the last undone change
|
|
209
|
+
|
|
210
|
+
The undo history tracks the row, column, old value, and new value for each change.
|
|
211
|
+
|
|
212
|
+
## Auto-Expanding Grid
|
|
213
|
+
|
|
214
|
+
The grid auto-expands to create an infinite spreadsheet feel:
|
|
215
|
+
|
|
216
|
+
- **"+" row**: A "+" button row at the bottom appends a new empty row when clicked
|
|
217
|
+
- **"+" column**: A "+" button at the right end of the header appends a new empty column
|
|
218
|
+
- **Tab at last column**: When editing the last column and pressing Tab, a new column is added automatically
|
|
219
|
+
- **Enter at last row**: When editing the last row and pressing Enter, a new row is added automatically
|
|
220
|
+
|
|
221
|
+
### Empty State
|
|
222
|
+
|
|
223
|
+
When the data array is empty, the spreadsheet displays a centered message: "Double-click or start typing to add data". Double-clicking the empty state creates the first cell and enters edit mode.
|
|
224
|
+
|
|
225
|
+
## Keyboard Shortcuts
|
|
226
|
+
|
|
227
|
+
| Shortcut | Action |
|
|
228
|
+
|----------|--------|
|
|
229
|
+
| Arrow keys | Navigate between cells |
|
|
230
|
+
| Shift+Arrow keys | Extend selection range |
|
|
231
|
+
| Enter / F2 | Edit selected cell |
|
|
232
|
+
| Tab | Move to next cell (commits edit, auto-expands) |
|
|
233
|
+
| Shift+Tab | Move to previous cell (commits edit) |
|
|
234
|
+
| Escape | Cancel current edit |
|
|
235
|
+
| Delete / Backspace | Clear selected cell(s) |
|
|
236
|
+
| Ctrl+C | Copy selected cell(s) |
|
|
237
|
+
| Ctrl+V | Paste (supports tab-separated multi-cell paste) |
|
|
238
|
+
| Ctrl+Z | Undo |
|
|
239
|
+
| Ctrl+Y / Ctrl+Shift+Z | Redo |
|
|
240
|
+
| Any printable key | Start editing with that character (type-to-edit) |
|
|
241
|
+
|
|
242
|
+
## CSS Custom Properties
|
|
243
|
+
|
|
244
|
+
| Property | Description | Default |
|
|
245
|
+
|----------|-------------|---------|
|
|
246
|
+
| `--snice-color-border` | Grid lines and borders | `rgb(226 226 226)` |
|
|
247
|
+
| `--snice-color-background` | Cell background color | `rgb(255 255 255)` |
|
|
248
|
+
| `--snice-color-background-element` | Header and row-number background | _(theme default)_ |
|
|
249
|
+
| `--snice-color-background-hover` | Row hover and header hover | _(theme default)_ |
|
|
250
|
+
| `--snice-color-primary` | Selected cell border color | `rgb(37 99 235)` |
|
|
251
|
+
| `--snice-color-primary-subtle` | Range selection fill, header highlight | _(theme default)_ |
|
|
252
|
+
| `--snice-color-text` | Cell text color | _(theme default)_ |
|
|
253
|
+
| `--snice-color-text-secondary` | Formula bar cell reference text | _(theme default)_ |
|
|
254
|
+
| `--snice-color-text-tertiary` | Row numbers, status bar labels, add buttons | _(theme default)_ |
|
|
255
|
+
|
|
256
|
+
## Examples
|
|
257
|
+
|
|
258
|
+
### Basic Spreadsheet with Column Types
|
|
259
|
+
|
|
260
|
+
Define columns with different cell types and populate with data.
|
|
261
|
+
|
|
262
|
+
```html
|
|
263
|
+
<snice-spreadsheet id="basic-sheet"></snice-spreadsheet>
|
|
264
|
+
|
|
265
|
+
<script type="module">
|
|
266
|
+
import 'snice/components/spreadsheet/snice-spreadsheet';
|
|
267
|
+
|
|
268
|
+
const sheet = document.getElementById('basic-sheet');
|
|
269
|
+
sheet.columns = [
|
|
270
|
+
{ header: 'Name', type: 'text' },
|
|
271
|
+
{ header: 'Amount', type: 'number', width: 100 },
|
|
272
|
+
{ header: 'Status', type: 'select', options: ['Active', 'Pending', 'Done'] }
|
|
273
|
+
];
|
|
274
|
+
sheet.data = [
|
|
275
|
+
['Alice', 100, 'Active'],
|
|
276
|
+
['Bob', 200, 'Pending'],
|
|
277
|
+
['Charlie', 150, 'Done']
|
|
278
|
+
];
|
|
279
|
+
</script>
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Spreadsheet with Formulas
|
|
283
|
+
|
|
284
|
+
Use formula cells to calculate totals and summaries.
|
|
285
|
+
|
|
286
|
+
```html
|
|
287
|
+
<snice-spreadsheet id="formula-sheet"></snice-spreadsheet>
|
|
288
|
+
|
|
289
|
+
<script type="module">
|
|
290
|
+
const sheet = document.getElementById('formula-sheet');
|
|
291
|
+
sheet.columns = [
|
|
292
|
+
{ header: 'Item', type: 'text', width: 150 },
|
|
293
|
+
{ header: 'Q1', type: 'number', width: 80 },
|
|
294
|
+
{ header: 'Q2', type: 'number', width: 80 },
|
|
295
|
+
{ header: 'Q3', type: 'number', width: 80 },
|
|
296
|
+
{ header: 'Q4', type: 'number', width: 80 }
|
|
297
|
+
];
|
|
298
|
+
sheet.data = [
|
|
299
|
+
['Revenue', 1200, 1400, 1100, 1600],
|
|
300
|
+
['Expenses', 800, 900, 750, 1000],
|
|
301
|
+
['Profit', '=SUM(B1:B1)-SUM(B2:B2)', '=SUM(C1:C1)-SUM(C2:C2)', '=SUM(D1:D1)-SUM(D2:D2)', '=SUM(E1:E1)-SUM(E2:E2)'],
|
|
302
|
+
['Average', '=AVG(B1:B2)', '=AVG(C1:C2)', '=AVG(D1:D2)', '=AVG(E1:E2)']
|
|
303
|
+
];
|
|
304
|
+
</script>
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Read-Only Spreadsheet
|
|
308
|
+
|
|
309
|
+
Display tabular data in a non-editable spreadsheet.
|
|
310
|
+
|
|
311
|
+
```html
|
|
312
|
+
<snice-spreadsheet id="readonly-sheet" readonly></snice-spreadsheet>
|
|
313
|
+
|
|
314
|
+
<script type="module">
|
|
315
|
+
const sheet = document.getElementById('readonly-sheet');
|
|
316
|
+
sheet.columns = [
|
|
317
|
+
{ header: 'Employee', type: 'text', width: 150 },
|
|
318
|
+
{ header: 'Department', type: 'text', width: 120 },
|
|
319
|
+
{ header: 'Salary', type: 'number', width: 100 }
|
|
320
|
+
];
|
|
321
|
+
sheet.data = [
|
|
322
|
+
['Jane Doe', 'Engineering', 95000],
|
|
323
|
+
['John Smith', 'Marketing', 78000],
|
|
324
|
+
['Lisa Chen', 'Engineering', 102000],
|
|
325
|
+
['Total', '', '=SUM(C1:C3)']
|
|
326
|
+
];
|
|
327
|
+
</script>
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Listening for Cell Changes
|
|
331
|
+
|
|
332
|
+
Track edits by listening for the `cell-change` event.
|
|
333
|
+
|
|
334
|
+
```html
|
|
335
|
+
<snice-spreadsheet id="tracked-sheet"></snice-spreadsheet>
|
|
336
|
+
<p id="change-log">Edit a cell to see changes here.</p>
|
|
337
|
+
|
|
338
|
+
<script type="module">
|
|
339
|
+
import type { SniceSpreadsheetElement } from 'snice/components/spreadsheet/snice-spreadsheet.types';
|
|
340
|
+
|
|
341
|
+
const sheet = document.getElementById('tracked-sheet') as SniceSpreadsheetElement;
|
|
342
|
+
const log = document.getElementById('change-log');
|
|
343
|
+
|
|
344
|
+
sheet.columns = [
|
|
345
|
+
{ header: 'Product', type: 'text' },
|
|
346
|
+
{ header: 'Price', type: 'number', width: 80 },
|
|
347
|
+
{ header: 'In Stock', type: 'boolean' }
|
|
348
|
+
];
|
|
349
|
+
sheet.data = [
|
|
350
|
+
['Widget', 9.99, true],
|
|
351
|
+
['Gadget', 24.99, false],
|
|
352
|
+
['Gizmo', 14.99, true]
|
|
353
|
+
];
|
|
354
|
+
|
|
355
|
+
sheet.addEventListener('cell-change', (e) => {
|
|
356
|
+
log.textContent = `Cell [${e.detail.row}, ${e.detail.col}] changed from "${e.detail.oldValue}" to "${e.detail.value}"`;
|
|
357
|
+
});
|
|
358
|
+
</script>
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Date and Boolean Columns
|
|
362
|
+
|
|
363
|
+
Use specialized cell types for dates and checkboxes.
|
|
364
|
+
|
|
365
|
+
```html
|
|
366
|
+
<snice-spreadsheet id="typed-sheet"></snice-spreadsheet>
|
|
367
|
+
|
|
368
|
+
<script type="module">
|
|
369
|
+
const sheet = document.getElementById('typed-sheet');
|
|
370
|
+
sheet.columns = [
|
|
371
|
+
{ header: 'Task', type: 'text', width: 200 },
|
|
372
|
+
{ header: 'Due Date', type: 'date', width: 120 },
|
|
373
|
+
{ header: 'Complete', type: 'boolean', width: 80 }
|
|
374
|
+
];
|
|
375
|
+
sheet.data = [
|
|
376
|
+
['Design mockups', '2026-03-01', false],
|
|
377
|
+
['Write tests', '2026-03-05', true],
|
|
378
|
+
['Deploy to staging', '2026-03-10', false]
|
|
379
|
+
];
|
|
380
|
+
</script>
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
## Accessibility
|
|
384
|
+
|
|
385
|
+
- **Keyboard navigation**: Full keyboard support for navigating, editing, and selecting cells
|
|
386
|
+
- **Focus management**: Selected cell receives visible focus indicator with 2px blue border
|
|
387
|
+
- **Column sorting**: Sort buttons in headers are keyboard accessible
|
|
388
|
+
- **Edit mode**: Enter/F2 activates cell editing, Escape cancels
|
|
389
|
+
- **Type-to-edit**: Simply start typing to begin editing the selected cell
|
|
390
|
+
- **Undo/Redo**: Ctrl+Z and Ctrl+Y provide full change history navigation
|
|
391
|
+
|
|
392
|
+
## Browser Support
|
|
393
|
+
|
|
394
|
+
- Modern browsers (Chrome, Firefox, Safari, Edge)
|
|
395
|
+
- Requires Custom Elements v1 and Shadow DOM support
|
|
396
|
+
|
|
397
|
+
## Best Practices
|
|
398
|
+
|
|
399
|
+
1. **Define column types**: Setting `type` on columns enables appropriate editors (checkboxes for boolean, date pickers for date, dropdowns for select)
|
|
400
|
+
2. **Use formulas for computed cells**: Avoid duplicating logic in your application when the spreadsheet can calculate values
|
|
401
|
+
3. **Set column widths**: Explicit widths prevent layout shifts and improve readability
|
|
402
|
+
4. **Pass data as property**: Use `sheet.data = [...]` rather than setting via attribute
|
|
403
|
+
5. **Use readonly for display**: Set `readonly` when the spreadsheet is for viewing only
|
|
404
|
+
6. **Limit data size**: For very large datasets, consider pagination or virtual scrolling
|
|
405
|
+
7. **Leverage undo/redo**: Users can undo up to 100 changes; avoid implementing your own undo logic
|