@jalvin/ui 2.0.38 → 2.0.40

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 (70) hide show
  1. package/dist/__tests__/annotated-string.test.d.ts +1 -1
  2. package/dist/__tests__/annotated-string.test.d.ts.map +1 -1
  3. package/dist/__tests__/annotated-string.test.js +26 -39
  4. package/dist/__tests__/annotated-string.test.js.map +1 -1
  5. package/dist/__tests__/children-signature.test.js +20 -20
  6. package/dist/__tests__/children-signature.test.js.map +1 -1
  7. package/dist/__tests__/interaction.test.js +52 -35
  8. package/dist/__tests__/interaction.test.js.map +1 -1
  9. package/dist/__tests__/text.test.d.ts +1 -1
  10. package/dist/__tests__/text.test.d.ts.map +1 -1
  11. package/dist/__tests__/text.test.js +22 -16
  12. package/dist/__tests__/text.test.js.map +1 -1
  13. package/dist/__tests__/windowsizeclass.test.js +57 -66
  14. package/dist/__tests__/windowsizeclass.test.js.map +1 -1
  15. package/dist/annotated-string.d.ts +2 -4
  16. package/dist/annotated-string.d.ts.map +1 -1
  17. package/dist/annotated-string.js +19 -17
  18. package/dist/annotated-string.js.map +1 -1
  19. package/dist/button.d.ts +2 -3
  20. package/dist/button.d.ts.map +1 -1
  21. package/dist/button.js +8 -12
  22. package/dist/button.js.map +1 -1
  23. package/dist/canvas.d.ts +3 -3
  24. package/dist/canvas.d.ts.map +1 -1
  25. package/dist/canvas.js +31 -40
  26. package/dist/canvas.js.map +1 -1
  27. package/dist/checkbox.d.ts +1 -2
  28. package/dist/checkbox.d.ts.map +1 -1
  29. package/dist/checkbox.js +18 -11
  30. package/dist/checkbox.js.map +1 -1
  31. package/dist/image.d.ts +4 -6
  32. package/dist/image.d.ts.map +1 -1
  33. package/dist/image.js +32 -21
  34. package/dist/image.js.map +1 -1
  35. package/dist/index.d.ts +15 -14
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +17 -19
  38. package/dist/index.js.map +1 -1
  39. package/dist/input.d.ts +1 -3
  40. package/dist/input.d.ts.map +1 -1
  41. package/dist/input.js +20 -13
  42. package/dist/input.js.map +1 -1
  43. package/dist/interaction.d.ts.map +1 -1
  44. package/dist/interaction.js +9 -27
  45. package/dist/interaction.js.map +1 -1
  46. package/dist/layout.d.ts +3 -4
  47. package/dist/layout.d.ts.map +1 -1
  48. package/dist/layout.js +7 -7
  49. package/dist/layout.js.map +1 -1
  50. package/dist/spacer.d.ts +2 -3
  51. package/dist/spacer.d.ts.map +1 -1
  52. package/dist/spacer.js +5 -5
  53. package/dist/spacer.js.map +1 -1
  54. package/dist/surface.d.ts +9 -10
  55. package/dist/surface.d.ts.map +1 -1
  56. package/dist/surface.js +30 -13
  57. package/dist/surface.js.map +1 -1
  58. package/dist/text.d.ts +3 -5
  59. package/dist/text.d.ts.map +1 -1
  60. package/dist/text.js +23 -12
  61. package/dist/text.js.map +1 -1
  62. package/dist/textarea.d.ts +1 -3
  63. package/dist/textarea.d.ts.map +1 -1
  64. package/dist/textarea.js +20 -13
  65. package/dist/textarea.js.map +1 -1
  66. package/dist/typography.d.ts +101 -129
  67. package/dist/typography.d.ts.map +1 -1
  68. package/dist/typography.js +29 -25
  69. package/dist/typography.js.map +1 -1
  70. package/package.json +3 -8
@@ -11,7 +11,7 @@
11
11
  //
12
12
  // Box({ modifier: Modifier.hoverable(source).pressable(source) }) { ... }
13
13
  // ─────────────────────────────────────────────────────────────────────────────
14
- import { useState, useEffect, useRef } from "react";
14
+ import { mutableStateOf, remember } from "@jalvin/runtime";
15
15
  // ── MutableInteractionSource ─────────────────────────────────────────────────
16
16
  /**
17
17
  * Mutable implementation of {@link InteractionSource}.
@@ -22,7 +22,7 @@ import { useState, useEffect, useRef } from "react";
22
22
  * so a single source describes the full interaction state of the element.
23
23
  */
