@askrjs/askr 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/access-CEA2pOry.js +1046 -0
  3. package/dist/actions/index.d.ts +16 -2
  4. package/dist/actions/index.js +5 -5
  5. package/dist/{activity-FirwPXA_.js → activity-oy2YFTFF.js} +10 -16
  6. package/dist/benchmark.js +8 -9
  7. package/dist/boot/index.d.ts +19 -9
  8. package/dist/boot/index.js +1 -1
  9. package/dist/{boot-tWyF6121.js → boot-BMBMWUGI.js} +680 -441
  10. package/dist/capabilities-Bbf0mlp9.js +42 -0
  11. package/dist/components/index.d.ts +11 -8
  12. package/dist/components/index.js +1 -1
  13. package/dist/{compose-ref-Bfaf4kUC.js → compose-ref-v0qGlHoN.js} +7 -1
  14. package/dist/control/index.d.ts +20 -2
  15. package/dist/control/index.js +1 -1
  16. package/dist/{control-C-wSaq9V.js → control-BR_mrX__.js} +4 -4
  17. package/dist/core.d.ts +163 -0
  18. package/dist/csp-nonce-BfFWcd0w.js +173 -0
  19. package/dist/data/index.d.ts +74 -2
  20. package/dist/data/index.js +3 -3
  21. package/dist/{data-ghKopAbp.js → data-2edW0jhF.js} +108 -122
  22. package/dist/{data-runtime-7t_Y0iv3.js → data-runtime-CxoY98lX.js} +22 -15
  23. package/dist/{deferred-CxjWCkIn.js → deferred-CbgNhf67.js} +5 -5
  24. package/dist/dom-renderer.d.ts +77 -0
  25. package/dist/domains/actions.d.ts +70 -0
  26. package/dist/domains/component.d.ts +119 -0
  27. package/dist/domains/context.d.ts +73 -0
  28. package/dist/domains/control.d.ts +328 -0
  29. package/dist/domains/data.d.ts +461 -0
  30. package/dist/domains/diagnostics.d.ts +21 -0
  31. package/dist/domains/lifecycle.d.ts +112 -0
  32. package/dist/domains/refs.d.ts +18 -0
  33. package/dist/domains/renderer.d.ts +127 -0
  34. package/dist/domains/routing.d.ts +501 -0
  35. package/dist/domains/scheduler.d.ts +79 -0
  36. package/dist/domains/server.d.ts +112 -0
  37. package/dist/domains/state.d.ts +129 -0
  38. package/dist/domains/telemetry.d.ts +29 -0
  39. package/dist/eager-control.d.ts +8 -0
  40. package/dist/{effect-CNwstBBD.js → effect-C3Zsc1k6.js} +14 -41
  41. package/dist/{types-DWVrKn9N.d.ts → elements.d.ts} +79 -42
  42. package/dist/{for-internal-DyBHfKJA.js → for-state-BDykeOJL.js} +598 -494
  43. package/dist/foundations/icon/index.d.ts +67 -16
  44. package/dist/foundations/icon/index.js +1 -1
  45. package/dist/foundations/index.d.ts +26 -3
  46. package/dist/foundations/index.js +1 -1
  47. package/dist/foundations/interactions/index.d.ts +73 -34
  48. package/dist/foundations/interactions/index.js +1 -1
  49. package/dist/foundations/state/index.d.ts +12 -5
  50. package/dist/foundations/state/index.js +1 -1
  51. package/dist/foundations/structures/index.d.ts +44 -3
  52. package/dist/foundations/structures/index.js +1 -1
  53. package/dist/foundations/utilities/index.d.ts +34 -3
  54. package/dist/foundations/utilities/index.js +1 -1
  55. package/dist/fx/index.d.ts +72 -25
  56. package/dist/fx/index.js +8 -8
  57. package/dist/index.d.ts +121 -4
  58. package/dist/index.js +316 -47
  59. package/dist/{component-internal-C4hKKQBF.js → instance-VAFYVJOa.js} +495 -283
  60. package/dist/{interactions-D102JxBR.js → interactions-CTeACdT_.js} +1 -1
  61. package/dist/jsx-dev-runtime.d.ts +51 -11
  62. package/dist/jsx-globals.d.ts +2 -0
  63. package/dist/jsx-runtime-CPJXAOBF.js +43 -0
  64. package/dist/jsx-runtime.d.ts +17 -3
  65. package/dist/jsx-runtime.js +2 -42
  66. package/dist/jsx.d.ts +108 -0
  67. package/dist/{manifest-D6rfj_jC.js → manifest-D1P3UNWV.js} +4 -9
  68. package/dist/{navigate-ZZu1IV0B.js → navigate-prC5V8XV.js} +125 -472
  69. package/dist/{navigate-F4sHgWbw.d.ts → navigation.d.ts} +8 -8
  70. package/dist/{readable-Di1fzSwm.js → notify-DxxuDPeY.js} +96 -34
  71. package/dist/{query-registry-Bua3cDyb.js → query-registry-LrYpQsDJ.js} +1 -1
  72. package/dist/{compose-ref-DOJHoW5X.d.ts → refs.d.ts} +11 -7
  73. package/dist/{ssr-Doog-AfJ.js → render-resolved-BC0W7_5b.js} +165 -558
  74. package/dist/{renderer-Cl23O0hV.js → renderer-CT0HeY58.js} +6825 -5692
  75. package/dist/{resolution-ClD-K7Lz.js → resolution-3DskUkjG.js} +189 -180
  76. package/dist/{resource-operation-Vz1S5h2k.js → resource-18-sFRl9.js} +98 -58
  77. package/dist/resources/index.d.ts +64 -12
  78. package/dist/resources/index.js +214 -8
  79. package/dist/route-activity.d.ts +21 -0
  80. package/dist/{route-matching-Bo6UqG-5.js → route-matching-CUzZ31gT.js} +68 -82
  81. package/dist/router/index.d.ts +378 -79
  82. package/dist/router/index.js +9 -9
  83. package/dist/router-internal-7nuNEHfG.js +36 -0
  84. package/dist/scope-Cq_iYbTR.js +403 -0
  85. package/dist/{selector-CsKuomw0.js → selector-BSPVkjKP.js} +26 -27
  86. package/dist/{shared-CYBH3F8I.js → shared-kU8yvryp.js} +3 -6
  87. package/dist/{snapshot-source-BB42xgwb.js → snapshot-source-An4iKajG.js} +1 -1
  88. package/dist/ssg/index.d.ts +51 -15
  89. package/dist/ssg/index.js +269 -209
  90. package/dist/ssr/index.d.ts +121 -68
  91. package/dist/ssr/index.js +2 -1
  92. package/dist/ssr-CiNm6Vzl.js +393 -0
  93. package/dist/{ssr-DSHd_Q9K.js → ssr-EPjwJH5R.js} +5 -1
  94. package/dist/{state-BGJgYSyQ.js → state-BXJfudq1.js} +10 -15
  95. package/dist/{structures-DFyK5AdQ.js → structures-CjEzfj4h.js} +37 -57
  96. package/dist/{index-CTpMmzgN.d.ts → structures.d.ts} +57 -36
  97. package/dist/testing/index.d.ts +123 -24
  98. package/dist/testing/index.js +24 -61
  99. package/dist/timer-C7uqnJVt.js +85 -0
  100. package/dist/{index-B1gu0_m0.d.ts → utilities.d.ts} +24 -13
  101. package/dist/{verify-hydration-BZPJ_kYa.js → verify-hydration-ikaxotf7.js} +8 -5
  102. package/package.json +12 -14
  103. package/dist/access-BucjYZcX.js +0 -509
  104. package/dist/activity-DooIuxQO.d.ts +0 -14
  105. package/dist/benchmark.d.ts +0 -26
  106. package/dist/cleanup-TXSsApEl.js +0 -535
  107. package/dist/component-cleanup-jdbgjkT1.js +0 -143
  108. package/dist/component-scope-4I3yEMkb.js +0 -195
  109. package/dist/control-Cxag1yqV.d.ts +0 -8
  110. package/dist/csp-nonce-9NFUb7hJ.js +0 -72
  111. package/dist/css-BuPaTOfe.js +0 -70
  112. package/dist/fastlane-BKZduiBQ.js +0 -166
  113. package/dist/index-Dgjbo2gU.d.ts +0 -1456
  114. package/dist/jsx-runtime-Cg7GqY1S.d.ts +0 -2
  115. package/dist/jsx-runtime-gVIaTPw0.d.ts +0 -38
  116. package/dist/lifecycle-batch-63aXFf2S.js +0 -253
  117. package/dist/lifecycle-operations-Q0k3EFnG.js +0 -287
