@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,18 +1,19 @@
1
1
  import { applyEscapeProps } from "./escape-props.web.js";
2
2
  import { layoutChildProps } from "./layout-child.web.js";
3
3
  import { VirtualListSizeIndex, createVirtualListEntries, estimateVirtualListSizes, virtualListMeasurementKey, virtualListRange } from "./virtual-list-layout.js";
4
- import { __s, bag3, bag4, bag6, bagOf, child, clone, createScopedElement, drainFrag, forBlock, hookSlots, ifBlock, queueRefAttach, queueRefDetach, setStyleProperty, sibling, snapshotSpread, template, useEffect, useRef, useState } from "octane";
5
- import { bindSignalChild, bindSignalHostPropSources, compilerMemoRegion, enableSignalBindings, hookMemoCreate, hookMemoEqual, hookMemoPublish3, replaceRef } from "octane/internal/client";
4
+ import { VirtualListCellPool } from "./virtual-list-cell-pool.js";
5
+ import { __s, bag10, bag3, bag4, bag7, bagOf, child, clone, createScopedElement, drainFrag, forBlock, hookSlots, ifBlock, isHydratingStyle, queueRefAttach, queueRefDetach, setStringData, setStyleProperties, setStyleProperty, sibling, snapshotSpread, template, useEffect, useRef, useState } from "octane";
6
+ import { bindSignalAttribute, bindSignalChild, bindSignalHostPropSources, compilerMemoRegion, enableSignalBindings, hookMemoCreate, hookMemoEqual, hookMemoPublish3, replaceRef, setBooleanAttributeIfChanged, setClassNameIfChanged } from "octane/internal/client";
6
7
  //#region src/VirtualList.web.tsrx
7
8
  enableSignalBindings(1, true);
8
9
  var _t$0 = /* @__PURE__ */ template("<div class=\"vx-virtual-list-header\"></div>");
9
10
  var _t$1 = /* @__PURE__ */ template("<!>", 0, 1);
10
- var _t$2 = /* @__PURE__ */ template("<div class=\"vx-virtual-list-separator\"></div>");
11
- var _t$3 = /* @__PURE__ */ template("<div class=\"vx-virtual-list-row\" data-vx-row=\"true\"><div class=\"vx-virtual-list-item\"></div><!></div>");
12
- var _t$4 = /* @__PURE__ */ template("<div class=\"vx-virtual-list-spacer\" aria-hidden=\"true\"></div><!><div class=\"vx-virtual-list-spacer\" aria-hidden=\"true\"></div>", 0, 1);
11
+ var _t$2 = /* @__PURE__ */ template("<div class=\"vx-virtual-list-item\"></div><!>", 0, 1);
12
+ var _t$3 = /* @__PURE__ */ template("<div style=\"position: absolute;\"><!></div>");
13
+ var _t$4 = /* @__PURE__ */ template("<div class=\"vx-virtual-list-body\" style=\"position: relative;\"><!></div>");
13
14
  var _t$5 = /* @__PURE__ */ template("<div class=\"vx-virtual-list-footer\"></div>");
14
15
  var _t$6 = /* @__PURE__ */ template("<div><!><!><!></div>");
15
- var _hs$ = /* @__PURE__ */ hookSlots(19);
16
+ var _hs$ = /* @__PURE__ */ hookSlots(27);
16
17
  var _rm$2 = [
17
18
  "r",
18
19
  "b",
@@ -33,11 +34,11 @@ function __then$0(__props, __s, __extra) {
33
34
  const _r = (node) => bindObservedNode("header", node, { kind: "header" });
34
35
  if (_r !== _b.b) _b.b = replaceRef(__s, _b.b, _r, _b.a);
35
36
  }
36
- _b.e = bindSignalChild(__s, _b.e, 1, _b.a, props.renderHeader(), "b:94822c57", null, void 0, void 0, void 0, true);
37
+ _b.e = bindSignalChild(__s, _b.e, 1, _b.a, props.renderHeader(), "b:a325a140", null, void 0, void 0, void 0, true);
37
38
  }
