@mhmo91/schmancy 0.2.167 → 0.2.169
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.
- package/dist/{animated-text-DA-3v-21.js → animated-text-CuzUjLrt.js} +3 -3
- package/dist/{animated-text-DA-3v-21.js.map → animated-text-CuzUjLrt.js.map} +1 -1
- package/dist/{animated-text-lwWN_CvH.cjs → animated-text-DnpEmzG6.cjs} +2 -2
- package/dist/{animated-text-lwWN_CvH.cjs.map → animated-text-DnpEmzG6.cjs.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/{area.component-Bau-x6P0.cjs → area.component-BScAAi9b.cjs} +2 -2
- package/dist/{area.component-Bau-x6P0.cjs.map → area.component-BScAAi9b.cjs.map} +1 -1
- package/dist/{area.component-DCHQQDCl.js → area.component-yPcYESCN.js} +3 -3
- package/dist/{area.component-DCHQQDCl.js.map → area.component-yPcYESCN.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-D9ii96SS.cjs → autocomplete-BAblB5US.cjs} +2 -2
- package/dist/{autocomplete-D9ii96SS.cjs.map → autocomplete-BAblB5US.cjs.map} +1 -1
- package/dist/{autocomplete-Bt7jj509.js → autocomplete-DzN6JlKD.js} +3 -3
- package/dist/{autocomplete-Bt7jj509.js.map → autocomplete-DzN6JlKD.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-CS9RglB6.js → checkbox-CKwb-uFj.js} +2 -2
- package/dist/{checkbox-CS9RglB6.js.map → checkbox-CKwb-uFj.js.map} +1 -1
- package/dist/{checkbox-D8ZCs6gE.cjs → checkbox-j-8nzAvA.cjs} +2 -2
- package/dist/{checkbox-D8ZCs6gE.cjs.map → checkbox-j-8nzAvA.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-2eS0Uabf.cjs → chips-COn9_IpC.cjs} +2 -2
- package/dist/{chips-2eS0Uabf.cjs.map → chips-COn9_IpC.cjs.map} +1 -1
- package/dist/{chips-CGx5hIpM.js → chips-DkIA91MS.js} +3 -3
- package/dist/{chips-CGx5hIpM.js.map → chips-DkIA91MS.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-BhRvAfht.js → date-range-BPWhrUmb.js} +3 -3
- package/dist/{date-range-BhRvAfht.js.map → date-range-BPWhrUmb.js.map} +1 -1
- package/dist/{date-range-C2v9Y4im.cjs → date-range-c5unYbcG.cjs} +2 -2
- package/dist/{date-range-C2v9Y4im.cjs.map → date-range-c5unYbcG.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-03oE5Cr5.js → delay-BoVPkUxV.js} +2 -2
- package/dist/{delay-03oE5Cr5.js.map → delay-BoVPkUxV.js.map} +1 -1
- package/dist/{delay-BKlWEq_b.cjs → delay-dM9FOKCv.cjs} +2 -2
- package/dist/{delay-BKlWEq_b.cjs.map → delay-dM9FOKCv.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/dialog-service-B55dEe3k.cjs +66 -0
- package/dist/dialog-service-B55dEe3k.cjs.map +1 -0
- package/dist/dialog-service-wBbOEDry.js +185 -0
- package/dist/dialog-service-wBbOEDry.js.map +1 -0
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +4 -2
- package/dist/{divider-MDgnPyjf.cjs → divider-B2lNC0Hi.cjs} +2 -2
- package/dist/{divider-MDgnPyjf.cjs.map → divider-B2lNC0Hi.cjs.map} +1 -1
- package/dist/{divider-DPSk5k6b.js → divider-BDG7M6Ye.js} +3 -3
- package/dist/{divider-DPSk5k6b.js.map → divider-BDG7M6Ye.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-Y68UDk_E.js → dropdown-content-CA3A8GVG.js} +3 -3
- package/dist/{dropdown-content-Y68UDk_E.js.map → dropdown-content-CA3A8GVG.js.map} +1 -1
- package/dist/{dropdown-content-Cp3LicWP.cjs → dropdown-content-seaVnlz3.cjs} +2 -2
- package/dist/{dropdown-content-Cp3LicWP.cjs.map → dropdown-content-seaVnlz3.cjs.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-CwDaUMpk.cjs → flex-Bt5rjiJc.cjs} +2 -2
- package/dist/{flex-CwDaUMpk.cjs.map → flex-Bt5rjiJc.cjs.map} +1 -1
- package/dist/{flex-DWPLe30j.js → flex-c0NHmPAm.js} +2 -2
- package/dist/{flex-DWPLe30j.js.map → flex-c0NHmPAm.js.map} +1 -1
- package/dist/{form-CuUsMb2V.cjs → form-DBe9nCyD.cjs} +2 -2
- package/dist/{form-CuUsMb2V.cjs.map → form-DBe9nCyD.cjs.map} +1 -1
- package/dist/{form-8hjOXiym.js → form-UMB7mWaN.js} +2 -2
- package/dist/{form-8hjOXiym.js.map → form-UMB7mWaN.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-Dd6UV9m-.js → icon-BaUginFZ.js} +3 -3
- package/dist/{icon-Dd6UV9m-.js.map → icon-BaUginFZ.js.map} +1 -1
- package/dist/{icon-CH_Fr8NQ.cjs → icon-ClqiTwLk.cjs} +2 -2
- package/dist/{icon-CH_Fr8NQ.cjs.map → icon-ClqiTwLk.cjs.map} +1 -1
- package/dist/{icon-button-ChxAWoCV.cjs → icon-button-BuQaHhHo.cjs} +2 -2
- package/dist/{icon-button-ChxAWoCV.cjs.map → icon-button-BuQaHhHo.cjs.map} +1 -1
- package/dist/{icon-button-Dwc6YpJD.js → icon-button-D15DCKEh.js} +3 -3
- package/dist/{icon-button-Dwc6YpJD.js.map → icon-button-D15DCKEh.js.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +61 -59
- package/dist/{input-huynZ0kJ.cjs → input-BUwEVCui.cjs} +2 -2
- package/dist/{input-huynZ0kJ.cjs.map → input-BUwEVCui.cjs.map} +1 -1
- package/dist/{input-Cs1xxZmx.js → input-C6sT1ZaK.js} +2 -2
- package/dist/{input-Cs1xxZmx.js.map → input-C6sT1ZaK.js.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-CsnE1zSb.cjs → list-B2aWxkkk.cjs} +2 -2
- package/dist/{list-CsnE1zSb.cjs.map → list-B2aWxkkk.cjs.map} +1 -1
- package/dist/{list-B0HT5Iuc.js → list-BL2o6M7R.js} +2 -2
- package/dist/{list-B0HT5Iuc.js.map → list-BL2o6M7R.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-BEw8-T-i.cjs → litElement.mixin-DqMWf6Rp.cjs} +2 -2
- package/dist/{litElement.mixin-BEw8-T-i.cjs.map → litElement.mixin-DqMWf6Rp.cjs.map} +1 -1
- package/dist/{litElement.mixin-KvfZL1-7.js → litElement.mixin-hg90OkNF.js} +2 -2
- package/dist/{litElement.mixin-KvfZL1-7.js.map → litElement.mixin-hg90OkNF.js.map} +1 -1
- package/dist/{menu-C5ZJSwZ9.cjs → menu-CYU7-A6s.cjs} +2 -2
- package/dist/{menu-C5ZJSwZ9.cjs.map → menu-CYU7-A6s.cjs.map} +1 -1
- package/dist/{menu-BGyvUeAt.js → menu-DLdGFJSB.js} +3 -3
- package/dist/{menu-BGyvUeAt.js.map → menu-DLdGFJSB.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/{notification-service-DnQ_08kT.js → notification-service-B--dZyDk.js} +3 -3
- package/dist/{notification-service-DnQ_08kT.js.map → notification-service-B--dZyDk.js.map} +1 -1
- package/dist/{notification-service-B66BI_gE.cjs → notification-service-Y81cuyI1.cjs} +2 -2
- package/dist/{notification-service-B66BI_gE.cjs.map → notification-service-Y81cuyI1.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-C5tVz98p.js → option-Jf25Ua_q.js} +2 -2
- package/dist/{option-C5tVz98p.js.map → option-Jf25Ua_q.js.map} +1 -1
- package/dist/{option-C2fF948D.cjs → option-Y52lFc0k.cjs} +2 -2
- package/dist/{option-C2fF948D.cjs.map → option-Y52lFc0k.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-C-fZxGAB.js → payment-card-form-Bzx839eL.js} +3 -3
- package/dist/{payment-card-form-C-fZxGAB.js.map → payment-card-form-Bzx839eL.js.map} +1 -1
- package/dist/{payment-card-form-DhNlMTrt.cjs → payment-card-form-CeW7v8C6.cjs} +2 -2
- package/dist/{payment-card-form-DhNlMTrt.cjs.map → payment-card-form-CeW7v8C6.cjs.map} +1 -1
- package/dist/{radio-group-C_yGuZgL.js → radio-group-D0lUCZoy.js} +2 -2
- package/dist/{radio-group-C_yGuZgL.js.map → radio-group-D0lUCZoy.js.map} +1 -1
- package/dist/{radio-group-CNrSbbO7.cjs → radio-group-DaIoovBv.cjs} +2 -2
- package/dist/{radio-group-CNrSbbO7.cjs.map → radio-group-DaIoovBv.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-B9l2jKV3.cjs → schmancy-steps-container-CTGyq1in.cjs} +2 -2
- package/dist/{schmancy-steps-container-B9l2jKV3.cjs.map → schmancy-steps-container-CTGyq1in.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-CuAkF6he.js → schmancy-steps-container-DN_2r-CO.js} +2 -2
- package/dist/{schmancy-steps-container-CuAkF6he.js.map → schmancy-steps-container-DN_2r-CO.js.map} +1 -1
- package/dist/{select-AuToO7LO.js → select-ChfaG1oV.js} +3 -3
- package/dist/{select-AuToO7LO.js.map → select-ChfaG1oV.js.map} +1 -1
- package/dist/{select-CnxFjJF3.cjs → select-F73s56La.cjs} +2 -2
- package/dist/{select-CnxFjJF3.cjs.map → select-F73s56La.cjs.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-sx_nf44b.cjs → sheet-BMv294LB.cjs} +2 -2
- package/dist/{sheet-sx_nf44b.cjs.map → sheet-BMv294LB.cjs.map} +1 -1
- package/dist/{sheet-Fjv-QyZd.js → sheet-D_sv4wbj.js} +3 -3
- package/dist/{sheet-Fjv-QyZd.js.map → sheet-D_sv4wbj.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-CWAFIgPR.js → slider-CJXXfzVG.js} +3 -3
- package/dist/{slider-CWAFIgPR.js.map → slider-CJXXfzVG.js.map} +1 -1
- package/dist/{slider-Bix75ZiW.cjs → slider-d4pNWdNo.cjs} +2 -2
- package/dist/{slider-Bix75ZiW.cjs.map → slider-d4pNWdNo.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-CNDwOtK4.cjs → spinner-Cyoa6FUg.cjs} +2 -2
- package/dist/{spinner-CNDwOtK4.cjs.map → spinner-Cyoa6FUg.cjs.map} +1 -1
- package/dist/{spinner-4SZPueN_.js → spinner-DFyG-_vp.js} +3 -3
- package/dist/{spinner-4SZPueN_.js.map → spinner-DFyG-_vp.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface--3NLZv7B.cjs → surface-BiwDfTwH.cjs} +2 -2
- package/dist/{surface--3NLZv7B.cjs.map → surface-BiwDfTwH.cjs.map} +1 -1
- package/dist/{surface-BopIbt8V.js → surface-CnL6po0z.js} +2 -2
- package/dist/{surface-BopIbt8V.js.map → surface-CnL6po0z.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-Ove0ySNg.cjs → table-DY3znSpx.cjs} +2 -2
- package/dist/{table-Ove0ySNg.cjs.map → table-DY3znSpx.cjs.map} +1 -1
- package/dist/{table-BwUI062l.js → table-DuGCm_ZT.js} +2 -2
- package/dist/{table-BwUI062l.js.map → table-DuGCm_ZT.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-group-DjJSlhoF.cjs → tabs-group-CLoDXsPN.cjs} +2 -2
- package/dist/{tabs-group-DjJSlhoF.cjs.map → tabs-group-CLoDXsPN.cjs.map} +1 -1
- package/dist/{tabs-group-Cnqu7yKU.js → tabs-group-DNIr9bXC.js} +2 -2
- package/dist/{tabs-group-Cnqu7yKU.js.map → tabs-group-DNIr9bXC.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-C-SZB7Or.cjs +2 -0
- package/dist/{tailwind.mixin-3l-Om0oz.cjs.map → tailwind.mixin-C-SZB7Or.cjs.map} +1 -1
- package/dist/tailwind.mixin-PpOEXUY6.js +43 -0
- package/dist/{tailwind.mixin-B2sscaiD.js.map → tailwind.mixin-PpOEXUY6.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-BNQxK07I.cjs → teleport.component-CHqb2Vou.cjs} +2 -2
- package/dist/{teleport.component-BNQxK07I.cjs.map → teleport.component-CHqb2Vou.cjs.map} +1 -1
- package/dist/{teleport.component-CsJzJB21.js → teleport.component-gowB4Yks.js} +40 -40
- package/dist/{teleport.component-CsJzJB21.js.map → teleport.component-gowB4Yks.js.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-BO-6e5mD.js → textarea-CxKPwLNT.js} +2 -2
- package/dist/{textarea-BO-6e5mD.js.map → textarea-CxKPwLNT.js.map} +1 -1
- package/dist/{textarea-v-hTs5Op.cjs → textarea-Dbn8e_6U.cjs} +2 -2
- package/dist/{textarea-v-hTs5Op.cjs.map → textarea-Dbn8e_6U.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-BPDiuqcw.js → theme-button-BWLSsLkw.js} +2 -2
- package/dist/{theme-button-BPDiuqcw.js.map → theme-button-BWLSsLkw.js.map} +1 -1
- package/dist/{theme-button-xYebdcpR.cjs → theme-button-D9peR8Hg.cjs} +2 -2
- package/dist/{theme-button-xYebdcpR.cjs.map → theme-button-D9peR8Hg.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-AqF6voZO.cjs → theme.component-BQhUaquX.cjs} +2 -2
- package/dist/{theme.component-AqF6voZO.cjs.map → theme.component-BQhUaquX.cjs.map} +1 -1
- package/dist/{theme.component-DSYR2v9i.js → theme.component-BZz_gSfx.js} +2 -2
- package/dist/{theme.component-DSYR2v9i.js.map → theme.component-BZz_gSfx.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-CpC-MZrR.cjs → timezone-B4sTteJT.cjs} +2 -2
- package/dist/{timezone-CpC-MZrR.cjs.map → timezone-B4sTteJT.cjs.map} +1 -1
- package/dist/{timezone-jiBwM-rj.js → timezone-CvRTvxiu.js} +3 -3
- package/dist/{timezone-jiBwM-rj.js.map → timezone-CvRTvxiu.js.map} +1 -1
- package/dist/{tooltip-D_lf2sga.js → tooltip-BvlP4LLw.js} +2 -2
- package/dist/{tooltip-D_lf2sga.js.map → tooltip-BvlP4LLw.js.map} +1 -1
- package/dist/{tooltip-CirVLg99.cjs → tooltip-CKmoUynJ.cjs} +2 -2
- package/dist/{tooltip-CirVLg99.cjs.map → tooltip-CKmoUynJ.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-BoPjWbsK.cjs → tree-Pa4t5MHy.cjs} +2 -2
- package/dist/{tree-BoPjWbsK.cjs.map → tree-Pa4t5MHy.cjs.map} +1 -1
- package/dist/{tree-DjReAMHp.js → tree-UFPk4UJM.js} +2 -2
- package/dist/{tree-DjReAMHp.js.map → tree-UFPk4UJM.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-BYQfobUl.js → typewriter-CEFN5I2Z.js} +4 -4
- package/dist/{typewriter-BYQfobUl.js.map → typewriter-CEFN5I2Z.js.map} +1 -1
- package/dist/{typewriter-Db12IRvF.cjs → typewriter-DXYFRAAl.cjs} +2 -2
- package/dist/{typewriter-Db12IRvF.cjs.map → typewriter-DXYFRAAl.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-BMR7-5oH.cjs → typography-CF76Gm8m.cjs} +2 -2
- package/dist/{typography-BMR7-5oH.cjs.map → typography-CF76Gm8m.cjs.map} +1 -1
- package/dist/{typography-DP09bzzJ.js → typography-DG3juvGV.js} +2 -2
- package/dist/{typography-DP09bzzJ.js.map → typography-DG3juvGV.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/dialog/dailog.d.ts +39 -21
- package/types/src/dialog/dialog-service.d.ts +82 -0
- package/types/src/dialog/index.d.ts +1 -0
- package/dist/dailog-DAJREbGA.cjs +0 -79
- package/dist/dailog-DAJREbGA.cjs.map +0 -1
- package/dist/dailog-DQHJeJ0g.js +0 -133
- package/dist/dailog-DQHJeJ0g.js.map +0 -1
- package/dist/tailwind.mixin-3l-Om0oz.cjs +0 -2
- package/dist/tailwind.mixin-B2sscaiD.js +0 -43
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const E=require("lit/html.js"),m=require("lit/directive.js"),N=require("lit/async-directive.js"),k=require("./provide-BGGp1Iks.cjs"),x=require("./consume-uKrSupzs.cjs"),q=require("./litElement.mixin-
|
|
1
|
+
"use strict";const E=require("lit/html.js"),m=require("lit/directive.js"),N=require("lit/async-directive.js"),k=require("./provide-BGGp1Iks.cjs"),x=require("./consume-uKrSupzs.cjs"),q=require("./litElement.mixin-DqMWf6Rp.cjs"),v=require("lit"),c=require("lit/decorators.js"),P=require("lit/directives/cache.js"),K=require("rxjs"),$=require("rxjs/operators"),j=new WeakMap;let b=0;const y=new Map,S=new WeakSet,A=()=>new Promise(n=>requestAnimationFrame(n)),L=[{transform:"translateY(100%) scale(0)",opacity:0}],T=[{transform:"translateY(-100%) scale(0)",opacity:0}],M=[{opacity:0},{opacity:1}],C=(n,t)=>{const e=n-t;return e===0?void 0:e},w=(n,t)=>{const e=n/t;return e===1?void 0:e},f={left:(n,t)=>{const e=C(n,t);return{value:e,transform:e==null||isNaN(e)?void 0:`translateX(${e}px)`}},top:(n,t)=>{const e=C(n,t);return{value:e,transform:e==null||isNaN(e)?void 0:`translateY(${e}px)`}},width:(n,t)=>{let e;t===0&&(t=1,e={width:"1px"});const i=w(n,t);return{value:i,overrideFrom:e,transform:i==null||isNaN(i)?void 0:`scaleX(${i})`}},height:(n,t)=>{let e;t===0&&(t=1,e={height:"1px"});const i=w(n,t);return{value:i,overrideFrom:e,transform:i==null||isNaN(i)?void 0:`scaleY(${i})`}}},R={duration:333,easing:"ease-in-out"},B=["left","top","width","height","opacity","color","background"],D=new WeakMap;class I extends N.AsyncDirective{constructor(t){if(super(t),this.t=!1,this.i=null,this.o=null,this.h=!0,this.shouldLog=!1,t.type===m.PartType.CHILD)throw Error("The `animate` directive must be used in attribute position.");this.createFinished()}createFinished(){var t;(t=this.resolveFinished)==null||t.call(this),this.finished=new Promise(e=>{this.l=e})}async resolveFinished(){var t;(t=this.l)==null||t.call(this),this.l=void 0}render(t){return E.nothing}getController(){return j.get(this.u)}isDisabled(){var t;return this.options.disabled||((t=this.getController())==null?void 0:t.disabled)}update(t,[e]){var s;const i=this.u===void 0;return i&&(this.u=(s=t.options)==null?void 0:s.host,this.u.addController(this),this.u.updateComplete.then(o=>this.t=!0),this.element=t.element,D.set(this.element,this)),this.optionsOrCallback=e,(i||typeof e!="function")&&this.p(e),this.render(e)}p(t){t=t??{};const e=this.getController();e!==void 0&&((t={...e.defaultOptions,...t}).keyframeOptions={...e.defaultOptions.keyframeOptions,...t.keyframeOptions}),t.properties??(t.properties=B),this.options=t}m(){const t={},e=this.element.getBoundingClientRect(),i=getComputedStyle(this.element);return this.options.properties.forEach(s=>{const o=e[s]??(f[s]?void 0:i[s]),r=Number(o);t[s]=isNaN(r)?o+"":r}),t}v(){let t,e=!0;return this.options.guard&&(t=this.options.guard(),e=((i,s)=>{if(Array.isArray(i)){if(Array.isArray(s)&&s.length===i.length&&i.every((o,r)=>o===s[r]))return!1}else if(s===i)return!1;return!0})(t,this._)),this.h=this.t&&!this.isDisabled()&&!this.isAnimating()&&e&&this.element.isConnected,this.h&&(this._=Array.isArray(t)?Array.from(t):t),this.h}hostUpdate(){typeof this.optionsOrCallback=="function"&&this.p(this.optionsOrCallback()),this.v()&&(this.A=this.m(),this.i=this.i??this.element.parentNode,this.o=this.element.nextSibling)}async hostUpdated(){if(!this.h||!this.element.isConnected||this.options.skipInitial&&!this.isHostRendered)return;let t;this.prepare(),await A;const e=this.O(),i=this.j(this.options.keyframeOptions,e),s=this.m();if(this.A!==void 0){const{from:o,to:r}=this.N(this.A,s,e);this.log("measured",[this.A,s,o,r]),t=this.calculateKeyframes(o,r)}else{const o=y.get(this.options.inId);if(o){y.delete(this.options.inId);const{from:r,to:h}=this.N(o,s,e);t=this.calculateKeyframes(r,h),t=this.options.in?[{...this.options.in[0],...t[0]},...this.options.in.slice(1),t[1]]:t,b++,t.forEach(a=>a.zIndex=b)}else this.options.in&&(t=[...this.options.in,{}])}this.animate(t,i)}resetStyles(){this.P!==void 0&&(this.element.setAttribute("style",this.P??""),this.P=void 0)}commitStyles(){var t,e;this.P=this.element.getAttribute("style"),(t=this.webAnimation)==null||t.commitStyles(),(e=this.webAnimation)==null||e.cancel()}reconnected(){}async disconnected(){var e;if(!this.h||(this.options.id!==void 0&&y.set(this.options.id,this.A),this.options.out===void 0))return;if(this.prepare(),await A(),(e=this.i)==null?void 0:e.isConnected){const i=this.o&&this.o.parentNode===this.i?this.o:null;if(this.i.insertBefore(this.element,i),this.options.stabilizeOut){const s=this.m();this.log("stabilizing out");const o=this.A.left-s.left,r=this.A.top-s.top;getComputedStyle(this.element).position!=="static"||o===0&&r===0||(this.element.style.position="relative"),o!==0&&(this.element.style.left=o+"px"),r!==0&&(this.element.style.top=r+"px")}}const t=this.j(this.options.keyframeOptions);await this.animate(this.options.out,t),this.element.remove()}prepare(){this.createFinished()}start(){var t,e;(e=(t=this.options).onStart)==null||e.call(t,this)}didFinish(t){var e,i;t&&((i=(e=this.options).onComplete)==null||i.call(e,this)),this.A=void 0,this.animatingProperties=void 0,this.frames=void 0,this.resolveFinished()}O(){const t=[];for(let e=this.element.parentNode;e;e=e==null?void 0:e.parentNode){const i=D.get(e);i&&!i.isDisabled()&&i&&t.push(i)}return t}get isHostRendered(){const t=S.has(this.u);return t||this.u.updateComplete.then(()=>{S.add(this.u)}),t}j(t,e=this.O()){const i={...R};return e.forEach(s=>Object.assign(i,s.options.keyframeOptions)),Object.assign(i,t),i}N(t,e,i){t={...t},e={...e};const s=i.map(h=>h.animatingProperties).filter(h=>h!==void 0);let o=1,r=1;return s.length>0&&(s.forEach(h=>{h.width&&(o/=h.width),h.height&&(r/=h.height)}),t.left!==void 0&&e.left!==void 0&&(t.left=o*t.left,e.left=o*e.left),t.top!==void 0&&e.top!==void 0&&(t.top=r*t.top,e.top=r*e.top)),{from:t,to:e}}calculateKeyframes(t,e,i=!1){const s={},o={};let r=!1;const h={};for(const a in e){const d=t[a],p=e[a];if(a in f){const F=f[a];if(d===void 0||p===void 0)continue;const u=F(d,p);u.transform!==void 0&&(h[a]=u.value,r=!0,s.transform=`${s.transform??""} ${u.transform}`,u.overrideFrom!==void 0&&Object.assign(s,u.overrideFrom))}else d!==p&&d!==void 0&&p!==void 0&&(r=!0,s[a]=d,o[a]=p)}return s.transformOrigin=o.transformOrigin=i?"center center":"top left",this.animatingProperties=h,r?[s,o]:void 0}async animate(t,e=this.options.keyframeOptions){this.start(),this.frames=t;let i=!1;if(!this.isAnimating()&&!this.isDisabled()&&(this.options.onFrames&&(this.frames=t=this.options.onFrames(this),this.log("modified frames",t)),t!==void 0)){this.log("animate",[t,e]),i=!0,this.webAnimation=this.element.animate(t,e);const s=this.getController();s==null||s.add(this);try{await this.webAnimation.finished}catch{}s==null||s.remove(this)}return this.didFinish(i),i}isAnimating(){var t,e;return((t=this.webAnimation)==null?void 0:t.playState)==="running"||((e=this.webAnimation)==null?void 0:e.pending)}log(t,e){this.shouldLog&&this.isDisabled()}}const H=m.directive(I),U=["top","right","bottom","left"];class Y extends N.AsyncDirective{constructor(t){if(super(t),t.type!==m.PartType.ELEMENT)throw Error("The `position` directive must be used in attribute position.")}render(t,e){return E.nothing}update(t,[e,i]){var s;return this.u===void 0&&(this.u=(s=t.options)==null?void 0:s.host,this.u.addController(this)),this.S=t.element,this.C=e,this.F=i??["left","top","width","height"],this.render(e,i)}hostUpdated(){this.$()}$(){var o,r;const t=typeof this.C=="function"?this.C():(o=this.C)==null?void 0:o.value,e=t.offsetParent;if(t===void 0||!e)return;const i=t.getBoundingClientRect(),s=e.getBoundingClientRect();(r=this.F)==null||r.forEach(h=>{const a=U.includes(h)?i[h]-s[h]:i[h];this.S.style[h]=a+"px"})}}function O(n){let t=2166136261;for(let e=0;e<n.length;e++)t^=n.charCodeAt(e),t=16777619*t>>>0;return t.toString(16)}m.directive(Y);var z=Object.defineProperty,W=Object.getOwnPropertyDescriptor,l=(n,t,e,i)=>{for(var s,o=i>1?void 0:i?W(t,e):t,r=n.length-1;r>=0;r--)(s=n[r])&&(o=(i?s(t,e,o):s(o))||o);return i&&o&&z(t,e,o),o};const g=k.n("delay-context");exports.SchmancyDelay=class extends q.$LitElement(){constructor(){super(...arguments),this.delay=0,this.motion="flyBelow",this.rendered=!1,this.parentDelay=0,this.effectiveDelay=0,this.once=!0,this.sessionKey=""}firstUpdated(){this.observeSlotChanges(),this.updateRenderState()}disconnectedCallback(){var n;super.disconnectedCallback(),(n=this.mutationObserver)==null||n.disconnect()}observeSlotChanges(){var t;const n=(t=this.shadowRoot)==null?void 0:t.querySelector("slot");n&&(this.mutationObserver=new MutationObserver(()=>{this.sessionKey=this.generateSessionKey()}),this.mutationObserver.observe(n,{childList:!0,subtree:!0}))}getTotalSiblingDelay(n){if(!(n&&n instanceof HTMLElement))return 0;let t=0,e=n.previousElementSibling;for(;e;)e instanceof exports.SchmancyDelay&&(t+=e.delay),e=e.previousElementSibling;return n.parentElement&&(t+=this.getTotalSiblingDelay(n.parentElement)),t}updateRenderState(){if(this.sessionKey=this.generateSessionKey(),this.once&&sessionStorage.getItem(this.sessionKey)==="true")return void(this.rendered=!0);const n=this.getTotalSiblingDelay(this);this.effectiveDelay=this.delay+this.parentDelay+n,K.timer(this.effectiveDelay).pipe($.takeUntil(this.disconnecting)).subscribe(()=>{if(this.rendered=!0,this.once)try{sessionStorage.setItem(this.sessionKey,"true")}catch{}})}generateSessionKey(){const n=this.assignedElements.map(t=>t.outerHTML).join("");return this.once?O(n):""}get motionLit(){return this.motion==="flyBelow"?L:this.motion==="flyAbove"?T:M}render(){return P.cache(this.rendered?v.html`<div
|
|
2
2
|
${H({in:this.motionLit,keyframeOptions:{duration:300,easing:"ease-out"}})}
|
|
3
3
|
>
|
|
4
4
|
<slot></slot>
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
<slot></slot>
|
|
8
8
|
</section>
|
|
9
9
|
`)}},l([c.property({type:Number,reflect:!0})],exports.SchmancyDelay.prototype,"delay",2),l([c.property({type:String})],exports.SchmancyDelay.prototype,"motion",2),l([c.state()],exports.SchmancyDelay.prototype,"rendered",2),l([x.c({context:g,subscribe:!0})],exports.SchmancyDelay.prototype,"parentDelay",2),l([k.e({context:g})],exports.SchmancyDelay.prototype,"effectiveDelay",2),l([c.property({type:Boolean})],exports.SchmancyDelay.prototype,"once",2),l([c.queryAssignedElements({flatten:!0})],exports.SchmancyDelay.prototype,"assignedElements",2),exports.SchmancyDelay=l([c.customElement("schmancy-delay")],exports.SchmancyDelay),exports.delayContext=g,exports.hashContent=O;
|
|
10
|
-
//# sourceMappingURL=delay-
|
|
10
|
+
//# sourceMappingURL=delay-dM9FOKCv.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delay-BKlWEq_b.cjs","sources":["../../../../.yarn/berry/cache/@lit-labs-motion-npm-1.0.8-49c4e9bf47-10c0.zip/node_modules/@lit-labs/motion/animate-controller.js","../../../../.yarn/berry/cache/@lit-labs-motion-npm-1.0.8-49c4e9bf47-10c0.zip/node_modules/@lit-labs/motion/animate.js","../../../../.yarn/berry/cache/@lit-labs-motion-npm-1.0.8-49c4e9bf47-10c0.zip/node_modules/@lit-labs/motion/position.js","../src/utils/hashContent.ts","../src/delay/delay.ts"],"sourcesContent":["const i=new WeakMap;class t{constructor(t,s){this.startPaused=!1,this.disabled=!1,this.clients=new Set,this.pendingComplete=!1,this.host=t,this.defaultOptions=s.defaultOptions||{},this.startPaused=!!s.startPaused,this.disabled=!!s.disabled,this.onComplete=s.onComplete,i.set(this.host,this)}async add(i){this.clients.add(i),this.startPaused&&i.webAnimation?.pause(),this.pendingComplete=!0,await i.finished,this.pendingComplete&&!this.isAnimating&&(this.pendingComplete=!1,this.onComplete?.())}remove(i){this.clients.delete(i)}pause(){this.clients.forEach((i=>i.webAnimation?.pause()))}play(){this.clients.forEach((i=>i.webAnimation?.play()))}cancel(){this.clients.forEach((i=>i.webAnimation?.cancel())),this.clients.clear()}finish(){this.clients.forEach((i=>i.webAnimation?.finish())),this.clients.clear()}togglePlay(){this.isPlaying?this.pause():this.play()}get isAnimating(){return this.clients.size>0}get isPlaying(){return Array.from(this.clients).some((i=>\"running\"===i.webAnimation?.playState))}async finished(){await Promise.all(Array.from(this.clients).map((i=>i.finished)))}}export{t as AnimateController,i as controllerMap};\n//# sourceMappingURL=animate-controller.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as e}from\"lit/async-directive.js\";import{controllerMap as h}from\"./animate-controller.js\";export{AnimateController}from\"./animate-controller.js\";let o=0;const r=new Map,n=new WeakSet,a=()=>new Promise((t=>requestAnimationFrame(t))),c=[{transform:\"translateY(100%) scale(0)\",opacity:0}],l=[{transform:\"translateY(-100%) scale(0)\",opacity:0}],d=[{transform:\"translateX(-100%) scale(0)\",opacity:0}],u=[{transform:\"translateX(100%) scale(0)\",opacity:0}],m=[{}],f=[{opacity:0}],p=f,v=[{opacity:0},{opacity:1}],y=[{opacity:0},{opacity:.25,offset:.75},{opacity:1}],g=(t,i)=>{const s=t-i;return 0===s?void 0:s},w=(t,i)=>{const s=t/i;return 1===s?void 0:s},N={left:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateX(${s}px)`}},top:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateY(${s}px)`}},width:(t,i)=>{let s;0===i&&(i=1,s={width:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleX(${e})`}},height:(t,i)=>{let s;0===i&&(i=1,s={height:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleY(${e})`}}},A={duration:333,easing:\"ease-in-out\"},b=[\"left\",\"top\",\"width\",\"height\",\"opacity\",\"color\",\"background\"],j=new WeakMap;class x extends e{constructor(t){if(super(t),this.t=!1,this.i=null,this.o=null,this.h=!0,this.shouldLog=!1,t.type===s.CHILD)throw Error(\"The `animate` directive must be used in attribute position.\");this.createFinished()}createFinished(){this.resolveFinished?.(),this.finished=new Promise((t=>{this.l=t}))}async resolveFinished(){this.l?.(),this.l=void 0}render(i){return t}getController(){return h.get(this.u)}isDisabled(){return this.options.disabled||this.getController()?.disabled}update(t,[i]){const s=void 0===this.u;return s&&(this.u=t.options?.host,this.u.addController(this),this.u.updateComplete.then((t=>this.t=!0)),this.element=t.element,j.set(this.element,this)),this.optionsOrCallback=i,(s||\"function\"!=typeof i)&&this.p(i),this.render(i)}p(t){t=t??{};const i=this.getController();void 0!==i&&((t={...i.defaultOptions,...t}).keyframeOptions={...i.defaultOptions.keyframeOptions,...t.keyframeOptions}),t.properties??=b,this.options=t}m(){const t={},i=this.element.getBoundingClientRect(),s=getComputedStyle(this.element);return this.options.properties.forEach((e=>{const h=i[e]??(N[e]?void 0:s[e]),o=Number(h);t[e]=isNaN(o)?h+\"\":o})),t}v(){let t,i=!0;return this.options.guard&&(t=this.options.guard(),i=((t,i)=>{if(Array.isArray(t)){if(Array.isArray(i)&&i.length===t.length&&t.every(((t,s)=>t===i[s])))return!1}else if(i===t)return!1;return!0})(t,this._)),this.h=this.t&&!this.isDisabled()&&!this.isAnimating()&&i&&this.element.isConnected,this.h&&(this._=Array.isArray(t)?Array.from(t):t),this.h}hostUpdate(){\"function\"==typeof this.optionsOrCallback&&this.p(this.optionsOrCallback()),this.v()&&(this.A=this.m(),this.i=this.i??this.element.parentNode,this.o=this.element.nextSibling)}async hostUpdated(){if(!this.h||!this.element.isConnected||this.options.skipInitial&&!this.isHostRendered)return;let t;this.prepare(),await a;const i=this.O(),s=this.j(this.options.keyframeOptions,i),e=this.m();if(void 0!==this.A){const{from:s,to:h}=this.N(this.A,e,i);this.log(\"measured\",[this.A,e,s,h]),t=this.calculateKeyframes(s,h)}else{const s=r.get(this.options.inId);if(s){r.delete(this.options.inId);const{from:h,to:n}=this.N(s,e,i);t=this.calculateKeyframes(h,n),t=this.options.in?[{...this.options.in[0],...t[0]},...this.options.in.slice(1),t[1]]:t,o++,t.forEach((t=>t.zIndex=o))}else this.options.in&&(t=[...this.options.in,{}])}this.animate(t,s)}resetStyles(){void 0!==this.P&&(this.element.setAttribute(\"style\",this.P??\"\"),this.P=void 0)}commitStyles(){this.P=this.element.getAttribute(\"style\"),this.webAnimation?.commitStyles(),this.webAnimation?.cancel()}reconnected(){}async disconnected(){if(!this.h)return;if(void 0!==this.options.id&&r.set(this.options.id,this.A),void 0===this.options.out)return;if(this.prepare(),await a(),this.i?.isConnected){const t=this.o&&this.o.parentNode===this.i?this.o:null;if(this.i.insertBefore(this.element,t),this.options.stabilizeOut){const t=this.m();this.log(\"stabilizing out\");const i=this.A.left-t.left,s=this.A.top-t.top;!(\"static\"===getComputedStyle(this.element).position)||0===i&&0===s||(this.element.style.position=\"relative\"),0!==i&&(this.element.style.left=i+\"px\"),0!==s&&(this.element.style.top=s+\"px\")}}const t=this.j(this.options.keyframeOptions);await this.animate(this.options.out,t),this.element.remove()}prepare(){this.createFinished()}start(){this.options.onStart?.(this)}didFinish(t){t&&this.options.onComplete?.(this),this.A=void 0,this.animatingProperties=void 0,this.frames=void 0,this.resolveFinished()}O(){const t=[];for(let i=this.element.parentNode;i;i=i?.parentNode){const s=j.get(i);s&&!s.isDisabled()&&s&&t.push(s)}return t}get isHostRendered(){const t=n.has(this.u);return t||this.u.updateComplete.then((()=>{n.add(this.u)})),t}j(t,i=this.O()){const s={...A};return i.forEach((t=>Object.assign(s,t.options.keyframeOptions))),Object.assign(s,t),s}N(t,i,s){t={...t},i={...i};const e=s.map((t=>t.animatingProperties)).filter((t=>void 0!==t));let h=1,o=1;return e.length>0&&(e.forEach((t=>{t.width&&(h/=t.width),t.height&&(o/=t.height)})),void 0!==t.left&&void 0!==i.left&&(t.left=h*t.left,i.left=h*i.left),void 0!==t.top&&void 0!==i.top&&(t.top=o*t.top,i.top=o*i.top)),{from:t,to:i}}calculateKeyframes(t,i,s=!1){const e={},h={};let o=!1;const r={};for(const s in i){const n=t[s],a=i[s];if(s in N){const t=N[s];if(void 0===n||void 0===a)continue;const i=t(n,a);void 0!==i.transform&&(r[s]=i.value,o=!0,e.transform=`${e.transform??\"\"} ${i.transform}`,void 0!==i.overrideFrom&&Object.assign(e,i.overrideFrom))}else n!==a&&void 0!==n&&void 0!==a&&(o=!0,e[s]=n,h[s]=a)}return e.transformOrigin=h.transformOrigin=s?\"center center\":\"top left\",this.animatingProperties=r,o?[e,h]:void 0}async animate(t,i=this.options.keyframeOptions){this.start(),this.frames=t;let s=!1;if(!this.isAnimating()&&!this.isDisabled()&&(this.options.onFrames&&(this.frames=t=this.options.onFrames(this),this.log(\"modified frames\",t)),void 0!==t)){this.log(\"animate\",[t,i]),s=!0,this.webAnimation=this.element.animate(t,i);const e=this.getController();e?.add(this);try{await this.webAnimation.finished}catch(t){}e?.remove(this)}return this.didFinish(s),s}isAnimating(){return\"running\"===this.webAnimation?.playState||this.webAnimation?.pending}log(t,i){this.shouldLog&&!this.isDisabled()&&console.log(t,this.options.id,i)}}const F=i(x);export{x as Animate,F as animate,a as animationFrame,b as defaultCssProperties,A as defaultKeyframeOptions,p as fade,v as fadeIn,y as fadeInSlow,f as fadeOut,l as flyAbove,c as flyBelow,d as flyLeft,u as flyRight,m as none,N as transformProps};\n//# sourceMappingURL=animate.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as o}from\"lit/async-directive.js\";const r=[\"top\",\"right\",\"bottom\",\"left\"];class e extends o{constructor(t){if(super(t),t.type!==s.ELEMENT)throw Error(\"The `position` directive must be used in attribute position.\")}render(i,s){return t}update(t,[i,s]){return void 0===this.u&&(this.u=t.options?.host,this.u.addController(this)),this.S=t.element,this.C=i,this.F=s??[\"left\",\"top\",\"width\",\"height\"],this.render(i,s)}hostUpdated(){this.$()}$(){const t=\"function\"==typeof this.C?this.C():this.C?.value,i=t.offsetParent;if(void 0===t||!i)return;const s=t.getBoundingClientRect(),o=i.getBoundingClientRect();this.F?.forEach((t=>{const i=r.includes(t)?s[t]-o[t]:s[t];this.S.style[t]=i+\"px\"}))}}const h=i(e);export{e as Position,h as position};\n//# sourceMappingURL=position.js.map\n","export default function (content: string): string {\n\tconst fnvOffsetBasis = 0x811c9dc5\n\tconst fnvPrime = 0x01000193\n\tlet hash = fnvOffsetBasis\n\n\tfor (let i = 0; i < content.length; i++) {\n\t\thash ^= content.charCodeAt(i)\n\t\thash = (hash * fnvPrime) >>> 0 // Ensure unsigned 32-bit integer\n\t}\n\n\treturn hash.toString(16) // Convert to hexadecimal string for compactness\n}\n","import { animate, fadeIn, flyAbove, flyBelow } from '@lit-labs/motion'\nimport { consume, createContext, provide } from '@lit/context'\nimport { $LitElement } from '@mixins/litElement.mixin'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { timer } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nexport const delayContext = createContext<number>('delay-context')\n\n@customElement('schmancy-delay')\nexport class SchmancyDelay extends $LitElement() {\n\t@property({ type: Number, reflect: true }) delay = 0 // Delay in milliseconds\n\t@property({ type: String }) motion = 'flyBelow' // Motion type (default: flyBelow)\n\t@state() private rendered = false // Tracks if the content is rendered\n\t@consume({ context: delayContext, subscribe: true }) parentDelay = 0 // Consumes the parent's delay value\n\t@provide({ context: delayContext }) effectiveDelay = 0 // Provides the effective delay to children\n\n\t@property({ type: Boolean }) once? = true // Only render once per session\n\n\tprivate sessionKey = '' // Unique session key\n\tprivate mutationObserver?: MutationObserver\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tassignedElements: HTMLElement[]\n\tfirstUpdated() {\n\t\tthis.observeSlotChanges()\n\t\tthis.updateRenderState()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.mutationObserver?.disconnect() // Clean up the observer\n\t}\n\n\tprivate observeSlotChanges() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot')\n\t\tif (!slot) return\n\n\t\tthis.mutationObserver = new MutationObserver(() => {\n\t\t\t// Update session key when children change\n\t\t\tthis.sessionKey = this.generateSessionKey()\n\t\t})\n\n\t\tthis.mutationObserver.observe(slot, { childList: true, subtree: true })\n\t}\n\n\tprivate getTotalSiblingDelay(element: HTMLElement | null): number {\n\t\tif (!element || !(element instanceof HTMLElement)) return 0\n\n\t\tlet totalDelay = 0\n\t\tlet sibling = element.previousElementSibling // Start with the previous sibling\n\n\t\twhile (sibling) {\n\t\t\t// Check if the sibling is a `schmancy-delay` and add its delay\n\t\t\tif (sibling instanceof SchmancyDelay) {\n\t\t\t\ttotalDelay += sibling.delay\n\t\t\t}\n\t\t\t// Move to the previous sibling\n\t\t\tsibling = sibling.previousElementSibling\n\t\t}\n\n\t\t// Traverse up the tree and repeat for the parent node\n\t\tif (element.parentElement) {\n\t\t\ttotalDelay += this.getTotalSiblingDelay(element.parentElement)\n\t\t}\n\n\t\treturn totalDelay\n\t}\n\n\tprivate updateRenderState() {\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.rendered = true\n\t\t\treturn\n\t\t}\n\n\t\t// Calculate the effective delay (parent + self + all preceding siblings)\n\t\tconst siblingDelay = this.getTotalSiblingDelay(this)\n\t\tthis.effectiveDelay = this.delay + this.parentDelay + siblingDelay\n\n\t\t// Start the delay timer\n\t\ttimer(this.effectiveDelay)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.rendered = true // Render content after delay\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this.assignedElements.map(el => el.outerHTML).join('')\n\t\tconsole.log(slotContent)\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\n\tprivate get motionLit(): any {\n\t\treturn this.motion === 'flyBelow' ? flyBelow : this.motion === 'flyAbove' ? flyAbove : fadeIn\n\t}\n\n\trender() {\n\t\treturn cache(\n\t\t\tthis.rendered\n\t\t\t\t? html`<div\n\t\t\t\t\t\t${animate({\n\t\t\t\t\t\t\tin: this.motionLit, // Use the provided motion type\n\t\t\t\t\t\t\tkeyframeOptions: { duration: 300, easing: 'ease-out' },\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>`\n\t\t\t\t: html`\n\t\t\t\t\t\t<section style=\"display: none;\">\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</section>\n\t\t\t\t\t`,\n\t\t)\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-delay': SchmancyDelay\n\t}\n}\n"],"names":["i","WeakMap","o","r","Map","n","WeakSet","a","Promise","t","requestAnimationFrame","c","transform","opacity","l","v","g","s","w","N","left","value","isNaN","top","width","e","overrideFrom","height","A","duration","easing","b","j","x","AsyncDirective","super","this","h","shouldLog","type","CHILD","Error","createFinished","resolveFinished","finished","getController","get","u","options","disabled","host","addController","updateComplete","then","element","set","optionsOrCallback","p","render","defaultOptions","keyframeOptions","properties","m","getBoundingClientRect","getComputedStyle","forEach","Number","guard","Array","isArray","length","every","_","isDisabled","isAnimating","isConnected","from","hostUpdate","parentNode","nextSibling","skipInitial","isHostRendered","prepare","O","to","log","calculateKeyframes","inId","delete","in","slice","zIndex","animate","P","setAttribute","commitStyles","getAttribute","webAnimation","cancel","disconnected","id","out","insertBefore","stabilizeOut","position","style","remove","onStart","onComplete","animatingProperties","frames","push","has","add","Object","assign","map","filter","transformOrigin","start","onFrames","didFinish","playState","pending","F","directive","ELEMENT","S","C","$","offsetParent","includes","hashContent","content","hash","charCodeAt","toString","delayContext","createContext","SchmancyDelay","$LitElement","arguments","delay","motion","rendered","parentDelay","effectiveDelay","once","sessionKey","observeSlotChanges","updateRenderState","disconnectedCallback","mutationObserver","disconnect","slot","shadowRoot","querySelector","MutationObserver","generateSessionKey","observe","childList","subtree","HTMLElement","totalDelay","sibling","previousElementSibling","parentElement","getTotalSiblingDelay","sessionStorage","getItem","siblingDelay","timer","pipe","takeUntil","disconnecting","subscribe","setItem","slotContent","assignedElements","el","outerHTML","join","motionLit","flyBelow","flyAbove","fadeIn","cache","html","__decorateClass","property","reflect","prototype","String","state","consume","context","provide","Boolean","queryAssignedElements","flatten","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"delay-dM9FOKCv.cjs","sources":["../../../../.yarn/berry/cache/@lit-labs-motion-npm-1.0.8-49c4e9bf47-10c0.zip/node_modules/@lit-labs/motion/animate-controller.js","../../../../.yarn/berry/cache/@lit-labs-motion-npm-1.0.8-49c4e9bf47-10c0.zip/node_modules/@lit-labs/motion/animate.js","../../../../.yarn/berry/cache/@lit-labs-motion-npm-1.0.8-49c4e9bf47-10c0.zip/node_modules/@lit-labs/motion/position.js","../src/utils/hashContent.ts","../src/delay/delay.ts"],"sourcesContent":["const i=new WeakMap;class t{constructor(t,s){this.startPaused=!1,this.disabled=!1,this.clients=new Set,this.pendingComplete=!1,this.host=t,this.defaultOptions=s.defaultOptions||{},this.startPaused=!!s.startPaused,this.disabled=!!s.disabled,this.onComplete=s.onComplete,i.set(this.host,this)}async add(i){this.clients.add(i),this.startPaused&&i.webAnimation?.pause(),this.pendingComplete=!0,await i.finished,this.pendingComplete&&!this.isAnimating&&(this.pendingComplete=!1,this.onComplete?.())}remove(i){this.clients.delete(i)}pause(){this.clients.forEach((i=>i.webAnimation?.pause()))}play(){this.clients.forEach((i=>i.webAnimation?.play()))}cancel(){this.clients.forEach((i=>i.webAnimation?.cancel())),this.clients.clear()}finish(){this.clients.forEach((i=>i.webAnimation?.finish())),this.clients.clear()}togglePlay(){this.isPlaying?this.pause():this.play()}get isAnimating(){return this.clients.size>0}get isPlaying(){return Array.from(this.clients).some((i=>\"running\"===i.webAnimation?.playState))}async finished(){await Promise.all(Array.from(this.clients).map((i=>i.finished)))}}export{t as AnimateController,i as controllerMap};\n//# sourceMappingURL=animate-controller.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as e}from\"lit/async-directive.js\";import{controllerMap as h}from\"./animate-controller.js\";export{AnimateController}from\"./animate-controller.js\";let o=0;const r=new Map,n=new WeakSet,a=()=>new Promise((t=>requestAnimationFrame(t))),c=[{transform:\"translateY(100%) scale(0)\",opacity:0}],l=[{transform:\"translateY(-100%) scale(0)\",opacity:0}],d=[{transform:\"translateX(-100%) scale(0)\",opacity:0}],u=[{transform:\"translateX(100%) scale(0)\",opacity:0}],m=[{}],f=[{opacity:0}],p=f,v=[{opacity:0},{opacity:1}],y=[{opacity:0},{opacity:.25,offset:.75},{opacity:1}],g=(t,i)=>{const s=t-i;return 0===s?void 0:s},w=(t,i)=>{const s=t/i;return 1===s?void 0:s},N={left:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateX(${s}px)`}},top:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateY(${s}px)`}},width:(t,i)=>{let s;0===i&&(i=1,s={width:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleX(${e})`}},height:(t,i)=>{let s;0===i&&(i=1,s={height:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleY(${e})`}}},A={duration:333,easing:\"ease-in-out\"},b=[\"left\",\"top\",\"width\",\"height\",\"opacity\",\"color\",\"background\"],j=new WeakMap;class x extends e{constructor(t){if(super(t),this.t=!1,this.i=null,this.o=null,this.h=!0,this.shouldLog=!1,t.type===s.CHILD)throw Error(\"The `animate` directive must be used in attribute position.\");this.createFinished()}createFinished(){this.resolveFinished?.(),this.finished=new Promise((t=>{this.l=t}))}async resolveFinished(){this.l?.(),this.l=void 0}render(i){return t}getController(){return h.get(this.u)}isDisabled(){return this.options.disabled||this.getController()?.disabled}update(t,[i]){const s=void 0===this.u;return s&&(this.u=t.options?.host,this.u.addController(this),this.u.updateComplete.then((t=>this.t=!0)),this.element=t.element,j.set(this.element,this)),this.optionsOrCallback=i,(s||\"function\"!=typeof i)&&this.p(i),this.render(i)}p(t){t=t??{};const i=this.getController();void 0!==i&&((t={...i.defaultOptions,...t}).keyframeOptions={...i.defaultOptions.keyframeOptions,...t.keyframeOptions}),t.properties??=b,this.options=t}m(){const t={},i=this.element.getBoundingClientRect(),s=getComputedStyle(this.element);return this.options.properties.forEach((e=>{const h=i[e]??(N[e]?void 0:s[e]),o=Number(h);t[e]=isNaN(o)?h+\"\":o})),t}v(){let t,i=!0;return this.options.guard&&(t=this.options.guard(),i=((t,i)=>{if(Array.isArray(t)){if(Array.isArray(i)&&i.length===t.length&&t.every(((t,s)=>t===i[s])))return!1}else if(i===t)return!1;return!0})(t,this._)),this.h=this.t&&!this.isDisabled()&&!this.isAnimating()&&i&&this.element.isConnected,this.h&&(this._=Array.isArray(t)?Array.from(t):t),this.h}hostUpdate(){\"function\"==typeof this.optionsOrCallback&&this.p(this.optionsOrCallback()),this.v()&&(this.A=this.m(),this.i=this.i??this.element.parentNode,this.o=this.element.nextSibling)}async hostUpdated(){if(!this.h||!this.element.isConnected||this.options.skipInitial&&!this.isHostRendered)return;let t;this.prepare(),await a;const i=this.O(),s=this.j(this.options.keyframeOptions,i),e=this.m();if(void 0!==this.A){const{from:s,to:h}=this.N(this.A,e,i);this.log(\"measured\",[this.A,e,s,h]),t=this.calculateKeyframes(s,h)}else{const s=r.get(this.options.inId);if(s){r.delete(this.options.inId);const{from:h,to:n}=this.N(s,e,i);t=this.calculateKeyframes(h,n),t=this.options.in?[{...this.options.in[0],...t[0]},...this.options.in.slice(1),t[1]]:t,o++,t.forEach((t=>t.zIndex=o))}else this.options.in&&(t=[...this.options.in,{}])}this.animate(t,s)}resetStyles(){void 0!==this.P&&(this.element.setAttribute(\"style\",this.P??\"\"),this.P=void 0)}commitStyles(){this.P=this.element.getAttribute(\"style\"),this.webAnimation?.commitStyles(),this.webAnimation?.cancel()}reconnected(){}async disconnected(){if(!this.h)return;if(void 0!==this.options.id&&r.set(this.options.id,this.A),void 0===this.options.out)return;if(this.prepare(),await a(),this.i?.isConnected){const t=this.o&&this.o.parentNode===this.i?this.o:null;if(this.i.insertBefore(this.element,t),this.options.stabilizeOut){const t=this.m();this.log(\"stabilizing out\");const i=this.A.left-t.left,s=this.A.top-t.top;!(\"static\"===getComputedStyle(this.element).position)||0===i&&0===s||(this.element.style.position=\"relative\"),0!==i&&(this.element.style.left=i+\"px\"),0!==s&&(this.element.style.top=s+\"px\")}}const t=this.j(this.options.keyframeOptions);await this.animate(this.options.out,t),this.element.remove()}prepare(){this.createFinished()}start(){this.options.onStart?.(this)}didFinish(t){t&&this.options.onComplete?.(this),this.A=void 0,this.animatingProperties=void 0,this.frames=void 0,this.resolveFinished()}O(){const t=[];for(let i=this.element.parentNode;i;i=i?.parentNode){const s=j.get(i);s&&!s.isDisabled()&&s&&t.push(s)}return t}get isHostRendered(){const t=n.has(this.u);return t||this.u.updateComplete.then((()=>{n.add(this.u)})),t}j(t,i=this.O()){const s={...A};return i.forEach((t=>Object.assign(s,t.options.keyframeOptions))),Object.assign(s,t),s}N(t,i,s){t={...t},i={...i};const e=s.map((t=>t.animatingProperties)).filter((t=>void 0!==t));let h=1,o=1;return e.length>0&&(e.forEach((t=>{t.width&&(h/=t.width),t.height&&(o/=t.height)})),void 0!==t.left&&void 0!==i.left&&(t.left=h*t.left,i.left=h*i.left),void 0!==t.top&&void 0!==i.top&&(t.top=o*t.top,i.top=o*i.top)),{from:t,to:i}}calculateKeyframes(t,i,s=!1){const e={},h={};let o=!1;const r={};for(const s in i){const n=t[s],a=i[s];if(s in N){const t=N[s];if(void 0===n||void 0===a)continue;const i=t(n,a);void 0!==i.transform&&(r[s]=i.value,o=!0,e.transform=`${e.transform??\"\"} ${i.transform}`,void 0!==i.overrideFrom&&Object.assign(e,i.overrideFrom))}else n!==a&&void 0!==n&&void 0!==a&&(o=!0,e[s]=n,h[s]=a)}return e.transformOrigin=h.transformOrigin=s?\"center center\":\"top left\",this.animatingProperties=r,o?[e,h]:void 0}async animate(t,i=this.options.keyframeOptions){this.start(),this.frames=t;let s=!1;if(!this.isAnimating()&&!this.isDisabled()&&(this.options.onFrames&&(this.frames=t=this.options.onFrames(this),this.log(\"modified frames\",t)),void 0!==t)){this.log(\"animate\",[t,i]),s=!0,this.webAnimation=this.element.animate(t,i);const e=this.getController();e?.add(this);try{await this.webAnimation.finished}catch(t){}e?.remove(this)}return this.didFinish(s),s}isAnimating(){return\"running\"===this.webAnimation?.playState||this.webAnimation?.pending}log(t,i){this.shouldLog&&!this.isDisabled()&&console.log(t,this.options.id,i)}}const F=i(x);export{x as Animate,F as animate,a as animationFrame,b as defaultCssProperties,A as defaultKeyframeOptions,p as fade,v as fadeIn,y as fadeInSlow,f as fadeOut,l as flyAbove,c as flyBelow,d as flyLeft,u as flyRight,m as none,N as transformProps};\n//# sourceMappingURL=animate.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as o}from\"lit/async-directive.js\";const r=[\"top\",\"right\",\"bottom\",\"left\"];class e extends o{constructor(t){if(super(t),t.type!==s.ELEMENT)throw Error(\"The `position` directive must be used in attribute position.\")}render(i,s){return t}update(t,[i,s]){return void 0===this.u&&(this.u=t.options?.host,this.u.addController(this)),this.S=t.element,this.C=i,this.F=s??[\"left\",\"top\",\"width\",\"height\"],this.render(i,s)}hostUpdated(){this.$()}$(){const t=\"function\"==typeof this.C?this.C():this.C?.value,i=t.offsetParent;if(void 0===t||!i)return;const s=t.getBoundingClientRect(),o=i.getBoundingClientRect();this.F?.forEach((t=>{const i=r.includes(t)?s[t]-o[t]:s[t];this.S.style[t]=i+\"px\"}))}}const h=i(e);export{e as Position,h as position};\n//# sourceMappingURL=position.js.map\n","export default function (content: string): string {\n\tconst fnvOffsetBasis = 0x811c9dc5\n\tconst fnvPrime = 0x01000193\n\tlet hash = fnvOffsetBasis\n\n\tfor (let i = 0; i < content.length; i++) {\n\t\thash ^= content.charCodeAt(i)\n\t\thash = (hash * fnvPrime) >>> 0 // Ensure unsigned 32-bit integer\n\t}\n\n\treturn hash.toString(16) // Convert to hexadecimal string for compactness\n}\n","import { animate, fadeIn, flyAbove, flyBelow } from '@lit-labs/motion'\nimport { consume, createContext, provide } from '@lit/context'\nimport { $LitElement } from '@mixins/litElement.mixin'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { timer } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nexport const delayContext = createContext<number>('delay-context')\n\n@customElement('schmancy-delay')\nexport class SchmancyDelay extends $LitElement() {\n\t@property({ type: Number, reflect: true }) delay = 0 // Delay in milliseconds\n\t@property({ type: String }) motion = 'flyBelow' // Motion type (default: flyBelow)\n\t@state() private rendered = false // Tracks if the content is rendered\n\t@consume({ context: delayContext, subscribe: true }) parentDelay = 0 // Consumes the parent's delay value\n\t@provide({ context: delayContext }) effectiveDelay = 0 // Provides the effective delay to children\n\n\t@property({ type: Boolean }) once? = true // Only render once per session\n\n\tprivate sessionKey = '' // Unique session key\n\tprivate mutationObserver?: MutationObserver\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tassignedElements: HTMLElement[]\n\tfirstUpdated() {\n\t\tthis.observeSlotChanges()\n\t\tthis.updateRenderState()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.mutationObserver?.disconnect() // Clean up the observer\n\t}\n\n\tprivate observeSlotChanges() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot')\n\t\tif (!slot) return\n\n\t\tthis.mutationObserver = new MutationObserver(() => {\n\t\t\t// Update session key when children change\n\t\t\tthis.sessionKey = this.generateSessionKey()\n\t\t})\n\n\t\tthis.mutationObserver.observe(slot, { childList: true, subtree: true })\n\t}\n\n\tprivate getTotalSiblingDelay(element: HTMLElement | null): number {\n\t\tif (!element || !(element instanceof HTMLElement)) return 0\n\n\t\tlet totalDelay = 0\n\t\tlet sibling = element.previousElementSibling // Start with the previous sibling\n\n\t\twhile (sibling) {\n\t\t\t// Check if the sibling is a `schmancy-delay` and add its delay\n\t\t\tif (sibling instanceof SchmancyDelay) {\n\t\t\t\ttotalDelay += sibling.delay\n\t\t\t}\n\t\t\t// Move to the previous sibling\n\t\t\tsibling = sibling.previousElementSibling\n\t\t}\n\n\t\t// Traverse up the tree and repeat for the parent node\n\t\tif (element.parentElement) {\n\t\t\ttotalDelay += this.getTotalSiblingDelay(element.parentElement)\n\t\t}\n\n\t\treturn totalDelay\n\t}\n\n\tprivate updateRenderState() {\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.rendered = true\n\t\t\treturn\n\t\t}\n\n\t\t// Calculate the effective delay (parent + self + all preceding siblings)\n\t\tconst siblingDelay = this.getTotalSiblingDelay(this)\n\t\tthis.effectiveDelay = this.delay + this.parentDelay + siblingDelay\n\n\t\t// Start the delay timer\n\t\ttimer(this.effectiveDelay)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.rendered = true // Render content after delay\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this.assignedElements.map(el => el.outerHTML).join('')\n\t\tconsole.log(slotContent)\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\n\tprivate get motionLit(): any {\n\t\treturn this.motion === 'flyBelow' ? flyBelow : this.motion === 'flyAbove' ? flyAbove : fadeIn\n\t}\n\n\trender() {\n\t\treturn cache(\n\t\t\tthis.rendered\n\t\t\t\t? html`<div\n\t\t\t\t\t\t${animate({\n\t\t\t\t\t\t\tin: this.motionLit, // Use the provided motion type\n\t\t\t\t\t\t\tkeyframeOptions: { duration: 300, easing: 'ease-out' },\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>`\n\t\t\t\t: html`\n\t\t\t\t\t\t<section style=\"display: none;\">\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</section>\n\t\t\t\t\t`,\n\t\t)\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-delay': SchmancyDelay\n\t}\n}\n"],"names":["i","WeakMap","o","r","Map","n","WeakSet","a","Promise","t","requestAnimationFrame","c","transform","opacity","l","v","g","s","w","N","left","value","isNaN","top","width","e","overrideFrom","height","A","duration","easing","b","j","x","AsyncDirective","super","this","h","shouldLog","type","CHILD","Error","createFinished","resolveFinished","finished","getController","get","u","options","disabled","host","addController","updateComplete","then","element","set","optionsOrCallback","p","render","defaultOptions","keyframeOptions","properties","m","getBoundingClientRect","getComputedStyle","forEach","Number","guard","Array","isArray","length","every","_","isDisabled","isAnimating","isConnected","from","hostUpdate","parentNode","nextSibling","skipInitial","isHostRendered","prepare","O","to","log","calculateKeyframes","inId","delete","in","slice","zIndex","animate","P","setAttribute","commitStyles","getAttribute","webAnimation","cancel","disconnected","id","out","insertBefore","stabilizeOut","position","style","remove","onStart","onComplete","animatingProperties","frames","push","has","add","Object","assign","map","filter","transformOrigin","start","onFrames","didFinish","playState","pending","F","directive","ELEMENT","S","C","$","offsetParent","includes","hashContent","content","hash","charCodeAt","toString","delayContext","createContext","SchmancyDelay","$LitElement","arguments","delay","motion","rendered","parentDelay","effectiveDelay","once","sessionKey","observeSlotChanges","updateRenderState","disconnectedCallback","mutationObserver","disconnect","slot","shadowRoot","querySelector","MutationObserver","generateSessionKey","observe","childList","subtree","HTMLElement","totalDelay","sibling","previousElementSibling","parentElement","getTotalSiblingDelay","sessionStorage","getItem","siblingDelay","timer","pipe","takeUntil","disconnecting","subscribe","setItem","slotContent","assignedElements","el","outerHTML","join","motionLit","flyBelow","flyAbove","fadeIn","cache","html","__decorateClass","property","reflect","prototype","String","state","consume","context","provide","Boolean","queryAssignedElements","flatten","customElement"],"mappings":"oWAAMA,EAAAA,EAAE,IAAIC,QCA4P,IAAIC,EAAE,EAAQ,MAAAC,EAAE,IAAIC,IAAIC,EAAE,IAAIC,QAAQC,EAAE,IAAI,IAAIC,QAASC,GAAGC,sBAAsBD,IAAKE,EAAE,CAAC,CAACC,UAAU,4BAA4BC,QAAQ,CAAA,CAAA,EAAIC,EAAE,CAAC,CAACF,UAAU,6BAA6BC,QAAQ,CAA4IE,CAAAA,EAAAA,EAAE,CAAC,CAACF,QAAQ,CAAG,EAAA,CAACA,QAAQ,CAAA,CAAA,EAAyDG,EAAE,CAACP,EAAET,KAAK,MAAMiB,EAAER,EAAET,EAAE,OAAWiB,IAAJ,EAAIA,OAASA,CAAAA,EAAGC,EAAE,CAACT,EAAET,KAAK,MAAMiB,EAAER,EAAET,EAAE,OAAWiB,IAAJ,EAAIA,OAASA,CAAAA,EAAGE,EAAE,CAACC,KAAK,CAACX,EAAET,IAAAA,CAAK,MAAMiB,EAAED,EAAEP,EAAET,CAAAA,EAAG,MAAM,CAACqB,MAAMJ,EAAEL,UAAgBK,GAAN,MAASK,MAAML,UAAU,cAAcA,CAAM,KAAA,CAAA,EAAGM,IAAI,CAACd,EAAET,IAAK,CAAA,MAAMiB,EAAED,EAAEP,EAAET,GAAG,MAAM,CAACqB,MAAMJ,EAAEL,UAAgBK,GAAN,MAASK,MAAML,CAAAA,EAAAA,OAAU,cAAcA,CAAAA,KAAAA,CAAM,EAAGO,MAAM,CAACf,EAAET,IAAAA,CAAK,IAAIiB,EAAMjB,IAAJ,IAAQA,EAAE,EAAEiB,EAAE,CAACO,MAAM,KAAQ,GAAA,MAAMC,EAAEP,EAAET,EAAET,CAAAA,EAAG,MAAM,CAACqB,MAAMI,EAAEC,aAAaT,EAAEL,UAAgBa,GAAN,MAASH,MAAMG,CAAAA,EAAAA,OAAU,UAAUA,KAAI,EAAGE,OAAO,CAAClB,EAAET,IAAAA,CAAK,IAAIiB,EAAMjB,IAAJ,IAAQA,EAAE,EAAEiB,EAAE,CAACU,OAAO,KAAA,GAAQ,MAAMF,EAAEP,EAAET,EAAET,GAAG,MAAM,CAACqB,MAAMI,EAAEC,aAAaT,EAAEL,UAAgBa,GAAN,MAASH,MAAMG,CAAG,EAAA,OAAO,UAAUA,CAAI,GAAA,CAAA,CAAA,EAAIG,EAAE,CAACC,SAAS,IAAIC,OAAO,aAAeC,EAAAA,EAAE,CAAC,OAAO,MAAM,QAAQ,SAAS,UAAU,QAAQ,YAAA,EAAcC,EAAE,IAAI/B,QAAQ,MAAMgC,UAAUR,EAACS,cAAC,CAAA,YAAYzB,EAAG,CAAA,GAAG0B,MAAM1B,CAAAA,EAAG2B,KAAK3B,EAAAA,GAAK2B,KAAKpC,EAAE,KAAKoC,KAAKlC,EAAE,KAAKkC,KAAKC,EAAAA,GAAKD,KAAKE,UAAU,GAAG7B,EAAE8B,OAAOtB,EAAAA,SAAEuB,MAAM,MAAMC,MAAM,6DAA+DL,EAAAA,KAAKM,eAAgB,CAAA,CAAC,gBAAAA,QAAiBN,EAAAA,KAAKO,kBAALP,MAAAA,EAAAA,WAAyBA,KAAKQ,SAAS,IAAIpC,QAASC,IAAI2B,KAAKtB,EAAEL,CAAE,CAAA,CAAE,CAAC,MAAA,yBAAwB2B,EAAAA,KAAKtB,IAALsB,MAAAA,EAAAA,WAAWA,KAAKtB,EAAE,MAAM,CAAC,OAAOd,EAAG,CAAA,OAAOS,EAAAA,OAAC,CAAC,eAAAoC,CAAgB,OAAOR,EAAES,IAAIV,KAAKW,EAAE,CAAC,YAAa,OAAA,OAAOX,KAAKY,QAAQC,YAAUb,EAAAA,KAAKS,cAAAA,IAALT,YAAAA,EAAsBa,SAAQ,CAAC,OAAOxC,EAAGT,CAAAA,CAAAA,EAAAA,OAAI,MAAMiB,EAAWmB,KAAKW,IAAhB9B,OAAkB,OAAOA,IAAImB,KAAKW,GAAEtC,EAAAA,EAAEuC,UAAFvC,YAAAA,EAAWyC,KAAKd,KAAKW,EAAEI,cAAcf,IAAMA,EAAAA,KAAKW,EAAEK,eAAeC,KAAM5C,GAAG2B,KAAK3B,EAAAA,IAAO2B,KAAKkB,QAAQ7C,EAAE6C,QAAQtB,EAAEuB,IAAInB,KAAKkB,QAAQlB,IAAAA,GAAOA,KAAKoB,kBAAkBxD,GAAGiB,GAAsBjB,OAAAA,GAAnB,aAAuBoC,KAAKqB,EAAEzD,CAAGoC,EAAAA,KAAKsB,OAAO1D,CAAE,CAAA,CAAC,EAAES,EAAAA,CAAGA,EAAEA,GAAG,CAAE,EAAC,MAAMT,EAAEoC,KAAKS,gBAAyB7C,cAAKS,EAAE,CAAIT,GAAAA,EAAE2D,kBAAkBlD,CAAImD,GAAAA,gBAAgB,CAAI5D,GAAAA,EAAE2D,eAAeC,gBAAAA,GAAmBnD,EAAEmD,eAAkBnD,GAAAA,EAAEoD,aAAFpD,EAAEoD,WAAa9B,GAAEK,KAAKY,QAAQvC,CAAC,CAAC,GAAAqD,CAAI,MAAMrD,EAAE,GAAGT,EAAEoC,KAAKkB,QAAQS,sBAAwB9C,EAAAA,EAAE+C,iBAAiB5B,KAAKkB,OAAAA,EAAS,OAAOlB,KAAKY,QAAQa,WAAWI,QAASxC,GAAI,CAAA,MAAMY,EAAErC,EAAEyB,CAAAA,IAAKN,EAAEM,CAAG,EAAA,OAAOR,EAAEQ,CAAAA,GAAIvB,EAAEgE,OAAO7B,GAAG5B,EAAEgB,CAAAA,EAAGH,MAAMpB,CAAGmC,EAAAA,EAAE,GAAGnC,CAAE,CAAA,EAAGO,CAAC,CAAC,GAAAM,CAAI,IAAIN,EAAET,EAAAA,GAAK,OAAOoC,KAAKY,QAAQmB,QAAQ1D,EAAE2B,KAAKY,QAAQmB,MAAQnE,EAAAA,IAAIS,EAAET,IAAAA,CAAK,GAAGoE,MAAMC,QAAQ5D,IAAI,GAAG2D,MAAMC,QAAQrE,CAAAA,GAAIA,EAAEsE,SAAS7D,EAAE6D,QAAQ7D,EAAE8D,MAAO,CAAC9D,EAAEQ,IAAIR,IAAIT,EAAEiB,CAAK,CAAA,EAAA,MAAA,WAAiBjB,IAAIS,EAAE,MAAA,GAAS,QAAS,GAAEA,EAAE2B,KAAKoC,CAAAA,GAAIpC,KAAKC,EAAED,KAAK3B,GAAI2B,CAAAA,KAAKqC,eAAerC,KAAKsC,YAAAA,GAAe1E,GAAGoC,KAAKkB,QAAQqB,YAAYvC,KAAKC,IAAID,KAAKoC,EAAEJ,MAAMC,QAAQ5D,GAAG2D,MAAMQ,KAAKnE,GAAGA,GAAG2B,KAAKC,CAAC,CAAC,YAAAwC,QAAgCzC,KAAKoB,mBAAxB,YAA2CpB,KAAKqB,EAAErB,KAAKoB,qBAAqBpB,KAAKrB,EAAAA,IAAMqB,KAAKR,EAAEQ,KAAK0B,EAAAA,EAAI1B,KAAKpC,EAAEoC,KAAKpC,GAAGoC,KAAKkB,QAAQwB,WAAW1C,KAAKlC,EAAEkC,KAAKkB,QAAQyB,YAAY,CAAC,mBAAoB,CAAA,GAAA,CAAI3C,KAAKC,GAAID,CAAAA,KAAKkB,QAAQqB,aAAavC,KAAKY,QAAQgC,aAAAA,CAAc5C,KAAK6C,eAAe,OAAO,IAAIxE,EAAE2B,KAAK8C,QAAgB3E,EAAAA,MAAAA,EAAE,MAAMP,EAAEoC,KAAK+C,EAAIlE,EAAAA,EAAEmB,KAAKJ,EAAEI,KAAKY,QAAQY,gBAAgB5D,GAAGyB,EAAEW,KAAK0B,IAAI,GAAY1B,KAAKR,IAAd,OAAgB,CAAC,KAAA,CAAMgD,KAAK3D,EAAEmE,GAAG/C,GAAGD,KAAKjB,EAAEiB,KAAKR,EAAEH,EAAEzB,CAAGoC,EAAAA,KAAKiD,IAAI,WAAW,CAACjD,KAAKR,EAAEH,EAAER,EAAEoB,CAAAA,CAAAA,EAAI5B,EAAE2B,KAAKkD,mBAAmBrE,EAAEoB,CAAAA,CAAE,KAAK,CAAC,MAAMpB,EAAEd,EAAE2C,IAAIV,KAAKY,QAAQuC,IAAAA,EAAM,GAAGtE,EAAE,CAACd,EAAEqF,OAAOpD,KAAKY,QAAQuC,MAAM,KAAMX,CAAAA,KAAKvC,EAAE+C,GAAG/E,CAAAA,EAAG+B,KAAKjB,EAAEF,EAAEQ,EAAEzB,CAAAA,EAAGS,EAAE2B,KAAKkD,mBAAmBjD,EAAEhC,CAAAA,EAAGI,EAAE2B,KAAKY,QAAQyC,GAAG,CAAC,CAAA,GAAIrD,KAAKY,QAAQyC,GAAG,CAAA,EAAA,GAAMhF,EAAE,CAAO2B,CAAAA,EAAAA,GAAAA,KAAKY,QAAQyC,GAAGC,MAAM,GAAGjF,EAAE,CAAA,CAAA,EAAIA,EAAEP,IAAIO,EAAEwD,QAASxD,GAAGA,EAAEkF,OAAOzF,EAAG,MAAMkC,KAAKY,QAAQyC,KAAKhF,EAAE,CAAI2B,GAAAA,KAAKY,QAAQyC,GAAG,CAAA,CAAI,EAAA,CAACrD,KAAKwD,QAAQnF,EAAEQ,EAAE,CAAC,aAAoB,CAAGmB,KAAKyD,IAAR,SAAYzD,KAAKkB,QAAQwC,aAAa,QAAQ1D,KAAKyD,GAAG,IAAIzD,KAAKyD,EAAAA,OAAS,CAAC,cAAAE,SAAe3D,KAAKyD,EAAEzD,KAAKkB,QAAQ0C,aAAa,OAAA,GAAS5D,EAAAA,KAAK6D,eAAL7D,MAAAA,EAAmB2D,gBAAe3D,EAAAA,KAAK6D,eAAL7D,MAAAA,EAAmB8D,QAAQ,CAAC,eAAe,MAAMC,cAAAA,OAAiC,GAAd/D,CAAAA,KAAKC,IAAqBD,KAAKY,QAAQoD,KAAzB,QAA6BjG,EAAEoD,IAAInB,KAAKY,QAAQoD,GAAGhE,KAAKR,GAAYQ,KAAKY,QAAQqD,cAAI,OAAO,GAAGjE,KAAK8C,QAAgB3E,EAAAA,MAAAA,EAAAA,GAAI6B,EAAAA,KAAKpC,IAALoC,YAAAA,EAAQuC,YAAY,CAAC,MAAMlE,EAAE2B,KAAKlC,GAAGkC,KAAKlC,EAAE4E,aAAa1C,KAAKpC,EAAEoC,KAAKlC,EAAE,KAAK,GAAGkC,KAAKpC,EAAEsG,aAAalE,KAAKkB,QAAQ7C,CAAAA,EAAG2B,KAAKY,QAAQuD,aAAa,CAAC,MAAM9F,EAAE2B,KAAK0B,EAAI1B,EAAAA,KAAKiD,IAAI,iBAAA,EAAmB,MAAMrF,EAAEoC,KAAKR,EAAER,KAAKX,EAAEW,KAAKH,EAAEmB,KAAKR,EAAEL,IAAId,EAAEc,IAAiByC,iBAAiB5B,KAAKkB,OAASkD,EAAAA,WAA1C,UAAyDxG,IAAJ,GAAWiB,IAAJ,IAAQmB,KAAKkB,QAAQmD,MAAMD,SAAS,YAAgBxG,IAAJ,IAAQoC,KAAKkB,QAAQmD,MAAMrF,KAAKpB,EAAE,MAAUiB,IAAJ,IAAQmB,KAAKkB,QAAQmD,MAAMlF,IAAIN,EAAE,KAAK,CAAC,CAAC,MAAMR,EAAE2B,KAAKJ,EAAEI,KAAKY,QAAQY,eAAuBxB,EAAAA,MAAAA,KAAKwD,QAAQxD,KAAKY,QAAQqD,IAAI5F,CAAAA,EAAG2B,KAAKkB,QAAQoD,OAAAA,CAAQ,CAAC,SAAAxB,CAAU9C,KAAKM,eAAAA,CAAgB,CAAC,iBAAQN,GAAAA,EAAAA,KAAKY,SAAQ2D,UAAbvE,MAAAA,EAAAA,KAAAA,EAAuBA,KAAK,CAAC,UAAU3B,EAAAA,SAAGA,KAAG2B,GAAAA,EAAAA,KAAKY,SAAQ4D,aAAbxE,MAAAA,EAAAA,KAAAA,EAA0BA,OAAMA,KAAKR,EAAAA,OAASQ,KAAKyE,oBAAAA,OAA2BzE,KAAK0E,OAAAA,OAAc1E,KAAKO,gBAAiB,CAAA,CAAC,GAAI,CAAA,MAAMlC,EAAE,CAAG,EAAA,QAAQT,EAAEoC,KAAKkB,QAAQwB,WAAW9E,EAAEA,EAAEA,GAAAA,YAAAA,EAAG8E,WAAW,CAAC,MAAM7D,EAAEe,EAAEc,IAAI9C,CAAGiB,EAAAA,GAAAA,CAAIA,EAAEwD,WAAAA,GAAcxD,GAAGR,EAAEsG,KAAK9F,CAAE,CAAA,CAAC,OAAOR,CAAC,CAAC,oBAAqB,CAAA,MAAMA,EAAEJ,EAAE2G,IAAI5E,KAAKW,GAAG,OAAOtC,GAAG2B,KAAKW,EAAEK,eAAeC,SAAWhD,CAAAA,EAAE4G,IAAI7E,KAAKW,CAAG,CAAA,CAAA,EAAGtC,CAAC,CAAC,EAAEA,EAAET,EAAEoC,KAAK+C,EAAK,EAAA,CAAA,MAAMlE,EAAE,CAAA,GAAIW,CAAG,EAAA,OAAO5B,EAAEiE,QAASxD,GAAGyG,OAAOC,OAAOlG,EAAER,EAAEuC,QAAQY,eAAAA,CAAAA,EAAmBsD,OAAOC,OAAOlG,EAAER,CAAAA,EAAGQ,CAAC,CAAC,EAAER,EAAET,EAAEiB,GAAGR,EAAE,CAAA,GAAIA,CAAGT,EAAAA,EAAE,CAAIA,GAAAA,CAAAA,EAAG,MAAMyB,EAAER,EAAEmG,IAAK3G,GAAGA,EAAEoG,qBAAsBQ,OAAQ5G,GAAYA,IAAZA,MAAYA,EAAI,IAAI4B,EAAE,EAAEnC,EAAE,EAAE,OAAOuB,EAAE6C,OAAO,IAAI7C,EAAEwC,QAASxD,GAAIA,CAAAA,EAAEe,QAAQa,GAAG5B,EAAEe,OAAOf,EAAEkB,SAASzB,GAAGO,EAAEkB,OAAQ,CAAG,EAASlB,EAAEW,OAAX,QAA0BpB,EAAEoB,OAAjBA,SAAwBX,EAAEW,KAAKiB,EAAE5B,EAAEW,KAAKpB,EAAEoB,KAAKiB,EAAErC,EAAEoB,MAAeX,EAAEc,MAAjBH,QAA+BpB,EAAEuB,eAAMd,EAAEc,IAAIrB,EAAEO,EAAEc,IAAIvB,EAAEuB,IAAIrB,EAAEF,EAAEuB,MAAM,CAACqD,KAAKnE,EAAE2E,GAAGpF,CAAE,CAAA,CAAC,mBAAmBS,EAAET,EAAEiB,EAAAA,GAAM,CAAA,MAAMQ,EAAE,CAAE,EAACY,EAAE,CAAE,EAAC,IAAInC,EAAE,GAAG,MAAMC,EAAE,CAAE,EAAC,UAAUc,KAAKjB,EAAE,CAAC,MAAMK,EAAEI,EAAEQ,CAAAA,EAAGV,EAAEP,EAAEiB,CAAG,EAAA,GAAGA,KAAKE,EAAE,CAAC,MAAMV,EAAEU,EAAEF,GAAG,GAAYZ,IAAT,QAAqBE,IAAT,OAAW,SAAS,MAAMP,EAAES,EAAEJ,EAAEE,CAAG,EAASP,EAAEY,YAAX,SAAuBT,EAAEc,CAAGjB,EAAAA,EAAEqB,MAAMnB,EAAAA,GAAKuB,EAAEb,UAAU,GAAGa,EAAEb,WAAW,MAAMZ,EAAEY,SAAAA,GAAqBZ,EAAE0B,eAAvBd,QAAqCsG,OAAOC,OAAO1F,EAAEzB,EAAE0B,cAAc,MAAMrB,IAAIE,GAAYF,YAAYE,IAAZF,SAAgBH,EAAE,GAAGuB,EAAER,CAAGZ,EAAAA,EAAEgC,EAAEpB,CAAGV,EAAAA,EAAE,CAAC,OAAOkB,EAAE6F,gBAAgBjF,EAAEiF,gBAAgBrG,EAAE,gBAAgB,WAAWmB,KAAKyE,oBAAoB1G,EAAED,EAAE,CAACuB,EAAEY,CAAG,EAAA,MAAM,CAAC,MAAA,QAAc5B,EAAET,EAAEoC,KAAKY,QAAQY,iBAAiBxB,KAAKmF,MAAAA,EAAQnF,KAAK0E,OAAOrG,EAAE,IAAIQ,EAAAA,GAAK,GAAA,CAAImB,KAAKsC,YAAgBtC,GAAAA,CAAAA,KAAKqC,eAAerC,KAAKY,QAAQwE,WAAWpF,KAAK0E,OAAOrG,EAAE2B,KAAKY,QAAQwE,SAASpF,MAAMA,KAAKiD,IAAI,kBAAkB5E,CAAI,GAASA,IAAT,QAAY,CAAC2B,KAAKiD,IAAI,UAAU,CAAC5E,EAAET,IAAIiB,EAAE,GAAGmB,KAAK6D,aAAa7D,KAAKkB,QAAQsC,QAAQnF,EAAET,CAAG,EAAA,MAAMyB,EAAEW,KAAKS,gBAAgBpB,GAAAA,MAAAA,EAAGwF,IAAI7E,MAAM,GAAUA,CAAAA,MAAAA,KAAK6D,aAAarD,QAAQ,MAAOnC,EAAIgB,GAAAA,MAAAA,EAAGiF,OAAOtE,KAAK,CAAC,OAAOA,KAAKqF,UAAUxG,GAAGA,CAAC,CAAC,aAAAyD,SAAc,QAAkBtC,EAAAA,KAAK6D,eAAL7D,YAAAA,EAAmBsF,aAA/B,aAA0CtF,EAAAA,KAAK6D,eAAL7D,YAAAA,EAAmBuF,QAAO,CAAC,IAAIlH,EAAET,EAAAA,CAAGoC,KAAKE,WAAYF,KAAKqC,WAA8C,CAAA,CAAA,CAAE,MAAMmD,EAAE5H,EAAC6H,UAAC5F,GCAx2M9B,EAAE,CAAC,MAAM,QAAQ,SAAS,MAAA,EAAQ,MAAMsB,UAAUvB,EAAAA,eAAE,YAAYO,GAAG,GAAG0B,MAAM1B,CAAGA,EAAAA,EAAE8B,OAAOtB,EAAAA,SAAE6G,QAAQ,MAAMrF,MAAM,8DAA+D,CAAA,CAAC,OAAOzC,EAAEiB,EAAG,CAAA,OAAOR,EAAAA,OAAC,CAAC,OAAOA,GAAGT,EAAEiB,CAAAA,EAAAA,OAAI,OAAgBmB,KAAKW,aAAIX,KAAKW,GAAEtC,EAAAA,EAAEuC,UAAFvC,YAAAA,EAAWyC,KAAKd,KAAKW,EAAEI,cAAcf,IAAAA,GAAOA,KAAK2F,EAAEtH,EAAE6C,QAAQlB,KAAK4F,EAAEhI,EAAEoC,KAAKwF,EAAE3G,GAAG,CAAC,OAAO,MAAM,QAAQ,QAAUmB,EAAAA,KAAKsB,OAAO1D,EAAEiB,CAAE,CAAA,CAAC,aAAcmB,CAAAA,KAAK6F,GAAG,CAAC,YAAI,MAAMxH,EAAqB2B,OAAAA,KAAK4F,GAAxB,WAA0B5F,KAAK4F,KAAI5F,EAAAA,KAAK4F,IAAL5F,YAAAA,EAAQf,MAAMrB,EAAES,EAAEyH,aAAa,GAAYzH,IAAT,QAAaT,CAAAA,EAAE,OAAO,MAAMiB,EAAER,EAAEsD,sBAAAA,EAAwB7D,EAAEF,EAAE+D,sBAAwB3B,GAAAA,EAAAA,KAAKwF,IAALxF,MAAAA,EAAQ6B,QAASxD,GAAAA,CAAI,MAAMT,EAAEG,EAAEgI,SAAS1H,GAAGQ,EAAER,CAAAA,EAAGP,EAAEO,CAAGQ,EAAAA,EAAER,GAAG2B,KAAK2F,EAAEtB,MAAMhG,CAAAA,EAAGT,EAAE,IAAK,EAAE,CCAlyB,CAAA,SAAAoI,EAAyBC,EAGxB,CAAA,IAAIC,EAFmB,WAIvB,QAAStI,EAAI,EAAGA,EAAIqI,EAAQ/D,OAAQtE,IAC3BsI,GAAAD,EAAQE,WAAWvI,GAC3BsI,EALgB,SAKRA,IAAqB,EAGvB,OAAAA,EAAKE,SAAS,EACtB,CAAA,CDX4yBxI,EAAC6H,UAACpG,CAAAA,wMEUjyBgH,EAAeC,IAAsB,eAAA,EAGrCC,QAAAA,cAAN,cAA4BC,EAAAA,YAAAA,CAAAA,CAA5B,aAAAzG,CAAAA,MAAAA,GAAA0G,WAC6CzG,KAAA0G,MAAA,EACd1G,KAAA2G,OAAA,WAC5B3G,KAAQ4G,SAAW,GACuC5G,KAAA6G,YAAA,EACd7G,KAAA8G,eAAA,EAEhB9G,KAAA+G,KAAAA,GAErC/G,KAAQgH,WAAa,EAAA,CAOrB,cACChH,CAAAA,KAAKiH,qBACLjH,KAAKkH,kBAAAA,CAAkB,CAGxB,sBACCnH,OAAAA,MAAMoH,wBACNnH,EAAAA,KAAKoH,mBAALpH,MAAAA,EAAuBqH,YAAW,CAG3B,2BACP,MAAMC,GAAOtH,EAAAA,KAAKuH,aAALvH,YAAAA,EAAiBwH,cAAc,QACvCF,IAEAtH,KAAAoH,iBAAmB,IAAIK,iBAAiB,IAAA,CAEvCzH,KAAAgH,WAAahH,KAAK0H,mBAAmB,CAAA,CAAA,EAGtC1H,KAAAoH,iBAAiBO,QAAQL,EAAM,CAAEM,aAAiBC,QAAAA,KAAe,CAG/D,qBAAqB3G,EAAAA,CAC5B,GAAKA,EAAAA,GAAaA,aAAmB4G,aAAqB,MAAA,GAE1D,IAAIC,EAAa,EACbC,EAAU9G,EAAQ+G,uBAEtB,KAAOD,GAEFA,aAAmBzB,QAAAA,gBACtBwB,GAAcC,EAAQtB,OAGvBsB,EAAUA,EAAQC,uBAQZ,OAJH/G,EAAQgH,gBACGH,GAAA/H,KAAKmI,qBAAqBjH,EAAQgH,aAG1CH,GAAAA,CAAA,CAGA,mBAAAb,CAGP,GAFKlH,KAAAgH,WAAahH,KAAK0H,mBAAAA,EAEnB1H,KAAK+G,MAAQqB,eAAeC,QAAQrI,KAAKgH,UAG5C,IAH4D,OAG5D,OAAA,KADAhH,KAAK4G,SAAW,IAKX,MAAA0B,EAAetI,KAAKmI,qBAAqBnI,MAC/CA,KAAK8G,eAAiB9G,KAAK0G,MAAQ1G,KAAK6G,YAAcyB,EAGhDC,QAAAvI,KAAK8G,cACT0B,EAAAA,KAAKC,YAAUzI,KAAK0I,gBACpBC,UAAU,IAAA,CAEV,GADA3I,KAAK4G,SAAAA,GACD5G,KAAK+G,KACJ,GAAA,CACYqB,eAAAQ,QAAQ5I,KAAKgH,WAAY,aAEe,CAAA,CACxD,CAED,CAAA,CAGK,oBAAAU,CACD,MAAAmB,EAAc7I,KAAK8I,iBAAiB9D,OAAU+D,EAAGC,SAAWC,EAAAA,KAAK,EAEvE,EAAA,OAAOjJ,KAAK+G,KAAOf,EAAY6C,CAAe,EAAA,EAAA,CAG/C,IAAYK,WAAAA,CACX,OAAOlJ,KAAK2G,SAAW,WAAawC,EAAWnJ,KAAK2G,SAAW,WAAayC,EAAWC,CAAA,CAGxF,QACQ,CAAA,OAAAC,EAAAA,MACNtJ,KAAK4G,SACF2C;QACE/F,EAAQ,CACTH,GAAIrD,KAAKkJ,UACT1H,gBAAiB,CAAE/B,SAAU,IAAKC,OAAQ,UAAA,CAAA,CAAA,CAAA;AAAA;AAAA;AAAA,aAK3C6J,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA,OAKJ,CAlH0CC,EAAAA,EAAA,CAA1CC,EAAAA,SAAS,CAAEtJ,KAAM2B,OAAQ4H,UADdnD,CAAAA,CAAAA,EAAAA,sBAC+BoD,UAAA,QAAA,GACfH,EAAA,CAA3BC,WAAS,CAAEtJ,KAAMyJ,MAAAA,CAAAA,CAAAA,EAFNrD,sBAEgBoD,UAAA,SAAA,CAAA,EACXH,EAAA,CAAhBK,EAAMA,SAHKtD,sBAGKoD,UAAA,WAAA,CACoCH,EAAAA,EAAA,CAApDM,EAAAA,EAAQ,CAAEC,QAAS1D,EAAcsC,YAJtBpC,CAAAA,CAAAA,EAAAA,sBAIyCoD,UAAA,cAAA,CAAA,EACjBH,EAAA,CAAnCQ,IAAQ,CAAED,QAAS1D,KALRE,sBAKwBoD,UAAA,iBAAA,CAAA,EAEPH,EAAA,CAA5BC,WAAS,CAAEtJ,KAAM8J,WAPN1D,sBAOiBoD,UAAA,OAAA,CAQ7BH,EAAAA,EAAA,CAHCU,wBAAsB,CACtBC,QAAS,EAAA,CAAA,CAAA,EAbE5D,sBAeZoD,UAAA,mBAAA,CAAA,EAfYpD,QAANA,cAAAiD,EAAA,CADNY,EAAAA,cAAc,gBACF7D,CAAAA,EAAAA","x_google_ignoreList":[0,1,2]}
|
package/dist/delay.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./delay-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./delay-dM9FOKCv.cjs");Object.defineProperty(exports,"SchmancyDelay",{enumerable:!0,get:()=>e.SchmancyDelay}),exports.delayContext=e.delayContext;
|
|
2
2
|
//# sourceMappingURL=delay.cjs.map
|
package/dist/delay.js
CHANGED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";require("rxjs"),require("lit/directives/class-map.js");const p=require("lit/directives/style-map.js"),f=require("./litElement.mixin-DqMWf6Rp.cjs");require("./tailwind.mixin-C-SZB7Or.cjs");const d=require("lit"),l=require("lit/decorators.js");var y=Object.defineProperty,u=Object.getOwnPropertyDescriptor,m=(e,n,t,i)=>{for(var o,s=i>1?void 0:i?u(n,t):n,r=e.length-1;r>=0;r--)(o=e[r])&&(s=(i?o(n,t,s):o(s))||s);return i&&s&&y(n,t,s),s};exports.ConfirmDialog=class extends f.$LitElement(d.css`
|
|
2
|
+
:host {
|
|
3
|
+
position: fixed;
|
|
4
|
+
z-index: 10000;
|
|
5
|
+
inset: 0;
|
|
6
|
+
display: none;
|
|
7
|
+
--dialog-width: 360px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:host([active]) {
|
|
11
|
+
display: block;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.overlay {
|
|
15
|
+
position: fixed;
|
|
16
|
+
inset: 0;
|
|
17
|
+
background: rgba(0, 0, 0, 0.4);
|
|
18
|
+
animation: fade-in 150ms ease;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.dialog {
|
|
22
|
+
position: absolute;
|
|
23
|
+
max-width: var(--dialog-width);
|
|
24
|
+
width: max-content;
|
|
25
|
+
animation: pop-in 150ms ease;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@keyframes pop-in {
|
|
29
|
+
from {
|
|
30
|
+
opacity: 0;
|
|
31
|
+
transform: scale(0.9);
|
|
32
|
+
}
|
|
33
|
+
to {
|
|
34
|
+
opacity: 1;
|
|
35
|
+
transform: scale(1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@keyframes fade-in {
|
|
40
|
+
from {
|
|
41
|
+
opacity: 0;
|
|
42
|
+
}
|
|
43
|
+
to {
|
|
44
|
+
opacity: 1;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
`){constructor(){super(...arguments),this.title="Confirm Action",this.message="Are you sure you want to proceed?",this.confirmText="Confirm",this.cancelText="Cancel",this.variant="default",this.position={x:0,y:0}}async show(e){let n,t;if("clientX"in e)n=e.clientX,t=e.clientY;else if("touches"in e&&e.touches.length)n=e.touches[0].clientX,t=e.touches[0].clientY;else{const i=e;n=i.x,t=i.y}return this.position=this.calculatePosition(n,t),this.setAttribute("active",""),new Promise(i=>{this.resolvePromise=i})}hide(e=!1){this.removeAttribute("active"),this.resolvePromise&&(this.resolvePromise(e),this.resolvePromise=void 0)}calculatePosition(e,n){return{x:e,y:n}}firstUpdated(){setTimeout(()=>{var h;const e=(h=this.shadowRoot)==null?void 0:h.querySelector(".dialog");if(!e)return;const n=e.offsetWidth,t=e.offsetHeight,i=window.innerWidth,o=window.innerHeight;let{x:s,y:r}=this.position;s+n>i-16&&(s=Math.max(16,i-n-16)),r+t>o-16&&(r=r>t+32?r-t-16:16),e.style.left=`${s}px`,e.style.top=`${r}px`},0)}handleConfirm(){this.hide(!0),this.dispatchEvent(new CustomEvent("confirm",{bubbles:!0,composed:!0}))}handleCancel(){this.hide(!1),this.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))}render(){const e={left:`${this.position.x}px`,top:`${this.position.y}px`},n=this.querySelectorAll('[slot="content"]').length>0;return d.html`
|
|
48
|
+
<div class="overlay" @click=${this.handleCancel}></div>
|
|
49
|
+
|
|
50
|
+
<div class="dialog" style=${p.styleMap(e)} role="alertdialog" aria-modal="true">
|
|
51
|
+
<schmancy-surface rounded="all" elevation="3" type="containerHigh">
|
|
52
|
+
<schmancy-form @submit=${this.handleConfirm} class="p-4">
|
|
53
|
+
<schmancy-typography type="title" token="md" class="mb-2"> ${this.title} </schmancy-typography>
|
|
54
|
+
|
|
55
|
+
${n?d.html`<div class="mb-4"><slot name="content"></slot></div>`:d.html`<schmancy-typography type="body" class="mb-4"> ${this.message} </schmancy-typography>`}
|
|
56
|
+
|
|
57
|
+
<div class="flex justify-end gap-3">
|
|
58
|
+
<schmancy-button variant="outlined" @click=${this.handleCancel}> ${this.cancelText} </schmancy-button>
|
|
59
|
+
|
|
60
|
+
<schmancy-button type="submit" variant="filled"> ${this.confirmText} </schmancy-button>
|
|
61
|
+
</div>
|
|
62
|
+
</schmancy-form>
|
|
63
|
+
</schmancy-surface>
|
|
64
|
+
</div>
|
|
65
|
+
`}static async confirm(e){let n=document.querySelector("confirm-dialog");return n||(n=document.createElement("confirm-dialog"),document.body.appendChild(n)),e.title&&(n.title=e.title),e.message&&(n.message=e.message),e.confirmText&&(n.confirmText=e.confirmText),e.cancelText&&(n.cancelText=e.cancelText),e.variant&&(n.variant=e.variant),e.width&&n.style.setProperty("--dialog-width",e.width),n.show(e.position)}static async ask(e,n){return this.confirm({message:n,position:e})}},m([l.property({type:String})],exports.ConfirmDialog.prototype,"title",2),m([l.property({type:String})],exports.ConfirmDialog.prototype,"message",2),m([l.property({type:String,attribute:"confirm-text"})],exports.ConfirmDialog.prototype,"confirmText",2),m([l.property({type:String,attribute:"cancel-text"})],exports.ConfirmDialog.prototype,"cancelText",2),m([l.property({type:String})],exports.ConfirmDialog.prototype,"variant",2),exports.ConfirmDialog=m([l.customElement("confirm-dialog")],exports.ConfirmDialog);const c=class c{constructor(){}static getInstance(){return c.instance||(c.instance=new c),c.instance}confirm(n){const t={...c.DEFAULT_OPTIONS,...n};t.position||(t.position=this.getCenteredPosition());let i=document.querySelector("confirm-dialog");if(i||(i=document.createElement("confirm-dialog"),document.body.appendChild(i)),t.title&&(i.title=t.title),t.message&&(i.message=t.message),t.confirmText&&(i.confirmText=t.confirmText),t.cancelText&&(i.cancelText=t.cancelText),t.variant&&(i.variant=t.variant),t.width&&i.style.setProperty("--dialog-width",t.width),t.content){const o=document.createElement("div");if(o.slot="content",typeof t.content=="function"){const s=t.content();s instanceof HTMLElement?o.appendChild(s):d.render(s,o)}else t.content instanceof HTMLElement?o.appendChild(t.content):d.render(t.content,o);i.appendChild(o)}if(t.onConfirm){const o=s=>{t.onConfirm(),i.removeEventListener("confirm",o)};i.addEventListener("confirm",o)}if(t.onCancel){const o=s=>{t.onCancel(),i.removeEventListener("cancel",o)};i.addEventListener("cancel",o)}return i.show(t.position).finally(()=>{if(t.content){const o=i.querySelector('[slot="content"]');o&&i.removeChild(o)}})}ask(n,t){return this.confirm({message:n,position:t||this.getCenteredPosition()})}danger(n){return this.confirm({...n,variant:"danger"})}component(n,t={position:this.getCenteredPosition()}){return this.confirm({...t,content:n,message:void 0})}getCenteredPosition(){return{x:window.innerWidth/2,y:window.innerHeight/2}}};c.DEFAULT_OPTIONS={title:"Confirm Action",confirmText:"Confirm",cancelText:"Cancel",variant:"default",width:"360px"};let a=c;const g={confirm:e=>a.getInstance().confirm(e),ask:(e,n)=>a.getInstance().ask(e,n),danger:e=>a.getInstance().danger(e),component:(e,n)=>a.getInstance().component(e,n)};exports.$dialog=g,exports.DialogService=a;
|
|
66
|
+
//# sourceMappingURL=dialog-service-B55dEe3k.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-service-B55dEe3k.cjs","sources":["../src/dialog/dailog.ts","../src/dialog/dialog-service.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { styleMap } from 'lit/directives/style-map.js'\n\n/**\n * A confirm dialog web component with custom content support\n *\n * @element confirm-dialog\n * @slot content - Optional slot for custom content\n */\n@customElement('confirm-dialog')\nexport class ConfirmDialog extends $LitElement(css`\n\t:host {\n\t\tposition: fixed;\n\t\tz-index: 10000;\n\t\tinset: 0;\n\t\tdisplay: none;\n\t\t--dialog-width: 360px;\n\t}\n\n\t:host([active]) {\n\t\tdisplay: block;\n\t}\n\n\t.overlay {\n\t\tposition: fixed;\n\t\tinset: 0;\n\t\tbackground: rgba(0, 0, 0, 0.4);\n\t\tanimation: fade-in 150ms ease;\n\t}\n\n\t.dialog {\n\t\tposition: absolute;\n\t\tmax-width: var(--dialog-width);\n\t\twidth: max-content;\n\t\tanimation: pop-in 150ms ease;\n\t}\n\n\t@keyframes pop-in {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.9);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t@keyframes fade-in {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t}\n\t}\n`) {\n\t/**\n\t * Dialog title\n\t */\n\t@property({ type: String })\n\ttitle = 'Confirm Action'\n\n\t/**\n\t * Dialog message\n\t */\n\t@property({ type: String })\n\tmessage = 'Are you sure you want to proceed?'\n\n\t/**\n\t * Text for confirm button\n\t */\n\t@property({ type: String, attribute: 'confirm-text' })\n\tconfirmText = 'Confirm'\n\n\t/**\n\t * Text for cancel button\n\t */\n\t@property({ type: String, attribute: 'cancel-text' })\n\tcancelText = 'Cancel'\n\n\t/**\n\t * Dialog variant (affects button colors)\n\t */\n\t@property({ type: String })\n\tvariant: 'default' | 'danger' = 'default'\n\n\t/**\n\t * Current position of the dialog\n\t */\n\tprivate position = { x: 0, y: 0 }\n\n\t/**\n\t * Current active promise resolver\n\t */\n\tprivate resolvePromise?: (value: boolean) => void\n\n\t/**\n\t * Simple API: Show the dialog at a specific position\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tasync show(positionOrEvent: { x: number; y: number } | MouseEvent | TouchEvent): Promise<boolean> {\n\t\t// Extract position from event or use direct coordinates\n\t\tlet x: number, y: number\n\n\t\tif ('clientX' in positionOrEvent) {\n\t\t\t// It's a mouse event\n\t\t\tx = positionOrEvent.clientX\n\t\t\ty = positionOrEvent.clientY\n\t\t} else if ('touches' in positionOrEvent && positionOrEvent.touches.length) {\n\t\t\t// It's a touch event\n\t\t\tx = positionOrEvent.touches[0].clientX\n\t\t\ty = positionOrEvent.touches[0].clientY\n\t\t} else {\n\t\t\t// It's a position object with x,y coordinates\n\t\t\tconst pos = positionOrEvent as { x: number; y: number }\n\t\t\tx = pos.x\n\t\t\ty = pos.y\n\t\t}\n\n\t\t// Set position and make dialog visible\n\t\tthis.position = this.calculatePosition(x, y)\n\t\tthis.setAttribute('active', '')\n\n\t\t// Return a promise that resolves when the user makes a choice\n\t\treturn new Promise<boolean>(resolve => {\n\t\t\tthis.resolvePromise = resolve\n\t\t})\n\t}\n\n\t/**\n\t * Simple API: Hide the dialog\n\t */\n\thide(confirmed = false) {\n\t\tthis.removeAttribute('active')\n\n\t\t// Resolve any pending promise\n\t\tif (this.resolvePromise) {\n\t\t\tthis.resolvePromise(confirmed)\n\t\t\tthis.resolvePromise = undefined\n\t\t}\n\t}\n\n\t/**\n\t * Calculate optimal position based on click coordinates\n\t */\n\tprivate calculatePosition(x: number, y: number) {\n\t\t// Default to click position\n\t\treturn { x, y }\n\t}\n\n\t/**\n\t * Handle lifecycle callback when dialog is first rendered\n\t */\n\tfirstUpdated() {\n\t\t// Optimize position after first render when we know the size\n\t\tsetTimeout(() => {\n\t\t\tconst dialog = this.shadowRoot?.querySelector('.dialog') as HTMLElement\n\t\t\tif (!dialog) return\n\n\t\t\t// Get dialog dimensions\n\t\t\tconst width = dialog.offsetWidth\n\t\t\tconst height = dialog.offsetHeight\n\n\t\t\t// Get viewport dimensions\n\t\t\tconst viewportWidth = window.innerWidth\n\t\t\tconst viewportHeight = window.innerHeight\n\n\t\t\t// Reposition if needed to keep dialog in viewport\n\t\t\tlet { x, y } = this.position\n\n\t\t\t// Make sure dialog stays within viewport horizontally\n\t\t\tif (x + width > viewportWidth - 16) {\n\t\t\t\tx = Math.max(16, viewportWidth - width - 16)\n\t\t\t}\n\n\t\t\t// Make sure dialog stays within viewport vertically\n\t\t\tif (y + height > viewportHeight - 16) {\n\t\t\t\t// Position above if space available, otherwise at top\n\t\t\t\tif (y > height + 32) {\n\t\t\t\t\ty = y - height - 16\n\t\t\t\t} else {\n\t\t\t\t\ty = 16\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Update dialog position\n\t\t\tdialog.style.left = `${x}px`\n\t\t\tdialog.style.top = `${y}px`\n\t\t}, 0)\n\t}\n\n\t/**\n\t * Handle confirm action\n\t */\n\tprivate handleConfirm() {\n\t\tthis.hide(true)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('confirm', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle cancel action\n\t */\n\tprivate handleCancel() {\n\t\tthis.hide(false)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('cancel', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst dialogStyles = {\n\t\t\tleft: `${this.position.x}px`,\n\t\t\ttop: `${this.position.y}px`,\n\t\t}\n\n\t\tconst hasCustomContent = this.querySelectorAll('[slot=\"content\"]').length > 0\n\n\t\treturn html`\n\t\t\t<div class=\"overlay\" @click=${this.handleCancel}></div>\n\n\t\t\t<div class=\"dialog\" style=${styleMap(dialogStyles)} role=\"alertdialog\" aria-modal=\"true\">\n\t\t\t\t<schmancy-surface rounded=\"all\" elevation=\"3\" type=\"containerHigh\">\n\t\t\t\t\t<schmancy-form @submit=${this.handleConfirm} class=\"p-4\">\n\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"mb-2\"> ${this.title} </schmancy-typography>\n\n\t\t\t\t\t\t${hasCustomContent\n\t\t\t\t\t\t\t? html`<div class=\"mb-4\"><slot name=\"content\"></slot></div>`\n\t\t\t\t\t\t\t: html`<schmancy-typography type=\"body\" class=\"mb-4\"> ${this.message} </schmancy-typography>`}\n\n\t\t\t\t\t\t<div class=\"flex justify-end gap-3\">\n\t\t\t\t\t\t\t<schmancy-button variant=\"outlined\" @click=${this.handleCancel}> ${this.cancelText} </schmancy-button>\n\n\t\t\t\t\t\t\t<schmancy-button type=\"submit\" variant=\"filled\"> ${this.confirmText} </schmancy-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</schmancy-form>\n\t\t\t\t</schmancy-surface>\n\t\t\t</div>\n\t\t`\n\t}\n\n\t/**\n\t * Static helper for even simpler API\n\t */\n\tstatic async confirm(options: {\n\t\ttitle?: string\n\t\tmessage?: string\n\t\tconfirmText?: string\n\t\tcancelText?: string\n\t\tvariant?: 'default' | 'danger'\n\t\tposition: { x: number; y: number } | MouseEvent | TouchEvent\n\t\twidth?: string\n\t}): Promise<boolean> {\n\t\t// Create dialog if it doesn't exist\n\t\tlet dialog = document.querySelector('confirm-dialog') as ConfirmDialog\n\n\t\tif (!dialog) {\n\t\t\tdialog = document.createElement('confirm-dialog') as ConfirmDialog\n\t\t\tdocument.body.appendChild(dialog)\n\t\t}\n\n\t\t// Set options\n\t\tif (options.title) dialog.title = options.title\n\t\tif (options.message) dialog.message = options.message\n\t\tif (options.confirmText) dialog.confirmText = options.confirmText\n\t\tif (options.cancelText) dialog.cancelText = options.cancelText\n\t\tif (options.variant) dialog.variant = options.variant\n\t\tif (options.width) dialog.style.setProperty('--dialog-width', options.width)\n\n\t\t// Show dialog and return promise\n\t\treturn dialog.show(options.position)\n\t}\n\n\t/**\n\t * Even simpler shorthand method - just pass the event and message\n\t */\n\tstatic async ask(event: MouseEvent | TouchEvent, message: string): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tposition: event,\n\t\t})\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'confirm-dialog': ConfirmDialog\n\t}\n}\n","import { render, TemplateResult } from 'lit'\nimport { ConfirmDialog } from './dailog'\n\n/**\n * Dialog service options interface with component support\n */\nexport interface DialogOptions {\n\ttitle?: string\n\tmessage?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tvariant?: 'default' | 'danger'\n\tposition: { x: number; y: number } | MouseEvent | TouchEvent\n\n\t// New options for component rendering\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\twidth?: string\n\tonConfirm?: () => void\n\tonCancel?: () => void\n}\n\n/**\n * Dialog service for centralized dialog management.\n * Provides a simple API for showing dialogs with optional custom components.\n */\nexport class DialogService {\n\tprivate static instance: DialogService\n\n\t// Default dialog options\n\tprivate static DEFAULT_OPTIONS: Partial<DialogOptions> = {\n\t\ttitle: 'Confirm Action',\n\t\tconfirmText: 'Confirm',\n\t\tcancelText: 'Cancel',\n\t\tvariant: 'default',\n\t\twidth: '360px',\n\t}\n\n\t// Private constructor for singleton pattern\n\tprivate constructor() {}\n\n\t/**\n\t * Get the singleton instance\n\t */\n\tpublic static getInstance(): DialogService {\n\t\tif (!DialogService.instance) {\n\t\t\tDialogService.instance = new DialogService()\n\t\t}\n\t\treturn DialogService.instance\n\t}\n\n\t/**\n\t * Show a confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic confirm(options: DialogOptions): Promise<boolean> {\n\t\t// Apply default options\n\t\tconst completeOptions = {\n\t\t\t...DialogService.DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t}\n\n\t\t// If no position is provided, center the dialog\n\t\tif (!completeOptions.position) {\n\t\t\tcompleteOptions.position = this.getCenteredPosition()\n\t\t}\n\n\t\t// Create or find the dialog\n\t\tlet dialog = document.querySelector('confirm-dialog') as ConfirmDialog\n\t\tif (!dialog) {\n\t\t\tdialog = document.createElement('confirm-dialog') as ConfirmDialog\n\t\t\tdocument.body.appendChild(dialog)\n\t\t}\n\n\t\t// Set basic options\n\t\tif (completeOptions.title) dialog.title = completeOptions.title\n\t\tif (completeOptions.message) dialog.message = completeOptions.message\n\t\tif (completeOptions.confirmText) dialog.confirmText = completeOptions.confirmText\n\t\tif (completeOptions.cancelText) dialog.cancelText = completeOptions.cancelText\n\t\tif (completeOptions.variant) dialog.variant = completeOptions.variant\n\t\tif (completeOptions.width) dialog.style.setProperty('--dialog-width', completeOptions.width)\n\n\t\t// Handle custom content if provided\n\t\tif (completeOptions.content) {\n\t\t\tconst contentContainer = document.createElement('div')\n\t\t\tcontentContainer.slot = 'content'\n\n\t\t\tif (typeof completeOptions.content === 'function') {\n\t\t\t\tconst result = completeOptions.content()\n\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\tcontentContainer.appendChild(result)\n\t\t\t\t} else {\n\t\t\t\t\trender(result, contentContainer)\n\t\t\t\t}\n\t\t\t} else if (completeOptions.content instanceof HTMLElement) {\n\t\t\t\tcontentContainer.appendChild(completeOptions.content)\n\t\t\t} else {\n\t\t\t\trender(completeOptions.content, contentContainer)\n\t\t\t}\n\n\t\t\tdialog.appendChild(contentContainer)\n\t\t}\n\n\t\t// Set up event listeners for optional callbacks\n\t\tif (completeOptions.onConfirm) {\n\t\t\tconst onConfirm = (_e: Event) => {\n\t\t\t\tcompleteOptions.onConfirm!()\n\t\t\t\tdialog.removeEventListener('confirm', onConfirm)\n\t\t\t}\n\t\t\tdialog.addEventListener('confirm', onConfirm)\n\t\t}\n\n\t\tif (completeOptions.onCancel) {\n\t\t\tconst onCancel = (_e: Event) => {\n\t\t\t\tcompleteOptions.onCancel!()\n\t\t\t\tdialog.removeEventListener('cancel', onCancel)\n\t\t\t}\n\t\t\tdialog.addEventListener('cancel', onCancel)\n\t\t}\n\n\t\t// Show dialog and return promise\n\t\treturn dialog.show(completeOptions.position).finally(() => {\n\t\t\t// Clean up the content when dialog closes\n\t\t\tif (completeOptions.content) {\n\t\t\t\tconst contentEl = dialog.querySelector('[slot=\"content\"]')\n\t\t\t\tif (contentEl) {\n\t\t\t\t\tdialog.removeChild(contentEl)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * Show a simple confirmation dialog with just a message\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tposition: event || this.getCenteredPosition(),\n\t\t})\n\t}\n\n\t/**\n\t * Show a danger confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic danger(options: Omit<DialogOptions, 'variant'>): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\t...options,\n\t\t\tvariant: 'danger',\n\t\t})\n\t}\n\n\t/**\n\t * Show a dialog with custom component content\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic component(\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions: Omit<DialogOptions, 'content' | 'message'> = { position: this.getCenteredPosition() },\n\t): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\t...options,\n\t\t\tcontent,\n\t\t\t// Clear message if content is provided\n\t\t\tmessage: undefined,\n\t\t})\n\t}\n\n\t/**\n\t * Get a centered position for the dialog\n\t */\n\tprivate getCenteredPosition(): { x: number; y: number } {\n\t\treturn {\n\t\t\tx: window.innerWidth / 2,\n\t\t\ty: window.innerHeight / 2,\n\t\t}\n\t}\n}\n\n/**\n * Global dialog utility - provides a quick way to show dialogs\n */\nexport const $dialog = {\n\t/**\n\t * Show a confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tconfirm: (options: DialogOptions): Promise<boolean> => {\n\t\treturn DialogService.getInstance().confirm(options)\n\t},\n\n\t/**\n\t * Show a simple confirmation dialog with just a message\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\task: (message: string, event?: MouseEvent | TouchEvent): Promise<boolean> => {\n\t\treturn DialogService.getInstance().ask(message, event)\n\t},\n\n\t/**\n\t * Show a danger confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tdanger: (options: Omit<DialogOptions, 'variant'>): Promise<boolean> => {\n\t\treturn DialogService.getInstance().danger(options)\n\t},\n\n\t/**\n\t * Show a dialog with custom component content\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tcomponent: (\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions?: Omit<DialogOptions, 'content' | 'message'>,\n\t): Promise<boolean> => {\n\t\treturn DialogService.getInstance().component(content, options)\n\t},\n}\n\nexport default DialogService\n"],"names":["ConfirmDialog","$LitElement","css","constructor","super","arguments","this","title","message","confirmText","cancelText","variant","position","x","y","show","positionOrEvent","clientX","clientY","touches","length","pos","calculatePosition","setAttribute","Promise","resolve","resolvePromise","confirmed","removeAttribute","i","firstUpdated","setTimeout","dialog","shadowRoot","querySelector","width","offsetWidth","height","offsetHeight","viewportWidth","window","innerWidth","viewportHeight","innerHeight","Math","max","style","left","top","handleConfirm","hide","dispatchEvent","CustomEvent","bubbles","composed","render","dialogStyles","hasCustomContent","querySelectorAll","html","handleCancel","styleMap","options","document","createElement","body","appendChild","setProperty","ask","event","confirm","__decorateClass","property","type","String","prototype","attribute","customElement","DialogService","instance","completeOptions","DEFAULT_OPTIONS","getCenteredPosition","content","contentContainer","slot","result","HTMLElement","onConfirm","_e","removeEventListener","addEventListener","onCancel","finally","contentEl","removeChild","_a","$dialog","getInstance","danger","component"],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import "rxjs";
|
|
2
|
+
import "lit/directives/class-map.js";
|
|
3
|
+
import { styleMap as y } from "lit/directives/style-map.js";
|
|
4
|
+
import { $ as u } from "./litElement.mixin-hg90OkNF.js";
|
|
5
|
+
import "./tailwind.mixin-PpOEXUY6.js";
|
|
6
|
+
import { css as g, html as h, render as f } from "lit";
|
|
7
|
+
import { property as d, customElement as v } from "lit/decorators.js";
|
|
8
|
+
var x = Object.defineProperty, w = Object.getOwnPropertyDescriptor, l = (t, n, e, i) => {
|
|
9
|
+
for (var o, s = i > 1 ? void 0 : i ? w(n, e) : n, a = t.length - 1; a >= 0; a--) (o = t[a]) && (s = (i ? o(n, e, s) : o(s)) || s);
|
|
10
|
+
return i && s && x(n, e, s), s;
|
|
11
|
+
};
|
|
12
|
+
let r = class extends u(g`
|
|
13
|
+
:host {
|
|
14
|
+
position: fixed;
|
|
15
|
+
z-index: 10000;
|
|
16
|
+
inset: 0;
|
|
17
|
+
display: none;
|
|
18
|
+
--dialog-width: 360px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:host([active]) {
|
|
22
|
+
display: block;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.overlay {
|
|
26
|
+
position: fixed;
|
|
27
|
+
inset: 0;
|
|
28
|
+
background: rgba(0, 0, 0, 0.4);
|
|
29
|
+
animation: fade-in 150ms ease;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.dialog {
|
|
33
|
+
position: absolute;
|
|
34
|
+
max-width: var(--dialog-width);
|
|
35
|
+
width: max-content;
|
|
36
|
+
animation: pop-in 150ms ease;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@keyframes pop-in {
|
|
40
|
+
from {
|
|
41
|
+
opacity: 0;
|
|
42
|
+
transform: scale(0.9);
|
|
43
|
+
}
|
|
44
|
+
to {
|
|
45
|
+
opacity: 1;
|
|
46
|
+
transform: scale(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@keyframes fade-in {
|
|
51
|
+
from {
|
|
52
|
+
opacity: 0;
|
|
53
|
+
}
|
|
54
|
+
to {
|
|
55
|
+
opacity: 1;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
`) {
|
|
59
|
+
constructor() {
|
|
60
|
+
super(...arguments), this.title = "Confirm Action", this.message = "Are you sure you want to proceed?", this.confirmText = "Confirm", this.cancelText = "Cancel", this.variant = "default", this.position = { x: 0, y: 0 };
|
|
61
|
+
}
|
|
62
|
+
async show(t) {
|
|
63
|
+
let n, e;
|
|
64
|
+
if ("clientX" in t) n = t.clientX, e = t.clientY;
|
|
65
|
+
else if ("touches" in t && t.touches.length) n = t.touches[0].clientX, e = t.touches[0].clientY;
|
|
66
|
+
else {
|
|
67
|
+
const i = t;
|
|
68
|
+
n = i.x, e = i.y;
|
|
69
|
+
}
|
|
70
|
+
return this.position = this.calculatePosition(n, e), this.setAttribute("active", ""), new Promise((i) => {
|
|
71
|
+
this.resolvePromise = i;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
hide(t = !1) {
|
|
75
|
+
this.removeAttribute("active"), this.resolvePromise && (this.resolvePromise(t), this.resolvePromise = void 0);
|
|
76
|
+
}
|
|
77
|
+
calculatePosition(t, n) {
|
|
78
|
+
return { x: t, y: n };
|
|
79
|
+
}
|
|
80
|
+
firstUpdated() {
|
|
81
|
+
setTimeout(() => {
|
|
82
|
+
var p;
|
|
83
|
+
const t = (p = this.shadowRoot) == null ? void 0 : p.querySelector(".dialog");
|
|
84
|
+
if (!t) return;
|
|
85
|
+
const n = t.offsetWidth, e = t.offsetHeight, i = window.innerWidth, o = window.innerHeight;
|
|
86
|
+
let { x: s, y: a } = this.position;
|
|
87
|
+
s + n > i - 16 && (s = Math.max(16, i - n - 16)), a + e > o - 16 && (a = a > e + 32 ? a - e - 16 : 16), t.style.left = `${s}px`, t.style.top = `${a}px`;
|
|
88
|
+
}, 0);
|
|
89
|
+
}
|
|
90
|
+
handleConfirm() {
|
|
91
|
+
this.hide(!0), this.dispatchEvent(new CustomEvent("confirm", { bubbles: !0, composed: !0 }));
|
|
92
|
+
}
|
|
93
|
+
handleCancel() {
|
|
94
|
+
this.hide(!1), this.dispatchEvent(new CustomEvent("cancel", { bubbles: !0, composed: !0 }));
|
|
95
|
+
}
|
|
96
|
+
render() {
|
|
97
|
+
const t = { left: `${this.position.x}px`, top: `${this.position.y}px` }, n = this.querySelectorAll('[slot="content"]').length > 0;
|
|
98
|
+
return h`
|
|
99
|
+
<div class="overlay" @click=${this.handleCancel}></div>
|
|
100
|
+
|
|
101
|
+
<div class="dialog" style=${y(t)} role="alertdialog" aria-modal="true">
|
|
102
|
+
<schmancy-surface rounded="all" elevation="3" type="containerHigh">
|
|
103
|
+
<schmancy-form @submit=${this.handleConfirm} class="p-4">
|
|
104
|
+
<schmancy-typography type="title" token="md" class="mb-2"> ${this.title} </schmancy-typography>
|
|
105
|
+
|
|
106
|
+
${n ? h`<div class="mb-4"><slot name="content"></slot></div>` : h`<schmancy-typography type="body" class="mb-4"> ${this.message} </schmancy-typography>`}
|
|
107
|
+
|
|
108
|
+
<div class="flex justify-end gap-3">
|
|
109
|
+
<schmancy-button variant="outlined" @click=${this.handleCancel}> ${this.cancelText} </schmancy-button>
|
|
110
|
+
|
|
111
|
+
<schmancy-button type="submit" variant="filled"> ${this.confirmText} </schmancy-button>
|
|
112
|
+
</div>
|
|
113
|
+
</schmancy-form>
|
|
114
|
+
</schmancy-surface>
|
|
115
|
+
</div>
|
|
116
|
+
`;
|
|
117
|
+
}
|
|
118
|
+
static async confirm(t) {
|
|
119
|
+
let n = document.querySelector("confirm-dialog");
|
|
120
|
+
return n || (n = document.createElement("confirm-dialog"), document.body.appendChild(n)), t.title && (n.title = t.title), t.message && (n.message = t.message), t.confirmText && (n.confirmText = t.confirmText), t.cancelText && (n.cancelText = t.cancelText), t.variant && (n.variant = t.variant), t.width && n.style.setProperty("--dialog-width", t.width), n.show(t.position);
|
|
121
|
+
}
|
|
122
|
+
static async ask(t, n) {
|
|
123
|
+
return this.confirm({ message: n, position: t });
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
l([d({ type: String })], r.prototype, "title", 2), l([d({ type: String })], r.prototype, "message", 2), l([d({ type: String, attribute: "confirm-text" })], r.prototype, "confirmText", 2), l([d({ type: String, attribute: "cancel-text" })], r.prototype, "cancelText", 2), l([d({ type: String })], r.prototype, "variant", 2), r = l([v("confirm-dialog")], r);
|
|
127
|
+
const c = class c {
|
|
128
|
+
constructor() {
|
|
129
|
+
}
|
|
130
|
+
static getInstance() {
|
|
131
|
+
return c.instance || (c.instance = new c()), c.instance;
|
|
132
|
+
}
|
|
133
|
+
confirm(n) {
|
|
134
|
+
const e = { ...c.DEFAULT_OPTIONS, ...n };
|
|
135
|
+
e.position || (e.position = this.getCenteredPosition());
|
|
136
|
+
let i = document.querySelector("confirm-dialog");
|
|
137
|
+
if (i || (i = document.createElement("confirm-dialog"), document.body.appendChild(i)), e.title && (i.title = e.title), e.message && (i.message = e.message), e.confirmText && (i.confirmText = e.confirmText), e.cancelText && (i.cancelText = e.cancelText), e.variant && (i.variant = e.variant), e.width && i.style.setProperty("--dialog-width", e.width), e.content) {
|
|
138
|
+
const o = document.createElement("div");
|
|
139
|
+
if (o.slot = "content", typeof e.content == "function") {
|
|
140
|
+
const s = e.content();
|
|
141
|
+
s instanceof HTMLElement ? o.appendChild(s) : f(s, o);
|
|
142
|
+
} else e.content instanceof HTMLElement ? o.appendChild(e.content) : f(e.content, o);
|
|
143
|
+
i.appendChild(o);
|
|
144
|
+
}
|
|
145
|
+
if (e.onConfirm) {
|
|
146
|
+
const o = (s) => {
|
|
147
|
+
e.onConfirm(), i.removeEventListener("confirm", o);
|
|
148
|
+
};
|
|
149
|
+
i.addEventListener("confirm", o);
|
|
150
|
+
}
|
|
151
|
+
if (e.onCancel) {
|
|
152
|
+
const o = (s) => {
|
|
153
|
+
e.onCancel(), i.removeEventListener("cancel", o);
|
|
154
|
+
};
|
|
155
|
+
i.addEventListener("cancel", o);
|
|
156
|
+
}
|
|
157
|
+
return i.show(e.position).finally(() => {
|
|
158
|
+
if (e.content) {
|
|
159
|
+
const o = i.querySelector('[slot="content"]');
|
|
160
|
+
o && i.removeChild(o);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
ask(n, e) {
|
|
165
|
+
return this.confirm({ message: n, position: e || this.getCenteredPosition() });
|
|
166
|
+
}
|
|
167
|
+
danger(n) {
|
|
168
|
+
return this.confirm({ ...n, variant: "danger" });
|
|
169
|
+
}
|
|
170
|
+
component(n, e = { position: this.getCenteredPosition() }) {
|
|
171
|
+
return this.confirm({ ...e, content: n, message: void 0 });
|
|
172
|
+
}
|
|
173
|
+
getCenteredPosition() {
|
|
174
|
+
return { x: window.innerWidth / 2, y: window.innerHeight / 2 };
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
c.DEFAULT_OPTIONS = { title: "Confirm Action", confirmText: "Confirm", cancelText: "Cancel", variant: "default", width: "360px" };
|
|
178
|
+
let m = c;
|
|
179
|
+
const k = { confirm: (t) => m.getInstance().confirm(t), ask: (t, n) => m.getInstance().ask(t, n), danger: (t) => m.getInstance().danger(t), component: (t, n) => m.getInstance().component(t, n) };
|
|
180
|
+
export {
|
|
181
|
+
k as $,
|
|
182
|
+
r as C,
|
|
183
|
+
m as D
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=dialog-service-wBbOEDry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-service-wBbOEDry.js","sources":["../src/dialog/dailog.ts","../src/dialog/dialog-service.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { styleMap } from 'lit/directives/style-map.js'\n\n/**\n * A confirm dialog web component with custom content support\n *\n * @element confirm-dialog\n * @slot content - Optional slot for custom content\n */\n@customElement('confirm-dialog')\nexport class ConfirmDialog extends $LitElement(css`\n\t:host {\n\t\tposition: fixed;\n\t\tz-index: 10000;\n\t\tinset: 0;\n\t\tdisplay: none;\n\t\t--dialog-width: 360px;\n\t}\n\n\t:host([active]) {\n\t\tdisplay: block;\n\t}\n\n\t.overlay {\n\t\tposition: fixed;\n\t\tinset: 0;\n\t\tbackground: rgba(0, 0, 0, 0.4);\n\t\tanimation: fade-in 150ms ease;\n\t}\n\n\t.dialog {\n\t\tposition: absolute;\n\t\tmax-width: var(--dialog-width);\n\t\twidth: max-content;\n\t\tanimation: pop-in 150ms ease;\n\t}\n\n\t@keyframes pop-in {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: scale(0.9);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n\n\t@keyframes fade-in {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t}\n\t}\n`) {\n\t/**\n\t * Dialog title\n\t */\n\t@property({ type: String })\n\ttitle = 'Confirm Action'\n\n\t/**\n\t * Dialog message\n\t */\n\t@property({ type: String })\n\tmessage = 'Are you sure you want to proceed?'\n\n\t/**\n\t * Text for confirm button\n\t */\n\t@property({ type: String, attribute: 'confirm-text' })\n\tconfirmText = 'Confirm'\n\n\t/**\n\t * Text for cancel button\n\t */\n\t@property({ type: String, attribute: 'cancel-text' })\n\tcancelText = 'Cancel'\n\n\t/**\n\t * Dialog variant (affects button colors)\n\t */\n\t@property({ type: String })\n\tvariant: 'default' | 'danger' = 'default'\n\n\t/**\n\t * Current position of the dialog\n\t */\n\tprivate position = { x: 0, y: 0 }\n\n\t/**\n\t * Current active promise resolver\n\t */\n\tprivate resolvePromise?: (value: boolean) => void\n\n\t/**\n\t * Simple API: Show the dialog at a specific position\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tasync show(positionOrEvent: { x: number; y: number } | MouseEvent | TouchEvent): Promise<boolean> {\n\t\t// Extract position from event or use direct coordinates\n\t\tlet x: number, y: number\n\n\t\tif ('clientX' in positionOrEvent) {\n\t\t\t// It's a mouse event\n\t\t\tx = positionOrEvent.clientX\n\t\t\ty = positionOrEvent.clientY\n\t\t} else if ('touches' in positionOrEvent && positionOrEvent.touches.length) {\n\t\t\t// It's a touch event\n\t\t\tx = positionOrEvent.touches[0].clientX\n\t\t\ty = positionOrEvent.touches[0].clientY\n\t\t} else {\n\t\t\t// It's a position object with x,y coordinates\n\t\t\tconst pos = positionOrEvent as { x: number; y: number }\n\t\t\tx = pos.x\n\t\t\ty = pos.y\n\t\t}\n\n\t\t// Set position and make dialog visible\n\t\tthis.position = this.calculatePosition(x, y)\n\t\tthis.setAttribute('active', '')\n\n\t\t// Return a promise that resolves when the user makes a choice\n\t\treturn new Promise<boolean>(resolve => {\n\t\t\tthis.resolvePromise = resolve\n\t\t})\n\t}\n\n\t/**\n\t * Simple API: Hide the dialog\n\t */\n\thide(confirmed = false) {\n\t\tthis.removeAttribute('active')\n\n\t\t// Resolve any pending promise\n\t\tif (this.resolvePromise) {\n\t\t\tthis.resolvePromise(confirmed)\n\t\t\tthis.resolvePromise = undefined\n\t\t}\n\t}\n\n\t/**\n\t * Calculate optimal position based on click coordinates\n\t */\n\tprivate calculatePosition(x: number, y: number) {\n\t\t// Default to click position\n\t\treturn { x, y }\n\t}\n\n\t/**\n\t * Handle lifecycle callback when dialog is first rendered\n\t */\n\tfirstUpdated() {\n\t\t// Optimize position after first render when we know the size\n\t\tsetTimeout(() => {\n\t\t\tconst dialog = this.shadowRoot?.querySelector('.dialog') as HTMLElement\n\t\t\tif (!dialog) return\n\n\t\t\t// Get dialog dimensions\n\t\t\tconst width = dialog.offsetWidth\n\t\t\tconst height = dialog.offsetHeight\n\n\t\t\t// Get viewport dimensions\n\t\t\tconst viewportWidth = window.innerWidth\n\t\t\tconst viewportHeight = window.innerHeight\n\n\t\t\t// Reposition if needed to keep dialog in viewport\n\t\t\tlet { x, y } = this.position\n\n\t\t\t// Make sure dialog stays within viewport horizontally\n\t\t\tif (x + width > viewportWidth - 16) {\n\t\t\t\tx = Math.max(16, viewportWidth - width - 16)\n\t\t\t}\n\n\t\t\t// Make sure dialog stays within viewport vertically\n\t\t\tif (y + height > viewportHeight - 16) {\n\t\t\t\t// Position above if space available, otherwise at top\n\t\t\t\tif (y > height + 32) {\n\t\t\t\t\ty = y - height - 16\n\t\t\t\t} else {\n\t\t\t\t\ty = 16\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Update dialog position\n\t\t\tdialog.style.left = `${x}px`\n\t\t\tdialog.style.top = `${y}px`\n\t\t}, 0)\n\t}\n\n\t/**\n\t * Handle confirm action\n\t */\n\tprivate handleConfirm() {\n\t\tthis.hide(true)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('confirm', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Handle cancel action\n\t */\n\tprivate handleCancel() {\n\t\tthis.hide(false)\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('cancel', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst dialogStyles = {\n\t\t\tleft: `${this.position.x}px`,\n\t\t\ttop: `${this.position.y}px`,\n\t\t}\n\n\t\tconst hasCustomContent = this.querySelectorAll('[slot=\"content\"]').length > 0\n\n\t\treturn html`\n\t\t\t<div class=\"overlay\" @click=${this.handleCancel}></div>\n\n\t\t\t<div class=\"dialog\" style=${styleMap(dialogStyles)} role=\"alertdialog\" aria-modal=\"true\">\n\t\t\t\t<schmancy-surface rounded=\"all\" elevation=\"3\" type=\"containerHigh\">\n\t\t\t\t\t<schmancy-form @submit=${this.handleConfirm} class=\"p-4\">\n\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"mb-2\"> ${this.title} </schmancy-typography>\n\n\t\t\t\t\t\t${hasCustomContent\n\t\t\t\t\t\t\t? html`<div class=\"mb-4\"><slot name=\"content\"></slot></div>`\n\t\t\t\t\t\t\t: html`<schmancy-typography type=\"body\" class=\"mb-4\"> ${this.message} </schmancy-typography>`}\n\n\t\t\t\t\t\t<div class=\"flex justify-end gap-3\">\n\t\t\t\t\t\t\t<schmancy-button variant=\"outlined\" @click=${this.handleCancel}> ${this.cancelText} </schmancy-button>\n\n\t\t\t\t\t\t\t<schmancy-button type=\"submit\" variant=\"filled\"> ${this.confirmText} </schmancy-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</schmancy-form>\n\t\t\t\t</schmancy-surface>\n\t\t\t</div>\n\t\t`\n\t}\n\n\t/**\n\t * Static helper for even simpler API\n\t */\n\tstatic async confirm(options: {\n\t\ttitle?: string\n\t\tmessage?: string\n\t\tconfirmText?: string\n\t\tcancelText?: string\n\t\tvariant?: 'default' | 'danger'\n\t\tposition: { x: number; y: number } | MouseEvent | TouchEvent\n\t\twidth?: string\n\t}): Promise<boolean> {\n\t\t// Create dialog if it doesn't exist\n\t\tlet dialog = document.querySelector('confirm-dialog') as ConfirmDialog\n\n\t\tif (!dialog) {\n\t\t\tdialog = document.createElement('confirm-dialog') as ConfirmDialog\n\t\t\tdocument.body.appendChild(dialog)\n\t\t}\n\n\t\t// Set options\n\t\tif (options.title) dialog.title = options.title\n\t\tif (options.message) dialog.message = options.message\n\t\tif (options.confirmText) dialog.confirmText = options.confirmText\n\t\tif (options.cancelText) dialog.cancelText = options.cancelText\n\t\tif (options.variant) dialog.variant = options.variant\n\t\tif (options.width) dialog.style.setProperty('--dialog-width', options.width)\n\n\t\t// Show dialog and return promise\n\t\treturn dialog.show(options.position)\n\t}\n\n\t/**\n\t * Even simpler shorthand method - just pass the event and message\n\t */\n\tstatic async ask(event: MouseEvent | TouchEvent, message: string): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tposition: event,\n\t\t})\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'confirm-dialog': ConfirmDialog\n\t}\n}\n","import { render, TemplateResult } from 'lit'\nimport { ConfirmDialog } from './dailog'\n\n/**\n * Dialog service options interface with component support\n */\nexport interface DialogOptions {\n\ttitle?: string\n\tmessage?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tvariant?: 'default' | 'danger'\n\tposition: { x: number; y: number } | MouseEvent | TouchEvent\n\n\t// New options for component rendering\n\tcontent?: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult)\n\twidth?: string\n\tonConfirm?: () => void\n\tonCancel?: () => void\n}\n\n/**\n * Dialog service for centralized dialog management.\n * Provides a simple API for showing dialogs with optional custom components.\n */\nexport class DialogService {\n\tprivate static instance: DialogService\n\n\t// Default dialog options\n\tprivate static DEFAULT_OPTIONS: Partial<DialogOptions> = {\n\t\ttitle: 'Confirm Action',\n\t\tconfirmText: 'Confirm',\n\t\tcancelText: 'Cancel',\n\t\tvariant: 'default',\n\t\twidth: '360px',\n\t}\n\n\t// Private constructor for singleton pattern\n\tprivate constructor() {}\n\n\t/**\n\t * Get the singleton instance\n\t */\n\tpublic static getInstance(): DialogService {\n\t\tif (!DialogService.instance) {\n\t\t\tDialogService.instance = new DialogService()\n\t\t}\n\t\treturn DialogService.instance\n\t}\n\n\t/**\n\t * Show a confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic confirm(options: DialogOptions): Promise<boolean> {\n\t\t// Apply default options\n\t\tconst completeOptions = {\n\t\t\t...DialogService.DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t}\n\n\t\t// If no position is provided, center the dialog\n\t\tif (!completeOptions.position) {\n\t\t\tcompleteOptions.position = this.getCenteredPosition()\n\t\t}\n\n\t\t// Create or find the dialog\n\t\tlet dialog = document.querySelector('confirm-dialog') as ConfirmDialog\n\t\tif (!dialog) {\n\t\t\tdialog = document.createElement('confirm-dialog') as ConfirmDialog\n\t\t\tdocument.body.appendChild(dialog)\n\t\t}\n\n\t\t// Set basic options\n\t\tif (completeOptions.title) dialog.title = completeOptions.title\n\t\tif (completeOptions.message) dialog.message = completeOptions.message\n\t\tif (completeOptions.confirmText) dialog.confirmText = completeOptions.confirmText\n\t\tif (completeOptions.cancelText) dialog.cancelText = completeOptions.cancelText\n\t\tif (completeOptions.variant) dialog.variant = completeOptions.variant\n\t\tif (completeOptions.width) dialog.style.setProperty('--dialog-width', completeOptions.width)\n\n\t\t// Handle custom content if provided\n\t\tif (completeOptions.content) {\n\t\t\tconst contentContainer = document.createElement('div')\n\t\t\tcontentContainer.slot = 'content'\n\n\t\t\tif (typeof completeOptions.content === 'function') {\n\t\t\t\tconst result = completeOptions.content()\n\t\t\t\tif (result instanceof HTMLElement) {\n\t\t\t\t\tcontentContainer.appendChild(result)\n\t\t\t\t} else {\n\t\t\t\t\trender(result, contentContainer)\n\t\t\t\t}\n\t\t\t} else if (completeOptions.content instanceof HTMLElement) {\n\t\t\t\tcontentContainer.appendChild(completeOptions.content)\n\t\t\t} else {\n\t\t\t\trender(completeOptions.content, contentContainer)\n\t\t\t}\n\n\t\t\tdialog.appendChild(contentContainer)\n\t\t}\n\n\t\t// Set up event listeners for optional callbacks\n\t\tif (completeOptions.onConfirm) {\n\t\t\tconst onConfirm = (_e: Event) => {\n\t\t\t\tcompleteOptions.onConfirm!()\n\t\t\t\tdialog.removeEventListener('confirm', onConfirm)\n\t\t\t}\n\t\t\tdialog.addEventListener('confirm', onConfirm)\n\t\t}\n\n\t\tif (completeOptions.onCancel) {\n\t\t\tconst onCancel = (_e: Event) => {\n\t\t\t\tcompleteOptions.onCancel!()\n\t\t\t\tdialog.removeEventListener('cancel', onCancel)\n\t\t\t}\n\t\t\tdialog.addEventListener('cancel', onCancel)\n\t\t}\n\n\t\t// Show dialog and return promise\n\t\treturn dialog.show(completeOptions.position).finally(() => {\n\t\t\t// Clean up the content when dialog closes\n\t\t\tif (completeOptions.content) {\n\t\t\t\tconst contentEl = dialog.querySelector('[slot=\"content\"]')\n\t\t\t\tif (contentEl) {\n\t\t\t\t\tdialog.removeChild(contentEl)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * Show a simple confirmation dialog with just a message\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic ask(message: string, event?: MouseEvent | TouchEvent): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\tmessage,\n\t\t\tposition: event || this.getCenteredPosition(),\n\t\t})\n\t}\n\n\t/**\n\t * Show a danger confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic danger(options: Omit<DialogOptions, 'variant'>): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\t...options,\n\t\t\tvariant: 'danger',\n\t\t})\n\t}\n\n\t/**\n\t * Show a dialog with custom component content\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tpublic component(\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions: Omit<DialogOptions, 'content' | 'message'> = { position: this.getCenteredPosition() },\n\t): Promise<boolean> {\n\t\treturn this.confirm({\n\t\t\t...options,\n\t\t\tcontent,\n\t\t\t// Clear message if content is provided\n\t\t\tmessage: undefined,\n\t\t})\n\t}\n\n\t/**\n\t * Get a centered position for the dialog\n\t */\n\tprivate getCenteredPosition(): { x: number; y: number } {\n\t\treturn {\n\t\t\tx: window.innerWidth / 2,\n\t\t\ty: window.innerHeight / 2,\n\t\t}\n\t}\n}\n\n/**\n * Global dialog utility - provides a quick way to show dialogs\n */\nexport const $dialog = {\n\t/**\n\t * Show a confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tconfirm: (options: DialogOptions): Promise<boolean> => {\n\t\treturn DialogService.getInstance().confirm(options)\n\t},\n\n\t/**\n\t * Show a simple confirmation dialog with just a message\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\task: (message: string, event?: MouseEvent | TouchEvent): Promise<boolean> => {\n\t\treturn DialogService.getInstance().ask(message, event)\n\t},\n\n\t/**\n\t * Show a danger confirmation dialog\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tdanger: (options: Omit<DialogOptions, 'variant'>): Promise<boolean> => {\n\t\treturn DialogService.getInstance().danger(options)\n\t},\n\n\t/**\n\t * Show a dialog with custom component content\n\t * @returns Promise that resolves to true (confirm) or false (cancel)\n\t */\n\tcomponent: (\n\t\tcontent: TemplateResult | HTMLElement | (() => HTMLElement | TemplateResult),\n\t\toptions?: Omit<DialogOptions, 'content' | 'message'>,\n\t): Promise<boolean> => {\n\t\treturn DialogService.getInstance().component(content, options)\n\t},\n}\n\nexport default DialogService\n"],"names":["ConfirmDialog","$LitElement","css","constructor","super","arguments","this","title","message","confirmText","cancelText","variant","position","x","y","positionOrEvent","clientX","clientY","touches","length","pos","calculatePosition","setAttribute","Promise","resolve","resolvePromise","confirmed","removeAttribute","setTimeout","dialog","shadowRoot","querySelector","width","offsetWidth","height","offsetHeight","viewportWidth","window","innerWidth","viewportHeight","innerHeight","Math","max","style","left","top","hide","dispatchEvent","CustomEvent","bubbles","composed","handleCancel","dialogStyles","hasCustomContent","querySelectorAll","html","styleMap","handleConfirm","options","document","createElement","body","appendChild","setProperty","show","event","confirm","__decorateClass","property","type","String","prototype","attribute","customElement","DialogService","getInstance","instance","completeOptions","DEFAULT_OPTIONS","getCenteredPosition","content","contentContainer","slot","result","HTMLElement","render","onConfirm","_e","removeEventListener","addEventListener","onCancel","finally","contentEl","removeChild","_d","$dialog","ask","danger","component"],"mappings":"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"}
|
package/dist/dialog.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dialog-service-B55dEe3k.cjs");exports.$dialog=e.$dialog,Object.defineProperty(exports,"ConfirmDialog",{enumerable:!0,get:()=>e.ConfirmDialog}),exports.DialogService=e.DialogService;
|
|
2
2
|
//# sourceMappingURL=dialog.cjs.map
|
package/dist/dialog.js
CHANGED