@limonify/zest-ui 0.1.1 → 0.1.3

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 (62) hide show
  1. package/lib/accordion/index.d.ts +1 -0
  2. package/lib/accordion/index.d.ts.map +1 -1
  3. package/lib/accordion/index.js +3 -1
  4. package/lib/accordion/index.js.map +1 -1
  5. package/lib/accordion/panel/AccordionPanel.d.ts +19 -1
  6. package/lib/accordion/panel/AccordionPanel.d.ts.map +1 -1
  7. package/lib/accordion/panel/AccordionPanel.js +18 -2
  8. package/lib/accordion/panel/AccordionPanel.js.map +1 -1
  9. package/lib/collapsible/index.d.ts +1 -0
  10. package/lib/collapsible/index.d.ts.map +1 -1
  11. package/lib/collapsible/index.js +3 -1
  12. package/lib/collapsible/index.js.map +1 -1
  13. package/lib/collapsible/panel/CollapsiblePanel.d.ts +19 -1
  14. package/lib/collapsible/panel/CollapsiblePanel.d.ts.map +1 -1
  15. package/lib/collapsible/panel/CollapsiblePanel.js +18 -2
  16. package/lib/collapsible/panel/CollapsiblePanel.js.map +1 -1
  17. package/lib/collapsible/panel/CollapsiblePanelContext.d.ts +21 -0
  18. package/lib/collapsible/panel/CollapsiblePanelContext.d.ts.map +1 -0
  19. package/lib/collapsible/panel/CollapsiblePanelContext.js +48 -0
  20. package/lib/collapsible/panel/CollapsiblePanelContext.js.map +1 -0
  21. package/lib/collapsible/panel/useCollapsiblePanel.d.ts +17 -0
  22. package/lib/collapsible/panel/useCollapsiblePanel.d.ts.map +1 -1
  23. package/lib/collapsible/panel/useCollapsiblePanel.js +4 -2
  24. package/lib/collapsible/panel/useCollapsiblePanel.js.map +1 -1
  25. package/lib/combobox/portal/ComboboxPortal.js +1 -1
  26. package/lib/dialog/portal/DialogPortal.d.ts +4 -2
  27. package/lib/dialog/portal/DialogPortal.d.ts.map +1 -1
  28. package/lib/dialog/portal/DialogPortal.js +5 -3
  29. package/lib/dialog/portal/DialogPortal.js.map +1 -1
  30. package/lib/menu/portal/MenuPortal.js +1 -1
  31. package/lib/popover/portal/PopoverPortal.js +1 -1
  32. package/lib/select/portal/SelectPortal.js +1 -1
  33. package/lib/switch/thumb/SwitchThumb.d.ts +19 -2
  34. package/lib/switch/thumb/SwitchThumb.d.ts.map +1 -1
  35. package/lib/switch/thumb/SwitchThumb.js +21 -3
  36. package/lib/switch/thumb/SwitchThumb.js.map +1 -1
  37. package/lib/toast/root/ToastRoot.d.ts +20 -8
  38. package/lib/toast/root/ToastRoot.d.ts.map +1 -1
  39. package/lib/toast/root/ToastRoot.js +28 -8
  40. package/lib/toast/root/ToastRoot.js.map +1 -1
  41. package/lib/toast/store.js +1 -1
  42. package/lib/toast/store.js.map +1 -1
  43. package/lib/toast/useToastManager.d.ts +7 -0
  44. package/lib/toast/useToastManager.d.ts.map +1 -1
  45. package/lib/tooltip/portal/TooltipPortal.js +1 -1
  46. package/package.json +1 -1
  47. package/src/accordion/index.ts +1 -0
  48. package/src/accordion/panel/AccordionPanel.tsx +40 -2
  49. package/src/collapsible/index.ts +1 -0
  50. package/src/collapsible/panel/CollapsiblePanel.tsx +40 -2
  51. package/src/collapsible/panel/CollapsiblePanelContext.ts +34 -0
  52. package/src/collapsible/panel/useCollapsiblePanel.tsx +27 -3
  53. package/src/combobox/portal/ComboboxPortal.tsx +1 -1
  54. package/src/dialog/portal/DialogPortal.tsx +5 -3
  55. package/src/menu/portal/MenuPortal.tsx +1 -1
  56. package/src/popover/portal/PopoverPortal.tsx +1 -1
  57. package/src/select/portal/SelectPortal.tsx +1 -1
  58. package/src/switch/thumb/SwitchThumb.tsx +40 -5
  59. package/src/toast/root/ToastRoot.tsx +37 -9
  60. package/src/toast/store.ts +1 -1
  61. package/src/toast/useToastManager.ts +7 -0
  62. package/src/tooltip/portal/TooltipPortal.tsx +1 -1
