@octane-xplat/ui 0.7.2 → 0.9.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 (219) hide show
  1. package/README.md +4 -3
  2. package/dist/native/Button.tsrx.js +1 -1
  3. package/dist/native/CommandPalette.tsrx.js +7 -1
  4. package/dist/native/Grid.tsrx.js +31 -2
  5. package/dist/native/KeyboardAvoiding.mobile.tsrx.js +2 -2
  6. package/dist/native/Markdown.tsrx.js +233 -0
  7. package/dist/native/Overlay.tsrx.js +15 -26
  8. package/dist/native/Pagination.tsrx.js +15 -12
  9. package/dist/native/PinInput.tsrx.js +25 -7
  10. package/dist/native/Popover.tsrx.js +33 -23
  11. package/dist/native/Pressable.tsrx.js +4 -1
  12. package/dist/native/Screen.tsrx.js +1 -1
  13. package/dist/native/SearchInput.tsrx.js +6 -3
  14. package/dist/native/Sheet.tsrx.js +23 -38
  15. package/dist/native/Slider.tsrx.js +23 -14
  16. package/dist/native/Text.tsrx.js +16 -0
  17. package/dist/native/TextArea.tsrx.js +6 -3
  18. package/dist/native/TextInput.tsrx.js +6 -3
  19. package/dist/native/VirtualList.tsrx.js +305 -121
  20. package/dist/native/WebView.tsrx.js +17 -2
  21. package/dist/native/_virtual/_@oxc-project_runtime@0.150.0/helpers/esm/decorate.js +9 -0
  22. package/dist/native/escape-props.js +2 -0
  23. package/dist/native/grid-auto-placement.js +83 -0
  24. package/dist/native/grid-placement.js +20 -0
  25. package/dist/native/index.shared.js +7 -5
  26. package/dist/native/keyboard-inset.mobile.js +5 -5
  27. package/dist/native/navigation-request.js +26 -0
  28. package/dist/native/octane-client-build.json +1 -1
  29. package/dist/native/overlay-lifetime.mobile.js +65 -0
  30. package/dist/native/pan.tsrx.js +16 -2
  31. package/dist/native/route-table.js +90 -10
  32. package/dist/native/route.js +26 -16
  33. package/dist/native/shared.js +7 -5
  34. package/dist/native/sheet-service.js +2 -2
  35. package/dist/native/svg.mobile.js +1 -1
  36. package/dist/native/{tap-to-blur.mobile.js → tap-to-blur.ios.js} +20 -32
  37. package/dist/native/text-focus.js +10 -0
  38. package/dist/native/text-write.js +18 -11
  39. package/dist/native/toast-anchor.tsrx.js +1 -1
  40. package/dist/native/ui.js +7 -6
  41. package/dist/native/useMeasure.tsrx.js +17 -18
  42. package/dist/native/vendor/ui-svg/index.android.js +2 -2
  43. package/dist/native/vendor/ui-svg/index.ios.js +2 -2
  44. package/dist/native/vendor/ui-svg/{index.common.js → src/index.common.js} +1 -1
  45. package/dist/native/virtual-list-cell-pool.js +63 -0
  46. package/dist/web/Button.web.tsrx.js +1 -1
  47. package/dist/web/KeyboardAvoiding.web.tsrx.js +78 -0
  48. package/dist/web/Markdown.tsrx.js +98 -0
  49. package/dist/web/Overlay.web.tsrx.js +81 -32
  50. package/dist/web/PinInput.web.tsrx.js +24 -10
  51. package/dist/web/Pressable.web.tsrx.js +169 -53
  52. package/dist/web/SearchInput.web.tsrx.js +2 -2
  53. package/dist/web/Sheet.web.tsrx.js +20 -7
  54. package/dist/web/TextArea.web.tsrx.js +22 -17
  55. package/dist/web/TextInput.web.tsrx.js +2 -2
  56. package/dist/web/VirtualList.web.tsrx.js +220 -109
  57. package/dist/web/WebView.web.tsrx.js +3 -3
  58. package/dist/web/{index.shared.js → index.shared.web.js} +7 -5
  59. package/dist/web/modal-focus.web.js +95 -0
  60. package/dist/web/navigation-request.js +26 -0
  61. package/dist/web/octane-client-build.json +1 -1
  62. package/dist/web/pan.web.tsrx.js +27 -10
  63. package/dist/web/route-table.js +90 -10
  64. package/dist/web/route.web.js +88 -22
  65. package/dist/web/sheet-service.web.js +8 -0
  66. package/dist/web/theme/colorScheme.web.js +31 -4
  67. package/dist/web/ui.js +8 -6
  68. package/dist/web/virtual-list-cell-pool.js +63 -0
  69. package/package.json +21 -19
  70. package/platforms/android/native-api-usage.json +7 -7
  71. package/src/CommandPalette.tsrx +8 -1
  72. package/src/Grid.tsrx +32 -1
  73. package/src/Icon.macos.tsrx +1 -0
  74. package/src/KeyboardAvoiding.macos.tsrx +7 -1
  75. package/src/KeyboardAvoiding.mobile.tsrx +2 -2
  76. package/src/KeyboardAvoiding.tsrx +15 -0
  77. package/src/KeyboardAvoiding.web.tsrx +15 -0
  78. package/src/Markdown.tsrx +121 -0
  79. package/src/Meter.tsrx +1 -0
  80. package/src/Overlay.tsrx +15 -30
  81. package/src/Overlay.web.tsrx +12 -3
  82. package/src/Pagination.tsrx +6 -4
  83. package/src/PinInput.macos.tsrx +20 -6
  84. package/src/PinInput.mobile.test.ts +107 -0
  85. package/src/PinInput.tsrx +20 -6
  86. package/src/PinInput.web.test.tsrx +42 -0
  87. package/src/PinInput.web.tsrx +20 -6
  88. package/src/Popover.tsrx +36 -22
  89. package/src/Pressable.tsrx +1 -1
  90. package/src/Pressable.web.test.tsrx +36 -0
  91. package/src/Pressable.web.tsrx +37 -6
  92. package/src/RouteHost.macos.tsrx +1 -0
  93. package/src/Screen.tsrx +1 -1
  94. package/src/SearchInput.tsrx +4 -3
  95. package/src/SearchInput.web.tsrx +1 -1
  96. package/src/Sheet.tsrx +21 -42
  97. package/src/Sheet.web.tsrx +9 -1
  98. package/src/Slider.tsrx +13 -11
  99. package/src/Text.tsrx +36 -0
  100. package/src/TextArea.tsrx +6 -5
  101. package/src/TextArea.web.test.tsrx +39 -0
  102. package/src/TextArea.web.tsrx +7 -5
  103. package/src/TextInput.tsrx +6 -6
  104. package/src/TextInput.web.tsrx +1 -1
  105. package/src/VirtualList.macos.tsrx +93 -6
  106. package/src/VirtualList.mobile.test.tsrx +232 -0
  107. package/src/VirtualList.tsrx +285 -81
  108. package/src/VirtualList.web.tsrx +131 -25
  109. package/src/WebView.tsrx +20 -10
  110. package/src/WebView.web.tsrx +3 -0
  111. package/src/android/BottomNavigationView.android.tsrx +1 -0
  112. package/src/android/MaterialDialog.android.tsrx +1 -0
  113. package/src/anim.macos.tsrx +1 -0
  114. package/src/apply-native-modifiers.native.ts +4 -1
  115. package/src/child-array.ts +12 -7
  116. package/src/colorScheme.macos.ts +1 -0
  117. package/src/controls.macos.tsrx +4 -1
  118. package/src/data-driver.mobile.test.ts +120 -0
  119. package/src/data-lifecycle.mobile.test.ts +251 -0
  120. package/src/escape-props.ts +13 -1
  121. package/src/grid-auto-placement.ts +163 -0
  122. package/src/grid-placement.ts +29 -0
  123. package/src/hosted-unsupported.macos.tsrx +1 -0
  124. package/src/index.macos.ts +23 -3
  125. package/src/index.mobile.ts +0 -1
  126. package/src/index.shared.ts +22 -1
  127. package/src/index.shared.web.ts +291 -0
  128. package/src/index.web.ts +1 -1
  129. package/src/input-readiness.web.test.tsrx +82 -0
  130. package/src/ios/UITabBar.ios.tsrx +1 -0
  131. package/src/keyboard-inset.mobile.test.ts +62 -0
  132. package/src/keyboard-inset.mobile.ts +63 -43
  133. package/src/layout-shells.macos.tsrx +1 -5
  134. package/src/macos-extras.macos.tsrx +2 -0
  135. package/src/modal-focus.web.test.tsrx +63 -0
  136. package/src/modal-focus.web.ts +162 -0
  137. package/src/navigation-request.ts +37 -0
  138. package/src/overlay-lifecycle.mobile.test.ts +316 -0
  139. package/src/overlay-lifetime.mobile.ts +107 -0
  140. package/src/pan.mobile.test.tsrx +116 -0
  141. package/src/pan.tsrx +20 -2
  142. package/src/pan.web.tsrx +35 -7
  143. package/src/platformProps.ts +1 -0
  144. package/src/popover.mobile.test.ts +9 -1
  145. package/src/pressable-accessibility.mobile.test.ts +30 -0
  146. package/src/props.ts +163 -3
  147. package/src/refresh.ts +6 -1
  148. package/src/refresh.web.test.ts +77 -77
  149. package/src/route-android.test.ts +162 -0
  150. package/src/route-history.web.test.ts +80 -0
  151. package/src/route-navigation.web.test.ts +173 -0
  152. package/src/route-table.test.ts +188 -9
  153. package/src/route-table.ts +138 -10
  154. package/src/route.macos.ts +56 -13
  155. package/src/route.ts +54 -24
  156. package/src/route.web.ts +141 -24
  157. package/src/sheet-detents.ts +5 -3
  158. package/src/sheet-service.macos.ts +5 -1
  159. package/src/sheet-service.ts +1 -1
  160. package/src/sheet-service.web.ts +8 -0
  161. package/src/sheet-snap.test.ts +23 -23
  162. package/src/sheet-snap.ts +6 -1
  163. package/src/svg.mobile.ts +9 -3
  164. package/src/tap-to-blur.ios.ts +106 -0
  165. package/src/tap-to-blur.mobile.ts +21 -95
  166. package/src/text-focus.ts +12 -0
  167. package/src/text-input.mobile.test.ts +89 -0
  168. package/src/text-write.ts +21 -11
  169. package/src/theme/colorScheme.linux.ts +2 -4
  170. package/src/theme/colorScheme.web.ts +51 -4
  171. package/src/theme/theme-scheme.macos.ts +8 -2
  172. package/src/theme/tokens.css +1740 -1718
  173. package/src/translate.macos.ts +4 -1
  174. package/src/useMeasure.tsrx +20 -21
  175. package/src/virtual-list-cell-pool.test.ts +53 -0
  176. package/src/virtual-list-cell-pool.ts +81 -0
  177. package/src/virtual-list-layout.test.ts +11 -8
  178. package/src/virtual-list-layout.ts +4 -8
  179. package/src/windows.linux.ts +7 -2
  180. package/src/windows.macos.ts +1 -0
  181. package/types/generated/.tsrx-typegen-manifest.json +16 -3
  182. package/types/generated/Grid.d.ts +0 -1
  183. package/types/generated/KeyboardAvoiding.d.ts +3 -0
  184. package/types/generated/KeyboardAvoiding.web.d.ts +2 -0
  185. package/types/generated/Markdown.d.ts +59 -0
  186. package/types/generated/TextArea.d.ts +2 -2
  187. package/types/generated/TextArea.web.d.ts +1 -1
  188. package/types/generated/TextInput.d.ts +2 -3
  189. package/types/generated/VirtualList.d.ts +3 -3
  190. package/types/generated/escape-props.d.ts +4 -0
  191. package/types/generated/grid-auto-placement.d.ts +13 -0
  192. package/types/generated/grid-placement.d.ts +5 -0
  193. package/types/generated/index.mobile.d.ts +0 -1
  194. package/types/generated/index.shared.d.ts +6 -3
  195. package/types/generated/index.shared.web.d.ts +114 -0
  196. package/types/generated/index.web.d.ts +1 -1
  197. package/types/generated/modal-focus.web.d.ts +3 -0
  198. package/types/generated/navigation-request.d.ts +10 -0
  199. package/types/generated/overlay-lifetime.mobile.d.ts +10 -0
  200. package/types/generated/props.d.ts +111 -3
  201. package/types/generated/route-table.d.ts +14 -3
  202. package/types/generated/svg.mobile.d.ts +2 -2
  203. package/types/generated/tap-to-blur.ios.d.ts +13 -0
  204. package/types/generated/tap-to-blur.mobile.d.ts +1 -15
  205. package/types/generated/text-focus.d.ts +3 -0
  206. package/types/generated/text-write.d.ts +3 -1
  207. package/types/generated/theme/colorScheme.web.d.ts +5 -0
  208. package/types/generated/virtual-list-cell-pool.d.ts +18 -0
  209. package/types/index.macos.d.ts +15 -3
  210. /package/src/vendor/ui-svg/{index.android.ts → src/index.android.ts} +0 -0
  211. /package/src/vendor/ui-svg/{index.common.ts → src/index.common.ts} +0 -0
  212. /package/src/vendor/ui-svg/{index.ios.ts → src/index.ios.ts} +0 -0
  213. /package/src/vendor/ui-svg/{index.ts → src/index.ts} +0 -0
  214. /package/src/vendor/ui-svg/{typings → src/typings}/SVGKit.d.ts +0 -0
  215. /package/src/vendor/ui-svg/{typings → src/typings}/android.d.ts +0 -0
  216. /package/src/vendor/ui-svg/{typings → src/typings}/ios.d.ts +0 -0
  217. /package/types/generated/vendor/ui-svg/{index.common.d.ts → src/index.common.d.ts} +0 -0
  218. /package/types/generated/vendor/ui-svg/{index.d.ts → src/index.d.ts} +0 -0
  219. /package/types/generated/vendor/ui-svg/{index.ios.d.ts → src/index.ios.d.ts} +0 -0
