@mhmo91/schmancy 0.2.59 → 0.2.61
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-Cmg2mI3S.js → animated-text-C1UstA51.js} +3 -3
- package/dist/{animated-text-Cmg2mI3S.js.map → animated-text-C1UstA51.js.map} +1 -1
- package/dist/{animated-text-CvQB_OPX.cjs → animated-text-k30n5ffs.cjs} +2 -2
- package/dist/{animated-text-CvQB_OPX.cjs.map → animated-text-k30n5ffs.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-CWwc52Uy.cjs → area.component-CDyk4TQX.cjs} +2 -2
- package/dist/{area.component-CWwc52Uy.cjs.map → area.component-CDyk4TQX.cjs.map} +1 -1
- package/dist/{area.component-DA7Ghcl8.js → area.component-TDK2-3sf.js} +3 -3
- package/dist/{area.component-DA7Ghcl8.js.map → area.component-TDK2-3sf.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-BYaStWXT.js → autocomplete-BdqEtlUZ.js} +3 -3
- package/dist/{autocomplete-BYaStWXT.js.map → autocomplete-BdqEtlUZ.js.map} +1 -1
- package/dist/{autocomplete-B29VQiPY.cjs → autocomplete-Cwn1Bwj7.cjs} +2 -2
- package/dist/{autocomplete-B29VQiPY.cjs.map → autocomplete-Cwn1Bwj7.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.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-BNi0XYlX.cjs → checkbox-g8T27Ih6.cjs} +2 -2
- package/dist/{checkbox-BNi0XYlX.cjs.map → checkbox-g8T27Ih6.cjs.map} +1 -1
- package/dist/{checkbox-BDRhgA8Q.js → checkbox-kWG8GEGF.js} +2 -2
- package/dist/{checkbox-BDRhgA8Q.js.map → checkbox-kWG8GEGF.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-BbMv4qYo.cjs → chips-8G-fC-BB.cjs} +2 -2
- package/dist/{chips-BbMv4qYo.cjs.map → chips-8G-fC-BB.cjs.map} +1 -1
- package/dist/{chips-DLKWllS2.js → chips-CcVWASnN.js} +3 -3
- package/dist/{chips-DLKWllS2.js.map → chips-CcVWASnN.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-DT5Gc-8v.cjs +72 -0
- package/dist/date-range-DT5Gc-8v.cjs.map +1 -0
- package/dist/date-range-DmaG6n9K.js +166 -0
- package/dist/date-range-DmaG6n9K.js.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-D_NrsrNB.js → delay-3BI6NTLb.js} +2 -2
- package/dist/{delay-D_NrsrNB.js.map → delay-3BI6NTLb.js.map} +1 -1
- package/dist/{delay-CbylHdl-.cjs → delay-Dcxd6izx.cjs} +2 -2
- package/dist/{delay-CbylHdl-.cjs.map → delay-Dcxd6izx.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{divider-BPWZZ0t2.cjs → divider-2FKklOvJ.cjs} +2 -2
- package/dist/{divider-BPWZZ0t2.cjs.map → divider-2FKklOvJ.cjs.map} +1 -1
- package/dist/{divider-D2GJitrx.js → divider-BoSDlAmp.js} +3 -3
- package/dist/{divider-D2GJitrx.js.map → divider-BoSDlAmp.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{flex-DL52jmYy.js → flex-Rc813PWc.js} +2 -2
- package/dist/{flex-DL52jmYy.js.map → flex-Rc813PWc.js.map} +1 -1
- package/dist/{flex-DICGGeg0.cjs → flex-wH1HLvFA.cjs} +2 -2
- package/dist/{flex-DICGGeg0.cjs.map → flex-wH1HLvFA.cjs.map} +1 -1
- package/dist/{form-BA83AMjT.js → form-BphauHSv.js} +2 -2
- package/dist/{form-BA83AMjT.js.map → form-BphauHSv.js.map} +1 -1
- package/dist/{form-BeLadN-A.cjs → form-C0uDoLE1.cjs} +2 -2
- package/dist/{form-BeLadN-A.cjs.map → form-C0uDoLE1.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-BOUn9Lbw.cjs → icon-CLgg4kma.cjs} +2 -2
- package/dist/{icon-BOUn9Lbw.cjs.map → icon-CLgg4kma.cjs.map} +1 -1
- package/dist/{icon-BVEUJQHT.js → icon-ClskDmBq.js} +3 -3
- package/dist/{icon-BVEUJQHT.js.map → icon-ClskDmBq.js.map} +1 -1
- package/dist/{icon-button-CaEPMYHW.cjs → icon-button-BkNubwVr.cjs} +2 -2
- package/dist/{icon-button-CaEPMYHW.cjs.map → icon-button-BkNubwVr.cjs.map} +1 -1
- package/dist/{icon-button-DIGpWi22.js → icon-button-DTmOv8Ny.js} +3 -3
- package/dist/{icon-button-DIGpWi22.js.map → icon-button-DTmOv8Ny.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 +33 -33
- package/dist/{input-BrLbi5wu.cjs → input-BqSrvFYo.cjs} +2 -2
- package/dist/{input-BrLbi5wu.cjs.map → input-BqSrvFYo.cjs.map} +1 -1
- package/dist/{input-D_30_4Cf.js → input-DMV5Kg7d.js} +2 -2
- package/dist/{input-D_30_4Cf.js.map → input-DMV5Kg7d.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-DjB7q6Qk.js → list-CZlRzIBI.js} +2 -2
- package/dist/{list-DjB7q6Qk.js.map → list-CZlRzIBI.js.map} +1 -1
- package/dist/{list-CQJYVqBV.cjs → list-CkruFXk2.cjs} +2 -2
- package/dist/{list-CQJYVqBV.cjs.map → list-CkruFXk2.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-UoPWmzJY.cjs → litElement.mixin-AiJtwDLp.cjs} +2 -2
- package/dist/{litElement.mixin-UoPWmzJY.cjs.map → litElement.mixin-AiJtwDLp.cjs.map} +1 -1
- package/dist/{litElement.mixin-C2ixT_uz.js → litElement.mixin-BSd9c8Xf.js} +2 -2
- package/dist/{litElement.mixin-C2ixT_uz.js.map → litElement.mixin-BSd9c8Xf.js.map} +1 -1
- package/dist/{menu-BNZPGmxK.js → menu-D5N7PhDE.js} +3 -3
- package/dist/{menu-BNZPGmxK.js.map → menu-D5N7PhDE.js.map} +1 -1
- package/dist/{menu-BKUoQyCS.cjs → menu-TbqjiUg2.cjs} +2 -2
- package/dist/{menu-BKUoQyCS.cjs.map → menu-TbqjiUg2.cjs.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.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-DRzHWMHN.js → option-Bc31vPPI.js} +2 -2
- package/dist/{option-DRzHWMHN.js.map → option-Bc31vPPI.js.map} +1 -1
- package/dist/{option-GQjTaa4v.cjs → option-J1ewccBk.cjs} +2 -2
- package/dist/{option-GQjTaa4v.cjs.map → option-J1ewccBk.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{outlet-CPrjTJEE.js → outlet-DWLojgRf.js} +2 -2
- package/dist/{outlet-CPrjTJEE.js.map → outlet-DWLojgRf.js.map} +1 -1
- package/dist/{outlet-D_JSZeRn.cjs → outlet-eGbH9Byt.cjs} +2 -2
- package/dist/{outlet-D_JSZeRn.cjs.map → outlet-eGbH9Byt.cjs.map} +1 -1
- package/dist/{payment-card-form-CIWTaRBz.js → payment-card-form-Ctv_rIi1.js} +3 -3
- package/dist/{payment-card-form-CIWTaRBz.js.map → payment-card-form-Ctv_rIi1.js.map} +1 -1
- package/dist/{payment-card-form-BwzL71bJ.cjs → payment-card-form-V5STwP-8.cjs} +2 -2
- package/dist/{payment-card-form-BwzL71bJ.cjs.map → payment-card-form-V5STwP-8.cjs.map} +1 -1
- package/dist/{radio-group-DSob8tt0.cjs → radio-group-DPqaJa00.cjs} +2 -2
- package/dist/{radio-group-DSob8tt0.cjs.map → radio-group-DPqaJa00.cjs.map} +1 -1
- package/dist/{radio-group-BAixca90.js → radio-group-Pq_gbHVb.js} +2 -2
- package/dist/{radio-group-BAixca90.js.map → radio-group-Pq_gbHVb.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{select-B_G2xt3n.cjs → select-BvlBg33k.cjs} +6 -6
- package/dist/select-BvlBg33k.cjs.map +1 -0
- package/dist/{select-Dn-WETnI.js → select-D3PjbyfA.js} +14 -12
- package/dist/select-D3PjbyfA.js.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-BoPm_Ysx.cjs → sheet-Crzdg6fC.cjs} +2 -2
- package/dist/{sheet-BoPm_Ysx.cjs.map → sheet-Crzdg6fC.cjs.map} +1 -1
- package/dist/{sheet-BcYEDp9D.js → sheet-DqckAHq4.js} +3 -3
- package/dist/{sheet-BcYEDp9D.js.map → sheet-DqckAHq4.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-DFSq11C6.cjs → slider-0Uk2z9y_.cjs} +2 -2
- package/dist/{slider-DFSq11C6.cjs.map → slider-0Uk2z9y_.cjs.map} +1 -1
- package/dist/{slider-BTIT0zsN.js → slider-Bwzc2P35.js} +3 -3
- package/dist/{slider-BTIT0zsN.js.map → slider-Bwzc2P35.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-CBX7eCsA.cjs → spinner-Azsjno5r.cjs} +2 -2
- package/dist/{spinner-CBX7eCsA.cjs.map → spinner-Azsjno5r.cjs.map} +1 -1
- package/dist/{spinner-DxDUWBpa.js → spinner-N0DFwOAl.js} +3 -3
- package/dist/{spinner-DxDUWBpa.js.map → spinner-N0DFwOAl.js.map} +1 -1
- package/dist/{surface-AcsAPEQK.js → surface-Cryxe3jX.js} +2 -2
- package/dist/{surface-AcsAPEQK.js.map → surface-Cryxe3jX.js.map} +1 -1
- package/dist/{surface-BCP4Nk6f.cjs → surface-qITC3jCV.cjs} +2 -2
- package/dist/{surface-BCP4Nk6f.cjs.map → surface-qITC3jCV.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-MEstD23V.cjs → table-CBJ26MIg.cjs} +2 -2
- package/dist/{table-MEstD23V.cjs.map → table-CBJ26MIg.cjs.map} +1 -1
- package/dist/{table-BTMy7AvU.js → table-Ci3U3uYV.js} +2 -2
- package/dist/{table-BTMy7AvU.js.map → table-Ci3U3uYV.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-group-DyNlrJrc.cjs → tabs-group-CXTZCyMb.cjs} +2 -2
- package/dist/{tabs-group-DyNlrJrc.cjs.map → tabs-group-CXTZCyMb.cjs.map} +1 -1
- package/dist/{tabs-group-BzDnucJQ.js → tabs-group-Ccy51d97.js} +2 -2
- package/dist/{tabs-group-BzDnucJQ.js.map → tabs-group-Ccy51d97.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-04vClyRW.cjs +2 -0
- package/dist/{tailwind.mixin-Bkx1Uuxe.cjs.map → tailwind.mixin-04vClyRW.cjs.map} +1 -1
- package/dist/tailwind.mixin-B1TvmOuJ.js +43 -0
- package/dist/{tailwind.mixin-BNM2vRly.js.map → tailwind.mixin-B1TvmOuJ.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-BU8VUQ9X.cjs → teleport.component-BtFkJ2lv.cjs} +2 -2
- package/dist/{teleport.component-BU8VUQ9X.cjs.map → teleport.component-BtFkJ2lv.cjs.map} +1 -1
- package/dist/{teleport.component-CQ-n025U.js → teleport.component-C-DCNNPE.js} +35 -35
- package/dist/{teleport.component-CQ-n025U.js.map → teleport.component-C-DCNNPE.js.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-BznzcZmL.js → textarea-B0Q1ND3D.js} +2 -2
- package/dist/{textarea-BznzcZmL.js.map → textarea-B0Q1ND3D.js.map} +1 -1
- package/dist/{textarea-DgjTD3MS.cjs → textarea-Ct0tCiZE.cjs} +2 -2
- package/dist/{textarea-DgjTD3MS.cjs.map → textarea-Ct0tCiZE.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DmdmN56f.cjs → theme-button-CZICh6mv.cjs} +2 -2
- package/dist/{theme-button-DmdmN56f.cjs.map → theme-button-CZICh6mv.cjs.map} +1 -1
- package/dist/{theme-button-CdiifE6E.js → theme-button-Xe0AKvu4.js} +2 -2
- package/dist/{theme-button-CdiifE6E.js.map → theme-button-Xe0AKvu4.js.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-BpS8ehqb.cjs → theme.component-DM774Lyr.cjs} +2 -2
- package/dist/{theme.component-BpS8ehqb.cjs.map → theme.component-DM774Lyr.cjs.map} +1 -1
- package/dist/{theme.component-ZkehXGYp.js → theme.component-dphOzgia.js} +2 -2
- package/dist/{theme.component-ZkehXGYp.js.map → theme.component-dphOzgia.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{tree-DzG0MTVn.cjs → tree-DAEL96xl.cjs} +2 -2
- package/dist/{tree-DzG0MTVn.cjs.map → tree-DAEL96xl.cjs.map} +1 -1
- package/dist/{tree-CVfYCMGr.js → tree-Dham7fla.js} +2 -2
- package/dist/{tree-CVfYCMGr.js.map → tree-Dham7fla.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-DNihFwgs.cjs → typewriter-BBRroqBP.cjs} +2 -2
- package/dist/{typewriter-DNihFwgs.cjs.map → typewriter-BBRroqBP.cjs.map} +1 -1
- package/dist/{typewriter-9RMGl3g_.js → typewriter-CJijgjI7.js} +4 -4
- package/dist/{typewriter-9RMGl3g_.js.map → typewriter-CJijgjI7.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DvbYuIY1.js → typography-B1vPffcD.js} +2 -2
- package/dist/{typography-DvbYuIY1.js.map → typography-B1vPffcD.js.map} +1 -1
- package/dist/{typography-Di2lcsba.cjs → typography-_8EJsERF.cjs} +2 -2
- package/dist/{typography-Di2lcsba.cjs.map → typography-_8EJsERF.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +3 -2
- package/types/src/date-range/date-range.d.ts +4 -4
- package/types/src/date-range/date-utils.d.ts +15 -0
- package/dist/date-range-3yVvaRLG.cjs +0 -72
- package/dist/date-range-3yVvaRLG.cjs.map +0 -1
- package/dist/date-range-D5cDTxz2.js +0 -148
- package/dist/date-range-D5cDTxz2.js.map +0 -1
- package/dist/select-B_G2xt3n.cjs.map +0 -1
- package/dist/select-Dn-WETnI.js.map +0 -1
- package/dist/tailwind.mixin-BNM2vRly.js +0 -43
- package/dist/tailwind.mixin-Bkx1Uuxe.cjs +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const c=require("lit"),i=require("lit/decorators.js"),p=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./tailwind.mixin-
|
|
1
|
+
"use strict";const c=require("lit"),i=require("lit/decorators.js"),p=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./tailwind.mixin-04vClyRW.cjs"),u=require("lit/directives/when.js");var h=Object.defineProperty,b=Object.getOwnPropertyDescriptor,o=(e,t,l,s)=>{for(var a,r=s>1?void 0:s?b(t,l):t,n=e.length-1;n>=0;n--)(a=e[n])&&(r=(s?a(t,l,r):a(r))||r);return s&&r&&h(t,l,r),r};exports.RadioGroup=class extends d.TailwindElement(":host{display:inherit;position:inherit}"){constructor(){super(...arguments),this.label="",this.name="",this.selected="",this.options=[],this.required=!1,this.selection$=new p.Subject}connectedCallback(){super.connectedCallback(),this.selection$.subscribe(e=>{this.selected=e.value,this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0}))})}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this.selection$)==null||e.unsubscribe()}handleSelection(e){this.selection$.next(e)}render(){var e;return c.html`
|
|
2
2
|
<div class="grid gap-4">
|
|
3
3
|
${u.when(this.label,()=>c.html` <label class="text-base font-semibold text-gray-900">${this.label}</label> `)}
|
|
4
4
|
${(e=this.options)==null?void 0:e.map(t=>c.html`
|
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
`)}
|
|
21
21
|
</div>
|
|
22
22
|
`}},o([i.property({type:String})],exports.RadioGroup.prototype,"label",2),o([i.property({type:String})],exports.RadioGroup.prototype,"name",2),o([i.property({type:String})],exports.RadioGroup.prototype,"selected",2),o([i.property({type:Array})],exports.RadioGroup.prototype,"options",2),o([i.property({type:Boolean})],exports.RadioGroup.prototype,"required",2),exports.RadioGroup=o([i.customElement("schmancy-radio-group")],exports.RadioGroup);
|
|
23
|
-
//# sourceMappingURL=radio-group-
|
|
23
|
+
//# sourceMappingURL=radio-group-DPqaJa00.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group-
|
|
1
|
+
{"version":3,"file":"radio-group-DPqaJa00.cjs","sources":["../src/radio-group/radio-group.ts"],"sourcesContent":["import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { Subject } from 'rxjs'\nimport style from './radio-group.scss?inline'\nimport { TailwindElement } from '@mixins/index'\nimport { when } from 'lit/directives/when.js'\n\nexport type SchmancyRadioGroupOption = {\n\tlabel: string\n\tvalue: string\n}\nexport type SchmancyRadioGroupChangeEvent = CustomEvent<{\n\tvalue: string\n}>\n@customElement('schmancy-radio-group')\nexport class RadioGroup extends TailwindElement(style) {\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) name = ''\n\t@property({ type: String }) selected = ''\n\t@property({ type: Array }) options: SchmancyRadioGroupOption[] = []\n\t@property({ type: Boolean }) required: boolean = false\n\tprivate selection$ = new Subject<SchmancyRadioGroupOption>()\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.selection$.subscribe(value => {\n\t\t\tthis.selected = value.value\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail: value,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t})\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.selection$?.unsubscribe()\n\t}\n\tprivate handleSelection(value: SchmancyRadioGroupOption) {\n\t\tthis.selection$.next(value)\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"grid gap-4\">\n\t\t\t\t${when(this.label, () => html` <label class=\"text-base font-semibold text-gray-900\">${this.label}</label> `)}\n\t\t\t\t${this.options?.map(\n\t\t\t\t\toption => html`\n\t\t\t\t\t\t<div class=\"flex items-center\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t\t\tid=${option.value}\n\t\t\t\t\t\t\t\tclass=\"h-4 w-4 border-gray-300 text-indigo-600 focus:ring-indigo-600\"\n\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\tname=${this.name}\n\t\t\t\t\t\t\t\t.value=${option.value}\n\t\t\t\t\t\t\t\t.checked=${option.value === this.selected}\n\t\t\t\t\t\t\t\t@change=${() => this.handleSelection(option)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<label for=${option.value} class=\"ml-3 block text-sm font-medium leading-6 text-gray-900\"\n\t\t\t\t\t\t\t\t>${option.value}</label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-radio-group': RadioGroup\n\t}\n}\n"],"names":["RadioGroup","TailwindElement","super","arguments","this","label","name","selected","options","required","selection$","Subject","connectedCallback","subscribe","value","dispatchEvent","CustomEvent","detail","bubbles","disconnectedCallback","unsubscribe","next","html","when","map","option","handleSelection","__decorateClass","property","type","String","prototype","Array","Boolean","customElement"],"mappings":"wbAeaA,QAAAA,WAAN,cAAyBC,6DAAzB,aAAAC,CAAAA,MAAAA,GAAAC,SAC8BC,EAAAA,KAAAC,MAAA,GACDD,KAAAE,KAAA,GACIF,KAAAG,SAAA,GACZH,KAAAI,QAAsC,CAChBJ,EAAAA,KAAAK,SAAA,GACzCL,KAAAM,WAAa,IAAIC,SAAkC,CAE3D,mBAAAC,CACCV,MAAMU,kBAAAA,EACDR,KAAAM,WAAWG,UAAmBC,GAClCV,CAAAA,KAAKG,SAAWO,EAAMA,MACjBV,KAAAW,cACJ,IAAIC,YAAY,SAAU,CACzBC,OAAQH,EACRI,QAAAA,EAEF,CAAA,CAAA,CAAA,CAAA,CACA,CAGF,sBAAAC,OACCjB,MAAMiB,qBAAAA,GACNf,EAAAA,KAAKM,aAALN,MAAAA,EAAiBgB,aAAY,CAEtB,gBAAgBN,EAClBV,CAAAA,KAAAM,WAAWW,KAAKP,EAAK,CAG3B,QACQ,OAAA,OAAAQ,EAAAA;AAAAA;AAAAA,MAEHC,EAAAA,KAAKnB,KAAKC,MAAO,IAAMiB,EAAAA,6DAA6DlB,KAAKC,KAAAA,WAAAA,CAAAA;AAAAA,OACzFD,EAAAA,KAAKI,UAALJ,YAAAA,EAAcoB,IACLC,GAAAH,EAAAA;AAAAA;AAAAA;AAAAA,oBAGKlB,KAAKK,QAAAA;AAAAA,aACZgB,EAAOX,KAAAA;AAAAA;AAAAA;AAAAA,eAGLV,KAAKE,IAAAA;AAAAA,iBACHmB,EAAOX,KAAAA;AAAAA,mBACLW,EAAOX,QAAUV,KAAKG,QAAAA;AAAAA,kBACvB,IAAMH,KAAKsB,gBAAgBD,CAAAA,CAAAA;AAAAA;AAAAA,oBAEzBA,EAAOX,KAAAA;AAAAA,WAChBW,EAAOX,KAAAA;AAAAA;AAAAA;AAAAA;;GAIb,CAAA,EAlDwBa,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,MADN9B,CAAAA,CAAAA,EAAAA,mBACgB+B,UAAA,QAAA,CAAA,EACAJ,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,MAAAA,CAAAA,CAAAA,EAFN9B,mBAEgB+B,UAAA,OAAA,CAAA,EACAJ,EAAA,CAA3BC,WAAS,CAAEC,KAAMC,UAHN9B,mBAGgB+B,UAAA,WAAA,CACDJ,EAAAA,EAAA,CAA1BC,WAAS,CAAEC,KAAMG,KAJNhC,CAAAA,CAAAA,EAAAA,mBAIe+B,UAAA,UAAA,CAAA,EACEJ,EAAA,CAA5BC,WAAS,CAAEC,KAAMI,OAAAA,CAAAA,CAAAA,EALNjC,mBAKiB+B,UAAA,WAAA,CAAA,EALjB/B,QAANA,WAAA2B,EAAA,CADNO,EAAAA,cAAc,yBACFlC"}
|
|
@@ -3,7 +3,7 @@ import { property as o, customElement as d } from "lit/decorators.js";
|
|
|
3
3
|
import { Subject as h } from "rxjs";
|
|
4
4
|
import "lit/directives/class-map.js";
|
|
5
5
|
import "lit/directives/style-map.js";
|
|
6
|
-
import { T as m } from "./tailwind.mixin-
|
|
6
|
+
import { T as m } from "./tailwind.mixin-B1TvmOuJ.js";
|
|
7
7
|
import { when as u } from "lit/directives/when.js";
|
|
8
8
|
var b = Object.defineProperty, y = Object.getOwnPropertyDescriptor, r = (e, t, a, l) => {
|
|
9
9
|
for (var n, i = l > 1 ? void 0 : l ? y(t, a) : t, c = e.length - 1; c >= 0; c--) (n = e[c]) && (i = (l ? n(t, a, i) : n(i)) || i);
|
|
@@ -55,4 +55,4 @@ r([o({ type: String })], s.prototype, "label", 2), r([o({ type: String })], s.pr
|
|
|
55
55
|
export {
|
|
56
56
|
s as R
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=radio-group-
|
|
58
|
+
//# sourceMappingURL=radio-group-Pq_gbHVb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-group-
|
|
1
|
+
{"version":3,"file":"radio-group-Pq_gbHVb.js","sources":["../src/radio-group/radio-group.ts"],"sourcesContent":["import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { Subject } from 'rxjs'\nimport style from './radio-group.scss?inline'\nimport { TailwindElement } from '@mixins/index'\nimport { when } from 'lit/directives/when.js'\n\nexport type SchmancyRadioGroupOption = {\n\tlabel: string\n\tvalue: string\n}\nexport type SchmancyRadioGroupChangeEvent = CustomEvent<{\n\tvalue: string\n}>\n@customElement('schmancy-radio-group')\nexport class RadioGroup extends TailwindElement(style) {\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) name = ''\n\t@property({ type: String }) selected = ''\n\t@property({ type: Array }) options: SchmancyRadioGroupOption[] = []\n\t@property({ type: Boolean }) required: boolean = false\n\tprivate selection$ = new Subject<SchmancyRadioGroupOption>()\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.selection$.subscribe(value => {\n\t\t\tthis.selected = value.value\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail: value,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t})\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.selection$?.unsubscribe()\n\t}\n\tprivate handleSelection(value: SchmancyRadioGroupOption) {\n\t\tthis.selection$.next(value)\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"grid gap-4\">\n\t\t\t\t${when(this.label, () => html` <label class=\"text-base font-semibold text-gray-900\">${this.label}</label> `)}\n\t\t\t\t${this.options?.map(\n\t\t\t\t\toption => html`\n\t\t\t\t\t\t<div class=\"flex items-center\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t\t\tid=${option.value}\n\t\t\t\t\t\t\t\tclass=\"h-4 w-4 border-gray-300 text-indigo-600 focus:ring-indigo-600\"\n\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\tname=${this.name}\n\t\t\t\t\t\t\t\t.value=${option.value}\n\t\t\t\t\t\t\t\t.checked=${option.value === this.selected}\n\t\t\t\t\t\t\t\t@change=${() => this.handleSelection(option)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<label for=${option.value} class=\"ml-3 block text-sm font-medium leading-6 text-gray-900\"\n\t\t\t\t\t\t\t\t>${option.value}</label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-radio-group': RadioGroup\n\t}\n}\n"],"names":["RadioGroup","TailwindElement","constructor","super","arguments","this","label","name","selected","options","required","selection$","Subject","connectedCallback","subscribe","value","dispatchEvent","CustomEvent","detail","bubbles","disconnectedCallback","unsubscribe","next","render","html","when","map","option","handleSelection","__decorateClass","property","type","String","prototype","Array","Boolean","customElement"],"mappings":";;;;;;;;;;;AAeO,IAAMA,IAAN,cAAyBC;EAAzB,cAAAC;AAAAC,UAAAC,GAAAA,SAAAA,GAC8BC,KAAAC,QAAA,IACDD,KAAAE,OAAA,IACIF,KAAAG,WAAA,IACZH,KAAAI,UAAsC,CAChBJ,GAAAA,KAAAK,WAAA,IACzCL,KAAAM,aAAa,IAAIC;AAAAA,EAAkC;AAAA,EAE3D,oBAAAC;AACCV,UAAMU,kBAAAA,GACDR,KAAAM,WAAWG,UAAmBC,CAAAA,MAClCV;AAAAA,WAAKG,WAAWO,EAAMA,OACjBV,KAAAW,cACJ,IAAIC,YAAY,UAAU,EACzBC,QAAQH,GACRI,SAAS,GAAA,CAAA,CAAA;AAAA,IAEX,CACA;AAAA,EAAA;AAAA,EAGF,uBACChB;;AAAAA,UAAMiB,qBACNf,IAAAA,IAAAA,KAAKM,eAALN,QAAAA,EAAiBgB;AAAAA,EAAY;AAAA,EAEtB,gBAAgBN,GAClBV;AAAAA,SAAAM,WAAWW,KAAKP,CAAK;AAAA,EAAA;AAAA,EAG3B,SAAAQ;;AACQ,WAAAC;AAAAA;AAAAA,MAEHC,EAAKpB,KAAKC,OAAO,MAAMkB,0DAA6DnB,KAAKC,KAAAA,WAAAA,CAAAA;AAAAA,OACzFD,IAAAA,KAAKI,YAALJ,gBAAAA,EAAcqB,IACLC,CAAAA,MAAAH;AAAAA;AAAAA;AAAAA,oBAGKnB,KAAKK,QAAAA;AAAAA,aACZiB,EAAOZ,KAAAA;AAAAA;AAAAA;AAAAA,eAGLV,KAAKE,IAAAA;AAAAA,iBACHoB,EAAOZ,KAAAA;AAAAA,mBACLY,EAAOZ,UAAUV,KAAKG,QAAAA;AAAAA,kBACvB,MAAMH,KAAKuB,gBAAgBD,CAAAA,CAAAA;AAAAA;AAAAA,oBAEzBA,EAAOZ,KAAAA;AAAAA,WAChBY,EAAOZ,KAAAA;AAAAA;AAAAA;AAAAA;;;EAIb;AAlDwBc;AAAAA,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,YADNhC,EACgBiC,WAAA,SAAA,CAAA,GACAJ,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAFNhC,CAAAA,CAAAA,GAAAA,EAEgBiC,WAAA,QAAA,CACAJ,GAAAA,EAAA,CAA3BC,EAAS,EAAEC,MAAMC,OAHNhC,CAAAA,CAAAA,GAAAA,EAGgBiC,WAAA,YAAA,CAAA,GACDJ,EAAA,CAA1BC,EAAS,EAAEC,MAAMG,MAAAA,CAAAA,CAAAA,GAJNlC,EAIeiC,WAAA,WAAA,CAAA,GACEJ,EAAA,CAA5BC,EAAS,EAAEC,MAAMI,QALNnC,CAAAA,CAAAA,GAAAA,EAKiBiC,WAAA,YAAA,CALjBjC,GAAAA,IAAN6B,EAAA,CADNO,EAAc,sBAAA,CAAA,GACFpC;"}
|
package/dist/radio-group.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./radio-group-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./radio-group-DPqaJa00.cjs");Object.defineProperty(exports,"RadioGroup",{enumerable:!0,get:()=>e.RadioGroup});
|
|
2
2
|
//# sourceMappingURL=radio-group.cjs.map
|
package/dist/radio-group.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
"use strict";const a=require("@floating-ui/dom");require("rxjs");const p=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const u=require("./litElement.mixin-
|
|
1
|
+
"use strict";const a=require("@floating-ui/dom");require("rxjs");const p=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const u=require("./litElement.mixin-AiJtwDLp.cjs");require("./tailwind.mixin-04vClyRW.cjs");const d=require("./ripple-C2BHbhcS.cjs"),y=require("./theme.interface-Xg5Zi46a.cjs"),h=require("lit"),o=require("lit/decorators.js");var m=Object.defineProperty,b=Object.getOwnPropertyDescriptor,l=(e,t,i,s)=>{for(var c,n=s>1?void 0:s?b(t,i):t,r=e.length-1;r>=0;r--)(c=e[r])&&(n=(s?c(t,i,n):c(n))||n);return s&&n&&m(t,i,n),n};exports.SchmancySelect=class extends u.$LitElement(h.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
position: relative;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
[role='listbox'] {
|
|
8
|
-
max-height: 25vh;
|
|
8
|
+
/* max-height: 25vh; */ /* Remove the fixed max-height */
|
|
9
9
|
overflow-y: auto;
|
|
10
10
|
outline: none;
|
|
11
11
|
}
|
|
12
|
-
`){constructor(){super(...arguments),this.required=!1,this.placeholder="",this.value="",this.selectedValues=[],this.multi=!1,this.label="",this.isOpen=!1,this.valueLabel=""}connectedCallback(){super.connectedCallback(),this.id||(this.id=`schmancy-select-${Math.random().toString(36).substr(2,9)}`),this.addEventListener("keydown",this.handleKeyDown)}disconnectedCallback(){var e;super.disconnectedCallback(),this.removeEventListener("keydown",this.handleKeyDown),(e=this.cleanupPositioner)==null||e.call(this)}firstUpdated(){this.syncSelection(),this.setupOptionsAccessibility()}syncSelection(){if(this.multi)this.selectedValues=this.options.filter(e=>e.selected).map(e=>e.value),this.valueLabel=this.selectedValues.length>0?this.options.filter(e=>this.selectedValues.includes(e.value)).map(e=>e.label).join(", "):this.placeholder;else{const e=this.options.find(t=>t.value===this.value);this.valueLabel=(e==null?void 0:e.label)||this.placeholder}}setupOptionsAccessibility(){this.options.forEach((e,t)=>{e.setAttribute("role","option"),e.id||(e.id=`${this.id}-option-${t}`),e.tabIndex=-1,e.setAttribute("aria-selected",String(this.multi?this.selectedValues.includes(e.value):e.value===this.value))})}async positionDropdown(){const e=this.renderRoot.querySelector(".trigger");e
|
|
12
|
+
`){constructor(){super(...arguments),this.required=!1,this.placeholder="",this.value="",this.selectedValues=[],this.multi=!1,this.label="",this.isOpen=!1,this.valueLabel=""}connectedCallback(){super.connectedCallback(),this.id||(this.id=`schmancy-select-${Math.random().toString(36).substr(2,9)}`),this.addEventListener("keydown",this.handleKeyDown)}disconnectedCallback(){var e;super.disconnectedCallback(),this.removeEventListener("keydown",this.handleKeyDown),(e=this.cleanupPositioner)==null||e.call(this)}firstUpdated(){this.syncSelection(),this.setupOptionsAccessibility()}syncSelection(){if(this.multi)this.selectedValues=this.options.filter(e=>e.selected).map(e=>e.value),this.valueLabel=this.selectedValues.length>0?this.options.filter(e=>this.selectedValues.includes(e.value)).map(e=>e.label).join(", "):this.placeholder;else{const e=this.options.find(t=>t.value===this.value);this.valueLabel=(e==null?void 0:e.label)||this.placeholder}}setupOptionsAccessibility(){this.options.forEach((e,t)=>{e.setAttribute("role","option"),e.id||(e.id=`${this.id}-option-${t}`),e.tabIndex=-1,e.setAttribute("aria-selected",String(this.multi?this.selectedValues.includes(e.value):e.value===this.value))})}async positionDropdown(){const e=this.renderRoot.querySelector(".trigger");if(!e||!this.ul)return;const t=window.innerHeight-e.getBoundingClientRect().bottom-10;this.ul.style.maxHeight=`${t}px`,this.cleanupPositioner=a.autoUpdate(e,this.ul,async()=>{const{x:i,y:s}=await a.computePosition(e,this.ul,{placement:"bottom-start",middleware:[a.offset(5),a.flip(),a.shift({padding:5})]});Object.assign(this.ul.style,{left:`${i}px`,top:`${s}px`,position:"absolute"})})}handleKeyDown(e){if(!this.isOpen)return void(["Enter"," ","ArrowDown"].includes(e.key)&&(e.preventDefault(),this.openDropdown()));const t=this.options.findIndex(i=>i.matches(":focus"))??-1;switch(e.key){case"Escape":case"Tab":this.closeDropdown();break;case"ArrowDown":e.preventDefault(),this.focusOption(this.options,Math.min(t+1,this.options.length-1));break;case"ArrowUp":e.preventDefault(),this.focusOption(this.options,Math.max(t-1,0));break;case"Enter":case" ":e.preventDefault(),t>=0&&this.handleOptionSelect(this.options[t].value)}}focusOption(e,t){const i=e[t];if(i){i.focus();const s=this.renderRoot.querySelector(".trigger");s==null||s.setAttribute("aria-activedescendant",i.id)}}async openDropdown(){this.isOpen=!0,await this.updateComplete,this.positionDropdown(),this.setupOptionsAccessibility();const e=Array.from(this.ul.querySelectorAll('[role="option"]')),t=this.multi?0:e.findIndex(i=>i.getAttribute("value")===this.value);this.focusOption(e,Math.max(t,0))}closeDropdown(){var t;this.isOpen=!1,(t=this.cleanupPositioner)==null||t.call(this);const e=this.renderRoot.querySelector(".trigger");e==null||e.removeAttribute("aria-activedescendant"),e==null||e.focus()}handleOptionSelect(e){var t;if(this.multi){const i=this.options.find(s=>s.value===e);if(!i)return;i.selected=!i.selected,i.selected?this.selectedValues=[...this.selectedValues,e]:this.selectedValues=this.selectedValues.filter(s=>s!==e),this.valueLabel=this.selectedValues.length>0?this.options.filter(s=>this.selectedValues.includes(s.value)).map(s=>s.label).join(", "):this.placeholder,this.dispatchChange(this.selectedValues)}else this.options.forEach(i=>i.selected=i.value===e),this.value=e,this.valueLabel=((t=this.options.find(i=>i.value===e))==null?void 0:t.label)||this.placeholder,this.dispatchChange(e),this.closeDropdown();this.setupOptionsAccessibility()}dispatchChange(e){this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0}))}render(){return h.html`
|
|
13
13
|
<div class="relative">
|
|
14
14
|
<schmancy-input
|
|
15
15
|
.name=${this.name}
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
id="options"
|
|
43
43
|
role="listbox"
|
|
44
44
|
aria-multiselectable=${this.multi}
|
|
45
|
-
class=${p.classMap({"absolute z-
|
|
45
|
+
class=${p.classMap({"absolute z-[1000] mt-1 w-full rounded-md shadow-sm":!0,hidden:!this.isOpen})}
|
|
46
46
|
${d.color({bgColor:y.SchmancyTheme.sys.color.surface.container})}
|
|
47
|
-
@click=${e=>{var
|
|
47
|
+
@click=${e=>{var s;const t=e,i=(s=t.detail)==null?void 0:s.value;i&&this.handleOptionSelect(i)}}
|
|
48
48
|
>
|
|
49
49
|
<slot
|
|
50
50
|
@slotchange=${()=>{this.syncSelection(),this.setupOptionsAccessibility()}}
|
|
@@ -52,4 +52,4 @@
|
|
|
52
52
|
</ul>
|
|
53
53
|
</div>
|
|
54
54
|
`}},l([o.property({type:String})],exports.SchmancySelect.prototype,"name",2),l([o.property({type:Boolean})],exports.SchmancySelect.prototype,"required",2),l([o.property({type:String})],exports.SchmancySelect.prototype,"placeholder",2),l([o.property({type:String})],exports.SchmancySelect.prototype,"value",2),l([o.property({type:Array})],exports.SchmancySelect.prototype,"selectedValues",2),l([o.property({type:Boolean})],exports.SchmancySelect.prototype,"multi",2),l([o.property({type:String})],exports.SchmancySelect.prototype,"label",2),l([o.state()],exports.SchmancySelect.prototype,"isOpen",2),l([o.state()],exports.SchmancySelect.prototype,"valueLabel",2),l([o.query("ul")],exports.SchmancySelect.prototype,"ul",2),l([o.queryAssignedElements({flatten:!0})],exports.SchmancySelect.prototype,"options",2),exports.SchmancySelect=l([o.customElement("schmancy-select")],exports.SchmancySelect);
|
|
55
|
-
//# sourceMappingURL=select-
|
|
55
|
+
//# sourceMappingURL=select-BvlBg33k.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-BvlBg33k.cjs","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\t/* max-height: 25vh; */ /* Remove the fixed max-height */\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String }) value = '' // for single-select\n\t@property({ type: Array }) selectedValues: string[] = [] // for multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tthis.selectedValues = this.options.filter(o => o.selected).map(o => o.value)\n\t\t\tthis.valueLabel =\n\t\t\t\tthis.selectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => this.selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? this.selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.ul.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown(e: KeyboardEvent) {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown()\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown() {\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tif (option.selected) {\n\t\t\t\tthis.selectedValues = [...this.selectedValues, value]\n\t\t\t} else {\n\t\t\t\tthis.selectedValues = this.selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.valueLabel =\n\t\t\t\tthis.selectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => this.selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(this.selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\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\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<schmancy-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown())}\n\t\t\t\t></schmancy-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","super","arguments","this","required","placeholder","value","selectedValues","multi","label","isOpen","valueLabel","connectedCallback","id","Math","random","toString","substr","addEventListener","handleKeyDown","disconnectedCallback","removeEventListener","cleanupPositioner","syncSelection","setupOptionsAccessibility","options","filter","o","selected","map","length","includes","join","selectedOption","find","forEach","option","index","setAttribute","tabIndex","String","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","e","key","preventDefault","openDropdown","current","findIndex","matches","closeDropdown","focusOption","min","max","handleOptionSelect","focus","combobox","updateComplete","positionDropdown","Array","from","querySelectorAll","selectedIndex","getAttribute","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","__decorateClass","property","type","prototype","Boolean","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { autoUpdate as
|
|
1
|
+
import { autoUpdate as p, computePosition as d, offset as u, flip as m, shift as y } from "@floating-ui/dom";
|
|
2
2
|
import "rxjs";
|
|
3
3
|
import { classMap as b } from "lit/directives/class-map.js";
|
|
4
4
|
import "lit/directives/style-map.js";
|
|
5
|
-
import { $ as v } from "./litElement.mixin-
|
|
6
|
-
import "./tailwind.mixin-
|
|
5
|
+
import { $ as v } from "./litElement.mixin-BSd9c8Xf.js";
|
|
6
|
+
import "./tailwind.mixin-B1TvmOuJ.js";
|
|
7
7
|
import { c as f } from "./ripple-BumgqsDT.js";
|
|
8
8
|
import { S as g } from "./theme.interface-C5Kj6WjD.js";
|
|
9
9
|
import { css as w, html as O } from "lit";
|
|
10
|
-
import { property as n, state as
|
|
10
|
+
import { property as n, state as h, query as x, queryAssignedElements as $, customElement as D } from "lit/decorators.js";
|
|
11
11
|
var S = Object.defineProperty, A = Object.getOwnPropertyDescriptor, l = (e, t, s, i) => {
|
|
12
12
|
for (var r, a = i > 1 ? void 0 : i ? A(t, s) : t, c = e.length - 1; c >= 0; c--) (r = e[c]) && (a = (i ? r(t, s, a) : r(a)) || a);
|
|
13
13
|
return i && a && S(t, s, a), a;
|
|
@@ -19,7 +19,7 @@ let o = class extends v(w`
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
[role='listbox'] {
|
|
22
|
-
max-height: 25vh;
|
|
22
|
+
/* max-height: 25vh; */ /* Remove the fixed max-height */
|
|
23
23
|
overflow-y: auto;
|
|
24
24
|
outline: none;
|
|
25
25
|
}
|
|
@@ -51,10 +51,12 @@ let o = class extends v(w`
|
|
|
51
51
|
}
|
|
52
52
|
async positionDropdown() {
|
|
53
53
|
const e = this.renderRoot.querySelector(".trigger");
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
if (!e || !this.ul) return;
|
|
55
|
+
const t = window.innerHeight - e.getBoundingClientRect().bottom - 10;
|
|
56
|
+
this.ul.style.maxHeight = `${t}px`, this.cleanupPositioner = p(e, this.ul, async () => {
|
|
57
|
+
const { x: s, y: i } = await d(e, this.ul, { placement: "bottom-start", middleware: [u(5), m(), y({ padding: 5 })] });
|
|
58
|
+
Object.assign(this.ul.style, { left: `${s}px`, top: `${i}px`, position: "absolute" });
|
|
59
|
+
});
|
|
58
60
|
}
|
|
59
61
|
handleKeyDown(e) {
|
|
60
62
|
if (!this.isOpen) return void (["Enter", " ", "ArrowDown"].includes(e.key) && (e.preventDefault(), this.openDropdown()));
|
|
@@ -140,7 +142,7 @@ let o = class extends v(w`
|
|
|
140
142
|
id="options"
|
|
141
143
|
role="listbox"
|
|
142
144
|
aria-multiselectable=${this.multi}
|
|
143
|
-
class=${b({ "absolute z-
|
|
145
|
+
class=${b({ "absolute z-[1000] mt-1 w-full rounded-md shadow-sm": !0, hidden: !this.isOpen })}
|
|
144
146
|
${f({ bgColor: g.sys.color.surface.container })}
|
|
145
147
|
@click=${(e) => {
|
|
146
148
|
var i;
|
|
@@ -158,8 +160,8 @@ let o = class extends v(w`
|
|
|
158
160
|
`;
|
|
159
161
|
}
|
|
160
162
|
};
|
|
161
|
-
l([n({ type: String })], o.prototype, "name", 2), l([n({ type: Boolean })], o.prototype, "required", 2), l([n({ type: String })], o.prototype, "placeholder", 2), l([n({ type: String })], o.prototype, "value", 2), l([n({ type: Array })], o.prototype, "selectedValues", 2), l([n({ type: Boolean })], o.prototype, "multi", 2), l([n({ type: String })], o.prototype, "label", 2), l([
|
|
163
|
+
l([n({ type: String })], o.prototype, "name", 2), l([n({ type: Boolean })], o.prototype, "required", 2), l([n({ type: String })], o.prototype, "placeholder", 2), l([n({ type: String })], o.prototype, "value", 2), l([n({ type: Array })], o.prototype, "selectedValues", 2), l([n({ type: Boolean })], o.prototype, "multi", 2), l([n({ type: String })], o.prototype, "label", 2), l([h()], o.prototype, "isOpen", 2), l([h()], o.prototype, "valueLabel", 2), l([x("ul")], o.prototype, "ul", 2), l([$({ flatten: !0 })], o.prototype, "options", 2), o = l([D("schmancy-select")], o);
|
|
162
164
|
export {
|
|
163
165
|
o as S
|
|
164
166
|
};
|
|
165
|
-
//# sourceMappingURL=select-
|
|
167
|
+
//# sourceMappingURL=select-D3PjbyfA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-D3PjbyfA.js","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\t/* max-height: 25vh; */ /* Remove the fixed max-height */\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String }) value = '' // for single-select\n\t@property({ type: Array }) selectedValues: string[] = [] // for multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tthis.selectedValues = this.options.filter(o => o.selected).map(o => o.value)\n\t\t\tthis.valueLabel =\n\t\t\t\tthis.selectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => this.selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? this.selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.ul.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown(e: KeyboardEvent) {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown()\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown() {\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tif (option.selected) {\n\t\t\t\tthis.selectedValues = [...this.selectedValues, value]\n\t\t\t} else {\n\t\t\t\tthis.selectedValues = this.selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.valueLabel =\n\t\t\t\tthis.selectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => this.selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(this.selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\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\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<schmancy-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown())}\n\t\t\t\t></schmancy-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","super","arguments","this","required","placeholder","value","selectedValues","multi","label","isOpen","valueLabel","connectedCallback","id","Math","random","toString","substr","addEventListener","handleKeyDown","disconnectedCallback","removeEventListener","cleanupPositioner","firstUpdated","syncSelection","setupOptionsAccessibility","options","filter","o","selected","map","length","includes","join","selectedOption","find","forEach","option","index","setAttribute","tabIndex","String","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","e","key","preventDefault","openDropdown","current","findIndex","matches","closeDropdown","focusOption","min","max","handleOptionSelect","focus","combobox","updateComplete","positionDropdown","Array","from","querySelectorAll","selectedIndex","getAttribute","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","render","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","__decorateClass","property","type","prototype","Boolean","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|
package/dist/select.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./select-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./select-BvlBg33k.cjs");Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>e.SchmancySelect});
|
|
2
2
|
//# sourceMappingURL=select.cjs.map
|
package/dist/select.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const s=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const w=require("./tailwind.mixin-
|
|
1
|
+
"use strict";const s=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const w=require("./tailwind.mixin-04vClyRW.cjs"),g=require("lit"),r=require("lit/decorators.js"),E=require("./litElement.mixin-AiJtwDLp.cjs");var S=Object.defineProperty,k=Object.getOwnPropertyDescriptor,b=(t,e,i,o)=>{for(var c,n=o>1?void 0:o?k(e,i):e,l=t.length-1;l>=0;l--)(c=t[l])&&(n=(o?c(e,i,n):c(n))||n);return o&&n&&S(e,i,n),n};let v=class extends w.TailwindElement(){render(){const t={absolute:this.title.length===0,relative:this.title.length>0};return g.html`
|
|
2
2
|
<schmancy-surface fill="width" elevation="1">
|
|
3
3
|
<schmancy-grid class="${this.classMap(t)}" align="center" justify="stretch" cols="auto 1fr auto">
|
|
4
4
|
<slot name="back">
|
|
@@ -38,4 +38,4 @@
|
|
|
38
38
|
</section>
|
|
39
39
|
</div>
|
|
40
40
|
`}};var d,p;h([r.property({type:String,reflect:!0})],a.prototype,"uid",2),h([r.property({type:Boolean,reflect:!0})],a.prototype,"open",2),h([r.property({type:String,reflect:!0})],a.prototype,"header",2),h([r.property({type:String,reflect:!0})],a.prototype,"position",2),h([r.property({type:Boolean,reflect:!0})],a.prototype,"persist",2),h([r.property({type:Boolean,reflect:!0})],a.prototype,"allowOverlayDismiss",2),h([r.property({type:String,reflect:!0})],a.prototype,"title",2),h([r.query(".sheet")],a.prototype,"sheet",2),h([r.queryAssignedElements({flatten:!0})],a.prototype,"assignedElements",2),h([r.property()],a.prototype,"focusAttribute",2),h([(d="open",(t,e)=>{const{willUpdate:i}=t;p=Object.assign({waitUntilFirstUpdate:!1},p),t.willUpdate=function(o){if(i.call(this,o),o.has(d)){const c=o.get(d),n=this[d];c!==n&&(p!=null&&p.waitUntilFirstUpdate&&!this.hasUpdated||this[e].call(this,c,n))}}})],a.prototype,"onOpenChange",1),a=h([r.customElement("schmancy-sheet")],a),exports.SchmancySheetPosition=f,exports.SheetHereMorty=y,exports.SheetWhereAreYouRicky=m,exports.sheet=u;
|
|
41
|
-
//# sourceMappingURL=sheet-
|
|
41
|
+
//# sourceMappingURL=sheet-Crzdg6fC.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-BoPm_Ysx.cjs","sources":["../src/sheet/header.ts","../src/sheet/sheet.service.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement() {\n\t@property() title: string\n\trender() {\n\t\tconst classes = {\n\t\t\tabsolute: this.title.length === 0,\n\t\t\trelative: this.title.length > 0,\n\t\t}\n\t\treturn html`\n\t\t\t<schmancy-surface fill=\"width\" elevation=\"1\">\n\t\t\t\t<schmancy-grid class=\"${this.classMap(classes)}\" align=\"center\" justify=\"stretch\" cols=\"auto 1fr auto\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">← </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t\t<schmancy-typography transform=\"capitalize\" type=\"headline\" token=\"lg\"> ${this.title} </schmancy-typography>\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</schmancy-grid>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import {\n\tdefaultIfEmpty,\n\tdelay,\n\tfilter,\n\tforkJoin,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimer,\n} from 'rxjs'\nimport SchmancySheet from './sheet'\n\nexport enum SchmancySheetPosition {\n\tSide = 'side',\n\tBottom = 'bottom',\n\t/**\n\t * @deprecated use bottom instead\n\t */\n\tBottomCenter = 'bottom-center',\n\t/**\n\t * @deprecated use side instead\n\t */\n\tTopRight = 'top-right',\n\t/**\n\t * @deprecated use side instead\n\t */\n\tBottomRight = 'bottom-right',\n}\n\ntype BottomSheeetTarget = {\n\tcomponent: HTMLElement\n\tuid?: string\n\tposition?: SchmancySheetPosition\n\tpersist?: boolean\n\tclose?: () => void\n\tallowOverlyDismiss?: boolean\n\ttitle?: string\n\theader?: 'hidden' | 'visible'\n}\n\n// Events for communication between bottom-sheet component and bottom-sheet.service\nexport type SheetWhereAreYouRickyEvent = CustomEvent<{\n\tuid: string\n}>\nexport const SheetWhereAreYouRicky = 'are-you-there-sheet'\n\nexport type SheetHereMortyEvent = CustomEvent<{\n\tsheet: SchmancySheet\n}>\nexport const SheetHereMorty = 'yes-here'\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\tconstructor() {\n\t\tthis.bottomSheet\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(0)),\n\t\t\t\t\t\t\tmap(e => e.detail.sheet),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(SheetWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid: target.uid ?? target.component.tagName },\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\tmap(([sheet, target]) => {\n\t\t\t\t\tconsole.log(sheet, target)\n\t\t\t\t\tif (!sheet) {\n\t\t\t\t\t\t// if sheet is not found, create it\n\t\t\t\t\t\tsheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\tdocument.body.appendChild(sheet)\n\t\t\t\t\t}\n\t\t\t\t\tsheet.setAttribute('uid', target.uid ?? target.component.tagName)\n\t\t\t\t\tsheet.setAttribute('position', target.position ?? SchmancySheetPosition.Bottom)\n\t\t\t\t\tsheet.setAttribute('allowOverlyDismiss', target.allowOverlyDismiss === false ? 'false' : 'true')\n\t\t\t\t\ttarget.title && sheet.setAttribute('title', target.title)\n\t\t\t\t\ttarget.persist && sheet.setAttribute('persist', target.persist ?? false)\n\t\t\t\t\ttarget.header && sheet.setAttribute('header', target.header)\n\t\t\t\t\tdocument.body.style.overflow = 'hidden' // lock the scroll of the host\n\t\t\t\t\treturn { target, sheet }\n\t\t\t\t}),\n\t\t\t\tdelay(20),\n\t\t\t\tfilter(({ target, sheet }) => {\n\t\t\t\t\t// if the sheet has already the component, just show it\n\t\t\t\t\tif (\n\t\t\t\t\t\ttarget.persist &&\n\t\t\t\t\t\tsheet?.shadowRoot\n\t\t\t\t\t\t\t?.querySelector('slot')\n\t\t\t\t\t\t\t?.assignedElements()\n\t\t\t\t\t\t\t.find(e => e.tagName === target.component.tagName)\n\t\t\t\t\t) {\n\t\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\t\t\t\t\t\treturn false\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true // if the sheet does not have the component, continue to the next step\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\tsheet?.appendChild(target.component)\n\t\t\t\t}),\n\t\t\t\tdelay(1),\n\t\t\t\ttap(({ sheet }) => {\n\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\t\t\t\t}),\n\t\t\t\ttap(({ sheet }) => {\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1))\n\t\t\t\t\t\t.pipe(delay(300))\n\t\t\t\t\t\t.subscribe(e => {\n\t\t\t\t\t\t\tconst target = e.target as SchmancySheet\n\t\t\t\t\t\t\tconsole.log(target)\n\n\t\t\t\t\t\t\tif (!target?.persist) target?.remove()\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'auto' // unlock the scroll of the host\n\t\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tthis.$dismiss\n\t\t\t.pipe(\n\t\t\t\tmergeMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)), // Some people say why 10? I say why not?\n\t\t\t\t\t\t\tmap(e => e.detail.sheet),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(new CustomEvent(SheetWhereAreYouRicky, { detail: { uid } }))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([sheet]) => {\n\t\t\t\t\tsheet?.closeSheet()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tdismiss(uid: string) {\n\t\tthis.$dismiss.next(uid)\n\t}\n\n\topen(target: BottomSheeetTarget) {\n\t\tthis.bottomSheet.next(target)\n\t}\n}\nexport const sheet = new BottomSheetService()\n","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil, tap } from 'rxjs'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\nimport { on } from './hook'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) allowOverlayDismiss = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t@query('.sheet') private sheet!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\tthis.addFocusTrap()\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.removeFocusTrap()\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button\n\t\tconst popState$ = fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.closeSheet()\n\t\t\t}),\n\t\t)\n\n\t\t// Handle ESC key\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(window, 'keyup').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.sheetContainsFocus()) {\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid) this.announcePresence()\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate sheetContainsFocus(): boolean {\n\t\treturn this.sheet?.contains(document.activeElement) ?? false\n\t}\n\n\tprivate announcePresence() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\tdetail: { sheet: this },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate addFocusTrap() {\n\t\tdocument.addEventListener('focusin', this.handleFocusIn)\n\t}\n\n\tprivate removeFocusTrap() {\n\t\tdocument.removeEventListener('focusin', this.handleFocusIn)\n\t}\n\n\tprivate handleFocusIn = (e: Event) => {\n\t\tif (!this.sheet?.contains(e.target as Node)) {\n\t\t\tthis.focus()\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheet?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheet?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"sheet\" role=\"dialog\" aria-labelledby=\"sheet-title\" aria-hidden=${!this.open} aria-modal=${this.open}>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"overlay\"\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tif (this.allowOverlayDismiss) sheet.dismiss(this.uid)\n\t\t\t\t\t}}\n\t\t\t\t></div>\n\t\t\t\t<section class=\"content w-full\" data-position=${this.position}>\n\t\t\t\t\t<schmancy-sheet-header\n\t\t\t\t\t\tclass=\"sticky top-0 z-50 w-full\"\n\t\t\t\t\t\t@dismiss=${(e: CustomEvent) => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t.hidden=${this.header === 'hidden'}\n\t\t\t\t\t\ttitle=${this.title}\n\t\t\t\t\t></schmancy-sheet-header>\n\t\t\t\t\t<schmancy-surface class=\"overflow-auto\" fill=\"all\" type=\"surface\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","classes","absolute","this","title","length","relative","html","classMap","dispatchEvent","CustomEvent","bubbles","composed","__decorateClass","property","prototype","customElement","SchmancySheetPosition","SheetWhereAreYouRicky","SheetHereMorty","sheet","constructor","bottomSheet","Subject","$dismiss","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","undefined","of","target","tap","uid","component","tagName","document","createElement","body","appendChild","setAttribute","position","allowOverlyDismiss","persist","header","style","overflow","delay","filter","shadowRoot","querySelector","assignedElements","find","take","subscribe","remove","mergeMap","closeSheet","next","SchmancySheet","$LitElement","super","arguments","open","Side","allowOverlayDismiss","focusAttribute","lastFocusedElement","handleFocusIn","contains","focus","_oldValue","newValue","activeElement","addFocusTrap","removeFocusTrap","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","popState$","preventDefault","keyUp$","event","key","sheetContainsFocus","dismiss","rickyComm$","announcePresence","merge","addEventListener","removeEventListener","isShown","String","selector","el","matches","getFocusElement","stopPropagation","propName","options","type","reflect","Boolean","query","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sheet-Crzdg6fC.cjs","sources":["../src/sheet/header.ts","../src/sheet/sheet.service.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement() {\n\t@property() title: string\n\trender() {\n\t\tconst classes = {\n\t\t\tabsolute: this.title.length === 0,\n\t\t\trelative: this.title.length > 0,\n\t\t}\n\t\treturn html`\n\t\t\t<schmancy-surface fill=\"width\" elevation=\"1\">\n\t\t\t\t<schmancy-grid class=\"${this.classMap(classes)}\" align=\"center\" justify=\"stretch\" cols=\"auto 1fr auto\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">← </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t\t<schmancy-typography transform=\"capitalize\" type=\"headline\" token=\"lg\"> ${this.title} </schmancy-typography>\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</schmancy-grid>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import {\n\tdefaultIfEmpty,\n\tdelay,\n\tfilter,\n\tforkJoin,\n\tfromEvent,\n\tmap,\n\tmergeMap,\n\tof,\n\tSubject,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n\ttimer,\n} from 'rxjs'\nimport SchmancySheet from './sheet'\n\nexport enum SchmancySheetPosition {\n\tSide = 'side',\n\tBottom = 'bottom',\n\t/**\n\t * @deprecated use bottom instead\n\t */\n\tBottomCenter = 'bottom-center',\n\t/**\n\t * @deprecated use side instead\n\t */\n\tTopRight = 'top-right',\n\t/**\n\t * @deprecated use side instead\n\t */\n\tBottomRight = 'bottom-right',\n}\n\ntype BottomSheeetTarget = {\n\tcomponent: HTMLElement\n\tuid?: string\n\tposition?: SchmancySheetPosition\n\tpersist?: boolean\n\tclose?: () => void\n\tallowOverlyDismiss?: boolean\n\ttitle?: string\n\theader?: 'hidden' | 'visible'\n}\n\n// Events for communication between bottom-sheet component and bottom-sheet.service\nexport type SheetWhereAreYouRickyEvent = CustomEvent<{\n\tuid: string\n}>\nexport const SheetWhereAreYouRicky = 'are-you-there-sheet'\n\nexport type SheetHereMortyEvent = CustomEvent<{\n\tsheet: SchmancySheet\n}>\nexport const SheetHereMorty = 'yes-here'\nclass BottomSheetService {\n\tbottomSheet = new Subject<BottomSheeetTarget>()\n\t$dismiss = new Subject<string>()\n\tconstructor() {\n\t\tthis.bottomSheet\n\t\t\t.pipe(\n\t\t\t\tswitchMap(target =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(0)),\n\t\t\t\t\t\t\tmap(e => e.detail.sheet),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(target).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent(SheetWhereAreYouRicky, {\n\t\t\t\t\t\t\t\t\t\tdetail: { uid: target.uid ?? target.component.tagName },\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\tmap(([sheet, target]) => {\n\t\t\t\t\tconsole.log(sheet, target)\n\t\t\t\t\tif (!sheet) {\n\t\t\t\t\t\t// if sheet is not found, create it\n\t\t\t\t\t\tsheet = document.createElement('schmancy-sheet')\n\t\t\t\t\t\tdocument.body.appendChild(sheet)\n\t\t\t\t\t}\n\t\t\t\t\tsheet.setAttribute('uid', target.uid ?? target.component.tagName)\n\t\t\t\t\tsheet.setAttribute('position', target.position ?? SchmancySheetPosition.Bottom)\n\t\t\t\t\tsheet.setAttribute('allowOverlyDismiss', target.allowOverlyDismiss === false ? 'false' : 'true')\n\t\t\t\t\ttarget.title && sheet.setAttribute('title', target.title)\n\t\t\t\t\ttarget.persist && sheet.setAttribute('persist', target.persist ?? false)\n\t\t\t\t\ttarget.header && sheet.setAttribute('header', target.header)\n\t\t\t\t\tdocument.body.style.overflow = 'hidden' // lock the scroll of the host\n\t\t\t\t\treturn { target, sheet }\n\t\t\t\t}),\n\t\t\t\tdelay(20),\n\t\t\t\tfilter(({ target, sheet }) => {\n\t\t\t\t\t// if the sheet has already the component, just show it\n\t\t\t\t\tif (\n\t\t\t\t\t\ttarget.persist &&\n\t\t\t\t\t\tsheet?.shadowRoot\n\t\t\t\t\t\t\t?.querySelector('slot')\n\t\t\t\t\t\t\t?.assignedElements()\n\t\t\t\t\t\t\t.find(e => e.tagName === target.component.tagName)\n\t\t\t\t\t) {\n\t\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\t\t\t\t\t\treturn false\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true // if the sheet does not have the component, continue to the next step\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttap(({ target, sheet }) => {\n\t\t\t\t\tsheet?.appendChild(target.component)\n\t\t\t\t}),\n\t\t\t\tdelay(1),\n\t\t\t\ttap(({ sheet }) => {\n\t\t\t\t\tsheet?.setAttribute('open', 'true')\n\t\t\t\t}),\n\t\t\t\ttap(({ sheet }) => {\n\t\t\t\t\tfromEvent<CustomEvent>(sheet, 'close')\n\t\t\t\t\t\t.pipe(take(1))\n\t\t\t\t\t\t.pipe(delay(300))\n\t\t\t\t\t\t.subscribe(e => {\n\t\t\t\t\t\t\tconst target = e.target as SchmancySheet\n\t\t\t\t\t\t\tconsole.log(target)\n\n\t\t\t\t\t\t\tif (!target?.persist) target?.remove()\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'auto' // unlock the scroll of the host\n\t\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tthis.$dismiss\n\t\t\t.pipe(\n\t\t\t\tmergeMap(uid =>\n\t\t\t\t\tforkJoin([\n\t\t\t\t\t\tfromEvent<SheetHereMortyEvent>(window, SheetHereMorty).pipe(\n\t\t\t\t\t\t\ttakeUntil(timer(100)), // Some people say why 10? I say why not?\n\t\t\t\t\t\t\tmap(e => e.detail.sheet),\n\t\t\t\t\t\t\tdefaultIfEmpty(undefined),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tof(uid).pipe(\n\t\t\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t\t\twindow.dispatchEvent(new CustomEvent(SheetWhereAreYouRicky, { detail: { uid } }))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t\ttap(([sheet]) => {\n\t\t\t\t\tsheet?.closeSheet()\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tdismiss(uid: string) {\n\t\tthis.$dismiss.next(uid)\n\t}\n\n\topen(target: BottomSheeetTarget) {\n\t\tthis.bottomSheet.next(target)\n\t}\n}\nexport const sheet = new BottomSheetService()\n","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil, tap } from 'rxjs'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\nimport { on } from './hook'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) allowOverlayDismiss = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t@query('.sheet') private sheet!: HTMLElement\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\tthis.addFocusTrap()\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.removeFocusTrap()\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button\n\t\tconst popState$ = fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.closeSheet()\n\t\t\t}),\n\t\t)\n\n\t\t// Handle ESC key\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(window, 'keyup').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.sheetContainsFocus()) {\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid) this.announcePresence()\n\t\t\t}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate sheetContainsFocus(): boolean {\n\t\treturn this.sheet?.contains(document.activeElement) ?? false\n\t}\n\n\tprivate announcePresence() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\tdetail: { sheet: this },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate addFocusTrap() {\n\t\tdocument.addEventListener('focusin', this.handleFocusIn)\n\t}\n\n\tprivate removeFocusTrap() {\n\t\tdocument.removeEventListener('focusin', this.handleFocusIn)\n\t}\n\n\tprivate handleFocusIn = (e: Event) => {\n\t\tif (!this.sheet?.contains(e.target as Node)) {\n\t\t\tthis.focus()\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheet?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheet?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"sheet\" role=\"dialog\" aria-labelledby=\"sheet-title\" aria-hidden=${!this.open} aria-modal=${this.open}>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"overlay\"\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tif (this.allowOverlayDismiss) sheet.dismiss(this.uid)\n\t\t\t\t\t}}\n\t\t\t\t></div>\n\t\t\t\t<section class=\"content w-full\" data-position=${this.position}>\n\t\t\t\t\t<schmancy-sheet-header\n\t\t\t\t\t\tclass=\"sticky top-0 z-50 w-full\"\n\t\t\t\t\t\t@dismiss=${(e: CustomEvent) => {\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t.hidden=${this.header === 'hidden'}\n\t\t\t\t\t\ttitle=${this.title}\n\t\t\t\t\t></schmancy-sheet-header>\n\t\t\t\t\t<schmancy-surface class=\"overflow-auto\" fill=\"all\" type=\"surface\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","classes","absolute","this","title","length","relative","html","classMap","dispatchEvent","CustomEvent","bubbles","composed","__decorateClass","property","prototype","customElement","SchmancySheetPosition","SheetWhereAreYouRicky","SheetHereMorty","sheet","constructor","bottomSheet","Subject","$dismiss","pipe","switchMap","forkJoin","fromEvent","window","takeUntil","timer","map","e","detail","defaultIfEmpty","undefined","of","target","tap","uid","component","tagName","document","createElement","body","appendChild","setAttribute","position","allowOverlyDismiss","persist","header","style","overflow","delay","filter","shadowRoot","querySelector","assignedElements","find","take","subscribe","remove","mergeMap","closeSheet","next","SchmancySheet","$LitElement","super","arguments","open","Side","allowOverlayDismiss","focusAttribute","lastFocusedElement","handleFocusIn","contains","focus","_oldValue","newValue","activeElement","addFocusTrap","removeFocusTrap","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","popState$","preventDefault","keyUp$","event","key","sheetContainsFocus","dismiss","rickyComm$","announcePresence","merge","addEventListener","removeEventListener","isShown","String","selector","el","matches","getFocusElement","stopPropagation","propName","options","type","reflect","Boolean","query","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Subject as E, switchMap as D, forkJoin as x, fromEvent as d, takeUntil as f, timer as S, map as m, defaultIfEmpty as C, of as F, tap as h, delay as y, filter as U, take as j, mergeMap as P, merge as B } from "rxjs";
|
|
2
2
|
import "lit/directives/class-map.js";
|
|
3
3
|
import "lit/directives/style-map.js";
|
|
4
|
-
import { T } from "./tailwind.mixin-
|
|
4
|
+
import { T } from "./tailwind.mixin-B1TvmOuJ.js";
|
|
5
5
|
import { html as $ } from "lit";
|
|
6
6
|
import { property as c, customElement as O, query as z, queryAssignedElements as I } from "lit/decorators.js";
|
|
7
|
-
import { $ as q } from "./litElement.mixin-
|
|
7
|
+
import { $ as q } from "./litElement.mixin-BSd9c8Xf.js";
|
|
8
8
|
var L = Object.defineProperty, N = Object.getOwnPropertyDescriptor, k = (t, e, s, i) => {
|
|
9
9
|
for (var a, o = i > 1 ? void 0 : i ? N(e, s) : e, l = t.length - 1; l >= 0; l--) (a = t[l]) && (o = (i ? a(e, s, o) : a(o)) || o);
|
|
10
10
|
return i && o && L(e, s, o), o;
|
|
@@ -172,4 +172,4 @@ export {
|
|
|
172
172
|
w as b,
|
|
173
173
|
v as s
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=sheet-
|
|
175
|
+
//# sourceMappingURL=sheet-DqckAHq4.js.map
|