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 @@
|
|
|
1
|
+
{"version":3,"file":"snice-spreadsheet.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/spreadsheet/snice-spreadsheet.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, query, styles, ready, watch, on, dispatch, render, css, html } from 'snice';\n\nvar sheetStyles = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%;--spreadsheet-border:var(--snice-color-border, rgb(226 226 226));--spreadsheet-bg:var(--snice-color-background, rgb(255 255 255));--spreadsheet-bg-element:var(--snice-color-background-element, rgb(252 251 249));--spreadsheet-text:var(--snice-color-text, rgb(23 23 23));--spreadsheet-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--spreadsheet-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--spreadsheet-primary:var(--snice-color-primary, rgb(37 99 235));--spreadsheet-primary-subtle:var(--snice-color-primary-subtle, rgb(239 246 255));--spreadsheet-hover:var(--snice-color-background-hover, rgb(241 241 241));--spreadsheet-grid:rgba(200, 200, 200, 0.5)}.spreadsheet-formula-bar{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);border:1px solid var(--spreadsheet-border);border-bottom:none;border-radius:var(--snice-border-radius-lg,.5rem) var(--snice-border-radius-lg,.5rem) 0 0;background:var(--spreadsheet-bg-element);font-size:var(--snice-font-size-sm, .875rem)}.spreadsheet-cell-ref{display:inline-flex;align-items:center;justify-content:center;font-weight:var(--snice-font-weight-semibold,600);color:var(--spreadsheet-text-secondary);min-width:3.5rem;text-align:center;font-variant-numeric:tabular-nums;font-size:var(--snice-font-size-xs, .75rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);border:1px solid var(--spreadsheet-border);border-radius:var(--snice-border-radius-md,.25rem);background:var(--spreadsheet-bg);height:1.5rem}.spreadsheet-formula-input{flex:1;border:none;outline:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:inherit;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);background:0 0;color:var(--spreadsheet-text)}.spreadsheet{border:1px solid var(--spreadsheet-border);border-radius:0 0 var(--snice-border-radius-lg,.5rem) var(--snice-border-radius-lg,.5rem);overflow:auto;background:var(--spreadsheet-bg);position:relative;outline:0}.spreadsheet-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:var(--snice-font-size-sm, .875rem);table-layout:fixed}.spreadsheet-th{background:var(--spreadsheet-bg-element);border-right:1px solid var(--spreadsheet-grid);border-bottom:2px solid var(--spreadsheet-border);padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--spreadsheet-text);text-align:left;white-space:nowrap;cursor:pointer;user-select:none;position:sticky;top:0;z-index:2;font-size:var(--snice-font-size-xs, .75rem);height:1.75rem;min-width:5rem}.spreadsheet-th:hover{background:var(--spreadsheet-hover)}.spreadsheet-th.col-selected{background:var(--spreadsheet-primary-subtle);color:var(--spreadsheet-primary)}.spreadsheet-th-sort{display:inline-flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.spreadsheet-th-sort-icon{opacity:.4;font-size:.5rem}.spreadsheet-th-sort-icon.active{opacity:1;color:var(--spreadsheet-primary)}.spreadsheet-resize-handle{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;z-index:3}.spreadsheet-resize-handle.resizing,.spreadsheet-resize-handle:hover{background:var(--spreadsheet-primary)}.spreadsheet-row-num{background:var(--spreadsheet-bg-element);border-right:1px solid var(--spreadsheet-grid);border-bottom:1px solid var(--spreadsheet-grid);padding:0 var(--snice-spacing-xs,.5rem);font-size:var(--snice-font-size-xs, .75rem);font-variant-numeric:tabular-nums;color:var(--spreadsheet-text-tertiary);text-align:center;width:2.75rem;min-width:2.75rem;cursor:pointer;user-select:none;position:sticky;left:0;z-index:1}.spreadsheet-row-num:hover{background:var(--spreadsheet-hover)}.spreadsheet-row-num.row-selected{background:var(--spreadsheet-primary-subtle);color:var(--spreadsheet-primary);font-weight:var(--snice-font-weight-semibold,600)}th.spreadsheet-row-num{position:sticky;top:0;left:0;z-index:4;border-bottom:2px solid var(--spreadsheet-border)}.spreadsheet-td{border-right:1px solid var(--spreadsheet-grid);border-bottom:1px solid var(--spreadsheet-grid);padding:0;position:relative;min-width:5rem;height:1.75rem}.spreadsheet-td.selected{outline:2px solid var(--spreadsheet-primary);outline-offset:-2px;z-index:1}.spreadsheet-td.in-range{background:var(--spreadsheet-primary-subtle)}.spreadsheet-cell{display:block;width:100%;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);color:var(--spreadsheet-text);cursor:cell;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.75rem;line-height:1.75rem;box-sizing:border-box}.spreadsheet-table tbody tr:hover .spreadsheet-td:not(.selected):not(.in-range){background:rgba(0,0,0,.015)}.spreadsheet-table tbody tr:hover .spreadsheet-row-num:not(.row-selected){background:var(--spreadsheet-hover)}.spreadsheet-input{display:block;width:100%;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);border:none;outline:0;font-family:inherit;font-size:inherit;color:var(--spreadsheet-text);background:rgb(255 255 240);box-sizing:border-box;min-height:1.75rem;line-height:1.75rem}.spreadsheet-select{display:block;width:100%;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-2xs,.25rem);border:none;outline:0;font-family:inherit;font-size:inherit;color:var(--spreadsheet-text);background:var(--spreadsheet-bg);cursor:pointer}.spreadsheet-checkbox{display:flex;align-items:center;justify-content:center;height:1.75rem}.spreadsheet-cell-number{text-align:right;font-variant-numeric:tabular-nums}.spreadsheet-cell-boolean{text-align:center}.spreadsheet-status-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--spreadsheet-border);border-top:none;border-radius:0 0 var(--snice-border-radius-lg,.5rem) var(--snice-border-radius-lg,.5rem);background:var(--spreadsheet-bg-element);font-size:var(--snice-font-size-xs, .75rem);color:var(--spreadsheet-text-secondary);min-height:1.375rem}.spreadsheet-status-item{display:inline-flex;gap:var(--snice-spacing-2xs,.25rem)}.spreadsheet-status-label{color:var(--spreadsheet-text-tertiary)}.spreadsheet-status-value{font-weight:var(--snice-font-weight-medium,500);font-variant-numeric:tabular-nums}.spreadsheet-context-menu{position:fixed;min-width:12.5rem;background:var(--spreadsheet-bg);border:1px solid var(--spreadsheet-border);border-radius:var(--snice-border-radius-md,.25rem);box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));padding:var(--snice-spacing-2xs,.25rem) 0;z-index:100;font-size:var(--snice-font-size-sm, .875rem)}.spreadsheet-context-item{display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);cursor:pointer;color:var(--spreadsheet-text);white-space:nowrap}.spreadsheet-context-item:hover{background:var(--spreadsheet-primary-subtle)}.spreadsheet-context-item-shortcut{margin-left:auto;color:var(--spreadsheet-text-tertiary);font-size:var(--snice-font-size-xs, .75rem)}.spreadsheet-context-separator{height:1px;background:var(--spreadsheet-border);margin:var(--snice-spacing-2xs,.25rem) 0}.spreadsheet-add-row{display:flex;align-items:center;height:1.5rem;cursor:pointer;color:var(--spreadsheet-text-tertiary);font-size:var(--snice-font-size-xs, .75rem);user-select:none}.spreadsheet-add-row:hover{background:var(--spreadsheet-hover);color:var(--spreadsheet-primary)}.spreadsheet-add-row td{padding:0 var(--snice-spacing-xs,.5rem);border-right:1px solid var(--spreadsheet-grid);border-bottom:1px solid var(--spreadsheet-grid);height:1.5rem;line-height:1.5rem}.spreadsheet-add-col-header{background:var(--spreadsheet-bg-element);border-right:1px solid var(--spreadsheet-grid);border-bottom:2px solid var(--spreadsheet-border);width:2rem;min-width:2rem;text-align:center;cursor:pointer;color:var(--spreadsheet-text-tertiary);font-size:var(--snice-font-size-xs, .75rem);position:sticky;top:0;z-index:2;user-select:none}.spreadsheet-add-col-header:hover{background:var(--spreadsheet-hover);color:var(--spreadsheet-primary)}.spreadsheet-add-col-cell{border-right:1px solid var(--spreadsheet-grid);border-bottom:1px solid var(--spreadsheet-grid);width:2rem;min-width:2rem}.spreadsheet-empty{display:flex;align-items:center;justify-content:center;min-height:8rem;color:var(--spreadsheet-text-tertiary);font-size:var(--snice-font-size-sm, .875rem);cursor:default;user-select:none;padding:var(--snice-spacing-lg,1.5rem);text-align:center}\";\n\nlet SniceSpreadsheet = (() => {\n let _classDecorators = [element('snice-spreadsheet')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _data_decorators;\n let _data_initializers = [];\n let _data_extraInitializers = [];\n let _columns_decorators;\n let _columns_initializers = [];\n let _columns_extraInitializers = [];\n let _readonly_decorators;\n let _readonly_initializers = [];\n let _readonly_extraInitializers = [];\n let _cellRefEl_decorators;\n let _cellRefEl_initializers = [];\n let _cellRefEl_extraInitializers = [];\n let _formulaInputEl_decorators;\n let _formulaInputEl_initializers = [];\n let _formulaInputEl_extraInitializers = [];\n let _wrapperEl_decorators;\n let _wrapperEl_initializers = [];\n let _wrapperEl_extraInitializers = [];\n let _statusBarEl_decorators;\n let _statusBarEl_initializers = [];\n let _statusBarEl_extraInitializers = [];\n let _contextMenuEl_decorators;\n let _contextMenuEl_initializers = [];\n let _contextMenuEl_extraInitializers = [];\n let _componentStyles_decorators;\n let _init_decorators;\n let _onDataChange_decorators;\n let _handleKeydown_decorators;\n let _handleCopy_decorators;\n let _handlePaste_decorators;\n let _emitCellChange_decorators;\n let _emitCellSelect_decorators;\n let _emitRowSelect_decorators;\n let _emitColumnSort_decorators;\n let _renderSheet_decorators;\n var SniceSpreadsheet = class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _data_decorators = [property({ type: Array })];\n _columns_decorators = [property({ type: Array })];\n _readonly_decorators = [property({ type: Boolean })];\n _cellRefEl_decorators = [query('.spreadsheet-cell-ref')];\n _formulaInputEl_decorators = [query('.spreadsheet-formula-input')];\n _wrapperEl_decorators = [query('.spreadsheet')];\n _statusBarEl_decorators = [query('.spreadsheet-status-bar')];\n _contextMenuEl_decorators = [query('.spreadsheet-context-menu')];\n _componentStyles_decorators = [styles()];\n _init_decorators = [ready()];\n _onDataChange_decorators = [watch('data', 'columns')];\n _handleKeydown_decorators = [on('keydown')];\n _handleCopy_decorators = [on('copy')];\n _handlePaste_decorators = [on('paste')];\n _emitCellChange_decorators = [dispatch('cell-change', { bubbles: true, composed: true })];\n _emitCellSelect_decorators = [dispatch('cell-select', { bubbles: true, composed: true })];\n _emitRowSelect_decorators = [dispatch('row-select', { bubbles: true, composed: true })];\n _emitColumnSort_decorators = [dispatch('column-sort', { bubbles: true, composed: true })];\n _renderSheet_decorators = [render({ once: true })];\n __esDecorate(this, null, _componentStyles_decorators, { kind: \"method\", name: \"componentStyles\", static: false, private: false, access: { has: obj => \"componentStyles\" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _init_decorators, { kind: \"method\", name: \"init\", static: false, private: false, access: { has: obj => \"init\" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onDataChange_decorators, { kind: \"method\", name: \"onDataChange\", static: false, private: false, access: { has: obj => \"onDataChange\" in obj, get: obj => obj.onDataChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleKeydown_decorators, { kind: \"method\", name: \"handleKeydown\", static: false, private: false, access: { has: obj => \"handleKeydown\" in obj, get: obj => obj.handleKeydown }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleCopy_decorators, { kind: \"method\", name: \"handleCopy\", static: false, private: false, access: { has: obj => \"handleCopy\" in obj, get: obj => obj.handleCopy }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handlePaste_decorators, { kind: \"method\", name: \"handlePaste\", static: false, private: false, access: { has: obj => \"handlePaste\" in obj, get: obj => obj.handlePaste }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitCellChange_decorators, { kind: \"method\", name: \"emitCellChange\", static: false, private: false, access: { has: obj => \"emitCellChange\" in obj, get: obj => obj.emitCellChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitCellSelect_decorators, { kind: \"method\", name: \"emitCellSelect\", static: false, private: false, access: { has: obj => \"emitCellSelect\" in obj, get: obj => obj.emitCellSelect }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitRowSelect_decorators, { kind: \"method\", name: \"emitRowSelect\", static: false, private: false, access: { has: obj => \"emitRowSelect\" in obj, get: obj => obj.emitRowSelect }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitColumnSort_decorators, { kind: \"method\", name: \"emitColumnSort\", static: false, private: false, access: { has: obj => \"emitColumnSort\" in obj, get: obj => obj.emitColumnSort }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderSheet_decorators, { kind: \"method\", name: \"renderSheet\", static: false, private: false, access: { has: obj => \"renderSheet\" in obj, get: obj => obj.renderSheet }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _data_decorators, { kind: \"field\", name: \"data\", static: false, private: false, access: { has: obj => \"data\" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);\n __esDecorate(null, null, _columns_decorators, { kind: \"field\", name: \"columns\", static: false, private: false, access: { has: obj => \"columns\" in obj, get: obj => obj.columns, set: (obj, value) => { obj.columns = value; } }, metadata: _metadata }, _columns_initializers, _columns_extraInitializers);\n __esDecorate(null, null, _readonly_decorators, { kind: \"field\", name: \"readonly\", static: false, private: false, access: { has: obj => \"readonly\" in obj, get: obj => obj.readonly, set: (obj, value) => { obj.readonly = value; } }, metadata: _metadata }, _readonly_initializers, _readonly_extraInitializers);\n __esDecorate(null, null, _cellRefEl_decorators, { kind: \"field\", name: \"cellRefEl\", static: false, private: false, access: { has: obj => \"cellRefEl\" in obj, get: obj => obj.cellRefEl, set: (obj, value) => { obj.cellRefEl = value; } }, metadata: _metadata }, _cellRefEl_initializers, _cellRefEl_extraInitializers);\n __esDecorate(null, null, _formulaInputEl_decorators, { kind: \"field\", name: \"formulaInputEl\", static: false, private: false, access: { has: obj => \"formulaInputEl\" in obj, get: obj => obj.formulaInputEl, set: (obj, value) => { obj.formulaInputEl = value; } }, metadata: _metadata }, _formulaInputEl_initializers, _formulaInputEl_extraInitializers);\n __esDecorate(null, null, _wrapperEl_decorators, { kind: \"field\", name: \"wrapperEl\", static: false, private: false, access: { has: obj => \"wrapperEl\" in obj, get: obj => obj.wrapperEl, set: (obj, value) => { obj.wrapperEl = value; } }, metadata: _metadata }, _wrapperEl_initializers, _wrapperEl_extraInitializers);\n __esDecorate(null, null, _statusBarEl_decorators, { kind: \"field\", name: \"statusBarEl\", static: false, private: false, access: { has: obj => \"statusBarEl\" in obj, get: obj => obj.statusBarEl, set: (obj, value) => { obj.statusBarEl = value; } }, metadata: _metadata }, _statusBarEl_initializers, _statusBarEl_extraInitializers);\n __esDecorate(null, null, _contextMenuEl_decorators, { kind: \"field\", name: \"contextMenuEl\", static: false, private: false, access: { has: obj => \"contextMenuEl\" in obj, get: obj => obj.contextMenuEl, set: (obj, value) => { obj.contextMenuEl = value; } }, metadata: _metadata }, _contextMenuEl_initializers, _contextMenuEl_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n SniceSpreadsheet = _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static { this.UNDO_LIMIT = 100; }\n componentStyles() {\n return css `${sheetStyles}`;\n }\n init() {\n this.rebuild();\n }\n onDataChange() {\n this.rebuild();\n }\n // ── Public API ──\n getCell(row, col) {\n if (row >= 0 && row < this.data.length && col >= 0 && col < (this.data[row]?.length || 0)) {\n return this.resolveValue(this.data[row][col]);\n }\n return undefined;\n }\n setCell(row, col, value, trackUndo = true) {\n if (row < 0 || col < 0)\n return;\n while (this.data.length <= row)\n this.data.push([]);\n while (this.data[row].length <= col)\n this.data[row].push('');\n const oldValue = this.data[row][col];\n this.data[row][col] = value;\n if (trackUndo && oldValue !== value) {\n this.pushUndo({ row, col, oldValue, newValue: value });\n }\n this.data = [...this.data];\n this.emitCellChange(row, col, value, oldValue);\n }\n getData() {\n return this.data.map(row => [...row]);\n }\n setData(data) {\n this.data = data.map(row => [...row]);\n }\n // ── Undo/Redo ──\n pushUndo(entry) {\n this.undoStack.push(entry);\n if (this.undoStack.length > SniceSpreadsheet.UNDO_LIMIT)\n this.undoStack.shift();\n this.redoStack = [];\n }\n undo() {\n const entry = this.undoStack.pop();\n if (!entry)\n return;\n this.redoStack.push(entry);\n this.data[entry.row][entry.col] = entry.oldValue;\n this.selectedCell = { row: entry.row, col: entry.col };\n this.selectionStart = { ...this.selectedCell };\n this.selectionEnd = { ...this.selectedCell };\n this.data = [...this.data];\n }\n redo() {\n const entry = this.redoStack.pop();\n if (!entry)\n return;\n this.undoStack.push(entry);\n this.data[entry.row][entry.col] = entry.newValue;\n this.selectedCell = { row: entry.row, col: entry.col };\n this.selectionStart = { ...this.selectedCell };\n this.selectionEnd = { ...this.selectedCell };\n this.data = [...this.data];\n }\n // ── Selection Helpers ──\n getSelectionRange() {\n if (!this.selectionStart || !this.selectionEnd)\n return null;\n return {\n start: {\n row: Math.min(this.selectionStart.row, this.selectionEnd.row),\n col: Math.min(this.selectionStart.col, this.selectionEnd.col),\n },\n end: {\n row: Math.max(this.selectionStart.row, this.selectionEnd.row),\n col: Math.max(this.selectionStart.col, this.selectionEnd.col),\n },\n };\n }\n isInRange(row, col) {\n const range = this.getSelectionRange();\n if (!range)\n return false;\n return row >= range.start.row && row <= range.end.row &&\n col >= range.start.col && col <= range.end.col;\n }\n hasMultiSelection() {\n if (!this.selectionStart || !this.selectionEnd)\n return false;\n return this.selectionStart.row !== this.selectionEnd.row ||\n this.selectionStart.col !== this.selectionEnd.col;\n }\n getSelectionStats() {\n const range = this.getSelectionRange();\n if (!range || !this.hasMultiSelection())\n return null;\n const nums = [];\n for (let r = range.start.row; r <= range.end.row; r++) {\n for (let c = range.start.col; c <= range.end.col; c++) {\n const val = this.getCell(r, c);\n const num = typeof val === 'number' ? val : parseFloat(val);\n if (!isNaN(num))\n nums.push(num);\n }\n }\n if (nums.length === 0)\n return null;\n const sum = nums.reduce((a, b) => a + b, 0);\n return { count: nums.length, sum, avg: sum / nums.length };\n }\n // ── Formula Support ──\n resolveValue(value) {\n if (typeof value !== 'string' || !value.startsWith('='))\n return value;\n try {\n return this.evaluateFormula(value.substring(1).toUpperCase().trim());\n }\n catch {\n return '#ERROR';\n }\n }\n evaluateFormula(formula) {\n const fnMatch = formula.match(/^(SUM|AVG|AVERAGE|COUNT|MIN|MAX)\\(([^)]+)\\)$/);\n if (!fnMatch)\n return '#ERROR';\n const fn = fnMatch[1];\n const nums = this.resolveRange(fnMatch[2]).filter(v => typeof v === 'number' && !isNaN(v));\n switch (fn) {\n case 'SUM': return nums.reduce((a, b) => a + b, 0);\n case 'AVG':\n case 'AVERAGE': return nums.length > 0 ? nums.reduce((a, b) => a + b, 0) / nums.length : 0;\n case 'COUNT': return nums.length;\n case 'MIN': return nums.length > 0 ? Math.min(...nums) : 0;\n case 'MAX': return nums.length > 0 ? Math.max(...nums) : 0;\n default: return '#ERROR';\n }\n }\n resolveRange(rangeStr) {\n const parts = rangeStr.split(':');\n if (parts.length === 2) {\n const start = this.parseCellRef(parts[0].trim());\n const end = this.parseCellRef(parts[1].trim());\n if (!start || !end)\n return [];\n const values = [];\n for (let r = start.row; r <= end.row; r++) {\n for (let c = start.col; c <= end.col; c++) {\n if (r < this.data.length && c < (this.data[r]?.length || 0)) {\n const raw = this.data[r][c];\n const val = typeof raw === 'string' && raw.startsWith('=') ? this.resolveValue(raw) : raw;\n const num = typeof val === 'number' ? val : parseFloat(val);\n if (!isNaN(num))\n values.push(num);\n }\n }\n }\n return values;\n }\n const ref = this.parseCellRef(rangeStr.trim());\n if (ref && ref.row < this.data.length && ref.col < (this.data[ref.row]?.length || 0)) {\n const val = this.resolveValue(this.data[ref.row][ref.col]);\n return [typeof val === 'number' ? val : parseFloat(val)].filter(v => !isNaN(v));\n }\n return [];\n }\n parseCellRef(ref) {\n const match = ref.match(/^([A-Z]+)(\\d+)$/);\n if (!match)\n return null;\n let col = 0;\n for (const ch of match[1])\n col = col * 26 + (ch.charCodeAt(0) - 64);\n return { row: parseInt(match[2], 10) - 1, col: col - 1 };\n }\n colToLetter(col) {\n let result = '';\n let c = col;\n while (c >= 0) {\n result = String.fromCharCode(65 + (c % 26)) + result;\n c = Math.floor(c / 26) - 1;\n }\n return result;\n }\n getCellRef() {\n if (!this.selectedCell)\n return '';\n return `${this.colToLetter(this.selectedCell.col)}${this.selectedCell.row + 1}`;\n }\n getColumnCount() {\n return Math.max(this.columns.length, ...this.data.map(row => row?.length || 0), 1);\n }\n getDefaultColWidth(col) {\n return this.columns[col]?.width || 100;\n }\n getColWidth(col) {\n return this.columnWidths.get(col) || this.getDefaultColWidth(col);\n }\n // ── Cell Interaction ──\n handleCellMouseDown(row, col, e) {\n if (this.editingCell)\n this.commitEdit();\n if (e.shiftKey && this.selectedCell) {\n this.selectionEnd = { row, col };\n }\n else {\n this.selectedCell = { row, col };\n this.selectionStart = { row, col };\n this.selectionEnd = { row, col };\n this.isDragging = true;\n this.boundDragMove = (ev) => this.handleDragMove(ev);\n this.boundDragUp = () => this.handleDragEnd();\n document.addEventListener('mousemove', this.boundDragMove);\n document.addEventListener('mouseup', this.boundDragUp);\n }\n this.editingCell = null;\n this.emitCellSelect(row, col);\n this.updateSelection();\n }\n handleDragMove(e) {\n if (!this.isDragging || !this.wrapperEl)\n return;\n const cells = this.wrapperEl.querySelectorAll('.spreadsheet-td');\n let closestRow = -1, closestCol = -1, minDist = Infinity;\n cells.forEach(cell => {\n const r = parseInt(cell.getAttribute('data-row') || '-1');\n const c = parseInt(cell.getAttribute('data-col') || '-1');\n if (r < 0 || c < 0)\n return;\n const rect = cell.getBoundingClientRect();\n const dist = Math.hypot(e.clientX - (rect.left + rect.width / 2), e.clientY - (rect.top + rect.height / 2));\n if (dist < minDist) {\n minDist = dist;\n closestRow = r;\n closestCol = c;\n }\n });\n if (closestRow >= 0 && (closestRow !== this.selectionEnd?.row || closestCol !== this.selectionEnd?.col)) {\n this.selectionEnd = { row: closestRow, col: closestCol };\n this.updateSelection();\n }\n }\n handleDragEnd() {\n this.isDragging = false;\n if (this.boundDragMove) {\n document.removeEventListener('mousemove', this.boundDragMove);\n this.boundDragMove = null;\n }\n if (this.boundDragUp) {\n document.removeEventListener('mouseup', this.boundDragUp);\n this.boundDragUp = null;\n }\n }\n handleCellDblClick(row, col) {\n if (this.readonly)\n return;\n this.startEditing(row, col);\n }\n startEditing(row, col, initialValue) {\n if (this.readonly)\n return;\n this.editingCell = { row, col };\n const raw = this.data[row]?.[col];\n this.editValue = initialValue !== undefined ? initialValue : (raw != null ? String(raw) : '');\n this.selectedCell = { row, col };\n this.selectionStart = { row, col };\n this.selectionEnd = { row, col };\n const td = this.wrapperEl?.querySelector(`td[data-row=\"${row}\"][data-col=\"${col}\"]`);\n if (!td)\n return;\n td.classList.add('selected');\n const colDef = this.columns[col];\n const cellType = colDef?.type || 'text';\n if (cellType === 'boolean') {\n td.innerHTML = `<div class=\"spreadsheet-checkbox\"><input type=\"checkbox\" ${raw ? 'checked' : ''} /></div>`;\n const cb = td.querySelector('input');\n cb?.addEventListener('change', (e) => { this.editingCell = null; this.setCell(row, col, e.target.checked); });\n cb?.focus();\n }\n else if (cellType === 'select' && colDef?.options) {\n const opts = colDef.options.map(opt => `<option value=\"${this.escAttr(opt)}\" ${raw === opt ? 'selected' : ''}>${this.esc(opt)}</option>`).join('');\n td.innerHTML = `<select class=\"spreadsheet-select\">${opts}</select>`;\n const sel = td.querySelector('select');\n sel?.addEventListener('change', (e) => { this.editingCell = null; this.setCell(row, col, e.target.value); });\n sel?.focus();\n }\n else {\n const inputType = cellType === 'number' ? 'number' : cellType === 'date' ? 'date' : 'text';\n td.innerHTML = `<input class=\"spreadsheet-input\" type=\"${inputType}\" value=\"${this.escAttr(this.editValue)}\" />`;\n const input = td.querySelector('input');\n if (input) {\n input.addEventListener('input', (e) => { this.editValue = e.target.value; });\n input.addEventListener('keydown', (e) => this.handleEditKeydown(e));\n input.addEventListener('blur', () => this.commitEdit());\n input.focus();\n if (initialValue !== undefined) {\n input.setSelectionRange(input.value.length, input.value.length);\n }\n else {\n input.select();\n }\n }\n }\n this.updateFormulaBar();\n }\n handleEditKeydown(e) {\n const row = this.editingCell?.row;\n const col = this.editingCell?.col;\n if (row === undefined || col === undefined)\n return;\n if (e.key === 'Enter') {\n e.preventDefault();\n this.commitEdit();\n const nextRow = row + 1;\n if (nextRow >= this.data.length)\n this.addRow();\n this.selectedCell = { row: nextRow, col };\n this.selectionStart = { ...this.selectedCell };\n this.selectionEnd = { ...this.selectedCell };\n this.updateSelection();\n }\n else if (e.key === 'Escape') {\n e.preventDefault();\n this.editingCell = null;\n this.restoreCell(row, col);\n this.updateSelection();\n }\n else if (e.key === 'Tab') {\n e.preventDefault();\n this.commitEdit();\n const nextCol = e.shiftKey ? col - 1 : col + 1;\n if (nextCol >= 0) {\n if (nextCol >= this.getColumnCount())\n this.addColumn();\n this.selectedCell = { row, col: nextCol };\n this.selectionStart = { ...this.selectedCell };\n this.selectionEnd = { ...this.selectedCell };\n this.updateSelection();\n }\n }\n }\n commitEdit() {\n if (!this.editingCell)\n return;\n const { row, col } = this.editingCell;\n let value = this.editValue;\n const colDef = this.columns[col];\n const type = colDef?.type || 'text';\n if (type === 'number' && !value.startsWith('=')) {\n const num = parseFloat(value);\n if (!isNaN(num))\n value = num;\n }\n else if (type === 'boolean') {\n value = value === 'true' || value === '1';\n }\n this.editingCell = null;\n this.setCell(row, col, value);\n }\n restoreCell(row, col) {\n const td = this.wrapperEl?.querySelector(`td[data-row=\"${row}\"][data-col=\"${col}\"]`);\n if (!td)\n return;\n const rawValue = this.data[row]?.[col];\n const displayValue = this.resolveValue(rawValue);\n const colDef = this.columns[col];\n const cellType = colDef?.type || 'text';\n const display = cellType === 'boolean'\n ? (displayValue ? '\\u2713' : '\\u2717')\n : (displayValue != null ? this.esc(String(displayValue)) : '');\n const contentClass = cellType === 'number' ? 'spreadsheet-cell spreadsheet-cell-number'\n : cellType === 'boolean' ? 'spreadsheet-cell spreadsheet-cell-boolean'\n : 'spreadsheet-cell';\n td.innerHTML = `<span class=\"${contentClass}\">${display}</span>`;\n }\n handleRowClick(row) {\n this.selectedCell = { row, col: 0 };\n this.selectionStart = { row, col: 0 };\n this.selectionEnd = { row, col: this.getColumnCount() - 1 };\n this.emitRowSelect(row);\n this.updateSelection();\n }\n handleHeaderClick(col) {\n if (this.sortCol === col) {\n this.sortDir = this.sortDir === 'asc' ? 'desc' : 'asc';\n }\n else {\n this.sortCol = col;\n this.sortDir = 'asc';\n }\n this.data = [...this.data].sort((a, b) => {\n const aVal = a[col], bVal = b[col];\n if (aVal === bVal)\n return 0;\n if (aVal == null)\n return 1;\n if (bVal == null)\n return -1;\n const cmp = typeof aVal === 'number' && typeof bVal === 'number'\n ? aVal - bVal : String(aVal).localeCompare(String(bVal));\n return this.sortDir === 'asc' ? cmp : -cmp;\n });\n this.emitColumnSort(col, this.sortDir);\n }\n // ── Column Resize ──\n handleResizeStart(col, e) {\n e.preventDefault();\n e.stopPropagation();\n this.resizingCol = col;\n this.resizeStartX = e.clientX;\n this.resizeStartWidth = this.getColWidth(col);\n this.boundResizeMove = (ev) => this.handleResizeMove(ev);\n this.boundResizeUp = () => this.handleResizeEnd();\n document.addEventListener('mousemove', this.boundResizeMove);\n document.addEventListener('mouseup', this.boundResizeUp);\n }\n handleResizeMove(e) {\n if (this.resizingCol < 0 || !this.wrapperEl)\n return;\n const newWidth = Math.max(40, this.resizeStartWidth + (e.clientX - this.resizeStartX));\n this.columnWidths.set(this.resizingCol, newWidth);\n this.wrapperEl.querySelectorAll(`th[data-col=\"${this.resizingCol}\"], td[data-col=\"${this.resizingCol}\"]`).forEach(el => {\n el.style.width = `${newWidth}px`;\n });\n }\n handleResizeEnd() {\n this.resizingCol = -1;\n if (this.boundResizeMove) {\n document.removeEventListener('mousemove', this.boundResizeMove);\n this.boundResizeMove = null;\n }\n if (this.boundResizeUp) {\n document.removeEventListener('mouseup', this.boundResizeUp);\n this.boundResizeUp = null;\n }\n }\n // ── Context Menu ──\n handleContextMenu(row, col, e) {\n e.preventDefault();\n this.selectedCell = { row, col };\n this.contextMenuCell = { row, col };\n this.showContextMenu(e.clientX, e.clientY);\n this.updateSelection();\n setTimeout(() => {\n this.boundCloseContext = (ev) => {\n if (this.contextMenuEl && !this.contextMenuEl.contains(ev.target))\n this.hideContextMenu();\n };\n this.boundCloseContextKey = (ev) => {\n if (ev.key === 'Escape')\n this.hideContextMenu();\n };\n document.addEventListener('mousedown', this.boundCloseContext);\n document.addEventListener('keydown', this.boundCloseContextKey);\n }, 0);\n }\n showContextMenu(x, y) {\n if (!this.contextMenuEl)\n return;\n this.contextMenuEl.style.left = `${x}px`;\n this.contextMenuEl.style.top = `${y}px`;\n this.contextMenuEl.hidden = false;\n }\n hideContextMenu() {\n if (this.contextMenuEl)\n this.contextMenuEl.hidden = true;\n this.contextMenuCell = null;\n if (this.boundCloseContext) {\n document.removeEventListener('mousedown', this.boundCloseContext);\n this.boundCloseContext = null;\n }\n if (this.boundCloseContextKey) {\n document.removeEventListener('keydown', this.boundCloseContextKey);\n this.boundCloseContextKey = null;\n }\n }\n contextAction(action) {\n const cell = this.contextMenuCell;\n if (!cell) {\n this.hideContextMenu();\n return;\n }\n const { row, col } = cell;\n switch (action) {\n case 'cut':\n this.handleCopyCells();\n this.clearSelectedCells();\n break;\n case 'copy':\n this.handleCopyCells();\n break;\n case 'insert-row-above':\n this.insertRow(row);\n break;\n case 'insert-row-below':\n this.insertRow(row + 1);\n break;\n case 'delete-row':\n this.deleteRow(row);\n break;\n case 'insert-col-left':\n this.insertColumn(col);\n break;\n case 'insert-col-right':\n this.insertColumn(col + 1);\n break;\n case 'delete-col':\n this.deleteColumn(col);\n break;\n case 'clear':\n this.clearSelectedCells();\n break;\n }\n this.hideContextMenu();\n }\n // ── Clipboard ──\n handleCopyCells() {\n const range = this.getSelectionRange();\n if (!range) {\n if (this.selectedCell) {\n navigator.clipboard.writeText(String(this.getCell(this.selectedCell.row, this.selectedCell.col) ?? '')).catch(() => { });\n }\n return;\n }\n const lines = [];\n for (let r = range.start.row; r <= range.end.row; r++) {\n const cells = [];\n for (let c = range.start.col; c <= range.end.col; c++) {\n cells.push(String(this.getCell(r, c) ?? ''));\n }\n lines.push(cells.join('\\t'));\n }\n navigator.clipboard.writeText(lines.join('\\n')).catch(() => { });\n }\n clearSelectedCells() {\n const range = this.getSelectionRange();\n if (range && this.hasMultiSelection()) {\n for (let r = range.start.row; r <= range.end.row; r++) {\n for (let c = range.start.col; c <= range.end.col; c++) {\n this.setCell(r, c, '');\n }\n }\n }\n else if (this.selectedCell) {\n this.setCell(this.selectedCell.row, this.selectedCell.col, '');\n }\n }\n // ── Row/Column Operations ──\n insertRow(atIndex) {\n this.data.splice(atIndex, 0, new Array(this.getColumnCount()).fill(''));\n this.data = [...this.data];\n }\n deleteRow(index) {\n if (this.data.length <= 1)\n return;\n this.data.splice(index, 1);\n this.data = [...this.data];\n }\n insertColumn(atIndex) {\n for (const row of this.data)\n row.splice(atIndex, 0, '');\n if (this.columns.length > 0) {\n this.columns.splice(atIndex, 0, { header: this.colToLetter(atIndex) });\n this.columns = [...this.columns];\n }\n this.data = [...this.data];\n }\n deleteColumn(index) {\n if (this.getColumnCount() <= 1)\n return;\n for (const row of this.data) {\n if (index < row.length)\n row.splice(index, 1);\n }\n if (this.columns.length > index) {\n this.columns.splice(index, 1);\n this.columns = [...this.columns];\n }\n this.data = [...this.data];\n }\n addRow() {\n this.data.push(new Array(this.getColumnCount()).fill(''));\n this.data = [...this.data];\n }\n addColumn() {\n for (const row of this.data)\n row.push('');\n if (this.columns.length > 0) {\n this.columns.push({ header: this.colToLetter(this.columns.length) });\n this.columns = [...this.columns];\n }\n this.data = [...this.data];\n }\n // ── Keyboard ──\n handleKeydown(e) {\n if ((e.ctrlKey || e.metaKey) && e.key === 'z' && !e.shiftKey) {\n e.preventDefault();\n this.undo();\n return;\n }\n if ((e.ctrlKey || e.metaKey) && (e.key === 'y' || (e.key === 'z' && e.shiftKey))) {\n e.preventDefault();\n this.redo();\n return;\n }\n if (this.editingCell)\n return;\n if (!this.selectedCell)\n return;\n const { row, col } = this.selectedCell;\n if (!e.ctrlKey && !e.metaKey && !e.altKey && e.key.length === 1 && !this.readonly) {\n e.preventDefault();\n this.startEditing(row, col, e.key);\n return;\n }\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault();\n if (row > 0) {\n const nr = row - 1;\n this.selectedCell = { row: nr, col };\n if (e.shiftKey) {\n this.selectionEnd = { row: nr, col: this.selectionEnd?.col ?? col };\n }\n else {\n this.selectionStart = { row: nr, col };\n this.selectionEnd = { row: nr, col };\n }\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (row < this.data.length - 1) {\n const nr = row + 1;\n this.selectedCell = { row: nr, col };\n if (e.shiftKey) {\n this.selectionEnd = { row: nr, col: this.selectionEnd?.col ?? col };\n }\n else {\n this.selectionStart = { row: nr, col };\n this.selectionEnd = { row: nr, col };\n }\n }\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (col > 0) {\n const nc = col - 1;\n this.selectedCell = { row, col: nc };\n if (e.shiftKey) {\n this.selectionEnd = { row: this.selectionEnd?.row ?? row, col: nc };\n }\n else {\n this.selectionStart = { row, col: nc };\n this.selectionEnd = { row, col: nc };\n }\n }\n break;\n case 'ArrowRight':\n e.preventDefault();\n {\n const nc = col + 1;\n this.selectedCell = { row, col: nc };\n if (e.shiftKey) {\n this.selectionEnd = { row: this.selectionEnd?.row ?? row, col: nc };\n }\n else {\n this.selectionStart = { row, col: nc };\n this.selectionEnd = { row, col: nc };\n }\n }\n break;\n case 'Enter':\n case 'F2':\n e.preventDefault();\n if (!this.readonly)\n this.startEditing(row, col);\n return;\n case 'Delete':\n case 'Backspace':\n e.preventDefault();\n if (!this.readonly)\n this.clearSelectedCells();\n return;\n default:\n return;\n }\n this.updateSelection();\n }\n handleCopy(e) {\n const range = this.getSelectionRange();\n if (range && this.hasMultiSelection()) {\n const lines = [];\n for (let r = range.start.row; r <= range.end.row; r++) {\n const cells = [];\n for (let c = range.start.col; c <= range.end.col; c++) {\n cells.push(String(this.getCell(r, c) ?? ''));\n }\n lines.push(cells.join('\\t'));\n }\n e.clipboardData?.setData('text/plain', lines.join('\\n'));\n }\n else if (this.selectedCell) {\n e.clipboardData?.setData('text/plain', String(this.getCell(this.selectedCell.row, this.selectedCell.col) ?? ''));\n }\n e.preventDefault();\n }\n handlePaste(e) {\n if (this.readonly || !this.selectedCell)\n return;\n const text = e.clipboardData?.getData('text/plain') || '';\n e.preventDefault();\n const rows = text.split('\\n').filter(r => r.length > 0);\n const startRow = this.selectedCell.row;\n const startCol = this.selectedCell.col;\n for (let r = 0; r < rows.length; r++) {\n const cells = rows[r].split('\\t');\n for (let c = 0; c < cells.length; c++) {\n this.setCell(startRow + r, startCol + c, cells[c]);\n }\n }\n }\n // ── DOM: Rebuild ──\n rebuild() {\n const wrapper = this.wrapperEl;\n if (!wrapper) {\n requestAnimationFrame(() => this.rebuild());\n return;\n }\n if (!this.listenersAttached) {\n this.attachListeners();\n this.listenersAttached = true;\n }\n if (this.data.length === 0) {\n wrapper.innerHTML = '<div class=\"spreadsheet-empty\">Double-click or start typing to add data</div>';\n this.updateFormulaBar();\n this.updateStatusBar();\n return;\n }\n const colCount = this.getColumnCount();\n let h = '<table class=\"spreadsheet-table\"><thead><tr>';\n h += '<th class=\"spreadsheet-row-num\"> </th>';\n for (let c = 0; c < colCount; c++) {\n const header = this.columns[c]?.header || this.colToLetter(c);\n const width = this.getColWidth(c);\n h += `<th class=\"spreadsheet-th\" data-col=\"${c}\" style=\"width:${width}px;position:relative\">`;\n h += `<span class=\"spreadsheet-th-sort\">${this.esc(header)}`;\n if (this.sortCol === c) {\n h += `<span class=\"spreadsheet-th-sort-icon active\">${this.sortDir === 'asc' ? '\\u25B2' : '\\u25BC'}</span>`;\n }\n h += '</span>';\n h += `<div class=\"spreadsheet-resize-handle\" data-resize-col=\"${c}\"></div>`;\n h += '</th>';\n }\n h += '<th class=\"spreadsheet-add-col-header\" data-action=\"add-col\">+</th>';\n h += '</tr></thead><tbody>';\n for (let r = 0; r < this.data.length; r++) {\n h += '<tr>';\n h += `<td class=\"spreadsheet-row-num\" data-row=\"${r}\">${r + 1}</td>`;\n for (let c = 0; c < colCount; c++) {\n const rawValue = this.data[r]?.[c];\n const displayValue = this.resolveValue(rawValue);\n const colDef = this.columns[c];\n const cellType = colDef?.type || 'text';\n const width = this.getColWidth(c);\n const display = cellType === 'boolean'\n ? (displayValue ? '\\u2713' : '\\u2717')\n : (displayValue != null ? this.esc(String(displayValue)) : '');\n const contentClass = cellType === 'number' ? 'spreadsheet-cell spreadsheet-cell-number'\n : cellType === 'boolean' ? 'spreadsheet-cell spreadsheet-cell-boolean'\n : 'spreadsheet-cell';\n h += `<td class=\"spreadsheet-td\" data-row=\"${r}\" data-col=\"${c}\" style=\"width:${width}px\">`;\n h += `<span class=\"${contentClass}\">${display}</span>`;\n h += '</td>';\n }\n h += '<td class=\"spreadsheet-add-col-cell\"></td>';\n h += '</tr>';\n }\n h += '<tr class=\"spreadsheet-add-row\" data-action=\"add-row\">';\n h += '<td class=\"spreadsheet-row-num\" style=\"position:sticky;left:0\">+</td>';\n for (let c = 0; c <= colCount; c++)\n h += '<td></td>';\n h += '</tr></tbody></table>';\n wrapper.innerHTML = h;\n this.updateSelection();\n }\n // ── DOM: Event Delegation ──\n attachListeners() {\n const wrapper = this.wrapperEl;\n if (!wrapper)\n return;\n wrapper.addEventListener('mousedown', (e) => {\n const target = e.target;\n const resizeHandle = target.closest('.spreadsheet-resize-handle');\n if (resizeHandle) {\n this.handleResizeStart(parseInt(resizeHandle.dataset.resizeCol), e);\n return;\n }\n const td = target.closest('td[data-row][data-col]');\n if (td && e.button === 0) {\n this.handleCellMouseDown(parseInt(td.dataset.row), parseInt(td.dataset.col), e);\n }\n });\n wrapper.addEventListener('click', (e) => {\n const target = e.target;\n const th = target.closest('th.spreadsheet-th[data-col]');\n if (th) {\n this.handleHeaderClick(parseInt(th.dataset.col));\n return;\n }\n const rowNum = target.closest('td.spreadsheet-row-num[data-row]');\n if (rowNum) {\n this.handleRowClick(parseInt(rowNum.dataset.row));\n return;\n }\n if (target.closest('[data-action=\"add-row\"]')) {\n this.addRow();\n return;\n }\n if (target.closest('[data-action=\"add-col\"]')) {\n this.addColumn();\n return;\n }\n });\n wrapper.addEventListener('dblclick', (e) => {\n const target = e.target;\n const td = target.closest('td[data-row][data-col]');\n if (td) {\n this.handleCellDblClick(parseInt(td.dataset.row), parseInt(td.dataset.col));\n return;\n }\n if (target.closest('.spreadsheet-empty')) {\n this.data = [['']];\n requestAnimationFrame(() => this.startEditing(0, 0));\n }\n });\n wrapper.addEventListener('contextmenu', (e) => {\n const target = e.target;\n const td = target.closest('td[data-row][data-col]');\n if (td)\n this.handleContextMenu(parseInt(td.dataset.row), parseInt(td.dataset.col), e);\n });\n if (this.formulaInputEl) {\n this.formulaInputEl.addEventListener('input', (e) => {\n if (this.selectedCell) {\n this.setCell(this.selectedCell.row, this.selectedCell.col, e.target.value);\n }\n });\n }\n if (this.contextMenuEl) {\n this.contextMenuEl.addEventListener('click', (e) => {\n const item = e.target.closest('[data-ctx]');\n if (item)\n this.contextAction(item.dataset.ctx);\n });\n }\n }\n // ── DOM: Targeted Updates ──\n updateSelection() {\n const wrapper = this.wrapperEl;\n if (!wrapper)\n return;\n wrapper.querySelectorAll('.selected').forEach(el => el.classList.remove('selected'));\n wrapper.querySelectorAll('.in-range').forEach(el => el.classList.remove('in-range'));\n wrapper.querySelectorAll('.col-selected').forEach(el => el.classList.remove('col-selected'));\n wrapper.querySelectorAll('.row-selected').forEach(el => el.classList.remove('row-selected'));\n if (this.selectedCell) {\n const { row, col } = this.selectedCell;\n const cell = wrapper.querySelector(`td[data-row=\"${row}\"][data-col=\"${col}\"]`);\n if (cell)\n cell.classList.add('selected');\n const colHeader = wrapper.querySelector(`th[data-col=\"${col}\"]`);\n if (colHeader)\n colHeader.classList.add('col-selected');\n const rowNum = wrapper.querySelector(`td.spreadsheet-row-num[data-row=\"${row}\"]`);\n if (rowNum)\n rowNum.classList.add('row-selected');\n }\n const range = this.getSelectionRange();\n if (range && this.hasMultiSelection()) {\n for (let r = range.start.row; r <= range.end.row; r++) {\n for (let c = range.start.col; c <= range.end.col; c++) {\n if (this.selectedCell && r === this.selectedCell.row && c === this.selectedCell.col)\n continue;\n const cell = wrapper.querySelector(`td[data-row=\"${r}\"][data-col=\"${c}\"]`);\n if (cell)\n cell.classList.add('in-range');\n }\n }\n }\n this.updateFormulaBar();\n this.updateStatusBar();\n }\n updateFormulaBar() {\n if (this.cellRefEl)\n this.cellRefEl.textContent = this.getCellRef();\n if (this.formulaInputEl) {\n const rawVal = this.selectedCell\n ? String(this.data[this.selectedCell.row]?.[this.selectedCell.col] ?? '')\n : '';\n if (this.formulaInputEl.value !== rawVal) {\n this.formulaInputEl.value = rawVal;\n }\n this.formulaInputEl.readOnly = this.readonly;\n }\n }\n updateStatusBar() {\n if (!this.statusBarEl)\n return;\n const stats = this.getSelectionStats();\n if (stats) {\n this.statusBarEl.innerHTML =\n `<span class=\"spreadsheet-status-item\"><span class=\"spreadsheet-status-label\">Count:</span><span class=\"spreadsheet-status-value\">${stats.count}</span></span>` +\n `<span class=\"spreadsheet-status-item\"><span class=\"spreadsheet-status-label\">Sum:</span><span class=\"spreadsheet-status-value\">${stats.sum.toFixed(2)}</span></span>` +\n `<span class=\"spreadsheet-status-item\"><span class=\"spreadsheet-status-label\">Avg:</span><span class=\"spreadsheet-status-value\">${stats.avg.toFixed(2)}</span></span>`;\n }\n else {\n this.statusBarEl.innerHTML = '';\n }\n }\n // ── HTML Helpers ──\n esc(str) {\n return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n }\n escAttr(str) {\n return this.esc(str).replace(/\"/g, '"');\n }\n // ── Events ──\n emitCellChange(row, col, value, oldValue) {\n return { row, col, value, oldValue };\n }\n emitCellSelect(row, col) {\n return { row, col };\n }\n emitRowSelect(row) {\n return { row };\n }\n emitColumnSort(col, direction) {\n return { col, direction };\n }\n // ── Shell Render ──\n renderSheet() {\n return html `\n <div class=\"spreadsheet-formula-bar\">\n <span class=\"spreadsheet-cell-ref\"></span>\n <input class=\"spreadsheet-formula-input\" />\n </div>\n <div class=\"spreadsheet\" tabindex=\"0\"></div>\n <div class=\"spreadsheet-status-bar\"></div>\n <div class=\"spreadsheet-context-menu\" hidden>\n <div class=\"spreadsheet-context-item\" data-ctx=\"cut\"><span>Cut</span><span class=\"spreadsheet-context-item-shortcut\">Ctrl+X</span></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"copy\"><span>Copy</span><span class=\"spreadsheet-context-item-shortcut\">Ctrl+C</span></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"paste\"><span>Paste</span><span class=\"spreadsheet-context-item-shortcut\">Ctrl+V</span></div>\n <div class=\"spreadsheet-context-separator\"></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"insert-row-above\"><span>Insert Row Above</span></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"insert-row-below\"><span>Insert Row Below</span></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"delete-row\"><span>Delete Row</span></div>\n <div class=\"spreadsheet-context-separator\"></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"insert-col-left\"><span>Insert Column Left</span></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"insert-col-right\"><span>Insert Column Right</span></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"delete-col\"><span>Delete Column</span></div>\n <div class=\"spreadsheet-context-separator\"></div>\n <div class=\"spreadsheet-context-item\" data-ctx=\"clear\"><span>Clear Cell(s)</span><span class=\"spreadsheet-context-item-shortcut\">Del</span></div>\n </div>\n `;\n }\n constructor() {\n super(...arguments);\n this.data = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _data_initializers, []));\n this.columns = (__runInitializers(this, _data_extraInitializers), __runInitializers(this, _columns_initializers, []));\n this.readonly = (__runInitializers(this, _columns_extraInitializers), __runInitializers(this, _readonly_initializers, false));\n this.selectedCell = (__runInitializers(this, _readonly_extraInitializers), null);\n this.editingCell = null;\n this.editValue = '';\n this.sortCol = -1;\n this.sortDir = 'asc';\n this.selectionStart = null;\n this.selectionEnd = null;\n this.isDragging = false;\n this.undoStack = [];\n this.redoStack = [];\n this.columnWidths = new Map();\n this.resizingCol = -1;\n this.resizeStartX = 0;\n this.resizeStartWidth = 0;\n this.contextMenuCell = null;\n this.boundDragMove = null;\n this.boundDragUp = null;\n this.boundResizeMove = null;\n this.boundResizeUp = null;\n this.boundCloseContext = null;\n this.boundCloseContextKey = null;\n this.listenersAttached = false;\n this.cellRefEl = __runInitializers(this, _cellRefEl_initializers, void 0);\n this.formulaInputEl = (__runInitializers(this, _cellRefEl_extraInitializers), __runInitializers(this, _formulaInputEl_initializers, void 0));\n this.wrapperEl = (__runInitializers(this, _formulaInputEl_extraInitializers), __runInitializers(this, _wrapperEl_initializers, void 0));\n this.statusBarEl = (__runInitializers(this, _wrapperEl_extraInitializers), __runInitializers(this, _statusBarEl_initializers, void 0));\n this.contextMenuEl = (__runInitializers(this, _statusBarEl_extraInitializers), __runInitializers(this, _contextMenuEl_initializers, void 0));\n __runInitializers(this, _contextMenuEl_extraInitializers);\n }\n static {\n __runInitializers(_classThis, _classExtraInitializers);\n }\n };\n return SniceSpreadsheet = _classThis;\n})();\n\nexport { SniceSpreadsheet };\n//# sourceMappingURL=snice-spreadsheet.js.map\n"],"names":["__esDecorate","ctor","descriptorIn","decorators","contextIn","initializers","extraInitializers","accept","f","TypeError","_","kind","key","target","prototype","descriptor","Object","getOwnPropertyDescriptor","name","done","i","length","context","p","access","addInitializer","push","result","get","set","init","unshift","defineProperty","__runInitializers","thisArg","value","useValue","arguments","call","SuppressedError","SniceSpreadsheet","_classDescriptor","_classThis","_data_decorators","_columns_decorators","_readonly_decorators","_cellRefEl_decorators","_formulaInputEl_decorators","_wrapperEl_decorators","_statusBarEl_decorators","_contextMenuEl_decorators","_componentStyles_decorators","_init_decorators","_onDataChange_decorators","_handleKeydown_decorators","_handleCopy_decorators","_handlePaste_decorators","_emitCellChange_decorators","_emitCellSelect_decorators","_emitRowSelect_decorators","_emitColumnSort_decorators","_renderSheet_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_data_initializers","_data_extraInitializers","_columns_initializers","_columns_extraInitializers","_readonly_initializers","_readonly_extraInitializers","_cellRefEl_initializers","_cellRefEl_extraInitializers","_formulaInputEl_initializers","_formulaInputEl_extraInitializers","_wrapperEl_initializers","_wrapperEl_extraInitializers","_statusBarEl_initializers","_statusBarEl_extraInitializers","_contextMenuEl_initializers","_contextMenuEl_extraInitializers","this","_metadata","Symbol","metadata","create","property","type","Array","Boolean","query","styles","ready","watch","on","dispatch","bubbles","composed","render","once","static","private","has","obj","componentStyles","onDataChange","handleKeydown","handleCopy","handlePaste","emitCellChange","emitCellSelect","emitRowSelect","emitColumnSort","renderSheet","data","columns","readonly","cellRefEl","formulaInputEl","wrapperEl","statusBarEl","contextMenuEl","enumerable","configurable","writable","UNDO_LIMIT","css","rebuild","getCell","row","col","resolveValue","setCell","trackUndo","oldValue","pushUndo","newValue","getData","map","setData","entry","undoStack","shift","redoStack","undo","pop","selectedCell","selectionStart","selectionEnd","redo","getSelectionRange","start","Math","min","end","max","isInRange","range","hasMultiSelection","getSelectionStats","nums","r","c","val","num","parseFloat","isNaN","sum","reduce","a","b","count","avg","startsWith","evaluateFormula","substring","toUpperCase","trim","formula","fnMatch","match","fn","resolveRange","filter","v","rangeStr","parts","split","parseCellRef","values","raw","ref","ch","charCodeAt","parseInt","colToLetter","String","fromCharCode","floor","getCellRef","getColumnCount","getDefaultColWidth","width","getColWidth","columnWidths","handleCellMouseDown","e","editingCell","commitEdit","shiftKey","isDragging","boundDragMove","ev","handleDragMove","boundDragUp","handleDragEnd","document","addEventListener","updateSelection","cells","querySelectorAll","closestRow","closestCol","minDist","Infinity","forEach","cell","getAttribute","rect","getBoundingClientRect","dist","hypot","clientX","left","clientY","top","height","removeEventListener","handleCellDblClick","startEditing","initialValue","editValue","undefined","td","querySelector","classList","add","colDef","cellType","innerHTML","cb","checked","focus","options","opts","opt","escAttr","esc","join","sel","inputType","input","handleEditKeydown","setSelectionRange","select","updateFormulaBar","preventDefault","nextRow","addRow","restoreCell","nextCol","addColumn","rawValue","displayValue","display","contentClass","handleRowClick","handleHeaderClick","sortCol","sortDir","sort","aVal","bVal","cmp","localeCompare","handleResizeStart","stopPropagation","resizingCol","resizeStartX","resizeStartWidth","boundResizeMove","handleResizeMove","boundResizeUp","handleResizeEnd","newWidth","el","style","handleContextMenu","contextMenuCell","showContextMenu","setTimeout","boundCloseContext","contains","hideContextMenu","boundCloseContextKey","x","y","hidden","contextAction","action","handleCopyCells","clearSelectedCells","insertRow","deleteRow","insertColumn","deleteColumn","navigator","clipboard","writeText","catch","lines","atIndex","splice","fill","index","header","ctrlKey","metaKey","altKey","nr","nc","clipboardData","text","rows","startRow","startCol","wrapper","requestAnimationFrame","listenersAttached","attachListeners","updateStatusBar","colCount","h","resizeHandle","closest","dataset","resizeCol","button","th","rowNum","item","ctx","remove","colHeader","textContent","rawVal","readOnly","stats","toFixed","str","replace","direction","html","constructor","super","Map"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Snice Tag Input - CDN Build
|
|
2
|
+
|
|
3
|
+
CDN build of the Snice tag-input component. Requires the Snice runtime (`snice-runtime.min.js`) to be loaded first.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<script src="snice-runtime.min.js"></script>
|
|
9
|
+
<script src="snice-tag-input.min.js"></script>
|
|
10
|
+
<snice-tag-input></snice-tag-input>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Size
|
|
14
|
+
- Minified: 13.9 KB
|
|
15
|
+
- Gzipped: 4.2 KB
|
|
16
|
+
|
|
17
|
+
## Theme
|
|
18
|
+
For proper styling, link the Snice theme CSS:
|
|
19
|
+
```html
|
|
20
|
+
<link rel="stylesheet" href="https://unpkg.com/snice/dist/components/theme/theme.css">
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Documentation
|
|
24
|
+
https://snice.dev
|
|
25
|
+
|
|
26
|
+
## License
|
|
27
|
+
MIT
|