snice 5.2.1 → 5.2.2
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/SniceProvider.js +1 -1
- package/adapters/react/SniceRouter.js +1 -1
- package/adapters/react/matchRoute.js +1 -1
- package/adapters/react/useRequestHandler.js +1 -1
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.min.js +1 -1
- package/dist/cdn/action-bar/snice-action-bar.js +1 -1
- package/dist/cdn/action-bar/snice-action-bar.min.js +1 -1
- package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
- package/dist/cdn/activity-feed/snice-activity-feed.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/snice-app-tiles.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
- 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/availability/snice-availability.js +1 -1
- package/dist/cdn/availability/snice-availability.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/avatar-group/snice-avatar-group.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.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/binpack/snice-binpack.js +1 -1
- package/dist/cdn/binpack/snice-binpack.min.js +1 -1
- package/dist/cdn/book/snice-book.js +1 -1
- package/dist/cdn/book/snice-book.min.js +1 -1
- package/dist/cdn/booking/snice-booking.js +1 -1
- package/dist/cdn/booking/snice-booking.min.js +1 -1
- 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/cart/snice-cart.js +1 -1
- package/dist/cdn/cart/snice-cart.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/snice-comments.js +1 -1
- package/dist/cdn/comments/snice-comments.min.js +1 -1
- package/dist/cdn/countdown/snice-countdown.js +1 -1
- package/dist/cdn/countdown/snice-countdown.min.js +1 -1
- package/dist/cdn/cropper/snice-cropper.js +1 -1
- package/dist/cdn/cropper/snice-cropper.min.js +1 -1
- package/dist/cdn/data-card/snice-data-card.js +1 -1
- package/dist/cdn/data-card/snice-data-card.min.js +1 -1
- 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/date-range-picker/snice-date-range-picker.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
- package/dist/cdn/diff/snice-diff.js +1 -1
- package/dist/cdn/diff/snice-diff.min.js +1 -1
- 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/estimate/snice-estimate.js +1 -1
- package/dist/cdn/estimate/snice-estimate.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/snice-flip-card.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
- package/dist/cdn/flow/snice-flow.js +1 -1
- package/dist/cdn/flow/snice-flow.min.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
- package/dist/cdn/funnel/snice-funnel.js +1 -1
- package/dist/cdn/funnel/snice-funnel.min.js +1 -1
- package/dist/cdn/gantt/snice-gantt.js +1 -1
- package/dist/cdn/gantt/snice-gantt.min.js +1 -1
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/gauge/snice-gauge.min.js +1 -1
- package/dist/cdn/grid/snice-grid.js +1 -1
- package/dist/cdn/grid/snice-grid.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/invoice/snice-invoice.js +1 -1
- package/dist/cdn/invoice/snice-invoice.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/key-value/snice-key-value.js +1 -1
- package/dist/cdn/key-value/snice-key-value.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/leaderboard/snice-leaderboard.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.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/snice-map.js +1 -1
- package/dist/cdn/map/snice-map.min.js +1 -1
- package/dist/cdn/markdown/snice-markdown.js +1 -1
- package/dist/cdn/markdown/snice-markdown.min.js +1 -1
- 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/message-strip/snice-message-strip.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.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/snice-notification-center.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
- 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/snice-pdf-viewer.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
- package/dist/cdn/popover/snice-popover.js +1 -1
- package/dist/cdn/popover/snice-popover.min.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
- package/dist/cdn/product-card/snice-product-card.js +1 -1
- package/dist/cdn/product-card/snice-product-card.min.js +1 -1
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress/snice-progress.min.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.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/range-slider/snice-range-slider.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
- package/dist/cdn/rating/snice-rating.js +1 -1
- package/dist/cdn/rating/snice-rating.min.js +1 -1
- package/dist/cdn/receipt/snice-receipt.js +1 -1
- package/dist/cdn/receipt/snice-receipt.min.js +1 -1
- package/dist/cdn/recipe/snice-recipe.js +1 -1
- package/dist/cdn/recipe/snice-recipe.min.js +1 -1
- package/dist/cdn/runtime/README.md +2 -2
- package/dist/cdn/runtime/snice-runtime.esm.js +161 -236
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +161 -236
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +8 -8
- 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/segmented-control/snice-segmented-control.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.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/snice-sortable.js +1 -1
- package/dist/cdn/sortable/snice-sortable.min.js +1 -1
- 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-button/snice-split-button.js +1 -1
- package/dist/cdn/split-button/snice-split-button.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/snice-spotlight.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
- package/dist/cdn/step-input/snice-step-input.js +1 -1
- package/dist/cdn/step-input/snice-step-input.min.js +1 -1
- 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/snice-tag.js +1 -1
- package/dist/cdn/tag/snice-tag.min.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
- package/dist/cdn/terminal/snice-terminal.js +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/textarea/snice-textarea.min.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.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/user-card/snice-user-card.js +1 -1
- package/dist/cdn/user-card/snice-user-card.min.js +1 -1
- package/dist/cdn/video-player/snice-video-player.js +1 -1
- package/dist/cdn/video-player/snice-video-player.min.js +1 -1
- 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/snice-waterfall.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
- package/dist/cdn/weather/snice-weather.js +1 -1
- package/dist/cdn/weather/snice-weather.min.js +1 -1
- package/dist/cdn/work-order/snice-work-order.js +1 -1
- package/dist/cdn/work-order/snice-work-order.min.js +1 -1
- package/dist/context.d.ts +9 -19
- package/dist/index.cjs +158 -233
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +158 -233
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +158 -233
- package/dist/index.iife.js.map +1 -1
- package/dist/react/SniceProvider.js +1 -1
- package/dist/react/SniceRouter.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/matchRoute.js +1 -1
- package/dist/react/useRequestHandler.js +1 -1
- package/dist/symbols.cjs +1 -3
- package/dist/symbols.cjs.map +1 -1
- package/dist/symbols.d.ts +0 -1
- package/dist/symbols.esm.js +2 -3
- package/dist/symbols.esm.js.map +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/api.md +5 -10
- package/docs/ai/architecture.md +5 -3
- package/docs/ai/decorators.md +1 -6
- package/docs/ai/patterns.md +13 -7
- package/docs/controllers.md +0 -41
- package/docs/elements.md +21 -28
- package/docs/routing.md +10 -19
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v5.2.
|
|
2
|
+
* snice v5.2.2
|
|
3
3
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
@@ -8,7 +8,7 @@ var Snice = (function (exports) {
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
10
|
/*!
|
|
11
|
-
* snice v5.2.
|
|
11
|
+
* snice v5.2.1
|
|
12
12
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
13
13
|
* (c) 2024
|
|
14
14
|
* Released under the MIT License.
|
|
@@ -98,7 +98,6 @@ var Snice = (function (exports) {
|
|
|
98
98
|
const CONTEXT_TIMER = getSymbol('context-timer');
|
|
99
99
|
const CONTEXT_CALLED = getSymbol('context-called');
|
|
100
100
|
const CONTEXT_UPDATE = getSymbol('context-update');
|
|
101
|
-
const WRAPPED_CONTEXT_HANDLERS = getSymbol('wrapped-context-handlers');
|
|
102
101
|
// Registration de-dup sets on the constructor — replace previous `__*Methods`
|
|
103
102
|
// expando strings that violated the no-double-underscore rule.
|
|
104
103
|
const CONTEXT_METHODS = getSymbol('context-methods');
|
|
@@ -274,17 +273,13 @@ var Snice = (function (exports) {
|
|
|
274
273
|
const names = elementsMap.get(element);
|
|
275
274
|
if (!names)
|
|
276
275
|
continue;
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
continue;
|
|
280
|
-
for (const handlerName of names) {
|
|
281
|
-
const fn = wrapped.get(handlerName);
|
|
282
|
-
if (typeof fn === 'function') {
|
|
276
|
+
for (const methodName of names) {
|
|
277
|
+
if (typeof element[methodName] === 'function') {
|
|
283
278
|
try {
|
|
284
|
-
|
|
279
|
+
element[methodName](this);
|
|
285
280
|
}
|
|
286
281
|
catch (error) {
|
|
287
|
-
console.error(`Error calling @context
|
|
282
|
+
console.error(`Error calling @context method ${methodName}:`, error);
|
|
288
283
|
}
|
|
289
284
|
}
|
|
290
285
|
}
|
|
@@ -299,13 +294,10 @@ var Snice = (function (exports) {
|
|
|
299
294
|
const names = this[REGISTERED_ELEMENTS].get(element);
|
|
300
295
|
if (!names)
|
|
301
296
|
return;
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
const fn = wrapped.get(handlerName);
|
|
307
|
-
if (typeof fn === 'function')
|
|
308
|
-
fn(this);
|
|
297
|
+
for (const methodName of names) {
|
|
298
|
+
if (typeof element[methodName] === 'function') {
|
|
299
|
+
element[methodName](this);
|
|
300
|
+
}
|
|
309
301
|
}
|
|
310
302
|
}
|
|
311
303
|
}
|
|
@@ -2688,208 +2680,6 @@ var Snice = (function (exports) {
|
|
|
2688
2680
|
instance[CLEANUP].events = [];
|
|
2689
2681
|
}
|
|
2690
2682
|
|
|
2691
|
-
/**
|
|
2692
|
-
* @context decorator for receiving router context updates
|
|
2693
|
-
*/
|
|
2694
|
-
const CONTEXT_HANDLERS = getSymbol('context-handlers');
|
|
2695
|
-
/**
|
|
2696
|
-
* @context decorator for receiving router context updates
|
|
2697
|
-
*
|
|
2698
|
-
* Works on both methods and fields:
|
|
2699
|
-
*
|
|
2700
|
-
* - **Method form**: the method is invoked with the current Context on every
|
|
2701
|
-
* update (and once at register time so the first render sees the context).
|
|
2702
|
-
* - **Field form**: the field is overwritten with the current Context on
|
|
2703
|
-
* every update (and once at register time). Pair with `@property` if you
|
|
2704
|
-
* want assignment to also schedule a re-render.
|
|
2705
|
-
*
|
|
2706
|
-
* @example
|
|
2707
|
-
* ```typescript
|
|
2708
|
-
* @element('my-layout')
|
|
2709
|
-
* class MyLayout extends HTMLElement {
|
|
2710
|
-
* // Method form
|
|
2711
|
-
* @context()
|
|
2712
|
-
* handleContext(ctx: Context) {
|
|
2713
|
-
* this.renderNav(ctx.navigation.placards, ctx.navigation.route);
|
|
2714
|
-
* }
|
|
2715
|
-
*
|
|
2716
|
-
* // Field form — the field is populated before first render
|
|
2717
|
-
* @context() ctx!: Context;
|
|
2718
|
-
*
|
|
2719
|
-
* // Field + @property — assignment also triggers re-render
|
|
2720
|
-
* @property({ attribute: false }) @context() reactiveCtx!: Context;
|
|
2721
|
-
* }
|
|
2722
|
-
* ```
|
|
2723
|
-
*/
|
|
2724
|
-
function context$1(options = {}) {
|
|
2725
|
-
return function (value, decoratorContext) {
|
|
2726
|
-
const name = decoratorContext.name;
|
|
2727
|
-
const kind = decoratorContext.kind;
|
|
2728
|
-
const registerHandler = function () {
|
|
2729
|
-
const constructor = this.constructor;
|
|
2730
|
-
// De-dupe: methods identify by reference, fields identify by name.
|
|
2731
|
-
if (!Object.prototype.hasOwnProperty.call(constructor, CONTEXT_METHODS)) {
|
|
2732
|
-
constructor[CONTEXT_METHODS] = new Set();
|
|
2733
|
-
}
|
|
2734
|
-
const dedupeKey = kind === 'method' ? value : `field:${name}`;
|
|
2735
|
-
if (constructor[CONTEXT_METHODS].has(dedupeKey))
|
|
2736
|
-
return;
|
|
2737
|
-
constructor[CONTEXT_METHODS].add(dedupeKey);
|
|
2738
|
-
if (!Object.prototype.hasOwnProperty.call(constructor, CONTEXT_HANDLERS)) {
|
|
2739
|
-
const inherited = constructor[CONTEXT_HANDLERS];
|
|
2740
|
-
constructor[CONTEXT_HANDLERS] = inherited ? [...inherited] : [];
|
|
2741
|
-
}
|
|
2742
|
-
if (kind === 'method') {
|
|
2743
|
-
constructor[CONTEXT_HANDLERS].push({
|
|
2744
|
-
kind: 'method',
|
|
2745
|
-
methodName: name,
|
|
2746
|
-
method: value,
|
|
2747
|
-
options,
|
|
2748
|
-
});
|
|
2749
|
-
}
|
|
2750
|
-
else if (kind === 'field' || kind === 'accessor') {
|
|
2751
|
-
constructor[CONTEXT_HANDLERS].push({
|
|
2752
|
-
kind: 'field',
|
|
2753
|
-
fieldName: name,
|
|
2754
|
-
options,
|
|
2755
|
-
});
|
|
2756
|
-
}
|
|
2757
|
-
};
|
|
2758
|
-
if (kind === 'method') {
|
|
2759
|
-
decoratorContext.addInitializer(registerHandler);
|
|
2760
|
-
return value;
|
|
2761
|
-
}
|
|
2762
|
-
// Field decorators: do registration via the init function (fires per
|
|
2763
|
-
// instance during construction, with `this` bound). Returning the init
|
|
2764
|
-
// function is the canonical Stage 3 way for field decorators —
|
|
2765
|
-
// `addInitializer` for fields can be late or unreliable across runtimes.
|
|
2766
|
-
return function (initialValue) {
|
|
2767
|
-
registerHandler.call(this);
|
|
2768
|
-
return initialValue;
|
|
2769
|
-
};
|
|
2770
|
-
};
|
|
2771
|
-
}
|
|
2772
|
-
/**
|
|
2773
|
-
* Setup context handler for an element instance
|
|
2774
|
-
* Called automatically during element connection
|
|
2775
|
-
*/
|
|
2776
|
-
// Accepts an HTMLElement OR a controller instance — both are plain objects
|
|
2777
|
-
// that may carry CONTEXT_HANDLER and a constructor with CONTEXT_HANDLERS.
|
|
2778
|
-
function setupContextHandler(element) {
|
|
2779
|
-
const handlers = element.constructor[CONTEXT_HANDLERS];
|
|
2780
|
-
if (!handlers || !Array.isArray(handlers) || handlers.length === 0) {
|
|
2781
|
-
return;
|
|
2782
|
-
}
|
|
2783
|
-
// Get the Context instance from the router
|
|
2784
|
-
const ctx = element[CONTEXT_HANDLER];
|
|
2785
|
-
if (!ctx) {
|
|
2786
|
-
return;
|
|
2787
|
-
}
|
|
2788
|
-
// Store the Context instance for cleanup
|
|
2789
|
-
element[NAVIGATION_CONTEXT_INSTANCE] = ctx;
|
|
2790
|
-
// Per-element Map of handler-name → wrapped function. Symbol-keyed so it
|
|
2791
|
-
// doesn't pollute the element's public surface.
|
|
2792
|
-
let wrapped = element[WRAPPED_CONTEXT_HANDLERS];
|
|
2793
|
-
if (!wrapped) {
|
|
2794
|
-
wrapped = new Map();
|
|
2795
|
-
element[WRAPPED_CONTEXT_HANDLERS] = wrapped;
|
|
2796
|
-
}
|
|
2797
|
-
// Register each handler with the Context
|
|
2798
|
-
for (const handler of handlers) {
|
|
2799
|
-
const { kind, options } = handler;
|
|
2800
|
-
const handlerName = kind === 'field' ? handler.fieldName : handler.methodName;
|
|
2801
|
-
// Create wrapped method with timing controls
|
|
2802
|
-
const wrappedFn = function (context) {
|
|
2803
|
-
// Skip if already called once
|
|
2804
|
-
if (options.once && element[CONTEXT_CALLED]) {
|
|
2805
|
-
return;
|
|
2806
|
-
}
|
|
2807
|
-
const callMethod = () => {
|
|
2808
|
-
if (kind === 'field') {
|
|
2809
|
-
element[handler.fieldName] = context;
|
|
2810
|
-
}
|
|
2811
|
-
else {
|
|
2812
|
-
handler.method.call(element, context);
|
|
2813
|
-
}
|
|
2814
|
-
// Handle once option
|
|
2815
|
-
if (options.once) {
|
|
2816
|
-
element[CONTEXT_CALLED] = true;
|
|
2817
|
-
// Unregister after first call
|
|
2818
|
-
const ctx = element[NAVIGATION_CONTEXT_INSTANCE];
|
|
2819
|
-
if (ctx && typeof ctx[CONTEXT_UNREGISTER] === 'function') {
|
|
2820
|
-
ctx[CONTEXT_UNREGISTER](element);
|
|
2821
|
-
}
|
|
2822
|
-
}
|
|
2823
|
-
};
|
|
2824
|
-
// Per-handler timer slot to avoid debounce/throttle handlers on the same
|
|
2825
|
-
// element overwriting each other's state.
|
|
2826
|
-
const timerSlot = element[CONTEXT_TIMER] ||
|
|
2827
|
-
(element[CONTEXT_TIMER] = {});
|
|
2828
|
-
const timerKey = handlerName;
|
|
2829
|
-
if (options.debounce) {
|
|
2830
|
-
clearTimeout(timerSlot[timerKey]?.timeout);
|
|
2831
|
-
timerSlot[timerKey] = {
|
|
2832
|
-
timeout: setTimeout(callMethod, options.debounce),
|
|
2833
|
-
};
|
|
2834
|
-
return;
|
|
2835
|
-
}
|
|
2836
|
-
if (options.throttle) {
|
|
2837
|
-
const now = Date.now();
|
|
2838
|
-
const lastCall = timerSlot[timerKey]?.lastCall || 0;
|
|
2839
|
-
if (now - lastCall >= options.throttle) {
|
|
2840
|
-
timerSlot[timerKey] = { lastCall: now };
|
|
2841
|
-
callMethod();
|
|
2842
|
-
}
|
|
2843
|
-
return;
|
|
2844
|
-
}
|
|
2845
|
-
callMethod();
|
|
2846
|
-
};
|
|
2847
|
-
wrapped.set(handlerName, wrappedFn);
|
|
2848
|
-
// Register with the Context using the handler name (lookup goes through
|
|
2849
|
-
// the WRAPPED_CONTEXT_HANDLERS Map on the element).
|
|
2850
|
-
if (typeof ctx[CONTEXT_REGISTER] === 'function') {
|
|
2851
|
-
ctx[CONTEXT_REGISTER](element, handlerName);
|
|
2852
|
-
}
|
|
2853
|
-
// Synchronously emit current context to the just-registered handler so
|
|
2854
|
-
// field/method values are populated BEFORE the first render microtask
|
|
2855
|
-
// flushes — eliminates the cold-render flicker where ctx is undefined.
|
|
2856
|
-
try {
|
|
2857
|
-
wrappedFn(ctx);
|
|
2858
|
-
}
|
|
2859
|
-
catch (error) {
|
|
2860
|
-
console.error(`Error invoking @context handler at registration:`, error);
|
|
2861
|
-
}
|
|
2862
|
-
}
|
|
2863
|
-
}
|
|
2864
|
-
/**
|
|
2865
|
-
* Cleanup context handler for an element instance
|
|
2866
|
-
* Called automatically during element disconnection
|
|
2867
|
-
*/
|
|
2868
|
-
function cleanupContextHandler(element) {
|
|
2869
|
-
const handlers = element.constructor[CONTEXT_HANDLERS];
|
|
2870
|
-
if (!handlers || !Array.isArray(handlers) || handlers.length === 0) {
|
|
2871
|
-
return;
|
|
2872
|
-
}
|
|
2873
|
-
// Clear any pending debounce timers (per-handler slots)
|
|
2874
|
-
const timerSlot = element[CONTEXT_TIMER];
|
|
2875
|
-
if (timerSlot && typeof timerSlot === 'object') {
|
|
2876
|
-
for (const key of Object.keys(timerSlot)) {
|
|
2877
|
-
if (timerSlot[key]?.timeout)
|
|
2878
|
-
clearTimeout(timerSlot[key].timeout);
|
|
2879
|
-
}
|
|
2880
|
-
delete element[CONTEXT_TIMER];
|
|
2881
|
-
}
|
|
2882
|
-
// Drop the per-element wrapped-handlers Map.
|
|
2883
|
-
delete element[WRAPPED_CONTEXT_HANDLERS];
|
|
2884
|
-
// Unregister from Context if available
|
|
2885
|
-
const ctx = element[NAVIGATION_CONTEXT_INSTANCE];
|
|
2886
|
-
if (ctx && typeof ctx[CONTEXT_UNREGISTER] === 'function') {
|
|
2887
|
-
ctx[CONTEXT_UNREGISTER](element);
|
|
2888
|
-
}
|
|
2889
|
-
delete element[NAVIGATION_CONTEXT_INSTANCE];
|
|
2890
|
-
delete element[CONTEXT_CALLED];
|
|
2891
|
-
}
|
|
2892
|
-
|
|
2893
2683
|
// Controller-scoped cleanup registry
|
|
2894
2684
|
class ControllerScope {
|
|
2895
2685
|
constructor() {
|
|
@@ -2995,14 +2785,6 @@ var Snice = (function (exports) {
|
|
|
2995
2785
|
if (routerContext !== undefined) {
|
|
2996
2786
|
controllerInstance[ROUTER_CONTEXT] = routerContext;
|
|
2997
2787
|
}
|
|
2998
|
-
// Mirror the element's CONTEXT_HANDLER onto the controller so
|
|
2999
|
-
// setupContextHandler can wire @context() handlers declared on the
|
|
3000
|
-
// controller class. This makes @context() work identically on elements
|
|
3001
|
-
// and controllers.
|
|
3002
|
-
const ctxHandler = element[CONTEXT_HANDLER];
|
|
3003
|
-
if (ctxHandler !== undefined) {
|
|
3004
|
-
controllerInstance[CONTEXT_HANDLER] = ctxHandler;
|
|
3005
|
-
}
|
|
3006
2788
|
// Store references
|
|
3007
2789
|
element[CONTROLLER_KEY] = controllerInstance;
|
|
3008
2790
|
element[CONTROLLER_NAME_KEY] = controllerName;
|
|
@@ -3041,8 +2823,6 @@ var Snice = (function (exports) {
|
|
|
3041
2823
|
setupResponseHandlers(controllerInstance, element);
|
|
3042
2824
|
// Setup @on event handlers for controller
|
|
3043
2825
|
setupEventHandlers(controllerInstance, element);
|
|
3044
|
-
// Setup @context() handlers for controller (fires sync emit at register)
|
|
3045
|
-
setupContextHandler(controllerInstance);
|
|
3046
2826
|
element.dispatchEvent(new CustomEvent('controller-attached', {
|
|
3047
2827
|
detail: { name: controllerName, controller: controllerInstance }
|
|
3048
2828
|
}));
|
|
@@ -3079,15 +2859,12 @@ var Snice = (function (exports) {
|
|
|
3079
2859
|
cleanupResponseHandlers(controllerInstance);
|
|
3080
2860
|
// Cleanup @on event handlers for controller
|
|
3081
2861
|
cleanupEventHandlers(controllerInstance);
|
|
3082
|
-
// Cleanup @context() handlers for controller
|
|
3083
|
-
cleanupContextHandler(controllerInstance);
|
|
3084
2862
|
// Cleanup the controller scope
|
|
3085
2863
|
if (scope) {
|
|
3086
2864
|
await scope.cleanup();
|
|
3087
2865
|
}
|
|
3088
|
-
// Clean up router
|
|
2866
|
+
// Clean up router context reference
|
|
3089
2867
|
delete controllerInstance[ROUTER_CONTEXT];
|
|
3090
|
-
delete controllerInstance[CONTEXT_HANDLER];
|
|
3091
2868
|
delete element[CONTROLLER_KEY];
|
|
3092
2869
|
delete element[CONTROLLER_NAME_KEY];
|
|
3093
2870
|
delete element[CONTROLLER_OPERATIONS];
|
|
@@ -3182,6 +2959,154 @@ var Snice = (function (exports) {
|
|
|
3182
2959
|
globalThis.sniceNativeControllerObserver = observer;
|
|
3183
2960
|
}
|
|
3184
2961
|
|
|
2962
|
+
/**
|
|
2963
|
+
* @context decorator for receiving router context updates
|
|
2964
|
+
*/
|
|
2965
|
+
const CONTEXT_HANDLERS = getSymbol('context-handlers');
|
|
2966
|
+
/**
|
|
2967
|
+
* @context decorator for receiving router context updates
|
|
2968
|
+
*
|
|
2969
|
+
* @example
|
|
2970
|
+
* ```typescript
|
|
2971
|
+
* @element('my-layout')
|
|
2972
|
+
* class MyLayout extends HTMLElement {
|
|
2973
|
+
* @context
|
|
2974
|
+
* handleContext(ctx: Context) {
|
|
2975
|
+
* this.renderNav(ctx.placards, ctx.currentRoute);
|
|
2976
|
+
* }
|
|
2977
|
+
*
|
|
2978
|
+
* @context({ debounce: 300 })
|
|
2979
|
+
* handleContextDebounced(ctx: Context) {
|
|
2980
|
+
* // Called after 300ms of no updates
|
|
2981
|
+
* }
|
|
2982
|
+
* }
|
|
2983
|
+
* ```
|
|
2984
|
+
*/
|
|
2985
|
+
function context$1(options = {}) {
|
|
2986
|
+
return function (originalMethod, context) {
|
|
2987
|
+
const methodName = context.name;
|
|
2988
|
+
context.addInitializer(function () {
|
|
2989
|
+
const constructor = this.constructor;
|
|
2990
|
+
// hasOwnProperty guards so subclasses don't mutate parent state via
|
|
2991
|
+
// the prototype chain.
|
|
2992
|
+
if (!Object.prototype.hasOwnProperty.call(constructor, CONTEXT_METHODS)) {
|
|
2993
|
+
constructor[CONTEXT_METHODS] = new Set();
|
|
2994
|
+
}
|
|
2995
|
+
if (constructor[CONTEXT_METHODS].has(originalMethod))
|
|
2996
|
+
return;
|
|
2997
|
+
constructor[CONTEXT_METHODS].add(originalMethod);
|
|
2998
|
+
if (!Object.prototype.hasOwnProperty.call(constructor, CONTEXT_HANDLERS)) {
|
|
2999
|
+
const inherited = constructor[CONTEXT_HANDLERS];
|
|
3000
|
+
constructor[CONTEXT_HANDLERS] = inherited ? [...inherited] : [];
|
|
3001
|
+
}
|
|
3002
|
+
constructor[CONTEXT_HANDLERS].push({
|
|
3003
|
+
methodName,
|
|
3004
|
+
method: originalMethod,
|
|
3005
|
+
options,
|
|
3006
|
+
});
|
|
3007
|
+
});
|
|
3008
|
+
return originalMethod;
|
|
3009
|
+
};
|
|
3010
|
+
}
|
|
3011
|
+
/**
|
|
3012
|
+
* Setup context handler for an element instance
|
|
3013
|
+
* Called automatically during element connection
|
|
3014
|
+
*/
|
|
3015
|
+
function setupContextHandler(element) {
|
|
3016
|
+
const handlers = element.constructor[CONTEXT_HANDLERS];
|
|
3017
|
+
if (!handlers || !Array.isArray(handlers) || handlers.length === 0) {
|
|
3018
|
+
return;
|
|
3019
|
+
}
|
|
3020
|
+
// Get the Context instance from the router
|
|
3021
|
+
const ctx = element[CONTEXT_HANDLER];
|
|
3022
|
+
if (!ctx) {
|
|
3023
|
+
return;
|
|
3024
|
+
}
|
|
3025
|
+
// Store the Context instance for cleanup
|
|
3026
|
+
element[NAVIGATION_CONTEXT_INSTANCE] = ctx;
|
|
3027
|
+
// Register each handler with the Context
|
|
3028
|
+
for (const handler of handlers) {
|
|
3029
|
+
const { methodName, method, options } = handler;
|
|
3030
|
+
const wrappedMethodName = `__wrapped_${methodName}`;
|
|
3031
|
+
// Create wrapped method with timing controls
|
|
3032
|
+
element[wrappedMethodName] = function (context) {
|
|
3033
|
+
// Skip if already called once
|
|
3034
|
+
if (options.once && element[CONTEXT_CALLED]) {
|
|
3035
|
+
return;
|
|
3036
|
+
}
|
|
3037
|
+
const callMethod = () => {
|
|
3038
|
+
method.call(element, context);
|
|
3039
|
+
// Handle once option
|
|
3040
|
+
if (options.once) {
|
|
3041
|
+
element[CONTEXT_CALLED] = true;
|
|
3042
|
+
// Unregister after first call
|
|
3043
|
+
const ctx = element[NAVIGATION_CONTEXT_INSTANCE];
|
|
3044
|
+
if (ctx && typeof ctx[CONTEXT_UNREGISTER] === 'function') {
|
|
3045
|
+
ctx[CONTEXT_UNREGISTER](element);
|
|
3046
|
+
}
|
|
3047
|
+
}
|
|
3048
|
+
};
|
|
3049
|
+
// Per-handler timer slot to avoid debounce/throttle handlers on the same
|
|
3050
|
+
// element overwriting each other's state.
|
|
3051
|
+
const timerSlot = element[CONTEXT_TIMER] ||
|
|
3052
|
+
(element[CONTEXT_TIMER] = {});
|
|
3053
|
+
const timerKey = methodName;
|
|
3054
|
+
if (options.debounce) {
|
|
3055
|
+
clearTimeout(timerSlot[timerKey]?.timeout);
|
|
3056
|
+
timerSlot[timerKey] = {
|
|
3057
|
+
timeout: setTimeout(callMethod, options.debounce),
|
|
3058
|
+
};
|
|
3059
|
+
return;
|
|
3060
|
+
}
|
|
3061
|
+
if (options.throttle) {
|
|
3062
|
+
const now = Date.now();
|
|
3063
|
+
const lastCall = timerSlot[timerKey]?.lastCall || 0;
|
|
3064
|
+
if (now - lastCall >= options.throttle) {
|
|
3065
|
+
timerSlot[timerKey] = { lastCall: now };
|
|
3066
|
+
callMethod();
|
|
3067
|
+
}
|
|
3068
|
+
return;
|
|
3069
|
+
}
|
|
3070
|
+
callMethod();
|
|
3071
|
+
};
|
|
3072
|
+
// Register with the Context using the wrapped method name
|
|
3073
|
+
if (typeof ctx[CONTEXT_REGISTER] === 'function') {
|
|
3074
|
+
ctx[CONTEXT_REGISTER](element, wrappedMethodName);
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
}
|
|
3078
|
+
/**
|
|
3079
|
+
* Cleanup context handler for an element instance
|
|
3080
|
+
* Called automatically during element disconnection
|
|
3081
|
+
*/
|
|
3082
|
+
function cleanupContextHandler(element) {
|
|
3083
|
+
const handlers = element.constructor[CONTEXT_HANDLERS];
|
|
3084
|
+
if (!handlers || !Array.isArray(handlers) || handlers.length === 0) {
|
|
3085
|
+
return;
|
|
3086
|
+
}
|
|
3087
|
+
// Clear any pending debounce timers (per-handler slots)
|
|
3088
|
+
const timerSlot = element[CONTEXT_TIMER];
|
|
3089
|
+
if (timerSlot && typeof timerSlot === 'object') {
|
|
3090
|
+
for (const key of Object.keys(timerSlot)) {
|
|
3091
|
+
if (timerSlot[key]?.timeout)
|
|
3092
|
+
clearTimeout(timerSlot[key].timeout);
|
|
3093
|
+
}
|
|
3094
|
+
delete element[CONTEXT_TIMER];
|
|
3095
|
+
}
|
|
3096
|
+
for (const handler of handlers) {
|
|
3097
|
+
// Clean up wrapped method
|
|
3098
|
+
const wrappedMethodName = `__wrapped_${handler.methodName}`;
|
|
3099
|
+
delete element[wrappedMethodName];
|
|
3100
|
+
}
|
|
3101
|
+
// Unregister from Context if available
|
|
3102
|
+
const ctx = element[NAVIGATION_CONTEXT_INSTANCE];
|
|
3103
|
+
if (ctx && typeof ctx[CONTEXT_UNREGISTER] === 'function') {
|
|
3104
|
+
ctx[CONTEXT_UNREGISTER](element);
|
|
3105
|
+
}
|
|
3106
|
+
delete element[NAVIGATION_CONTEXT_INSTANCE];
|
|
3107
|
+
delete element[CONTEXT_CALLED];
|
|
3108
|
+
}
|
|
3109
|
+
|
|
3185
3110
|
/**
|
|
3186
3111
|
* @render and @styles decorators for Snice v3.0.0
|
|
3187
3112
|
* Provides automatic differential rendering on property changes
|
|
@@ -6179,7 +6104,7 @@ var Snice = (function (exports) {
|
|
|
6179
6104
|
}
|
|
6180
6105
|
|
|
6181
6106
|
/*!
|
|
6182
|
-
* snice v5.2.
|
|
6107
|
+
* snice v5.2.1
|
|
6183
6108
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
6184
6109
|
* (c) 2024
|
|
6185
6110
|
* Released under the MIT License.
|
|
@@ -6198,7 +6123,7 @@ var Snice = (function (exports) {
|
|
|
6198
6123
|
}
|
|
6199
6124
|
|
|
6200
6125
|
/*!
|
|
6201
|
-
* snice v5.2.
|
|
6126
|
+
* snice v5.2.1
|
|
6202
6127
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
6203
6128
|
* (c) 2024
|
|
6204
6129
|
* Released under the MIT License.
|