38
39
  function __then$4(__props, __s, __extra) {
39
40
  const __block = __s.block;
40
- const props = __extra[3];
41
+ const props = __extra[5];
41
42
  let _b = __s.slots[0];
42
43
  if (_b === void 0) {
43
44
  let _m0, _m1;
@@ -47,103 +48,129 @@ function __then$4(__props, __s, __extra) {
47
48
  drainFrag(_root, __block.parentNode, __block.endMarker);
48
49
  _b = bag4(__s, null, _m0, _m1, null, void 0);
49
50
  }
50
- _b.e = bindSignalChild(__s, _b.e, 1, _b.a, props.renderEmpty ? createScopedElement("div", { className: "vx-virtual-list-empty" }, () => props.renderEmpty()) : null, "b:e8241bf2", _b.b, true, void 0, true, void 0);
51
+ _b.e = bindSignalChild(__s, _b.e, 1, _b.a, props.renderEmpty ? createScopedElement("div", { className: "vx-virtual-list-empty" }, () => props.renderEmpty()) : null, "b:690ef645", _b.b, true, void 0, true, void 0);
51
52
  }
52
- var _key$7 = (entry) => entry.rowKey;
53
- function __then$10(__props, __s, __extra) {
54
- const props = __extra[0];
53
+ var _key$7 = (cell) => cell.id;
54
+ var _key$9 = (entry) => entry.rowKey;
55
+ function __item$10(entry, __s, __extra) {
56
+ const __block = __s.block;
57
+ const entries = __extra[0];
58
+ const hasSeparator = __extra[1];
59
+ const props = __extra[2];
55
60
  let _b = __s.slots[0];
56
61
  if (_b === void 0) {
57
- let _m0;
62
+ let _m0, _m3, _m4;
58
63
  const _root = clone(_t$2);
59
- _m0 = _root;
60
- _b = bag3(__s, _root, _m0, null, void 0);
64
+ const _el0 = child(_root);
65
+ _m0 = _el0;
66
+ _m3 = __block.parentNode;
67
+ _m4 = sibling(_el0, 1);
68
+ drainFrag(_root, __block.parentNode, __block.endMarker);
69
+ _b = bag7(__s, null, _m0, null, void 0, _m3, _m4, null, void 0);
61
70
  }
62
- _b.d = bindSignalChild(__s, _b.d, 1, _b.a, props.renderSeparator?.(), "b:d89a1727", null, void 0, void 0, void 0, true);
71
+ _b.h = bindSignalChild(__s, _b.h, 1, _b.a, props.renderItem(entry.item, entry.index), "b:4a2b9e6a", null, void 0, void 0, void 0, true);
72
+ _b.i = bindSignalChild(__s, _b.i, 2, _b.d, hasSeparator && entry.index < entries.length - 1 ? createScopedElement("div", { className: "vx-virtual-list-separator" }, () => props.renderSeparator?.()) : null, "b:ab215d41", _b.e, true, void 0, void 0, void 0);
63
73
  }
64
- var _rm$13 = [
74
+ var _rm$14 = [
65
75
  "r",
66
- "b",
67
- "a"
76
+ "i",
77
+ "b"
68
78
  ];
69
- function __item$8(entry, __s, __extra) {
70
- const bindObservedNode = __extra[0];
79
+ function __item$8(cell, __s, __extra) {
80
+ const cellCallback = __extra[0];
71
81
  const entries = __extra[1];
72
82
  const hasSeparator = __extra[2];
73
83
  const props = __extra[3];
74
84
  let _b = __s.slots[0];
75
85
  if (_b === void 0) {
76
- let _m0, _m1, _m2, _m3;
77
- const _root = clone(_t$3);
78
- queueRefAttach(__s, _m1 = (node) => bindObservedNode("row:" + virtualListMeasurementKey(entry.rowKey, hasSeparator && entry.index < entries.length - 1), node, {
79
- kind: "row",
80
- rowKey: entry.rowKey
81
- }), _m0 = _root);
82
- (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.b, _b.a));
83
- _m2 = sibling(child(_root), 1);
84
- _m3 = child(_root);
85
- _b = bag6(__s, _root, _m0, _m1, _m2, _m3, null, void 0);
86
- __s.refFields = _rm$13;
86
+ let _m1, _m8, _m9;
87
+ const _root = clone(_t$3, void 0, "||");
88
+ _m1 = _root;
89
+ queueRefAttach(__s, _m8 = cellCallback(cell.id), _m1);
90
+ (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.i, _b.b));
91
+ _m9 = child(_root);
92
+ _b = bag10(__s, _root, void 0, _m1, void 0, void 0, __s, void 0, void 0, void 0, _m8, _m9);
93
+ __s.refFields = _rm$14;
87
94
  } else {
88
- const _r = (node) => bindObservedNode("row:" + virtualListMeasurementKey(entry.rowKey, hasSeparator && entry.index < entries.length - 1), node, {
89
- kind: "row",
90
- rowKey: entry.rowKey
91
- });
92
- if (_r !== _b.b) _b.b = replaceRef(__s, _b.b, _r, _b.a);
95
+ const _r = cellCallback(cell.id);
96
+ if (_r !== _b.i) _b.i = replaceRef(__s, _b.i, _r, _b.b);
93
97
  }
94
- _b.g = bindSignalChild(__s, _b.g, 1, _b.d, props.renderItem(entry.item, entry.index), "b:a1d755a0", null, void 0, void 0, void 0, true);
98
+ _b.a = setClassNameIfChanged(cell.entry ? "vx-virtual-list-cell vx-virtual-list-row" : "vx-virtual-list-cell", _b.a, _b.b);
99
+ _b.c = bindSignalAttribute(__s, _b.c, _b.b, "data-vx-row", cell.entry ? "true" : void 0, "b:f58d7551", setStringData);
100
+ _b.d = setBooleanAttributeIfChanged(!cell.entry, _b.d, _b.b, "hidden");
95
101
  {
96
- const __ifCondition = hasSeparator && entry.index < entries.length - 1;
97
- ifBlock(__s, 2, _b.a, __ifCondition, __then$10, null, _b.c, __ifCondition ? [props] : void 0);
102
+ const _v0 = cell.top;
103
+ const _v1 = 0;
104
+ const _v2 = "100%";
105
+ if (_b.e === __s || isHydratingStyle()) {
106
+ setStyleProperties(_b.b, [
107
+ "top",
108
+ _v0,
109
+ "left",
110
+ _v1,
111
+ "width",
112
+ _v2
113
+ ], "position: absolute;");
114
+ _b.e = null;
115
+ _b.f = _v0;
116
+ _b.g = _v1;
117
+ _b.h = _v2;
118
+ } else {
119
+ if (_b.f !== _v0) {
120
+ setStyleProperty(_b.b, "top", _v0, "", _b.f);
121
+ _b.f = _v0;
122
+ }
123
+ if (_b.g !== _v1) {
124
+ setStyleProperty(_b.b, "left", _v1, "", _b.g);
125
+ _b.g = _v1;
126
+ }
127
+ if (_b.h !== _v2) {
128
+ setStyleProperty(_b.b, "width", _v2, "", _b.h);
129
+ _b.h = _v2;
130
+ }
131
+ }
98
132
  }
133
+ forBlock(__s, 1, _b.b, cell.rows, _key$9, __item$10, 40, [
134
+ entries,
135
+ hasSeparator,
136
+ props
137
+ ], null, _b.j, true, "f17zmjlo");
99
138
  }
100
139
  function __else$6(__props, __s, __extra) {
101
- const __block = __s.block;
102
- const bindObservedNode = __extra[0];
103
- const entries = __extra[1];
104
- const hasSeparator = __extra[2];
105
- const props = __extra[3];
106
- const range = __extra[4];
107
- const visibleEntries = __extra[5];
140
+ const cellCallback = __extra[0];
141
+ const cells = __extra[1];
142
+ const contentHeight = __extra[2];
143
+ const entries = __extra[3];
144
+ const hasSeparator = __extra[4];
145
+ const props = __extra[5];
108
146
  let _b = __s.slots[0];
109
147
  if (_b === void 0) {
110
- let _m1, _m3, _m4, _m5;
111
- const _root = clone(_t$4);
112
- const _el0 = child(_root);
113
- _m1 = _el0;
114
- _m3 = sibling(_el0, 2);
115
- _m4 = __block.parentNode;
116
- _m5 = sibling(_el0, 1);
117
- drainFrag(_root, __block.parentNode, __block.endMarker);
118
- _b = bag6(__s, null, __s, _m1, __s, _m3, _m4, _m5);
148
+ let _m1, _m2;
149
+ const _root = clone(_t$4, void 0, "||");
150
+ _m1 = _root;
151
+ _m2 = child(_root);
152
+ _b = bag3(__s, _root, __s, _m1, _m2);
119
153
  }
120
154
  {
121
- const _v = range.top;
155
+ const _v = contentHeight;
122
156
  if (_b.a !== _v) {
123
- setStyleProperty(_b.b, "height", _v, "", _b.a);
157
+ setStyleProperty(_b.b, "height", _v, "position: relative;", _b.a);
124
158
  _b.a = _v;
125
159
  }
126
160
  }
127
- {
128
- const _v = range.bottom;
129
- if (_b.c !== _v) {
130
- setStyleProperty(_b.d, "height", _v, "", _b.c);
131
- _b.c = _v;
132
- }
133
- }
134
- forBlock(__s, 1, _b.e, visibleEntries, _key$7, __item$8, 58, [
135
- bindObservedNode,
161
+ forBlock(__s, 1, _b.b, cells, _key$7, __item$8, 58, [
162
+ cellCallback,
136
163
  entries,
137
164
  hasSeparator,
138
165
  props
139
- ], null, _b.f, true, "f3hnb6e");
166
+ ], null, _b.c, true, "f17zlx0q");
140
167
  }
141
- var _rm$18 = [
168
+ var _rm$19 = [
142
169
  "r",
143
170
  "b",
144
171
  "a"
145
172
  ];
146
- function __then$16(__props, __s, __extra) {
173
+ function __then$17(__props, __s, __extra) {
147
174
  const bindObservedNode = __extra[0];
148
175
  const props = __extra[1];
149
176
  let _b = __s.slots[0];
@@ -153,14 +180,14 @@ function __then$16(__props, __s, __extra) {
153
180
  queueRefAttach(__s, _m1 = (node) => bindObservedNode("footer", node, { kind: "footer" }), _m0 = _root);
154
181
  (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.b, _b.a));
155
182
  _b = bag4(__s, _root, _m0, _m1, null, void 0);
156
- __s.refFields = _rm$18;
183
+ __s.refFields = _rm$19;
157
184
  } else {
158
185
  const _r = (node) => bindObservedNode("footer", node, { kind: "footer" });
159
186
  if (_r !== _b.b) _b.b = replaceRef(__s, _b.b, _r, _b.a);
160
187
  }
161
- _b.e = bindSignalChild(__s, _b.e, 1, _b.a, props.renderFooter(), "b:d63031d4", null, void 0, void 0, void 0, true);
188
+ _b.e = bindSignalChild(__s, _b.e, 1, _b.a, props.renderFooter(), "b:c2fff523", null, void 0, void 0, void 0, true);
162
189
  }
163
- var _rm$20 = [
190
+ var _rm$21 = [
164
191
  "s",
165
192
  "p",
166
193
  "o"
@@ -176,28 +203,34 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
176
203
  const entries = (__hkd0 = props.items, __hkd1 = props.keyExtractor, __hkd2 = props.getItemType, __hk[0] !== true || !hookMemoEqual(__hk[1], __hkd0) || !hookMemoEqual(__hk[2], __hkd1) || !hookMemoEqual(__hk[3], __hkd2) ? hookMemoPublish3(__hk, 0, createVirtualListEntries(props.items, props.keyExtractor, props.getItemType), __hkd0, __hkd1, __hkd2) : __hk[4]);
177
204
  const [windowVersion, setWindowVersion] = useState(0, _hs$ + 0);
178
205
  const sizeIndexRef = useRef(new VirtualListSizeIndex(), _hs$ + 1);
179
- const sizeCacheRef = useRef(/* @__PURE__ */ new Map(), _hs$ + 2);
180
- const entriesRef = useRef([], _hs$ + 3);
181
- const indexByRowKeyRef = useRef(/* @__PURE__ */ new Map(), _hs$ + 4);
182
- const scrollRef = useRef(null, _hs$ + 5);
183
- const scrollOffsetRef = useRef(0, _hs$ + 6);
184
- const viewportHeightRef = useRef(0, _hs$ + 7);
185
- const viewportWidthRef = useRef(0, _hs$ + 8);
186
- const headerHeightRef = useRef(0, _hs$ + 9);
187
- const footerHeightRef = useRef(0, _hs$ + 10);
188
- const observerRef = useRef(null, _hs$ + 11);
189
- const estimateScheduledRef = useRef(false, _hs$ + 12);
190
- const nodesBySlotRef = useRef(/* @__PURE__ */ new Map(), _hs$ + 13);
191
- const metaByNodeRef = useRef(/* @__PURE__ */ new WeakMap(), _hs$ + 14);
206
+ const cellsRef = useRef(new VirtualListCellPool(), _hs$ + 2);
207
+ const cellCallbacksRef = useRef(/* @__PURE__ */ new Map(), _hs$ + 3);
208
+ const measuredAssignmentsRef = useRef(/* @__PURE__ */ new Map(), _hs$ + 4);
209
+ const disposedRef = useRef(false, _hs$ + 5);
210
+ const sizeCacheRef = useRef(/* @__PURE__ */ new Map(), _hs$ + 6);
211
+ const entriesRef = useRef([], _hs$ + 7);
212
+ const indexByRowKeyRef = useRef(/* @__PURE__ */ new Map(), _hs$ + 8);
213
+ const scrollRef = useRef(null, _hs$ + 9);
214
+ const scrollOffsetRef = useRef(0, _hs$ + 10);
215
+ const viewportHeightRef = useRef(0, _hs$ + 11);
216
+ const viewportWidthRef = useRef(0, _hs$ + 12);
217
+ const headerHeightRef = useRef(0, _hs$ + 13);
218
+ const footerHeightRef = useRef(0, _hs$ + 14);
219
+ const observerRef = useRef(null, _hs$ + 15);
220
+ const estimateScheduledRef = useRef(false, _hs$ + 16);
221
+ const resizeDeliveryRef = useRef(false, _hs$ + 17);
222
+ const refreshAfterResizeRef = useRef(false, _hs$ + 18);
223
+ const nodesBySlotRef = useRef(/* @__PURE__ */ new Map(), _hs$ + 19);
224
+ const metaByNodeRef = useRef(/* @__PURE__ */ new WeakMap(), _hs$ + 20);
192
225
  const rangeRef = useRef({
193
226
  start: -1,
194
227
  end: -1,
195
228
  top: -1,
196
229
  bottom: -1
197
- }, _hs$ + 15);
198
- const handlersRef = useRef(() => {}, _hs$ + 16);
230
+ }, _hs$ + 21);
231
+ const handlersRef = useRef(() => {}, _hs$ + 22);
199
232
  const hasSeparator = Boolean(props.renderSeparator);
200
- const hasSeparatorRef = useRef(hasSeparator, _hs$ + 17);
233
+ const hasSeparatorRef = useRef(hasSeparator, _hs$ + 23);
201
234
  hasSeparatorRef.current = hasSeparator;
202
235
  function rebuildLayout(nextEntries, width) {
203
236
  entriesRef.current = nextEntries;
@@ -212,12 +245,21 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
212
245
  indexByRowKeyRef.current = indexByKey;
213
246
  sizeIndexRef.current.reset(estimateVirtualListSizes(nextEntries, hasSeparatorRef.current, width, sizeCacheRef.current));
214
247
  }
215
- if (entries !== entriesRef.current) rebuildLayout(entries, viewportWidthRef.current);
248
+ if (entries !== entriesRef.current) {
249
+ const anchor = captureAnchor();
250
+ rebuildLayout(entries, viewportWidthRef.current);
251
+ restoreAnchor(anchor);
252
+ }
216
253
  function currentRange() {
217
254
  const listOffset = Math.max(0, scrollOffsetRef.current - headerHeightRef.current);
218
255
  return virtualListRange(sizeIndexRef.current, listOffset, viewportHeightRef.current, viewportHeightRef.current);
219
256
  }
220
257
  function refreshWindow() {
258
+ if (disposedRef.current) return;
259
+ if (resizeDeliveryRef.current) {
260
+ refreshAfterResizeRef.current = true;
261
+ return;
262
+ }
221
263
  const next = currentRange();
222
264
  const previous = rangeRef.current;
223
265
  if (next.start !== previous.start || next.end !== previous.end || !sameSize(next.top, previous.top) || !sameSize(next.bottom, previous.bottom)) {
@@ -226,7 +268,7 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
226
268
  }
227
269
  }
228
270
  function captureAnchor() {
229
- const listOffset = scrollOffsetRef.current - headerHeightRef.current;
271
+ const listOffset = (scrollRef.current?.scrollTop ?? scrollOffsetRef.current) - headerHeightRef.current;
230
272
  if (listOffset < 0 || entriesRef.current.length === 0) return null;
231
273
  const index = sizeIndexRef.current.indexAt(listOffset);
232
274
  const entry = entriesRef.current[index];
@@ -251,6 +293,7 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
251
293
  estimateScheduledRef.current = true;
252
294
  Promise.resolve().then(() => {
253
295
  estimateScheduledRef.current = false;
296
+ if (disposedRef.current) return;
254
297
  const anchor = captureAnchor();
255
298
  rebuildLayout(entriesRef.current, viewportWidthRef.current);
256
299
  restoreAnchor(anchor);
@@ -258,7 +301,7 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
258
301
  });
259
302
  }
260
303
  function recordRowSize(rowKey, width, height) {
261
- if (!Number.isFinite(height) || height < 0) return;
304
+ if (disposedRef.current || !Number.isFinite(height) || height < 0) return;
262
305
  const index = indexByRowKeyRef.current.get(rowKey);
263
306
  if (index === void 0) return;
264
307
  if (!entriesRef.current[index]) return;
@@ -295,6 +338,23 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
295
338
  metaByNodeRef.current.set(node, meta);
296
339
  observerRef.current?.observe(node);
297
340
  }
341
+ function cellCallback(id) {
342
+ let callback = cellCallbacksRef.current.get(id);
343
+ if (!callback) {
344
+ callback = (node) => {
345
+ const cell = cellsRef.current.get(id);
346
+ bindObservedNode("cell:" + id, node, {
347
+ kind: "row",
348
+ rowKey: cell?.entry?.rowKey ?? "",
349
+ cellId: id,
350
+ generation: cell?.generation ?? 0
351
+ });
352
+ if (!node) cellCallbacksRef.current.delete(id);
353
+ };
354
+ cellCallbacksRef.current.set(id, callback);
355
+ }
356
+ return callback;
357
+ }
298
358
  handlersRef.current = (meta, entry) => {
299
359
  if (meta.kind === "viewport") {
300
360
  const width = scrollRef.current?.clientWidth ?? entry.contentRect.width;
@@ -312,7 +372,9 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
312
372
  }
313
373
  const height = entry.contentRect.height;
314
374
  if (meta.kind === "row") {
315
- recordRowSize(meta.rowKey, entry.contentRect.width, height);
375
+ if (!cellsRef.current.isCurrent(meta.cellId, meta.rowKey, meta.generation)) return;
376
+ const bounds = entry.target.getBoundingClientRect();
377
+ recordRowSize(meta.rowKey, bounds.width, bounds.height);
316
378
  return;
317
379
  }
318
380
  if (meta.kind === "header" && !sameSize(height, headerHeightRef.current)) {
@@ -325,21 +387,46 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
325
387
  refreshWindow();
326
388
  }
327
389
  };
390
+ useEffect(() => {
391
+ disposedRef.current = false;
392
+ return () => {
393
+ disposedRef.current = true;
394
+ cellsRef.current.clear();
395
+ cellCallbacksRef.current.clear();
396
+ measuredAssignmentsRef.current.clear();
397
+ nodesBySlotRef.current.clear();
398
+ metaByNodeRef.current = /* @__PURE__ */ new WeakMap();
399
+ };
400
+ }, [], _hs$ + 24);
328
401
  useEffect(() => {
329
402
  if (typeof ResizeObserver === "undefined") return;
403
+ let frame = null;
330
404
  const observer = new ResizeObserver((records) => {
331
- for (const record of records) {
332
- const meta = metaByNodeRef.current.get(record.target);
333
- if (meta) handlersRef.current(meta, record);
405
+ resizeDeliveryRef.current = true;
406
+ try {
407
+ for (const record of records) {
408
+ const meta = metaByNodeRef.current.get(record.target);
409
+ if (meta) handlersRef.current(meta, record);
410
+ }
411
+ } finally {
412
+ resizeDeliveryRef.current = false;
334
413
  }
414
+ if (!refreshAfterResizeRef.current || frame !== null) return;
415
+ refreshAfterResizeRef.current = false;
416
+ frame = requestAnimationFrame(() => {
417
+ frame = null;
418
+ refreshWindow();
419
+ });
335
420
  });
336
421
  observerRef.current = observer;
337
422
  for (const node of nodesBySlotRef.current.values()) observer.observe(node);
338
423
  return () => {
339
424
  observer.disconnect();
425
+ if (frame !== null) cancelAnimationFrame(frame);
426
+ refreshAfterResizeRef.current = false;
340
427
  observerRef.current = null;
341
428
  };
342
- }, [], _hs$ + 18);
429
+ }, [], _hs$ + 25);
343
430
  function onScroll(event) {
344
431
  const root = event.currentTarget;
345
432
  scrollOffsetRef.current = root.scrollTop;
@@ -347,7 +434,31 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
347
434
  }
348
435
  const range = currentRange();
349
436
  rangeRef.current = range;
350
- const visibleEntries = entries.slice(range.start, range.end);
437
+ const cells = cellsRef.current.update(entries.slice(range.start, range.end)).map((cell) => ({
438
+ ...cell,
439
+ top: cell.entry ? sizeIndexRef.current.prefix(cell.entry.index) : 0
440
+ }));
441
+ const contentHeight = sizeIndexRef.current.total;
442
+ for (const cell of cells) {
443
+ const node = nodesBySlotRef.current.get("cell:" + cell.id);
444
+ if (node) metaByNodeRef.current.set(node, {
445
+ kind: "row",
446
+ rowKey: cell.entry?.rowKey ?? "",
447
+ cellId: cell.id,
448
+ generation: cell.generation
449
+ });
450
+ }
451
+ useEffect(() => {
452
+ for (const cell of cells) {
453
+ if (!cell.entry || measuredAssignmentsRef.current.get(cell.id) === cell.generation) continue;
454
+ const node = nodesBySlotRef.current.get("cell:" + cell.id);
455
+ if (!node || !cellsRef.current.isCurrent(cell.id, cell.entry.rowKey, cell.generation)) continue;
456
+ const bounds = node.getBoundingClientRect();
457
+ measuredAssignmentsRef.current.set(cell.id, cell.generation);
458
+ recordRowSize(cell.entry.rowKey, bounds.width, bounds.height);
459
+ }
460
+ for (const id of measuredAssignmentsRef.current.keys()) if (!nodesBySlotRef.current.has("cell:" + id)) measuredAssignmentsRef.current.delete(id);
461
+ }, [cells], _hs$ + 26);
351
462
  const style = {
352
463
  ...props.style,
353
464
  minHeight: props.style?.minHeight ?? 0,
@@ -446,7 +557,7 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
446
557
  "onScroll",
447
558
  _m13
448
559
  ]
449
- ], "b:5767fa6f", true);
560
+ ], "b:9fa3c3d5", true);
450
561
  const _el0 = child(_root);
