@octane-xplat/ui 0.4.0 → 0.5.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 (67) hide show
  1. package/dist/native/octane-client-build.json +1 -1
  2. package/dist/native/ui.js +26 -23
  3. package/dist/native/ui14.js +16 -1
  4. package/dist/native/ui16.js +2 -2
  5. package/dist/native/ui24.js +2 -1
  6. package/dist/native/ui3.js +22 -1
  7. package/dist/native/ui39.js +89 -91
  8. package/dist/native/ui40.js +180 -53
  9. package/dist/native/ui41.js +55 -16
  10. package/dist/native/ui42.js +15 -6
  11. package/dist/native/ui43.js +18 -37
  12. package/dist/native/ui44.js +6 -265
  13. package/dist/native/ui45.js +24 -14
  14. package/dist/native/ui46.js +261 -29
  15. package/dist/native/ui47.js +17 -30
  16. package/dist/native/ui48.js +28 -65
  17. package/dist/native/ui49.js +21 -46
  18. package/dist/native/ui50.js +58 -13
  19. package/dist/native/ui51.js +65 -12
  20. package/dist/native/ui52.js +58 -86
  21. package/dist/native/ui53.js +8 -15
  22. package/dist/native/ui54.js +11 -15
  23. package/dist/native/ui55.js +82 -146
  24. package/dist/native/ui56.js +18 -17
  25. package/dist/native/ui57.js +18 -13
  26. package/dist/native/ui58.js +155 -21
  27. package/dist/native/ui59.js +32 -7
  28. package/dist/native/ui6.js +54 -12
  29. package/dist/native/ui60.js +8 -102
  30. package/dist/native/ui61.js +20 -74
  31. package/dist/native/ui62.js +8 -0
  32. package/dist/native/ui63.js +108 -0
  33. package/dist/native/ui64.js +76 -0
  34. package/dist/web/octane-client-build.json +1 -1
  35. package/dist/web/ui.js +26 -24
  36. package/dist/web/ui13.js +106 -41
  37. package/dist/web/ui34.js +147 -67
  38. package/dist/web/ui35.js +136 -51
  39. package/dist/web/ui36.js +86 -18
  40. package/dist/web/ui37.js +20 -5
  41. package/dist/web/ui38.js +6 -37
  42. package/dist/web/ui39.js +26 -142
  43. package/dist/web/ui40.js +143 -32
  44. package/dist/web/ui41.js +42 -41
  45. package/dist/web/ui42.js +40 -74
  46. package/dist/web/ui43.js +47 -13
  47. package/dist/web/ui44.js +13 -33
  48. package/dist/web/ui45.js +60 -7
  49. package/dist/web/ui46.js +47 -42
  50. package/dist/web/ui47.js +7 -11
  51. package/dist/web/ui48.js +30 -48
  52. package/dist/web/ui49.js +12 -46
  53. package/dist/web/ui50.js +62 -16
  54. package/dist/web/ui51.js +33 -135
  55. package/dist/web/ui52.js +18 -41
  56. package/dist/web/ui53.js +266 -10
  57. package/dist/web/ui54.js +41 -8
  58. package/dist/web/ui55.js +16 -21
  59. package/dist/web/ui56.js +7 -6
  60. package/dist/web/ui57.js +20 -42
  61. package/dist/web/ui58.js +6 -44
  62. package/dist/web/ui59.js +44 -0
  63. package/dist/web/ui60.js +46 -0
  64. package/package.json +5 -1
  65. package/src/theme/tokens.css +255 -30
  66. package/types/index.d.ts +10 -0
  67. package/types/props.d.ts +59 -4
package/dist/web/ui40.js CHANGED
@@ -1,43 +1,154 @@
1
- import { applyEscapeProps } from "./ui2.js";
2
- import { __s, bag6, clone, delegateEvents, queueRefAttach, queueRefDetach, setEventHandler, setStyle, template } from "octane";
3
- import { bindSignalAttribute, bindSignalChecked, enableSignalBindings, replaceRef, setPlainAttribute, updateFreshClassName } from "octane/internal/client";
4
- //#region src/Switch.web.tsrx
1
+ import { canGoBack, layoutsFor, popRoute, screenFor, useModalRoute, useRoute } from "./ui18.js";
2
+ import { __s, bag3, bag4, bag9, child, clone, createScopedElement, createScopedValue, delegateEvents, evt0, evt0u, forBlock, hookSlots, ifBlock, setEventHandler, setStyle, sibling, template, useState, withSlot } from "octane";
3
+ import { bindSignalAttribute, bindSignalChild, childTextHoleUpdate, compilerMemoRegion, createElementFromConfig, enableSignalBindings, hookMemoCreate, hookMemoPublishInvariant, setPlainAttribute, updateFreshClassName } from "octane/internal/client";
4
+ //#region src/Tabs.web.tsrx
5
5
  enableSignalBindings(1, true);
