foldkit 0.70.0 → 0.72.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 (80) hide show
  1. package/dist/task/index.d.ts +1 -1
  2. package/dist/task/index.d.ts.map +1 -1
  3. package/dist/task/index.js +1 -1
  4. package/dist/task/public.d.ts +1 -1
  5. package/dist/task/public.d.ts.map +1 -1
  6. package/dist/task/public.js +1 -1
  7. package/dist/task/timing.d.ts +9 -5
  8. package/dist/task/timing.d.ts.map +1 -1
  9. package/dist/task/timing.js +11 -11
  10. package/dist/test/apps/disabledButton.d.ts +5 -5
  11. package/dist/ui/{transition → animation}/index.d.ts +9 -8
  12. package/dist/ui/animation/index.d.ts.map +1 -0
  13. package/dist/ui/{transition → animation}/index.js +8 -7
  14. package/dist/ui/animation/public.d.ts +3 -0
  15. package/dist/ui/animation/public.d.ts.map +1 -0
  16. package/dist/ui/animation/public.js +1 -0
  17. package/dist/ui/{transition → animation}/schema.d.ts +14 -14
  18. package/dist/ui/animation/schema.d.ts.map +1 -0
  19. package/dist/ui/animation/schema.js +35 -0
  20. package/dist/ui/{transition → animation}/update.d.ts +7 -7
  21. package/dist/ui/animation/update.d.ts.map +1 -0
  22. package/dist/ui/{transition → animation}/update.js +12 -12
  23. package/dist/ui/combobox/multi.d.ts +7 -7
  24. package/dist/ui/combobox/public.d.ts +1 -1
  25. package/dist/ui/combobox/public.d.ts.map +1 -1
  26. package/dist/ui/combobox/public.js +1 -1
  27. package/dist/ui/combobox/shared.d.ts +13 -13
  28. package/dist/ui/combobox/shared.d.ts.map +1 -1
  29. package/dist/ui/combobox/shared.js +31 -31
  30. package/dist/ui/combobox/single.d.ts +7 -7
  31. package/dist/ui/datePicker/index.d.ts +3 -3
  32. package/dist/ui/dialog/index.d.ts +7 -7
  33. package/dist/ui/dialog/index.d.ts.map +1 -1
  34. package/dist/ui/dialog/index.js +28 -28
  35. package/dist/ui/dialog/public.d.ts +1 -1
  36. package/dist/ui/dialog/public.d.ts.map +1 -1
  37. package/dist/ui/dialog/public.js +1 -1
  38. package/dist/ui/index.d.ts +2 -1
  39. package/dist/ui/index.d.ts.map +1 -1
  40. package/dist/ui/index.js +2 -1
  41. package/dist/ui/listbox/multi.d.ts +7 -7
  42. package/dist/ui/listbox/public.d.ts +1 -1
  43. package/dist/ui/listbox/public.d.ts.map +1 -1
  44. package/dist/ui/listbox/public.js +1 -1
  45. package/dist/ui/listbox/shared.d.ts +13 -13
  46. package/dist/ui/listbox/shared.d.ts.map +1 -1
  47. package/dist/ui/listbox/shared.js +29 -29
  48. package/dist/ui/listbox/single.d.ts +7 -7
  49. package/dist/ui/menu/index.d.ts +11 -11
  50. package/dist/ui/menu/index.d.ts.map +1 -1
  51. package/dist/ui/menu/index.js +29 -29
  52. package/dist/ui/menu/public.d.ts +1 -1
  53. package/dist/ui/menu/public.d.ts.map +1 -1
  54. package/dist/ui/menu/public.js +1 -1
  55. package/dist/ui/popover/index.d.ts +12 -12
  56. package/dist/ui/popover/index.d.ts.map +1 -1
  57. package/dist/ui/popover/index.js +30 -30
  58. package/dist/ui/popover/public.d.ts +1 -1
  59. package/dist/ui/popover/public.d.ts.map +1 -1
  60. package/dist/ui/popover/public.js +1 -1
  61. package/dist/ui/toast/index.d.ts +620 -0
  62. package/dist/ui/toast/index.d.ts.map +1 -0
  63. package/dist/ui/toast/index.js +158 -0
  64. package/dist/ui/toast/public.d.ts +4 -0
  65. package/dist/ui/toast/public.d.ts.map +1 -0
  66. package/dist/ui/toast/public.js +1 -0
  67. package/dist/ui/toast/schema.d.ts +143 -0
  68. package/dist/ui/toast/schema.d.ts.map +1 -0
  69. package/dist/ui/toast/schema.js +71 -0
  70. package/dist/ui/toast/update.d.ts +484 -0
  71. package/dist/ui/toast/update.d.ts.map +1 -0
  72. package/dist/ui/toast/update.js +203 -0
  73. package/package.json +9 -5
  74. package/dist/ui/transition/index.d.ts.map +0 -1
  75. package/dist/ui/transition/public.d.ts +0 -3
  76. package/dist/ui/transition/public.d.ts.map +0 -1
  77. package/dist/ui/transition/public.js +0 -1
  78. package/dist/ui/transition/schema.d.ts.map +0 -1
  79. package/dist/ui/transition/schema.js +0 -35
  80. package/dist/ui/transition/update.d.ts.map +0 -1