@@ -1,20 +1,22 @@
1
1
  import { cx } from "./cx.js";
2
2
  import { useThemeScheme } from "./theme/theme-scheme.js";
3
+ import { isolateModalFocus } from "./modal-focus.web.js";
3
4
  import { normalizeDetents } from "./sheet-snap.js";
4
5
  import { attachSheetDetents } from "./sheet-detents.web.js";
5
6
  import { bag4, child, clone, createElement, createPortal, createScopedElement, createScopedValue, drainFrag, hookSlots, ifBlock, positionalChildren, template, useEffect, useRef, withSlot } from "octane";
6
7
  import { compilerMemoRegion, hookMemoCreate, hookMemoEqual, hookMemoPublish1, textHoleUpdate } from "octane/internal/client";
7
8
  //#region src/Sheet.web.tsrx
8
9
  var _t$0 = /* @__PURE__ */ template("<!>", 0, 1);
9
- var _hs$ = /* @__PURE__ */ hookSlots(4);
10
+ var _hs$ = /* @__PURE__ */ hookSlots(6);
10
11
  var _h$0 = /* @__PURE__ */ Symbol(_hs$);
11
12
  function __then$0(__props, __s, __extra) {
12
13
  const __block = __s.block;
13
14
  const dark = __extra[0];
14
15
  const detents = __extra[1];
15
- const maxDetent = __extra[2];
16
- const panel = __extra[3];
17
- const props = __extra[4];
16
+ const layer = __extra[2];
17
+ const maxDetent = __extra[3];
18
+ const panel = __extra[4];
19
+ const props = __extra[5];
18
20
  let _b = __s.slots[0];
19
21
  if (_b === void 0) {
20
22
  let _m0, _m1;
@@ -25,7 +27,10 @@ function __then$0(__props, __s, __extra) {
25
27
  _b = bag4(__s, null, _m0, _m1, null, void 0);
26
28
  }
27
29
  {
28
- const _v = /* @__PURE__ */ createPortal(createScopedValue(() => createScopedElement("div", { className: cx("vx-sheet-layer", dark && "dark") }, () => positionalChildren([(props.shadeCover ?? true) && createScopedValue(() => createElement("div", {
30
+ const _v = /* @__PURE__ */ createPortal(createScopedValue(() => createScopedElement("div", {
31
+ ref: layer,
32
+ className: cx("vx-sheet-layer", dark && "dark")
33
+ }, () => positionalChildren([(props.shadeCover ?? true) && createScopedValue(() => createElement("div", {
29
34
  className: "vx-sheet-backdrop",
30
35
  onClick: props.onDismiss
31
36
  })), createScopedValue(() => createScopedElement("div", {
@@ -33,6 +38,8 @@ function __then$0(__props, __s, __extra) {
33
38
  panel.current = el;
34
39
  },
35
40
  className: cx("vx-sheet", detents.length && "vx-sheet-detents", props.className),
41
+ role: props.shadeCover === false ? void 0 : "dialog",
42
+ "aria-modal": props.shadeCover === false ? void 0 : true,
36
43
  style: {
37
44
  ...props.style,
38
45
  ...detents.length ? {
@@ -54,8 +61,13 @@ var Sheet = function Sheet(props, __s, __extra) {
54
61
  let __hkd0;
55
62
  const dark = withSlot(_h$0, useThemeScheme) === "dark";
56
63
  const panel = useRef(null, _hs$ + 1);
57
- const dismiss = useRef(props.onDismiss, _hs$ + 2);
64
+ const layer = useRef(null, _hs$ + 2);
65
+ const dismiss = useRef(props.onDismiss, _hs$ + 3);
58
66
  dismiss.current = props.onDismiss;
67
+ useEffect(() => {
68
+ if (!props.open || props.shadeCover === false || !layer.current || !panel.current) return;
69
+ return isolateModalFocus(layer.current, panel.current, () => dismiss.current?.());
70
+ }, [props.open, props.shadeCover], _hs$ + 4);
59
71
  const detents = (__hkd0 = props, __hk[0] !== true || !hookMemoEqual(__hk[1], __hkd0) ? hookMemoPublish1(__hk, 0, normalizeDetents(props.detents), __hkd0) : __hk[2]);
60
72
  const maxDetent = detents.length ? detents[detents.length - 1] : 0;
61
73
  const detentsKey = detents.join(",");
@@ -64,13 +76,14 @@ var Sheet = function Sheet(props, __s, __extra) {
64
76
  if (!props.open || !el || !detents.length) return;
65
77
  const ctl = attachSheetDetents(el, detents, () => dismiss.current?.());
66
78
  return () => ctl.detach();
67
- }, [props.open, detentsKey], _hs$ + 3);
79
+ }, [props.open, detentsKey], _hs$ + 5);
68
80
  if (__s.block.pending && !__s.block.crossRenderUpdate) return;
69
81
  {
70
82
  const __ifCondition = props.open;
71
83
  ifBlock(__s, 0, __block.parentNode, __ifCondition, __then$0, null, __block.endMarker, __ifCondition ? [
72
84
  dark,
73
85
  detents,
86
+ layer,
74
87
  maxDetent,
75
88
  panel,
76
89
  props
@@ -1,6 +1,6 @@
1
1
  import { applyEscapeProps } from "./escape-props.web.js";
2
2
  import { normStyle } from "./layout-child.web.js";
3
- import { __s, bag11, clone, delegateEvents, hookSlots, queueRefAttach, queueRefDetach, setAttribute, setEventHandler, setStyle, template, useLayoutEffect, useRef } from "octane";
3
+ import { __s, bag12, clone, delegateEvents, evt2e, evt2u, hookSlots, queueRefAttach, queueRefDetach, setAttribute, setEventHandler, setStyle, template, useLayoutEffect, useRef } from "octane";
4
4
  import { bindSignalAttribute, bindSignalValue, enableSignalBindings, replaceRef, setBooleanAttributeIfChanged, setPlainAttribute, updateFreshClassName } from "octane/internal/client";
5
5
  //#region src/TextArea.web.tsrx
6
6
  enableSignalBindings(1, true);
@@ -10,8 +10,12 @@ delegateEvents([
10
10
  "input",
11
11
  "keydown"
12
12
  ]);
13
- var _t$0 = /* @__PURE__ */ template("<textarea data-octane-input=\"i:bf482a0b\"></textarea>");
13
+ var _t$0 = /* @__PURE__ */ template("<textarea data-octane-input=\"i:d137a29c\"></textarea>");
14
14
  var _hs$ = /* @__PURE__ */ hookSlots(2);
15
+ var __event = (e, fit, props) => {
16
+ fit();
17
+ props.onChange?.(e.target.value);
18
+ };
15
19
  var _rm$0 = [
16
20
  "r",
17
21
  "b",
@@ -19,7 +23,7 @@ var _rm$0 = [
19
23
  ];
20
24
  var TextArea = /* @__PURE__ */ __s(function TextArea(props, __s, __extra) {
21
25
  const el = useRef(null, _hs$ + 0);
22
- useLayoutEffect(() => {
26
+ const fit = () => {
23
27
  const t = el.current;
24
28
  if (!t) return;
25
29
  const cs = getComputedStyle(t);
@@ -35,7 +39,8 @@ var TextArea = /* @__PURE__ */ __s(function TextArea(props, __s, __extra) {
35
39
  t.style.height = Math.min(need, cap) + "px";
36
40
  t.style.overflowY = need > cap ? "auto" : "hidden";
37
41
  }
38
- }, [
42
+ };
43
+ useLayoutEffect(fit, [
39
44
  props.value,
40
45
  props.rows,
41
46
  props.autoGrow,
@@ -45,7 +50,7 @@ var TextArea = /* @__PURE__ */ __s(function TextArea(props, __s, __extra) {
45
50
  ], _hs$ + 1);
46
51
  let _b = __s.slots[0];
47
52
  if (_b === void 0) {
48
- let _m0, _m1, _m5;
53
+ let _m0, _m1, _m5, _m11;
49
54
  const _root = clone(_t$0);
50
55
  queueRefAttach(__s, _m1 = (node) => {
51
56
  el.current = node;
@@ -58,14 +63,14 @@ var TextArea = /* @__PURE__ */ __s(function TextArea(props, __s, __extra) {
58
63
  });
59
64
  }, _m0 = _root);
60
65
  (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.b, _b.a));
61
- _m5 = bindSignalValue(__s, void 0, _root, props.value, "i:bf482a0b");
62
- setEventHandler(_root, "$$input", (e) => props.onChange?.(e.target.value));
66
+ _m5 = bindSignalValue(__s, void 0, _root, props.value, "i:d137a29c");
67
+ _m11 = evt2e(_root, "$$input", __event, fit, props);
63
68
  setEventHandler(_root, "$$keydown", (e) => {
64
- if (e.key === "Enter" && (e.ctrlKey || e.metaKey)) props.onSubmit?.();
69
+ if (e.key === "Enter" && (e.ctrlKey || e.metaKey) && !e.isComposing && e.keyCode !== 229) props.onSubmit?.();
65
70
  });
66
71
  setEventHandler(_root, "$$focusin", props.onFocus);
67
72
  setEventHandler(_root, "$$focusout", props.onBlur);
68
- _b = bag11(__s, _root, _m0, _m1, void 0, void 0, void 0, _m5, void 0, void 0, void 0, void 0, void 0);
73
+ _b = bag12(__s, _root, _m0, _m1, void 0, void 0, void 0, _m5, void 0, void 0, void 0, void 0, void 0, _m11);
69
74
  __s.refFields = _rm$0;
70
75
  } else {
71
76
  {
@@ -81,15 +86,15 @@ var TextArea = /* @__PURE__ */ __s(function TextArea(props, __s, __extra) {
81
86
  };
82
87
  if (_r !== _b.b) _b.b = replaceRef(__s, _b.b, _r, _b.a);
83
88
  }
84
- _b.f = bindSignalValue(__s, _b.f, _b.a, props.value, "i:bf482a0b");
85
- setEventHandler(_b.a, "$$input", (e) => props.onChange?.(e.target.value));
89
+ _b.f = bindSignalValue(__s, _b.f, _b.a, props.value, "i:d137a29c");
90
+ evt2u(_b.l, __event, fit, props);
86
91
  setEventHandler(_b.a, "$$keydown", (e) => {
87
- if (e.key === "Enter" && (e.ctrlKey || e.metaKey)) props.onSubmit?.();
92
+ if (e.key === "Enter" && (e.ctrlKey || e.metaKey) && !e.isComposing && e.keyCode !== 229) props.onSubmit?.();
88
93
  });
89
94
  setEventHandler(_b.a, "$$focusin", props.onFocus);
90
95
  setEventHandler(_b.a, "$$focusout", props.onBlur);
91
96
  }
92
- _b.c = bindSignalAttribute(__s, _b.c, _b.a, "id", props.id, "b:601d47ca", setPlainAttribute);
97
+ _b.c = bindSignalAttribute(__s, _b.c, _b.a, "id", props.id, "b:3b357831", setPlainAttribute);
93
98
  _b.d = updateFreshClassName(["vx-textarea", props.className], _b.d, _b.a);
94
99
  {
95
100
  const _v = {
@@ -101,11 +106,11 @@ var TextArea = /* @__PURE__ */ __s(function TextArea(props, __s, __extra) {
101
106
  _b.e = _v;
102
107
  }
103
108
  }
104
- _b.g = bindSignalAttribute(__s, _b.g, _b.a, "inputMode", props.keyboardType === "number" ? "numeric" : props.keyboardType === "phone" ? "tel" : props.keyboardType === "default" ? "text" : props.keyboardType, "b:ef3d0153", setPlainAttribute);
105
- _b.h = bindSignalAttribute(__s, _b.h, _b.a, "enterKeyHint", props.returnKeyType, "b:c58c3b7f", setPlainAttribute);
109
+ _b.g = bindSignalAttribute(__s, _b.g, _b.a, "inputMode", props.keyboardType === "number" ? "numeric" : props.keyboardType === "phone" ? "tel" : props.keyboardType === "default" ? "text" : props.keyboardType, "b:d8754b83", setPlainAttribute);
110
+ _b.h = bindSignalAttribute(__s, _b.h, _b.a, "enterKeyHint", props.returnKeyType, "b:dd45ab85", setPlainAttribute);
106
111
  _b.i = setBooleanAttributeIfChanged(props.editable === false, _b.i, _b.a, "readonly");
107
- _b.j = bindSignalAttribute(__s, _b.j, _b.a, "placeholder", props.placeholder, "b:49264ef3", setPlainAttribute);
108
- _b.k = bindSignalAttribute(__s, _b.k, _b.a, "rows", props.rows ?? (props.autoGrow ? 1 : 3), "b:5d7a03c8", setAttribute);
112
+ _b.j = bindSignalAttribute(__s, _b.j, _b.a, "placeholder", props.placeholder, "b:b273298e", setPlainAttribute);
113
+ _b.k = bindSignalAttribute(__s, _b.k, _b.a, "rows", props.rows ?? (props.autoGrow ? 1 : 3), "b:f589cea6", setAttribute);
109
114
  });
110
115
  //#endregion
111
116
  export { TextArea };
@@ -36,7 +36,7 @@ var TextInput = /* @__PURE__ */ __s(function TextInput(props, __s, __extra) {
36
36
  _m5 = bindSignalValue(__s, void 0, _root, props.value, "i:cd4865f9");
37
37
  setEventHandler(_root, "$$input", (e) => props.onChange?.(e.target.value));
38
38
  setEventHandler(_root, "$$keydown", (e) => {
39
- if (e.key === "Enter" && !e.shiftKey) props.onSubmit?.();
39
+ if (e.key === "Enter" && !e.shiftKey && !e.isComposing && e.keyCode !== 229) props.onSubmit?.();
40
40
  });
41
41
  setEventHandler(_root, "$$focusin", props.onFocus);
42
42
  setEventHandler(_root, "$$focusout", props.onBlur);
@@ -58,7 +58,7 @@ var TextInput = /* @__PURE__ */ __s(function TextInput(props, __s, __extra) {
58
58
  _b.f = bindSignalValue(__s, _b.f, _b.a, props.value, "i:cd4865f9");
59
59
  setEventHandler(_b.a, "$$input", (e) => props.onChange?.(e.target.value));
60
60
  setEventHandler(_b.a, "$$keydown", (e) => {
61
- if (e.key === "Enter" && !e.shiftKey) props.onSubmit?.();
61
+ if (e.key === "Enter" && !e.shiftKey && !e.isComposing && e.keyCode !== 229) props.onSubmit?.();
62
62
  });
63
63
  setEventHandler(_b.a, "$$focusin", props.onFocus);
64
64
  setEventHandler(_b.a, "$$focusout", props.onBlur);