@@ -0,0 +1,112 @@
1
+ import { JSXElementType, JSXElement, Props } from '../elements.js';
2
+ import '../jsx-globals.js';
3
+ import { AuthContext, AuthRequirement } from '@askrjs/auth';
4
+ import { InferSchema, ObjectSchema } from '@askrjs/schema';
5
+ import { RenderableChild, Scope } from './context.js';
6
+
7
+ /**
8
+ * Common call contracts: SSR types
9
+ */
10
+ /** Arbitrary serializable data attached to an SSR render pass (e.g. loader output). */
11
+ type SSRData = Record<string, unknown>;
12
+
13
+ /** Styles produced while rendering a request, kept with that request's SSR context. */
14
+ interface SSRStyleRegistration {
15
+ id: string;
16
+ cssText: string;
17
+ }
18
+
19
+ interface DocumentRenderRoute {
20
+ path: string;
21
+ namespace?: string;
22
+ }
23
+
24
+ /** Request/render metadata passed to a {@link DocumentRenderer}. */
25
+ interface DocumentRenderContext {
26
+ mode: 'ssr' | 'ssg';
27
+ url: string;
28
+ pathname: string;
29
+ search: string;
30
+ hash: string;
31
+ params: Record<string, string>;
32
+ data?: SSRData;
33
+ seed: number;
34
+ route: DocumentRenderRoute;
35
+ cspNonce?: string;
36
+ styles?: readonly SSRStyleRegistration[];
37
+ }
38
+
39
+ /** Arguments passed to a {@link DocumentRenderer}: the rendered app HTML and its context. */
40
+ interface DocumentRenderArgs {
41
+ appHtml: string;
42
+ context: DocumentRenderContext;
43
+ }
44
+
45
+ /** Wraps rendered app HTML in a full document (`<html>`, `<head>`, etc.) for SSR/SSG output. */
46
+ type DocumentRenderer = (args: DocumentRenderArgs) => string;
47
+
48
+ /** How to react when SSR styles were registered but not included in the rendered document. */
49
+ type SSRStyleRegistrationValidation = 'warn' | 'error' | 'off';
50
+
51
+ /** Full context for sink-based streaming SSR */
52
+ type SSRContext = {
53
+ url: string;
54
+ seed: number;
55
+ data?: SSRData;
56
+ params?: Record<string, string>;
57
+ signal?: AbortSignal;
58
+ };
59
+
60
+ /** Lexical scope carrying the CSP nonce for the current render, if any. */
61
+ declare const CspNonceScope: Scope<string | undefined>;
62
+
63
+ /**
64
+ * Read the CSP nonce for the current render from {@link CspNonceScope}.
65
+ *
66
+ * @returns The active nonce, or `undefined` when called outside of a
67
+ * component render or when no nonce was configured.
68
+ */
69
+ declare function cspNonce(): string | undefined;
70
+
71
+ interface DeferredBoundaryRegistration {
72
+ id: string;
73
+ promise: Promise<unknown>;
74
+ fulfilled(value: unknown): RenderableChild;
75
+ rejected(error: unknown): RenderableChild;
76
+ }
77
+
78
+ interface SSRPortalHostRegistration {
79
+ token: string;
80
+ automatic: boolean;
81
+ }
82
+
83
+ interface SSRPortalSlot {
84
+ hasValue: boolean;
85
+ value: RenderableChild | undefined;
86
+ hosts: SSRPortalHostRegistration[];
87
+ }
88
+
89
+ interface SSRPortalState {
90
+ slots: Map<object, SSRPortalSlot>;
91
+ nextHostId: number;
92
+ }
93
+
94
+ /** Register request-local CSS produced during SSR without importing the SSR renderer in clients. */
95
+ declare function registerSSRStyle(id: string, cssText: string): void;
96
+ export {
97
+ SSRData,
98
+ SSRStyleRegistration,
99
+ DocumentRenderRoute,
100
+ DocumentRenderContext,
101
+ DocumentRenderArgs,
102
+ DocumentRenderer,
103
+ SSRStyleRegistrationValidation,
104
+ SSRContext,
105
+ CspNonceScope,
106
+ cspNonce,
107
+ DeferredBoundaryRegistration,
108
+ SSRPortalHostRegistration,
109
+ SSRPortalSlot,
110
+ SSRPortalState,
111
+ registerSSRStyle,
112
+ };
@@ -0,0 +1,129 @@
1
+ import { JSXElementType, JSXElement, Props } from '../elements.js';
2
+ import '../jsx-globals.js';
3
+ import { AuthContext, AuthRequirement } from '@askrjs/auth';
4
+ import { InferSchema, ObjectSchema } from '@askrjs/schema';
5
+ import { ReadableSource } from './component.js';
6
+ import { capture } from './lifecycle.js';
7
+ import { For } from './control.js';
8
+
9
+ /**
10
+ * State value holder - callable to read, has set method to update
11
+ * @example
12
+ * const count = state(0);
13
+ * count(); // read: 0
14
+ * count.set(1); // write: triggers re-render
15
+ */
16
+ interface State<T> extends ReadableSource<T> {
17
+ (): T;
18
+ set(...args: StateSetterArgs<T>): void;
19
+ [Symbol.iterator](): IterableIterator<StateTuple<T>[number]>;
20
+ }
21
+
22
+ type StateUpdater<T> = (prev: T) => T;
23
+
24
+ type StateSetterArgs<T> = [Extract<T, (...args: any[]) => unknown>] extends [
25
+ never,
26
+ ]
27
+ ? [value: T] | [updater: StateUpdater<T>]
28
+ : [updater: StateUpdater<T>];
29
+
30
+ /**
31
+ * Public setter type for state cells.
32
+ */
33
+ type StateSetter<T> = (...args: StateSetterArgs<T>) => void;
34
+
35
+ /**
36
+ * Tuple-first state handle returned by `state()`.
37
+ */
38
+ type StateTuple<T> = [get: State<T>, set: StateSetter<T>] & State<T>;
39
+
40
+ /**
41
+ * Creates a local state value for a component
42
+ * Optimized for:
43
+ * - O(1) read performance
44
+ * - Minimal allocation per state
45
+ * - Fast scheduler integration
46
+ *
47
+ * IMPORTANT: state() must be called during component render execution.
48
+ * It captures the current component instance from context.
49
+ * Calling outside a component function will throw an error.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * // ✅ Correct: called during render
54
+ * export function Counter() {
55
+ * const [count, setCount] = state(0);
56
+ * return { type: 'button', children: [count()] };
57
+ * }
58
+ *
59
+ * // ❌ Wrong: called outside component
60
+ * const count = state(0);
61
+ * export function BadComponent() {
62
+ * return { type: 'div' };
63
+ * }
64
+ * ```
65
+ */
66
+ declare function state<T>(initialValue: T): StateTuple<T>;
67
+
68
+ declare const SNAPSHOT_SOURCE_BRAND: unique symbol;
69
+
70
+ type SnapshotSourceBrand = {
71
+ readonly [SNAPSHOT_SOURCE_BRAND]: true;
72
+ };
73
+
74
+ /** A reactive derived value produced by {@link derive}; call it to read the current result. */
75
+ interface Derived<T> extends ReadableSource<T> {
76
+ (): T;
77
+ }
78
+
79
+ type SnapshotSource<T> = {
80
+ value: T | null;
81
+ pending?: boolean;
82
+ error?: Error | null;
83
+ } & SnapshotSourceBrand;
84
+
85
+ /** Creates a render-scoped derived value; must be called during component render. */
86
+ declare function derive<TOut>(fn: () => TOut): Derived<TOut>;
87
+
88
+ declare function derive<TIn, TOut>(
89
+ source: SnapshotSource<TIn> | TIn | (() => TIn),
90
+ map: (value: TIn) => TOut
91
+ ): Derived<TOut | null>;
92
+
93
+ /** A fine-grained reactive membership check produced by {@link selector}. */
94
+ interface Selector<T> {
95
+ (candidate: T): boolean;
96
+ }
97
+
98
+ type SelectorEquals<T> = {
99
+ bivarianceHack(a: T, b: T): boolean;
100
+ }['bivarianceHack'];
101
+
102
+ /**
103
+ * Creates a render-scoped predicate for keyed membership in reactive list rows.
104
+ *
105
+ * Use this when a `<For>` child needs to compare each stable item with a
106
+ * changing selected value. Unlike a plain closure capture, the predicate
107
+ * subscribes the affected rows and updates them without rebuilding the list.
108
+ * Must be called during component render.
109
+ */
110
+ declare function selector<T>(
111
+ source: () => T,
112
+ equals?: SelectorEquals<T>
113
+ ): Selector<T>;
114
+ export {
115
+ State,
116
+ StateUpdater,
117
+ StateSetterArgs,
118
+ StateSetter,
119
+ StateTuple,
120
+ state,
121
+ SNAPSHOT_SOURCE_BRAND,
122
+ SnapshotSourceBrand,
123
+ Derived,
124
+ SnapshotSource,
125
+ derive,
126
+ Selector,
127
+ SelectorEquals,
128
+ selector,
129
+ };
@@ -0,0 +1,29 @@
1
+ import { JSXElementType, JSXElement, Props } from '../elements.js';
2
+ import '../jsx-globals.js';
3
+ import { AuthContext, AuthRequirement } from '@askrjs/auth';
4
+ import { InferSchema, ObjectSchema } from '@askrjs/schema';
5
+ import { action } from './actions.js';
6
+
7
+ interface TelemetryFields {
8
+ requestId?: string;
9
+ traceId?: string;
10
+ route?: string;
11
+ action?: string;
12
+ operation?: string;
13
+ status?: number;
14
+ durationMs?: number;
15
+ }
16
+
17
+ type TelemetrySpan = <T>(fields: TelemetryFields, work: () => T) => T;
18
+
19
+ /**
20
+ * Structural subset implemented by `createTelemetry()` from `@askrjs/otel`.
21
+ * Core does not install an OpenTelemetry SDK, backend, or exporter.
22
+ */
23
+ interface CoreTelemetry {
24
+ routeMatch?: TelemetrySpan;
25
+ loader?: TelemetrySpan;
26
+ queryPrefetch?: TelemetrySpan;
27
+ ssrRender?: TelemetrySpan;
28
+ }
29
+ export { TelemetryFields, TelemetrySpan, CoreTelemetry };
@@ -0,0 +1,8 @@
1
+ import { Props } from './elements.js';
2
+ declare const EAGER_CONTROL_PRIMITIVE: unique symbol;
3
+ type EagerControlPrimitive<P extends Props = Props> = ((
4
+ props: P
5
+ ) => unknown) & {
6
+ [EAGER_CONTROL_PRIMITIVE]?: true;
7
+ };
8
+ export { EagerControlPrimitive };
@@ -1,6 +1,6 @@
1
- import { t as enqueueRuntimeLane } from "./access-BucjYZcX.js";
2
- import { m as withFineGrainedReadTracking } from "./readable-Di1fzSwm.js";
3
- //#region src/runtime/effect.ts
1
+ import { b as ScheduledWork, f as requestRuntimeWork, y as SCHEDULER_LANES } from "./access-CEA2pOry.js";
2
+ import { S as withFineGrainedReadTracking } from "./notify-DxxuDPeY.js";
3
+ //#region src/runtime/reactivity/effect.ts
4
4
  const SOURCE_EFFECTS = Symbol("askr.source-effects");