@@ -5,16 +5,34 @@ exports.SwitchThumb = SwitchThumb;
5
5
  const react_native_1 = require("react-native");
6
6
  const SwitchRootContext_1 = require("../root/SwitchRootContext");
7
7
  const useRenderElement_1 = require("../../use-render/useRenderElement");
8
+ const useIsoLayoutEffect_1 = require("../../hooks/useIsoLayoutEffect");
9
+ const useTransitionStatus_1 = require("../../internals/useTransitionStatus");
8
10
  /**
9
11
  * The movable part of the switch that indicates whether the switch is on or off.
10
- * Renders a `<View>`.
12
+ * Renders a `<View>`, or nothing when the switch is unchecked.
13
+ *
14
+ * Follows the animation contract: with `keepMounted`, the thumb stays mounted
15
+ * while unchecked and publishes `transitionStatus` so the consumer can animate
16
+ * it out. Without it, the thumb unmounts the moment it unchecks — React Native
17
+ * cannot report when an exit animation finished.
11
18
  */
12
19
  function SwitchThumb(componentProps) {
13
- const { render, className, style, ref, ...elementProps } = componentProps;
14
- const state = (0, SwitchRootContext_1.useSwitchRootContext)();
20
+ const { render, className, style, keepMounted = false, ref, ...elementProps } = componentProps;
21
+ const rootState = (0, SwitchRootContext_1.useSwitchRootContext)();
22
+ const { mounted, transitionStatus, setMounted } = (0, useTransitionStatus_1.useTransitionStatus)(rootState.checked);
23
+ // Nothing reports when an exit animation finished, so a thumb that isn't
24
+ // kept mounted is unmounted the moment it unchecks.
25
+ (0, useIsoLayoutEffect_1.useIsoLayoutEffect)(() => {
26
+ if (!rootState.checked && mounted && !keepMounted) {
27
+ setMounted(false);
28
+ }
29
+ }, [rootState.checked, mounted, keepMounted, setMounted]);
30
+ const state = { ...rootState, transitionStatus };
31
+ const shouldRender = keepMounted || mounted;
15
32
  return (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
16
33
  state,
17
34
  ref,
35
+ enabled: shouldRender,
18
36
  props: elementProps,
19
37
  });
20
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchThumb.js","sourceRoot":"","sources":["../../../src/switch/thumb/SwitchThumb.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAWb,kCAUC;AApBD,+CAAoC;AACpC,iEAAiE;AACjE,wEAAqE;AAIrE;;;GAGG;AACH,SAAgB,WAAW,CAAC,cAAiC;IAC3D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAA,wCAAoB,GAAE,CAAC;IAErC,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK;QACL,GAAG;QACH,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"SwitchThumb.js","sourceRoot":"","sources":["../../../src/switch/thumb/SwitchThumb.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAkBb,kCAyBC;AA1CD,+CAAoC;AACpC,iEAAiE;AACjE,wEAAqE;AACrE,uEAAoE;AACpE,6EAAiG;AAIjG;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,cAAiC;IAC3D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE/F,MAAM,SAAS,GAAG,IAAA,wCAAoB,GAAE,CAAC;IAEzC,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAA,yCAAmB,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEzF,yEAAyE;IACzE,oDAAoD;IACpD,IAAA,uCAAkB,EAAC,GAAG,EAAE;QACtB,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAClD,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAqB,EAAE,GAAG,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAEnE,MAAM,YAAY,GAAG,WAAW,IAAI,OAAO,CAAC;IAE5C,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK;QACL,GAAG;QACH,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC"}
@@ -11,18 +11,24 @@ export type ToastSwipeDirection = 'up' | 'down' | 'left' | 'right';
11
11
  * `transitionStatus`, its stacking `offsetY`/`index`, and how far a swipe has
12
12
  * travelled, and the consumer turns those into a transform.
13
13
  *
