lilact 0.16.2 → 0.17.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/lilact.development.js +124 -50
  2. package/dist/lilact.development.js.map +3 -3
  3. package/dist/lilact.development.min.js +20 -20
  4. package/dist/lilact.development.min.js.map +3 -3
  5. package/dist/lilact.production.min.js +22 -22
  6. package/docs/assets/hierarchy.js +1 -1
  7. package/docs/assets/navigation.js +1 -1
  8. package/docs/assets/search.js +1 -1
  9. package/docs/classes/accessories.ErrorBoundary.html +8 -8
  10. package/docs/classes/accessories.Suspense.html +7 -7
  11. package/docs/classes/components.Component.html +11 -11
  12. package/docs/classes/components.HTMLComponent.html +11 -11
  13. package/docs/classes/components.RootComponent.html +11 -11
  14. package/docs/functions/components.createComponent.html +1 -1
  15. package/docs/functions/components.createRoot.html +1 -1
  16. package/docs/functions/components.render.html +1 -1
  17. package/docs/functions/hooks.startTransition.html +6 -0
  18. package/docs/functions/hooks.useActionState.html +1 -1
  19. package/docs/functions/hooks.useDebugValue.html +5 -0
  20. package/docs/functions/hooks.useDeferredValue.html +1 -1
  21. package/docs/functions/hooks.useEffect.html +4 -4
  22. package/docs/functions/hooks.useImperativeHandle.html +1 -1
  23. package/docs/functions/hooks.useInsertionEffect.html +5 -0
  24. package/docs/functions/hooks.useLayoutEffect.html +2 -2
  25. package/docs/functions/hooks.useMemo.html +3 -3
  26. package/docs/functions/hooks.useReducer.html +1 -1
  27. package/docs/functions/misc.Fragment.html +2 -2
  28. package/docs/functions/misc.deepEqual.html +1 -1
  29. package/docs/functions/misc.findDOMNode.html +1 -1
  30. package/docs/functions/misc.forwardRef.html +1 -1
  31. package/docs/functions/misc.getComponentByPointer.html +1 -1
  32. package/docs/functions/misc.isAsync.html +1 -1
  33. package/docs/functions/misc.isClass.html +1 -1
  34. package/docs/functions/misc.isEmpty.html +1 -1
  35. package/docs/functions/misc.isError.html +1 -1
  36. package/docs/functions/misc.isThenable.html +1 -1
  37. package/docs/functions/{misc.isValidElement.html → misc.isValidComponent.html} +1 -1
  38. package/docs/functions/misc.shallowEqual.html +1 -1
  39. package/docs/functions/misc.toBool.html +1 -1
  40. package/docs/functions/timers.timeoutPromise.html +9 -6
  41. package/docs/hierarchy.html +1 -1
  42. package/docs/modules/hooks.html +1 -1
  43. package/docs/modules/misc.html +1 -1
  44. package/docs/static/demos/actionstate.jsx +2 -2
  45. package/docs/static/demos/priorities.jsx +68 -0
  46. package/docs/static/index.html +2 -1
  47. package/docs/static/lilact.development.js +124 -50
  48. package/docs/static/lilact.development.js.map +3 -3
  49. package/docs/static/lilact.development.min.js +20 -20
  50. package/docs/static/lilact.development.min.js.map +3 -3
  51. package/docs/static/lilact.production.min.js +22 -22
  52. package/docs/variables/misc.Children.html +2 -2
  53. package/docs/variables/misc.isValidElement.html +7 -0
  54. package/examples/demos/actionstate.jsx +2 -2
  55. package/examples/demos/priorities.jsx +68 -0
  56. package/examples/index.html +2 -1
  57. package/examples/lilact.development.js +124 -50
  58. package/examples/lilact.development.js.map +3 -3
  59. package/examples/lilact.development.min.js +20 -20
  60. package/examples/lilact.development.min.js.map +3 -3
  61. package/examples/lilact.production.min.js +22 -22
  62. package/package.json +1 -1
  63. package/src/accessories.jsx +232 -233
  64. package/src/components.jsx +87 -20
  65. package/src/hooks.jsx +80 -11
  66. package/src/lilact.jsx +1 -1
  67. package/src/misc.jsx +9 -5
