snice 7.0.3 → 7.1.1
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/.agents/skills/snice/SKILL.md +4 -0
- package/.agents/skills/snice/references/core-kitchen-sink.ts +39 -1
- package/README.md +64 -14
- package/adapters/react/SniceProvider.js +2 -2
- package/adapters/react/SniceRouter.js +2 -2
- package/adapters/react/matchRoute.js +2 -2
- package/adapters/react/useRequestHandler.js +2 -2
- package/bin/analyzer-contracts.js +6 -1
- package/bin/postinstall.js +59 -0
- package/bin/project-analyzer.js +466 -5
- package/bin/snice.js +3 -0
- package/dist/app-context.d.ts +11 -0
- package/dist/cdn/accordion/snice-accordion.js +2 -2
- package/dist/cdn/action-bar/snice-action-bar.js +2 -2
- package/dist/cdn/activity-feed/snice-activity-feed.js +2 -2
- package/dist/cdn/alert/snice-alert.js +2 -2
- package/dist/cdn/app-tiles/snice-app-tiles.js +2 -2
- package/dist/cdn/approval-flow/snice-approval-flow.js +2 -2
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +2 -2
- package/dist/cdn/availability/snice-availability.js +2 -2
- package/dist/cdn/avatar/snice-avatar.js +2 -2
- package/dist/cdn/avatar-group/snice-avatar-group.js +2 -2
- package/dist/cdn/badge/snice-badge.js +2 -2
- package/dist/cdn/banner/snice-banner.js +2 -2
- package/dist/cdn/binpack/snice-binpack.js +2 -2
- package/dist/cdn/book/snice-book.js +2 -2
- package/dist/cdn/booking/snice-booking.js +2 -2
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +2 -2
- package/dist/cdn/button/snice-button.js +2 -2
- package/dist/cdn/calendar/snice-calendar.js +2 -2
- package/dist/cdn/camera/snice-camera.js +2 -2
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +2 -2
- package/dist/cdn/candlestick/snice-candlestick.js +2 -2
- package/dist/cdn/card/snice-card.js +2 -2
- package/dist/cdn/carousel/snice-carousel.js +2 -2
- package/dist/cdn/cart/snice-cart.js +2 -2
- package/dist/cdn/chart/snice-chart.js +2 -2
- package/dist/cdn/chat/snice-chat.js +2 -2
- package/dist/cdn/checkbox/snice-checkbox.js +2 -2
- package/dist/cdn/chip/snice-chip.js +2 -2
- package/dist/cdn/code-block/snice-code-block.js +2 -2
- package/dist/cdn/color-display/snice-color-display.js +2 -2
- package/dist/cdn/color-picker/snice-color-picker.js +2 -2
- package/dist/cdn/command-palette/snice-command-palette.js +2 -2
- package/dist/cdn/comments/snice-comments.js +2 -2
- package/dist/cdn/countdown/snice-countdown.js +2 -2
- package/dist/cdn/cropper/snice-cropper.js +2 -2
- package/dist/cdn/data-card/snice-data-card.js +2 -2
- package/dist/cdn/date-picker/snice-date-picker.js +2 -2
- package/dist/cdn/date-range-picker/snice-date-range-picker.js +2 -2
- package/dist/cdn/date-time-picker/snice-date-time-picker.js +2 -2
- package/dist/cdn/diff/snice-diff.js +2 -2
- package/dist/cdn/divider/snice-divider.js +2 -2
- package/dist/cdn/doc/snice-doc.js +2 -2
- package/dist/cdn/draw/snice-draw.js +2 -2
- package/dist/cdn/drawer/snice-drawer.js +2 -2
- package/dist/cdn/empty-state/snice-empty-state.js +2 -2
- package/dist/cdn/estimate/snice-estimate.js +2 -2
- package/dist/cdn/file-gallery/snice-file-gallery.js +2 -2
- package/dist/cdn/file-upload/snice-file-upload.js +2 -2
- package/dist/cdn/flip-card/snice-flip-card.js +2 -2
- package/dist/cdn/flow/snice-flow.js +2 -2
- package/dist/cdn/form-layout/snice-form-layout.js +2 -2
- package/dist/cdn/funnel/snice-funnel.js +2 -2
- package/dist/cdn/gantt/snice-gantt.js +2 -2
- package/dist/cdn/gauge/snice-gauge.js +2 -2
- package/dist/cdn/grid/snice-grid.js +2 -2
- package/dist/cdn/heatmap/snice-heatmap.js +2 -2
- package/dist/cdn/image/snice-image.js +2 -2
- package/dist/cdn/input/snice-input.js +2 -2
- package/dist/cdn/invoice/snice-invoice.js +2 -2
- package/dist/cdn/kanban/snice-kanban.js +2 -2
- package/dist/cdn/key-value/snice-key-value.js +2 -2
- package/dist/cdn/kpi/snice-kpi.js +2 -2
- package/dist/cdn/layout/README.md +17 -2
- package/dist/cdn/layout/snice-layout.js +1656 -11
- package/dist/cdn/layout/snice-layout.js.map +1 -1
- package/dist/cdn/layout/snice-layout.min.js +379 -2
- package/dist/cdn/layout/snice-layout.min.js.map +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.js +2 -2
- package/dist/cdn/link/snice-link.js +2 -2
- package/dist/cdn/link-preview/snice-link-preview.js +2 -2
- package/dist/cdn/list/snice-list.js +2 -2
- package/dist/cdn/location/snice-location.js +2 -2
- package/dist/cdn/login/snice-login.js +2 -2
- package/dist/cdn/map/snice-map.js +2 -2
- package/dist/cdn/markdown/snice-markdown.js +2 -2
- package/dist/cdn/masonry/snice-masonry.js +2 -2
- package/dist/cdn/menu/snice-menu.js +2 -2
- package/dist/cdn/message-strip/snice-message-strip.js +2 -2
- package/dist/cdn/modal/snice-modal.js +2 -2
- package/dist/cdn/music-player/snice-music-player.js +2 -2
- package/dist/cdn/nav/snice-nav.js +2 -2
- package/dist/cdn/network-graph/snice-network-graph.js +2 -2
- package/dist/cdn/notification-center/snice-notification-center.js +2 -2
- package/dist/cdn/order-tracker/snice-order-tracker.js +2 -2
- package/dist/cdn/org-chart/snice-org-chart.js +2 -2
- package/dist/cdn/pagination/snice-pagination.js +2 -2
- package/dist/cdn/paint/snice-paint.js +2 -2
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +2 -2
- package/dist/cdn/permission-matrix/snice-permission-matrix.js +2 -2
- package/dist/cdn/podcast-player/snice-podcast-player.js +2 -2
- package/dist/cdn/popover/snice-popover.js +2 -2
- package/dist/cdn/pricing-table/snice-pricing-table.js +2 -2
- package/dist/cdn/product-card/snice-product-card.js +2 -2
- package/dist/cdn/progress/snice-progress.js +2 -2
- package/dist/cdn/progress-ring/snice-progress-ring.js +2 -2
- package/dist/cdn/qr-code/snice-qr-code.js +2 -2
- package/dist/cdn/qr-reader/snice-qr-reader.js +2 -2
- package/dist/cdn/radio/snice-radio.js +2 -2
- package/dist/cdn/range-slider/snice-range-slider.js +2 -2
- package/dist/cdn/rating/snice-rating.js +2 -2
- package/dist/cdn/receipt/snice-receipt.js +2 -2
- package/dist/cdn/recipe/snice-recipe.js +2 -2
- package/dist/cdn/runtime/README.md +2 -2
- package/dist/cdn/runtime/snice-runtime.esm.js +3825 -3337
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +3827 -3336
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/snice-sankey.js +2 -2
- package/dist/cdn/segmented-control/snice-segmented-control.js +2 -2
- package/dist/cdn/select/snice-select.js +2 -2
- package/dist/cdn/skeleton/snice-skeleton.js +2 -2
- package/dist/cdn/slider/snice-slider.js +2 -2
- package/dist/cdn/sortable/snice-sortable.js +2 -2
- package/dist/cdn/sparkline/snice-sparkline.js +2 -2
- package/dist/cdn/spinner/snice-spinner.js +2 -2
- package/dist/cdn/split-button/snice-split-button.js +2 -2
- package/dist/cdn/split-pane/snice-split-pane.js +2 -2
- package/dist/cdn/spotlight/snice-spotlight.js +2 -2
- package/dist/cdn/stat-group/snice-stat-group.js +2 -2
- package/dist/cdn/step-input/snice-step-input.js +2 -2
- package/dist/cdn/stepper/snice-stepper.js +2 -2
- package/dist/cdn/switch/snice-switch.js +2 -2
- package/dist/cdn/table/README.md +6 -2
- package/dist/cdn/table/snice-table.esm.js +347 -54
- package/dist/cdn/table/snice-table.esm.js.map +1 -1
- package/dist/cdn/table/snice-table.esm.min.js +105 -44
- package/dist/cdn/table/snice-table.esm.min.js.map +1 -1
- package/dist/cdn/table/snice-table.js +348 -57
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +153 -92
- package/dist/cdn/table/snice-table.min.js.map +1 -1
- package/dist/cdn/tabs/snice-tabs.js +2 -2
- package/dist/cdn/tag/snice-tag.js +2 -2
- package/dist/cdn/tag-input/snice-tag-input.js +2 -2
- package/dist/cdn/terminal/snice-terminal.js +2 -2
- package/dist/cdn/testimonial/snice-testimonial.js +2 -2
- package/dist/cdn/textarea/snice-textarea.js +2 -2
- package/dist/cdn/time-picker/snice-time-picker.js +2 -2
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +2 -2
- package/dist/cdn/timeline/snice-timeline.js +2 -2
- package/dist/cdn/timer/snice-timer.js +2 -2
- package/dist/cdn/toast/snice-toast.js +2 -2
- package/dist/cdn/tooltip/snice-tooltip.js +2 -2
- package/dist/cdn/tree/snice-tree.js +2 -2
- package/dist/cdn/treemap/snice-treemap.js +2 -2
- package/dist/cdn/user-card/snice-user-card.js +2 -2
- package/dist/cdn/video-player/snice-video-player.js +2 -2
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +2 -2
- package/dist/cdn/waterfall/snice-waterfall.js +2 -2
- package/dist/cdn/weather/snice-weather.js +2 -2
- package/dist/cdn/work-order/snice-work-order.js +2 -2
- package/dist/context-provider.d.ts +16 -0
- package/dist/controller.d.ts +5 -0
- package/dist/daemon-target.d.ts +10 -0
- package/dist/daemon.d.ts +10 -0
- package/dist/index.cjs +3821 -3330
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.esm.js +3819 -3331
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +3821 -3330
- package/dist/index.iife.js.map +1 -1
- package/dist/keyboard-filter.d.ts +25 -0
- package/dist/on.d.ts +1 -1
- package/dist/parts.d.ts +2 -19
- package/dist/react/SniceProvider.js +2 -2
- package/dist/react/SniceRouter.js +2 -2
- package/dist/react/index.js +2 -2
- package/dist/react/matchRoute.js +2 -2
- package/dist/react/useRequestHandler.js +2 -2
- package/dist/request-response.d.ts +9 -1
- package/dist/symbols.cjs +19 -2
- package/dist/symbols.cjs.map +1 -1
- package/dist/symbols.d.ts +5 -0
- package/dist/symbols.esm.js +15 -3
- package/dist/symbols.esm.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/transitions.cjs +2 -2
- package/dist/transitions.esm.js +2 -2
- package/dist/types/app-context.d.ts +9 -58
- package/dist/types/daemon.d.ts +8 -0
- package/dist/types/dispatch-options.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/on-options.d.ts +5 -0
- package/dist/types/request-options.d.ts +2 -0
- package/dist/types/respond-options.d.ts +2 -0
- package/docs/ai/DEVELOPMENT.md +15 -1
- package/docs/ai/README.md +5 -1
- package/docs/ai/api.md +13 -4
- package/docs/ai/architecture.md +51 -2
- package/docs/ai/bindings.md +1 -1
- package/docs/ai/cli.md +9 -0
- package/docs/ai/controllers.md +1 -1
- package/docs/ai/daemons.md +80 -0
- package/docs/ai/decorators.md +7 -5
- package/docs/ai/events.md +6 -0
- package/docs/ai/patterns.md +49 -4
- package/docs/ai/request-response.md +26 -9
- package/docs/ai/routing.md +16 -1
- package/docs/bindings.md +1 -1
- package/docs/cli.md +7 -0
- package/docs/controllers.md +8 -2
- package/docs/daemons.md +200 -0
- package/docs/events.md +19 -2
- package/docs/request-response.md +20 -13
- package/docs/routing.md +25 -1
- package/package.json +6 -4
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keyboard filter for matching specific keys and modifiers
|
|
3
|
+
*/
|
|
4
|
+
export interface KeyboardFilter {
|
|
5
|
+
key: string;
|
|
6
|
+
ctrl?: boolean;
|
|
7
|
+
alt?: boolean;
|
|
8
|
+
shift?: boolean;
|
|
9
|
+
meta?: boolean;
|
|
10
|
+
anyModifiers?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function warnIfModifierMisuse(eventName: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Parse keyboard shortcut specification
|
|
15
|
+
* Examples:
|
|
16
|
+
* "enter" -> { key: "Enter" }
|
|
17
|
+
* "ctrl+s" -> { key: "s", ctrl: true }
|
|
18
|
+
* "ctrl+shift+s" -> { key: "s", ctrl: true, shift: true }
|
|
19
|
+
* "~enter" -> { key: "Enter", anyModifiers: true }
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseKeyboardFilter(spec: string): KeyboardFilter;
|
|
22
|
+
/**
|
|
23
|
+
* Check if keyboard event matches the filter
|
|
24
|
+
*/
|
|
25
|
+
export declare function matchesKeyboardFilter(event: KeyboardEvent, filter: KeyboardFilter): boolean;
|
package/dist/on.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export declare function on(eventName: string | string[], selectorOrOptions?: str
|
|
|
51
51
|
* Setup event listeners for an element or controller instance
|
|
52
52
|
* Called automatically during element connection or controller attachment
|
|
53
53
|
*/
|
|
54
|
-
export declare function setupEventHandlers(instance: any, targetElement:
|
|
54
|
+
export declare function setupEventHandlers(instance: any, targetElement: EventTarget): void;
|
|
55
55
|
/**
|
|
56
56
|
* Cleanup event listeners for a controller instance
|
|
57
57
|
* Called automatically by the controller system during detach
|
package/dist/parts.d.ts
CHANGED
|
@@ -245,8 +245,8 @@ export declare class PropertyPart extends Part {
|
|
|
245
245
|
* Accepts a controller class decorated with @controller (attached directly,
|
|
246
246
|
* no registry lookup) or a registry name string (delegated to the attribute
|
|
247
247
|
* channel with the exact semantics of a static controller="name"). While a
|
|
248
|
-
* class is bound it owns the element: the
|
|
249
|
-
*
|
|
248
|
+
* class is bound it owns the element: the decorator name is reflected for
|
|
249
|
+
* inspection, while the attribute/MutationObserver attach channel stays inert.
|
|
250
250
|
*
|
|
251
251
|
* Renders commit while the tree is detached and connect afterwards, so
|
|
252
252
|
* attachment happens on reconnected()/connected commits; every hook is
|
|
@@ -301,23 +301,6 @@ export declare class EventPart extends Part {
|
|
|
301
301
|
disconnected(preserveEventListeners?: boolean): void;
|
|
302
302
|
reconnected(): void;
|
|
303
303
|
}
|
|
304
|
-
/**
|
|
305
|
-
* Keyboard filter for matching specific keys and modifiers
|
|
306
|
-
*/
|
|
307
|
-
export interface KeyboardFilter {
|
|
308
|
-
key: string;
|
|
309
|
-
ctrl?: boolean;
|
|
310
|
-
alt?: boolean;
|
|
311
|
-
shift?: boolean;
|
|
312
|
-
meta?: boolean;
|
|
313
|
-
anyModifiers?: boolean;
|
|
314
|
-
}
|
|
315
|
-
export declare function warnIfModifierMisuse(eventName: string): void;
|
|
316
|
-
export declare function parseKeyboardFilter(spec: string): KeyboardFilter;
|
|
317
|
-
/**
|
|
318
|
-
* Check if keyboard event matches the filter
|
|
319
|
-
*/
|
|
320
|
-
export declare function matchesKeyboardFilter(event: KeyboardEvent, filter: KeyboardFilter): boolean;
|
|
321
304
|
export declare class ConditionalIfPart extends Part {
|
|
322
305
|
readonly type: "node";
|
|
323
306
|
private startNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
package/dist/react/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
package/dist/react/matchRoute.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { RequestOptions } from './types/request-options';
|
|
2
2
|
import { RespondOptions } from './types/respond-options';
|
|
3
|
+
/**
|
|
4
|
+
* Return type for methods decorated with `@request`.
|
|
5
|
+
*
|
|
6
|
+
* TypeScript cannot express a method decorator changing an async generator
|
|
7
|
+
* into a promise-returning method. This pragmatic helper suppresses that
|
|
8
|
+
* mismatch while documenting the response value for readers and tooling.
|
|
9
|
+
*/
|
|
10
|
+
export type Response<T = any> = T | any;
|
|
3
11
|
/**
|
|
4
12
|
* Decorator for making requests from elements or controllers.
|
|
5
13
|
* Uses async generator pattern for bidirectional communication.
|
|
@@ -15,5 +23,5 @@ export declare function request<T = any>(requestName: string, options?: RequestO
|
|
|
15
23
|
* @param options Optional configuration
|
|
16
24
|
*/
|
|
17
25
|
export declare function respond(requestName: string, options?: RespondOptions): (target: any, context: ClassMethodDecoratorContext) => void;
|
|
18
|
-
export declare function setupResponseHandlers(instance: any, element:
|
|
26
|
+
export declare function setupResponseHandlers(instance: any, element: EventTarget): void;
|
|
19
27
|
export declare function cleanupResponseHandlers(instance: any): void;
|
package/dist/symbols.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
|
@@ -31,8 +31,14 @@ function getSymbol(name) {
|
|
|
31
31
|
// All symbols are stored globally to ensure consistency across modules
|
|
32
32
|
const IS_CONTROLLER_CLASS = getSymbol('is-controller-class');
|
|
33
33
|
const IS_CONTROLLER_INSTANCE = getSymbol('is-controller-instance');
|
|
34
|
+
const IS_DAEMON_CLASS = getSymbol('is-daemon-class');
|
|
35
|
+
const IS_DAEMON_INSTANCE = getSymbol('is-daemon-instance');
|
|
34
36
|
const IS_ELEMENT_CLASS = getSymbol('is-element-class');
|
|
35
37
|
const CHANNEL_HANDLERS = getSymbol('channel-handlers');
|
|
38
|
+
// Per-instance daemon communication state. Daemon instances are constructed by
|
|
39
|
+
// application code; Snice only creates and manages their private EventTarget
|
|
40
|
+
// when an app context explicitly provides them.
|
|
41
|
+
const DAEMON_STATE = getSymbol('daemon-state');
|
|
36
42
|
// Internal element state symbols
|
|
37
43
|
const READY_PROMISE = getSymbol('ready-promise');
|
|
38
44
|
const READY_RESOLVE = getSymbol('ready-resolve');
|
|
@@ -56,9 +62,15 @@ const CONTROLLER_NAME_KEY = getSymbol('controller-name');
|
|
|
56
62
|
const CONTROLLER_ID = getSymbol('controller-id');
|
|
57
63
|
const CONTROLLER_OPERATIONS = getSymbol('controller-operations');
|
|
58
64
|
const NATIVE_CONTROLLER = getSymbol('native-controller');
|
|
65
|
+
// Decorator name stored on the class so direct class bindings can expose the
|
|
66
|
+
// same useful DOM label without resolving the controller through the registry.
|
|
67
|
+
const CONTROLLER_REGISTRY_NAME = getSymbol('controller-registry-name');
|
|
59
68
|
// Set while a controller CLASS (not a registry name) is attached — the
|
|
60
69
|
// attribute/MutationObserver channel must not attach over or detach it.
|
|
61
70
|
const DIRECT_CONTROLLER = getSymbol('direct-controller');
|
|
71
|
+
// Guards framework-authored diagnostic controller attribute writes from the
|
|
72
|
+
// synchronous custom-element attributeChangedCallback path.
|
|
73
|
+
const CONTROLLER_ATTRIBUTE_SYNC = getSymbol('controller-attribute-sync');
|
|
62
74
|
// A controller class bound by a template before the custom element was
|
|
63
75
|
// defined/upgraded. Picked up by connectedCallback on first initialization.
|
|
64
76
|
const PENDING_CONTROLLER_BINDING = getSymbol('pending-controller-binding');
|
|
@@ -161,12 +173,15 @@ exports.CONTEXT_UPDATE = CONTEXT_UPDATE;
|
|
|
161
173
|
exports.CONTROLLER = CONTROLLER;
|
|
162
174
|
exports.CONTROLLER_ABORT = CONTROLLER_ABORT;
|
|
163
175
|
exports.CONTROLLER_ATTACHED = CONTROLLER_ATTACHED;
|
|
176
|
+
exports.CONTROLLER_ATTRIBUTE_SYNC = CONTROLLER_ATTRIBUTE_SYNC;
|
|
164
177
|
exports.CONTROLLER_ID = CONTROLLER_ID;
|
|
165
178
|
exports.CONTROLLER_KEY = CONTROLLER_KEY;
|
|
166
179
|
exports.CONTROLLER_NAME_KEY = CONTROLLER_NAME_KEY;
|
|
167
180
|
exports.CONTROLLER_OPERATIONS = CONTROLLER_OPERATIONS;
|
|
181
|
+
exports.CONTROLLER_REGISTRY_NAME = CONTROLLER_REGISTRY_NAME;
|
|
168
182
|
exports.CREATED_AT = CREATED_AT;
|
|
169
183
|
exports.CURRENT_PAGE_MARKER = CURRENT_PAGE_MARKER;
|
|
184
|
+
exports.DAEMON_STATE = DAEMON_STATE;
|
|
170
185
|
exports.DIRECT_CONTROLLER = DIRECT_CONTROLLER;
|
|
171
186
|
exports.DISPATCH_TIMERS = DISPATCH_TIMERS;
|
|
172
187
|
exports.DISPOSE_HANDLERS = DISPOSE_HANDLERS;
|
|
@@ -176,6 +191,8 @@ exports.EXPLICITLY_SET_PROPERTIES = EXPLICITLY_SET_PROPERTIES;
|
|
|
176
191
|
exports.INITIALIZED = INITIALIZED;
|
|
177
192
|
exports.IS_CONTROLLER_CLASS = IS_CONTROLLER_CLASS;
|
|
178
193
|
exports.IS_CONTROLLER_INSTANCE = IS_CONTROLLER_INSTANCE;
|
|
194
|
+
exports.IS_DAEMON_CLASS = IS_DAEMON_CLASS;
|
|
195
|
+
exports.IS_DAEMON_INSTANCE = IS_DAEMON_INSTANCE;
|
|
179
196
|
exports.IS_ELEMENT_CLASS = IS_ELEMENT_CLASS;
|
|
180
197
|
exports.IS_UPDATING = IS_UPDATING;
|
|
181
198
|
exports.MOVED_HANDLERS = MOVED_HANDLERS;
|
package/dist/symbols.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.cjs","sources":["../src/global.ts","../src/symbols.ts"],"sourcesContent":["// Global namespace for Snice framework\n// Ensures all registries and symbols are shared across different JS files/modules\n\nimport { SniceGlobal } from './types/snice-global';\n\n\n// Initialize the global Snice namespace on globalThis\n// This ensures all module instances share the same registry\nif (!(globalThis as any).snice) {\n (globalThis as any).snice = {\n controllerRegistry: new Map(),\n pendingControllerAttachments: new Map(),\n controllerIdCounter: 0\n };\n}\n\n// Multiple copies of Snice can share a global created by an older build.\n(globalThis as any).snice.pendingControllerAttachments ??= new Map();\n\n// Export direct reference to globalThis.snice\nexport const snice: SniceGlobal = (globalThis as any).snice;\n\n// Helper function to get or create a global symbol\n// Symbol.for() already guarantees global uniqueness, no need for a Map cache\nexport function getSymbol(name: string): symbol {\n return Symbol.for(`snice:${name}`);\n}\n","// Central file for all symbols used in the framework\n// All symbols are stored globally to ensure consistency across modules\n\nimport { getSymbol } from './global';\n\nexport { getSymbol };\n\nexport const IS_CONTROLLER_CLASS = getSymbol('is-controller-class');\nexport const IS_CONTROLLER_INSTANCE = getSymbol('is-controller-instance');\nexport const IS_ELEMENT_CLASS = getSymbol('is-element-class');\nexport const CHANNEL_HANDLERS = getSymbol('channel-handlers');\n\n// Internal element state symbols\nexport const READY_PROMISE = getSymbol('ready-promise');\nexport const READY_RESOLVE = getSymbol('ready-resolve');\nexport const RENDERED_PROMISE = getSymbol('rendered-promise');\nexport const RENDERED_RESOLVE = getSymbol('rendered-resolve');\n// Set when a render is requested but dropped because the element was\n// disconnected; consumed on reconnect to replay exactly the missed render.\nexport const PENDING_RECONNECT_RENDER = getSymbol('pending-reconnect-render');\n// Per-element synchronous render-nesting depth, used to cap runaway re-entry\n// without a shared global counter that one element could exhaust for others.\nexport const RENDER_DEPTH = getSymbol('render-depth');\nexport const RENDER_ROOT = getSymbol('render-root');\nexport const ELEMENT_OPTIONS = getSymbol('element-options');\nexport const CONTROLLER = getSymbol('controller');\nexport const INITIALIZED = getSymbol('initialized');\n\n// Event handler symbols\nexport const ON_HANDLERS = getSymbol('on-handlers');\n\n// Controller symbols\nexport const CONTROLLER_KEY = getSymbol('controller-key');\nexport const CONTROLLER_NAME_KEY = getSymbol('controller-name');\nexport const CONTROLLER_ID = getSymbol('controller-id');\nexport const CONTROLLER_OPERATIONS = getSymbol('controller-operations');\nexport const NATIVE_CONTROLLER = getSymbol('native-controller');\n// Set while a controller CLASS (not a registry name) is attached — the\n// attribute/MutationObserver channel must not attach over or detach it.\nexport const DIRECT_CONTROLLER = getSymbol('direct-controller');\n// A controller class bound by a template before the custom element was\n// defined/upgraded. Picked up by connectedCallback on first initialization.\nexport const PENDING_CONTROLLER_BINDING = getSymbol('pending-controller-binding');\n\n// Cleanup symbol - holds an object with all cleanup arrays\nexport const CLEANUP = getSymbol('cleanup');\n\n// Property symbols\nexport const PROPERTIES = getSymbol('properties');\nexport const PROPERTY_VALUES = getSymbol('property-values');\nexport const PROPERTY_DEFAULTS = getSymbol('property-defaults');\nexport const PROPERTY_WRAPPERS = getSymbol('property-wrappers');\nexport const PRE_INIT_PROPERTY_VALUES = getSymbol('pre-init-property-values');\nexport const PRE_UPGRADE_PROPERTY_BINDINGS = getSymbol('pre-upgrade-property-bindings');\nexport const PROPERTIES_INITIALIZED = getSymbol('properties-initialized');\nexport const PROPERTY_WATCHERS = getSymbol('property-watchers');\nexport const EXPLICITLY_SET_PROPERTIES = getSymbol('explicitly-set-properties');\n\n// Router context symbol\nexport const ROUTER_CONTEXT = getSymbol('router-context');\nexport const CURRENT_PAGE_MARKER = getSymbol('current-page-marker');\nexport const CONTEXT_REQUEST_HANDLER = getSymbol('context-request-handler');\nexport const PAGE_TRANSITION = getSymbol('page-transition');\nexport const CREATED_AT = getSymbol('created-at');\n\n// Lifecycle symbols\nexport const READY_HANDLERS = getSymbol('ready-handlers');\nexport const DISPOSE_HANDLERS = getSymbol('dispose-handlers');\nexport const RECONNECT_HANDLERS = getSymbol('reconnect-handlers');\nexport const MOVED_HANDLERS = getSymbol('moved-handlers');\nexport const ADOPTED_HANDLERS = getSymbol('adopted-handlers');\n\n// Observer symbols\nexport const OBSERVERS = getSymbol('observers');\n\n// Part symbols\nexport const PARTS = getSymbol('parts');\nexport const PART_TIMERS = getSymbol('part-timers');\n\n// Property setter flag (prevents attributeChangedCallback re-triggering watchers)\nexport const SETTING_FROM_PROPERTY = getSymbol('setting-from-property');\n\n// Lifecycle callback timers\nexport const MOVED_TIMERS = getSymbol('moved-timers');\nexport const ADOPTED_TIMERS = getSymbol('adopted-timers');\n\n// Dispatch timing symbols\nexport const DISPATCH_TIMERS = getSymbol('dispatch-timers');\n\n// Render symbols (v3.0.0)\nexport const RENDER_METHOD = getSymbol('render-method');\nexport const RENDER_OPTIONS = getSymbol('render-options');\nexport const RENDER_INSTANCE = getSymbol('render-instance');\nexport const RENDER_TIMERS = getSymbol('render-timers');\nexport const RENDER_CALLBACKS = getSymbol('render-callbacks');\nexport const STYLES_METHOD = getSymbol('styles-method');\nexport const STYLES_APPLIED = getSymbol('styles-applied');\nexport const PARENT_STYLES_METHODS = getSymbol('parent-styles-methods');\nexport const SNICE_ELEMENT_BASE = getSymbol('snice-element-base');\n\n// Navigation context symbols\nexport const CONTEXT_HANDLER = getSymbol('context-handler');\nexport const CONTEXT_METHOD_NAME = getSymbol('context-method-name');\nexport const NAVIGATION_CONTEXT_INSTANCE = getSymbol('navigation-context-instance');\nexport const REGISTERED_ELEMENTS = getSymbol('registered-elements');\nexport const IS_UPDATING = getSymbol('is-updating');\nexport const CONTEXT_REGISTER = getSymbol('context-register');\nexport const CONTEXT_UNREGISTER = getSymbol('context-unregister');\nexport const CONTEXT_NOTIFY_ELEMENT = getSymbol('context-notify-element');\nexport const CONTEXT_OPTIONS = getSymbol('context-options');\nexport const CONTEXT_TIMER = getSymbol('context-timer');\nexport const CONTEXT_CALLED = getSymbol('context-called');\nexport const CONTEXT_UPDATE = getSymbol('context-update');\n\n// Registration de-dup sets on the constructor — replace previous `__*Methods`\n// expando strings that violated the no-double-underscore rule.\nexport const CONTEXT_METHODS = getSymbol('context-methods');\nexport const WATCH_METHODS = getSymbol('watch-methods');\nexport const OBSERVE_METHODS = getSymbol('observe-methods');\nexport const ON_METHODS = getSymbol('on-methods');\nexport const RESPOND_METHODS = getSymbol('respond-methods');\nexport const READY_METHODS = getSymbol('ready-methods');\nexport const DISPOSE_METHODS = getSymbol('dispose-methods');\nexport const RECONNECT_METHODS = getSymbol('reconnect-methods');\nexport const MOVED_METHODS = getSymbol('moved-methods');\nexport const ADOPTED_METHODS = getSymbol('adopted-methods');\n\n// Controller attach-abort — set to an AbortController while attachController\n// is awaiting element.ready, so detachController can short-circuit the wait.\nexport const CONTROLLER_ABORT = getSymbol('controller-abort');\n// Set on a controller instance once it has gotten past element.ready and is\n// being attached, so detachController knows not to run detach() on a controller\n// whose attach() was aborted before it ever ran.\nexport const CONTROLLER_ATTACHED = getSymbol('controller-attached');\nexport const PROPERTY_DEFINERS = getSymbol('property-definers');\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"symbols.cjs","sources":["../src/global.ts","../src/symbols.ts"],"sourcesContent":["// Global namespace for Snice framework\n// Ensures all registries and symbols are shared across different JS files/modules\n\nimport { SniceGlobal } from './types/snice-global';\n\n\n// Initialize the global Snice namespace on globalThis\n// This ensures all module instances share the same registry\nif (!(globalThis as any).snice) {\n (globalThis as any).snice = {\n controllerRegistry: new Map(),\n pendingControllerAttachments: new Map(),\n controllerIdCounter: 0\n };\n}\n\n// Multiple copies of Snice can share a global created by an older build.\n(globalThis as any).snice.pendingControllerAttachments ??= new Map();\n\n// Export direct reference to globalThis.snice\nexport const snice: SniceGlobal = (globalThis as any).snice;\n\n// Helper function to get or create a global symbol\n// Symbol.for() already guarantees global uniqueness, no need for a Map cache\nexport function getSymbol(name: string): symbol {\n return Symbol.for(`snice:${name}`);\n}\n","// Central file for all symbols used in the framework\n// All symbols are stored globally to ensure consistency across modules\n\nimport { getSymbol } from './global';\n\nexport { getSymbol };\n\nexport const IS_CONTROLLER_CLASS = getSymbol('is-controller-class');\nexport const IS_CONTROLLER_INSTANCE = getSymbol('is-controller-instance');\nexport const IS_DAEMON_CLASS = getSymbol('is-daemon-class');\nexport const IS_DAEMON_INSTANCE = getSymbol('is-daemon-instance');\nexport const IS_ELEMENT_CLASS = getSymbol('is-element-class');\nexport const CHANNEL_HANDLERS = getSymbol('channel-handlers');\n\n// Per-instance daemon communication state. Daemon instances are constructed by\n// application code; Snice only creates and manages their private EventTarget\n// when an app context explicitly provides them.\nexport const DAEMON_STATE = getSymbol('daemon-state');\n\n// Internal element state symbols\nexport const READY_PROMISE = getSymbol('ready-promise');\nexport const READY_RESOLVE = getSymbol('ready-resolve');\nexport const RENDERED_PROMISE = getSymbol('rendered-promise');\nexport const RENDERED_RESOLVE = getSymbol('rendered-resolve');\n// Set when a render is requested but dropped because the element was\n// disconnected; consumed on reconnect to replay exactly the missed render.\nexport const PENDING_RECONNECT_RENDER = getSymbol('pending-reconnect-render');\n// Per-element synchronous render-nesting depth, used to cap runaway re-entry\n// without a shared global counter that one element could exhaust for others.\nexport const RENDER_DEPTH = getSymbol('render-depth');\nexport const RENDER_ROOT = getSymbol('render-root');\nexport const ELEMENT_OPTIONS = getSymbol('element-options');\nexport const CONTROLLER = getSymbol('controller');\nexport const INITIALIZED = getSymbol('initialized');\n\n// Event handler symbols\nexport const ON_HANDLERS = getSymbol('on-handlers');\n\n// Controller symbols\nexport const CONTROLLER_KEY = getSymbol('controller-key');\nexport const CONTROLLER_NAME_KEY = getSymbol('controller-name');\nexport const CONTROLLER_ID = getSymbol('controller-id');\nexport const CONTROLLER_OPERATIONS = getSymbol('controller-operations');\nexport const NATIVE_CONTROLLER = getSymbol('native-controller');\n// Decorator name stored on the class so direct class bindings can expose the\n// same useful DOM label without resolving the controller through the registry.\nexport const CONTROLLER_REGISTRY_NAME = getSymbol('controller-registry-name');\n// Set while a controller CLASS (not a registry name) is attached — the\n// attribute/MutationObserver channel must not attach over or detach it.\nexport const DIRECT_CONTROLLER = getSymbol('direct-controller');\n// Guards framework-authored diagnostic controller attribute writes from the\n// synchronous custom-element attributeChangedCallback path.\nexport const CONTROLLER_ATTRIBUTE_SYNC = getSymbol('controller-attribute-sync');\n// A controller class bound by a template before the custom element was\n// defined/upgraded. Picked up by connectedCallback on first initialization.\nexport const PENDING_CONTROLLER_BINDING = getSymbol('pending-controller-binding');\n\n// Cleanup symbol - holds an object with all cleanup arrays\nexport const CLEANUP = getSymbol('cleanup');\n\n// Property symbols\nexport const PROPERTIES = getSymbol('properties');\nexport const PROPERTY_VALUES = getSymbol('property-values');\nexport const PROPERTY_DEFAULTS = getSymbol('property-defaults');\nexport const PROPERTY_WRAPPERS = getSymbol('property-wrappers');\nexport const PRE_INIT_PROPERTY_VALUES = getSymbol('pre-init-property-values');\nexport const PRE_UPGRADE_PROPERTY_BINDINGS = getSymbol('pre-upgrade-property-bindings');\nexport const PROPERTIES_INITIALIZED = getSymbol('properties-initialized');\nexport const PROPERTY_WATCHERS = getSymbol('property-watchers');\nexport const EXPLICITLY_SET_PROPERTIES = getSymbol('explicitly-set-properties');\n\n// Router context symbol\nexport const ROUTER_CONTEXT = getSymbol('router-context');\nexport const CURRENT_PAGE_MARKER = getSymbol('current-page-marker');\nexport const CONTEXT_REQUEST_HANDLER = getSymbol('context-request-handler');\nexport const PAGE_TRANSITION = getSymbol('page-transition');\nexport const CREATED_AT = getSymbol('created-at');\n\n// Lifecycle symbols\nexport const READY_HANDLERS = getSymbol('ready-handlers');\nexport const DISPOSE_HANDLERS = getSymbol('dispose-handlers');\nexport const RECONNECT_HANDLERS = getSymbol('reconnect-handlers');\nexport const MOVED_HANDLERS = getSymbol('moved-handlers');\nexport const ADOPTED_HANDLERS = getSymbol('adopted-handlers');\n\n// Observer symbols\nexport const OBSERVERS = getSymbol('observers');\n\n// Part symbols\nexport const PARTS = getSymbol('parts');\nexport const PART_TIMERS = getSymbol('part-timers');\n\n// Property setter flag (prevents attributeChangedCallback re-triggering watchers)\nexport const SETTING_FROM_PROPERTY = getSymbol('setting-from-property');\n\n// Lifecycle callback timers\nexport const MOVED_TIMERS = getSymbol('moved-timers');\nexport const ADOPTED_TIMERS = getSymbol('adopted-timers');\n\n// Dispatch timing symbols\nexport const DISPATCH_TIMERS = getSymbol('dispatch-timers');\n\n// Render symbols (v3.0.0)\nexport const RENDER_METHOD = getSymbol('render-method');\nexport const RENDER_OPTIONS = getSymbol('render-options');\nexport const RENDER_INSTANCE = getSymbol('render-instance');\nexport const RENDER_TIMERS = getSymbol('render-timers');\nexport const RENDER_CALLBACKS = getSymbol('render-callbacks');\nexport const STYLES_METHOD = getSymbol('styles-method');\nexport const STYLES_APPLIED = getSymbol('styles-applied');\nexport const PARENT_STYLES_METHODS = getSymbol('parent-styles-methods');\nexport const SNICE_ELEMENT_BASE = getSymbol('snice-element-base');\n\n// Navigation context symbols\nexport const CONTEXT_HANDLER = getSymbol('context-handler');\nexport const CONTEXT_METHOD_NAME = getSymbol('context-method-name');\nexport const NAVIGATION_CONTEXT_INSTANCE = getSymbol('navigation-context-instance');\nexport const REGISTERED_ELEMENTS = getSymbol('registered-elements');\nexport const IS_UPDATING = getSymbol('is-updating');\nexport const CONTEXT_REGISTER = getSymbol('context-register');\nexport const CONTEXT_UNREGISTER = getSymbol('context-unregister');\nexport const CONTEXT_NOTIFY_ELEMENT = getSymbol('context-notify-element');\nexport const CONTEXT_OPTIONS = getSymbol('context-options');\nexport const CONTEXT_TIMER = getSymbol('context-timer');\nexport const CONTEXT_CALLED = getSymbol('context-called');\nexport const CONTEXT_UPDATE = getSymbol('context-update');\n\n// Registration de-dup sets on the constructor — replace previous `__*Methods`\n// expando strings that violated the no-double-underscore rule.\nexport const CONTEXT_METHODS = getSymbol('context-methods');\nexport const WATCH_METHODS = getSymbol('watch-methods');\nexport const OBSERVE_METHODS = getSymbol('observe-methods');\nexport const ON_METHODS = getSymbol('on-methods');\nexport const RESPOND_METHODS = getSymbol('respond-methods');\nexport const READY_METHODS = getSymbol('ready-methods');\nexport const DISPOSE_METHODS = getSymbol('dispose-methods');\nexport const RECONNECT_METHODS = getSymbol('reconnect-methods');\nexport const MOVED_METHODS = getSymbol('moved-methods');\nexport const ADOPTED_METHODS = getSymbol('adopted-methods');\n\n// Controller attach-abort — set to an AbortController while attachController\n// is awaiting element.ready, so detachController can short-circuit the wait.\nexport const CONTROLLER_ABORT = getSymbol('controller-abort');\n// Set on a controller instance once it has gotten past element.ready and is\n// being attached, so detachController knows not to run detach() on a controller\n// whose attach() was aborted before it ever ran.\nexport const CONTROLLER_ATTACHED = getSymbol('controller-attached');\nexport const PROPERTY_DEFINERS = getSymbol('property-definers');\n"],"names":[],"mappings":"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"}
|
package/dist/symbols.d.ts
CHANGED
|
@@ -2,8 +2,11 @@ import { getSymbol } from './global';
|
|
|
2
2
|
export { getSymbol };
|
|
3
3
|
export declare const IS_CONTROLLER_CLASS: symbol;
|
|
4
4
|
export declare const IS_CONTROLLER_INSTANCE: symbol;
|
|
5
|
+
export declare const IS_DAEMON_CLASS: symbol;
|
|
6
|
+
export declare const IS_DAEMON_INSTANCE: symbol;
|
|
5
7
|
export declare const IS_ELEMENT_CLASS: symbol;
|
|
6
8
|
export declare const CHANNEL_HANDLERS: symbol;
|
|
9
|
+
export declare const DAEMON_STATE: symbol;
|
|
7
10
|
export declare const READY_PROMISE: symbol;
|
|
8
11
|
export declare const READY_RESOLVE: symbol;
|
|
9
12
|
export declare const RENDERED_PROMISE: symbol;
|
|
@@ -20,7 +23,9 @@ export declare const CONTROLLER_NAME_KEY: symbol;
|
|
|
20
23
|
export declare const CONTROLLER_ID: symbol;
|
|
21
24
|
export declare const CONTROLLER_OPERATIONS: symbol;
|
|
22
25
|
export declare const NATIVE_CONTROLLER: symbol;
|
|
26
|
+
export declare const CONTROLLER_REGISTRY_NAME: symbol;
|
|
23
27
|
export declare const DIRECT_CONTROLLER: symbol;
|
|
28
|
+
export declare const CONTROLLER_ATTRIBUTE_SYNC: symbol;
|
|
24
29
|
export declare const PENDING_CONTROLLER_BINDING: symbol;
|
|
25
30
|
export declare const CLEANUP: symbol;
|
|
26
31
|
export declare const PROPERTIES: symbol;
|
package/dist/symbols.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
|
@@ -29,8 +29,14 @@ function getSymbol(name) {
|
|
|
29
29
|
// All symbols are stored globally to ensure consistency across modules
|
|
30
30
|
const IS_CONTROLLER_CLASS = getSymbol('is-controller-class');
|
|
31
31
|
const IS_CONTROLLER_INSTANCE = getSymbol('is-controller-instance');
|
|
32
|
+
const IS_DAEMON_CLASS = getSymbol('is-daemon-class');
|
|
33
|
+
const IS_DAEMON_INSTANCE = getSymbol('is-daemon-instance');
|
|
32
34
|
const IS_ELEMENT_CLASS = getSymbol('is-element-class');
|
|
33
35
|
const CHANNEL_HANDLERS = getSymbol('channel-handlers');
|
|
36
|
+
// Per-instance daemon communication state. Daemon instances are constructed by
|
|
37
|
+
// application code; Snice only creates and manages their private EventTarget
|
|
38
|
+
// when an app context explicitly provides them.
|
|
39
|
+
const DAEMON_STATE = getSymbol('daemon-state');
|
|
34
40
|
// Internal element state symbols
|
|
35
41
|
const READY_PROMISE = getSymbol('ready-promise');
|
|
36
42
|
const READY_RESOLVE = getSymbol('ready-resolve');
|
|
@@ -54,9 +60,15 @@ const CONTROLLER_NAME_KEY = getSymbol('controller-name');
|
|
|
54
60
|
const CONTROLLER_ID = getSymbol('controller-id');
|
|
55
61
|
const CONTROLLER_OPERATIONS = getSymbol('controller-operations');
|
|
56
62
|
const NATIVE_CONTROLLER = getSymbol('native-controller');
|
|
63
|
+
// Decorator name stored on the class so direct class bindings can expose the
|
|
64
|
+
// same useful DOM label without resolving the controller through the registry.
|
|
65
|
+
const CONTROLLER_REGISTRY_NAME = getSymbol('controller-registry-name');
|
|
57
66
|
// Set while a controller CLASS (not a registry name) is attached — the
|
|
58
67
|
// attribute/MutationObserver channel must not attach over or detach it.
|
|
59
68
|
const DIRECT_CONTROLLER = getSymbol('direct-controller');
|
|
69
|
+
// Guards framework-authored diagnostic controller attribute writes from the
|
|
70
|
+
// synchronous custom-element attributeChangedCallback path.
|
|
71
|
+
const CONTROLLER_ATTRIBUTE_SYNC = getSymbol('controller-attribute-sync');
|
|
60
72
|
// A controller class bound by a template before the custom element was
|
|
61
73
|
// defined/upgraded. Picked up by connectedCallback on first initialization.
|
|
62
74
|
const PENDING_CONTROLLER_BINDING = getSymbol('pending-controller-binding');
|
|
@@ -140,5 +152,5 @@ const CONTROLLER_ABORT = getSymbol('controller-abort');
|
|
|
140
152
|
const CONTROLLER_ATTACHED = getSymbol('controller-attached');
|
|
141
153
|
const PROPERTY_DEFINERS = getSymbol('property-definers');
|
|
142
154
|
|
|
143
|
-
export { ADOPTED_HANDLERS, ADOPTED_METHODS, ADOPTED_TIMERS, CHANNEL_HANDLERS, CLEANUP, CONTEXT_CALLED, CONTEXT_HANDLER, CONTEXT_METHODS, CONTEXT_METHOD_NAME, CONTEXT_NOTIFY_ELEMENT, CONTEXT_OPTIONS, CONTEXT_REGISTER, CONTEXT_REQUEST_HANDLER, CONTEXT_TIMER, CONTEXT_UNREGISTER, CONTEXT_UPDATE, CONTROLLER, CONTROLLER_ABORT, CONTROLLER_ATTACHED, CONTROLLER_ID, CONTROLLER_KEY, CONTROLLER_NAME_KEY, CONTROLLER_OPERATIONS, CREATED_AT, CURRENT_PAGE_MARKER, DIRECT_CONTROLLER, DISPATCH_TIMERS, DISPOSE_HANDLERS, DISPOSE_METHODS, ELEMENT_OPTIONS, EXPLICITLY_SET_PROPERTIES, INITIALIZED, IS_CONTROLLER_CLASS, IS_CONTROLLER_INSTANCE, IS_ELEMENT_CLASS, IS_UPDATING, MOVED_HANDLERS, MOVED_METHODS, MOVED_TIMERS, NATIVE_CONTROLLER, NAVIGATION_CONTEXT_INSTANCE, OBSERVERS, OBSERVE_METHODS, ON_HANDLERS, ON_METHODS, PAGE_TRANSITION, PARENT_STYLES_METHODS, PARTS, PART_TIMERS, PENDING_CONTROLLER_BINDING, PENDING_RECONNECT_RENDER, PRE_INIT_PROPERTY_VALUES, PRE_UPGRADE_PROPERTY_BINDINGS, PROPERTIES, PROPERTIES_INITIALIZED, PROPERTY_DEFAULTS, PROPERTY_DEFINERS, PROPERTY_VALUES, PROPERTY_WATCHERS, PROPERTY_WRAPPERS, READY_HANDLERS, READY_METHODS, READY_PROMISE, READY_RESOLVE, RECONNECT_HANDLERS, RECONNECT_METHODS, REGISTERED_ELEMENTS, RENDERED_PROMISE, RENDERED_RESOLVE, RENDER_CALLBACKS, RENDER_DEPTH, RENDER_INSTANCE, RENDER_METHOD, RENDER_OPTIONS, RENDER_ROOT, RENDER_TIMERS, RESPOND_METHODS, ROUTER_CONTEXT, SETTING_FROM_PROPERTY, SNICE_ELEMENT_BASE, STYLES_APPLIED, STYLES_METHOD, WATCH_METHODS, getSymbol };
|
|
155
|
+
export { ADOPTED_HANDLERS, ADOPTED_METHODS, ADOPTED_TIMERS, CHANNEL_HANDLERS, CLEANUP, CONTEXT_CALLED, CONTEXT_HANDLER, CONTEXT_METHODS, CONTEXT_METHOD_NAME, CONTEXT_NOTIFY_ELEMENT, CONTEXT_OPTIONS, CONTEXT_REGISTER, CONTEXT_REQUEST_HANDLER, CONTEXT_TIMER, CONTEXT_UNREGISTER, CONTEXT_UPDATE, CONTROLLER, CONTROLLER_ABORT, CONTROLLER_ATTACHED, CONTROLLER_ATTRIBUTE_SYNC, CONTROLLER_ID, CONTROLLER_KEY, CONTROLLER_NAME_KEY, CONTROLLER_OPERATIONS, CONTROLLER_REGISTRY_NAME, CREATED_AT, CURRENT_PAGE_MARKER, DAEMON_STATE, DIRECT_CONTROLLER, DISPATCH_TIMERS, DISPOSE_HANDLERS, DISPOSE_METHODS, ELEMENT_OPTIONS, EXPLICITLY_SET_PROPERTIES, INITIALIZED, IS_CONTROLLER_CLASS, IS_CONTROLLER_INSTANCE, IS_DAEMON_CLASS, IS_DAEMON_INSTANCE, IS_ELEMENT_CLASS, IS_UPDATING, MOVED_HANDLERS, MOVED_METHODS, MOVED_TIMERS, NATIVE_CONTROLLER, NAVIGATION_CONTEXT_INSTANCE, OBSERVERS, OBSERVE_METHODS, ON_HANDLERS, ON_METHODS, PAGE_TRANSITION, PARENT_STYLES_METHODS, PARTS, PART_TIMERS, PENDING_CONTROLLER_BINDING, PENDING_RECONNECT_RENDER, PRE_INIT_PROPERTY_VALUES, PRE_UPGRADE_PROPERTY_BINDINGS, PROPERTIES, PROPERTIES_INITIALIZED, PROPERTY_DEFAULTS, PROPERTY_DEFINERS, PROPERTY_VALUES, PROPERTY_WATCHERS, PROPERTY_WRAPPERS, READY_HANDLERS, READY_METHODS, READY_PROMISE, READY_RESOLVE, RECONNECT_HANDLERS, RECONNECT_METHODS, REGISTERED_ELEMENTS, RENDERED_PROMISE, RENDERED_RESOLVE, RENDER_CALLBACKS, RENDER_DEPTH, RENDER_INSTANCE, RENDER_METHOD, RENDER_OPTIONS, RENDER_ROOT, RENDER_TIMERS, RESPOND_METHODS, ROUTER_CONTEXT, SETTING_FROM_PROPERTY, SNICE_ELEMENT_BASE, STYLES_APPLIED, STYLES_METHOD, WATCH_METHODS, getSymbol };
|
|
144
156
|
//# sourceMappingURL=symbols.esm.js.map
|
package/dist/symbols.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.esm.js","sources":["../src/global.ts","../src/symbols.ts"],"sourcesContent":["// Global namespace for Snice framework\n// Ensures all registries and symbols are shared across different JS files/modules\n\nimport { SniceGlobal } from './types/snice-global';\n\n\n// Initialize the global Snice namespace on globalThis\n// This ensures all module instances share the same registry\nif (!(globalThis as any).snice) {\n (globalThis as any).snice = {\n controllerRegistry: new Map(),\n pendingControllerAttachments: new Map(),\n controllerIdCounter: 0\n };\n}\n\n// Multiple copies of Snice can share a global created by an older build.\n(globalThis as any).snice.pendingControllerAttachments ??= new Map();\n\n// Export direct reference to globalThis.snice\nexport const snice: SniceGlobal = (globalThis as any).snice;\n\n// Helper function to get or create a global symbol\n// Symbol.for() already guarantees global uniqueness, no need for a Map cache\nexport function getSymbol(name: string): symbol {\n return Symbol.for(`snice:${name}`);\n}\n","// Central file for all symbols used in the framework\n// All symbols are stored globally to ensure consistency across modules\n\nimport { getSymbol } from './global';\n\nexport { getSymbol };\n\nexport const IS_CONTROLLER_CLASS = getSymbol('is-controller-class');\nexport const IS_CONTROLLER_INSTANCE = getSymbol('is-controller-instance');\nexport const IS_ELEMENT_CLASS = getSymbol('is-element-class');\nexport const CHANNEL_HANDLERS = getSymbol('channel-handlers');\n\n// Internal element state symbols\nexport const READY_PROMISE = getSymbol('ready-promise');\nexport const READY_RESOLVE = getSymbol('ready-resolve');\nexport const RENDERED_PROMISE = getSymbol('rendered-promise');\nexport const RENDERED_RESOLVE = getSymbol('rendered-resolve');\n// Set when a render is requested but dropped because the element was\n// disconnected; consumed on reconnect to replay exactly the missed render.\nexport const PENDING_RECONNECT_RENDER = getSymbol('pending-reconnect-render');\n// Per-element synchronous render-nesting depth, used to cap runaway re-entry\n// without a shared global counter that one element could exhaust for others.\nexport const RENDER_DEPTH = getSymbol('render-depth');\nexport const RENDER_ROOT = getSymbol('render-root');\nexport const ELEMENT_OPTIONS = getSymbol('element-options');\nexport const CONTROLLER = getSymbol('controller');\nexport const INITIALIZED = getSymbol('initialized');\n\n// Event handler symbols\nexport const ON_HANDLERS = getSymbol('on-handlers');\n\n// Controller symbols\nexport const CONTROLLER_KEY = getSymbol('controller-key');\nexport const CONTROLLER_NAME_KEY = getSymbol('controller-name');\nexport const CONTROLLER_ID = getSymbol('controller-id');\nexport const CONTROLLER_OPERATIONS = getSymbol('controller-operations');\nexport const NATIVE_CONTROLLER = getSymbol('native-controller');\n// Set while a controller CLASS (not a registry name) is attached — the\n// attribute/MutationObserver channel must not attach over or detach it.\nexport const DIRECT_CONTROLLER = getSymbol('direct-controller');\n// A controller class bound by a template before the custom element was\n// defined/upgraded. Picked up by connectedCallback on first initialization.\nexport const PENDING_CONTROLLER_BINDING = getSymbol('pending-controller-binding');\n\n// Cleanup symbol - holds an object with all cleanup arrays\nexport const CLEANUP = getSymbol('cleanup');\n\n// Property symbols\nexport const PROPERTIES = getSymbol('properties');\nexport const PROPERTY_VALUES = getSymbol('property-values');\nexport const PROPERTY_DEFAULTS = getSymbol('property-defaults');\nexport const PROPERTY_WRAPPERS = getSymbol('property-wrappers');\nexport const PRE_INIT_PROPERTY_VALUES = getSymbol('pre-init-property-values');\nexport const PRE_UPGRADE_PROPERTY_BINDINGS = getSymbol('pre-upgrade-property-bindings');\nexport const PROPERTIES_INITIALIZED = getSymbol('properties-initialized');\nexport const PROPERTY_WATCHERS = getSymbol('property-watchers');\nexport const EXPLICITLY_SET_PROPERTIES = getSymbol('explicitly-set-properties');\n\n// Router context symbol\nexport const ROUTER_CONTEXT = getSymbol('router-context');\nexport const CURRENT_PAGE_MARKER = getSymbol('current-page-marker');\nexport const CONTEXT_REQUEST_HANDLER = getSymbol('context-request-handler');\nexport const PAGE_TRANSITION = getSymbol('page-transition');\nexport const CREATED_AT = getSymbol('created-at');\n\n// Lifecycle symbols\nexport const READY_HANDLERS = getSymbol('ready-handlers');\nexport const DISPOSE_HANDLERS = getSymbol('dispose-handlers');\nexport const RECONNECT_HANDLERS = getSymbol('reconnect-handlers');\nexport const MOVED_HANDLERS = getSymbol('moved-handlers');\nexport const ADOPTED_HANDLERS = getSymbol('adopted-handlers');\n\n// Observer symbols\nexport const OBSERVERS = getSymbol('observers');\n\n// Part symbols\nexport const PARTS = getSymbol('parts');\nexport const PART_TIMERS = getSymbol('part-timers');\n\n// Property setter flag (prevents attributeChangedCallback re-triggering watchers)\nexport const SETTING_FROM_PROPERTY = getSymbol('setting-from-property');\n\n// Lifecycle callback timers\nexport const MOVED_TIMERS = getSymbol('moved-timers');\nexport const ADOPTED_TIMERS = getSymbol('adopted-timers');\n\n// Dispatch timing symbols\nexport const DISPATCH_TIMERS = getSymbol('dispatch-timers');\n\n// Render symbols (v3.0.0)\nexport const RENDER_METHOD = getSymbol('render-method');\nexport const RENDER_OPTIONS = getSymbol('render-options');\nexport const RENDER_INSTANCE = getSymbol('render-instance');\nexport const RENDER_TIMERS = getSymbol('render-timers');\nexport const RENDER_CALLBACKS = getSymbol('render-callbacks');\nexport const STYLES_METHOD = getSymbol('styles-method');\nexport const STYLES_APPLIED = getSymbol('styles-applied');\nexport const PARENT_STYLES_METHODS = getSymbol('parent-styles-methods');\nexport const SNICE_ELEMENT_BASE = getSymbol('snice-element-base');\n\n// Navigation context symbols\nexport const CONTEXT_HANDLER = getSymbol('context-handler');\nexport const CONTEXT_METHOD_NAME = getSymbol('context-method-name');\nexport const NAVIGATION_CONTEXT_INSTANCE = getSymbol('navigation-context-instance');\nexport const REGISTERED_ELEMENTS = getSymbol('registered-elements');\nexport const IS_UPDATING = getSymbol('is-updating');\nexport const CONTEXT_REGISTER = getSymbol('context-register');\nexport const CONTEXT_UNREGISTER = getSymbol('context-unregister');\nexport const CONTEXT_NOTIFY_ELEMENT = getSymbol('context-notify-element');\nexport const CONTEXT_OPTIONS = getSymbol('context-options');\nexport const CONTEXT_TIMER = getSymbol('context-timer');\nexport const CONTEXT_CALLED = getSymbol('context-called');\nexport const CONTEXT_UPDATE = getSymbol('context-update');\n\n// Registration de-dup sets on the constructor — replace previous `__*Methods`\n// expando strings that violated the no-double-underscore rule.\nexport const CONTEXT_METHODS = getSymbol('context-methods');\nexport const WATCH_METHODS = getSymbol('watch-methods');\nexport const OBSERVE_METHODS = getSymbol('observe-methods');\nexport const ON_METHODS = getSymbol('on-methods');\nexport const RESPOND_METHODS = getSymbol('respond-methods');\nexport const READY_METHODS = getSymbol('ready-methods');\nexport const DISPOSE_METHODS = getSymbol('dispose-methods');\nexport const RECONNECT_METHODS = getSymbol('reconnect-methods');\nexport const MOVED_METHODS = getSymbol('moved-methods');\nexport const ADOPTED_METHODS = getSymbol('adopted-methods');\n\n// Controller attach-abort — set to an AbortController while attachController\n// is awaiting element.ready, so detachController can short-circuit the wait.\nexport const CONTROLLER_ABORT = getSymbol('controller-abort');\n// Set on a controller instance once it has gotten past element.ready and is\n// being attached, so detachController knows not to run detach() on a controller\n// whose attach() was aborted before it ever ran.\nexport const CONTROLLER_ATTACHED = getSymbol('controller-attached');\nexport const PROPERTY_DEFINERS = getSymbol('property-definers');\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"symbols.esm.js","sources":["../src/global.ts","../src/symbols.ts"],"sourcesContent":["// Global namespace for Snice framework\n// Ensures all registries and symbols are shared across different JS files/modules\n\nimport { SniceGlobal } from './types/snice-global';\n\n\n// Initialize the global Snice namespace on globalThis\n// This ensures all module instances share the same registry\nif (!(globalThis as any).snice) {\n (globalThis as any).snice = {\n controllerRegistry: new Map(),\n pendingControllerAttachments: new Map(),\n controllerIdCounter: 0\n };\n}\n\n// Multiple copies of Snice can share a global created by an older build.\n(globalThis as any).snice.pendingControllerAttachments ??= new Map();\n\n// Export direct reference to globalThis.snice\nexport const snice: SniceGlobal = (globalThis as any).snice;\n\n// Helper function to get or create a global symbol\n// Symbol.for() already guarantees global uniqueness, no need for a Map cache\nexport function getSymbol(name: string): symbol {\n return Symbol.for(`snice:${name}`);\n}\n","// Central file for all symbols used in the framework\n// All symbols are stored globally to ensure consistency across modules\n\nimport { getSymbol } from './global';\n\nexport { getSymbol };\n\nexport const IS_CONTROLLER_CLASS = getSymbol('is-controller-class');\nexport const IS_CONTROLLER_INSTANCE = getSymbol('is-controller-instance');\nexport const IS_DAEMON_CLASS = getSymbol('is-daemon-class');\nexport const IS_DAEMON_INSTANCE = getSymbol('is-daemon-instance');\nexport const IS_ELEMENT_CLASS = getSymbol('is-element-class');\nexport const CHANNEL_HANDLERS = getSymbol('channel-handlers');\n\n// Per-instance daemon communication state. Daemon instances are constructed by\n// application code; Snice only creates and manages their private EventTarget\n// when an app context explicitly provides them.\nexport const DAEMON_STATE = getSymbol('daemon-state');\n\n// Internal element state symbols\nexport const READY_PROMISE = getSymbol('ready-promise');\nexport const READY_RESOLVE = getSymbol('ready-resolve');\nexport const RENDERED_PROMISE = getSymbol('rendered-promise');\nexport const RENDERED_RESOLVE = getSymbol('rendered-resolve');\n// Set when a render is requested but dropped because the element was\n// disconnected; consumed on reconnect to replay exactly the missed render.\nexport const PENDING_RECONNECT_RENDER = getSymbol('pending-reconnect-render');\n// Per-element synchronous render-nesting depth, used to cap runaway re-entry\n// without a shared global counter that one element could exhaust for others.\nexport const RENDER_DEPTH = getSymbol('render-depth');\nexport const RENDER_ROOT = getSymbol('render-root');\nexport const ELEMENT_OPTIONS = getSymbol('element-options');\nexport const CONTROLLER = getSymbol('controller');\nexport const INITIALIZED = getSymbol('initialized');\n\n// Event handler symbols\nexport const ON_HANDLERS = getSymbol('on-handlers');\n\n// Controller symbols\nexport const CONTROLLER_KEY = getSymbol('controller-key');\nexport const CONTROLLER_NAME_KEY = getSymbol('controller-name');\nexport const CONTROLLER_ID = getSymbol('controller-id');\nexport const CONTROLLER_OPERATIONS = getSymbol('controller-operations');\nexport const NATIVE_CONTROLLER = getSymbol('native-controller');\n// Decorator name stored on the class so direct class bindings can expose the\n// same useful DOM label without resolving the controller through the registry.\nexport const CONTROLLER_REGISTRY_NAME = getSymbol('controller-registry-name');\n// Set while a controller CLASS (not a registry name) is attached — the\n// attribute/MutationObserver channel must not attach over or detach it.\nexport const DIRECT_CONTROLLER = getSymbol('direct-controller');\n// Guards framework-authored diagnostic controller attribute writes from the\n// synchronous custom-element attributeChangedCallback path.\nexport const CONTROLLER_ATTRIBUTE_SYNC = getSymbol('controller-attribute-sync');\n// A controller class bound by a template before the custom element was\n// defined/upgraded. Picked up by connectedCallback on first initialization.\nexport const PENDING_CONTROLLER_BINDING = getSymbol('pending-controller-binding');\n\n// Cleanup symbol - holds an object with all cleanup arrays\nexport const CLEANUP = getSymbol('cleanup');\n\n// Property symbols\nexport const PROPERTIES = getSymbol('properties');\nexport const PROPERTY_VALUES = getSymbol('property-values');\nexport const PROPERTY_DEFAULTS = getSymbol('property-defaults');\nexport const PROPERTY_WRAPPERS = getSymbol('property-wrappers');\nexport const PRE_INIT_PROPERTY_VALUES = getSymbol('pre-init-property-values');\nexport const PRE_UPGRADE_PROPERTY_BINDINGS = getSymbol('pre-upgrade-property-bindings');\nexport const PROPERTIES_INITIALIZED = getSymbol('properties-initialized');\nexport const PROPERTY_WATCHERS = getSymbol('property-watchers');\nexport const EXPLICITLY_SET_PROPERTIES = getSymbol('explicitly-set-properties');\n\n// Router context symbol\nexport const ROUTER_CONTEXT = getSymbol('router-context');\nexport const CURRENT_PAGE_MARKER = getSymbol('current-page-marker');\nexport const CONTEXT_REQUEST_HANDLER = getSymbol('context-request-handler');\nexport const PAGE_TRANSITION = getSymbol('page-transition');\nexport const CREATED_AT = getSymbol('created-at');\n\n// Lifecycle symbols\nexport const READY_HANDLERS = getSymbol('ready-handlers');\nexport const DISPOSE_HANDLERS = getSymbol('dispose-handlers');\nexport const RECONNECT_HANDLERS = getSymbol('reconnect-handlers');\nexport const MOVED_HANDLERS = getSymbol('moved-handlers');\nexport const ADOPTED_HANDLERS = getSymbol('adopted-handlers');\n\n// Observer symbols\nexport const OBSERVERS = getSymbol('observers');\n\n// Part symbols\nexport const PARTS = getSymbol('parts');\nexport const PART_TIMERS = getSymbol('part-timers');\n\n// Property setter flag (prevents attributeChangedCallback re-triggering watchers)\nexport const SETTING_FROM_PROPERTY = getSymbol('setting-from-property');\n\n// Lifecycle callback timers\nexport const MOVED_TIMERS = getSymbol('moved-timers');\nexport const ADOPTED_TIMERS = getSymbol('adopted-timers');\n\n// Dispatch timing symbols\nexport const DISPATCH_TIMERS = getSymbol('dispatch-timers');\n\n// Render symbols (v3.0.0)\nexport const RENDER_METHOD = getSymbol('render-method');\nexport const RENDER_OPTIONS = getSymbol('render-options');\nexport const RENDER_INSTANCE = getSymbol('render-instance');\nexport const RENDER_TIMERS = getSymbol('render-timers');\nexport const RENDER_CALLBACKS = getSymbol('render-callbacks');\nexport const STYLES_METHOD = getSymbol('styles-method');\nexport const STYLES_APPLIED = getSymbol('styles-applied');\nexport const PARENT_STYLES_METHODS = getSymbol('parent-styles-methods');\nexport const SNICE_ELEMENT_BASE = getSymbol('snice-element-base');\n\n// Navigation context symbols\nexport const CONTEXT_HANDLER = getSymbol('context-handler');\nexport const CONTEXT_METHOD_NAME = getSymbol('context-method-name');\nexport const NAVIGATION_CONTEXT_INSTANCE = getSymbol('navigation-context-instance');\nexport const REGISTERED_ELEMENTS = getSymbol('registered-elements');\nexport const IS_UPDATING = getSymbol('is-updating');\nexport const CONTEXT_REGISTER = getSymbol('context-register');\nexport const CONTEXT_UNREGISTER = getSymbol('context-unregister');\nexport const CONTEXT_NOTIFY_ELEMENT = getSymbol('context-notify-element');\nexport const CONTEXT_OPTIONS = getSymbol('context-options');\nexport const CONTEXT_TIMER = getSymbol('context-timer');\nexport const CONTEXT_CALLED = getSymbol('context-called');\nexport const CONTEXT_UPDATE = getSymbol('context-update');\n\n// Registration de-dup sets on the constructor — replace previous `__*Methods`\n// expando strings that violated the no-double-underscore rule.\nexport const CONTEXT_METHODS = getSymbol('context-methods');\nexport const WATCH_METHODS = getSymbol('watch-methods');\nexport const OBSERVE_METHODS = getSymbol('observe-methods');\nexport const ON_METHODS = getSymbol('on-methods');\nexport const RESPOND_METHODS = getSymbol('respond-methods');\nexport const READY_METHODS = getSymbol('ready-methods');\nexport const DISPOSE_METHODS = getSymbol('dispose-methods');\nexport const RECONNECT_METHODS = getSymbol('reconnect-methods');\nexport const MOVED_METHODS = getSymbol('moved-methods');\nexport const ADOPTED_METHODS = getSymbol('adopted-methods');\n\n// Controller attach-abort — set to an AbortController while attachController\n// is awaiting element.ready, so detachController can short-circuit the wait.\nexport const CONTROLLER_ABORT = getSymbol('controller-abort');\n// Set on a controller instance once it has gotten past element.ready and is\n// being attached, so detachController knows not to run detach() on a controller\n// whose attach() was aborted before it ever ran.\nexport const CONTROLLER_ATTACHED = getSymbol('controller-attached');\nexport const PROPERTY_DEFINERS = getSymbol('property-definers');\n"],"names":[],"mappings":"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"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './index';
|
|
2
2
|
export { registerControllerCleanup, getControllerScope, attachController, detachController, getController, cleanupNativeElementControllers } from './controller';
|
|
3
|
-
export { CONTROLLER_KEY, CONTROLLER_OPERATIONS, CONTROLLER_NAME_KEY, CONTROLLER_ID, PROPERTIES_INITIALIZED, PROPERTY_VALUES, PROPERTY_WATCHERS, EXPLICITLY_SET_PROPERTIES, READY_PROMISE, READY_RESOLVE, READY_HANDLERS, DISPOSE_HANDLERS, PARTS, PART_TIMERS, ROUTER_CONTEXT, CONTEXT_REQUEST_HANDLER, PAGE_TRANSITION, CREATED_AT, IS_ELEMENT_CLASS, IS_CONTROLLER_CLASS, IS_CONTROLLER_INSTANCE, NATIVE_CONTROLLER, DIRECT_CONTROLLER, PENDING_CONTROLLER_BINDING, CLEANUP, ON_HANDLERS, DISPATCH_TIMERS, CHANNEL_HANDLERS, OBSERVERS } from './symbols';
|
|
3
|
+
export { CONTROLLER_KEY, CONTROLLER_OPERATIONS, CONTROLLER_NAME_KEY, CONTROLLER_ID, PROPERTIES_INITIALIZED, PROPERTY_VALUES, PROPERTY_WATCHERS, EXPLICITLY_SET_PROPERTIES, READY_PROMISE, READY_RESOLVE, READY_HANDLERS, DISPOSE_HANDLERS, PARTS, PART_TIMERS, ROUTER_CONTEXT, CONTEXT_REQUEST_HANDLER, PAGE_TRANSITION, CREATED_AT, IS_ELEMENT_CLASS, IS_CONTROLLER_CLASS, IS_CONTROLLER_INSTANCE, IS_DAEMON_CLASS, IS_DAEMON_INSTANCE, DAEMON_STATE, NATIVE_CONTROLLER, DIRECT_CONTROLLER, PENDING_CONTROLLER_BINDING, CLEANUP, ON_HANDLERS, DISPATCH_TIMERS, CHANNEL_HANDLERS, OBSERVERS } from './symbols';
|
|
4
4
|
export { parseAttributeValue, detectType } from './utils';
|
package/dist/transitions.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
package/dist/transitions.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.0
|
|
3
|
-
* A decorator-driven web component library with
|
|
2
|
+
* snice v7.1.0
|
|
3
|
+
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { DaemonMap } from './daemon';
|
|
1
2
|
/**
|
|
2
|
-
* Application context
|
|
3
|
+
* Application context visible to the framework.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Snice only assigns meaning to `daemons`. Other application state remains
|
|
6
|
+
* deliberately unknown until an application extends this interface or narrows
|
|
7
|
+
* it to its own context type.
|
|
7
8
|
*
|
|
8
9
|
* Applications can extend this interface to add their own context properties:
|
|
9
10
|
*
|
|
@@ -23,59 +24,9 @@
|
|
|
23
24
|
*/
|
|
24
25
|
export interface AppContext {
|
|
25
26
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* theme: {
|
|
32
|
-
* current: 'dark',
|
|
33
|
-
* setTheme: (theme: string) => void,
|
|
34
|
-
* isDarkMode: () => boolean
|
|
35
|
-
* }
|
|
36
|
-
* ```
|
|
27
|
+
* Explicitly constructed daemon instances addressable by elements and
|
|
28
|
+
* controllers through the communication decorators.
|
|
37
29
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
* Internationalization and localization context.
|
|
41
|
-
* Handles language switching, translations, and regional formatting.
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```typescript
|
|
45
|
-
* locale: {
|
|
46
|
-
* current: 'en-US',
|
|
47
|
-
* setLocale: (locale: string) => void,
|
|
48
|
-
* t: (key: string) => string
|
|
49
|
-
* }
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
locale?: any;
|
|
53
|
-
/**
|
|
54
|
-
* Authentication and authorization context.
|
|
55
|
-
* Contains user information, roles, permissions, and auth state.
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* ```typescript
|
|
59
|
-
* principal: {
|
|
60
|
-
* user: { id: 1, name: 'John', role: 'admin' },
|
|
61
|
-
* isAuthenticated: () => boolean,
|
|
62
|
-
* hasRole: (role: string) => boolean
|
|
63
|
-
* }
|
|
64
|
-
* ```
|
|
65
|
-
*/
|
|
66
|
-
principal?: any;
|
|
67
|
-
/**
|
|
68
|
-
* Application configuration and settings.
|
|
69
|
-
* Runtime configuration, feature flags, API endpoints, etc.
|
|
70
|
-
*
|
|
71
|
-
* @example
|
|
72
|
-
* ```typescript
|
|
73
|
-
* config: {
|
|
74
|
-
* apiUrl: 'https://api.example.com',
|
|
75
|
-
* featureFlags: { newUI: true },
|
|
76
|
-
* get: (key: string) => any
|
|
77
|
-
* }
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
config?: any;
|
|
30
|
+
readonly daemons?: DaemonMap;
|
|
31
|
+
[key: string]: unknown;
|
|
81
32
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Named daemon instances exposed by an application context.
|
|
3
|
+
*
|
|
4
|
+
* The values remain structurally typed as objects because TypeScript cannot
|
|
5
|
+
* express "an instance of a class carrying the @daemon decorator". Snice
|
|
6
|
+
* validates the decorator marker when the context is provided.
|
|
7
|
+
*/
|
|
8
|
+
export type DaemonMap = Readonly<Record<string, object>>;
|
|
@@ -14,4 +14,6 @@ export interface DispatchOptions extends EventInit {
|
|
|
14
14
|
* (via `closest()`), a direct EventTarget, or a resolver function.
|
|
15
15
|
*/
|
|
16
16
|
scope?: OnScope;
|
|
17
|
+
/** Named daemon from the nearest application context. Mutually exclusive with `scope`. */
|
|
18
|
+
daemon?: string;
|
|
17
19
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * from './observe-options';
|
|
|
19
19
|
export * from './request-options';
|
|
20
20
|
export * from './respond-options';
|
|
21
21
|
export * from './snice-global';
|
|
22
|
+
export * from './daemon';
|
|
22
23
|
export * from './placard';
|
|
23
24
|
export * from './guard';
|
|
24
25
|
export * from './route-params';
|
|
@@ -29,4 +29,9 @@ export interface OnOptions {
|
|
|
29
29
|
* (via `closest()`), a direct EventTarget, or a resolver function.
|
|
30
30
|
*/
|
|
31
31
|
scope?: OnScope;
|
|
32
|
+
/**
|
|
33
|
+
* Named daemon from the nearest application context. Mutually exclusive
|
|
34
|
+
* with `scope`; daemon listeners do not support DOM selector delegation.
|
|
35
|
+
*/
|
|
36
|
+
daemon?: string;
|
|
32
37
|
}
|
package/docs/ai/DEVELOPMENT.md
CHANGED
|
@@ -44,6 +44,7 @@ npm run test:browsers:install # Install Chromium + Firefox + WebKit
|
|
|
44
44
|
npm run test:browser:framework # Required framework/table E2E in all 3 engines
|
|
45
45
|
npm run test:browser:website # Generated deployment E2E in all 3 engines
|
|
46
46
|
npm run test:browser # Both browser gates
|
|
47
|
+
npm run gauntlet # Blind local-model checker gauntlet
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
`npm test` is intentionally comprehensive. Core coverage is measured across
|
|
@@ -51,6 +52,19 @@ npm run test:browser # Both browser gates
|
|
|
51
52
|
`repeat.ts`, `snice-element.ts`, and `template.ts`; every aggregate metric must
|
|
52
53
|
be strictly greater than 90%. Browser commands manage their own local servers.
|
|
53
54
|
|
|
55
|
+
## Dumb-Agent Gauntlet
|
|
56
|
+
|
|
57
|
+
Internal checker hardening: `npm run gauntlet` uses the comprehensive multi-file
|
|
58
|
+
application sample. Focused probes remain available with
|
|
59
|
+
`--sample daemon|events|request-response|router`.
|
|
60
|
+
|
|
61
|
+
- Inline prompt: `--prompt "..."`; file prompt: `--prompt-file path`.
|
|
62
|
+
- Subset: `--models qwen3-0.6b,lfm2.5-350m`; default: all.
|
|
63
|
+
- Auto-downloads pinned llama.cpp + size/SHA-256-pinned GGUFs into `.local/`.
|
|
64
|
+
- Produces blind raw output plus checker, TypeScript, and Vite logs per model.
|
|
65
|
+
- No token/time cap; exact-output repetition is preserved and classified.
|
|
66
|
+
- Full workflow/classification rules: `.ai/gauntlet.md`.
|
|
67
|
+
|
|
54
68
|
## File Structure
|
|
55
69
|
|
|
56
70
|
```
|
|
@@ -126,7 +140,7 @@ All CDN builds use the shared runtime (external `snice` imports). Load `snice-ru
|
|
|
126
140
|
- IIFE: `.js` + `.min.js`
|
|
127
141
|
- Sourcemaps + README
|
|
128
142
|
|
|
129
|
-
**Size:** Runtime ~
|
|
143
|
+
**Size:** Runtime ~31KB gzip, components ~1-110KB each
|
|
130
144
|
|
|
131
145
|
**Features:**
|
|
132
146
|
- Shared runtime (external snice imports)
|