yuyeon 0.0.42-rc26 → 0.0.42-rc27

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.
@@ -1,5 +1,5 @@
1
1
  import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
2
- import { computed, defineComponent, getCurrentInstance, ref, shallowRef, watch } from 'vue';
2
+ import { computed, defineComponent, getCurrentInstance, onBeforeUnmount, ref, shallowRef, watch } from 'vue';
3
3
  import { useModelDuplex } from "../../composables/communication.mjs";
4
4
  import { useRender } from "../../composables/component.mjs";
5
5
  import { chooseProps, omit } from "../../util/index.mjs";
@@ -146,6 +146,9 @@ export const YDialog = defineComponent({
146
146
  }, {
147
147
  immediate: true
148
148
  });
149
+ onBeforeUnmount(() => {
150
+ preventInteractionBackground(false);
151
+ });
149
152
  useRender(() => {
150
153
  return _createVNode(_Fragment, null, [_createVNode(YLayer, _mergeProps({
151
154
  "modelValue": active.value,
@@ -1 +1 @@
1
- {"version":3,"file":"YDialog.mjs","names":["computed","defineComponent","getCurrentInstance","ref","shallowRef","watch","useModelDuplex","useRender","chooseProps","omit","toStyleSizeValue","bindClasses","propsFactory","YCard","YLayer","pressYLayerProps","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","maximized","offset","scrim","YDialog","name","components","props","emits","setup","_ref","emit","slots","vm","$yuyeon","appContext","config","globalProperties","active","classes","boundClasses","styles","contentStyles","paddingTop","layer$","children","onFocusin","e","prevTarget","relatedTarget","target","testChildrenContains","layers","some","layer","content$","contains","value","document","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","isSameNode","focus","installFocusTrap","addEventListener","dismantleFocusTrap","removeEventListener","tempScrollTop","tempScrollLeft","preventInteractionBackground","toggle","root$","root","activeLayers","getActiveLayers","filtered","ctx","modal","classList","scrollTop","documentElement","scrollLeft","add","style","top","left","isMe","remove","onUpdate","v","onClick","currentActive","disabled","baseEl","neo","old","immediate","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { chooseProps, omit } from '../../util';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { bindClasses, propsFactory } from '../../util/vue-component';\nimport { YCard } from '../card';\nimport { YLayer, pressYLayerProps } from '../layer';\nimport { useActiveStack } from '../layer/active-stack';\n\nimport './YDialog.scss';\n\nexport const pressYDialogPropsOptions = propsFactory(\n {\n persistent: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n dialogClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n maximized: Boolean as PropType<boolean>,\n offset: {\n type: String as PropType<string>,\n },\n ...omit(\n pressYLayerProps({\n scrim: true,\n }),\n ['offset', 'classes'],\n ),\n },\n 'YDialog',\n);\n\nexport const YDialog = defineComponent({\n name: 'YDialog',\n components: {\n YLayer,\n YCard,\n },\n props: pressYDialogPropsOptions(),\n emits: ['update:modelValue'],\n setup(props, { emit, slots }) {\n const vm = getCurrentInstance();\n const $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\n const active = useModelDuplex(props);\n\n const classes = computed(() => {\n const boundClasses = bindClasses(props.dialogClasses);\n return {\n ...boundClasses,\n 'y-dialog': true,\n 'y-dialog--maximized': props.maximized,\n };\n });\n\n const styles = computed(() => {\n return {\n ...(props.contentStyles ?? {}),\n paddingTop: toStyleSizeValue(props.offset),\n };\n });\n\n const layer$ = ref<typeof YLayer>();\n const { children } = useActiveStack(layer$, active, shallowRef(true));\n\n function onFocusin(e: FocusEvent) {\n const prevTarget = e.relatedTarget as HTMLElement | null;\n const target = e.target as HTMLElement | null;\n\n function testChildrenContains(layers: YLayer[]) {\n return layers.some((layer) => {\n return !layer.content$?.contains(target);\n });\n }\n\n if (\n prevTarget !== target &&\n layer$.value?.content$ &&\n ![document, layer$.value?.content$].includes(target) &&\n !layer$.value?.content$.contains(target) &&\n !testChildrenContains(children.value)\n ) {\n const focusableSelector =\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n const focusables = [\n ...layer$.value.content$.querySelectorAll(focusableSelector),\n ].filter(\n (el) =>\n !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]'),\n ) as HTMLElement[];\n if (!focusables.length) return;\n const firstChild = focusables[0];\n const lastChild = focusables[focusables.length - 1];\n if (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\n return;\n }\n if (firstChild === lastChild) {\n lastChild.focus();\n } else {\n firstChild.focus();\n }\n }\n }\n\n function installFocusTrap() {\n document.addEventListener('focusin', onFocusin);\n }\n\n function dismantleFocusTrap() {\n document.removeEventListener('focusin', onFocusin);\n }\n\n const tempScrollTop = ref(0);\n const tempScrollLeft = ref(0);\n\n function preventInteractionBackground(toggle: boolean) {\n const root$ = $yuyeon.root as HTMLElement;\n const activeLayers = layer$.value?.getActiveLayers();\n if (toggle) {\n const filtered = activeLayers?.filter((layer: any) => {\n return layer.ctx.modal;\n });\n if (\n (filtered && !filtered.length) ||\n !root$.classList.contains('y-dialog--virtual-scroll')\n ) {\n const scrollTop = document.documentElement.scrollTop;\n const scrollLeft = document.documentElement.scrollLeft;\n tempScrollTop.value = scrollTop;\n tempScrollLeft.value = scrollLeft;\n if (props.maximized) {\n document.documentElement.classList.add('y-dialog--prevent-scroll');\n }\n root$.classList.add('y-dialog--virtual-scroll');\n root$.style.top = toStyleSizeValue(-1 * scrollTop) || '';\n root$.style.left = toStyleSizeValue(-1 * scrollLeft) || '';\n }\n } else {\n const filtered = activeLayers?.filter((layer: any) => {\n return !layer$.value?.isMe(layer) && layer.ctx.modal;\n });\n if (filtered && !filtered.length) {\n root$.classList.remove('y-dialog--virtual-scroll');\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\n root$.style.top = '';\n root$.style.left = '';\n document.documentElement.scrollTop = tempScrollTop.value;\n document.documentElement.scrollLeft = tempScrollLeft.value;\n }\n }\n }\n\n function onUpdate(v: boolean) {\n active.value = v;\n }\n\n function onClick(e: MouseEvent) {\n const currentActive = active.value;\n if (!props.disabled) {\n active.value = !currentActive;\n }\n }\n\n watch(\n () => layer$.value?.baseEl,\n (neo, old) => {\n if (neo) {\n neo.addEventListener('click', onClick);\n } else if (old) {\n old.removeEventListener('click', onClick);\n }\n },\n );\n\n watch(\n () => active.value,\n (neo) => {\n neo ? installFocusTrap() : dismantleFocusTrap();\n preventInteractionBackground(neo);\n },\n { immediate: true },\n );\n\n useRender(() => {\n return (\n <>\n <YLayer\n v-model={active.value}\n classes={classes.value}\n content-styles={styles.value}\n modal\n ref={layer$}\n {...omit(chooseProps(props, YLayer.props), ['contentStyles'])}\n >\n {{\n default: (...args: any[]) => slots.default?.(...args),\n base: slots.base,\n }}\n </YLayer>\n </>\n );\n });\n\n return {\n active,\n layer: layer$,\n classes,\n };\n },\n});\n"],"mappings":";AACA,SACEA,QAAQ,EACRC,eAAe,EACfC,kBAAkB,EAClBC,GAAG,EACHC,UAAU,EACVC,KAAK,QACA,KAAK;AAAC,SAEJC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,WAAW,EAAEC,IAAI;AAAA,SACjBC,gBAAgB;AAAA,SAChBC,WAAW,EAAEC,YAAY;AAAA,SACzBC,KAAK;AAAA,SACLC,MAAM,EAAEC,gBAAgB;AAAA,SACxBC,cAAc;AAEvB;AAEA,OAAO,MAAMC,wBAAwB,GAAGL,YAAY,CAClD;EACEM,UAAU,EAAE;IACVC,IAAI,EAAEC,OAA4B;IAClCC,OAAO,EAAE;EACX,CAAC;EACDC,aAAa,EAAE;IACbH,IAAI,EAAE,CAACI,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG9B,CAAC;EACDC,SAAS,EAAEN,OAA4B;EACvCO,MAAM,EAAE;IACNR,IAAI,EAAEK;EACR,CAAC;EACD,GAAGf,IAAI,CACLM,gBAAgB,CAAC;IACfa,KAAK,EAAE;EACT,CAAC,CAAC,EACF,CAAC,QAAQ,EAAE,SAAS,CACtB;AACF,CAAC,EACD,SACF,CAAC;AAED,OAAO,MAAMC,OAAO,GAAG5B,eAAe,CAAC;EACrC6B,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE;IACVjB,MAAM;IACND;EACF,CAAC;EACDmB,KAAK,EAAEf,wBAAwB,CAAC,CAAC;EACjCgB,KAAK,EAAE,CAAC,mBAAmB,CAAC;EAC5BC,KAAKA,CAACF,KAAK,EAAAG,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC1B,MAAMG,EAAE,GAAGpC,kBAAkB,CAAC,CAAC;IAC/B,MAAMqC,OAAO,GAAGD,EAAE,EAAEE,UAAU,CAACC,MAAM,CAACC,gBAAgB,CAACH,OAAO;IAC9D,MAAMI,MAAM,GAAGrC,cAAc,CAAC0B,KAAK,CAAC;IAEpC,MAAMY,OAAO,GAAG5C,QAAQ,CAAC,MAAM;MAC7B,MAAM6C,YAAY,GAAGlC,WAAW,CAACqB,KAAK,CAACV,aAAa,CAAC;MACrD,OAAO;QACL,GAAGuB,YAAY;QACf,UAAU,EAAE,IAAI;QAChB,qBAAqB,EAAEb,KAAK,CAACN;MAC/B,CAAC;IACH,CAAC,CAAC;IAEF,MAAMoB,MAAM,GAAG9C,QAAQ,CAAC,MAAM;MAC5B,OAAO;QACL,IAAIgC,KAAK,CAACe,aAAa,IAAI,CAAC,CAAC,CAAC;QAC9BC,UAAU,EAAEtC,gBAAgB,CAACsB,KAAK,CAACL,MAAM;MAC3C,CAAC;IACH,CAAC,CAAC;IAEF,MAAMsB,MAAM,GAAG9C,GAAG,CAAgB,CAAC;IACnC,MAAM;MAAE+C;IAAS,CAAC,GAAGlC,cAAc,CAACiC,MAAM,EAAEN,MAAM,EAAEvC,UAAU,CAAC,IAAI,CAAC,CAAC;IAErE,SAAS+C,SAASA,CAACC,CAAa,EAAE;MAChC,MAAMC,UAAU,GAAGD,CAAC,CAACE,aAAmC;MACxD,MAAMC,MAAM,GAAGH,CAAC,CAACG,MAA4B;MAE7C,SAASC,oBAAoBA,CAACC,MAAgB,EAAE;QAC9C,OAAOA,MAAM,CAACC,IAAI,CAAEC,KAAK,IAAK;UAC5B,OAAO,CAACA,KAAK,CAACC,QAAQ,EAAEC,QAAQ,CAACN,MAAM,CAAC;QAC1C,CAAC,CAAC;MACJ;MAEA,IACEF,UAAU,KAAKE,MAAM,IACrBN,MAAM,CAACa,KAAK,EAAEF,QAAQ,IACtB,CAAC,CAACG,QAAQ,EAAEd,MAAM,CAACa,KAAK,EAAEF,QAAQ,CAAC,CAACI,QAAQ,CAACT,MAAM,CAAC,IACpD,CAACN,MAAM,CAACa,KAAK,EAAEF,QAAQ,CAACC,QAAQ,CAACN,MAAM,CAAC,IACxC,CAACC,oBAAoB,CAACN,QAAQ,CAACY,KAAK,CAAC,EACrC;QACA,MAAMG,iBAAiB,GACrB,+FAA+F;QACjG,MAAMC,UAAU,GAAG,CACjB,GAAGjB,MAAM,CAACa,KAAK,CAACF,QAAQ,CAACO,gBAAgB,CAACF,iBAAiB,CAAC,CAC7D,CAACG,MAAM,CACLC,EAAE,IACD,CAACA,EAAE,CAACC,YAAY,CAAC,UAAU,CAAC,IAAI,CAACD,EAAE,CAACE,OAAO,CAAC,iBAAiB,CACjE,CAAkB;QAClB,IAAI,CAACL,UAAU,CAACM,MAAM,EAAE;QACxB,MAAMC,UAAU,GAAGP,UAAU,CAAC,CAAC,CAAC;QAChC,MAAMQ,SAAS,GAAGR,UAAU,CAACA,UAAU,CAACM,MAAM,GAAG,CAAC,CAAC;QACnD,IAAIjB,MAAM,EAAEoB,UAAU,CAACF,UAAU,CAAC,IAAIlB,MAAM,EAAEoB,UAAU,CAACD,SAAS,CAAC,EAAE;UACnE;QACF;QACA,IAAID,UAAU,KAAKC,SAAS,EAAE;UAC5BA,SAAS,CAACE,KAAK,CAAC,CAAC;QACnB,CAAC,MAAM;UACLH,UAAU,CAACG,KAAK,CAAC,CAAC;QACpB;MACF;IACF;IAEA,SAASC,gBAAgBA,CAAA,EAAG;MAC1Bd,QAAQ,CAACe,gBAAgB,CAAC,SAAS,EAAE3B,SAAS,CAAC;IACjD;IAEA,SAAS4B,kBAAkBA,CAAA,EAAG;MAC5BhB,QAAQ,CAACiB,mBAAmB,CAAC,SAAS,EAAE7B,SAAS,CAAC;IACpD;IAEA,MAAM8B,aAAa,GAAG9E,GAAG,CAAC,CAAC,CAAC;IAC5B,MAAM+E,cAAc,GAAG/E,GAAG,CAAC,CAAC,CAAC;IAE7B,SAASgF,4BAA4BA,CAACC,MAAe,EAAE;MACrD,MAAMC,KAAK,GAAG9C,OAAO,CAAC+C,IAAmB;MACzC,MAAMC,YAAY,GAAGtC,MAAM,CAACa,KAAK,EAAE0B,eAAe,CAAC,CAAC;MACpD,IAAIJ,MAAM,EAAE;QACV,MAAMK,QAAQ,GAAGF,YAAY,EAAEnB,MAAM,CAAET,KAAU,IAAK;UACpD,OAAOA,KAAK,CAAC+B,GAAG,CAACC,KAAK;QACxB,CAAC,CAAC;QACF,IACGF,QAAQ,IAAI,CAACA,QAAQ,CAACjB,MAAM,IAC7B,CAACa,KAAK,CAACO,SAAS,CAAC/B,QAAQ,CAAC,0BAA0B,CAAC,EACrD;UACA,MAAMgC,SAAS,GAAG9B,QAAQ,CAAC+B,eAAe,CAACD,SAAS;UACpD,MAAME,UAAU,GAAGhC,QAAQ,CAAC+B,eAAe,CAACC,UAAU;UACtDd,aAAa,CAACnB,KAAK,GAAG+B,SAAS;UAC/BX,cAAc,CAACpB,KAAK,GAAGiC,UAAU;UACjC,IAAI/D,KAAK,CAACN,SAAS,EAAE;YACnBqC,QAAQ,CAAC+B,eAAe,CAACF,SAAS,CAACI,GAAG,CAAC,0BAA0B,CAAC;UACpE;UACAX,KAAK,CAACO,SAAS,CAACI,GAAG,CAAC,0BAA0B,CAAC;UAC/CX,KAAK,CAACY,KAAK,CAACC,GAAG,GAAGxF,gBAAgB,CAAC,CAAC,CAAC,GAAGmF,SAAS,CAAC,IAAI,EAAE;UACxDR,KAAK,CAACY,KAAK,CAACE,IAAI,GAAGzF,gBAAgB,CAAC,CAAC,CAAC,GAAGqF,UAAU,CAAC,IAAI,EAAE;QAC5D;MACF,CAAC,MAAM;QACL,MAAMN,QAAQ,GAAGF,YAAY,EAAEnB,MAAM,CAAET,KAAU,IAAK;UACpD,OAAO,CAACV,MAAM,CAACa,KAAK,EAAEsC,IAAI,CAACzC,KAAK,CAAC,IAAIA,KAAK,CAAC+B,GAAG,CAACC,KAAK;QACtD,CAAC,CAAC;QACF,IAAIF,QAAQ,IAAI,CAACA,QAAQ,CAACjB,MAAM,EAAE;UAChCa,KAAK,CAACO,SAAS,CAACS,MAAM,CAAC,0BAA0B,CAAC;UAClDtC,QAAQ,CAAC+B,eAAe,CAACF,SAAS,CAACS,MAAM,CAAC,0BAA0B,CAAC;UACrEhB,KAAK,CAACY,KAAK,CAACC,GAAG,GAAG,EAAE;UACpBb,KAAK,CAACY,KAAK,CAACE,IAAI,GAAG,EAAE;UACrBpC,QAAQ,CAAC+B,eAAe,CAACD,SAAS,GAAGZ,aAAa,CAACnB,KAAK;UACxDC,QAAQ,CAAC+B,eAAe,CAACC,UAAU,GAAGb,cAAc,CAACpB,KAAK;QAC5D;MACF;IACF;IAEA,SAASwC,QAAQA,CAACC,CAAU,EAAE;MAC5B5D,MAAM,CAACmB,KAAK,GAAGyC,CAAC;IAClB;IAEA,SAASC,OAAOA,CAACpD,CAAa,EAAE;MAC9B,MAAMqD,aAAa,GAAG9D,MAAM,CAACmB,KAAK;MAClC,IAAI,CAAC9B,KAAK,CAAC0E,QAAQ,EAAE;QACnB/D,MAAM,CAACmB,KAAK,GAAG,CAAC2C,aAAa;MAC/B;IACF;IAEApG,KAAK,CACH,MAAM4C,MAAM,CAACa,KAAK,EAAE6C,MAAM,EAC1B,CAACC,GAAG,EAAEC,GAAG,KAAK;MACZ,IAAID,GAAG,EAAE;QACPA,GAAG,CAAC9B,gBAAgB,CAAC,OAAO,EAAE0B,OAAO,CAAC;MACxC,CAAC,MAAM,IAAIK,GAAG,EAAE;QACdA,GAAG,CAAC7B,mBAAmB,CAAC,OAAO,EAAEwB,OAAO,CAAC;MAC3C;IACF,CACF,CAAC;IAEDnG,KAAK,CACH,MAAMsC,MAAM,CAACmB,KAAK,EACjB8C,GAAG,IAAK;MACPA,GAAG,GAAG/B,gBAAgB,CAAC,CAAC,GAAGE,kBAAkB,CAAC,CAAC;MAC/CI,4BAA4B,CAACyB,GAAG,CAAC;IACnC,CAAC,EACD;MAAEE,SAAS,EAAE;IAAK,CACpB,CAAC;IAEDvG,SAAS,CAAC,MAAM;MACd,OAAAwG,YAAA,CAAAC,SAAA,SAAAD,YAAA,CAAAjG,MAAA,EAAAmG,WAAA;QAAA,cAGetE,MAAM,CAACmB,KAAK;QAAA,uBAAAoD,MAAA,IAAZvE,MAAM,CAACmB,KAAK,GAAAoD,MAAA;QAAA,WACZtE,OAAO,CAACkB,KAAK;QAAA,kBACNhB,MAAM,CAACgB,KAAK;QAAA;QAAA,OAEvBb;MAAM,GACPxC,IAAI,CAACD,WAAW,CAACwB,KAAK,EAAElB,MAAM,CAACkB,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;QAG3DX,OAAO,EAAE,SAAAA,CAAA;UAAA,SAAA8F,IAAA,GAAAC,SAAA,CAAA5C,MAAA,EAAI6C,IAAI,OAAA9F,KAAA,CAAA4F,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJD,IAAI,CAAAC,IAAA,IAAAF,SAAA,CAAAE,IAAA;UAAA;UAAA,OAAYjF,KAAK,CAAChB,OAAO,GAAG,GAAGgG,IAAI,CAAC;QAAA;QACrDE,IAAI,EAAElF,KAAK,CAACkF;MAAI;IAK1B,CAAC,CAAC;IAEF,OAAO;MACL5E,MAAM;MACNgB,KAAK,EAAEV,MAAM;MACbL;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YDialog.mjs","names":["computed","defineComponent","getCurrentInstance","onBeforeUnmount","ref","shallowRef","watch","useModelDuplex","useRender","chooseProps","omit","toStyleSizeValue","bindClasses","propsFactory","YCard","YLayer","pressYLayerProps","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","maximized","offset","scrim","YDialog","name","components","props","emits","setup","_ref","emit","slots","vm","$yuyeon","appContext","config","globalProperties","active","classes","boundClasses","styles","contentStyles","paddingTop","layer$","children","onFocusin","e","prevTarget","relatedTarget","target","testChildrenContains","layers","some","layer","content$","contains","value","document","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","isSameNode","focus","installFocusTrap","addEventListener","dismantleFocusTrap","removeEventListener","tempScrollTop","tempScrollLeft","preventInteractionBackground","toggle","root$","root","activeLayers","getActiveLayers","filtered","ctx","modal","classList","scrollTop","documentElement","scrollLeft","add","style","top","left","isMe","remove","onUpdate","v","onClick","currentActive","disabled","baseEl","neo","old","immediate","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n onBeforeUnmount,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { chooseProps, omit } from '../../util';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { bindClasses, propsFactory } from '../../util/vue-component';\nimport { YCard } from '../card';\nimport { YLayer, pressYLayerProps } from '../layer';\nimport { useActiveStack } from '../layer/active-stack';\n\nimport './YDialog.scss';\n\nexport const pressYDialogPropsOptions = propsFactory(\n {\n persistent: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n dialogClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n maximized: Boolean as PropType<boolean>,\n offset: {\n type: String as PropType<string>,\n },\n ...omit(\n pressYLayerProps({\n scrim: true,\n }),\n ['offset', 'classes'],\n ),\n },\n 'YDialog',\n);\n\nexport const YDialog = defineComponent({\n name: 'YDialog',\n components: {\n YLayer,\n YCard,\n },\n props: pressYDialogPropsOptions(),\n emits: ['update:modelValue'],\n setup(props, { emit, slots }) {\n const vm = getCurrentInstance();\n const $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\n const active = useModelDuplex(props);\n\n const classes = computed(() => {\n const boundClasses = bindClasses(props.dialogClasses);\n return {\n ...boundClasses,\n 'y-dialog': true,\n 'y-dialog--maximized': props.maximized,\n };\n });\n\n const styles = computed(() => {\n return {\n ...(props.contentStyles ?? {}),\n paddingTop: toStyleSizeValue(props.offset),\n };\n });\n\n const layer$ = ref<typeof YLayer>();\n const { children } = useActiveStack(layer$, active, shallowRef(true));\n\n function onFocusin(e: FocusEvent) {\n const prevTarget = e.relatedTarget as HTMLElement | null;\n const target = e.target as HTMLElement | null;\n\n function testChildrenContains(layers: YLayer[]) {\n return layers.some((layer) => {\n return !layer.content$?.contains(target);\n });\n }\n\n if (\n prevTarget !== target &&\n layer$.value?.content$ &&\n ![document, layer$.value?.content$].includes(target) &&\n !layer$.value?.content$.contains(target) &&\n !testChildrenContains(children.value)\n ) {\n const focusableSelector =\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n const focusables = [\n ...layer$.value.content$.querySelectorAll(focusableSelector),\n ].filter(\n (el) =>\n !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]'),\n ) as HTMLElement[];\n if (!focusables.length) return;\n const firstChild = focusables[0];\n const lastChild = focusables[focusables.length - 1];\n if (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\n return;\n }\n if (firstChild === lastChild) {\n lastChild.focus();\n } else {\n firstChild.focus();\n }\n }\n }\n\n function installFocusTrap() {\n document.addEventListener('focusin', onFocusin);\n }\n\n function dismantleFocusTrap() {\n document.removeEventListener('focusin', onFocusin);\n }\n\n const tempScrollTop = ref(0);\n const tempScrollLeft = ref(0);\n\n function preventInteractionBackground(toggle: boolean) {\n const root$ = $yuyeon.root as HTMLElement;\n const activeLayers = layer$.value?.getActiveLayers();\n if (toggle) {\n const filtered = activeLayers?.filter((layer: any) => {\n return layer.ctx.modal;\n });\n if (\n (filtered && !filtered.length) ||\n !root$.classList.contains('y-dialog--virtual-scroll')\n ) {\n const scrollTop = document.documentElement.scrollTop;\n const scrollLeft = document.documentElement.scrollLeft;\n tempScrollTop.value = scrollTop;\n tempScrollLeft.value = scrollLeft;\n if (props.maximized) {\n document.documentElement.classList.add('y-dialog--prevent-scroll');\n }\n root$.classList.add('y-dialog--virtual-scroll');\n root$.style.top = toStyleSizeValue(-1 * scrollTop) || '';\n root$.style.left = toStyleSizeValue(-1 * scrollLeft) || '';\n }\n } else {\n const filtered = activeLayers?.filter((layer: any) => {\n return !layer$.value?.isMe(layer) && layer.ctx.modal;\n });\n if (filtered && !filtered.length) {\n root$.classList.remove('y-dialog--virtual-scroll');\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\n root$.style.top = '';\n root$.style.left = '';\n document.documentElement.scrollTop = tempScrollTop.value;\n document.documentElement.scrollLeft = tempScrollLeft.value;\n }\n }\n }\n\n function onUpdate(v: boolean) {\n active.value = v;\n }\n\n function onClick(e: MouseEvent) {\n const currentActive = active.value;\n if (!props.disabled) {\n active.value = !currentActive;\n }\n }\n\n watch(\n () => layer$.value?.baseEl,\n (neo, old) => {\n if (neo) {\n neo.addEventListener('click', onClick);\n } else if (old) {\n old.removeEventListener('click', onClick);\n }\n },\n );\n\n watch(\n () => active.value,\n (neo) => {\n neo ? installFocusTrap() : dismantleFocusTrap();\n preventInteractionBackground(neo);\n },\n { immediate: true },\n );\n\n onBeforeUnmount(() => {\n preventInteractionBackground(false);\n });\n\n useRender(() => {\n return (\n <>\n <YLayer\n v-model={active.value}\n classes={classes.value}\n content-styles={styles.value}\n modal\n ref={layer$}\n {...omit(chooseProps(props, YLayer.props), ['contentStyles'])}\n >\n {{\n default: (...args: any[]) => slots.default?.(...args),\n base: slots.base,\n }}\n </YLayer>\n </>\n );\n });\n\n return {\n active,\n layer: layer$,\n classes,\n };\n },\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { computed, getCurrentInstance, watch } from 'vue';
1
+ import { computed, getCurrentInstance, onBeforeUnmount, watch } from 'vue';
2
2
  export const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';
3
3
  const layerGroupState = new WeakMap();
4
4
  export function useLayerGroup(target) {
@@ -41,13 +41,20 @@ export function useLayerGroup(target) {
41
41
  });
42
42
  function getActiveLayers() {
43
43
  const activeLayers = [];
44
- layerGroupState.get(layerGroup.value)?.forEach(value => {
45
- if (value?.ctx?.active) {
44
+ const currentGroup = layerGroupState.get(layerGroup.value);
45
+ currentGroup?.forEach(value => {
46
+ if (value?.ctx?.active && !value?.isUnmounted) {
46
47
  activeLayers.push(value);
47
48
  }
48
49
  });
49
50
  return activeLayers;
50
51
  }
52
+ function unregister() {
53
+ layerGroupState.get(layerGroup.value)?.delete(vm);
54
+ }
55
+ onBeforeUnmount(() => {
56
+ unregister();
57
+ });
51
58
  return {
52
59
  layerGroup,
53
60
  layerGroupState,
@@ -1 +1 @@
1
- {"version":3,"file":"layer-group.mjs","names":["computed","getCurrentInstance","watch","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","target","vm","layerGroup","refTarget","value","targetEl","document","body","rootEl","root","vnode","el","parentElement","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","forEach","ctx","active","push"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import { computed, getCurrentInstance, watch } from 'vue';\r\nimport type { Ref, ComponentInternalInstance } from 'vue';\r\n\r\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\r\n\r\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\r\n\r\nexport function useLayerGroup(target?: Ref<string | Element>) {\r\n const vm = getCurrentInstance()!;\r\n\r\n const layerGroup = computed<HTMLElement>(() => {\r\n const refTarget = target?.value;\r\n let targetEl: Element = document.body;\r\n\r\n const rootEl = vm.root.vnode.el?.parentElement as HTMLElement;\r\n if (rootEl) {\r\n targetEl = rootEl;\r\n }\r\n\r\n if (typeof refTarget === 'string') {\r\n const el = document.querySelector(refTarget);\r\n if (el) {\r\n targetEl = el;\r\n }\r\n }\r\n if (refTarget && (refTarget as Element).nodeType === 1) {\r\n targetEl = refTarget as Element;\r\n }\r\n //\r\n let layerEl = targetEl.querySelector(`.${Y_LAYER_GROUP_CLASS_NAME}`);\r\n if (!layerEl) {\r\n layerEl = document.createElement('div');\r\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\r\n targetEl.appendChild(layerEl);\r\n }\r\n return layerEl as HTMLElement;\r\n });\r\n\r\n watch(\r\n layerGroup,\r\n (neo, old) => {\r\n if (old && layerGroupState.has(old)) {\r\n layerGroupState.get(old)?.delete(vm);\r\n }\r\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\r\n layerGroupState.set(neo, new Set());\r\n }\r\n layerGroupState.get(neo)?.add(vm);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n function getActiveLayers() {\r\n const activeLayers: ComponentInternalInstance[] = [];\r\n layerGroupState.get(layerGroup.value)?.forEach((value) => {\r\n if (value?.ctx?.active) {\r\n activeLayers.push(value);\r\n }\r\n });\r\n return activeLayers;\r\n }\r\n\r\n return { layerGroup, layerGroupState, getActiveLayers };\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,kBAAkB,EAAEC,KAAK,QAAQ,KAAK;AAGzD,OAAO,MAAMC,wBAAwB,GAAG,eAAe;AAEvD,MAAMC,eAAe,GAAG,IAAIC,OAAO,CAAwB,CAAC;AAE5D,OAAO,SAASC,aAAaA,CAACC,MAA8B,EAAE;EAC5D,MAAMC,EAAE,GAAGP,kBAAkB,CAAC,CAAE;EAEhC,MAAMQ,UAAU,GAAGT,QAAQ,CAAc,MAAM;IAC7C,MAAMU,SAAS,GAAGH,MAAM,EAAEI,KAAK;IAC/B,IAAIC,QAAiB,GAAGC,QAAQ,CAACC,IAAI;IAErC,MAAMC,MAAM,GAAGP,EAAE,CAACQ,IAAI,CAACC,KAAK,CAACC,EAAE,EAAEC,aAA4B;IAC7D,IAAIJ,MAAM,EAAE;MACVH,QAAQ,GAAGG,MAAM;IACnB;IAEA,IAAI,OAAOL,SAAS,KAAK,QAAQ,EAAE;MACjC,MAAMQ,EAAE,GAAGL,QAAQ,CAACO,aAAa,CAACV,SAAS,CAAC;MAC5C,IAAIQ,EAAE,EAAE;QACNN,QAAQ,GAAGM,EAAE;MACf;IACF;IACA,IAAIR,SAAS,IAAKA,SAAS,CAAaW,QAAQ,KAAK,CAAC,EAAE;MACtDT,QAAQ,GAAGF,SAAoB;IACjC;IACA;IACA,IAAIY,OAAO,GAAGV,QAAQ,CAACQ,aAAa,CAAE,IAAGjB,wBAAyB,EAAC,CAAC;IACpE,IAAI,CAACmB,OAAO,EAAE;MACZA,OAAO,GAAGT,QAAQ,CAACU,aAAa,CAAC,KAAK,CAAC;MACvCD,OAAO,CAACE,SAAS,GAAGrB,wBAAwB;MAC5CS,QAAQ,CAACa,WAAW,CAACH,OAAO,CAAC;IAC/B;IACA,OAAOA,OAAO;EAChB,CAAC,CAAC;EAEFpB,KAAK,CACHO,UAAU,EACV,CAACiB,GAAG,EAAEC,GAAG,KAAK;IACZ,IAAIA,GAAG,IAAIvB,eAAe,CAACwB,GAAG,CAACD,GAAG,CAAC,EAAE;MACnCvB,eAAe,CAACyB,GAAG,CAACF,GAAG,CAAC,EAAEG,MAAM,CAACtB,EAAE,CAAC;IACtC;IACA,IAAI,EAAEJ,eAAe,CAACwB,GAAG,CAACF,GAAG,CAAC,IAAItB,eAAe,CAACyB,GAAG,CAACH,GAAG,CAAC,CAAC,EAAE;MAC3DtB,eAAe,CAAC2B,GAAG,CAACL,GAAG,EAAE,IAAIM,GAAG,CAAC,CAAC,CAAC;IACrC;IACA5B,eAAe,CAACyB,GAAG,CAACH,GAAG,CAAC,EAAEO,GAAG,CAACzB,EAAE,CAAC;EACnC,CAAC,EACD;IAAE0B,SAAS,EAAE;EAAK,CACpB,CAAC;EAED,SAASC,eAAeA,CAAA,EAAG;IACzB,MAAMC,YAAyC,GAAG,EAAE;IACpDhC,eAAe,CAACyB,GAAG,CAACpB,UAAU,CAACE,KAAK,CAAC,EAAE0B,OAAO,CAAE1B,KAAK,IAAK;MACxD,IAAIA,KAAK,EAAE2B,GAAG,EAAEC,MAAM,EAAE;QACtBH,YAAY,CAACI,IAAI,CAAC7B,KAAK,CAAC;MAC1B;IACF,CAAC,CAAC;IACF,OAAOyB,YAAY;EACrB;EAEA,OAAO;IAAE3B,UAAU;IAAEL,eAAe;IAAE+B;EAAgB,CAAC;AACzD"}
1
+ {"version":3,"file":"layer-group.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","watch","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","target","vm","layerGroup","refTarget","value","targetEl","document","body","rootEl","root","vnode","el","parentElement","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import {computed, getCurrentInstance, onBeforeUnmount, watch} from 'vue';\r\nimport type { Ref, ComponentInternalInstance } from 'vue';\r\n\r\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\r\n\r\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\r\n\r\nexport function useLayerGroup(target?: Ref<string | Element>) {\r\n const vm = getCurrentInstance()!;\r\n\r\n const layerGroup = computed<HTMLElement>(() => {\r\n const refTarget = target?.value;\r\n let targetEl: Element = document.body;\r\n\r\n const rootEl = vm.root.vnode.el?.parentElement as HTMLElement;\r\n if (rootEl) {\r\n targetEl = rootEl;\r\n }\r\n\r\n if (typeof refTarget === 'string') {\r\n const el = document.querySelector(refTarget);\r\n if (el) {\r\n targetEl = el;\r\n }\r\n }\r\n if (refTarget && (refTarget as Element).nodeType === 1) {\r\n targetEl = refTarget as Element;\r\n }\r\n //\r\n let layerEl = targetEl.querySelector(`.${Y_LAYER_GROUP_CLASS_NAME}`);\r\n if (!layerEl) {\r\n layerEl = document.createElement('div');\r\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\r\n targetEl.appendChild(layerEl);\r\n }\r\n return layerEl as HTMLElement;\r\n });\r\n\r\n watch(\r\n layerGroup,\r\n (neo, old) => {\r\n if (old && layerGroupState.has(old)) {\r\n layerGroupState.get(old)?.delete(vm);\r\n }\r\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\r\n layerGroupState.set(neo, new Set());\r\n }\r\n layerGroupState.get(neo)?.add(vm);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n function getActiveLayers() {\r\n const activeLayers: ComponentInternalInstance[] = [];\r\n const currentGroup = layerGroupState.get(layerGroup.value);\r\n currentGroup?.forEach((value) => {\r\n if (value?.ctx?.active && !value?.isUnmounted) {\r\n activeLayers.push(value);\r\n }\r\n });\r\n return activeLayers;\r\n }\r\n\r\n function unregister() {\r\n layerGroupState.get(layerGroup.value)?.delete(vm);\r\n }\r\n\r\n onBeforeUnmount(() => {\r\n unregister();\r\n });\r\n\r\n return { layerGroup, layerGroupState, getActiveLayers };\r\n}\r\n"],"mappings":"AAAA,SAAQA,QAAQ,EAAEC,kBAAkB,EAAEC,eAAe,EAAEC,KAAK,QAAO,KAAK;AAGxE,OAAO,MAAMC,wBAAwB,GAAG,eAAe;AAEvD,MAAMC,eAAe,GAAG,IAAIC,OAAO,CAAwB,CAAC;AAE5D,OAAO,SAASC,aAAaA,CAACC,MAA8B,EAAE;EAC5D,MAAMC,EAAE,GAAGR,kBAAkB,CAAC,CAAE;EAEhC,MAAMS,UAAU,GAAGV,QAAQ,CAAc,MAAM;IAC7C,MAAMW,SAAS,GAAGH,MAAM,EAAEI,KAAK;IAC/B,IAAIC,QAAiB,GAAGC,QAAQ,CAACC,IAAI;IAErC,MAAMC,MAAM,GAAGP,EAAE,CAACQ,IAAI,CAACC,KAAK,CAACC,EAAE,EAAEC,aAA4B;IAC7D,IAAIJ,MAAM,EAAE;MACVH,QAAQ,GAAGG,MAAM;IACnB;IAEA,IAAI,OAAOL,SAAS,KAAK,QAAQ,EAAE;MACjC,MAAMQ,EAAE,GAAGL,QAAQ,CAACO,aAAa,CAACV,SAAS,CAAC;MAC5C,IAAIQ,EAAE,EAAE;QACNN,QAAQ,GAAGM,EAAE;MACf;IACF;IACA,IAAIR,SAAS,IAAKA,SAAS,CAAaW,QAAQ,KAAK,CAAC,EAAE;MACtDT,QAAQ,GAAGF,SAAoB;IACjC;IACA;IACA,IAAIY,OAAO,GAAGV,QAAQ,CAACQ,aAAa,CAAE,IAAGjB,wBAAyB,EAAC,CAAC;IACpE,IAAI,CAACmB,OAAO,EAAE;MACZA,OAAO,GAAGT,QAAQ,CAACU,aAAa,CAAC,KAAK,CAAC;MACvCD,OAAO,CAACE,SAAS,GAAGrB,wBAAwB;MAC5CS,QAAQ,CAACa,WAAW,CAACH,OAAO,CAAC;IAC/B;IACA,OAAOA,OAAO;EAChB,CAAC,CAAC;EAEFpB,KAAK,CACHO,UAAU,EACV,CAACiB,GAAG,EAAEC,GAAG,KAAK;IACZ,IAAIA,GAAG,IAAIvB,eAAe,CAACwB,GAAG,CAACD,GAAG,CAAC,EAAE;MACnCvB,eAAe,CAACyB,GAAG,CAACF,GAAG,CAAC,EAAEG,MAAM,CAACtB,EAAE,CAAC;IACtC;IACA,IAAI,EAAEJ,eAAe,CAACwB,GAAG,CAACF,GAAG,CAAC,IAAItB,eAAe,CAACyB,GAAG,CAACH,GAAG,CAAC,CAAC,EAAE;MAC3DtB,eAAe,CAAC2B,GAAG,CAACL,GAAG,EAAE,IAAIM,GAAG,CAAC,CAAC,CAAC;IACrC;IACA5B,eAAe,CAACyB,GAAG,CAACH,GAAG,CAAC,EAAEO,GAAG,CAACzB,EAAE,CAAC;EACnC,CAAC,EACD;IAAE0B,SAAS,EAAE;EAAK,CACpB,CAAC;EAED,SAASC,eAAeA,CAAA,EAAG;IACzB,MAAMC,YAAyC,GAAG,EAAE;IACpD,MAAMC,YAAY,GAAGjC,eAAe,CAACyB,GAAG,CAACpB,UAAU,CAACE,KAAK,CAAC;IAC1D0B,YAAY,EAAEC,OAAO,CAAE3B,KAAK,IAAK;MAC/B,IAAIA,KAAK,EAAE4B,GAAG,EAAEC,MAAM,IAAI,CAAC7B,KAAK,EAAE8B,WAAW,EAAE;QAC7CL,YAAY,CAACM,IAAI,CAAC/B,KAAK,CAAC;MAC1B;IACF,CAAC,CAAC;IACF,OAAOyB,YAAY;EACrB;EAEA,SAASO,UAAUA,CAAA,EAAG;IACpBvC,eAAe,CAACyB,GAAG,CAACpB,UAAU,CAACE,KAAK,CAAC,EAAEmB,MAAM,CAACtB,EAAE,CAAC;EACnD;EAEAP,eAAe,CAAC,MAAM;IACpB0C,UAAU,CAAC,CAAC;EACd,CAAC,CAAC;EAEF,OAAO;IAAElC,UAAU;IAAEL,eAAe;IAAE+B;EAAgB,CAAC;AACzD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuyeon",
3
- "version": "0.0.42-rc26",
3
+ "version": "0.0.42-rc27",
4
4
  "keywords": [
5
5
  "UI Library",
6
6
  "Vue"
@@ -1,24 +1,352 @@
1
1
  import type { PropType } from 'vue';
2
+ export declare const pressYDialogPropsOptions: <Defaults extends {
3
+ disabled?: unknown;
4
+ theme?: unknown;
5
+ width?: unknown;
6
+ height?: unknown;
7
+ modelValue?: unknown;
8
+ scrim?: unknown;
9
+ scrimOpacity?: unknown;
10
+ eager?: unknown;
11
+ contentClasses?: unknown;
12
+ closeClickScrim?: unknown;
13
+ contentStyles?: unknown;
14
+ openOnHover?: unknown;
15
+ openDelay?: unknown;
16
+ closeDelay?: unknown;
17
+ coordinateStrategy?: unknown;
18
+ position?: unknown;
19
+ align?: unknown;
20
+ origin?: unknown;
21
+ viewportMargin?: unknown;
22
+ minWidth?: unknown;
23
+ maxWidth?: unknown;
24
+ minHeight?: unknown;
25
+ maxHeight?: unknown;
26
+ transition?: unknown;
27
+ persistent?: unknown;
28
+ dialogClasses?: unknown;
29
+ maximized?: unknown;
30
+ offset?: unknown;
31
+ } = {}>(defaults?: Defaults | undefined) => {
32
+ disabled: unknown extends Defaults["disabled"] ? {
33
+ type: PropType<boolean>;
34
+ default: boolean;
35
+ } : Omit<{
36
+ type: PropType<boolean>;
37
+ default: boolean;
38
+ }, "type" | "default"> & {
39
+ type: PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
40
+ default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
41
+ };
42
+ theme: unknown extends Defaults["theme"] ? PropType<string> : {
43
+ type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
44
+ default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
45
+ };
46
+ width: unknown extends Defaults["width"] ? PropType<string | number> : {
47
+ type: PropType<unknown extends Defaults["width"] ? string | number : NonNullable<string | number> | Defaults["width"]>;
48
+ default: unknown extends Defaults["width"] ? string | number : NonNullable<string | number> | Defaults["width"];
49
+ };
50
+ height: unknown extends Defaults["height"] ? PropType<string | number> : {
51
+ type: PropType<unknown extends Defaults["height"] ? string | number : NonNullable<string | number> | Defaults["height"]>;
52
+ default: unknown extends Defaults["height"] ? string | number : NonNullable<string | number> | Defaults["height"];
53
+ };
54
+ modelValue: unknown extends Defaults["modelValue"] ? {
55
+ type: PropType<boolean>;
56
+ } : Omit<{
57
+ type: PropType<boolean>;
58
+ }, "type" | "default"> & {
59
+ type: PropType<unknown extends Defaults["modelValue"] ? boolean : boolean | Defaults["modelValue"]>;
60
+ default: unknown extends Defaults["modelValue"] ? boolean : boolean | Defaults["modelValue"];
61
+ };
62
+ scrim: unknown extends Defaults["scrim"] ? Omit<{
63
+ type: PropType<boolean>;
64
+ }, "type" | "default"> & {
65
+ type: PropType<boolean>;
66
+ default: boolean;
67
+ } : Omit<Omit<{
68
+ type: PropType<boolean>;
69
+ }, "type" | "default"> & {
70
+ type: PropType<boolean>;
71
+ default: boolean;
72
+ }, "type" | "default"> & {
73
+ type: PropType<unknown extends Defaults["scrim"] ? boolean : boolean | Defaults["scrim"]>;
74
+ default: unknown extends Defaults["scrim"] ? boolean : boolean | Defaults["scrim"];
75
+ };
76
+ scrimOpacity: unknown extends Defaults["scrimOpacity"] ? {
77
+ type: PropType<number>;
78
+ } : Omit<{
79
+ type: PropType<number>;
80
+ }, "type" | "default"> & {
81
+ type: PropType<unknown extends Defaults["scrimOpacity"] ? number : number | Defaults["scrimOpacity"]>;
82
+ default: unknown extends Defaults["scrimOpacity"] ? number : number | Defaults["scrimOpacity"];
83
+ };
84
+ eager: unknown extends Defaults["eager"] ? {
85
+ type: PropType<boolean>;
86
+ } : Omit<{
87
+ type: PropType<boolean>;
88
+ }, "type" | "default"> & {
89
+ type: PropType<unknown extends Defaults["eager"] ? boolean : boolean | Defaults["eager"]>;
90
+ default: unknown extends Defaults["eager"] ? boolean : boolean | Defaults["eager"];
91
+ };
92
+ contentClasses: unknown extends Defaults["contentClasses"] ? {
93
+ type: PropType<string | string[] | Record<string, any>>;
94
+ } : Omit<{
95
+ type: PropType<string | string[] | Record<string, any>>;
96
+ }, "type" | "default"> & {
97
+ type: PropType<unknown extends Defaults["contentClasses"] ? string | string[] | Record<string, any> : Defaults["contentClasses"] | NonNullable<string | string[] | Record<string, any>>>;
98
+ default: unknown extends Defaults["contentClasses"] ? string | string[] | Record<string, any> : Defaults["contentClasses"] | NonNullable<string | string[] | Record<string, any>>;
99
+ };
100
+ closeClickScrim: unknown extends Defaults["closeClickScrim"] ? {
101
+ type: PropType<boolean>;
102
+ } : Omit<{
103
+ type: PropType<boolean>;
104
+ }, "type" | "default"> & {
105
+ type: PropType<unknown extends Defaults["closeClickScrim"] ? boolean : boolean | Defaults["closeClickScrim"]>;
106
+ default: unknown extends Defaults["closeClickScrim"] ? boolean : boolean | Defaults["closeClickScrim"];
107
+ };
108
+ contentStyles: unknown extends Defaults["contentStyles"] ? {
109
+ type: PropType<import("vue").CSSProperties>;
110
+ default: () => void;
111
+ } : Omit<{
112
+ type: PropType<import("vue").CSSProperties>;
113
+ default: () => void;
114
+ }, "type" | "default"> & {
115
+ type: PropType<unknown extends Defaults["contentStyles"] ? import("vue").CSSProperties : import("vue").CSSProperties | Defaults["contentStyles"]>;
116
+ default: unknown extends Defaults["contentStyles"] ? import("vue").CSSProperties : import("vue").CSSProperties | Defaults["contentStyles"];
117
+ };
118
+ openOnHover: unknown extends Defaults["openOnHover"] ? {
119
+ type: PropType<boolean>;
120
+ default: boolean;
121
+ } : Omit<{
122
+ type: PropType<boolean>;
123
+ default: boolean;
124
+ }, "type" | "default"> & {
125
+ type: PropType<unknown extends Defaults["openOnHover"] ? boolean : boolean | Defaults["openOnHover"]>;
126
+ default: unknown extends Defaults["openOnHover"] ? boolean : boolean | Defaults["openOnHover"];
127
+ };
128
+ openDelay: unknown extends Defaults["openDelay"] ? {
129
+ type: PropType<number>;
130
+ default: number;
131
+ } : Omit<{
132
+ type: PropType<number>;
133
+ default: number;
134
+ }, "type" | "default"> & {
135
+ type: PropType<unknown extends Defaults["openDelay"] ? number : number | Defaults["openDelay"]>;
136
+ default: unknown extends Defaults["openDelay"] ? number : number | Defaults["openDelay"];
137
+ };
138
+ closeDelay: unknown extends Defaults["closeDelay"] ? {
139
+ type: PropType<number>;
140
+ default: number;
141
+ } : Omit<{
142
+ type: PropType<number>;
143
+ default: number;
144
+ }, "type" | "default"> & {
145
+ type: PropType<unknown extends Defaults["closeDelay"] ? number : number | Defaults["closeDelay"]>;
146
+ default: unknown extends Defaults["closeDelay"] ? number : number | Defaults["closeDelay"];
147
+ };
148
+ coordinateStrategy: unknown extends Defaults["coordinateStrategy"] ? {
149
+ type: PropType<"levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn>;
150
+ default: string;
151
+ } : Omit<{
152
+ type: PropType<"levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn>;
153
+ default: string;
154
+ }, "type" | "default"> & {
155
+ type: PropType<unknown extends Defaults["coordinateStrategy"] ? "levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn : NonNullable<"levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn> | Defaults["coordinateStrategy"]>;
156
+ default: unknown extends Defaults["coordinateStrategy"] ? "levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn : NonNullable<"levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn> | Defaults["coordinateStrategy"];
157
+ };
158
+ position: unknown extends Defaults["position"] ? {
159
+ type: PropType<"default" | "top" | "end" | "right" | "bottom" | "left" | "start">;
160
+ default: string;
161
+ } : Omit<{
162
+ type: PropType<"default" | "top" | "end" | "right" | "bottom" | "left" | "start">;
163
+ default: string;
164
+ }, "type" | "default"> & {
165
+ type: PropType<unknown extends Defaults["position"] ? "default" | "top" | "end" | "right" | "bottom" | "left" | "start" : NonNullable<"default" | "top" | "end" | "right" | "bottom" | "left" | "start"> | Defaults["position"]>;
166
+ default: unknown extends Defaults["position"] ? "default" | "top" | "end" | "right" | "bottom" | "left" | "start" : NonNullable<"default" | "top" | "end" | "right" | "bottom" | "left" | "start"> | Defaults["position"];
167
+ };
168
+ align: unknown extends Defaults["align"] ? {
169
+ type: PropType<"end" | "start" | "center">;
170
+ default: string;
171
+ } : Omit<{
172
+ type: PropType<"end" | "start" | "center">;
173
+ default: string;
174
+ }, "type" | "default"> & {
175
+ type: PropType<unknown extends Defaults["align"] ? "end" | "start" | "center" : NonNullable<"end" | "start" | "center"> | Defaults["align"]>;
176
+ default: unknown extends Defaults["align"] ? "end" | "start" | "center" : NonNullable<"end" | "start" | "center"> | Defaults["align"];
177
+ };
178
+ origin: unknown extends Defaults["origin"] ? {
179
+ type: StringConstructor;
180
+ default: string;
181
+ } : Omit<{
182
+ type: StringConstructor;
183
+ default: string;
184
+ }, "type" | "default"> & {
185
+ type: PropType<unknown extends Defaults["origin"] ? string : string | Defaults["origin"]>;
186
+ default: unknown extends Defaults["origin"] ? string : string | Defaults["origin"];
187
+ };
188
+ viewportMargin: unknown extends Defaults["viewportMargin"] ? {
189
+ type: NumberConstructor;
190
+ default: number;
191
+ } : Omit<{
192
+ type: NumberConstructor;
193
+ default: number;
194
+ }, "type" | "default"> & {
195
+ type: PropType<unknown extends Defaults["viewportMargin"] ? number : number | Defaults["viewportMargin"]>;
196
+ default: unknown extends Defaults["viewportMargin"] ? number : number | Defaults["viewportMargin"];
197
+ };
198
+ minWidth: unknown extends Defaults["minWidth"] ? PropType<string | number> : {
199
+ type: PropType<unknown extends Defaults["minWidth"] ? string | number : NonNullable<string | number> | Defaults["minWidth"]>;
200
+ default: unknown extends Defaults["minWidth"] ? string | number : NonNullable<string | number> | Defaults["minWidth"];
201
+ };
202
+ maxWidth: unknown extends Defaults["maxWidth"] ? PropType<string | number> : {
203
+ type: PropType<unknown extends Defaults["maxWidth"] ? string | number : NonNullable<string | number> | Defaults["maxWidth"]>;
204
+ default: unknown extends Defaults["maxWidth"] ? string | number : NonNullable<string | number> | Defaults["maxWidth"];
205
+ };
206
+ minHeight: unknown extends Defaults["minHeight"] ? PropType<string | number> : {
207
+ type: PropType<unknown extends Defaults["minHeight"] ? string | number : NonNullable<string | number> | Defaults["minHeight"]>;
208
+ default: unknown extends Defaults["minHeight"] ? string | number : NonNullable<string | number> | Defaults["minHeight"];
209
+ };
210
+ maxHeight: unknown extends Defaults["maxHeight"] ? PropType<string | number> : {
211
+ type: PropType<unknown extends Defaults["maxHeight"] ? string | number : NonNullable<string | number> | Defaults["maxHeight"]>;
212
+ default: unknown extends Defaults["maxHeight"] ? string | number : NonNullable<string | number> | Defaults["maxHeight"];
213
+ };
214
+ transition: unknown extends Defaults["transition"] ? {
215
+ type: PropType<string | (import("vue").TransitionProps & {
216
+ is?: import("vue").Component | undefined;
217
+ })>;
218
+ default: string;
219
+ } : Omit<{
220
+ type: PropType<string | (import("vue").TransitionProps & {
221
+ is?: import("vue").Component | undefined;
222
+ })>;
223
+ default: string;
224
+ }, "type" | "default"> & {
225
+ type: PropType<unknown extends Defaults["transition"] ? string | (import("vue").TransitionProps & {
226
+ is?: import("vue").Component | undefined;
227
+ }) : Defaults["transition"] | NonNullable<string | (import("vue").TransitionProps & {
228
+ is?: import("vue").Component | undefined;
229
+ })>>;
230
+ default: unknown extends Defaults["transition"] ? string | (import("vue").TransitionProps & {
231
+ is?: import("vue").Component | undefined;
232
+ }) : Defaults["transition"] | NonNullable<string | (import("vue").TransitionProps & {
233
+ is?: import("vue").Component | undefined;
234
+ })>;
235
+ };
236
+ persistent: unknown extends Defaults["persistent"] ? {
237
+ type: PropType<boolean>;
238
+ default: boolean;
239
+ } : Omit<{
240
+ type: PropType<boolean>;
241
+ default: boolean;
242
+ }, "type" | "default"> & {
243
+ type: PropType<unknown extends Defaults["persistent"] ? boolean : boolean | Defaults["persistent"]>;
244
+ default: unknown extends Defaults["persistent"] ? boolean : boolean | Defaults["persistent"];
245
+ };
246
+ dialogClasses: unknown extends Defaults["dialogClasses"] ? {
247
+ type: PropType<string | string[] | Record<string, any>>;
248
+ } : Omit<{
249
+ type: PropType<string | string[] | Record<string, any>>;
250
+ }, "type" | "default"> & {
251
+ type: PropType<unknown extends Defaults["dialogClasses"] ? string | string[] | Record<string, any> : NonNullable<string | string[] | Record<string, any>> | Defaults["dialogClasses"]>;
252
+ default: unknown extends Defaults["dialogClasses"] ? string | string[] | Record<string, any> : NonNullable<string | string[] | Record<string, any>> | Defaults["dialogClasses"];
253
+ };
254
+ maximized: unknown extends Defaults["maximized"] ? PropType<boolean> : {
255
+ type: PropType<unknown extends Defaults["maximized"] ? boolean : boolean | Defaults["maximized"]>;
256
+ default: unknown extends Defaults["maximized"] ? boolean : boolean | Defaults["maximized"];
257
+ };
258
+ offset: unknown extends Defaults["offset"] ? {
259
+ type: PropType<string>;
260
+ } : Omit<{
261
+ type: PropType<string>;
262
+ }, "type" | "default"> & {
263
+ type: PropType<unknown extends Defaults["offset"] ? string : string | Defaults["offset"]>;
264
+ default: unknown extends Defaults["offset"] ? string : string | Defaults["offset"];
265
+ };
266
+ };
2
267
  export declare const YDialog: import("vue").DefineComponent<{
268
+ disabled: {
269
+ type: PropType<boolean>;
270
+ default: boolean;
271
+ };
272
+ theme: PropType<string>;
273
+ width: PropType<string | number>;
274
+ height: PropType<string | number>;
3
275
  modelValue: {
4
276
  type: PropType<boolean>;
5
277
  };
6
- persistent: {
278
+ scrim: Omit<{
279
+ type: PropType<boolean>;
280
+ }, "type" | "default"> & {
7
281
  type: PropType<boolean>;
8
282
  default: boolean;
9
283
  };
10
- dialogClasses: {
284
+ scrimOpacity: {
285
+ type: PropType<number>;
286
+ };
287
+ eager: {
288
+ type: PropType<boolean>;
289
+ };
290
+ contentClasses: {
11
291
  type: PropType<string | string[] | Record<string, any>>;
12
292
  };
13
293
  closeClickScrim: {
14
294
  type: PropType<boolean>;
15
295
  };
16
- disabled: PropType<boolean>;
17
- maximized: PropType<boolean>;
18
- scrim: {
296
+ contentStyles: {
297
+ type: PropType<import("vue").CSSProperties>;
298
+ default: () => void;
299
+ };
300
+ openOnHover: {
19
301
  type: PropType<boolean>;
20
302
  default: boolean;
21
303
  };
304
+ openDelay: {
305
+ type: PropType<number>;
306
+ default: number;
307
+ };
308
+ closeDelay: {
309
+ type: PropType<number>;
310
+ default: number;
311
+ };
312
+ coordinateStrategy: {
313
+ type: PropType<"levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn>;
314
+ default: string;
315
+ };
316
+ position: {
317
+ type: PropType<"default" | "top" | "end" | "right" | "bottom" | "left" | "start">;
318
+ default: string;
319
+ };
320
+ align: {
321
+ type: PropType<"end" | "start" | "center">;
322
+ default: string;
323
+ };
324
+ origin: {
325
+ type: StringConstructor;
326
+ default: string;
327
+ };
328
+ viewportMargin: {
329
+ type: NumberConstructor;
330
+ default: number;
331
+ };
332
+ minWidth: PropType<string | number>;
333
+ maxWidth: PropType<string | number>;
334
+ minHeight: PropType<string | number>;
335
+ maxHeight: PropType<string | number>;
336
+ transition: {
337
+ type: PropType<string | (import("vue").TransitionProps & {
338
+ is?: import("vue").Component | undefined;
339
+ })>;
340
+ default: string;
341
+ };
342
+ persistent: {
343
+ type: PropType<boolean>;
344
+ default: boolean;
345
+ };
346
+ dialogClasses: {
347
+ type: PropType<string | string[] | Record<string, any>>;
348
+ };
349
+ maximized: PropType<boolean>;
22
350
  offset: {
23
351
  type: PropType<string>;
24
352
  };
@@ -50,7 +378,7 @@ export declare const YDialog: import("vue").DefineComponent<{
50
378
  default: string;
51
379
  };
52
380
  offset: {
53
- type: (ArrayConstructor | StringConstructor | NumberConstructor)[];
381
+ type: PropType<string | number | string[]>;
54
382
  };
55
383
  viewportMargin: {
56
384
  type: NumberConstructor;
@@ -1716,7 +2044,7 @@ export declare const YDialog: import("vue").DefineComponent<{
1716
2044
  default: string;
1717
2045
  };
1718
2046
  offset: {
1719
- type: (ArrayConstructor | StringConstructor | NumberConstructor)[];
2047
+ type: PropType<string | number | string[]>;
1720
2048
  };
1721
2049
  viewportMargin: {
1722
2050
  type: NumberConstructor;
@@ -1798,31 +2126,107 @@ export declare const YDialog: import("vue").DefineComponent<{
1798
2126
  'y-dialog--maximized': boolean | undefined;
1799
2127
  }>;
1800
2128
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
2129
+ disabled: {
2130
+ type: PropType<boolean>;
2131
+ default: boolean;
2132
+ };
2133
+ theme: PropType<string>;
2134
+ width: PropType<string | number>;
2135
+ height: PropType<string | number>;
1801
2136
  modelValue: {
1802
2137
  type: PropType<boolean>;
1803
2138
  };
1804
- persistent: {
2139
+ scrim: Omit<{
2140
+ type: PropType<boolean>;
2141
+ }, "type" | "default"> & {
1805
2142
  type: PropType<boolean>;
1806
2143
  default: boolean;
1807
2144
  };
1808
- dialogClasses: {
2145
+ scrimOpacity: {
2146
+ type: PropType<number>;
2147
+ };
2148
+ eager: {
2149
+ type: PropType<boolean>;
2150
+ };
2151
+ contentClasses: {
1809
2152
  type: PropType<string | string[] | Record<string, any>>;
1810
2153
  };
1811
2154
  closeClickScrim: {
1812
2155
  type: PropType<boolean>;
1813
2156
  };
1814
- disabled: PropType<boolean>;
1815
- maximized: PropType<boolean>;
1816
- scrim: {
2157
+ contentStyles: {
2158
+ type: PropType<import("vue").CSSProperties>;
2159
+ default: () => void;
2160
+ };
2161
+ openOnHover: {
2162
+ type: PropType<boolean>;
2163
+ default: boolean;
2164
+ };
2165
+ openDelay: {
2166
+ type: PropType<number>;
2167
+ default: number;
2168
+ };
2169
+ closeDelay: {
2170
+ type: PropType<number>;
2171
+ default: number;
2172
+ };
2173
+ coordinateStrategy: {
2174
+ type: PropType<"levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn>;
2175
+ default: string;
2176
+ };
2177
+ position: {
2178
+ type: PropType<"default" | "top" | "end" | "right" | "bottom" | "left" | "start">;
2179
+ default: string;
2180
+ };
2181
+ align: {
2182
+ type: PropType<"end" | "start" | "center">;
2183
+ default: string;
2184
+ };
2185
+ origin: {
2186
+ type: StringConstructor;
2187
+ default: string;
2188
+ };
2189
+ viewportMargin: {
2190
+ type: NumberConstructor;
2191
+ default: number;
2192
+ };
2193
+ minWidth: PropType<string | number>;
2194
+ maxWidth: PropType<string | number>;
2195
+ minHeight: PropType<string | number>;
2196
+ maxHeight: PropType<string | number>;
2197
+ transition: {
2198
+ type: PropType<string | (import("vue").TransitionProps & {
2199
+ is?: import("vue").Component | undefined;
2200
+ })>;
2201
+ default: string;
2202
+ };
2203
+ persistent: {
1817
2204
  type: PropType<boolean>;
1818
2205
  default: boolean;
1819
2206
  };
2207
+ dialogClasses: {
2208
+ type: PropType<string | string[] | Record<string, any>>;
2209
+ };
2210
+ maximized: PropType<boolean>;
1820
2211
  offset: {
1821
2212
  type: PropType<string>;
1822
2213
  };
1823
2214
  }>> & {
1824
2215
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
1825
2216
  }, {
2217
+ disabled: boolean;
1826
2218
  scrim: boolean;
2219
+ contentStyles: import("vue").CSSProperties;
2220
+ openOnHover: boolean;
2221
+ openDelay: number;
2222
+ closeDelay: number;
2223
+ coordinateStrategy: "levitation" | "arrangement" | import("../../composables/coordinate").CoordinateStrategyFn;
2224
+ position: "default" | "top" | "end" | "right" | "bottom" | "left" | "start";
2225
+ align: "end" | "start" | "center";
2226
+ origin: string;
2227
+ viewportMargin: number;
2228
+ transition: string | (import("vue").TransitionProps & {
2229
+ is?: import("vue").Component | undefined;
2230
+ });
1827
2231
  persistent: boolean;
1828
2232
  }, {}>;