nuclo 0.2.7 → 0.2.9

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 (128) hide show
  1. package/LICENSE.md +45 -0
  2. package/README.md +30 -6
  3. package/dist/{core/runtimeBootstrap.d.ts → bootstrap.d.ts} +1 -1
  4. package/dist/bootstrap.d.ts.map +1 -0
  5. package/dist/{core/attributeManager.d.ts → element/attributes.d.ts} +2 -2
  6. package/dist/element/attributes.d.ts.map +1 -0
  7. package/dist/{core/classNameMerger.d.ts → element/class-name.d.ts} +1 -1
  8. package/dist/element/class-name.d.ts.map +1 -0
  9. package/dist/{utility/on.d.ts → element/events.d.ts} +1 -1
  10. package/dist/element/events.d.ts.map +1 -0
  11. package/dist/{internal/applyModifiers.d.ts → element/factory.d.ts} +12 -19
  12. package/dist/element/factory.d.ts.map +1 -0
  13. package/dist/{core/styleManager.d.ts → element/inline-style.d.ts} +1 -1
  14. package/dist/element/inline-style.d.ts.map +1 -0
  15. package/dist/element/modifiers.d.ts +11 -0
  16. package/dist/element/modifiers.d.ts.map +1 -0
  17. package/dist/{core/tagConstants.d.ts → element/tags.d.ts} +2 -1
  18. package/dist/element/tags.d.ts.map +1 -0
  19. package/dist/{hydration/context.d.ts → hydration.d.ts} +1 -1
  20. package/dist/hydration.d.ts.map +1 -0
  21. package/dist/index.d.ts +13 -14
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/list/index.d.ts +6 -1
  24. package/dist/list/index.d.ts.map +1 -1
  25. package/dist/list/runtime.d.ts +1 -1
  26. package/dist/list/runtime.d.ts.map +1 -1
  27. package/dist/nuclo.cjs +1 -1
  28. package/dist/nuclo.cjs.map +1 -1
  29. package/dist/nuclo.mjs +1 -1
  30. package/dist/nuclo.mjs.map +1 -1
  31. package/dist/nuclo.umd.js +1 -1
  32. package/dist/nuclo.umd.js.map +1 -1
  33. package/dist/polyfill/nuclo.polyfill.cjs.map +1 -1
  34. package/dist/polyfill/nuclo.polyfill.mjs.map +1 -1
  35. package/dist/render.d.ts.map +1 -0
  36. package/dist/shared/conditions.d.ts.map +1 -0
  37. package/dist/{utility → shared}/dom.d.ts +30 -0
  38. package/dist/shared/dom.d.ts.map +1 -0
  39. package/dist/shared/environment.d.ts.map +1 -0
  40. package/dist/{utility/errorHandler.d.ts → shared/errors.d.ts} +1 -1
  41. package/dist/shared/errors.d.ts.map +1 -0
  42. package/dist/shared/renderables.d.ts.map +1 -0
  43. package/dist/{utility/stringUtils.d.ts → shared/strings.d.ts} +1 -1
  44. package/dist/shared/strings.d.ts.map +1 -0
  45. package/dist/{utility/typeGuards.d.ts → shared/type-guards.d.ts} +1 -1
  46. package/dist/shared/type-guards.d.ts.map +1 -0
  47. package/dist/ssr/index.d.ts +1 -1
  48. package/dist/ssr/index.d.ts.map +1 -1
  49. package/dist/ssr/nuclo.ssr.cjs.map +1 -1
  50. package/dist/ssr/nuclo.ssr.mjs.map +1 -1
  51. package/dist/ssr/{renderToString.d.ts → render-to-string.d.ts} +1 -1
  52. package/dist/ssr/render-to-string.d.ts.map +1 -0
  53. package/dist/style/css.d.ts +3 -345
  54. package/dist/style/css.d.ts.map +1 -1
  55. package/dist/style/index.d.ts +1 -1
  56. package/dist/style/index.d.ts.map +1 -1
  57. package/dist/update/conditional.d.ts +3 -0
  58. package/dist/update/conditional.d.ts.map +1 -0
  59. package/dist/{core/reactiveAttributes.d.ts → update/reactive-attributes.d.ts} +3 -3
  60. package/dist/update/reactive-attributes.d.ts.map +1 -0
  61. package/dist/{core/reactiveText.d.ts → update/reactive-text.d.ts} +3 -3
  62. package/dist/update/reactive-text.d.ts.map +1 -0
  63. package/dist/{core/reactiveCleanup.d.ts → update/registry.d.ts} +22 -1
  64. package/dist/update/registry.d.ts.map +1 -0
  65. package/dist/{utility → update}/scope.d.ts +4 -0
  66. package/dist/update/scope.d.ts.map +1 -0
  67. package/dist/update/update.d.ts +4 -0
  68. package/dist/update/update.d.ts.map +1 -0
  69. package/dist/when/builder.d.ts.map +1 -1
  70. package/dist/when/runtime.d.ts +5 -1
  71. package/dist/when/runtime.d.ts.map +1 -1
  72. package/package.json +21 -6
  73. package/types/core/base.d.ts +12 -3
  74. package/types/features/on.d.ts +1 -1
  75. package/types/features/style.d.ts +10 -26
  76. package/types/index.d.ts +113 -2
  77. package/types/polyfill.d.ts +131 -0
  78. package/types/ssr.d.ts +45 -0
  79. package/types/style.d.ts +404 -0
  80. package/dist/core/attributeManager.d.ts.map +0 -1
  81. package/dist/core/classNameMerger.d.ts.map +0 -1
  82. package/dist/core/conditionalUpdater.d.ts +0 -3
  83. package/dist/core/conditionalUpdater.d.ts.map +0 -1
  84. package/dist/core/elementFactory.d.ts +0 -9
  85. package/dist/core/elementFactory.d.ts.map +0 -1
  86. package/dist/core/modifierProcessor.d.ts +0 -3
  87. package/dist/core/modifierProcessor.d.ts.map +0 -1
  88. package/dist/core/reactiveAttributes.d.ts.map +0 -1
  89. package/dist/core/reactiveCleanup.d.ts.map +0 -1
  90. package/dist/core/reactiveText.d.ts.map +0 -1
  91. package/dist/core/runtimeBootstrap.d.ts.map +0 -1
  92. package/dist/core/styleManager.d.ts.map +0 -1
  93. package/dist/core/tagConstants.d.ts.map +0 -1
  94. package/dist/core/tagRegistry.d.ts +0 -4
  95. package/dist/core/tagRegistry.d.ts.map +0 -1
  96. package/dist/core/updateController.d.ts +0 -2
  97. package/dist/core/updateController.d.ts.map +0 -1
  98. package/dist/core/updateScope.d.ts +0 -5
  99. package/dist/core/updateScope.d.ts.map +0 -1
  100. package/dist/hydration/context.d.ts.map +0 -1
  101. package/dist/internal/applyModifiers.d.ts.map +0 -1
  102. package/dist/list/renderer.d.ts +0 -7
  103. package/dist/list/renderer.d.ts.map +0 -1
  104. package/dist/ssr/renderToString.d.ts.map +0 -1
  105. package/dist/utility/conditionalInfo.d.ts +0 -22
  106. package/dist/utility/conditionalInfo.d.ts.map +0 -1
  107. package/dist/utility/conditions.d.ts.map +0 -1
  108. package/dist/utility/dom.d.ts.map +0 -1
  109. package/dist/utility/domTypeHelpers.d.ts +0 -35
  110. package/dist/utility/domTypeHelpers.d.ts.map +0 -1
  111. package/dist/utility/environment.d.ts.map +0 -1
  112. package/dist/utility/errorHandler.d.ts.map +0 -1
  113. package/dist/utility/events.d.ts +0 -2
  114. package/dist/utility/events.d.ts.map +0 -1
  115. package/dist/utility/modifierPredicates.d.ts +0 -7
  116. package/dist/utility/modifierPredicates.d.ts.map +0 -1
  117. package/dist/utility/on.d.ts.map +0 -1
  118. package/dist/utility/render.d.ts.map +0 -1
  119. package/dist/utility/renderables.d.ts.map +0 -1
  120. package/dist/utility/scope.d.ts.map +0 -1
  121. package/dist/utility/stringUtils.d.ts.map +0 -1
  122. package/dist/utility/typeGuards.d.ts.map +0 -1
  123. package/dist/when/renderer.d.ts +0 -6
  124. package/dist/when/renderer.d.ts.map +0 -1
  125. /package/dist/{utility/render.d.ts → render.d.ts} +0 -0
  126. /package/dist/{utility → shared}/conditions.d.ts +0 -0
  127. /package/dist/{utility → shared}/environment.d.ts +0 -0
  128. /package/dist/{utility → shared}/renderables.d.ts +0 -0