451
562
  _m16 = _el0;
452
563
  const _el1 = sibling(_el0, 1);
@@ -473,7 +584,7 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
473
584
  r: _m17,
474
585
  s: _m18
475
586
  });
476
- __s.refFields = _rm$20;
587
+ __s.refFields = _rm$21;
477
588
  } else {
478
589
  {
479
590
  const _v = (node) => {
@@ -599,23 +710,23 @@ var VirtualList = /* @__PURE__ */ __s(function VirtualList(props, __s, __extra)
599
710
  "onScroll",
600
711
  _b.n
601
712
  ]
602
- ], "b:5767fa6f", true);
713
+ ], "b:9fa3c3d5", true);
603
714
  }
604
715
  {
605
- const __ifCondition$ = props.renderHeader;
606
- ifBlock(__s, 1, _b.o, __ifCondition$, __then$0, null, _b.q, __ifCondition$ ? [bindObservedNode, props] : void 0);
716
+ const __ifCondition = props.renderHeader;
717
+ ifBlock(__s, 1, _b.o, __ifCondition, __then$0, null, _b.q, __ifCondition ? [bindObservedNode, props] : void 0);
607
718
  }
608
719
  ifBlock(__s, 2, _b.o, entries.length === 0, __then$4, __else$6, _b.r, [
609
- bindObservedNode,
720
+ cellCallback,
721
+ cells,
722
+ contentHeight,
610
723
  entries,
611
724
  hasSeparator,
612
- props,
613
- range,
614
- visibleEntries
725
+ props
615
726
  ]);
