@pzerelles/headlessui-svelte 2.1.2-next.51 → 2.1.2-next.53

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.
@@ -68,6 +68,9 @@
68
68
  ? (usesOpenClosedState.value & State.Open) === State.Open
69
69
  : context.disclosureState === DisclosureStates.Open
70
70
  },
71
+ get asChild() {
72
+ return theirProps.asChild
73
+ },
71
74
  })
72
75
 
73
76
  const slot = $derived({
@@ -13,6 +13,7 @@ export declare function useTransition(options: {
13
13
  start?(show: boolean): void;
14
14
  end?(show: boolean): void;
15
15
  };
16
+ asChild?: boolean;
16
17
  }): {
17
18
  readonly visible: boolean;
18
19
  readonly data: TransitionData;
@@ -37,7 +37,7 @@ export function transitionDataAttributes(data) {
37
37
  return attributes;
38
38
  }
39
39
  export function useTransition(options) {
40
- const { enabled, element, show, events } = $derived(options);
40
+ const { enabled, element, show, events, asChild } = $derived(options);
41
41
  let visible = $state((() => show)());
42
42
  let flags = $state((() => (enabled && visible ? TransitionState.Enter | TransitionState.Closed : TransitionState.None))());
43
43
  let inFlight = $state(false);
@@ -58,7 +58,7 @@ export function useTransition(options) {
58
58
  }
59
59
  if (!node) {
60
60
  // Retry if the DOM node isn't available yet
61
- if (show) {
61
+ if (show && !asChild) {
62
62
  flags |= TransitionState.Enter | TransitionState.Closed;
63
63
  return d.nextFrame(() => retry(enabled, show, node, d));
64
64
  }
@@ -142,23 +142,22 @@ export function useTransition(options) {
142
142
  leave: enabled ? !!(flags & TransitionState.Leave) : undefined,
143
143
  transition: enabled ? !!(flags & (TransitionState.Enter | TransitionState.Leave)) : undefined,
144
144
  });
145
- $effect(() => {
146
- if (enabled)
147
- untrack(() => {
148
- setContext("NestingContext", nestingBag);
149
- setContext("TransitionContext", {
150
- get show() {
151
- return show;
152
- },
153
- get appear() {
154
- return false;
155
- },
156
- get initial() {
157
- return false;
158
- },
159
- });
145
+ (() => {
146
+ if (enabled) {
147
+ setContext("NestingContext", nestingBag);
148
+ setContext("TransitionContext", {
149
+ get show() {
150
+ return show;
151
+ },
152
+ get appear() {
153
+ return false;
154
+ },
155
+ get initial() {
156
+ return false;
157
+ },
160
158
  });
161
- });
159
+ }
160
+ })();
162
161
  return {
163
162
  get visible() {
164
163
  return enabled ? visible : show;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pzerelles/headlessui-svelte",
3
- "version": "2.1.2-next.51",
3
+ "version": "2.1.2-next.53",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build && npm run package",