epic-modals 0.0.9 → 1.0.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 (126) hide show
  1. package/LICENSE +21 -93
  2. package/dist/core/animation/controller.d.ts +58 -0
  3. package/dist/core/animation/flip.d.ts +8 -0
  4. package/dist/core/animation/genie.d.ts +14 -0
  5. package/dist/core/animation/index.d.ts +6 -0
  6. package/dist/core/animation/timing.d.ts +34 -0
  7. package/dist/core/behaviors/drag.d.ts +34 -0
  8. package/dist/core/behaviors/focusTrap.d.ts +23 -0
  9. package/dist/core/behaviors/index.d.ts +6 -0
  10. package/dist/core/behaviors/parentChild.d.ts +27 -0
  11. package/dist/core/behaviors/resize.d.ts +49 -0
  12. package/dist/core/config/defaults.d.ts +90 -0
  13. package/dist/core/config/index.d.ts +4 -0
  14. package/dist/core/config/resolution.d.ts +25 -0
  15. package/dist/core/index.d.ts +7 -5
  16. package/dist/core/modal/Controller.d.ts +70 -0
  17. package/dist/core/modal/Controller.types.d.ts +77 -0
  18. package/dist/core/modal/Interactions.d.ts +67 -0
  19. package/dist/core/modal/Lifecycle.d.ts +20 -0
  20. package/dist/core/modal/Positioning.d.ts +40 -0
  21. package/dist/core/modal/StateManager.d.ts +91 -0
  22. package/dist/core/modal/Styling.d.ts +42 -0
  23. package/dist/core/modal/index.d.ts +8 -0
  24. package/dist/core/state/effects.d.ts +16 -0
  25. package/dist/core/state/events.d.ts +15 -0
  26. package/dist/core/state/getters.d.ts +37 -0
  27. package/dist/core/state/index.d.ts +17 -0
  28. package/dist/core/state/internal.d.ts +105 -0
  29. package/dist/core/state/layout.d.ts +17 -0
  30. package/dist/core/state/minimize.d.ts +18 -0
  31. package/dist/core/state/open-close.d.ts +21 -0
  32. package/dist/core/state/parent-child.d.ts +17 -0
  33. package/dist/core/state/pending.d.ts +55 -0
  34. package/dist/core/state/position.d.ts +15 -0
  35. package/dist/core/state/registration.d.ts +15 -0
  36. package/dist/core/state/stacking.d.ts +10 -0
  37. package/dist/core/state/zindex.d.ts +8 -0
  38. package/dist/core/types.d.ts +107 -14
  39. package/dist/core/utils/backdrop.d.ts +8 -0
  40. package/dist/core/utils/constants.d.ts +193 -0
  41. package/dist/core/utils/dock.d.ts +12 -0
  42. package/dist/core/utils/dom.d.ts +31 -0
  43. package/dist/core/utils/helpers.d.ts +8 -0
  44. package/dist/core/utils/index.d.ts +8 -0
  45. package/dist/core/utils/viewport/constraints.d.ts +7 -0
  46. package/dist/core/utils/viewport/index.d.ts +7 -0
  47. package/dist/core/utils/viewport/overlap.d.ts +30 -0
  48. package/dist/core/utils/viewport/smart-layout.d.ts +3 -0
  49. package/dist/core/utils/viewport/smart-position.d.ts +36 -0
  50. package/dist/core/utils/viewport/types.d.ts +56 -0
  51. package/dist/core/utils/viewport.d.ts +3 -0
  52. package/dist/core.js +1 -1
  53. package/dist/epic-modals.css +45 -7
  54. package/dist/index.js +1 -1
  55. package/dist/react/components/Backdrop.d.ts +7 -0
  56. package/dist/react/{ModalProvider.d.ts → components/ModalProvider.d.ts} +4 -5
  57. package/dist/react/components/Portal.d.ts +10 -0
  58. package/dist/react/components/dock/Dock.d.ts +7 -0
  59. package/dist/react/components/dock/DockItem.d.ts +16 -0
  60. package/dist/react/{Modal.d.ts → components/modal/Modal.d.ts} +4 -3
  61. package/dist/react/components/modal/ModalHeader.d.ts +13 -0
  62. package/dist/react/components/modal/ModalInner.d.ts +17 -0
  63. package/dist/react/components/modal/ResizeHandles.d.ts +9 -0
  64. package/dist/react/components/wizard/WizardModal.d.ts +33 -0
  65. package/dist/react/components/wizard/WizardStep.d.ts +15 -0
  66. package/dist/react/context.d.ts +10 -3
  67. package/dist/react/hooks/useConfig.d.ts +25 -0
  68. package/dist/react/useModal.d.ts +3 -7
  69. package/dist/react.d.ts +10 -6
  70. package/dist/react.js +1 -1
  71. package/dist/runtime.js +1 -1
  72. package/dist/styles/animations.css +1 -1
  73. package/dist/styles/backdrop.css +1 -0
  74. package/dist/styles/dock.css +1 -1
  75. package/dist/styles/index.css +1 -1
  76. package/dist/styles/modal.css +1 -1
  77. package/dist/styles/themes/dark.css +1 -1
  78. package/dist/styles/themes/light.css +1 -1
  79. package/dist/styles/variables.css +1 -1
  80. package/dist/styles/wizard.css +1 -0
  81. package/dist/svelte/actions/appendElement.d.ts +1 -4
  82. package/dist/svelte/components/wizard/WizardModal.svelte.d.ts +1 -0
  83. package/dist/svelte/components/wizard/WizardStep.svelte.d.ts +1 -0
  84. package/dist/svelte/context.d.ts +5 -5
  85. package/dist/svelte/hooks/index.d.ts +5 -8
  86. package/dist/svelte/hooks/useFocusTrap.svelte.d.ts +4 -13
  87. package/dist/svelte/hooks/useModal.svelte.d.ts +24 -28
  88. package/dist/svelte/hooks/useModalConfig.svelte.d.ts +27 -0
  89. package/dist/svelte/hooks/useModalZIndex.svelte.d.ts +3 -23
  90. package/dist/svelte/hooks/usePortal.svelte.d.ts +2 -7
  91. package/dist/svelte/hooks/useWindowEvent.svelte.d.ts +2 -7
  92. package/dist/svelte/stores.svelte.d.ts +6 -0
  93. package/dist/svelte/wizardContext.svelte.d.ts +36 -0
  94. package/dist/svelte.d.ts +17 -7
  95. package/dist/svelte.js +1 -1
  96. package/dist/ui.js +1 -1
  97. package/dist/vanilla/VanillaBackdrop.d.ts +14 -0
  98. package/dist/vanilla/VanillaDock.d.ts +24 -0
  99. package/dist/vanilla/VanillaModal.d.ts +76 -0
  100. package/dist/vanilla/index.d.ts +21 -25
  101. package/dist/vanilla.d.ts +1 -8
  102. package/dist/vanilla.js +1 -1
  103. package/package.json +36 -5
  104. package/dist/core/config.svelte.d.ts +0 -85
  105. package/dist/core/stacking.svelte.d.ts +0 -19
  106. package/dist/core/state.svelte.d.ts +0 -324
  107. package/dist/core/utils.d.ts +0 -7
  108. package/dist/core/viewport.d.ts +0 -92
  109. package/dist/core/viewport.test.d.ts +0 -2
  110. package/dist/react/Dock.d.ts +0 -10
  111. package/dist/react/index.d.ts +0 -15
  112. package/dist/react/reactiveProps.svelte.d.ts +0 -17
  113. package/dist/react/svelte-bridge.d.ts +0 -18
  114. package/dist/react/useModalZIndex.d.ts +0 -35
  115. package/dist/svelte/hooks/useModalAnimation.svelte.d.ts +0 -16
  116. package/dist/svelte/hooks/useModalDrag.svelte.d.ts +0 -16
  117. package/dist/svelte/hooks/useModalResize.svelte.d.ts +0 -18
  118. package/dist/svelte/index.d.ts +0 -14
  119. /package/dist/svelte/{Backdrop.svelte.d.ts → components/Backdrop.svelte.d.ts} +0 -0
  120. /package/dist/svelte/{ModalProvider.svelte.d.ts → components/ModalProvider.svelte.d.ts} +0 -0
  121. /package/dist/svelte/{Portal.svelte.d.ts → components/Portal.svelte.d.ts} +0 -0
  122. /package/dist/svelte/{Dock.svelte.d.ts → components/dock/Dock.svelte.d.ts} +0 -0
  123. /package/dist/svelte/{Modal.svelte.d.ts → components/modal/Modal.svelte.d.ts} +0 -0
  124. /package/dist/svelte/{ModalHeader.svelte.d.ts → components/modal/ModalHeader.svelte.d.ts} +0 -0
  125. /package/dist/svelte/{ModalInner.svelte.d.ts → components/modal/ModalInner.svelte.d.ts} +0 -0
  126. /package/dist/svelte/{ResizeHandles.svelte.d.ts → components/modal/ResizeHandles.svelte.d.ts} +0 -0
@@ -1,8 +1,8 @@
1
- /**
2
- * Context keys for the modal library
3
- */
4
- /** Context key for renderIcon snippet */
1
+
2
+
5
3
  export declare const RENDER_ICON_CONTEXT: unique symbol;
6
- /** Context key for current modal ID */
4
+
7
5
  export declare const MODAL_ID_CONTEXT: unique symbol;
6
+
7
+ export declare const MODAL_PROVIDER_CONFIG_CONTEXT: unique symbol;
8
8
  //# sourceMappingURL=context.d.ts.map
@@ -1,13 +1,10 @@
1
- /**
2
- * Svelte hooks for modal library
3
- * All hooks use Svelte 5 runes ($state, $effect) and provide reactive functionality
4
- */
5
- export { useModal } from './useModal.svelte';
6
- export { useModalDrag } from './useModalDrag.svelte';
7
- export { useModalResize } from './useModalResize.svelte';
8
- export { useModalAnimation } from './useModalAnimation.svelte';
1
+
2
+ export { useModal, useModals } from './useModal.svelte';
3
+ export type { UseModalReturn, UseModalsReturn } from './useModal.svelte';
9
4
  export { trapFocus, focusFirstElement, useFocusTrap } from './useFocusTrap.svelte';
10
5
  export { usePortal } from './usePortal.svelte';
11
6
  export { useModalZIndex } from './useModalZIndex.svelte';
12
7
  export { useWindowEvent } from './useWindowEvent.svelte';
8
+ export { useModalConfig } from './useModalConfig.svelte';
9
+ export type { UseModalConfigOptions, UseModalConfigReturn } from './useModalConfig.svelte';
13
10
  //# sourceMappingURL=index.d.ts.map
@@ -1,18 +1,9 @@
1
- /**
2
- * Hook for keyboard focus management
3
- * Implements Tab key focus trapping within modal containers
4
- */
5
- /**
6
- * Trap focus within a container for Tab key navigation
7
- */
1
+
2
+
8
3
  export declare function trapFocus(event: KeyboardEvent, container: HTMLElement): void;
9
- /**
10
- * Focus the first focusable element within a container
11
- */
4
+
12
5
  export declare function focusFirstElement(container: HTMLElement): boolean;
13
- /**
14
- * Hook factory for focus trap functionality
15
- */
6
+
16
7
  export declare function useFocusTrap(): {
17
8
  trapFocus: typeof trapFocus;
18
9
  focusFirstElement: typeof focusFirstElement;
@@ -1,41 +1,37 @@
1
- import { ModalId } from '../../core/types';
1
+ import { ModalId, ModalState } from '../../core/types';
2
2
  export interface UseModalReturn {
3
- /** Trigger shake + glow attention effect on the modal */
3
+
4
4
  shake: () => void;
5
- /** Bring modal to the front (highest z-index) */
5
+
6
6
  bringToFront: () => void;
7
- /** Check if the modal is currently open and visible */
7
+
8
8
  isOpen: () => boolean;
9
- /** Check if the modal is registered in the system */
9
+
10
+ isMinimized: () => boolean;
11
+
10
12
  isRegistered: () => boolean;
11
- /** Open the modal (requires source element for animation) */
13
+
12
14
  open: (sourceElement: HTMLElement) => void;
13
- /** Close the modal */
15
+
14
16
  close: () => void;
15
- /** Minimize the modal to dock */
17
+
16
18
  minimize: () => void;
17
- /** Restore the modal from dock */
19
+
18
20
  restore: () => void;
19
- /** Open a child modal linked to this modal */
21
+
20
22
  openChild: (childId: ModalId, sourceElement?: HTMLElement) => void;
21
23
  }
22
- /**
23
- * Hook to interact with a specific modal by ID
24
- * @param id - The modal ID to interact with
25
- * @returns Object with utility functions for the modal
26
- *
27
- * @example
28
- * ```svelte
29
- * <script lang="ts">
30
- * import { useModal } from 'epic-modals/svelte';
31
- *
32
- * const modal = useModal('my-modal');
33
- *
34
- * function handleError() {
35
- * modal.shake(); // Trigger attention effect
36
- * }
37
- * </script>
38
- * ```
39
- */
24
+
25
+ export interface UseModalsReturn {
26
+
27
+ getModals: () => Map<ModalId, ModalState>;
28
+
29
+ getMinimizedCount: () => number;
30
+
31
+ getOpenCount: () => number;
32
+ }
33
+
40
34
  export declare function useModal(id: ModalId): UseModalReturn;
35
+
36
+ export declare function useModals(): UseModalsReturn;
41
37
  //# sourceMappingURL=useModal.svelte.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { ModalLibraryConfig, ModalFeatures, AppearanceConfig, AnimationDurations, PositioningConfig, ParentChildConfig, PartialModalLibraryConfig } from '../../core/config';
2
+ import { ModalConfigOverrides } from '../../core/types';
3
+ export interface UseModalConfigOptions {
4
+
5
+ getModalConfig?: () => ModalConfigOverrides | undefined;
6
+
7
+ getProviderConfig?: () => PartialModalLibraryConfig | undefined;
8
+ }
9
+ export interface UseModalConfigReturn {
10
+
11
+ getEffectiveConfig: () => ModalLibraryConfig;
12
+
13
+ isFeatureEnabled: (feature: keyof ModalFeatures) => boolean;
14
+
15
+ getAppearance: <K extends keyof AppearanceConfig>(key: K) => AppearanceConfig[K];
16
+
17
+ getAnimation: <K extends keyof AnimationDurations>(key: K) => AnimationDurations[K];
18
+
19
+ getPositioning: <K extends keyof PositioningConfig>(key: K) => PositioningConfig[K];
20
+
21
+ getParentChild: <K extends keyof ParentChildConfig>(key: K) => ParentChildConfig[K];
22
+
23
+ getProviderConfig: () => PartialModalLibraryConfig | undefined;
24
+ }
25
+
26
+ export declare function useModalConfig(options?: UseModalConfigOptions): UseModalConfigReturn;
27
+ //# sourceMappingURL=useModalConfig.svelte.d.ts.map
@@ -1,30 +1,10 @@
1
1
  import { ModalId } from '../../core/types';
2
2
  export interface UseModalZIndexReturn {
3
- /** Z-index for floating elements (same as modal, appears on top due to DOM order) */
3
+
4
4
  zIndex: number;
5
- /** Portal target element or selector */
5
+
6
6
  portalTarget: string | HTMLElement;
7
7
  }
8
- /**
9
- * Get z-index and portal target for floating elements inside a modal
10
- * @param modalId - Optional modal ID. If not provided, uses context from parent Modal component.
11
- * @returns Object with zIndex and portalTarget for positioning
12
- *
13
- * @example
14
- * ```svelte
15
- * <script lang="ts">
16
- * import { useModalZIndex, Portal } from 'epic-modals/svelte';
17
- *
18
- * // Automatically uses parent modal's ID from context
19
- * const { zIndex, portalTarget } = useModalZIndex();
20
- * </script>
21
- *
22
- * <Portal target={portalTarget}>
23
- * <div class="dropdown" style:z-index={zIndex}>
24
- * Dropdown content
25
- * </div>
26
- * </Portal>
27
- * ```
28
- */
8
+
29
9
  export declare function useModalZIndex(modalId?: ModalId): UseModalZIndexReturn;
30
10
  //# sourceMappingURL=useModalZIndex.svelte.d.ts.map
@@ -1,11 +1,6 @@
1
- /**
2
- * Hook for DOM portal mounting
3
- * Handles rendering content into a different part of the DOM tree
4
- */
1
+
5
2
  type PortalTarget = string | HTMLElement | null;
6
- /**
7
- * Hook factory for portal functionality
8
- */
3
+
9
4
  export declare function usePortal(): {
10
5
  mount: (element: HTMLElement, target?: PortalTarget) => () => void;
11
6
  };
@@ -1,10 +1,5 @@
1
- /**
2
- * Hook for window event listeners
3
- * Manages event listeners with automatic cleanup on unmount
4
- */
5
- /**
6
- * Hook factory for window event functionality
7
- */
1
+
2
+
8
3
  export declare function useWindowEvent(): {
9
4
  addListener: <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => unknown, options?: AddEventListenerOptions) => () => void;
10
5
  addListenerEffect: <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => unknown, options?: AddEventListenerOptions) => void;
