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,169 @@
|
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/flip-card.md instead)
|
|
2
|
+
|
|
3
|
+
# Flip Card Component
|
|
4
|
+
|
|
5
|
+
The flip card component creates a two-sided card with a CSS 3D flip animation. Content is placed in front and back slots, and the card can be flipped by clicking, keyboard interaction, or programmatically.
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
- [Basic Usage](#basic-usage)
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Slots](#slots)
|
|
11
|
+
- [Methods](#methods)
|
|
12
|
+
- [Events](#events)
|
|
13
|
+
- [CSS Custom Properties](#css-custom-properties)
|
|
14
|
+
- [Examples](#examples)
|
|
15
|
+
- [Accessibility](#accessibility)
|
|
16
|
+
|
|
17
|
+
## Basic Usage
|
|
18
|
+
|
|
19
|
+
```html
|
|
20
|
+
<snice-flip-card style="width: 300px; height: 200px;">
|
|
21
|
+
<div slot="front">Front side</div>
|
|
22
|
+
<div slot="back">Back side</div>
|
|
23
|
+
</snice-flip-card>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import 'snice/components/flip-card/snice-flip-card';
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Properties
|
|
31
|
+
|
|
32
|
+
| Property | Type | Default | Description |
|
|
33
|
+
|----------|------|---------|-------------|
|
|
34
|
+
| `flipped` | `boolean` | `false` | Whether the back face is currently showing |
|
|
35
|
+
| `clickToFlip` (attr: `click-to-flip`) | `boolean` | `true` | Enable click and keyboard interaction to toggle the card |
|
|
36
|
+
| `direction` | `'horizontal' \| 'vertical'` | `'horizontal'` | Flip axis direction |
|
|
37
|
+
| `duration` | `number` | `600` | Flip animation duration in milliseconds |
|
|
38
|
+
|
|
39
|
+
## Slots
|
|
40
|
+
|
|
41
|
+
| Name | Description |
|
|
42
|
+
|------|-------------|
|
|
43
|
+
| `front` | Content displayed on the front face of the card |
|
|
44
|
+
| `back` | Content displayed on the back face of the card |
|
|
45
|
+
|
|
46
|
+
## Methods
|
|
47
|
+
|
|
48
|
+
| Method | Arguments | Description |
|
|
49
|
+
|--------|-----------|-------------|
|
|
50
|
+
| `flip()` | -- | Toggle between front and back faces |
|
|
51
|
+
| `flipTo()` | `side: 'front' \| 'back'` | Flip to a specific side |
|
|
52
|
+
|
|
53
|
+
## Events
|
|
54
|
+
|
|
55
|
+
| Event | Detail | Description |
|
|
56
|
+
|-------|--------|-------------|
|
|
57
|
+
| `flip-change` | `{ flipped: boolean, side: 'front' \| 'back' }` | Fired when the card flips to a different side |
|
|
58
|
+
|
|
59
|
+
## CSS Custom Properties
|
|
60
|
+
|
|
61
|
+
| Property | Description |
|
|
62
|
+
|----------|-------------|
|
|
63
|
+
| `--flip-duration` | Animation duration (automatically set from the `duration` property) |
|
|
64
|
+
|
|
65
|
+
## Examples
|
|
66
|
+
|
|
67
|
+
### Horizontal Flip (Default)
|
|
68
|
+
|
|
69
|
+
Click the card to flip it horizontally around the Y axis.
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<snice-flip-card style="width: 300px; height: 200px;">
|
|
73
|
+
<div slot="front" style="display: flex; align-items: center; justify-content: center; background: #3b82f6; color: white; height: 100%; border-radius: 8px;">
|
|
74
|
+
Click to flip
|
|
75
|
+
</div>
|
|
76
|
+
<div slot="back" style="display: flex; align-items: center; justify-content: center; background: #10b981; color: white; height: 100%; border-radius: 8px;">
|
|
77
|
+
Back side!
|
|
78
|
+
</div>
|
|
79
|
+
</snice-flip-card>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Vertical Flip
|
|
83
|
+
|
|
84
|
+
Use `direction="vertical"` to flip the card around the X axis.
|
|
85
|
+
|
|
86
|
+
```html
|
|
87
|
+
<snice-flip-card direction="vertical" style="width: 300px; height: 200px;">
|
|
88
|
+
<div slot="front" style="padding: 2rem; background: #f3f4f6; height: 100%; box-sizing: border-box;">
|
|
89
|
+
<h3>Question</h3>
|
|
90
|
+
<p>What is the capital of France?</p>
|
|
91
|
+
</div>
|
|
92
|
+
<div slot="back" style="padding: 2rem; background: #dbeafe; height: 100%; box-sizing: border-box;">
|
|
93
|
+
<h3>Answer</h3>
|
|
94
|
+
<p>Paris</p>
|
|
95
|
+
</div>
|
|
96
|
+
</snice-flip-card>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Custom Duration
|
|
100
|
+
|
|
101
|
+
Set `duration` to control the speed of the flip animation.
|
|
102
|
+
|
|
103
|
+
```html
|
|
104
|
+
<!-- Slow flip -->
|
|
105
|
+
<snice-flip-card duration="1200" style="width: 250px; height: 180px;">
|
|
106
|
+
<div slot="front">Slow flip (1.2s)</div>
|
|
107
|
+
<div slot="back">Back side</div>
|
|
108
|
+
</snice-flip-card>
|
|
109
|
+
|
|
110
|
+
<!-- Fast flip -->
|
|
111
|
+
<snice-flip-card duration="200" style="width: 250px; height: 180px;">
|
|
112
|
+
<div slot="front">Fast flip (0.2s)</div>
|
|
113
|
+
<div slot="back">Back side</div>
|
|
114
|
+
</snice-flip-card>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Programmatic Control
|
|
118
|
+
|
|
119
|
+
Disable click-to-flip and control the card from JavaScript.
|
|
120
|
+
|
|
121
|
+
```html
|
|
122
|
+
<snice-flip-card id="controlled-card" click-to-flip="false" style="width: 300px; height: 200px;">
|
|
123
|
+
<div slot="front" style="padding: 1.5rem;">
|
|
124
|
+
<h3>Product Details</h3>
|
|
125
|
+
<p>Wireless Headphones - $79.99</p>
|
|
126
|
+
</div>
|
|
127
|
+
<div slot="back" style="padding: 1.5rem;">
|
|
128
|
+
<h3>Specifications</h3>
|
|
129
|
+
<p>Battery: 30 hours, Bluetooth 5.0, Weight: 250g</p>
|
|
130
|
+
</div>
|
|
131
|
+
</snice-flip-card>
|
|
132
|
+
|
|
133
|
+
<div style="margin-top: 1rem; display: flex; gap: 0.5rem;">
|
|
134
|
+
<button onclick="document.getElementById('controlled-card').flipTo('front')">Show Front</button>
|
|
135
|
+
<button onclick="document.getElementById('controlled-card').flipTo('back')">Show Back</button>
|
|
136
|
+
<button onclick="document.getElementById('controlled-card').flip()">Toggle</button>
|
|
137
|
+
</div>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Flashcard Study Deck
|
|
141
|
+
|
|
142
|
+
Build a flashcard-style study app by listening to flip events.
|
|
143
|
+
|
|
144
|
+
```html
|
|
145
|
+
<snice-flip-card id="flashcard" direction="vertical" style="width: 350px; height: 250px;">
|
|
146
|
+
<div slot="front" style="display: flex; align-items: center; justify-content: center; font-size: 1.25rem; padding: 2rem; text-align: center;">
|
|
147
|
+
<strong>What does HTML stand for?</strong>
|
|
148
|
+
</div>
|
|
149
|
+
<div slot="back" style="display: flex; align-items: center; justify-content: center; font-size: 1.25rem; padding: 2rem; text-align: center;">
|
|
150
|
+
HyperText Markup Language
|
|
151
|
+
</div>
|
|
152
|
+
</snice-flip-card>
|
|
153
|
+
|
|
154
|
+
<script type="module">
|
|
155
|
+
import 'snice/components/flip-card/snice-flip-card';
|
|
156
|
+
|
|
157
|
+
const card = document.getElementById('flashcard');
|
|
158
|
+
card.addEventListener('flip-change', (e) => {
|
|
159
|
+
console.log(`Now showing: ${e.detail.side}`);
|
|
160
|
+
});
|
|
161
|
+
</script>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Accessibility
|
|
165
|
+
|
|
166
|
+
- **Keyboard support**: When `click-to-flip` is enabled, pressing Enter or Space toggles the card
|
|
167
|
+
- **Focus management**: The card is focusable and has `tabindex="0"` when click-to-flip is enabled
|
|
168
|
+
- **ARIA attributes**: The component conveys state for assistive technologies
|
|
169
|
+
- **Visible content**: Both sides of the card accept arbitrary slotted content, allowing for accessible markup on each face
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/flow.md instead)
|
|
2
|
+
|
|
3
|
+
# Flow
|
|
4
|
+
`<snice-flow>`
|
|
5
|
+
|
|
6
|
+
A node-based flow/diagram editor component for building visual workflows, data pipelines, and node graphs. Features draggable nodes with input/output ports, bezier curve edges, zoom/pan canvas, snap-to-grid, and a minimap overview.
|
|
7
|
+
|
|
8
|
+
## Basic Usage
|
|
9
|
+
|
|
10
|
+
```typescript
|
|
11
|
+
import 'snice/components/flow/snice-flow';
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<snice-flow id="flow" snap-to-grid minimap style="height: 450px;"></snice-flow>
|
|
16
|
+
|
|
17
|
+
<script type="module">
|
|
18
|
+
const flow = document.getElementById('flow');
|
|
19
|
+
flow.nodes = [
|
|
20
|
+
{ id: 'start', x: 50, y: 100, label: 'Start',
|
|
21
|
+
outputs: [{ id: 'out', label: 'Out' }] },
|
|
22
|
+
{ id: 'process', x: 300, y: 80, label: 'Process',
|
|
23
|
+
inputs: [{ id: 'in', label: 'In' }],
|
|
24
|
+
outputs: [{ id: 'out', label: 'Out' }] },
|
|
25
|
+
{ id: 'end', x: 550, y: 100, label: 'End',
|
|
26
|
+
inputs: [{ id: 'in', label: 'In' }] },
|
|
27
|
+
];
|
|
28
|
+
flow.edges = [
|
|
29
|
+
{ id: 'e1', source: 'start', target: 'process',
|
|
30
|
+
sourcePort: 'out', targetPort: 'in' },
|
|
31
|
+
{ id: 'e2', source: 'process', target: 'end',
|
|
32
|
+
sourcePort: 'out', targetPort: 'in' },
|
|
33
|
+
];
|
|
34
|
+
</script>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Importing
|
|
38
|
+
|
|
39
|
+
**ESM (bundler)**
|
|
40
|
+
```typescript
|
|
41
|
+
import 'snice/components/flow/snice-flow';
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**CDN**
|
|
45
|
+
```html
|
|
46
|
+
<script src="snice-runtime.min.js"></script>
|
|
47
|
+
<script src="snice-flow.min.js"></script>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Examples
|
|
51
|
+
|
|
52
|
+
### Data Pipeline
|
|
53
|
+
|
|
54
|
+
Build a data processing pipeline with typed nodes and colored headers:
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<snice-flow id="pipeline" snap-to-grid minimap style="height: 500px;"></snice-flow>
|
|
58
|
+
|
|
59
|
+
<script type="module">
|
|
60
|
+
const flow = document.getElementById('pipeline');
|
|
61
|
+
flow.nodes = [
|
|
62
|
+
{
|
|
63
|
+
id: 'input', x: 40, y: 40, label: 'User Input',
|
|
64
|
+
type: 'trigger', color: 'rgb(22 163 74)',
|
|
65
|
+
outputs: [{ id: 'data', label: 'Data' }],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 'validate', x: 280, y: 40, label: 'Validate',
|
|
69
|
+
type: 'transform', color: 'rgb(37 99 235)',
|
|
70
|
+
inputs: [{ id: 'in', label: 'Input' }],
|
|
71
|
+
outputs: [{ id: 'valid', label: 'Valid' }, { id: 'error', label: 'Error' }],
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'save', x: 520, y: 40, label: 'Save to DB',
|
|
75
|
+
type: 'action', color: 'rgb(147 51 234)',
|
|
76
|
+
inputs: [{ id: 'data', label: 'Data' }],
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
flow.edges = [
|
|
80
|
+
{ id: 'e1', source: 'input', target: 'validate',
|
|
81
|
+
sourcePort: 'data', targetPort: 'in' },
|
|
82
|
+
{ id: 'e2', source: 'validate', target: 'save',
|
|
83
|
+
sourcePort: 'valid', targetPort: 'data' },
|
|
84
|
+
];
|
|
85
|
+
</script>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Animated Edges
|
|
89
|
+
|
|
90
|
+
Add `animated: true` to an edge for a flowing dashed animation:
|
|
91
|
+
|
|
92
|
+
```javascript
|
|
93
|
+
flow.edges = [
|
|
94
|
+
{ id: 'e1', source: 'a', target: 'b',
|
|
95
|
+
sourcePort: 'out', targetPort: 'in',
|
|
96
|
+
animated: true, color: 'rgb(220 38 38)' },
|
|
97
|
+
];
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Programmatic API
|
|
101
|
+
|
|
102
|
+
```javascript
|
|
103
|
+
// Add nodes and edges dynamically
|
|
104
|
+
flow.addNode({
|
|
105
|
+
id: 'new-node', x: 200, y: 200, label: 'New Node',
|
|
106
|
+
inputs: [{ id: 'in', label: 'In' }],
|
|
107
|
+
outputs: [{ id: 'out', label: 'Out' }],
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
flow.addEdge({
|
|
111
|
+
id: 'new-edge', source: 'start', target: 'new-node',
|
|
112
|
+
sourcePort: 'out', targetPort: 'in',
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Remove
|
|
116
|
+
flow.removeNode('new-node'); // also removes connected edges
|
|
117
|
+
flow.removeEdge('new-edge');
|
|
118
|
+
|
|
119
|
+
// Fit all nodes into view
|
|
120
|
+
flow.fitView();
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Drawing Edges
|
|
124
|
+
|
|
125
|
+
Users can create connections by clicking and dragging from a port dot on one node to a port dot on another node. A preview bezier curve shows while dragging.
|
|
126
|
+
|
|
127
|
+
## Properties
|
|
128
|
+
|
|
129
|
+
| Property | Type | Default | Attribute | Description |
|
|
130
|
+
|----------|------|---------|-----------|-------------|
|
|
131
|
+
| `nodes` | `FlowNode[]` | `[]` | - | Array of node definitions (set via JS) |
|
|
132
|
+
| `edges` | `FlowEdge[]` | `[]` | - | Array of edge definitions (set via JS) |
|
|
133
|
+
| `snapToGrid` | `boolean` | `true` | `snap-to-grid` | Snap node positions to grid |
|
|
134
|
+
| `gridSize` | `number` | `20` | `grid-size` | Grid spacing in pixels |
|
|
135
|
+
| `zoomEnabled` | `boolean` | `true` | `zoom-enabled` | Enable mouse wheel zoom |
|
|
136
|
+
| `panEnabled` | `boolean` | `true` | `pan-enabled` | Enable background pan |
|
|
137
|
+
| `minimap` | `boolean` | `true` | `minimap` | Show minimap overview |
|
|
138
|
+
| `editable` | `boolean` | `true` | `editable` | Allow drawing new edges |
|
|
139
|
+
|
|
140
|
+
## Types
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
interface FlowNode {
|
|
144
|
+
id: string;
|
|
145
|
+
x: number;
|
|
146
|
+
y: number;
|
|
147
|
+
type?: string; // Shown as small label above title
|
|
148
|
+
data?: Record<string, unknown>; // Custom data payload
|
|
149
|
+
label?: string; // Node title
|
|
150
|
+
width?: number; // Default: 160
|
|
151
|
+
height?: number; // Default: 80
|
|
152
|
+
inputs?: FlowPort[]; // Input ports (left side)
|
|
153
|
+
outputs?: FlowPort[]; // Output ports (right side)
|
|
154
|
+
color?: string; // Header background color
|
|
155
|
+
selected?: boolean;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
interface FlowPort {
|
|
159
|
+
id: string;
|
|
160
|
+
label?: string;
|
|
161
|
+
type?: string;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
interface FlowEdge {
|
|
165
|
+
id: string;
|
|
166
|
+
source: string; // Source node id
|
|
167
|
+
target: string; // Target node id
|
|
168
|
+
sourcePort?: string; // Source port id
|
|
169
|
+
targetPort?: string; // Target port id
|
|
170
|
+
label?: string; // Edge label (shown at midpoint)
|
|
171
|
+
color?: string; // Custom stroke color
|
|
172
|
+
animated?: boolean; // Dashed animated stroke
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Methods
|
|
177
|
+
|
|
178
|
+
| Method | Description |
|
|
179
|
+
|--------|-------------|
|
|
180
|
+
| `addNode(node)` | Add a node to the canvas |
|
|
181
|
+
| `removeNode(id)` | Remove a node and its connected edges |
|
|
182
|
+
| `addEdge(edge)` | Add an edge between two ports |
|
|
183
|
+
| `removeEdge(id)` | Remove an edge |
|
|
184
|
+
| `fitView()` | Auto-zoom to fit all nodes in view |
|
|
185
|
+
|
|
186
|
+
## Events
|
|
187
|
+
|
|
188
|
+
| Event | Detail | Description |
|
|
189
|
+
|-------|--------|-------------|
|
|
190
|
+
| `node-drag` | `{ node, x, y }` | Node was dragged to new position |
|
|
191
|
+
| `node-select` | `{ node }` | Node selected (null when deselected) |
|
|
192
|
+
| `edge-connect` | `{ edge }` | New edge created by dragging between ports |
|
|
193
|
+
| `edge-disconnect` | `{ edge }` | Edge removed |
|
|
194
|
+
| `canvas-click` | `{ x, y }` | Background canvas clicked |
|
|
195
|
+
|
|
196
|
+
## Interaction
|
|
197
|
+
|
|
198
|
+
- **Drag nodes**: Click and drag a node to move it. Snaps to grid if enabled.
|
|
199
|
+
- **Draw edges**: Click and drag from a port dot to another port dot.
|
|
200
|
+
- **Pan canvas**: Click and drag on the background.
|
|
201
|
+
- **Zoom**: Mouse wheel to zoom in/out around cursor.
|
|
202
|
+
- **Select node**: Click a node to select it (blue highlight).
|
|
203
|
+
- **Select edge**: Click an edge to select it.
|
|
204
|
+
- **Deselect**: Click on the canvas background.
|
|
205
|
+
|
|
206
|
+
## CSS Custom Properties
|
|
207
|
+
|
|
208
|
+
The component uses standard snice theme tokens with fallbacks. Override with custom properties on the host element.
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/funnel.md instead)
|
|
2
|
+
|
|
1
3
|
# Funnel Component
|
|
2
4
|
|
|
3
5
|
The funnel component renders an SVG-based funnel/conversion chart, ideal for visualizing pipeline stages, conversion funnels, and drop-off analysis. Each stage is rendered as a trapezoid shape that narrows proportionally to its value.
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/gantt.md instead)
|
|
2
|
+
|
|
3
|
+
# Gantt Component
|
|
4
|
+
|
|
5
|
+
The Gantt component displays an interactive Gantt chart for project timeline visualization. It features draggable and resizable task bars, multiple zoom levels, task grouping, progress indicators, dependency arrows, and a today line.
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
- [Basic Usage](#basic-usage)
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Methods](#methods)
|
|
11
|
+
- [Events](#events)
|
|
12
|
+
- [Examples](#examples)
|
|
13
|
+
- [Accessibility](#accessibility)
|
|
14
|
+
|
|
15
|
+
## Basic Usage
|
|
16
|
+
|
|
17
|
+
```html
|
|
18
|
+
<snice-gantt></snice-gantt>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import 'snice/components/gantt/snice-gantt';
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Properties
|
|
26
|
+
|
|
27
|
+
| Property | Type | Default | Description |
|
|
28
|
+
|----------|------|---------|-------------|
|
|
29
|
+
| `tasks` | `GanttTask[]` | `[]` | Array of task objects (set via JavaScript) |
|
|
30
|
+
| `zoom` | `'day' \| 'week' \| 'month'` | `'week'` | Timeline zoom level |
|
|
31
|
+
| `showDependencies` (attr: `show-dependencies`) | `boolean` | `true` | Render dependency arrows between tasks |
|
|
32
|
+
|
|
33
|
+
### GanttTask Type
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
interface GanttTask {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
start: string; // ISO date (YYYY-MM-DD)
|
|
40
|
+
end: string; // ISO date (YYYY-MM-DD)
|
|
41
|
+
progress?: number; // 0-100 completion percentage
|
|
42
|
+
dependencies?: string[];// IDs of prerequisite tasks
|
|
43
|
+
color?: string; // Bar color override
|
|
44
|
+
group?: string; // Group name for visual grouping
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Methods
|
|
49
|
+
|
|
50
|
+
| Method | Arguments | Description |
|
|
51
|
+
|--------|-----------|-------------|
|
|
52
|
+
| `scrollToDate()` | `date: string` | Scroll the timeline to center on a specific date (ISO format) |
|
|
53
|
+
| `scrollToTask()` | `id: string` | Scroll the timeline to a specific task's start date |
|
|
54
|
+
|
|
55
|
+
## Events
|
|
56
|
+
|
|
57
|
+
| Event | Detail | Description |
|
|
58
|
+
|-------|--------|-------------|
|
|
59
|
+
| `task-click` | `{ task: GanttTask }` | Fired when a task bar or task name is clicked |
|
|
60
|
+
| `task-resize` | `{ task: GanttTask, start: string, end: string }` | Fired when a task is resized by dragging its left or right handles |
|
|
61
|
+
| `task-move` | `{ task: GanttTask, start: string, end: string }` | Fired when a task bar is dragged to a new position |
|
|
62
|
+
| `task-link` | `{ source: string, target: string }` | Fired when a dependency link is created between tasks |
|
|
63
|
+
|
|
64
|
+
## Examples
|
|
65
|
+
|
|
66
|
+
### Basic Project Timeline
|
|
67
|
+
|
|
68
|
+
Display a simple list of tasks on a weekly timeline.
|
|
69
|
+
|
|
70
|
+
```html
|
|
71
|
+
<snice-gantt id="project-gantt" zoom="week"></snice-gantt>
|
|
72
|
+
|
|
73
|
+
<script type="module">
|
|
74
|
+
import 'snice/components/gantt/snice-gantt';
|
|
75
|
+
|
|
76
|
+
const gantt = document.getElementById('project-gantt');
|
|
77
|
+
gantt.tasks = [
|
|
78
|
+
{ id: '1', name: 'Research', start: '2026-03-01', end: '2026-03-05', progress: 100 },
|
|
79
|
+
{ id: '2', name: 'Design', start: '2026-03-03', end: '2026-03-10', progress: 75 },
|
|
80
|
+
{ id: '3', name: 'Development', start: '2026-03-08', end: '2026-03-21', progress: 30 },
|
|
81
|
+
{ id: '4', name: 'Testing', start: '2026-03-18', end: '2026-03-25', progress: 0 },
|
|
82
|
+
{ id: '5', name: 'Launch', start: '2026-03-25', end: '2026-03-27', progress: 0 }
|
|
83
|
+
];
|
|
84
|
+
</script>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Grouped Tasks with Dependencies
|
|
88
|
+
|
|
89
|
+
Use the `group` field to visually group related tasks and `dependencies` to draw arrows between them.
|
|
90
|
+
|
|
91
|
+
```html
|
|
92
|
+
<snice-gantt id="grouped-gantt" zoom="week" show-dependencies></snice-gantt>
|
|
93
|
+
|
|
94
|
+
<script type="module">
|
|
95
|
+
const gantt = document.getElementById('grouped-gantt');
|
|
96
|
+
gantt.tasks = [
|
|
97
|
+
{ id: '1', name: 'Requirements', start: '2026-04-01', end: '2026-04-05', progress: 100, group: 'Planning' },
|
|
98
|
+
{ id: '2', name: 'Architecture', start: '2026-04-03', end: '2026-04-08', progress: 80, group: 'Planning', dependencies: ['1'] },
|
|
99
|
+
{ id: '3', name: 'Frontend', start: '2026-04-08', end: '2026-04-18', progress: 40, group: 'Development', dependencies: ['2'] },
|
|
100
|
+
{ id: '4', name: 'Backend', start: '2026-04-08', end: '2026-04-20', progress: 35, group: 'Development', dependencies: ['2'] },
|
|
101
|
+
{ id: '5', name: 'Integration', start: '2026-04-18', end: '2026-04-25', progress: 0, group: 'QA', dependencies: ['3', '4'] },
|
|
102
|
+
{ id: '6', name: 'Release', start: '2026-04-25', end: '2026-04-28', progress: 0, group: 'QA', dependencies: ['5'] }
|
|
103
|
+
];
|
|
104
|
+
</script>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Custom Task Colors
|
|
108
|
+
|
|
109
|
+
Use the `color` field on individual tasks to override the default bar color.
|
|
110
|
+
|
|
111
|
+
```html
|
|
112
|
+
<snice-gantt id="colored-gantt" zoom="week"></snice-gantt>
|
|
113
|
+
|
|
114
|
+
<script type="module">
|
|
115
|
+
const gantt = document.getElementById('colored-gantt');
|
|
116
|
+
gantt.tasks = [
|
|
117
|
+
{ id: '1', name: 'Critical Path', start: '2026-05-01', end: '2026-05-10', color: 'rgb(220 38 38)', progress: 50 },
|
|
118
|
+
{ id: '2', name: 'Normal Task', start: '2026-05-03', end: '2026-05-12', progress: 25 },
|
|
119
|
+
{ id: '3', name: 'Milestone', start: '2026-05-08', end: '2026-05-09', color: 'rgb(234 88 12)', progress: 0 },
|
|
120
|
+
{ id: '4', name: 'Low Priority', start: '2026-05-10', end: '2026-05-20', color: 'rgb(22 163 74)', progress: 10 }
|
|
121
|
+
];
|
|
122
|
+
</script>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Zoom Levels
|
|
126
|
+
|
|
127
|
+
Toggle between day, week, and month views using the `zoom` property or the built-in header toggle buttons.
|
|
128
|
+
|
|
129
|
+
```html
|
|
130
|
+
<snice-gantt id="zoom-gantt" zoom="month"></snice-gantt>
|
|
131
|
+
|
|
132
|
+
<div style="margin-top: 1rem; display: flex; gap: 0.5rem;">
|
|
133
|
+
<button onclick="document.getElementById('zoom-gantt').zoom = 'day'">Day</button>
|
|
134
|
+
<button onclick="document.getElementById('zoom-gantt').zoom = 'week'">Week</button>
|
|
135
|
+
<button onclick="document.getElementById('zoom-gantt').zoom = 'month'">Month</button>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
<script type="module">
|
|
139
|
+
const gantt = document.getElementById('zoom-gantt');
|
|
140
|
+
gantt.tasks = [
|
|
141
|
+
{ id: '1', name: 'Phase 1', start: '2026-01-01', end: '2026-03-31', progress: 100, group: 'H1' },
|
|
142
|
+
{ id: '2', name: 'Phase 2', start: '2026-04-01', end: '2026-06-30', progress: 60, group: 'H1' },
|
|
143
|
+
{ id: '3', name: 'Phase 3', start: '2026-07-01', end: '2026-09-30', progress: 10, group: 'H2' },
|
|
144
|
+
{ id: '4', name: 'Phase 4', start: '2026-10-01', end: '2026-12-31', progress: 0, group: 'H2' }
|
|
145
|
+
];
|
|
146
|
+
</script>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Event Handling
|
|
150
|
+
|
|
151
|
+
Listen for task interactions to update your application state or sync with a backend.
|
|
152
|
+
|
|
153
|
+
```html
|
|
154
|
+
<snice-gantt id="event-gantt" zoom="week" show-dependencies></snice-gantt>
|
|
155
|
+
|
|
156
|
+
<script type="module">
|
|
157
|
+
const gantt = document.getElementById('event-gantt');
|
|
158
|
+
gantt.tasks = [
|
|
159
|
+
{ id: '1', name: 'Design', start: '2026-03-01', end: '2026-03-07', progress: 80 },
|
|
160
|
+
{ id: '2', name: 'Develop', start: '2026-03-05', end: '2026-03-15', dependencies: ['1'] }
|
|
161
|
+
];
|
|
162
|
+
|
|
163
|
+
gantt.addEventListener('task-click', (e) => {
|
|
164
|
+
console.log('Clicked task:', e.detail.task.name);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
gantt.addEventListener('task-move', (e) => {
|
|
168
|
+
console.log('Moved task:', e.detail.task.name, 'to', e.detail.start, '-', e.detail.end);
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
gantt.addEventListener('task-resize', (e) => {
|
|
172
|
+
console.log('Resized task:', e.detail.task.name, 'new dates:', e.detail.start, '-', e.detail.end);
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
// Scroll to a specific date on load
|
|
176
|
+
gantt.scrollToDate('2026-03-01');
|
|
177
|
+
</script>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Accessibility
|
|
181
|
+
|
|
182
|
+
- **Draggable tasks**: Task bars can be dragged to move their dates and resized via left/right edge handles
|
|
183
|
+
- **Today indicator**: A red vertical line marks the current date on the timeline
|
|
184
|
+
- **Zoom controls**: The header provides Day/Week/Month toggle buttons for quick zoom changes
|
|
185
|
+
- **Task grouping**: Tasks with the same `group` value are visually grouped in the sidebar for organization
|
|
186
|
+
- **Progress indicators**: Each task bar displays a filled portion representing its completion percentage
|
|
187
|
+
- **Dependency arrows**: When `show-dependencies` is enabled, arrows connect tasks to their prerequisites
|
package/docs/components/gauge.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/gauge.md instead)
|
|
2
|
+
|
|
1
3
|
# Gauge Component
|
|
2
4
|
|
|
3
5
|
The gauge component renders an SVG-based semicircle gauge/meter chart, ideal for dashboards and data visualization. It displays a value within a range using an animated arc fill with optional label text.
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/heatmap.md instead)
|
|
2
|
+
|
|
1
3
|
# Heatmap Component
|
|
2
4
|
|
|
3
5
|
The heatmap component displays a GitHub-style contribution calendar heatmap. It visualizes data as a grid of colored cells organized by week and day, with intensity levels indicating the magnitude of each data point.
|
package/docs/components/image.md
CHANGED