snice 4.9.0 → 4.10.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/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/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/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/snice-carousel.js +1 -1
- package/dist/cdn/carousel/snice-carousel.min.js +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 +594 -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/snice-runtime.esm.js +3 -3
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +3 -3
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +3 -3
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +3 -3
- 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/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 +59 -0
- package/dist/components/pdf-viewer/snice-pdf-viewer.js +527 -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 +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +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 +17 -1
- 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/package.json +1 -1
- package/docs/ai/components/popover.md +0 -70
- package/docs/components/popover.md +0 -333
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# snice-gantt
|
|
2
|
+
|
|
3
|
+
Interactive Gantt chart with draggable/resizable task bars, zoom levels, task groups, progress indicators, dependencies, and today line.
|
|
4
|
+
|
|
5
|
+
## Properties
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
tasks: GanttTask[] = [] // Task data array (set via JS)
|
|
9
|
+
zoom: GanttZoom = 'week' // attr: zoom — 'day' | 'week' | 'month'
|
|
10
|
+
showDependencies: boolean = true // attr: show-dependencies — Render dependency arrows
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Types
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
interface GanttTask {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
start: string; // ISO date (YYYY-MM-DD)
|
|
20
|
+
end: string; // ISO date (YYYY-MM-DD)
|
|
21
|
+
progress?: number; // 0-100 completion percentage
|
|
22
|
+
dependencies?: string[];// IDs of prerequisite tasks
|
|
23
|
+
color?: string; // Bar color override
|
|
24
|
+
group?: string; // Group name for task grouping
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Events
|
|
29
|
+
|
|
30
|
+
- `task-click` -> `{ task: GanttTask }` — Task bar or name clicked
|
|
31
|
+
- `task-resize` -> `{ task: GanttTask, start: string, end: string }` — Task resized via drag handles
|
|
32
|
+
- `task-move` -> `{ task: GanttTask, start: string, end: string }` — Task moved via drag
|
|
33
|
+
- `task-link` -> `{ source: string, target: string }` — Dependency link created
|
|
34
|
+
|
|
35
|
+
## Methods
|
|
36
|
+
|
|
37
|
+
- `scrollToDate(date: string): void` — Scroll timeline to center on a date
|
|
38
|
+
- `scrollToTask(id: string): void` — Scroll to a task's start date
|
|
39
|
+
|
|
40
|
+
## Behavior
|
|
41
|
+
|
|
42
|
+
- Left sidebar shows task names (grouped if `group` set)
|
|
43
|
+
- Timeline auto-calculates range from task dates with padding
|
|
44
|
+
- Bars are draggable (move) and resizable (left/right handles)
|
|
45
|
+
- Today line shown as red vertical indicator
|
|
46
|
+
- Zoom toggle buttons in header (Day/Week/Month)
|
|
47
|
+
|
|
48
|
+
## Usage
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<snice-gantt zoom="week" show-dependencies></snice-gantt>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```js
|
|
55
|
+
const gantt = document.querySelector('snice-gantt');
|
|
56
|
+
gantt.tasks = [
|
|
57
|
+
{ id: '1', name: 'Design', start: '2026-03-01', end: '2026-03-07', progress: 80, group: 'Phase 1' },
|
|
58
|
+
{ id: '2', name: 'Develop', start: '2026-03-05', end: '2026-03-15', dependencies: ['1'], group: 'Phase 1' },
|
|
59
|
+
{ id: '3', name: 'Test', start: '2026-03-12', end: '2026-03-20', color: 'rgb(234 88 12)' }
|
|
60
|
+
];
|
|
61
|
+
gantt.addEventListener('task-move', e => console.log(e.detail));
|
|
62
|
+
gantt.scrollToDate('2026-03-01');
|
|
63
|
+
```
|
|
@@ -11,7 +11,7 @@ max: number = 100;
|
|
|
11
11
|
label: string = '';
|
|
12
12
|
variant: 'default'|'primary'|'success'|'warning'|'error'|'info' = 'default';
|
|
13
13
|
size: 'small'|'medium'|'large' = 'medium';
|
|
14
|
-
showValue: boolean = true;
|
|
14
|
+
showValue: boolean = true; // attribute: show-value
|
|
15
15
|
thickness: number = 8;
|
|
16
16
|
```
|
|
17
17
|
|
|
@@ -6,11 +6,11 @@ GitHub-style calendar heatmap visualization.
|
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
8
|
data: HeatmapDataPoint[] = []; // Array of { date: string, value: number }
|
|
9
|
-
colorScheme: 'green'|'blue'|'purple'|'orange'|'red' = 'green';
|
|
10
|
-
showLabels: boolean = true; //
|
|
11
|
-
cellSize: number = 12; //
|
|
12
|
-
cellGap: number = 3; //
|
|
13
|
-
showTooltip: boolean = true; //
|
|
9
|
+
colorScheme: 'green'|'blue'|'purple'|'orange'|'red' = 'green'; // attribute: color-scheme
|
|
10
|
+
showLabels: boolean = true; // attribute: show-labels
|
|
11
|
+
cellSize: number = 12; // attribute: cell-size, px
|
|
12
|
+
cellGap: number = 3; // attribute: cell-gap, px
|
|
13
|
+
showTooltip: boolean = true; // attribute: show-tooltip
|
|
14
14
|
weeks: number = 52; // Number of weeks to display
|
|
15
15
|
```
|
|
16
16
|
|
|
@@ -15,17 +15,18 @@ required: boolean = false;
|
|
|
15
15
|
invalid: boolean = false;
|
|
16
16
|
readonly: boolean = false;
|
|
17
17
|
clearable: boolean = false;
|
|
18
|
+
loading: boolean = false;
|
|
19
|
+
password: boolean = false;
|
|
18
20
|
label: string = '';
|
|
19
|
-
helperText: string = '';
|
|
20
|
-
errorText: string = '';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
prefixIcon: string = '';
|
|
24
|
-
suffixIcon: string = '';
|
|
21
|
+
helperText: string = ''; // attribute: helper-text
|
|
22
|
+
errorText: string = ''; // attribute: error-text
|
|
23
|
+
prefixIcon: string = ''; // attribute: prefix-icon
|
|
24
|
+
suffixIcon: string = ''; // attribute: suffix-icon
|
|
25
25
|
min: string = '';
|
|
26
26
|
max: string = '';
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
step: string = '';
|
|
28
|
+
minlength: number = -1;
|
|
29
|
+
maxlength: number = -1;
|
|
29
30
|
pattern: string = '';
|
|
30
31
|
autocomplete: string = '';
|
|
31
32
|
name: string = '';
|
|
@@ -45,10 +46,11 @@ name: string = '';
|
|
|
45
46
|
|
|
46
47
|
## Events
|
|
47
48
|
|
|
48
|
-
- `input` - {value, input}
|
|
49
|
-
- `change` - {value, input}
|
|
50
|
-
- `focus` - {input}
|
|
51
|
-
- `blur` - {input}
|
|
49
|
+
- `input-input` - {value, input}
|
|
50
|
+
- `input-change` - {value, input}
|
|
51
|
+
- `input-focus` - {input}
|
|
52
|
+
- `input-blur` - {input}
|
|
53
|
+
- `input-clear` - {input}
|
|
52
54
|
|
|
53
55
|
## Usage
|
|
54
56
|
|
|
@@ -72,9 +74,8 @@ name: string = '';
|
|
|
72
74
|
<snice-input prefix-icon="/icons/search.svg" placeholder="Search"></snice-input>
|
|
73
75
|
<snice-input prefix-icon="search" placeholder="Search"></snice-input> <!-- Material Symbols -->
|
|
74
76
|
|
|
75
|
-
<!--
|
|
76
|
-
<snice-input
|
|
77
|
-
<snice-input suffix=".com" type="url"></snice-input>
|
|
77
|
+
<!-- Password toggle -->
|
|
78
|
+
<snice-input type="password" password label="Password"></snice-input>
|
|
78
79
|
|
|
79
80
|
<!-- Clearable -->
|
|
80
81
|
<snice-input value="Text" clearable></snice-input>
|
|
@@ -100,8 +101,8 @@ name: string = '';
|
|
|
100
101
|
<snice-input id="inp"></snice-input>
|
|
101
102
|
<script>
|
|
102
103
|
const inp = document.querySelector('#inp');
|
|
103
|
-
inp.addEventListener('input', (e) => console.log('Input:', e.detail.value));
|
|
104
|
-
inp.addEventListener('change', (e) => console.log('Change:', e.detail.value));
|
|
104
|
+
inp.addEventListener('input-input', (e) => console.log('Input:', e.detail.value));
|
|
105
|
+
inp.addEventListener('input-change', (e) => console.log('Change:', e.detail.value));
|
|
105
106
|
</script>
|
|
106
107
|
|
|
107
108
|
<!-- Icon slots (for external CSS icon fonts like Material Symbols) -->
|
|
@@ -125,7 +126,8 @@ inp.addEventListener('change', (e) => console.log('Change:', e.detail.value));
|
|
|
125
126
|
- Form-associated custom element
|
|
126
127
|
- 10 input types
|
|
127
128
|
- 3 visual variants
|
|
128
|
-
- Prefix/suffix icons (URL, image files, emoji, font ligatures)
|
|
129
|
+
- Prefix/suffix icons (URL, image files, emoji, font ligatures)
|
|
130
|
+
- Password visibility toggle
|
|
129
131
|
- Clearable with X button
|
|
130
132
|
- Helper and error text
|
|
131
133
|
- Validation (min/max/pattern/length)
|
|
@@ -6,8 +6,8 @@ Drag-and-drop kanban board.
|
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
8
|
columns: KanbanColumn[] = [];
|
|
9
|
-
allowDragDrop: boolean = true;
|
|
10
|
-
showCardCount: boolean = true;
|
|
9
|
+
allowDragDrop: boolean = true; // attribute: allow-drag-drop
|
|
10
|
+
showCardCount: boolean = true; // attribute: show-card-count
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Interfaces
|
|
@@ -9,12 +9,12 @@ Key performance indicator display with value, label, trend, sparkline, and senti
|
|
|
9
9
|
```typescript
|
|
10
10
|
label: string = '' // Metric label/name
|
|
11
11
|
value: string | number = '' // Main metric value
|
|
12
|
-
trendValue?: string | number //
|
|
13
|
-
trendData?: number[] // Sparkline data array
|
|
12
|
+
trendValue?: string | number // attribute: trend-value
|
|
13
|
+
trendData?: number[] // Sparkline data array (JS only)
|
|
14
14
|
sentiment?: KpiSentiment // 'up' | 'down' | 'neutral'
|
|
15
15
|
size: KpiSize = 'medium' // 'small' | 'medium' | 'large'
|
|
16
|
-
showSparkline: boolean = true //
|
|
17
|
-
colorValue: boolean = false //
|
|
16
|
+
showSparkline: boolean = true // attribute: show-sparkline
|
|
17
|
+
colorValue: boolean = false // attribute: color-value
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
## Slots
|
|
@@ -115,55 +115,6 @@ after // Content after sparkline (e.g., actions)
|
|
|
115
115
|
::part(sparkline) /* Sparkline container */
|
|
116
116
|
```
|
|
117
117
|
|
|
118
|
-
## Styling
|
|
119
|
-
|
|
120
|
-
```css
|
|
121
|
-
--snice-color-background
|
|
122
|
-
--snice-color-border
|
|
123
|
-
--snice-color-text
|
|
124
|
-
--snice-color-text-secondary
|
|
125
|
-
--snice-color-success /* Up sentiment */
|
|
126
|
-
--snice-color-danger /* Down sentiment */
|
|
127
|
-
--snice-spacing-xs
|
|
128
|
-
--snice-spacing-sm
|
|
129
|
-
--snice-spacing-md
|
|
130
|
-
--snice-spacing-lg
|
|
131
|
-
--snice-font-size-xs
|
|
132
|
-
--snice-font-size-sm
|
|
133
|
-
--snice-font-size-md
|
|
134
|
-
--snice-font-size-2xl
|
|
135
|
-
--snice-font-size-3xl
|
|
136
|
-
--snice-font-size-4xl
|
|
137
|
-
--snice-font-weight-medium
|
|
138
|
-
--snice-font-weight-semibold
|
|
139
|
-
--snice-font-weight-bold
|
|
140
|
-
--snice-border-radius-md
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Common Patterns
|
|
144
|
-
|
|
145
|
-
```html
|
|
146
|
-
<!-- Financial metrics -->
|
|
147
|
-
<snice-kpi label="Revenue" value="$127K" trend-value="+22%" sentiment="up"></snice-kpi>
|
|
148
|
-
<snice-kpi label="Costs" value="$45K" trend-value="-5%" sentiment="down"></snice-kpi>
|
|
149
|
-
<snice-kpi label="Profit" value="$82K" trend-value="+35%" sentiment="up"></snice-kpi>
|
|
150
|
-
|
|
151
|
-
<!-- User metrics -->
|
|
152
|
-
<snice-kpi label="Total Users" value="12,345" trend-value="+234" sentiment="up"></snice-kpi>
|
|
153
|
-
<snice-kpi label="Active Users" value="8,901" trend-value="+156" sentiment="up"></snice-kpi>
|
|
154
|
-
<snice-kpi label="Churn Rate" value="2.3%" trend-value="+0.2%" sentiment="down"></snice-kpi>
|
|
155
|
-
|
|
156
|
-
<!-- Performance metrics -->
|
|
157
|
-
<snice-kpi label="Response Time" value="245ms" trend-value="-23ms" sentiment="down"></snice-kpi>
|
|
158
|
-
<snice-kpi label="Uptime" value="99.9%" trend-value="±0%" sentiment="neutral"></snice-kpi>
|
|
159
|
-
<snice-kpi label="Error Rate" value="0.12%" trend-value="-0.03%" sentiment="down"></snice-kpi>
|
|
160
|
-
|
|
161
|
-
<!-- Marketing metrics -->
|
|
162
|
-
<snice-kpi label="Conversion Rate" value="3.24%" trend-value="+0.5%" sentiment="up"></snice-kpi>
|
|
163
|
-
<snice-kpi label="CAC" value="$156" trend-value="-$12" sentiment="down"></snice-kpi>
|
|
164
|
-
<snice-kpi label="LTV" value="$1,245" trend-value="+$87" sentiment="up"></snice-kpi>
|
|
165
|
-
```
|
|
166
|
-
|
|
167
118
|
## Notes
|
|
168
119
|
|
|
169
120
|
- Sparkline automatically uses sentiment color (success/danger/muted)
|
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
# snice-layout
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Application layout with header navigation, main content area, and footer.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
Base layout with header navigation, main content area, and footer.
|
|
8
|
-
|
|
9
|
-
### Slots
|
|
5
|
+
## Slots
|
|
10
6
|
|
|
11
7
|
- `brand` - Logo/brand in header
|
|
12
8
|
- `page` - Main page content
|
|
13
9
|
- `footer` - Footer content
|
|
14
10
|
|
|
15
|
-
|
|
11
|
+
## Methods
|
|
16
12
|
|
|
17
|
-
- `update(appContext, placards, currentRoute, routeParams)` - Update layout navigation
|
|
13
|
+
- `update(appContext, placards, currentRoute, routeParams)` - Update layout navigation from router state
|
|
18
14
|
|
|
19
|
-
|
|
15
|
+
## Usage
|
|
20
16
|
|
|
21
17
|
```html
|
|
22
18
|
<snice-layout>
|
|
@@ -27,235 +23,14 @@ Base layout with header navigation, main content area, and footer.
|
|
|
27
23
|
<!-- Page content -->
|
|
28
24
|
</div>
|
|
29
25
|
<div slot="footer">
|
|
30
|
-
<p
|
|
26
|
+
<p>© 2025 My Company</p>
|
|
31
27
|
</div>
|
|
32
28
|
</snice-layout>
|
|
33
29
|
```
|
|
34
30
|
|
|
35
|
-
## snice-layout-centered
|
|
36
|
-
|
|
37
|
-
Centered single-column layout with configurable width.
|
|
38
|
-
|
|
39
|
-
### Properties
|
|
40
|
-
|
|
41
|
-
```typescript
|
|
42
|
-
width: 'sm'|'md'|'lg'|'xl' = 'md';
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Slots
|
|
46
|
-
|
|
47
|
-
- `page` - Main content (centered)
|
|
48
|
-
|
|
49
|
-
### Usage
|
|
50
|
-
|
|
51
|
-
```html
|
|
52
|
-
<snice-layout-centered width="lg">
|
|
53
|
-
<div slot="page">
|
|
54
|
-
<!-- Centered content -->
|
|
55
|
-
</div>
|
|
56
|
-
</snice-layout-centered>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## snice-layout-split
|
|
60
|
-
|
|
61
|
-
Two-column split layout.
|
|
62
|
-
|
|
63
|
-
### Slots
|
|
64
|
-
|
|
65
|
-
- `left` - Left column content
|
|
66
|
-
- `right` - Right column content
|
|
67
|
-
|
|
68
|
-
### Usage
|
|
69
|
-
|
|
70
|
-
```html
|
|
71
|
-
<snice-layout-split>
|
|
72
|
-
<div slot="left">
|
|
73
|
-
<!-- Left sidebar -->
|
|
74
|
-
</div>
|
|
75
|
-
<div slot="right">
|
|
76
|
-
<!-- Main content -->
|
|
77
|
-
</div>
|
|
78
|
-
</snice-layout-split>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## snice-layout-sidebar
|
|
82
|
-
|
|
83
|
-
Layout with collapsible sidebar and main content area.
|
|
84
|
-
|
|
85
|
-
### Slots
|
|
86
|
-
|
|
87
|
-
- `brand` - Logo/brand in sidebar header
|
|
88
|
-
- `sidebar` - Sidebar navigation content
|
|
89
|
-
- `page` - Main page content
|
|
90
|
-
- `footer` - Footer content
|
|
91
|
-
|
|
92
|
-
### Usage
|
|
93
|
-
|
|
94
|
-
```html
|
|
95
|
-
<snice-layout-sidebar>
|
|
96
|
-
<div slot="brand">
|
|
97
|
-
<h1>My App</h1>
|
|
98
|
-
</div>
|
|
99
|
-
<nav slot="sidebar">
|
|
100
|
-
<!-- Sidebar navigation -->
|
|
101
|
-
</nav>
|
|
102
|
-
<div slot="page">
|
|
103
|
-
<!-- Main content -->
|
|
104
|
-
</div>
|
|
105
|
-
</snice-layout-sidebar>
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## snice-layout-dashboard
|
|
109
|
-
|
|
110
|
-
Dashboard layout with header, sidebar, and content grid.
|
|
111
|
-
|
|
112
|
-
### Slots
|
|
113
|
-
|
|
114
|
-
- `brand` - Logo/brand
|
|
115
|
-
- `header` - Top header content
|
|
116
|
-
- `sidebar` - Left sidebar navigation
|
|
117
|
-
- `page` - Main dashboard content
|
|
118
|
-
|
|
119
|
-
### Usage
|
|
120
|
-
|
|
121
|
-
```html
|
|
122
|
-
<snice-layout-dashboard>
|
|
123
|
-
<div slot="brand">
|
|
124
|
-
<h1>Dashboard</h1>
|
|
125
|
-
</div>
|
|
126
|
-
<div slot="header">
|
|
127
|
-
<!-- User menu, notifications -->
|
|
128
|
-
</div>
|
|
129
|
-
<nav slot="sidebar">
|
|
130
|
-
<!-- Nav items -->
|
|
131
|
-
</nav>
|
|
132
|
-
<div slot="page">
|
|
133
|
-
<!-- Dashboard widgets -->
|
|
134
|
-
</div>
|
|
135
|
-
</snice-layout-dashboard>
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## snice-layout-landing
|
|
139
|
-
|
|
140
|
-
Landing page layout with hero section.
|
|
141
|
-
|
|
142
|
-
### Slots
|
|
143
|
-
|
|
144
|
-
- `header` - Top navigation
|
|
145
|
-
- `hero` - Hero section
|
|
146
|
-
- `page` - Main content
|
|
147
|
-
- `footer` - Footer
|
|
148
|
-
|
|
149
|
-
### Usage
|
|
150
|
-
|
|
151
|
-
```html
|
|
152
|
-
<snice-layout-landing>
|
|
153
|
-
<nav slot="header">
|
|
154
|
-
<!-- Top nav -->
|
|
155
|
-
</nav>
|
|
156
|
-
<div slot="hero">
|
|
157
|
-
<h1>Welcome</h1>
|
|
158
|
-
</div>
|
|
159
|
-
<div slot="page">
|
|
160
|
-
<!-- Features, content -->
|
|
161
|
-
</div>
|
|
162
|
-
<footer slot="footer">
|
|
163
|
-
<!-- Links, copyright -->
|
|
164
|
-
</footer>
|
|
165
|
-
</snice-layout-landing>
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## snice-layout-blog
|
|
169
|
-
|
|
170
|
-
Blog-style layout with header, content, and sidebar.
|
|
171
|
-
|
|
172
|
-
### Slots
|
|
173
|
-
|
|
174
|
-
- `header` - Header navigation
|
|
175
|
-
- `page` - Main blog content
|
|
176
|
-
- `sidebar` - Blog sidebar (recent posts, categories)
|
|
177
|
-
- `footer` - Footer
|
|
178
|
-
|
|
179
|
-
### Usage
|
|
180
|
-
|
|
181
|
-
```html
|
|
182
|
-
<snice-layout-blog>
|
|
183
|
-
<nav slot="header">
|
|
184
|
-
<!-- Blog nav -->
|
|
185
|
-
</nav>
|
|
186
|
-
<article slot="page">
|
|
187
|
-
<!-- Blog post -->
|
|
188
|
-
</article>
|
|
189
|
-
<aside slot="sidebar">
|
|
190
|
-
<!-- Recent posts, categories -->
|
|
191
|
-
</aside>
|
|
192
|
-
</snice-layout-blog>
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
## snice-layout-fullscreen
|
|
196
|
-
|
|
197
|
-
Full viewport layout with no margins.
|
|
198
|
-
|
|
199
|
-
### Slots
|
|
200
|
-
|
|
201
|
-
- `page` - Fullscreen content
|
|
202
|
-
|
|
203
|
-
### Usage
|
|
204
|
-
|
|
205
|
-
```html
|
|
206
|
-
<snice-layout-fullscreen>
|
|
207
|
-
<div slot="page">
|
|
208
|
-
<!-- Fullscreen app -->
|
|
209
|
-
</div>
|
|
210
|
-
</snice-layout-fullscreen>
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
## snice-layout-minimal
|
|
214
|
-
|
|
215
|
-
Minimal layout with just header and content.
|
|
216
|
-
|
|
217
|
-
### Slots
|
|
218
|
-
|
|
219
|
-
- `header` - Minimal header
|
|
220
|
-
- `page` - Main content
|
|
221
|
-
|
|
222
|
-
### Usage
|
|
223
|
-
|
|
224
|
-
```html
|
|
225
|
-
<snice-layout-minimal>
|
|
226
|
-
<div slot="header">
|
|
227
|
-
<h1>Simple App</h1>
|
|
228
|
-
</div>
|
|
229
|
-
<div slot="page">
|
|
230
|
-
<!-- Content -->
|
|
231
|
-
</div>
|
|
232
|
-
</snice-layout-minimal>
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
## snice-layout-card
|
|
236
|
-
|
|
237
|
-
Card-based centered layout for login/signup pages.
|
|
238
|
-
|
|
239
|
-
### Slots
|
|
240
|
-
|
|
241
|
-
- `page` - Card content
|
|
242
|
-
|
|
243
|
-
### Usage
|
|
244
|
-
|
|
245
|
-
```html
|
|
246
|
-
<snice-layout-card>
|
|
247
|
-
<div slot="page">
|
|
248
|
-
<h2>Sign In</h2>
|
|
249
|
-
<!-- Login form -->
|
|
250
|
-
</div>
|
|
251
|
-
</snice-layout-card>
|
|
252
|
-
```
|
|
253
|
-
|
|
254
31
|
## Features
|
|
255
32
|
|
|
256
|
-
-
|
|
257
|
-
-
|
|
258
|
-
-
|
|
259
|
-
-
|
|
260
|
-
- Router integration support
|
|
261
|
-
- Common UI patterns (dashboard, blog, landing, etc.)
|
|
33
|
+
- Grid layout: header, main, footer
|
|
34
|
+
- Integrated `snice-nav` in header
|
|
35
|
+
- Router integration via `update()` method
|
|
36
|
+
- Slotted brand, page, and footer areas
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# snice-link-preview
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Rich URL preview card with image, title, description, and site info.
|
|
4
4
|
|
|
5
5
|
## Properties
|
|
6
6
|
|
|
@@ -8,51 +8,42 @@ Social media-style link preview card. Purely visual -- all data passed via prope
|
|
|
8
8
|
url: string = '';
|
|
9
9
|
title: string = '';
|
|
10
10
|
description: string = '';
|
|
11
|
-
image: string = '';
|
|
12
|
-
siteName: string = '';
|
|
13
|
-
favicon: string = '';
|
|
14
|
-
variant: '
|
|
15
|
-
size: 'small'
|
|
11
|
+
image: string = '';
|
|
12
|
+
siteName: string = ''; // attr: site-name
|
|
13
|
+
favicon: string = '';
|
|
14
|
+
variant: 'vertical'|'horizontal' = 'vertical';
|
|
15
|
+
size: 'small'|'medium'|'large' = 'medium';
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Events
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
'@snice/link-click': CustomEvent<{ url: string }> // emitted on click
|
|
22
|
-
```
|
|
20
|
+
- `@snice/link-click` → `{ url: string }`
|
|
23
21
|
|
|
24
22
|
## Usage
|
|
25
23
|
|
|
26
24
|
```html
|
|
27
25
|
<!-- Vertical (default) -->
|
|
28
26
|
<snice-link-preview
|
|
27
|
+
url="https://example.com"
|
|
29
28
|
title="Article Title"
|
|
30
|
-
description="
|
|
31
|
-
image="
|
|
29
|
+
description="Brief summary."
|
|
30
|
+
image="/images/og.jpg"
|
|
32
31
|
site-name="example.com"
|
|
33
|
-
favicon="
|
|
34
|
-
|
|
35
|
-
></snice-link-preview>
|
|
32
|
+
favicon="/icons/favicon.ico">
|
|
33
|
+
</snice-link-preview>
|
|
36
34
|
|
|
37
35
|
<!-- Horizontal, small -->
|
|
38
|
-
<snice-link-preview
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
title="Quick Link"
|
|
42
|
-
description="Short description"
|
|
43
|
-
site-name="example.com"
|
|
44
|
-
url="https://example.com"
|
|
45
|
-
></snice-link-preview>
|
|
36
|
+
<snice-link-preview variant="horizontal" size="small"
|
|
37
|
+
url="https://example.com" title="Quick Link" description="Short.">
|
|
38
|
+
</snice-link-preview>
|
|
46
39
|
```
|
|
47
40
|
|
|
48
41
|
## Features
|
|
49
42
|
|
|
50
43
|
- Vertical (image top) and horizontal (image left) layouts
|
|
51
44
|
- 3 sizes: small, medium, large
|
|
52
|
-
-
|
|
53
|
-
- Title
|
|
54
|
-
- Domain
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
- Click opens URL in new tab
|
|
58
|
-
- Accessible: role="article", keyboard navigable
|
|
45
|
+
- Placeholder icon when no image
|
|
46
|
+
- Title clamped to 2 lines, description to 3
|
|
47
|
+
- Domain extracted from URL
|
|
48
|
+
- Click opens URL in new tab (noopener, noreferrer)
|
|
49
|
+
- Keyboard accessible (Enter/Space)
|