616
727
  {
617
- const __ifCondition$2 = props.renderFooter;
618
- ifBlock(__s, 3, _b.o, __ifCondition$2, __then$16, null, _b.s, __ifCondition$2 ? [bindObservedNode, props] : void 0);
728
+ const __ifCondition$ = props.renderFooter;
729
+ ifBlock(__s, 3, _b.o, __ifCondition$, __then$17, null, _b.s, __ifCondition$ ? [bindObservedNode, props] : void 0);
619
730
  }
620
731
  });
621
732
  //#endregion
@@ -150,7 +150,7 @@ var WebView = /* @__PURE__ */ __s(function WebView(props, __s, __extra) {
150
150
  "onError",
151
151
  _m11
152
152
  ]
153
- ], "b:5cdc9608", false);
153
+ ], "b:471137a7", false);
154
154
  _b = bag16(__s, _root, _m0, _m1, _m2, _m3, _m4, _m5, _m6, _m7, _m8, _m9, _m10, _m11, _m12, _m13, null, void 0);
155
155
  __s.refFields = _rm$1;
156
156
  } else {
@@ -264,9 +264,9 @@ var WebView = /* @__PURE__ */ __s(function WebView(props, __s, __extra) {
264
264
  "onError",
265
265
  _b.l
266
266
  ]
267
- ], "b:5cdc9608", false);
267
+ ], "b:471137a7", false);
268
268
  }