@@ -1977,14 +1977,20 @@ __export(components_exports, {
1977
1977
  createElement: () => createElement,
1978
1978
  createRoot: () => createRoot,
1979
1979
  current_component: () => current_component,
1980
+ effect_timeout: () => effect_timeout,
1980
1981
  events_set: () => events_set,
1982
+ insertion_effects: () => insertion_effects,
1981
1983
  layout_effects: () => layout_effects,
1982
1984
  length_css_attributes_set: () => length_css_attributes_set,
1985
+ passive_effects: () => passive_effects,
1986
+ processEffects: () => processEffects,
1983
1987
  render: () => render,
1984
1988
  roots: () => roots,
1985
1989
  special_attributes: () => special_attributes,
1986
1990
  update_cbs: () => update_cbs,
1987
- update_set: () => update_set
1991
+ update_interval_margin: () => update_interval_margin,
1992
+ update_set: () => update_set,
1993
+ update_timeout: () => update_timeout
1988
1994
  });
1989
1995
 
1990
1996
  // .tmp/src/symbols.jsx
@@ -2036,11 +2042,10 @@ __export(misc_exports, {
2036
2042
  isEmpty: () => isEmpty,
2037
2043
  isError: () => isError2,
2038
2044
  isThenable: () => isThenable,
2045
+ isValidComponent: () => isValidComponent,
2039
2046
  isValidElement: () => isValidElement,
2040
2047
  shallowEqual: () => shallowEqual,
2041
- toBool: () => toBool,
2042
- update_interval_margin: () => update_interval_margin,
2043
- update_timeout: () => update_timeout
2048
+ toBool: () => toBool
2044
2049
  });