@@ -2,14 +2,14 @@ import { Schema as S } from 'effect';
2
2
  import * as Command from '../../command';
3
3
  import { type Attribute, type Html } from '../../html';
4
4
  import type { AnchorConfig } from '../anchor';
5
- /** Schema for the popover component's state, tracking open/closed status and transition animation. */
5
+ /** Schema for the popover component's state, tracking open/closed status and animation lifecycle. */
6
6
  export declare const Model: S.Struct<{
7
7
  id: typeof S.String;
8
8
  isOpen: typeof S.Boolean;
9
9
  isAnimated: typeof S.Boolean;
10
10
  isModal: typeof S.Boolean;
11
11
  contentFocus: typeof S.Boolean;
12
- transition: S.Struct<{
12
+ animation: S.Struct<{
13
13
  id: typeof S.String;
14
14
  isShowing: typeof S.Boolean;
15
15
  transitionState: S.Literal<["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
@@ -44,9 +44,9 @@ export declare const CompletedTeardownInert: import("../../schema").CallableTagg
44
44
  export declare const IgnoredMouseClick: import("../../schema").CallableTaggedStruct<"IgnoredMouseClick", {}>;
45
45
  /** Sent when a Space key-up is captured to prevent page scrolling. */
46
46
  export declare const SuppressedSpaceScroll: import("../../schema").CallableTaggedStruct<"SuppressedSpaceScroll", {}>;
47
- /** Wraps a Transition submodel message for delegation. */
48
- export declare const GotTransitionMessage: import("../../schema").CallableTaggedStruct<"GotTransitionMessage", {
49
- message: S.Union<[import("../../schema").CallableTaggedStruct<"Showed", {}>, import("../../schema").CallableTaggedStruct<"Hid", {}>, import("../../schema").CallableTaggedStruct<"AdvancedTransitionFrame", {}>, import("../../schema").CallableTaggedStruct<"EndedTransition", {}>]>;
47
+ /** Wraps an Animation submodel message for delegation. */
48
+ export declare const GotAnimationMessage: import("../../schema").CallableTaggedStruct<"GotAnimationMessage", {
49
+ message: S.Union<[import("../../schema").CallableTaggedStruct<"Showed", {}>, import("../../schema").CallableTaggedStruct<"Hid", {}>, import("../../schema").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("../../schema").CallableTaggedStruct<"EndedAnimation", {}>]>;
50
50
  }>;
51
51
  /** Union of all messages the popover component can produce. */
52
52
  export declare const Message: S.Union<[
@@ -62,7 +62,7 @@ export declare const Message: S.Union<[
62
62
  typeof CompletedTeardownInert,
63
63
  typeof IgnoredMouseClick,
64
64
  typeof SuppressedSpaceScroll,
65
- typeof GotTransitionMessage
65
+ typeof GotAnimationMessage
66
66
  ]>;
67
67
  export type Opened = typeof Opened.Type;
68
68
  export type Closed = typeof Closed.Type;
@@ -71,7 +71,7 @@ export type PressedPointerOnButton = typeof PressedPointerOnButton.Type;
71
71
  export type IgnoredMouseClick = typeof IgnoredMouseClick.Type;
72
72
  export type SuppressedSpaceScroll = typeof SuppressedSpaceScroll.Type;
73
73
  export type Message = typeof Message.Type;
74
- /** Configuration for creating a popover model with `init`. `isAnimated` enables CSS transition coordination (default `false`). `isModal` locks page scroll and inerts other elements when open (default `false`). `contentFocus` hands focus ownership to the consumer — the panel is not focusable and does not close on blur, so the consumer must focus a descendant on open and close the popover on its own blur rules (default `false`). */
74
+ /** Configuration for creating a popover model with `init`. `isAnimated` enables animation coordination (default `false`). `isModal` locks page scroll and inerts other elements when open (default `false`). `contentFocus` hands focus ownership to the consumer — the panel is not focusable and does not close on blur, so the consumer must focus a descendant on open and close the popover on its own blur rules (default `false`). */
75
75
  export type InitConfig = Readonly<{
76
76
  id: string;
77
77
  isAnimated?: boolean;
@@ -105,17 +105,17 @@ export declare const FocusPanel: Command.CommandDefinition<"FocusPanel", {
105
105
  export declare const FocusButton: Command.CommandDefinition<"FocusButton", {
106
106
  readonly _tag: "CompletedFocusButton";
107
107
  }>;
108
- /** Detects whether the popover button moved or the leave transition ended — whichever comes first. Both outcomes signal the Transition submodel that leave is complete. */
109
- export declare const DetectMovementOrTransitionEnd: Command.CommandDefinition<"DetectMovementOrTransitionEnd", {
110
- readonly _tag: "GotTransitionMessage";
108
+ /** Detects whether the popover button moved or the leave animation ended — whichever comes first. Both outcomes signal the Animation submodel that leave is complete. */
109
+ export declare const DetectMovementOrAnimationEnd: Command.CommandDefinition<"DetectMovementOrAnimationEnd", {
110
+ readonly _tag: "GotAnimationMessage";
111
111
  readonly message: {
112
112
  readonly _tag: "Showed";
113
113
  } | {
114
114
  readonly _tag: "Hid";
115
115
  } | {
116
- readonly _tag: "AdvancedTransitionFrame";
116
+ readonly _tag: "AdvancedAnimationFrame";
117
117
  } | {
118
- readonly _tag: "EndedTransition";
118
+ readonly _tag: "EndedAnimation";
119
119
  };
120
120
  }>;
121
121
  /** Processes a popover message and returns the next model and commands. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/index.ts"],"names":[],"mappings":"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"}
@@ -6,20 +6,20 @@ import { m } from '../../message';
6
6
  import { evo } from '../../struct';
7
7
  import * as Task from '../../task';
8
8
  import { anchorHooks } from '../anchor';
9
- // NOTE: Transition imports are split across schema + update to avoid a circular
10
- // dependency: transition → html → runtime → devtools → popover → transition.
11
- // The barrel (../transition) imports from html, which starts the cycle.
12
- import { EndedTransition as TransitionEndedTransition, Hid as TransitionHid, Message as TransitionMessage, Model as TransitionModel, Showed as TransitionShowed, init as transitionInit, } from '../transition/schema';
13
- import { update as transitionUpdate } from '../transition/update';
9
+ // NOTE: Animation imports are split across schema + update to avoid a circular
10
+ // dependency: animation → html → runtime → devtools → popover → animation.
11
+ // The barrel (../animation) imports from html, which starts the cycle.
12
+ import { EndedAnimation as AnimationEndedAnimation, Hid as AnimationHid, Message as AnimationMessage, Model as AnimationModel, Showed as AnimationShowed, init as animationInit, } from '../animation/schema';
13
+ import { update as animationUpdate } from '../animation/update';
14
14
  // MODEL
15
- /** Schema for the popover component's state, tracking open/closed status and transition animation. */
15
+ /** Schema for the popover component's state, tracking open/closed status and animation lifecycle. */
16
16
  export const Model = S.Struct({
17
17
  id: S.String,
18
18
  isOpen: S.Boolean,
19
19
  isAnimated: S.Boolean,
20
20
  isModal: S.Boolean,
21
21
  contentFocus: S.Boolean,
22
- transition: TransitionModel,
22
+ animation: AnimationModel,
23
23
  maybeLastButtonPointerType: S.OptionFromSelf(S.String),
24
24
  });
25
25
  // MESSAGE
@@ -50,12 +50,12 @@ export const CompletedTeardownInert = m('CompletedTeardownInert');
50
50
  export const IgnoredMouseClick = m('IgnoredMouseClick');
51
51
  /** Sent when a Space key-up is captured to prevent page scrolling. */
52
52
  export const SuppressedSpaceScroll = m('SuppressedSpaceScroll');
53
- /** Wraps a Transition submodel message for delegation. */
54
- export const GotTransitionMessage = m('GotTransitionMessage', {
55
- message: TransitionMessage,
53
+ /** Wraps an Animation submodel message for delegation. */
54
+ export const GotAnimationMessage = m('GotAnimationMessage', {
55
+ message: AnimationMessage,
56
56
  });
57
57
  /** Union of all messages the popover component can produce. */
58
- export const Message = S.Union(Opened, Closed, ClosedByTab, PressedPointerOnButton, CompletedFocusPanel, CompletedFocusButton, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, IgnoredMouseClick, SuppressedSpaceScroll, GotTransitionMessage);
58
+ export const Message = S.Union(Opened, Closed, ClosedByTab, PressedPointerOnButton, CompletedFocusPanel, CompletedFocusButton, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, IgnoredMouseClick, SuppressedSpaceScroll, GotAnimationMessage);
59
59
  // INIT
60
60
  const LEFT_MOUSE_BUTTON = 0;
61
61
  /** Creates an initial popover model from a config. Defaults to closed. */
@@ -65,7 +65,7 @@ export const init = (config) => ({
65
65
  isAnimated: config.isAnimated ?? false,
66
66
  isModal: config.isModal ?? false,
67
67
  contentFocus: config.contentFocus ?? false,
68
- transition: transitionInit({ id: `${config.id}-panel` }),
68
+ animation: animationInit({ id: `${config.id}-panel` }),
69
69
  maybeLastButtonPointerType: Option.none(),
70
70
  });
71
71
  // UPDATE
@@ -88,26 +88,26 @@ export const RestoreInert = Command.define('RestoreInert', CompletedTeardownIner
88
88
  export const FocusPanel = Command.define('FocusPanel', CompletedFocusPanel);
89
89
  /** Moves focus back to the popover button after closing. */
90
90
  export const FocusButton = Command.define('FocusButton', CompletedFocusButton);
91
- /** Detects whether the popover button moved or the leave transition ended — whichever comes first. Both outcomes signal the Transition submodel that leave is complete. */
92
- export const DetectMovementOrTransitionEnd = Command.define('DetectMovementOrTransitionEnd', GotTransitionMessage);
93
- const delegateToTransition = (model, transitionMessage) => {
94
- const [nextTransition, transitionCommands, maybeOutMessage] = transitionUpdate(model.transition, transitionMessage);
95
- const mappedCommands = transitionCommands.map(Command.mapEffect(Effect.map(message => GotTransitionMessage({ message }))));
91
+ /** Detects whether the popover button moved or the leave animation ended — whichever comes first. Both outcomes signal the Animation submodel that leave is complete. */
92
+ export const DetectMovementOrAnimationEnd = Command.define('DetectMovementOrAnimationEnd', GotAnimationMessage);
93
+ const delegateToAnimation = (model, animationMessage) => {
94
+ const [nextAnimation, animationCommands, maybeOutMessage] = animationUpdate(model.animation, animationMessage);
95
+ const mappedCommands = animationCommands.map(Command.mapEffect(Effect.map(message => GotAnimationMessage({ message }))));
96
96
  const additionalCommands = Option.match(maybeOutMessage, {
97
97
  onNone: () => [],
98
98
  onSome: M.type().pipe(M.tagsExhaustive({
99
99
  StartedLeaveAnimating: () => [
100
- DetectMovementOrTransitionEnd(Effect.raceFirst(Task.detectElementMovement(buttonSelector(model.id)).pipe(Effect.as(GotTransitionMessage({
101
- message: TransitionEndedTransition(),
102
- }))), Task.waitForTransitions(panelSelector(model.id)).pipe(Effect.as(GotTransitionMessage({
103
- message: TransitionEndedTransition(),
100
+ DetectMovementOrAnimationEnd(Effect.raceFirst(Task.detectElementMovement(buttonSelector(model.id)).pipe(Effect.as(GotAnimationMessage({
101
+ message: AnimationEndedAnimation(),
102
+ }))), Task.waitForAnimationSettled(panelSelector(model.id)).pipe(Effect.as(GotAnimationMessage({
103
+ message: AnimationEndedAnimation(),
104
104
  }))))),
105
105
  ],
106
106
  TransitionedOut: () => [],
107
107
  })),
108
108
  });
109
109
  return [
110
- evo(model, { transition: () => nextTransition }),
110
+ evo(model, { animation: () => nextAnimation }),
111
111
  [...mappedCommands, ...additionalCommands],
112
112
  ];
113
113
  };
@@ -132,10 +132,10 @@ export const update = (model, message) => {
132
132
  ]);
133
133
  const openPopover = (baseModel) => {
134
134
  if (model.isAnimated) {
135
- const [nextModel, transitionCommands] = delegateToTransition(baseModel, TransitionShowed());
135
+ const [nextModel, animationCommands] = delegateToAnimation(baseModel, AnimationShowed());
136
136
  return [
137
137
  evo(nextModel, { isOpen: () => true }),
138
- [...openCommands, ...transitionCommands],
138
+ [...openCommands, ...animationCommands],
139
139
  ];
140
140
  }
141
141
  return [evo(baseModel, { isOpen: () => true }), openCommands];
@@ -143,8 +143,8 @@ export const update = (model, message) => {
143
143
  const closePopover = (baseModel, commands) => {
144
144
  const closed = closedModel(baseModel);
145
145
  if (model.isAnimated) {
146
- const [nextModel, transitionCommands] = delegateToTransition(closed, TransitionHid());
147
- return [nextModel, [...commands, ...transitionCommands]];
146
+ const [nextModel, animationCommands] = delegateToAnimation(closed, AnimationHid());
147
+ return [nextModel, [...commands, ...animationCommands]];
148
148
  }
149
149
  return [closed, commands];
150
150
  };
@@ -175,7 +175,7 @@ export const update = (model, message) => {
175
175
  }
176
176
  return openPopover(withPointerType);
177
177
  },
178
- GotTransitionMessage: ({ message: transitionMessage }) => delegateToTransition(model, transitionMessage),
178
+ GotAnimationMessage: ({ message: animationMessage }) => delegateToAnimation(model, animationMessage),
179
179
  CompletedFocusPanel: () => [model, []],
180
180
  CompletedFocusButton: () => [model, []],
181
181
  CompletedLockScroll: () => [model, []],
@@ -198,12 +198,12 @@ export const close = (model) => update(model, Closed());
198
198
  /** Renders a headless popover with a trigger button and a floating panel. Uses the disclosure ARIA pattern (aria-expanded + aria-controls) with no role on the panel. */
199
199
  export const view = (config) => {
200
200
  const { div, AriaControls, AriaDisabled, AriaExpanded, Class, DataAttribute, Id, OnBlur, OnClick, OnDestroy, OnInsert, OnKeyDownPreventDefault, OnKeyUpPreventDefault, OnPointerDown, Style, Tabindex, Type, keyed, } = html();
201
- const { model: { id, isOpen, contentFocus, transition: { transitionState }, maybeLastButtonPointerType, }, toParentMessage, onOpened, onClosed, anchor, buttonContent, buttonClassName, buttonAttributes = [], panelContent, panelClassName, panelAttributes = [], backdropClassName, backdropAttributes = [], isDisabled, focusSelector, className, attributes = [], } = config;
201
+ const { model: { id, isOpen, contentFocus, animation: { transitionState }, maybeLastButtonPointerType, }, toParentMessage, onOpened, onClosed, anchor, buttonContent, buttonClassName, buttonAttributes = [], panelContent, panelClassName, panelAttributes = [], backdropClassName, backdropAttributes = [], isDisabled, focusSelector, className, attributes = [], } = config;
202
202
  const dispatchOpened = () => onOpened ? onOpened() : toParentMessage(Opened());
203
203
  const dispatchClosed = () => onClosed ? onClosed() : toParentMessage(Closed());
204
204
  const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
205
205
  const isVisible = isOpen || isLeaving;
206
- const transitionAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
206
+ const animationAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
207
207
  DataAttribute('closed', ''),
208
208
  DataAttribute('enter', ''),
209
209
  DataAttribute('transition', ''),
@@ -275,7 +275,7 @@ export const view = (config) => {
275
275
  Id(`${id}-panel`),
276
276
  ...(contentFocus ? [] : [Tabindex(0)]),
277
277
  ...anchorAttributes,
278
- ...transitionAttributes,
278
+ ...animationAttributes,
279
279
  ...(isLeaving
280
280
  ? []
281
281
  : [
@@ -1,4 +1,4 @@
1
- export { init, update, open, close, view, lazy, Model, Message, Opened, Closed, CompletedFocusPanel, CompletedFocusButton, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, GotTransitionMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusPanel, FocusButton, DetectMovementOrTransitionEnd, } from './index';
1
+ export { init, update, open, close, view, lazy, Model, Message, Opened, Closed, CompletedFocusPanel, CompletedFocusButton, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusPanel, FocusButton, DetectMovementOrAnimationEnd, } from './index';
2
2
  export type { ClosedByTab, PressedPointerOnButton, IgnoredMouseClick, SuppressedSpaceScroll, InitConfig, ViewConfig, } from './index';
3
3
  export type { AnchorConfig } from '../anchor';
4
4
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,6BAA6B,GAC9B,MAAM,SAAS,CAAA;AAEhB,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,UAAU,GACX,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,4BAA4B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,UAAU,GACX,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA"}
@@ -1 +1 @@
1
- export { init, update, open, close, view, lazy, Model, Message, Opened, Closed, CompletedFocusPanel, CompletedFocusButton, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, GotTransitionMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusPanel, FocusButton, DetectMovementOrTransitionEnd, } from './index';
1
+ export { init, update, open, close, view, lazy, Model, Message, Opened, Closed, CompletedFocusPanel, CompletedFocusButton, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusPanel, FocusButton, DetectMovementOrAnimationEnd, } from './index';