269
- _b.q = bindSignalChild(__s, _b.q, 1, _b.m, Object.prototype.propertyIsEnumerable.call(_b.n.resolved, "children") ? _b.n.resolved.children : void 0, "b:5cdc9608", null, void 0, void 0, void 0, true);
269
+ _b.q = bindSignalChild(__s, _b.q, 1, _b.m, Object.prototype.propertyIsEnumerable.call(_b.n.resolved, "children") ? _b.n.resolved.children : void 0, "b:471137a7", null, void 0, void 0, void 0, true);
270
270
  });
271
271
  //#endregion
272
272
  export { WebView };
@@ -6,9 +6,12 @@ import { Absolute } from "./Absolute.web.tsrx.js";
6
6
  import { setTranslate } from "./translate.web.js";
7
7
  import { Spacer } from "./Spacer.web.tsrx.js";
8
8
  import { Text } from "./Text.web.tsrx.js";
9
+ import { Screen } from "./Screen.web.tsrx.js";
10
+ import { ActivityIndicator } from "./ActivityIndicator.web.tsrx.js";
11
+ import { ScrollView } from "./ScrollView.web.tsrx.js";
12
+ import { Markdown, MarkdownScreen } from "./Markdown.tsrx.js";
9
13
  import { RichText, RichTextSpan } from "./RichText.web.tsrx.js";