5
5
  const effectSources = /* @__PURE__ */ new WeakMap();
6
6
  const dirtyEffectsByLane = {
@@ -9,24 +9,12 @@ const dirtyEffectsByLane = {
9
9
  reactive: /* @__PURE__ */ new Set(),
10
10
  post: /* @__PURE__ */ new Set()
11
11
  };
12
- const hasPendingLaneFlush = {
13
- derived: false,
14
- component: false,
15
- reactive: false,
16
- post: false
17
- };
18
- const dirtyLaneState = {
19
- derived: false,
20
- component: false,
21
- reactive: false,
22
- post: false
23
- };
24
12
  const MAX_EFFECT_RUNS_PER_FLUSH = 50;
25
13
  const LANE_FLUSH_TASKS = {
26
- derived: () => flushLaneEffects("derived"),
27
- component: () => flushLaneEffects("component"),
28
- reactive: () => flushLaneEffects("reactive"),
29
- post: () => flushLaneEffects("post")
14
+ derived: new ScheduledWork(() => flushLaneEffects("derived")),
15
+ component: new ScheduledWork(() => flushLaneEffects("component")),
16
+ reactive: new ScheduledWork(() => flushLaneEffects("reactive")),
17
+ post: new ScheduledWork(() => flushLaneEffects("post"))
30
18
  };
31
19
  function isEffectReadSourceCollection(sources) {
32
20
  return Array.isArray(sources) || sources instanceof Set;
@@ -171,7 +159,6 @@ function handleEffectError(effect, error) {
171
159
  throw error;
172
160
  }
173
161
  function flushLaneEffects(lane) {
174
- hasPendingLaneFlush[lane] = false;
175
162
  const effects = dirtyEffectsByLane[lane];
176
163
  if (effects.size === 0) return;
177
164
  const pending = effects.values();
@@ -211,11 +198,6 @@ function flushLaneEffects(lane) {
211
198
  if (failures?.length === 1) throw failures[0];
212
199
  if (failures && failures.length > 1) throw new AggregateError(failures, "Fine-grained effect failures");
213
200
  }
214
- function scheduleLaneFlush(lane) {
215
- if (hasPendingLaneFlush[lane]) return;
216
- hasPendingLaneFlush[lane] = true;
217
- enqueueRuntimeLane(lane, LANE_FLUSH_TASKS[lane]);
218
- }
219
201
  function unscheduleEffect(effect) {
220
202
  dirtyEffectsByLane[effect.lane].delete(effect);
221
203
  }
@@ -229,22 +211,13 @@ function recomputeEffectNow(effect) {
229
211
  function markFineGrainedEffectsDirtySource(source) {
230
212
  const registered = getRegisteredEffects(source);
231
213
  if (!registered) return;
232
- dirtyLaneState.derived = false;
233
- dirtyLaneState.component = false;
234
- dirtyLaneState.reactive = false;
235
- dirtyLaneState.post = false;
236
- const markDirty = (effect) => {
237
- if (!effect.isActive) return;
238
- const lane = effect.lane;
239
- dirtyEffectsByLane[lane].add(effect);
240
- dirtyLaneState[lane] = true;
241
- };
242
- if (registered instanceof Set) for (const effect of registered) markDirty(effect);
243
- else markDirty(registered);
244
- if (dirtyLaneState.derived) scheduleLaneFlush("derived");
245
- if (dirtyLaneState.component) scheduleLaneFlush("component");
246
- if (dirtyLaneState.reactive) scheduleLaneFlush("reactive");
247
- if (dirtyLaneState.post) scheduleLaneFlush("post");
214
+ if (registered instanceof Set) for (const effect of registered) markDirtyEffect(effect);
215
+ else markDirtyEffect(registered);
216
+ for (const lane of SCHEDULER_LANES) if (dirtyEffectsByLane[lane].size) requestRuntimeWork(lane, LANE_FLUSH_TASKS[lane]);
217
+ }
218
+ function markDirtyEffect(effect) {
219
+ if (!effect.isActive) return;
220
+ dirtyEffectsByLane[effect.lane].add(effect);
248
221
  }
249
222
  var FineGrainedEffectImpl = class {
250
223
  constructor(lane, compute, commit, equals, onError, owner) {
@@ -1,4 +1,3 @@
1
- //#region src/common/props.d.ts
2
1
  /**
3
2
  * Common call contracts: Props
4
3
  *
@@ -29,12 +28,26 @@ type IntrinsicTextValue = string | null | undefined;
29
28
  type IntrinsicTextLikeValue = string | number | null | undefined;
30
29
  type IntrinsicStyleEntryValue = string | number | null | undefined | false;
31
30
  type IntrinsicStyleObject = Record<string, IntrinsicStyleEntryValue>;
32
- type IntrinsicStyleValue = string | IntrinsicStyleObject | null | undefined | false;
33
- type IntrinsicFormValue = string | number | readonly string[] | null | undefined;
31
+ type IntrinsicStyleValue =
32
+ | string
33
+ | IntrinsicStyleObject
34
+ | null
35
+ | undefined
36
+ | false;
37
+ type IntrinsicFormValue =
38
+ | string
39
+ | number
40
+ | readonly string[]
41
+ | null
42
+ | undefined;
34
43
  type IntrinsicRefTarget = Element | null;
35
- type IntrinsicRef = BivariantHandler<IntrinsicRefTarget> | {
36
- current: IntrinsicRefTarget;
37
- } | null | undefined;
44
+ type IntrinsicRef =
45
+ | BivariantHandler<IntrinsicRefTarget>
46
+ | {
47
+ current: IntrinsicRefTarget;
48
+ }
49
+ | null
50
+ | undefined;
38
51
  interface IntrinsicEventProps {
39
52
  onAbort?: BivariantHandler<Event>;
40
53
  onBlur?: BivariantHandler<FocusEvent>;
@@ -144,7 +157,10 @@ type ForbiddenLayoutOnlyProps = {
144
157
  value?: never;
145
158
  width?: never;
146
159
  };
147
- type StructuredContentIntrinsicProps<TAllowed extends object = {}> = IntrinsicFallbackProps & Omit<ForbiddenLayoutOnlyProps, keyof TAllowed> & TAllowed;
160
+ type StructuredContentIntrinsicProps<TAllowed extends object = {}> =
161
+ IntrinsicFallbackProps &
162
+ Omit<ForbiddenLayoutOnlyProps, keyof TAllowed> &
163
+ TAllowed;
148
164
  type LayoutIntrinsicProps = StructuredContentIntrinsicProps;
149
165
  type OrderedListIntrinsicProps = StructuredContentIntrinsicProps<{
150
166
  reversed?: ReactiveProp<IntrinsicBooleanValue>;
@@ -159,12 +175,21 @@ type TableCellIntrinsicAllowedProps = {
159
175
  headers?: ReactiveProp<IntrinsicTextValue>;
160
176
  rowSpan?: ReactiveProp<IntrinsicNumberValue>;
161
177
  };
162
- type TableHeaderScopeValue = 'col' | 'colgroup' | 'row' | 'rowgroup' | null | undefined;
163
- type TableCellIntrinsicProps = StructuredContentIntrinsicProps<TableCellIntrinsicAllowedProps>;
164
- type TableHeaderIntrinsicProps = StructuredContentIntrinsicProps<TableCellIntrinsicAllowedProps & {
165
- abbr?: ReactiveProp<IntrinsicTextValue>;
166
- scope?: ReactiveProp<TableHeaderScopeValue>;
167
- }>;
178
+ type TableHeaderScopeValue =
179
+ | 'col'
180
+ | 'colgroup'
181
+ | 'row'
182
+ | 'rowgroup'
183
+ | null
184
+ | undefined;
185
+ type TableCellIntrinsicProps =
186
+ StructuredContentIntrinsicProps<TableCellIntrinsicAllowedProps>;
187
+ type TableHeaderIntrinsicProps = StructuredContentIntrinsicProps<
188
+ TableCellIntrinsicAllowedProps & {
189
+ abbr?: ReactiveProp<IntrinsicTextValue>;
190
+ scope?: ReactiveProp<TableHeaderScopeValue>;
191
+ }
192
+ >;
168
193
  interface AnchorIntrinsicProps extends IntrinsicProps {
169
194
  href?: ReactiveProp<IntrinsicTextValue>;
170
195
  rel?: ReactiveProp<IntrinsicTextValue>;
@@ -223,29 +248,38 @@ type SvgPresentationIntrinsicAllowedProps = {
223
248
  strokeLinejoin?: ReactiveProp<IntrinsicTextValue>;
224
249
  strokeWidth?: ReactiveProp<IntrinsicTextLikeValue>;
225
250
  };
226
- type SvgIntrinsicProps = StructuredContentIntrinsicProps<SvgPresentationIntrinsicAllowedProps & {
227
- height?: ReactiveProp<IntrinsicTextLikeValue>;
228
- viewBox?: ReactiveProp<IntrinsicTextValue>;
229
- width?: ReactiveProp<IntrinsicTextLikeValue>;
230
- xmlns?: ReactiveProp<IntrinsicTextValue>;
231
- }>;
232
- type SvgCircleIntrinsicProps = StructuredContentIntrinsicProps<SvgPresentationIntrinsicAllowedProps & {
233
- cx?: ReactiveProp<IntrinsicTextLikeValue>;
234
- cy?: ReactiveProp<IntrinsicTextLikeValue>;
235
- r?: ReactiveProp<IntrinsicTextLikeValue>;
236
- }>;
237
- type SvgGroupIntrinsicProps = StructuredContentIntrinsicProps<SvgPresentationIntrinsicAllowedProps>;
238
- type SvgPathIntrinsicProps = StructuredContentIntrinsicProps<SvgPresentationIntrinsicAllowedProps & {
239
- d?: ReactiveProp<IntrinsicTextValue>;
240
- }>;
241
- type SvgRectIntrinsicProps = StructuredContentIntrinsicProps<SvgPresentationIntrinsicAllowedProps & {
242
- height?: ReactiveProp<IntrinsicTextLikeValue>;
243
- rx?: ReactiveProp<IntrinsicTextLikeValue>;
244
- ry?: ReactiveProp<IntrinsicTextLikeValue>;
245
- width?: ReactiveProp<IntrinsicTextLikeValue>;
246
- x?: ReactiveProp<IntrinsicTextLikeValue>;
247
- y?: ReactiveProp<IntrinsicTextLikeValue>;
248
- }>;
251
+ type SvgIntrinsicProps = StructuredContentIntrinsicProps<
252
+ SvgPresentationIntrinsicAllowedProps & {
253
+ height?: ReactiveProp<IntrinsicTextLikeValue>;
254
+ viewBox?: ReactiveProp<IntrinsicTextValue>;
255
+ width?: ReactiveProp<IntrinsicTextLikeValue>;
256
+ xmlns?: ReactiveProp<IntrinsicTextValue>;
257
+ }
258
+ >;
259
+ type SvgCircleIntrinsicProps = StructuredContentIntrinsicProps<
260
+ SvgPresentationIntrinsicAllowedProps & {
261
+ cx?: ReactiveProp<IntrinsicTextLikeValue>;
262
+ cy?: ReactiveProp<IntrinsicTextLikeValue>;
263
+ r?: ReactiveProp<IntrinsicTextLikeValue>;
264
+ }
265
+ >;
266
+ type SvgGroupIntrinsicProps =
267
+ StructuredContentIntrinsicProps<SvgPresentationIntrinsicAllowedProps>;
268
+ type SvgPathIntrinsicProps = StructuredContentIntrinsicProps<
269
+ SvgPresentationIntrinsicAllowedProps & {
270
+ d?: ReactiveProp<IntrinsicTextValue>;
271
+ }
272
+ >;
273
+ type SvgRectIntrinsicProps = StructuredContentIntrinsicProps<
274
+ SvgPresentationIntrinsicAllowedProps & {
275
+ height?: ReactiveProp<IntrinsicTextLikeValue>;
276
+ rx?: ReactiveProp<IntrinsicTextLikeValue>;
277
+ ry?: ReactiveProp<IntrinsicTextLikeValue>;
278
+ width?: ReactiveProp<IntrinsicTextLikeValue>;
279
+ x?: ReactiveProp<IntrinsicTextLikeValue>;
280
+ y?: ReactiveProp<IntrinsicTextLikeValue>;
281
+ }
282
+ >;
249
283
  interface OptionIntrinsicProps extends IntrinsicProps {
250
284
  disabled?: ReactiveProp<IntrinsicBooleanValue>;
251
285
  label?: ReactiveProp<IntrinsicTextValue>;
@@ -329,8 +363,6 @@ interface KnownIntrinsicElementProps {
329
363
  tr: LayoutIntrinsicProps;
330
364
  ul: LayoutIntrinsicProps;
331
365
  }
332
- //#endregion
333
- //#region src/common/jsx.d.ts
334
366
  /** The element type marker for JSX fragments (`<>...</>`), groups children without a wrapper element. */
335
367
  declare const Fragment: unique symbol;
336
368
  /** A component function accepting `TProps`, usable as a JSX element's `type`. */
@@ -350,8 +382,6 @@ interface JSXElement {
350
382
  /** Optional key (normalized by runtime) */
351
383
  key?: string | number | null;
352
384
  }
353
- //#endregion
354
- //#region src/jsx/types.d.ts
355
385
  declare global {
356
386
  namespace JSX {
357
387
  interface Element extends JSXElement {
@@ -366,5 +396,12 @@ declare global {
366
396
  }
367
397
  }
368
398
  }
369
- //#endregion
370
- export { IntrinsicFallbackProps as a, JSXElementType as i, JSXComponent as n, KnownIntrinsicElementProps as o, JSXElement as r, Props as s, Fragment as t };
399
+ export {
400
+ IntrinsicFallbackProps,
401
+ JSXElementType,
402
+ JSXComponent,
403
+ KnownIntrinsicElementProps,
404
+ JSXElement,
405
+ Props,
406
+ Fragment,
407
+ };