@mhmo91/schmancy 0.4.92 → 0.4.94
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/ai/area.md +181 -968
- package/dist/ai/area.md +181 -968
- package/dist/{animated-text-CUFCt7Zg.js → animated-text-BLDqQ33G.js} +3 -3
- package/dist/{animated-text-CUFCt7Zg.js.map → animated-text-BLDqQ33G.js.map} +1 -1
- package/dist/{animated-text-CM1zqBki.cjs → animated-text-CIgDmUF0.cjs} +2 -2
- package/dist/{animated-text-CM1zqBki.cjs.map → animated-text-CIgDmUF0.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.js +1 -1
- package/dist/{autocomplete-CFREt7Vm.cjs → autocomplete-35wx4zfo.cjs} +6 -6
- package/dist/autocomplete-35wx4zfo.cjs.map +1 -0
- package/dist/{autocomplete-09_SfjsP.js → autocomplete-DMbJLodc.js} +35 -35
- package/dist/autocomplete-DMbJLodc.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-CKp3Ukk4.js → avatar-BqGZ5lKc.js} +152 -200
- package/dist/avatar-BqGZ5lKc.js.map +1 -0
- package/dist/{avatar-C8PC_n9i.cjs → avatar-UnP-o7T9.cjs} +21 -69
- package/dist/avatar-UnP-o7T9.cjs.map +1 -0
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-DDJK4CS4.js → boat-PVy1fXfm.js} +2 -2
- package/dist/{boat-DDJK4CS4.js.map → boat-PVy1fXfm.js.map} +1 -1
- package/dist/{boat-Ddi4PegB.cjs → boat-zVJF22wK.cjs} +2 -2
- package/dist/{boat-Ddi4PegB.cjs.map → boat-zVJF22wK.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.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-TclkD2h5.cjs → checkbox-BtZqKgPT.cjs} +2 -2
- package/dist/{checkbox-TclkD2h5.cjs.map → checkbox-BtZqKgPT.cjs.map} +1 -1
- package/dist/{checkbox-BU1x0W8U.js → checkbox-DAFDBz7J.js} +2 -2
- package/dist/{checkbox-BU1x0W8U.js.map → checkbox-DAFDBz7J.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-DQBHJNSu.cjs → chips-BRigd0oB.cjs} +10 -21
- package/dist/{chips-DQBHJNSu.cjs.map → chips-BRigd0oB.cjs.map} +1 -1
- package/dist/{chips-Bxsoq1vm.js → chips-BnA6mVWq.js} +56 -67
- package/dist/{chips-Bxsoq1vm.js.map → chips-BnA6mVWq.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-C9Imx-RX.cjs → code-preview-BYWzA52m.cjs} +2 -2
- package/dist/{code-preview-C9Imx-RX.cjs.map → code-preview-BYWzA52m.cjs.map} +1 -1
- package/dist/{code-preview-DnUM87ZB.js → code-preview-CUc2NHQu.js} +2 -2
- package/dist/{code-preview-DnUM87ZB.js.map → code-preview-CUc2NHQu.js.map} +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-DF7MnRi3.js → date-range-DFNdMN6p.js} +4 -4
- package/dist/{date-range-DF7MnRi3.js.map → date-range-DFNdMN6p.js.map} +1 -1
- package/dist/{date-range-D1A1Xrmw.cjs → date-range-DhWbY9Ph.cjs} +2 -2
- package/dist/{date-range-D1A1Xrmw.cjs.map → date-range-DhWbY9Ph.cjs.map} +1 -1
- package/dist/{date-range-inline-CwLJLOe1.cjs → date-range-inline-FiCLIta4.cjs} +2 -2
- package/dist/{date-range-inline-CwLJLOe1.cjs.map → date-range-inline-FiCLIta4.cjs.map} +1 -1
- package/dist/{date-range-inline-Ca4DPfeR.js → date-range-inline-xh0mrWH9.js} +3 -3
- package/dist/{date-range-inline-Ca4DPfeR.js.map → date-range-inline-xh0mrWH9.js.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-hXu_bFxW.js → delay-BTRy2v5H.js} +2 -2
- package/dist/{delay-hXu_bFxW.js.map → delay-BTRy2v5H.js.map} +1 -1
- package/dist/{delay-DQKt6VVn.cjs → delay-dCLgp1B7.cjs} +2 -2
- package/dist/{delay-DQKt6VVn.cjs.map → delay-dCLgp1B7.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-Ft0ivj0F.cjs → details-Bf0qMDKW.cjs} +2 -2
- package/dist/{details-Ft0ivj0F.cjs.map → details-Bf0qMDKW.cjs.map} +1 -1
- package/dist/{details-Ci0XXz0g.js → details-BsmaD0yr.js} +2 -2
- package/dist/{details-Ci0XXz0g.js.map → details-BsmaD0yr.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-content-7tFlrTFn.cjs → dialog-content-0w0WQYF3.cjs} +2 -2
- package/dist/{dialog-content-7tFlrTFn.cjs.map → dialog-content-0w0WQYF3.cjs.map} +1 -1
- package/dist/{dialog-content-DXnLwUtv.js → dialog-content-r1Ai3BZj.js} +4 -4
- package/dist/{dialog-content-DXnLwUtv.js.map → dialog-content-r1Ai3BZj.js.map} +1 -1
- package/dist/dialog-service-CgJH8clD.cjs +2 -0
- package/dist/dialog-service-CgJH8clD.cjs.map +1 -0
- package/dist/{dialog-service-DwhuICgc.js → dialog-service-PQ9ssbsY.js} +53 -47
- package/dist/dialog-service-PQ9ssbsY.js.map +1 -0
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +2 -2
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +1 -1
- package/dist/divider-BPsLFNzK.js +22 -0
- package/dist/divider-BPsLFNzK.js.map +1 -0
- package/dist/divider-CYPKRC_-.cjs +2 -0
- package/dist/divider-CYPKRC_-.cjs.map +1 -0
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-BCk2WbXc.js → dropdown-content-B51-eGbI.js} +40 -41
- package/dist/dropdown-content-B51-eGbI.js.map +1 -0
- package/dist/{dropdown-content-CXxTjA0j.cjs → dropdown-content-DelDUcfW.cjs} +5 -10
- package/dist/dropdown-content-DelDUcfW.cjs.map +1 -0
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-BWIYYwA8.cjs → email-recipients-BlSATi3L.cjs} +24 -24
- package/dist/email-recipients-BlSATi3L.cjs.map +1 -0
- package/dist/{email-recipients-BT3xPoBN.js → email-recipients-hkvv_vgI.js} +141 -144
- package/dist/email-recipients-hkvv_vgI.js.map +1 -0
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DJEZ1DdQ.js → flex-BDtCUg0s.js} +2 -2
- package/dist/{flex-DJEZ1DdQ.js.map → flex-BDtCUg0s.js.map} +1 -1
- package/dist/{flex-DflXFgVs.cjs → flex-_K-5RVZM.cjs} +2 -2
- package/dist/{flex-DflXFgVs.cjs.map → flex-_K-5RVZM.cjs.map} +1 -1
- package/dist/{form-7OiDtJT4.js → form-BTmhZIB8.js} +11 -23
- package/dist/form-BTmhZIB8.js.map +1 -0
- package/dist/form-jw1NVkyp.cjs +2 -0
- package/dist/form-jw1NVkyp.cjs.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-3i7VOHMH.js → formField.mixin-D_1WwNWJ.js} +2 -2
- package/dist/{formField.mixin-3i7VOHMH.js.map → formField.mixin-D_1WwNWJ.js.map} +1 -1
- package/dist/{formField.mixin-B1vJlhmI.cjs → formField.mixin-HN79lSIE.cjs} +2 -2
- package/dist/{formField.mixin-B1vJlhmI.cjs.map → formField.mixin-HN79lSIE.cjs.map} +1 -1
- package/dist/{icon-BMhWh8Ib.js → icon-Clqcexag.js} +2 -2
- package/dist/{icon-BMhWh8Ib.js.map → icon-Clqcexag.js.map} +1 -1
- package/dist/{icon-button-DOZuY9x8.js → icon-button-Bu_eEqfk.js} +5 -5
- package/dist/icon-button-Bu_eEqfk.js.map +1 -0
- package/dist/{icon-button-CLDy5tUS.cjs → icon-button-M5CqyRR4.cjs} +4 -4
- package/dist/icon-button-M5CqyRR4.cjs.map +1 -0
- package/dist/{icon-TPLdDnCq.cjs → icon-pFAWVSGq.cjs} +2 -2
- package/dist/{icon-TPLdDnCq.cjs.map → icon-pFAWVSGq.cjs.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 +49 -49
- package/dist/{input-Dre3bMuF.js → input-CFlQ_9Cq.js} +40 -44
- package/dist/input-CFlQ_9Cq.js.map +1 -0
- package/dist/input-CWOVMdSb.cjs +51 -0
- package/dist/input-CWOVMdSb.cjs.map +1 -0
- 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/lazy-DObpkuL6.cjs.map +1 -1
- package/dist/lazy-E2LCDm7n.js.map +1 -1
- package/dist/{list-DZ43cTnR.cjs → list-CDXL73JQ.cjs} +2 -2
- package/dist/{list-DZ43cTnR.cjs.map → list-CDXL73JQ.cjs.map} +1 -1
- package/dist/{list-2mBZmMCP.js → list-rmfIuWZK.js} +2 -2
- package/dist/{list-2mBZmMCP.js.map → list-rmfIuWZK.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-Bj0zv3lK.js → litElement.mixin-Dm9SOPDp.js} +2 -2
- package/dist/{litElement.mixin-Bj0zv3lK.js.map → litElement.mixin-Dm9SOPDp.js.map} +1 -1
- package/dist/{litElement.mixin-CjRG_9tZ.cjs → litElement.mixin-YJ8D9a8Z.cjs} +2 -2
- package/dist/{litElement.mixin-CjRG_9tZ.cjs.map → litElement.mixin-YJ8D9a8Z.cjs.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-sSS6ACVH.js → map-BfP3ZVm_.js} +2 -2
- package/dist/{map-sSS6ACVH.js.map → map-BfP3ZVm_.js.map} +1 -1
- package/dist/{map-D69SEPpf.cjs → map-DQwGv46m.cjs} +2 -2
- package/dist/{map-D69SEPpf.cjs.map → map-DQwGv46m.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/media-B28J9yez.js +261 -0
- package/dist/media-B28J9yez.js.map +1 -0
- package/dist/media-DtYChqKs.cjs +177 -0
- package/dist/media-DtYChqKs.cjs.map +1 -0
- package/dist/{menu-CATzB9tA.js → menu-C0iTDVTM.js} +3 -3
- package/dist/{menu-CATzB9tA.js.map → menu-C0iTDVTM.js.map} +1 -1
- package/dist/{menu-BOeTdvk_.cjs → menu-jcodrTEA.cjs} +2 -2
- package/dist/{menu-BOeTdvk_.cjs.map → menu-jcodrTEA.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-service-DrwmIgoR.js → notification-service-BIH173dS.js} +62 -58
- package/dist/notification-service-BIH173dS.js.map +1 -0
- package/dist/{notification-service-LnNx5EDh.cjs → notification-service-CD-XzDeP.cjs} +7 -7
- package/dist/notification-service-CD-XzDeP.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +2 -2
- package/dist/{notify-C41nYdUf.js → notify-4u_P6A9W.js} +2 -2
- package/dist/{notify-C41nYdUf.js.map → notify-4u_P6A9W.js.map} +1 -1
- package/dist/{notify-DQMcgjgZ.cjs → notify-C95rxXiW.cjs} +2 -2
- package/dist/{notify-DQMcgjgZ.cjs.map → notify-C95rxXiW.cjs.map} +1 -1
- package/dist/{option-DbBr0StZ.js → option-CTkTl7Pz.js} +12 -12
- package/dist/option-CTkTl7Pz.js.map +1 -0
- package/dist/{option-BNKGfKgL.cjs → option-D-Itfwmu.cjs} +5 -5
- package/dist/option-D-Itfwmu.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-_jHodv7G.js → payment-card-form-DcipYS1-.js} +3 -3
- package/dist/{payment-card-form-_jHodv7G.js.map → payment-card-form-DcipYS1-.js.map} +1 -1
- package/dist/{payment-card-form-ByWbYHhd.cjs → payment-card-form-HQsOp4z5.cjs} +2 -2
- package/dist/{payment-card-form-ByWbYHhd.cjs.map → payment-card-form-HQsOp4z5.cjs.map} +1 -1
- package/dist/{progress-BY7K7Etz.cjs → progress-B3Q1qs5e.cjs} +2 -2
- package/dist/{progress-BY7K7Etz.cjs.map → progress-B3Q1qs5e.cjs.map} +1 -1
- package/dist/{progress-Cix7Mu1p.js → progress-zOZKeIA7.js} +2 -2
- package/dist/{progress-Cix7Mu1p.js.map → progress-zOZKeIA7.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-button-BNmjg-i9.js → radio-button-C4TI0v9W.js} +27 -27
- package/dist/radio-button-C4TI0v9W.js.map +1 -0
- package/dist/radio-button-COzEX5Ar.cjs +41 -0
- package/dist/radio-button-COzEX5Ar.cjs.map +1 -0
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{ripple-BumgqsDT.js → ripple-Cy-nvO8W.js} +24 -22
- package/dist/ripple-Cy-nvO8W.js.map +1 -0
- package/dist/ripple-DqQrvaTe.cjs +16 -0
- package/dist/ripple-DqQrvaTe.cjs.map +1 -0
- package/dist/route.component-Cr-M16SZ.cjs +12 -0
- package/dist/route.component-Cr-M16SZ.cjs.map +1 -0
- package/dist/route.component-Df4CQy4C.js +320 -0
- package/dist/route.component-Df4CQy4C.js.map +1 -0
- package/dist/{schmancy-steps-container-BUE4fG8_.js → schmancy-steps-container-DC6Ca6-A.js} +2 -2
- package/dist/{schmancy-steps-container-BUE4fG8_.js.map → schmancy-steps-container-DC6Ca6-A.js.map} +1 -1
- package/dist/{schmancy-steps-container-D69TfC2I.cjs → schmancy-steps-container-DfzodwEn.cjs} +2 -2
- package/dist/{schmancy-steps-container-D69TfC2I.cjs.map → schmancy-steps-container-DfzodwEn.cjs.map} +1 -1
- package/dist/{select-Bspcrc-h.js → select-Br2sY6MK.js} +16 -16
- package/dist/select-Br2sY6MK.js.map +1 -0
- package/dist/select-wUk1qE31.cjs +57 -0
- package/dist/select-wUk1qE31.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-BxOGSGJ0.js → sheet-BjJdVvvp.js} +3 -3
- package/dist/{sheet-BxOGSGJ0.js.map → sheet-BjJdVvvp.js.map} +1 -1
- package/dist/{sheet-CuE9tUeo.cjs → sheet-D3RmdvbL.cjs} +2 -2
- package/dist/{sheet-CuE9tUeo.cjs.map → sheet-D3RmdvbL.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-ChQVbnYO.js → slider-Dgwlzvr-.js} +3 -3
- package/dist/{slider-ChQVbnYO.js.map → slider-Dgwlzvr-.js.map} +1 -1
- package/dist/{slider-DeKwZONn.cjs → slider-XoN7Z9iO.cjs} +2 -2
- package/dist/{slider-DeKwZONn.cjs.map → slider-XoN7Z9iO.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-C5tMQys5.cjs → spinner-D9l0j12i.cjs} +2 -2
- package/dist/{spinner-C5tMQys5.cjs.map → spinner-D9l0j12i.cjs.map} +1 -1
- package/dist/{spinner-y1dPMTQp.js → spinner-e06PNB2u.js} +2 -2
- package/dist/{spinner-y1dPMTQp.js.map → spinner-e06PNB2u.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-4MzhEaru.cjs → surface-BgLZnRcp.cjs} +2 -2
- package/dist/{surface-4MzhEaru.cjs.map → surface-BgLZnRcp.cjs.map} +1 -1
- package/dist/{surface-BYmdH754.js → surface-trk3Zpii.js} +2 -2
- package/dist/{surface-BYmdH754.js.map → surface-trk3Zpii.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-YBHaxQzQ.js → table-BfFAQg7K.js} +2 -2
- package/dist/{table-YBHaxQzQ.js.map → table-BfFAQg7K.js.map} +1 -1
- package/dist/{table-J5EVvpXy.cjs → table-g0Wsm45r.cjs} +2 -2
- package/dist/{table-J5EVvpXy.cjs.map → table-g0Wsm45r.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-ezB19WI8.js → tabs-compatibility-D1RfuRqZ.js} +2 -2
- package/dist/{tabs-compatibility-ezB19WI8.js.map → tabs-compatibility-D1RfuRqZ.js.map} +1 -1
- package/dist/{tabs-compatibility-JMTsaND_.cjs → tabs-compatibility-FkpvGEG3.cjs} +2 -2
- package/dist/{tabs-compatibility-JMTsaND_.cjs.map → tabs-compatibility-FkpvGEG3.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-CPuO9c5y.js +43 -0
- package/dist/{tailwind.mixin-Cwbr8x57.js.map → tailwind.mixin-CPuO9c5y.js.map} +1 -1
- package/dist/tailwind.mixin-Cb-fyJ_y.cjs +2 -0
- package/dist/{tailwind.mixin-B-VcpMHn.cjs.map → tailwind.mixin-Cb-fyJ_y.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-B3nWhCra.cjs → textarea-DBKIOjBp.cjs} +2 -2
- package/dist/{textarea-B3nWhCra.cjs.map → textarea-DBKIOjBp.cjs.map} +1 -1
- package/dist/{textarea-yn7IFbnu.js → textarea-U-fvfv2M.js} +3 -3
- package/dist/{textarea-yn7IFbnu.js.map → textarea-U-fvfv2M.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-I_c1ZWWV.cjs → theme-button-C-6Y_Mib.cjs} +2 -2
- package/dist/{theme-button-I_c1ZWWV.cjs.map → theme-button-C-6Y_Mib.cjs.map} +1 -1
- package/dist/{theme-button-CGArg1pu.js → theme-button-CnWM9ZCv.js} +2 -2
- package/dist/{theme-button-CGArg1pu.js.map → theme-button-CnWM9ZCv.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-B5zp-4OG.js → theme.component-CfLAvCYi.js} +168 -168
- package/dist/{theme.component-B5zp-4OG.js.map → theme.component-CfLAvCYi.js.map} +1 -1
- package/dist/{theme.component-CdSDaeU0.cjs → theme.component-Dko2yi2n.cjs} +3 -3
- package/dist/{theme.component-CdSDaeU0.cjs.map → theme.component-Dko2yi2n.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-CepyC8kw.js → timezone-CXGJk88N.js} +3 -3
- package/dist/{timezone-CepyC8kw.js.map → timezone-CXGJk88N.js.map} +1 -1
- package/dist/{timezone-DRBf5biI.cjs → timezone-Wy7jf5gf.cjs} +2 -2
- package/dist/{timezone-DRBf5biI.cjs.map → timezone-Wy7jf5gf.cjs.map} +1 -1
- package/dist/tooltip-BXCWSU_6.cjs +7 -0
- package/dist/tooltip-BXCWSU_6.cjs.map +1 -0
- package/dist/{tooltip-C6HlAqs2.js → tooltip-CuDCLzkr.js} +55 -55
- package/dist/tooltip-CuDCLzkr.js.map +1 -0
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-CpqWMdfb.cjs → tree-Bux6udiH.cjs} +2 -2
- package/dist/{tree-CpqWMdfb.cjs.map → tree-Bux6udiH.cjs.map} +1 -1
- package/dist/{tree-CxJAr7G3.js → tree-CfcLl-dV.js} +2 -2
- package/dist/{tree-CxJAr7G3.js.map → tree-CfcLl-dV.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-D3QLAVdz.js → typewriter-C63WkKf1.js} +64 -76
- package/dist/typewriter-C63WkKf1.js.map +1 -0
- package/dist/{typewriter-BWg7Otk8.cjs → typewriter-HZThI3m1.cjs} +3 -15
- package/dist/typewriter-HZThI3m1.cjs.map +1 -0
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DGOOlbC1.cjs → typography-DNj4eHeR.cjs} +2 -2
- package/dist/{typography-DGOOlbC1.cjs.map → typography-DNj4eHeR.cjs.map} +1 -1
- package/dist/{typography-C8NCP_rr.js → typography-DRkYb9R0.js} +2 -2
- package/dist/{typography-C8NCP_rr.js.map → typography-DRkYb9R0.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/area/area.component.d.ts +8 -3
- package/types/src/area/area.service.d.ts +1 -0
- package/types/src/area/route.component.d.ts +4 -5
- package/types/src/area/utils.d.ts +2 -1
- package/types/src/card/card.d.ts +56 -3
- package/types/src/directives/ripple.d.ts +2 -1
- package/types/src/dropdown/dropdown-component.d.ts +1 -0
- package/types/src/form/form-v2.d.ts +0 -1
- package/types/src/form/form.d.ts +0 -1
- package/types/src/mailbox/email-editor.d.ts +1 -2
- package/types/src/notification/notification-audio.d.ts +9 -0
- package/types/src/notification/notification-container.d.ts +1 -0
- package/dist/autocomplete-09_SfjsP.js.map +0 -1
- package/dist/autocomplete-CFREt7Vm.cjs.map +0 -1
- package/dist/avatar-C8PC_n9i.cjs.map +0 -1
- package/dist/avatar-CKp3Ukk4.js.map +0 -1
- package/dist/dialog-service-DwhuICgc.js.map +0 -1
- package/dist/dialog-service-juvsgc5X.cjs +0 -2
- package/dist/dialog-service-juvsgc5X.cjs.map +0 -1
- package/dist/divider-BG9uDpUp.js +0 -103
- package/dist/divider-BG9uDpUp.js.map +0 -1
- package/dist/divider-CWnAg2p-.cjs +0 -83
- package/dist/divider-CWnAg2p-.cjs.map +0 -1
- package/dist/dropdown-content-BCk2WbXc.js.map +0 -1
- package/dist/dropdown-content-CXxTjA0j.cjs.map +0 -1
- package/dist/email-recipients-BT3xPoBN.js.map +0 -1
- package/dist/email-recipients-BWIYYwA8.cjs.map +0 -1
- package/dist/form-7OiDtJT4.js.map +0 -1
- package/dist/form-nHwPpyhJ.cjs +0 -14
- package/dist/form-nHwPpyhJ.cjs.map +0 -1
- package/dist/icon-button-CLDy5tUS.cjs.map +0 -1
- package/dist/icon-button-DOZuY9x8.js.map +0 -1
- package/dist/input-CqLneJhz.cjs +0 -51
- package/dist/input-CqLneJhz.cjs.map +0 -1
- package/dist/input-Dre3bMuF.js.map +0 -1
- package/dist/media-B-VIbSH_.js +0 -151
- package/dist/media-B-VIbSH_.js.map +0 -1
- package/dist/media-Cew1Mxkj.cjs +0 -100
- package/dist/media-Cew1Mxkj.cjs.map +0 -1
- package/dist/notification-service-DrwmIgoR.js.map +0 -1
- package/dist/notification-service-LnNx5EDh.cjs.map +0 -1
- package/dist/option-BNKGfKgL.cjs.map +0 -1
- package/dist/option-DbBr0StZ.js.map +0 -1
- package/dist/radio-button-BNmjg-i9.js.map +0 -1
- package/dist/radio-button-CYq6qTSb.cjs +0 -41
- package/dist/radio-button-CYq6qTSb.cjs.map +0 -1
- package/dist/ripple-BumgqsDT.js.map +0 -1
- package/dist/ripple-C2BHbhcS.cjs +0 -16
- package/dist/ripple-C2BHbhcS.cjs.map +0 -1
- package/dist/route.component-CzCd2fMa.cjs +0 -12
- package/dist/route.component-CzCd2fMa.cjs.map +0 -1
- package/dist/route.component-Q3rCkryr.js +0 -321
- package/dist/route.component-Q3rCkryr.js.map +0 -1
- package/dist/select-B-yc3JB7.cjs +0 -57
- package/dist/select-B-yc3JB7.cjs.map +0 -1
- package/dist/select-Bspcrc-h.js.map +0 -1
- package/dist/tailwind.mixin-B-VcpMHn.cjs +0 -2
- package/dist/tailwind.mixin-Cwbr8x57.js +0 -43
- package/dist/tooltip-C6HlAqs2.js.map +0 -1
- package/dist/tooltip-CCX8PidC.cjs +0 -7
- package/dist/tooltip-CCX8PidC.cjs.map +0 -1
- package/dist/typewriter-BWg7Otk8.cjs.map +0 -1
- package/dist/typewriter-D3QLAVdz.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route.component-Q3rCkryr.js","sources":["../src/area/area.service.ts","../src/area/router.types.ts","../src/area/area.component.ts","../src/area/route.component.ts"],"sourcesContent":["import { \n\tObservable, \n\tReplaySubject, \n\tSubject, \n\tbufferTime, \n\tfilter, \n\tfromEvent, \n\tmap, \n\tof, \n\tskip, \n\ttap, \n\ttimeout, \n\tzip,\n\tshareReplay,\n\tdistinctUntilChanged,\n\tcatchError,\n\tEMPTY\n} from 'rxjs'\nimport { SchmancyTeleportation } from '../teleport'\nimport { ActiveRoute, AreaSubscription, RouteAction } from './router.types'\n\nexport const routerHistory = new Subject<RouteAction>()\n\nexport const FINDING_MORTIES = 'FINDING_MORTIES'\nexport const HERE_RICKY = 'HERE_RICKY'\nexport type HERE_RICKY_EVENT = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\nexport type FINDING_MORTIES_EVENT = CustomEvent<{\n\tcomponent: SchmancyTeleportation\n}>\n\n// WeakMap for better memory management of area subjects\nconst areaSubjectsCache = new WeakMap<AreaService, Map<string, ReplaySubject<ActiveRoute>>>()\n\n// Track navigation source to prevent history conflicts\ntype NavigationSource = 'programmatic' | 'browser' | 'initial'\n\nclass AreaService implements AreaSubscription {\n\tprivate static instance: AreaService\n\tpublic prettyURL = false\n\tpublic mode: 'SILENT' | 'HISTORY' = 'HISTORY'\n\tpublic request = new ReplaySubject<RouteAction>(1)\n\tpublic current = new Map<string, ActiveRoute>()\n\tpublic $current = new ReplaySubject<Map<string, ActiveRoute>>(1)\n\t\n\t// Create a dictionary of ReplaySubjects for area-specific subscriptions\n\tprivate get areaSubjects(): Map<string, ReplaySubject<ActiveRoute>> {\n\t\tlet subjects = areaSubjectsCache.get(this)\n\t\tif (!subjects) {\n\t\t\tsubjects = new Map()\n\t\t\tareaSubjectsCache.set(this, subjects)\n\t\t}\n\t\treturn subjects\n\t}\n\t\n\tpublic enableHistoryMode = true\n\tprivate findingMortiesEvent = new CustomEvent<FINDING_MORTIES_EVENT['detail']>(FINDING_MORTIES)\n\tprivate disposed = false\n\tpublic isProcessingPopstate = false\n\n\tconstructor() {\n\t\tthis.$current.next(this.current)\n\t\t\n\t\t// Subscribe to current changes to update area-specific subjects\n\t\tthis.$current.subscribe(currentAreas => {\n\t\t\tif (this.disposed) return\n\t\t\t\n\t\t\t// For each area in the current map\n\t\t\tcurrentAreas.forEach((route, areaName) => {\n\t\t\t\t// Get or create a subject for this area\n\t\t\t\tconst areaSubject = this.getOrCreateAreaSubject(areaName)\n\t\t\t\t// Emit the updated route to area-specific subscribers\n\t\t\t\tareaSubject.next(route)\n\t\t\t})\n\t\t})\n\n\t\t// Initialize from browser state if available\n\t\tthis.initializeFromBrowserState()\n\t}\n\n\t/**\n\t * Initialize router state from browser history state\n\t */\n\tprivate initializeFromBrowserState() {\n\t\ttry {\n\t\t\tconst browserState = history.state\n\t\t\tif (browserState && browserState.schmancyAreas) {\n\t\t\t\tObject.entries(browserState.schmancyAreas).forEach(([areaName, route]) => {\n\t\t\t\t\tthis.current.set(areaName, route as ActiveRoute)\n\t\t\t\t})\n\t\t\t\tthis.$current.next(this.current)\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('Failed to initialize from browser state:', error)\n\t\t}\n\t}\n\n\t/**\n\t * Get or create a ReplaySubject for a specific area with proper cleanup\n\t */\n\tprivate getOrCreateAreaSubject(areaName: string): ReplaySubject<ActiveRoute> {\n\t\tlet subject = this.areaSubjects.get(areaName)\n\t\t\n\t\tif (!subject || subject.closed) {\n\t\t\tsubject = new ReplaySubject<ActiveRoute>(1)\n\t\t\tthis.areaSubjects.set(areaName, subject)\n\t\t\t\n\t\t\t// If the area already exists in current, emit it immediately\n\t\t\tconst currentRoute = this.current.get(areaName)\n\t\t\tif (currentRoute) {\n\t\t\t\tsubject.next({\n\t\t\t\t\t...currentRoute,\n\t\t\t\t\t// Ensure state, params and props are initialized if undefined\n\t\t\t\t\tstate: currentRoute.state || {},\n\t\t\t\t\tparams: currentRoute.params || {},\n\t\t\t\t\tprops: currentRoute.props || {}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn subject\n\t}\n\n\t/**\n\t * Subscribe to a specific area with caching\n\t */\n\ton(areaName: string, skipCurrent = false): Observable<ActiveRoute> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\tconst areaSubject = this.getOrCreateAreaSubject(areaName)\n\t\tconst observable = areaSubject.asObservable().pipe(\n\t\t\t// Add distinct to prevent duplicate emissions - now includes state\n\t\t\tdistinctUntilChanged((a, b) => \n\t\t\t\ta.component === b.component &&\n\t\t\t\tJSON.stringify(a.state) === JSON.stringify(b.state) &&\n\t\t\t\tJSON.stringify(a.params) === JSON.stringify(b.params)\n\t\t\t),\n\t\t\t// Share the subscription\n\t\t\tshareReplay(1)\n\t\t)\n\t\t\n\t\treturn skipCurrent ? observable.pipe(skip(1)) : observable\n\t}\n\t\n\t/**\n\t * Subscribe to all areas\n\t */\n\tall(skipCurrent = false): Observable<Map<string, ActiveRoute>> {\n\t\tconst observable = this.$current.asObservable().pipe(\n\t\t\tshareReplay(1)\n\t\t)\n\t\treturn skipCurrent ? observable.pipe(skip(1)) : observable\n\t}\n\t\n\t/**\n\t * Get state from an area with type safety\n\t */\n\tgetState<T = unknown>(areaName: string): Observable<T> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\treturn this.on(areaName).pipe(\n\t\t\tmap(route => route.state),\n\t\t\tfilter((state): state is NonNullable<Record<string, unknown>> => \n\t\t\t\tstate !== undefined && state !== null\n\t\t\t),\n\t\t\tdistinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n\t\t\tmap(state => state as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting state for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get params from an area with type safety\n\t */\n\tparams<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): Observable<T> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\treturn this.on(areaName).pipe(\n\t\t\tmap(route => route.params),\n\t\t\tfilter((params): params is NonNullable<Record<string, unknown>> => \n\t\t\t\tparams !== undefined && params !== null\n\t\t\t),\n\t\t\tdistinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n\t\t\tmap(params => params as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting params for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get a specific param from an area with null safety\n\t */\n\tparam<T = unknown>(areaName: string, key: string): Observable<T> {\n\t\tif (!areaName || !key) {\n\t\t\tthrow new Error('Area name and key are required')\n\t\t}\n\t\t\n\t\treturn this.params<Record<string, unknown>>(areaName).pipe(\n\t\t\tmap(params => params[key]),\n\t\t\tfilter((value): value is NonNullable<unknown> => value !== undefined),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(value => value as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting param \"${key}\" for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get props from an area with type safety\n\t */\n\tprops<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): Observable<T> {\n\t\tif (!areaName) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\t\t\n\t\treturn this.on(areaName).pipe(\n\t\t\tmap(route => route.props),\n\t\t\tfilter((props): props is NonNullable<Record<string, unknown>> => \n\t\t\t\tprops !== undefined && props !== null\n\t\t\t),\n\t\t\tdistinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n\t\t\tmap(props => props as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting props for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\t\n\t/**\n\t * Get a specific prop from an area with null safety\n\t */\n\tprop<T = unknown>(areaName: string, key: string): Observable<T> {\n\t\tif (!areaName || !key) {\n\t\t\tthrow new Error('Area name and key are required')\n\t\t}\n\t\t\n\t\treturn this.props<Record<string, unknown>>(areaName).pipe(\n\t\t\tmap(props => props[key]),\n\t\t\tfilter((value): value is NonNullable<unknown> => value !== undefined),\n\t\t\tdistinctUntilChanged(),\n\t\t\tmap(value => value as T),\n\t\t\tcatchError(err => {\n\t\t\t\tconsole.error(`Error getting prop \"${key}\" for area \"${areaName}\":`, err)\n\t\t\t\treturn EMPTY\n\t\t\t})\n\t\t)\n\t}\n\n\t/**\n\t * Find teleportation components\n\t */\n\tfind() {\n\t\treturn zip([\n\t\t\tfromEvent<HERE_RICKY_EVENT>(window, HERE_RICKY).pipe(\n\t\t\t\tmap(e => e.detail),\n\t\t\t\tbufferTime(0),\n\t\t\t),\n\t\t\tof(1).pipe(tap(() => window.dispatchEvent(this.findingMortiesEvent))),\n\t\t]).pipe(\n\t\t\tmap(([component]) => component),\n\t\t\ttimeout(1),\n\t\t\tcatchError(() => EMPTY)\n\t\t)\n\t}\n\n\t/**\n\t * Push a new route action with validation\n\t */\n\tpush(r: RouteAction) {\n\t\tif (!r.area) {\n\t\t\tthrow new Error('Area is required for route action')\n\t\t}\n\t\t\n\t\t// Prevent processing during popstate handling\n\t\tif (this.isProcessingPopstate) {\n\t\t\treturn\n\t\t}\n\t\t\n\t\t// Ensure state, params and props are initialized\n\t\tconst routeAction: RouteAction = {\n\t\t\t...r,\n\t\t\tstate: r.state || {},\n\t\t\tparams: r.params || {},\n\t\t\tprops: r.props || {},\n\t\t\t_source: 'programmatic' as NavigationSource\n\t\t}\n\t\t\n\t\t// Add to history if enabled\n\t\tif (this.enableHistoryMode) {\n\t\t\trouterHistory.next(routeAction)\n\t\t}\n\t\t\n\t\tthis.request.next(routeAction)\n\t\t// Emit an area-specific event for those who want to listen directly to DOM events\n\t\tthis.dispatchAreaEvent(routeAction.area, routeAction)\n\t}\n\n\t/**\n\t * Internal method to update route from browser navigation\n\t * This should only be called by area components during popstate handling\n\t */\n\t_updateFromBrowser(routeAction: RouteAction) {\n\t\tconst enhancedRoute: RouteAction = {\n\t\t\t...routeAction,\n\t\t\tstate: routeAction.state || {},\n\t\t\tparams: routeAction.params || {},\n\t\t\tprops: routeAction.props || {},\n\t\t\t_source: 'browser' as NavigationSource\n\t\t}\n\t\t\n\t\tthis.isProcessingPopstate = true\n\t\tthis.request.next(enhancedRoute)\n\t\tthis.isProcessingPopstate = false\n\t}\n\n\t/**\n\t * Update browser history state (called by area components)\n\t */\n\t_updateBrowserHistory(areaName: string, route: ActiveRoute, historyStrategy?: string, clearQueryParams?: string[] | boolean | null) {\n\t\tif (!this.enableHistoryMode) return\n\t\t\n\t\ttry {\n\t\t\t// Get current browser state or create new one\n\t\t\tconst currentState = history.state || {}\n\t\t\tconst schmancyAreas = currentState.schmancyAreas || {}\n\t\t\t\n\t\t\t// Update the specific area - only include non-empty state/params/props\n\t\t\tconst areaData: any = {\n\t\t\t\tcomponent: route.component,\n\t\t\t\tarea: route.area\n\t\t\t}\n\t\t\t\n\t\t\t// Only include state if it has content\n\t\t\tif (route.state && Object.keys(route.state).length > 0) {\n\t\t\t\tareaData.state = route.state\n\t\t\t}\n\t\t\t\n\t\t\t// Only include params if it has content\n\t\t\tif (route.params && Object.keys(route.params).length > 0) {\n\t\t\t\tareaData.params = route.params\n\t\t\t}\n\t\t\t\n\t\t\t// Only include props if it has content\n\t\t\tif (route.props && Object.keys(route.props).length > 0) {\n\t\t\t\tareaData.props = route.props\n\t\t\t}\n\t\t\t\n\t\t\tschmancyAreas[areaName] = areaData\n\t\t\t\n\t\t\tconst newState = {\n\t\t\t\t...currentState,\n\t\t\t\tschmancyAreas\n\t\t\t}\n\t\t\t\n\t\t\t// Create clean URL\n\t\t\tconst url = this.createCleanURL(schmancyAreas, clearQueryParams)\n\t\t\t\n\t\t\t// Update browser history\n\t\t\tif (historyStrategy === 'replace' || historyStrategy === 'pop') {\n\t\t\t\thistory.replaceState(newState, '', url)\n\t\t\t} else if (historyStrategy === 'push' || !historyStrategy) {\n\t\t\t\thistory.pushState(newState, '', url)\n\t\t\t}\n\t\t\t// 'silent' strategy doesn't update browser history\n\t\t\t\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to update browser history:', error)\n\t\t}\n\t}\n\n\t/**\n\t * Create a clean URL from area states\n\t */\n\tprivate createCleanURL(areas: Record<string, ActiveRoute>, clearQueryParams?: string[] | boolean | null): string {\n\t\t// Get the current base path (everything except the last segment which might be encoded state)\n\t\tconst currentPath = location.pathname\n\t\tconst pathSegments = currentPath.split('/')\n\t\tlet basePath = '/'\n\n\t\t// Check if the last segment is encoded state (contains { or %7B)\n\t\tconst lastSegment = pathSegments[pathSegments.length - 1]\n\t\tif (lastSegment && (lastSegment.includes('{') || lastSegment.includes('%7B'))) {\n\t\t\t// Remove the encoded state segment to get the base path\n\t\t\tpathSegments.pop()\n\t\t\tbasePath = pathSegments.join('/') || '/'\n\t\t} else {\n\t\t\t// Keep the current path as base path\n\t\t\tbasePath = currentPath\n\t\t}\n\n\t\t// Ensure base path ends properly\n\t\tif (basePath !== '/' && !basePath.endsWith('/')) {\n\t\t\tbasePath += '/'\n\t\t}\n\n\t\t// Handle query parameters\n\t\tlet queryString = ''\n\n\t\tif (clearQueryParams !== true) {\n\t\t\t// Get current query params\n\t\t\tconst urlParams = new URLSearchParams(location.search)\n\n\t\t\t// Clear specific params if provided\n\t\t\tif (Array.isArray(clearQueryParams)) {\n\t\t\t\tclearQueryParams.forEach(param => urlParams.delete(param))\n\t\t\t}\n\n\t\t\t// Convert back to string\n\t\t\tqueryString = urlParams.toString()\n\t\t\tqueryString = queryString ? `?${queryString}` : ''\n\t\t}\n\t\t// If clearQueryParams === true, queryString remains empty (all params cleared)\n\n\t\tif (this.prettyURL) {\n\t\t\t// Create pretty URLs - customize this based on your routing needs\n\t\t\tconst mainArea = areas.main\n\t\t\tif (mainArea) {\n\t\t\t\tlet path = basePath === '/' ? `/${mainArea.component}` : `${basePath}${mainArea.component}`\n\n\t\t\t\t// Add simple params to URL\n\t\t\t\tconst searchParams = new URLSearchParams(queryString)\n\t\t\t\tif (mainArea.params) {\n\t\t\t\t\tObject.entries(mainArea.params).forEach(([key, value]) => {\n\t\t\t\t\t\tif (typeof value === 'string' || typeof value === 'number') {\n\t\t\t\t\t\t\tsearchParams.set(key, String(value))\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst query = searchParams.toString()\n\t\t\t\treturn path + (query ? `?${query}` : '')\n\t\t\t}\n\t\t}\n\n\t\t// Fallback to encoded state in URL (original behavior)\n\t\ttry {\n\t\t\t// Clean up empty objects before encoding\n\t\t\tconst cleanedAreas: Record<string, any> = {}\n\t\t\tObject.entries(areas).forEach(([areaName, route]) => {\n\t\t\t\tconst cleanRoute: any = { component: route.component }\n\n\t\t\t\t// Only include state if it has content\n\t\t\t\tif (route.state && Object.keys(route.state).length > 0) {\n\t\t\t\t\tcleanRoute.state = route.state\n\t\t\t\t}\n\n\t\t\t\t// Only include params if it has content\n\t\t\t\tif (route.params && Object.keys(route.params).length > 0) {\n\t\t\t\t\tcleanRoute.params = route.params\n\t\t\t\t}\n\n\t\t\t\t// Only include props if it has content\n\t\t\t\tif (route.props && Object.keys(route.props).length > 0) {\n\t\t\t\t\tcleanRoute.props = route.props\n\t\t\t\t}\n\n\t\t\t\tcleanedAreas[areaName] = cleanRoute\n\t\t\t})\n\n\t\t\t// If cleanedAreas is empty, preserve the base path\n\t\t\tif (Object.keys(cleanedAreas).length === 0) {\n\t\t\t\tconst cleanBasePath = basePath === '/' ? '' : basePath.replace(/\\/$/, '')\n\t\t\t\treturn `${cleanBasePath}${queryString}`\n\t\t\t}\n\n\t\t\tconst encoded = encodeURIComponent(JSON.stringify(cleanedAreas))\n\t\t\tconst cleanBasePath = basePath === '/' ? '' : basePath.replace(/\\/$/, '')\n\t\t\treturn `${cleanBasePath}/${encoded}${queryString}`\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to encode URL state:', error)\n\t\t\treturn location.pathname\n\t\t}\n\t}\n\n\t/**\n\t * Restore state from browser history state\n\t */\n\trestoreFromBrowserState(browserState: any): Record<string, ActiveRoute> {\n\t\ttry {\n\t\t\tif (browserState && browserState.schmancyAreas) {\n\t\t\t\treturn browserState.schmancyAreas\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to restore from browser state:', error)\n\t\t}\n\t\t\n\t\t// Fallback to URL parsing (original behavior)\n\t\treturn this.parseStateFromURL()\n\t}\n\n\t/**\n\t * Parse state from URL (fallback method)\n\t */\n\tprivate parseStateFromURL(): Record<string, ActiveRoute> {\n\t\tconst pathname = location.pathname.split('/').pop()\n\t\tif (!pathname) return {}\n\t\t\n\t\ttry {\n\t\t\tconst decoded = decodeURIComponent(pathname)\n\t\t\tconst parsed = JSON.parse(decoded)\n\t\t\t\n\t\t\tif (typeof parsed === 'object' && parsed !== null) {\n\t\t\t\treturn parsed\n\t\t\t}\n\t\t} catch {\n\t\t\t// Ignore parse errors\n\t\t}\n\t\t\n\t\treturn {}\n\t}\n\t\n\t/**\n\t * Dispatch a DOM event for a specific area change\n\t */\n\tprivate dispatchAreaEvent(areaName: string, routeAction: RouteAction) {\n\t\tconst eventName = `schmancy-area-${areaName}-changed`\n\t\tconst event = new CustomEvent(eventName, { \n\t\t\tdetail: { \n\t\t\t\tarea: areaName,\n\t\t\t\tcomponent: routeAction.component,\n\t\t\t\tstate: routeAction.state,\n\t\t\t\tparams: routeAction.params,\n\t\t\t\tprops: routeAction.props,\n\t\t\t\thistoryStrategy: routeAction.historyStrategy\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t})\n\t\twindow.dispatchEvent(event)\n\t}\n\n\t/**\n\t * Remove an area from the current state\n\t */\n\tpop(name: string) {\n\t\tif (!name) {\n\t\t\tthrow new Error('Area name is required')\n\t\t}\n\n\t\t// Before removing from current map, emit a clearing signal to the area's subject\n\t\t// This notifies the area component to clear itself\n\t\tconst areaSubject = this.areaSubjects.get(name)\n\t\tif (areaSubject && !areaSubject.closed) {\n\t\t\t// Send a route with null component to signal clearing\n\t\t\tareaSubject.next({\n\t\t\t\tcomponent: null as any,\n\t\t\t\tstate: {},\n\t\t\t\tarea: name,\n\t\t\t\tparams: {},\n\t\t\t\tprops: {}\n\t\t\t})\n\t\t}\n\n\t\t// Send a clearing signal through the request pipeline\n\t\t// This ensures the area component receives the signal to clear\n\t\tthis.request.next({\n\t\t\tarea: name,\n\t\t\tcomponent: null as any,\n\t\t\tstate: {},\n\t\t\tparams: {},\n\t\t\tprops: {},\n\t\t\thistoryStrategy: 'silent' as any,\n\t\t\t_source: 'programmatic' as NavigationSource\n\t\t})\n\n\t\t// Remove from current map\n\t\tthis.current.delete(name)\n\t\tthis.$current.next(this.current)\n\n\t\t// Update browser history\n\t\tif (this.enableHistoryMode) {\n\t\t\ttry {\n\t\t\t\tconst currentState = history.state || {}\n\t\t\t\tconst schmancyAreas = { ...(currentState.schmancyAreas || {}) }\n\t\t\t\tdelete schmancyAreas[name]\n\n\t\t\t\tconst newState = {\n\t\t\t\t\t...currentState,\n\t\t\t\t\tschmancyAreas\n\t\t\t\t}\n\n\t\t\t\tconst url = this.createCleanURL(schmancyAreas)\n\t\t\t\thistory.replaceState(newState, '', url)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to update history after pop:', error)\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * Clear all areas\n\t */\n\tclear() {\n\t\t// Complete all area subjects\n\t\tthis.areaSubjects.forEach(subject => subject.complete())\n\t\tthis.areaSubjects.clear()\n\n\t\t// Clear current state\n\t\tthis.current.clear()\n\t\tthis.$current.next(this.current)\n\n\t\t// Update URL\n\t\tif (this.enableHistoryMode) {\n\t\t\tconst url = this.createCleanURL({})\n\t\t\thistory.replaceState({ schmancyAreas: {} }, '', url)\n\t\t}\n\t}\n\t\n\t/**\n\t * Dispose of the service and clean up resources\n\t */\n\tdispose() {\n\t\tif (this.disposed) return\n\t\t\n\t\tthis.disposed = true\n\t\t\n\t\t// Complete all subjects\n\t\tthis.areaSubjects.forEach(subject => subject.complete())\n\t\tthis.areaSubjects.clear()\n\t\t\n\t\tthis.request.complete()\n\t\tthis.$current.complete()\n\t\trouterHistory.complete()\n\t\t\n\t\t// Clear references\n\t\tthis.current.clear()\n\t\tareaSubjectsCache.delete(this)\n\t}\n\t\n\t/**\n\t * Get singleton instance\n\t */\n\tstatic getInstance() {\n\t\tif (!AreaService.instance) {\n\t\t\tAreaService.instance = new AreaService()\n\t\t}\n\t\treturn AreaService.instance\n\t}\n\n\t/**\n\t * Get current state from URL (deprecated - use browser state instead)\n\t */\n\tget state(): Record<string, unknown> {\n\t\t// Try browser state first\n\t\ttry {\n\t\t\tconst browserState = history.state\n\t\t\tif (browserState && browserState.schmancyAreas) {\n\t\t\t\treturn browserState.schmancyAreas\n\t\t\t}\n\t\t} catch {\n\t\t\t// Fallback to URL parsing\n\t\t}\n\t\t\n\t\t// Fallback to URL parsing (original behavior)\n\t\treturn this.parseStateFromURL()\n\t}\n\t\n\t/**\n\t * Check if an area exists in current state\n\t */\n\thasArea(areaName: string): boolean {\n\t\treturn this.current.has(areaName)\n\t}\n\t\n\t/**\n\t * Get all active area names\n\t */\n\tgetActiveAreas(): string[] {\n\t\treturn Array.from(this.current.keys())\n\t}\n\t\n\t/**\n\t * Get route for a specific area synchronously\n\t */\n\tgetRoute(areaName: string): ActiveRoute | undefined {\n\t\treturn this.current.get(areaName)\n\t}\n}\n\nexport const area = AreaService.getInstance()\nexport default area\n\n// Cleanup on page unload\nif (typeof window !== 'undefined') {\n\twindow.addEventListener('unload', () => {\n\t\tarea.dispose()\n\t})\n}","export type RouteAction = {\n\tcomponent: CustomElementConstructor | string | HTMLElement | (() => Promise<{ default: CustomElementConstructor }>)\n\tarea: string\n\tstate?: Record<string, unknown>\n\tparams?: Record<string, unknown>\n\tprops?: Record<string, unknown> // Alias for params\n\thistoryStrategy?: THistoryStrategy\n\tclearQueryParams?: string[] | boolean | null\n\t_source?: 'programmatic' | 'browser' | 'initial' // Internal use only\n}\n\nexport type ActiveRoute = {\n\tcomponent: string\n\tarea: string\n\tstate?: Record<string, unknown>\n\tparams?: Record<string, unknown>\n\tprops?: Record<string, unknown>\n}\n\n/**\n * Interface for subscribing to area changes\n */\nexport interface AreaSubscription {\n\t/**\n\t * Subscribe to a specific area\n\t * @param areaName Name of the area to subscribe to\n\t * @param skipCurrent Whether to skip the current value\n\t * @returns Observable of the active route for the specified area\n\t */\n\ton(areaName: string, skipCurrent?: boolean): import('rxjs').Observable<ActiveRoute>\n\t\n\t/**\n\t * Subscribe to all areas\n\t * @param skipCurrent Whether to skip the current value\n\t * @returns Observable of all active routes\n\t */\n\tall(skipCurrent?: boolean): import('rxjs').Observable<Map<string, ActiveRoute>>\n\t\n\t/**\n\t * Get state from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @returns Observable of the area's state\n\t */\n\tgetState<T = unknown>(areaName: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get params from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @returns Observable of the area's params\n\t */\n\tparams<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get a specific param from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @param key Key of the param to select\n\t * @returns Observable of the param value\n\t */\n\tparam<T = unknown>(areaName: string, key: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get props from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @returns Observable of the area's props\n\t */\n\tprops<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): import('rxjs').Observable<T>\n\t\n\t/**\n\t * Get a specific prop from an area\n\t * @param areaName Name of the area to subscribe to\n\t * @param key Key of the prop to select\n\t * @returns Observable of the prop value\n\t */\n\tprop<T = unknown>(areaName: string, key: string): import('rxjs').Observable<T>\n}\n\nexport type THistoryStrategy = 'push' | 'replace' | 'pop' | 'silent'\n\nexport enum HISTORY_STRATEGY {\n\tpush = 'push',\n\treplace = 'replace',\n\tpop = 'pop',\n\tsilent = 'silent',\n}\n\n/**\n * Browser history state structure used by Schmancy Area\n */\nexport interface SchmancyHistoryState {\n\tschmancyAreas: Record<string, ActiveRoute>\n\t[key: string]: any // Allow other apps to store additional state\n}","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport {\n\tEMPTY,\n\tcatchError,\n\tdistinctUntilChanged,\n\tfilter,\n\tfrom,\n\tfromEvent,\n\tmap,\n\tmerge,\n\tof,\n\tshareReplay,\n\tswitchMap,\n\ttake,\n\ttakeUntil,\n\ttap,\n} from 'rxjs'\nimport area from './area.service'\nimport { SchmancyRoute } from './route.component'\nimport { ActiveRoute, HISTORY_STRATEGY, RouteAction } from './router.types'\n\n@customElement('schmancy-area')\nexport class SchmancyArea extends $LitElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\tinset: 0;\n\t}\n`) {\n\t/**\n\t * The name of the router outlet\n\t * @attr\n\t * @type {string}\n\t * @public\n\t * @required\n\t */\n\t@property() name!: string\n\n\t@property() default!:\n\t\t| CustomElementConstructor\n\t\t| string\n\t\t| HTMLElement\n\t\t| (() => Promise<{ default: CustomElementConstructor }>)\n\n\t/**\n\t * Query for assigned route elements in the slot\n\t * This will automatically update when slot content changes\n\t */\n\t@queryAssignedElements({ selector: 'schmancy-route' })\n\tprivate routes!: SchmancyRoute[]\n\n\tprotected firstUpdated(): void {\n\t\tif (!this.name) throw new Error('Area name is required')\n\n\t\t// Single unified routing pipeline - all logic inline\n\t\tmerge(\n\t\t\t// Programmatic navigation\n\t\t\tarea.request.pipe(filter(({ area }) => area === this.name)),\n\n\t\t\t// Initial load - simplified to use this.routes directly\n\t\t\tof(location.pathname).pipe(\n\t\t\t\ttake(1),\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\tconst path = location.pathname\n\t\t\t\t\tconst lastSegment = path.split('/').pop() || ''\n\t\t\t\t\tlet route: SchmancyRoute\n\n\t\t\t\t\t// Check for JSON encoded route\n\t\t\t\t\tif (lastSegment && (lastSegment.includes('{') || lastSegment.includes('%7B'))) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst parsed = JSON.parse(decodeURIComponent(lastSegment)) as Record<string, ActiveRoute>\n\t\t\t\t\t\t\tif (parsed[this.name]) {\n\t\t\t\t\t\t\t\tconst componentTag = parsed[this.name]\n\t\t\t\t\t\t\t\troute = this.routes?.find(r => r.when === componentTag.component)\n\t\t\t\t\t\t\t\t// if the route.component is a lazy loaded module we need to load it\n\t\t\t\t\t\t\t\tif (route)\n\t\t\t\t\t\t\t\t\treturn of({\n\t\t\t\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\t\t\t\tcomponent: route.component,\n\t\t\t\t\t\t\t\t\t\tstate: parsed[this.name].state || {},\n\t\t\t\t\t\t\t\t\t\tparams: parsed[this.name].params || {},\n\t\t\t\t\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.replace,\n\t\t\t\t\t\t\t\t\t} as RouteAction)\n\n\t\t\t\t\t\t\t\treturn of({\n\t\t\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\t\t\tcomponent: parsed[this.name].component,\n\t\t\t\t\t\t\t\t\tstate: parsed[this.name].state || {},\n\t\t\t\t\t\t\t\t\tparams: parsed[this.name].params || {},\n\t\t\t\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.replace,\n\t\t\t\t\t\t\t\t} as RouteAction)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch {}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Segment-based routing - use this.routes directly\n\t\t\t\t\tconst segments = path.split('/').filter(Boolean)\n\t\t\t\t\troute = this.routes?.find(r => segments.includes(r.when))\n\t\t\t\t\t// if the route.component is a lazy loaded module we need to load it\n\n\t\t\t\t\tif (!route) {\n\t\t\t\t\t\treturn this.default\n\t\t\t\t\t\t\t? of({\n\t\t\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\t\t\tcomponent: this.default,\n\t\t\t\t\t\t\t\t\tstate: {},\n\t\t\t\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.silent,\n\t\t\t\t\t\t\t\t} as RouteAction)\n\t\t\t\t\t\t\t: EMPTY\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handle guard inline\n\t\t\t\t\tif (route.guard) {\n\t\t\t\t\t\treturn from(Promise.resolve(route.guard())).pipe(\n\t\t\t\t\t\t\tswitchMap(result => {\n\t\t\t\t\t\t\t\tif (result === true) {\n\t\t\t\t\t\t\t\t\treturn of({\n\t\t\t\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\t\t\t\tcomponent: route.component,\n\t\t\t\t\t\t\t\t\t\tstate: {},\n\t\t\t\t\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.silent,\n\t\t\t\t\t\t\t\t\t} as RouteAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Handle redirects recursively inline\n\t\t\t\t\t\t\t\tconst redirect =\n\t\t\t\t\t\t\t\t\ttypeof result === 'string'\n\t\t\t\t\t\t\t\t\t\t? result\n\t\t\t\t\t\t\t\t\t\t: typeof result === 'object' && result?.redirect\n\t\t\t\t\t\t\t\t\t\t\t? result.redirect\n\t\t\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t\tif (redirect) {\n\t\t\t\t\t\t\t\t\tconst newSegment = redirect.split('/').filter(Boolean)[0] || ''\n\t\t\t\t\t\t\t\t\tconst newRoute = this.routes?.find(r => r.when === newSegment)\n\t\t\t\t\t\t\t\t\tif (newRoute) {\n\t\t\t\t\t\t\t\t\t\treturn of({\n\t\t\t\t\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\t\t\t\t\tcomponent: newRoute.component,\n\t\t\t\t\t\t\t\t\t\t\tstate: {},\n\t\t\t\t\t\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.silent,\n\t\t\t\t\t\t\t\t\t\t} as RouteAction)\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\treturn this.default\n\t\t\t\t\t\t\t\t\t? of({\n\t\t\t\t\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\t\t\t\t\tcomponent: this.default,\n\t\t\t\t\t\t\t\t\t\t\tstate: {},\n\t\t\t\t\t\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.silent,\n\t\t\t\t\t\t\t\t\t\t} as RouteAction)\n\t\t\t\t\t\t\t\t\t: EMPTY\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tcatchError(() =>\n\t\t\t\t\t\t\t\tthis.default\n\t\t\t\t\t\t\t\t\t? of({\n\t\t\t\t\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\t\t\t\t\tcomponent: this.default,\n\t\t\t\t\t\t\t\t\t\t\tstate: {},\n\t\t\t\t\t\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.silent,\n\t\t\t\t\t\t\t\t\t\t} as RouteAction)\n\t\t\t\t\t\t\t\t\t: EMPTY,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\treturn of({\n\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\tcomponent: route.component,\n\t\t\t\t\t\tstate: {},\n\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.silent,\n\t\t\t\t\t} as RouteAction)\n\t\t\t\t}),\n\t\t\t),\n\n\t\t\t// Browser back/forward - simplified to directly use popstate\n\t\t\tfromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\tmap(event =>\n\t\t\t\t\tevent.state?.schmancyAreas?.[this.name]\n\t\t\t\t\t\t? ({\n\t\t\t\t\t\t\t\tarea: this.name,\n\t\t\t\t\t\t\t\tcomponent: event.state.schmancyAreas[this.name].component,\n\t\t\t\t\t\t\t\tstate: event.state.schmancyAreas[this.name].state || {},\n\t\t\t\t\t\t\t\tparams: event.state.schmancyAreas[this.name].params || {},\n\t\t\t\t\t\t\t\thistoryStrategy: HISTORY_STRATEGY.pop,\n\t\t\t\t\t\t\t} as RouteAction)\n\t\t\t\t\t\t: null,\n\t\t\t\t),\n\t\t\t\tfilter(route => route !== null),\n\t\t\t),\n\t\t)\n\t\t\t.pipe(\n\t\t\t\tfilter(route => route?.component !== undefined),\n\n\t\t\t\t// Step 1: Resolve ONLY lazy components to constructors (no element creation)\n\t\t\t\tswitchMap(async route => {\n\t\t\t\t\tconsole.log(this.name, route)\n\t\t\t\t\tlet component = route.component\n\n\t\t\t\t\t// Resolve lazy components first\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof component === 'function' &&\n\t\t\t\t\t\t('preload' in component || '_promise' in component || '_module' in component)\n\t\t\t\t\t) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst module = await (component as () => Promise<{ default: CustomElementConstructor }>)()\n\t\t\t\t\t\t\tcomponent = module.default\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(`[${this.name}] Lazy load failed:`, e)\n\t\t\t\t\t\t\treturn { component: null, route }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn { component, route }\n\t\t\t\t}),\n\n\t\t\t\t// Step 2: Extract component identifier for comparison (without creating elements)\n\t\t\t\tmap(({ component, route }) => {\n\t\t\t\t\tlet identifier = ''\n\n\t\t\t\t\tif (!component || component === '') {\n\t\t\t\t\t\tidentifier = 'null'\n\t\t\t\t\t} else if (typeof component === 'string') {\n\t\t\t\t\t\tidentifier = component\n\t\t\t\t\t} else if (component instanceof HTMLElement) {\n\t\t\t\t\t\tidentifier = component.tagName\n\t\t\t\t\t} else if (typeof component === 'function') {\n\t\t\t\t\t\tidentifier = component.name || 'CustomElement'\n\t\t\t\t\t}\n\n\t\t\t\t\tconst key = `${identifier}${JSON.stringify(route.params)}${JSON.stringify(route.state)}`\n\n\t\t\t\t\treturn { component, route, key }\n\t\t\t\t}),\n\n\t\t\t\t// Step 3: Deduplicate using the identifier (before creating expensive elements)\n\t\t\t\tdistinctUntilChanged((a, b) => a.key === b.key),\n\n\t\t\t\t// Step 4: Create the HTMLElement and apply properties\n\t\t\t\tmap(({ component, route }) => {\n\t\t\t\t\tlet element: HTMLElement | null = null\n\n\t\t\t\t\t// Now resolve to HTMLElement\n\t\t\t\t\tif (!component || component === '') {\n\t\t\t\t\t\telement = null\n\t\t\t\t\t} else if (typeof component === 'string') {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\telement = document.createElement(component)\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tconsole.error(`[${this.name}] Failed to create element:`, component)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (component instanceof HTMLElement) {\n\t\t\t\t\t\telement = component\n\t\t\t\t\t} else if (typeof component === 'function') {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\telement = new (component as CustomElementConstructor)()\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(`[${this.name}] Failed to instantiate:`, e)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Apply properties inline\n\t\t\t\t\tif (element) {\n\t\t\t\t\t\tif (route.params) Object.assign(element, route.params)\n\t\t\t\t\t\tif (route.props) Object.assign(element, route.props)\n\t\t\t\t\t\tif (route.state) (element as any).state = route.state\n\t\t\t\t\t}\n\n\t\t\t\t\treturn { element, route }\n\t\t\t\t}),\n\n\t\t\t\tshareReplay(1),\n\n\t\t\t\t// Swap components\n\t\t\t\ttap(({ element, route }) => this.swapComponents(element, route)),\n\n\t\t\t\tcatchError(error => {\n\t\t\t\t\tconsole.error(`[${this.name}] Navigation error:`, error)\n\t\t\t\t\treturn EMPTY\n\t\t\t\t}),\n\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Swap components with animation following the original pattern\n\t */\n\tprivate swapComponents(newComponent: HTMLElement | null, routeAction: RouteAction) {\n\t\tconst oldComponent = this.shadowRoot?.children[0] as HTMLElement | undefined\n\n\t\t// If no new component, just clear\n\t\tif (!newComponent) {\n\t\t\tif (oldComponent) {\n\t\t\t\toldComponent.remove()\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// Animate transition\n\t\tif (oldComponent) {\n\t\t\t// Fade out old component\n\t\t\tconst fadeOut = oldComponent.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 150, easing: 'ease-out' })\n\n\t\t\tfadeOut.onfinish = () => {\n\t\t\t\toldComponent.remove()\n\t\t\t\t// Add and fade in new component\n\t\t\t\tthis.shadowRoot?.append(newComponent)\n\t\t\t\tnewComponent.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 150, easing: 'ease-in' })\n\t\t\t}\n\t\t} else {\n\t\t\t// No old component, just add and fade in\n\t\t\tthis.shadowRoot?.append(newComponent)\n\t\t\tnewComponent.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 100, easing: 'ease-in' })\n\t\t}\n\n\t\t// Update internal state\n\t\tif (newComponent) {\n\t\t\tconst activeRoute: ActiveRoute = {\n\t\t\t\tcomponent: newComponent.tagName.toLowerCase(),\n\t\t\t\tstate: routeAction.state || {},\n\t\t\t\tarea: this.name,\n\t\t\t\tparams: routeAction.params || {},\n\t\t\t}\n\n\t\t\tarea.current.set(this.name, activeRoute)\n\t\t\tarea.$current.next(area.current)\n\t\t}\n\n\t\t// Update browser history\n\t\tif (area.enableHistoryMode && newComponent) {\n\t\t\tconst activeRoute: ActiveRoute = {\n\t\t\t\tcomponent: newComponent.tagName.toLowerCase(),\n\t\t\t\tstate: routeAction.state || {},\n\t\t\t\tarea: this.name,\n\t\t\t\tparams: routeAction.params || {},\n\t\t\t}\n\n\t\t\tarea._updateBrowserHistory(\n\t\t\t\tthis.name,\n\t\t\t\tactiveRoute,\n\t\t\t\trouteAction.historyStrategy || HISTORY_STRATEGY.push,\n\t\t\t\trouteAction.clearQueryParams,\n\t\t\t)\n\t\t}\n\t}\n\n\t/**\n\t * Create URL path for the route (legacy method, now handled by service)\n\t */\n\tnewPath(tag: string, route: RouteAction) {\n\t\tconst oldPathname = location.pathname.split('/').pop()\n\t\tlet oldAreaState = {}\n\t\ttry {\n\t\t\toldAreaState = oldPathname ? JSON.parse(decodeURIComponent(oldPathname)) : {}\n\t\t} catch {\n\t\t\toldAreaState = {}\n\t\t}\n\t\troute.state = route.state ?? {}\n\t\tconst queryParams = route.clearQueryParams ? this.queryParamClear(route.clearQueryParams) : document.location.search\n\n\t\treturn encodeURIComponent(\n\t\t\tJSON.stringify({\n\t\t\t\t...oldAreaState,\n\t\t\t\t[this.name]: { component: tag.toLowerCase(), state: route.state, params: route.params },\n\t\t\t}),\n\t\t).concat(`${queryParams}`)\n\t}\n\n\t/**\n\t * Clear query parameters\n\t */\n\tqueryParamClear(params?: string[] | boolean) {\n\t\tif (!params) {\n\t\t\treturn ''\n\t\t}\n\t\t// get query params from url\n\t\tconst urlParams = new URLSearchParams(location.search)\n\n\t\tif (params === true) {\n\t\t\t// Clear all query params\n\t\t\treturn ''\n\t\t} else {\n\t\t\t// Clear specific query params\n\t\t\tparams.forEach(param => urlParams.delete(param))\n\t\t\t// update url\n\t\t\tif (urlParams.toString() === '') return ''\n\t\t\treturn `?${urlParams.toString()}`\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t}\n\n\trender() {\n\t\treturn html` <slot> </slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-area': SchmancyArea\n\t}\n}\n","import { html, css, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { $LitElement } from '@mixins/index';\n\nexport type GuardResult = boolean | string | { redirect: string };\n\n// Component types that can be passed to routes\nexport type RouteComponent =\n | string // Tag name\n | CustomElementConstructor // Constructor function\n | HTMLElement // Existing element\n | TemplateResult<1> // Lit template\n | (() => Promise<{ default: CustomElementConstructor }>) // Lazy loader\n | Promise<{ default: CustomElementConstructor }>; // Dynamic import\n\nexport interface RouteConfig {\n when: string;\n component: RouteComponent;\n exact?: boolean;\n guard?: () => GuardResult | Promise<GuardResult>;\n}\n\n/**\n * A marker component that holds route configuration.\n * This component doesn't render anything - it's used by schmancy-area\n * to configure routing via slot change detection.\n *\n * @example\n * ```html\n * <schmancy-area>\n * <schmancy-route\n * when=\"users\"\n * .component=${UserComponent}\n * exact\n * ></schmancy-route>\n * </schmancy-area>\n * ```\n */\n@customElement('schmancy-route')\nexport class SchmancyRoute extends $LitElement(css`\n :host {\n display: none;\n }\n`) {\n @property({ type: String })\n when!: string;\n\n @property({ type: Object })\n component!: RouteComponent;\n\n @property({ type: Boolean })\n exact?: boolean = false;\n\n @property({ type: Object })\n guard?: () => GuardResult | Promise<GuardResult>;\n\n /**\n * Returns the route configuration object\n */\n getConfig(): RouteConfig {\n return {\n when: this.when,\n component: this.component,\n exact: this.exact,\n guard: this.guard\n };\n }\n\n render() {\n // This is a marker component - no visual output\n return html``;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-route': SchmancyRoute;\n }\n}"],"names":["routerHistory","Subject","FINDING_MORTIES","HERE_RICKY","areaSubjectsCache","WeakMap","AreaService","this","prettyURL","mode","request","ReplaySubject","current","Map","$current","enableHistoryMode","findingMortiesEvent","CustomEvent","disposed","isProcessingPopstate","next","subscribe","currentAreas","forEach","route","areaName","getOrCreateAreaSubject","initializeFromBrowserState","areaSubjects","subjects","get","set","browserState","history","state","schmancyAreas","Object","entries","error","subject","closed","currentRoute","params","props","skipCurrent","Error","observable","asObservable","pipe","distinctUntilChanged","a","b","component","JSON","stringify","shareReplay","skip","on","map","filter","catchError","err","EMPTY","key","value","find","zip","fromEvent","window","e","detail","bufferTime","of","tap","dispatchEvent","timeout","r","area","routeAction","_source","dispatchAreaEvent","enhancedRoute","historyStrategy","clearQueryParams","currentState","areaData","keys","length","newState","url","createCleanURL","replaceState","pushState","areas","currentPath","location","pathname","pathSegments","split","basePath","lastSegment","includes","pop","join","endsWith","queryString","urlParams","URLSearchParams","search","Array","isArray","param","delete","toString","mainArea","main","path","searchParams","String","query","cleanedAreas","cleanRoute","replace","encoded","encodeURIComponent","parseStateFromURL","decoded","decodeURIComponent","parsed","parse","event","bubbles","composed","name","areaSubject","clear","complete","dispose","getInstance","instance","has","getActiveAreas","from","addEventListener","HISTORY_STRATEGY","SchmancyArea","$LitElement","css","firstUpdated","merge","take","switchMap","componentTag","routes","when","segments","Boolean","guard","Promise","resolve","result","silent","redirect","newSegment","newRoute","default","async","identifier","HTMLElement","tagName","element","document","createElement","assign","swapComponents","takeUntil","disconnecting","newComponent","oldComponent","shadowRoot","children","animate","opacity","duration","easing","onfinish","remove","append","activeRoute","toLowerCase","_updateBrowserHistory","push","tag","oldPathname","oldAreaState","queryParams","queryParamClear","concat","super","disconnectedCallback","render","html","__decorateClass","property","prototype","queryAssignedElements","selector","customElement","SchmancyRoute","arguments","exact","getConfig","type"],"mappings":"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"}
|
package/dist/select-B-yc3JB7.cjs
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";const h=require("@floating-ui/dom"),p=require("rxjs"),f=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const a=require("lit/decorators.js");require("./tailwind.mixin-B-VcpMHn.cjs");const m=require("./litElement.mixin-CjRG_9tZ.cjs"),v=require("./ripple-C2BHbhcS.cjs");require("lit/directives/guard.js");const u=require("./theme.interface-Xg5Zi46a.cjs"),c=require("lit");var S=Object.defineProperty,b=Object.getOwnPropertyDescriptor,o=(t,e,i,s)=>{for(var n,l=s>1?void 0:s?b(e,i):e,r=t.length-1;r>=0;r--)(n=t[r])&&(l=(s?n(e,i,l):n(l))||l);return s&&l&&S(e,i,l),l};exports.SchmancySelect=class extends m.$LitElement(c.css`
|
|
2
|
-
:host {
|
|
3
|
-
display: block;
|
|
4
|
-
position: relative;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
[role='listbox'] {
|
|
8
|
-
overflow-y: auto;
|
|
9
|
-
outline: none;
|
|
10
|
-
}
|
|
11
|
-
`){constructor(){super(),this.required=!1,this.disabled=!1,this.placeholder="",this.value="",this.multi=!1,this.label="",this.hint="",this.validateOn="touched",this.size="md",this.isOpen=!1,this.valueLabel="",this.isValid=!0,this.validationMessage="",this.defaultValue="",this._userInteracted=!1,this._touched=!1,this._dirty=!1,this._submitted=!1,this._focusedOptionId="",this.formSubmitHandler=()=>{this._submitted=!0,this.checkValidity()},this.formResetHandler=()=>{this.reset()},this.handleKeyDown=t=>{if(this.disabled)return;if(!this.isOpen)return void(["Enter"," ","ArrowDown"].includes(t.key)&&(t.preventDefault(),this.openDropdown(!1)));const e=Array.from(this.options||[]),i=e.findIndex(s=>s.id===this._focusedOptionId)??-1;switch(t.key){case"Escape":t.preventDefault(),this.closeDropdown();break;case"ArrowDown":t.preventDefault(),this.focusOption(e,Math.min(i+1,e.length-1));break;case"ArrowUp":t.preventDefault(),this.focusOption(e,Math.max(i-1,0));break;case"Home":t.preventDefault(),this.focusOption(e,0);break;case"End":t.preventDefault(),this.focusOption(e,e.length-1);break;case"Enter":case" ":if(t.preventDefault(),this._focusedOptionId){const s=e.find(n=>n.id===this._focusedOptionId);s&&this.handleOptionSelect(s.value)}break;case"Tab":this.closeDropdown()}};try{this.internals=this.attachInternals()}catch{}}get form(){return this.internals?.form}connectedCallback(){super.connectedCallback(),this.id||(this.id=`schmancy-select-${Math.random().toString(36).substring(2,9)}`),this.defaultValue=this.value,p.fromEvent(this,"keydown").pipe(p.takeUntil(this.disconnecting)).subscribe(this.handleKeyDown),p.fromEvent(this,"option-select").pipe(p.takeUntil(this.disconnecting)).subscribe(t=>{t.stopPropagation(),this.handleOptionSelect(t.detail.value)}),this.internals?.form&&(this.internals.form.addEventListener("submit",this.formSubmitHandler),this.internals.form.addEventListener("reset",this.formResetHandler)),this.inputRef&&(this.inputRef.error=!1)}disconnectedCallback(){super.disconnectedCallback(),this.cleanupPositioner?.(),this.internals?.form&&(this.internals.form.removeEventListener("submit",this.formSubmitHandler),this.internals.form.removeEventListener("reset",this.formResetHandler))}firstUpdated(){this.syncSelection(),this.setupOptionsAccessibility()}updated(t){if(super.updated(t),t.has("value")){const e=Array.isArray(this.value)?this.value.join(","):this.value;this.internals?.setFormValue(e),this.hasUpdated&&(this._dirty=!0),this.syncSelection(),this.hasUpdated&&this.checkValidity()}t.has("isOpen")&&(this.isOpen?this.positionDropdown():this.cleanupPositioner?.())}shouldShowValidation(t=!1){if(t)return!0;switch(this.validateOn){case"always":return!0;case"touched":default:return this._touched;case"dirty":return this._dirty;case"submitted":return this._submitted}}syncSelection(){if(this.multi){const t=Array.isArray(this.value)?this.value:this.value?this.value.split(","):[];this.options?.forEach(e=>e.selected=t.includes(e.value)),this.valueLabel=t.length>0&&this.options?.filter(e=>t.includes(e.value)).map(e=>e.label).join(", ")||this.placeholder}else{const t=String(this.value);this.options?.forEach(i=>{i.selected=i.value===t});const e=this.options?.find(i=>i.value===t);this.valueLabel=e?.label||this.placeholder}}setupOptionsAccessibility(){this.options?.forEach((t,e)=>{t.setAttribute("role","option"),t.id||(t.id=`${this.id}-option-${e}`),t.tabIndex=-1;const i=Array.isArray(this.value)?this.value:this.value?this.value.split(","):[];t.setAttribute("aria-selected",String(this.multi?i.includes(t.value):t.value===this.value))})}async positionDropdown(){const t=this.renderRoot.querySelector(".trigger");t&&this.ul&&(this.cleanupPositioner=h.autoUpdate(t,this.ul,async()=>{const e=window.innerHeight,i=t.getBoundingClientRect(),s=e-i.bottom,n=i.top,l=Math.max(.75*Math.max(s,n),150),r=s<200&&n>s;this.ul.style.maxHeight=`${l}px`;const{x:d,y}=await h.computePosition(t,this.ul,{placement:r?"top-start":"bottom-start",middleware:[h.offset(5),h.flip(),h.shift({padding:5})]});Object.assign(this.ul.style,{left:`${d}px`,top:`${y}px`,position:"absolute",width:`${t.offsetWidth}px`})}))}focusOption(t,e){const i=t[e];if(i){i.focus(),this._focusedOptionId=i.id;const s=this.renderRoot.querySelector(".trigger");if(s&&s.setAttribute("aria-activedescendant",i.id),this.ul&&i.offsetTop!==void 0){const n=i.offsetTop,l=i.offsetHeight,r=this.ul.scrollTop,d=this.ul.clientHeight;n<r?this.ul.scrollTop=n:n+l>r+d&&(this.ul.scrollTop=n+l-d)}}}async openDropdown(t=!1){if(this.disabled)return;this.syncSelection(),this.isOpen=!0,await this.updateComplete;const e=Array.from(this.options||[]),i=this.multi?0:e.findIndex(s=>s.value===String(this.value));this.focusOption(e,Math.max(i,0)),t&&this.reportValidity()}closeDropdown(){this._userInteracted&&(this._touched=!0),this.isOpen=!1,this._focusedOptionId="";const t=this.renderRoot.querySelector(".trigger");t&&(t.removeAttribute("aria-activedescendant"),t?.focus()),this._userInteracted&&this.shouldShowValidation()&&this.checkValidity()}handleOptionSelect(t){if(this._userInteracted=!0,this._touched=!0,this._dirty=!0,this.multi){const e=this.options.find(s=>s.value===t);if(!e)return;let i;e.selected=!e.selected,i=Array.isArray(this.value)?[...this.value]:this.value?this.value.split(","):[],e.selected?i.includes(t)||i.push(t):i=i.filter(s=>s!==t),this.value=i,this.valueLabel=i.length>0?this.options.filter(s=>i.includes(s.value)).map(s=>s.label).join(", "):this.placeholder}else this.options.forEach(e=>{e.selected=e.value===t}),this.value=t,this.valueLabel=this.options.find(e=>e.value===t)?.label||this.placeholder,this.closeDropdown();this.setupOptionsAccessibility(),this.dispatchChange(this.value)}dispatchChange(t){this.dispatchEvent(new CustomEvent("change",{detail:{value:t},bubbles:!0,composed:!0})),this.checkValidity()}checkValidity(){if(this.disabled)return!0;const t=this.multi&&Array.isArray(this.value)?this.value.length===0:!this.value,e=!(this.required&&t);if(this.isValid=e,this.isValid?(this.validationMessage="",this.internals?.setValidity({})):(this.validationMessage="Please select an option.",this.internals?.setValidity({valueMissing:!0},"Please select an option.",this.inputRef)),this.inputRef&&this.hasUpdated){const i=!this.isValid&&this.shouldShowValidation();this.inputRef.error=i,this.inputRef.hint=i?this.validationMessage:this.hint}return this.isValid}reportValidity(){const t=this.checkValidity();return this.inputRef&&(this.inputRef.error=!t,this.inputRef.hint=t?this.hint:this.validationMessage,t||this.isOpen||this.openDropdown(!1),t||this.inputRef.reportValidity()),t}setCustomValidity(t){this.validationMessage=t,t?(this.isValid=!1,this.internals?.setValidity({customError:!0},t,this.inputRef)):(this.isValid=!0,this.internals?.setValidity({})),this.inputRef&&this.shouldShowValidation()&&(this.inputRef.error=!this.isValid,this.inputRef.hint=this.isValid?this.hint:this.validationMessage)}reset(){this.value=this.defaultValue,this.valueLabel=this.placeholder,this.isValid=!0,this.validationMessage="",this._touched=!1,this._dirty=!1,this._submitted=!1,this._userInteracted=!1,this.internals?.setValidity({}),this.syncSelection(),this.inputRef&&(this.inputRef.error=!1,this.inputRef.hint=this.hint)}render(){const t=!this.isValid&&this.shouldShowValidation()&&!this.isOpen,e=this.isOpen?c.html`<span class="absolute right-3 top-1/2 transform -translate-y-1/2">▲</span>`:c.html`<span class="absolute right-3 top-1/2 transform -translate-y-1/2">▼</span>`;return c.html`
|
|
12
|
-
<div class="relative ${this.disabled?"opacity-60 cursor-not-allowed":""}">
|
|
13
|
-
<sch-input
|
|
14
|
-
.name=${this.name}
|
|
15
|
-
tabIndex=${this.disabled?"-1":"0"}
|
|
16
|
-
class="trigger"
|
|
17
|
-
role="combobox"
|
|
18
|
-
aria-haspopup="listbox"
|
|
19
|
-
aria-expanded=${this.isOpen}
|
|
20
|
-
aria-controls="options"
|
|
21
|
-
aria-autocomplete="none"
|
|
22
|
-
aria-required=${this.required}
|
|
23
|
-
aria-activedescendant=${this._focusedOptionId||void 0}
|
|
24
|
-
aria-disabled=${this.disabled}
|
|
25
|
-
.label=${this.label}
|
|
26
|
-
.placeholder=${this.placeholder}
|
|
27
|
-
.value=${this.valueLabel}
|
|
28
|
-
.required=${this.required}
|
|
29
|
-
.disabled=${this.disabled}
|
|
30
|
-
.hint=${t?this.validationMessage:this.hint}
|
|
31
|
-
.error=${t}
|
|
32
|
-
.validateOn=${this.validateOn}
|
|
33
|
-
.size=${this.size}
|
|
34
|
-
readonly
|
|
35
|
-
clickable
|
|
36
|
-
@click=${i=>{if(this.disabled)return i.preventDefault(),void i.stopPropagation();this.isOpen?(this._userInteracted=!0,this.closeDropdown()):this.openDropdown(!1)}}
|
|
37
|
-
>
|
|
38
|
-
${e}
|
|
39
|
-
</sch-input>
|
|
40
|
-
|
|
41
|
-
<!-- Overlay for capturing clicks outside when dropdown is open -->
|
|
42
|
-
${this.isOpen?c.html` <div class="fixed inset-0 z-10" @click=${this.closeDropdown} tabindex="-1" aria-hidden="true"></div> `:""}
|
|
43
|
-
|
|
44
|
-
<ul
|
|
45
|
-
id="options"
|
|
46
|
-
role="listbox"
|
|
47
|
-
aria-multiselectable=${this.multi}
|
|
48
|
-
class=${f.classMap({"absolute min-w-full w-full z-20 mt-1 rounded-md shadow-lg":!0,hidden:!this.isOpen})}
|
|
49
|
-
${v.color({bgColor:u.SchmancyTheme.sys.color.surface.low,color:u.SchmancyTheme.sys.color.surface.on})}
|
|
50
|
-
>
|
|
51
|
-
<slot
|
|
52
|
-
@slotchange=${()=>{this.syncSelection(),this.setupOptionsAccessibility()}}
|
|
53
|
-
></slot>
|
|
54
|
-
</ul>
|
|
55
|
-
</div>
|
|
56
|
-
`}},exports.SchmancySelect.formAssociated=!0,o([a.property({type:String})],exports.SchmancySelect.prototype,"name",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"required",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"disabled",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"placeholder",2),o([a.property({type:String,reflect:!0})],exports.SchmancySelect.prototype,"value",2),o([a.property({type:Boolean})],exports.SchmancySelect.prototype,"multi",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"label",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"hint",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"validateOn",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"size",2),o([a.state()],exports.SchmancySelect.prototype,"isOpen",2),o([a.state()],exports.SchmancySelect.prototype,"valueLabel",2),o([a.state()],exports.SchmancySelect.prototype,"isValid",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"validationMessage",2),o([a.state()],exports.SchmancySelect.prototype,"defaultValue",2),o([a.query("ul")],exports.SchmancySelect.prototype,"ul",2),o([a.query("sch-input")],exports.SchmancySelect.prototype,"inputRef",2),o([a.queryAssignedElements({flatten:!0})],exports.SchmancySelect.prototype,"options",2),o([a.state()],exports.SchmancySelect.prototype,"_userInteracted",2),o([a.state()],exports.SchmancySelect.prototype,"_touched",2),o([a.state()],exports.SchmancySelect.prototype,"_dirty",2),o([a.state()],exports.SchmancySelect.prototype,"_submitted",2),o([a.state()],exports.SchmancySelect.prototype,"_focusedOptionId",2),exports.SchmancySelect=o([a.customElement("schmancy-select")],exports.SchmancySelect);
|
|
57
|
-
//# sourceMappingURL=select-B-yc3JB7.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-B-yc3JB7.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 SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { fromEvent, takeUntil } from 'rxjs'\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\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// Form association setup\n\tstatic formAssociated = true\n\tprivate internals?: ElementInternals\n\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) hint = ''\n\t@property({ type: String }) validateOn: 'always' | 'touched' | 'dirty' | 'submitted' = 'touched'\n\t@property({ type: String }) size: 'sm' | 'md' | 'lg' = 'md'\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t// Store the initial/default value for reset behavior\n\t@state() private defaultValue: string | string[] = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\t@query('sch-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\t@state() _userInteracted = false\n\t@state() private _touched = false\n\t@state() private _dirty = false\n\t@state() private _submitted = false\n\n\t// Reference to current focused option (for keyboard navigation)\n\t@state() private _focusedOptionId = ''\n\n\t// Store form event handlers as class properties to properly remove them\n\tprivate formSubmitHandler = () => {\n\t\tthis._submitted = true\n\t\tthis.checkValidity()\n\t}\n\n\tprivate formResetHandler = () => {\n\t\tthis.reset()\n\t}\n\n\tconstructor() {\n\t\tsuper()\n\t\t// Initialize ElementInternals for form association\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch (e) {\n\t\t\tconsole.warn('FormAssociated elements not supported in this browser', e)\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substring(2, 9)}`\n\t\t}\n\n\t\t// Store initial value for reset\n\t\tthis.defaultValue = this.value\n\n\t\t// Add keyboard handling to host element\n\t\tfromEvent<KeyboardEvent>(this, 'keydown').pipe(takeUntil(this.disconnecting)).subscribe(this.handleKeyDown)\n\n\t\t// Listen for option-select events from child options\n\t\tfromEvent<CustomEvent>(this, 'option-select')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\te.stopPropagation() // Prevent event from bubbling further\n\t\t\t\tthis.handleOptionSelect(e.detail.value)\n\t\t\t})\n\n\t\t// Listen for form submission events to mark field as submitted\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.addEventListener('submit', this.formSubmitHandler)\n\n\t\t\t// Listen for form reset\n\t\t\tthis.internals.form.addEventListener('reset', this.formResetHandler)\n\t\t}\n\n\t\t// Initially hide any validation errors until user interacts\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.error = false\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove form event listeners using stored handler references\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.removeEventListener('submit', this.formSubmitHandler)\n\t\t\tthis.internals.form.removeEventListener('reset', this.formResetHandler)\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('value')) {\n\t\t\t// Update form value when component value changes\n\t\t\tconst formValue = Array.isArray(this.value) ? this.value.join(',') : this.value\n\t\t\tthis.internals?.setFormValue(formValue)\n\n\t\t\t// Mark as dirty if value changes from initial value\n\t\t\tif (this.hasUpdated) {\n\t\t\t\tthis._dirty = true\n\t\t\t}\n\n\t\t\t// Update selection state of options\n\t\t\tthis.syncSelection()\n\n\t\t\t// Check validity based on validation strategy\n\t\t\tif (this.hasUpdated) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\t\t}\n\n\t\t// When open state changes, setup or cleanup the dropdown positioner\n\t\tif (changedProps.has('isOpen')) {\n\t\t\tif (this.isOpen) {\n\t\t\t\tthis.positionDropdown()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines if validation errors should be shown based on current state\n\t * and validation strategy\n\t */\n\tprivate shouldShowValidation(forceValidation = false): boolean {\n\t\tif (forceValidation) return true\n\n\t\tswitch (this.validateOn) {\n\t\t\tcase 'always':\n\t\t\t\treturn true\n\t\t\tcase 'touched':\n\t\t\t\treturn this._touched\n\t\t\tcase 'dirty':\n\t\t\t\treturn this._dirty\n\t\t\tcase 'submitted':\n\t\t\t\treturn this._submitted\n\t\t\tdefault:\n\t\t\t\treturn this._touched\n\t\t}\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : this.value ? this.value.split(',') : []\n\t\t\tthis.options?.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t?.filter(o => 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(', ') || this.placeholder\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\t// Single select - update option selected state AND value label\n\t\t\tconst currentValue = String(this.value) // Convert to string for safer comparison\n\t\t\tthis.options?.forEach(o => {\n\t\t\t\t// Set selected property on each option based on matching value\n\t\t\t\to.selected = o.value === currentValue\n\t\t\t})\n\t\t\tconst selectedOption = this.options?.find(o => o.value === currentValue)\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\n\t\t\t// Set tabindex to -1 so they're focusable programmatically but not in the tab order\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : this.value ? this.value.split(',') : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? 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\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\t// Get viewport dimensions\n\t\t\tconst viewportHeight = window.innerHeight\n\t\t\tconst triggerRect = reference.getBoundingClientRect()\n\n\t\t\t// Calculate available space below and above\n\t\t\tconst spaceBelow = viewportHeight - triggerRect.bottom\n\t\t\tconst spaceAbove = triggerRect.top\n\n\t\t\t// Calculate max height - use 75% of the largest available space, but at least 150px\n\t\t\tconst maxHeight = Math.max(Math.max(spaceBelow, spaceAbove) * 0.75, 150)\n\n\t\t\t// Determine if we should flip\n\t\t\tconst shouldFlip = spaceBelow < 200 && spaceAbove > spaceBelow\n\n\t\t\t// Apply max height\n\t\t\tthis.ul.style.maxHeight = `${maxHeight}px`\n\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: shouldFlip ? 'top-start' : '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\twidth: `${reference.offsetWidth}px`, // Match the width of the trigger\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\t// Don't handle keyboard events when disabled\n\t\tif (this.disabled) {\n\t\t\treturn\n\t\t}\n\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(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// Find current focused option\n\t\tconst options = Array.from(this.options || [])\n\t\tconst current = options.findIndex(o => o.id === this._focusedOptionId) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\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(options, Math.min(current + 1, 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(options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Home':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, 0)\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, options.length - 1)\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 (this._focusedOptionId) {\n\t\t\t\t\tconst focusedOption = options.find(opt => opt.id === this._focusedOptionId)\n\t\t\t\t\tif (focusedOption) {\n\t\t\t\t\t\tthis.handleOptionSelect(focusedOption.value)\n\t\t\t\t\t}\n\t\t\t\t}\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: SchmancyOption[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tthis._focusedOptionId = option.id\n\n\t\t\t// Update aria-activedescendant on the combobox\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tif (combobox) {\n\t\t\t\tcombobox.setAttribute('aria-activedescendant', option.id)\n\t\t\t}\n\n\t\t\t// Ensure option is visible in the scrollable area\n\t\t\tif (this.ul && option.offsetTop !== undefined) {\n\t\t\t\t// Get position info\n\t\t\t\tconst optionTop = option.offsetTop\n\t\t\t\tconst optionHeight = option.offsetHeight\n\t\t\t\tconst scrollTop = this.ul.scrollTop\n\t\t\t\tconst ulHeight = this.ul.clientHeight\n\n\t\t\t\t// Scroll into view if needed\n\t\t\t\tif (optionTop < scrollTop) {\n\t\t\t\t\tthis.ul.scrollTop = optionTop\n\t\t\t\t} else if (optionTop + optionHeight > scrollTop + ulHeight) {\n\t\t\t\t\tthis.ul.scrollTop = optionTop + optionHeight - ulHeight\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\t// Don't open if disabled\n\t\tif (this.disabled) {\n\t\t\treturn\n\t\t}\n\n\t\t// Don't mark as touched on opening - we'll do that on closing\n\t\t// so errors only show after interaction is complete\n\n\t\t// Make sure options' selected state is in sync before opening\n\t\tthis.syncSelection()\n\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\t// Focus first or selected option\n\t\tconst options = Array.from(this.options || [])\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.value === String(this.value))\n\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\n\t\t// Don't automatically validate when opening\n\t\t// Only validate if explicitly requested (like from a form submission)\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\t// Only mark as touched if the user actually interacted with the component\n\t\t// and made a selection or explicitly closed it without selecting\n\t\tif (this._userInteracted) {\n\t\t\tthis._touched = true\n\t\t}\n\n\t\tthis.isOpen = false\n\t\tthis._focusedOptionId = ''\n\n\t\t// Update combobox to remove aria-activedescendant\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tif (combobox) {\n\t\t\tcombobox.removeAttribute('aria-activedescendant')\n\t\t\tcombobox?.focus()\n\t\t}\n\n\t\t// Only check validity when closing if the user has actually interacted\n\t\t// with the component and validation should be shown\n\t\tif (this._userInteracted && this.shouldShowValidation()) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tthis._userInteracted = true\n\t\tthis._touched = true\n\t\tthis._dirty = true\n\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\n\t\t\tlet selectedValues: string[]\n\t\t\tif (Array.isArray(this.value)) {\n\t\t\t\tselectedValues = [...this.value]\n\t\t\t} else {\n\t\t\t\tselectedValues = this.value ? this.value.split(',') : []\n\t\t\t}\n\n\t\t\tif (option.selected) {\n\t\t\t\t// Add value if not already present\n\t\t\t\tif (!selectedValues.includes(value)) {\n\t\t\t\t\tselectedValues.push(value)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Remove value\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\t// Update display label\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => 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\t// Single select - explicitly update all options' selection state\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === value\n\t\t\t})\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.closeDropdown()\n\t\t}\n\n\t\t// Update the option's accessibility state\n\t\tthis.setupOptionsAccessibility()\n\n\t\t// Dispatch change event\n\t\tthis.dispatchChange(this.value)\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\t// Dispatch only one change event with the value in detail\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\n\t\t// Then check validity (only show error if validation should be shown)\n\t\tthis.checkValidity()\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\t// Disabled fields are always valid\n\t\tif (this.disabled) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Determine if the select is empty based on whether it's multi-select or single-select\n\t\tconst isEmpty = this.multi ? (Array.isArray(this.value) ? this.value.length === 0 : !this.value) : !this.value\n\n\t\t// Check if the value is valid (not empty when required)\n\t\tconst isValid = !(this.required && isEmpty)\n\n\t\t// Set the validity state\n\t\tthis.isValid = isValid\n\n\t\tif (!this.isValid) {\n\t\t\tthis.validationMessage = 'Please select an option.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)\n\t\t} else {\n\t\t\t// Clear validation message\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t// Update the input component to reflect our validation state\n\t\tif (this.inputRef && this.hasUpdated) {\n\t\t\tconst showError = !this.isValid && this.shouldShowValidation()\n\t\t\tthis.inputRef.error = showError\n\t\t\tthis.inputRef.hint = showError ? this.validationMessage : this.hint\n\t\t}\n\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\t// Force validation display regardless of validation strategy\n\t\tconst valid = this.checkValidity()\n\n\t\t// Force the input to show validation errors\n\t\tif (this.inputRef) {\n\t\t\t// Set the input's error state\n\t\t\tthis.inputRef.error = !valid\n\t\t\tthis.inputRef.hint = !valid ? this.validationMessage : this.hint\n\n\t\t\t// If invalid and not already open, automatically open the dropdown to show options\n\t\t\tif (!valid && !this.isOpen) {\n\t\t\t\t// Open the dropdown but don't mark as user interaction yet\n\t\t\t\t// This helps users immediately see available options when validation fails\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\n\t\t\t// Only call reportValidity on the input if invalid to show the native popup\n\t\t\tif (!valid) {\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t}\n\t\t}\n\n\t\treturn valid\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t\tif (message) {\n\t\t\tthis.isValid = false\n\t\t\tthis.internals?.setValidity({ customError: true }, message, this.inputRef)\n\t\t} else {\n\t\t\tthis.isValid = true\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t// Update input if needed\n\t\tif (this.inputRef && this.shouldShowValidation()) {\n\t\t\tthis.inputRef.error = !this.isValid\n\t\t\tthis.inputRef.hint = !this.isValid ? this.validationMessage : this.hint\n\t\t}\n\t}\n\n\tpublic reset() {\n\t\t// Reset to initial value\n\t\tthis.value = this.defaultValue\n\t\tthis.valueLabel = this.placeholder\n\t\tthis.isValid = true\n\t\tthis.validationMessage = ''\n\t\tthis._touched = false\n\t\tthis._dirty = false\n\t\tthis._submitted = false\n\t\tthis._userInteracted = false\n\t\tthis.internals?.setValidity({})\n\t\tthis.syncSelection() // Update the options to match the reset value\n\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.error = false\n\t\t\tthis.inputRef.hint = this.hint\n\t\t}\n\t}\n\n\trender(): TemplateResult {\n\t\t// Determine if we should show errors based on the validation strategy and interaction\n\t\t// Never show errors on initial render or if the dropdown is open\n\t\tconst showErrors = !this.isValid && this.shouldShowValidation() && !this.isOpen\n\n\t\t// Add caret icon based on open state\n\t\tconst caretIcon = this.isOpen\n\t\t\t? html`<span class=\"absolute right-3 top-1/2 transform -translate-y-1/2\">▲</span>`\n\t\t\t: html`<span class=\"absolute right-3 top-1/2 transform -translate-y-1/2\">▼</span>`\n\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 cursor-not-allowed' : ''}\">\n\t\t\t\t<sch-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=${this.disabled ? '-1' : '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\taria-activedescendant=${this._focusedOptionId || undefined}\n\t\t\t\t\taria-disabled=${this.disabled}\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\t.disabled=${this.disabled}\n\t\t\t\t\t.hint=${showErrors ? this.validationMessage : this.hint}\n\t\t\t\t\t.error=${showErrors}\n\t\t\t\t\t.validateOn=${this.validateOn}\n\t\t\t\t\t.size=${this.size}\n\t\t\t\t\treadonly\n\t\t\t\t\tclickable\n\t\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\t\t// Don't process clicks if disabled\n\t\t\t\t\t\tif (this.disabled) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// On first click, don't count this as user interaction yet\n\t\t\t\t\t\tif (!this.isOpen) {\n\t\t\t\t\t\t\t// Open without triggering validation - we'll validate when they close\n\t\t\t\t\t\t\tthis.openDropdown(false)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Mark as interacted when they close the dropdown\n\t\t\t\t\t\t\tthis._userInteracted = true\n\t\t\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t${caretIcon}\n\t\t\t\t</sch-input>\n\n\t\t\t\t<!-- Overlay for capturing clicks outside when dropdown is open -->\n\t\t\t\t${this.isOpen\n\t\t\t\t\t? html` <div class=\"fixed inset-0 z-10\" @click=${this.closeDropdown} tabindex=\"-1\" aria-hidden=\"true\"></div> `\n\t\t\t\t\t: ''}\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 min-w-full w-full z-20 mt-1 rounded-md shadow-lg': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({\n\t\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.low,\n\t\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\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\n// Don't export 'select' here as it conflicts with the store's select decorator\n// export const select = SchmancySelect\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","constructor","super","this","required","disabled","placeholder","value","multi","label","hint","validateOn","size","isOpen","valueLabel","isValid","validationMessage","defaultValue","_userInteracted","_touched","_dirty","_submitted","_focusedOptionId","formSubmitHandler","checkValidity","formResetHandler","reset","handleKeyDown","e","includes","key","preventDefault","openDropdown","options","Array","from","current","findIndex","o","id","closeDropdown","focusOption","Math","min","length","max","focusedOption","find","opt","handleOptionSelect","internals","attachInternals","form","connectedCallback","random","toString","substring","fromEvent","pipe","takeUntil","disconnecting","subscribe","stopPropagation","detail","addEventListener","inputRef","error","disconnectedCallback","cleanupPositioner","removeEventListener","firstUpdated","syncSelection","setupOptionsAccessibility","changedProps","updated","has","formValue","isArray","join","setFormValue","hasUpdated","positionDropdown","forceValidation","selectedValues","split","forEach","selected","filter","map","currentValue","String","selectedOption","option","index","setAttribute","tabIndex","reference","renderRoot","querySelector","ul","autoUpdate","async","viewportHeight","window","innerHeight","triggerRect","getBoundingClientRect","spaceBelow","bottom","spaceAbove","top","maxHeight","shouldFlip","style","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","position","width","offsetWidth","focus","combobox","offsetTop","optionTop","optionHeight","offsetHeight","scrollTop","ulHeight","clientHeight","report","updateComplete","selectedIndex","reportValidity","removeAttribute","shouldShowValidation","push","v","dispatchChange","dispatchEvent","CustomEvent","bubbles","composed","isEmpty","setValidity","valueMissing","showError","valid","message","customError","showErrors","caretIcon","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","low","on","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-Bspcrc-h.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 SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { fromEvent, takeUntil } from 'rxjs'\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\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// Form association setup\n\tstatic formAssociated = true\n\tprivate internals?: ElementInternals\n\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) hint = ''\n\t@property({ type: String }) validateOn: 'always' | 'touched' | 'dirty' | 'submitted' = 'touched'\n\t@property({ type: String }) size: 'sm' | 'md' | 'lg' = 'md'\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t// Store the initial/default value for reset behavior\n\t@state() private defaultValue: string | string[] = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\t@query('sch-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\t@state() _userInteracted = false\n\t@state() private _touched = false\n\t@state() private _dirty = false\n\t@state() private _submitted = false\n\n\t// Reference to current focused option (for keyboard navigation)\n\t@state() private _focusedOptionId = ''\n\n\t// Store form event handlers as class properties to properly remove them\n\tprivate formSubmitHandler = () => {\n\t\tthis._submitted = true\n\t\tthis.checkValidity()\n\t}\n\n\tprivate formResetHandler = () => {\n\t\tthis.reset()\n\t}\n\n\tconstructor() {\n\t\tsuper()\n\t\t// Initialize ElementInternals for form association\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch (e) {\n\t\t\tconsole.warn('FormAssociated elements not supported in this browser', e)\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substring(2, 9)}`\n\t\t}\n\n\t\t// Store initial value for reset\n\t\tthis.defaultValue = this.value\n\n\t\t// Add keyboard handling to host element\n\t\tfromEvent<KeyboardEvent>(this, 'keydown').pipe(takeUntil(this.disconnecting)).subscribe(this.handleKeyDown)\n\n\t\t// Listen for option-select events from child options\n\t\tfromEvent<CustomEvent>(this, 'option-select')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\te.stopPropagation() // Prevent event from bubbling further\n\t\t\t\tthis.handleOptionSelect(e.detail.value)\n\t\t\t})\n\n\t\t// Listen for form submission events to mark field as submitted\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.addEventListener('submit', this.formSubmitHandler)\n\n\t\t\t// Listen for form reset\n\t\t\tthis.internals.form.addEventListener('reset', this.formResetHandler)\n\t\t}\n\n\t\t// Initially hide any validation errors until user interacts\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.error = false\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.cleanupPositioner?.()\n\n\t\t// Remove form event listeners using stored handler references\n\t\tif (this.internals?.form) {\n\t\t\tthis.internals.form.removeEventListener('submit', this.formSubmitHandler)\n\t\t\tthis.internals.form.removeEventListener('reset', this.formResetHandler)\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('value')) {\n\t\t\t// Update form value when component value changes\n\t\t\tconst formValue = Array.isArray(this.value) ? this.value.join(',') : this.value\n\t\t\tthis.internals?.setFormValue(formValue)\n\n\t\t\t// Mark as dirty if value changes from initial value\n\t\t\tif (this.hasUpdated) {\n\t\t\t\tthis._dirty = true\n\t\t\t}\n\n\t\t\t// Update selection state of options\n\t\t\tthis.syncSelection()\n\n\t\t\t// Check validity based on validation strategy\n\t\t\tif (this.hasUpdated) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\t\t}\n\n\t\t// When open state changes, setup or cleanup the dropdown positioner\n\t\tif (changedProps.has('isOpen')) {\n\t\t\tif (this.isOpen) {\n\t\t\t\tthis.positionDropdown()\n\t\t\t} else {\n\t\t\t\tthis.cleanupPositioner?.()\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines if validation errors should be shown based on current state\n\t * and validation strategy\n\t */\n\tprivate shouldShowValidation(forceValidation = false): boolean {\n\t\tif (forceValidation) return true\n\n\t\tswitch (this.validateOn) {\n\t\t\tcase 'always':\n\t\t\t\treturn true\n\t\t\tcase 'touched':\n\t\t\t\treturn this._touched\n\t\t\tcase 'dirty':\n\t\t\t\treturn this._dirty\n\t\t\tcase 'submitted':\n\t\t\t\treturn this._submitted\n\t\t\tdefault:\n\t\t\t\treturn this._touched\n\t\t}\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : this.value ? this.value.split(',') : []\n\t\t\tthis.options?.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t?.filter(o => 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(', ') || this.placeholder\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\t// Single select - update option selected state AND value label\n\t\t\tconst currentValue = String(this.value) // Convert to string for safer comparison\n\t\t\tthis.options?.forEach(o => {\n\t\t\t\t// Set selected property on each option based on matching value\n\t\t\t\to.selected = o.value === currentValue\n\t\t\t})\n\t\t\tconst selectedOption = this.options?.find(o => o.value === currentValue)\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\n\t\t\t// Set tabindex to -1 so they're focusable programmatically but not in the tab order\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : this.value ? this.value.split(',') : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? 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\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\t// Get viewport dimensions\n\t\t\tconst viewportHeight = window.innerHeight\n\t\t\tconst triggerRect = reference.getBoundingClientRect()\n\n\t\t\t// Calculate available space below and above\n\t\t\tconst spaceBelow = viewportHeight - triggerRect.bottom\n\t\t\tconst spaceAbove = triggerRect.top\n\n\t\t\t// Calculate max height - use 75% of the largest available space, but at least 150px\n\t\t\tconst maxHeight = Math.max(Math.max(spaceBelow, spaceAbove) * 0.75, 150)\n\n\t\t\t// Determine if we should flip\n\t\t\tconst shouldFlip = spaceBelow < 200 && spaceAbove > spaceBelow\n\n\t\t\t// Apply max height\n\t\t\tthis.ul.style.maxHeight = `${maxHeight}px`\n\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\n\t\t\t\tplacement: shouldFlip ? 'top-start' : '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\twidth: `${reference.offsetWidth}px`, // Match the width of the trigger\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\t// Don't handle keyboard events when disabled\n\t\tif (this.disabled) {\n\t\t\treturn\n\t\t}\n\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(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// Find current focused option\n\t\tconst options = Array.from(this.options || [])\n\t\tconst current = options.findIndex(o => o.id === this._focusedOptionId) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\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(options, Math.min(current + 1, 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(options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Home':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, 0)\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, options.length - 1)\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 (this._focusedOptionId) {\n\t\t\t\t\tconst focusedOption = options.find(opt => opt.id === this._focusedOptionId)\n\t\t\t\t\tif (focusedOption) {\n\t\t\t\t\t\tthis.handleOptionSelect(focusedOption.value)\n\t\t\t\t\t}\n\t\t\t\t}\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: SchmancyOption[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tthis._focusedOptionId = option.id\n\n\t\t\t// Update aria-activedescendant on the combobox\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tif (combobox) {\n\t\t\t\tcombobox.setAttribute('aria-activedescendant', option.id)\n\t\t\t}\n\n\t\t\t// Ensure option is visible in the scrollable area\n\t\t\tif (this.ul && option.offsetTop !== undefined) {\n\t\t\t\t// Get position info\n\t\t\t\tconst optionTop = option.offsetTop\n\t\t\t\tconst optionHeight = option.offsetHeight\n\t\t\t\tconst scrollTop = this.ul.scrollTop\n\t\t\t\tconst ulHeight = this.ul.clientHeight\n\n\t\t\t\t// Scroll into view if needed\n\t\t\t\tif (optionTop < scrollTop) {\n\t\t\t\t\tthis.ul.scrollTop = optionTop\n\t\t\t\t} else if (optionTop + optionHeight > scrollTop + ulHeight) {\n\t\t\t\t\tthis.ul.scrollTop = optionTop + optionHeight - ulHeight\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\t// Don't open if disabled\n\t\tif (this.disabled) {\n\t\t\treturn\n\t\t}\n\n\t\t// Don't mark as touched on opening - we'll do that on closing\n\t\t// so errors only show after interaction is complete\n\n\t\t// Make sure options' selected state is in sync before opening\n\t\tthis.syncSelection()\n\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\t// Focus first or selected option\n\t\tconst options = Array.from(this.options || [])\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.value === String(this.value))\n\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\n\t\t// Don't automatically validate when opening\n\t\t// Only validate if explicitly requested (like from a form submission)\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\t// Only mark as touched if the user actually interacted with the component\n\t\t// and made a selection or explicitly closed it without selecting\n\t\tif (this._userInteracted) {\n\t\t\tthis._touched = true\n\t\t}\n\n\t\tthis.isOpen = false\n\t\tthis._focusedOptionId = ''\n\n\t\t// Update combobox to remove aria-activedescendant\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tif (combobox) {\n\t\t\tcombobox.removeAttribute('aria-activedescendant')\n\t\t\tcombobox?.focus()\n\t\t}\n\n\t\t// Only check validity when closing if the user has actually interacted\n\t\t// with the component and validation should be shown\n\t\tif (this._userInteracted && this.shouldShowValidation()) {\n\t\t\tthis.checkValidity()\n\t\t}\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tthis._userInteracted = true\n\t\tthis._touched = true\n\t\tthis._dirty = true\n\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\n\t\t\tlet selectedValues: string[]\n\t\t\tif (Array.isArray(this.value)) {\n\t\t\t\tselectedValues = [...this.value]\n\t\t\t} else {\n\t\t\t\tselectedValues = this.value ? this.value.split(',') : []\n\t\t\t}\n\n\t\t\tif (option.selected) {\n\t\t\t\t// Add value if not already present\n\t\t\t\tif (!selectedValues.includes(value)) {\n\t\t\t\t\tselectedValues.push(value)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Remove value\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\t// Update display label\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => 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\t// Single select - explicitly update all options' selection state\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === value\n\t\t\t})\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.closeDropdown()\n\t\t}\n\n\t\t// Update the option's accessibility state\n\t\tthis.setupOptionsAccessibility()\n\n\t\t// Dispatch change event\n\t\tthis.dispatchChange(this.value)\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\t// Dispatch only one change event with the value in detail\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\n\t\t// Then check validity (only show error if validation should be shown)\n\t\tthis.checkValidity()\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\t// Disabled fields are always valid\n\t\tif (this.disabled) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Determine if the select is empty based on whether it's multi-select or single-select\n\t\tconst isEmpty = this.multi ? (Array.isArray(this.value) ? this.value.length === 0 : !this.value) : !this.value\n\n\t\t// Check if the value is valid (not empty when required)\n\t\tconst isValid = !(this.required && isEmpty)\n\n\t\t// Set the validity state\n\t\tthis.isValid = isValid\n\n\t\tif (!this.isValid) {\n\t\t\tthis.validationMessage = 'Please select an option.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)\n\t\t} else {\n\t\t\t// Clear validation message\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t// Update the input component to reflect our validation state\n\t\tif (this.inputRef && this.hasUpdated) {\n\t\t\tconst showError = !this.isValid && this.shouldShowValidation()\n\t\t\tthis.inputRef.error = showError\n\t\t\tthis.inputRef.hint = showError ? this.validationMessage : this.hint\n\t\t}\n\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\t// Force validation display regardless of validation strategy\n\t\tconst valid = this.checkValidity()\n\n\t\t// Force the input to show validation errors\n\t\tif (this.inputRef) {\n\t\t\t// Set the input's error state\n\t\t\tthis.inputRef.error = !valid\n\t\t\tthis.inputRef.hint = !valid ? this.validationMessage : this.hint\n\n\t\t\t// If invalid and not already open, automatically open the dropdown to show options\n\t\t\tif (!valid && !this.isOpen) {\n\t\t\t\t// Open the dropdown but don't mark as user interaction yet\n\t\t\t\t// This helps users immediately see available options when validation fails\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\n\t\t\t// Only call reportValidity on the input if invalid to show the native popup\n\t\t\tif (!valid) {\n\t\t\t\tthis.inputRef.reportValidity()\n\t\t\t}\n\t\t}\n\n\t\treturn valid\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t\tif (message) {\n\t\t\tthis.isValid = false\n\t\t\tthis.internals?.setValidity({ customError: true }, message, this.inputRef)\n\t\t} else {\n\t\t\tthis.isValid = true\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\t// Update input if needed\n\t\tif (this.inputRef && this.shouldShowValidation()) {\n\t\t\tthis.inputRef.error = !this.isValid\n\t\t\tthis.inputRef.hint = !this.isValid ? this.validationMessage : this.hint\n\t\t}\n\t}\n\n\tpublic reset() {\n\t\t// Reset to initial value\n\t\tthis.value = this.defaultValue\n\t\tthis.valueLabel = this.placeholder\n\t\tthis.isValid = true\n\t\tthis.validationMessage = ''\n\t\tthis._touched = false\n\t\tthis._dirty = false\n\t\tthis._submitted = false\n\t\tthis._userInteracted = false\n\t\tthis.internals?.setValidity({})\n\t\tthis.syncSelection() // Update the options to match the reset value\n\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.error = false\n\t\t\tthis.inputRef.hint = this.hint\n\t\t}\n\t}\n\n\trender(): TemplateResult {\n\t\t// Determine if we should show errors based on the validation strategy and interaction\n\t\t// Never show errors on initial render or if the dropdown is open\n\t\tconst showErrors = !this.isValid && this.shouldShowValidation() && !this.isOpen\n\n\t\t// Add caret icon based on open state\n\t\tconst caretIcon = this.isOpen\n\t\t\t? html`<span class=\"absolute right-3 top-1/2 transform -translate-y-1/2\">▲</span>`\n\t\t\t: html`<span class=\"absolute right-3 top-1/2 transform -translate-y-1/2\">▼</span>`\n\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 cursor-not-allowed' : ''}\">\n\t\t\t\t<sch-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=${this.disabled ? '-1' : '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\taria-activedescendant=${this._focusedOptionId || undefined}\n\t\t\t\t\taria-disabled=${this.disabled}\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\t.disabled=${this.disabled}\n\t\t\t\t\t.hint=${showErrors ? this.validationMessage : this.hint}\n\t\t\t\t\t.error=${showErrors}\n\t\t\t\t\t.validateOn=${this.validateOn}\n\t\t\t\t\t.size=${this.size}\n\t\t\t\t\treadonly\n\t\t\t\t\tclickable\n\t\t\t\t\t@click=${(e: MouseEvent) => {\n\t\t\t\t\t\t// Don't process clicks if disabled\n\t\t\t\t\t\tif (this.disabled) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// On first click, don't count this as user interaction yet\n\t\t\t\t\t\tif (!this.isOpen) {\n\t\t\t\t\t\t\t// Open without triggering validation - we'll validate when they close\n\t\t\t\t\t\t\tthis.openDropdown(false)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Mark as interacted when they close the dropdown\n\t\t\t\t\t\t\tthis._userInteracted = true\n\t\t\t\t\t\t\tthis.closeDropdown()\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t${caretIcon}\n\t\t\t\t</sch-input>\n\n\t\t\t\t<!-- Overlay for capturing clicks outside when dropdown is open -->\n\t\t\t\t${this.isOpen\n\t\t\t\t\t? html` <div class=\"fixed inset-0 z-10\" @click=${this.closeDropdown} tabindex=\"-1\" aria-hidden=\"true\"></div> `\n\t\t\t\t\t: ''}\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 min-w-full w-full z-20 mt-1 rounded-md shadow-lg': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({\n\t\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.low,\n\t\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\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\n// Don't export 'select' here as it conflicts with the store's select decorator\n// export const select = SchmancySelect\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","constructor","super","this","required","disabled","placeholder","value","multi","label","hint","validateOn","size","isOpen","valueLabel","isValid","validationMessage","defaultValue","_userInteracted","_touched","_dirty","_submitted","_focusedOptionId","formSubmitHandler","checkValidity","formResetHandler","reset","handleKeyDown","e","includes","key","preventDefault","openDropdown","options","Array","from","current","findIndex","o","id","closeDropdown","focusOption","Math","min","length","max","focusedOption","find","opt","handleOptionSelect","internals","attachInternals","form","connectedCallback","random","toString","substring","fromEvent","pipe","takeUntil","disconnecting","subscribe","stopPropagation","detail","addEventListener","inputRef","error","disconnectedCallback","cleanupPositioner","removeEventListener","firstUpdated","syncSelection","setupOptionsAccessibility","changedProps","updated","has","formValue","isArray","join","setFormValue","hasUpdated","positionDropdown","forceValidation","selectedValues","split","forEach","selected","filter","map","currentValue","String","selectedOption","option","index","setAttribute","tabIndex","reference","renderRoot","querySelector","ul","autoUpdate","async","viewportHeight","window","innerHeight","triggerRect","getBoundingClientRect","spaceBelow","bottom","spaceAbove","top","maxHeight","shouldFlip","style","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","position","width","offsetWidth","focus","combobox","offsetTop","optionTop","optionHeight","offsetHeight","scrollTop","ulHeight","clientHeight","report","updateComplete","selectedIndex","reportValidity","removeAttribute","shouldShowValidation","push","v","dispatchChange","dispatchEvent","CustomEvent","bubbles","composed","isEmpty","setValidity","valueMissing","showError","valid","message","customError","render","showErrors","caretIcon","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","low","on","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const a=require("lit"),s=require("rxjs"),l=require("lit/directives/class-map.js"),c=require("lit/directives/style-map.js"),i=e=>class extends e{constructor(){super(...arguments),this.disconnecting=new s.Subject}classMap(r){const t={};return Object.keys(r).forEach(o=>{o.trim().split(" ").filter(Boolean).forEach(n=>{t[n]=r[o]})}),l.classMap(t)}styleMap(r){return c.styleMap(r)}disconnectedCallback(){this.disconnecting.next(!0),this.disconnecting.complete(),super.disconnectedCallback()}},d=a.unsafeCSS('/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme;@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-2{inset:.5rem}.inset-4{inset:1rem}.inset-x-6{inset-inline:1.5rem}.-top-1{top:-.25rem}.top-0{top:0}.top-1\\/2{top:50%}.top-2{top:.5rem}.top-3{top:.75rem}.top-8{top:2rem}.-right-1{right:-.25rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-49{z-index:49}.z-50{z-index:50}.z-\\[100\\]{z-index:100}.z-\\[1000\\]{z-index:1000}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-2{margin-inline:-.5rem}.mx-auto{margin-inline:auto}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-4{margin-block:1rem}.my-6{margin-block:1.5rem}.-mt-12{margin-top:-3rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.-mr-1{margin-right:-.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-12{margin-bottom:3rem}.mb-\\[4px\\]{margin-bottom:4px}.-ml-px{margin-left:-1px}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-10{margin-left:2.5rem}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.table{display:table}.size-3{width:.75rem;height:.75rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-8{width:2rem;height:2rem}.h-0\\.5{height:.125rem}.h-1{height:.25rem}.h-1\\.5{height:.375rem}.h-2{height:.5rem}.h-2\\.5{height:.625rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-24{height:6rem}.h-32{height:8rem}.h-48{height:12rem}.h-64{height:16rem}.h-80{height:20rem}.h-96{height:24rem}.h-\\[18px\\]{height:18px}.h-\\[500px\\]{height:500px}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-5{max-height:1.25rem}.max-h-96{max-height:24rem}.max-h-\\[70vh\\]{max-height:70vh}.max-h-\\[80vh\\]{max-height:80vh}.max-h-\\[90vh\\]{max-height:90vh}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[600px\\]{max-height:600px}.max-h-\\[calc\\(100vh-40px\\)\\]{max-height:calc(100vh - 40px)}.min-h-0{min-height:0}.min-h-\\[32px\\]{min-height:32px}.min-h-\\[40px\\]{min-height:40px}.min-h-\\[44px\\]{min-height:44px}.min-h-\\[48px\\]{min-height:48px}.min-h-\\[100px\\]{min-height:100px}.min-h-\\[150px\\]{min-height:150px}.min-h-\\[200px\\]{min-height:200px}.min-h-\\[300px\\]{min-height:300px}.min-h-\\[400px\\]{min-height:400px}.min-h-screen{min-height:100vh}.w-0\\.5{width:.125rem}.w-1\\.5{width:.375rem}.w-2{width:.5rem}.w-2\\.5{width:.625rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-32{width:8rem}.w-48{width:12rem}.w-64{width:16rem}.w-\\[18px\\]{width:18px}.w-\\[30\\%\\]{width:30%}.w-\\[100vw\\]{width:100vw}.w-\\[var\\(--dialog-width\\)\\]{width:var(--dialog-width)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-5{max-width:1.25rem}.max-w-7xl{max-width:80rem}.max-w-32{max-width:8rem}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[360px\\]{max-width:360px}.max-w-\\[calc\\(100vw-2rem\\)\\]{max-width:calc(100vw - 2rem)}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.min-w-0{min-width:0}.min-w-\\[60px\\]{min-width:60px}.min-w-\\[150px\\]{min-width:150px}.min-w-\\[160px\\]{min-width:160px}.min-w-\\[200px\\]{min-width:200px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/4{--tw-translate-y: -25% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-\\[55\\%\\]{--tw-translate-y: -55% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y: 0rem ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-x-\\[-1\\]{--tw-scale-x:-1;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform-gpu{transform:translateZ(0)var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-spin{animation:1s linear infinite spin}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-x{resize:horizontal}.resize-y{resize:vertical}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.columns-2{columns:2}.columns-3{columns:3}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row{grid-auto-flow:row}.grid-flow-row-dense{grid-auto-flow:dense}.auto-rows-max{grid-auto-rows:max-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\\[250px_1fr\\]{grid-template-columns:250px 1fr}.grid-cols-\\[auto_1fr\\]{grid-template-columns:auto 1fr}.grid-rows-\\[auto_1fr\\]{grid-template-rows:auto 1fr}.grid-rows-\\[auto_1fr_auto\\]{grid-template-rows:auto 1fr auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.content-around{align-content:space-around}.content-between{align-content:space-between}.content-center{align-content:center}.content-end{align-content:flex-end}.content-evenly{align-content:space-evenly}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-baseline{justify-content:baseline}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.justify-items-center{justify-items:center}.justify-items-end{justify-items:end}.justify-items-start{justify-items:start}.justify-items-stretch{justify-items:stretch}.gap-0{gap:0}.gap-0\\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\\[8px\\]{gap:8px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.25rem *var(--tw-space-y-reverse));margin-block-end:calc(.25rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.5rem *var(--tw-space-y-reverse));margin-block-end:calc(.5rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.75rem *var(--tw-space-y-reverse));margin-block-end:calc(.75rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1rem *var(--tw-space-y-reverse));margin-block-end:calc(1rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1.5rem *var(--tw-space-y-reverse));margin-block-end:calc(1.5rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(2rem *var(--tw-space-y-reverse));margin-block-end:calc(2rem *calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(.5rem *var(--tw-space-x-reverse));margin-inline-end:calc(.5rem *calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-outline>:not(:last-child)){border-color:var(--schmancy-sys-color-outline)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.scroll-smooth{scroll-behavior:smooth}.rounded-\\[8px\\]{border-radius:8px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.25rem}.rounded-xl{border-radius:.75rem}.rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-gray-200{border-color:#e5e7eb}.border-gray-300{border-color:#d1d5dc}.border-outline{border-color:var(--schmancy-sys-color-outline)}.border-outline-variant,.border-outline-variant\\/30{border-color:var(--schmancy-sys-color-outlineVariant)}@supports (color:color-mix(in lab,red,red)){.border-outline-variant\\/30{border-color:color-mix(in oklab,var(--schmancy-sys-color-outlineVariant)30%,transparent)}}.border-outline\\/12{border-color:var(--schmancy-sys-color-outline)}@supports (color:color-mix(in lab,red,red)){.border-outline\\/12{border-color:color-mix(in oklab,var(--schmancy-sys-color-outline)12%,transparent)}}.border-outline\\/20{border-color:var(--schmancy-sys-color-outline)}@supports (color:color-mix(in lab,red,red)){.border-outline\\/20{border-color:color-mix(in oklab,var(--schmancy-sys-color-outline)20%,transparent)}}.border-outlineVariant{border-color:var(--schmancy-sys-color-outlineVariant)}.border-primary-container{border-color:var(--schmancy-sys-color-primary-container)}.border-primary-default{border-color:var(--schmancy-sys-color-primary-default)}.border-primary-on{border-color:var(--schmancy-sys-color-primary-on)}.border-primary-onContainer{border-color:var(--schmancy-sys-color-primary-onContainer)}.border-red-500{border-color:#fb2c36}.border-scrim{border-color:var(--schmancy-sys-color-scrim)}.border-secondary-container{border-color:var(--schmancy-sys-color-secondary-container)}.border-success-on{border-color:var(--schmancy-sys-color-success-on)}.border-surface-container{border-color:var(--schmancy-sys-color-surface-container)}.border-surface-default{border-color:var(--schmancy-sys-color-surface-default)}.border-surface-dim{border-color:var(--schmancy-sys-color-surface-dim)}.border-transparent{border-color:#0000}.border-white{border-color:#fff}.bg-\\[color\\]{background-color:color}.bg-black{background-color:#000}.bg-black\\/30{background-color:oklab(0% none none/.3)}.bg-blue-500{background-color:#3280ff;background-color:oklch(62.3% .214 259.815)}.bg-blue-600{background-color:#155dfc}.bg-blue-900{background-color:#1c398e}.bg-error-container{background-color:var(--schmancy-sys-color-error-container)}.bg-error-default,.bg-error-default\\/70{background-color:var(--schmancy-sys-color-error-default)}@supports (color:color-mix(in lab,red,red)){.bg-error-default\\/70{background-color:color-mix(in oklab,var(--schmancy-sys-color-error-default)70%,transparent)}}.bg-gray-50{background-color:#f9fafb}.bg-gray-500{background-color:#6a7282}.bg-gray-600{background-color:#4a5565}.bg-green-500{background-color:#00c65a;background-color:oklch(72.3% .219 149.579)}.bg-green-600{background-color:#00a447;background-color:oklch(62.7% .194 149.214)}.bg-indigo-500{background-color:#6260ff;background-color:oklch(58.5% .233 277.117)}.bg-orange-600{background-color:#ec5600;background-color:oklch(64.6% .222 41.116)}.bg-outline-variant{background-color:var(--schmancy-sys-color-outlineVariant)}.bg-pink-500{background-color:#f6339a}.bg-primary-container,.bg-primary-container\\/20{background-color:var(--schmancy-sys-color-primary-container)}@supports (color:color-mix(in lab,red,red)){.bg-primary-container\\/20{background-color:color-mix(in oklab,var(--schmancy-sys-color-primary-container)20%,transparent)}}.bg-primary-default,.bg-primary-default\\/70{background-color:var(--schmancy-sys-color-primary-default)}@supports (color:color-mix(in lab,red,red)){.bg-primary-default\\/70{background-color:color-mix(in oklab,var(--schmancy-sys-color-primary-default)70%,transparent)}}.bg-primary-on{background-color:var(--schmancy-sys-color-primary-on)}.bg-primary-onContainer{background-color:var(--schmancy-sys-color-primary-onContainer)}.bg-purple-500{background-color:#ab4eff;background-color:oklch(62.7% .265 303.9)}.bg-purple-600{background-color:#9810fa}.bg-red-500{background-color:#fb2c36}.bg-red-600{background-color:#e40014;background-color:oklch(57.7% .245 27.325)}.bg-scrim,.bg-scrim\\/40{background-color:var(--schmancy-sys-color-scrim)}@supports (color:color-mix(in lab,red,red)){.bg-scrim\\/40{background-color:color-mix(in oklab,var(--schmancy-sys-color-scrim)40%,transparent)}}.bg-secondary-container{background-color:var(--schmancy-sys-color-secondary-container)}.bg-secondary-default,.bg-secondary-default\\/70{background-color:var(--schmancy-sys-color-secondary-default)}@supports (color:color-mix(in lab,red,red)){.bg-secondary-default\\/70{background-color:color-mix(in oklab,var(--schmancy-sys-color-secondary-default)70%,transparent)}}.bg-success-default,.bg-success-default\\/70{background-color:var(--schmancy-sys-color-success-default)}@supports (color:color-mix(in lab,red,red)){.bg-success-default\\/70{background-color:color-mix(in oklab,var(--schmancy-sys-color-success-default)70%,transparent)}}.bg-surface-bright{background-color:var(--schmancy-sys-color-surface-bright)}.bg-surface-container,.bg-surface-container\\/10{background-color:var(--schmancy-sys-color-surface-container)}@supports (color:color-mix(in lab,red,red)){.bg-surface-container\\/10{background-color:color-mix(in oklab,var(--schmancy-sys-color-surface-container)10%,transparent)}}.bg-surface-container\\/20{background-color:var(--schmancy-sys-color-surface-container)}@supports (color:color-mix(in lab,red,red)){.bg-surface-container\\/20{background-color:color-mix(in oklab,var(--schmancy-sys-color-surface-container)20%,transparent)}}.bg-surface-default{background-color:var(--schmancy-sys-color-surface-default)}.bg-surface-dim{background-color:var(--schmancy-sys-color-surface-dim)}.bg-surface-high{background-color:var(--schmancy-sys-color-surface-high)}.bg-surface-highest{background-color:var(--schmancy-sys-color-surface-highest)}.bg-surface-low{background-color:var(--schmancy-sys-color-surface-low)}.bg-surface-lowest{background-color:var(--schmancy-sys-color-surface-lowest)}.bg-teal-500{background-color:#00b9a6;background-color:oklch(70.4% .14 182.503)}.bg-tertiary-default,.bg-tertiary-default\\/70{background-color:var(--schmancy-sys-color-tertiary-default)}@supports (color:color-mix(in lab,red,red)){.bg-tertiary-default\\/70{background-color:color-mix(in oklab,var(--schmancy-sys-color-tertiary-default)70%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:#fff}.bg-yellow-500{background-color:#eab300;background-color:oklch(79.5% .184 86.047)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from:oklch(62.3% .214 259.815);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-600{--tw-gradient-from:oklch(51.1% .262 276.966);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary-container{--tw-gradient-from:var(--schmancy-sys-color-primary-container);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-purple-500{--tw-gradient-from:oklch(62.7% .265 303.9);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-surface-on\\/20{--tw-gradient-from:var(--schmancy-sys-color-surface-on)}@supports (color:color-mix(in lab,red,red)){.from-surface-on\\/20{--tw-gradient-from:color-mix(in oklab,var(--schmancy-sys-color-surface-on)20%,transparent)}}.from-surface-on\\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-purple-600{--tw-gradient-via:oklch(55.8% .288 302.321);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-pink-500{--tw-gradient-to:oklch(65.6% .241 354.308);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-pink-600{--tw-gradient-to:oklch(59.2% .249 .584);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-secondary-container{--tw-gradient-to:var(--schmancy-sys-color-secondary-container);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-500{--tw-gradient-to:oklch(70.4% .14 182.503);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\\[16px\\]{padding:16px}.\\!px-2{padding-inline:.5rem!important}.px-1{padding-inline:.25rem}.px-1\\.5{padding-inline:.375rem}.px-2{padding-inline:.5rem}.px-2\\.5{padding-inline:.625rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-6{padding-inline:1.5rem}.px-\\[6px\\]{padding-inline:6px}.px-\\[8px\\]{padding-inline:8px}.px-\\[12px\\]{padding-inline:12px}.\\!py-1{padding-block:.25rem!important}.py-0\\.75{padding-block:.1875rem}.py-1{padding-block:.25rem}.py-1\\.5{padding-block:.375rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.py-6{padding-block:1.5rem}.py-8{padding-block:2rem}.py-\\[6px\\]{padding-block:6px}.py-\\[8px\\]{padding-block:8px}.py-\\[12px\\]{padding-block:12px}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.pt-10{padding-top:2.5rem}.pt-\\[4px\\]{padding-top:4px}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pb-0{padding-bottom:0}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-12{padding-left:3rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--schmancy-font-family),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-2xl{font-size:1.5rem;line-height:var(--tw-leading,calc(2/1.5))}.text-4xl{font-size:2.25rem;line-height:var(--tw-leading,calc(2.5/2.25))}.text-base{font-size:1rem;line-height:var(--tw-leading, 1.5 )}.text-lg{font-size:1.125rem;line-height:var(--tw-leading,calc(1.75/1.125))}.text-sm{font-size:.875rem;line-height:var(--tw-leading,calc(1.25/.875))}.text-xl{font-size:1.25rem;line-height:var(--tw-leading,calc(1.75/1.25))}.text-xs{font-size:.75rem;line-height:var(--tw-leading,calc(1/.75))}.text-\\[24px\\]{font-size:24px}.leading-6{--tw-leading: 1.5rem ;line-height:1.5rem}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:1.25;line-height:1.25}.font-bold{--tw-font-weight:700;font-weight:700}.font-medium{--tw-font-weight:500;font-weight:500}.font-semibold{--tw-font-weight:600;font-weight:600}.tracking-wide{--tw-tracking:.025em;letter-spacing:.025em}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.text-error-container{color:var(--schmancy-sys-color-error-container)}.text-error-default{color:var(--schmancy-sys-color-error-default)}.text-error-on{color:var(--schmancy-sys-color-error-on)}.text-error-onContainer{color:var(--schmancy-sys-color-error-onContainer)}.text-gray-500{color:#6a7282}.text-gray-600{color:#4a5565}.text-outline{color:var(--schmancy-sys-color-outline)}.text-outlineVariant{color:var(--schmancy-sys-color-outlineVariant)}.text-primary-container{color:var(--schmancy-sys-color-primary-container)}.text-primary-default{color:var(--schmancy-sys-color-primary-default)}.text-primary-on{color:var(--schmancy-sys-color-primary-on)}.text-primary-onContainer{color:var(--schmancy-sys-color-primary-onContainer)}.text-red-500{color:#fb2c36}.text-scrim{color:var(--schmancy-sys-color-scrim)}.text-secondary-on{color:var(--schmancy-sys-color-secondary-on)}.text-secondary-onContainer{color:var(--schmancy-sys-color-secondary-onContainer)}.text-success-default{color:var(--schmancy-sys-color-success-default)}.text-success-on{color:var(--schmancy-sys-color-success-on)}.text-surface-bright{color:var(--schmancy-sys-color-surface-bright)}.text-surface-dim{color:var(--schmancy-sys-color-surface-dim)}.text-surface-on{color:var(--schmancy-sys-color-surface-on)}.text-surface-onVariant{color:var(--schmancy-sys-color-surface-onVariant)}.text-tertiary-default{color:var(--schmancy-sys-color-tertiary-default)}.text-tertiary-on{color:var(--schmancy-sys-color-tertiary-on)}.text-white{color:#fff}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.caret-transparent{caret-color:#0000}.opacity-0{opacity:0}.opacity-1{opacity:.01}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-\\[0\\.08\\]{opacity:.08}.opacity-\\[0\\.38\\]{opacity:.38}.shadow-1{--tw-shadow:var(--schmancy-sys-elevation-1);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_20px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:0 0 20px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[inset_0_1px_1px_0_rgba\\(255\\,255\\,255\\,0\\.2\\)\\]{--tw-shadow:inset 0 1px 1px 0 var(--tw-shadow-color,#fff3);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[inset_0_1px_2px_0_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:inset 0 1px 2px 0 var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-error-default{--tw-ring-color:var(--schmancy-sys-color-error-default)}.ring-outline{--tw-ring-color:var(--schmancy-sys-color-outline)}.ring-primary-default{--tw-ring-color:var(--schmancy-sys-color-primary-default)}.ring-secondary-default{--tw-ring-color:var(--schmancy-sys-color-secondary-default)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-secondary-default{outline-color:var(--schmancy-sys-color-secondary-default)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xs{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in{--tw-ease:cubic-bezier(.4,0,1,1);transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{--tw-ease:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{--tw-ease:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\\:scale-125:is(:where(.group):hover *){--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\\:border-primary-default:is(:where(.group):hover *){border-color:var(--schmancy-sys-color-primary-default)}.group-hover\\:bg-primary-container:is(:where(.group):hover *){background-color:var(--schmancy-sys-color-primary-container)}.group-hover\\:bg-primary-default:is(:where(.group):hover *){background-color:var(--schmancy-sys-color-primary-default)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\\:shadow-lg:is(:where(.group):hover *){--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.first\\:mt-0:first-child{margin-top:0}.last\\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media (hover:hover){.hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:scale-\\[1\\.02\\]:hover{scale:1.02}.hover\\:border-outlineVariant:hover{border-color:var(--schmancy-sys-color-outlineVariant)}.hover\\:bg-error-container:hover{background-color:var(--schmancy-sys-color-error-container)}.hover\\:bg-green-700:hover{background-color:#00813a;background-color:oklch(52.7% .154 150.069)}.hover\\:bg-orange-700:hover{background-color:#c43e00;background-color:oklch(55.3% .195 38.402)}.hover\\:bg-primary-default:hover{background-color:var(--schmancy-sys-color-primary-default)}.hover\\:bg-primary-on:hover{background-color:var(--schmancy-sys-color-primary-on)}.hover\\:bg-red-700:hover{background-color:#bf000f;background-color:oklch(50.5% .213 27.518)}.hover\\:bg-secondary-container:hover{background-color:var(--schmancy-sys-color-secondary-container)}.hover\\:bg-success-container:hover{background-color:var(--schmancy-sys-color-success-container)}.hover\\:bg-surface-container:hover{background-color:var(--schmancy-sys-color-surface-container)}.hover\\:bg-surface-high:hover{background-color:var(--schmancy-sys-color-surface-high)}.hover\\:bg-surface-highest:hover{background-color:var(--schmancy-sys-color-surface-highest)}.hover\\:bg-surface-on:hover{background-color:var(--schmancy-sys-color-surface-on)}.hover\\:bg-tertiary-container:hover{background-color:var(--schmancy-sys-color-tertiary-container)}.hover\\:text-error-container:hover{color:var(--schmancy-sys-color-error-container)}.hover\\:text-primary-default:hover{color:var(--schmancy-sys-color-primary-default)}.hover\\:text-surface-on:hover{color:var(--schmancy-sys-color-surface-on)}.hover\\:opacity-\\[0\\.08\\]:hover{opacity:.08}.hover\\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-xs:hover{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:brightness-95:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-error-default:focus{--tw-ring-color:var(--schmancy-sys-color-error-default)}.focus\\:ring-primary-container:focus{--tw-ring-color:var(--schmancy-sys-color-primary-container)}.focus\\:ring-primary-default:focus{--tw-ring-color:var(--schmancy-sys-color-primary-default)}.focus\\:ring-secondary-default:focus{--tw-ring-color:var(--schmancy-sys-color-secondary-default)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\\:outline-1:focus{outline-style:var(--tw-outline-style);outline-width:1px}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus\\:ring-inset:focus{--tw-ring-inset:inset}.focus-visible\\:z-1:focus-visible{z-index:1}.focus-visible\\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-0:focus-visible{outline-offset:0px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-primary-default:focus-visible{outline-color:var(--schmancy-sys-color-primary-default)}.focus-visible\\:outline-solid:focus-visible{--tw-outline-style:solid;outline-style:solid}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\\:bg-surface-high:active{background-color:var(--schmancy-sys-color-surface-high)}.active\\:bg-surface-low:active{background-color:var(--schmancy-sys-color-surface-low)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}@media (min-width:40rem){.sm\\:size-6{width:1.5rem;height:1.5rem}.sm\\:h-6{height:1.5rem}.sm\\:max-h-6{max-height:1.5rem}.sm\\:min-h-\\[48px\\]{min-height:48px}.sm\\:w-6{width:1.5rem}.sm\\:w-auto{width:auto}.sm\\:max-w-6{max-width:1.5rem}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:items-center{align-items:center}.sm\\:justify-between{justify-content:space-between}.sm\\:gap-1\\.5{gap:.375rem}.sm\\:px-3{padding-inline:.75rem}.sm\\:px-\\[12px\\]{padding-inline:12px}.sm\\:py-1\\.5{padding-block:.375rem}.sm\\:py-2{padding-block:.5rem}.sm\\:text-base{font-size:1rem;line-height:var(--tw-leading, 1.5 )}.sm\\:text-sm{font-size:.875rem;line-height:var(--tw-leading,calc(1.25/.875))}.sm\\:text-\\[16px\\]{font-size:16px}.sm\\:text-\\[18px\\]{font-size:18px}}@media (min-width:48rem){.md\\:right-0{right:0}.md\\:left-\\[unset\\]{left:unset}.md\\:col-span-1{grid-column:span 1/span 1}.md\\:col-span-3{grid-column:span 3/span 3}.md\\:block{display:block}.md\\:hidden{display:none}.md\\:min-h-\\[56px\\]{min-height:56px}.md\\:w-64{width:16rem}.md\\:w-\\[70vw\\]{width:70vw}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:justify-between{justify-content:space-between}.md\\:gap-2{gap:.5rem}.md\\:px-4{padding-inline:1rem}.md\\:px-\\[16px\\]{padding-inline:16px}.md\\:py-2{padding-block:.5rem}}@media (min-width:64rem){.lg\\:col-span-2{grid-column:span 2/span 2}.lg\\:w-\\[60vw\\]{width:60vw}.lg\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:80rem){.xl\\:w-1\\/2{width:50%}.xl\\:w-\\[40vw\\]{width:40vw}.xl\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\\:flex-row{flex-direction:row}}}:host,:root{font-family:var(--schmancy-font-family)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}'),p=e=>{const t=class t extends a.LitElement{};t.styles=[a.unsafeCSS(e),d];let r=t;return r};exports.BaseElement=i,exports.TailwindElement=e=>{class r extends i(p(e)){constructor(){super(...arguments),this.disconnectedCallback=()=>{super.disconnectedCallback()}}}return r};
|
|
2
|
-
//# sourceMappingURL=tailwind.mixin-B-VcpMHn.cjs.map
|