10
14
  import { Pressable } from "./Pressable.web.tsrx.js";
11
- import { ActivityIndicator } from "./ActivityIndicator.web.tsrx.js";
12
15
  import { Button } from "./Button.web.tsrx.js";
13
16
  import { Collapsible } from "./Collapsible.web.tsrx.js";
14
17
  import { Accordion } from "./Accordion.web.tsrx.js";
@@ -56,13 +59,12 @@ import { User } from "./User.web.tsrx.js";
56
59
  import { Meter } from "./Meter.web.tsrx.js";
57
60
  import { ProgressGroup } from "./ProgressGroup.web.tsrx.js";
58
61
  import { Link } from "./Link.web.tsrx.js";
59
- import { defineRoutes, deriveRouteManifest, mergeRouteManifests } from "./route-table.js";
62
+ import { defineRoutes, deriveRouteManifest, manifestToJson, mergeRouteManifests } from "./route-table.js";
60
63
  import { addBackInterceptor, addRoutes, canGoBack, currentModalRoute, currentRoute, hrefFor, layoutsFor, popRoute, pushDeepLink, pushRoute, redirect, registerRoutes, registerScreens, routeFor, routeStacks, screenFor, useCanGoBack, useModalRoute, useRoute } from "./route.web.js";
61
64
  import { NavLink } from "./NavLink.web.tsrx.js";