@@ -1,339 +1,5 @@
1
- type Loose<T extends string> = T | (string & {});
2
- /** Length values: numbers become px (except unitless properties), strings pass through. */
3
- export type Size = number | (string & {});
4
- type Display = Loose<"block" | "inline" | "inline-block" | "flex" | "inline-flex" | "grid" | "inline-grid" | "none" | "contents" | "flow-root" | "table" | "table-cell" | "list-item">;
5
- type Position = Loose<"static" | "relative" | "absolute" | "fixed" | "sticky">;
6
- type Overflow = Loose<"visible" | "hidden" | "clip" | "scroll" | "auto">;
7
- type TextAlign = Loose<"left" | "right" | "center" | "justify" | "start" | "end">;
8
- type FontWeight = number | Loose<"normal" | "bold" | "lighter" | "bolder" | "400" | "500" | "600" | "700">;
9
- type AlignItems = Loose<"stretch" | "center" | "start" | "end" | "flex-start" | "flex-end" | "baseline">;
10
- type JustifyContent = Loose<"center" | "start" | "end" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | "stretch">;
11
- type FlexDirection = Loose<"row" | "row-reverse" | "column" | "column-reverse">;
12
- type FlexWrap = Loose<"nowrap" | "wrap" | "wrap-reverse">;
13
- type BorderStyle = Loose<"none" | "solid" | "dashed" | "dotted" | "double" | "hidden">;
14
- type Cursor = Loose<"auto" | "default" | "pointer" | "grab" | "grabbing" | "text" | "move" | "not-allowed" | "wait" | "crosshair" | "zoom-in" | "zoom-out">;
15
- type ObjectFit = Loose<"fill" | "contain" | "cover" | "none" | "scale-down">;
16
- type UserSelect = Loose<"none" | "auto" | "text" | "all" | "contain">;
17
- type PointerEvents = Loose<"auto" | "none">;
18
- type WhiteSpace = Loose<"normal" | "nowrap" | "pre" | "pre-wrap" | "pre-line" | "break-spaces">;
19
- type TextTransform = Loose<"none" | "capitalize" | "uppercase" | "lowercase">;
20
- type BoxSizing = Loose<"border-box" | "content-box">;
21
- type Visibility = Loose<"visible" | "hidden" | "collapse">;
22
- /**
23
- * Plain CSS properties (camelCase, converted to kebab-case at runtime).
24
- * Color/font/shadow/radius properties live in TokenProps so they pick up theme tokens.
25
- */
26
- export interface CSSProperties {
27
- display?: Display;
28
- position?: Position;
29
- inset?: Size;
30
- top?: Size;
31
- right?: Size;
32
- bottom?: Size;
33
- left?: Size;
34
- zIndex?: number | "auto";
35
- boxSizing?: BoxSizing;
36
- aspectRatio?: Size;
37
- overflow?: Overflow;
38
- overflowX?: Overflow;
39
- overflowY?: Overflow;
40
- visibility?: Visibility;
41
- objectFit?: ObjectFit;
42
- objectPosition?: string;
43
- isolation?: Loose<"auto" | "isolate">;
44
- float?: Loose<"none" | "left" | "right" | "inline-start" | "inline-end">;
45
- clear?: Loose<"none" | "left" | "right" | "both" | "inline-start" | "inline-end">;
46
- flex?: Size;
47
- flexDirection?: FlexDirection;
48
- flexWrap?: FlexWrap;
49
- flexGrow?: number;
50
- flexShrink?: number;
51
- flexBasis?: Size;
52
- order?: number;
53
- alignItems?: AlignItems;
54
- alignContent?: JustifyContent;
55
- alignSelf?: AlignItems | "auto";
56
- justifyContent?: JustifyContent;
57
- justifyItems?: AlignItems;
58
- justifySelf?: AlignItems | "auto";
59
- placeItems?: string;
60
- placeContent?: string;
61
- placeSelf?: string;
62
- gap?: Size;
63
- rowGap?: Size;
64
- columnGap?: Size;
65
- gridTemplateColumns?: string;
66
- gridTemplateRows?: string;
67
- gridTemplateAreas?: string;
68
- gridColumn?: Size;
69
- gridRow?: Size;
70
- gridArea?: string;
71
- gridAutoFlow?: Loose<"row" | "column" | "dense" | "row dense" | "column dense">;
72
- gridAutoRows?: Size;
73
- gridAutoColumns?: Size;
74
- padding?: Size;
75
- paddingTop?: Size;
76
- paddingRight?: Size;
77
- paddingBottom?: Size;
78
- paddingLeft?: Size;
79
- margin?: Size;
80
- marginTop?: Size;
81
- marginRight?: Size;
82
- marginBottom?: Size;
83
- marginLeft?: Size;
84
- width?: Size;
85
- height?: Size;
86
- minWidth?: Size;
87
- minHeight?: Size;
88
- maxWidth?: Size;
89
- maxHeight?: Size;
90
- fontSize?: Size;
91
- fontStyle?: Loose<"normal" | "italic" | "oblique">;
92
- fontWeight?: FontWeight;
93
- lineHeight?: Size;
94
- letterSpacing?: Size;
95
- textAlign?: TextAlign;
96
- textTransform?: TextTransform;
97
- textDecoration?: Loose<"none" | "underline" | "overline" | "line-through">;
98
- textDecorationLine?: Loose<"none" | "underline" | "overline" | "line-through">;
99
- textDecorationStyle?: Loose<"solid" | "double" | "dotted" | "dashed" | "wavy">;
100
- textDecorationThickness?: Size;
101
- textUnderlineOffset?: Size;
102
- textOverflow?: Loose<"clip" | "ellipsis">;
103
- textShadow?: string;
104
- textIndent?: Size;
105
- whiteSpace?: WhiteSpace;
106
- wordBreak?: Loose<"normal" | "break-all" | "keep-all" | "break-word">;
107
- overflowWrap?: Loose<"normal" | "break-word" | "anywhere">;
108
- verticalAlign?: Loose<"baseline" | "top" | "middle" | "bottom" | "text-top" | "text-bottom">;
109
- fontVariantNumeric?: string;
110
- fontFeatureSettings?: string;
111
- border?: string;
112
- borderTop?: string;
113
- borderRight?: string;
114
- borderBottom?: string;
115
- borderLeft?: string;
116
- borderWidth?: Size;
117
- borderStyle?: BorderStyle;
118
- outline?: string;
119
- outlineWidth?: Size;
120
- outlineStyle?: BorderStyle;
121
- outlineOffset?: Size;
122
- backgroundImage?: string;
123
- backgroundSize?: Loose<"auto" | "cover" | "contain">;
124
- backgroundPosition?: string;
125
- backgroundRepeat?: Loose<"repeat" | "no-repeat" | "repeat-x" | "repeat-y" | "round" | "space">;
126
- backgroundAttachment?: Loose<"scroll" | "fixed" | "local">;
127
- backgroundClip?: Loose<"border-box" | "padding-box" | "content-box" | "text">;
128
- opacity?: number | string;
129
- filter?: string;
130
- backdropFilter?: string;
131
- mixBlendMode?: string;
132
- transform?: string;
133
- transformOrigin?: string;
134
- transition?: string;
135
- transitionProperty?: string;
136
- transitionDuration?: string;
137
- transitionTimingFunction?: string;
138
- transitionDelay?: string;
139
- animation?: string;
140
- willChange?: string;
141
- clipPath?: string;
142
- cursor?: Cursor;
143
- pointerEvents?: PointerEvents;
144
- userSelect?: UserSelect;
145
- touchAction?: string;
146
- resize?: Loose<"none" | "both" | "horizontal" | "vertical">;
147
- scrollBehavior?: Loose<"auto" | "smooth">;
148
- scrollSnapType?: string;
149
- scrollSnapAlign?: string;
150
- appearance?: Loose<"none" | "auto">;
151
- accentColor?: string;
152
- content?: string;
153
- listStyle?: string;
154
- tableLayout?: Loose<"auto" | "fixed">;
155
- borderCollapse?: Loose<"collapse" | "separate">;
156
- borderSpacing?: Size;
157
- colorScheme?: Loose<"light" | "dark" | "light dark">;
158
- containerType?: Loose<"normal" | "size" | "inline-size">;
159
- containerName?: string;
160
- }
161
- export interface ThemeConfig {
162
- /** Color tokens — usable in bg, color, borderColor, outlineColor, caretColor, textDecorationColor. */
163
- colors?: Record<string, string>;
164
- /** Font-family tokens — usable in font / fontFamily. */
165
- fonts?: Record<string, string>;
166
- /** Box-shadow tokens — usable in shadow / boxShadow. */
167
- shadows?: Record<string, string>;
168
- /** Border-radius tokens — usable in rounded / borderRadius. */
169
- radii?: Record<string, string>;
170
- /**
171
- * Responsive variants: name → media condition ("(min-width: 768px)")
172
- * or a full at-rule prelude ("@container (min-width: 400px)").
173
- * Declaration order = cascade order. Names must not collide with property names.
174
- */
175
- screens?: Record<string, string>;
176
- }
177
- type Tokens<T extends ThemeConfig, K extends keyof ThemeConfig> = T[K] extends Record<string, string> ? Extract<keyof T[K], string> : never;
178
- /** Properties whose string values resolve against theme tokens. */
179
- interface TokenProps<T extends ThemeConfig> {
180
- /** background — color token, color, gradient, or any CSS background shorthand */
181
- bg?: Loose<Tokens<T, "colors">>;
182
- backgroundColor?: Loose<Tokens<T, "colors">>;
183
- color?: Loose<Tokens<T, "colors">>;
184
- borderColor?: Loose<Tokens<T, "colors">>;
185
- borderTopColor?: Loose<Tokens<T, "colors">>;
186
- borderRightColor?: Loose<Tokens<T, "colors">>;
187
- borderBottomColor?: Loose<Tokens<T, "colors">>;
188
- borderLeftColor?: Loose<Tokens<T, "colors">>;
189
- outlineColor?: Loose<Tokens<T, "colors">>;
190
- caretColor?: Loose<Tokens<T, "colors">>;
191
- textDecorationColor?: Loose<Tokens<T, "colors">>;
192
- /** font-family — token or font stack */
193
- font?: Loose<Tokens<T, "fonts">>;
194
- fontFamily?: Loose<Tokens<T, "fonts">>;
195
- /** box-shadow — token or raw value */
196
- shadow?: Loose<Tokens<T, "shadows">>;
197
- boxShadow?: Loose<Tokens<T, "shadows">>;
198
- /** border-radius — token, number (px), or raw value */
199
- rounded?: Tokens<T, "radii"> | Size;
200
- borderRadius?: Tokens<T, "radii"> | Size;
201
- }
202
- /** Tailwind-flavored short aliases. */
203
- interface ShorthandProps {
204
- /** padding */ p?: Size;
205
- /** padding-left + padding-right */ px?: Size;
206
- /** padding-top + padding-bottom */ py?: Size;
207
- pt?: Size;
208
- pr?: Size;
209
- pb?: Size;
210
- pl?: Size;
211
- /** margin */ m?: Size;
212
- /** margin-left + margin-right */ mx?: Size;
213
- /** margin-top + margin-bottom */ my?: Size;
214
- mt?: Size;
215
- mr?: Size;
216
- mb?: Size;
217
- ml?: Size;
218
- /** width */ w?: Size;
219
- /** height */ h?: Size;
220
- minW?: Size;
221
- maxW?: Size;
222
- minH?: Size;
223
- maxH?: Size;
224
- /** width + height */ size?: Size;
225
- /** font-size */ text?: Size;
226
- /** font-weight */ weight?: FontWeight;
227
- /** line-height */ leading?: Size;
228
- /** letter-spacing */ tracking?: Size;
229
- /** text-align */ align?: TextAlign;
230
- /** align-items */ items?: AlignItems;
231
- /** justify-content */ justify?: JustifyContent;
232
- /** z-index */ z?: number | "auto";
233
- /** user-select */ select?: UserSelect;
234
- /** display:flex + flex-direction:row */ row?: boolean;
235
- /** display:flex + flex-direction:column */ col?: boolean;
236
- /** align-items:center + justify-content:center */ center?: boolean;
237
- /** overflow:hidden + text-overflow:ellipsis + white-space:nowrap */ truncate?: boolean;
238
- }
239
- declare const PSEUDO: {
240
- readonly hover: ":hover";
241
- readonly focus: ":focus";
242
- readonly focusVisible: ":focus-visible";
243
- readonly focusWithin: ":focus-within";
244
- readonly active: ":active";
245
- readonly visited: ":visited";
246
- readonly disabled: ":disabled";
247
- readonly enabled: ":enabled";
248
- readonly checked: ":checked";
249
- readonly required: ":required";
250
- readonly invalid: ":invalid";
251
- readonly valid: ":valid";
252
- readonly readOnly: ":read-only";
253
- readonly first: ":first-child";
254
- readonly last: ":last-child";
255
- readonly only: ":only-child";
256
- readonly odd: ":nth-child(odd)";
257
- readonly even: ":nth-child(even)";
258
- readonly empty: ":empty";
259
- readonly placeholderShown: ":placeholder-shown";
260
- readonly placeholder: "::placeholder";
261
- readonly before: "::before";
262
- readonly after: "::after";
263
- readonly selection: "::selection";
264
- readonly marker: "::marker";
265
- readonly firstLine: "::first-line";
266
- readonly firstLetter: "::first-letter";
267
- };
268
- type Pseudo = keyof typeof PSEUDO;
269
- /** Flat style: properties only, no variant nesting (used by keyframes/globalStyle). */
270
- export type FlatStyle<T extends ThemeConfig = ThemeConfig> = TokenProps<T> & ShorthandProps & CSSProperties & {
271
- /** Escape hatch: raw CSS declarations, property names passed through as-is. */
272
- raw?: Record<string, string | number>;
273
- };
274
- /**
275
- * Keyframe selectors: `from`, `to`, and percentage stops autocomplete; any other
276
- * string (e.g. a comma-separated list like "0%, 100%") is still accepted.
277
- */
278
- export type KeyframeStop = "from" | "to" | `${number}%`;
279
- /** Frames passed to keyframes(): selector → flat declarations. */
280
- export type KeyframeFrames<T extends ThemeConfig = ThemeConfig> = {
281
- [Stop in KeyframeStop]?: FlatStyle<T>;
282
- } & {
283
- [stop: string]: FlatStyle<T> | undefined;
284
- };
285
- /**
286
- * Full style object: properties + pseudo variants + theme screens +
287
- * arbitrary selectors ("&:nth-child(2)", "& > svg") + inline at-rules
288
- * ("@media (min-width: 768px)", "@container (…)", "@supports (…)").
289
- */
290
- export type Style<T extends ThemeConfig = ThemeConfig> = FlatStyle<T> & {
291
- [K in Pseudo]?: Style<T>;
292
- } & {
293
- [K in Tokens<T, "screens">]?: Style<T>;
294
- } & {
295
- [K in `&${string}`]?: Style<T>;
296
- } & {
297
- [K in `@${string}`]?: Style<T>;
298
- };
299
- export type StyleResult = {
300
- className: string;
301
- toString(): string;
302
- };
303
- /** A map of variant groups: group name → variant value name → style object. */
304
- export type VariantDefinitions<T extends ThemeConfig = ThemeConfig> = Record<string, Record<string, Style<T>>>;
305
- /**
306
- * A group whose only values are "true"/"false" is selected with a real boolean;
307
- * every other group is selected by its declared value names.
308
- */
309
- type VariantValue<Keys extends PropertyKey> = [
310
- Extract<Keys, string>
311
- ] extends ["true" | "false"] ? boolean : Extract<Keys, string>;
312
- /** Strongly-typed selection of variant values for a given variant definition. */
313
- export type VariantProps<V extends VariantDefinitions> = {
314
- [Group in keyof V]?: VariantValue<keyof V[Group]>;
315
- };
316
- /** Configuration object accepted by variants(). */
317
- export interface VariantsConfig<T extends ThemeConfig, V extends VariantDefinitions<T>> {
318
- /** Styles always applied, before any variant. */
319
- base?: Style<T>;
320
- /**
321
- * Named variant groups: each value maps to a style object. `V` is inferred
322
- * with its literal group/value names (so selection, defaults and compounds
323
- * are strictly typed), and each style object is checked against `Style<T>`.
324
- */
325
- variants?: V;
326
- /** Variant values applied when a prop is omitted at the call site. */
327
- defaultVariants?: VariantProps<NoInfer<V>>;
328
- /** Extra styles applied when a specific combination of variants is active. */
329
- compoundVariants?: Array<VariantProps<NoInfer<V>> & {
330
- css: Style<T>;
331
- }>;
332
- }
333
- /** A compiled recipe: call with a selection to get a composed StyleResult. */
334
- export type VariantsFn<V extends VariantDefinitions> = (props?: VariantProps<V>) => StyleResult;
335
- /** Inputs accepted by cx(): results, raw class strings, falsy values, and nested arrays. */
336
- export type ClassInput = StyleResult | string | false | null | undefined | readonly ClassInput[];
1
+ import type { ClassInput, CssInstance, FlatStyle, KeyframeFrames, Style, StyleResult, ThemeConfig, VariantDefinitions, VariantsConfig, VariantsFn } from "../../types/style";
2
+ export type { ClassInput, CssInstance, CSSProperties, FlatStyle, KeyframeFrames, KeyframeStop, Pseudo, Size, Style, StyleResult, ThemeConfig, VariantDefinitions, VariantProps, VariantsConfig, VariantsFn, } from "../../types/style";
337
3
  /**
338
4
  * Compose class lists with exact conflict resolution: when two inputs style
339
5
  * the same (query, selector, property), the last one wins. Works because the
@@ -341,14 +7,7 @@ export type ClassInput = StyleResult | string | false | null | undefined | reado
341
7
  * so `cx([a, cond && b], c)` composes the same as `cx(a, cond && b, c)`.
342
8
  */