@@ -0,0 +1,6 @@
1
+
2
+
3
+ export declare function getReactiveStateVersion(): number;
4
+
5
+ export declare function getReactiveConfigVersion(): number;
6
+ //# sourceMappingURL=stores.svelte.d.ts.map
@@ -0,0 +1,36 @@
1
+
2
+ export interface StepRegistration {
3
+ title: string;
4
+ getCanProceed: () => boolean;
5
+ }
6
+ export type WizardTransitionStyle = 'fade-slide' | 'slide-through';
7
+
8
+ export interface WizardControls {
9
+ currentStep: number;
10
+ totalSteps: number;
11
+ isFirstStep: boolean;
12
+ isLastStep: boolean;
13
+ canProceed: boolean;
14
+ progress: number;
15
+ steps: Array<{
16
+ title: string;
17
+ }>;
18
+ next: () => void;
19
+ back: () => void;
20
+ goToStep: (index: number) => void;
21
+ }
22
+
23
+ export declare class WizardState {
24
+ currentStep: number;
25
+ previousStep: number;
26
+ direction: "forward" | "backward";
27
+ isAnimating: boolean;
28
+ steps: StepRegistration[];
29
+ transitionStyle: WizardTransitionStyle;
30
+ registerStep(step: StepRegistration): number;
31
+ unregisterStep(_index: number): void;
32
+ updateStep(index: number, update: Partial<StepRegistration>): void;
33
+ reset(): void;
34
+ setTransitionStyle(style: WizardTransitionStyle): void;
35
+ }
36
+ //# sourceMappingURL=wizardContext.svelte.d.ts.map
package/dist/svelte.d.ts CHANGED
@@ -1,9 +1,19 @@
1
- export { default as Modal } from './svelte/Modal.svelte';
2
- export { default as Dock } from './svelte/Dock.svelte';
3
- export { default as Backdrop } from './svelte/Backdrop.svelte';
4
- export { default as ModalProvider } from './svelte/ModalProvider.svelte';
5
- export { default as ModalHeader } from './svelte/ModalHeader.svelte';
6
- export { default as ResizeHandles } from './svelte/ResizeHandles.svelte';
7
- export { default as Portal } from './svelte/Portal.svelte';
1
+ export { default as Modal } from './svelte/components/modal/Modal.svelte';
2
+ export { default as ModalHeader } from './svelte/components/modal/ModalHeader.svelte';
3
+ export { default as ResizeHandles } from './svelte/components/modal/ResizeHandles.svelte';
4
+ export { default as WizardModal } from './svelte/components/wizard/WizardModal.svelte';
5
+ export { default as WizardStep } from './svelte/components/wizard/WizardStep.svelte';
6
+ export { default as Dock } from './svelte/components/dock/Dock.svelte';
7
+ export { default as Backdrop } from './svelte/components/Backdrop.svelte';
8
+ export { default as ModalProvider } from './svelte/components/ModalProvider.svelte';
9
+ export { default as Portal } from './svelte/components/Portal.svelte';
10
+ export { RENDER_ICON_CONTEXT, MODAL_ID_CONTEXT } from './svelte/context';
8
11
  export * from './svelte/hooks';
12
+ export { openModal, closeModal, closeAllModals, minimizeModal, restoreModal, bringToFront, isModalOpen, isModalRegistered, isModalAnimating, getModalsStore, getStateVersion, getModalsToClose, openChildModal, restoreAllMinimizedModals, reorderDock, shakeElement, triggerAttention, toggleModalTransparency, setURLStateCallbacks, setRegistryFunctions, storeOpenSourcePosition, registerModal, linkModals, setModalAnimating, updateModalPosition, } from './core/state';
13
+ export type { UseModalReturn } from './svelte/hooks/useModal.svelte';
14
+ export type { UseModalZIndexReturn } from './svelte/hooks/useModalZIndex.svelte';
15
+ export { getConfig, setConfig, resetConfig, getConfigVersion } from './core/config';
16
+ export type { ModalLibraryConfig, DockConfig, AnimationDurations, PositioningConfig, ParentChildConfig } from './core/config';
17
+ export { getReactiveStateVersion, getReactiveConfigVersion } from './svelte/stores.svelte';
18
+ export { screenCenter } from './core/utils/helpers';
9
19
  //# sourceMappingURL=svelte.d.ts.map