62
65
  import { TextArea } from "./TextArea.web.tsrx.js";
63
66
  import { SearchInput } from "./SearchInput.web.tsrx.js";
64
67
  import { SegmentedControl } from "./SegmentedControl.web.tsrx.js";
65
- import { ScrollView } from "./ScrollView.web.tsrx.js";
66
68
  import { ScrollBox } from "./ScrollBox.web.tsrx.js";
67
69
  import { VirtualList } from "./VirtualList.web.tsrx.js";
68
70
  import { Image } from "./Image.web.tsrx.js";
@@ -73,11 +75,11 @@ import { showToast } from "./toast-anchor.web.tsrx.js";
73
75
  import { useAnimation } from "./anim.web.tsrx.js";
74
76
  import { styled } from "./styled.web.tsrx.js";
75
77
  import { openWindow } from "./windows.web.js";
76
- import { Screen } from "./Screen.web.tsrx.js";
77
78
  import { Tabs } from "./Tabs.web.tsrx.js";
78
79
  import { Switch } from "./Switch.web.tsrx.js";
79
80
  import { useSafeAreaInsets } from "./safeAreaInsets.web.tsrx.js";
80
81
  import { SafeArea } from "./SafeArea.web.tsrx.js";
82
+ import { KeyboardAvoiding } from "./KeyboardAvoiding.web.tsrx.js";
81
83
  import { Drawer } from "./Drawer.web.tsrx.js";