14
- * Nothing in React Native reports that a closing animation finished, so a closed
15
- * toast would otherwise sit in the list forever. `removeOnClose` (on by default)
16
- * drops it the moment it closes, which is what a consumer who does not animate
17
- * wants. To animate the exit, set `removeOnClose={false}`, drive the exit from
18
- * `state.transitionStatus === 'ending'`, and call `useToastManager().remove(id)`
19
- * when it finishes. This is the same lever as `Collapsible.Panel`'s `keepMounted`.
14
+ * **Enter:** `transitionStatus` starts as `'starting'` (auto-clears to
15
+ * `undefined` after one frame). Key off `state.transitionStatus === 'starting'`
16
+ * to trigger a slide-in or fade-in animation.
17
+ *
18
+ * **Exit:** `removeOnClose` (on by default) drops the toast the moment it
19
+ * closes the right default for a consumer who does not animate. To animate
20
+ * the exit, set `removeOnClose={false}`, drive the exit from
21
+ * `state.transitionStatus === 'ending'` using `state.measuredHeight` as the
22
+ * starting value (the animation target is `0`), and call
23
+ * `useToastManager().remove(id)` when the animation finishes.
24
+ * This is the same lever as `Collapsible.Panel`'s `keepMounted`.
20
25
  */
21
26
  export declare function ToastRoot(componentProps: ToastRoot.Props): React.JSX.Element;
22
27
  export interface ToastRootState {
23
28
  /**
24
- * The toast's transition status: `'starting'` as it arrives, `'ending'` once it
25
- * is closing.
29
+ * The toast's transition status: `'starting'` as it arrives (auto-clears to
30
+ * `undefined` after one frame for enter animation), `'ending'` once it is
31
+ * closing.
26
32
  */
27
33
  transitionStatus: 'starting' | 'ending' | undefined;
28
34
  /**
@@ -56,6 +62,12 @@ export interface ToastRootState {
56
62
  * The toast's measured height.
57
63
  */
58
64
  height: number;
65
+ /**
66
+ * The last measured height before the toast closed, preserved for the
67
+ * consumer to use as the starting value for an exit animation.
68
+ * Falls back to `height` when no close has occurred yet.
69
+ */
70
+ measuredHeight: number;
59
71
  /**
60
72
  * Whether a swipe is currently in progress.
61
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ToastRoot.d.ts","sourceRoot":"","sources":["../../../src/toast/root/ToastRoot.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAA0B,MAAM,cAAc,CAAC;AAM5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,KAAK,qBA6IxD;AAmBD,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,gBAAgB,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,cAAc,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,cAAe,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,cAAc,CAAC;IACvF;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACxB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,yBAAiB,SAAS,CAAC;IACzB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,cAAc,GAAG,mBAAmB,CAAC;CAClD"}
1
+ {"version":3,"file":"ToastRoot.d.ts","sourceRoot":"","sources":["../../../src/toast/root/ToastRoot.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAA0B,MAAM,cAAc,CAAC;AAO5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,KAAK,qBA4JxD;AAmBD,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,gBAAgB,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,cAAc,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,cAAe,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,cAAc,CAAC;IACvF;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACxB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,yBAAiB,SAAS,CAAC;IACzB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,cAAc,GAAG,mBAAmB,CAAC;CAClD"}
@@ -43,6 +43,7 @@ const ToastProviderContext_1 = require("../provider/ToastProviderContext");
43
43
  const useRenderElement_1 = require("../../use-render/useRenderElement");
44
44
  const useIsoLayoutEffect_1 = require("../../hooks/useIsoLayoutEffect");
45
45
  const useStableCallback_1 = require("../../hooks/useStableCallback");
46
+ const useAnimationFrame_1 = require("../../hooks/useAnimationFrame");
46
47
  const ToastRootContext_1 = require("./ToastRootContext");
47
48
  /** Matches `Drawer.Popup`: a swipe dismisses once it has travelled this far. */
48
49
  const DEFAULT_SWIPE_THRESHOLD = 40;
@@ -54,12 +55,17 @@ const DEFAULT_SWIPE_THRESHOLD = 40;
54
55
  * `transitionStatus`, its stacking `offsetY`/`index`, and how far a swipe has
55
56
  * travelled, and the consumer turns those into a transform.
56
57
  *
57
- * Nothing in React Native reports that a closing animation finished, so a closed
58
- * toast would otherwise sit in the list forever. `removeOnClose` (on by default)
59
- * drops it the moment it closes, which is what a consumer who does not animate
60
- * wants. To animate the exit, set `removeOnClose={false}`, drive the exit from
61
- * `state.transitionStatus === 'ending'`, and call `useToastManager().remove(id)`
62
- * when it finishes. This is the same lever as `Collapsible.Panel`'s `keepMounted`.
58
+ * **Enter:** `transitionStatus` starts as `'starting'` (auto-clears to
59
+ * `undefined` after one frame). Key off `state.transitionStatus === 'starting'`
60
+ * to trigger a slide-in or fade-in animation.
61
+ *
62
+ * **Exit:** `removeOnClose` (on by default) drops the toast the moment it
63
+ * closes the right default for a consumer who does not animate. To animate
64
+ * the exit, set `removeOnClose={false}`, drive the exit from
65
+ * `state.transitionStatus === 'ending'` using `state.measuredHeight` as the
66
+ * starting value (the animation target is `0`), and call
67
+ * `useToastManager().remove(id)` when the animation finishes.
68
+ * This is the same lever as `Collapsible.Panel`'s `keepMounted`.
63
69
  */
64
70
  function ToastRoot(componentProps) {
65
71
  const { render, className, style, toast, removeOnClose = true, swipeDirection = 'right', swipeThreshold = DEFAULT_SWIPE_THRESHOLD, ref, ...elementProps } = componentProps;
@@ -80,12 +86,24 @@ function ToastRoot(componentProps) {
80
86
  store.removeToast(toast.id);
81
87
  }
82
88
  }, [removeOnClose, toast.transitionStatus, toast.id, store]);
