epic-modals 1.0.0 → 1.0.2

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 (114) hide show
  1. package/dist/core.d.ts +1558 -0
  2. package/dist/core.js +1 -1
  3. package/dist/react.d.ts +101 -12
  4. package/dist/react.js +1 -1
  5. package/dist/styles/basic.css +1 -0
  6. package/dist/styles/showcase.css +1 -0
  7. package/dist/svelte.d.ts +227 -19
  8. package/dist/svelte.js +1 -1
  9. package/dist/vanilla.d.ts +148 -3
  10. package/dist/vanilla.js +1 -1
  11. package/package.json +8 -13
  12. package/dist/core/animation/controller.d.ts +0 -58
  13. package/dist/core/animation/flip.d.ts +0 -8
  14. package/dist/core/animation/genie.d.ts +0 -14
  15. package/dist/core/animation/index.d.ts +0 -6
  16. package/dist/core/animation/timing.d.ts +0 -34
  17. package/dist/core/behaviors/drag.d.ts +0 -34
  18. package/dist/core/behaviors/focusTrap.d.ts +0 -23
  19. package/dist/core/behaviors/index.d.ts +0 -6
  20. package/dist/core/behaviors/parentChild.d.ts +0 -27
  21. package/dist/core/behaviors/resize.d.ts +0 -49
  22. package/dist/core/config/defaults.d.ts +0 -90
  23. package/dist/core/config/index.d.ts +0 -4
  24. package/dist/core/config/resolution.d.ts +0 -25
  25. package/dist/core/index.d.ts +0 -9
  26. package/dist/core/modal/Controller.d.ts +0 -70
  27. package/dist/core/modal/Controller.types.d.ts +0 -77
  28. package/dist/core/modal/Interactions.d.ts +0 -67
  29. package/dist/core/modal/Lifecycle.d.ts +0 -20
  30. package/dist/core/modal/Positioning.d.ts +0 -40
  31. package/dist/core/modal/StateManager.d.ts +0 -91
  32. package/dist/core/modal/Styling.d.ts +0 -42
  33. package/dist/core/modal/index.d.ts +0 -8
  34. package/dist/core/state/effects.d.ts +0 -16
  35. package/dist/core/state/events.d.ts +0 -15
  36. package/dist/core/state/getters.d.ts +0 -37
  37. package/dist/core/state/index.d.ts +0 -17
  38. package/dist/core/state/internal.d.ts +0 -105
  39. package/dist/core/state/layout.d.ts +0 -17
  40. package/dist/core/state/minimize.d.ts +0 -18
  41. package/dist/core/state/open-close.d.ts +0 -21
  42. package/dist/core/state/parent-child.d.ts +0 -17
  43. package/dist/core/state/pending.d.ts +0 -55
  44. package/dist/core/state/position.d.ts +0 -15
  45. package/dist/core/state/registration.d.ts +0 -15
  46. package/dist/core/state/stacking.d.ts +0 -10
  47. package/dist/core/state/zindex.d.ts +0 -8
  48. package/dist/core/types.d.ts +0 -191
  49. package/dist/core/utils/backdrop.d.ts +0 -8
  50. package/dist/core/utils/constants.d.ts +0 -193
  51. package/dist/core/utils/dock.d.ts +0 -12
  52. package/dist/core/utils/dom.d.ts +0 -31
  53. package/dist/core/utils/helpers.d.ts +0 -8
  54. package/dist/core/utils/index.d.ts +0 -8
  55. package/dist/core/utils/viewport/constraints.d.ts +0 -7
  56. package/dist/core/utils/viewport/index.d.ts +0 -7
  57. package/dist/core/utils/viewport/overlap.d.ts +0 -30
  58. package/dist/core/utils/viewport/smart-layout.d.ts +0 -3
  59. package/dist/core/utils/viewport/smart-position.d.ts +0 -36
  60. package/dist/core/utils/viewport/types.d.ts +0 -56
  61. package/dist/core/utils/viewport.d.ts +0 -3
  62. package/dist/epic-modals.css +0 -47
  63. package/dist/index.d.ts +0 -2
  64. package/dist/index.js +0 -1
  65. package/dist/react/components/Backdrop.d.ts +0 -7
  66. package/dist/react/components/ModalProvider.d.ts +0 -10
  67. package/dist/react/components/Portal.d.ts +0 -10
  68. package/dist/react/components/dock/Dock.d.ts +0 -7
  69. package/dist/react/components/dock/DockItem.d.ts +0 -16
  70. package/dist/react/components/modal/Modal.d.ts +0 -10
  71. package/dist/react/components/modal/ModalHeader.d.ts +0 -13
  72. package/dist/react/components/modal/ModalInner.d.ts +0 -17
  73. package/dist/react/components/modal/ResizeHandles.d.ts +0 -9
  74. package/dist/react/components/wizard/WizardModal.d.ts +0 -33
  75. package/dist/react/components/wizard/WizardStep.d.ts +0 -15
  76. package/dist/react/context.d.ts +0 -11
  77. package/dist/react/hooks/useConfig.d.ts +0 -25
  78. package/dist/react/useModal.d.ts +0 -23
  79. package/dist/runtime.js +0 -1
  80. package/dist/styles/animations.css +0 -1
  81. package/dist/styles/backdrop.css +0 -1
  82. package/dist/styles/dock.css +0 -1
  83. package/dist/styles/index.css +0 -1
  84. package/dist/styles/modal.css +0 -1
  85. package/dist/styles/themes/dark.css +0 -1
  86. package/dist/styles/themes/light.css +0 -1
  87. package/dist/styles/variables.css +0 -1
  88. package/dist/styles/wizard.css +0 -1
  89. package/dist/svelte/actions/appendElement.d.ts +0 -6
  90. package/dist/svelte/components/Backdrop.svelte.d.ts +0 -1
  91. package/dist/svelte/components/ModalProvider.svelte.d.ts +0 -1
  92. package/dist/svelte/components/Portal.svelte.d.ts +0 -1
  93. package/dist/svelte/components/dock/Dock.svelte.d.ts +0 -1
  94. package/dist/svelte/components/modal/Modal.svelte.d.ts +0 -1
  95. package/dist/svelte/components/modal/ModalHeader.svelte.d.ts +0 -1
  96. package/dist/svelte/components/modal/ModalInner.svelte.d.ts +0 -1
  97. package/dist/svelte/components/modal/ResizeHandles.svelte.d.ts +0 -1
  98. package/dist/svelte/components/wizard/WizardModal.svelte.d.ts +0 -1
  99. package/dist/svelte/components/wizard/WizardStep.svelte.d.ts +0 -1
  100. package/dist/svelte/context.d.ts +0 -8
  101. package/dist/svelte/hooks/index.d.ts +0 -10
  102. package/dist/svelte/hooks/useFocusTrap.svelte.d.ts +0 -11
  103. package/dist/svelte/hooks/useModal.svelte.d.ts +0 -37
  104. package/dist/svelte/hooks/useModalConfig.svelte.d.ts +0 -27
  105. package/dist/svelte/hooks/useModalZIndex.svelte.d.ts +0 -10
  106. package/dist/svelte/hooks/usePortal.svelte.d.ts +0 -8
  107. package/dist/svelte/hooks/useWindowEvent.svelte.d.ts +0 -7
  108. package/dist/svelte/stores.svelte.d.ts +0 -6
  109. package/dist/svelte/wizardContext.svelte.d.ts +0 -36
  110. package/dist/ui.js +0 -1
  111. package/dist/vanilla/VanillaBackdrop.d.ts +0 -14
  112. package/dist/vanilla/VanillaDock.d.ts +0 -24
  113. package/dist/vanilla/VanillaModal.d.ts +0 -76
  114. package/dist/vanilla/index.d.ts +0 -47
