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
|
@@ -1,101 +1,83 @@
|
|
|
1
|
-
#
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/treemap.md instead)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# Treemap
|
|
4
|
+
`<snice-treemap>`
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
- [Basic Usage](#basic-usage)
|
|
7
|
-
- [Properties](#properties)
|
|
8
|
-
- [Methods](#methods)
|
|
9
|
-
- [Events](#events)
|
|
10
|
-
- [Examples](#examples)
|
|
11
|
-
- [Accessibility](#accessibility)
|
|
12
|
-
- [Best Practices](#best-practices)
|
|
6
|
+
Renders hierarchical data as nested rectangles using a squarified treemap layout. Each rectangle's area is proportional to its value.
|
|
13
7
|
|
|
14
8
|
## Basic Usage
|
|
15
9
|
|
|
16
|
-
```
|
|
17
|
-
|
|
10
|
+
```typescript
|
|
11
|
+
import 'snice/components/treemap/snice-treemap';
|
|
12
|
+
```
|
|
18
13
|
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
```html
|
|
15
|
+
<snice-treemap id="usage" show-labels show-values style="height: 400px;"></snice-treemap>
|
|
21
16
|
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
<script>
|
|
18
|
+
document.getElementById('usage').data = {
|
|
24
19
|
label: 'Disk Usage',
|
|
25
20
|
value: 0,
|
|
26
21
|
children: [
|
|
27
22
|
{ label: 'Documents', value: 45 },
|
|
28
23
|
{ label: 'Photos', value: 30 },
|
|
29
24
|
{ label: 'Videos', value: 80 },
|
|
30
|
-
{ label: 'Music', value: 25 }
|
|
25
|
+
{ label: 'Music', value: 25 }
|
|
31
26
|
]
|
|
32
27
|
};
|
|
33
28
|
</script>
|
|
34
29
|
```
|
|
35
30
|
|
|
36
|
-
##
|
|
37
|
-
|
|
38
|
-
| Property | Type | Default | Description |
|
|
39
|
-
|----------|------|---------|-------------|
|
|
40
|
-
| `data` | `TreemapNode` | `{ label: '', value: 0 }` | Hierarchical data to display |
|
|
41
|
-
| `show-labels` | `boolean` | `true` | Show text labels on rectangles |
|
|
42
|
-
| `show-values` | `boolean` | `false` | Show numeric values on rectangles |
|
|
43
|
-
| `color-scheme` | `TreemapColorScheme` | `'default'` | Color scheme for rectangles |
|
|
44
|
-
| `padding` | `number` | `2` | Padding between rectangles in pixels |
|
|
45
|
-
| `animation` | `boolean` | `true` | Enable animated transitions |
|
|
46
|
-
|
|
47
|
-
### TreemapNode Interface
|
|
31
|
+
## Importing
|
|
48
32
|
|
|
33
|
+
**ESM (bundler)**
|
|
49
34
|
```typescript
|
|
50
|
-
|
|
51
|
-
label: string; // Display name
|
|
52
|
-
value: number; // Numeric value (leaf nodes)
|
|
53
|
-
children?: TreemapNode[]; // Child nodes (parent value computed from children)
|
|
54
|
-
color?: string; // Optional custom color (overrides color scheme)
|
|
55
|
-
}
|
|
35
|
+
import 'snice/components/treemap/snice-treemap';
|
|
56
36
|
```
|
|
57
37
|
|
|
58
|
-
|
|
38
|
+
**CDN**
|
|
39
|
+
```html
|
|
40
|
+
<script src="snice-runtime.min.js"></script>
|
|
41
|
+
<script src="snice-treemap.min.js"></script>
|
|
42
|
+
```
|
|
59
43
|
|
|
60
|
-
|
|
61
|
-
|--------|-------------|
|
|
62
|
-
| `default` | Tableau 10 categorical palette |
|
|
63
|
-
| `blue` | Sequential blues |
|
|
64
|
-
| `green` | Sequential greens |
|
|
65
|
-
| `purple` | Sequential purples |
|
|
66
|
-
| `orange` | Sequential oranges |
|
|
67
|
-
| `warm` | Warm reds/oranges |
|
|
68
|
-
| `cool` | Cool teals/blues |
|
|
69
|
-
| `rainbow` | Multi-hue categorical |
|
|
44
|
+
## Examples
|
|
70
45
|
|
|
71
|
-
|
|
46
|
+
### Color Schemes
|
|
72
47
|
|
|
73
|
-
|
|
74
|
-
|--------|-----------|-------------|
|
|
75
|
-
| `drillDown` | `(node: TreemapNode) => void` | Drill into a node's children |
|
|
76
|
-
| `drillUp` | `() => void` | Go back one level |
|
|
77
|
-
| `drillToRoot` | `() => void` | Reset to root level |
|
|
48
|
+
Use the `color-scheme` attribute to change the palette.
|
|
78
49
|
|
|
79
|
-
|
|
50
|
+
```html
|
|
51
|
+
<snice-treemap color-scheme="blue" show-labels></snice-treemap>
|
|
52
|
+
<snice-treemap color-scheme="warm" show-labels></snice-treemap>
|
|
53
|
+
<snice-treemap color-scheme="rainbow" show-labels></snice-treemap>
|
|
54
|
+
```
|
|
80
55
|
|
|
81
|
-
|
|
56
|
+
### Custom Node Colors
|
|
82
57
|
|
|
83
|
-
|
|
84
|
-
|-------|--------|-------------|
|
|
85
|
-
| `@snice/treemap-click` | `{ node: TreemapNode, depth: number }` | Fired when a rectangle is clicked |
|
|
86
|
-
| `@snice/treemap-hover` | `{ node: TreemapNode, depth: number } \| null` | Fired on hover (null on leave) |
|
|
87
|
-
| `@snice/treemap-drill` | `{ node: TreemapNode, path: TreemapNode[] }` | Fired when drill level changes |
|
|
58
|
+
Set the `color` property on individual nodes to override the scheme.
|
|
88
59
|
|
|
89
|
-
|
|
60
|
+
```javascript
|
|
61
|
+
treemap.data = {
|
|
62
|
+
label: 'Budget',
|
|
63
|
+
value: 0,
|
|
64
|
+
children: [
|
|
65
|
+
{ label: 'Rent', value: 1500, color: '#e74c3c' },
|
|
66
|
+
{ label: 'Food', value: 600, color: '#2ecc71' },
|
|
67
|
+
{ label: 'Transport', value: 300, color: '#3498db' }
|
|
68
|
+
]
|
|
69
|
+
};
|
|
70
|
+
```
|
|
90
71
|
|
|
91
72
|
### Drillable Hierarchy
|
|
92
73
|
|
|
74
|
+
Click a rectangle with children to drill into it. A breadcrumb trail appears for navigation.
|
|
75
|
+
|
|
93
76
|
```html
|
|
94
|
-
<snice-treemap id="org" show-labels></snice-treemap>
|
|
77
|
+
<snice-treemap id="org" show-labels style="height: 400px;"></snice-treemap>
|
|
95
78
|
|
|
96
|
-
<script
|
|
97
|
-
|
|
98
|
-
treemap.data = {
|
|
79
|
+
<script>
|
|
80
|
+
document.getElementById('org').data = {
|
|
99
81
|
label: 'Company',
|
|
100
82
|
value: 0,
|
|
101
83
|
children: [
|
|
@@ -105,7 +87,7 @@ The `drillPath` getter returns the current drill-down path as a `TreemapNode[]`.
|
|
|
105
87
|
children: [
|
|
106
88
|
{ label: 'Frontend', value: 20 },
|
|
107
89
|
{ label: 'Backend', value: 25 },
|
|
108
|
-
{ label: 'DevOps', value: 10 }
|
|
90
|
+
{ label: 'DevOps', value: 10 }
|
|
109
91
|
]
|
|
110
92
|
},
|
|
111
93
|
{
|
|
@@ -113,86 +95,61 @@ The `drillPath` getter returns the current drill-down path as a `TreemapNode[]`.
|
|
|
113
95
|
value: 0,
|
|
114
96
|
children: [
|
|
115
97
|
{ label: 'Enterprise', value: 30 },
|
|
116
|
-
{ label: 'SMB', value: 15 }
|
|
98
|
+
{ label: 'SMB', value: 15 }
|
|
117
99
|
]
|
|
118
100
|
},
|
|
119
|
-
{ label: 'HR', value: 10 }
|
|
101
|
+
{ label: 'HR', value: 10 }
|
|
120
102
|
]
|
|
121
103
|
};
|
|
122
|
-
|
|
123
|
-
treemap.addEventListener('@snice/treemap-drill', (e) => {
|
|
124
|
-
console.log('Drilled to:', e.detail.path.map(n => n.label).join(' > '));
|
|
125
|
-
});
|
|
126
104
|
</script>
|
|
127
105
|
```
|
|
128
106
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
### Custom Colors
|
|
107
|
+
### Programmatic Navigation
|
|
132
108
|
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
value: 0,
|
|
140
|
-
children: [
|
|
141
|
-
{ label: 'Rent', value: 1500, color: '#e74c3c' },
|
|
142
|
-
{ label: 'Food', value: 600, color: '#2ecc71' },
|
|
143
|
-
{ label: 'Transport', value: 300, color: '#3498db' },
|
|
144
|
-
{ label: 'Savings', value: 500, color: '#1abc9c' },
|
|
145
|
-
]
|
|
146
|
-
};
|
|
147
|
-
</script>
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
### Color Schemes
|
|
151
|
-
|
|
152
|
-
```html
|
|
153
|
-
<snice-treemap color-scheme="blue" show-labels></snice-treemap>
|
|
154
|
-
<snice-treemap color-scheme="warm" show-labels></snice-treemap>
|
|
155
|
-
<snice-treemap color-scheme="rainbow" show-labels></snice-treemap>
|
|
109
|
+
```javascript
|
|
110
|
+
const treemap = document.querySelector('snice-treemap');
|
|
111
|
+
treemap.drillDown(node); // Drill into a node
|
|
112
|
+
treemap.drillUp(); // Go back one level
|
|
113
|
+
treemap.drillToRoot(); // Reset to root
|
|
114
|
+
console.log(treemap.drillPath); // Current path
|
|
156
115
|
```
|
|
157
116
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
```html
|
|
161
|
-
<snice-treemap id="events" show-labels></snice-treemap>
|
|
117
|
+
## Properties
|
|
162
118
|
|
|
163
|
-
|
|
164
|
-
|
|
119
|
+
| Property | Type | Default | Description |
|
|
120
|
+
|----------|------|---------|-------------|
|
|
121
|
+
| `data` | `TreemapNode` | `{ label: '', value: 0 }` | Hierarchical data |
|
|
122
|
+
| `showLabels` (attr: `show-labels`) | `boolean` | `true` | Show text labels |
|
|
123
|
+
| `showValues` (attr: `show-values`) | `boolean` | `false` | Show numeric values |
|
|
124
|
+
| `colorScheme` (attr: `color-scheme`) | `'default' \| 'blue' \| 'green' \| 'purple' \| 'orange' \| 'warm' \| 'cool' \| 'rainbow'` | `'default'` | Color scheme |
|
|
125
|
+
| `padding` | `number` | `2` | Padding between rectangles (px) |
|
|
126
|
+
| `animation` | `boolean` | `true` | Enable transitions |
|
|
165
127
|
|
|
166
|
-
|
|
167
|
-
console.log('Clicked:', e.detail.node.label);
|
|
168
|
-
});
|
|
128
|
+
### TreemapNode Interface
|
|
169
129
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
130
|
+
```typescript
|
|
131
|
+
interface TreemapNode {
|
|
132
|
+
label: string;
|
|
133
|
+
value: number;
|
|
134
|
+
children?: TreemapNode[];
|
|
135
|
+
color?: string;
|
|
136
|
+
}
|
|
176
137
|
```
|
|
177
138
|
|
|
178
|
-
##
|
|
179
|
-
|
|
180
|
-
- **ARIA role**: The treemap container has `role="img"` with `aria-label` from the root data label
|
|
181
|
-
- **Keyboard**: Breadcrumb buttons are focusable and keyboard-accessible
|
|
182
|
-
- **Tooltips**: Hover tooltips show node label and value
|
|
139
|
+
## Events
|
|
183
140
|
|
|
184
|
-
|
|
141
|
+
| Event | Detail | Description |
|
|
142
|
+
|-------|--------|-------------|
|
|
143
|
+
| `treemap-click` | `{ node: TreemapNode, depth: number }` | Rectangle clicked |
|
|
144
|
+
| `treemap-hover` | `{ node: TreemapNode, depth: number } \| null` | Hover enter (null on leave) |
|
|
145
|
+
| `treemap-drill` | `{ node: TreemapNode, path: TreemapNode[] }` | Drill level changed |
|
|
185
146
|
|
|
186
|
-
|
|
187
|
-
- Requires Custom Elements v1, Shadow DOM, and ResizeObserver support
|
|
147
|
+
## Methods
|
|
188
148
|
|
|
189
|
-
|
|
149
|
+
| Method | Arguments | Description |
|
|
150
|
+
|--------|-----------|-------------|
|
|
151
|
+
| `drillDown()` | `node: TreemapNode` | Drill into a node's children |
|
|
152
|
+
| `drillUp()` | -- | Go back one level |
|
|
153
|
+
| `drillToRoot()` | -- | Reset to root level |
|
|
190
154
|
|
|
191
|
-
|
|
192
|
-
2. **Use appropriate color schemes**: Categorical data works well with `default` or `rainbow`; sequential data with `blue`, `green`, etc.
|
|
193
|
-
3. **Set a fixed height**: The treemap needs a defined height on the host element (e.g., `snice-treemap { height: 400px; }`)
|
|
194
|
-
4. **Limit depth**: More than 2-3 levels of hierarchy can be hard to navigate; use drill-down for deep trees
|
|
195
|
-
5. **Balance node counts**: Very many small nodes become unreadable; consider grouping small values
|
|
196
|
-
6. **Custom colors**: Use the `color` property on nodes for domain-specific coloring (e.g., red for expenses, green for income)
|
|
197
|
-
7. **Responsive**: The treemap auto-resizes via ResizeObserver; place it in a flexible container
|
|
198
|
-
8. **Show values selectively**: Enable `show-values` when exact numbers matter; labels alone are often sufficient
|
|
155
|
+
The `drillPath` getter returns the current drill-down path as `TreemapNode[]`.
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
[//]: # (AI: For a low-token version of this doc, use docs/ai/components/video-player.md instead)
|
|
2
|
+
|
|
3
|
+
# Video Player Component
|
|
4
|
+
|
|
5
|
+
The video player component provides a full-featured video player with custom controls, keyboard shortcuts, picture-in-picture support, fullscreen mode, playback speed selection, and multiple visual variants. It wraps the native HTML video element with a polished, consistent UI.
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
- [Basic Usage](#basic-usage)
|
|
9
|
+
- [Properties](#properties)
|
|
10
|
+
- [Slots](#slots)
|
|
11
|
+
- [Methods](#methods)
|
|
12
|
+
- [Events](#events)
|
|
13
|
+
- [Keyboard Shortcuts](#keyboard-shortcuts)
|
|
14
|
+
- [CSS Custom Properties](#css-custom-properties)
|
|
15
|
+
- [Examples](#examples)
|
|
16
|
+
- [Accessibility](#accessibility)
|
|
17
|
+
|
|
18
|
+
## Basic Usage
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<snice-video-player src="video.mp4" poster="poster.jpg"></snice-video-player>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import 'snice/components/video-player/snice-video-player';
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Properties
|
|
29
|
+
|
|
30
|
+
| Property | Type | Default | Description |
|
|
31
|
+
|----------|------|---------|-------------|
|
|
32
|
+
| `src` | `string` | `''` | Video source URL |
|
|
33
|
+
| `poster` | `string` | `''` | Poster image URL shown before playback |
|
|
34
|
+
| `autoplay` | `boolean` | `false` | Automatically start playback |
|
|
35
|
+
| `muted` | `boolean` | `false` | Mute the video |
|
|
36
|
+
| `loop` | `boolean` | `false` | Loop playback continuously |
|
|
37
|
+
| `controls` | `boolean` | `true` | Show the custom control bar |
|
|
38
|
+
| `playbackRate` (attr: `playback-rate`) | `number` | `1` | Playback speed multiplier |
|
|
39
|
+
| `currentTime` (attr: `current-time`) | `number` | `0` | Current playback position in seconds |
|
|
40
|
+
| `volume` | `number` | `1` | Volume level from 0 (silent) to 1 (full) |
|
|
41
|
+
| `variant` | `'default' \| 'minimal' \| 'cinema'` | `'default'` | Visual style variant |
|
|
42
|
+
| `duration` | `number` | _(read-only)_ | Video duration in seconds, set from video metadata |
|
|
43
|
+
|
|
44
|
+
### Variants
|
|
45
|
+
|
|
46
|
+
| Variant | Description |
|
|
47
|
+
|---------|-------------|
|
|
48
|
+
| `default` | Full controls with progress bar, playback speed selector, and PiP button |
|
|
49
|
+
| `minimal` | Simplified controls without rate or PiP buttons |
|
|
50
|
+
| `cinema` | Larger controls, no border radius, with box shadow for a theater-like appearance |
|
|
51
|
+
|
|
52
|
+
## Slots
|
|
53
|
+
|
|
54
|
+
| Slot Name | Description |
|
|
55
|
+
|-----------|-------------|
|
|
56
|
+
| (default) | `<source>` elements for providing multiple video formats |
|
|
57
|
+
|
|
58
|
+
## Methods
|
|
59
|
+
|
|
60
|
+
#### `play(): Promise<void>`
|
|
61
|
+
Start video playback.
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
await player.play();
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
#### `pause(): void`
|
|
68
|
+
Pause video playback.
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
player.pause();
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### `toggle(): void`
|
|
75
|
+
Toggle between play and pause.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
player.toggle();
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### `seekTo(time: number): void`
|
|
82
|
+
Seek to a specific time in seconds.
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
player.seekTo(30); // Jump to 30 seconds
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### `requestFullscreen(): Promise<void>`
|
|
89
|
+
Enter fullscreen mode.
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
await player.requestFullscreen();
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### `exitFullscreen(): Promise<void>`
|
|
96
|
+
Exit fullscreen mode.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
await player.exitFullscreen();
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
#### `requestPictureInPicture(): Promise<void>`
|
|
103
|
+
Toggle picture-in-picture mode.
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
await player.requestPictureInPicture();
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### `setPlaybackRate(rate: number): void`
|
|
110
|
+
Set the playback speed.
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
player.setPlaybackRate(1.5); // 1.5x speed
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Events
|
|
117
|
+
|
|
118
|
+
### `video-play`
|
|
119
|
+
Fired when playback starts.
|
|
120
|
+
|
|
121
|
+
**Event Detail:**
|
|
122
|
+
```typescript
|
|
123
|
+
{
|
|
124
|
+
player: SniceVideoPlayerElement;
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### `video-pause`
|
|
129
|
+
Fired when playback is paused.
|
|
130
|
+
|
|
131
|
+
**Event Detail:**
|
|
132
|
+
```typescript
|
|
133
|
+
{
|
|
134
|
+
player: SniceVideoPlayerElement;
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### `video-ended`
|
|
139
|
+
Fired when the video finishes playing.
|
|
140
|
+
|
|
141
|
+
**Event Detail:**
|
|
142
|
+
```typescript
|
|
143
|
+
{
|
|
144
|
+
player: SniceVideoPlayerElement;
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### `video-time-update`
|
|
149
|
+
Fired periodically during playback with current position.
|
|
150
|
+
|
|
151
|
+
**Event Detail:**
|
|
152
|
+
```typescript
|
|
153
|
+
{
|
|
154
|
+
player: SniceVideoPlayerElement;
|
|
155
|
+
currentTime: number;
|
|
156
|
+
duration: number;
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### `video-fullscreen-change`
|
|
161
|
+
Fired when fullscreen mode is toggled.
|
|
162
|
+
|
|
163
|
+
**Event Detail:**
|
|
164
|
+
```typescript
|
|
165
|
+
{
|
|
166
|
+
player: SniceVideoPlayerElement;
|
|
167
|
+
fullscreen: boolean;
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### `video-volume-change`
|
|
172
|
+
Fired when volume or mute state changes.
|
|
173
|
+
|
|
174
|
+
**Event Detail:**
|
|
175
|
+
```typescript
|
|
176
|
+
{
|
|
177
|
+
player: SniceVideoPlayerElement;
|
|
178
|
+
volume: number;
|
|
179
|
+
muted: boolean;
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Keyboard Shortcuts
|
|
184
|
+
|
|
185
|
+
| Key | Action |
|
|
186
|
+
|-----|--------|
|
|
187
|
+
| Space / K | Toggle play/pause |
|
|
188
|
+
| F | Toggle fullscreen |
|
|
189
|
+
| M | Toggle mute |
|
|
190
|
+
| ArrowRight | Seek forward 5 seconds |
|
|
191
|
+
| ArrowLeft | Seek backward 5 seconds |
|
|
192
|
+
| ArrowUp | Volume up 10% |
|
|
193
|
+
| ArrowDown | Volume down 10% |
|
|
194
|
+
|
|
195
|
+
## CSS Custom Properties
|
|
196
|
+
|
|
197
|
+
| Property | Description | Default |
|
|
198
|
+
|----------|-------------|---------|
|
|
199
|
+
| `--snice-color-primary` | Progress bar fill color | `rgb(37 99 235)` |
|
|
200
|
+
| `--snice-border-radius-lg` | Container border radius | `0.5rem` |
|
|
201
|
+
| `--snice-transition-fast` | Control button transitions | `150ms` |
|
|
202
|
+
| `--snice-transition-medium` | Controls bar fade transition | `250ms` |
|
|
203
|
+
| `--snice-shadow-lg` | Cinema variant box shadow | _(theme default)_ |
|
|
204
|
+
| `--snice-focus-ring-width` | Focus ring width for control buttons | _(theme default)_ |
|
|
205
|
+
| `--snice-focus-ring-color` | Focus ring color for control buttons | _(theme default)_ |
|
|
206
|
+
|
|
207
|
+
## Examples
|
|
208
|
+
|
|
209
|
+
### Basic Video Player
|
|
210
|
+
|
|
211
|
+
Play a single video file with a poster image.
|
|
212
|
+
|
|
213
|
+
```html
|
|
214
|
+
<snice-video-player
|
|
215
|
+
src="https://example.com/video.mp4"
|
|
216
|
+
poster="https://example.com/poster.jpg"
|
|
217
|
+
></snice-video-player>
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Multiple Sources
|
|
221
|
+
|
|
222
|
+
Provide multiple video formats for broader browser compatibility using slotted `<source>` elements.
|
|
223
|
+
|
|
224
|
+
```html
|
|
225
|
+
<snice-video-player poster="poster.jpg">
|
|
226
|
+
<source src="video.webm" type="video/webm">
|
|
227
|
+
<source src="video.mp4" type="video/mp4">
|
|
228
|
+
</snice-video-player>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Cinema Variant
|
|
232
|
+
|
|
233
|
+
Use the `cinema` variant for a theater-like presentation with larger controls and box shadow.
|
|
234
|
+
|
|
235
|
+
```html
|
|
236
|
+
<snice-video-player
|
|
237
|
+
src="movie.mp4"
|
|
238
|
+
poster="movie-poster.jpg"
|
|
239
|
+
variant="cinema"
|
|
240
|
+
></snice-video-player>
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Minimal Variant
|
|
244
|
+
|
|
245
|
+
Use the `minimal` variant for a cleaner player with simplified controls.
|
|
246
|
+
|
|
247
|
+
```html
|
|
248
|
+
<snice-video-player
|
|
249
|
+
src="tutorial.mp4"
|
|
250
|
+
variant="minimal"
|
|
251
|
+
></snice-video-player>
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Autoplay Muted
|
|
255
|
+
|
|
256
|
+
Autoplay requires the video to be muted in most browsers.
|
|
257
|
+
|
|
258
|
+
```html
|
|
259
|
+
<snice-video-player
|
|
260
|
+
src="background-loop.mp4"
|
|
261
|
+
autoplay
|
|
262
|
+
muted
|
|
263
|
+
loop
|
|
264
|
+
></snice-video-player>
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Event Handling
|
|
268
|
+
|
|
269
|
+
Listen for player events to build custom behavior.
|
|
270
|
+
|
|
271
|
+
```html
|
|
272
|
+
<snice-video-player id="my-player" src="video.mp4"></snice-video-player>
|
|
273
|
+
<p id="status">Ready</p>
|
|
274
|
+
|
|
275
|
+
<script type="module">
|
|
276
|
+
import type { SniceVideoPlayerElement } from 'snice/components/video-player/snice-video-player.types';
|
|
277
|
+
|
|
278
|
+
const player = document.getElementById('my-player') as SniceVideoPlayerElement;
|
|
279
|
+
const status = document.getElementById('status');
|
|
280
|
+
|
|
281
|
+
player.addEventListener('video-play', () => {
|
|
282
|
+
status.textContent = 'Playing';
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
player.addEventListener('video-pause', () => {
|
|
286
|
+
status.textContent = 'Paused';
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
player.addEventListener('video-ended', () => {
|
|
290
|
+
status.textContent = 'Finished';
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
player.addEventListener('video-time-update', (e) => {
|
|
294
|
+
const { currentTime, duration } = e.detail;
|
|
295
|
+
const percent = Math.round((currentTime / duration) * 100);
|
|
296
|
+
status.textContent = `Playing: ${percent}%`;
|
|
297
|
+
});
|
|
298
|
+
</script>
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Programmatic Control
|
|
302
|
+
|
|
303
|
+
Control the player using JavaScript methods.
|
|
304
|
+
|
|
305
|
+
```html
|
|
306
|
+
<snice-video-player id="controlled-player" src="video.mp4" controls="false"></snice-video-player>
|
|
307
|
+
|
|
308
|
+
<button onclick="document.getElementById('controlled-player').play()">Play</button>
|
|
309
|
+
<button onclick="document.getElementById('controlled-player').pause()">Pause</button>
|
|
310
|
+
<button onclick="document.getElementById('controlled-player').seekTo(0)">Restart</button>
|
|
311
|
+
<button onclick="document.getElementById('controlled-player').setPlaybackRate(2)">2x Speed</button>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
## Accessibility
|
|
315
|
+
|
|
316
|
+
- **Keyboard support**: Full keyboard control with Space/K for play/pause, F for fullscreen, M for mute, and arrow keys for seeking and volume
|
|
317
|
+
- **Focus indicators**: All control buttons have visible focus rings for keyboard navigation
|
|
318
|
+
- **ARIA attributes**: Control buttons have appropriate ARIA labels describing their actions
|
|
319
|
+
- **Screen reader support**: Current time, duration, and playback state are conveyed to assistive technology
|
|
320
|
+
- **Reduced motion**: Transitions respect `prefers-reduced-motion` for users sensitive to animations
|
|
321
|
+
|
|
322
|
+
## Browser Support
|
|
323
|
+
|
|
324
|
+
- Modern browsers (Chrome, Firefox, Safari, Edge)
|
|
325
|
+
- Requires Custom Elements v1 and Shadow DOM support
|
|
326
|
+
- Picture-in-Picture requires browser support (Chrome, Edge, Safari; limited in Firefox)
|
|
327
|
+
|
|
328
|
+
## Best Practices
|
|
329
|
+
|
|
330
|
+
1. **Provide a poster image**: Show a meaningful thumbnail before playback starts
|
|
331
|
+
2. **Offer multiple sources**: Use `<source>` elements with WebM and MP4 for broad compatibility
|
|
332
|
+
3. **Respect autoplay policies**: Autoplay requires `muted` in most browsers
|
|
333
|
+
4. **Use appropriate variants**: Choose `minimal` for embedded tutorials, `cinema` for featured content
|
|
334
|
+
5. **Add keyboard hints**: Consider showing keyboard shortcuts in a tooltip or help section
|
|
335
|
+
6. **Handle playback errors**: Listen for error events and show fallback messaging
|
|
336
|
+
7. **Set reasonable defaults**: Start with controls visible and volume at a comfortable level
|