24
24
  export class MutableInteractionSource {
25
- _interactions = [];
25
+ _interactions = mutableStateOf([]);
26
26
  _listeners = new Set();
27
27
  // ── active interaction tracking ─────────────────────────────────────────
28
28
  _currentHover = null;
@@ -30,7 +30,7 @@ export class MutableInteractionSource {
30
30
  _currentPress = null;
31
31
  // ── InteractionSource ────────────────────────────────────────────────────
32
32
  getInteractions() {
33
- return this._interactions;
33
+ return this._interactions.value;
34
34
  }
35
35
  subscribe(listener) {
36
36
  this._listeners.add(listener);
@@ -118,10 +118,10 @@ export class MutableInteractionSource {
118
118
  const paired = interaction.type === "hover.exit" ? interaction.enter :
119
119
  interaction.type === "focus.unfocus" ? interaction.focus :
120
120
  interaction.press;
121
- this._interactions = this._interactions.filter(i => i !== paired);
121
+ this._interactions.value = this._interactions.value.filter(i => i !== paired);
122
122
  }
123
123
  else {
124
- this._interactions = [...this._interactions, interaction];
124
+ this._interactions.value = [...this._interactions.value, interaction];
125
125
  }
126
126
  this._listeners.forEach(l => l());
127
127
  }
@@ -132,44 +132,26 @@ export class MutableInteractionSource {
132
132
  * of the component. Equivalent to `remember { MutableInteractionSource() }`.
133
133
  */
134
134
  export function useMutableInteractionSource() {
135
- const ref = useRef(null);
136
- if (ref.current === null)
137
- ref.current = new MutableInteractionSource();
138
- return ref.current;
135
+ return remember(() => new MutableInteractionSource());
139
136
  }
140
137
  /**
141
138
  * Returns `true` while the pointer is inside the bounds of the component
142
139
  * attached to `source` via `Modifier.hoverable(source)`.
143
140
  */
144
141
  export function useIsHovered(source) {
145
- const [val, setVal] = useState(() => source.getInteractions().some(i => i.type === "hover.enter"));
146
- useEffect(() => {
147
- setVal(source.getInteractions().some(i => i.type === "hover.enter"));
148
- return source.subscribe(() => setVal(source.getInteractions().some(i => i.type === "hover.enter")));
149
- }, [source]);
150
- return val;
142
+ return source.getInteractions().some(i => i.type === "hover.enter");
151
143
  }
152
144
  /**
153
145
  * Returns `true` while the component attached to `source` has keyboard focus.
154
146
  */
155
147
  export function useIsFocused(source) {
156
- const [val, setVal] = useState(() => source.getInteractions().some(i => i.type === "focus.focus"));
157
- useEffect(() => {
158
- setVal(source.getInteractions().some(i => i.type === "focus.focus"));
159
- return source.subscribe(() => setVal(source.getInteractions().some(i => i.type === "focus.focus")));
160
- }, [source]);
161
- return val;
148
+ return source.getInteractions().some(i => i.type === "focus.focus");
162
149
  }
163
150
  /**
164
151
  * Returns `true` while the user is pressing down on the component attached to
165
152
  * `source` via `Modifier.pressable(source)`.
166
153
  */
167
154
  export function useIsPressed(source) {
168
- const [val, setVal] = useState(() => source.getInteractions().some(i => i.type === "press.press"));
169
- useEffect(() => {
170
- setVal(source.getInteractions().some(i => i.type === "press.press"));
171
- return source.subscribe(() => setVal(source.getInteractions().some(i => i.type === "press.press")));
172
- }, [source]);
173
- return val;
155
+ return source.getInteractions().some(i => i.type === "press.press");
174
156
  }
175
157
  //# sourceMappingURL=interaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"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"}
package/dist/layout.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { Modifier } from "./modifier.js";
3
2
  export type Alignment = "start" | "center" | "end" | "stretch";
4
3
  export type Arrangement = "start" | "center" | "end" | "spaceBetween" | "spaceAround" | "spaceEvenly";
@@ -9,7 +8,7 @@ export interface ColumnProps {
9
8
  horizontalAlignment?: Alignment;
10
9
  }
11
10
  /** Vertical flex container. */
12
- export declare function Column({ modifier, spacing, verticalArrangement, horizontalAlignment }: ColumnProps, children?: React.ReactNode[]): React.ReactElement;
11
+ export declare function Column({ modifier, spacing, verticalArrangement, horizontalAlignment }: ColumnProps, children?: Node[]): HTMLElement;
13
12
  export interface RowProps {
14
13
  modifier?: Modifier;
15
14
  spacing?: number;
@@ -18,11 +17,11 @@ export interface RowProps {
18
17
  wrap?: boolean;
19
18
  }
20
19
  /** Horizontal flex container. */
21
- export declare function Row({ modifier, spacing, horizontalArrangement, verticalAlignment, wrap }: RowProps, children?: React.ReactNode[]): React.ReactElement;
20
+ export declare function Row({ modifier, spacing, horizontalArrangement, verticalAlignment, wrap }: RowProps, children?: Node[]): HTMLElement;
22
21
  export interface BoxProps {
23
22
  modifier?: Modifier;
24
23
  contentAlignment?: "topStart" | "topCenter" | "topEnd" | "centerStart" | "center" | "centerEnd" | "bottomStart" | "bottomCenter" | "bottomEnd";
25
24
  }
26
25
  /** Positioned container. */
27
- export declare function Box({ modifier, contentAlignment }: BoxProps, children?: React.ReactNode[]): React.ReactElement;
26
+ export declare function Box({ modifier, contentAlignment }: BoxProps, children?: Node[]): HTMLElement;
28
27
  //# sourceMappingURL=layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAsBtG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,+BAA+B;AAC/B,wBAAgB,MAAM,CACpB,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAA6B,EAAE,mBAA6B,EAAE,EAAE,WAAW,EAChG,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAC3B,KAAK,CAAC,YAAY,CAapB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,iCAAiC;AACjC,wBAAgB,GAAG,CACjB,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAA+B,EAAE,iBAA4B,EAAE,IAAY,EAAE,EAAE,QAAQ,EAC5G,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAC3B,KAAK,CAAC,YAAY,CAcpB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;CAChJ;AAED,4BAA4B;AAC5B,wBAAgB,GAAG,CACjB,EAAE,QAAQ,EAAE,gBAA6B,EAAE,EAAE,QAAQ,EACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAC3B,KAAK,CAAC,YAAY,CAapB"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAsBtG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,+BAA+B;AAC/B,wBAAgB,MAAM,CACpB,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAA6B,EAAE,mBAA6B,EAAE,EAAE,WAAW,EAChG,QAAQ,CAAC,EAAE,IAAI,EAAE,GAChB,WAAW,CAab;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,iCAAiC;AACjC,wBAAgB,GAAG,CACjB,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAA+B,EAAE,iBAA4B,EAAE,IAAY,EAAE,EAAE,QAAQ,EAC5G,QAAQ,CAAC,EAAE,IAAI,EAAE,GAChB,WAAW,CAcb;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;CAChJ;AAED,4BAA4B;AAC5B,wBAAgB,GAAG,CACjB,EAAE,QAAQ,EAAE,gBAA6B,EAAE,EAAE,QAAQ,EACrD,QAAQ,CAAC,EAAE,IAAI,EAAE,GAChB,WAAW,CAab"}
package/dist/layout.js CHANGED
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import { jalvinCreateElement } from "@jalvin/runtime";
2
2
  function arrangementToJustify(a) {
3
3
  switch (a) {
4
4
  case "start": return "flex-start";
@@ -20,7 +20,7 @@ function alignmentToAlign(a) {
20
20
  /** Vertical flex container. */
21
21
  export function Column({ modifier, spacing, verticalArrangement = "start", horizontalAlignment = "start" }, children) {
22
22
  const modProps = modifier?.toProps() ?? {};
23
- return React.createElement("div", {
23
+ return jalvinCreateElement("div", {
24
24
  ...modProps,
25
25
  style: {
26
26
  display: "flex",
@@ -30,12 +30,12 @@ export function Column({ modifier, spacing, verticalArrangement = "start", horiz
30
30
  ...(spacing !== undefined ? { gap: `${spacing}px` } : {}),
31
31
  ...modProps.style,
32
32
  },
33
- }, ...(children ?? []));
33
+ }, children ?? []);
34
34
  }
35
35
  /** Horizontal flex container. */
36
36
  export function Row({ modifier, spacing, horizontalArrangement = "start", verticalAlignment = "center", wrap = false }, children) {
37
37
  const modProps = modifier?.toProps() ?? {};
38
- return React.createElement("div", {
38
+ return jalvinCreateElement("div", {
39
39
  ...modProps,
40
40
  style: {
41
41
  display: "flex",
@@ -46,13 +46,13 @@ export function Row({ modifier, spacing, horizontalArrangement = "start", vertic
46
46
  ...(spacing !== undefined ? { gap: `${spacing}px` } : {}),
47
47
  ...modProps.style,
48
48
  },
49
- }, ...(children ?? []));
49
+ }, children ?? []);
50
50
  }
51
51
  /** Positioned container. */
52
52
  export function Box({ modifier, contentAlignment = "topStart" }, children) {
53
53
  const modProps = modifier?.toProps() ?? {};
54
54
  const isCentered = contentAlignment === "center";
55
- return React.createElement("div", {
55
+ return jalvinCreateElement("div", {
56
56
  ...modProps,
57
57
  style: {
58
58
  position: "relative",
@@ -61,6 +61,6 @@ export function Box({ modifier, contentAlignment = "topStart" }, children) {
61
61
  ...(isCentered ? { alignItems: "center", justifyContent: "center" } : {}),
62
62
  ...modProps.style,
63
63
  },
64
- }, ...(children ?? []));
64
+ }, children ?? []);
65
65
  }
66
66
  //# sourceMappingURL=layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,SAAS,oBAAoB,CAAC,CAAc;IAC1C,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,OAAO,CAAC,CAAQ,OAAO,YAAY,CAAC;QACzC,KAAK,QAAQ,CAAC,CAAO,OAAO,QAAQ,CAAC;QACrC,KAAK,KAAK,CAAC,CAAU,OAAO,UAAU,CAAC;QACvC,KAAK,cAAc,CAAC,CAAC,OAAO,eAAe,CAAC;QAC5C,KAAK,aAAa,CAAC,CAAE,OAAO,cAAc,CAAC;QAC3C,KAAK,aAAa,CAAC,CAAE,OAAO,cAAc,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAY;IACpC,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,OAAO,CAAC,CAAG,OAAO,YAAY,CAAC;QACpC,KAAK,QAAQ,CAAC,CAAE,OAAO,QAAQ,CAAC;QAChC,KAAK,KAAK,CAAC,CAAK,OAAO,UAAU,CAAC;QAClC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;IACnC,CAAC;AACH,CAAC;AASD,+BAA+B;AAC/B,MAAM,UAAU,MAAM,CACpB,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,EAAE,mBAAmB,GAAG,OAAO,EAAe,EAChG,QAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;QAChC,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,cAAc,EAAE,oBAAoB,CAAC,mBAAmB,CAAC;YACzD,UAAU,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;YACjD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,QAAQ,CAAC,KAAK;SACK;KACzB,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAUD,iCAAiC;AACjC,MAAM,UAAU,GAAG,CACjB,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,EAAE,iBAAiB,GAAG,QAAQ,EAAE,IAAI,GAAG,KAAK,EAAY,EAC5G,QAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;QAChC,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;YAC3D,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;YAC/C,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAClC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,QAAQ,CAAC,KAAK;SACK;KACzB,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAOD,4BAA4B;AAC5B,MAAM,UAAU,GAAG,CACjB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,UAAU,EAAY,EACrD,QAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,gBAAgB,KAAK,QAAQ,CAAC;IACjD,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;QAChC,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,QAAQ,CAAC,KAAK;SACK;KACzB,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
package/dist/spacer.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { Modifier } from "./modifier.js";
3
2
  export interface SpacerProps {
4
3
  /** Fixed width in pixels (horizontal spacer) */
@@ -10,7 +9,7 @@ export interface SpacerProps {
10
9
  modifier?: Modifier;
11
10
  }
12
11
  /** Flexible or fixed-size spacer. */
13
- export declare function Spacer({ width, height, weight, modifier }: SpacerProps): React.ReactElement;
12
+ export declare function Spacer({ width, height, weight, modifier }: SpacerProps): HTMLElement;
14
13
  export interface DividerProps {
15
14
  modifier?: Modifier;
16
15
  color?: string;
@@ -19,5 +18,5 @@ export interface DividerProps {
19
18
  orientation?: "horizontal" | "vertical";
20
19
  }
21
20
  /** Thin line divider. */
22
- export declare function Divider({ modifier, color, thickness, orientation, }: DividerProps): React.ReactElement;
21
+ export declare function Divider({ modifier, color, thickness, orientation, }: DividerProps): HTMLElement;
23
22
  //# sourceMappingURL=spacer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spacer.d.ts","sourceRoot":"","sources":["../src/spacer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,qCAAqC;AACrC,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAY3F;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC;AAED,yBAAyB;AACzB,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,KAAiB,EACjB,SAAa,EACb,WAA0B,GAC3B,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAcnC"}
1
+ {"version":3,"file":"spacer.d.ts","sourceRoot":"","sources":["../src/spacer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,qCAAqC;AACrC,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,WAAW,CAYpF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC;AAED,yBAAyB;AACzB,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,KAAiB,EACjB,SAAa,EACb,WAA0B,GAC3B,EAAE,YAAY,GAAG,WAAW,CAc5B"}
package/dist/spacer.js CHANGED
@@ -1,8 +1,8 @@
1
- import React from "react";
1
+ import { jalvinCreateElement } from "@jalvin/runtime";
2
2
  /** Flexible or fixed-size spacer. */
3
3
  export function Spacer({ width, height, weight, modifier }) {
4
4
  const modProps = modifier?.toProps() ?? {};
5
- return React.createElement("div", {
5
+ return jalvinCreateElement("div", {
6
6
  ...modProps,
7
7
  style: {
8
8
  flex: weight !== undefined ? weight : undefined,
@@ -11,13 +11,13 @@ export function Spacer({ width, height, weight, modifier }) {
11
11
  flexShrink: 0,
12
12
  ...modProps.style,
13
13
  },
14
- });
14
+ }, []);
15
15
  }
16
16
  /** Thin line divider. */
17
17
  export function Divider({ modifier, color = "#c4c4c4", thickness = 1, orientation = "horizontal", }) {
18
18
  const modProps = modifier?.toProps() ?? {};
19
19
  const isVertical = orientation === "vertical";
20
- return React.createElement("div", {
20
+ return jalvinCreateElement("div", {
21
21
  ...modProps,
22
22
  role: "separator",
23
23
  style: {
@@ -27,6 +27,6 @@ export function Divider({ modifier, color = "#c4c4c4", thickness = 1, orientatio
27
27
  flexShrink: 0,
28
28
  ...modProps.style,
29
29
  },
30
- });
30
+ }, []);
31
31
  }
32
32
  //# sourceMappingURL=spacer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spacer.js","sourceRoot":"","sources":["../src/spacer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,qCAAqC;AACrC,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAe;IACrE,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;QAChC,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC/C,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YACpF,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YACvF,UAAU,EAAE,CAAC;YACb,GAAG,QAAQ,CAAC,KAAK;SAClB;KACF,CAAC,CAAC;AACL,CAAC;AAUD,yBAAyB;AACzB,MAAM,UAAU,OAAO,CAAC,EACtB,QAAQ,EACR,KAAK,GAAG,SAAS,EACjB,SAAS,GAAG,CAAC,EACb,WAAW,GAAG,YAAY,GACb;IACb,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,WAAW,KAAK,UAAU,CAAC;IAC9C,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;QAChC,GAAG,QAAQ;QACX,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE;YACL,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,MAAM;YAC7C,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI;YAC9C,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,CAAC;YACb,GAAG,QAAQ,CAAC,KAAK;SAClB;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"spacer.js","sourceRoot":"","sources":["../src/spacer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAYtD,qCAAqC;AACrC,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAe;IACrE,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,OAAO,mBAAmB,CAAC,KAAK,EAAE;QAChC,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC/C,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YACpF,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YACvF,UAAU,EAAE,CAAC;YACb,GAAG,QAAQ,CAAC,KAAK;SAClB;KACF,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAUD,yBAAyB;AACzB,MAAM,UAAU,OAAO,CAAC,EACtB,QAAQ,EACR,KAAK,GAAG,SAAS,EACjB,SAAS,GAAG,CAAC,EACb,WAAW,GAAG,YAAY,GACb;IACb,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,WAAW,KAAK,UAAU,CAAC;IAC9C,OAAO,mBAAmB,CAAC,KAAK,EAAE;QAChC,GAAG,QAAQ;QACX,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE;YACL,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,MAAM;YAC7C,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI;YAC9C,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,CAAC;YACb,GAAG,QAAQ,CAAC,KAAK;SAClB;KACF,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
package/dist/surface.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { Modifier } from "./modifier.js";
3
2
  export interface CardProps {
4
3
  modifier?: Modifier;
@@ -8,23 +7,23 @@ export interface CardProps {
8
7
  outlined?: boolean;
9
8
  }
10
9
  /** Card container. */
11
- export declare function Card({ modifier, onClick, elevation, outlined, }: CardProps, children?: React.ReactNode[]): React.ReactElement;
10
+ export declare function Card({ modifier, onClick, elevation, outlined, }: CardProps, children?: Node[]): HTMLElement;
12
11
  export interface ScaffoldProps {
13
- topBar?: React.ReactNode;
14
- bottomBar?: React.ReactNode;
15
- floatingActionButton?: React.ReactNode;
12
+ topBar?: Node;
13
+ bottomBar?: Node;
14
+ floatingActionButton?: Node;
16
15
  modifier?: Modifier;
17
16
  }
18
17
  /**
19
18
  * Full-page layout scaffold. Stacks topBar, scrollable content, and bottomBar.
20
19
  */
21
- export declare function Scaffold({ topBar, bottomBar, floatingActionButton, modifier, }: ScaffoldProps, children?: React.ReactNode[]): React.ReactElement;
20
+ export declare function Scaffold({ topBar, bottomBar, floatingActionButton, modifier, }: ScaffoldProps, children?: Node[]): HTMLElement;
22
21
  export interface TopBarProps {
23
- title: string | React.ReactNode;
24
- navigationIcon?: React.ReactNode;
25
- actions?: React.ReactNode;
22
+ title: string | Node;
23
+ navigationIcon?: Node;
24
+ actions?: Node;
26
25
  modifier?: Modifier;
27
26
  }
28
27
  /** App top bar. */
29
- export declare function TopBar({ title, navigationIcon, actions, modifier, }: TopBarProps): React.ReactElement;
28
+ export declare function TopBar({ title, navigationIcon, actions, modifier, }: TopBarProps): HTMLElement;
30
29
  //# sourceMappingURL=surface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uBAAuB;IACvB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AASD,sBAAsB;AACtB,wBAAgB,IAAI,CAClB,EACE,QAAQ,EACR,OAAO,EACP,SAAa,EACb,QAAgB,GACjB,EAAE,SAAS,EACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAC3B,KAAK,CAAC,YAAY,CAiBpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,EACE,MAAM,EACN,SAAS,EACT,oBAAoB,EACpB,QAAQ,GACT,EAAE,aAAa,EAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAC3B,KAAK,CAAC,YAAY,CAsBpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,mBAAmB;AACnB,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,cAAc,EACd,OAAO,EACP,QAAQ,GACT,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAsBlC"}
1
+ {"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uBAAuB;IACvB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AASD,sBAAsB;AACtB,wBAAgB,IAAI,CAClB,EACE,QAAQ,EACR,OAAO,EACP,SAAa,EACb,QAAgB,GACjB,EAAE,SAAS,EACZ,QAAQ,CAAC,EAAE,IAAI,EAAE,GAChB,WAAW,CAiBb;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,oBAAoB,CAAC,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,EACE,MAAM,EACN,SAAS,EACT,oBAAoB,EACpB,QAAQ,GACT,EAAE,aAAa,EAChB,QAAQ,CAAC,EAAE,IAAI,EAAE,GAChB,WAAW,CA4Bb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,mBAAmB;AACnB,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,cAAc,EACd,OAAO,EACP,QAAQ,GACT,EAAE,WAAW,GAAG,WAAW,CA0B3B"}
package/dist/surface.js CHANGED
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import { jalvinCreateElement } from "@jalvin/runtime";
2
2
  const SHADOWS = [
3
3
  "none",
4
4
  "0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.08)",
@@ -8,7 +8,7 @@ const SHADOWS = [
8
8
  /** Card container. */
9
9
  export function Card({ modifier, onClick, elevation = 1, outlined = false, }, children) {
10
10
  const modProps = modifier?.toProps() ?? {};
11
- return React.createElement("div", {
11
+ return jalvinCreateElement("div", {
12
12
  ...modProps,
13
13
  onClick,
14
14
  role: onClick ? "button" : undefined,
@@ -22,14 +22,28 @@ export function Card({ modifier, onClick, elevation = 1, outlined = false, }, ch
22
22
  cursor: onClick ? "pointer" : "default",
23
23
  ...modProps.style,
24
24
  },
25
- }, ...(children ?? []));
25
+ }, children ?? []);
26
26
  }
27
27
  /**
28
28
  * Full-page layout scaffold. Stacks topBar, scrollable content, and bottomBar.
29
29
  */
30
30
  export function Scaffold({ topBar, bottomBar, floatingActionButton, modifier, }, children) {
31
31
  const modProps = modifier?.toProps() ?? {};
32
- return React.createElement("div", {
32
+ const main = jalvinCreateElement("main", {
33
+ style: { flex: 1, overflow: "auto", WebkitOverflowScrolling: "touch" },
34
+ }, children ?? []);
35
+ const scaffoldChildren = [];
36
+ if (topBar)
37
+ scaffoldChildren.push(topBar);
38
+ scaffoldChildren.push(main);
39
+ if (bottomBar)
40
+ scaffoldChildren.push(bottomBar);
41
+ if (floatingActionButton) {
42
+ scaffoldChildren.push(jalvinCreateElement("div", {
43
+ style: { position: "absolute", bottom: "16px", right: "16px" },
44
+ }, [floatingActionButton]));
45
+ }
46
+ return jalvinCreateElement("div", {
33
47
  ...modProps,
34
48
  style: {
35
49
  display: "flex",
@@ -39,16 +53,21 @@ export function Scaffold({ topBar, bottomBar, floatingActionButton, modifier, },
39
53
  position: "relative",
40
54
  ...modProps.style,
41
55
  },
42
- }, topBar, React.createElement("main", {
43
- style: { flex: 1, overflow: "auto", WebkitOverflowScrolling: "touch" },
44
- }, ...(children ?? [])), bottomBar, floatingActionButton && React.createElement("div", {
45
- style: { position: "absolute", bottom: "16px", right: "16px" },
46
- }, floatingActionButton));
56
+ }, scaffoldChildren);
47
57
  }
48
58
  /** App top bar. */
49
59
  export function TopBar({ title, navigationIcon, actions, modifier, }) {
50
60
  const modProps = modifier?.toProps() ?? {};
51
- return React.createElement("header", {
61
+ const titleNode = title;
62
+ const barChildren = [];
63
+ if (navigationIcon)
64
+ barChildren.push(navigationIcon);
65
+ barChildren.push(jalvinCreateElement("span", {
66
+ style: { flex: 1, fontSize: "1.375rem", fontWeight: 500 },
67
+ }, [titleNode]));
68
+ if (actions)
69
+ barChildren.push(actions);
70
+ return jalvinCreateElement("header", {
52
71
  ...modProps,
53
72
  style: {
54
73
  display: "flex",
@@ -61,8 +80,6 @@ export function TopBar({ title, navigationIcon, actions, modifier, }) {
61
80
  flexShrink: 0,
62
81
  ...modProps.style,
63
82
  },
64
- }, navigationIcon, React.createElement("span", {
65
- style: { flex: 1, fontSize: "1.375rem", fontWeight: 500 },
66
- }, title), actions);
83
+ }, barChildren);
67
84
  }
68
85
  //# sourceMappingURL=surface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
package/dist/text.d.ts CHANGED
@@ -1,18 +1,16 @@
1
- import React from "react";
2
1
  import { Modifier } from "./modifier.js";
3
2
  import { type TextStyleDef } from "./typography.js";
4
- import type { CSSProperties } from "react";
5
3
  import { type AnnotatedString } from "./annotated-string.js";
6
4
  export interface TextProps {
7
- children?: React.ReactNode;
5
+ children?: Node[];
8
6
  /** Plain string content or an AnnotatedString (for inline links / spans). */
9
7
  text?: string | AnnotatedString;
10
8
  modifier?: Modifier;
11
9
  /** Typography style — use TextStyle tokens (e.g. TextStyle.headlineLarge) */
12
- style?: TextStyleDef | CSSProperties;
10
+ style?: TextStyleDef | Record<string, any>;
13
11
  color?: string;
14
12
  maxLines?: number;
15
13
  }
16
14
  /** Text element. Accepts plain strings or AnnotatedStrings with inline links and spans. */
17
- export declare function Text({ children, text, modifier, style, color, maxLines, }: TextProps): React.ReactElement;
15
+ export declare function Text({ children, text, modifier, style, color, maxLines, }: TextProps): HTMLElement;
18
16
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,uBAAuB,CAAC;AAEpF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2FAA2F;AAC3F,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAuBhC"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,uBAAuB,CAAC;AAGpF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2FAA2F;AAC3F,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,SAAS,GAAG,WAAW,CAiCzB"}
package/dist/text.js CHANGED
@@ -1,27 +1,38 @@
1
- import React from "react";
2
1
  import { textStyleToCSS } from "./typography.js";
3
2
  import { renderAnnotatedString } from "./annotated-string.js";
3
+ import { jalvinCreateElement } from "@jalvin/runtime";
4
4
  /** Text element. Accepts plain strings or AnnotatedStrings with inline links and spans. */
5
5
  export function Text({ children, text, modifier, style, color, maxLines, }) {
6
6
  const modProps = modifier?.toProps() ?? {};
7
- const textStyle = style ? textStyleToCSS(style) : {};
7
+ const textStyle = style && style.fontSize ? textStyleToCSS(style) : (style ?? {});
8
8
  const clampStyle = maxLines !== undefined ? {
9
9
  display: "-webkit-box",
10
10
  WebkitLineClamp: maxLines,
11
11
  WebkitBoxOrient: "vertical",
12
12
  overflow: "hidden",
13
13
  } : {};
14
- const content = typeof text === "object" && text !== null && "spanStyles" in text
15
- ? renderAnnotatedString(text)
16
- : (text ?? children);
17
- return React.createElement("span", {
14
+ let content;
15
+ if (typeof text === "object" && text !== null && "spanStyles" in text) {
16
+ content = renderAnnotatedString(text);
17
+ }
18
+ else if (text !== undefined) {
19
+ content = [String(text)];
20
+ }
21
+ else {
22
+ content = children ?? [];
23
+ }
24
+ const finalStyle = {
25
+ ...textStyle,
26
+ ...clampStyle,
27
+ ...modProps.style,
28
+ };
29
+ if (color)
30
+ finalStyle.color = color;
31
+ else if (textStyle.color)
32
+ finalStyle.color = textStyle.color;
33
+ return jalvinCreateElement("span", {
18
34
  ...modProps,
19
- style: {
20
- ...textStyle,
21
- color: color ?? textStyle.color,
22
- ...clampStyle,
23
- ...modProps.style,
24
- },
35
+ style: finalStyle,
25
36
  }, content);
26
37
  }
27
38
  //# sourceMappingURL=text.js.map
package/dist/text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAqB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAwB,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAapF,2FAA2F;AAC3F,MAAM,UAAU,IAAI,CAAC,EACnB,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,GACE;IACV,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAkB,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,UAAU,GAAkB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;QACzD,OAAO,EAAE,aAAa;QACtB,eAAe,EAAE,QAAQ;QACzB,eAAe,EAAE,UAAU;QAC3B,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,YAAY,IAAI,IAAI;QAC/E,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IAEvB,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;QACjC,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,GAAG,SAAS;YACZ,KAAK,EAAE,KAAK,IAAI,SAAS,CAAC,KAAK;YAC/B,GAAG,UAAU;YACb,GAAG,QAAQ,CAAC,KAAK;SAClB;KACF,EAAE,OAAO,CAAC,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAwB,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAatD,2FAA2F;AAC3F,MAAM,UAAU,IAAI,CAAC,EACnB,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,GACE;IACV,MAAM,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,IAAK,KAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAE3G,MAAM,UAAU,GAAwB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;QAC/D,OAAO,EAAE,aAAa;QACtB,eAAe,EAAE,QAAQ;QACzB,eAAe,EAAE,UAAU;QAC3B,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,OAA6B,CAAC;IAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACtE,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,UAAU,GAAkB;QAChC,GAAG,SAAS;QACZ,GAAG,UAAU;QACb,GAAG,QAAQ,CAAC,KAAK;KAClB,CAAC;IAEF,IAAI,KAAK;QAAE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;SAC/B,IAAI,SAAS,CAAC,KAAK;QAAE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAE7D,OAAO,mBAAmB,CAAC,MAAM,EAAE;QACjC,GAAG,QAAQ;QACX,KAAK,EAAE,UAAU;KAClB,EAAE,OAAO,CAAC,CAAC;AACd,CAAC"}
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { Modifier } from "./modifier.js";
3
2
  export interface TextAreaProps {
4
3
  value?: string;
@@ -14,9 +13,8 @@ export interface TextAreaProps {
14
13
  rows?: number;
15
14
  onFocus?: () => void;
16
15
  onBlur?: () => void;
17
- onKeyDown?: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
18
16
  autoFocus?: boolean;
19
17
  }
20
18
  /** Multiline text input. */
21
- export declare function TextArea({ value, onValueChange, placeholder, modifier, enabled, readOnly, label, supportingText, isError, maxLength, rows, onFocus, onBlur, onKeyDown, autoFocus, }: TextAreaProps): React.ReactElement;
19
+ export declare function TextArea({ value, onValueChange, placeholder, modifier, enabled, readOnly, label, supportingText, isError, maxLength, rows, onFocus, onBlur, autoFocus, }: TextAreaProps): HTMLElement;
22
20
  //# sourceMappingURL=textarea.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../src/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,4BAA4B;AAC5B,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,aAAa,EACb,WAAW,EACX,QAAQ,EACR,OAAc,EACd,QAAgB,EAChB,KAAK,EACL,cAAc,EACd,OAAe,EACf,SAAS,EACT,IAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAS,GACV,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAgDpC"}
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../src/textarea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,4BAA4B;AAC5B,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,aAAa,EACb,WAAW,EACX,QAAQ,EACR,OAAc,EACd,QAAgB,EAChB,KAAK,EACL,cAAc,EACd,OAAe,EACf,SAAS,EACT,IAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,GACV,EAAE,aAAa,GAAG,WAAW,CAoD7B"}
package/dist/textarea.js CHANGED
@@ -1,11 +1,11 @@
1
- import React from "react";
1
+ import { jalvinCreateElement } from "@jalvin/runtime";
2
2
  /** Multiline text input. */
3
- export function TextArea({ value, onValueChange, placeholder, modifier, enabled = true, readOnly = false, label, supportingText, isError = false, maxLength, rows = 4, onFocus, onBlur, onKeyDown, autoFocus, }) {
3
+ export function TextArea({ value, onValueChange, placeholder, modifier, enabled = true, readOnly = false, label, supportingText, isError = false, maxLength, rows = 4, onFocus, onBlur, autoFocus, }) {
4
4
  const modProps = modifier?.toProps() ?? {};
5
5
  const borderColor = isError ? "#b00020" : "#c4c4c4";
6
- const textArea = React.createElement("textarea", {
6
+ const textArea = jalvinCreateElement("textarea", {
7
7
  value,
8
- onChange: (e) => onValueChange?.(e.target.value),
8
+ onInput: (e) => onValueChange?.(e.target.value),
9
9
  placeholder,
10
10
  disabled: !enabled,
11
11
  readOnly,
@@ -13,7 +13,6 @@ export function TextArea({ value, onValueChange, placeholder, modifier, enabled
13
13
  rows,
14
14
  onFocus,
15
15
  onBlur,
16
- onKeyDown,
17
16
  autoFocus,
18
17
  style: {
19
18
  width: "100%",
@@ -29,17 +28,25 @@ export function TextArea({ value, onValueChange, placeholder, modifier, enabled
29
28
  resize: "vertical",
30
29
  lineHeight: 1.4,
31
30
  },
32
- });
31
+ }, []);
33
32
  if (!label && !supportingText) {
34
- return React.createElement("div", { ...modProps }, textArea);
33
+ return jalvinCreateElement("div", { ...modProps }, [textArea]);
35
34
  }
36
- return React.createElement("div", {
35
+ const containerChildren = [];
36
+ if (label) {
37
+ containerChildren.push(jalvinCreateElement("label", {
38
+ style: { fontSize: "0.875rem", fontWeight: 500, color: isError ? "#b00020" : "#5c5c5c" },
39
+ }, [document.createTextNode(label)]));
40
+ }
41
+ containerChildren.push(textArea);
42
+ if (supportingText) {
43
+ containerChildren.push(jalvinCreateElement("span", {
44
+ style: { fontSize: "0.75rem", color: isError ? "#b00020" : "#5c5c5c" },
45
+ }, [document.createTextNode(supportingText)]));
46
+ }
47
+ return jalvinCreateElement("div", {
37
48
  ...modProps,
38
49
  style: { display: "flex", flexDirection: "column", gap: "4px", ...modProps.style },
39
- }, label && React.createElement("label", {
40
- style: { fontSize: "0.875rem", fontWeight: 500, color: isError ? "#b00020" : "#5c5c5c" },
41
- }, label), textArea, supportingText && React.createElement("span", {
42
- style: { fontSize: "0.75rem", color: isError ? "#b00020" : "#5c5c5c" },
43
- }, supportingText));
50
+ }, containerChildren);
44
51
  }
45
52
  //# sourceMappingURL=textarea.js.map