@tachui/primitives 0.8.15 → 0.8.16

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.
@@ -1,24 +1,27 @@
1
- import { withModifiers as f, ComponentWithCSSClasses as z, processElementOverride as H, createSignal as E, useLifecycle as $, registerComponentWithLifecycleHooks as M, h as S, createEffect as b, ConcatenatedComponent as O, text as W, isSignal as v } from "@tachui/core";
2
- import { aspectRatio as x } from "@tachui/modifiers";
3
- var Y = Object.defineProperty, V = (e, t, s) => t in e ? Y(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, g = (e, t, s) => V(e, typeof t != "symbol" ? t + "" : t, s);
4
- function L(e) {
1
+ import { withModifiers as f, ComponentWithCSSClasses as z, processElementOverride as H, createSignal as b, useLifecycle as $, registerComponentWithLifecycleHooks as M, h as m, createEffect as v, ConcatenatedComponent as O, text as W, isSignal as S } from "@tachui/core";
2
+ import { isSignal as Y, isComputed as D } from "@tachui/core/reactive";
3
+ import { aspectRatio as A } from "@tachui/modifiers";
4
+ var F = Object.defineProperty, V = (e, t, s) => t in e ? F(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, u = (e, t, s) => V(e, typeof t != "symbol" ? t + "" : t, s);
5
+ function x(e) {
5
6
  return typeof e == "object" && e !== null && typeof e.resolve == "function";
6
7
  }
7
- function D(e) {
8
- return e && (L(e) ? e.resolve() : e);
8
+ function k(e) {
9
+ return e && (x(e) ? e.resolve() : e);
9
10
  }
10
- class F extends z {
11
+ class B extends z {
11
12
  constructor(t) {
12
- super(), this.props = t, g(this, "type", "component"), g(this, "id"), g(this, "mounted", !1), g(this, "cleanup", []), g(this, "effectiveTag"), g(this, "validationResult"), g(this, "loadingStateSignal"), g(this, "setLoadingState"), this.id = `image-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
13
+ super(), this.props = t, u(this, "type", "component"), u(this, "id"), u(this, "mounted", !1), u(this, "cleanup", []), u(this, "effectiveTag"), u(this, "validationResult"), u(this, "loadingStateSignal"), u(this, "setLoadingState"), this.id = `image-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
13
14
  const s = H("Image", "img", this.props.element);
14
- this.effectiveTag = s.tag, this.validationResult = s.validation;
15
- const n = this.props.src ? "idle" : "error", [o, i] = E(n);
16
- this.loadingStateSignal = o, this.setLoadingState = i, $(this, {
17
- onDOMReady: (l, u) => {
18
- L(this.props.src) && u instanceof HTMLImageElement && this.setupImageAssetReactivityForDOMElement(
19
- this.props.src,
20
- u
21
- );
15
+ if (this.effectiveTag = s.tag, this.validationResult = s.validation, this.props.loadingState)
16
+ this.loadingStateSignal = this.props.loadingState, this.setLoadingState = (i) => {
17
+ };
18
+ else {
19
+ const i = this.props.src ? "idle" : "error", [o, r] = b(i);
20
+ this.loadingStateSignal = o, this.setLoadingState = r;
21
+ }
22
+ $(this, {
23
+ onDOMReady: (i, o) => {
24
+ o instanceof HTMLImageElement && this.setupLoadingStateReactivityForDOMElement(o);
22
25
  }
23
26
  }), M(this);
24
27
  }
@@ -26,7 +29,7 @@ class F extends z {
26
29
  * Set loading state and notify callback
27
30
  */
28
31
  setLoadingStateWithCallback(t) {
29
- this.setLoadingState(t), this.props.onLoadingStateChange && this.props.onLoadingStateChange(t);
32
+ this.props.loadingState || (this.setLoadingState(t), this.props.onLoadingStateChange && this.props.onLoadingStateChange(t));
30
33
  }
31
34
  /**
32
35
  * Render the image component with reactive content handling
@@ -35,7 +38,7 @@ class F extends z {
35
38
  const t = this.loadingStateSignal();
36
39
  if (t === "loading" && this.props.placeholder) {
37
40
  if (typeof this.props.placeholder == "string")
38
- return [S("img", {
41
+ return [m("img", {
39
42
  class: "tachui-image-placeholder",
40
43
  src: this.props.placeholder,
41
44
  alt: "Loading..."
@@ -45,7 +48,7 @@ class F extends z {
45
48
  }
46
49
  if (t === "error" && this.props.errorPlaceholder) {
47
50
  if (typeof this.props.errorPlaceholder == "string")
48
- return [S("img", {
51
+ return [m("img", {
49
52
  class: "tachui-image-error",
50
53
  src: this.props.errorPlaceholder,
51
54
  alt: "Error loading image"
@@ -53,7 +56,7 @@ class F extends z {
53
56
  if (this.props.errorPlaceholder && typeof this.props.errorPlaceholder == "object")
54
57
  return this.props.errorPlaceholder.render();
55
58
  }
56
- const s = D(this.props.src), n = ["tachui-image"], o = this.createClassString(this.props, n), i = S(this.effectiveTag, {
59
+ const s = k(this.props.src), i = ["tachui-image"], o = this.createClassString(this.props, i), r = m(this.effectiveTag, {
57
60
  className: o,
58
61
  src: s,
59
62
  // Pass resolved src for initial render
@@ -64,23 +67,55 @@ class F extends z {
64
67
  decoding: this.props.decoding || "async",
65
68
  fetchpriority: this.props.fetchPriority
66
69
  });
67
- return i.componentMetadata = {
70
+ return r.componentMetadata = {
68
71
  id: this.id,
69
72
  type: "Image",
70
73
  originalType: "Image",
71
74
  overriddenTo: this.effectiveTag !== "img" ? this.effectiveTag : void 0,
72
75
  validationResult: this.validationResult
73
- }, [i];
76
+ }, [r];
74
77
  }
75
78
  /**
76
79
  * Set up ImageAsset reactivity for a real DOM element (called from onDOMReady)
77
80
  */
78
81
  setupImageAssetReactivityForDOMElement(t, s) {
79
- const n = b(() => {
82
+ const i = v(() => {
80
83
  const o = t.resolve();
81
- s.src = o, this.setLoadingStateWithCallback("loading");
84
+ this.props.onLoadStart?.(), this.setLoadingStateWithCallback("loading"), s.src = o;
85
+ });
86
+ this.cleanup.push(() => i.dispose());
87
+ }
88
+ setupLoadingStateReactivityForDOMElement(t) {
89
+ const s = (n) => {
90
+ this.setLoadingStateWithCallback("loaded"), this.props.onLoad?.(n);
91
+ }, i = (n) => {
92
+ this.setLoadingStateWithCallback("error"), this.props.onError?.(n);
93
+ };
94
+ t.addEventListener("load", s), t.addEventListener("error", i), this.cleanup.push(() => {
95
+ t.removeEventListener("load", s), t.removeEventListener("error", i);
82
96
  });
83
- this.cleanup.push(() => n.dispose());
97
+ const o = (n) => {
98
+ if (!n) {
99
+ t.src = "", this.setLoadingStateWithCallback("error");
100
+ return;
101
+ }
102
+ this.props.onLoadStart?.(), this.setLoadingStateWithCallback("loading"), t.src = n;
103
+ };
104
+ if (x(this.props.src)) {
105
+ this.setupImageAssetReactivityForDOMElement(this.props.src, t);
106
+ return;
107
+ }
108
+ const r = this.props.src;
109
+ if (Y(r) || D(r)) {
110
+ const n = v(() => {
111
+ o(r());
112
+ });
113
+ this.cleanup.push(() => n.dispose());
114
+ return;
115
+ }
116
+ o(
117
+ typeof this.props.src == "string" ? this.props.src : void 0
118
+ );
84
119
  }
85
120
  // ============================================================================
86
121
  // Concatenation Support (Phase 3.1)
@@ -89,7 +124,7 @@ class F extends z {
89
124
  * Concatenate this image with another concatenatable component
90
125
  */
91
126
  concat(t) {
92
- const s = this.toSegment(), n = t.toSegment(), o = {
127
+ const s = this.toSegment(), i = t.toSegment(), o = {
93
128
  totalSegments: t instanceof O ? t.segments.length + 1 : 2,
94
129
  accessibilityRole: t instanceof O ? this.mergeAccessibilityRoles(
95
130
  "group",
@@ -98,7 +133,7 @@ class F extends z {
98
133
  semanticStructure: "inline"
99
134
  // Images are typically inline in concatenation
100
135
  };
101
- return new O([s, n], o);
136
+ return new O([s, i], o);
102
137
  }
103
138
  /**
104
139
  * Convert this image to a segment for concatenation
@@ -147,12 +182,12 @@ class F extends z {
147
182
  return t === "composite" || s === "composite" ? "composite" : "group";
148
183
  }
149
184
  }
150
- function I(e, t = {}) {
151
- const s = { ...t, src: e }, n = new F(s), o = f(n), i = (l) => {
152
- if (l && Array.isArray(l.modifiers))
153
- return l;
154
- if (l?._modifiableComponent && Array.isArray(l._modifiableComponent.modifiers))
155
- return l._modifiableComponent;
185
+ function P(e, t = {}) {
186
+ const s = { ...t, src: e }, i = new B(s), o = f(i), r = (n) => {
187
+ if (n && Array.isArray(n.modifiers))
188
+ return n;
189
+ if (n?._modifiableComponent && Array.isArray(n._modifiableComponent.modifiers))
190
+ return n._modifiableComponent;
156
191
  if (Array.isArray(o?.modifiers))
157
192
  return o;
158
193
  if (o?._modifiableComponent && Array.isArray(o._modifiableComponent.modifiers))
@@ -160,38 +195,38 @@ function I(e, t = {}) {
160
195
  throw new Error("Image shorthand target is not modifiable");
161
196
  };
162
197
  return o.scaledToFit = function() {
163
- return i(this).modifiers.push(x(void 0, "fit")), o;
198
+ return r(this).modifiers.push(A(void 0, "fit")), o;
164
199
  }, o.scaledToFill = function() {
165
- return i(this).modifiers.push(x(void 0, "fill")), o;
200
+ return r(this).modifiers.push(A(void 0, "fill")), o;
166
201
  }, o;
167
202
  }
168
- const J = {
203
+ const Q = {
169
204
  idle: "idle",
170
205
  loading: "loading",
171
206
  loaded: "loaded",
172
207
  error: "error"
173
- }, K = {
208
+ }, tt = {
174
209
  fit: "fit",
175
210
  fill: "fill",
176
211
  stretch: "stretch",
177
212
  center: "center",
178
213
  scaleDown: "scaleDown"
179
- }, Z = {
214
+ }, et = {
180
215
  /**
181
216
  * Create a responsive image with multiple sources
182
217
  */
183
218
  responsive(e, t, s = {}) {
184
- const n = e.map((o) => {
185
- const i = [o.src];
186
- return o.width && i.push(`${o.width}w`), i.join(" ");
219
+ const i = e.map((o) => {
220
+ const r = [o.src];
221
+ return o.width && r.push(`${o.width}w`), r.join(" ");
187
222
  }).join(", ");
188
- return I(t, { ...s, srcSet: n });
223
+ return P(t, { ...s, srcSet: i });
189
224
  },
190
225
  /**
191
226
  * Create an image with progressive loading
192
227
  */
193
228
  progressive(e, t, s = {}) {
194
- return I(e, {
229
+ return P(e, {
195
230
  ...s,
196
231
  lowQualitySrc: e,
197
232
  highQualitySrc: t
@@ -201,20 +236,20 @@ const J = {
201
236
  * Create an image with loading placeholder
202
237
  */
203
238
  withPlaceholder(e, t, s = {}) {
204
- return I(e, {
239
+ return P(e, {
205
240
  ...s,
206
241
  placeholder: t
207
242
  });
208
243
  }
209
244
  };
210
- var B = Object.defineProperty, N = (e, t, s) => t in e ? B(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, C = (e, t, s) => N(e, typeof t != "symbol" ? t + "" : t, s);
211
- class m {
212
- constructor(t, s, n, o = {}) {
213
- this.props = t, this.tag = s, this.content = n, this.attributes = o, C(this, "type", "component"), C(this, "id"), C(this, "mounted", !1), C(this, "cleanup", []), this.id = `element-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
245
+ var N = Object.defineProperty, X = (e, t, s) => t in e ? N(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, T = (e, t, s) => X(e, typeof t != "symbol" ? t + "" : t, s);
246
+ class g {
247
+ constructor(t, s, i, o = {}) {
248
+ this.props = t, this.tag = s, this.content = i, this.attributes = o, T(this, "type", "component"), T(this, "id"), T(this, "mounted", !1), T(this, "cleanup", []), this.id = `element-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
214
249
  }
215
250
  render() {
216
251
  return [
217
- S(this.tag, this.attributes, this.content ? W(this.content) : "")
252
+ m(this.tag, this.attributes, this.content ? W(this.content) : "")
218
253
  ];
219
254
  }
220
255
  }
@@ -223,7 +258,7 @@ const y = {
223
258
  * Create a div element with modifier support
224
259
  */
225
260
  div: (e = {}) => {
226
- const t = new m(
261
+ const t = new g(
227
262
  e,
228
263
  "div",
229
264
  e.children ? String(e.children) : void 0
@@ -234,7 +269,7 @@ const y = {
234
269
  * Create a span element with modifier support
235
270
  */
236
271
  span: (e = {}) => {
237
- const t = new m(
272
+ const t = new g(
238
273
  e,
239
274
  "span",
240
275
  e.children ? String(e.children) : void 0
@@ -245,7 +280,7 @@ const y = {
245
280
  * Create an anchor element with modifier support
246
281
  */
247
282
  a: (e = {}) => {
248
- const t = new m(
283
+ const t = new g(
249
284
  e,
250
285
  "a",
251
286
  e.children ? String(e.children) : void 0,
@@ -260,7 +295,7 @@ const y = {
260
295
  * Create a paragraph element with modifier support
261
296
  */
262
297
  p: (e = {}) => {
263
- const t = new m(
298
+ const t = new g(
264
299
  e,
265
300
  "p",
266
301
  e.children ? String(e.children) : void 0
@@ -274,7 +309,7 @@ const y = {
274
309
  * use the main Button component instead.
275
310
  */
276
311
  button: (e = {}) => {
277
- const t = new m(
312
+ const t = new g(
278
313
  e,
279
314
  "button",
280
315
  e.children ? String(e.children) : void 0,
@@ -288,13 +323,13 @@ const y = {
288
323
  * Create an input element with modifier support
289
324
  */
290
325
  input: (e = {}) => {
291
- const t = new m(e, "input", void 0, {
326
+ const t = new g(e, "input", void 0, {
292
327
  type: e.type || "text",
293
328
  value: e.value || "",
294
329
  placeholder: e.placeholder || "",
295
330
  oninput: (s) => {
296
- const n = s.target;
297
- e.onChange?.(n.value);
331
+ const i = s.target;
332
+ e.onChange?.(i.value);
298
333
  }
299
334
  });
300
335
  return f(t);
@@ -306,7 +341,7 @@ const y = {
306
341
  * use the main Image component instead.
307
342
  */
308
343
  img: (e) => {
309
- const t = new m(e, "img", void 0, {
344
+ const t = new g(e, "img", void 0, {
310
345
  src: e.src,
311
346
  alt: e.alt || "",
312
347
  width: e.width,
@@ -318,30 +353,30 @@ const y = {
318
353
  * Create a heading element with modifier support
319
354
  */
320
355
  heading: (e) => (t = {}) => {
321
- const s = new m(
356
+ const s = new g(
322
357
  t,
323
358
  `h${e}`,
324
359
  t.children ? String(t.children) : void 0
325
360
  );
326
361
  return f(s);
327
362
  }
328
- }, Q = y.heading(1), tt = y.heading(2), et = y.heading(3), st = y.heading(4), ot = y.heading(5), nt = y.heading(6);
329
- var X = Object.defineProperty, k = (e, t, s) => t in e ? X(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, r = (e, t, s) => k(e, typeof t != "symbol" ? t + "" : t, s);
330
- class j {
363
+ }, st = y.heading(1), ot = y.heading(2), it = y.heading(3), nt = y.heading(4), rt = y.heading(5), lt = y.heading(6);
364
+ var j = Object.defineProperty, U = (e, t, s) => t in e ? j(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s, l = (e, t, s) => U(e, typeof t != "symbol" ? t + "" : t, s);
365
+ class q {
331
366
  constructor(t) {
332
- this.props = t, r(this, "type", "component"), r(this, "id"), r(this, "mounted", !1), r(this, "cleanup", []), r(this, "scrollElement", null), r(this, "contentOffsetSignal"), r(this, "setContentOffset"), r(this, "contentSizeSignal"), r(this, "setContentSize"), r(this, "setIsScrolling"), r(this, "pullToRefreshStateSignal"), r(this, "setPullToRefreshState"), r(this, "scrollEventThrottle"), r(this, "lastScrollTime", 0), r(this, "scrollVelocity", { x: 0, y: 0 }), r(this, "lastScrollOffset", { x: 0, y: 0 }), r(this, "pullStartY", 0), r(this, "isPulling", !1), r(this, "handleScroll", (h) => {
367
+ this.props = t, l(this, "type", "component"), l(this, "id"), l(this, "mounted", !1), l(this, "cleanup", []), l(this, "scrollElement", null), l(this, "contentOffsetSignal"), l(this, "setContentOffset"), l(this, "contentSizeSignal"), l(this, "setContentSize"), l(this, "setIsScrolling"), l(this, "pullToRefreshStateSignal"), l(this, "setPullToRefreshState"), l(this, "scrollEventThrottle"), l(this, "lastScrollTime", 0), l(this, "scrollVelocity", { x: 0, y: 0 }), l(this, "lastScrollOffset", { x: 0, y: 0 }), l(this, "pullStartY", 0), l(this, "isPulling", !1), l(this, "handleScroll", (h) => {
333
368
  if (!this.scrollElement) return;
334
- const p = performance.now(), c = p - this.lastScrollTime;
335
- if (c < this.scrollEventThrottle) return;
369
+ const p = performance.now(), a = p - this.lastScrollTime;
370
+ if (a < this.scrollEventThrottle) return;
336
371
  const d = {
337
372
  x: this.scrollElement.scrollLeft,
338
373
  y: this.scrollElement.scrollTop
339
374
  };
340
- this.scrollVelocity = this.calculateVelocity(d, c), this.setContentOffset(d), this.setContentSize({
375
+ this.scrollVelocity = this.calculateVelocity(d, a), this.setContentOffset(d), this.setContentSize({
341
376
  width: this.scrollElement.scrollWidth,
342
377
  height: this.scrollElement.scrollHeight
343
378
  });
344
- const a = this.detectScrollEdges(), w = {
379
+ const c = this.detectScrollEdges(), w = {
345
380
  offset: d,
346
381
  velocity: this.scrollVelocity,
347
382
  contentSize: {
@@ -352,20 +387,20 @@ class j {
352
387
  width: this.scrollElement.clientWidth,
353
388
  height: this.scrollElement.clientHeight
354
389
  },
355
- edges: a
390
+ edges: c
356
391
  };
357
- this.props.onScroll && this.props.onScroll(w), a.top && this.props.onReachTop && this.props.onReachTop(), a.bottom && this.props.onReachBottom && this.props.onReachBottom(), a.left && this.props.onReachLeft && this.props.onReachLeft(), a.right && this.props.onReachRight && this.props.onReachRight(), this.lastScrollOffset = d, this.lastScrollTime = p;
358
- }), r(this, "handleScrollStart", () => {
392
+ this.props.onScroll && this.props.onScroll(w), c.top && this.props.onReachTop && this.props.onReachTop(), c.bottom && this.props.onReachBottom && this.props.onReachBottom(), c.left && this.props.onReachLeft && this.props.onReachLeft(), c.right && this.props.onReachRight && this.props.onReachRight(), this.lastScrollOffset = d, this.lastScrollTime = p;
393
+ }), l(this, "handleScrollStart", () => {
359
394
  this.setIsScrolling(!0), this.props.onScrollBegin && this.props.onScrollBegin();
360
- }), r(this, "handleScrollEnd", () => {
395
+ }), l(this, "handleScrollEnd", () => {
361
396
  this.setIsScrolling(!1), this.props.onScrollEnd && this.props.onScrollEnd();
362
- }), r(this, "handleTouchStart", (h) => {
397
+ }), l(this, "handleTouchStart", (h) => {
363
398
  this.props.refreshControl?.enabled && (this.pullStartY = h.touches[0].clientY, this.isPulling = !1);
364
- }), r(this, "handleTouchMove", (h) => {
399
+ }), l(this, "handleTouchMove", (h) => {
365
400
  if (!this.props.refreshControl?.enabled || !this.scrollElement) return;
366
- const c = h.touches[0].clientY - this.pullStartY, d = this.props.refreshControl.threshold || 80;
367
- this.scrollElement.scrollTop <= 0 && c > 0 && (this.isPulling = !0, c > d ? this.setPullToRefreshState("ready") : this.setPullToRefreshState("pulling"));
368
- }), r(this, "handleTouchEnd", async () => {
401
+ const a = h.touches[0].clientY - this.pullStartY, d = this.props.refreshControl.threshold || 80;
402
+ this.scrollElement.scrollTop <= 0 && a > 0 && (this.isPulling = !0, a > d ? this.setPullToRefreshState("ready") : this.setPullToRefreshState("pulling"));
403
+ }), l(this, "handleTouchEnd", async () => {
369
404
  if (!this.props.refreshControl?.enabled || !this.isPulling) return;
370
405
  if (this.pullToRefreshStateSignal() === "ready") {
371
406
  this.setPullToRefreshState("refreshing");
@@ -380,29 +415,29 @@ class j {
380
415
  this.setPullToRefreshState("idle");
381
416
  this.isPulling = !1;
382
417
  }), this.id = `scrollview-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, this.scrollEventThrottle = t.scrollEventThrottle || 16;
383
- const [s, n] = E(
418
+ const [s, i] = b(
384
419
  { x: 0, y: 0 }
385
420
  );
386
- this.contentOffsetSignal = s, this.setContentOffset = n;
387
- const [o, i] = E({
421
+ this.contentOffsetSignal = s, this.setContentOffset = i;
422
+ const [o, r] = b({
388
423
  width: 0,
389
424
  height: 0
390
425
  });
391
- this.contentSizeSignal = o, this.setContentSize = i;
392
- const [, l] = E(!1);
393
- this.setIsScrolling = l;
394
- const [u, R] = E("idle");
395
- if (this.pullToRefreshStateSignal = u, this.setPullToRefreshState = R, t.contentOffset && v(t.contentOffset)) {
426
+ this.contentSizeSignal = o, this.setContentSize = r;
427
+ const [, n] = b(!1);
428
+ this.setIsScrolling = n;
429
+ const [E, R] = b("idle");
430
+ if (this.pullToRefreshStateSignal = E, this.setPullToRefreshState = R, t.contentOffset && S(t.contentOffset)) {
396
431
  this.setContentOffset(t.contentOffset());
397
- const h = b(() => {
398
- t.contentOffset && v(t.contentOffset) && this.setContentOffset(t.contentOffset());
432
+ const h = v(() => {
433
+ t.contentOffset && S(t.contentOffset) && this.setContentOffset(t.contentOffset());
399
434
  });
400
435
  this.cleanup.push(() => h.dispose());
401
436
  }
402
- if (t.contentSize && v(t.contentSize)) {
437
+ if (t.contentSize && S(t.contentSize)) {
403
438
  this.setContentSize(t.contentSize());
404
- const h = b(() => {
405
- t.contentSize && v(t.contentSize) && this.setContentSize(t.contentSize());
439
+ const h = v(() => {
440
+ t.contentSize && S(t.contentSize) && this.setContentSize(t.contentSize());
406
441
  });
407
442
  this.cleanup.push(() => h.dispose());
408
443
  }
@@ -411,9 +446,9 @@ class j {
411
446
  * Calculate scroll velocity
412
447
  */
413
448
  calculateVelocity(t, s) {
414
- const n = t.x - this.lastScrollOffset.x, o = t.y - this.lastScrollOffset.y;
449
+ const i = t.x - this.lastScrollOffset.x, o = t.y - this.lastScrollOffset.y;
415
450
  return {
416
- x: s > 0 ? n / s : 0,
451
+ x: s > 0 ? i / s : 0,
417
452
  y: s > 0 ? o / s : 0
418
453
  };
419
454
  }
@@ -426,16 +461,16 @@ class j {
426
461
  const {
427
462
  scrollTop: t,
428
463
  scrollLeft: s,
429
- scrollHeight: n,
464
+ scrollHeight: i,
430
465
  scrollWidth: o,
431
- clientHeight: i,
432
- clientWidth: l
466
+ clientHeight: r,
467
+ clientWidth: n
433
468
  } = this.scrollElement;
434
469
  return {
435
470
  top: t <= 0,
436
- bottom: t + i >= n - 1,
471
+ bottom: t + r >= i - 1,
437
472
  left: s <= 0,
438
- right: s + l >= o - 1
473
+ right: s + n >= o - 1
439
474
  };
440
475
  }
441
476
  /**
@@ -443,21 +478,21 @@ class j {
443
478
  */
444
479
  setupScrollHandlers(t) {
445
480
  let s;
446
- const n = () => {
481
+ const i = () => {
447
482
  clearTimeout(s), this.handleScrollStart();
448
483
  }, o = () => {
449
484
  clearTimeout(s), s = setTimeout(() => {
450
485
  this.handleScrollEnd();
451
486
  }, 150);
452
- }, i = (l) => {
453
- n(), this.handleScroll(l), o();
487
+ }, r = (n) => {
488
+ i(), this.handleScroll(n), o();
454
489
  };
455
- t.addEventListener("scroll", i, { passive: !0 }), t.addEventListener("touchstart", this.handleTouchStart, {
490
+ t.addEventListener("scroll", r, { passive: !0 }), t.addEventListener("touchstart", this.handleTouchStart, {
456
491
  passive: !0
457
492
  }), t.addEventListener("touchmove", this.handleTouchMove, {
458
493
  passive: !1
459
494
  }), t.addEventListener("touchend", this.handleTouchEnd, { passive: !0 }), this.cleanup.push(() => {
460
- t.removeEventListener("scroll", i), t.removeEventListener("touchstart", this.handleTouchStart), t.removeEventListener("touchmove", this.handleTouchMove), t.removeEventListener("touchend", this.handleTouchEnd), clearTimeout(s);
495
+ t.removeEventListener("scroll", r), t.removeEventListener("touchstart", this.handleTouchStart), t.removeEventListener("touchmove", this.handleTouchMove), t.removeEventListener("touchend", this.handleTouchEnd), clearTimeout(s);
461
496
  });
462
497
  }
463
498
  /**
@@ -490,7 +525,7 @@ class j {
490
525
  * Apply additional scroll view styling (position and overflow already set in initial render)
491
526
  */
492
527
  applyScrollViewStyles(t) {
493
- const { showsScrollIndicator: s = !0, bounces: n = !0 } = this.props;
528
+ const { showsScrollIndicator: s = !0, bounces: i = !0 } = this.props;
494
529
  if (!s) {
495
530
  t.style.scrollbarWidth = "none", t.style.msOverflowStyle = "none";
496
531
  const o = document.createElement("style");
@@ -502,7 +537,7 @@ class j {
502
537
  document.head.removeChild(o);
503
538
  });
504
539
  }
505
- n ? t.style.webkitOverflowScrolling = "touch" : t.style.overscrollBehavior = "none", t.style.scrollBehavior = "smooth";
540
+ i ? t.style.webkitOverflowScrolling = "touch" : t.style.overscrollBehavior = "none", t.style.scrollBehavior = "smooth";
506
541
  }
507
542
  /**
508
543
  * Apply content insets
@@ -510,8 +545,8 @@ class j {
510
545
  applyContentInsets(t) {
511
546
  const { contentInset: s } = this.props;
512
547
  if (s) {
513
- const { top: n = 0, bottom: o = 0, left: i = 0, right: l = 0 } = s;
514
- t.style.padding = `${n}px ${l}px ${o}px ${i}px`;
548
+ const { top: i = 0, bottom: o = 0, left: r = 0, right: n = 0 } = s;
549
+ t.style.padding = `${i}px ${n}px ${o}px ${r}px`;
515
550
  }
516
551
  }
517
552
  /**
@@ -520,28 +555,28 @@ class j {
520
555
  createPullToRefreshIndicator() {
521
556
  if (!this.props.refreshControl?.enabled) return null;
522
557
  const t = this.pullToRefreshStateSignal(), s = this.props.refreshControl.tintColor || "#007AFF";
523
- let n = "";
558
+ let i = "";
524
559
  switch (t) {
525
560
  case "pulling":
526
- n = "↓ Pull to refresh";
561
+ i = "↓ Pull to refresh";
527
562
  break;
528
563
  case "ready":
529
- n = "↑ Release to refresh";
564
+ i = "↑ Release to refresh";
530
565
  break;
531
566
  case "refreshing":
532
- n = "⟳ Refreshing...";
567
+ i = "⟳ Refreshing...";
533
568
  break;
534
569
  default:
535
- n = "";
570
+ i = "";
536
571
  }
537
- return n ? {
572
+ return i ? {
538
573
  type: "component",
539
574
  id: `${this.id}-refresh`,
540
575
  mounted: !1,
541
576
  cleanup: [],
542
577
  props: {},
543
578
  render: () => [
544
- S(
579
+ m(
545
580
  "div",
546
581
  {
547
582
  style: {
@@ -561,7 +596,7 @@ class j {
561
596
  opacity: t === "idle" ? 0 : 1
562
597
  }
563
598
  },
564
- n
599
+ i
565
600
  )
566
601
  ]
567
602
  } : null;
@@ -571,8 +606,8 @@ class j {
571
606
  */
572
607
  scrollTo(t, s = "smooth") {
573
608
  if (!this.scrollElement) return;
574
- const n = { behavior: s };
575
- t.x !== void 0 && (n.left = t.x), t.y !== void 0 && (n.top = t.y), this.scrollElement.scrollTo(n);
609
+ const i = { behavior: s };
610
+ t.x !== void 0 && (i.left = t.x), t.y !== void 0 && (i.top = t.y), this.scrollElement.scrollTo(i);
576
611
  }
577
612
  /**
578
613
  * Scroll to top
@@ -597,13 +632,13 @@ class j {
597
632
  */
598
633
  render() {
599
634
  const { children: t = [], scrollEnabled: s = !0 } = this.props;
600
- let n = [];
635
+ let i = [];
601
636
  const o = t;
602
637
  if (typeof o == "function") {
603
- const c = o();
604
- n = Array.isArray(c) ? c : [];
605
- } else Array.isArray(t) && (n = t);
606
- const i = S(
638
+ const a = o();
639
+ i = Array.isArray(a) ? a : [];
640
+ } else Array.isArray(t) && (i = t);
641
+ const r = m(
607
642
  "div",
608
643
  {
609
644
  class: "tachui-scrollview-content",
@@ -612,14 +647,14 @@ class j {
612
647
  minWidth: "100%"
613
648
  }
614
649
  },
615
- ...n.flatMap((c) => c.render())
616
- ), l = this.createPullToRefreshIndicator(), u = [];
617
- if (l) {
618
- const c = l.render(), d = Array.isArray(c) ? c : [c];
619
- u.push(...d.filter((a) => a));
650
+ ...i.flatMap((a) => a.render())
651
+ ), n = this.createPullToRefreshIndicator(), E = [];
652
+ if (n) {
653
+ const a = n.render(), d = Array.isArray(a) ? a : [a];
654
+ E.push(...d.filter((c) => c));
620
655
  }
621
- u.push(i);
622
- const { direction: R = "vertical" } = this.props, h = this.getOverflowStyles(R), p = S(
656
+ E.push(r);
657
+ const { direction: R = "vertical" } = this.props, h = this.getOverflowStyles(R), p = m(
623
658
  "div",
624
659
  {
625
660
  id: this.id,
@@ -631,46 +666,46 @@ class j {
631
666
  ...h
632
667
  }
633
668
  },
634
- ...u
669
+ ...E
635
670
  );
636
671
  if (p.element) {
637
- const c = p.element;
638
- this.scrollElement = c, this.applyScrollViewStyles(c), this.setupScrollHandlers(c), i.element && this.applyContentInsets(i.element);
672
+ const a = p.element;
673
+ this.scrollElement = a, this.applyScrollViewStyles(a), this.setupScrollHandlers(a), r.element && this.applyContentInsets(r.element);
639
674
  const d = () => {
640
- const a = v(s) ? s() : s;
641
- c.style.overflow = a ? "auto" : "hidden", c.style.pointerEvents = a ? "auto" : "none";
675
+ const c = S(s) ? s() : s;
676
+ a.style.overflow = c ? "auto" : "hidden", a.style.pointerEvents = c ? "auto" : "none";
642
677
  };
643
- if (v(s)) {
644
- const a = b(d);
645
- this.cleanup.push(() => a.dispose());
678
+ if (S(s)) {
679
+ const c = v(d);
680
+ this.cleanup.push(() => c.dispose());
646
681
  } else
647
682
  d();
648
683
  if (typeof o == "function") {
649
- const a = b(() => {
650
- const w = o(), _ = (Array.isArray(w) ? w : []).flatMap((T) => T.render());
651
- if (i.element) {
652
- const T = i.element;
653
- T.innerHTML = "", _.forEach((P) => {
654
- P && P.element && T.appendChild(P.element);
684
+ const c = v(() => {
685
+ const w = o(), _ = (Array.isArray(w) ? w : []).flatMap((C) => C.render());
686
+ if (r.element) {
687
+ const C = r.element;
688
+ C.innerHTML = "", _.forEach((L) => {
689
+ L && L.element && C.appendChild(L.element);
655
690
  });
656
691
  }
657
692
  });
658
- this.cleanup.push(() => a.dispose());
693
+ this.cleanup.push(() => c.dispose());
659
694
  }
660
695
  }
661
696
  return [p];
662
697
  }
663
698
  }
664
- function A(e = {}) {
665
- const t = new j(e);
699
+ function I(e = {}) {
700
+ const t = new q(e);
666
701
  return f(t);
667
702
  }
668
- const it = {
703
+ const at = {
669
704
  /**
670
705
  * Create a scroll view with pull to refresh
671
706
  */
672
707
  withRefresh(e, t, s = {}) {
673
- return A({
708
+ return I({
674
709
  children: e,
675
710
  refreshControl: {
676
711
  enabled: !0,
@@ -683,7 +718,7 @@ const it = {
683
718
  * Create a horizontal scroll view
684
719
  */
685
720
  horizontal(e, t = {}) {
686
- return A({
721
+ return I({
687
722
  ...t,
688
723
  children: e,
689
724
  direction: "horizontal"
@@ -693,7 +728,7 @@ const it = {
693
728
  * Create a paged scroll view
694
729
  */
695
730
  paged(e, t = {}) {
696
- return A({
731
+ return I({
697
732
  ...t,
698
733
  children: e,
699
734
  pagingEnabled: !0
@@ -701,19 +736,19 @@ const it = {
701
736
  }
702
737
  };
703
738
  export {
704
- F as E,
739
+ B as E,
705
740
  y as H,
706
- I,
707
- A as S,
708
- J as a,
709
- K as b,
710
- Z as c,
711
- Q as d,
712
- tt as e,
713
- et as f,
714
- st as g,
715
- ot as h,
716
- nt as i,
717
- j,
718
- it as k
741
+ P as I,
742
+ I as S,
743
+ Q as a,
744
+ tt as b,
745
+ et as c,
746
+ st as d,
747
+ ot as e,
748
+ it as f,
749
+ nt as g,
750
+ rt as h,
751
+ lt as i,
752
+ q as j,
753
+ at as k
719
754
  };
@@ -86,6 +86,7 @@ export declare class EnhancedImage extends ComponentWithCSSClasses implements Co
86
86
  * Set up ImageAsset reactivity for a real DOM element (called from onDOMReady)
87
87
  */
88
88
  private setupImageAssetReactivityForDOMElement;
89
+ private setupLoadingStateReactivityForDOMElement;
89
90
  /**
90
91
  * Concatenate this image with another concatenatable component
91
92
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../src/display/Image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,gCAAgC,EACjC,MAAM,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAI1D,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAEjB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAG5E,KAAK,cAAc,GAAG,UAAU,GAAG,eAAe,CAAA;AAClD,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,cAAc,CAAA;AAE3D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEvE;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,MAAM,GACN,SAAS,GACT,QAAQ,GACR,WAAW,CAAA;AAEf;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;AAEnE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAA;AAoBnD,MAAM,WAAW,UACf,SAAQ,cAAc,EACpB,oBAAoB,EACpB,eAAe;IAEjB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAG7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;IACjD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAGrC,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,UAAU,CAAC,EAAE,eAAe,CAAA;IAG5B,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAA;IACxC,gBAAgB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAA;IAG7C,YAAY,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACxC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAGzD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IAGxB,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAA;IAC7C,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;IAGvC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IACrC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAGjC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,qBAAa,aACX,SAAQ,uBACR,YAAW,iBAAiB,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC;IAwBjD,KAAK,EAAE,UAAU;IAtBpC,SAAgB,IAAI,EAAG,WAAW,CAAS;IAC3C,SAAgB,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,UAAQ;IACf,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAK;IACnC,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,eAAe,CAAoC;IAE3D;;OAEG;IACH,OAAO,CAAC,2BAA2B;gBAQhB,KAAK,EAAE,UAAU;IAqCpC;;OAEG;IACH,MAAM;IAqEN;;OAEG;IACH,OAAO,CAAC,sCAAsC;IAsB9C;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC,EAClC,KAAK,EAAE,CAAC,GACP,qBAAqB,CAAC,UAAU,GAAG,CAAC,CAAC;IAoBxC;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAY7B;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAkBlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAShC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH;;GAEG;AACH,MAAM,WAAW,mBACf,SAAQ,gCAAgC,CAAC,UAAU,CAAC;IACpD,WAAW,IAAI,mBAAmB,CAAA;IAClC,YAAY,IAAI,mBAAmB,CAAA;CACpC;AAED,wBAAgB,KAAK,CACnB,GAAG,EAAE,WAAW,EAChB,KAAK,GAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAM,GAClC,mBAAmB,CA0CrB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;CAKvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;wBAEQ;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,eAC7C,MAAM,UACZ,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAC,GACxC,mBAAmB,CAAC,UAAU,CAAC,GAAG;QACnC,QAAQ,EAAE,eAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAA;KAC3D;IAYD;;OAEG;+BAEc,MAAM,kBACL,MAAM,UACf,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,eAAe,GAAG,gBAAgB,CAAC,GAClE,mBAAmB,CAAC,UAAU,CAAC,GAAG;QACnC,QAAQ,EAAE,eAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAA;KAC3D;IAQD;;OAEG;yBAEI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,kBACZ,MAAM,UACf,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,aAAa,CAAC,GAC7C,mBAAmB,CAAC,UAAU,CAAC,GAAG;QACnC,QAAQ,EAAE,eAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAA;KAC3D;CAMF,CAAA"}
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../src/display/Image.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { E as e, H as t, T as o, a as H, b as l, c as n } from "../Text-WpP4H9se.js";
2
- import { E as c, j as g, d as m, e as i, f as T, g as d, h as x, i as I, H as S, I as h, b as E, a as p, c as f, S as w, k as y } from "../ScrollView-CC8g8Lq2.js";
2
+ import { E as c, j as g, d as m, e as i, f as T, g as d, h as x, i as I, H as S, I as h, b as E, a as p, c as f, S as w, k as y } from "../ScrollView-CtvxVuuS.js";
3
3
  export {
4
4
  c as EnhancedImage,
5
5
  g as EnhancedScrollView,
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Divider as b, DividerComponent as P, DividerStyles as I, DividerUtils as y, HStack as j, Spacer as S, SpacerComponent as A, VStack as L, ZStack as C, defaultDividerTheme as V } from "./layout/index.js";
2
2
  import { E as O, H as E, T as $, a as F, b as q, c as U } from "./Text-WpP4H9se.js";
3
- import { E as N, j as _, d as W, e as R, f as M, g as G, h as K, i as Z, H as z, I as J, b as Q, a as X, c as Y, S as ee, k as te } from "./ScrollView-CC8g8Lq2.js";
3
+ import { E as N, j as _, d as W, e as R, f as M, g as G, h as K, i as Z, H as z, I as J, b as Q, a as X, c as Y, S as ee, k as te } from "./ScrollView-CtvxVuuS.js";
4
4
  import { B as ne, a as ie, E as re, h as ae, c as se, L as ce, b as le, P as pe, i as de, j as ge, T as ue, e as me, f as he, g as fe, d as ve } from "./Picker-CpERkpVp.js";
5
5
  import { B as xe, a as ke, b as Be, c as Te, d as be, e as Pe, f as Ie } from "./BasicInput-BHfrSdoi.js";
6
6
  import { withModifiers as je } from "@tachui/core";
@@ -425,7 +425,7 @@ const w = {
425
425
  }
426
426
  console.groupEnd();
427
427
  }
428
- }, h = "@tachui/primitives", f = "0.8.15", x = h, k = f;
428
+ }, h = "@tachui/primitives", f = "0.8.16", x = h, k = f;
429
429
  export {
430
430
  xe as BasicForm,
431
431
  ke as BasicFormImplementation,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tachui/primitives",
3
- "version": "0.8.15",
3
+ "version": "0.8.16",
4
4
  "description": "Basic UI components for tachUI framework",
5
5
  "homepage": "https://tachui.dev/",
6
6
  "type": "module",
@@ -33,8 +33,8 @@
33
33
  "dist"
34
34
  ],
35
35
  "dependencies": {
36
- "@tachui/modifiers": "0.8.15",
37
- "@tachui/core": "0.8.15"
36
+ "@tachui/core": "0.8.16",
37
+ "@tachui/modifiers": "0.8.16"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^20.0.0",