6
- delegateEvents(["change"]);
7
- var _t$0 = /* @__PURE__ */ template("<input type=\"checkbox\" data-octane-input=\"i:0400e5c1\"/>");
8
- var _rm$0 = [
9
- "r",
10
- "b",
11
- "a"
12
- ];
13
- var Switch = /* @__PURE__ */ __s(function Switch(props, __s, __extra) {
6
+ delegateEvents(["click"]);
7
+ var _t$0 = /* @__PURE__ */ template("<div class=\"vx-route\"></div>");
8
+ var _t$1 = /* @__PURE__ */ template("<button></button>");
9
+ var _t$2 = /* @__PURE__ */ template("<div><div class=\"vx-tabbar\"><!></div><div class=\"vx-tabpane\"></div></div>");
10
+ var _t$3 = /* @__PURE__ */ template("<div class=\"vx-modalroute\"><button class=\"vx-modalroute-shade\" aria-label=\"Dismiss\"></button><div class=\"vx-modalroute-body\"></div></div>");
11
+ var _t$4 = /* @__PURE__ */ template("<div class=\"vx-tabsroot\" style=\"display: contents;\"><!><!></div>");
12
+ var _hs$ = /* @__PURE__ */ hookSlots(5);
13
+ var _h$1 = /* @__PURE__ */ Symbol(_hs$ + 1);
14
+ var _h$2 = /* @__PURE__ */ Symbol(_hs$ + 2);
15
+ var _h$3 = /* @__PURE__ */ Symbol(_hs$ + 3);
16
+ function __then$0(__props, __s, __extra) {
17
+ const routed = __extra[5];
14
18
  let _b = __s.slots[0];
15
19
  if (_b === void 0) {
16
- let _m0, _m1, _m5;
20
+ let _m0;
17
21
  const _root = clone(_t$0);
18
- queueRefAttach(__s, _m1 = (e) => applyEscapeProps(e, props), _m0 = _root);
19
- (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.b, _b.a));
20
- _m5 = bindSignalChecked(__s, void 0, _root, props.checked, "i:0400e5c1");
21
- setEventHandler(_root, "$$change", (e) => props.onCheckedChange?.(e.target.checked));
22
- _b = bag6(__s, _root, _m0, _m1, void 0, void 0, void 0, _m5);
23
- __s.refFields = _rm$0;
24
- } else {
25
- {
26
- const _r = (e) => applyEscapeProps(e, props);
27
- if (_r !== _b.b) _b.b = replaceRef(__s, _b.b, _r, _b.a);
28
- }
29
- _b.f = bindSignalChecked(__s, _b.f, _b.a, props.checked, "i:0400e5c1");
30
- setEventHandler(_b.a, "$$change", (e) => props.onCheckedChange?.(e.target.checked));
22
+ _m0 = _root;
23
+ _b = bag3(__s, _root, _m0, null, void 0);
24
+ }
25
+ {
26
+ const _v = routed;
27
+ _b.b = childTextHoleUpdate(__s, 1, _b.a, _v, _b.b, _b.c);
28
+ _b.c = _v;
29
+ }
30
+ }
31
+ var _key$3 = (t) => t.title;
32
+ function __item$4(t, __s, __extra) {
33
+ const active = __extra[0];
34
+ const props = __extra[1];
35
+ const setInternal = __extra[2];
36
+ let _b = __s.slots[0];
37
+ if (_b === void 0) {
38
+ let _m1;
39
+ const _root = clone(_t$1);
40
+ _m1 = _root;
41
+ setEventHandler(_root, "$$click", () => {
42
+ const i = props.tabs.indexOf(t);
43
+ setInternal(i);
44
+ props.onSelectedIndexChanged?.(i);
45
+ });
46
+ _b = bag4(__s, _root, void 0, _m1, null, void 0);
47
+ } else setEventHandler(_b.b, "$$click", () => {
48
+ const i = props.tabs.indexOf(t);
49
+ setInternal(i);
50
+ props.onSelectedIndexChanged?.(i);
51
+ });
52
+ _b.a = updateFreshClassName(["vx-tab", active === props.tabs.indexOf(t) ? "active" : ""], _b.a, _b.b);
53
+ _b.e = bindSignalChild(__s, _b.e, 1, _b.b, t.title, "b:c6e07647", null, void 0, void 0, void 0, true);
54
+ }
55
+ function __else$2(__props, __s, __extra) {
56
+ const active = __extra[0];
57
+ const paneRoute = __extra[1];
58
+ const props = __extra[2];
59
+ const resolve = __extra[3];
60
+ const routeProps = __extra[4];
61
+ const setInternal = __extra[6];
62
+ let _b = __s.slots[0];
63
+ if (_b === void 0) {
64
+ let _m1, _m4, _m5, _m6;
65
+ const _root = clone(_t$2);
66
+ _m1 = _root;
67
+ const _el0 = child(_root);
68
+ _m4 = _el0;
69
+ _m5 = child(_el0);
70
+ _m6 = sibling(_el0, 1);
71
+ _b = bag9(__s, _root, void 0, _m1, void 0, void 0, _m4, _m5, _m6, null, void 0);
31
72
  }
32
- _b.c = bindSignalAttribute(__s, _b.c, _b.a, "id", props.id, "b:18b5d0ad", setPlainAttribute);
33
- _b.d = updateFreshClassName(["vx-switch", props.className], _b.d, _b.a);
73
+ _b.a = bindSignalAttribute(__s, _b.a, _b.b, "id", props.id, "b:feaba283", setPlainAttribute);
74
+ _b.c = updateFreshClassName(["vx-tabs", props.className], _b.c, _b.b);
34
75
  {
35
76
  const _v = props.style;
36
- if (_b.e !== _v) {
37
- setStyle(_b.a, _v, _b.e);
38
- _b.e = _v;
77
+ if (_b.d !== _v) {
78
+ setStyle(_b.b, _v, _b.d);
79
+ _b.d = _v;
39
80
  }
40
81
  }
82
+ forBlock(__s, 1, _b.e, props.tabs, _key$3, __item$4, 58, [
83
+ active,
84
+ props,
85
+ setInternal
86
+ ], null, _b.f, true, "f3hhxv5");
87
+ _b.j = bindSignalChild(__s, _b.j, 2, _b.g, (paneRoute ? resolve(paneRoute.name, routeProps(paneRoute)) : null) ?? props.tabs[active]?.render(), "b:c35ce047", null, void 0, void 0, void 0, true);
88
+ }
89
+ function __then$9(__props, __s, __extra) {
90
+ const modalContent = __extra[0];
91
+ let _b = __s.slots[0];
92
+ if (_b === void 0) {
93
+ let _m0, _m1;
94
+ const _root = clone(_t$3);
95
+ const _el0 = child(_root);
96
+ _m0 = evt0(_el0, "$$click", popRoute);
97
+ _m1 = sibling(_el0, 1);
98
+ _b = bag4(__s, _root, _m0, _m1, null, void 0);
99
+ } else evt0u(_b.a, popRoute);
100
+ _b.e = bindSignalChild(__s, _b.e, 1, _b.b, modalContent, "b:38e2e707", null, void 0, void 0, void 0, true);
101
+ }
102
+ var Tabs = /* @__PURE__ */ __s(function Tabs(props, __s, __extra) {
103
+ const __memoRegion = compilerMemoRegion(__s, _hs$ + 0);
104
+ let __hk = __memoRegion.hooks;
105
+ if (__hk === void 0) __memoRegion.hooks = __hk = hookMemoCreate(1);
106
+ const [internal, setInternal] = useState(0, _hs$ + 0);
107
+ const active = props.selectedIndex ?? internal;
108
+ const rootRoute = withSlot(_h$1, useRoute, "root");
109
+ const paneRoute = withSlot(_h$2, useRoute, props.tabs[active]?.stack ?? "");
110
+ const modal = withSlot(_h$3, useModalRoute);
111
+ const resolve = (name, params) => {
112
+ const C = screenFor(name);
113
+ const el = props.resolveScreen ? props.resolveScreen(name, params) : C ? createScopedValue(() => createElementFromConfig("c:3fc4e2ff", C, { ...params })) : null;
114
+ return layoutsFor(name).reduceRight((child, L) => createScopedElement(L, {}, () => child, "c:65a1fb32"), el);
115
+ };
116
+ const routeProps = __hk[0] ?? hookMemoPublishInvariant(__hk, 0, (route) => ({
117
+ ...route.params,
118
+ ...route.context ?? {},
119
+ _pushed: canGoBack(route.stack),
120
+ ...Object.prototype.hasOwnProperty.call(route, "loaderData") ? { data: route.loaderData } : {},
121
+ ...Object.prototype.hasOwnProperty.call(route, "loaderError") ? { error: route.loaderError } : {}
122
+ }));
123
+ const routed = rootRoute ? resolve(rootRoute.name, routeProps(rootRoute)) : null;
124
+ const modalContent = modal ? resolve(modal.name, {
125
+ ...routeProps(modal),
126
+ close: () => popRoute()
127
+ }) : null;
128
+ if (__s.block.pending && !__s.block.crossRenderUpdate) return;
129
+ let _b = __s.slots[0];
130
+ if (_b === void 0) {
131
+ let _m0, _m1, _m2;
132
+ const _root = clone(_t$4);
133
+ _m0 = _root;
134
+ const _el0 = child(_root);
135
+ _m1 = _el0;
136
+ _m2 = sibling(_el0, 1);
137
+ _b = bag3(__s, _root, _m0, _m1, _m2);
138
+ }
139
+ ifBlock(__s, 1, _b.a, routed, __then$0, __else$2, _b.b, [
140
+ active,
141
+ paneRoute,
142
+ props,
143
+ resolve,
144
+ routeProps,
145
+ routed,
146
+ setInternal
147
+ ]);
148
+ {
149
+ const __ifCondition = modalContent;
150
+ ifBlock(__s, 2, _b.a, __ifCondition, __then$9, null, _b.c, __ifCondition ? [modalContent] : void 0);
151
+ }
41
152
  });
42
153
  //#endregion
43
- export { Switch };
154
+ export { Tabs };
package/dist/web/ui41.js CHANGED
@@ -1,42 +1,43 @@
1
- import { hookSlots, useEffect, useState } from "octane";
2
- //#region src/safeAreaInsets.web.tsrx
3
- var _hs$ = /* @__PURE__ */ hookSlots(2);
4
- var _h$0 = /* @__PURE__ */ Symbol(_hs$);
5
- var _h$1 = /* @__PURE__ */ Symbol(_hs$ + 1);
6
- function measure() {
7
- if (!document.body) return {
8
- top: 0,
9
- right: 0,
10
- bottom: 0,
11
- left: 0
12
- };
13
- const probe = document.createElement("div");
14
- probe.style.cssText = "position:fixed;visibility:hidden;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);padding:constant(safe-area-inset-top) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);";
15
- document.body.appendChild(probe);
16
- const style = getComputedStyle(probe);
17
- const insets = {
18
- top: parseFloat(style.paddingTop) || 0,
19
- right: parseFloat(style.paddingRight) || 0,
20
- bottom: parseFloat(style.paddingBottom) || 0,
21
- left: parseFloat(style.paddingLeft) || 0
22
- };
23
- probe.remove();
24
- return insets;
25
- }
26
- function useSafeAreaInsets() {
27
- const [insets, setInsets] = useState({
28
- top: 0,
29
- right: 0,
30
- bottom: 0,
31
- left: 0
32
- }, _h$0);
33
- useEffect(() => {
34
- const update = () => setInsets(measure());
35
- update();
36
- window.addEventListener("resize", update);
37
- return () => window.removeEventListener("resize", update);
38
- }, [], _h$1);
39
- return insets;
40
- }
1
+ import { applyEscapeProps } from "./ui2.js";
2
+ import { __s, bag6, clone, delegateEvents, queueRefAttach, queueRefDetach, setEventHandler, setStyle, template } from "octane";
3
+ import { bindSignalAttribute, bindSignalChecked, enableSignalBindings, replaceRef, setPlainAttribute, updateFreshClassName } from "octane/internal/client";
4
+ //#region src/Switch.web.tsrx
5
+ enableSignalBindings(1, true);
6
+ delegateEvents(["change"]);
7
+ var _t$0 = /* @__PURE__ */ template("<input type=\"checkbox\" data-octane-input=\"i:0400e5c1\"/>");
8
+ var _rm$0 = [
9
+ "r",
10
+ "b",
11
+ "a"
12
+ ];
13
+ var Switch = /* @__PURE__ */ __s(function Switch(props, __s, __extra) {
14
+ let _b = __s.slots[0];
15
+ if (_b === void 0) {
16
+ let _m0, _m1, _m5;
17
+ const _root = clone(_t$0);
18
+ queueRefAttach(__s, _m1 = (e) => applyEscapeProps(e, props), _m0 = _root);
19
+ (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.b, _b.a));
20
+ _m5 = bindSignalChecked(__s, void 0, _root, props.checked, "i:0400e5c1");
21
+ setEventHandler(_root, "$$change", (e) => props.onCheckedChange?.(e.target.checked));
22
+ _b = bag6(__s, _root, _m0, _m1, void 0, void 0, void 0, _m5);
23
+ __s.refFields = _rm$0;
24
+ } else {
25
+ {
26
+ const _r = (e) => applyEscapeProps(e, props);
27
+ if (_r !== _b.b) _b.b = replaceRef(__s, _b.b, _r, _b.a);
28
+ }
29
+ _b.f = bindSignalChecked(__s, _b.f, _b.a, props.checked, "i:0400e5c1");
30
+ setEventHandler(_b.a, "$$change", (e) => props.onCheckedChange?.(e.target.checked));
31
+ }
32
+ _b.c = bindSignalAttribute(__s, _b.c, _b.a, "id", props.id, "b:18b5d0ad", setPlainAttribute);
33
+ _b.d = updateFreshClassName(["vx-switch", props.className], _b.d, _b.a);
34
+ {
35
+ const _v = props.style;
36
+ if (_b.e !== _v) {
37
+ setStyle(_b.a, _v, _b.e);
38
+ _b.e = _v;
39
+ }
40
+ }
41
+ });
41
42
  //#endregion
42
- export { useSafeAreaInsets };
43
+ export { Switch };
package/dist/web/ui42.js CHANGED
@@ -1,76 +1,42 @@
1
- import { useSafeAreaInsets } from "./ui41.js";
2
- import { __s, bag12, clone, hookSlots, queueRefAttach, queueRefDetach, setStyle, setStyleProperty, template, withSlot } from "octane";
3
- import { bindSignalAttribute, bindSignalChild, canSplitStyleProperties, enableSignalBindings, replaceRef, setPlainAttribute, styleObjectPrototype, updateFreshClassName } from "octane/internal/client";
4
- //#region src/SafeArea.web.tsrx
5
- enableSignalBindings(1, true);
6
- var _t$0 = /* @__PURE__ */ template("<div></div>");
7
- var _h$0 = /* @__PURE__ */ Symbol(/* @__PURE__ */ hookSlots(1));
8
- var _rm$1 = [
9
- "r",
10
- "c",
11
- "b"
12
- ];
13
- function applyWebProps(node, bag) {
14
- if (!node || !bag) return;
15
- for (const [key, value] of Object.entries(bag)) if (key.includes("-")) node.setAttribute(key, String(value));
16
- else node[key] = value;
1
+ import { hookSlots, useEffect, useState } from "octane";
2
+ //#region src/safeAreaInsets.web.tsrx
3
+ var _hs$ = /* @__PURE__ */ hookSlots(2);
4
+ var _h$0 = /* @__PURE__ */ Symbol(_hs$);
5
+ var _h$1 = /* @__PURE__ */ Symbol(_hs$ + 1);
6
+ function measure() {
7
+ if (!document.body) return {
8
+ top: 0,
9
+ right: 0,
10
+ bottom: 0,
11
+ left: 0
12
+ };
13
+ const probe = document.createElement("div");
14
+ probe.style.cssText = "position:fixed;visibility:hidden;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);padding:constant(safe-area-inset-top) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);";
15
+ document.body.appendChild(probe);
16
+ const style = getComputedStyle(probe);
17
+ const insets = {
18
+ top: parseFloat(style.paddingTop) || 0,
19
+ right: parseFloat(style.paddingRight) || 0,
20
+ bottom: parseFloat(style.paddingBottom) || 0,
21
+ left: parseFloat(style.paddingLeft) || 0
22
+ };
23
+ probe.remove();
24
+ return insets;
25
+ }
26
+ function useSafeAreaInsets() {
27
+ const [insets, setInsets] = useState({
28
+ top: 0,
29
+ right: 0,
30
+ bottom: 0,
31
+ left: 0
32
+ }, _h$0);
33
+ useEffect(() => {
34
+ const update = () => setInsets(measure());
35
+ update();
36
+ window.addEventListener("resize", update);
37
+ return () => window.removeEventListener("resize", update);
38
+ }, [], _h$1);
39
+ return insets;
17
40
  }
18
- var SafeArea = /* @__PURE__ */ __s(function SafeArea(props, __s, __extra) {
19
- const insets = withSlot(_h$0, useSafeAreaInsets);
20
- if (__s.block.pending && !__s.block.crossRenderUpdate) return;
21
- let _b = __s.slots[0];
22
- if (_b === void 0) {
23
- let _m1, _m2;
24
- const _root = clone(_t$0);
25
- _m1 = _root;
26
- queueRefAttach(__s, _m2 = (node) => applyWebProps(node, props.web), _m1);
27
- (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.c, _b.b));
28
- _b = bag12(__s, _root, void 0, _m1, _m2, void 0, __s, void 0, void 0, void 0, void 0, void 0, null, void 0);
29
- __s.refFields = _rm$1;
30
- } else {
31
- const _r = (node) => applyWebProps(node, props.web);
32
- if (_r !== _b.c) _b.c = replaceRef(__s, _b.c, _r, _b.b);
33
- }
34
- _b.a = bindSignalAttribute(__s, _b.a, _b.b, "id", props.id, "b:65ed48f3", setPlainAttribute);
35
- _b.d = updateFreshClassName(["vx-safe-area", props.className], _b.d, _b.b);
36
- {
37
- const __styleSpread = { ...props.style };
38
- const __styleValue = insets.top;
39
- const __styleValue$ = insets.right;
40
- const __styleValue$2 = insets.bottom;
41
- const __styleValue$3 = insets.left;
42
- const __styleFull = "paddingTop" in __styleSpread || "paddingRight" in __styleSpread || "paddingBottom" in __styleSpread || "paddingLeft" in __styleSpread || !canSplitStyleProperties();
43
- if (_b.e === __s || __styleFull || _b.f) {
44
- const __styleObject = __styleFull && !("paddingTop" in styleObjectPrototype || "paddingRight" in styleObjectPrototype || "paddingBottom" in styleObjectPrototype || "paddingLeft" in styleObjectPrototype) ? (__styleSpread["paddingTop"] = __styleValue, __styleSpread["paddingRight"] = __styleValue$, __styleSpread["paddingBottom"] = __styleValue$2, __styleSpread["paddingLeft"] = __styleValue$3, __styleSpread) : {
45
- ...__styleSpread,
46
- "paddingTop": __styleValue,
47
- "paddingRight": __styleValue$,
48
- "paddingBottom": __styleValue$2,
49
- "paddingLeft": __styleValue$3
50
- };
51
- setStyle(_b.b, __styleObject, _b.e === __s ? void 0 : _b.f ? _b.e : {
52
- ..._b.e,
53
- "paddingTop": _b.g,
54
- "paddingRight": _b.h,
55
- "paddingBottom": _b.i,
56
- "paddingLeft": _b.j
57
- });
58
- _b.e = __styleFull ? __styleObject : __styleSpread;
59
- } else {
60
- setStyle(_b.b, __styleSpread, _b.e);
61
- if (_b.g !== __styleValue) setStyleProperty(_b.b, "paddingTop", __styleValue, "", _b.g);
62
- if (_b.h !== __styleValue$) setStyleProperty(_b.b, "paddingRight", __styleValue$, "", _b.h);
63
- if (_b.i !== __styleValue$2) setStyleProperty(_b.b, "paddingBottom", __styleValue$2, "", _b.i);
64
- if (_b.j !== __styleValue$3) setStyleProperty(_b.b, "paddingLeft", __styleValue$3, "", _b.j);
65
- _b.e = __styleSpread;
66
- }
67
- _b.f = __styleFull;
68
- _b.g = __styleValue;
69
- _b.h = __styleValue$;
70
- _b.i = __styleValue$2;
71
- _b.j = __styleValue$3;
72
- }
73
- _b.m = bindSignalChild(__s, _b.m, 1, _b.b, props.children, "b:30587aa9", null, void 0, void 0, void 0, true);
74
- });
75
41
  //#endregion
76
- export { SafeArea };
42
+ export { useSafeAreaInsets };
package/dist/web/ui43.js CHANGED
@@ -1,8 +1,10 @@
1
- import { __s, bag7, clone, queueRefAttach, queueRefDetach, setStyle, template } from "octane";
2
- import { bindSignalAttribute, bindSignalChild, enableSignalBindings, replaceRef, setPlainAttribute, updateFreshClassName } from "octane/internal/client";
3
- //#region src/KeyboardAvoiding.web.tsrx
1
+ import { useSafeAreaInsets } from "./ui42.js";
2
+ import { __s, bag12, clone, hookSlots, queueRefAttach, queueRefDetach, setStyle, setStyleProperty, template, withSlot } from "octane";
3
+ import { bindSignalAttribute, bindSignalChild, canSplitStyleProperties, enableSignalBindings, replaceRef, setPlainAttribute, styleObjectPrototype, updateFreshClassName } from "octane/internal/client";
4
+ //#region src/SafeArea.web.tsrx
4
5
  enableSignalBindings(1, true);
5
6
  var _t$0 = /* @__PURE__ */ template("<div></div>");
7
+ var _h$0 = /* @__PURE__ */ Symbol(/* @__PURE__ */ hookSlots(1));
6
8
  var _rm$1 = [
7
9
  "r",
8
10
  "c",
@@ -13,7 +15,9 @@ function applyWebProps(node, bag) {
13
15
  for (const [key, value] of Object.entries(bag)) if (key.includes("-")) node.setAttribute(key, String(value));
14
16
  else node[key] = value;
15
17
  }
16
- var KeyboardAvoiding = /* @__PURE__ */ __s(function KeyboardAvoiding(props, __s, __extra) {
18
+ var SafeArea = /* @__PURE__ */ __s(function SafeArea(props, __s, __extra) {
19
+ const insets = withSlot(_h$0, useSafeAreaInsets);
20
+ if (__s.block.pending && !__s.block.crossRenderUpdate) return;
17
21
  let _b = __s.slots[0];
18
22
  if (_b === void 0) {
19
23
  let _m1, _m2;
@@ -21,22 +25,52 @@ var KeyboardAvoiding = /* @__PURE__ */ __s(function KeyboardAvoiding(props, __s,
21
25
  _m1 = _root;
22
26
  queueRefAttach(__s, _m2 = (node) => applyWebProps(node, props.web), _m1);
23
27
  (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.c, _b.b));
24
- _b = bag7(__s, _root, void 0, _m1, _m2, void 0, void 0, null, void 0);
28
+ _b = bag12(__s, _root, void 0, _m1, _m2, void 0, __s, void 0, void 0, void 0, void 0, void 0, null, void 0);
25
29
  __s.refFields = _rm$1;
26
30
  } else {
27
31
  const _r = (node) => applyWebProps(node, props.web);
28
32
  if (_r !== _b.c) _b.c = replaceRef(__s, _b.c, _r, _b.b);
29
33
  }
30
- _b.a = bindSignalAttribute(__s, _b.a, _b.b, "id", props.id, "b:a2dd5fb0", setPlainAttribute);
31
- _b.d = updateFreshClassName(["vx-keyboard-avoiding", props.className], _b.d, _b.b);
34
+ _b.a = bindSignalAttribute(__s, _b.a, _b.b, "id", props.id, "b:65ed48f3", setPlainAttribute);
35
+ _b.d = updateFreshClassName(["vx-safe-area", props.className], _b.d, _b.b);
32
36
  {
33
- const _v = props.style;
34
- if (_b.e !== _v) {
35
- setStyle(_b.b, _v, _b.e);
36
- _b.e = _v;
37
+ const __styleSpread = { ...props.style };
38
+ const __styleValue = insets.top;
39
+ const __styleValue$ = insets.right;
40
+ const __styleValue$2 = insets.bottom;
41
+ const __styleValue$3 = insets.left;
42
+ const __styleFull = "paddingTop" in __styleSpread || "paddingRight" in __styleSpread || "paddingBottom" in __styleSpread || "paddingLeft" in __styleSpread || !canSplitStyleProperties();
43
+ if (_b.e === __s || __styleFull || _b.f) {
44
+ const __styleObject = __styleFull && !("paddingTop" in styleObjectPrototype || "paddingRight" in styleObjectPrototype || "paddingBottom" in styleObjectPrototype || "paddingLeft" in styleObjectPrototype) ? (__styleSpread["paddingTop"] = __styleValue, __styleSpread["paddingRight"] = __styleValue$, __styleSpread["paddingBottom"] = __styleValue$2, __styleSpread["paddingLeft"] = __styleValue$3, __styleSpread) : {
45
+ ...__styleSpread,
46
+ "paddingTop": __styleValue,
47
+ "paddingRight": __styleValue$,
48
+ "paddingBottom": __styleValue$2,
49
+ "paddingLeft": __styleValue$3
50
+ };
51
+ setStyle(_b.b, __styleObject, _b.e === __s ? void 0 : _b.f ? _b.e : {
52
+ ..._b.e,
53
+ "paddingTop": _b.g,
54
+ "paddingRight": _b.h,
55
+ "paddingBottom": _b.i,
56
+ "paddingLeft": _b.j
57
+ });
58
+ _b.e = __styleFull ? __styleObject : __styleSpread;
59
+ } else {
60
+ setStyle(_b.b, __styleSpread, _b.e);
61
+ if (_b.g !== __styleValue) setStyleProperty(_b.b, "paddingTop", __styleValue, "", _b.g);
62
+ if (_b.h !== __styleValue$) setStyleProperty(_b.b, "paddingRight", __styleValue$, "", _b.h);
63
+ if (_b.i !== __styleValue$2) setStyleProperty(_b.b, "paddingBottom", __styleValue$2, "", _b.i);
64
+ if (_b.j !== __styleValue$3) setStyleProperty(_b.b, "paddingLeft", __styleValue$3, "", _b.j);
65
+ _b.e = __styleSpread;
37
66
  }
67
+ _b.f = __styleFull;
68
+ _b.g = __styleValue;
69
+ _b.h = __styleValue$;
70
+ _b.i = __styleValue$2;
71
+ _b.j = __styleValue$3;
38
72
  }
39
- _b.h = bindSignalChild(__s, _b.h, 1, _b.b, props.children, "b:327d2ddc", null, void 0, void 0, void 0, true);
73
+ _b.m = bindSignalChild(__s, _b.m, 1, _b.b, props.children, "b:30587aa9", null, void 0, void 0, void 0, true);
40
74
  });
41
75
  //#endregion
42
- export { KeyboardAvoiding };
76
+ export { SafeArea };
package/dist/web/ui44.js CHANGED
@@ -1,23 +1,9 @@
1
- import { __s, bag3, bag9, child, clone, drainFrag, ifBlock, queueRefAttach, queueRefDetach, setStyle, sibling, template } from "octane";
1
+ import { __s, bag7, clone, queueRefAttach, queueRefDetach, setStyle, template } from "octane";
2
2
  import { bindSignalAttribute, bindSignalChild, enableSignalBindings, replaceRef, setPlainAttribute, updateFreshClassName } from "octane/internal/client";
3
- //#region src/Drawer.web.tsrx
3
+ //#region src/KeyboardAvoiding.web.tsrx
4
4
  enableSignalBindings(1, true);
5
- var _t$0 = /* @__PURE__ */ template("<div class=\"vx-drawer-backdrop\" aria-hidden=\"true\"></div><div class=\"vx-drawer-panel\"></div>", 0, 1);
6
- var _t$1 = /* @__PURE__ */ template("<div><div class=\"vx-drawer-main\"></div><!></div>");
7
- function __then$1(__props, __s, __extra) {
8
- const __block = __s.block;
9
- const props = __extra[0];
10
- let _b = __s.slots[0];
11
- if (_b === void 0) {
12
- let _m0;
13
- const _root = clone(_t$0);
14
- _m0 = sibling(child(_root), 1);
15
- drainFrag(_root, __block.parentNode, __block.endMarker);
16
- _b = bag3(__s, null, _m0, null, void 0);
17
- }
18
- _b.d = bindSignalChild(__s, _b.d, 1, _b.a, props.drawer, "b:7c4fb4de", null, void 0, void 0, void 0, true);
19
- }
20
- var _rm$4 = [
5
+ var _t$0 = /* @__PURE__ */ template("<div></div>");
6
+ var _rm$1 = [
21
7
  "r",
22
8
  "c",
23
9
  "b"
@@ -27,24 +13,22 @@ function applyWebProps(node, bag) {
27
13
  for (const [key, value] of Object.entries(bag)) if (key.includes("-")) node.setAttribute(key, String(value));
28
14
  else node[key] = value;
29
15
  }
30
- var Drawer = /* @__PURE__ */ __s(function Drawer(props, __s, __extra) {
16
+ var KeyboardAvoiding = /* @__PURE__ */ __s(function KeyboardAvoiding(props, __s, __extra) {
31
17
  let _b = __s.slots[0];
32
18
  if (_b === void 0) {
33
- let _m1, _m2, _m5, _m6;
34
- const _root = clone(_t$1);
19
+ let _m1, _m2;
20
+ const _root = clone(_t$0);
35
21
  _m1 = _root;
36
22
  queueRefAttach(__s, _m2 = (node) => applyWebProps(node, props.web), _m1);
37
23
  (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.c, _b.b));
38
- _m5 = sibling(child(_root), 1);
39
- _m6 = child(_root);
40
- _b = bag9(__s, _root, void 0, _m1, _m2, void 0, void 0, _m5, _m6, null, void 0);
41
- __s.refFields = _rm$4;
24
+ _b = bag7(__s, _root, void 0, _m1, _m2, void 0, void 0, null, void 0);
25
+ __s.refFields = _rm$1;
42
26
  } else {
43
27
  const _r = (node) => applyWebProps(node, props.web);
44
28
  if (_r !== _b.c) _b.c = replaceRef(__s, _b.c, _r, _b.b);
45
29
  }
46
- _b.a = bindSignalAttribute(__s, _b.a, _b.b, "id", props.id, "b:8ba6f567", setPlainAttribute);
47
- _b.d = updateFreshClassName(["vx-drawer", props.className], _b.d, _b.b);
30
+ _b.a = bindSignalAttribute(__s, _b.a, _b.b, "id", props.id, "b:a2dd5fb0", setPlainAttribute);
31
+ _b.d = updateFreshClassName(["vx-keyboard-avoiding", props.className], _b.d, _b.b);
48
32
  {
49
33
  const _v = props.style;
50
34
  if (_b.e !== _v) {
@@ -52,11 +36,7 @@ var Drawer = /* @__PURE__ */ __s(function Drawer(props, __s, __extra) {
52
36
  _b.e = _v;
53
37
  }
54
38
  }
55
- _b.j = bindSignalChild(__s, _b.j, 1, _b.g, props.main, "b:8d49146e", null, void 0, void 0, void 0, true);
56
- {
57
- const __ifCondition = props.open;
58
- ifBlock(__s, 2, _b.b, __ifCondition, __then$1, null, _b.f, __ifCondition ? [props] : void 0);
59
- }
39
+ _b.h = bindSignalChild(__s, _b.h, 1, _b.b, props.children, "b:327d2ddc", null, void 0, void 0, void 0, true);
60
40
  });
61
41
  //#endregion
62
- export { Drawer };
42
+ export { KeyboardAvoiding };
package/dist/web/ui45.js CHANGED
@@ -1,9 +1,62 @@
1
- //#region src/platformProps.web.ts
2
- /** Apply a web escape-hatch bag after the primitive's standard props. */
3
- function applyWebProps(el, props) {
4
- if (!el || !props) return;
5
- for (const [name, value] of Object.entries(props)) if (name.includes("-")) el.setAttribute(name, String(value));
6
- else el[name] = value;
1
+ import { __s, bag3, bag9, child, clone, drainFrag, ifBlock, queueRefAttach, queueRefDetach, setStyle, sibling, template } from "octane";
2
+ import { bindSignalAttribute, bindSignalChild, enableSignalBindings, replaceRef, setPlainAttribute, updateFreshClassName } from "octane/internal/client";
3
+ //#region src/Drawer.web.tsrx
4
+ enableSignalBindings(1, true);
5
+ var _t$0 = /* @__PURE__ */ template("<div class=\"vx-drawer-backdrop\" aria-hidden=\"true\"></div><div class=\"vx-drawer-panel\"></div>", 0, 1);
6
+ var _t$1 = /* @__PURE__ */ template("<div><div class=\"vx-drawer-main\"></div><!></div>");
7
+ function __then$1(__props, __s, __extra) {
8
+ const __block = __s.block;
9
+ const props = __extra[0];
10
+ let _b = __s.slots[0];
11
+ if (_b === void 0) {
12
+ let _m0;
13
+ const _root = clone(_t$0);
14
+ _m0 = sibling(child(_root), 1);
15
+ drainFrag(_root, __block.parentNode, __block.endMarker);
16
+ _b = bag3(__s, null, _m0, null, void 0);
17
+ }
18
+ _b.d = bindSignalChild(__s, _b.d, 1, _b.a, props.drawer, "b:7c4fb4de", null, void 0, void 0, void 0, true);
7
19
  }
20
+ var _rm$4 = [
21
+ "r",
22
+ "c",
23
+ "b"
24
+ ];
25
+ function applyWebProps(node, bag) {
26
+ if (!node || !bag) return;
27
+ for (const [key, value] of Object.entries(bag)) if (key.includes("-")) node.setAttribute(key, String(value));
28
+ else node[key] = value;
29
+ }
30
+ var Drawer = /* @__PURE__ */ __s(function Drawer(props, __s, __extra) {
31
+ let _b = __s.slots[0];
32
+ if (_b === void 0) {
33
+ let _m1, _m2, _m5, _m6;
34
+ const _root = clone(_t$1);
35
+ _m1 = _root;
36
+ queueRefAttach(__s, _m2 = (node) => applyWebProps(node, props.web), _m1);
37
+ (__s.cleanups ??= []).push(() => _b && queueRefDetach(_b.c, _b.b));
38
+ _m5 = sibling(child(_root), 1);
39
+ _m6 = child(_root);
40
+ _b = bag9(__s, _root, void 0, _m1, _m2, void 0, void 0, _m5, _m6, null, void 0);
41
+ __s.refFields = _rm$4;
42
+ } else {
43
+ const _r = (node) => applyWebProps(node, props.web);
44
+ if (_r !== _b.c) _b.c = replaceRef(__s, _b.c, _r, _b.b);
45
+ }
46
+ _b.a = bindSignalAttribute(__s, _b.a, _b.b, "id", props.id, "b:8ba6f567", setPlainAttribute);
47
+ _b.d = updateFreshClassName(["vx-drawer", props.className], _b.d, _b.b);
48
+ {
49
+ const _v = props.style;
50
+ if (_b.e !== _v) {
51
+ setStyle(_b.b, _v, _b.e);
52
+ _b.e = _v;
53
+ }
54
+ }
55
+ _b.j = bindSignalChild(__s, _b.j, 1, _b.g, props.main, "b:8d49146e", null, void 0, void 0, void 0, true);
56
+ {
57
+ const __ifCondition = props.open;
58
+ ifBlock(__s, 2, _b.b, __ifCondition, __then$1, null, _b.f, __ifCondition ? [props] : void 0);
59
+ }
60
+ });
8
61
  //#endregion
9
- export { applyWebProps };
62
+ export { Drawer };