@mhmo91/schmancy 0.9.5 → 0.9.6
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/custom-elements.json +493 -718
- package/dist/{animation-CO_Csq84.cjs.map → animation-Bcwh107v.cjs.map} +1 -1
- package/dist/{animation-BK-8BwY8.js.map → animation-CXKSuUoE.js.map} +1 -1
- package/dist/{area-CRoGqD_u.js → area-BARjKpE9.js} +2 -2
- package/dist/{area-CRoGqD_u.js.map → area-BARjKpE9.js.map} +1 -1
- package/dist/{area-JPykB7A9.cjs → area-D9b9dHQr.cjs} +3 -3
- package/dist/{area-JPykB7A9.cjs.map → area-D9b9dHQr.cjs.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{audio-kz8UgPTO.js → audio-C7TzWI8M.js} +1 -1
- package/dist/audio-C7TzWI8M.js.map +1 -0
- package/dist/{audio-DtYYgzYD.cjs → audio-DUVz7Ars.cjs} +1 -1
- package/dist/audio-DUVz7Ars.cjs.map +1 -0
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/autocomplete-AI2CCJmK.cjs +115 -0
- package/dist/autocomplete-AI2CCJmK.cjs.map +1 -0
- package/dist/{autocomplete-BllPQwr8.js → autocomplete-DOimwVMP.js} +48 -22
- package/dist/autocomplete-DOimwVMP.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-DYEAZ8Qj.cjs → boat-Bk4u-LzT.cjs} +2 -2
- package/dist/{boat-DYEAZ8Qj.cjs.map → boat-Bk4u-LzT.cjs.map} +1 -1
- package/dist/{boat-BDTQ-du9.js → boat-DrghVeWK.js} +5 -5
- package/dist/{boat-BDTQ-du9.js.map → boat-DrghVeWK.js.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +34 -0
- package/dist/breadcrumb.cjs.map +1 -0
- package/dist/breadcrumb.js +73 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/{busy-ChDAeaKF.js → busy-BmFfwyz_.js} +7 -6
- package/dist/{busy-ChDAeaKF.js.map → busy-BmFfwyz_.js.map} +1 -1
- package/dist/{busy-Dj7Xn0Z0.cjs → busy-c_q_F8O0.cjs} +8 -8
- package/dist/{busy-Dj7Xn0Z0.cjs.map → busy-c_q_F8O0.cjs.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +4 -4
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +25 -6
- package/dist/button.js.map +1 -1
- package/dist/{card-DZFPRPqs.js → card-BADJHUMA.js} +16 -15
- package/dist/{card-DZFPRPqs.js.map → card-BADJHUMA.js.map} +1 -1
- package/dist/{card-BvPWVEJX.cjs → card-C_E944_Z.cjs} +10 -10
- package/dist/{card-BvPWVEJX.cjs.map → card-C_E944_Z.cjs.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/charts.cjs +3 -3
- package/dist/charts.cjs.map +1 -1
- package/dist/charts.js +2 -2
- package/dist/{checkbox-GSSjqo6w.js → checkbox-D7rvCrGk.js} +28 -9
- package/dist/{checkbox-GSSjqo6w.js.map → checkbox-D7rvCrGk.js.map} +1 -1
- package/dist/{checkbox-BC_37rsG.cjs → checkbox-ZqDoCagB.cjs} +10 -10
- package/dist/{checkbox-BC_37rsG.cjs.map → checkbox-ZqDoCagB.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-B19XS8Xc.cjs → chips-Cux635Qs.cjs} +18 -18
- package/dist/chips-Cux635Qs.cjs.map +1 -0
- package/dist/{chips-B9oAEfE_.js → chips-vdzIsesI.js} +37 -27
- package/dist/chips-vdzIsesI.js.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/{code-highlight-fSLrlgOb.cjs → code-highlight-C9lKek2p.cjs} +11 -11
- package/dist/{code-highlight-fSLrlgOb.cjs.map → code-highlight-C9lKek2p.cjs.map} +1 -1
- package/dist/{code-highlight-DCk5lJY-.js → code-highlight-D6yruol6.js} +6 -5
- package/dist/{code-highlight-DCk5lJY-.js.map → code-highlight-D6yruol6.js.map} +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/components-ByRyEzz5.cjs +73 -0
- package/dist/{components-CyD6a7gQ.cjs.map → components-ByRyEzz5.cjs.map} +1 -1
- package/dist/{components-COsM6sJZ.js → components-DSvPKR9Q.js} +2 -2
- package/dist/{components-COsM6sJZ.js.map → components-DSvPKR9Q.js.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/connectivity.cjs +7 -7
- package/dist/connectivity.cjs.map +1 -1
- package/dist/connectivity.js +5 -4
- package/dist/connectivity.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{cursor-glow-DtSy_PJd.cjs → cursor-glow-82y5h3E4.cjs} +1 -1
- package/dist/{cursor-glow-DtSy_PJd.cjs.map → cursor-glow-82y5h3E4.cjs.map} +1 -1
- package/dist/{cursor-glow-Ah7VXSj7.js → cursor-glow-C2YRrB8Z.js} +1 -1
- package/dist/{cursor-glow-Ah7VXSj7.js.map → cursor-glow-C2YRrB8Z.js.map} +1 -1
- package/dist/{date-range-ZAaQB22I.cjs → date-range-DJsavigf.cjs} +3 -3
- package/dist/date-range-DJsavigf.cjs.map +1 -0
- package/dist/{date-range-inline-Bl8qbiQF.js → date-range-inline-B87TDYI6.js} +1 -1
- package/dist/{date-range-inline-Bl8qbiQF.js.map → date-range-inline-B87TDYI6.js.map} +1 -1
- package/dist/date-range-inline-De-M0VmL.cjs +43 -0
- package/dist/{date-range-inline-m7nLjOMI.cjs.map → date-range-inline-De-M0VmL.cjs.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/{date-range-Sfyco9-n.js → date-range-tEX2Jx2j.js} +4 -4
- package/dist/date-range-tEX2Jx2j.js.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/delay-BvVdfhAR.cjs +9 -0
- package/dist/{delay-7boauN6N.cjs.map → delay-BvVdfhAR.cjs.map} +1 -1
- package/dist/{delay-CgX6m0HN.js → delay-CZw37zps.js} +9 -8
- package/dist/{delay-CgX6m0HN.js.map → delay-CZw37zps.js.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{details-BHnk8l4q.cjs → details-Bhz8_whd.cjs} +9 -9
- package/dist/{details-BHnk8l4q.cjs.map → details-Bhz8_whd.cjs.map} +1 -1
- package/dist/{details-BPkUg8Cq.js → details-D7VTnLOh.js} +16 -15
- package/dist/{details-BPkUg8Cq.js.map → details-D7VTnLOh.js.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-service-NZEvyEK-.js → dialog-service-ClFrOWf4.js} +2 -2
- package/dist/{dialog-service-NZEvyEK-.js.map → dialog-service-ClFrOWf4.js.map} +1 -1
- package/dist/{dialog-service-VnW4gkmE.cjs → dialog-service-DcuAavp2.cjs} +1 -1
- package/dist/{dialog-service-VnW4gkmE.cjs.map → dialog-service-DcuAavp2.cjs.map} +1 -1
- package/dist/dialog.cjs +18 -11
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +66 -43
- package/dist/dialog.js.map +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +5 -5
- package/dist/{divider-_khrhrZo.cjs → divider-S0bHwCCS.cjs} +2 -2
- package/dist/{divider-_khrhrZo.cjs.map → divider-S0bHwCCS.cjs.map} +1 -1
- package/dist/{divider-CW9a7MMj.js → divider-zS232JDr.js} +2 -2
- package/dist/{divider-CW9a7MMj.js.map → divider-zS232JDr.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +4 -4
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js +8 -7
- package/dist/dropdown.js.map +1 -1
- package/dist/{expand-iQ7EOMP7.js → expand-BXt9SqAF.js} +13 -12
- package/dist/{expand-iQ7EOMP7.js.map → expand-BXt9SqAF.js.map} +1 -1
- package/dist/{expand-Cp7-PH8b.cjs → expand-Dr7TFXpl.cjs} +18 -18
- package/dist/{expand-Cp7-PH8b.cjs.map → expand-Dr7TFXpl.cjs.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{extra-IKAiJJhv.cjs → extra-BmZTXAp0.cjs} +3 -3
- package/dist/{extra-IKAiJJhv.cjs.map → extra-BmZTXAp0.cjs.map} +1 -1
- package/dist/{extra-wEpvEFbK.js → extra-COYhsOyZ.js} +2 -2
- package/dist/{extra-wEpvEFbK.js.map → extra-COYhsOyZ.js.map} +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/float-CSRW-Rrd.cjs +1 -0
- package/dist/{float-D5rNC82i.cjs.map → float-CSRW-Rrd.cjs.map} +1 -1
- package/dist/{float-BQ_urmMs.js → float-DCXafWh6.js} +2 -2
- package/dist/{float-BQ_urmMs.js.map → float-DCXafWh6.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{flow-CUj0fDT_.js.map → flow-CqgDEIqK.js.map} +1 -1
- package/dist/{flow-Bbwn6dRN.cjs.map → flow-DSu4PLt1.cjs.map} +1 -1
- package/dist/form-CAY9GSCd.cjs +1 -0
- package/dist/form-CAY9GSCd.cjs.map +1 -0
- package/dist/form-D2cJ58TB.js +68 -0
- package/dist/form-D2cJ58TB.js.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +2 -1
- package/dist/{hashContent-DaeGmY-p.cjs.map → hashContent-kKvXKFa9.cjs.map} +1 -1
- package/dist/{hashContent-DYM21p6t.js.map → hashContent-nD2uWwi2.js.map} +1 -1
- package/dist/{icons-BDqiGXrO.js → icons-BbaI9Zf-.js} +9 -8
- package/dist/icons-BbaI9Zf-.js.map +1 -0
- package/dist/{icons-B57_93VV.cjs → icons-DPUeLS_Y.cjs} +3 -3
- package/dist/icons-DPUeLS_Y.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-WnWPIrBG.js → iframe-CEDOvkql.js} +5 -4
- package/dist/{iframe-WnWPIrBG.js.map → iframe-CEDOvkql.js.map} +1 -1
- package/dist/{iframe-DNHL3GIk.cjs → iframe-Ct50FYXq.cjs} +3 -3
- package/dist/{iframe-DNHL3GIk.cjs.map → iframe-Ct50FYXq.cjs.map} +1 -1
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +65 -59
- package/dist/{input-BiSrTcrR.cjs → input-DMjpf6V8.cjs} +2 -2
- package/dist/{input-BiSrTcrR.cjs.map → input-DMjpf6V8.cjs.map} +1 -1
- package/dist/{input-VaXHFrRn.js → input-Ri72dn5t.js} +1 -1
- package/dist/{input-VaXHFrRn.js.map → input-Ri72dn5t.js.map} +1 -1
- package/dist/{input-chip-Dy-AiP55.cjs → input-chip-BhjGVpc3.cjs} +9 -9
- package/dist/input-chip-BhjGVpc3.cjs.map +1 -0
- package/dist/{input-chip-QejNcRnS.js → input-chip-CI4__N8w.js} +13 -9
- package/dist/input-chip-CI4__N8w.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/{intersection-CZpaIHeT.cjs.map → intersection-D1v1UCVv.cjs.map} +1 -1
- package/dist/{intersection-BPLpqYEd.js.map → intersection-LfEsy29T.js.map} +1 -1
- package/dist/json.cjs +3 -3
- package/dist/json.cjs.map +1 -1
- package/dist/json.js +5 -4
- package/dist/json.js.map +1 -1
- package/dist/kbd.cjs +28 -0
- package/dist/kbd.cjs.map +1 -0
- package/dist/kbd.js +45 -0
- package/dist/kbd.js.map +1 -0
- package/dist/{layout-yxSlLybo.js → layout-BE2ld1IY.js} +1 -1
- package/dist/{layout-yxSlLybo.js.map → layout-BE2ld1IY.js.map} +1 -1
- package/dist/layout-D7xOqMkJ.cjs +17 -0
- package/dist/{layout-DNYG3phx.cjs.map → layout-D7xOqMkJ.cjs.map} +1 -1
- package/dist/{layout-4C-6_cre.cjs → layout-PZCF3kwl.cjs} +1 -1
- package/dist/{layout-4C-6_cre.cjs.map → layout-PZCF3kwl.cjs.map} +1 -1
- package/dist/{layout-CnsXeCAy.js → layout-uAQpJN31.js} +20 -19
- package/dist/{layout-CnsXeCAy.js.map → layout-uAQpJN31.js.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -2
- package/dist/{lightbox-BrI1Z31s.js → lightbox-C0OEHns9.js} +10 -9
- package/dist/{lightbox-BrI1Z31s.js.map → lightbox-C0OEHns9.js.map} +1 -1
- package/dist/{lightbox-CmACf0t5.cjs → lightbox-cXRnvHMN.cjs} +20 -20
- package/dist/{lightbox-CmACf0t5.cjs.map → lightbox-cXRnvHMN.cjs.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-swIL9VDv.cjs → list-CmJ5h35b.cjs} +5 -5
- package/dist/{list-swIL9VDv.cjs.map → list-CmJ5h35b.cjs.map} +1 -1
- package/dist/{list-Cm-jjXxM.js → list-d1mHar5p.js} +14 -13
- package/dist/{list-Cm-jjXxM.js.map → list-d1mHar5p.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-3llHwB-8.cjs → litElement.mixin-Bj2q1yPw.cjs} +1 -1
- package/dist/{litElement.mixin-3llHwB-8.cjs.map → litElement.mixin-Bj2q1yPw.cjs.map} +1 -1
- package/dist/{litElement.mixin-6jJYHCrZ.js → litElement.mixin-CncaUoxz.js} +1 -1
- package/dist/{litElement.mixin-6jJYHCrZ.js.map → litElement.mixin-CncaUoxz.js.map} +1 -1
- package/dist/{magnetic-BZGFxAWG.js → magnetic-Dj52WplI.js} +2 -2
- package/dist/{magnetic-BZGFxAWG.js.map → magnetic-Dj52WplI.js.map} +1 -1
- package/dist/{magnetic-Dux4QwO4.cjs → magnetic-aBBnj_vk.cjs} +1 -1
- package/dist/{magnetic-Dux4QwO4.cjs.map → magnetic-aBBnj_vk.cjs.map} +1 -1
- package/dist/{mailbox-D6LkQcN5.cjs → mailbox-BmChskZc.cjs} +59 -59
- package/dist/{mailbox-D6LkQcN5.cjs.map → mailbox-BmChskZc.cjs.map} +1 -1
- package/dist/{mailbox-BuvsVaAQ.js → mailbox-C4-E93be.js} +13 -12
- package/dist/{mailbox-BuvsVaAQ.js.map → mailbox-C4-E93be.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-CQiKAxC3.js → map-DHyYLhvy.js} +6 -5
- package/dist/{map-CQiKAxC3.js.map → map-DHyYLhvy.js.map} +1 -1
- package/dist/{map-D5NN4VET.cjs → map-DYEvlNl0.cjs} +7 -7
- package/dist/{map-D5NN4VET.cjs.map → map-DYEvlNl0.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{menu-CkgMO9K5.cjs → menu-BlPTI6H9.cjs} +3 -3
- package/dist/{menu-CkgMO9K5.cjs.map → menu-BlPTI6H9.cjs.map} +1 -1
- package/dist/{menu-C1x04YZw.js → menu-DFDBADp4.js} +3 -3
- package/dist/{menu-C1x04YZw.js.map → menu-DFDBADp4.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.cjs.map +1 -1
- package/dist/mixins.js +43 -15
- package/dist/mixins.js.map +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/navigation-rail.cjs +3 -3
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +2 -2
- package/dist/{notification-BnBgxjF-.js → notification-DGpv8g2H.js} +4 -4
- package/dist/{notification-BnBgxjF-.js.map → notification-DGpv8g2H.js.map} +1 -1
- package/dist/notification-DKVWYhqs.cjs +23 -0
- package/dist/{notification-CZFEhWxc.cjs.map → notification-DKVWYhqs.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-DBO8xZwd.js → option-BD2eh458.js} +6 -5
- package/dist/{option-DBO8xZwd.js.map → option-BD2eh458.js.map} +1 -1
- package/dist/{option-BrxCVwSx.cjs → option-LtSDy2xf.cjs} +5 -5
- package/dist/{option-BrxCVwSx.cjs.map → option-LtSDy2xf.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-stack-DQey9Qph.cjs.map → overlay-stack-CEYGD9T1.cjs.map} +1 -1
- package/dist/{overlay-stack-DT1SdaGW.js.map → overlay-stack-Ca4EK2Mu.js.map} +1 -1
- package/dist/page.cjs +2 -2
- package/dist/page.cjs.map +1 -1
- package/dist/page.js +5 -5
- package/dist/{progress-Db2e4_Zd.cjs → progress-B5ChDPbB.cjs} +2 -2
- package/dist/{progress-Db2e4_Zd.cjs.map → progress-B5ChDPbB.cjs.map} +1 -1
- package/dist/{progress-DeiHxXo7.js → progress-CE1Pk2hi.js} +2 -2
- package/dist/{progress-DeiHxXo7.js.map → progress-CE1Pk2hi.js.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{provide-DHnhQtCH.cjs → provide-BZ9lq_Be.cjs} +1 -1
- package/dist/{provide-DHnhQtCH.cjs.map → provide-BZ9lq_Be.cjs.map} +1 -1
- package/dist/{provide-C1aQhxYo.js → provide-jn1Fj1vv.js} +1 -1
- package/dist/{provide-C1aQhxYo.js.map → provide-jn1Fj1vv.js.map} +1 -1
- package/dist/qr-scanner.cjs +2 -2
- package/dist/qr-scanner.cjs.map +1 -1
- package/dist/qr-scanner.js +2 -2
- package/dist/radio-group-Cd9pZ2MR.cjs +40 -0
- package/dist/{radio-group-Cspwd-Vw.cjs.map → radio-group-Cd9pZ2MR.cjs.map} +1 -1
- package/dist/{radio-group-zSO0AkJf.js → radio-group-CyRHgIF3.js} +7 -6
- package/dist/{radio-group-zSO0AkJf.js.map → radio-group-CyRHgIF3.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +4 -4
- package/dist/range.cjs.map +1 -1
- package/dist/range.js +4 -3
- package/dist/range.js.map +1 -1
- package/dist/{reduced-motion-D-L12p7G.js.map → reduced-motion-B83yZbcO.js.map} +1 -1
- package/dist/{reduced-motion-Ds05GPyz.cjs.map → reduced-motion-DR32yKEO.cjs.map} +1 -1
- package/dist/{rxjs-utils-BSjmI9-Q.js.map → rxjs-utils-Bldch1RO.js.map} +1 -1
- package/dist/{rxjs-utils-DCsfzeap.cjs.map → rxjs-utils-hAgKC7vk.cjs.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{scroll-QMCmbbDv.cjs → scroll-C_iNOi7E.cjs} +2 -2
- package/dist/{scroll-QMCmbbDv.cjs.map → scroll-C_iNOi7E.cjs.map} +1 -1
- package/dist/{scroll-cBDzye64.js → scroll-DoliwpRu.js} +7 -6
- package/dist/{scroll-cBDzye64.js.map → scroll-DoliwpRu.js.map} +1 -1
- package/dist/{search-C4dFHYbX.js.map → search-BlGJ6uJv.js.map} +1 -1
- package/dist/{search-Ds8tt7Et.cjs.map → search-C8eAOzBm.cjs.map} +1 -1
- package/dist/{select-Ct37l3lg.cjs → select-CWWuZ2iJ.cjs} +2 -2
- package/dist/{select-Ct37l3lg.cjs.map → select-CWWuZ2iJ.cjs.map} +1 -1
- package/dist/{select-c6HbWvKP.js → select-_vHPXi30.js} +3 -3
- package/dist/{select-c6HbWvKP.js.map → select-_vHPXi30.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-BMXcUiIm.js → sheet-i1KtxGIj.js} +5 -5
- package/dist/{sheet-BMXcUiIm.js.map → sheet-i1KtxGIj.js.map} +1 -1
- package/dist/{sheet-CQec-bCV.cjs → sheet-r0oEYIdi.cjs} +2 -2
- package/dist/{sheet-CQec-bCV.cjs.map → sheet-r0oEYIdi.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-Dumvr1HT.cjs → sheet.service-Cr13Oo6G.cjs} +1 -1
- package/dist/{sheet.service-Dumvr1HT.cjs.map → sheet.service-Cr13Oo6G.cjs.map} +1 -1
- package/dist/{sheet.service-BcPV3Du4.js → sheet.service-DUO5_kmI.js} +3 -3
- package/dist/{sheet.service-BcPV3Du4.js.map → sheet.service-DUO5_kmI.js.map} +1 -1
- package/dist/skeleton.cjs +33 -0
- package/dist/skeleton.cjs.map +1 -0
- package/dist/skeleton.js +58 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/skills/INDEX.md +7 -6
- package/dist/skills/breadcrumb.md +53 -0
- package/dist/skills/kbd.md +40 -0
- package/dist/skills/schmancy/INDEX.md +7 -6
- package/dist/skills/schmancy/breadcrumb.md +53 -0
- package/dist/skills/schmancy/kbd.md +40 -0
- package/dist/skills/schmancy/skeleton.md +40 -0
- package/dist/skills/schmancy/splash-screen.md +60 -0
- package/dist/skills/schmancy/switch.md +58 -0
- package/dist/skills/schmancy/tooltip.md +1 -1
- package/dist/skills/schmancy/visually-hidden.md +41 -0
- package/dist/skills/skeleton.md +40 -0
- package/dist/skills/splash-screen.md +60 -0
- package/dist/skills/switch.md +58 -0
- package/dist/skills/tooltip.md +1 -1
- package/dist/skills/visually-hidden.md +41 -0
- package/dist/slider.cjs +3 -3
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +2 -2
- package/dist/{sound.service-Bu3EQLv2.cjs → sound.service-BjSoGjmT.cjs} +1 -1
- package/dist/{sound.service-Bu3EQLv2.cjs.map → sound.service-BjSoGjmT.cjs.map} +1 -1
- package/dist/{sound.service-m3BrSfuH.js → sound.service-cdkw3Wkv.js} +1 -1
- package/dist/{sound.service-m3BrSfuH.js.map → sound.service-cdkw3Wkv.js.map} +1 -1
- package/dist/splash-screen-CquyPP1C.cjs +41 -0
- package/dist/splash-screen-CquyPP1C.cjs.map +1 -0
- package/dist/splash-screen-CvucPkpD.js +83 -0
- package/dist/splash-screen-CvucPkpD.js.map +1 -0
- package/dist/splash-screen.cjs +1 -0
- package/dist/splash-screen.js +1 -0
- package/dist/src-Bemk2C2P.cjs +269 -0
- package/dist/{src-BtQVyqMy.cjs.map → src-Bemk2C2P.cjs.map} +1 -1
- package/dist/{src-BLngW2bl.js → src-f5a3W9Mj.js} +98 -91
- package/dist/{src-BLngW2bl.js.map → src-f5a3W9Mj.js.map} +1 -1
- package/dist/steps.cjs +10 -10
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +10 -9
- package/dist/steps.js.map +1 -1
- package/dist/{store-DYqDLAvT.js.map → store-Bmj6rvZY.js.map} +1 -1
- package/dist/{store-CorvD3bT.cjs.map → store-CO4nJyGj.cjs.map} +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +1 -1
- package/dist/surface-CDufon40.cjs +7 -0
- package/dist/{surface-BjKZoJxK.cjs.map → surface-CDufon40.cjs.map} +1 -1
- package/dist/surface-CkEYJCae.js +22 -0
- package/dist/{surface-pK8hME5c.js.map → surface-CkEYJCae.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{surface.mixin-C5sDI1-_.cjs → surface.mixin-CSKqQH-0.cjs} +2 -2
- package/dist/{surface.mixin-C5sDI1-_.cjs.map → surface.mixin-CSKqQH-0.cjs.map} +1 -1
- package/dist/{surface.mixin-CBNRpJum.js → surface.mixin-DqMwoddO.js} +1 -1
- package/dist/{surface.mixin-CBNRpJum.js.map → surface.mixin-DqMwoddO.js.map} +1 -1
- package/dist/switch.cjs +69 -0
- package/dist/switch.cjs.map +1 -0
- package/dist/switch.js +132 -0
- package/dist/switch.js.map +1 -0
- package/dist/{table-CiqgZzSd.cjs → table-DWc1mkpj.cjs} +3 -3
- package/dist/{table-CiqgZzSd.cjs.map → table-DWc1mkpj.cjs.map} +1 -1
- package/dist/{table-BXIHX9h4.js → table-P6VGG7NK.js} +4 -4
- package/dist/{table-BXIHX9h4.js.map → table-P6VGG7NK.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-nbV5eblZ.js → tabs-CjGjGrqY.js} +13 -12
- package/dist/{tabs-nbV5eblZ.js.map → tabs-CjGjGrqY.js.map} +1 -1
- package/dist/{tabs-CKa-W4qA.cjs → tabs-DGJEKuhC.cjs} +4 -4
- package/dist/{tabs-CKa-W4qA.cjs.map → tabs-DGJEKuhC.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{tailwind.mixin-BF1Huas7.cjs → tailwind.mixin-Cpa-VnnX.cjs} +2 -2
- package/dist/tailwind.mixin-Cpa-VnnX.cjs.map +1 -0
- package/dist/{tailwind.mixin-BCJOOX1_.js → tailwind.mixin-DufHBjmb.js} +57 -63
- package/dist/tailwind.mixin-DufHBjmb.js.map +1 -0
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-D7q8exMg.js → textarea-DZT_Ofp5.js} +42 -28
- package/dist/textarea-DZT_Ofp5.js.map +1 -0
- package/dist/textarea-jmTOXrzl.cjs +39 -0
- package/dist/textarea-jmTOXrzl.cjs.map +1 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/theme-CCKqaksQ.cjs +181 -0
- package/dist/{theme-Da4SPq9X.cjs.map → theme-CCKqaksQ.cjs.map} +1 -1
- package/dist/{theme-_VPV6Bxh.js → theme-CEc32pAv.js} +13 -12
- package/dist/{theme-_VPV6Bxh.js.map → theme-CEc32pAv.js.map} +1 -1
- package/dist/theme-button-BsJcv-Zv.cjs +8 -0
- package/dist/{theme-button-Ci8VQ7KW.cjs.map → theme-button-BsJcv-Zv.cjs.map} +1 -1
- package/dist/{theme-button--sX8A-m1.js → theme-button-dOiAvdKU.js} +4 -3
- package/dist/{theme-button--sX8A-m1.js.map → theme-button-dOiAvdKU.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.events-Cv7N4Toe.js.map → theme.events-Bw3mYjUA.js.map} +1 -1
- package/dist/{theme.events-DM4H5F2d.cjs.map → theme.events-EznKK2Y0.cjs.map} +1 -1
- package/dist/{theme.interface-Da23QAYb.cjs.map → theme.interface-CM26m9te.cjs.map} +1 -1
- package/dist/{theme.interface-CXloMUCw.js.map → theme.interface-FAUIgbIq.js.map} +1 -1
- package/dist/theme.js +5 -5
- package/dist/{theme.service-C_tjlqgy.cjs → theme.service-ETiKUwVy.cjs} +1 -1
- package/dist/{theme.service-C_tjlqgy.cjs.map → theme.service-ETiKUwVy.cjs.map} +1 -1
- package/dist/{theme.service-D9lEas89.js → theme.service-_qP5WvB9.js} +2 -2
- package/dist/{theme.service-D9lEas89.js.map → theme.service-_qP5WvB9.js.map} +1 -1
- package/dist/tooltip.cjs +1 -6
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js +51 -135
- package/dist/tooltip.js.map +1 -1
- package/dist/tree.cjs +14 -5
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +28 -6
- package/dist/tree.js.map +1 -1
- package/dist/tslib.es6-Bd-92OW3.cjs +1 -0
- package/dist/{tslib.es6-D7BIeDVB.cjs.map → tslib.es6-Bd-92OW3.cjs.map} +1 -1
- package/dist/tslib.es6-CI1onEZb.js +7 -0
- package/dist/{tslib.es6-ErZEp3OO.js.map → tslib.es6-CI1onEZb.js.map} +1 -1
- package/dist/typewriter-ByIL2Mh-.cjs +123 -0
- package/dist/{typewriter-B2TnHPjw.cjs.map → typewriter-ByIL2Mh-.cjs.map} +1 -1
- package/dist/{typewriter-BrZNa8T-.js → typewriter-vOQ3bDLb.js} +8 -7
- package/dist/{typewriter-BrZNa8T-.js.map → typewriter-vOQ3bDLb.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/typography.cjs +4 -4
- package/dist/typography.cjs.map +1 -1
- package/dist/typography.js +10 -9
- package/dist/typography.js.map +1 -1
- package/dist/{utils-CoU7M2YS.js → utils-Cq0m3LYo.js} +3 -3
- package/dist/{utils-CoU7M2YS.js.map → utils-Cq0m3LYo.js.map} +1 -1
- package/dist/{utils-BcaKtQuA.cjs → utils-D2kE-6zc.cjs} +1 -1
- package/dist/{utils-BcaKtQuA.cjs.map → utils-D2kE-6zc.cjs.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +5 -5
- package/dist/visually-hidden.cjs +13 -0
- package/dist/visually-hidden.cjs.map +1 -0
- package/dist/visually-hidden.js +24 -0
- package/dist/visually-hidden.js.map +1 -0
- package/dist/{window-Uii13x_r.cjs → window-BS7ZQjgH.cjs} +2 -2
- package/dist/window-BS7ZQjgH.cjs.map +1 -0
- package/dist/{window-CM1ycigo.js → window-WnAihpsA.js} +7 -7
- package/dist/window-WnAihpsA.js.map +1 -0
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/mixins/formField.mixin.ts +96 -69
- package/mixins/tailwind.css +11 -0
- package/package.json +17 -26
- package/skills/schmancy/INDEX.md +7 -6
- package/skills/schmancy/breadcrumb.md +53 -0
- package/skills/schmancy/kbd.md +40 -0
- package/skills/schmancy/skeleton.md +40 -0
- package/skills/schmancy/splash-screen.md +60 -0
- package/skills/schmancy/switch.md +58 -0
- package/skills/schmancy/tooltip.md +1 -1
- package/skills/schmancy/visually-hidden.md +41 -0
- package/src/audio/emotional-sounds.ts +2 -4
- package/src/autocomplete/autocomplete.ts +52 -2
- package/src/breadcrumb/breadcrumb.ts +109 -0
- package/src/breadcrumb/index.ts +1 -0
- package/src/button/button.ts +40 -0
- package/src/button/icon-button.ts +2 -1
- package/src/checkbox/checkbox.test.ts +113 -0
- package/src/checkbox/checkbox.ts +41 -1
- package/src/chips/filter-chip.ts +15 -0
- package/src/chips/input-chip.ts +7 -0
- package/src/date-range/date-range-helpers.ts +0 -71
- package/src/dialog/dialog-base.mixin.ts +11 -0
- package/src/dialog/dialog.component.ts +28 -8
- package/src/dropdown/dropdown-content.ts +3 -1
- package/src/form/form.test.ts +137 -0
- package/src/form/form.ts +142 -158
- package/src/form/index.ts +2 -2
- package/src/icons/icon.ts +1 -0
- package/src/index.ts +6 -0
- package/src/kbd/index.ts +1 -0
- package/src/kbd/kbd.ts +59 -0
- package/src/skeleton/index.ts +1 -0
- package/src/skeleton/skeleton.ts +78 -0
- package/src/splash-screen/index.ts +1 -0
- package/src/splash-screen/splash-screen.ts +154 -0
- package/src/switch/index.ts +1 -0
- package/src/switch/switch.test.ts +93 -0
- package/src/switch/switch.ts +180 -0
- package/src/test-utils/a11y.ts +35 -0
- package/src/textarea/textarea.ts +32 -2
- package/src/tooltip/index.ts +1 -2
- package/src/tree/tree.ts +27 -2
- package/src/visually-hidden/index.ts +1 -0
- package/src/visually-hidden/visually-hidden.ts +39 -0
- package/src/window/window-position.ts +1 -74
- package/types/mixins/formField.mixin.d.ts +15 -8
- package/types/src/audio/emotional-sounds.d.ts +0 -2
- package/types/src/autocomplete/autocomplete.d.ts +7 -0
- package/types/src/breadcrumb/breadcrumb.d.ts +38 -0
- package/types/src/breadcrumb/index.d.ts +1 -0
- package/types/src/button/button.d.ts +7 -0
- package/types/src/button/icon-button.d.ts +2 -1
- package/types/src/checkbox/checkbox.d.ts +6 -0
- package/types/src/checkbox/checkbox.test.d.ts +1 -0
- package/types/src/chips/filter-chip.d.ts +3 -0
- package/types/src/chips/input-chip.d.ts +1 -0
- package/types/src/date-range/date-range-helpers.d.ts +0 -12
- package/types/src/dialog/dialog.component.d.ts +6 -0
- package/types/src/dropdown/dropdown-content.d.ts +3 -1
- package/types/src/form/form-v2.d.ts +12 -63
- package/types/src/form/form.d.ts +58 -40
- package/types/src/form/form.test.d.ts +4 -0
- package/types/src/form/index.d.ts +1 -1
- package/types/src/icons/icon.d.ts +1 -0
- package/types/src/index.d.ts +6 -0
- package/types/src/kbd/index.d.ts +1 -0
- package/types/src/kbd/kbd.d.ts +25 -0
- package/types/src/skeleton/index.d.ts +1 -0
- package/types/src/skeleton/skeleton.d.ts +27 -0
- package/types/src/splash-screen/index.d.ts +1 -0
- package/types/src/splash-screen/splash-screen.d.ts +60 -0
- package/types/src/switch/index.d.ts +1 -0
- package/types/src/switch/switch.d.ts +54 -0
- package/types/src/switch/switch.test.d.ts +1 -0
- package/types/src/test-utils/a11y.d.ts +11 -0
- package/types/src/textarea/textarea.d.ts +5 -1
- package/types/src/tooltip/index.d.ts +0 -1
- package/types/src/tree/tree.d.ts +5 -0
- package/types/src/visually-hidden/index.d.ts +1 -0
- package/types/src/visually-hidden/visually-hidden.d.ts +21 -0
- package/types/src/window/window-position.d.ts +1 -35
- package/dist/audio-DtYYgzYD.cjs.map +0 -1
- package/dist/audio-kz8UgPTO.js.map +0 -1
- package/dist/autocomplete-5rVhbieU.cjs +0 -111
- package/dist/autocomplete-5rVhbieU.cjs.map +0 -1
- package/dist/autocomplete-BllPQwr8.js.map +0 -1
- package/dist/chips-B19XS8Xc.cjs.map +0 -1
- package/dist/chips-B9oAEfE_.js.map +0 -1
- package/dist/components-CyD6a7gQ.cjs +0 -73
- package/dist/date-range-Sfyco9-n.js.map +0 -1
- package/dist/date-range-ZAaQB22I.cjs.map +0 -1
- package/dist/date-range-inline-m7nLjOMI.cjs +0 -43
- package/dist/delay-7boauN6N.cjs +0 -9
- package/dist/float-D5rNC82i.cjs +0 -1
- package/dist/form-BqN1AGFj.cjs +0 -1
- package/dist/form-BqN1AGFj.cjs.map +0 -1
- package/dist/form-CajC5HnO.js +0 -270
- package/dist/form-CajC5HnO.js.map +0 -1
- package/dist/icons-B57_93VV.cjs.map +0 -1
- package/dist/icons-BDqiGXrO.js.map +0 -1
- package/dist/input-chip-Dy-AiP55.cjs.map +0 -1
- package/dist/input-chip-QejNcRnS.js.map +0 -1
- package/dist/layout-DNYG3phx.cjs +0 -17
- package/dist/notification-CZFEhWxc.cjs +0 -23
- package/dist/radio-group-Cspwd-Vw.cjs +0 -40
- package/dist/src-BtQVyqMy.cjs +0 -269
- package/dist/surface-BjKZoJxK.cjs +0 -7
- package/dist/surface-pK8hME5c.js +0 -21
- package/dist/tailwind.mixin-BCJOOX1_.js.map +0 -1
- package/dist/tailwind.mixin-BF1Huas7.cjs.map +0 -1
- package/dist/textarea-Cp1ZE60O.cjs +0 -35
- package/dist/textarea-Cp1ZE60O.cjs.map +0 -1
- package/dist/textarea-D7q8exMg.js.map +0 -1
- package/dist/theme-Da4SPq9X.cjs +0 -181
- package/dist/theme-button-Ci8VQ7KW.cjs +0 -8
- package/dist/typewriter-B2TnHPjw.cjs +0 -123
- package/dist/window-CM1ycigo.js.map +0 -1
- package/dist/window-Uii13x_r.cjs.map +0 -1
- package/src/form/form-v2.ts +0 -268
- package/src/layout/v2/grid.ts +0 -93
- package/src/notification/outlet.ts +0 -16
- package/src/store/immer-integration.ts +0 -99
- package/src/tooltip/tooltip.ts +0 -216
- /package/dist/{animation-CO_Csq84.cjs → animation-Bcwh107v.cjs} +0 -0
- /package/dist/{animation-BK-8BwY8.js → animation-CXKSuUoE.js} +0 -0
- /package/dist/{tslib.es6-ErZEp3OO.js → decorate-D_utPUsC.js} +0 -0
- /package/dist/{tslib.es6-D7BIeDVB.cjs → decorate-F9CuyeHg.cjs} +0 -0
- /package/dist/{flow-CUj0fDT_.js → flow-CqgDEIqK.js} +0 -0
- /package/dist/{flow-Bbwn6dRN.cjs → flow-DSu4PLt1.cjs} +0 -0
- /package/dist/{hashContent-DaeGmY-p.cjs → hashContent-kKvXKFa9.cjs} +0 -0
- /package/dist/{hashContent-DYM21p6t.js → hashContent-nD2uWwi2.js} +0 -0
- /package/dist/{intersection-CZpaIHeT.cjs → intersection-D1v1UCVv.cjs} +0 -0
- /package/dist/{intersection-BPLpqYEd.js → intersection-LfEsy29T.js} +0 -0
- /package/dist/{overlay-stack-DQey9Qph.cjs → overlay-stack-CEYGD9T1.cjs} +0 -0
- /package/dist/{overlay-stack-DT1SdaGW.js → overlay-stack-Ca4EK2Mu.js} +0 -0
- /package/dist/{reduced-motion-D-L12p7G.js → reduced-motion-B83yZbcO.js} +0 -0
- /package/dist/{reduced-motion-Ds05GPyz.cjs → reduced-motion-DR32yKEO.cjs} +0 -0
- /package/dist/{rxjs-utils-BSjmI9-Q.js → rxjs-utils-Bldch1RO.js} +0 -0
- /package/dist/{rxjs-utils-DCsfzeap.cjs → rxjs-utils-hAgKC7vk.cjs} +0 -0
- /package/dist/{search-C4dFHYbX.js → search-BlGJ6uJv.js} +0 -0
- /package/dist/{search-Ds8tt7Et.cjs → search-C8eAOzBm.cjs} +0 -0
- /package/dist/{store-DYqDLAvT.js → store-Bmj6rvZY.js} +0 -0
- /package/dist/{store-CorvD3bT.cjs → store-CO4nJyGj.cjs} +0 -0
- /package/dist/{theme.events-Cv7N4Toe.js → theme.events-Bw3mYjUA.js} +0 -0
- /package/dist/{theme.events-DM4H5F2d.cjs → theme.events-EznKK2Y0.cjs} +0 -0
- /package/dist/{theme.interface-Da23QAYb.cjs → theme.interface-CM26m9te.cjs} +0 -0
- /package/dist/{theme.interface-CXloMUCw.js → theme.interface-FAUIgbIq.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magnetic-
|
|
1
|
+
{"version":3,"file":"magnetic-aBBnj_vk.cjs","names":[],"sources":["../src/directives/magnetic.ts"],"sourcesContent":["import { directive, type ElementPart, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { animationFrameScheduler, fromEvent, merge, Subject } from 'rxjs'\nimport { auditTime, map, takeUntil } from 'rxjs/operators'\nimport { SPRING_SNAPPY } from '../utils/animation'\nimport { reducedMotion$ } from './reduced-motion'\n\nexport interface MagneticOptions {\n\t/** Max displacement in pixels (default: 4) */\n\tstrength?: number\n\t/** Activation radius in pixels (default: 100) */\n\tradius?: number\n}\n\n/**\n * Magnetic directive — elements lean toward the cursor with spring physics.\n *\n * Uses `style.translate` (CSS individual transform) so it composes\n * with existing transforms on the element.\n *\n * @example\n * ```html\n * <schmancy-button ${magnetic()}>Submit</schmancy-button>\n * <schmancy-icon-button ${magnetic({ strength: 6, radius: 120 })}>add</schmancy-icon-button>\n * ```\n */\nclass MagneticDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate strength = 4\n\tprivate radius = 100\n\tprivate prevKey?: string\n\tprivate cachedRect?: DOMRect\n\n\trender(_options?: MagneticOptions) {\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [MagneticOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('magnetic directive must be used on an element')\n\t\t}\n\n\t\tconst key = JSON.stringify(options ?? {})\n\t\tif (this.element && key === this.prevKey) return undefined\n\t\tthis.prevKey = key\n\n\t\tthis.element = part.element as HTMLElement\n\t\tthis.strength = options?.strength ?? 4\n\t\tthis.radius = options?.radius ?? 100\n\n\t\tthis.element.style.transition = `translate ${SPRING_SNAPPY.duration}ms ${SPRING_SNAPPY.easingFallback}`\n\n\t\tthis.teardown$.next()\n\t\tthis.setupMagnetic()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.setupMagnetic()\n\t}\n\n\tprivate setupMagnetic() {\n\t\tif (reducedMotion$.value) return\n\n\t\tconst target = this.element.parentElement ?? document\n\n\t\tconst enter$ = fromEvent(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tthis.element.style.willChange = 'translate'\n\t\t\t\tthis.cachedRect = this.element.getBoundingClientRect()\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tconst move$ = fromEvent<MouseEvent>(target, 'mousemove').pipe(\n\t\t\tauditTime(0, animationFrameScheduler),\n\t\t\tmap(e => {\n\t\t\t\tconst rect = this.cachedRect ?? this.element.getBoundingClientRect()\n\t\t\t\tconst centerX = rect.left + rect.width / 2\n\t\t\t\tconst centerY = rect.top + rect.height / 2\n\t\t\t\tconst dx = e.clientX - centerX\n\t\t\t\tconst dy = e.clientY - centerY\n\t\t\t\tconst distance = Math.sqrt(dx * dx + dy * dy)\n\n\t\t\t\tif (distance < this.radius && distance > 0) {\n\t\t\t\t\tconst pull = (1 - distance / this.radius) * this.strength\n\t\t\t\t\treturn { x: (dx / distance) * pull, y: (dy / distance) * pull }\n\t\t\t\t}\n\t\t\t\treturn { x: 0, y: 0 }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(target, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tthis.element.style.willChange = ''\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn { x: 0, y: 0 }\n\t\t\t}),\n\t\t)\n\n\t\t// Also tear down if user enables reduced motion\n\t\tconst motionChange$ = reducedMotion$.pipe(\n\t\t\tmap(reduced => {\n\t\t\t\tif (reduced) {\n\t\t\t\t\tthis.element.style.translate = ''\n\t\t\t\t\tthis.element.style.willChange = ''\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$, motionChange$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos) {\n\t\t\t\t\tthis.element.style.translate = `${pos.x}px ${pos.y}px`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tif (this.element) {\n\t\t\tthis.element.style.translate = ''\n\t\t\tthis.element.style.willChange = ''\n\t\t}\n\t}\n}\n\nexport const magnetic = directive(MagneticDirective)\n"],"mappings":"2OA0BA,IAAM,EAAN,cAAgC,EAAA,cAAA,CAAA,YAAA,GAAA,EAAA,CAAA,MAAA,GAAA,EAAA,CAAA,KAAA,UAEF,IAAI,EAAA,QAAA,KAAA,SACd,EAAA,KAAA,OACF,IAIjB,OAAO,EAAA,EAIP,OAAgB,EAAA,CAAoB,GAAA,CACnC,GAAI,EAAK,OAAS,EAAA,SAAS,QAC1B,MAAU,MAAM,gDAAA,CAGjB,IAAM,EAAM,KAAK,UAAU,GAAW,EAAA,CAAA,CAClC,KAAK,SAAW,IAAQ,KAAK,UACjC,KAAK,QAAU,EAEf,KAAK,QAAU,EAAK,QACpB,KAAK,SAAW,GAAS,UAAY,EACrC,KAAK,OAAS,GAAS,QAAU,IAEjC,KAAK,QAAQ,MAAM,WAAa,aAAa,EAAA,EAAc,SAAA,KAAc,EAAA,EAAc,iBAEvF,KAAK,UAAU,MAAA,CACf,KAAK,eAAA,EAKN,aAAA,CACC,KAAK,UAAU,MAAA,CACf,KAAK,eAAA,CAGN,eAAA,CACC,GAAI,EAAA,EAAe,MAAO,OAE1B,IAAM,EAAS,KAAK,QAAQ,eAAiB,UA+C7C,EAAA,EAAA,QAAA,EAAA,EAAA,WA7CyB,KAAK,QAAS,aAAA,CAAc,MAAA,EAAA,EAAA,UAEnD,KAAK,QAAQ,MAAM,WAAa,YAChC,KAAK,WAAa,KAAK,QAAQ,uBAAA,CACxB,MAAA,CAAA,EAER,EAAA,EAAA,WAEmC,EAAQ,YAAA,CAAa,MAAA,EAAA,EAAA,WAC9C,EAAG,EAAA,wBAAA,EAAwB,EAAA,EAAA,KACjC,GAAA,CACH,IAAM,EAAO,KAAK,YAAc,KAAK,QAAQ,uBAAA,CACvC,EAAU,EAAK,KAAO,EAAK,MAAQ,EACnC,EAAU,EAAK,IAAM,EAAK,OAAS,EACnC,EAAK,EAAE,QAAU,EACjB,EAAK,EAAE,QAAU,EACjB,EAAW,KAAK,KAAK,EAAK,EAAK,EAAK,EAAA,CAE1C,GAAI,EAAW,KAAK,QAAU,EAAW,EAAG,CAC3C,IAAM,GAAQ,EAAI,EAAW,KAAK,QAAU,KAAK,SACjD,MAAO,CAAE,EAAI,EAAK,EAAY,EAAM,EAAI,EAAK,EAAY,EAAA,CAE1D,MAAO,CAAE,EAAG,EAAG,EAAG,EAAA,EAAA,CAAA,EAEnB,EAAA,EAAA,WAEwB,EAAQ,aAAA,CAAc,MAAA,EAAA,EAAA,UAE7C,KAAK,QAAQ,MAAM,WAAa,GAChC,KAAK,WAAA,IAAa,GACX,CAAE,EAAG,EAAG,EAAG,EAAA,EAAA,CAAA,CAKE,EAAA,EAAe,MAAA,EAAA,EAAA,KAChC,IACC,IACH,KAAK,QAAQ,MAAM,UAAY,GAC/B,KAAK,QAAQ,MAAM,WAAa,IAE1B,MAAA,CAAA,CAAA,CAKP,MAAA,EAAA,EAAA,WAAe,KAAK,UAAA,CAAA,CACpB,UAAU,GAAA,CACN,IACH,KAAK,QAAQ,MAAM,UAAY,GAAG,EAAI,EAAA,KAAO,EAAI,EAAA,MAAA,CAKrD,cAAA,CACC,KAAK,UAAU,MAAA,CACX,KAAK,UACR,KAAK,QAAQ,MAAM,UAAY,GAC/B,KAAK,QAAQ,MAAM,WAAa,MAKtB,GAAA,EAAA,EAAA,WAAqB,EAAA,CAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-
|
|
1
|
+
require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-Cpa-VnnX.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./litElement.mixin-Bj2q1yPw.cjs`);require(`./mixins.cjs`);const r=require(`./dialog-service-DcuAavp2.cjs`),i=require(`./sheet.service-Cr13Oo6G.cjs`);require(`./dialog.cjs`);const a=require(`./notification-DKVWYhqs.cjs`);let o=require(`rxjs`),s=require(`lit/decorators.js`),c=require(`lit`),l=require(`lit/directives/ref.js`),u=require(`lit/directives/repeat.js`),d=require(`lit/directives/when.js`);var f=class extends n.t(c.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
height: 100%;
|
|
5
5
|
}
|
|
6
|
-
`){constructor(...e){super(...e),this.config={},this.templates=[],this.importSources=[],this.disabled=!1,this.recipientsTitle=`Recipients`,this.recipientsEmptyTitle=`No recipients yet`,this.recipientsEmptyMessage=`Import from sources or upload a CSV`,this.enableCsvImport=!0,this.enableDragDrop=!0,this.recipients=[],this.selectedRecipients=[],this.subject=``,this.body=``,this.templateId=null,this.attachments=[],this.isSending=!1,this.handleEmailsImported=e=>{let{emails:t}=e.detail,n=[...new Set([...this.recipients,...t])],r=t.filter(e=>!this.recipients.includes(e));this.recipients=n,this.selectedRecipients=[...new Set([...this.selectedRecipients,...r])],this.dispatchEvent(new CustomEvent(`emails-imported`,{detail:{emails:r,source:e.detail.source},bubbles:!0,composed:!0}))},this.handleRecipientRemoved=e=>{let{email:t}=e.detail;this.recipients=this.recipients.filter(e=>e!==t),this.selectedRecipients=this.selectedRecipients.filter(e=>e!==t),this.dispatchEvent(new CustomEvent(`recipient-removed`,{detail:{email:t},bubbles:!0,composed:!0}))},this.handleRecipientsCleared=()=>{this.recipients=[],this.selectedRecipients=[],this.dispatchEvent(new CustomEvent(`recipients-cleared`,{bubbles:!0,composed:!0}))},this.handleSelectionChanged=e=>{let{selectedEmails:t}=e.detail;this.selectedRecipients=t,this.dispatchEvent(new CustomEvent(`selection-changed`,{detail:{selectedEmails:t},bubbles:!0,composed:!0}))},this.handleEditorChange=e=>{let{subject:t,body:n,templateId:r,attachments:i}=e.detail;this.subject=t,this.body=n,this.templateId=r,this.attachments=i,this.dispatchEvent(new CustomEvent(`compose-changed`,{detail:{subject:t,body:n,templateId:r,attachments:i},bubbles:!0,composed:!0}))},this.handleSend=async()=>{if(this.selectedRecipients.length!==0)if(this.subject.trim())if(this.body.trim()){this.isSending=!0;try{let e={recipients:this.selectedRecipients,subject:this.subject,body:this.body,attachments:this.attachments,templateId:this.templateId};this.dispatchEvent(new CustomEvent(`send-email`,{detail:{request:e},bubbles:!0,composed:!0}))}catch(e){this.dispatchEvent(new CustomEvent(`send-error`,{detail:{error:e instanceof Error?e.message:`Failed to send email`},bubbles:!0,composed:!0}))}finally{this.isSending=!1}}else this.dispatchEvent(new CustomEvent(`send-error`,{detail:{error:`Please enter a message body`},bubbles:!0,composed:!0}));else this.dispatchEvent(new CustomEvent(`send-error`,{detail:{error:`Please enter a subject`},bubbles:!0,composed:!0}));else this.dispatchEvent(new CustomEvent(`send-error`,{detail:{error:`Please select at least one recipient`},bubbles:!0,composed:!0}))}}connectedCallback(){super.connectedCallback(),this.setSending(this.disabled)}updated(e){super.updated(e),e.has(`disabled`)&&this.setSending(this.disabled)}addRecipients(e){let t=[...new Set([...this.recipients,...e])],n=e.filter(e=>!this.recipients.includes(e));this.recipients=t,this.selectedRecipients=[...new Set([...this.selectedRecipients,...n])]}setSubject(e){this.subject=e}setBody(e){this.body=e}setTemplate(e){this.templateId=e}clearCompose(){this.recipients=[],this.selectedRecipients=[],this.subject=``,this.body=``,this.templateId=null,this.attachments=[]}setSending(e){this.isSending=e}render(){let e=this.selectedRecipients.length>0&&this.subject.trim()&&this.body.trim()&&!this.isSending&&!this.disabled;return
|
|
6
|
+
`){constructor(...e){super(...e),this.config={},this.templates=[],this.importSources=[],this.disabled=!1,this.recipientsTitle=`Recipients`,this.recipientsEmptyTitle=`No recipients yet`,this.recipientsEmptyMessage=`Import from sources or upload a CSV`,this.enableCsvImport=!0,this.enableDragDrop=!0,this.recipients=[],this.selectedRecipients=[],this.subject=``,this.body=``,this.templateId=null,this.attachments=[],this.isSending=!1,this.handleEmailsImported=e=>{let{emails:t}=e.detail,n=[...new Set([...this.recipients,...t])],r=t.filter(e=>!this.recipients.includes(e));this.recipients=n,this.selectedRecipients=[...new Set([...this.selectedRecipients,...r])],this.dispatchEvent(new CustomEvent(`emails-imported`,{detail:{emails:r,source:e.detail.source},bubbles:!0,composed:!0}))},this.handleRecipientRemoved=e=>{let{email:t}=e.detail;this.recipients=this.recipients.filter(e=>e!==t),this.selectedRecipients=this.selectedRecipients.filter(e=>e!==t),this.dispatchEvent(new CustomEvent(`recipient-removed`,{detail:{email:t},bubbles:!0,composed:!0}))},this.handleRecipientsCleared=()=>{this.recipients=[],this.selectedRecipients=[],this.dispatchEvent(new CustomEvent(`recipients-cleared`,{bubbles:!0,composed:!0}))},this.handleSelectionChanged=e=>{let{selectedEmails:t}=e.detail;this.selectedRecipients=t,this.dispatchEvent(new CustomEvent(`selection-changed`,{detail:{selectedEmails:t},bubbles:!0,composed:!0}))},this.handleEditorChange=e=>{let{subject:t,body:n,templateId:r,attachments:i}=e.detail;this.subject=t,this.body=n,this.templateId=r,this.attachments=i,this.dispatchEvent(new CustomEvent(`compose-changed`,{detail:{subject:t,body:n,templateId:r,attachments:i},bubbles:!0,composed:!0}))},this.handleSend=async()=>{if(this.selectedRecipients.length!==0)if(this.subject.trim())if(this.body.trim()){this.isSending=!0;try{let e={recipients:this.selectedRecipients,subject:this.subject,body:this.body,attachments:this.attachments,templateId:this.templateId};this.dispatchEvent(new CustomEvent(`send-email`,{detail:{request:e},bubbles:!0,composed:!0}))}catch(e){this.dispatchEvent(new CustomEvent(`send-error`,{detail:{error:e instanceof Error?e.message:`Failed to send email`},bubbles:!0,composed:!0}))}finally{this.isSending=!1}}else this.dispatchEvent(new CustomEvent(`send-error`,{detail:{error:`Please enter a message body`},bubbles:!0,composed:!0}));else this.dispatchEvent(new CustomEvent(`send-error`,{detail:{error:`Please enter a subject`},bubbles:!0,composed:!0}));else this.dispatchEvent(new CustomEvent(`send-error`,{detail:{error:`Please select at least one recipient`},bubbles:!0,composed:!0}))}}connectedCallback(){super.connectedCallback(),this.setSending(this.disabled)}updated(e){super.updated(e),e.has(`disabled`)&&this.setSending(this.disabled)}addRecipients(e){let t=[...new Set([...this.recipients,...e])],n=e.filter(e=>!this.recipients.includes(e));this.recipients=t,this.selectedRecipients=[...new Set([...this.selectedRecipients,...n])]}setSubject(e){this.subject=e}setBody(e){this.body=e}setTemplate(e){this.templateId=e}clearCompose(){this.recipients=[],this.selectedRecipients=[],this.subject=``,this.body=``,this.templateId=null,this.attachments=[]}setSending(e){this.isSending=e}render(){let e=this.selectedRecipients.length>0&&this.subject.trim()&&this.body.trim()&&!this.isSending&&!this.disabled;return c.html`
|
|
7
7
|
<!-- Main Layout Container -->
|
|
8
8
|
<div class="flex flex-col h-full gap-6 p-6">
|
|
9
9
|
|
|
@@ -50,7 +50,7 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
50
50
|
<schmancy-typography type="body" token="sm" class="font-medium">
|
|
51
51
|
${this.selectedRecipients.length} recipient${this.selectedRecipients.length===1?``:`s`} selected
|
|
52
52
|
</schmancy-typography>
|
|
53
|
-
${(0,
|
|
53
|
+
${(0,d.when)(this.attachments.length>0,()=>c.html`
|
|
54
54
|
<schmancy-typography type="body" token="xs">
|
|
55
55
|
${this.attachments.length} attachment${this.attachments.length===1?``:`s`}
|
|
56
56
|
</schmancy-typography>
|
|
@@ -90,9 +90,9 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
90
90
|
@recipients-cleared=${this.handleRecipientsCleared}
|
|
91
91
|
@selection-changed=${this.handleSelectionChanged}
|
|
92
92
|
></schmancy-email-recipients>
|
|
93
|
-
`}};
|
|
93
|
+
`}};t.t([(0,s.property)({type:Object})],f.prototype,`config`,void 0),t.t([(0,s.property)({type:Array})],f.prototype,`templates`,void 0),t.t([(0,s.property)({type:Array})],f.prototype,`importSources`,void 0),t.t([(0,s.property)({type:Boolean})],f.prototype,`disabled`,void 0),t.t([(0,s.property)({type:String})],f.prototype,`recipientsTitle`,void 0),t.t([(0,s.property)({type:String})],f.prototype,`recipientsEmptyTitle`,void 0),t.t([(0,s.property)({type:String})],f.prototype,`recipientsEmptyMessage`,void 0),t.t([(0,s.property)({type:Boolean})],f.prototype,`enableCsvImport`,void 0),t.t([(0,s.property)({type:Boolean})],f.prototype,`enableDragDrop`,void 0),t.t([(0,s.state)()],f.prototype,`recipients`,void 0),t.t([(0,s.state)()],f.prototype,`selectedRecipients`,void 0),t.t([(0,s.state)()],f.prototype,`subject`,void 0),t.t([(0,s.state)()],f.prototype,`body`,void 0),t.t([(0,s.state)()],f.prototype,`templateId`,void 0),t.t([(0,s.state)()],f.prototype,`attachments`,void 0),t.t([(0,s.state)()],f.prototype,`isSending`,void 0),f=t.t([(0,s.customElement)(`schmancy-mailbox`)],f);var p=class extends e.t(){constructor(...e){super(...e),this.layouts=[{id:`columns-2`,icon:`view_week`,label:`2 Col`},{id:`columns-3`,icon:`view_column`,label:`3 Col`},{id:`sidebar-left`,icon:`view_sidebar`,label:`Left`},{id:`sidebar-right`,icon:`view_sidebar`,label:`Right`,flipped:!0},{id:`image-row`,icon:`collections`,label:`Images`}]}selectLayout(e){this.dispatchEvent(new CustomEvent(`layout-select`,{detail:{layout:e},bubbles:!0,composed:!0}))}render(){return c.html`
|
|
94
94
|
<div class="grid p-3 gap-2">
|
|
95
|
-
${this.layouts.map(e=>
|
|
95
|
+
${this.layouts.map(e=>c.html`
|
|
96
96
|
<schmancy-button
|
|
97
97
|
variant="outlined"
|
|
98
98
|
@click=${()=>this.selectLayout(e.id)}
|
|
@@ -108,11 +108,11 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
108
108
|
</schmancy-button>
|
|
109
109
|
`)}
|
|
110
110
|
</div>
|
|
111
|
-
`}};
|
|
111
|
+
`}};p=t.t([(0,s.customElement)(`schmancy-email-layout-selector`)],p);var m=class extends n.t(c.css`
|
|
112
112
|
:host {
|
|
113
113
|
display: block;
|
|
114
114
|
}
|
|
115
|
-
`){constructor(...e){super(...e),this.templates=[],this.searchQuery=``,this.filteredTemplates=[],this.selectedCategory=`all`,this.handleSearch=e=>{let t=e.target;this.searchQuery=t.value},this.handleCategorySelect=e=>{this.selectedCategory=e,this.updateFilteredTemplates()},this.selectTemplate=e=>{this.dispatchEvent(new CustomEvent(`template-selected`,{detail:e,bubbles:!0,composed:!0})),
|
|
115
|
+
`){constructor(...e){super(...e),this.templates=[],this.searchQuery=``,this.filteredTemplates=[],this.selectedCategory=`all`,this.handleSearch=e=>{let t=e.target;this.searchQuery=t.value},this.handleCategorySelect=e=>{this.selectedCategory=e,this.updateFilteredTemplates()},this.selectTemplate=e=>{this.dispatchEvent(new CustomEvent(`template-selected`,{detail:e,bubbles:!0,composed:!0})),i.n.dismiss()},this.close=()=>{i.n.dismiss()}}connectedCallback(){super.connectedCallback(),this.updateFilteredTemplates()}updated(e){(e.has(`templates`)||e.has(`searchQuery`)||e.has(`selectedCategory`))&&this.updateFilteredTemplates()}get categories(){let e=new Set;return this.templates.forEach(t=>{t.category&&e.add(t.category)}),[`all`,...Array.from(e)]}updateFilteredTemplates(){let e=[...this.templates];if(this.selectedCategory!==`all`&&(e=e.filter(e=>e.category===this.selectedCategory)),this.searchQuery.trim()){let t=this.searchQuery.toLowerCase();e=e.filter(e=>e.name.toLowerCase().includes(t)||e.category?.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t))}this.filteredTemplates=e}render(){return c.html`
|
|
116
116
|
<div class="flex flex-col h-full overflow-hidden">
|
|
117
117
|
<!-- Header -->
|
|
118
118
|
<div class="flex items-center justify-between px-6 py-4 border-b border-outline-variant">
|
|
@@ -136,7 +136,7 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
136
136
|
${this.renderTemplateList()}
|
|
137
137
|
</div>
|
|
138
138
|
</div>
|
|
139
|
-
`}renderTemplateList(){return
|
|
139
|
+
`}renderTemplateList(){return c.html`
|
|
140
140
|
<!-- Search and Filter Bar -->
|
|
141
141
|
<div class="px-6 py-4 border-b border-outline-variant bg-surface-containerLow">
|
|
142
142
|
<div class="flex flex-col gap-4">
|
|
@@ -149,7 +149,7 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
149
149
|
class="w-full"
|
|
150
150
|
>
|
|
151
151
|
<schmancy-icon slot="prefix" size="20px" class="text-surface-onVariant">search</schmancy-icon>
|
|
152
|
-
${(0,
|
|
152
|
+
${(0,d.when)(this.searchQuery,()=>c.html`
|
|
153
153
|
<schmancy-button
|
|
154
154
|
slot="suffix"
|
|
155
155
|
variant="text"
|
|
@@ -162,9 +162,9 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
162
162
|
</schmancy-input>
|
|
163
163
|
|
|
164
164
|
<!-- Category Filter -->
|
|
165
|
-
${(0,
|
|
165
|
+
${(0,d.when)(this.categories.length>1,()=>c.html`
|
|
166
166
|
<div class="flex gap-2 flex-wrap">
|
|
167
|
-
${(0,
|
|
167
|
+
${(0,u.repeat)(this.categories,e=>e,e=>c.html`
|
|
168
168
|
<schmancy-chip
|
|
169
169
|
class="cursor-pointer transition-all hover:shadow-sm ${this.selectedCategory===e?`bg-primary text-primary-on`:`border border-outline`}"
|
|
170
170
|
@click=${()=>this.handleCategorySelect(e)}
|
|
@@ -179,9 +179,9 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
179
179
|
|
|
180
180
|
<!-- Template List with Previews -->
|
|
181
181
|
<div class="flex-1 overflow-y-auto px-6 py-6">
|
|
182
|
-
${(0,
|
|
182
|
+
${(0,d.when)(this.filteredTemplates.length>0,()=>c.html`
|
|
183
183
|
<div class="space-y-6">
|
|
184
|
-
${(0,
|
|
184
|
+
${(0,u.repeat)(this.filteredTemplates,e=>e.id,e=>c.html`
|
|
185
185
|
<schmancy-surface
|
|
186
186
|
type="subtle"
|
|
187
187
|
elevation="1"
|
|
@@ -196,7 +196,7 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
196
196
|
<schmancy-typography type="title" token="md" class="font-semibold leading-tight mb-1">
|
|
197
197
|
${e.name}
|
|
198
198
|
</schmancy-typography>
|
|
199
|
-
${(0,
|
|
199
|
+
${(0,d.when)(e.category,()=>c.html`
|
|
200
200
|
<schmancy-chip class="text-xs border border-outline">
|
|
201
201
|
${e.category}
|
|
202
202
|
</schmancy-chip>
|
|
@@ -224,7 +224,7 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
224
224
|
</schmancy-surface>
|
|
225
225
|
`)}
|
|
226
226
|
</div>
|
|
227
|
-
`,()=>
|
|
227
|
+
`,()=>c.html`
|
|
228
228
|
<div class="flex flex-col items-center justify-center h-96 text-center">
|
|
229
229
|
<div class="mb-6">
|
|
230
230
|
<schmancy-icon size="64px" class="text-surface-onVariant opacity-20">mail_outline</schmancy-icon>
|
|
@@ -235,9 +235,9 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
235
235
|
<schmancy-typography type="body" token="md" class="text-surface-onVariant mb-6 max-w-md">
|
|
236
236
|
${this.searchQuery?`No templates match your search for "${this.searchQuery}"`:this.selectedCategory===`all`?`Start by creating your first email template`:`No templates found in the "${this.selectedCategory}" category`}
|
|
237
237
|
</schmancy-typography>
|
|
238
|
-
${(0,
|
|
238
|
+
${(0,d.when)(this.searchQuery||this.selectedCategory!==`all`,()=>c.html`
|
|
239
239
|
<div class="flex gap-3">
|
|
240
|
-
${(0,
|
|
240
|
+
${(0,d.when)(this.searchQuery,()=>c.html`
|
|
241
241
|
<schmancy-button
|
|
242
242
|
variant="outlined"
|
|
243
243
|
@click=${()=>{this.searchQuery=``}}
|
|
@@ -246,7 +246,7 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
246
246
|
Clear Search
|
|
247
247
|
</schmancy-button>
|
|
248
248
|
`)}
|
|
249
|
-
${(0,
|
|
249
|
+
${(0,d.when)(this.selectedCategory!==`all`,()=>c.html`
|
|
250
250
|
<schmancy-button
|
|
251
251
|
variant="filled"
|
|
252
252
|
@click=${()=>this.handleCategorySelect(`all`)}
|
|
@@ -260,16 +260,16 @@ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BF1Huas7.cjs`)
|
|
|
260
260
|
</div>
|
|
261
261
|
`)}
|
|
262
262
|
</div>
|
|
263
|
-
`}};
|
|
263
|
+
`}};t.t([(0,s.property)({type:Array})],m.prototype,`templates`,void 0),t.t([(0,s.state)()],m.prototype,`searchQuery`,void 0),t.t([(0,s.state)()],m.prototype,`filteredTemplates`,void 0),t.t([(0,s.state)()],m.prototype,`selectedCategory`,void 0),m=t.t([(0,s.customElement)(`schmancy-email-template-picker`)],m);var h=class extends n.t(c.css`
|
|
264
264
|
:host {
|
|
265
265
|
display: block;
|
|
266
266
|
height: 100%;
|
|
267
267
|
}
|
|
268
|
-
`){constructor(...e){super(...e),this.subject=``,this.body=``,this.disabled=!1,this.attachments=[],this.config={},this.templates=this.getDefaultTemplates(),this.dragOver=!1,this.isUploading=!1,this.subjectInputRef=(0,
|
|
268
|
+
`){constructor(...e){super(...e),this.subject=``,this.body=``,this.disabled=!1,this.attachments=[],this.config={},this.templates=this.getDefaultTemplates(),this.dragOver=!1,this.isUploading=!1,this.subjectInputRef=(0,l.createRef)(),this.bodyTextAreaRef=(0,l.createRef)(),this.fileInputRef=(0,l.createRef)(),this.imageInputRef=(0,l.createRef)(),this.handleKeyDown=e=>{if(this.disabled)return;let t=this.bodyTextAreaRef.value?.shadowRoot?.querySelector(`textarea`);e.key===`Tab`&&e.target===t&&(e.preventDefault(),this.insertAtCursor(` `))},this.handlePaste=e=>{let t=this.bodyTextAreaRef.value?.shadowRoot?.querySelector(`textarea`);if(this.disabled||document.activeElement!==t)return;let n=e.clipboardData?.items;if(n)for(let t=0;t<n.length;t++){let r=n[t];if(r.type.indexOf(`image`)!==-1){e.preventDefault();let t=r.getAsFile();t&&this.uploadImage(t);break}}},this.handleSubjectChange=e=>{let t=e.target;this.subject=t.value,this.dispatchChange()},this.handleBodyChange=e=>{this.body=e.detail.value,this.dispatchChange()},this.dispatchChange=()=>{this.dispatchEvent(new CustomEvent(`editor-change`,{detail:{subject:this.subject,body:this.body,attachments:this.attachments},bubbles:!0,composed:!0}))},this.openLayoutDialog=()=>{r.t.component(c.html`
|
|
269
269
|
<schmancy-email-layout-selector
|
|
270
|
-
@layout-select=${e=>{this.applyLayout(e.detail.layout),
|
|
270
|
+
@layout-select=${e=>{this.applyLayout(e.detail.layout),r.t.close()}}
|
|
271
271
|
></schmancy-email-layout-selector>
|
|
272
|
-
`)},this.openTemplatePicker=()=>{let e=new
|
|
272
|
+
`)},this.openTemplatePicker=()=>{let e=new m;e.templates=this.templates,(0,o.fromEvent)(e,`template-selected`).pipe((0,o.takeUntil)(this.disconnecting)).subscribe(this.handleTemplateSelected),i.n.open({component:e})},this.handleTemplateSelected=e=>{let t=e.detail;this.subject=t.subject,this.body=t.body,this.dispatchChange(),a.r.success(`Template "${t.name}" applied successfully`)},this.applyLayout=e=>{let t={"columns-2":`
|
|
273
273
|
:::layout columns-2
|
|
274
274
|
<div class="column">
|
|
275
275
|
{height=300px}
|
|
@@ -359,7 +359,7 @@ Your primary content goes here. This area takes up most of the width while the s
|
|
|
359
359
|
{height=250px}
|
|
360
360
|
</div>
|
|
361
361
|
:::
|
|
362
|
-
`}[e];t&&this.insertAtCursor(t)},this.uploadImage=async e=>{if(e.type.startsWith(`image/`))if(e.size>10485760)
|
|
362
|
+
`}[e];t&&this.insertAtCursor(t)},this.uploadImage=async e=>{if(e.type.startsWith(`image/`))if(e.size>10485760)a.r.error(`Image "${e.name}" is too large. Maximum size is 10MB.`);else{this.isUploading=!0;try{let t;this.config.imageUploadHandler?t=await this.config.imageUploadHandler(e):this.config.uploadHandler?t=await this.config.uploadHandler(e):(t=await this.createDataUrl(e),a.r.warning(`No upload handler configured. Using local preview.`));let n=await this.getImageDimensions(e);this.insertImageMarkdown(t,e.name,n.width,n.height),a.r.success(`Image uploaded successfully`)}catch{a.r.error(`Failed to upload image`)}finally{this.isUploading=!1}}else a.r.error(`File "${e.name}" is not an image`)},this.createDataUrl=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)}),this.getImageDimensions=e=>new Promise(t=>{let n=new Image;n.onload=()=>{t({width:n.width,height:n.height}),URL.revokeObjectURL(n.src)},n.onerror=()=>{t({width:400,height:300}),URL.revokeObjectURL(n.src)},n.src=URL.createObjectURL(e)}),this.insertImageMarkdown=(e,t,n,r)=>{let i=this.bodyTextAreaRef.value?.shadowRoot?.querySelector(`textarea`);if(!i)return;let a=`{width=${Math.min(n,600)}px height=auto}`,o=i.selectionStart,s=i.selectionEnd,c=this.body.substring(0,o)+a+this.body.substring(s);this.body=c,this.dispatchChange(),this.updateComplete.then(()=>{let e=this.bodyTextAreaRef.value?.shadowRoot?.querySelector(`textarea`);if(e){let t=o+a.length;e.setSelectionRange(t,t),e.focus()}})},this.handleFileChange=e=>{let t=e.target,n=t.files;if(n)for(let e=0;e<n.length;e++){let t=n[e];t.type.startsWith(`image/`)?this.uploadImage(t):this.addFile(t)}t.value=``},this.handleImageSelect=e=>{let t=e.target,n=t.files?.[0];n&&n.type.startsWith(`image/`)&&this.uploadImage(n),t.value=``},this.handleDrop=e=>{e.preventDefault(),this.dragOver=!1;let t=e.dataTransfer?.files;if(t)for(let e=0;e<t.length;e++){let n=t[e];n.type.startsWith(`image/`)?this.uploadImage(n):this.addFile(n)}},this.handleDragEnter=e=>{e.preventDefault(),this.dragOver=!0},this.handleDocumentDragLeave=e=>{e.preventDefault(),this.dragOver=!1},this.handleDocumentDrop=e=>{e.preventDefault(),this.dragOver=!1},this.handleDragOver=e=>{e.preventDefault()},this.handleDragLeave=e=>{e.preventDefault()},this.addFile=e=>{if(e.size>10485760)return void a.r.error(`File "${e.name}" is too large. Maximum size is 10MB.`);if(this.attachments.some(t=>t.name===e.name&&t.size===e.size))return void a.r.warning(`File "${e.name}" is already attached.`);let t={id:crypto.randomUUID(),file:e,name:e.name,size:e.size,type:e.type||`application/octet-stream`};this.attachments=[...this.attachments,t],this.dispatchChange()},this.removeAttachment=e=>{this.attachments=this.attachments.filter(t=>t.id!==e),this.dispatchChange()}}connectedCallback(){super.connectedCallback(),this.addEventListeners()}disconnectedCallback(){super.disconnectedCallback()}getDefaultTemplates(){return[{id:`welcome`,name:`Welcome Email`,subject:`Welcome to Our Community! 🌟`,description:`A warm welcome message for new users`,category:`onboarding`,body:`# Welcome to Our Community!
|
|
363
363
|
|
|
364
364
|
We're thrilled to have you on board. Thank you for joining us on this journey.
|
|
365
365
|
|
|
@@ -548,7 +548,7 @@ You'll receive a tracking number via email once your order ships (usually within
|
|
|
548
548
|
*Questions about your order? Reply to this email or contact our support team.*
|
|
549
549
|
|
|
550
550
|
Thank you for your business,
|
|
551
|
-
The Fulfillment Team`}]}addEventListeners(){(0,
|
|
551
|
+
The Fulfillment Team`}]}addEventListeners(){(0,o.fromEvent)(this,`keydown`).pipe((0,o.takeUntil)(this.disconnecting)).subscribe(this.handleKeyDown),(0,o.fromEvent)(document,`paste`).pipe((0,o.takeUntil)(this.disconnecting)).subscribe(this.handlePaste),(0,o.fromEvent)(document,`dragenter`).pipe((0,o.takeUntil)(this.disconnecting)).subscribe(this.handleDragEnter),(0,o.fromEvent)(document,`dragleave`).pipe((0,o.takeUntil)(this.disconnecting)).subscribe(this.handleDocumentDragLeave),(0,o.fromEvent)(document,`drop`).pipe((0,o.takeUntil)(this.disconnecting)).subscribe(this.handleDocumentDrop)}insertAtCursor(e,t){if(!this.bodyTextAreaRef.value)return;let n=this.bodyTextAreaRef.value.shadowRoot?.querySelector(`textarea`);if(!n)return;let r=n.selectionStart,i=n.selectionEnd,a=n.value.substring(0,r)+e+n.value.substring(i);this.body=a,this.dispatchChange(),this.updateComplete.then(()=>{let n=this.bodyTextAreaRef.value?.shadowRoot?.querySelector(`textarea`);if(n)if(n.focus(),t){let i=r+e.indexOf(t),a=i+t.length;n.setSelectionRange(i,a)}else n.setSelectionRange(r+e.length,r+e.length)})}wrapSelection(e,t,n){if(!this.bodyTextAreaRef.value)return;let r=this.bodyTextAreaRef.value.shadowRoot?.querySelector(`textarea`);if(!r)return;let i=r.selectionStart,a=r.selectionEnd,o=r.value.substring(i,a),s=e+(o||n)+t,c=r.value.substring(0,i)+s+r.value.substring(a);this.body=c,this.dispatchChange(),this.updateComplete.then(()=>{let t=this.bodyTextAreaRef.value?.shadowRoot?.querySelector(`textarea`);t&&(t.focus(),o?t.setSelectionRange(i+s.length,i+s.length):t.setSelectionRange(i+e.length,i+e.length+n.length))})}render(){return c.html`
|
|
552
552
|
<schmancy-surface
|
|
553
553
|
type="solid"
|
|
554
554
|
rounded="all"
|
|
@@ -567,7 +567,7 @@ The Fulfillment Team`}]}addEventListeners(){(0,a.fromEvent)(this,`keydown`).pipe
|
|
|
567
567
|
Subject *
|
|
568
568
|
</schmancy-typography>
|
|
569
569
|
<schmancy-input
|
|
570
|
-
${(0,
|
|
570
|
+
${(0,l.ref)(this.subjectInputRef)}
|
|
571
571
|
.value=${this.subject}
|
|
572
572
|
@input=${this.handleSubjectChange}
|
|
573
573
|
placeholder="Enter email subject..."
|
|
@@ -653,7 +653,7 @@ The Fulfillment Team`}]}addEventListeners(){(0,a.fromEvent)(this,`keydown`).pipe
|
|
|
653
653
|
?disabled=${this.disabled||this.isUploading}
|
|
654
654
|
@click=${()=>this.imageInputRef.value?.click()}
|
|
655
655
|
>
|
|
656
|
-
${(0,
|
|
656
|
+
${(0,d.when)(this.isUploading,()=>c.html`<schmancy-progress size="sm" class="w-4 h-4"></schmancy-progress>`,()=>c.html`<schmancy-icon>image</schmancy-icon>`)}
|
|
657
657
|
</schmancy-icon-button>
|
|
658
658
|
<schmancy-icon-button
|
|
659
659
|
size="sm"
|
|
@@ -681,7 +681,7 @@ The Fulfillment Team`}]}addEventListeners(){(0,a.fromEvent)(this,`keydown`).pipe
|
|
|
681
681
|
<!-- Textarea Container - Takes remaining space -->
|
|
682
682
|
<div class="flex-1 px-4 relative min-h-0">
|
|
683
683
|
<schmancy-textarea
|
|
684
|
-
${(0,
|
|
684
|
+
${(0,l.ref)(this.bodyTextAreaRef)}
|
|
685
685
|
.value=${this.body}
|
|
686
686
|
@change=${this.handleBodyChange}
|
|
687
687
|
placeholder="Enter your email message here...
|
|
@@ -698,7 +698,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
698
698
|
></schmancy-textarea>
|
|
699
699
|
|
|
700
700
|
<!-- Upload Progress Overlay -->
|
|
701
|
-
${(0,
|
|
701
|
+
${(0,d.when)(this.isUploading,()=>c.html`
|
|
702
702
|
<div class="absolute top-3 right-3 z-10">
|
|
703
703
|
<schmancy-surface type="subtle" rounded="all" class="p-2">
|
|
704
704
|
<div class="flex items-center gap-2">
|
|
@@ -720,14 +720,14 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
720
720
|
</div>
|
|
721
721
|
|
|
722
722
|
<!-- Attachments Display (if any) -->
|
|
723
|
-
${(0,
|
|
723
|
+
${(0,d.when)(this.attachments.length>0,()=>c.html`
|
|
724
724
|
<div class="space-y-2">
|
|
725
725
|
<schmancy-typography type="label" token="sm" class="flex items-center gap-2">
|
|
726
726
|
<schmancy-icon size="16px">attach_file</schmancy-icon>
|
|
727
727
|
Attachments (${this.attachments.length})
|
|
728
728
|
</schmancy-typography>
|
|
729
729
|
<div class="flex flex-wrap gap-2">
|
|
730
|
-
${(0,
|
|
730
|
+
${(0,u.repeat)(this.attachments,e=>e.id,e=>c.html`
|
|
731
731
|
<schmancy-chip class="text-xs">
|
|
732
732
|
<span class="truncate max-w-32">${e.name}</span>
|
|
733
733
|
<button
|
|
@@ -747,13 +747,13 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
747
747
|
<!-- Hidden File Inputs -->
|
|
748
748
|
<div class="hidden">
|
|
749
749
|
<input
|
|
750
|
-
${(0,
|
|
750
|
+
${(0,l.ref)(this.fileInputRef)}
|
|
751
751
|
type="file"
|
|
752
752
|
multiple
|
|
753
753
|
@change=${this.handleFileChange}
|
|
754
754
|
>
|
|
755
755
|
<input
|
|
756
|
-
${(0,
|
|
756
|
+
${(0,l.ref)(this.imageInputRef)}
|
|
757
757
|
type="file"
|
|
758
758
|
accept="image/*"
|
|
759
759
|
@change=${this.handleImageSelect}
|
|
@@ -763,7 +763,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
763
763
|
</div>
|
|
764
764
|
</schmancy-surface>
|
|
765
765
|
|
|
766
|
-
`}};
|
|
766
|
+
`}};t.t([(0,s.property)({type:String})],h.prototype,`subject`,void 0),t.t([(0,s.property)({type:String})],h.prototype,`body`,void 0),t.t([(0,s.property)({type:Boolean})],h.prototype,`disabled`,void 0),t.t([(0,s.property)({type:Array})],h.prototype,`attachments`,void 0),t.t([(0,s.property)({type:Object})],h.prototype,`config`,void 0),t.t([(0,s.property)({type:Array})],h.prototype,`templates`,void 0),t.t([(0,s.state)()],h.prototype,`dragOver`,void 0),t.t([(0,s.state)()],h.prototype,`isUploading`,void 0),h=t.t([(0,s.customElement)(`schmancy-email-editor`)],h);var g=class extends n.t(c.css`
|
|
767
767
|
:host {
|
|
768
768
|
display: block;
|
|
769
769
|
}
|
|
@@ -773,7 +773,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
773
773
|
|
|
774
774
|
`).trim()).replace(/:::images\s+(row|grid(?:=\d+)?)\n((?:!\[.*?\]\(.*?\)(?:\{.*?\})?\s*\n?)*?):::/g,`[Images]`).replace(/!\[([^\]]*)\]\(([^)]+)\)(?:\{([^}]+)\})?/g,`[Image: $1]`).replace(/\*\*(.*?)\*\*/g,`$1`).replace(/\*(.*?)\*/g,`$1`).replace(/__(.*?)__/g,`$1`).replace(/~~(.*?)~~/g,`$1`).replace(/`(.*?)`/g,`$1`).replace(/^#{1,3} (.*$)/gim,`$1`).replace(/^> (.*$)/gim,`$1`).replace(/^\* (.*$)/gim,`• $1`).replace(/^\d+\. (.*$)/gim,`$1`).replace(/\[([^\]]+)\]\(([^)]+)\)/g,`$1 ($2)`).replace(/^---$/gim,`---`).replace(/\n\n+/g,`
|
|
775
775
|
|
|
776
|
-
`)}formatFileSize(e){if(e===0)return`0 Bytes`;let t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/1024**t).toFixed(2))+` `+[`Bytes`,`KB`,`MB`,`GB`][t]}render(){let e=this.parseExtendedMarkdown(this.body),t=this.convertToPlainText(this.body),n=this.recipients[0]||this.toAddress;return
|
|
776
|
+
`)}formatFileSize(e){if(e===0)return`0 Bytes`;let t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/1024**t).toFixed(2))+` `+[`Bytes`,`KB`,`MB`,`GB`][t]}render(){let e=this.parseExtendedMarkdown(this.body),t=this.convertToPlainText(this.body),n=this.recipients[0]||this.toAddress;return c.html`
|
|
777
777
|
<schmancy-surface type="solid" rounded="all" class="h-full flex flex-col">
|
|
778
778
|
|
|
779
779
|
<!-- Header Section -->
|
|
@@ -856,7 +856,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
856
856
|
</schmancy-typography>
|
|
857
857
|
</div>
|
|
858
858
|
<schmancy-typography type="body" token="sm" class="font-medium flex-1">
|
|
859
|
-
${this.subject||
|
|
859
|
+
${this.subject||c.html`<span class="italic text-surface-onVariant">(No subject)</span>`}
|
|
860
860
|
</schmancy-typography>
|
|
861
861
|
</div>
|
|
862
862
|
</div>
|
|
@@ -864,17 +864,17 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
864
864
|
|
|
865
865
|
<!-- Email Body Content -->
|
|
866
866
|
<div class="flex-1 overflow-y-auto min-h-0">
|
|
867
|
-
${(0,
|
|
868
|
-
${(0,
|
|
867
|
+
${(0,d.when)(this.body,()=>c.html`
|
|
868
|
+
${(0,d.when)(this.viewMode===`html`,()=>c.html`
|
|
869
869
|
<div class="p-6 bg-white" style="color: #333; line-height: 1.6; font-family: system-ui, -apple-system, sans-serif; font-size: 14px;">
|
|
870
870
|
<div .innerHTML=${e}></div>
|
|
871
871
|
</div>
|
|
872
|
-
`,()=>
|
|
872
|
+
`,()=>c.html`
|
|
873
873
|
<div class="p-6 bg-white" style="color: #333; line-height: 1.6; font-family: 'Courier New', monospace; font-size: 13px; white-space: pre-wrap;">
|
|
874
874
|
${t}
|
|
875
875
|
</div>
|
|
876
876
|
`)}
|
|
877
|
-
`,()=>
|
|
877
|
+
`,()=>c.html`
|
|
878
878
|
<!-- Empty State -->
|
|
879
879
|
<div class="flex-1 flex items-center justify-center p-8">
|
|
880
880
|
<div class="text-center space-y-3">
|
|
@@ -891,7 +891,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
891
891
|
</div>
|
|
892
892
|
|
|
893
893
|
<!-- Attachments Section -->
|
|
894
|
-
${(0,
|
|
894
|
+
${(0,d.when)(this.attachments.length>0,()=>c.html`
|
|
895
895
|
<div class="shrink-0 p-4 border-t border-outline-variant bg-surface-containerLowest">
|
|
896
896
|
<div class="space-y-3">
|
|
897
897
|
<!-- Attachments Header -->
|
|
@@ -904,7 +904,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
904
904
|
|
|
905
905
|
<!-- Attachments List -->
|
|
906
906
|
<div class="grid gap-2 sm:grid-cols-2 lg:grid-cols-1 xl:grid-cols-2">
|
|
907
|
-
${(0,
|
|
907
|
+
${(0,u.repeat)(this.attachments,e=>e.id,e=>c.html`
|
|
908
908
|
<schmancy-surface type="subtle" rounded="all" class="p-3">
|
|
909
909
|
<div class="flex items-center gap-3">
|
|
910
910
|
<!-- File Icon -->
|
|
@@ -932,7 +932,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
932
932
|
</div>
|
|
933
933
|
|
|
934
934
|
<!-- Preview Stats -->
|
|
935
|
-
${(0,
|
|
935
|
+
${(0,d.when)(this.body,()=>c.html`
|
|
936
936
|
<div class="shrink-0">
|
|
937
937
|
<schmancy-surface type="subtle" rounded="all" class="p-3">
|
|
938
938
|
<div class="flex items-center justify-center gap-6 text-center">
|
|
@@ -953,7 +953,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
953
953
|
${this.body.trim()?this.body.trim().split(/\s+/).length:0}
|
|
954
954
|
</schmancy-typography>
|
|
955
955
|
</div>
|
|
956
|
-
${(0,
|
|
956
|
+
${(0,d.when)(this.attachments.length>0,()=>c.html`
|
|
957
957
|
<div class="w-px h-8 bg-outline-variant"></div>
|
|
958
958
|
<div>
|
|
959
959
|
<schmancy-typography type="body" token="xs" class="text-surface-onVariant">
|
|
@@ -971,19 +971,19 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
971
971
|
|
|
972
972
|
</div>
|
|
973
973
|
</schmancy-surface>
|
|
974
|
-
`}};
|
|
974
|
+
`}};t.t([(0,s.property)({type:String})],g.prototype,`subject`,void 0),t.t([(0,s.property)({type:String})],g.prototype,`body`,void 0),t.t([(0,s.property)({type:Array})],g.prototype,`attachments`,void 0),t.t([(0,s.property)({type:Array})],g.prototype,`recipients`,void 0),t.t([(0,s.property)({type:String})],g.prototype,`fromAddress`,void 0),t.t([(0,s.property)({type:String})],g.prototype,`toAddress`,void 0),t.t([(0,s.state)()],g.prototype,`viewMode`,void 0),g=t.t([(0,s.customElement)(`schmancy-email-viewer`)],g);var _=class extends n.t(c.css`
|
|
975
975
|
:host {
|
|
976
976
|
display: block;
|
|
977
977
|
height: 100%;
|
|
978
978
|
}
|
|
979
|
-
`){constructor(...e){super(...e),this.disabled=!1,this.recipients=[],this.selectedRecipients=[],this.enableCsvImport=!0,this.enableDragDrop=!0,this.title=`Recipients`,this.emptyStateTitle=`No recipients yet`,this.emptyStateMessage=`Import from sources or upload a CSV`,this.dragOver=!1,this.localSelectedRecipients=new Set,this.searchQuery=``,this.filteredRecipients=[],this.boatState=`collapsed`,this.fileInputRef=(0,
|
|
980
|
-
`).filter(e=>e.trim());if(t.length===0)return{data:[],meta:{}};let n=t[0].split(`,`).map(e=>e.trim().replace(/"/g,``)),r=[];for(let e=1;e<t.length;e++){let i=t[e].split(`,`).map(e=>e.trim().replace(/"/g,``)),a={};n.forEach((e,t)=>{a[e]=i[t]||``}),r.push(a)}return{data:r,meta:{fields:n}}}isValidEmail(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim())}addRecipients(e){if(!e.length)return;let t=[...new Set([...this.recipients,...e])],n=e.filter(e=>!this.recipients.includes(e));this.recipients=t,this.selectedRecipients=[...new Set([...this.selectedRecipients,...n])],this.localSelectedRecipients=new Set(this.selectedRecipients),this.updateFilteredRecipients(),this.requestUpdate()}showBoat(){this.boatState=`collapsed`}hideBoat(){this.boatState=`collapsed`}expandBoat(){this.boatState=`expanded`}toggleBoat(){this.boatState=this.boatState===`collapsed`?`expanded`:`collapsed`}render(){return this.renderBoatLayout()}renderBoatLayout(){return
|
|
979
|
+
`){constructor(...e){super(...e),this.disabled=!1,this.recipients=[],this.selectedRecipients=[],this.enableCsvImport=!0,this.enableDragDrop=!0,this.title=`Recipients`,this.emptyStateTitle=`No recipients yet`,this.emptyStateMessage=`Import from sources or upload a CSV`,this.dragOver=!1,this.localSelectedRecipients=new Set,this.searchQuery=``,this.filteredRecipients=[],this.boatState=`collapsed`,this.fileInputRef=(0,l.createRef)(),this.handleEmailsImported=()=>{this.updateFilteredRecipients(),this.requestUpdate()},this.handleImportFromCSV=()=>{this.enableCsvImport&&this.fileInputRef.value?.click()},this.handleFileSelect=e=>{let t=e.target.files?.[0];t&&this.processCSVFile(t)},this.handleDrop=e=>{if(!this.enableDragDrop)return;e.preventDefault(),this.dragOver=!1;let t=e.dataTransfer?.files[0];t&&this.processCSVFile(t)},this.processCSVFile=e=>{if(!e.name.endsWith(`.csv`))return void a.r.error(`Please select a CSV file`);let t=new FileReader;t.onload=e=>{let t=e.target?.result;try{let e=this.parseCSV(t);if(e.length===0)return void a.r.error(`No valid email addresses found in CSV`);this.dispatchEvent(new CustomEvent(`emails-imported`,{detail:{emails:e,source:`csv`},bubbles:!0,composed:!0})),a.r.success(`Imported ${e.length} emails from CSV file`)}catch{a.r.error(`Failed to parse CSV file`)}},t.readAsText(e)},this.toggleRecipientSelection=e=>{this.localSelectedRecipients.has(e)?this.localSelectedRecipients.delete(e):this.localSelectedRecipients.add(e),this.localSelectedRecipients=new Set(this.localSelectedRecipients),this.dispatchSelectionChange()},this.selectAll=()=>{this.localSelectedRecipients=new Set(this.filteredRecipients),this.dispatchSelectionChange()},this.selectNone=()=>{this.localSelectedRecipients.clear(),this.localSelectedRecipients=new Set,this.dispatchSelectionChange()},this.removeRecipient=e=>{this.dispatchEvent(new CustomEvent(`recipient-removed`,{detail:{email:e},bubbles:!0,composed:!0}))},this.clearAll=()=>{this.dispatchEvent(new CustomEvent(`recipients-cleared`,{bubbles:!0,composed:!0}))},this.updateFilteredRecipients=()=>{let e=Array.isArray(this.recipients)?this.recipients:[];if(this.searchQuery.trim()){let t=this.searchQuery.toLowerCase();this.filteredRecipients=e.filter(e=>e.toLowerCase().includes(t))}else this.filteredRecipients=[...e]},this.handleSearchInput=e=>{let t=e.target;this.searchQuery=t.value},this.clearSearch=()=>{this.searchQuery=``},this.dispatchSelectionChange=()=>{this.dispatchEvent(new CustomEvent(`selection-changed`,{detail:{selectedEmails:Array.from(this.localSelectedRecipients)},bubbles:!0,composed:!0}))},this.handleBoatStateChange=e=>{this.boatState=e.detail}}connectedCallback(){super.connectedCallback(),this.localSelectedRecipients=new Set(this.selectedRecipients),this.updateFilteredRecipients(),(0,o.fromEvent)(this,`emails-imported`).pipe((0,o.takeUntil)(this.disconnecting)).subscribe(this.handleEmailsImported)}updated(e){super.updated(e),e.has(`selectedRecipients`)&&(this.localSelectedRecipients=new Set(this.selectedRecipients)),(e.has(`recipients`)||e.has(`searchQuery`))&&this.updateFilteredRecipients(),e.has(`recipients`)&&this.requestUpdate()}parseCSV(e){let t=[],n;n=this.csvParser?this.csvParser.parse(e,{header:!0,skipEmptyLines:!0,dynamicTyping:!0,delimiter:``,transformHeader:e=>e.trim()}):this.simpleCSVParse(e);let r=n.data,i=n.meta.fields||[],a=i.find(e=>e.toLowerCase().includes(`email`));if(!a)for(let e of i){let t=r[0]?.[e]?.toString();if(t&&this.isValidEmail(t)){a=e;break}}if(!a)throw Error(`No email column found in CSV`);let o=new Set;for(let e of r){let n=e[a]?.toString();if(!n)continue;let r=n.toLowerCase().trim();this.isValidEmail(r)&&!o.has(r)&&(o.add(r),t.push(r))}return t}simpleCSVParse(e){let t=e.split(`
|
|
980
|
+
`).filter(e=>e.trim());if(t.length===0)return{data:[],meta:{}};let n=t[0].split(`,`).map(e=>e.trim().replace(/"/g,``)),r=[];for(let e=1;e<t.length;e++){let i=t[e].split(`,`).map(e=>e.trim().replace(/"/g,``)),a={};n.forEach((e,t)=>{a[e]=i[t]||``}),r.push(a)}return{data:r,meta:{fields:n}}}isValidEmail(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim())}addRecipients(e){if(!e.length)return;let t=[...new Set([...this.recipients,...e])],n=e.filter(e=>!this.recipients.includes(e));this.recipients=t,this.selectedRecipients=[...new Set([...this.selectedRecipients,...n])],this.localSelectedRecipients=new Set(this.selectedRecipients),this.updateFilteredRecipients(),this.requestUpdate()}showBoat(){this.boatState=`collapsed`}hideBoat(){this.boatState=`collapsed`}expandBoat(){this.boatState=`expanded`}toggleBoat(){this.boatState=this.boatState===`collapsed`?`expanded`:`collapsed`}render(){return this.renderBoatLayout()}renderBoatLayout(){return c.html`
|
|
981
981
|
<!-- Hidden file input for CSV import -->
|
|
982
|
-
${(0,
|
|
982
|
+
${(0,d.when)(this.enableCsvImport,()=>c.html`
|
|
983
983
|
<input
|
|
984
984
|
type="file"
|
|
985
985
|
accept=".csv"
|
|
986
|
-
${(0,
|
|
986
|
+
${(0,l.ref)(this.fileInputRef)}
|
|
987
987
|
@change=${this.handleFileSelect}
|
|
988
988
|
class="hidden"
|
|
989
989
|
/>
|
|
@@ -1000,7 +1000,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1000
1000
|
<schmancy-typography type="title" token="md" class="font-semibold">
|
|
1001
1001
|
${this.title}
|
|
1002
1002
|
</schmancy-typography>
|
|
1003
|
-
${(0,
|
|
1003
|
+
${(0,d.when)(this.recipients.length>0,()=>c.html`
|
|
1004
1004
|
<schmancy-badge>
|
|
1005
1005
|
${this.localSelectedRecipients.size}/${this.recipients.length}
|
|
1006
1006
|
</schmancy-badge>
|
|
@@ -1013,7 +1013,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1013
1013
|
${this.renderBoatContent()}
|
|
1014
1014
|
</div>
|
|
1015
1015
|
</schmancy-boat>
|
|
1016
|
-
`}renderBoatContent(){return
|
|
1016
|
+
`}renderBoatContent(){return c.html`
|
|
1017
1017
|
<!-- Search Bar and CSV Import on one line -->
|
|
1018
1018
|
<div class="p-4 flex gap-3">
|
|
1019
1019
|
<schmancy-input
|
|
@@ -1023,7 +1023,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1023
1023
|
@input=${this.handleSearchInput}
|
|
1024
1024
|
class="flex-1"
|
|
1025
1025
|
>
|
|
1026
|
-
${(0,
|
|
1026
|
+
${(0,d.when)(this.searchQuery,()=>c.html`
|
|
1027
1027
|
<schmancy-button
|
|
1028
1028
|
slot="suffix"
|
|
1029
1029
|
variant="text"
|
|
@@ -1034,7 +1034,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1034
1034
|
`)}
|
|
1035
1035
|
</schmancy-input>
|
|
1036
1036
|
|
|
1037
|
-
${(0,
|
|
1037
|
+
${(0,d.when)(this.enableCsvImport,()=>c.html`
|
|
1038
1038
|
<schmancy-button
|
|
1039
1039
|
variant="outlined"
|
|
1040
1040
|
@click=${this.handleImportFromCSV}
|
|
@@ -1046,7 +1046,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1046
1046
|
`)}
|
|
1047
1047
|
</div>
|
|
1048
1048
|
|
|
1049
|
-
${(0,
|
|
1049
|
+
${(0,d.when)(this.recipients.length>0,()=>c.html`
|
|
1050
1050
|
<!-- Bulk Actions -->
|
|
1051
1051
|
<div class="px-4 pb-4">
|
|
1052
1052
|
<div class="flex items-center gap-3">
|
|
@@ -1079,9 +1079,9 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1079
1079
|
|
|
1080
1080
|
<!-- Recipients List -->
|
|
1081
1081
|
<div class="flex-1 overflow-y-auto px-4 pb-4">
|
|
1082
|
-
${(0,
|
|
1082
|
+
${(0,d.when)(this.filteredRecipients.length>0,()=>c.html`
|
|
1083
1083
|
<div class="flex flex-wrap gap-3">
|
|
1084
|
-
${(0,
|
|
1084
|
+
${(0,u.repeat)(this.filteredRecipients,e=>e,e=>c.html`
|
|
1085
1085
|
<schmancy-button
|
|
1086
1086
|
variant=${this.localSelectedRecipients.has(e)?`filled`:`outlined`}
|
|
1087
1087
|
@click=${t=>{t.stopPropagation(),t.preventDefault(),this.toggleRecipientSelection(e)}}
|
|
@@ -1096,7 +1096,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1096
1096
|
</schmancy-button>
|
|
1097
1097
|
`)}
|
|
1098
1098
|
</div>
|
|
1099
|
-
`,()=>
|
|
1099
|
+
`,()=>c.html`
|
|
1100
1100
|
<div class="text-center py-8">
|
|
1101
1101
|
<schmancy-icon size="32px" class="opacity-50 mb-2">search_off</schmancy-icon>
|
|
1102
1102
|
<schmancy-typography type="body" token="sm" class="mb-2">
|
|
@@ -1108,7 +1108,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1108
1108
|
</div>
|
|
1109
1109
|
`)}
|
|
1110
1110
|
</div>
|
|
1111
|
-
`,()=>
|
|
1111
|
+
`,()=>c.html`
|
|
1112
1112
|
<!-- Empty State -->
|
|
1113
1113
|
<div class="flex-1 flex items-center justify-center p-8">
|
|
1114
1114
|
<div class="text-center space-y-4">
|
|
@@ -1124,7 +1124,7 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1124
1124
|
`)}
|
|
1125
1125
|
|
|
1126
1126
|
<!-- Drag Overlay -->
|
|
1127
|
-
${(0,
|
|
1127
|
+
${(0,d.when)(this.dragOver&&this.enableDragDrop,()=>c.html`
|
|
1128
1128
|
<div
|
|
1129
1129
|
class="absolute inset-4 flex items-center justify-center border-2 border-dashed border-primary rounded-lg z-10"
|
|
1130
1130
|
@dragover=${e=>{e.preventDefault(),this.dragOver=!0}}
|
|
@@ -1139,4 +1139,4 @@ Tab key inserts 2 spaces for better formatting."
|
|
|
1139
1139
|
</schmancy-surface>
|
|
1140
1140
|
</div>
|
|
1141
1141
|
`)}
|
|
1142
|
-
`}};
|
|
1142
|
+
`}};t.t([(0,s.property)({type:Boolean})],_.prototype,`disabled`,void 0),t.t([(0,s.property)({type:Array})],_.prototype,`recipients`,void 0),t.t([(0,s.property)({type:Array})],_.prototype,`selectedRecipients`,void 0),t.t([(0,s.property)({type:Boolean})],_.prototype,`enableCsvImport`,void 0),t.t([(0,s.property)({type:Boolean})],_.prototype,`enableDragDrop`,void 0),t.t([(0,s.property)({type:String})],_.prototype,`title`,void 0),t.t([(0,s.property)({type:String})],_.prototype,`emptyStateTitle`,void 0),t.t([(0,s.property)({type:String})],_.prototype,`emptyStateMessage`,void 0),t.t([(0,s.property)({type:Object})],_.prototype,`csvParser`,void 0),t.t([(0,s.state)()],_.prototype,`dragOver`,void 0),t.t([(0,s.state)()],_.prototype,`localSelectedRecipients`,void 0),t.t([(0,s.state)()],_.prototype,`searchQuery`,void 0),t.t([(0,s.state)()],_.prototype,`filteredRecipients`,void 0),t.t([(0,s.state)()],_.prototype,`boatState`,void 0),_=t.t([(0,s.customElement)(`schmancy-email-recipients`)],_),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
|