2045
2050
  var typeOf = (input) => {
2046
2051
  const rawObject = Object.prototype.toString.call(input).toLowerCase();
@@ -2048,9 +2053,10 @@ var typeOf = (input) => {
2048
2053
  const type = typeOfRegex.exec(rawObject)[1];
2049
2054
  return type;
2050
2055
  };
2051
- var isValidElement = (value) => {
2056
+ var isValidComponent = (value) => {
2052
2057
  return value[CORE] !== void 0 || value[TEXT] !== void 0;
2053
2058
  };
2059
+ var isValidElement = isValidComponent;
2054
2060
  var findDOMNode = (component) => {
2055
2061
  var _a, _b;
2056
2062
  if (!((_b = (_a = component[CORE]) == null ? void 0 : _a.element) == null ? void 0 : _b.parentNode)) throw new Error("findDOMNode only works on mounted components.");
@@ -2193,8 +2199,6 @@ function toBool(value) {
2193
2199
  }
2194
2200
  return Boolean(value);
2195
2201
  }
2196
- var update_timeout = void 0;
2197
- var update_interval_margin = 0;
2198
2202
  var id_num = Math.floor(Math.random() * 1e4);
2199
2203
  var eval_num = 0;
2200
2204
 
@@ -2239,7 +2243,11 @@ var ComponentCache = class {
2239
2243
  commit() {
2240
2244
  this.current_map.forEach((arr) => {
2241
2245
  arr.slice(arr[IDX]).forEach((ex) => {
2242
- if (ex.cleanup) ex.cleanup();
2246
+ if (ex.cleanup) {
2247
+ ex.cleanup();
2248
+ } else if (ex.element) {
2249
+ ex.element.parentElement.removeChild(ex.element);
2250
+ }
2243
2251
  });
2244
2252
  });
2245
2253
  this.current_map = this.new_map;
@@ -2431,7 +2439,7 @@ var ComponentCore = class {
2431
2439
  }
2432
2440
  }
2433
2441
  updateElementProps(patch, force = false) {
2434
- var _a, _b, _c, _d, _e, _f;
2442
+ var _a, _b, _c, _d, _e, _f, _g;
2435
2443
  if (this.entity === "input") {
2436
2444
  if (!(patch == null ? void 0 : patch.type)) patch.type = "text";
2437
2445
  if (patch.type !== this.element.type) {
@@ -2473,18 +2481,29 @@ var ComponentCore = class {
2473
2481
  (_d = this.event_detachers) != null ? _d : this.event_detachers = {};
2474
2482
  (_f = (_e = this.event_detachers)[al]) == null ? void 0 : _f.call(_e);
2475
2483
  this.event_detachers[al] = lilact_default.addWrappedEventListener(this.element, alc.substring(2), patch[a], { capture: true });
2476
- } else if (al === "style") {
2477
- if (typeof patch[a] === "string") {
2478
- this.element.style = patch[a];
2484
+ } else if (a === "style") {
2485
+ if (typeof patch.style === "string") {
2486
+ this.element.style = patch.style;
2479
2487
  } else {
2480
- for (const x in patch[a]) {
2488
+ if ((_g = this.props) == null ? void 0 : _g.style) {
2489
+ if (typeof this.props.style === "string") {
2490
+ this.element.style = "";
2491
+ } else {
2492
+ for (let p in this.props.style) {
2493
+ if (!patch.style.hasOwnProperty(p)) {
2494
+ this.element.style[p] = "";
2495
+ }
2496
+ }
2497
+ }
2498
+ }
2499
+ for (const x in patch.style) {
2481
2500
  if (length_css_attributes_set.has(x)) {
2482
- if (isFinite(patch[a][x])) {
2483
- patch[a][x] += "px";
2501
+ if (isFinite(patch.style[x])) {
2502
+ patch.style[x] += "px";
2484
2503
  }
2485
2504
  }
2486
2505
  }
2487
- Object.assign(this.element.style, patch[a]);
2506
+ Object.assign(this.element.style, patch.style);
2488
2507
  }
2489
2508
  } else if (boolean_html_attributes_set.has(a)) {
2490
2509
  this.element[a] = toBool(patch[a]);
@@ -2669,16 +2688,26 @@ function prepareCore(parent, core) {
2669
2688
  }
2670
2689
  }
2671
2690
  function doUpdates() {
2691
+ clearTimeout(lilact_default.effect_timeout);
2692
+ const _update_set = lilact_default.update_set;
2693
+ const _update_cbs = lilact_default.update_cbs;
2694
+ lilact_default.update_set = /* @__PURE__ */ new Set();
2695
+ lilact_default.update_cbs = /* @__PURE__ */ new Set();
2696
+ for (const u of _update_set) u.apply();
2697
+ for (const cb of _update_cbs) cb();
2698
+ processEffects();
2699
+ }
2700
+ function processEffects() {
2701
+ const _insertion_effects = lilact_default.insertion_effects;
2702
+ const _layout_effects = lilact_default.layout_effects;
2703
+ const _passive_effects = lilact_default.passive_effects;
2704
+ lilact_default.insertion_effects = /* @__PURE__ */ new Set();
2705
+ lilact_default.layout_effects = /* @__PURE__ */ new Set();
2706
+ lilact_default.passive_effects = /* @__PURE__ */ new Set();
2707
+ for (const ie of _insertion_effects) ie();
2708
+ for (const le of _layout_effects) le();
2672
2709
  requestAnimationFrame(() => {
2673
- let _layout_effects = lilact_default.layout_effects;
2674
- let _update_cbs = lilact_default.update_cbs;
2675
- let _update_set = lilact_default.update_set;
2676
- lilact_default.layout_effects = /* @__PURE__ */ new Set();
2677
- lilact_default.update_cbs = /* @__PURE__ */ new Set();
2678
- lilact_default.update_set = /* @__PURE__ */ new Set();
2679
- for (const le of _layout_effects) le();
2680
- for (const u of _update_set) u.apply();
2681
- for (const cb of _update_cbs) cb();
2710
+ for (const pe of _passive_effects) pe();
2682
2711
  });
2683
2712
  }
2684
2713
  var generateComponentKey = (entity, props) => {
@@ -2874,7 +2903,7 @@ var RootComponent = class extends HTMLComponent {
2874
2903
  }
2875
2904
  };
2876
2905
  function createComponent2(entity, props = {}, ...children) {
2877
- if (entity !== void 0 && typeof entity !== "string" && typeof entity !== "function") {
2906
+ if (typeof entity !== "string" && typeof entity !== "function") {
2878
2907
  throw new Error("Invalid entity for createComponent.");
2879
2908
  }
2880
2909
  for (let i2 = 0; i2 < children.length; i2++) {
@@ -2930,6 +2959,11 @@ var update_set = /* @__PURE__ */ new Set();
2930
2959
  var update_cbs = /* @__PURE__ */ new Set();
2931
2960
  var roots = /* @__PURE__ */ new Set();
2932
2961
  var layout_effects = /* @__PURE__ */ new Set();
2962
+ var insertion_effects = /* @__PURE__ */ new Set();
2963
+ var passive_effects = /* @__PURE__ */ new Set();
2964
+ var update_timeout = void 0;
2965
+ var effect_timeout = void 0;
2966
+ var update_interval_margin = 0;
2933
2967
  var special_attributes = /* @__PURE__ */ new Set([
2934
2968
  "classname",
2935
2969
  "ref",
@@ -3086,14 +3120,17 @@ var boolean_html_attributes_set = /* @__PURE__ */ new Set([
3086
3120
  var hooks_exports = {};
3087
3121
  __export(hooks_exports, {
3088
3122
  createContext: () => createContext,
3123
+ startTransition: () => startTransition,
3089
3124
  useActionState: () => useActionState,
3090
3125
  useCallback: () => useCallback,
3091
3126
  useContext: () => useContext,
3127
+ useDebugValue: () => useDebugValue,
3092
3128
  useDeferredValue: () => useDeferredValue,
3093
3129
  useEffect: () => useEffect,
3094
3130
  useHook: () => useHook,
3095
3131
  useId: () => useId,
3096
3132
  useImperativeHandle: () => useImperativeHandle,
3133
+ useInsertionEffect: () => useInsertionEffect,
3097
3134
  useLayoutEffect: () => useLayoutEffect,
3098
3135
  useLocalStorage: () => useLocalStorage,
3099
3136
  useMemo: () => useMemo,
@@ -3172,10 +3209,10 @@ function useTransition() {
3172
3209
  if (isEmpty(hk)) {
3173
3210
  hk.count = 0;
3174
3211
  hk.func = (async function(core, hk2, fn) {
3175
- hk2.count++;
3176
- if (hk2.count === 1) {
3212
+ if (hk2.count === 0) {
3177
3213
  core.component.forceUpdate();
3178
3214
  }
3215
+ hk2.count++;
3179
3216
  await fn();
3180
3217
  hk2.count--;
3181
3218
  if (hk2.count === 0) {
@@ -3218,7 +3255,7 @@ function useRef(initialValue = null) {
3218
3255
  }
3219
3256
  function useLayoutEffect(effect, deps = void 0) {
3220
3257
  if (deps !== void 0 && (typeof deps !== "object" || deps.constructor.name !== "Array")) {
3221
- throw new Error("Layout effect dependencies must be an array or omitted.");
3258
+ throw new Error("Layout effect dependencies must be an array, object or omitted.");
3222
3259
  }
3223
3260
  const hk = useHook();
3224
3261
  if (!isEmpty(hk)) {
@@ -3231,11 +3268,12 @@ function useLayoutEffect(effect, deps = void 0) {
3231
3268
  lilact_default.layout_effects.add(() => {
3232
3269
  hk.cleanup = effect();
3233
3270
  });
3234
- lilact_default.current_component[0].component.forceUpdate();
3271
+ lilact_default.clearTimeout(lilact_default.effect_timeout);
3272
+ lilact_default.setTimeout(lilact_default.processEffects, 0);
3235
3273
  }
3236
3274
  function useEffect(effect, deps = void 0) {
3237
3275
  if (deps !== void 0 && (typeof deps !== "object" || deps.constructor.name !== "Array")) {
3238
- throw new Error("Effect dependencies must be an array or omitted.");
3276
+ throw new Error("Effect dependencies must be an array, object or omitted.");
3239
3277
  }
3240
3278
  const hk = useHook();
3241
3279
  if (!isEmpty(hk)) {
@@ -3245,9 +3283,29 @@ function useEffect(effect, deps = void 0) {
3245
3283
  hk.cleanup();
3246
3284
  }
3247
3285
  hk.deps = deps;
3248
- lilact_default.setTimeout(() => {
3286
+ lilact_default.passive_effects.add(() => {
3249
3287
  hk.cleanup = effect();
3250
- }, 0);
3288
+ });
3289
+ lilact_default.clearTimeout(lilact_default.effect_timeout);
3290
+ lilact_default.setTimeout(lilact_default.processEffects, 0);
3291
+ }
3292
+ function useInsertionEffect(effect, deps = void 0) {
3293
+ if (deps !== void 0 && (typeof deps !== "object" || deps.constructor.name !== "Array")) {
3294
+ throw new Error("Insertion effect dependencies must be an array, object, or omitted.");
3295
+ }
3296
+ const hk = useHook();
3297
+ if (!isEmpty(hk)) {
3298
+ if (deps !== void 0 && (hk == null ? void 0 : hk.deps) !== void 0 && shallowEqual(deps, hk.deps)) return;
3299
+ }
3300
+ if (hk == null ? void 0 : hk.cleanup) {
3301
+ hk.cleanup();
3302
+ }
3303
+ hk.deps = deps;
3304
+ lilact_default.insertion_effects.add(() => {
3305
+ hk.cleanup = effect();
3306
+ });
3307
+ lilact_default.clearTimeout(lilact_default.effect_timeout);
3308
+ lilact_default.setTimeout(lilact_default.processEffects, 0);
3251
3309
  }
3252
3310
  function useMemo(factory, deps = void 0) {
3253
3311
  if (deps !== void 0 && (typeof deps !== "object" || deps.constructor.name !== "Array")) {
@@ -3335,6 +3393,14 @@ function useImperativeHandle(ref, factory, deps = void 0) {
3335
3393
  }
3336
3394
  Object.assign(ref.current, factory(), 0);
3337
3395
  }
3396
+ function useDebugValue(val, formatter = (x) => x) {
3397
+ if (true) {
3398
+ console.log(formatter(val));
3399
+ }
3400
+ }
3401
+ function startTransition(transition) {
3402
+ transition();
3403
+ }
3338
3404
 
3339
3405
  // .tmp/src/run.jsx
3340
3406
  var run_exports = {};
@@ -3483,7 +3549,7 @@ var timers_exports = {};
3483
3549
  __export(timers_exports, {
3484
3550
  animationFramePromise: () => animationFramePromise,
3485
3551
  clearInterval: () => clearInterval,
3486
- clearTimeout: () => clearTimeout,
3552
+ clearTimeout: () => clearTimeout2,
3487
3553
  grabTimers: () => grabTimers,
3488
3554
  pauseTimers: () => pauseTimers,
3489
3555
  releaseTimers: () => releaseTimers,
@@ -3592,7 +3658,7 @@ function setTimeout2(callback, delay, ...args) {
3592
3658
  function setInterval(callback, interval, ...args) {
3593
3659
  return add_timer({ [CALLBACK]: callback, [INTERVAL]: interval, [DUE]: Date.now() + interval, [REPEAT]: true, [ARGS]: args });
3594
3660
  }
3595
- function clearTimeout(id) {
3661
+ function clearTimeout2(id) {
3596
3662
  if (all_timers[id]) all_timers[id][CLEARED] = true;
3597
3663
  }
3598
3664
  function clearInterval(id) {
@@ -3675,14 +3741,14 @@ function Transition({
3675
3741
  } else this[CORE].mount_state = EXITED;
3676
3742
  }
3677
3743
  useEffect(() => {
3678
- return () => clearTimeout(this[CORE].timer);
3744
+ return () => clearTimeout2(this[CORE].timer);
3679
3745
  }, []);
3680
3746
  useEffect(() => {
3681
3747
  if (!this[CORE].is_appeared && appear && this[CORE].mount_state === ENTERING && inProp) {
3682
3748
  onEnter == null ? void 0 : onEnter();
3683
3749
  requestAnimationFrame(() => {
3684
3750
  onEntering == null ? void 0 : onEntering(!this[CORE].is_appeared);
3685
- clearTimeout(this[CORE].timer);
3751
+ clearTimeout2(this[CORE].timer);
3686
3752
  this[CORE].timer = setTimeout2(() => {
3687
3753
  this[CORE].mount_state = ENTERED;
3688
3754
  this.forceUpdate();
@@ -3700,7 +3766,7 @@ function Transition({
3700
3766
  this[CORE].mount_state = ENTERING;
3701
3767
  this.forceUpdate(() => {
3702
3768
  onEntering == null ? void 0 : onEntering(!this[CORE].is_appeared);
3703
- clearTimeout(this[CORE].timer);
3769
+ clearTimeout2(this[CORE].timer);
3704
3770
  this[CORE].timer = setTimeout2(() => {
3705
3771
  this[CORE].mount_state = ENTERED;
3706
3772
  this.forceUpdate();
@@ -3714,7 +3780,7 @@ function Transition({
3714
3780
  this[CORE].mount_state = EXITING;
3715
3781
  this.forceUpdate(() => {
3716
3782
  onExiting == null ? void 0 : onExiting();
3717
- clearTimeout(this[CORE].timer);
3783
+ clearTimeout2(this[CORE].timer);
3718
3784
  this[CORE].timer = setTimeout2(() => {
3719
3785
  this[CORE].mount_state = EXITED;
3720
3786
  this.forceUpdate();
@@ -4510,8 +4576,8 @@ function Spinner({
4510
4576
  animation: "ddSpinnerSpin 0.9s linear infinite",
4511
4577
  boxSizing: "border-box"
4512
4578
  } }), createComponent("style", {}, `
4513
- @keyframes ddSpinnerSpin { to { transform: rotate(360deg); } }
4514
- `));
4579
+ @keyframes ddSpinnerSpin { to { transform: rotate(360deg); } }
4580
+ `));
4515
4581
  }
4516
4582
  var ErrorBoundary = class extends Component {
4517
4583
  constructor() {
@@ -4567,11 +4633,11 @@ var Suspense = class extends Component {
4567
4633
  /** @ignore */
4568
4634
  _clearTimers() {
4569
4635
  if (this._delayTimer) {
4570
- clearTimeout(this._delayTimer);
4636
+ clearTimeout2(this._delayTimer);
4571
4637
  this._delayTimer = null;
4572
4638
  }
4573
4639
  if (this._minShowTimer) {
4574
- clearTimeout(this._minShowTimer);
4640
+ clearTimeout2(this._minShowTimer);
4575
4641
  this._minShowTimer = null;
4576
4642
  }
4577
4643
  }
@@ -4582,7 +4648,7 @@ var Suspense = class extends Component {
4582
4648
  if (this._pending.size === 1) {
4583
4649
  const delay = Math.max(0, this.props.minDelay);
4584
4650
  if (this._delayTimer) {
4585
- clearTimeout(this._delayTimer);
4651
+ clearTimeout2(this._delayTimer);
4586
4652
  this._delayTimer = null;
4587
4653
  }
4588
4654
  this._delayTimer = setTimeout2(() => {
@@ -4597,7 +4663,7 @@ var Suspense = class extends Component {
4597
4663
  }
4598
4664
  if (this._pending.size === 0) {
4599
4665
  if (this._delayTimer) {
4600
- clearTimeout(this._delayTimer);
4666
+ clearTimeout2(this._delayTimer);
4601
4667
  this._delayTimer = null;
4602
4668
  this.setState({ showingFallback: false });
4603
4669
  return;
@@ -4608,7 +4674,7 @@ var Suspense = class extends Component {
4608
4674
  this.setState({ showingFallback: false });
4609
4675
  } else {
4610
4676
  if (this._minShowTimer) {
4611
- clearTimeout(this._minShowTimer);
4677
+ clearTimeout2(this._minShowTimer);
4612
4678
  this._minShowTimer = null;
4613
4679
  }
4614
4680
  this._minShowTimer = setTimeout2(() => {
@@ -4803,7 +4869,7 @@ var SplitPane = forwardRef(function SplitPane2({
4803
4869
  };
4804
4870
  const splitterBase = {
4805
4871
  background: "rgba(0,0,0,0.08)",
4806
- boxShadow: "inset 0 0 0 1px rgba(0,0,0,0.15)",
4872
+ boxShadow: "inset 0 0 2px rgba(0,0,0,0.25)",
4807
4873
  zIndex: 10
4808
4874
  };
4809
4875
  const splitterAbsStyle = internalMode === "horizontal" ? {
@@ -4837,7 +4903,7 @@ var SplitPane = forwardRef(function SplitPane2({
4837
4903
  height: "100%",
4838
4904
  overflow: "hidden",
4839
4905
  ...style || {}
4840
- } }, createComponent("div", { "style": pane1StyleAbs }, firstChild), createComponent("div", { "style": pane2StyleAbs }, secondChild), createComponent(DragHandle, { "onStart": handleStart, "onDelta": handleDelta, "onEnd": handleEnd, "style": splitterAbsStyle }));
4906
+ } }, createComponent("div", { "style": pane1StyleAbs }, firstChild), createComponent("div", { "style": pane2StyleAbs }, secondChild), createComponent(DragHandle, { "onStart": handleStart, "onDelta": handleDelta, "onEnd": handleEnd, "style": splitterAbsStyle, "className": "splitter" }));
4841
4907
  });
4842
4908
  var clamp = (v, min, max) => Math.max(min, Math.min(max, v));
4843
4909
 
@@ -5749,7 +5815,7 @@ function transpileJSX(jsx2, {
5749
5815
 
5750
5816
  // .tmp/src/lilact.jsx
5751
5817
  var Lilact2 = {
5752
- VERSION: "beta.16",
5818
+ VERSION: "beta.17",
5753
5819
  // Configuration
5754
5820
  defaultTransitionTimeout: 300,
5755
5821
  defaultIsEqual: Object.is,
@@ -5818,7 +5884,7 @@ export {
5818
5884
  boolean_html_attributes_set,
5819
5885
  capture_events_set,
5820
5886
  clearInterval,
5821
- clearTimeout,
5887
+ clearTimeout2 as clearTimeout,
5822
5888
  combineReducers2 as combineReducers,
5823
5889
  connect,
5824
5890
  createComponent2 as createComponent,
@@ -5829,6 +5895,7 @@ export {
5829
5895
  current_component,
5830
5896
  deepEqual,
5831
5897
  lilact_default as default,
5898
+ effect_timeout,
5832
5899
  emotion_css_esm_exports as emotion,
5833
5900
  error,
5834
5901
  eval_num,
@@ -5839,16 +5906,20 @@ export {
5839
5906
  globalErrorHandler,
5840
5907
  grabTimers,
5841
5908
  id_num,
5909
+ insertion_effects,
5842
5910
  isAsync,
5843
5911
  isClass,
5844
5912
  isEmpty,
5845
5913
  isError2 as isError,
5846
5914
  isThenable,
5915
+ isValidComponent,
5847
5916
  isValidElement,
5848
5917
  layout_effects,
5849
5918
  lazy,
5850
5919
  length_css_attributes_set,
5920
+ passive_effects,
5851
5921
  pauseTimers,
5922
+ processEffects,
5852
5923
  redux_exports as redux,
5853
5924
  releaseSyntheticEvent,
5854
5925
  releaseTimers,
@@ -5865,6 +5936,7 @@ export {
5865
5936
  setTimeout2 as setTimeout,
5866
5937
  shallowEqual,
5867
5938
  special_attributes,
5939
+ startTransition,
5868
5940
  timeoutPromise,
5869
5941
  toBool,
5870
5942
  traceError,
@@ -5877,12 +5949,14 @@ export {
5877
5949
  useActionState,
5878
5950
  useCallback,
5879
5951
  useContext,
5952
+ useDebugValue,
5880
5953
  useDeferredValue,
5881
5954
  useDispatch,
5882
5955
  useEffect,
5883
5956
  useHook,
5884
5957
  useId,
5885
5958
  useImperativeHandle,
5959
+ useInsertionEffect,
5886
5960
  useLayoutEffect,
5887
5961
  useLocalStorage,
5888
5962
  useLocation,