package/dist/svelte.js CHANGED
@@ -1 +1 @@
1
- import{B as a,D as s,M as e,b as o,a as d,P as r,R as l,f as u,t as i,g as t,u as M,e as n,c,d as p,i as m,h as F,j as P}from"./ui.js";export{a as Backdrop,s as Dock,e as Modal,o as ModalHeader,d as ModalProvider,r as Portal,l as ResizeHandles,u as focusFirstElement,i as trapFocus,t as useFocusTrap,M as useModal,n as useModalAnimation,c as useModalDrag,p as useModalResize,m as useModalZIndex,F as usePortal,P as useWindowEvent};
1
+ import{B as s,D as a,M as e,a as o,b as t,c as i,P as r,R as l,d,W as n,e as M,f as g,g as c,h as u,t as p,u as C,i as m,j as f,k as R,l as T,m as k,n as E}from"./ui.js";import{h as A,an as O,c as S,k as z,b as D,j as F,ba as P,g as v,G as N,f as V,i as _,br as b,m as h,o as j,d as I,q as W,bv as x,bw as y,by as H,r as L,bT as X,N as w,bB as B,bC as U,bD as Z,H as q,bH as G,bI as J,t as K,bQ as Q}from"./core.js";export{s as Backdrop,a as Dock,e as MODAL_ID_CONTEXT,o as Modal,t as ModalHeader,i as ModalProvider,r as Portal,l as RENDER_ICON_CONTEXT,d as ResizeHandles,n as WizardModal,M as WizardStep,A as bringToFront,O as closeAllModals,S as closeModal,g as focusFirstElement,z as getConfig,D as getConfigVersion,F as getModalsStore,P as getModalsToClose,c as getReactiveConfigVersion,u as getReactiveStateVersion,v as getStateVersion,N as isModalAnimating,V as isModalOpen,_ as isModalRegistered,b as linkModals,h as minimizeModal,j as openChildModal,I as openModal,W as registerModal,x as reorderDock,y as resetConfig,H as restoreAllMinimizedModals,L as restoreModal,X as screenCenter,w as setConfig,B as setModalAnimating,U as setRegistryFunctions,Z as setURLStateCallbacks,q as shakeElement,G as storeOpenSourcePosition,J as toggleModalTransparency,p as trapFocus,K as triggerAttention,Q as updateModalPosition,C as useFocusTrap,m as useModal,f as useModalConfig,R as useModalZIndex,T as useModals,k as usePortal,E as useWindowEvent};
package/dist/ui.js CHANGED
@@ -1 +1 @@
1
- import*as e from"svelte/internal/client";import{i as t,a as i,o as n,r as o,m as r,c as s,b as a,d,t as l,e as g,f as c,g as u,h as p,j as h,k as m,l as f,n as v,p as w,q as y,s as x,u as _,v as b,w as z,x as k,y as D,z as M,A as B,B as I,C,D as E,E as R,F as P,G as T,H as L,I as $,J as S,K as H,L as O,M as X,N as Y,O as F,P as W,Q as A,R as q,S as j,T as N,U as G,V as K,W as U,X as V,Y as Z,Z as J,_ as Q,$ as ee,a0 as te,a1 as ie,a2 as ne,a3 as oe,a4 as re,a5 as se,a6 as ae,a7 as de}from"./core.js";import{getContext as le,onMount as ge,setContext as ce,tick as ue,onDestroy as pe,untrack as he}from"svelte";import"svelte/internal/disclose-version";import{scale as me,fly as fe,fade as ve}from"svelte/transition";import{cubicOut as we,backOut as ye}from"svelte/easing";const xe=Symbol("modal-render-icon"),_e=Symbol("modal-id");function be(e,i){if(!t(e))throw new Error(`Cannot call ${i}() on unregistered modal "${String(e)}". Ensure the Modal component is rendered.`)}function ze(e){return{shake:()=>{be(e,"shake"),l(e)},bringToFront:()=>{be(e,"bringToFront"),d(e)},isOpen:()=>i(e),isRegistered:()=>t(e),open:t=>{be(e,"open"),a(e,t)},close:()=>{be(e,"close"),s(e)},minimize:()=>{be(e,"minimize"),r(e)},restore:()=>{be(e,"restore"),o(e)},openChild:(t,i)=>{be(e,"openChild"),n({id:t},e,i)}}}function ke(t={x:0,y:0}){const i=e.proxy({...t}),n=e.proxy({isDragging:!1,startX:0,startY:0,initialX:0,initialY:0,hasBeenDragged:!1});return{get position(){return i},get hasBeenDragged(){return n.hasBeenDragged},get isDragging(){return n.isDragging},onPointerDown:function(e,t){if(0===e.button){if(!n.hasBeenDragged){const e=t.getBoundingClientRect();i.x=e.left,i.y=e.top}n.isDragging=!0,n.startX=e.clientX,n.startY=e.clientY,n.initialX=i.x,n.initialY=i.y,t.setPointerCapture(e.pointerId)}},onPointerMove:function(e,t,o){if(!n.isDragging)return;const r=e.clientX-n.startX,s=e.clientY-n.startY,a=n.initialX+r,d=n.initialY+s,l=g(a,d,o.width,o.height);i.x=l.x,i.y=l.y,n.hasBeenDragged=!0},onPointerUp:function(e,t){n.isDragging&&(n.isDragging=!1,t.releasePointerCapture(e.pointerId))},setPosition:function(e){i.x=e.x,i.y=e.y},setHasBeenDragged:function(e){n.hasBeenDragged=e},reset:function(){i.x=t.x,i.y=t.y,n.hasBeenDragged=!1}}}function De(t,i,n,o,r,s,a){let d=e.state(!1),l=e.state(""),g=e.state(e.proxy({width:0,height:0})),u=e.state(!1),p=e.state(!1),h={x:0,y:0,width:0,height:0,posX:0,posY:0,centerX:0,centerY:0},m=null;function f(s,a){s.preventDefault(),s.stopPropagation();const c=t();if(!c)return;const p=c.getBoundingClientRect();o()||(n({x:p.left,y:p.top}),r(!0)),e.get(u)||(e.set(g,{width:p.width,height:p.height},!0),e.set(u,!0));const f=i();e.set(d,!0),e.set(l,a,!0),m=s.pointerId,h={x:s.clientX,y:s.clientY,width:e.get(g).width,height:e.get(g).height,posX:f.x,posY:f.y,centerX:f.x+e.get(g).width/2,centerY:f.y+e.get(g).height/2},window.addEventListener("pointermove",v),window.addEventListener("pointerup",w),window.addEventListener("pointercancel",w)}function v(t){if(t.pointerId!==m)return;const i=t.clientX-h.x,o=t.clientY-h.y,r=window.innerWidth,s=window.innerHeight,d=(null==a?void 0:a())??!1;let u=h.width,p=h.height,f=h.posX,v=h.posY;if(d){if(e.get(l).includes("e")||e.get(l).includes("w")){const t=e.get(l).includes("e")?i:-i;u=Math.max(280,h.width+2*t),f=h.centerX-u/2}if(e.get(l).includes("s")||e.get(l).includes("n")){const t=e.get(l).includes("s")?o:-o;p=Math.max(200,h.height+2*t),v=h.centerY-p/2}}else{if(e.get(l).includes("e")){const e=r-f;u=Math.max(280,Math.min(h.width+i,e))}if(e.get(l).includes("w")){const e=h.width-280,t=Math.min(i,e);u=h.width-t,f=h.posX+t}if(e.get(l).includes("s")){const e=s-v;p=Math.max(200,Math.min(h.height+o,e))}if(e.get(l).includes("n")){const e=h.height-200,t=Math.min(o,e);p=h.height-t,v=h.posY+t}}const w=c(f,v,u,p);e.set(g,{width:w.width,height:w.height},!0),n({x:w.x,y:w.y})}function w(t){t.pointerId===m&&(e.set(d,!1),m=null,window.removeEventListener("pointermove",v),window.removeEventListener("pointerup",w),window.removeEventListener("pointercancel",w),e.set(p,!0),s(i(),e.get(g)),setTimeout(()=>{e.set(p,!1)},0))}const y={startResize:f};return{get isResizing(){return e.get(d)},get resizeDirection(){return e.get(l)},get size(){return e.get(g)},get hasBeenResized(){return e.get(u)},get isActive(){return e.get(d)},get justFinishedResizing(){return e.get(p)},start:f,setHasBeenResized:()=>{},setSize:function(t){e.set(g,t,!0),e.set(u,!0)},reset:function(){e.set(u,!1),e.set(g,{width:0,height:0},!0)},constrainToViewport:function(){const o=i(),r=t();if(!r)return;const s=c(o.x,o.y,e.get(g).width||r.offsetWidth,e.get(g).height||r.offsetHeight);e.set(g,{width:s.width,height:s.height},!0),n({x:s.x,y:s.y})},handlers:y}}function Me(){return u().features.animations}function Be(t,i,n,o,r,s,a,d,l){let g=e.state(!1),c=e.state(!1),u=e.state(!1),h=e.state(!1),m=e.state(null),f=e.state(null),v=null,w=null;function y(){w&&(clearTimeout(w),w=null)}function x(){const e=t(),i=document.querySelector(`.modal-dock-item[data-modal-id="${p(e)}"]`),n=document.querySelector('[data-dock-container="true"]'),o=i||n;if(o){const e=o.getBoundingClientRect();return{x:e.left+e.width/2,y:e.top+e.height/2}}return{x:window.innerWidth/2,y:window.innerHeight-40}}return e.user_effect(()=>()=>{y(),e.set(g,!1),e.set(c,!1),e.set(u,!1),e.set(h,!1),e.set(m,null),e.set(f,null),v=null}),{get isMinimizing(){return e.get(g)},get isRestoring(){return e.get(c)},get isOpening(){return e.get(u)},get isClosing(){return e.get(h)},get animationTransform(){return e.get(m)},get pendingOpenSource(){return e.get(f)},startMinimize:function(t,p){const h=i();if(e.get(g)||!h)return;if(e.set(c,!1),e.set(u,!1),y(),!Me()){const e=h.getBoundingClientRect();let t=r()?n():{x:e.left,y:e.top},i=a()?d():{width:e.width,height:e.height};return r()||(o(t),s(!0)),void(p?p():l(t,!0,i))}const f=h.getBoundingClientRect(),v=f.left+f.width/2,_=f.top+f.height/2;let b=r()?n():{x:f.left,y:f.top},z=a()?d():{width:f.width,height:f.height};r()||(o(b),s(!0));const k=t??x(),D=k.x-f.left,M=k.y-f.top,B={x:k.x-v,y:k.y-_,originX:D,originY:M};e.set(m,B,!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.set(g,!0)})}),w=setTimeout(()=>{p?p():l(b,!0,z)},500)},startRestore:function(t,i){if(!Me()){const e=t||{x:window.innerWidth/2,y:window.innerHeight/2};return o(e),void s(!0)}const n=x(),r=t||{x:window.innerWidth/2,y:window.innerHeight/2},a=i||{width:480,height:400};o(r),s(!0);const d=r.x+a.width/2,l=r.y+a.height/2,g=n.x-r.x,u=n.y-r.y;e.set(m,{x:n.x-d,y:n.y-l,originX:g,originY:u},!0),e.set(c,!0),setTimeout(()=>{e.set(c,!1),e.set(m,null)},400)},startClose:function(t){e.get(h)||e.get(g)||(Me()?(v=t,e.set(h,!0),setTimeout(()=>{e.set(h,!1),v&&(v(),v=null)},250)):t())},setPendingOpenSource:function(t){e.set(f,t,!0)},tryStartOpenAnimation:function(){const t=i();if(!e.get(f)||!t||e.get(u))return!1;if(!Me())return e.set(f,null),!1;const a=e.get(f);e.set(f,null);const d=t.getBoundingClientRect(),l=r()?n():{x:d.left,y:d.top},g=d.width,c=d.height,p=l.x+g/2,h=l.y+c/2;r()||(o(l),s(!0));const v=a.x-l.x,w=a.y-l.y;return e.set(m,{x:a.x-p,y:a.y-h,originX:v,originY:w},!0),e.set(u,!0),setTimeout(()=>{e.set(u,!1),e.set(m,null)},400),!0},forceClearMinimize:function(){y(),e.set(g,!1),e.set(m,null)}}}const Ie=["button:not([disabled])","[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");function Ce(e){return Array.from(e.querySelectorAll(Ie)).filter(e=>null!==e.offsetParent||"A"===e.tagName)}function Ee(e,t){if("Tab"!==e.key)return;const i=Ce(t);if(0===i.length)return void e.preventDefault();const n=i[0],o=i[i.length-1],r=document.activeElement;e.shiftKey?r===n&&(o.focus(),e.preventDefault()):r===o&&(n.focus(),e.preventDefault())}function Re(e){const t=Ce(e);return t.length>0&&(t[0].focus(),!0)}function Pe(){return{trapFocus:Ee,focusFirstElement:Re}}const Te="modal-portal";function Le(){return{mount:function(e,t=null){const i=function(e){if("undefined"==typeof window)return null;if(e instanceof HTMLElement)return e;if("string"==typeof e){const t=document.querySelector(e);if(t)return t;if(e.startsWith("#")){const t=e.slice(1),i=document.createElement("div");return i.id=t,document.body.appendChild(i),i}}let t=document.getElementById(Te);return t||(t=document.createElement("div"),t.id=Te,document.body.appendChild(t)),t}(t);return i?(i.appendChild(e),()=>{e.parentNode===i&&i.removeChild(e),i.id!==Te&&0===i.children.length&&i.parentNode&&i.parentNode.removeChild(i)}):()=>{}}}}function $e(e){const t=le(_e),i=e??t;if(!i)throw new Error("useModalZIndex: No modal ID provided and no modal context found. Either pass a modal ID or use this hook inside a Modal component.");return{get zIndex(){const e=h(i);return((null==e?void 0:e.zIndex)??u().zIndex.base)+1},get portalTarget(){return u().portalTarget}}}function Se(){function t(e,t,i){return"undefined"==typeof window?()=>{}:(window.addEventListener(e,t,i),()=>{window.removeEventListener(e,t,i)})}return{addListener:t,addListenerEffect:function(i,n,o){e.user_effect(()=>{if("undefined"!=typeof window)return t(i,n,o)})}}}var He=e.from_html('<div style="display: contents;"><!></div>');function Oe(t,i){e.push(i,!0);let n=e.prop(i,"target",3,"body"),o=null,r=null;const{mount:s}=Le();ge(()=>(o&&(r=s(o,n())),()=>{null==r||r()}));var a=He(),d=e.child(a);e.snippet(d,()=>i.children),e.reset(a),e.bind_this(a,e=>o=e,()=>o),e.append(t,a),e.pop()}var Xe=e.from_html('<button type="button" aria-label="Minimize"></button>'),Ye=e.from_html('<button type="button" class="modal-header-light modal-header-light-style" aria-label="Toggle style"></button>'),Fe=e.from_html('<div class="modal-header-icon"><!></div>'),We=e.from_html('<div class="modal-header-icon"><!></div>'),Ae=e.from_html('<h2 class="modal-header-title"> </h2>'),qe=e.from_html('<h2 class="modal-header-title"> </h2>'),je=e.from_html('<div class="modal-header-traffic-lights"><button type="button" class="modal-header-light modal-header-light-close" aria-label="Close"></button> <!> <!></div> <div class="modal-header-mac-center"><!> <div class="modal-header-title-group"><!></div></div> <div class="modal-header-mac-spacer"></div>',1),Ne=e.from_html('<div class="modal-header-icon"><!></div>'),Ge=e.from_html('<div class="modal-header-icon"><!></div>'),Ke=e.from_html('<h2 class="modal-header-title"> </h2>'),Ue=e.from_html('<h2 class="modal-header-title"> </h2>'),Ve=e.from_html('<button type="button" class="modal-header-btn-windows modal-header-btn-windows-style" aria-label="Toggle style">&#9671;</button>'),Ze=e.from_html('<button type="button" aria-label="Minimize">&#8211;</button>'),Je=e.from_html('<div class="modal-header-title-group"><!> <!></div> <div class="modal-header-actions"><!> <!> <button type="button" class="modal-header-btn-windows modal-header-btn-windows-close" aria-label="Close">&times;</button></div>',1),Qe=e.from_html("<header><!></header>");function et(t,i){e.push(i,!0);let n=e.prop(i,"isTransparent",3,!1),o=e.prop(i,"headerLayout",3,"macos"),r=e.prop(i,"minimizable",3,!0),s=e.prop(i,"minimizeDisabled",3,!1),a=e.prop(i,"transparencyEnabled",3,!0);const d=le(xe),l=e.derived(()=>null==d?void 0:d()),g=e.derived(()=>"macos"===o());var c=Qe();let u;c.__pointerdown=function(e){var t;e.target.closest("button")||null==(t=i.onStartDrag)||t.call(i,e)};var p=e.child(c),h=t=>{var n=je(),o=e.first_child(n),d=e.child(o);d.__click=function(...e){var t;null==(t=i.onClose)||t.apply(this,e)};var g=e.sibling(d,2),c=t=>{var n=Xe();let o;n.__click=function(...e){var t;null==(t=s()?void 0:i.onMinimize)||t.apply(this,e)},e.template_effect(()=>{o=e.set_class(n,1,"modal-header-light modal-header-light-minimize",null,o,{"modal-header-light-disabled":s()}),n.disabled=s(),e.set_attribute(n,"title",s()?"Enable dock to minimize":void 0)}),e.append(t,n)};e.if(g,e=>{r()&&e(c)});var u=e.sibling(g,2),p=t=>{var n=Ye();n.__click=function(...e){var t;null==(t=i.onToggleStyle)||t.apply(this,e)},e.append(t,n)};e.if(u,e=>{a()&&e(p)}),e.reset(o);var h=e.sibling(o,2),m=e.child(h),f=t=>{var n=Fe(),o=e.child(n);e.snippet(o,()=>i.customIcon),e.reset(n),e.append(t,n)},v=t=>{var n=e.comment(),o=e.first_child(n),r=t=>{var n=We(),o=e.child(n);e.snippet(o,()=>e.get(l),()=>i.icon),e.reset(n),e.append(t,n)};e.if(o,t=>{i.icon&&e.get(l)&&t(r)},!0),e.append(t,n)};e.if(m,e=>{i.customIcon?e(f):e(v,!1)});var w=e.sibling(m,2),y=e.child(w),x=t=>{var n=Ae(),o=e.child(n,!0);e.reset(n),e.template_effect(()=>{e.set_attribute(n,"id",i.titleId),e.set_text(o,i.title)}),e.append(t,n)},_=t=>{var n=qe(),o=e.child(n,!0);e.reset(n),e.template_effect(()=>e.set_text(o,i.title)),e.append(t,n)};e.if(y,e=>{i.titleId?e(x):e(_,!1)}),e.reset(w),e.reset(h),e.next(2),e.append(t,n)},m=t=>{var n=Je(),o=e.first_child(n),d=e.child(o),g=t=>{var n=Ne(),o=e.child(n);e.snippet(o,()=>i.customIcon),e.reset(n),e.append(t,n)},c=t=>{var n=e.comment(),o=e.first_child(n),r=t=>{var n=Ge(),o=e.child(n);e.snippet(o,()=>e.get(l),()=>i.icon),e.reset(n),e.append(t,n)};e.if(o,t=>{i.icon&&e.get(l)&&t(r)},!0),e.append(t,n)};e.if(d,e=>{i.customIcon?e(g):e(c,!1)});var u=e.sibling(d,2),p=t=>{var n=Ke(),o=e.child(n,!0);e.reset(n),e.template_effect(()=>{e.set_attribute(n,"id",i.titleId),e.set_text(o,i.title)}),e.append(t,n)},h=t=>{var n=Ue(),o=e.child(n,!0);e.reset(n),e.template_effect(()=>e.set_text(o,i.title)),e.append(t,n)};e.if(u,e=>{i.titleId?e(p):e(h,!1)}),e.reset(o);var m=e.sibling(o,2),f=e.child(m),v=t=>{var n=Ve();n.__click=function(...e){var t;null==(t=i.onToggleStyle)||t.apply(this,e)},e.append(t,n)};e.if(f,e=>{a()&&e(v)});var w=e.sibling(f,2),y=t=>{var n=Ze();let o;n.__click=function(...e){var t;null==(t=s()?void 0:i.onMinimize)||t.apply(this,e)},e.template_effect(()=>{o=e.set_class(n,1,"modal-header-btn-windows",null,o,{"modal-header-btn-windows-disabled":s()}),n.disabled=s(),e.set_attribute(n,"title",s()?"Enable dock to minimize":void 0)}),e.append(t,n)};e.if(w,e=>{r()&&e(y)}),e.sibling(w,2).__click=function(...e){var t;null==(t=i.onClose)||t.apply(this,e)},e.reset(m),e.append(t,n)};e.if(p,t=>{e.get(g)?t(h):t(m,!1)}),e.reset(c),e.template_effect(()=>u=e.set_class(c,1,"modal-header",null,u,{"modal-header-draggable":!!i.onStartDrag,transparent:n()})),e.append(t,c),e.pop()}e.delegate(["pointerdown","click"]);var tt=e.from_html("<div></div>"),it=e.from_html('<div class="modal-resize-handles"></div>');function nt(t,i){e.push(i,!0);const n=["n","s","e","w","ne","nw","se","sw"];var o=e.comment(),r=e.first_child(o),s=t=>{var o=it();e.each(o,21,()=>n,e.index,(t,n)=>{var o=tt();o.__pointerdown=t=>function(e,t){var n;null==(n=i.onStartResize)||n.call(i,e,t)}(t,e.get(n)),e.template_effect(()=>e.set_class(o,1,`modal-resize-handle modal-resize-${e.get(n)??""}`)),e.append(t,o)}),e.reset(o),e.append(t,o)};e.if(r,e=>{i.onStartResize&&e(s)}),e.append(t,o),e.pop()}function ot(e,t){return t&&e.appendChild(t),{update(t){e.innerHTML="",t&&e.appendChild(t)},destroy(){e.innerHTML=""}}}e.delegate(["pointerdown"]);var rt=e.from_html('<div class="modal-footer"><!></div>'),st=e.from_html("<div></div>"),at=e.from_html('<div role="dialog" aria-modal="true" tabindex="-1"><!> <div class="modal-body"><!></div> <!> <!> <!></div>');function dt(t,i){e.push(i,!0);let n=e.prop(i,"maxWidth",3,"600px"),o=e.prop(i,"autoOpen",3,!1),a=e.prop(i,"closeOnEscape",3,!0),l=e.state(!1);ge(()=>{Z({id:i.id,title:i.title,icon:i.icon??"",isOpen:o(),isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:i.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}),e.set(l,!0)}),pe(()=>{b(i.id)});const c=e.derived(()=>{if(!e.get(l))return!1;f();const t=h(i.id);return!!t&&(t.isOpen||t.isMinimized||S(i.id)||v(i.id)||w(i.id))});var te=e.comment(),ie=e.first_child(te),ne=t=>{!function(t,i){e.push(i,!0);let n=e.prop(i,"maxWidth",3,"600px"),o=e.prop(i,"autoOpen",3,!1),a=e.prop(i,"closeOnEscape",3,!0),l=e.prop(i,"skipRegistration",3,!1);ce(_e,()=>i.id);const c=u().portalTarget,te=e.derived(()=>p(i.id));function ie(e){var t,n;return(null==(n=null==(t=i.config)?void 0:t.features)?void 0:n[e])??z(e)}const ne=e.derived(()=>(m(),ie("drag"))),oe=e.derived(()=>(m(),ie("minimize"))),re=e.derived(()=>(m(),!ie("dock"))),se=e.derived(()=>(m(),ie("transparency"))),ae=e.derived(()=>(m(),ie("resize"))),de=e.derived(()=>{var e,t;return m(),(null==(t=null==(e=i.config)?void 0:e.appearance)?void 0:t.headerLayout)??u().appearance.headerLayout});let le=e.state(null),he=e.state(!1),me=e.state(!1),fe=e.state(!1),ve=e.state(!1),we=e.state(!1);const ye=e.derived(()=>(f(),h(i.id))),xe=e.derived(()=>e.get(ye)&&(e.get(ye).isOpen||v(i.id))&&(!e.get(ye).isMinimized||w(i.id))&&!e.get(ye).isHiddenWithParent),be=e.derived(()=>{var t;return!!(null==(t=e.get(ye))?void 0:t.childId)}),ze=e.derived(()=>{var t;return!!(null==(t=e.get(ye))?void 0:t.parentId)}),Me=e.derived(()=>e.get(be)||e.get(me)),Ie=e.derived(()=>!!i.glow),Ce=e.derived(()=>`modal-title-${e.get(te)}`),Ee=e.derived(()=>{var t;return(null==(t=e.get(ye))?void 0:t.zIndex)??1e3}),Re=ke({x:0,y:0});let Te=e.state(!1);const Le=De(()=>e.get(le),()=>Re.position,e=>Re.setPosition(e),()=>Re.hasBeenDragged,e=>Re.setHasBeenDragged(e),(t,n)=>{const o=h(i.id);if(null==o?void 0:o.parentId){const t=h(o.parentId),r=document.querySelector(`[data-modal-id="${p(o.parentId)}"]`);if(t&&r){const o=t.position??{x:r.getBoundingClientRect().left,y:r.getBoundingClientRect().top},s=t.size??{width:r.offsetWidth,height:r.offsetHeight},a={x:o.x+(s.width-n.width)/2,y:o.y+(s.height-n.height)/2};e.set(Te,!0),Re.setPosition(a);const d={x:a.x-o.x,y:a.y-o.y};return C(i.id,{position:a,size:n,hasBeenDragged:!0,offsetFromParent:d}),void setTimeout(()=>{e.set(Te,!1)},200)}}C(i.id,{position:t,size:n,hasBeenDragged:!0})}),$e=Be(()=>i.id,()=>e.get(le),()=>Re.position,e=>Re.setPosition(e),()=>Re.hasBeenDragged,e=>Re.setHasBeenDragged(e),()=>Le.hasBeenResized,()=>Le.size,(e,t,n)=>{C(i.id,{position:e,size:n,hasBeenDragged:t}),r(i.id)}),{trapFocus:Se,focusFirstElement:He}=Pe(),Xe=e.derived(()=>$e.isMinimizing||$e.isRestoring||$e.isOpening||$e.isClosing),Ye=e.derived(()=>(y(i.id)||x(i.id))&&!$e.isRestoring);let Fe=e.state(!1);const We=e.derived(()=>$e.isRestoring||$e.isOpening||e.get(Fe)),Ae=e.derived(()=>e.get(xe)&&!Re.hasBeenDragged&&!e.get(Xe)&&!$e.pendingOpenSource&&!e.get(Ye)),qe=e.derived(()=>{const t=[];return t.push(`z-index: ${e.get(Ee)};`),$e.animationTransform?(t.push(`left: ${Re.position.x}px; top: ${Re.position.y}px;`),t.push(`--genie-origin-x: ${$e.animationTransform.originX}px;`),t.push(`--genie-origin-y: ${$e.animationTransform.originY}px;`),t.push(`--genie-translate-x: ${$e.animationTransform.x}px;`),t.push(`--genie-translate-y: ${$e.animationTransform.y}px;`)):Re.hasBeenDragged&&t.push(`left: ${Re.position.x}px; top: ${Re.position.y}px; transform: none;`),Le.hasBeenResized?t.push(`width: ${Le.size.width}px; height: ${Le.size.height}px; max-width: none; max-height: none;`):(i.preferredHeight&&t.push(`min-height: ${i.preferredHeight};`),n()&&t.push(`max-width: ${n()};`)),e.get(Ie)&&i.glow&&(t.push(`--modal-glow-color: ${i.glow.color};`),t.push(`--modal-glow-intensity: ${i.glow.intensity};`)),t.join(" ")});function je(){e.get(oe)&&r(i.id)}function Ne(){var e;M(i.id)&&B(i.id),s(i.id),null==(e=i.onClose)||e.call(i)}function Ge(){Q(i.id)}function Ke(t){e.get(ne)&&e.get(le)&&Re.onPointerDown(t,e.get(le))}function Ue(e){a()&&"Escape"===e.key&&J(i.id)&&(e.stopPropagation(),Ne())}function Ve(t){if(!e.get(le))return;const n=Re.isDragging,o=Le.hasBeenResized?Le.size:{width:e.get(le).offsetWidth,height:e.get(le).offsetHeight};Re.onPointerMove(t,e.get(le),o),Re.isDragging&&n&&k(i.id,Re.position,{drag:!0})}function Ze(t){if(!e.get(le))return;const n=Re.isDragging;Re.onPointerUp(t,e.get(le)),n&&!Le.justFinishedResizing&&(k(i.id,Re.position,{drag:!0}),D(i.id))}function Je(){var t;const n=u();if("smart"!==(null==(t=n.positioning)?void 0:t.strategy))return!1;const o=h(i.id),r=A();if((null==o?void 0:o.parentId)||r&&r.childId===i.id)return!1;if((null==o?void 0:o.hasBeenDragged)||(null==o?void 0:o.position))return!1;const s=e.get(le)||document.querySelector(`[data-modal-id="${e.get(te)}"]`);if(!s)return!1;const a=s.offsetWidth,d=s.offsetHeight;if(a<=0||d<=0)return!1;const l=n.positioning.modalGap??16,g=q(i.id),c=j(n.positioning.avoidElements??[]),p=N(a,d,g,{modalGap:l,avoidBounds:c});if(G(p.x,p.y,a,d,g,l)/(a*d)>.1&&g.length>0){const e=K(i.id),t=U(a,d,e,{modalGap:l});if(t&&t.existingModalMoves.size>0)return V(t.existingModalMoves),Re.setPosition(t.newModalPosition),Re.setHasBeenDragged(!0),k(i.id,t.newModalPosition,{size:{width:a,height:d}}),!0}return Re.setPosition(p),Re.setHasBeenDragged(!0),k(i.id,p,{size:{width:a,height:d}}),!0}function Qe(){ue().then(()=>ue()).then(()=>{let t=0;const i=()=>{t+=1,Je()||t>5||requestAnimationFrame(i)};e.get(le)?i():requestAnimationFrame(i)})}ge(()=>{var t;function n(){const t=h(i.id);if(!(null==t?void 0:t.position)||!e.get(le))return;if(t.parentId)return;const n=Le.hasBeenResized?Le.size.width:e.get(le).offsetWidth,o=Le.hasBeenResized?Le.size.height:e.get(le).offsetHeight;if(n<=0||o<=0)return;const r=g(t.position.x,t.position.y,n,o);(Math.abs(r.x-t.position.x)>1||Math.abs(r.y-t.position.y)>1)&&(Re.setPosition(r),k(i.id,r))}return l()||(t=o(),Z({id:i.id,title:i.title,icon:i.icon??"",isOpen:t,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:i.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}),t&&d(i.id)),o()&&(ue().then(()=>{e.get(le)&&He(e.get(le))}),Qe()),window.addEventListener("pointermove",Ve),window.addEventListener("pointerup",Ze),window.addEventListener("resize",n),()=>{window.removeEventListener("pointermove",Ve),window.removeEventListener("pointerup",Ze),window.removeEventListener("resize",n)}}),pe(()=>{_(i.id),l()||b(i.id)}),e.user_effect(()=>{f();const t=h(i.id);if(t){if(e.set(he,t.isTransparent,!0),!Re.isDragging&&!Le.isResizing&&t.position){const e=Re.position,i=t.position;(Math.abs(e.x-i.x)>.5||Math.abs(e.y-i.y)>.5)&&(Re.setPosition(i),t.hasBeenDragged&&Re.setHasBeenDragged(!0))}ue().then(()=>function(){var t,n;if(!h(i.id))return;if(M(i.id))return B(i.id),void(null==(t=i.onClose)||t.call(i));if(w(i.id)&&!e.get(ve)){if(e.set(ve,!0),I(),e.get(le)){const t=e.get(le).getBoundingClientRect(),n=Re.hasBeenDragged?Re.position:{x:t.left,y:t.top},o=Le.hasBeenResized?Le.size:{width:t.width,height:t.height};C(i.id,{position:n,size:o,hasBeenDragged:!0})}$e.startMinimize(void 0,()=>{E(i.id),e.set(ve,!1)})}if(x(i.id)){R(i.id);const t=h(i.id);$e.startRestore((null==t?void 0:t.position)??void 0,(null==t?void 0:t.size)??void 0),ue().then(()=>{e.get(le)&&He(e.get(le))})}if(y(i.id)){P(i.id);const e=h(i.id);$e.startRestore((null==e?void 0:e.position)??void 0,(null==e?void 0:e.size)??void 0)}v(i.id)&&(T(i.id),$e.startClose(()=>{var e;_(i.id),L(i.id),null==(e=i.onClose)||e.call(i)}));const o=$(i.id),r=!!o||!!(null==(n=h(i.id))?void 0:n.parentId);if(S(i.id)){H(i.id);const t=O(i.id)||i.openSourcePosition||null;t?($e.setPendingOpenSource(t),ue().then(()=>ue()).then(()=>{r||Je(),$e.tryStartOpenAnimation()})):r||Qe(),ue().then(()=>{e.get(le)&&He(e.get(le))})}var s;X(i.id)&&(Y(i.id),F(i.id),e.set(we,!0),setTimeout(()=>{e.set(we,!1),W(i.id)},600)),o&&e.get(le)&&(s=o.parentId,ue().then(()=>ue()).then(()=>{let t=0;const n=()=>{t+=1;const o=function(t){var n,o;const r=h(t);if(!r)return!1;const s=e.get(le)||document.querySelector(`[data-modal-id="${e.get(te)}"]`),a=document.querySelector(`[data-modal-id="${p(t)}"]`),d=null==a?void 0:a.getBoundingClientRect(),l=r.position??(d?{x:d.left,y:d.top}:null);if(!l||!s)return!1;const g=(null==(n=r.size)?void 0:n.width)??(null==a?void 0:a.offsetWidth)??(null==d?void 0:d.width)??480,c=(null==(o=r.size)?void 0:o.height)??(null==a?void 0:a.offsetHeight)??(null==d?void 0:d.height)??400,u=s.offsetWidth,m=s.offsetHeight;if(g<=0||c<=0||u<=0||m<=0)return!1;const f={x:l.x+(g-u)/2,y:l.y+(c-m)/2};return Re.setPosition(f),Re.setHasBeenDragged(!0),k(i.id,f,{size:{width:u,height:m}}),r.position&&r.size||!d||k(t,{x:d.left,y:d.top},{size:{width:g,height:c}}),ee(t,i.id),!0}(s);o||t>5||requestAnimationFrame(n)};e.get(le)?n():requestAnimationFrame(n)}))}())}}),e.user_effect(()=>{const t=h(i.id);t&&t.isTransparent!==e.get(he)&&e.set(he,t.isTransparent,!0)}),e.user_effect(()=>{if(e.get(xe)&&e.get(le)){const t=t=>function(t){e.get(le)&&Se(t,e.get(le))}(t);return e.get(le).addEventListener("keydown",t),()=>{var i;return null==(i=e.get(le))?void 0:i.removeEventListener("keydown",t)}}}),e.user_effect(()=>{!e.get(xe)&&$e.isMinimizing&&$e.forceClearMinimize()}),e.user_effect(()=>{$e.isRestoring||$e.isOpening?e.set(Fe,!0):e.get(Fe)&&requestAnimationFrame(()=>{e.set(Fe,!1)})}),e.user_effect(()=>{e.get(fe)&&!e.get(be)&&(e.set(me,!0),setTimeout(()=>{e.set(me,!1)},200)),e.set(fe,e.get(be),!0)});var tt=e.comment(),it=e.first_child(tt),dt=t=>{Oe(t,{get target(){return c},children:(t,n)=>{var o=at();let r;o.__keydown=Ue;var s=e.child(o);{let t=e.derived(()=>e.get(ne)?Ke:void 0);et(s,{get title(){return i.title},get customIcon(){return i.customIcon},get icon(){return i.icon},get isTransparent(){return e.get(he)},get titleId(){return e.get(Ce)},get headerLayout(){return e.get(de)},get onStartDrag(){return e.get(t)},onToggleStyle:Ge,onMinimize:je,onClose:Ne,get minimizable(){return e.get(oe)},get minimizeDisabled(){return e.get(re)},get transparencyEnabled(){return e.get(se)}})}var a=e.sibling(s,2),l=e.child(a);e.snippet(l,()=>i.children??e.noop),e.reset(a),e.action(a,(e,t)=>null==ot?void 0:ot(e,t),()=>i.bodyElement);var g=e.sibling(a,2),c=t=>{var n=rt(),o=e.child(n),r=t=>{var n=e.comment(),o=e.first_child(n);e.snippet(o,()=>i.footer),e.append(t,n)};e.if(o,e=>{i.footer&&e(r)}),e.reset(n),e.action(n,(e,t)=>null==ot?void 0:ot(e,t),()=>i.footerElement),e.append(t,n)};e.if(g,e=>{(i.footer||i.footerElement)&&e(c)});var u=e.sibling(g,2);{let t=e.derived(()=>e.get(ae)&&!e.get(be)?Le.handlers.startResize:void 0);nt(u,{get onStartResize(){return e.get(t)}})}var p=e.sibling(u,2),h=t=>{var i=st();let n;e.template_effect(()=>n=e.set_class(i,1,"modal-child-overlay",null,n,{"modal-overlay-closing":e.get(me)})),e.append(t,i)};e.if(p,t=>{e.get(Me)&&t(h)}),e.reset(o),e.bind_this(o,t=>e.set(le,t),()=>e.get(le)),e.template_effect(()=>{var t;r=e.set_class(o,1,"modal-dialog",null,r,{"modal-dragging":Re.isDragging,"modal-resizing":Le.isResizing,"modal-positioned":Re.hasBeenDragged,"modal-minimizing":$e.isMinimizing,"modal-restoring":$e.isRestoring,"modal-opening":$e.isOpening,"modal-closing":$e.isClosing,"modal-centered":e.get(Ae),"modal-solid":!e.get(he),"modal-transparent":e.get(he),"modal-glow":e.get(Ie),"modal-has-child":e.get(be),"modal-is-child":e.get(ze),"modal-visible-by-animation":e.get(We),"modal-animating-to-center":e.get(Te),"modal-animating-position":null==(t=e.get(ye))?void 0:t.isAnimatingPosition,"modal-attention":e.get(we)}),e.set_attribute(o,"data-modal-id",e.get(te)),e.set_style(o,e.get(qe)),e.set_attribute(o,"aria-labelledby",e.get(Ce))}),e.event("pointerdown",o,()=>d(i.id),!0),e.append(t,o)},$$slots:{default:!0}})};e.if(it,t=>{e.get(xe)&&t(dt)}),e.append(t,tt),e.pop()}(t,{get id(){return i.id},get title(){return i.title},get icon(){return i.icon},get customIcon(){return i.customIcon},get maxWidth(){return n()},get preferredHeight(){return i.preferredHeight},get autoOpen(){return o()},get openSourcePosition(){return i.openSourcePosition},get glow(){return i.glow},get config(){return i.config},get closeOnEscape(){return a()},get onClose(){return i.onClose},get children(){return i.children},get footer(){return i.footer},skipRegistration:!0})};e.if(ie,t=>{e.get(c)&&t(ne)}),e.append(t,te),e.pop()}e.delegate(["keydown"]);var lt=e.from_html('<button type="button" aria-label="Drag dock"></button>'),gt=e.from_html('<span class="modal-dock-item-icon-placeholder"> </span>'),ct=e.from_html('<span class="modal-dock-item-label"> </span>'),ut=e.from_html("<span>+</span>"),pt=e.from_html('<span class="modal-dock-child-indicator"><!></span>'),ht=e.from_html('<button><span class="modal-dock-item-icon"><!></span> <!> <span class="modal-dock-item-glow"></span> <!></button>'),mt=e.from_html('<div data-dock-container="true"><div><!> <!></div></div>');function ft(t,i){e.push(i,!0);const n=le(xe),r=e.derived(()=>i.renderIcon??(null==n?void 0:n())),s=ie(),a=e.derived(()=>(m(),u())),d=e.derived(()=>te("DOCK")),l=e.derived(()=>e.get(a).dock.position),c=e.derived(()=>e.get(a).dock.labelMode);let h=e.state("horizontal"),v=e.state(e.proxy({x:100,y:100})),w=e.state(null),y=e.state(!1),x={x:0,y:0},_=null;const b=e.derived(()=>(f(),Array.from(s.modals.values()).filter(e=>e.isMinimized).sort((e,t)=>e.dockPosition-t.dockPosition))),z=e.derived(()=>{switch(e.get(l)){case"left":return{x:-20,duration:250,easing:we};case"right":return{x:20,duration:250,easing:we};default:return{y:20,duration:250,easing:we}}});function k(t){var i;"free"===e.get(l)&&(e.set(y,!0),_=t.pointerId,x={x:t.clientX-e.get(v).x,y:t.clientY-e.get(v).y},null==(i=t.currentTarget)||i.setPointerCapture(t.pointerId),window.addEventListener("pointermove",D),window.addEventListener("pointerup",M),window.addEventListener("pointercancel",M))}function D(t){if(t.pointerId!==_||!e.get(w))return;const i=e.get(w).getBoundingClientRect(),n=window.innerWidth-i.width-8,o=window.innerHeight-i.height-8,r=Math.min(Math.max(t.clientX-x.x,8),Math.max(8,n)),s=Math.min(Math.max(t.clientY-x.y,8),Math.max(8,o));e.set(v,{x:Math.round(r),y:Math.round(s)},!0)}function M(t){t.pointerId===_&&(e.set(y,!1),_=null,window.removeEventListener("pointermove",D),window.removeEventListener("pointerup",M),window.removeEventListener("pointercancel",M))}const{addListener:B}=Se();function I(){if("free"!==e.get(l)||!e.get(w))return;const t=e.get(w).getBoundingClientRect(),i=g(e.get(v).x,e.get(v).y,t.width,t.height);i.x===e.get(v).x&&i.y===e.get(v).y||e.set(v,{x:Math.round(i.x),y:Math.round(i.y)},!0)}e.user_effect(()=>{"undefined"!=typeof window&&B("resize",I)});var C={setDockOrientation:function(t){e.set(h,t,!0)},setDockFreePosition:function(t){e.set(v,t,!0)},getDockState:function(){return{dockPosition:e.get(l),dockOrientation:e.get(h),dockFreePosition:e.get(v),dockLabelMode:e.get(c)}}};return Oe(t,{get target(){return e.get(a).portalTarget},children:(t,i)=>{var n=mt();let a,g;var u=e.child(n);let m;var f=e.child(u),x=t=>{var i=lt();let n;i.__pointerdown=k,e.template_effect(()=>n=e.set_class(i,1,"modal-dock-handle",null,n,{"modal-dock-handle-dragging":e.get(y)})),e.append(t,i)};e.if(f,t=>{"free"===e.get(l)&&t(x)});var _=e.sibling(f,2);e.each(_,19,()=>e.get(b),e=>e.id,(t,i,n)=>{const a=e.derived(()=>e.get(i).lastChildId?s.modals.get(e.get(i).lastChildId):null);var d=ht();let l;d.__click=t=>{ne(e.get(i).id)?oe(t.currentTarget):o(e.get(i).id)};var g=e.child(d),u=e.child(g),h=t=>{var n=e.comment(),o=e.first_child(n);e.snippet(o,()=>e.get(r),()=>e.get(i).icon),e.append(t,n)},m=t=>{var n=gt(),o=e.child(n,!0);e.reset(n),e.template_effect(t=>e.set_text(o,t),[()=>e.get(i).title.charAt(0)]),e.append(t,n)};e.if(u,t=>{e.get(i).icon&&e.get(r)?t(h):t(m,!1)}),e.reset(g);var f=e.sibling(g,2),v=t=>{var n=ct(),o=e.child(n,!0);e.reset(n),e.template_effect(()=>e.set_text(o,e.get(i).title)),e.append(t,n)};e.if(f,t=>{"hidden"!==e.get(c)&&t(v)});var w=e.sibling(f,4),y=t=>{var i=pt(),n=e.child(i),o=t=>{var i=e.comment(),n=e.first_child(i);e.snippet(n,()=>e.get(r),()=>e.get(a).icon),e.append(t,i)},s=t=>{var i=ut();e.append(t,i)};e.if(n,t=>{e.get(a).icon&&e.get(r)?t(o):t(s,!1)}),e.reset(i),e.append(t,i)};e.if(w,t=>{e.get(i).lastChildId&&e.get(a)&&t(y)}),e.reset(d),e.template_effect(t=>{l=e.set_class(d,1,"modal-dock-item",null,l,{"modal-dock-item-has-glow":!!e.get(i).glow,"modal-dock-item-has-child":!!e.get(i).lastChildId,"modal-dock-item-label-beside":"beside"===e.get(c),"modal-dock-item-label-below":"below"===e.get(c)}),e.set_attribute(d,"data-modal-id",t),e.set_style(d,e.get(i).glow?`--modal-dock-glow-color: ${e.get(i).glow.color};`:"")},[()=>p(e.get(i).id)]),e.transition(3,d,()=>me,()=>({duration:300,delay:50*e.get(n),easing:ye,start:.5})),e.append(t,d)}),e.reset(u),e.reset(n),e.bind_this(n,t=>e.set(w,t),()=>e.get(w)),e.template_effect(()=>{a=e.set_class(n,1,"modal-dock-container",null,a,{"modal-dock-left":"left"===e.get(l),"modal-dock-right":"right"===e.get(l),"modal-dock-bottom":"bottom"===e.get(l),"modal-dock-free":"free"===e.get(l),"modal-dock-empty":0===e.get(b).length}),g=e.set_style(n,"free"===e.get(l)?`left: ${e.get(v).x}px; top: ${e.get(v).y}px;`:"",g,{"z-index":e.get(d)}),m=e.set_class(u,1,"modal-dock",null,m,{"modal-dock-free-horizontal":"free"===e.get(l)&&"horizontal"===e.get(h),"modal-dock-free-vertical":"free"===e.get(l)&&"vertical"===e.get(h)})}),e.transition(3,n,()=>fe,()=>e.get(b).length>0?e.get(z):{duration:0}),e.append(t,n)},$$slots:{default:!0}}),e.pop(C)}e.delegate(["pointerdown","click"]);var vt=e.from_html('<div class="modal-backdrop svelte-1d3nq4t" aria-hidden="true"></div>');function wt(t,i){e.push(i,!0);const n=ie(),o=e.derived(()=>(m(),u())),r=e.derived(()=>e.get(o).features.backdrop),s=e.derived(()=>(f(),Array.from(n.modals.values()).some(e=>e.isOpen&&!e.isMinimized&&!e.isHiddenWithParent))),a=e.derived(()=>e.get(r)&&e.get(s)),d=e.derived(()=>te("MODAL")-1);Oe(t,{get target(){return e.get(o).portalTarget},children:(t,i)=>{var n=e.comment(),o=e.first_child(n),r=t=>{var i=vt();let n;e.template_effect(()=>n=e.set_style(i,"",n,{"z-index":e.get(d)})),e.transition(3,i,()=>ve,()=>({duration:200})),e.append(t,i)};e.if(o,t=>{e.get(a)&&t(r)}),e.append(t,n)},$$slots:{default:!0}}),e.pop()}var yt=e.from_html("<!> <!>",1);function xt(t,i){e.push(i,!0),ce(xe,()=>i.renderIcon),e.user_effect(()=>(he(()=>{i.config&&re(i.config),se()}),()=>{ae(),de()})),e.user_effect(()=>{if("undefined"==typeof document)return;const e=he(()=>u().portalTarget);if("string"==typeof e&&!document.querySelector(e)){const t=document.createElement("div");return t.id=e.replace("#",""),document.body.appendChild(t),()=>{t.remove()}}});var n=yt(),o=e.first_child(n);wt(o,{});var r=e.sibling(o,2);e.snippet(r,()=>i.children??e.noop),e.append(t,n),e.pop()}export{wt as B,ft as D,dt as M,Oe as P,nt as R,xt as a,et as b,ke as c,De as d,Be as e,Re as f,Pe as g,Le as h,$e as i,Se as j,Ee as t,ze as u};
1
+ var e,t,i,n,r,o,a=e=>{throw TypeError(e)},s=(e,t,i)=>(((e,t)=>{t.has(e)||a("Cannot read from private field")})(e,t),i?i.call(e):t.get(e)),l=(e,t,i)=>t.has(e)?a("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,i);import*as d from"svelte/internal/client";import{s as c,a as p,g,b as u,o as f,r as m,m as v,c as h,d as _,i as b,e as w,f as y,h as S,t as k,j as x,F as C,k as z,l as E,C as I,R as T,n as M,M as P,p as L,D as $,q as A,u as O,v as D,w as W,x as R,y as H,z as F,A as B,B as j,E as q,G as N,H as G,I as K,J as X,K as Y,L as J,N as Q,O as U,P as V,Q as Z,S as ee}from"./core.js";import{getContext as te,onMount as ie,setContext as ne,onDestroy as re,untrack as oe}from"svelte";import"svelte/internal/disclose-version";import{scale as ae,fly as se,fade as le}from"svelte/transition";import{cubicOut as de,backOut as ce}from"svelte/easing";let pe=d.state(0),ge=d.state(0);function ue(){return d.get(pe)}function fe(){return d.get(ge)}c(()=>{d.set(pe,g(),!0)}),p(()=>{d.set(ge,u(),!0)});const me=Symbol("modal-render-icon"),ve=Symbol("modal-id"),he=Symbol("modal-provider-config");function _e(e,t){if(!b(e))throw new Error(`Cannot call ${t}() on unregistered modal "${String(e)}". Ensure the Modal component is rendered.`)}function be(e){return{shake:()=>{_e(e,"shake"),k(e)},bringToFront:()=>{_e(e,"bringToFront"),S(e)},isOpen:()=>y(e),isMinimized:()=>{ue();const t=w(e);return(null==t?void 0:t.isMinimized)??!1},isRegistered:()=>b(e),open:t=>{_e(e,"open"),_(e,t)},close:()=>{_e(e,"close"),h(e)},minimize:()=>{_e(e,"minimize"),v(e)},restore:()=>{_e(e,"restore"),m(e)},openChild:(t,i)=>{_e(e,"openChild"),f(t,e,i??document.body)}}}function we(){return{getModals:()=>(ue(),x()),getMinimizedCount:()=>(ue(),Array.from(x().values()).filter(e=>e.isMinimized).length),getOpenCount:()=>(ue(),Array.from(x().values()).filter(e=>!e.isMinimized&&e.isOpen).length)}}function ye(e){return Array.from(e.querySelectorAll(C)).filter(e=>null!==e.offsetParent||"A"===e.tagName)}function Se(e,t){if("Tab"!==e.key)return;const i=ye(t);if(0===i.length)return void e.preventDefault();const n=i[0],r=i[i.length-1],o=document.activeElement;e.shiftKey?o===n&&(r.focus(),e.preventDefault()):o===r&&(n.focus(),e.preventDefault())}function ke(e){const t=ye(e);return t.length>0&&(t[0].focus(),!0)}function xe(){return{trapFocus:Se,focusFirstElement:ke}}const Ce="modal-portal";function ze(){return{mount:function(e,t=null){const i=function(e){if("undefined"==typeof window)return null;if(e instanceof HTMLElement)return e;if("string"==typeof e){const t=document.querySelector(e);if(t)return t;if(e.startsWith("#")){const t=e.slice(1),i=document.createElement("div");return i.id=t,document.body.appendChild(i),i}}let t=document.getElementById(Ce);return t||(t=document.createElement("div"),t.id=Ce,document.body.appendChild(t)),t}(t);return i?(i.appendChild(e),()=>{e.parentNode===i&&i.removeChild(e),i.id!==Ce&&0===i.children.length&&i.parentNode&&i.parentNode.removeChild(i)}):()=>{}}}}function Ee(e){const t=te(ve),i=e??t;if(!i)throw new Error("useModalZIndex: No modal ID provided and no modal context found. Either pass a modal ID or use this hook inside a Modal component.");return{get zIndex(){const e=w(i);return((null==e?void 0:e.zIndex)??z().zIndex.base)+1},get portalTarget(){return z().portalTarget}}}function Ie(){function e(e,t,i){return"undefined"==typeof window?()=>{}:(window.addEventListener(e,t,i),()=>{window.removeEventListener(e,t,i)})}return{addListener:e,addListenerEffect:function(t,i,n){d.user_effect(()=>{if("undefined"!=typeof window)return e(t,i,n)})}}}function Te(e={}){const{getModalConfig:t,getProviderConfig:i}=e;let n;if(void 0===i)try{n=te(he)}catch{n=void 0}function r(){return void 0!==i?i():null==n?void 0:n()}const o=E({getModalConfig:t??(()=>{}),getProviderConfig:r});function a(e){return(...t)=>(fe(),e(...t))}return{getEffectiveConfig:a(o.getEffectiveConfig),isFeatureEnabled:a(o.isFeatureEnabled),getAppearance:a(o.getAppearance),getAnimation:a(o.getAnimation),getPositioning:a(o.getPositioning),getParentChild:a(o.getParentChild),getProviderConfig:r}}var Me=d.from_html('<div style="display: contents;"><!></div>');function Pe(e,t){d.push(t,!0);let i=d.prop(t,"target",3,"body"),n=null,r=null;const{mount:o}=ze();ie(()=>(n&&(r=o(n,i())),()=>{null==r||r()}));var a=Me(),s=d.child(a);d.snippet(s,()=>t.children),d.reset(a),d.bind_this(a,e=>n=e,()=>n),d.append(e,a),d.pop()}var Le=d.from_html('<button type="button" aria-label="Minimize"></button>'),$e=d.from_html('<button type="button" aria-label="Toggle style"></button>'),Ae=d.from_html("<div><!></div>"),Oe=d.from_html("<div></div>"),De=d.from_html("<div><!></div>"),We=d.from_html("<h2> </h2>"),Re=d.from_html("<h2> </h2>"),He=d.from_html('<div><button type="button" aria-label="Close"></button> <!> <!></div> <div><!> <div><!></div></div> <div></div>',1),Fe=d.from_html("<div><!></div>"),Be=d.from_html("<div></div>"),je=d.from_html("<div><!></div>"),qe=d.from_html("<h2> </h2>"),Ne=d.from_html("<h2> </h2>"),Ge=d.from_html('<button type="button" aria-label="Toggle style">&#9671;</button>'),Ke=d.from_html('<button type="button" aria-label="Minimize">&#8211;</button>'),Xe=d.from_html('<div><!> <!></div> <div><!> <!> <button type="button" aria-label="Close">&times;</button></div>',1),Ye=d.from_html("<header><!></header>");function Je(e,t){d.push(t,!0);let i=d.prop(t,"isTransparent",3,!1),n=d.prop(t,"headerLayout",3,"macos"),r=d.prop(t,"minimizable",3,!0),o=d.prop(t,"minimizeDisabled",3,!1),a=d.prop(t,"transparencyEnabled",3,!0);function s(e){return t.iconElement&&e.appendChild(t.iconElement),{destroy(){t.iconElement&&e.contains(t.iconElement)&&e.removeChild(t.iconElement)}}}const l=te(me),c=d.derived(()=>null==l?void 0:l()),p=d.derived(()=>"macos"===n());var g=Ye();let u;g.__pointerdown=function(e){var i;e.target.closest("button")||null==(i=t.onStartDrag)||i.call(t,e)};var f=d.child(g),m=e=>{var i=He(),n=d.first_child(i),l=d.child(n);l.__click=function(...e){var i;null==(i=t.onClose)||i.apply(this,e)};var p=d.sibling(l,2),g=e=>{var i=Le();let n;i.__click=function(...e){var i;null==(i=o()?void 0:t.onMinimize)||i.apply(this,e)},d.template_effect(()=>{n=d.set_class(i,1,`${I.headerLight??""} ${I.headerLightMinimize??""}`,null,n,{"modal-header-light-disabled":o()}),i.disabled=o(),d.set_attribute(i,"title",o()?"Enable dock to minimize":void 0)}),d.append(e,i)};d.if(p,e=>{r()&&e(g)});var u=d.sibling(p,2),f=e=>{var i=$e();i.__click=function(...e){var i;null==(i=t.onToggleStyle)||i.apply(this,e)},d.template_effect(()=>d.set_class(i,1,`${I.headerLight??""} ${I.headerLightStyle??""}`)),d.append(e,i)};d.if(u,e=>{a()&&e(f)}),d.reset(n);var m=d.sibling(n,2),v=d.child(m),h=e=>{var i=Ae(),n=d.child(i);d.snippet(n,()=>t.customIcon),d.reset(i),d.template_effect(()=>d.set_class(i,1,d.clsx(I.headerIcon))),d.append(e,i)},_=e=>{var i=d.comment(),n=d.first_child(i),r=e=>{var t=Oe();d.action(t,e=>null==s?void 0:s(e)),d.template_effect(()=>d.set_class(t,1,d.clsx(I.headerIcon))),d.append(e,t)},o=e=>{var i=d.comment(),n=d.first_child(i),r=e=>{var i=De(),n=d.child(i);d.snippet(n,()=>d.get(c),()=>t.icon),d.reset(i),d.template_effect(()=>d.set_class(i,1,d.clsx(I.headerIcon))),d.append(e,i)};d.if(n,e=>{t.icon&&d.get(c)&&e(r)},!0),d.append(e,i)};d.if(n,e=>{t.iconElement?e(r):e(o,!1)},!0),d.append(e,i)};d.if(v,e=>{t.customIcon?e(h):e(_,!1)});var b=d.sibling(v,2),w=d.child(b),y=e=>{var i=We(),n=d.child(i,!0);d.reset(i),d.template_effect(()=>{d.set_attribute(i,"id",t.titleId),d.set_class(i,1,d.clsx(I.headerTitle)),d.set_text(n,t.title)}),d.append(e,i)},S=e=>{var i=Re(),n=d.child(i,!0);d.reset(i),d.template_effect(()=>{d.set_class(i,1,d.clsx(I.headerTitle)),d.set_text(n,t.title)}),d.append(e,i)};d.if(w,e=>{t.titleId?e(y):e(S,!1)}),d.reset(b),d.reset(m);var k=d.sibling(m,2);d.template_effect(()=>{d.set_class(n,1,d.clsx(I.headerTrafficLights)),d.set_class(l,1,`${I.headerLight??""} ${I.headerLightClose??""}`),d.set_class(m,1,d.clsx(I.headerMacCenter)),d.set_class(b,1,d.clsx(I.headerTitleGroup)),d.set_class(k,1,d.clsx(I.headerMacSpacer))}),d.append(e,i)},v=e=>{var i=Xe(),n=d.first_child(i),l=d.child(n),p=e=>{var i=Fe(),n=d.child(i);d.snippet(n,()=>t.customIcon),d.reset(i),d.template_effect(()=>d.set_class(i,1,d.clsx(I.headerIcon))),d.append(e,i)},g=e=>{var i=d.comment(),n=d.first_child(i),r=e=>{var t=Be();d.action(t,e=>null==s?void 0:s(e)),d.template_effect(()=>d.set_class(t,1,d.clsx(I.headerIcon))),d.append(e,t)},o=e=>{var i=d.comment(),n=d.first_child(i),r=e=>{var i=je(),n=d.child(i);d.snippet(n,()=>d.get(c),()=>t.icon),d.reset(i),d.template_effect(()=>d.set_class(i,1,d.clsx(I.headerIcon))),d.append(e,i)};d.if(n,e=>{t.icon&&d.get(c)&&e(r)},!0),d.append(e,i)};d.if(n,e=>{t.iconElement?e(r):e(o,!1)},!0),d.append(e,i)};d.if(l,e=>{t.customIcon?e(p):e(g,!1)});var u=d.sibling(l,2),f=e=>{var i=qe(),n=d.child(i,!0);d.reset(i),d.template_effect(()=>{d.set_attribute(i,"id",t.titleId),d.set_class(i,1,d.clsx(I.headerTitle)),d.set_text(n,t.title)}),d.append(e,i)},m=e=>{var i=Ne(),n=d.child(i,!0);d.reset(i),d.template_effect(()=>{d.set_class(i,1,d.clsx(I.headerTitle)),d.set_text(n,t.title)}),d.append(e,i)};d.if(u,e=>{t.titleId?e(f):e(m,!1)}),d.reset(n);var v=d.sibling(n,2),h=d.child(v),_=e=>{var i=Ge();i.__click=function(...e){var i;null==(i=t.onToggleStyle)||i.apply(this,e)},d.template_effect(()=>d.set_class(i,1,`${I.headerBtnWindows??""} ${I.headerBtnWindowsStyle??""}`)),d.append(e,i)};d.if(h,e=>{a()&&e(_)});var b=d.sibling(h,2),w=e=>{var i=Ke();let n;i.__click=function(...e){var i;null==(i=o()?void 0:t.onMinimize)||i.apply(this,e)},d.template_effect(()=>{n=d.set_class(i,1,d.clsx(I.headerBtnWindows),null,n,{"modal-header-btn-windows-disabled":o()}),i.disabled=o(),d.set_attribute(i,"title",o()?"Enable dock to minimize":void 0)}),d.append(e,i)};d.if(b,e=>{r()&&e(w)});var y=d.sibling(b,2);y.__click=function(...e){var i;null==(i=t.onClose)||i.apply(this,e)},d.reset(v),d.template_effect(()=>{d.set_class(n,1,d.clsx(I.headerTitleGroup)),d.set_class(v,1,d.clsx(I.headerActions)),d.set_class(y,1,`${I.headerBtnWindows??""} ${I.headerBtnWindowsClose??""}`)}),d.append(e,i)};d.if(f,e=>{d.get(p)?e(m):e(v,!1)}),d.reset(g),d.template_effect(()=>u=d.set_class(g,1,d.clsx(I.header),null,u,{"modal-header-draggable":!!t.onStartDrag,transparent:i()})),d.append(e,g),d.pop()}d.delegate(["pointerdown","click"]);var Qe=d.from_html('<div role="separator" tabindex="0"></div>'),Ue=d.from_html('<div role="group" aria-label="Resize handles"></div>');function Ve(e,t){d.push(t,!0);var i=d.comment(),n=d.first_child(i),r=e=>{var i=Ue();d.each(i,21,()=>T,d.index,(e,i)=>{var n=Qe();n.__pointerdown=e=>function(e,i){var n;null==(n=t.onStartResize)||n.call(t,e,i)}(e,d.get(i)),d.template_effect(()=>{d.set_class(n,1,`${I.resizeHandle??""} ${I.resizePrefix??""}${d.get(i)??""}`),d.set_attribute(n,"aria-label",M[d.get(i)]),d.set_attribute(n,"aria-orientation","n"===d.get(i)||"s"===d.get(i)?"horizontal":"vertical")}),d.append(e,n)}),d.reset(i),d.template_effect(()=>d.set_class(i,1,d.clsx(I.resizeHandles))),d.append(e,i)};d.if(n,e=>{t.onStartResize&&e(r)}),d.append(e,i),d.pop()}function Ze(e,t){return t&&e.appendChild(t),{update(t){e.innerHTML="",t&&e.appendChild(t)},destroy(){e.innerHTML=""}}}d.delegate(["pointerdown"]);var et=d.from_html('<span class="sr-only"> </span>'),tt=d.from_html("<div><!></div>"),it=d.from_html("<div></div>"),nt=d.from_html("<div><!> <!> <div><!></div> <!> <!> <!></div>");function rt(e,t){d.push(t,!0);let i=d.prop(t,"maxWidth",3,"600px"),n=d.prop(t,"autoOpen",3,!1),r=d.prop(t,"closeOnEscape",3,!0),o=d.prop(t,"skipRegistration",3,!1);ne(ve,()=>t.id);const a=Te({getModalConfig:()=>t.config,getProviderConfig:()=>t.providerConfig}),s=d.derived(()=>a.getEffectiveConfig().portalTarget);let l=d.state(null),c=d.state(null),p=d.state(null);ie(()=>{d.set(l,new P({id:t.id,title:t.title,icon:t.icon,config:t.config,providerConfig:t.providerConfig,maxWidth:i(),preferredHeight:t.preferredHeight,glow:t.glow,closeOnEscape:r(),autoOpen:n(),openSourcePosition:t.openSourcePosition,onClose:t.onClose,skipRegistration:o(),configHelper:a}),!0);const e=d.get(l).subscribe(e=>{d.set(c,e,!0)});return d.set(c,d.get(l).getState(),!0),()=>{var t;e(),null==(t=d.get(l))||t.destroy(),d.set(l,null)}}),d.user_effect(()=>{d.get(p)&&d.get(l)&&d.get(l).mount(d.get(p))}),d.user_effect(()=>{d.get(l)&&void 0!==t.openSourcePosition&&d.get(l).setOpenSourcePosition(t.openSourcePosition)}),d.user_effect(()=>{d.get(l)&&d.get(l).updateGlow(t.glow)});const g=d.derived(()=>L(t.id)),u=d.derived(()=>`modal-title-${d.get(g)}`),f=d.derived(()=>t.description?`modal-desc-${d.get(g)}`:void 0),m=d.derived(()=>{var e;return(null==(e=d.get(c))?void 0:e.draggable)??!1}),v=d.derived(()=>{var e;return(null==(e=d.get(c))?void 0:e.resizable)??!1}),h=d.derived(()=>{var e;return(null==(e=d.get(c))?void 0:e.minimizable)??!1}),_=d.derived(()=>(fe(),!a.isFeatureEnabled("dock"))),b=d.derived(()=>(fe(),a.isFeatureEnabled("transparency"))),w=d.derived(()=>(fe(),a.getAppearance("headerLayout"))),y=d.derived(()=>{var e;return(null==(e=d.get(c))?void 0:e.isVisible)??!1}),k=d.derived(()=>{var e;return(null==(e=d.get(c))?void 0:e.showOverlay)??!1}),x=d.derived(()=>{var e;return(null==(e=d.get(c))?void 0:e.overlayClosing)??!1}),C=d.derived(()=>{var e;return(null==(e=d.get(c))?void 0:e.isTransparent)??!1}),z=d.derived(()=>{const e=d.get(c);return e?Object.entries(e.style).map(([e,t])=>`${e}: ${t};`).join(" "):""});function E(e){var t;null==(t=d.get(l))||t.startDrag(e)}function T(e){var t;null==(t=d.get(l))||t.handlePointerMove(e)}function M(e){var t;null==(t=d.get(l))||t.handlePointerUp(e)}function A(e){var t;null==(t=d.get(l))||t.handleKeyDown(e)}function O(){var e;null==(e=d.get(l))||e.minimize()}function D(){var e;null==(e=d.get(l))||e.close()}function W(){var e;null==(e=d.get(l))||e.toggleTransparency()}function R(e,t){var i;null==(i=d.get(l))||i.startResize(e,t)}var H=d.comment(),F=d.first_child(H),B=e=>{Pe(e,{get target(){return d.get(s)},children:(e,i)=>{var n=nt(),r=()=>S(t.id);d.attribute_effect(n,e=>({class:e,[$.modalId]:d.get(g),"data-state":d.get(c).dataState,"data-animation-phase":d.get(c).dataAnimationPhase,style:d.get(z),role:"dialog","aria-modal":"true","aria-labelledby":d.get(u),"aria-describedby":d.get(f),tabindex:"-1",onkeydown:A,onpointermove:T,onpointerup:M,onpointerdowncapture:r}),[()=>d.get(c).cssClasses.join(" ")]);var o=d.child(n),a=e=>{var i=et(),n=d.child(i,!0);d.reset(i),d.template_effect(()=>{d.set_attribute(i,"id",d.get(f)),d.set_text(n,t.description)}),d.append(e,i)};d.if(o,e=>{t.description&&e(a)});var s=d.sibling(o,2);{let e=d.derived(()=>d.get(m)?E:void 0);Je(s,{get title(){return t.title},get customIcon(){return t.customIcon},get icon(){return t.icon},get iconElement(){return t.iconElement},get isTransparent(){return d.get(C)},get titleId(){return d.get(u)},get headerLayout(){return d.get(w)},get onStartDrag(){return d.get(e)},onToggleStyle:W,onMinimize:O,onClose:D,get minimizable(){return d.get(h)},get minimizeDisabled(){return d.get(_)},get transparencyEnabled(){return d.get(b)}})}var l=d.sibling(s,2),y=d.child(l);d.snippet(y,()=>t.children??d.noop),d.reset(l),d.action(l,(e,t)=>null==Ze?void 0:Ze(e,t),()=>t.bodyElement);var P=d.sibling(l,2),L=e=>{var i=tt(),n=d.child(i),r=e=>{var i=d.comment(),n=d.first_child(i);d.snippet(n,()=>t.footer),d.append(e,i)};d.if(n,e=>{t.footer&&e(r)}),d.reset(i),d.action(i,(e,t)=>null==Ze?void 0:Ze(e,t),()=>t.footerElement),d.template_effect(()=>d.set_class(i,1,d.clsx(I.footer))),d.append(e,i)};d.if(P,e=>{(t.footer||t.footerElement)&&e(L)});var H=d.sibling(P,2);{let e=d.derived(()=>d.get(v)&&!d.get(c).hasChild?R:void 0);Ve(H,{get onStartResize(){return d.get(e)}})}var F=d.sibling(H,2),B=e=>{var t=it();let i;d.template_effect(()=>i=d.set_class(t,1,d.clsx(I.childOverlay),null,i,{"modal-overlay-closing":d.get(x)})),d.append(e,t)};d.if(F,e=>{d.get(k)&&e(B)}),d.reset(n),d.bind_this(n,e=>d.set(p,e),()=>d.get(p)),d.template_effect(()=>d.set_class(l,1,d.clsx(I.body))),d.append(e,n)},$$slots:{default:!0}})};d.if(F,e=>{d.get(y)&&d.get(c)&&e(B)}),d.append(e,H),d.pop()}function ot(e,t){d.push(t,!0);let i=d.prop(t,"maxWidth",3,"600px"),n=d.prop(t,"autoOpen",3,!1),r=d.prop(t,"closeOnEscape",3,!0),o=d.state(!1);ie(()=>{A(O({id:t.id,title:t.title,icon:t.icon,autoOpen:n(),glow:t.glow})),d.set(o,!0)}),re(()=>{D(t.id)});const a=d.derived(()=>{if(!d.get(o))return!1;ue();const e=w(t.id);return!!e&&(e.isOpen||e.isMinimized||W(t.id)||R(t.id)||H(t.id))});var s=d.comment(),l=d.first_child(s),c=e=>{rt(e,{get id(){return t.id},get title(){return t.title},get icon(){return t.icon},get customIcon(){return t.customIcon},get iconElement(){return t.iconElement},get maxWidth(){return i()},get preferredHeight(){return t.preferredHeight},get autoOpen(){return n()},get openSourcePosition(){return t.openSourcePosition},get glow(){return t.glow},get config(){return t.config},get closeOnEscape(){return r()},get onClose(){return t.onClose},get children(){return t.children},get footer(){return t.footer},get bodyElement(){return t.bodyElement},get footerElement(){return t.footerElement},skipRegistration:!0})};d.if(l,e=>{d.get(a)&&e(c)}),d.append(e,s),d.pop()}class at{constructor(){l(this,e,d.state(0)),l(this,t,d.state(-1)),l(this,i,d.state("forward")),l(this,n,d.state(!1)),l(this,r,d.state(d.proxy([]))),l(this,o,d.state("fade-slide"))}get currentStep(){return d.get(s(this,e))}set currentStep(t){d.set(s(this,e),t,!0)}get previousStep(){return d.get(s(this,t))}set previousStep(e){d.set(s(this,t),e,!0)}get direction(){return d.get(s(this,i))}set direction(e){d.set(s(this,i),e,!0)}get isAnimating(){return d.get(s(this,n))}set isAnimating(e){d.set(s(this,n),e,!0)}get steps(){return d.get(s(this,r))}set steps(e){d.set(s(this,r),e,!0)}get transitionStyle(){return d.get(s(this,o))}set transitionStyle(e){d.set(s(this,o),e,!0)}registerStep(e){const t=this.steps.length;return this.steps=[...this.steps,e],t}unregisterStep(e){}updateStep(e,t){e>=0&&e<this.steps.length&&(this.steps=this.steps.map((i,n)=>n===e?{...i,...t}:i))}reset(){this.currentStep=0,this.previousStep=-1,this.direction="forward",this.isAnimating=!1,this.steps=[]}setTransitionStyle(e){this.transitionStyle=e}}e=new WeakMap,t=new WeakMap,i=new WeakMap,n=new WeakMap,r=new WeakMap,o=new WeakMap;var st=d.from_html("<div><div><!></div></div>");function lt(e,t){d.push(t,!0);let i=d.prop(t,"maxWidth",3,"500px"),n=d.prop(t,"autoOpen",3,!1),r=d.prop(t,"closeOnEscape",3,!0),o=d.prop(t,"transitionStyle",3,"fade-slide");const a=new at;d.user_effect(()=>{a.setTransitionStyle(o())});const s=700;function l(e){if("slide-through"!==o())return;const i=F(t.id);if(!i)return;const n="forward"===e?"wizard-modal-slide-forward":"wizard-modal-slide-backward";i.classList.add(n),setTimeout(()=>{i.classList.remove(n)},s)}function c(){var e,i;const n=a.steps[a.currentStep];n&&!n.getCanProceed()||(a.currentStep>=a.steps.length-1?null==(e=t.onComplete)||e.call(t):(a.direction="forward",a.isAnimating=!0,a.previousStep=a.currentStep,l("forward"),"slide-through"===o()?setTimeout(()=>{var e;a.currentStep++,null==(e=t.onStepChange)||e.call(t,a.currentStep,"forward")},350):(a.currentStep++,null==(i=t.onStepChange)||i.call(t,a.currentStep,"forward")),setTimeout(()=>{a.isAnimating=!1,a.previousStep=-1},s)))}function p(){var e;a.currentStep>0&&(a.direction="backward",a.isAnimating=!0,a.previousStep=a.currentStep,l("backward"),"slide-through"===o()?setTimeout(()=>{var e;a.currentStep--,null==(e=t.onStepChange)||e.call(t,a.currentStep,"backward")},350):(a.currentStep--,null==(e=t.onStepChange)||e.call(t,a.currentStep,"backward")),setTimeout(()=>{a.isAnimating=!1,a.previousStep=-1},s))}function g(e){var i;e<a.currentStep&&e>=0&&(a.direction="backward",a.isAnimating=!0,a.previousStep=a.currentStep,l("backward"),"slide-through"===o()?setTimeout(()=>{var i;a.currentStep=e,null==(i=t.onStepChange)||i.call(t,a.currentStep,"backward")},350):(a.currentStep=e,null==(i=t.onStepChange)||i.call(t,a.currentStep,"backward")),setTimeout(()=>{a.isAnimating=!1,a.previousStep=-1},s))}ne("wizard",a);const u=d.derived(()=>0===a.currentStep),f=d.derived(()=>a.steps.length>0&&a.currentStep===a.steps.length-1),m=d.derived(()=>a.steps.length>0?(a.currentStep+1)/a.steps.length*100:0),v=d.derived(()=>{var e;return(null==(e=a.steps[a.currentStep])?void 0:e.getCanProceed())??!0}),h=d.derived(()=>a.steps.length),_=d.derived(()=>({currentStep:a.currentStep,totalSteps:d.get(h),isFirstStep:d.get(u),isLastStep:d.get(f),canProceed:d.get(v),progress:d.get(m),steps:a.steps.map(e=>({title:e.title})),next:c,back:p,goToStep:g}));let b=d.state(!1),y=d.state(!1);ie(()=>{A({id:t.id,title:t.title,icon:t.icon??"",isOpen:n(),isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:t.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}),d.set(b,!0)}),re(()=>{D(t.id)});const S=d.derived(()=>{if(!d.get(b))return!1;ue();const e=w(t.id);return!!e&&(e.isOpen||e.isMinimized||W(t.id)||R(t.id)||H(t.id))});d.user_pre_effect(()=>{const e=d.get(S);e&&!d.get(y)&&a.reset(),d.set(y,e,!0)});var k=d.comment(),x=d.first_child(k),C=e=>{{const s=e=>{var i=st();let n;var r=d.child(i);let s;var l=d.child(r),c=e=>{var i=d.comment(),n=d.first_child(i);d.snippet(n,()=>t.children),d.append(e,i)};d.if(l,e=>{t.children&&e(c)}),d.reset(r),d.reset(i),d.template_effect(()=>{n=d.set_class(i,1,"wizard-viewport svelte-cx8fqi",null,n,{"wizard-viewport-carousel":"slide-through"===o()}),s=d.set_class(r,1,"wizard-container svelte-cx8fqi",null,s,{"wizard-slide-forward":a.isAnimating&&"forward"===a.direction&&"slide-through"===o(),"wizard-slide-backward":a.isAnimating&&"backward"===a.direction&&"slide-through"===o()})}),d.append(e,i)},l=e=>{var i=d.comment(),n=d.first_child(i),r=e=>{var i=d.comment(),n=d.first_child(i);d.snippet(n,()=>t.footer,()=>d.get(_)),d.append(e,i)};d.if(n,e=>{t.footer&&e(r)}),d.append(e,i)};rt(e,{get id(){return t.id},get title(){return t.title},get icon(){return t.icon},get customIcon(){return t.customIcon},get maxWidth(){return i()},get preferredHeight(){return t.preferredHeight},get autoOpen(){return n()},get openSourcePosition(){return t.openSourcePosition},get glow(){return t.glow},get config(){return t.config},get closeOnEscape(){return r()},get onClose(){return t.onClose},skipRegistration:!0,children:s,footer:l,$$slots:{default:!0,footer:!0}})}};d.if(x,e=>{d.get(S)&&e(C)}),d.append(e,k),d.pop()}var dt=d.from_html("<div><!></div>");function ct(e,t){d.push(t,!0);let i=d.prop(t,"title",3,""),n=d.prop(t,"canProceed",3,!0);const r=te("wizard");let o,a=d.state(-1);ie(()=>{d.set(a,r.registerStep({title:i(),getCanProceed:()=>n()}),!0),o=n()}),d.user_effect(()=>{const e=n(),t=oe(()=>d.get(a)),i=oe(()=>o);t>=0&&e!==i&&(o=e,oe(()=>{r.updateStep(t,{getCanProceed:()=>e})}))});const s=d.derived(()=>d.get(a)>=0&&r.currentStep===d.get(a)),l=d.derived(()=>r.direction),c=d.derived(()=>r.isAnimating),p=d.derived(()=>r.transitionStyle),g=d.derived(()=>d.get(s));var u=d.comment(),f=d.first_child(u),m=e=>{var i=dt();let n;var r=d.child(i),o=e=>{var i=d.comment(),n=d.first_child(i);d.snippet(n,()=>t.children),d.append(e,i)};d.if(r,e=>{t.children&&e(o)}),d.reset(i),d.template_effect(()=>n=d.set_class(i,1,"wizard-step-wrapper svelte-sp1x21",null,n,{"wizard-fade-slide-left":d.get(c)&&d.get(s)&&"forward"===d.get(l)&&"fade-slide"===d.get(p),"wizard-fade-slide-right":d.get(c)&&d.get(s)&&"backward"===d.get(l)&&"fade-slide"===d.get(p)})),d.append(e,i)};d.if(f,e=>{d.get(g)&&e(m)}),d.append(e,u),d.pop()}var pt=d.from_html('<button type="button" aria-label="Drag dock"></button>'),gt=d.from_html("<span> </span>"),ut=d.from_html("<span> </span>"),ft=d.from_html("<span>+</span>"),mt=d.from_html("<span><!></span>"),vt=d.from_html("<button><span><!></span> <!> <span></span> <!></button>"),ht=d.from_html('<div data-dock-container="true"><div><!> <!></div></div>');function _t(e,t){d.push(t,!0);const i=te(me),n=d.derived(()=>t.renderIcon??(null==i?void 0:i())),r=x(),o=d.derived(()=>(fe(),z())),a=d.derived(()=>B("DOCK")),s=d.derived(()=>d.get(o).dock.position),l=d.derived(()=>d.get(o).dock.labelMode);let c=d.state("horizontal"),p=d.state(d.proxy({x:100,y:100})),g=d.state(null),u=d.state(!1),f={x:0,y:0},v=null;const h=d.derived(()=>(ue(),j())),_=d.derived(()=>{switch(d.get(s)){case"left":return{x:-20,duration:250,easing:de};case"right":return{x:20,duration:250,easing:de};default:return{y:20,duration:250,easing:de}}});function b(e){var t;"free"===d.get(s)&&(d.set(u,!0),v=e.pointerId,f={x:e.clientX-d.get(p).x,y:e.clientY-d.get(p).y},null==(t=e.currentTarget)||t.setPointerCapture(e.pointerId),window.addEventListener("pointermove",w),window.addEventListener("pointerup",y),window.addEventListener("pointercancel",y))}function w(e){if(e.pointerId!==v||!d.get(g))return;const t=d.get(g).getBoundingClientRect();d.set(p,K(e.clientX,e.clientY,f,t.width,t.height),!0)}function y(e){e.pointerId===v&&(d.set(u,!1),v=null,window.removeEventListener("pointermove",w),window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",y))}const{addListener:S}=Ie();function k(){if("free"!==d.get(s)||!d.get(g))return;const e=d.get(g).getBoundingClientRect(),t=q(d.get(p),e.width,e.height);t.x===d.get(p).x&&t.y===d.get(p).y||d.set(p,t,!0)}d.user_effect(()=>{"undefined"!=typeof window&&S("resize",k)});var C={setDockOrientation:function(e){d.set(c,e,!0)},setDockFreePosition:function(e){d.set(p,e,!0)},getDockState:function(){return{dockPosition:d.get(s),dockOrientation:d.get(c),dockFreePosition:d.get(p),dockLabelMode:d.get(l)}}},E=d.comment(),T=d.first_child(E),M=e=>{Pe(e,{get target(){return d.get(o).portalTarget},children:(e,t)=>{var i=ht();let o,f;var v=d.child(i);let w;var y=d.child(v),S=e=>{var t=pt();let i;t.__pointerdown=b,d.template_effect(()=>i=d.set_class(t,1,d.clsx(I.dockHandle),null,i,{"modal-dock-handle-dragging":d.get(u)})),d.append(e,t)};d.if(y,e=>{"free"===d.get(s)&&e(S)});var k=d.sibling(y,2);d.each(k,19,()=>d.get(h),e=>e.id,(e,t,i)=>{const o=d.derived(()=>d.get(t).lastChildId?r.get(d.get(t).lastChildId):null);var a=vt(),s=e=>{N(d.get(t).id)?G(e.currentTarget):m(d.get(t).id)};d.attribute_effect(a,e=>({class:I.dockItem,...e,"aria-label":`Restore ${d.get(t).title??""}`,onclick:s,style:d.get(t).glow?`--modal-dock-glow-color: ${d.get(t).glow.color};`:"",[d.CLASS]:{"modal-dock-item-has-glow":!!d.get(t).glow,"modal-dock-item-has-child":!!d.get(t).lastChildId,"modal-dock-item-label-beside":"beside"===d.get(l),"modal-dock-item-label-below":"below"===d.get(l)}}),[()=>({[$.modalId]:L(d.get(t).id)})]);var c=d.child(a),p=d.child(c),g=e=>{var i=d.comment(),r=d.first_child(i);d.snippet(r,()=>d.get(n),()=>d.get(t).icon),d.append(e,i)},u=e=>{var i=gt(),n=d.child(i,!0);d.reset(i),d.template_effect(e=>{d.set_class(i,1,d.clsx(I.dockItemIconPlaceholder)),d.set_text(n,e)},[()=>d.get(t).title.charAt(0)]),d.append(e,i)};d.if(p,e=>{d.get(t).icon&&d.get(n)?e(g):e(u,!1)}),d.reset(c);var f=d.sibling(c,2),v=e=>{var i=ut(),n=d.child(i,!0);d.reset(i),d.template_effect(()=>{d.set_class(i,1,d.clsx(I.dockItemLabel)),d.set_text(n,d.get(t).title)}),d.append(e,i)};d.if(f,e=>{"hidden"!==d.get(l)&&e(v)});var h=d.sibling(f,2),_=d.sibling(h,2),b=e=>{var t=mt(),i=d.child(t),r=e=>{var t=d.comment(),i=d.first_child(t);d.snippet(i,()=>d.get(n),()=>d.get(o).icon),d.append(e,t)},a=e=>{var t=ft();d.append(e,t)};d.if(i,e=>{d.get(o).icon&&d.get(n)?e(r):e(a,!1)}),d.reset(t),d.template_effect(()=>d.set_class(t,1,d.clsx(I.dockChildIndicator))),d.append(e,t)};d.if(_,e=>{d.get(t).lastChildId&&d.get(o)&&e(b)}),d.reset(a),d.template_effect(()=>{d.set_class(c,1,d.clsx(I.dockItemIcon)),d.set_class(h,1,d.clsx(I.dockItemGlow))}),d.transition(3,a,()=>ae,()=>({duration:300,delay:50*d.get(i),easing:ce,start:.5})),d.append(e,a)}),d.reset(v),d.reset(i),d.bind_this(i,e=>d.set(g,e),()=>d.get(g)),d.template_effect(()=>{o=d.set_class(i,1,d.clsx(I.dockContainer),null,o,{"modal-dock-left":"left"===d.get(s),"modal-dock-right":"right"===d.get(s),"modal-dock-bottom":"bottom"===d.get(s),"modal-dock-free":"free"===d.get(s),"modal-dock-empty":0===d.get(h).length}),f=d.set_style(i,"free"===d.get(s)?`left: ${d.get(p).x}px; top: ${d.get(p).y}px;`:"",f,{"z-index":d.get(a)}),w=d.set_class(v,1,d.clsx(I.dock),null,w,{"modal-dock-free-horizontal":"free"===d.get(s)&&"horizontal"===d.get(c),"modal-dock-free-vertical":"free"===d.get(s)&&"vertical"===d.get(c)})}),d.transition(3,i,()=>se,()=>d.get(h).length>0?d.get(_):{duration:0}),d.append(e,i)},$$slots:{default:!0}})};return d.if(T,e=>{d.get(o).features.dock&&e(M)}),d.append(e,E),d.pop(C)}d.delegate(["pointerdown"]);var bt=d.from_html('<div aria-hidden="true"></div>');function wt(e,t){d.push(t,!0);const i=d.derived(()=>(fe(),z())),n=d.derived(()=>(fe(),X())),r=d.derived(()=>(fe(),Y())),o=d.derived(()=>(ue(),J())),a=d.derived(()=>B("MODAL")-1);Pe(e,{get target(){return d.get(i).portalTarget},children:(e,t)=>{var i=d.comment(),s=d.first_child(i),l=e=>{var t=bt();let i,r;d.template_effect(()=>{i=d.set_class(t,1,d.clsx(I.backdrop),null,i,{"backdrop-visible":d.get(n).visible,"backdrop-blocking":d.get(n).blockClicks}),r=d.set_style(t,"",r,{"z-index":d.get(a)})}),d.transition(3,t,()=>le,()=>({duration:200})),d.append(e,t)};d.if(s,e=>{d.get(o)&&d.get(r)&&e(l)}),d.append(e,i)},$$slots:{default:!0}}),d.pop()}var yt=d.from_html("<!> <!>",1);function St(e,t){d.push(t,!0),oe(()=>{t.config&&Q(t.config)}),ne(me,()=>t.renderIcon),ne(he,()=>t.config),d.user_effect(()=>(oe(()=>{U(),V()}),()=>{Z(),ee()})),d.user_effect(()=>{var e;if("undefined"==typeof document)return;const i=z(),n=(null==(e=t.config)?void 0:e.portalTarget)??i.portalTarget;if("string"==typeof n&&!document.querySelector(n)){const e=document.createElement("div");return e.id=n.replace("#",""),document.body.appendChild(e),()=>{e.remove()}}});var i=yt(),n=d.first_child(i);wt(n,{});var r=d.sibling(n,2);d.snippet(r,()=>t.children??d.noop),d.append(e,i),d.pop()}export{wt as B,_t as D,ve as M,Pe as P,me as R,lt as W,ot as a,Je as b,St as c,Ve as d,ct as e,ke as f,fe as g,ue as h,be as i,Te as j,Ee as k,we as l,ze as m,Ie as n,Se as t,xe as u};
@@ -0,0 +1,14 @@
1
+
2
+ export interface VanillaBackdropOptions {
3
+ container: HTMLElement;
4
+ }
5
+ export declare class VanillaBackdrop {
6
+ private element;
7
+ private unsubscribe;
8
+ private abortController;
9
+ constructor(options: VanillaBackdropOptions);
10
+ private createDOM;
11
+ private render;
12
+ destroy(): void;
13
+ }
14
+ //# sourceMappingURL=VanillaBackdrop.d.ts.map
@@ -0,0 +1,24 @@
1
+
2
+ export interface VanillaDockOptions {
3
+ container: HTMLElement;
4
+
5
+ renderIcon?: (icon: string) => HTMLElement | null;
6
+ }
7
+ export declare class VanillaDock {
8
+ private containerEl;
9
+ private dockEl;
10
+ private parentContainer;
11
+ private unsubscribe;
12
+ private abortController;
13
+ private isAttached;
14
+ private options;
15
+ constructor(options: VanillaDockOptions);
16
+ private createContainerDOM;
17
+ private createDockDOM;
18
+ private render;
19
+ private createDockHandle;
20
+ private createDockItem;
21
+ private createIconPlaceholder;
22
+ destroy(): void;
23
+ }
24
+ //# sourceMappingURL=VanillaDock.d.ts.map
@@ -0,0 +1,76 @@
1
+ import { ModalId, ModalGlow, ModalConfigOverrides, Position } from '../core/types';
2
+
3
+ export interface VanillaModalOptions {
4
+
5
+ id: ModalId;
6
+
7
+ title: string;
8
+
9
+ container: HTMLElement;
10
+
11
+ icon?: string;
12
+
13
+ iconElement?: HTMLElement;
14
+
15
+ renderIcon?: (icon: string) => HTMLElement | null;
16
+
17
+ config?: ModalConfigOverrides;
18
+
19
+ maxWidth?: string;
20
+
21
+ preferredHeight?: string;
22
+
23
+ glow?: ModalGlow;
24
+
25
+ closeOnEscape?: boolean;
26
+
27
+ autoOpen?: boolean;
28
+
29
+ openSourcePosition?: Position | null;
30
+
31
+ onClose?: () => void;
32
+
33
+ content?: HTMLElement;
34
+
35
+ footer?: HTMLElement;
36
+ }
37
+
38
+ export declare class VanillaModal {
39
+ private controller;
40
+ private dialogEl;
41
+ private headerEl;
42
+ private bodyEl;
43
+ private footerEl;
44
+ private resizeHandlesContainer;
45
+ private container;
46
+ private options;
47
+ private configHelper;
48
+ private unsubscribe;
49
+ private abortController;
50
+ constructor(options: VanillaModalOptions);
51
+
52
+ destroy(): void;
53
+
54
+ private createDialogElement;
55
+
56
+ private createHeaderElement;
57
+
58
+ private getIconElement;
59
+
60
+ private createMacOSHeader;
61
+
62
+ private createWindowsHeader;
63
+
64
+ private createBodyElement;
65
+
66
+ private createFooterElement;
67
+
68
+ private createResizeHandles;
69
+
70
+ private updateFromState;
71
+
72
+ private updateStyles;
73
+
74
+ private setupEventHandlers;
75
+ }
76
+ //# sourceMappingURL=VanillaModal.d.ts.map