@@ -0,0 +1 @@
1
+ :root{--modal-bg:linear-gradient(165deg, #fff 0%, #fafbfc 50%, #f5f7f9 100%);--modal-bg-transparent:#ffffffeb;--modal-border:#0000001f;--modal-border-radius:12px;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-header-bg:transparent;--modal-header-border:#00000014;--modal-header-height:48px;--modal-header-padding:.875rem 1.25rem;--modal-title-color:#0f172a;--modal-title-size:1rem;--modal-btn-close:#ff5f57;--modal-btn-minimize:#febc2e;--modal-btn-style:#28c840;--modal-btn-size:13px;--modal-btn-gap:7px;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1f;--modal-btn-windows-hover-color:#f0f0f0;--modal-content-padding:0;--modal-content-color:#334155;--modal-footer-bg:transparent;--modal-footer-border:#00000014;--modal-footer-padding:1rem 1.25rem;--modal-backdrop-bg:#0000004d;--modal-backdrop-blur:2px;--modal-dock-bg:linear-gradient(180deg, #fffffff2 0%, #f8fafceb 100%);--modal-dock-border:#00000014;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-padding:.5rem .625rem;--modal-dock-gap:.5rem;--modal-dock-border-radius:14px;--modal-dock-item-size:44px;--modal-dock-item-bg:linear-gradient(145deg, #fffc, #f1f5f999);--modal-dock-item-border:#0000000f;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #fff, #f1f5f9);--modal-dock-item-hover-border:#0000001f;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-item-border-radius:10px;--modal-dock-label-color:#475569;--modal-dock-label-size:.65rem;--modal-dock-handle-bg:linear-gradient(145deg, #fff9, #f1f5f966);--modal-dock-handle-border:#0000000f;--modal-dock-handle-dots:#00000040;--modal-animation-duration-open:.4s;--modal-animation-duration-close:.25s;--modal-animation-duration-minimize:.5s;--modal-animation-duration-restore:.4s;--modal-animation-easing:cubic-bezier(.4, 0, .2, 1);--modal-animation-easing-minimize:cubic-bezier(.4, 0, 1, 1);--modal-animation-easing-restore:ease-out;--modal-animation-easing-open:ease-out;--modal-animation-easing-close:cubic-bezier(.4, 0, .8, 1);--modal-parent-animation-duration:.3s;--modal-resize-handle-size:12px;--modal-resize-corner-size:20px;--modal-glow-color:126, 200, 191;--modal-attention-color:255, 180, 100;--modal-attention-duration:.6s;--modal-child-overlay-bg:#00000040;--modal-child-overlay-blur:1px;--modal-icon-size:1.5rem;--modal-icon-badge-size:.85rem}@keyframes modal-genie-minimize{0%{opacity:1;transform:scale(1)translate(0,0)}50%{opacity:1}80%{opacity:.4}to{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}}@keyframes modal-genie-restore{0%{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes modal-close{0%{opacity:1;transform:scale(1)translate(0,0)}40%{opacity:.8}to{opacity:0;transform:scale(.95)translateY(10px)}}@keyframes modal-close-centered{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}40%{opacity:.8}to{opacity:0;transform:translate(-50%,-45%)scale(.95)}}@keyframes modal-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modal-shake-positioned{0%,to{transform:none}10%{transform:translate(-8px)rotate(-.5deg)}20%{transform:translate(8px)rotate(.5deg)}30%{transform:translate(-6px)rotate(-.3deg)}40%{transform:translate(6px)rotate(.3deg)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}90%{transform:translate(-1px)}}@keyframes modal-shake-centered{0%,to{transform:translate(-50%,-50%)}10%{transform:translate(calc(-50% - 8px),-50%)rotate(-.5deg)}20%{transform:translate(calc(8px - 50%),-50%)rotate(.5deg)}30%{transform:translate(calc(-50% - 6px),-50%)rotate(-.3deg)}40%{transform:translate(calc(6px - 50%),-50%)rotate(.3deg)}50%{transform:translate(calc(-50% - 4px),-50%)}60%{transform:translate(calc(4px - 50%),-50%)}70%{transform:translate(calc(-50% - 2px),-50%)}80%{transform:translate(calc(2px - 50%),-50%)}90%{transform:translate(calc(-50% - 1px),-50%)}}@keyframes modal-attention-glow{0%{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}15%{box-shadow:var(--modal-shadow-lg), 0 0 30px 8px rgba(var(--modal-attention-color,255, 180, 100), .6), 0 0 60px 16px rgba(var(--modal-attention-color,255, 180, 100), .3)}30%{box-shadow:var(--modal-shadow-lg), 0 0 40px 12px rgba(var(--modal-attention-color,255, 180, 100), .5), 0 0 80px 24px rgba(var(--modal-attention-color,255, 180, 100), .25)}to{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}}@keyframes modal-overlay-fade-in{0%{opacity:0;backdrop-filter:blur()}to{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}}@keyframes modal-overlay-fade-out{0%{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}to{opacity:0;backdrop-filter:blur()}}@keyframes modal-child-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-child-disappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes modal-glow-pulse{0%,to{opacity:var(--glow-intensity-min,.4)}50%{opacity:var(--glow-intensity-max,.7)}}@keyframes modal-glow-minimum{0%,to{box-shadow:none}}@keyframes modal-glow-low{0%,to{box-shadow:0 0 8px rgba(var(--modal-glow-color), .15), 0 0 16px rgba(var(--modal-glow-color), .1), 0 0 24px rgba(var(--modal-glow-color), .05)}50%{box-shadow:0 0 12px rgba(var(--modal-glow-color), .2), 0 0 24px rgba(var(--modal-glow-color), .15), 0 0 36px rgba(var(--modal-glow-color), .08)}}@keyframes modal-glow-medium{0%,to{box-shadow:0 0 20px rgba(var(--modal-glow-color), .6), 0 0 40px rgba(var(--modal-glow-color), .5), 0 0 60px rgba(var(--modal-glow-color), .4), 0 0 80px rgba(var(--modal-glow-color), .25)}50%{box-shadow:0 0 30px rgba(var(--modal-glow-color), .8), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .35), 0 0 150px rgba(var(--modal-glow-color), .2)}}@keyframes modal-glow-high{0%,to{box-shadow:0 0 30px rgba(var(--modal-glow-color), .7), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .4)}50%{box-shadow:0 0 50px rgba(var(--modal-glow-color), .9), 0 0 100px rgba(var(--modal-glow-color), .7), 0 0 150px rgba(var(--modal-glow-color), .6), 0 0 200px rgba(var(--modal-glow-color), .45), 0 0 250px rgba(var(--modal-glow-color), .3)}}@keyframes modal-dock-glow-pulse{0%,to{opacity:.35}50%{opacity:.65}}.modal-dialog{background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);width:calc(100% - 2rem);max-width:480px;max-height:80vh;box-shadow:var(--modal-shadow-lg);opacity:0;outline:none;flex-direction:column;transition:height .15s ease-out,background-color .2s,border-color .2s;display:flex;position:fixed;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.modal-dialog.modal-positioned{opacity:1;transform:none}.modal-dialog.modal-positioned.modal-restoring,.modal-dialog.modal-positioned.modal-opening{opacity:unset}.modal-dialog.modal-centered{opacity:1}.modal-dialog.modal-awaiting-restore,.modal-dialog.modal-awaiting-child-open:not(.modal-opening):not(.modal-restoring){pointer-events:none;opacity:0!important}.modal-dialog.modal-dragging{opacity:.9;user-select:none;transition:none}.modal-dialog.modal-resizing{user-select:none;transition:none}.modal-dialog.modal-solid{background:var(--modal-bg)}.modal-dialog.modal-transparent{background:var(--modal-bg-transparent);opacity:.4}.modal-dialog.modal-minimizing{pointer-events:none;animation:modal-genie-minimize var(--modal-animation-duration-minimize) var(--modal-animation-easing-minimize) forwards;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-restoring{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-restore) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-opening{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-open) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,50%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing{pointer-events:none;animation:modal-close var(--modal-animation-duration-close) var(--modal-animation-easing-close) forwards;will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing:not(.modal-positioned){animation-name:modal-close-centered}.modal-dialog.modal-positioned.modal-minimizing,.modal-dialog.modal-positioned.modal-closing{transform:unset;opacity:unset}.modal-dialog.modal-positioned.modal-opening,.modal-dialog.modal-positioned.modal-restoring{transform:unset}.modal-dialog.modal-visible-by-animation:not(.modal-restoring):not(.modal-opening){opacity:1}.modal-dialog.modal-attention{animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-positioned,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention:not(.modal-positioned){animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-centered,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention.modal-glow{--modal-attention-color:var(--modal-glow-color)}.modal-dialog.modal-glow{border-color:rgb(var(--modal-glow-color));--glow-intensity-min:.4;--glow-intensity-max:.7}.modal-dialog.modal-glow:before{content:"";border-radius:inherit;box-shadow:0 0 20px rgb(var(--modal-glow-color)), 0 0 40px rgb(var(--modal-glow-color)), 0 0 60px rgb(var(--modal-glow-color));opacity:var(--glow-intensity-min);pointer-events:none;will-change:opacity;animation:2s ease-in-out infinite modal-glow-pulse;position:absolute;inset:0}.modal-dialog.modal-glow.modal-glow-minimum{border-color:rgba(var(--modal-glow-color), .4);--glow-intensity-min:0;--glow-intensity-max:0}.modal-dialog.modal-glow.modal-glow-minimum:before{display:none}.modal-dialog.modal-glow.modal-glow-low{--glow-intensity-min:.15;--glow-intensity-max:.3}.modal-dialog.modal-glow.modal-glow-high{--glow-intensity-min:.6;--glow-intensity-max:.9}.modal-dialog.modal-glow.modal-minimizing:before,.modal-dialog.modal-glow.modal-restoring:before,.modal-dialog.modal-glow.modal-opening:before,.modal-dialog.modal-glow.modal-closing:before,.modal-dialog.modal-glow.modal-glow-stabilizing:not(.modal-restoring):not(.modal-opening):before{opacity:var(--glow-intensity-min,.4);animation:none}.modal-header{padding:var(--modal-header-padding);border-bottom:1px solid var(--modal-header-border);outline:none;flex-shrink:0;align-items:center;gap:.75rem;display:flex;position:relative;overflow:visible}.modal-header.modal-header-draggable{cursor:grab;user-select:none;touch-action:none}.modal-header.modal-header-draggable:active{cursor:grabbing}.modal-header-traffic-lights{gap:var(--modal-btn-gap);z-index:100;flex-shrink:0;display:flex;position:relative}.modal-header-traffic-lights .modal-header-light{width:var(--modal-btn-size);height:var(--modal-btn-size);cursor:pointer;border:none;border-radius:50%;outline:none;flex-shrink:0;padding:0;transition:filter .15s,transform .1s;position:relative}.modal-header-traffic-lights .modal-header-light:before{content:"";opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.modal-header-traffic-lights .modal-header-light:hover{transform:scale(1.1)}.modal-header-traffic-lights .modal-header-light:hover:before{opacity:1}.modal-header-traffic-lights .modal-header-light:focus-visible{box-shadow:0 0 0 2px #ffffff80,0 0 0 4px #0003}.modal-header-light-close{background:var(--modal-btn-close);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-close:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-close:before{content:"×";color:#4a0002cc;font-size:11px;font-weight:600;line-height:13px}.modal-header-light-minimize{background:var(--modal-btn-minimize);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-minimize:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-minimize:before{content:"−";color:#995700cc;font-size:13px;font-weight:600;line-height:12px}.modal-header-light-style{background:var(--modal-btn-style);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-style:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-style:before{content:"◇";color:#006500cc;font-size:7px;line-height:13px}.modal-header-light.modal-header-light-disabled{opacity:.5;cursor:not-allowed;background:#ccc}.modal-header-light.modal-header-light-disabled:hover{filter:none}.modal-header-traffic-lights .modal-header-light.modal-header-light-disabled:before{opacity:.4}.modal-header-mac-center{pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;left:0;right:0}.modal-header-mac-center .modal-header-title-group{flex:unset;pointer-events:auto}.modal-header-mac-center .modal-header-icon{pointer-events:auto}.modal-header-mac-spacer{display:none}.modal-header-title-group{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.modal-header-title{font-size:var(--modal-title-size);color:var(--modal-title-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.modal-header-icon{font-size:var(--modal-icon-size);width:var(--modal-icon-size);height:var(--modal-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.modal-header-icon-badge{font-size:var(--modal-icon-badge-size);background:var(--modal-bg);border-radius:50%;padding:2px;line-height:1;position:absolute;bottom:-6px;right:-8px;box-shadow:0 1px 3px #0003}.modal-header-btn-windows{color:var(--modal-btn-windows-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.25rem;line-height:1;transition:background-color .15s,color .15s}.modal-header-btn-windows:hover{color:var(--modal-btn-windows-hover-color);background:var(--modal-btn-windows-hover-bg)}.modal-header-btn-windows-style{font-size:1.15rem}.modal-header-btn-windows-close{padding:0;font-size:1.5rem}.modal-header-btn-windows.modal-header-btn-windows-disabled{opacity:.35;cursor:not-allowed}.modal-header-btn-windows.modal-header-btn-windows-disabled:hover{color:var(--modal-btn-windows-color);background:0 0}.modal-body{min-height:0;padding:var(--modal-content-padding);color:var(--modal-content-color);flex-direction:column;flex:auto;display:flex;position:relative;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#0000000d}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.modal-footer{padding:var(--modal-footer-padding);border-top:1px solid var(--modal-footer-border);flex-shrink:0}.modal-footer-empty:empty{display:none}.modal-resize-handle{z-index:10;touch-action:none;position:absolute}.modal-resize-n,.modal-resize-s{height:var(--modal-resize-handle-size);cursor:ns-resize;left:8px;right:8px}.modal-resize-n{top:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-s{bottom:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-e,.modal-resize-w{width:var(--modal-resize-handle-size);cursor:ew-resize;top:8px;bottom:8px}.modal-resize-e{right:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-w{left:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:var(--modal-resize-corner-size);height:var(--modal-resize-corner-size)}.modal-resize-ne{top:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-resize-nw{top:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-se{bottom:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-sw{bottom:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-child-overlay{background:var(--modal-child-overlay-bg);backdrop-filter:blur(var(--modal-child-overlay-blur));border-radius:inherit;z-index:100;cursor:not-allowed;pointer-events:all;animation:.2s ease-out forwards modal-overlay-fade-in;position:absolute;inset:0}.modal-child-overlay.modal-overlay-closing{pointer-events:none;animation:.2s ease-in forwards modal-overlay-fade-out}.modal-dialog.modal-has-child .modal-header-actions{pointer-events:none;opacity:.5}.modal-dialog.modal-has-child .modal-header-draggable{cursor:not-allowed}.modal-dialog.modal-is-child.modal-positioned:not(.modal-closing):not(.modal-minimizing):not(.modal-restoring):not(.modal-visible-by-animation):not(.modal-was-restored):not(.modal-awaiting-restore):not(.modal-awaiting-child-open){animation:.25s ease-out both modal-child-appear}.modal-dialog.modal-is-child.modal-closing{animation:.2s ease-in forwards modal-child-disappear}.modal-dock-container{position:fixed}.modal-dock-container.modal-dock-empty{pointer-events:none;opacity:0}.modal-dock-container.modal-dock-free{transform:none}.modal-dock-container.modal-dock-bottom{bottom:1.25rem;left:50%;transform:translate(-50%)}.modal-dock-container.modal-dock-bottom .modal-dock{flex-direction:row;align-items:flex-end}.modal-dock-container.modal-dock-left{top:50%;left:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-left .modal-dock{flex-direction:column;align-items:stretch}.modal-dock-container.modal-dock-right{top:50%;right:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-right .modal-dock{flex-direction:column;align-items:stretch}.modal-dock{gap:var(--modal-dock-gap);padding:var(--modal-dock-padding);background:var(--modal-dock-bg);border:1px solid var(--modal-dock-border);border-radius:var(--modal-dock-border-radius);box-shadow:var(--modal-dock-shadow);display:flex}.modal-dock.modal-dock-free-horizontal{flex-direction:row;align-items:center}.modal-dock.modal-dock-free-vertical{flex-direction:column;align-items:stretch}.modal-dock-handle{background:var(--modal-dock-handle-bg);border:1px solid var(--modal-dock-handle-border);cursor:grab;opacity:.85;appearance:none;touch-action:none;border-radius:12px;flex:none;width:22px;height:44px;padding:0;position:relative}.modal-dock-handle:hover{opacity:1;border-color:var(--modal-dock-item-hover-border)}.modal-dock-handle.modal-dock-handle-dragging{cursor:grabbing;opacity:1}.modal-dock-handle:before{content:"";background-image:radial-gradient(var(--modal-dock-handle-dots) 1px, transparent 1px);opacity:.6;background-position:50%;background-size:7px 7px;position:absolute;inset:8px 6px}.modal-dock.modal-dock-free-vertical .modal-dock-handle{align-self:stretch;width:auto;min-width:44px;height:22px}.modal-dock.modal-dock-free-vertical .modal-dock-handle:before{inset:6px 8px}.modal-dock-item{width:var(--modal-dock-item-size);height:var(--modal-dock-item-size);background:var(--modal-dock-item-bg);border:1px solid var(--modal-dock-item-border);border-radius:var(--modal-dock-item-border-radius);box-shadow:var(--modal-dock-item-shadow,none);cursor:pointer;touch-action:none;justify-content:center;align-items:center;padding:.375rem;transition:transform .15s ease-out,opacity .15s ease-out,background .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:visible}.modal-dock-item:hover{background:var(--modal-dock-item-hover-bg);border-color:var(--modal-dock-item-hover-border);box-shadow:var(--modal-dock-item-hover-shadow,0 6px 16px #00000026, 0 2px 6px #0000001a)}.modal-dock-item:hover .modal-dock-item-icon{transform:scale(1.05)}.modal-dock-item:hover .modal-dock-item-glow{opacity:.4}.modal-dock-item:active{transition-duration:.1s}.modal-dock-container.modal-dock-bottom .modal-dock-item:hover{transform:translateY(-4px)scale(1.05)}.modal-dock-container.modal-dock-bottom .modal-dock-item:active{transform:translateY(-2px)scale(1.02)}.modal-dock-container.modal-dock-left .modal-dock-item:hover{transform:translate(4px)scale(1.05)}.modal-dock-container.modal-dock-left .modal-dock-item:active{transform:translate(2px)scale(1.02)}.modal-dock-container.modal-dock-right .modal-dock-item:hover{transform:translate(-4px)scale(1.05)}.modal-dock-container.modal-dock-right .modal-dock-item:active{transform:translate(-2px)scale(1.02)}.modal-dock-item-icon{filter:drop-shadow(0 2px 4px #00000026);justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:transform .2s;display:inline-flex;position:relative}.modal-dock-item-icon-placeholder{color:var(--modal-dock-label-color);font-size:1.25rem;font-weight:600}.modal-dock-item-glow{opacity:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(circle,currentColor,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.modal-dock-item-label{font-size:var(--modal-dock-label-size);color:var(--modal-dock-label-color);white-space:nowrap;text-overflow:ellipsis;max-width:80px;font-weight:500;overflow:hidden}.modal-dock-item.modal-dock-item-label-beside{flex-direction:row;gap:.5rem;width:auto;padding:.375rem .75rem .375rem .5rem}.modal-dock-item.modal-dock-item-label-below{flex-direction:column;gap:.25rem;width:auto;min-width:52px;height:auto;padding:.375rem .5rem}.modal-dock-item.modal-dock-item-label-below .modal-dock-item-label{max-width:60px;font-size:.55rem}.modal-dock-item.modal-dock-item-has-glow{--modal-dock-glow-color:20, 184, 166;border-color:rgba(var(--modal-dock-glow-color), .6);box-shadow:0 0 10px rgba(var(--modal-dock-glow-color), .5), 0 0 20px rgba(var(--modal-dock-glow-color), .3)}.modal-dock-item.modal-dock-item-has-glow .modal-dock-item-glow{background:radial-gradient(circle at center, rgb(var(--modal-dock-glow-color)), transparent 60%);animation:2.5s cubic-bezier(.4,0,.6,1) infinite modal-dock-glow-pulse}.modal-dock-item.modal-dock-item-has-glow:hover .modal-dock-item-glow{opacity:.8;animation:none}.modal-dock-child-indicator{color:#141822;background:#ffd54a;border:2px solid #00000040;border-radius:6px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;display:inline-flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #00000059}.modal-dock-item.modal-dock-item-has-child{border-color:var(--modal-dock-item-hover-border)}.modal-dock-item.modal-dock-item-has-child:hover .modal-dock-child-indicator{transform:scale(1.2)}.wizard-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.wizard-progress{padding:var(--space-4);padding-bottom:var(--space-2);flex-shrink:0}.wizard-progress-bar{height:3px;margin-bottom:var(--space-3);background:#ffffff1a;border-radius:2px;overflow:hidden}.wizard-progress-fill{background:linear-gradient(90deg, var(--color-primary,#00d9ff), var(--color-primary-light,#7dd3fc));border-radius:2px;height:100%;transition:width .3s}.wizard-steps{justify-content:space-between;gap:var(--space-2);display:flex}.wizard-step-dot{align-items:center;gap:var(--space-1);padding:var(--space-1);cursor:default;opacity:.4;background:0 0;border:none;flex-direction:column;transition:opacity .2s;display:flex}.wizard-step-dot:before{content:"";background:#ffffff4d;border:2px solid #0000;border-radius:50%;width:10px;height:10px;transition:all .2s}.wizard-step-dot.active{opacity:1}.wizard-step-dot.active:before{background:var(--color-primary,#00d9ff);border-color:var(--color-primary,#00d9ff);box-shadow:0 0 10px var(--color-primary,#00d9ff)}.wizard-step-dot.completed{opacity:.8}.wizard-step-dot.completed:before{background:var(--color-primary,#00d9ff)}.wizard-step-dot.clickable{cursor:pointer}.wizard-step-dot.clickable:hover{opacity:1}.wizard-step-title{color:var(--color-text-muted,#a1a1aa);white-space:nowrap;font-size:11px}.wizard-step-dot.active .wizard-step-title{color:var(--color-text,#fff)}.wizard-content{padding:var(--space-4);flex:1;overflow-y:auto}.wizard-navigation{justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-top:1px solid #ffffff1a;flex-shrink:0;display:flex}.wizard-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md,8px);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.wizard-btn:disabled{opacity:.4;cursor:not-allowed}.wizard-btn-back{color:var(--color-text-muted,#a1a1aa);background:0 0;border:1px solid #fff3}.wizard-btn-back:not(:disabled):hover{color:var(--color-text,#fff);border-color:#fff6}.wizard-btn-next{background:linear-gradient(135deg, var(--color-primary,#00d9ff), var(--color-primary-dark,#0891b2));color:#000;border:none;min-width:100px}.wizard-btn-next:not(:disabled):hover{filter:brightness(1.1);box-shadow:0 4px 15px #00d9ff4d}.wizard-step-wrapper{height:100%}.wizard-fade-slide-left{animation:.3s forwards fadeSlideFromRight}.wizard-fade-slide-right{animation:.3s forwards fadeSlideFromLeft}@keyframes fadeSlideFromRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeSlideFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.wizard-slide-through-enter-left{animation:.3s forwards slideFromLeft}.wizard-slide-through-enter-right{animation:.3s forwards slideFromRight}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.wizard-modal-slide-forward,.wizard-modal-slide-backward{will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.wizard-modal-slide-forward{animation:.7s ease-in-out forwards wizardModalSlideForward!important}.wizard-modal-slide-backward{animation:.7s ease-in-out forwards wizardModalSlideBackward!important}@keyframes wizardModalSlideForward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(110%)}50%{opacity:0;transform:translate(-110%)}to{opacity:1;transform:translate(0,0)}}@keyframes wizardModalSlideBackward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(-110%)}50%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0,0)}}[data-theme=light] .wizard-progress-bar{background:#0000001a}[data-theme=light] .wizard-step-dot:before{background:#0003}[data-theme=light] .wizard-step-title{color:#64748b}[data-theme=light] .wizard-step-dot.active .wizard-step-title{color:#0f172a}[data-theme=light] .wizard-navigation{border-top-color:#0000001a}[data-theme=light] .wizard-btn-back{color:#64748b;border-color:#0003}[data-theme=light] .wizard-btn-back:not(:disabled):hover{color:#0f172a;border-color:#0006}[data-theme=light] .wizard-btn-next{color:#fff}.modal-backdrop{pointer-events:none;-webkit-backdrop-filter:blur();background:0 0;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;inset:0}.modal-backdrop.backdrop-visible{background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur,4px))}.modal-backdrop.backdrop-blocking{pointer-events:all}
@@ -0,0 +1 @@
1
+ :root{--modal-bg:linear-gradient(165deg, #fff 0%, #fafbfc 50%, #f5f7f9 100%);--modal-bg-transparent:#ffffffeb;--modal-border:#0000001f;--modal-border-radius:12px;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-header-bg:transparent;--modal-header-border:#00000014;--modal-header-height:48px;--modal-header-padding:.875rem 1.25rem;--modal-title-color:#0f172a;--modal-title-size:1rem;--modal-btn-close:#ff5f57;--modal-btn-minimize:#febc2e;--modal-btn-style:#28c840;--modal-btn-size:13px;--modal-btn-gap:7px;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1f;--modal-btn-windows-hover-color:#f0f0f0;--modal-content-padding:0;--modal-content-color:#334155;--modal-footer-bg:transparent;--modal-footer-border:#00000014;--modal-footer-padding:1rem 1.25rem;--modal-backdrop-bg:#0000004d;--modal-backdrop-blur:2px;--modal-dock-bg:linear-gradient(180deg, #fffffff2 0%, #f8fafceb 100%);--modal-dock-border:#00000014;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-padding:.5rem .625rem;--modal-dock-gap:.5rem;--modal-dock-border-radius:14px;--modal-dock-item-size:44px;--modal-dock-item-bg:linear-gradient(145deg, #fffc, #f1f5f999);--modal-dock-item-border:#0000000f;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #fff, #f1f5f9);--modal-dock-item-hover-border:#0000001f;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-item-border-radius:10px;--modal-dock-label-color:#475569;--modal-dock-label-size:.65rem;--modal-dock-handle-bg:linear-gradient(145deg, #fff9, #f1f5f966);--modal-dock-handle-border:#0000000f;--modal-dock-handle-dots:#00000040;--modal-animation-duration-open:.4s;--modal-animation-duration-close:.25s;--modal-animation-duration-minimize:.5s;--modal-animation-duration-restore:.4s;--modal-animation-easing:cubic-bezier(.4, 0, .2, 1);--modal-animation-easing-minimize:cubic-bezier(.4, 0, 1, 1);--modal-animation-easing-restore:ease-out;--modal-animation-easing-open:ease-out;--modal-animation-easing-close:cubic-bezier(.4, 0, .8, 1);--modal-parent-animation-duration:.3s;--modal-resize-handle-size:12px;--modal-resize-corner-size:20px;--modal-glow-color:126, 200, 191;--modal-attention-color:255, 180, 100;--modal-attention-duration:.6s;--modal-child-overlay-bg:#00000040;--modal-child-overlay-blur:1px;--modal-icon-size:1.5rem;--modal-icon-badge-size:.85rem}@keyframes modal-genie-minimize{0%{opacity:1;transform:scale(1)translate(0,0)}50%{opacity:1}80%{opacity:.4}to{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}}@keyframes modal-genie-restore{0%{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes modal-close{0%{opacity:1;transform:scale(1)translate(0,0)}40%{opacity:.8}to{opacity:0;transform:scale(.95)translateY(10px)}}@keyframes modal-close-centered{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}40%{opacity:.8}to{opacity:0;transform:translate(-50%,-45%)scale(.95)}}@keyframes modal-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modal-shake-positioned{0%,to{transform:none}10%{transform:translate(-8px)rotate(-.5deg)}20%{transform:translate(8px)rotate(.5deg)}30%{transform:translate(-6px)rotate(-.3deg)}40%{transform:translate(6px)rotate(.3deg)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}90%{transform:translate(-1px)}}@keyframes modal-shake-centered{0%,to{transform:translate(-50%,-50%)}10%{transform:translate(calc(-50% - 8px),-50%)rotate(-.5deg)}20%{transform:translate(calc(8px - 50%),-50%)rotate(.5deg)}30%{transform:translate(calc(-50% - 6px),-50%)rotate(-.3deg)}40%{transform:translate(calc(6px - 50%),-50%)rotate(.3deg)}50%{transform:translate(calc(-50% - 4px),-50%)}60%{transform:translate(calc(4px - 50%),-50%)}70%{transform:translate(calc(-50% - 2px),-50%)}80%{transform:translate(calc(2px - 50%),-50%)}90%{transform:translate(calc(-50% - 1px),-50%)}}@keyframes modal-attention-glow{0%{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}15%{box-shadow:var(--modal-shadow-lg), 0 0 30px 8px rgba(var(--modal-attention-color,255, 180, 100), .6), 0 0 60px 16px rgba(var(--modal-attention-color,255, 180, 100), .3)}30%{box-shadow:var(--modal-shadow-lg), 0 0 40px 12px rgba(var(--modal-attention-color,255, 180, 100), .5), 0 0 80px 24px rgba(var(--modal-attention-color,255, 180, 100), .25)}to{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}}@keyframes modal-overlay-fade-in{0%{opacity:0;backdrop-filter:blur()}to{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}}@keyframes modal-overlay-fade-out{0%{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}to{opacity:0;backdrop-filter:blur()}}@keyframes modal-child-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-child-disappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes modal-glow-pulse{0%,to{opacity:var(--glow-intensity-min,.4)}50%{opacity:var(--glow-intensity-max,.7)}}@keyframes modal-glow-minimum{0%,to{box-shadow:none}}@keyframes modal-glow-low{0%,to{box-shadow:0 0 8px rgba(var(--modal-glow-color), .15), 0 0 16px rgba(var(--modal-glow-color), .1), 0 0 24px rgba(var(--modal-glow-color), .05)}50%{box-shadow:0 0 12px rgba(var(--modal-glow-color), .2), 0 0 24px rgba(var(--modal-glow-color), .15), 0 0 36px rgba(var(--modal-glow-color), .08)}}@keyframes modal-glow-medium{0%,to{box-shadow:0 0 20px rgba(var(--modal-glow-color), .6), 0 0 40px rgba(var(--modal-glow-color), .5), 0 0 60px rgba(var(--modal-glow-color), .4), 0 0 80px rgba(var(--modal-glow-color), .25)}50%{box-shadow:0 0 30px rgba(var(--modal-glow-color), .8), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .35), 0 0 150px rgba(var(--modal-glow-color), .2)}}@keyframes modal-glow-high{0%,to{box-shadow:0 0 30px rgba(var(--modal-glow-color), .7), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .4)}50%{box-shadow:0 0 50px rgba(var(--modal-glow-color), .9), 0 0 100px rgba(var(--modal-glow-color), .7), 0 0 150px rgba(var(--modal-glow-color), .6), 0 0 200px rgba(var(--modal-glow-color), .45), 0 0 250px rgba(var(--modal-glow-color), .3)}}@keyframes modal-dock-glow-pulse{0%,to{opacity:.35}50%{opacity:.65}}.modal-dialog{background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);width:calc(100% - 2rem);max-width:480px;max-height:80vh;box-shadow:var(--modal-shadow-lg);opacity:0;outline:none;flex-direction:column;transition:height .15s ease-out,background-color .2s,border-color .2s;display:flex;position:fixed;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.modal-dialog.modal-positioned{opacity:1;transform:none}.modal-dialog.modal-positioned.modal-restoring,.modal-dialog.modal-positioned.modal-opening{opacity:unset}.modal-dialog.modal-centered{opacity:1}.modal-dialog.modal-awaiting-restore,.modal-dialog.modal-awaiting-child-open:not(.modal-opening):not(.modal-restoring){pointer-events:none;opacity:0!important}.modal-dialog.modal-dragging{opacity:.9;user-select:none;transition:none}.modal-dialog.modal-resizing{user-select:none;transition:none}.modal-dialog.modal-solid{background:var(--modal-bg)}.modal-dialog.modal-transparent{background:var(--modal-bg-transparent);opacity:.4}.modal-dialog.modal-minimizing{pointer-events:none;animation:modal-genie-minimize var(--modal-animation-duration-minimize) var(--modal-animation-easing-minimize) forwards;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-restoring{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-restore) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-opening{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-open) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,50%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing{pointer-events:none;animation:modal-close var(--modal-animation-duration-close) var(--modal-animation-easing-close) forwards;will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing:not(.modal-positioned){animation-name:modal-close-centered}.modal-dialog.modal-positioned.modal-minimizing,.modal-dialog.modal-positioned.modal-closing{transform:unset;opacity:unset}.modal-dialog.modal-positioned.modal-opening,.modal-dialog.modal-positioned.modal-restoring{transform:unset}.modal-dialog.modal-visible-by-animation:not(.modal-restoring):not(.modal-opening){opacity:1}.modal-dialog.modal-attention{animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-positioned,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention:not(.modal-positioned){animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-centered,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention.modal-glow{--modal-attention-color:var(--modal-glow-color)}.modal-dialog.modal-glow{border-color:rgb(var(--modal-glow-color));--glow-intensity-min:.4;--glow-intensity-max:.7}.modal-dialog.modal-glow:before{content:"";border-radius:inherit;box-shadow:0 0 20px rgb(var(--modal-glow-color)), 0 0 40px rgb(var(--modal-glow-color)), 0 0 60px rgb(var(--modal-glow-color));opacity:var(--glow-intensity-min);pointer-events:none;will-change:opacity;animation:2s ease-in-out infinite modal-glow-pulse;position:absolute;inset:0}.modal-dialog.modal-glow.modal-glow-minimum{border-color:rgba(var(--modal-glow-color), .4);--glow-intensity-min:0;--glow-intensity-max:0}.modal-dialog.modal-glow.modal-glow-minimum:before{display:none}.modal-dialog.modal-glow.modal-glow-low{--glow-intensity-min:.15;--glow-intensity-max:.3}.modal-dialog.modal-glow.modal-glow-high{--glow-intensity-min:.6;--glow-intensity-max:.9}.modal-dialog.modal-glow.modal-minimizing:before,.modal-dialog.modal-glow.modal-restoring:before,.modal-dialog.modal-glow.modal-opening:before,.modal-dialog.modal-glow.modal-closing:before,.modal-dialog.modal-glow.modal-glow-stabilizing:not(.modal-restoring):not(.modal-opening):before{opacity:var(--glow-intensity-min,.4);animation:none}.modal-header{padding:var(--modal-header-padding);border-bottom:1px solid var(--modal-header-border);outline:none;flex-shrink:0;align-items:center;gap:.75rem;display:flex;position:relative;overflow:visible}.modal-header.modal-header-draggable{cursor:grab;user-select:none;touch-action:none}.modal-header.modal-header-draggable:active{cursor:grabbing}.modal-header-traffic-lights{gap:var(--modal-btn-gap);z-index:100;flex-shrink:0;display:flex;position:relative}.modal-header-traffic-lights .modal-header-light{width:var(--modal-btn-size);height:var(--modal-btn-size);cursor:pointer;border:none;border-radius:50%;outline:none;flex-shrink:0;padding:0;transition:filter .15s,transform .1s;position:relative}.modal-header-traffic-lights .modal-header-light:before{content:"";opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.modal-header-traffic-lights .modal-header-light:hover{transform:scale(1.1)}.modal-header-traffic-lights .modal-header-light:hover:before{opacity:1}.modal-header-traffic-lights .modal-header-light:focus-visible{box-shadow:0 0 0 2px #ffffff80,0 0 0 4px #0003}.modal-header-light-close{background:var(--modal-btn-close);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-close:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-close:before{content:"×";color:#4a0002cc;font-size:11px;font-weight:600;line-height:13px}.modal-header-light-minimize{background:var(--modal-btn-minimize);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-minimize:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-minimize:before{content:"−";color:#995700cc;font-size:13px;font-weight:600;line-height:12px}.modal-header-light-style{background:var(--modal-btn-style);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-style:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-style:before{content:"◇";color:#006500cc;font-size:7px;line-height:13px}.modal-header-light.modal-header-light-disabled{opacity:.5;cursor:not-allowed;background:#ccc}.modal-header-light.modal-header-light-disabled:hover{filter:none}.modal-header-traffic-lights .modal-header-light.modal-header-light-disabled:before{opacity:.4}.modal-header-mac-center{pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;left:0;right:0}.modal-header-mac-center .modal-header-title-group{flex:unset;pointer-events:auto}.modal-header-mac-center .modal-header-icon{pointer-events:auto}.modal-header-mac-spacer{display:none}.modal-header-title-group{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.modal-header-title{font-size:var(--modal-title-size);color:var(--modal-title-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.modal-header-icon{font-size:var(--modal-icon-size);width:var(--modal-icon-size);height:var(--modal-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.modal-header-icon-badge{font-size:var(--modal-icon-badge-size);background:var(--modal-bg);border-radius:50%;padding:2px;line-height:1;position:absolute;bottom:-6px;right:-8px;box-shadow:0 1px 3px #0003}.modal-header-btn-windows{color:var(--modal-btn-windows-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.25rem;line-height:1;transition:background-color .15s,color .15s}.modal-header-btn-windows:hover{color:var(--modal-btn-windows-hover-color);background:var(--modal-btn-windows-hover-bg)}.modal-header-btn-windows-style{font-size:1.15rem}.modal-header-btn-windows-close{padding:0;font-size:1.5rem}.modal-header-btn-windows.modal-header-btn-windows-disabled{opacity:.35;cursor:not-allowed}.modal-header-btn-windows.modal-header-btn-windows-disabled:hover{color:var(--modal-btn-windows-color);background:0 0}.modal-body{min-height:0;padding:var(--modal-content-padding);color:var(--modal-content-color);flex-direction:column;flex:auto;display:flex;position:relative;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#0000000d}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.modal-footer{padding:var(--modal-footer-padding);border-top:1px solid var(--modal-footer-border);flex-shrink:0}.modal-footer-empty:empty{display:none}.modal-resize-handle{z-index:10;touch-action:none;position:absolute}.modal-resize-n,.modal-resize-s{height:var(--modal-resize-handle-size);cursor:ns-resize;left:8px;right:8px}.modal-resize-n{top:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-s{bottom:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-e,.modal-resize-w{width:var(--modal-resize-handle-size);cursor:ew-resize;top:8px;bottom:8px}.modal-resize-e{right:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-w{left:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:var(--modal-resize-corner-size);height:var(--modal-resize-corner-size)}.modal-resize-ne{top:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-resize-nw{top:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-se{bottom:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-sw{bottom:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-child-overlay{background:var(--modal-child-overlay-bg);backdrop-filter:blur(var(--modal-child-overlay-blur));border-radius:inherit;z-index:100;cursor:not-allowed;pointer-events:all;animation:.2s ease-out forwards modal-overlay-fade-in;position:absolute;inset:0}.modal-child-overlay.modal-overlay-closing{pointer-events:none;animation:.2s ease-in forwards modal-overlay-fade-out}.modal-dialog.modal-has-child .modal-header-actions{pointer-events:none;opacity:.5}.modal-dialog.modal-has-child .modal-header-draggable{cursor:not-allowed}.modal-dialog.modal-is-child.modal-positioned:not(.modal-closing):not(.modal-minimizing):not(.modal-restoring):not(.modal-visible-by-animation):not(.modal-was-restored):not(.modal-awaiting-restore):not(.modal-awaiting-child-open){animation:.25s ease-out both modal-child-appear}.modal-dialog.modal-is-child.modal-closing{animation:.2s ease-in forwards modal-child-disappear}.modal-dock-container{position:fixed}.modal-dock-container.modal-dock-empty{pointer-events:none;opacity:0}.modal-dock-container.modal-dock-free{transform:none}.modal-dock-container.modal-dock-bottom{bottom:1.25rem;left:50%;transform:translate(-50%)}.modal-dock-container.modal-dock-bottom .modal-dock{flex-direction:row;align-items:flex-end}.modal-dock-container.modal-dock-left{top:50%;left:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-left .modal-dock{flex-direction:column;align-items:stretch}.modal-dock-container.modal-dock-right{top:50%;right:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-right .modal-dock{flex-direction:column;align-items:stretch}.modal-dock{gap:var(--modal-dock-gap);padding:var(--modal-dock-padding);background:var(--modal-dock-bg);border:1px solid var(--modal-dock-border);border-radius:var(--modal-dock-border-radius);box-shadow:var(--modal-dock-shadow);display:flex}.modal-dock.modal-dock-free-horizontal{flex-direction:row;align-items:center}.modal-dock.modal-dock-free-vertical{flex-direction:column;align-items:stretch}.modal-dock-handle{background:var(--modal-dock-handle-bg);border:1px solid var(--modal-dock-handle-border);cursor:grab;opacity:.85;appearance:none;touch-action:none;border-radius:12px;flex:none;width:22px;height:44px;padding:0;position:relative}.modal-dock-handle:hover{opacity:1;border-color:var(--modal-dock-item-hover-border)}.modal-dock-handle.modal-dock-handle-dragging{cursor:grabbing;opacity:1}.modal-dock-handle:before{content:"";background-image:radial-gradient(var(--modal-dock-handle-dots) 1px, transparent 1px);opacity:.6;background-position:50%;background-size:7px 7px;position:absolute;inset:8px 6px}.modal-dock.modal-dock-free-vertical .modal-dock-handle{align-self:stretch;width:auto;min-width:44px;height:22px}.modal-dock.modal-dock-free-vertical .modal-dock-handle:before{inset:6px 8px}.modal-dock-item{width:var(--modal-dock-item-size);height:var(--modal-dock-item-size);background:var(--modal-dock-item-bg);border:1px solid var(--modal-dock-item-border);border-radius:var(--modal-dock-item-border-radius);box-shadow:var(--modal-dock-item-shadow,none);cursor:pointer;touch-action:none;justify-content:center;align-items:center;padding:.375rem;transition:transform .15s ease-out,opacity .15s ease-out,background .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:visible}.modal-dock-item:hover{background:var(--modal-dock-item-hover-bg);border-color:var(--modal-dock-item-hover-border);box-shadow:var(--modal-dock-item-hover-shadow,0 6px 16px #00000026, 0 2px 6px #0000001a)}.modal-dock-item:hover .modal-dock-item-icon{transform:scale(1.05)}.modal-dock-item:hover .modal-dock-item-glow{opacity:.4}.modal-dock-item:active{transition-duration:.1s}.modal-dock-container.modal-dock-bottom .modal-dock-item:hover{transform:translateY(-4px)scale(1.05)}.modal-dock-container.modal-dock-bottom .modal-dock-item:active{transform:translateY(-2px)scale(1.02)}.modal-dock-container.modal-dock-left .modal-dock-item:hover{transform:translate(4px)scale(1.05)}.modal-dock-container.modal-dock-left .modal-dock-item:active{transform:translate(2px)scale(1.02)}.modal-dock-container.modal-dock-right .modal-dock-item:hover{transform:translate(-4px)scale(1.05)}.modal-dock-container.modal-dock-right .modal-dock-item:active{transform:translate(-2px)scale(1.02)}.modal-dock-item-icon{filter:drop-shadow(0 2px 4px #00000026);justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:transform .2s;display:inline-flex;position:relative}.modal-dock-item-icon-placeholder{color:var(--modal-dock-label-color);font-size:1.25rem;font-weight:600}.modal-dock-item-glow{opacity:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(circle,currentColor,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.modal-dock-item-label{font-size:var(--modal-dock-label-size);color:var(--modal-dock-label-color);white-space:nowrap;text-overflow:ellipsis;max-width:80px;font-weight:500;overflow:hidden}.modal-dock-item.modal-dock-item-label-beside{flex-direction:row;gap:.5rem;width:auto;padding:.375rem .75rem .375rem .5rem}.modal-dock-item.modal-dock-item-label-below{flex-direction:column;gap:.25rem;width:auto;min-width:52px;height:auto;padding:.375rem .5rem}.modal-dock-item.modal-dock-item-label-below .modal-dock-item-label{max-width:60px;font-size:.55rem}.modal-dock-item.modal-dock-item-has-glow{--modal-dock-glow-color:20, 184, 166;border-color:rgba(var(--modal-dock-glow-color), .6);box-shadow:0 0 10px rgba(var(--modal-dock-glow-color), .5), 0 0 20px rgba(var(--modal-dock-glow-color), .3)}.modal-dock-item.modal-dock-item-has-glow .modal-dock-item-glow{background:radial-gradient(circle at center, rgb(var(--modal-dock-glow-color)), transparent 60%);animation:2.5s cubic-bezier(.4,0,.6,1) infinite modal-dock-glow-pulse}.modal-dock-item.modal-dock-item-has-glow:hover .modal-dock-item-glow{opacity:.8;animation:none}.modal-dock-child-indicator{color:#141822;background:#ffd54a;border:2px solid #00000040;border-radius:6px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;display:inline-flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #00000059}.modal-dock-item.modal-dock-item-has-child{border-color:var(--modal-dock-item-hover-border)}.modal-dock-item.modal-dock-item-has-child:hover .modal-dock-child-indicator{transform:scale(1.2)}.wizard-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.wizard-progress{padding:var(--space-4);padding-bottom:var(--space-2);flex-shrink:0}.wizard-progress-bar{height:3px;margin-bottom:var(--space-3);background:#ffffff1a;border-radius:2px;overflow:hidden}.wizard-progress-fill{background:linear-gradient(90deg, var(--color-primary,#00d9ff), var(--color-primary-light,#7dd3fc));border-radius:2px;height:100%;transition:width .3s}.wizard-steps{justify-content:space-between;gap:var(--space-2);display:flex}.wizard-step-dot{align-items:center;gap:var(--space-1);padding:var(--space-1);cursor:default;opacity:.4;background:0 0;border:none;flex-direction:column;transition:opacity .2s;display:flex}.wizard-step-dot:before{content:"";background:#ffffff4d;border:2px solid #0000;border-radius:50%;width:10px;height:10px;transition:all .2s}.wizard-step-dot.active{opacity:1}.wizard-step-dot.active:before{background:var(--color-primary,#00d9ff);border-color:var(--color-primary,#00d9ff);box-shadow:0 0 10px var(--color-primary,#00d9ff)}.wizard-step-dot.completed{opacity:.8}.wizard-step-dot.completed:before{background:var(--color-primary,#00d9ff)}.wizard-step-dot.clickable{cursor:pointer}.wizard-step-dot.clickable:hover{opacity:1}.wizard-step-title{color:var(--color-text-muted,#a1a1aa);white-space:nowrap;font-size:11px}.wizard-step-dot.active .wizard-step-title{color:var(--color-text,#fff)}.wizard-content{padding:var(--space-4);flex:1;overflow-y:auto}.wizard-navigation{justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-top:1px solid #ffffff1a;flex-shrink:0;display:flex}.wizard-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md,8px);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.wizard-btn:disabled{opacity:.4;cursor:not-allowed}.wizard-btn-back{color:var(--color-text-muted,#a1a1aa);background:0 0;border:1px solid #fff3}.wizard-btn-back:not(:disabled):hover{color:var(--color-text,#fff);border-color:#fff6}.wizard-btn-next{background:linear-gradient(135deg, var(--color-primary,#00d9ff), var(--color-primary-dark,#0891b2));color:#000;border:none;min-width:100px}.wizard-btn-next:not(:disabled):hover{filter:brightness(1.1);box-shadow:0 4px 15px #00d9ff4d}.wizard-step-wrapper{height:100%}.wizard-fade-slide-left{animation:.3s forwards fadeSlideFromRight}.wizard-fade-slide-right{animation:.3s forwards fadeSlideFromLeft}@keyframes fadeSlideFromRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeSlideFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.wizard-slide-through-enter-left{animation:.3s forwards slideFromLeft}.wizard-slide-through-enter-right{animation:.3s forwards slideFromRight}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.wizard-modal-slide-forward,.wizard-modal-slide-backward{will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.wizard-modal-slide-forward{animation:.7s ease-in-out forwards wizardModalSlideForward!important}.wizard-modal-slide-backward{animation:.7s ease-in-out forwards wizardModalSlideBackward!important}@keyframes wizardModalSlideForward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(110%)}50%{opacity:0;transform:translate(-110%)}to{opacity:1;transform:translate(0,0)}}@keyframes wizardModalSlideBackward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(-110%)}50%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0,0)}}[data-theme=light] .wizard-progress-bar{background:#0000001a}[data-theme=light] .wizard-step-dot:before{background:#0003}[data-theme=light] .wizard-step-title{color:#64748b}[data-theme=light] .wizard-step-dot.active .wizard-step-title{color:#0f172a}[data-theme=light] .wizard-navigation{border-top-color:#0000001a}[data-theme=light] .wizard-btn-back{color:#64748b;border-color:#0003}[data-theme=light] .wizard-btn-back:not(:disabled):hover{color:#0f172a;border-color:#0006}[data-theme=light] .wizard-btn-next{color:#fff}.modal-backdrop{pointer-events:none;-webkit-backdrop-filter:blur();background:0 0;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;inset:0}.modal-backdrop.backdrop-visible{background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur,4px))}.modal-backdrop.backdrop-blocking{pointer-events:all}:root{--modal-bg:#1e1e2e;--modal-bg-transparent:#1e1e2ee6;--modal-border:#ffffff1a;--modal-title-color:#f0f0f0;--modal-content-color:#d0d0d0;--modal-header-border:#ffffff14;--modal-footer-border:#ffffff14;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-dock-bg:linear-gradient(to bottom, #2a2a3e, #1e1e2e);--modal-dock-border:#ffffff1a;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-label-color:#e0e0e0;--modal-dock-item-bg:linear-gradient(145deg, #ffffff0d, transparent);--modal-dock-item-border:#ffffff14;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #ffffff1a, #ffffff0d);--modal-dock-item-hover-border:#fff3;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-handle-bg:linear-gradient(145deg, #ffffff0d, transparent);--modal-dock-handle-border:#ffffff14;--modal-dock-handle-dots:#ffffff4d;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1a;--modal-btn-windows-hover-color:#f0f0f0;--modal-attention-color:251, 146, 60;--modal-backdrop-bg:#0f172a33;--modal-backdrop-blur:4px;--modal-child-overlay-bg:#fff9;--modal-child-overlay-blur:2px}
package/dist/svelte.d.ts CHANGED
@@ -1,19 +1,227 @@
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';
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';
19
- //# sourceMappingURL=svelte.d.ts.map
1
+ import { AnimationDurations } from './core/config';
2
+ import { AnimationDurations as AnimationDurations_2 } from '../../core/config';
3
+ import { AppearanceConfig } from '../../core/config';
4
+ import { bringToFront } from './core/state';
5
+ import { closeAllModals } from './core/state';
6
+ import { closeModal } from './core/state';
7
+ import { DockConfig } from './core/config';
8
+ import { getConfig } from './core/config';
9
+ import { getConfigVersion } from './core/config';
10
+ import { getModalsStore } from './core/state';
11
+ import { getModalsToClose } from './core/state';
12
+ import { getStateVersion } from './core/state';
13
+ import { isModalAnimating } from './core/state';
14
+ import { isModalOpen } from './core/state';
15
+ import { isModalRegistered } from './core/state';
16
+ import { linkModals } from './core/state';
17
+ import { minimizeModal } from './core/state';
18
+ import { ModalConfigOverrides } from '../../core/types';
19
+ import { ModalFeatures } from '../../core/config';
20
+ import { ModalId } from '../../core/types';
21
+ import { ModalLibraryConfig } from './core/config';
22
+ import { ModalLibraryConfig as ModalLibraryConfig_2 } from '../../core/config';
23
+ import { ModalState } from '../../core/types';
24
+ import { openChildModal } from './core/state';
25
+ import { openModal } from './core/state';
26
+ import { ParentChildConfig } from './core/config';
27
+ import { ParentChildConfig as ParentChildConfig_2 } from '../../core/config';
28
+ import { PartialModalLibraryConfig } from '../../core/config';
29
+ import { PositioningConfig } from './core/config';
30
+ import { PositioningConfig as PositioningConfig_2 } from '../../core/config';
31
+ import { registerModal } from './core/state';
32
+ import { reorderDock } from './core/state';
33
+ import { resetConfig } from './core/config';
34
+ import { restoreAllMinimizedModals } from './core/state';
35
+ import { restoreModal } from './core/state';
36
+ import { screenCenter } from './core/utils/helpers';
37
+ import { setConfig } from './core/config';
38
+ import { setModalAnimating } from './core/state';
39
+ import { setRegistryFunctions } from './core/state';
40
+ import { setURLStateCallbacks } from './core/state';
41
+ import { shakeElement } from './core/state';
42
+ import { storeOpenSourcePosition } from './core/state';
43
+ import { SvelteComponent } from 'svelte';
44
+ import { toggleModalTransparency } from './core/state';
45
+ import { triggerAttention } from './core/state';
46
+ import { updateModalPosition } from './core/state';
47
+
48
+ export { AnimationDurations }
49
+
50
+ export { bringToFront }
51
+
52
+ export { closeAllModals }
53
+
54
+ export { closeModal }
55
+
56
+ export { DockConfig }
57
+
58
+ export declare function focusFirstElement(container: HTMLElement): boolean;
59
+
60
+ export { getConfig }
61
+
62
+ export { getConfigVersion }
63
+
64
+ export { getModalsStore }
65
+
66
+ export { getModalsToClose }
67
+
68
+ export declare function getReactiveConfigVersion(): number;
69
+
70
+ export declare function getReactiveStateVersion(): number;
71
+
72
+ export { getStateVersion }
73
+
74
+ export { isModalAnimating }
75
+
76
+ export { isModalOpen }
77
+
78
+ export { isModalRegistered }
79
+
80
+ export { linkModals }
81
+
82
+ export { minimizeModal }
83
+
84
+ export declare const MODAL_ID_CONTEXT: unique symbol;
85
+
86
+ export { ModalLibraryConfig }
87
+
88
+ export { openChildModal }
89
+
90
+ export { openModal }
91
+
92
+ export { ParentChildConfig }
93
+
94
+ declare type PortalTarget = string | HTMLElement | null;
95
+
96
+ export { PositioningConfig }
97
+
98
+ export { registerModal }
99
+
100
+ export declare const RENDER_ICON_CONTEXT: unique symbol;
101
+
102
+ export { reorderDock }
103
+
104
+ export { resetConfig }
105
+
106
+ export { restoreAllMinimizedModals }
107
+
108
+ export { restoreModal }
109
+
110
+ export { screenCenter }
111
+
112
+ export { setConfig }
113
+
114
+ export { setModalAnimating }
115
+
116
+ export { setRegistryFunctions }
117
+
118
+ export { setURLStateCallbacks }
119
+
120
+ export { shakeElement }
121
+
122
+ export { storeOpenSourcePosition }
123
+
124
+ export { SvelteComponent as Backdrop }
125
+ export { SvelteComponent as Dock }
126
+ export { SvelteComponent as Modal }
127
+ export { SvelteComponent as ModalHeader }
128
+ export { SvelteComponent as ModalProvider }
129
+ export { SvelteComponent as Portal }
130
+ export { SvelteComponent as ResizeHandles }
131
+ export { SvelteComponent as WizardModal }
132
+ export { SvelteComponent as WizardStep }
133
+
134
+ export { toggleModalTransparency }
135
+
136
+ export declare function trapFocus(event: KeyboardEvent, container: HTMLElement): void;
137
+
138
+ export { triggerAttention }
139
+
140
+ export { updateModalPosition }
141
+
142
+ export declare function useFocusTrap(): {
143
+ trapFocus: typeof trapFocus;
144
+ focusFirstElement: typeof focusFirstElement;
145
+ };
146
+
147
+ export declare function useModal(id: ModalId): UseModalReturn;
148
+
149
+ export declare function useModalConfig(options?: UseModalConfigOptions): UseModalConfigReturn;
150
+
151
+ export declare interface UseModalConfigOptions {
152
+
153
+ getModalConfig?: () => ModalConfigOverrides | undefined;
154
+
155
+ getProviderConfig?: () => PartialModalLibraryConfig | undefined;
156
+ }
157
+
158
+ export declare interface UseModalConfigReturn {
159
+
160
+ getEffectiveConfig: () => ModalLibraryConfig_2;
161
+
162
+ isFeatureEnabled: (feature: keyof ModalFeatures) => boolean;
163
+
164
+ getAppearance: <K extends keyof AppearanceConfig>(key: K) => AppearanceConfig[K];
165
+
166
+ getAnimation: <K extends keyof AnimationDurations_2>(key: K) => AnimationDurations_2[K];
167
+
168
+ getPositioning: <K extends keyof PositioningConfig_2>(key: K) => PositioningConfig_2[K];
169
+
170
+ getParentChild: <K extends keyof ParentChildConfig_2>(key: K) => ParentChildConfig_2[K];
171
+
172
+ getProviderConfig: () => PartialModalLibraryConfig | undefined;
173
+ }
174
+
175
+ export declare interface UseModalReturn {
176
+
177
+ shake: () => void;
178
+
179
+ bringToFront: () => void;
180
+
181
+ isOpen: () => boolean;
182
+
183
+ isMinimized: () => boolean;
184
+
185
+ isRegistered: () => boolean;
186
+
187
+ open: (sourceElement: HTMLElement) => void;
188
+
189
+ close: () => void;
190
+
191
+ minimize: () => void;
192
+
193
+ restore: () => void;
194
+
195
+ openChild: (childId: ModalId, sourceElement?: HTMLElement) => void;
196
+ }
197
+
198
+ export declare function useModals(): UseModalsReturn;
199
+
200
+ export declare interface UseModalsReturn {
201
+
202
+ getModals: () => Map<ModalId, ModalState>;
203
+
204
+ getMinimizedCount: () => number;
205
+
206
+ getOpenCount: () => number;
207
+ }
208
+
209
+ export declare function useModalZIndex(modalId?: ModalId): UseModalZIndexReturn;
210
+
211
+ export declare interface UseModalZIndexReturn {
212
+
213
+ zIndex: number;
214
+
215
+ portalTarget: string | HTMLElement;
216
+ }
217
+
218
+ export declare function usePortal(): {
219
+ mount: (element: HTMLElement, target?: PortalTarget) => () => void;
220
+ };
221
+
222
+ export declare function useWindowEvent(): {
223
+ addListener: <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => unknown, options?: AddEventListenerOptions) => () => void;
224
+ addListenerEffect: <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => unknown, options?: AddEventListenerOptions) => void;
225
+ };
226
+
227
+ export { }
package/dist/svelte.js CHANGED
@@ -1 +1 @@
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};
1
+ var e=e=>{throw TypeError(e)},t=(t,i,n)=>(((t,i)=>{i.has(t)||e("Cannot read from private field")})(t,i),n?n.call(t):i.get(t)),i=(t,i,n)=>i.has(t)?e("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(t):i.set(t,n);import"svelte/internal/disclose-version";import*as n from"svelte/internal/client";import{getContext as r,onMount as o,setContext as a,onDestroy as s,untrack as l}from"svelte";import{subscribe as d,getStateVersion as c,openChildModal as p,restoreModal as g,minimizeModal as u,closeModal as f,openModal as m,isModalRegistered as h,getModalState as v,isModalOpen as _,bringToFront as b,triggerAttention as S,getModalsStore as w,registerModal as C,createModalRegistration as y,unregisterModal as M,hasPendingOpen as k,hasPendingClose as x,hasPendingMinimize as E,isModalAnimating as z,shakeElement as T}from"./core.js";import{bringToFront as I,closeAllModals as P,closeModal as A,getModalsStore as O,getModalsToClose as L,getStateVersion as R,isModalAnimating as D,isModalOpen as $,isModalRegistered as W,linkModals as F,minimizeModal as j,openChildModal as H,openModal as B,registerModal as N,reorderDock as V,restoreAllMinimizedModals as q,restoreModal as U,setModalAnimating as Z,setRegistryFunctions as G,setURLStateCallbacks as X,shakeElement as K,storeOpenSourcePosition as Y,toggleModalTransparency as J,triggerAttention as Q,updateModalPosition as ee}from"./core.js";import{subscribeToConfig as te,getConfigVersion as ie,getConfig as ne,setConfig as re}from"./core.js";import{getConfig as oe,getConfigVersion as ae,resetConfig as se,setConfig as le}from"./core.js";import{ModalController as de}from"./core.js";import{toDataId as ce}from"./core.js";import{FOCUSABLE_SELECTORS as pe,CSS_CLASSES as ge,RESIZE_DIRECTIONS as ue,RESIZE_DIRECTION_LABELS as fe,DATA_ATTRIBUTES as me}from"./core.js";import{createConfigResolver as he}from"./core.js";import{getModalDialogElement as ve}from"./core.js";import{screenCenter as _e}from"./core.js";import{scale as be,fly as Se,fade as we}from"svelte/transition";import{cubicOut as Ce,backOut as ye}from"svelte/easing";import{getLayerZIndex as Me,initializeStacking as ke,resetStacking as xe}from"./core.js";import{getMinimizedModals as Ee,constrainDockPosition as ze,calculateDockDragPosition as Te}from"./core.js";import{getBackdropConfig as Ie,isBackdropEnabled as Pe,hasOpenModals as Ae}from"./core.js";import{initializeResizeListener as Oe,cleanupResizeListener as Le}from"./core.js";let Re=n.state(0),De=n.state(0);function $e(){return n.get(Re)}function We(){return n.get(De)}d(()=>{n.set(Re,c(),!0)}),te(()=>{n.set(De,ie(),!0)});const Fe=Symbol("modal-render-icon"),je=Symbol("modal-id"),He=Symbol("modal-provider-config");function Be(e,t){if(!h(e))throw new Error(`Cannot call ${t}() on unregistered modal "${String(e)}". Ensure the Modal component is rendered.`)}function Ne(e){return{shake:()=>{Be(e,"shake"),S(e)},bringToFront:()=>{Be(e,"bringToFront"),b(e)},isOpen:()=>_(e),isMinimized:()=>{$e();const t=v(e);return(null==t?void 0:t.isMinimized)??!1},isRegistered:()=>h(e),open:t=>{Be(e,"open"),m(e,t)},close:()=>{Be(e,"close"),f(e)},minimize:()=>{Be(e,"minimize"),u(e)},restore:()=>{Be(e,"restore"),g(e)},openChild:(t,i)=>{Be(e,"openChild"),p(t,e,i??document.body)}}}function Ve(){return{getModals:()=>($e(),w()),getMinimizedCount:()=>($e(),Array.from(w().values()).filter(e=>e.isMinimized).length),getOpenCount:()=>($e(),Array.from(w().values()).filter(e=>!e.isMinimized&&e.isOpen).length)}}function qe(e){return Array.from(e.querySelectorAll(pe)).filter(e=>null!==e.offsetParent||"A"===e.tagName)}function Ue(e,t){if("Tab"!==e.key)return;const i=qe(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 Ze(e){const t=qe(e);return t.length>0&&(t[0].focus(),!0)}function Ge(){return{trapFocus:Ue,focusFirstElement:Ze}}const Xe="modal-portal";function Ke(){return{mount:function(e,t=null){const i=function(e){if(typeof window>"u")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(Xe);return t||(t=document.createElement("div"),t.id=Xe,document.body.appendChild(t)),t}(t);return i?(i.appendChild(e),()=>{e.parentNode===i&&i.removeChild(e),i.id!==Xe&&0===i.children.length&&i.parentNode&&i.parentNode.removeChild(i)}):()=>{}}}}function Ye(e){const t=r(je),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=v(i);return((null==e?void 0:e.zIndex)??ne().zIndex.base)+1},get portalTarget(){return ne().portalTarget}}}function Je(){function e(e,t,i){return typeof window>"u"?()=>{}:(window.addEventListener(e,t,i),()=>{window.removeEventListener(e,t,i)})}return{addListener:e,addListenerEffect:function(t,i,r){n.user_effect(()=>typeof window>"u"?void 0:e(t,i,r))}}}function Qe(e={}){const{getModalConfig:t,getProviderConfig:i}=e;let n;if(void 0===i)try{n=r(He)}catch{n=void 0}function o(){return void 0!==i?i():null==n?void 0:n()}const a=he({getModalConfig:t??(()=>{}),getProviderConfig:o});function s(e){return(...t)=>(We(),e(...t))}return{getEffectiveConfig:s(a.getEffectiveConfig),isFeatureEnabled:s(a.isFeatureEnabled),getAppearance:s(a.getAppearance),getAnimation:s(a.getAnimation),getPositioning:s(a.getPositioning),getParentChild:s(a.getParentChild),getProviderConfig:o}}var et=n.from_html('<div style="display: contents;"><!></div>');function tt(e,t){n.push(t,!0);let i=n.prop(t,"target",3,"body"),r=null,a=null;const{mount:s}=Ke();o(()=>(r&&(a=s(r,i())),()=>{null==a||a()}));var l=et(),d=n.child(l);n.snippet(d,()=>t.children),n.reset(l),n.bind_this(l,e=>r=e,()=>r),n.append(e,l),n.pop()}var it=n.from_html('<button type="button" aria-label="Minimize"></button>'),nt=n.from_html('<button type="button" aria-label="Toggle style"></button>'),rt=n.from_html("<div><!></div>"),ot=n.from_html("<div></div>"),at=n.from_html("<div><!></div>"),st=n.from_html("<h2> </h2>"),lt=n.from_html("<h2> </h2>"),dt=n.from_html('<div><button type="button" aria-label="Close"></button> <!> <!></div> <div><!> <div><!></div></div> <div></div>',1),ct=n.from_html("<div><!></div>"),pt=n.from_html("<div></div>"),gt=n.from_html("<div><!></div>"),ut=n.from_html("<h2> </h2>"),ft=n.from_html("<h2> </h2>"),mt=n.from_html('<button type="button" aria-label="Toggle style">&#9671;</button>'),ht=n.from_html('<button type="button" aria-label="Minimize">&#8211;</button>'),vt=n.from_html('<div><!> <!></div> <div><!> <!> <button type="button" aria-label="Close">&times;</button></div>',1),_t=n.from_html("<header><!></header>");function bt(e,t){n.push(t,!0);let i=n.prop(t,"isTransparent",3,!1),o=n.prop(t,"headerLayout",3,"macos"),a=n.prop(t,"minimizable",3,!0),s=n.prop(t,"minimizeDisabled",3,!1),l=n.prop(t,"transparencyEnabled",3,!0);function d(e){return t.iconElement&&e.appendChild(t.iconElement),{destroy(){t.iconElement&&e.contains(t.iconElement)&&e.removeChild(t.iconElement)}}}const c=r(Fe),p=n.derived(()=>null==c?void 0:c()),g=n.derived(()=>"macos"===o());var u=_t();let f;u.__pointerdown=function(e){var i;e.target.closest("button")||null==(i=t.onStartDrag)||i.call(t,e)};var m=n.child(u),h=e=>{var i=dt(),r=n.first_child(i),o=n.child(r);o.__click=function(...e){var i;null==(i=t.onClose)||i.apply(this,e)};var c=n.sibling(o,2),g=e=>{var i=it();let r;i.__click=function(...e){var i;null==(i=s()?void 0:t.onMinimize)||i.apply(this,e)},n.template_effect(()=>{r=n.set_class(i,1,`${ge.headerLight??""} ${ge.headerLightMinimize??""}`,null,r,{"modal-header-light-disabled":s()}),i.disabled=s(),n.set_attribute(i,"title",s()?"Enable dock to minimize":void 0)}),n.append(e,i)};n.if(c,e=>{a()&&e(g)});var u=n.sibling(c,2),f=e=>{var i=nt();i.__click=function(...e){var i;null==(i=t.onToggleStyle)||i.apply(this,e)},n.template_effect(()=>n.set_class(i,1,`${ge.headerLight??""} ${ge.headerLightStyle??""}`)),n.append(e,i)};n.if(u,e=>{l()&&e(f)}),n.reset(r);var m=n.sibling(r,2),h=n.child(m),v=e=>{var i=rt(),r=n.child(i);n.snippet(r,()=>t.customIcon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(ge.headerIcon))),n.append(e,i)},_=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var t=ot();n.action(t,e=>null==d?void 0:d(e)),n.template_effect(()=>n.set_class(t,1,n.clsx(ge.headerIcon))),n.append(e,t)},a=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=at(),r=n.child(i);n.snippet(r,()=>n.get(p),()=>t.icon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(ge.headerIcon))),n.append(e,i)};n.if(r,e=>{t.icon&&n.get(p)&&e(o)},!0),n.append(e,i)};n.if(r,e=>{t.iconElement?e(o):e(a,!1)},!0),n.append(e,i)};n.if(h,e=>{t.customIcon?e(v):e(_,!1)});var b=n.sibling(h,2),S=n.child(b),w=e=>{var i=st(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",t.titleId),n.set_class(i,1,n.clsx(ge.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)},C=e=>{var i=lt(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(ge.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)};n.if(S,e=>{t.titleId?e(w):e(C,!1)}),n.reset(b),n.reset(m);var y=n.sibling(m,2);n.template_effect(()=>{n.set_class(r,1,n.clsx(ge.headerTrafficLights)),n.set_class(o,1,`${ge.headerLight??""} ${ge.headerLightClose??""}`),n.set_class(m,1,n.clsx(ge.headerMacCenter)),n.set_class(b,1,n.clsx(ge.headerTitleGroup)),n.set_class(y,1,n.clsx(ge.headerMacSpacer))}),n.append(e,i)},v=e=>{var i=vt(),r=n.first_child(i),o=n.child(r),c=e=>{var i=ct(),r=n.child(i);n.snippet(r,()=>t.customIcon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(ge.headerIcon))),n.append(e,i)},g=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var t=pt();n.action(t,e=>null==d?void 0:d(e)),n.template_effect(()=>n.set_class(t,1,n.clsx(ge.headerIcon))),n.append(e,t)},a=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=gt(),r=n.child(i);n.snippet(r,()=>n.get(p),()=>t.icon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(ge.headerIcon))),n.append(e,i)};n.if(r,e=>{t.icon&&n.get(p)&&e(o)},!0),n.append(e,i)};n.if(r,e=>{t.iconElement?e(o):e(a,!1)},!0),n.append(e,i)};n.if(o,e=>{t.customIcon?e(c):e(g,!1)});var u=n.sibling(o,2),f=e=>{var i=ut(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",t.titleId),n.set_class(i,1,n.clsx(ge.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)},m=e=>{var i=ft(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(ge.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)};n.if(u,e=>{t.titleId?e(f):e(m,!1)}),n.reset(r);var h=n.sibling(r,2),v=n.child(h),_=e=>{var i=mt();i.__click=function(...e){var i;null==(i=t.onToggleStyle)||i.apply(this,e)},n.template_effect(()=>n.set_class(i,1,`${ge.headerBtnWindows??""} ${ge.headerBtnWindowsStyle??""}`)),n.append(e,i)};n.if(v,e=>{l()&&e(_)});var b=n.sibling(v,2),S=e=>{var i=ht();let r;i.__click=function(...e){var i;null==(i=s()?void 0:t.onMinimize)||i.apply(this,e)},n.template_effect(()=>{r=n.set_class(i,1,n.clsx(ge.headerBtnWindows),null,r,{"modal-header-btn-windows-disabled":s()}),i.disabled=s(),n.set_attribute(i,"title",s()?"Enable dock to minimize":void 0)}),n.append(e,i)};n.if(b,e=>{a()&&e(S)});var w=n.sibling(b,2);w.__click=function(...e){var i;null==(i=t.onClose)||i.apply(this,e)},n.reset(h),n.template_effect(()=>{n.set_class(r,1,n.clsx(ge.headerTitleGroup)),n.set_class(h,1,n.clsx(ge.headerActions)),n.set_class(w,1,`${ge.headerBtnWindows??""} ${ge.headerBtnWindowsClose??""}`)}),n.append(e,i)};n.if(m,e=>{n.get(g)?e(h):e(v,!1)}),n.reset(u),n.template_effect(()=>f=n.set_class(u,1,n.clsx(ge.header),null,f,{"modal-header-draggable":!!t.onStartDrag,transparent:i()})),n.append(e,u),n.pop()}n.delegate(["pointerdown","click"]);var St=n.from_html('<div role="separator" tabindex="0"></div>'),wt=n.from_html('<div role="group" aria-label="Resize handles"></div>');function Ct(e,t){n.push(t,!0);var i=n.comment(),r=n.first_child(i),o=e=>{var i=wt();n.each(i,21,()=>ue,n.index,(e,i)=>{var r=St();r.__pointerdown=e=>function(e,i){var n;null==(n=t.onStartResize)||n.call(t,e,i)}(e,n.get(i)),n.template_effect(()=>{n.set_class(r,1,`${ge.resizeHandle??""} ${ge.resizePrefix??""}${n.get(i)??""}`),n.set_attribute(r,"aria-label",fe[n.get(i)]),n.set_attribute(r,"aria-orientation","n"===n.get(i)||"s"===n.get(i)?"horizontal":"vertical")}),n.append(e,r)}),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(ge.resizeHandles))),n.append(e,i)};n.if(r,e=>{t.onStartResize&&e(o)}),n.append(e,i),n.pop()}function yt(e,t){return t&&e.appendChild(t),{update(t){e.innerHTML="",t&&e.appendChild(t)},destroy(){e.innerHTML=""}}}n.delegate(["pointerdown"]);var Mt,kt,xt,Et,zt,Tt,It=n.from_html('<span class="sr-only"> </span>'),Pt=n.from_html("<div><!></div>"),At=n.from_html("<div></div>"),Ot=n.from_html("<div><!> <!> <div><!></div> <!> <!> <!></div>");function Lt(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"600px"),r=n.prop(t,"autoOpen",3,!1),s=n.prop(t,"closeOnEscape",3,!0),l=n.prop(t,"skipRegistration",3,!1);a(je,()=>t.id);const d=Qe({getModalConfig:()=>t.config,getProviderConfig:()=>t.providerConfig}),c=n.derived(()=>d.getEffectiveConfig().portalTarget);let p=n.state(null),g=n.state(null),u=n.state(null);o(()=>{n.set(p,new de({id:t.id,title:t.title,icon:t.icon,config:t.config,providerConfig:t.providerConfig,maxWidth:i(),preferredHeight:t.preferredHeight,glow:t.glow,closeOnEscape:s(),autoOpen:r(),openSourcePosition:t.openSourcePosition,onClose:t.onClose,skipRegistration:l(),configHelper:d}),!0);const e=n.get(p).subscribe(e=>{n.set(g,e,!0)});return n.set(g,n.get(p).getState(),!0),()=>{var t;e(),null==(t=n.get(p))||t.destroy(),n.set(p,null)}}),n.user_effect(()=>{n.get(u)&&n.get(p)&&n.get(p).mount(n.get(u))}),n.user_effect(()=>{n.get(p)&&void 0!==t.openSourcePosition&&n.get(p).setOpenSourcePosition(t.openSourcePosition)}),n.user_effect(()=>{n.get(p)&&n.get(p).updateGlow(t.glow)});const f=n.derived(()=>ce(t.id)),m=n.derived(()=>`modal-title-${n.get(f)}`),h=n.derived(()=>t.description?`modal-desc-${n.get(f)}`:void 0),v=n.derived(()=>{var e;return(null==(e=n.get(g))?void 0:e.draggable)??!1}),_=n.derived(()=>{var e;return(null==(e=n.get(g))?void 0:e.resizable)??!1}),S=n.derived(()=>{var e;return(null==(e=n.get(g))?void 0:e.minimizable)??!1}),w=n.derived(()=>(We(),!d.isFeatureEnabled("dock"))),C=n.derived(()=>(We(),d.isFeatureEnabled("transparency"))),y=n.derived(()=>(We(),d.getAppearance("headerLayout"))),M=n.derived(()=>{var e;return(null==(e=n.get(g))?void 0:e.isVisible)??!1}),k=n.derived(()=>{var e;return(null==(e=n.get(g))?void 0:e.showOverlay)??!1}),x=n.derived(()=>{var e;return(null==(e=n.get(g))?void 0:e.overlayClosing)??!1}),E=n.derived(()=>{var e;return(null==(e=n.get(g))?void 0:e.isTransparent)??!1}),z=n.derived(()=>{const e=n.get(g);return e?Object.entries(e.style).map(([e,t])=>`${e}: ${t};`).join(" "):""});function T(e){var t;null==(t=n.get(p))||t.startDrag(e)}function I(e){var t;null==(t=n.get(p))||t.handlePointerMove(e)}function P(e){var t;null==(t=n.get(p))||t.handlePointerUp(e)}function A(e){var t;null==(t=n.get(p))||t.handleKeyDown(e)}function O(){var e;null==(e=n.get(p))||e.minimize()}function L(){var e;null==(e=n.get(p))||e.close()}function R(){var e;null==(e=n.get(p))||e.toggleTransparency()}function D(e,t){var i;null==(i=n.get(p))||i.startResize(e,t)}var $=n.comment(),W=n.first_child($),F=e=>{tt(e,{get target(){return n.get(c)},children:(e,i)=>{var r=Ot(),o=()=>b(t.id);n.attribute_effect(r,e=>({class:e,[me.modalId]:n.get(f),"data-state":n.get(g).dataState,"data-animation-phase":n.get(g).dataAnimationPhase,style:n.get(z),role:"dialog","aria-modal":"true","aria-labelledby":n.get(m),"aria-describedby":n.get(h),tabindex:"-1",onkeydown:A,onpointermove:I,onpointerup:P,onpointerdowncapture:o}),[()=>n.get(g).cssClasses.join(" ")]);var a=n.child(r),s=e=>{var i=It(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",n.get(h)),n.set_text(r,t.description)}),n.append(e,i)};n.if(a,e=>{t.description&&e(s)});var l=n.sibling(a,2);{let e=n.derived(()=>n.get(v)?T:void 0);bt(l,{get title(){return t.title},get customIcon(){return t.customIcon},get icon(){return t.icon},get iconElement(){return t.iconElement},get isTransparent(){return n.get(E)},get titleId(){return n.get(m)},get headerLayout(){return n.get(y)},get onStartDrag(){return n.get(e)},onToggleStyle:R,onMinimize:O,onClose:L,get minimizable(){return n.get(S)},get minimizeDisabled(){return n.get(w)},get transparencyEnabled(){return n.get(C)}})}var d=n.sibling(l,2),c=n.child(d);n.snippet(c,()=>t.children??n.noop),n.reset(d),n.action(d,(e,t)=>null==yt?void 0:yt(e,t),()=>t.bodyElement);var p=n.sibling(d,2),M=e=>{var i=Pt(),r=n.child(i),o=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.footer),n.append(e,i)};n.if(r,e=>{t.footer&&e(o)}),n.reset(i),n.action(i,(e,t)=>null==yt?void 0:yt(e,t),()=>t.footerElement),n.template_effect(()=>n.set_class(i,1,n.clsx(ge.footer))),n.append(e,i)};n.if(p,e=>{(t.footer||t.footerElement)&&e(M)});var $=n.sibling(p,2);{let e=n.derived(()=>n.get(_)&&!n.get(g).hasChild?D:void 0);Ct($,{get onStartResize(){return n.get(e)}})}var W=n.sibling($,2),F=e=>{var t=At();let i;n.template_effect(()=>i=n.set_class(t,1,n.clsx(ge.childOverlay),null,i,{"modal-overlay-closing":n.get(x)})),n.append(e,t)};n.if(W,e=>{n.get(k)&&e(F)}),n.reset(r),n.bind_this(r,e=>n.set(u,e),()=>n.get(u)),n.template_effect(()=>n.set_class(d,1,n.clsx(ge.body))),n.append(e,r)},$$slots:{default:!0}})};n.if(W,e=>{n.get(M)&&n.get(g)&&e(F)}),n.append(e,$),n.pop()}function Rt(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"600px"),r=n.prop(t,"autoOpen",3,!1),a=n.prop(t,"closeOnEscape",3,!0),l=n.state(!1);o(()=>{C(y({id:t.id,title:t.title,icon:t.icon,autoOpen:r(),glow:t.glow})),n.set(l,!0)}),s(()=>{M(t.id)});const d=n.derived(()=>{if(!n.get(l))return!1;$e();const e=v(t.id);return!!e&&(e.isOpen||e.isMinimized||k(t.id)||x(t.id)||E(t.id))});var c=n.comment(),p=n.first_child(c),g=e=>{Lt(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 r()},get openSourcePosition(){return t.openSourcePosition},get glow(){return t.glow},get config(){return t.config},get closeOnEscape(){return a()},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})};n.if(p,e=>{n.get(d)&&e(g)}),n.append(e,c),n.pop()}class Dt{constructor(){i(this,Mt,n.state(0)),i(this,kt,n.state(-1)),i(this,xt,n.state("forward")),i(this,Et,n.state(!1)),i(this,zt,n.state(n.proxy([]))),i(this,Tt,n.state("fade-slide"))}get currentStep(){return n.get(t(this,Mt))}set currentStep(e){n.set(t(this,Mt),e,!0)}get previousStep(){return n.get(t(this,kt))}set previousStep(e){n.set(t(this,kt),e,!0)}get direction(){return n.get(t(this,xt))}set direction(e){n.set(t(this,xt),e,!0)}get isAnimating(){return n.get(t(this,Et))}set isAnimating(e){n.set(t(this,Et),e,!0)}get steps(){return n.get(t(this,zt))}set steps(e){n.set(t(this,zt),e,!0)}get transitionStyle(){return n.get(t(this,Tt))}set transitionStyle(e){n.set(t(this,Tt),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}}Mt=new WeakMap,kt=new WeakMap,xt=new WeakMap,Et=new WeakMap,zt=new WeakMap,Tt=new WeakMap;var $t=n.from_html("<div><div><!></div></div>");function Wt(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"500px"),r=n.prop(t,"autoOpen",3,!1),l=n.prop(t,"closeOnEscape",3,!0),d=n.prop(t,"transitionStyle",3,"fade-slide");const c=new Dt;n.user_effect(()=>{c.setTransitionStyle(d())});const p=700;function g(e){if("slide-through"!==d())return;const i=ve(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)},p)}function u(){var e,i;const n=c.steps[c.currentStep];n&&!n.getCanProceed()||(c.currentStep>=c.steps.length-1?null==(e=t.onComplete)||e.call(t):(c.direction="forward",c.isAnimating=!0,c.previousStep=c.currentStep,g("forward"),"slide-through"===d()?setTimeout(()=>{var e;c.currentStep++,null==(e=t.onStepChange)||e.call(t,c.currentStep,"forward")},350):(c.currentStep++,null==(i=t.onStepChange)||i.call(t,c.currentStep,"forward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p)))}function f(){var e;c.currentStep>0&&(c.direction="backward",c.isAnimating=!0,c.previousStep=c.currentStep,g("backward"),"slide-through"===d()?setTimeout(()=>{var e;c.currentStep--,null==(e=t.onStepChange)||e.call(t,c.currentStep,"backward")},350):(c.currentStep--,null==(e=t.onStepChange)||e.call(t,c.currentStep,"backward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p))}function m(e){var i;e<c.currentStep&&e>=0&&(c.direction="backward",c.isAnimating=!0,c.previousStep=c.currentStep,g("backward"),"slide-through"===d()?setTimeout(()=>{var i;c.currentStep=e,null==(i=t.onStepChange)||i.call(t,c.currentStep,"backward")},350):(c.currentStep=e,null==(i=t.onStepChange)||i.call(t,c.currentStep,"backward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p))}a("wizard",c);const h=n.derived(()=>0===c.currentStep),_=n.derived(()=>c.steps.length>0&&c.currentStep===c.steps.length-1),b=n.derived(()=>c.steps.length>0?(c.currentStep+1)/c.steps.length*100:0),S=n.derived(()=>{var e;return(null==(e=c.steps[c.currentStep])?void 0:e.getCanProceed())??!0}),w=n.derived(()=>c.steps.length),y=n.derived(()=>({currentStep:c.currentStep,totalSteps:n.get(w),isFirstStep:n.get(h),isLastStep:n.get(_),canProceed:n.get(S),progress:n.get(b),steps:c.steps.map(e=>({title:e.title})),next:u,back:f,goToStep:m}));let z=n.state(!1),T=n.state(!1);o(()=>{C({id:t.id,title:t.title,icon:t.icon??"",isOpen:r(),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}),n.set(z,!0)}),s(()=>{M(t.id)});const I=n.derived(()=>{if(!n.get(z))return!1;$e();const e=v(t.id);return!!e&&(e.isOpen||e.isMinimized||k(t.id)||x(t.id)||E(t.id))});n.user_pre_effect(()=>{const e=n.get(I);e&&!n.get(T)&&c.reset(),n.set(T,e,!0)});var P=n.comment(),A=n.first_child(P),O=e=>{Lt(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 r()},get openSourcePosition(){return t.openSourcePosition},get glow(){return t.glow},get config(){return t.config},get closeOnEscape(){return l()},get onClose(){return t.onClose},skipRegistration:!0,children:e=>{var i=$t();let r;var o=n.child(i);let a;var s=n.child(o),l=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.children),n.append(e,i)};n.if(s,e=>{t.children&&e(l)}),n.reset(o),n.reset(i),n.template_effect(()=>{r=n.set_class(i,1,"wizard-viewport svelte-cx8fqi",null,r,{"wizard-viewport-carousel":"slide-through"===d()}),a=n.set_class(o,1,"wizard-container svelte-cx8fqi",null,a,{"wizard-slide-forward":c.isAnimating&&"forward"===c.direction&&"slide-through"===d(),"wizard-slide-backward":c.isAnimating&&"backward"===c.direction&&"slide-through"===d()})}),n.append(e,i)},footer:e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.footer,()=>n.get(y)),n.append(e,i)};n.if(r,e=>{t.footer&&e(o)}),n.append(e,i)},$$slots:{default:!0,footer:!0}})};n.if(A,e=>{n.get(I)&&e(O)}),n.append(e,P),n.pop()}var Ft=n.from_html("<div><!></div>");function jt(e,t){n.push(t,!0);let i=n.prop(t,"title",3,""),a=n.prop(t,"canProceed",3,!0);const s=r("wizard");let d,c=n.state(-1);o(()=>{n.set(c,s.registerStep({title:i(),getCanProceed:()=>a()}),!0),d=a()}),n.user_effect(()=>{const e=a(),t=l(()=>n.get(c)),i=l(()=>d);t>=0&&e!==i&&(d=e,l(()=>{s.updateStep(t,{getCanProceed:()=>e})}))});const p=n.derived(()=>n.get(c)>=0&&s.currentStep===n.get(c)),g=n.derived(()=>s.direction),u=n.derived(()=>s.isAnimating),f=n.derived(()=>s.transitionStyle),m=n.derived(()=>n.get(p));var h=n.comment(),v=n.first_child(h),_=e=>{var i=Ft();let r;var o=n.child(i),a=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.children),n.append(e,i)};n.if(o,e=>{t.children&&e(a)}),n.reset(i),n.template_effect(()=>r=n.set_class(i,1,"wizard-step-wrapper svelte-sp1x21",null,r,{"wizard-fade-slide-left":n.get(u)&&n.get(p)&&"forward"===n.get(g)&&"fade-slide"===n.get(f),"wizard-fade-slide-right":n.get(u)&&n.get(p)&&"backward"===n.get(g)&&"fade-slide"===n.get(f)})),n.append(e,i)};n.if(v,e=>{n.get(m)&&e(_)}),n.append(e,h),n.pop()}var Ht=n.from_html('<button type="button" aria-label="Drag dock"></button>'),Bt=n.from_html("<span> </span>"),Nt=n.from_html("<span> </span>"),Vt=n.from_html("<span>+</span>"),qt=n.from_html("<span><!></span>"),Ut=n.from_html("<button><span><!></span> <!> <span></span> <!></button>"),Zt=n.from_html('<div data-dock-container="true"><div><!> <!></div></div>');function Gt(e,t){n.push(t,!0);const i=r(Fe),o=n.derived(()=>t.renderIcon??(null==i?void 0:i())),a=w(),s=n.derived(()=>(We(),ne())),l=n.derived(()=>Me("DOCK")),d=n.derived(()=>n.get(s).dock.position),c=n.derived(()=>n.get(s).dock.labelMode);let p=n.state("horizontal"),u=n.state(n.proxy({x:100,y:100})),f=n.state(null),m=n.state(!1),h={x:0,y:0},v=null;const _=n.derived(()=>($e(),Ee())),b=n.derived(()=>{switch(n.get(d)){case"left":return{x:-20,duration:250,easing:Ce};case"right":return{x:20,duration:250,easing:Ce};default:return{y:20,duration:250,easing:Ce}}});function S(e){var t;"free"===n.get(d)&&(n.set(m,!0),v=e.pointerId,h={x:e.clientX-n.get(u).x,y:e.clientY-n.get(u).y},null==(t=e.currentTarget)||t.setPointerCapture(e.pointerId),window.addEventListener("pointermove",C),window.addEventListener("pointerup",y),window.addEventListener("pointercancel",y))}function C(e){if(e.pointerId!==v||!n.get(f))return;const t=n.get(f).getBoundingClientRect();n.set(u,Te(e.clientX,e.clientY,h,t.width,t.height),!0)}function y(e){e.pointerId===v&&(n.set(m,!1),v=null,window.removeEventListener("pointermove",C),window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",y))}const{addListener:M}=Je();function k(){if("free"!==n.get(d)||!n.get(f))return;const e=n.get(f).getBoundingClientRect(),t=ze(n.get(u),e.width,e.height);(t.x!==n.get(u).x||t.y!==n.get(u).y)&&n.set(u,t,!0)}n.user_effect(()=>{typeof window>"u"||M("resize",k)});var x={setDockOrientation:function(e){n.set(p,e,!0)},setDockFreePosition:function(e){n.set(u,e,!0)},getDockState:function(){return{dockPosition:n.get(d),dockOrientation:n.get(p),dockFreePosition:n.get(u),dockLabelMode:n.get(c)}}},E=n.comment(),I=n.first_child(E),P=e=>{tt(e,{get target(){return n.get(s).portalTarget},children:(e,t)=>{var i=Zt();let r,s;var h=n.child(i);let v;var w=n.child(h),C=e=>{var t=Ht();let i;t.__pointerdown=S,n.template_effect(()=>i=n.set_class(t,1,n.clsx(ge.dockHandle),null,i,{"modal-dock-handle-dragging":n.get(m)})),n.append(e,t)};n.if(w,e=>{"free"===n.get(d)&&e(C)});var y=n.sibling(w,2);n.each(y,19,()=>n.get(_),e=>e.id,(e,t,i)=>{const r=n.derived(()=>n.get(t).lastChildId?a.get(n.get(t).lastChildId):null);var s=Ut(),l=e=>{z(n.get(t).id)?T(e.currentTarget):g(n.get(t).id)};n.attribute_effect(s,e=>({class:ge.dockItem,...e,"aria-label":`Restore ${n.get(t).title??""}`,onclick:l,style:n.get(t).glow?`--modal-dock-glow-color: ${n.get(t).glow.color};`:"",[n.CLASS]:{"modal-dock-item-has-glow":!!n.get(t).glow,"modal-dock-item-has-child":!!n.get(t).lastChildId,"modal-dock-item-label-beside":"beside"===n.get(c),"modal-dock-item-label-below":"below"===n.get(c)}}),[()=>({[me.modalId]:ce(n.get(t).id)})]);var d=n.child(s),p=n.child(d),u=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>n.get(o),()=>n.get(t).icon),n.append(e,i)},f=e=>{var i=Bt(),r=n.child(i,!0);n.reset(i),n.template_effect(e=>{n.set_class(i,1,n.clsx(ge.dockItemIconPlaceholder)),n.set_text(r,e)},[()=>n.get(t).title.charAt(0)]),n.append(e,i)};n.if(p,e=>{n.get(t).icon&&n.get(o)?e(u):e(f,!1)}),n.reset(d);var m=n.sibling(d,2),h=e=>{var i=Nt(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(ge.dockItemLabel)),n.set_text(r,n.get(t).title)}),n.append(e,i)};n.if(m,e=>{"hidden"!==n.get(c)&&e(h)});var v=n.sibling(m,2),_=n.sibling(v,2),b=e=>{var t=qt(),i=n.child(t),a=e=>{var t=n.comment(),i=n.first_child(t);n.snippet(i,()=>n.get(o),()=>n.get(r).icon),n.append(e,t)},s=e=>{var t=Vt();n.append(e,t)};n.if(i,e=>{n.get(r).icon&&n.get(o)?e(a):e(s,!1)}),n.reset(t),n.template_effect(()=>n.set_class(t,1,n.clsx(ge.dockChildIndicator))),n.append(e,t)};n.if(_,e=>{n.get(t).lastChildId&&n.get(r)&&e(b)}),n.reset(s),n.template_effect(()=>{n.set_class(d,1,n.clsx(ge.dockItemIcon)),n.set_class(v,1,n.clsx(ge.dockItemGlow))}),n.transition(3,s,()=>be,()=>({duration:300,delay:50*n.get(i),easing:ye,start:.5})),n.append(e,s)}),n.reset(h),n.reset(i),n.bind_this(i,e=>n.set(f,e),()=>n.get(f)),n.template_effect(()=>{r=n.set_class(i,1,n.clsx(ge.dockContainer),null,r,{"modal-dock-left":"left"===n.get(d),"modal-dock-right":"right"===n.get(d),"modal-dock-bottom":"bottom"===n.get(d),"modal-dock-free":"free"===n.get(d),"modal-dock-empty":0===n.get(_).length}),s=n.set_style(i,"free"===n.get(d)?`left: ${n.get(u).x}px; top: ${n.get(u).y}px;`:"",s,{"z-index":n.get(l)}),v=n.set_class(h,1,n.clsx(ge.dock),null,v,{"modal-dock-free-horizontal":"free"===n.get(d)&&"horizontal"===n.get(p),"modal-dock-free-vertical":"free"===n.get(d)&&"vertical"===n.get(p)})}),n.transition(3,i,()=>Se,()=>n.get(_).length>0?n.get(b):{duration:0}),n.append(e,i)},$$slots:{default:!0}})};return n.if(I,e=>{n.get(s).features.dock&&e(P)}),n.append(e,E),n.pop(x)}n.delegate(["pointerdown"]);var Xt=n.from_html('<div aria-hidden="true"></div>');function Kt(e,t){n.push(t,!0);const i=n.derived(()=>(We(),ne())),r=n.derived(()=>(We(),Ie())),o=n.derived(()=>(We(),Pe())),a=n.derived(()=>($e(),Ae())),s=n.derived(()=>Me("MODAL")-1);tt(e,{get target(){return n.get(i).portalTarget},children:(e,t)=>{var i=n.comment(),l=n.first_child(i),d=e=>{var t=Xt();let i,o;n.template_effect(()=>{i=n.set_class(t,1,n.clsx(ge.backdrop),null,i,{"backdrop-visible":n.get(r).visible,"backdrop-blocking":n.get(r).blockClicks}),o=n.set_style(t,"",o,{"z-index":n.get(s)})}),n.transition(3,t,()=>we,()=>({duration:200})),n.append(e,t)};n.if(l,e=>{n.get(a)&&n.get(o)&&e(d)}),n.append(e,i)},$$slots:{default:!0}}),n.pop()}var Yt=n.from_html("<!> <!>",1);function Jt(e,t){n.push(t,!0),l(()=>{t.config&&re(t.config)}),a(Fe,()=>t.renderIcon),a(He,()=>t.config),n.user_effect(()=>(l(()=>{ke(),Oe()}),()=>{xe(),Le()})),n.user_effect(()=>{var e;if(typeof document>"u")return;const i=ne(),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(),r=n.first_child(i);Kt(r,{});var o=n.sibling(r,2);n.snippet(o,()=>t.children??n.noop),n.append(e,i),n.pop()}export{Kt as Backdrop,Gt as Dock,je as MODAL_ID_CONTEXT,Rt as Modal,bt as ModalHeader,Jt as ModalProvider,tt as Portal,Fe as RENDER_ICON_CONTEXT,Ct as ResizeHandles,Wt as WizardModal,jt as WizardStep,I as bringToFront,P as closeAllModals,A as closeModal,Ze as focusFirstElement,oe as getConfig,ae as getConfigVersion,O as getModalsStore,L as getModalsToClose,We as getReactiveConfigVersion,$e as getReactiveStateVersion,R as getStateVersion,D as isModalAnimating,$ as isModalOpen,W as isModalRegistered,F as linkModals,j as minimizeModal,H as openChildModal,B as openModal,N as registerModal,V as reorderDock,se as resetConfig,q as restoreAllMinimizedModals,U as restoreModal,_e as screenCenter,le as setConfig,Z as setModalAnimating,G as setRegistryFunctions,X as setURLStateCallbacks,K as shakeElement,Y as storeOpenSourcePosition,J as toggleModalTransparency,Ue as trapFocus,Q as triggerAttention,ee as updateModalPosition,Ge as useFocusTrap,Ne as useModal,Qe as useModalConfig,Ye as useModalZIndex,Ve as useModals,Ke as usePortal,Je as useWindowEvent};
package/dist/vanilla.d.ts CHANGED
@@ -1,3 +1,148 @@
1
-
2
- export * from './vanilla/index';
3
- //# sourceMappingURL=vanilla.d.ts.map
1
+ import { bringToFront } from '../core/state';
2
+ import { closeAllModals } from '../core/state';
3
+ import { closeModal } from '../core/state';
4
+ import { getConfig } from '../core/config';
5
+ import { getDockOrder } from '../core/state';
6
+ import { getModalsStore } from '../core/state';
7
+ import { getModalState } from '../core/state';
8
+ import { isModalOpen } from '../core/state';
9
+ import { isModalRegistered } from '../core/state';
10
+ import { minimizeModal } from '../core/state';
11
+ import { ModalConfigOverrides } from '../core/types';
12
+ import { ModalGlow } from '../core/types';
13
+ import { ModalId } from '../core/types';
14
+ import { ModalLibraryConfig } from '../core/config';
15
+ import { openChildModal } from '../core/state';
16
+ import { openModal } from '../core/state';
17
+ import { Position } from '../core/types';
18
+ import { reorderDock } from '../core/state';
19
+ import { restoreAllMinimizedModals } from '../core/state';
20
+ import { restoreModal } from '../core/state';
21
+ import { setConfig } from '../core/config';
22
+ import { toggleModalTransparency } from '../core/state';
23
+
24
+ export declare interface BackdropControl {
25
+ destroy: () => void;
26
+ }
27
+
28
+ export { bringToFront }
29
+
30
+ export { closeAllModals }
31
+
32
+ export { closeModal }
33
+
34
+ export declare function createBackdrop(): BackdropControl;
35
+
36
+ export declare function createDock(): DockControl;
37
+
38
+ export declare function createModal(options: ModalOptions): ModalControl;
39
+
40
+ export declare interface DockControl {
41
+ destroy: () => void;
42
+ }
43
+
44
+ export { getConfig }
45
+
46
+ export { getDockOrder }
47
+
48
+ export { getModalsStore }
49
+
50
+ export { getModalState }
51
+
52
+ export declare function init(options?: InitOptions): InitControl;
53
+
54
+ export declare interface InitControl {
55
+ destroy: () => void;
56
+ backdrop: BackdropControl | null;
57
+ dock: DockControl | null;
58
+ }
59
+
60
+ export declare interface InitOptions {
61
+ config?: Partial<ModalLibraryConfig>;
62
+
63
+ backdrop?: boolean;
64
+
65
+ dock?: boolean;
66
+ }
67
+
68
+ export { isModalOpen }
69
+
70
+ export { isModalRegistered }
71
+
72
+ export { minimizeModal }
73
+
74
+ export declare interface ModalControl {
75
+ destroy: () => void;
76
+
77
+ update: (options: Partial<ModalOptions>) => void;
78
+ }
79
+
80
+ export declare interface ModalOptions extends Omit<VanillaModalOptions, 'container' | 'content' | 'footer'> {
81
+
82
+ content?: string | HTMLElement;
83
+
84
+ footer?: string | HTMLElement;
85
+
86
+ customIcon?: string | HTMLElement;
87
+ }
88
+
89
+ export { openChildModal }
90
+
91
+ export { openModal }
92
+
93
+ export { reorderDock }
94
+
95
+ export { restoreAllMinimizedModals }
96
+
97
+ export { restoreModal }
98
+
99
+ export { setConfig }
100
+
101
+ export { toggleModalTransparency }
102
+
103
+ export declare interface VanillaBackdropOptions {
104
+ container: HTMLElement;
105
+ }
106
+
107
+ export declare interface VanillaDockOptions {
108
+ container: HTMLElement;
109
+
110
+ renderIcon?: (icon: string) => HTMLElement | null;
111
+ }
112
+
113
+ export declare interface VanillaModalOptions {
114
+
115
+ id: ModalId;
116
+
117
+ title: string;
118
+
119
+ container: HTMLElement;
120
+
121
+ icon?: string;
122
+
123
+ iconElement?: HTMLElement;
124
+
125
+ renderIcon?: (icon: string) => HTMLElement | null;
126
+
127
+ config?: ModalConfigOverrides;
128
+
129
+ maxWidth?: string;
130
+
131
+ preferredHeight?: string;
132
+
133
+ glow?: ModalGlow;
134
+
135
+ closeOnEscape?: boolean;
136
+
137
+ autoOpen?: boolean;
138
+
139
+ openSourcePosition?: Position | null;
140
+
141
+ onClose?: () => void;
142
+
143
+ content?: HTMLElement;
144
+
145
+ footer?: HTMLElement;
146
+ }
147
+
148
+ export { }