343
9
  export declare function cx(...inputs: ClassInput[]): StyleResult;
344
- export declare function createCss<const T extends ThemeConfig>(theme?: T): {
345
- css: (style: Style<T>) => StyleResult;
346
- cx: typeof cx;
347
- variants: <const V extends VariantDefinitions<T>>(config: VariantsConfig<T, V>) => VariantsFn<V>;
348
- keyframes: (frames: KeyframeFrames<T>) => string;
349
- globalStyle: (selector: string, style: FlatStyle<T>) => void;
350
- theme: T;
351
- };
10
+ export declare function createCss<const T extends ThemeConfig>(theme?: T): CssInstance<T>;
352
11
  /** Themeless css() — full property/variant typing, no tokens or screens. */
353
12
  export declare const css: (style: Style<object>) => StyleResult;
354
13
  /** Themeless variants() recipe helper. */
@@ -357,5 +16,4 @@ export declare const variants: <const V extends VariantDefinitions<object>>(conf
357
16
  export declare const keyframes: (frames: KeyframeFrames<object>) => string;
358
17
  /** Themeless globalStyle() helper. */
359
18
  export declare const globalStyle: (selector: string, style: FlatStyle<object>) => void;
360
- export {};
361
19
  //# sourceMappingURL=css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../src/style/css.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../src/style/css.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACX,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EAEd,KAAK,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAElB,cAAc,EACd,UAAU,EACV,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,UAAU,GACV,MAAM,mBAAmB,CAAC;AAiJ3B;;;;;GAKG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAMvD;AAKD,wBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,GAAE,CAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CA2NzF;AAQD,4EAA4E;AAC5E,eAAO,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,WAAiC,CAAC;AAC9E,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,EACjE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAC7B,UAAU,CAAC,CAAC,CAA4B,CAAC;AAC9C,oCAAoC;AACpC,eAAO,MAAM,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,MAAkC,CAAC;AAC/F,sCAAsC;AACtC,eAAO,MAAM,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,IAAkC,CAAC"}
@@ -1,3 +1,3 @@
1
- export { createCss, css, cx, variants, keyframes, globalStyle, type ClassInput, type CSSProperties, type FlatStyle, type KeyframeFrames, type KeyframeStop, type Size, type Style, type StyleResult, type ThemeConfig, type VariantDefinitions, type VariantProps, type VariantsConfig, type VariantsFn, } from "./css";
1
+ export { createCss, css, cx, variants, keyframes, globalStyle, type ClassInput, type CssInstance, type CSSProperties, type FlatStyle, type KeyframeFrames, type KeyframeStop, type Size, type Style, type StyleResult, type ThemeConfig, type VariantDefinitions, type VariantProps, type VariantsConfig, type VariantsFn, } from "./css";
2
2
  export { getCssText, resetStyles, setSSRCollector } from "./engine";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/style/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,SAAS,EACT,GAAG,EACH,EAAE,EACF,QAAQ,EACR,SAAS,EACT,WAAW,EACX,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,GACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/style/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,SAAS,EACT,GAAG,EACH,EAAE,EACF,QAAQ,EACR,SAAS,EACT,WAAW,EACX,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,GACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { UpdateScope } from "./scope";
2
+ export declare function updateConditionalElements(scope?: UpdateScope): void;
3
+ //# sourceMappingURL=conditional.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional.d.ts","sourceRoot":"","sources":["../../src/update/conditional.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAoD3C,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAiBnE"}
@@ -1,5 +1,5 @@
1
- import type { UpdateScope } from "./updateScope";
2
- import type { AttributeResolver } from "./reactiveCleanup";
1
+ import type { UpdateScope } from "./scope";
2
+ import type { AttributeResolver } from "./registry";
3
3
  /**
4
4
  * Registers a reactive attribute resolver for an element.
5
5
  *
@@ -42,4 +42,4 @@ export declare function registerAttributeResolver<TTagName extends ElementTagNam
42
42
  * ```
43
43
  */
44
44
  export declare function notifyReactiveElements(scope?: UpdateScope): void;
45
- //# sourceMappingURL=reactiveAttributes.d.ts.map
45
+ //# sourceMappingURL=reactive-attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-attributes.d.ts","sourceRoot":"","sources":["../../src/update/reactive-attributes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAgD,MAAM,YAAY,CAAC;AA8ElG;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,cAAc,EACvE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GACnC,IAAI,CAkBN;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CA6BhE"}
@@ -1,5 +1,5 @@
1
- import type { UpdateScope } from "./updateScope";
2
- import type { TextResolver } from "./reactiveCleanup";
1
+ import type { UpdateScope } from "./scope";
2
+ import type { TextResolver } from "./registry";
3
3
  /**
4
4
  * Creates a reactive text node that automatically updates when its resolver function changes.
5
5
  *
@@ -35,4 +35,4 @@ export declare function createReactiveTextNode(resolver: TextResolver, preEvalua
35
35
  * ```
36
36
  */
37
37
  export declare function notifyReactiveTextNodes(scope?: UpdateScope): void;
38
- //# sourceMappingURL=reactiveText.d.ts.map
38
+ //# sourceMappingURL=reactive-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-text.d.ts","sourceRoot":"","sources":["../../src/update/reactive-text.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,gBAAgB,CAgC9G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CA2CjE"}
@@ -73,4 +73,25 @@ export declare function cleanupReactiveTextNode(node: Text): void;
73
73
  * This should be called when an element is removed from the DOM to prevent memory leaks.
74
74
  */
75
75
  export declare function cleanupReactiveElement(element: Element): void;
76
- //# sourceMappingURL=reactiveCleanup.d.ts.map
76
+ export interface ConditionalInfo<TTagName extends ElementTagName = ElementTagName> {
77
+ condition: () => boolean;
78
+ tagName: TTagName;
79
+ modifiers: Array<NodeMod<TTagName> | NodeModFn<TTagName>>;
80
+ isSvg: boolean;
81
+ }
82
+ /**
83
+ * Attach conditional info to a node and register it.
84
+ */
85
+ export declare function storeConditionalInfo<TTagName extends ElementTagName>(node: Node, info: ConditionalInfo<TTagName>): void;
86
+ /**
87
+ * Explicit unregister helper (optional use on teardown if needed).
88
+ * O(1) via reverse lookup WeakMap.
89
+ */
90
+ export declare function unregisterConditionalNode(node: Node): void;
91
+ /**
92
+ * Returns an array of currently tracked conditional nodes that are still alive.
93
+ * Automatically cleans up garbage-collected nodes.
94
+ */
95
+ export declare function getActiveConditionalNodes(): Node[];
96
+ export declare function getConditionalInfo(node: Node): ConditionalInfo<ElementTagName> | null;
97
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/update/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;AAE9C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,oBAA2B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,uBAAuB;SAA4B,OAAO,CAAC,IAAI,CAAC;UAAQ,oBAAoB;EAAK,CAAC;AAE/G;;GAEG;AACH,eAAO,MAAM,gBAAgB,uBAA8B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,sBAAsB;SAA+B,OAAO,CAAC,OAAO,CAAC;UAAQ,mBAAmB;EAAK,CAAC;AAUnH;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAYrF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAKzF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAMxD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAM7D;AAOD,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc;IAChF,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,KAAK,EAAE,OAAO,CAAC;CACf;AAyBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,SAAS,cAAc,EACnE,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,GAC7B,IAAI,CAMN;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAO1D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,EAAE,CAkBlD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,IAAI,CAErF"}
@@ -1,3 +1,7 @@
1
+ export interface UpdateScope {
2
+ roots: ReadonlyArray<Element>;
3
+ contains(node: Node): boolean;
4
+ }
1
5
  export declare function getScopeRoots(ids: readonly string[]): Element[];
2
6
  export declare function scope<TTagName extends ElementTagName = ElementTagName>(...ids: string[]): NodeModFn<TTagName>;
3
7
  //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/update/scope.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;CAC/B;AAoCD,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,EAAE,CAoC/D;AAED,wBAAgB,KAAK,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,EACpE,GAAG,GAAG,EAAE,MAAM,EAAE,GACf,SAAS,CAAC,QAAQ,CAAC,CAQrB"}
@@ -0,0 +1,4 @@
1
+ import type { UpdateScope } from "./scope";
2
+ export declare function update(...scopeIds: string[]): void;
3
+ export declare function dispatchGlobalUpdateEvent(scope?: UpdateScope): void;
4
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/update/update.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAY3C,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CA0BlD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAqBnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/when/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAe,MAAM,WAAW,CAAC;AA0BpF,cAAM,eAAe,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc;IACpE,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,WAAW,CAA+B;gBAEtC,gBAAgB,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE;IAIhF,SAAS,CACP,eAAe,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,EACrC,cAAc,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GACvC,eAAe,CAAC,QAAQ,CAAC;IAQ5B,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC;IAK9F,IAAI,CAAC,GAAG,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC;IAKpE,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAYnE,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;IAgFrB,OAAO,CAAC,wBAAwB;CAwBjC;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,cAAc,EACvE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,GACjC,WAAW,CAAC,QAAQ,CAAC,CAavB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/when/builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAe,MAAM,WAAW,CAAC;AAyBpF,cAAM,eAAe,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc;IACpE,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,WAAW,CAA+B;gBAEtC,gBAAgB,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE;IAIhF,SAAS,CACP,eAAe,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,EACrC,cAAc,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GACvC,eAAe,CAAC,QAAQ,CAAC;IAQ5B,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC;IAK9F,IAAI,CAAC,GAAG,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC;IAKpE,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAYnE,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;IAgFrB,OAAO,CAAC,wBAAwB;CAwBjC;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,cAAc,EACvE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,GACjC,WAAW,CAAC,QAAQ,CAAC,CAavB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { UpdateScope } from "../core/updateScope";
1
+ import type { UpdateScope } from "../update/scope";
2
2
  export type WhenCondition = boolean | (() => boolean);
3
3
  export type WhenContent<TTagName extends ElementTagName = ElementTagName> = NodeMod<TTagName> | NodeModFn<TTagName>;
4
4
  export interface WhenGroup<TTagName extends ElementTagName = ElementTagName> {
@@ -52,4 +52,8 @@ export declare function registerWhenRuntime<TTagName extends ElementTagName>(run
52
52
  * ```
53
53
  */
54
54
  export declare function updateWhenRuntimes(scope?: UpdateScope): void;
55
+ /**
56
+ * Renders a list of content items and collects the resulting nodes.
57
+ */
58
+ export declare function renderContentItems<TTagName extends ElementTagName>(items: ReadonlyArray<WhenContent<TTagName>>, host: ExpandedElement<TTagName>, index: number, endMarker: Comment): Node[];
55
59
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/when/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,IACtE,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,WAAW,SAAS,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc;IACzE,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,WAAW,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc;IAC3E,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrC;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC;CAChB;AAmBD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,SAAS,cAAc,EACrE,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAC1C,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAChD,MAAM,GAAG,IAAI,CAOf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS,cAAc,EAC/D,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC7B,IAAI,CAoBN;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,cAAc,EACjE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC7B,IAAI,CAKN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAyC5D"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/when/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKnD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,IACtE,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,WAAW,SAAS,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc;IACzE,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,WAAW,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc;IAC3E,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrC;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,IAAI,IAAI,CAAC;CAChB;AAmBD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,SAAS,cAAc,EACrE,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAC1C,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAChD,MAAM,GAAG,IAAI,CAOf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS,cAAc,EAC/D,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC7B,IAAI,CAoBN;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,cAAc,EACjE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC7B,IAAI,CAKN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CA0C5D;AA8BD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,cAAc,EAChE,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAC3C,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,IAAI,EAAE,CASR"}
package/package.json CHANGED
@@ -1,11 +1,26 @@
1
1
  {
2
2
  "name": "nuclo",
3
3
  "private": false,
4
- "version": "0.2.7",
4
+ "version": "0.2.9",
5
+ "description": "Lightweight reactive DOM library with global tag builders, SSR, hydration, and atomic CSS — no virtual DOM, no compiler.",
6
+ "license": "MIT",
7
+ "author": "Danilo Celestino de Castro (https://github.com/dan2dev)",
8
+ "keywords": [
9
+ "dom",
10
+ "reactive",
11
+ "ui",
12
+ "ssr",
13
+ "hydration",
14
+ "atomic-css",
15
+ "no-vdom",
16
+ "typescript"
17
+ ],
5
18
  "type": "module",
6
19
  "main": "./dist/nuclo.cjs",
7
20
  "module": "./dist/nuclo.mjs",
8
21
  "browser": "./dist/nuclo.umd.js",
22
+ "unpkg": "./dist/nuclo.umd.js",
23
+ "jsdelivr": "./dist/nuclo.umd.js",
9
24
  "types": "./types/index.d.ts",
10
25
  "exports": {
11
26
  ".": {
@@ -14,12 +29,12 @@
14
29
  "require": "./dist/nuclo.cjs"
15
30
  },
16
31
  "./ssr": {
17
- "types": "./dist/ssr/index.d.ts",
32
+ "types": "./types/ssr.d.ts",
18
33
  "import": "./dist/ssr/nuclo.ssr.mjs",
19
34
  "require": "./dist/ssr/nuclo.ssr.cjs"
20
35
  },
21
36
  "./polyfill": {
22
- "types": "./dist/polyfill/index.d.ts",
37
+ "types": "./types/polyfill.d.ts",
23
38
  "import": "./dist/polyfill/nuclo.polyfill.mjs",
24
39
  "require": "./dist/polyfill/nuclo.polyfill.cjs"
25
40
  },
@@ -47,10 +62,10 @@
47
62
  "lint:fix": "eslint . --ext .ts,.js,.json,.jsonc,.json5,.md,.css --fix"
48
63
  },
49
64
  "devDependencies": {
50
- "@eslint/css": "^1.3.0",
65
+ "@eslint/css": "^1.4.0",
51
66
  "@eslint/js": "^10.0.1",
52
- "@eslint/json": "^2.0.0",
53
- "@eslint/markdown": "^8.0.2",
67
+ "@eslint/json": "^2.0.1",
68
+ "@eslint/markdown": "^8.0.3",
54
69
  "@types/node": "^25.9.4",
55
70
  "@vitest/coverage-v8": "4.1.7",
56
71
  "eslint": "^10.6.0",
@@ -6,13 +6,22 @@ declare global {
6
6
  export type SVGTagName = keyof SVGElementTagNameMap;
7
7
  export type ValueFactory<TValue> = () => TValue;
8
8
  export type ValueOrFactory<TValue> = TValue | ValueFactory<TValue>;
9
- export type InferFactoryResult<TFactory> = TFactory extends (...args: unknown[]) => infer TResult
9
+ // `never[]` (not `unknown[]`) so factories with typed parameters still match:
10
+ // `(...args: unknown[])` rejects e.g. `(x: number) => string` under strict
11
+ // contravariance and would resolve to never.
12
+ export type InferFactoryResult<TFactory> = TFactory extends (...args: never[]) => infer TResult
10
13
  ? TResult
11
14
  : never;
12
15
 
13
- // CSS Style object type that accepts any CSS property as string or number
16
+ // CSS style object: only the string-valued (settable) CSSStyleDeclaration
17
+ // properties, as string | number. Filters out methods (setProperty, item…),
18
+ // readonly non-string members (length, parentRule) and the numeric index.
14
19
  export type CSSStyleObject = {
15
- [K in keyof CSSStyleDeclaration]?: CSSStyleDeclaration[K] | string | number;
20
+ [K in keyof CSSStyleDeclaration as K extends string
21
+ ? CSSStyleDeclaration[K] extends string
22
+ ? K
23
+ : never
24
+ : never]?: string | number;
16
25
  };
17
26
 
18
27
  // Core element attribute types