89
+ // `transitionStatus` starts as `'starting'` and stays that way forever.
90
+ // Auto-clear it after one frame so the consumer can react to `'starting'`
91
+ // for an enter animation without repeatedly re-triggering.
92
+ (0, useIsoLayoutEffect_1.useIsoLayoutEffect)(() => {
93
+ if (toast.transitionStatus === 'starting') {
94
+ const frame = useAnimationFrame_1.AnimationFrame.request(() => {
95
+ store.updateToastInternal(toast.id, { transitionStatus: undefined });
96
+ });
97
+ return () => useAnimationFrame_1.AnimationFrame.cancel(frame);
98
+ }
99
+ return undefined;
100
+ }, [toast.transitionStatus, toast.id, store]);
83
101
  const handleLayout = (0, useStableCallback_1.useStableCallback)((event) => {
84
102
  const { height } = event.nativeEvent.layout;
85
103
  // A closing toast reports a height of 0 through the store; measuring it again
86
104
  // here would undo that and leave a gap in the stack.
87
105
  if (toast.transitionStatus !== 'ending' && height !== toast.height) {
88
- store.updateToastInternal(toast.id, { height });
106
+ store.updateToastInternal(toast.id, { height, measuredHeight: height });
89
107
  }
90
108
  });
91
109
  const gesture = React.useMemo(() => react_native_gesture_handler_1.Gesture.Pan()
@@ -123,7 +141,7 @@ function ToastRoot(componentProps) {
123
141
  // The handlers touch React state, so they must not run on the UI thread.
124
142
  .runOnJS(true), [testID, toast.id, swipeDirection, swipeThreshold, store]);
125
143
  const state = React.useMemo(() => {
126
- var _a, _b;
144
+ var _a, _b, _c, _d;
127
145
  return ({
128
146
  transitionStatus: toast.transitionStatus,
129
147
  expanded,
@@ -133,6 +151,7 @@ function ToastRoot(componentProps) {
133
151
  visibleIndex,
134
152
  offsetY,
135
153
  height: (_b = toast.height) !== null && _b !== void 0 ? _b : 0,
154
+ measuredHeight: (_d = (_c = toast.measuredHeight) !== null && _c !== void 0 ? _c : toast.height) !== null && _d !== void 0 ? _d : 0,
136
155
  swiping,
137
156
  swipeMovement,
138
157
  swipeDirection,
@@ -146,6 +165,7 @@ function ToastRoot(componentProps) {
146
165
  visibleIndex,
147
166
  offsetY,
148
167
  toast.height,
168
+ toast.measuredHeight,
149
169
  swiping,
150
170
  swipeMovement,
151
171
  swipeDirection,
@@ -1 +1 @@
1
- {"version":3,"file":"ToastRoot.js","sourceRoot":"","sources":["../../../src/toast/root/ToastRoot.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToastRoot.js","sourceRoot":"","sources":["../../../src/toast/root/ToastRoot.tsx"],"names":[],"mappings":"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"}
@@ -176,7 +176,7 @@ class ToastStore extends ReactStore_1.ReactStore {
176
176
  this.clearTimer(toastId);
177
177
  }
178
178
  const endingToasts = toasts.map((item) => closeAll || item.id === toastId
179
- ? { ...item, transitionStatus: 'ending', height: 0 }
179
+ ? { ...item, transitionStatus: 'ending', height: 0, measuredHeight: item.height }
180
180
  : item);
181
181
  const newToasts = applyLimited(endingToasts, limit);
182
182
  this.setToasts(newToasts, !newToasts.some((toast) => toast.transitionStatus !== 'ending'));
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/toast/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/toast/store.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,13 @@ export interface ToastObject<Data extends object> {
50
50
  * The height of the toast.
51
51
  */
52
52
  height?: number | undefined;
53
+ /**
54
+ * The last measured height of the toast, captured at the moment it closes.
55
+ * Unlike `height` (which is set to `0` on close for stack collapse), this
56
+ * preserves the value so the consumer can use it as the starting point for
57
+ * an exit animation.
58
+ */
59
+ measuredHeight?: number | undefined;
53
60
  /**
54
61
  * Callback function to be called when the toast is closed.
55
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useToastManager.d.ts","sourceRoot":"","sources":["../../src/toast/useToastManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useToastManager.d.ts","sourceRoot":"","sources":["../../src/toast/useToastManager.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ function TooltipPortal(props) {
26
26
  if (!shouldRender) {
27
27
  return null;
28
28
  }
29
- return ((0, jsx_runtime_1.jsx)(TooltipPortalContext_1.TooltipPortalContext.Provider, { value: keepMounted, children: (0, jsx_runtime_1.jsxs)(react_native_1.Modal, { transparent: true, visible: open, animationType: "none", statusBarTranslucent: true, navigationBarTranslucent: true, onRequestClose: (event) => {
29
+ return ((0, jsx_runtime_1.jsx)(TooltipPortalContext_1.TooltipPortalContext.Provider, { value: keepMounted, children: (0, jsx_runtime_1.jsxs)(react_native_1.Modal, { transparent: true, visible: open, animationType: "fade", statusBarTranslucent: true, navigationBarTranslucent: true, onRequestClose: (event) => {
30
30
  store.setOpen(false, (0, createChangeEventDetails_1.createChangeEventDetails)(reasons_1.REASONS.escapeKey, event));
31
31
  }, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: react_native_1.StyleSheet.absoluteFill, onStartShouldSetResponder: () => true, onResponderRelease: (event) => {
32
32
  store.setOpen(false, (0, createChangeEventDetails_1.createChangeEventDetails)(reasons_1.REASONS.outsidePress, event));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limonify/zest-ui",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Base UI for React Native — headless, unstyled, accessible primitive components.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -7,3 +7,4 @@ export type * from './trigger/AccordionTrigger';
7
7
  export type * from './panel/AccordionPanel';
8
8
  export { useAccordionRootContext } from './root/AccordionRootContext';
9
9
  export { useAccordionItemContext } from './item/AccordionItemContext';
10
+ export { useCollapsiblePanelState as useAccordionPanelState } from '../collapsible/panel/CollapsiblePanelContext';
@@ -3,7 +3,11 @@ import * as React from 'react';
3
3
  import { View } from 'react-native';
4
4
  import { useRenderElement } from '../../use-render/useRenderElement';
5
5
  import { useCollapsibleRootContext } from '../../collapsible/root/CollapsibleRootContext';
6
- import { useCollapsiblePanel } from '../../collapsible/panel/useCollapsiblePanel';
6
+ import { useCollapsiblePanel, type MeasurePadding } from '../../collapsible/panel/useCollapsiblePanel';
7
+ import {
8
+ CollapsiblePanelContextContext,
9
+ type CollapsiblePanelContext,
10
+ } from '../../collapsible/panel/CollapsiblePanelContext';
7
11
  import type { TransitionStatus } from '../../internals/useTransitionStatus';
8
12
  import type { AccordionItemState } from '../item/AccordionItem';
9
13
  import { useAccordionItemContext } from '../item/AccordionItemContext';
@@ -16,11 +20,19 @@ import type { ZestUIComponentProps } from '../../types';
16
20
  *
17
21
  * Like `Collapsible.Panel`, it publishes the measured content size on the state
18
22
  * object so the consumer can drive an `Animated` value from it.
23
+ *
24
+ * ⚠️ **Padding footgun:** The measured `height`/`width` reflects the natural
25
+ * content size of the panel's **children**, not the panel element itself. If you
26
+ * apply `padding` on the Panel element via `style`, the clip height will not
27
+ * account for it and content at the bottom will be clipped. To pad the panel,
28
+ * put padding on a child View **inside** the Panel instead, or use a
29
+ * `measurePadding` prop.
19
30
  */
20
31
  export function AccordionPanel(componentProps: AccordionPanel.Props) {
21
32
  const {
22
33
  className,
23
34
  keepMounted: keepMountedProp,
35
+ measurePadding,
24
36
  render,
25
37
  style,
26
38
  ref,
@@ -36,6 +48,7 @@ export function AccordionPanel(componentProps: AccordionPanel.Props) {
36
48
 
37
49
  const { dimensions, props, shouldRender, wrappedChildren } = useCollapsiblePanel({
38
50
  keepMounted,
51
+ measurePadding,
39
52
  children,
40
53
  });
41
54
 
@@ -49,7 +62,16 @@ export function AccordionPanel(componentProps: AccordionPanel.Props) {
49
62
  [itemState, transitionStatus, dimensions.height, dimensions.width],
50
63
  );
51
64
 
52
- return useRenderElement(View, componentProps, {
65
+ const panelContext: CollapsiblePanelContext = React.useMemo(
66
+ () => ({
67
+ height: dimensions.height,
68
+ width: dimensions.width,
69
+ transitionStatus,
70
+ }),
71
+ [dimensions.height, dimensions.width, transitionStatus],
72
+ );
73
+
74
+ const element = useRenderElement(View, componentProps, {
53
75
  state,
54
76
  ref,
55
77
  enabled: shouldRender,
@@ -60,6 +82,12 @@ export function AccordionPanel(componentProps: AccordionPanel.Props) {
60
82
  { children: wrappedChildren },
61
83
  ],
62
84
  });
85
+
86
+ return (
87
+ <CollapsiblePanelContextContext.Provider value={panelContext}>
88
+ {element}
89
+ </CollapsiblePanelContextContext.Provider>
90
+ );
63
91
  }
64
92
 
65
93
  export interface AccordionPanelState extends AccordionItemState {
@@ -89,6 +117,16 @@ export interface AccordionPanelProps
89
117
  * Defaults to the `keepMounted` prop on `Accordion.Root`.
90
118
  */
91
119
  keepMounted?: boolean | undefined;
120
+ /**
121
+ * Padding applied to the inner measurement wrapper so the reported
122
+ * `height`/`width` reflect the padded content size.
123
+ *
124
+ * Use this instead of `style.padding` on the panel element to avoid the
125
+ * padding footgun where the clip height does not account for padding.
126
+ * The padding is applied inside the clip, so the animation height
127
+ * naturally includes it.
128
+ */
129
+ measurePadding?: MeasurePadding | undefined;
92
130
  }
93
131
 
94
132
  export namespace AccordionPanel {
@@ -4,3 +4,4 @@ export type * from './root/CollapsibleRoot';
4
4
  export type * from './trigger/CollapsibleTrigger';
5
5
  export type * from './panel/CollapsiblePanel';
6
6
  export { useCollapsibleRootContext } from './root/CollapsibleRootContext';
7
+ export { useCollapsiblePanelState } from './panel/CollapsiblePanelContext';
@@ -6,7 +6,11 @@ import { useCollapsibleRootContext } from '../root/CollapsibleRootContext';
6
6
  import type { CollapsibleRootState } from '../root/CollapsibleRoot';
7
7
  import type { TransitionStatus } from '../../internals/useTransitionStatus';
8
8
  import type { ZestUIComponentProps } from '../../types';
9
- import { useCollapsiblePanel } from './useCollapsiblePanel';
9
+ import { useCollapsiblePanel, type MeasurePadding } from './useCollapsiblePanel';
10
+ import {
11
+ CollapsiblePanelContextContext,
12
+ type CollapsiblePanelContext,
13
+ } from './CollapsiblePanelContext';
10
14
 
11
15
  /**
12
16
  * A panel with the collapsible contents.
@@ -16,11 +20,19 @@ import { useCollapsiblePanel } from './useCollapsiblePanel';
16
20
  * object as `height`/`width` — the React Native counterpart of the web version's
17
21
  * `--collapsible-panel-height` CSS variable. Drive an `Animated` value from
18
22
  * `state.height` and `state.transitionStatus` to animate the panel.
23
+ *
24
+ * ⚠️ **Padding footgun:** The measured `height`/`width` reflects the natural
25
+ * content size of the panel's **children**, not the panel element itself. If you
26
+ * apply `padding` on the Panel element via `style`, the clip height will not
27
+ * account for it and content at the bottom will be clipped. To pad the panel,
28
+ * put padding on a child View **inside** the Panel instead, or use a
29
+ * `measurePadding` prop. See `Accordion.Panel` for the same caveat.
19
30
  */
20
31
  export function CollapsiblePanel(componentProps: CollapsiblePanel.Props) {
21
32
  const {
22
33
  className,
23
34
  keepMounted = false,
35
+ measurePadding,
24
36
  render,
25
37
  style,
26
38
  ref,
@@ -32,6 +44,7 @@ export function CollapsiblePanel(componentProps: CollapsiblePanel.Props) {
32
44
 
33
45
  const { dimensions, props, shouldRender, wrappedChildren } = useCollapsiblePanel({
34
46
  keepMounted,
47
+ measurePadding,
35
48
  children,
36
49
  });
37
50
 
@@ -45,12 +58,27 @@ export function CollapsiblePanel(componentProps: CollapsiblePanel.Props) {
45
58
  [rootState, transitionStatus, dimensions.height, dimensions.width],
46
59
  );
47
60
 
48
- return useRenderElement(View, componentProps, {
61
+ const panelContext: CollapsiblePanelContext = React.useMemo(
62
+ () => ({
63
+ height: dimensions.height,
64
+ width: dimensions.width,
65
+ transitionStatus,
66
+ }),
67
+ [dimensions.height, dimensions.width, transitionStatus],
68
+ );
69
+
70
+ const element = useRenderElement(View, componentProps, {
49
71
  state,
50
72
  ref,
51
73
  enabled: shouldRender,
52
74
  props: [props, elementProps, { children: wrappedChildren }],
53
75
  });
76
+
77
+ return (
78
+ <CollapsiblePanelContextContext.Provider value={panelContext}>
79
+ {element}
80
+ </CollapsiblePanelContextContext.Provider>
81
+ );
54
82
  }
55
83
 
56
84
  export interface CollapsiblePanelState extends CollapsibleRootState {
@@ -80,6 +108,16 @@ export interface CollapsiblePanelProps
80
108
  * @default false
81
109
  */
82
110
  keepMounted?: boolean | undefined;
111
+ /**
112
+ * Padding applied to the inner measurement wrapper so the reported
113
+ * `height`/`width` reflect the padded content size.
114
+ *
115
+ * Use this instead of `style.padding` on the panel element to avoid the
116
+ * padding footgun where the clip height does not account for padding.
117
+ * The padding is applied inside the clip, so the animation height
118
+ * naturally includes it.
119
+ */
120
+ measurePadding?: MeasurePadding | undefined;
83
121
  }
84
122
 
85
123
  export namespace CollapsiblePanel {
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import type { TransitionStatus } from '../../internals/useTransitionStatus';
4
+
5
+ export interface CollapsiblePanelContext {
6
+ /**
7
+ * The measured natural height of the panel contents, or `undefined` before
8
+ * the first measurement.
9
+ */
10
+ height: number | undefined;
11
+ /**
12
+ * The measured natural width of the panel contents, or `undefined` before
13
+ * the first measurement.
14
+ */
15
+ width: number | undefined;
16
+ /**
17
+ * The transition status of the panel, for driving enter/exit animations.
18
+ */
19
+ transitionStatus: TransitionStatus;
20
+ }
21
+
22
+ export const CollapsiblePanelContextContext =
23
+ React.createContext<CollapsiblePanelContext | undefined>(undefined);
24
+
25
+ export function useCollapsiblePanelState() {
26
+ const context = React.useContext(CollapsiblePanelContextContext);
27
+ if (context === undefined) {
28
+ throw new Error(
29
+ 'Zest: CollapsiblePanelContext is missing. Panel state can only be accessed within <Collapsible.Panel> or <Accordion.Panel>.',
30
+ );
31
+ }
32
+
33
+ return context;
34
+ }
@@ -19,7 +19,7 @@ const EMPTY_DIMENSIONS: Dimensions = { height: undefined, width: undefined };
19
19
  * natural content size and managing the mount lifecycle; the consumer animates.
20
20
  */
21
21
  export function useCollapsiblePanel(parameters: UseCollapsiblePanelParameters) {
22
- const { keepMounted, children } = parameters;
22
+ const { keepMounted, measurePadding, children } = parameters;
23
23
 
24
24
  const { mounted, open, panelId, setMounted } = useCollapsibleRootContext();
25
25
 
@@ -55,9 +55,15 @@ export function useCollapsiblePanel(parameters: UseCollapsiblePanelParameters) {
55
55
 
56
56
  // The panel's own size is consumer-driven, so the natural content size has to
57
57
  // be measured on an inner element that is never height-constrained.
58
+ // When `measurePadding` is set, it is applied to the inner measurement
59
+ // wrapper so the reported `height`/`width` reflect the padded content size.
58
60
  const wrappedChildren = React.useMemo(
59
- () => <View onLayout={handleContentLayout}>{children}</View>,
60
- [handleContentLayout, children],
61
+ () => (
62
+ <View style={measurePadding} onLayout={handleContentLayout}>
63
+ {children}
64
+ </View>
65
+ ),
66
+ [handleContentLayout, measurePadding, children],
61
67
  );
62
68
 
63
69
  return {
@@ -68,7 +74,25 @@ export function useCollapsiblePanel(parameters: UseCollapsiblePanelParameters) {
68
74
  };
69
75
  }
70
76
 
77
+ /**
78
+ * Padding insets that are applied to the inner measurement wrapper so the
79
+ * reported `height`/`width` on the panel state reflect the padded content size.
80
+ * Without this, padding on the panel element itself will cause clipped content.
81
+ */
82
+ export interface MeasurePadding {
83
+ top?: number;
84
+ right?: number;
85
+ bottom?: number;
86
+ left?: number;
87
+ }
88
+
71
89
  export interface UseCollapsiblePanelParameters {
72
90
  keepMounted: boolean;
91
+ /**
92
+ * Padding applied to the inner measurement wrapper.
93
+ * Use this instead of `style.padding` on the panel element to avoid the
94
+ * padding footgun where the clip height does not account for padding.
95
+ */
96
+ measurePadding?: MeasurePadding | undefined;
73
97
  children: React.ReactNode;
74
98
  }
@@ -21,7 +21,7 @@ export function ComboboxPortal(props: ComboboxPortal.Props) {
21
21
  <Modal
22
22
  transparent
23
23
  visible={open}
24
- animationType="none"
24
+ animationType="fade"
25
25
  statusBarTranslucent
26
26
  navigationBarTranslucent
27
27
  onRequestClose={(event: NativeSyntheticEvent<unknown>) => {
@@ -12,8 +12,10 @@ import { REASONS } from '../../utils/reasons';
12
12
  * Implemented with React Native's `Modal`, which mounts its children at the
13
13
  * root of the native view hierarchy, contains accessibility focus, and wires
14
14
  * the Android hardware back button (and Escape on web) to `onRequestClose`.
15
- * Rendering is headless: `animationType` is `"none"` so consumers own all
16
- * animation.
15
+ * The Modal uses `animationType="fade"` so open/close get a smooth native
16
+ * cross-fade (including the exit, which a consumer-driven animation can't cover
17
+ * because the Modal unmounts on close). Consumers still layer their own
18
+ * enter transitions (scale/slide) on the popup on top of this fade.
17
19
  */
18
20
  export function DialogPortal(props: DialogPortal.Props) {
19
21
  const { children, keepMounted = false } = props;
@@ -31,7 +33,7 @@ export function DialogPortal(props: DialogPortal.Props) {
31
33
  <Modal
32
34
  transparent
33
35
  visible={open}
34
- animationType="none"
36
+ animationType="fade"
35
37
  statusBarTranslucent
36
38
  navigationBarTranslucent
37
39
  onRequestClose={(event: NativeSyntheticEvent<unknown>) => {