82
84
  import { useMeasure } from "./useMeasure.web.tsrx.js";
83
85
  import { Slider } from "./Slider.web.tsrx.js";
@@ -89,4 +91,4 @@ import { createStore } from "./store.js";
89
91
  import { useStore } from "./use-store.web.tsrx.js";
90
92
  import { Sheet } from "./Sheet.web.tsrx.js";
91
93
  import { closeSheet, openSheet } from "./sheet-service.web.js";
92
- export { Absolute, Accordion, ActivityIndicator, Alert, Avatar, AvatarGroup, Badge, Banner, Breadcrumb, Button, Card, Checkbox, CheckboxGroup, Chip, Collapsible, View as Column, Combobox, CommandPalette, ContextMenu, Drawer, DropdownMenu, Empty, FieldGroup, FormField, Grid, Heading, Hoverable, Icon, Image, InputMenu, InputNumber, InputRating, InputTags, Kbd, Link, ListItem, Meter, NavLink, NavigationMenu, Overlay, Pagination, PinInput, Popover, Pressable, ProgressGroup, RadioGroup, RichText, RichTextSpan, Row, SafeArea, Screen, ScrollBox, ScrollView, SearchInput, SegmentedControl, Select, SelectMenu, Separator, Sheet, Skeleton, Slider, Spacer, Stack, Stepper, Switch, Table, Tabs, Text, TextArea, TextInput, Timeline, Tooltip, Tree, User, View, VirtualList, WebView, addBackInterceptor, addRoutes, applyThemeClasses, canGoBack, closeSheet, createStore, currentModalRoute, currentRoute, defineRoutes, deriveRouteManifest, getColorScheme, getStack, getThemePreference, getThemeScheme, hrefFor, isNative, layoutsFor as layoutsForRoute, mergeRouteManifests, onThemeSchemeChange, openSheet, openWindow, popRoute, pushDeepLink, pushRoute, redirect, registerIcon, registerIcons, registerRoutes, registerScreens, registerStack, routeFor, routeStacks, screenFor, setThemePreference, setTranslate, showToast, stackEntries, styled, themeSchemeClasses, useAnimation, useBackInterceptor, useCanGoBack, useColorScheme, useMeasure, useModalRoute, useRoute, useSafeAreaInsets, useStore, useThemeScheme };
94
+ export { Absolute, Accordion, ActivityIndicator, Alert, Avatar, AvatarGroup, Badge, Banner, Breadcrumb, Button, Card, Checkbox, CheckboxGroup, Chip, Collapsible, View as Column, Combobox, CommandPalette, ContextMenu, Drawer, DropdownMenu, Empty, FieldGroup, FormField, Grid, Heading, Hoverable, Icon, Image, InputMenu, InputNumber, InputRating, InputTags, Kbd, KeyboardAvoiding, Link, ListItem, Markdown, MarkdownScreen, Meter, NavLink, NavigationMenu, Overlay, Pagination, PinInput, Popover, Pressable, ProgressGroup, RadioGroup, RichText, RichTextSpan, Row, SafeArea, Screen, ScrollBox, ScrollView, SearchInput, SegmentedControl, Select, SelectMenu, Separator, Sheet, Skeleton, Slider, Spacer, Stack, Stepper, Switch, Table, Tabs, Text, TextArea, TextInput, Timeline, Tooltip, Tree, User, View, VirtualList, WebView, addBackInterceptor, addRoutes, applyThemeClasses, canGoBack, closeSheet, createStore, currentModalRoute, currentRoute, defineRoutes, deriveRouteManifest, getColorScheme, getStack, getThemePreference, getThemeScheme, hrefFor, isNative, layoutsFor as layoutsForRoute, manifestToJson, mergeRouteManifests, onThemeSchemeChange, openSheet, openWindow, popRoute, pushDeepLink, pushRoute, redirect, registerIcon, registerIcons, registerRoutes, registerScreens, registerStack, routeFor, routeStacks, screenFor, setThemePreference, setTranslate, showToast, stackEntries, styled, themeSchemeClasses, useAnimation, useBackInterceptor, useCanGoBack, useColorScheme, useMeasure, useModalRoute, useRoute, useSafeAreaInsets, useStore, useThemeScheme };