@mhmo91/schmancy 0.9.27 → 0.10.1
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 +987 -2259
- package/dist/active-host-0of-L858.cjs +1 -0
- package/dist/active-host-0of-L858.cjs.map +1 -0
- package/dist/active-host-D-a1X-nq.js +57 -0
- package/dist/active-host-D-a1X-nq.js.map +1 -0
- package/dist/agent/{flow-CvG1fLW5.js.map → flow-CaPi2G8y.js.map} +1 -1
- package/dist/agent/{rolldown-runtime-BIIoCavz.js → rolldown-runtime-DsMetpgY.js} +2 -9
- package/dist/agent/schmancy.agent.js +6465 -7794
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +262 -1462
- package/dist/agent/{vendor-highlight-Dow87ZL_.js → vendor-highlight-CHJZQQB7.js} +85 -90
- package/dist/agent/{vendor-highlight-Dow87ZL_.js.map → vendor-highlight-CHJZQQB7.js.map} +1 -1
- package/dist/agent/{vendor-jsqr-Bl4iAtKC.js → vendor-jsqr-r7GNh4P3.js} +1 -1
- package/dist/agent/{vendor-jsqr-Bl4iAtKC.js.map → vendor-jsqr-r7GNh4P3.js.map} +1 -1
- package/dist/agent/{vendor-material-color-DcL7ZPxx.js.map → vendor-material-color-Be96dpGE.js.map} +1 -1
- package/dist/{animation-hXFClrIn.js.map → animation-BK-8BwY8.js.map} +1 -1
- package/dist/{animation-CQRdLgzX.cjs.map → animation-CO_Csq84.cjs.map} +1 -1
- package/dist/{area-BGBCMC79.js → area-C_J4qxKO.js} +20 -15
- package/dist/area-C_J4qxKO.js.map +1 -0
- package/dist/area-ISC8Mdkh.cjs +12 -0
- package/dist/area-ISC8Mdkh.cjs.map +1 -0
- package/dist/area.cjs +1 -1
- package/dist/area.js +2 -2
- package/dist/{audio-Dvr-RBzE.cjs → audio-DZN8HsSS.cjs} +1 -1
- package/dist/{audio-Dvr-RBzE.cjs.map → audio-DZN8HsSS.cjs.map} +1 -1
- package/dist/{audio-ql6nvY0y.js → audio-Tmre4WyL.js} +1 -1
- package/dist/{audio-ql6nvY0y.js.map → audio-Tmre4WyL.js.map} +1 -1
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/autocomplete-BDF85W0J.cjs +115 -0
- package/dist/autocomplete-BDF85W0J.cjs.map +1 -0
- package/dist/{autocomplete-C2P0Soht.js → autocomplete-CM8VqW9S.js} +29 -26
- package/dist/autocomplete-CM8VqW9S.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +7 -0
- package/dist/avatar.cjs.map +1 -0
- package/dist/avatar.js +87 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/boat-CpXe-Qto.cjs +80 -0
- package/dist/boat-CpXe-Qto.cjs.map +1 -0
- package/dist/{boat-DXZ0k7oa.js → boat-DxYNK4xT.js} +43 -54
- package/dist/boat-DxYNK4xT.js.map +1 -0
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +4 -4
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js +16 -11
- package/dist/breadcrumb.js.map +1 -1
- package/dist/{busy-iRjq6Nvd.js → busy-CP-gRfAP.js} +14 -9
- package/dist/busy-CP-gRfAP.js.map +1 -0
- package/dist/{busy-DGYhpTnO.cjs → busy-Dma4gtnz.cjs} +4 -4
- package/dist/busy-Dma4gtnz.cjs.map +1 -0
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +24 -24
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +42 -37
- package/dist/button.js.map +1 -1
- package/dist/{card-wUTjx0EC.js → card-Bv--HeGO.js} +41 -30
- package/dist/card-Bv--HeGO.js.map +1 -0
- package/dist/{card-DjYnCckw.cjs → card-ClroODSK.cjs} +6 -6
- package/dist/card-ClroODSK.cjs.map +1 -0
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/charts.cjs +5 -5
- package/dist/charts.cjs.map +1 -1
- package/dist/charts.js +21 -16
- package/dist/charts.js.map +1 -1
- package/dist/{checkbox-VBSenxgb.js → checkbox-1gQOOcja.js} +86 -82
- package/dist/checkbox-1gQOOcja.js.map +1 -0
- package/dist/checkbox-DvTZXN1Y.cjs +39 -0
- package/dist/checkbox-DvTZXN1Y.cjs.map +1 -0
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-D6ptH5re.cjs → chips-Bw7FNDpX.cjs} +19 -19
- package/dist/chips-Bw7FNDpX.cjs.map +1 -0
- package/dist/{chips-BDS9lkPa.js → chips-wkfKzf_e.js} +146 -136
- package/dist/chips-wkfKzf_e.js.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/{code-highlight-BzRmBZzz.cjs → code-highlight-CJzuds4c.cjs} +15 -15
- package/dist/code-highlight-CJzuds4c.cjs.map +1 -0
- package/dist/{code-highlight-Bi91XHJN.js → code-highlight-CcdCFMrn.js} +37 -40
- package/dist/code-highlight-CcdCFMrn.js.map +1 -0
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/connectivity.cjs +2 -2
- package/dist/connectivity.cjs.map +1 -1
- package/dist/connectivity.js +10 -7
- package/dist/connectivity.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +2 -2
- package/dist/context-Bdu1xt0W.js +3 -0
- package/dist/{context-BerzpUhI.js.map → context-Bdu1xt0W.js.map} +1 -1
- package/dist/context-daN5G6HS.cjs +1 -0
- package/dist/{context-C6dHUHhi.cjs.map → context-daN5G6HS.cjs.map} +1 -1
- package/dist/{cursor-glow-BydlDInj.js → cursor-glow-Ah7VXSj7.js} +1 -1
- package/dist/{cursor-glow-BydlDInj.js.map → cursor-glow-Ah7VXSj7.js.map} +1 -1
- package/dist/{cursor-glow-Duw9jHmh.cjs → cursor-glow-Bulq-38P.cjs} +1 -1
- package/dist/{cursor-glow-Duw9jHmh.cjs.map → cursor-glow-Bulq-38P.cjs.map} +1 -1
- package/dist/{date-range-ClTMg1AB.js → date-range-BDHz_Olm.js} +16 -17
- package/dist/date-range-BDHz_Olm.js.map +1 -0
- package/dist/date-range-BsPW60vp.cjs +131 -0
- package/dist/date-range-BsPW60vp.cjs.map +1 -0
- package/dist/{date-range-inline-CpKG6qt2.js → date-range-inline-1NmZE_Xr.js} +5 -5
- package/dist/{date-range-inline-CpKG6qt2.js.map → date-range-inline-1NmZE_Xr.js.map} +1 -1
- package/dist/date-range-inline-BsjNNGFR.cjs +43 -0
- package/dist/{date-range-inline-B9Dp2z6C.cjs.map → date-range-inline-BsjNNGFR.cjs.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.cjs +9 -1
- package/dist/delay.cjs.map +1 -0
- package/dist/delay.js +77 -2
- package/dist/delay.js.map +1 -0
- package/dist/{details-CPjlqQD4.js → details-BEp2s2ca.js} +19 -18
- package/dist/details-BEp2s2ca.js.map +1 -0
- package/dist/{details-Cz9ok9si.cjs → details-BtUNqzn8.cjs} +9 -9
- package/dist/details-BtUNqzn8.cjs.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{dialog-service-DH-tjPuE.js → dialog-service-DI9PPy4H.js} +2 -2
- package/dist/dialog-service-DI9PPy4H.js.map +1 -0
- package/dist/{dialog-service-CzDO08Gy.cjs → dialog-service-DJd5L0f5.cjs} +1 -1
- package/dist/dialog-service-DJd5L0f5.cjs.map +1 -0
- package/dist/dialog.cjs +2 -2
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +13 -14
- package/dist/dialog.js.map +1 -1
- package/dist/directives.cjs +2 -11
- package/dist/directives.cjs.map +1 -1
- package/dist/directives.js +141 -227
- package/dist/directives.js.map +1 -1
- package/dist/discovery.cjs +1 -1
- package/dist/discovery.cjs.map +1 -1
- package/dist/discovery.js +1 -1
- package/dist/discovery.js.map +1 -1
- package/dist/{divider-CILo3_vi.cjs → divider-CpNT11Iy.cjs} +3 -3
- package/dist/divider-CpNT11Iy.cjs.map +1 -0
- package/dist/{divider-ghgyw5CU.js → divider-VxpjZ8hk.js} +11 -9
- package/dist/divider-VxpjZ8hk.js.map +1 -0
- 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 +29 -28
- package/dist/dropdown.js.map +1 -1
- package/dist/expand-05azMpho.cjs +141 -0
- package/dist/expand-05azMpho.cjs.map +1 -0
- package/dist/{expand-CbjBr_Ds.js → expand-CRUl3-mN.js} +24 -20
- package/dist/expand-CRUl3-mN.js.map +1 -0
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{extra-BZeZOMBI.cjs → extra-CyERULfm.cjs} +6 -6
- package/dist/extra-CyERULfm.cjs.map +1 -0
- package/dist/{extra-DK9MQtPJ.js → extra-aNV1fO6W.js} +19 -14
- package/dist/extra-aNV1fO6W.js.map +1 -0
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/float-DRET9mVZ.cjs +1 -0
- package/dist/{float-CuZ8LOgB.cjs.map → float-DRET9mVZ.cjs.map} +1 -1
- package/dist/{float-BfCvGeY9.js → float-N3qhNET_.js} +2 -2
- package/dist/{float-BfCvGeY9.js.map → float-N3qhNET_.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-rCZqoAoK.js → form-BtwOBMZ9.js} +1 -1
- package/dist/form-BtwOBMZ9.js.map +1 -0
- package/dist/{form-wI58M85H.cjs → form-CSJp687X.cjs} +1 -1
- package/dist/form-CSJp687X.cjs.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/handover/claude-design-brief.md +19 -54
- package/dist/handover/claude-design-setup.md +57 -0
- package/dist/{hashContent-B2IntJQf.js.map → hashContent-1ARKIsx9.js.map} +1 -1
- package/dist/{hashContent-CahnEuut.cjs.map → hashContent-Bp5S6T4U.cjs.map} +1 -1
- package/dist/{icons-Drq4kKy2.js → icons-BBJqwT_B.js} +27 -24
- package/dist/icons-BBJqwT_B.js.map +1 -0
- package/dist/icons-CNixJ6kL.cjs +52 -0
- package/dist/icons-CNixJ6kL.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-BmyHW8km.js → iframe-DoN_toqE.js} +17 -11
- package/dist/iframe-DoN_toqE.js.map +1 -0
- package/dist/iframe-g-4DjAD7.cjs +24 -0
- package/dist/iframe-g-4DjAD7.cjs.map +1 -0
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +77 -77
- package/dist/{input-Bc3bVISm.js → input-ClnkMJgh.js} +30 -30
- package/dist/input-ClnkMJgh.js.map +1 -0
- package/dist/{input-BGNZlfL8.cjs → input-CwFslLcF.cjs} +14 -14
- package/dist/input-CwFslLcF.cjs.map +1 -0
- package/dist/{input-chip-DN-cwf11.cjs → input-chip-DMXRT7bK.cjs} +2 -2
- package/dist/input-chip-DMXRT7bK.cjs.map +1 -0
- package/dist/{input-chip-BQrjpjaQ.js → input-chip-DwSyFv1x.js} +7 -4
- package/dist/input-chip-DwSyFv1x.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json.cjs +1 -1
- package/dist/json.cjs.map +1 -1
- package/dist/json.js +7 -5
- package/dist/json.js.map +1 -1
- package/dist/kbd.cjs +2 -2
- package/dist/kbd.cjs.map +1 -1
- package/dist/kbd.js +9 -7
- package/dist/kbd.js.map +1 -1
- package/dist/{layout-fjM1DWlF.js → layout-BghHmee6.js} +1 -1
- package/dist/{layout-fjM1DWlF.js.map → layout-BghHmee6.js.map} +1 -1
- package/dist/{layout-CTfRXQoz.cjs → layout-VmxXuGGp.cjs} +1 -1
- package/dist/{layout-CTfRXQoz.cjs.map → layout-VmxXuGGp.cjs.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +2 -3
- package/dist/{lazy-D6R5N5v4.js.map → lazy-B0ia54tT.js.map} +1 -1
- package/dist/{lazy-BDNnH_r7.cjs.map → lazy-Dq9mRRjT.cjs.map} +1 -1
- package/dist/{lightbox-CY52Z_ig.js → lightbox-IleIcq19.js} +13 -12
- package/dist/lightbox-IleIcq19.js.map +1 -0
- package/dist/lightbox-m5FLmYlv.cjs +202 -0
- package/dist/lightbox-m5FLmYlv.cjs.map +1 -0
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-D7wUxu1C.js → list-BlXJlm16.js} +26 -21
- package/dist/list-BlXJlm16.js.map +1 -0
- package/dist/list-C-b9p1yi.cjs +40 -0
- package/dist/list-C-b9p1yi.cjs.map +1 -0
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{magnetic-CVXEkYTA.cjs → magnetic-BH0TsofV.cjs} +1 -1
- package/dist/{magnetic-CVXEkYTA.cjs.map → magnetic-BH0TsofV.cjs.map} +1 -1
- package/dist/{magnetic-BhXebqF3.js → magnetic-BZGFxAWG.js} +2 -2
- package/dist/{magnetic-BhXebqF3.js.map → magnetic-BZGFxAWG.js.map} +1 -1
- package/dist/{mailbox-DLiBGJhY.cjs → mailbox-B0hZLpF1.cjs} +64 -66
- package/dist/mailbox-B0hZLpF1.cjs.map +1 -0
- package/dist/{mailbox--EN-JhjV.js → mailbox-DAmejcKa.js} +137 -126
- package/dist/mailbox-DAmejcKa.js.map +1 -0
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-B0S_q3ma.js → map-BoIu47qU.js} +11 -9
- package/dist/map-BoIu47qU.js.map +1 -0
- package/dist/map-CZ0816EI.cjs +80 -0
- package/dist/map-CZ0816EI.cjs.map +1 -0
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{menu-3edZGQ1x.cjs → menu-BFHBnp5M.cjs} +5 -5
- package/dist/menu-BFHBnp5M.cjs.map +1 -0
- package/dist/{menu-COeFpb6n.js → menu-BV9_8ys8.js} +15 -10
- package/dist/menu-BV9_8ys8.js.map +1 -0
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins-BIXF7xkF.cjs +298 -0
- package/dist/mixins-BIXF7xkF.cjs.map +1 -0
- package/dist/mixins-CL1krSOE.js +627 -0
- package/dist/mixins-CL1krSOE.js.map +1 -0
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +2 -87
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +2 -2
- 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 +15 -16
- package/dist/navigation-rail.js.map +1 -1
- package/dist/notification-CigTy3ia.cjs +23 -0
- package/dist/notification-CigTy3ia.cjs.map +1 -0
- package/dist/{notification-CC-TFN5v.js → notification-Dzm6zWxX.js} +40 -38
- package/dist/notification-Dzm6zWxX.js.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/option-BfvzzkzM.cjs +43 -0
- package/dist/option-BfvzzkzM.cjs.map +1 -0
- package/dist/{option-BwAF4nAw.js → option-Dyb0Q45u.js} +9 -7
- package/dist/option-Dyb0Q45u.js.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-stack-7bs4ZNnh.cjs → overlay-stack-BprhAE9a.cjs} +1 -1
- package/dist/{overlay-stack-7bs4ZNnh.cjs.map → overlay-stack-BprhAE9a.cjs.map} +1 -1
- package/dist/{overlay-stack-DXPYHPhk.js → overlay-stack-CAQno0CK.js} +1 -1
- package/dist/{overlay-stack-DXPYHPhk.js.map → overlay-stack-CAQno0CK.js.map} +1 -1
- package/dist/overlay.cjs +43 -45
- package/dist/overlay.cjs.map +1 -1
- package/dist/overlay.js +684 -268
- package/dist/overlay.js.map +1 -1
- package/dist/page.cjs +3 -3
- package/dist/page.cjs.map +1 -1
- package/dist/page.js +15 -13
- package/dist/page.js.map +1 -1
- package/dist/payment-card-form-CQ6sLlrh.cjs +73 -0
- package/dist/{components-DkmEgyAc.cjs.map → payment-card-form-CQ6sLlrh.cjs.map} +1 -1
- package/dist/{components-DZgJWHdZ.js → payment-card-form-D9N2Q0wM.js} +21 -22
- package/dist/{components-DZgJWHdZ.js.map → payment-card-form-D9N2Q0wM.js.map} +1 -1
- package/dist/payment-card-form.cjs +1 -0
- package/dist/payment-card-form.js +2 -0
- package/dist/{progress-Yz6EMNSu.cjs → progress-Dyri7dc2.cjs} +3 -3
- package/dist/progress-Dyri7dc2.cjs.map +1 -0
- package/dist/{progress-Bk_Q1Shy.js → progress-LPwPfzBi.js} +16 -13
- package/dist/progress-LPwPfzBi.js.map +1 -0
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/qr-scanner.cjs +5 -5
- package/dist/qr-scanner.cjs.map +1 -1
- package/dist/qr-scanner.js +14 -15
- package/dist/qr-scanner.js.map +1 -1
- package/dist/radio-group-DK-T6jGy.cjs +40 -0
- package/dist/radio-group-DK-T6jGy.cjs.map +1 -0
- package/dist/{radio-group-BcdcjLNC.js → radio-group-DqP886F-.js} +14 -12
- package/dist/radio-group-DqP886F-.js.map +1 -0
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +2 -2
- package/dist/range.cjs.map +1 -1
- package/dist/range.js +9 -7
- package/dist/range.js.map +1 -1
- package/dist/{reduced-motion-BZTLqAyl.js.map → reduced-motion-D-L12p7G.js.map} +1 -1
- package/dist/{reduced-motion-9RjNnhIg.cjs.map → reduced-motion-Ds-HjMzn.cjs.map} +1 -1
- package/dist/{rxjs-utils-DJbZRjp3.cjs.map → rxjs-utils-Csnks202.cjs.map} +1 -1
- package/dist/{rxjs-utils-CKTnEKUH.js.map → rxjs-utils-d-ivVN84.js.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{scroll-DXQv0ejL.js → scroll-BD82ANjm.js} +9 -7
- package/dist/scroll-BD82ANjm.js.map +1 -0
- package/dist/scroll-yfNU0zNO.cjs +26 -0
- package/dist/scroll-yfNU0zNO.cjs.map +1 -0
- package/dist/search-BLCRsxIC.cjs +1 -0
- package/dist/{search-CwMav5QB.cjs.map → search-BLCRsxIC.cjs.map} +1 -1
- package/dist/{search-CvUZRLF1.js → search-BTz7-Rev.js} +1 -1
- package/dist/{search-CvUZRLF1.js.map → search-BTz7-Rev.js.map} +1 -1
- package/dist/{select-BV4lK2zy.cjs → select-BR3r3SZe.cjs} +6 -6
- package/dist/select-BR3r3SZe.cjs.map +1 -0
- package/dist/{select-DKyGWDsG.js → select-GONAphZI.js} +23 -20
- package/dist/select-GONAphZI.js.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-C3TLKItO.js → sheet-C4sAGqTf.js} +22 -20
- package/dist/sheet-C4sAGqTf.js.map +1 -0
- package/dist/sheet-D9pZMrzs.cjs +35 -0
- package/dist/sheet-D9pZMrzs.cjs.map +1 -0
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-Dlv20Zfc.js → sheet.service-B7h_-e-q.js} +3 -3
- package/dist/{sheet.service-Dlv20Zfc.js.map → sheet.service-B7h_-e-q.js.map} +1 -1
- package/dist/sheet.service-C1J0-i4d.cjs +1 -0
- package/dist/{sheet.service-RcDBwHmv.cjs.map → sheet.service-C1J0-i4d.cjs.map} +1 -1
- package/dist/skeleton.cjs +2 -2
- package/dist/skeleton.cjs.map +1 -1
- package/dist/skeleton.js +9 -7
- package/dist/skeleton.js.map +1 -1
- package/dist/skills/INDEX.md +1 -1
- package/dist/skills/SKILL.md +17 -5
- package/dist/skills/mixins.md +78 -20
- package/dist/skills/schmancy/INDEX.md +1 -1
- package/dist/skills/schmancy/SKILL.md +17 -5
- package/dist/skills/schmancy/mixins.md +78 -20
- package/dist/skills/schmancy/state.md +501 -0
- package/dist/skills/schmancy/theme.md +15 -0
- package/dist/skills/schmancy/timeline-tile.md +95 -0
- package/dist/skills/state.md +501 -0
- package/dist/skills/theme.md +15 -0
- package/dist/skills/timeline-tile.md +95 -0
- package/dist/slider.cjs +5 -5
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +18 -13
- package/dist/slider.js.map +1 -1
- package/dist/{sound.service-DWZe6swU.js → sound.service-Ba_HNBLD.js} +3 -3
- package/dist/sound.service-Ba_HNBLD.js.map +1 -0
- package/dist/sound.service-CvdB2yUJ.cjs +1 -0
- package/dist/sound.service-CvdB2yUJ.cjs.map +1 -0
- package/dist/{splash-screen-DbI5RgBf.js → splash-screen-BGMZmQRT.js} +12 -9
- package/dist/splash-screen-BGMZmQRT.js.map +1 -0
- package/dist/splash-screen-DqULOTZ0.cjs +41 -0
- package/dist/splash-screen-DqULOTZ0.cjs.map +1 -0
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-00DfxCJq.js → src-CHM4hrEr.js} +299 -351
- package/dist/src-CHM4hrEr.js.map +1 -0
- package/dist/src-DzFcGdcn.cjs +263 -0
- package/dist/src-DzFcGdcn.cjs.map +1 -0
- package/dist/state-BAW3C11I.cjs +1 -0
- package/dist/state-BAW3C11I.cjs.map +1 -0
- package/dist/state-ClRXrqDA.js +846 -0
- package/dist/state-ClRXrqDA.js.map +1 -0
- package/dist/state.cjs +1 -0
- package/dist/state.js +3 -0
- package/dist/steps.cjs +10 -10
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +29 -24
- package/dist/steps.js.map +1 -1
- package/dist/surface-BHJgIDz9.js +24 -0
- package/dist/surface-BHJgIDz9.js.map +1 -0
- package/dist/surface-DW78bc8W.cjs +7 -0
- package/dist/surface-DW78bc8W.cjs.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +2 -2
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +7 -5
- package/dist/switch.js.map +1 -1
- package/dist/table.cjs +72 -1
- package/dist/table.cjs.map +1 -0
- package/dist/table.js +174 -2
- package/dist/table.js.map +1 -0
- package/dist/{tabs-Ce55RbwF.js → tabs-BCRVyQU1.js} +22 -22
- package/dist/tabs-BCRVyQU1.js.map +1 -0
- package/dist/tabs-EIEhkEUb.cjs +31 -0
- package/dist/tabs-EIEhkEUb.cjs.map +1 -0
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +2 -2
- package/dist/{textarea-DjN1D9u0.js → textarea-DApOhSAL.js} +30 -28
- package/dist/textarea-DApOhSAL.js.map +1 -0
- package/dist/textarea-zxNlRLVm.cjs +39 -0
- package/dist/textarea-zxNlRLVm.cjs.map +1 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-pbxlt72h.js → theme-BCUjQH6-.js} +45 -41
- package/dist/{theme-pbxlt72h.js.map → theme-BCUjQH6-.js.map} +1 -1
- package/dist/theme-Z43TLE61.cjs +181 -0
- package/dist/{theme-B-IJ2r7Q.cjs.map → theme-Z43TLE61.cjs.map} +1 -1
- package/dist/theme-button-Czsdp3o1.cjs +8 -0
- package/dist/theme-button-Czsdp3o1.cjs.map +1 -0
- package/dist/{theme-button-CEMeAUOL.js → theme-button-DdSbcivT.js} +3 -4
- package/dist/theme-button-DdSbcivT.js.map +1 -0
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.events-NuihzD_p.js.map → theme.events-Cv7N4Toe.js.map} +1 -1
- package/dist/{theme.events-DakXxZeP.cjs.map → theme.events-DM4H5F2d.cjs.map} +1 -1
- package/dist/{theme.interface-DTwkuAKJ.cjs.map → theme.interface-D9l33b-M.cjs.map} +1 -1
- package/dist/{theme.interface-Buged9Cg.js.map → theme.interface-DnVNre4O.js.map} +1 -1
- package/dist/theme.js +5 -5
- package/dist/{theme.service-cOfPrtfe.js → theme.service-9clsqyee.js} +4 -4
- package/dist/theme.service-9clsqyee.js.map +1 -0
- package/dist/theme.service-CP71ojp6.cjs +1 -0
- package/dist/theme.service-CP71ojp6.cjs.map +1 -0
- package/dist/timeline.cjs +277 -0
- package/dist/timeline.cjs.map +1 -0
- package/dist/timeline.js +326 -0
- package/dist/timeline.js.map +1 -0
- package/dist/tree.cjs +2 -2
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +15 -13
- package/dist/tree.js.map +1 -1
- package/dist/typewriter.cjs +10 -123
- package/dist/typewriter.cjs.map +1 -1
- package/dist/typewriter.js +90 -212
- package/dist/typewriter.js.map +1 -1
- package/dist/typography.cjs +3 -3
- package/dist/typography.cjs.map +1 -1
- package/dist/typography.js +18 -112
- package/dist/typography.js.map +1 -1
- package/dist/utils-Cr-YO4Np.cjs +1 -0
- package/dist/utils-Cr-YO4Np.cjs.map +1 -0
- package/dist/{utils-Bp2jhyZc.js → utils-hp-DnFf5.js} +16 -6
- package/dist/utils-hp-DnFf5.js.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +4 -5
- package/dist/visually-hidden.cjs +2 -2
- package/dist/visually-hidden.cjs.map +1 -1
- package/dist/visually-hidden.js +7 -5
- package/dist/visually-hidden.js.map +1 -1
- package/dist/window-DTgKAQgz.cjs +59 -0
- package/dist/window-DTgKAQgz.cjs.map +1 -0
- package/dist/{window-CrjZdf7Y.js → window-moDKyGLZ.js} +28 -30
- package/dist/window-moDKyGLZ.js.map +1 -0
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +14 -2
- package/plugins/vite-plugin-schmancy-auto-import.ts +143 -0
- package/plugins/vite-plugin-schmancy-manifest.ts +438 -0
- package/skills/schmancy/INDEX.md +1 -1
- package/skills/schmancy/SKILL.md +17 -5
- package/skills/schmancy/mixins.md +78 -20
- package/skills/schmancy/state.md +501 -0
- package/skills/schmancy/theme.md +15 -0
- package/skills/schmancy/timeline-tile.md +95 -0
- package/src/agent/agent-bundle.test.ts +0 -49
- package/src/agent/agent-entry.ts +4 -3
- package/src/agent/helpers.ts +1 -95
- package/src/agent/schmancy-skill.ts +2 -5
- package/src/agent/virtual-manifest.d.ts +1 -12
- package/src/area/area.component.ts +7 -19
- package/src/area/area.service.test.ts +4 -5
- package/src/area/area.service.ts +4 -3
- package/src/area/route.component.ts +17 -4
- package/src/area/utils.ts +3 -2
- package/src/audio/sound.service.ts +7 -11
- package/src/autocomplete/autocomplete.ts +18 -21
- package/src/{avatar.ts → avatar/avatar.ts} +2 -2
- package/src/avatar/index.ts +1 -0
- package/src/badge/badge.ts +4 -3
- package/src/boat/boat.ts +28 -36
- package/src/breadcrumb/breadcrumb.ts +11 -19
- package/src/busy/busy.ts +4 -3
- package/src/busy/spinner.ts +4 -3
- package/src/button/button.ts +6 -11
- package/src/button/icon-button.ts +8 -12
- package/src/card/actions.ts +4 -12
- package/src/card/card.ts +5 -23
- package/src/card/content.ts +4 -12
- package/src/card/media.ts +4 -9
- package/src/charts/area-chart.ts +7 -4
- package/src/charts/pills.ts +6 -4
- package/src/checkbox/checkbox.test.ts +2 -2
- package/src/checkbox/checkbox.ts +3 -9
- package/src/chips/assist-chip.ts +6 -14
- package/src/chips/chips.ts +7 -21
- package/src/chips/filter-chip.ts +4 -3
- package/src/chips/input-chip.ts +10 -9
- package/src/chips/suggestion-chip.ts +10 -12
- package/src/code-highlight/code-highlight.ts +28 -59
- package/src/code-highlight/code-preview.ts +11 -9
- package/src/connectivity/connectivity-status.ts +4 -3
- package/src/content-drawer/drawer.ts +5 -3
- package/src/content-drawer/main.ts +5 -3
- package/src/content-drawer/sheet.ts +6 -4
- package/src/date-range/date-range-dialog.ts +2 -2
- package/src/date-range/date-range.ts +3 -2
- package/src/delay/delay.ts +2 -2
- package/src/details/details.ts +4 -17
- package/src/dialog/dialog-service.ts +2 -0
- package/src/dialog/dialog.component.ts +9 -9
- package/src/directives/drag.ts +1 -9
- package/src/directives/index.ts +0 -1
- package/src/discovery/discovery.service.ts +1 -1
- package/src/divider/divider.ts +5 -14
- package/src/dropdown/dropdown-component.ts +5 -16
- package/src/dropdown/dropdown-content.ts +7 -14
- package/src/expand/expand-root.component.ts +5 -15
- package/src/expand/expand.component.ts +4 -17
- package/src/extra/countries/countries.ts +5 -13
- package/src/extra/timezone/timezone.ts +7 -12
- package/src/form/form.test.ts +2 -2
- package/src/form/form.ts +2 -9
- package/src/icons/icon.ts +4 -3
- package/src/iframe/iframe.ts +13 -4
- package/src/index.ts +3 -3
- package/src/input/input.ts +4 -11
- package/src/json/json.ts +4 -3
- package/src/kbd/kbd.ts +4 -3
- package/src/layout/index.ts +1 -5
- package/src/layout/scroll/scroll.ts +5 -8
- package/src/lightbox/flip-directive.ts +1 -1
- package/src/lightbox/lightbox.ts +5 -14
- package/src/list/list-item.ts +4 -13
- package/src/list/list.ts +12 -10
- package/src/mailbox/email-editor.ts +17 -11
- package/src/mailbox/email-layout-selector.ts +2 -2
- package/src/mailbox/email-recipients.ts +13 -8
- package/src/mailbox/email-template-picker.ts +6 -5
- package/src/mailbox/email-viewer.ts +5 -3
- package/src/mailbox/mailbox.ts +6 -5
- package/src/map/map.ts +8 -6
- package/src/menu/menu-item.ts +5 -16
- package/src/menu/menu.ts +27 -13
- package/src/nav-drawer/appbar.ts +4 -14
- package/src/nav-drawer/content.ts +5 -14
- package/src/nav-drawer/drawer.ts +5 -18
- package/src/nav-drawer/navbar.ts +3 -17
- package/src/navigation-bar/navigation-bar-item.ts +8 -6
- package/src/navigation-bar/navigation-bar.ts +19 -19
- package/src/navigation-rail/navigation-rail-item.ts +9 -5
- package/src/navigation-rail/navigation-rail.ts +10 -14
- package/src/notification/notification.ts +6 -3
- package/src/option/option.ts +4 -3
- package/src/overlay/overlay.animations.ts +196 -25
- package/src/overlay/overlay.component.ts +397 -190
- package/src/overlay/overlay.confirm-body.ts +21 -7
- package/src/overlay/overlay.gestures.ts +72 -36
- package/src/overlay/overlay.layout.ts +103 -1
- package/src/overlay/overlay.positioning.ts +301 -0
- package/src/overlay/overlay.service.ts +81 -3
- package/src/overlay/overlay.stack.ts +8 -4
- package/src/overlay/overlay.types.ts +83 -5
- package/src/page/page.ts +16 -11
- package/src/payment-card-form/index.ts +1 -0
- package/src/{components/form-elements → payment-card-form}/payment-card-form.ts +23 -23
- package/src/progress/progress.ts +5 -3
- package/src/qr-scanner/qr-scanner.ts +7 -30
- package/src/radio-group/radio-button.ts +3 -13
- package/src/radio-group/radio-group.ts +5 -22
- package/src/range/range.ts +4 -3
- package/src/rxjs-utils/waitForElements.ts +1 -1
- package/src/rxjs-utils/waitForElementsAll.ts +1 -1
- package/src/select/select.ts +10 -18
- package/src/sheet/hook.ts +1 -1
- package/src/sheet/sheet.ts +5 -20
- package/src/skeleton/skeleton.ts +4 -3
- package/src/slider/slide.ts +5 -3
- package/src/slider/slider.ts +5 -3
- package/src/splash-screen/splash-screen.ts +5 -3
- package/src/state/CLAUDE.md +161 -0
- package/src/state/MIGRATION.md +258 -0
- package/src/state/SCOPING.md +134 -0
- package/src/state/active-host.ts +156 -0
- package/src/state/index.ts +877 -0
- package/src/state/persist.ts +208 -0
- package/src/state/schmancy-context.ts +84 -0
- package/src/state/state.test-d.ts +227 -0
- package/src/state/state.test.ts +820 -0
- package/src/steps/schmancy-step.ts +5 -3
- package/src/steps/schmancy-steps-container.ts +5 -3
- package/src/surface/surface.ts +14 -9
- package/src/switch/switch.test.ts +2 -2
- package/src/switch/switch.ts +8 -10
- package/src/table/row.ts +7 -4
- package/src/table/table.ts +17 -14
- package/src/tabs/index.ts +0 -2
- package/src/tabs/tab.ts +2 -2
- package/src/tabs/tabs-group.ts +7 -4
- package/src/teleport/teleport.component.ts +5 -3
- package/src/textarea/textarea.ts +6 -12
- package/src/theme/theme-audio-player.ts +7 -5
- package/src/theme/theme-controller.ts +2 -2
- package/src/theme/theme.component.ts +22 -15
- package/src/theme/theme.service.ts +6 -7
- package/src/theme/theme.style.css +1 -0
- package/src/theme-button/theme-button.ts +2 -2
- package/src/timeline/index.ts +1 -0
- package/src/timeline/timeline-tile.ts +431 -0
- package/src/tree/tree.ts +4 -16
- package/src/typewriter/index.ts +1 -1
- package/src/typography/typography.ts +5 -98
- package/src/utils/intersection.ts +5 -1
- package/src/utils/overlay-stack.ts +1 -1
- package/src/utils/search.ts +2 -2
- package/src/visually-hidden/visually-hidden.ts +4 -3
- package/src/window/window-position.ts +3 -6
- package/src/window/window.ts +9 -7
- package/types/mixins/SchmancyElement.d.ts +49 -0
- package/types/mixins/formField.mixin.d.ts +4 -2
- package/types/mixins/index.d.ts +1 -0
- package/types/mixins/litElement.mixin.d.ts +11 -0
- package/types/src/agent/agent-entry.d.ts +1 -1
- package/types/src/agent/helpers.d.ts +0 -26
- package/types/src/agent/schmancy-skill.d.ts +3 -5
- package/types/src/area/area.component.d.ts +3 -17
- package/types/src/area/route.component.d.ts +14 -4
- package/types/src/autocomplete/autocomplete.d.ts +4 -15
- package/types/src/{avatar.d.ts → avatar/avatar.d.ts} +2 -3
- package/types/src/avatar/index.d.ts +1 -0
- package/types/src/badge/badge.d.ts +3 -3
- package/types/src/boat/boat.d.ts +3 -2
- package/types/src/breadcrumb/breadcrumb.d.ts +9 -19
- package/types/src/busy/busy.d.ts +3 -3
- package/types/src/busy/spinner.d.ts +3 -3
- package/types/src/button/button.d.ts +4 -10
- package/types/src/button/icon-button.d.ts +5 -11
- package/types/src/card/actions.d.ts +3 -12
- package/types/src/card/card.d.ts +4 -24
- package/types/src/card/content.d.ts +3 -12
- package/types/src/card/media.d.ts +3 -9
- package/types/src/charts/area-chart.d.ts +3 -3
- package/types/src/charts/pills.d.ts +3 -3
- package/types/src/checkbox/checkbox.d.ts +3 -10
- package/types/src/chips/assist-chip.d.ts +5 -15
- package/types/src/chips/chips.d.ts +3 -17
- package/types/src/chips/filter-chip.d.ts +3 -3
- package/types/src/chips/input-chip.d.ts +9 -10
- package/types/src/chips/suggestion-chip.d.ts +9 -13
- package/types/src/code-highlight/code-highlight.d.ts +4 -11
- package/types/src/code-highlight/code-preview.d.ts +3 -3
- package/types/src/connectivity/connectivity-status.d.ts +3 -3
- package/types/src/content-drawer/drawer.d.ts +4 -4
- package/types/src/content-drawer/main.d.ts +3 -3
- package/types/src/content-drawer/sheet.d.ts +4 -4
- package/types/src/date-range/date-range-dialog.d.ts +2 -3
- package/types/src/date-range/date-range.d.ts +2 -3
- package/types/src/delay/delay.d.ts +2 -3
- package/types/src/details/details.d.ts +3 -14
- package/types/src/dialog/dialog.component.d.ts +9 -9
- package/types/src/directives/drag.d.ts +1 -3
- package/types/src/directives/index.d.ts +0 -1
- package/types/src/divider/divider.d.ts +3 -14
- package/types/src/dropdown/dropdown-component.d.ts +4 -17
- package/types/src/dropdown/dropdown-content.d.ts +6 -14
- package/types/src/expand/expand-root.component.d.ts +4 -14
- package/types/src/expand/expand.component.d.ts +3 -17
- package/types/src/extra/countries/countries.d.ts +3 -13
- package/types/src/extra/timezone/timezone.d.ts +4 -11
- package/types/src/form/form.d.ts +2 -9
- package/types/src/icons/icon.d.ts +3 -3
- package/types/src/iframe/iframe.d.ts +5 -3
- package/types/src/index.d.ts +3 -3
- package/types/src/input/input.d.ts +4 -11
- package/types/src/json/json.d.ts +3 -3
- package/types/src/kbd/kbd.d.ts +3 -3
- package/types/src/layout/index.d.ts +0 -4
- package/types/src/layout/scroll/scroll.d.ts +4 -8
- package/types/src/lightbox/lightbox.d.ts +3 -14
- package/types/src/list/list-item.d.ts +3 -13
- package/types/src/list/list.d.ts +11 -10
- package/types/src/mailbox/email-editor.d.ts +3 -3
- package/types/src/mailbox/email-layout-selector.d.ts +2 -3
- package/types/src/mailbox/email-recipients.d.ts +7 -3
- package/types/src/mailbox/email-template-picker.d.ts +4 -4
- package/types/src/mailbox/email-viewer.d.ts +3 -3
- package/types/src/mailbox/mailbox.d.ts +4 -4
- package/types/src/map/map.d.ts +4 -3
- package/types/src/menu/menu-item.d.ts +3 -16
- package/types/src/menu/menu.d.ts +25 -13
- package/types/src/nav-drawer/appbar.d.ts +3 -14
- package/types/src/nav-drawer/content.d.ts +3 -14
- package/types/src/nav-drawer/drawer.d.ts +3 -18
- package/types/src/nav-drawer/navbar.d.ts +3 -18
- package/types/src/navigation-bar/navigation-bar-item.d.ts +7 -6
- package/types/src/navigation-bar/navigation-bar.d.ts +13 -7
- package/types/src/navigation-rail/navigation-rail-item.d.ts +9 -6
- package/types/src/navigation-rail/navigation-rail.d.ts +10 -15
- package/types/src/notification/notification.d.ts +3 -3
- package/types/src/option/option.d.ts +3 -3
- package/types/src/overlay/overlay.animations.d.ts +54 -5
- package/types/src/overlay/overlay.component.d.ts +39 -15
- package/types/src/overlay/overlay.confirm-body.d.ts +4 -4
- package/types/src/overlay/overlay.gestures.d.ts +26 -17
- package/types/src/overlay/overlay.layout.d.ts +27 -1
- package/types/src/overlay/overlay.positioning.d.ts +87 -0
- package/types/src/overlay/overlay.types.d.ts +59 -5
- package/types/src/page/page.d.ts +14 -11
- package/types/src/{components/form-elements → payment-card-form}/payment-card-form.d.ts +2 -3
- package/types/src/progress/progress.d.ts +3 -3
- package/types/src/qr-scanner/qr-scanner.d.ts +3 -3
- package/types/src/radio-group/radio-button.d.ts +3 -12
- package/types/src/radio-group/radio-group.d.ts +4 -20
- package/types/src/range/range.d.ts +3 -3
- package/types/src/rxjs-utils/waitForElements.d.ts +1 -1
- package/types/src/rxjs-utils/waitForElementsAll.d.ts +1 -1
- package/types/src/select/select.d.ts +4 -15
- package/types/src/sheet/sheet.d.ts +3 -20
- package/types/src/skeleton/skeleton.d.ts +3 -3
- package/types/src/slider/slide.d.ts +3 -2
- package/types/src/slider/slider.d.ts +3 -3
- package/types/src/splash-screen/splash-screen.d.ts +3 -3
- package/types/src/state/active-host.d.ts +18 -0
- package/types/src/state/index.d.ts +145 -0
- package/types/src/state/persist.d.ts +14 -0
- package/types/src/state/schmancy-context.d.ts +31 -0
- package/types/src/state/state.test-d.d.ts +131 -0
- package/types/src/state/state.test.d.ts +1 -0
- package/types/src/steps/schmancy-step.d.ts +3 -3
- package/types/src/steps/schmancy-steps-container.d.ts +3 -3
- package/types/src/surface/surface.d.ts +13 -5
- package/types/src/switch/switch.d.ts +7 -11
- package/types/src/table/row.d.ts +2 -3
- package/types/src/table/table.d.ts +4 -11
- package/types/src/tabs/index.d.ts +0 -2
- package/types/src/tabs/tab.d.ts +2 -3
- package/types/src/tabs/tabs-group.d.ts +3 -3
- package/types/src/teleport/teleport.component.d.ts +3 -3
- package/types/src/textarea/textarea.d.ts +5 -12
- package/types/src/theme/theme-audio-player.d.ts +3 -3
- package/types/src/theme/theme-controller.d.ts +2 -2
- package/types/src/theme/theme.component.d.ts +18 -13
- package/types/src/theme-button/theme-button.d.ts +2 -3
- package/types/src/timeline/index.d.ts +1 -0
- package/types/src/timeline/timeline-tile.d.ts +44 -0
- package/types/src/tree/tree.d.ts +3 -16
- package/types/src/typewriter/index.d.ts +1 -1
- package/types/src/typography/typography.d.ts +3 -36
- package/types/src/visually-hidden/visually-hidden.d.ts +3 -3
- package/types/src/window/window.d.ts +3 -3
- package/dist/agent/index.es-Dymj8REP.js +0 -489
- package/dist/agent/index.es-Dymj8REP.js.map +0 -1
- package/dist/area-BGBCMC79.js.map +0 -1
- package/dist/area-D7l9KR2N.cjs +0 -12
- package/dist/area-D7l9KR2N.cjs.map +0 -1
- package/dist/autocomplete-BPD5uraA.cjs +0 -115
- package/dist/autocomplete-BPD5uraA.cjs.map +0 -1
- package/dist/autocomplete-C2P0Soht.js.map +0 -1
- package/dist/boat-BkIO-0No.cjs +0 -80
- package/dist/boat-BkIO-0No.cjs.map +0 -1
- package/dist/boat-DXZ0k7oa.js.map +0 -1
- package/dist/busy-DGYhpTnO.cjs.map +0 -1
- package/dist/busy-iRjq6Nvd.js.map +0 -1
- package/dist/card-DjYnCckw.cjs.map +0 -1
- package/dist/card-wUTjx0EC.js.map +0 -1
- package/dist/checkbox-CiYEtw9F.cjs +0 -39
- package/dist/checkbox-CiYEtw9F.cjs.map +0 -1
- package/dist/checkbox-VBSenxgb.js.map +0 -1
- package/dist/chips-BDS9lkPa.js.map +0 -1
- package/dist/chips-D6ptH5re.cjs.map +0 -1
- package/dist/code-highlight-Bi91XHJN.js.map +0 -1
- package/dist/code-highlight-BzRmBZzz.cjs.map +0 -1
- package/dist/components-DkmEgyAc.cjs +0 -73
- package/dist/components.cjs +0 -1
- package/dist/components.js +0 -2
- package/dist/context-BerzpUhI.js +0 -3
- package/dist/context-C6dHUHhi.cjs +0 -1
- package/dist/date-range-BmFxTXiU.cjs +0 -131
- package/dist/date-range-BmFxTXiU.cjs.map +0 -1
- package/dist/date-range-ClTMg1AB.js.map +0 -1
- package/dist/date-range-inline-B9Dp2z6C.cjs +0 -43
- package/dist/delay-BHODnTg-.cjs +0 -9
- package/dist/delay-BHODnTg-.cjs.map +0 -1
- package/dist/delay-Dlk0A3he.js +0 -347
- package/dist/delay-Dlk0A3he.js.map +0 -1
- package/dist/details-CPjlqQD4.js.map +0 -1
- package/dist/details-Cz9ok9si.cjs.map +0 -1
- package/dist/dialog-service-CzDO08Gy.cjs.map +0 -1
- package/dist/dialog-service-DH-tjPuE.js.map +0 -1
- package/dist/divider-CILo3_vi.cjs.map +0 -1
- package/dist/divider-ghgyw5CU.js.map +0 -1
- package/dist/expand-CbjBr_Ds.js.map +0 -1
- package/dist/expand-r3OrSoDk.cjs +0 -141
- package/dist/expand-r3OrSoDk.cjs.map +0 -1
- package/dist/extra-BZeZOMBI.cjs.map +0 -1
- package/dist/extra-DK9MQtPJ.js.map +0 -1
- package/dist/float-CuZ8LOgB.cjs +0 -1
- package/dist/flow-BPDtbhLe.js +0 -386
- package/dist/flow-BPDtbhLe.js.map +0 -1
- package/dist/flow-Dn9AZktE.cjs +0 -1
- package/dist/flow-Dn9AZktE.cjs.map +0 -1
- package/dist/form-rCZqoAoK.js.map +0 -1
- package/dist/form-wI58M85H.cjs.map +0 -1
- package/dist/handover/agent-runtime-v2-loopback.md +0 -71
- package/dist/handover/claude-design-v2-paste.md +0 -42
- package/dist/icons-Drq4kKy2.js.map +0 -1
- package/dist/icons-DtdhaZdc.cjs +0 -52
- package/dist/icons-DtdhaZdc.cjs.map +0 -1
- package/dist/iframe-BkwwWIbQ.cjs +0 -24
- package/dist/iframe-BkwwWIbQ.cjs.map +0 -1
- package/dist/iframe-BmyHW8km.js.map +0 -1
- package/dist/index.es-BgmFX1JM.cjs +0 -1
- package/dist/index.es-BgmFX1JM.cjs.map +0 -1
- package/dist/index.es-CLyb_o3Y.js +0 -489
- package/dist/index.es-CLyb_o3Y.js.map +0 -1
- package/dist/input-BGNZlfL8.cjs.map +0 -1
- package/dist/input-Bc3bVISm.js.map +0 -1
- package/dist/input-chip-BQrjpjaQ.js.map +0 -1
- package/dist/input-chip-DN-cwf11.cjs.map +0 -1
- package/dist/intersection-BrXp4YTO.js +0 -12
- package/dist/intersection-BrXp4YTO.js.map +0 -1
- package/dist/intersection-DqBqnpgh.cjs +0 -1
- package/dist/intersection-DqBqnpgh.cjs.map +0 -1
- package/dist/layout-7eyMBmZk.cjs +0 -17
- package/dist/layout-7eyMBmZk.cjs.map +0 -1
- package/dist/layout-Ox6nJkzC.js +0 -268
- package/dist/layout-Ox6nJkzC.js.map +0 -1
- package/dist/lightbox-CY52Z_ig.js.map +0 -1
- package/dist/lightbox-H8Uq3AXy.cjs +0 -202
- package/dist/lightbox-H8Uq3AXy.cjs.map +0 -1
- package/dist/list-BGjVo6zb.cjs +0 -40
- package/dist/list-BGjVo6zb.cjs.map +0 -1
- package/dist/list-D7wUxu1C.js.map +0 -1
- package/dist/litElement.mixin-CszkJuNl.js +0 -12
- package/dist/litElement.mixin-CszkJuNl.js.map +0 -1
- package/dist/litElement.mixin-qh5-IIUq.cjs +0 -1
- package/dist/litElement.mixin-qh5-IIUq.cjs.map +0 -1
- package/dist/mailbox--EN-JhjV.js.map +0 -1
- package/dist/mailbox-DLiBGJhY.cjs.map +0 -1
- package/dist/map-B0S_q3ma.js.map +0 -1
- package/dist/map-EDQN0I6e.cjs +0 -80
- package/dist/map-EDQN0I6e.cjs.map +0 -1
- package/dist/menu-3edZGQ1x.cjs.map +0 -1
- package/dist/menu-COeFpb6n.js.map +0 -1
- package/dist/metric.cjs +0 -69
- package/dist/metric.cjs.map +0 -1
- package/dist/metric.js +0 -93
- package/dist/metric.js.map +0 -1
- package/dist/mixins.cjs.map +0 -1
- package/dist/mixins.js.map +0 -1
- package/dist/notification-CC-TFN5v.js.map +0 -1
- package/dist/notification-P4c-kFdH.cjs +0 -23
- package/dist/notification-P4c-kFdH.cjs.map +0 -1
- package/dist/option-BwAF4nAw.js.map +0 -1
- package/dist/option-Cu0ertuF.cjs +0 -43
- package/dist/option-Cu0ertuF.cjs.map +0 -1
- package/dist/progress-Bk_Q1Shy.js.map +0 -1
- package/dist/progress-Yz6EMNSu.cjs.map +0 -1
- package/dist/provide-CYgj58u_.cjs +0 -1
- package/dist/provide-CYgj58u_.cjs.map +0 -1
- package/dist/provide-ydIskwf2.js +0 -107
- package/dist/provide-ydIskwf2.js.map +0 -1
- package/dist/radio-group-BcdcjLNC.js.map +0 -1
- package/dist/radio-group-BpBz5tRA.cjs +0 -40
- package/dist/radio-group-BpBz5tRA.cjs.map +0 -1
- package/dist/scroll-DXQv0ejL.js.map +0 -1
- package/dist/scroll-DbZMTv0K.cjs +0 -26
- package/dist/scroll-DbZMTv0K.cjs.map +0 -1
- package/dist/search-CwMav5QB.cjs +0 -1
- package/dist/select-BV4lK2zy.cjs.map +0 -1
- package/dist/select-DKyGWDsG.js.map +0 -1
- package/dist/sheet-BAI_jH1t.cjs +0 -35
- package/dist/sheet-BAI_jH1t.cjs.map +0 -1
- package/dist/sheet-C3TLKItO.js.map +0 -1
- package/dist/sheet.service-RcDBwHmv.cjs +0 -1
- package/dist/skills/schmancy/store.md +0 -126
- package/dist/skills/store.md +0 -126
- package/dist/sound.service-BEN6Xjy_.cjs +0 -1
- package/dist/sound.service-BEN6Xjy_.cjs.map +0 -1
- package/dist/sound.service-DWZe6swU.js.map +0 -1
- package/dist/splash-screen-DbI5RgBf.js.map +0 -1
- package/dist/splash-screen-DoHRTHi8.cjs +0 -41
- package/dist/splash-screen-DoHRTHi8.cjs.map +0 -1
- package/dist/src-00DfxCJq.js.map +0 -1
- package/dist/src-C_JjQovE.cjs +0 -269
- package/dist/src-C_JjQovE.cjs.map +0 -1
- package/dist/store-CjFHCSDb.cjs +0 -1
- package/dist/store-CjFHCSDb.cjs.map +0 -1
- package/dist/store-CjzZDQt8.js +0 -1654
- package/dist/store-CjzZDQt8.js.map +0 -1
- package/dist/store.cjs +0 -1
- package/dist/store.js +0 -2
- package/dist/surface-D-GWBcsh.cjs +0 -7
- package/dist/surface-D-GWBcsh.cjs.map +0 -1
- package/dist/surface-D23JtxYP.js +0 -22
- package/dist/surface-D23JtxYP.js.map +0 -1
- package/dist/surface.mixin-DqMwoddO.js +0 -320
- package/dist/surface.mixin-DqMwoddO.js.map +0 -1
- package/dist/surface.mixin-DxOi-xo0.cjs +0 -297
- package/dist/surface.mixin-DxOi-xo0.cjs.map +0 -1
- package/dist/table-C7b73kdg.cjs +0 -63
- package/dist/table-C7b73kdg.cjs.map +0 -1
- package/dist/table-CTrhV9-k.js +0 -631
- package/dist/table-CTrhV9-k.js.map +0 -1
- package/dist/tabs-Ce55RbwF.js.map +0 -1
- package/dist/tabs-DAzB8O7w.cjs +0 -31
- package/dist/tabs-DAzB8O7w.cjs.map +0 -1
- package/dist/tailwind.mixin-DRI1oTYQ.cjs +0 -2
- package/dist/tailwind.mixin-DRI1oTYQ.cjs.map +0 -1
- package/dist/tailwind.mixin-mdQR3BEO.js +0 -219
- package/dist/tailwind.mixin-mdQR3BEO.js.map +0 -1
- package/dist/textarea-DjN1D9u0.js.map +0 -1
- package/dist/textarea-PuHxBvJA.cjs +0 -39
- package/dist/textarea-PuHxBvJA.cjs.map +0 -1
- package/dist/theme-B-IJ2r7Q.cjs +0 -181
- package/dist/theme-button-BSbYmS4p.cjs +0 -8
- package/dist/theme-button-BSbYmS4p.cjs.map +0 -1
- package/dist/theme-button-CEMeAUOL.js.map +0 -1
- package/dist/theme.service-DxJPUGlu.cjs +0 -1
- package/dist/theme.service-DxJPUGlu.cjs.map +0 -1
- package/dist/theme.service-cOfPrtfe.js.map +0 -1
- package/dist/tslib.es6-Cnt75pb6.cjs +0 -1
- package/dist/tslib.es6-Cnt75pb6.cjs.map +0 -1
- package/dist/tslib.es6-DMzzJKHV.js +0 -7
- package/dist/tslib.es6-DMzzJKHV.js.map +0 -1
- package/dist/utils-Bp2jhyZc.js.map +0 -1
- package/dist/utils-CBPQvxNW.cjs +0 -1
- package/dist/utils-CBPQvxNW.cjs.map +0 -1
- package/dist/window-CrjZdf7Y.js.map +0 -1
- package/dist/window-DTUARSrU.cjs +0 -59
- package/dist/window-DTUARSrU.cjs.map +0 -1
- package/skills/schmancy/store.md +0 -126
- package/src/components/form-elements/index.ts +0 -1
- package/src/components/index.ts +0 -1
- package/src/layout/flex/flex.scss +0 -4
- package/src/layout/flex/flex.ts +0 -74
- package/src/layout/flex/index.ts +0 -1
- package/src/layout/grid/.readme +0 -79
- package/src/layout/grid/grid.scss +0 -5
- package/src/layout/grid/grid.ts +0 -121
- package/src/layout/grid/index.ts +0 -1
- package/src/layout/layout.ts +0 -122
- package/src/layout/v2/flex.ts +0 -243
- package/src/layout/v2/index.ts +0 -1
- package/src/metric/index.ts +0 -1
- package/src/metric/metric.ts +0 -127
- package/src/store/context-array.ts +0 -358
- package/src/store/context-collection.ts +0 -218
- package/src/store/context-create.ts +0 -284
- package/src/store/context-object.ts +0 -298
- package/src/store/filter-directive.ts +0 -614
- package/src/store/index.ts +0 -10
- package/src/store/selector-hook.ts +0 -259
- package/src/store/selectors.ts +0 -289
- package/src/store/storage-manager.ts +0 -269
- package/src/store/store.class.ts +0 -239
- package/src/store/types.ts +0 -327
- package/src/tabs/tabs-compatibility.ts +0 -20
- package/src/typewriter/typewriter.ts +0 -410
- package/types/src/area/route.test.d.ts +0 -20
- package/types/src/button/button.test.d.ts +0 -1
- package/types/src/chips/chip.d.ts +0 -3
- package/types/src/components/index.d.ts +0 -1
- package/types/src/content-drawer/$sheet.d.ts +0 -14
- package/types/src/dialog/dailog.d.ts +0 -116
- package/types/src/dialog/dialog-content.d.ts +0 -17
- package/types/src/directives/guard.d.ts +0 -1
- package/types/src/directives/visibility.d.ts +0 -11
- package/types/src/form/form-v2.d.ts +0 -22
- package/types/src/input/input-v2.d.ts +0 -250
- package/types/src/layout/flex/flex.d.ts +0 -26
- package/types/src/layout/flex/index.d.ts +0 -1
- package/types/src/layout/grid/grid.d.ts +0 -39
- package/types/src/layout/grid/index.d.ts +0 -1
- package/types/src/layout/layout.d.ts +0 -59
- package/types/src/layout/v2/flex.d.ts +0 -65
- package/types/src/layout/v2/grid.d.ts +0 -51
- package/types/src/layout/v2/index.d.ts +0 -1
- package/types/src/lightbox/flip.directive.d.ts +0 -22
- package/types/src/metric/index.d.ts +0 -1
- package/types/src/metric/metric.d.ts +0 -39
- package/types/src/notification/outlet.d.ts +0 -10
- package/types/src/sheet/header.d.ts +0 -10
- package/types/src/store/context-array.d.ts +0 -83
- package/types/src/store/context-collection.d.ts +0 -74
- package/types/src/store/context-create.d.ts +0 -43
- package/types/src/store/context-object.d.ts +0 -46
- package/types/src/store/filter-directive.d.ts +0 -116
- package/types/src/store/immer-integration.d.ts +0 -54
- package/types/src/store/index.d.ts +0 -10
- package/types/src/store/selector-hook.d.ts +0 -46
- package/types/src/store/selectors.d.ts +0 -90
- package/types/src/store/storage-manager.d.ts +0 -48
- package/types/src/store/store.class.d.ts +0 -73
- package/types/src/store/types.d.ts +0 -241
- package/types/src/tabs/tabs-compatibility.d.ts +0 -13
- package/types/src/theme/theme.elevation.d.ts +0 -131
- package/types/src/theme/theme.motion.d.ts +0 -198
- package/types/src/theme/theme.shape.d.ts +0 -144
- package/types/src/theme/theme.state.d.ts +0 -546
- package/types/src/theme/theme.typography.d.ts +0 -74
- package/types/src/tooltip/tooltip.d.ts +0 -33
- package/types/src/typewriter/typewriter.d.ts +0 -94
- /package/dist/agent/{flow-CvG1fLW5.js → flow-CaPi2G8y.js} +0 -0
- /package/dist/agent/{vendor-material-color-DcL7ZPxx.js → vendor-material-color-Be96dpGE.js} +0 -0
- /package/dist/{animation-hXFClrIn.js → animation-BK-8BwY8.js} +0 -0
- /package/dist/{animation-CQRdLgzX.cjs → animation-CO_Csq84.cjs} +0 -0
- /package/dist/{decorate-D_utPUsC.js → decorate-23nYs4Le.js} +0 -0
- /package/dist/{decorate-F9CuyeHg.cjs → decorate-DpFmy0nm.cjs} +0 -0
- /package/dist/{hashContent-B2IntJQf.js → hashContent-1ARKIsx9.js} +0 -0
- /package/dist/{hashContent-CahnEuut.cjs → hashContent-Bp5S6T4U.cjs} +0 -0
- /package/dist/{lazy-D6R5N5v4.js → lazy-B0ia54tT.js} +0 -0
- /package/dist/{lazy-BDNnH_r7.cjs → lazy-Dq9mRRjT.cjs} +0 -0
- /package/dist/{reduced-motion-BZTLqAyl.js → reduced-motion-D-L12p7G.js} +0 -0
- /package/dist/{reduced-motion-9RjNnhIg.cjs → reduced-motion-Ds-HjMzn.cjs} +0 -0
- /package/dist/{rxjs-utils-DJbZRjp3.cjs → rxjs-utils-Csnks202.cjs} +0 -0
- /package/dist/{rxjs-utils-CKTnEKUH.js → rxjs-utils-d-ivVN84.js} +0 -0
- /package/dist/{theme.events-NuihzD_p.js → theme.events-Cv7N4Toe.js} +0 -0
- /package/dist/{theme.events-DakXxZeP.cjs → theme.events-DM4H5F2d.cjs} +0 -0
- /package/dist/{theme.interface-DTwkuAKJ.cjs → theme.interface-D9l33b-M.cjs} +0 -0
- /package/dist/{theme.interface-Buged9Cg.js → theme.interface-DnVNre4O.js} +0 -0
- /package/src/{directives/typewriter.ts → typewriter/typewriter.directive.ts} +0 -0
- /package/types/src/{components/form-elements → payment-card-form}/index.d.ts +0 -0
- /package/types/src/{directives/typewriter.d.ts → typewriter/typewriter.directive.d.ts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require(`./chunk-CncqDLb2.cjs`)
|
|
1
|
+
const e=require(`./chunk-CncqDLb2.cjs`),t=require(`./mixins-BIXF7xkF.cjs`),n=require(`./decorate-DpFmy0nm.cjs`);let r=require(`rxjs`),i=require(`rxjs/operators`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`highlight.js/lib/core`);s=e.r(s,1);let c=require(`highlight.js/lib/languages/bash`);c=e.r(c,1);let l=require(`highlight.js/lib/languages/javascript`);l=e.r(l,1);let u=require(`highlight.js/lib/languages/markdown`);u=e.r(u,1);let d=require(`highlight.js/lib/languages/typescript`);d=e.r(d,1);let f=require(`highlight.js/lib/languages/xml`);f=e.r(f,1);let p=require(`lit/directives/unsafe-html.js`);s.default.registerLanguage(`javascript`,l.default),s.default.registerLanguage(`typescript`,d.default),s.default.registerLanguage(`html`,f.default),s.default.registerLanguage(`xml`,f.default),s.default.registerLanguage(`markdown`,u.default),s.default.registerLanguage(`bash`,c.default);var m=class extends t.s{constructor(...e){super(...e),this.language=`javascript`,this.code=``,this.lineNumbers=!1,this.copyButton=!0,this.copied=!1}static{this.styles=[o.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
width: 100%;
|
|
@@ -118,8 +118,8 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./tailwind.mixin-DRI1oTYQ.cjs`)
|
|
|
118
118
|
user-select: none;
|
|
119
119
|
font-size: inherit;
|
|
120
120
|
}
|
|
121
|
-
`
|
|
122
|
-
`),n=this.getHighlightedLines();return t.map((e,t)=>{let r=t+1,i=n.has(r)?`code-line highlighted`:`code-line`,a=``;return this.lineNumbers&&(a+=`<span class="line-number">${r}</span>`),a+=e,`<div class="${i}">${a}</div>`}).join(``)}async copyCode(){try{await navigator.clipboard.writeText(this.code),this.copied=!0,setTimeout(()=>{this.copied=!1},2e3)}catch{}}getLanguageLabel(){return this.filename?this.filename:{javascript:`JavaScript`,typescript:`TypeScript`,html:`HTML`,markdown:`Markdown`,bash:`Bash`}[this.language.toLowerCase()]||this.language.toUpperCase()}render(){let e=this.lineNumbers||this.highlightLines?`code-with-lines`:`hljs`;return
|
|
121
|
+
`]}get highlightedCode(){if(!this.code)return``;let e=``;try{e=s.default.highlight(this.code.trim(),{language:this.language}).value}catch{try{e=s.default.highlightAuto(this.code.trim()).value}catch{e=this.escapeHtml(this.code.trim())}}return this.lineNumbers||this.highlightLines?this.addLineFeatures(e):e}escapeHtml(e){let t=document.createElement(`div`);return t.textContent=e,t.innerHTML}getHighlightedLines(){let e=new Set;if(!this.highlightLines)return e;let t=this.highlightLines.split(`,`);for(let n of t){let t=n.trim();if(t.includes(`-`)){let[n,r]=t.split(`-`).map(e=>parseInt(e.trim()));if(!isNaN(n)&&!isNaN(r))for(let t=n;t<=r;t++)e.add(t)}else{let n=parseInt(t);isNaN(n)||e.add(n)}}return e}addLineFeatures(e){let t=e.split(`
|
|
122
|
+
`),n=this.getHighlightedLines();return t.map((e,t)=>{let r=t+1,i=n.has(r)?`code-line highlighted`:`code-line`,a=``;return this.lineNumbers&&(a+=`<span class="line-number">${r}</span>`),a+=e,`<div class="${i}">${a}</div>`}).join(``)}async copyCode(){try{await navigator.clipboard.writeText(this.code),this.copied=!0,setTimeout(()=>{this.copied=!1},2e3)}catch{}}getLanguageLabel(){return this.filename?this.filename:{javascript:`JavaScript`,typescript:`TypeScript`,html:`HTML`,markdown:`Markdown`,bash:`Bash`}[this.language.toLowerCase()]||this.language.toUpperCase()}render(){let e=this.lineNumbers||this.highlightLines?`code-with-lines`:`hljs`;return o.html`
|
|
123
123
|
<schmancy-details class="bg-surface-default">
|
|
124
124
|
<section slot="summary">
|
|
125
125
|
<!-- Header -->
|
|
@@ -135,7 +135,7 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./tailwind.mixin-DRI1oTYQ.cjs`)
|
|
|
135
135
|
${this.getLanguageLabel()}
|
|
136
136
|
</span>
|
|
137
137
|
</div>
|
|
138
|
-
${this.copyButton?
|
|
138
|
+
${this.copyButton?o.html`
|
|
139
139
|
<schmancy-button
|
|
140
140
|
.variant="${this.copied?`filled tonal`:`text`}"
|
|
141
141
|
@click=${this.copyCode}
|
|
@@ -149,17 +149,17 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./tailwind.mixin-DRI1oTYQ.cjs`)
|
|
|
149
149
|
</section>
|
|
150
150
|
<!-- Code -->
|
|
151
151
|
<div class="overflow-auto" style="${this.maxHeight?`max-height: ${this.maxHeight}`:``}">
|
|
152
|
-
<pre class="m-0"><code class="${e}">${(0,
|
|
152
|
+
<pre class="m-0"><code class="${e}">${(0,p.unsafeHTML)(this.highlightedCode)}</code></pre>
|
|
153
153
|
</div>
|
|
154
154
|
</schmancy-details>
|
|
155
|
-
`}};
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
155
|
+
`}};n.t([(0,a.property)({type:String})],m.prototype,`language`,void 0),n.t([(0,a.property)({type:String})],m.prototype,`code`,void 0),n.t([(0,a.property)({type:String})],m.prototype,`filename`,void 0),n.t([(0,a.property)({type:Boolean})],m.prototype,`lineNumbers`,void 0),n.t([(0,a.property)({type:Boolean})],m.prototype,`copyButton`,void 0),n.t([(0,a.property)({type:String})],m.prototype,`highlightLines`,void 0),n.t([(0,a.property)({type:String})],m.prototype,`maxHeight`,void 0),n.t([(0,a.state)()],m.prototype,`copied`,void 0),m=n.t([(0,a.customElement)(`schmancy-code`)],m);var h=class extends t.s{constructor(...e){super(...e),this.language=`html`,this.layout=`vertical`,this.preview=!0,this.slotContent=``}static{this.styles=[o.css`:host{
|
|
156
|
+
display:block;
|
|
157
|
+
overflow:hidden;
|
|
158
|
+
position:relative;
|
|
159
|
+
inset:0;
|
|
160
|
+
}`]}connectedCallback(){super.connectedCallback(),(0,r.timer)(0).pipe((0,i.take)(1)).subscribe(()=>{let e=this.shadowRoot?.querySelector(`slot`);if(e){let t=e.assignedNodes({flatten:!0}).map(e=>e.nodeType===Node.ELEMENT_NODE?e.outerHTML:e.nodeType===Node.TEXT_NODE&&e.textContent||``).join(``).split(`
|
|
161
161
|
`),n=t.filter(e=>e.trim().length>0).reduce((e,t)=>{let n=t.match(/^(\s*)/)?.[1].length||0;return Math.min(e,n)},1/0);this.slotContent=t.map(e=>e.slice(n)).join(`
|
|
162
|
-
`).trim()}})}render(){let e=this.layout===`horizontal`?`grid grid-cols-1 lg:grid-cols-2 gap-0`:`flex flex-col`,t=this.preview&&this.language.toLowerCase()===`html`;return
|
|
162
|
+
`).trim()}})}render(){let e=this.layout===`horizontal`?`grid grid-cols-1 lg:grid-cols-2 gap-0`:`flex flex-col`,t=this.preview&&this.language.toLowerCase()===`html`;return o.html`
|
|
163
163
|
<schmancy-surface class="rounded-lg overflow-hidden">
|
|
164
164
|
<div class="${t?e:``}">
|
|
165
165
|
<!-- Code section with proper overflow handling -->
|
|
@@ -173,13 +173,13 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./tailwind.mixin-DRI1oTYQ.cjs`)
|
|
|
173
173
|
</div>
|
|
174
174
|
|
|
175
175
|
<!-- Preview section (only visible for HTML and when preview is enabled) -->
|
|
176
|
-
${t?
|
|
176
|
+
${t?o.html`
|
|
177
177
|
<div class="min-w-0 overflow-auto">
|
|
178
178
|
<schmancy-surface type="solid" class="p-2 h-full">
|
|
179
179
|
<slot></slot>
|
|
180
180
|
</schmancy-surface>
|
|
181
181
|
</div>
|
|
182
|
-
`:
|
|
182
|
+
`:o.html`
|
|
183
183
|
<!-- Hidden slot to capture content -->
|
|
184
184
|
<div class="hidden">
|
|
185
185
|
<slot></slot>
|
|
@@ -187,4 +187,4 @@ require(`./chunk-CncqDLb2.cjs`);const e=require(`./tailwind.mixin-DRI1oTYQ.cjs`)
|
|
|
187
187
|
`}
|
|
188
188
|
</div>
|
|
189
189
|
</schmancy-surface>
|
|
190
|
-
`}};
|
|
190
|
+
`}};n.t([(0,a.property)({type:String})],h.prototype,`language`,void 0),n.t([(0,a.property)({type:String})],h.prototype,`layout`,void 0),n.t([(0,a.property)({type:Boolean})],h.prototype,`preview`,void 0),n.t([(0,a.state)()],h.prototype,`slotContent`,void 0),h=n.t([(0,a.customElement)(`schmancy-code-preview`)],h),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-highlight-CJzuds4c.cjs","names":[],"sources":["../src/code-highlight/code-highlight.ts","../src/code-highlight/code-preview.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport hljs from 'highlight.js/lib/core'\nimport bash from 'highlight.js/lib/languages/bash'\nimport javascript from 'highlight.js/lib/languages/javascript'\nimport markdown from 'highlight.js/lib/languages/markdown'\nimport typescript from 'highlight.js/lib/languages/typescript'\nimport xml from 'highlight.js/lib/languages/xml'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\n\n// Register only the languages we need\nhljs.registerLanguage('javascript', javascript)\nhljs.registerLanguage('typescript', typescript)\nhljs.registerLanguage('html', xml)\nhljs.registerLanguage('xml', xml)\nhljs.registerLanguage('markdown', markdown)\nhljs.registerLanguage('bash', bash)\n\n/**\n * @element schmancy-code\n * Code highlighting component using highlight.js with schmancy theming support\n */\n@customElement('schmancy-code')\nexport class SchmancyCode extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\toverflow: hidden;\n\t}\n\n\t/* Code block styling using schmancy color system */\n\t.hljs {\n\t\tdisplay: block;\n\t\toverflow-x: auto;\n\t\tpadding: 0.5em;\n\t\tcolor: var(--md-sys-color-on-surface-variant);\n\t\tbackground: var(--md-sys-color-surface-container-lowest);\n\t\tfont-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n\t}\n\n\t/* Comments and documentation */\n\t.hljs-comment,\n\t.hljs-quote {\n\t\tcolor: var(--md-sys-color-outline);\n\t\tfont-style: italic;\n\t}\n\n\t/* Keywords, doctags, formulas */\n\t.hljs-doctag,\n\t.hljs-keyword,\n\t.hljs-formula {\n\t\tcolor: var(--md-sys-color-primary);\n\t}\n\n\t/* Tags, sections, names, deletions */\n\t.hljs-section,\n\t.hljs-name,\n\t.hljs-selector-tag,\n\t.hljs-deletion,\n\t.hljs-subst {\n\t\tcolor: var(--md-sys-color-error);\n\t}\n\n\t/* Literals */\n\t.hljs-literal {\n\t\tcolor: var(--md-sys-color-tertiary);\n\t}\n\n\t/* Strings, regex, additions */\n\t.hljs-string,\n\t.hljs-regexp,\n\t.hljs-addition,\n\t.hljs-attribute,\n\t.hljs-meta-string {\n\t\tcolor: var(--md-sys-color-secondary);\n\t}\n\n\t/* Built-ins and class titles */\n\t.hljs-built_in,\n\t.hljs-class .hljs-title {\n\t\tcolor: var(--md-sys-color-tertiary);\n\t}\n\n\t/* Variables, attributes, types */\n\t.hljs-attr,\n\t.hljs-variable,\n\t.hljs-template-variable,\n\t.hljs-type,\n\t.hljs-selector-class,\n\t.hljs-selector-attr,\n\t.hljs-selector-pseudo,\n\t.hljs-number {\n\t\tcolor: var(--md-sys-color-on-surface);\n\t}\n\n\t/* Symbols, bullets, links, meta */\n\t.hljs-symbol,\n\t.hljs-bullet,\n\t.hljs-link,\n\t.hljs-meta,\n\t.hljs-selector-id,\n\t.hljs-title {\n\t\tcolor: var(--md-sys-color-secondary);\n\t}\n\n\t.hljs-emphasis {\n\t\tfont-style: italic;\n\t}\n\n\t.hljs-strong {\n\t\tfont-weight: bold;\n\t}\n\n\t.hljs-link {\n\t\ttext-decoration: underline;\n\t}\n\n\t/* Line features styling */\n\t.code-with-lines {\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t.code-line {\n\t\tdisplay: block;\n\t\tpadding-left: 0;\n\t\ttransition: background-color 0.2s ease;\n\t}\n\n\t.code-line.highlighted {\n\t\tbackground-color: var(--md-sys-color-primary-container);\n\t\topacity: 0.2;\n\t}\n\n\t.line-number {\n\t\tdisplay: inline-block;\n\t\twidth: 3rem;\n\t\tpadding-right: 1rem;\n\t\ttext-align: right;\n\t\tcolor: var(--md-sys-color-outline);\n\t\tuser-select: none;\n\t\tfont-size: inherit;\n\t}\n`];\n\t/**\n\t * Programming language for syntax highlighting\n\t */\n\t@property({ type: String })\n\tlanguage: string = 'javascript'\n\n\t/**\n\t * Code content to highlight\n\t */\n\t@property({ type: String })\n\tcode: string = ''\n\n\t/**\n\t * Optional filename or title to display in header\n\t */\n\t@property({ type: String })\n\tfilename?: string\n\n\t/**\n\t * Show line numbers\n\t */\n\t@property({ type: Boolean })\n\tlineNumbers: boolean = false\n\n\t/**\n\t * Show copy button\n\t */\n\t@property({ type: Boolean })\n\tcopyButton: boolean = true\n\n\t/**\n\t * Highlighted line numbers (comma-separated or ranges like \"1-3,5,7-9\")\n\t */\n\t@property({ type: String })\n\thighlightLines?: string\n\n\t/**\n\t * Maximum height before scrolling\n\t */\n\t@property({ type: String })\n\tmaxHeight?: string\n\n\t@state()\n\tprivate copied: boolean = false\n\n\tprivate get highlightedCode(): string {\n\t\tif (!this.code) return ''\n\n\t\tlet highlightedHtml = ''\n\n\t\ttry {\n\t\t\t// Use highlight.js to get highlighted code\n\t\t\tconst result = hljs.highlight(this.code.trim(), { language: this.language })\n\t\t\thighlightedHtml = result.value\n\t\t} catch {\n\t\t\t// Fallback to auto-detection if language is not supported\n\t\t\ttry {\n\t\t\t\tconst result = hljs.highlightAuto(this.code.trim())\n\t\t\t\thighlightedHtml = result.value\n\t\t\t} catch {\n\t\t\t\t// Final fallback to escaped plain text\n\t\t\t\thighlightedHtml = this.escapeHtml(this.code.trim())\n\t\t\t}\n\t\t}\n\n\t\t// Process for line numbers and highlighting if needed\n\t\tif (this.lineNumbers || this.highlightLines) {\n\t\t\treturn this.addLineFeatures(highlightedHtml)\n\t\t}\n\n\t\treturn highlightedHtml\n\t}\n\n\tprivate escapeHtml(text: string): string {\n\t\tconst div = document.createElement('div')\n\t\tdiv.textContent = text\n\t\treturn div.innerHTML\n\t}\n\n\tprivate getHighlightedLines(): Set<number> {\n\t\tconst lines = new Set<number>()\n\t\tif (!this.highlightLines) return lines\n\n\t\tconst parts = this.highlightLines.split(',')\n\t\tfor (const part of parts) {\n\t\t\tconst trimmed = part.trim()\n\t\t\tif (trimmed.includes('-')) {\n\t\t\t\tconst [start, end] = trimmed.split('-').map(n => parseInt(n.trim()))\n\t\t\t\tif (!isNaN(start) && !isNaN(end)) {\n\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\tlines.add(i)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst lineNum = parseInt(trimmed)\n\t\t\t\tif (!isNaN(lineNum)) {\n\t\t\t\t\tlines.add(lineNum)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn lines\n\t}\n\n\tprivate addLineFeatures(highlightedHtml: string): string {\n\t\tconst lines = highlightedHtml.split('\\n')\n\t\tconst highlightedLines = this.getHighlightedLines()\n\n\t\treturn lines\n\t\t\t.map((line, index) => {\n\t\t\t\tconst lineNumber = index + 1\n\t\t\t\tconst isHighlighted = highlightedLines.has(lineNumber)\n\t\t\t\tconst lineClass = isHighlighted ? 'code-line highlighted' : 'code-line'\n\n\t\t\t\tlet content = ''\n\t\t\t\tif (this.lineNumbers) {\n\t\t\t\t\tcontent += `<span class=\"line-number\">${lineNumber}</span>`\n\t\t\t\t}\n\t\t\t\tcontent += line\n\n\t\t\t\treturn `<div class=\"${lineClass}\">${content}</div>`\n\t\t\t})\n\t\t\t.join('')\n\t}\n\n\tprivate async copyCode() {\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(this.code)\n\t\t\tthis.copied = true\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.copied = false\n\t\t\t}, 2000)\n\t\t} catch (err) {\n\t\t\tconsole.error('Failed to copy code:', err)\n\t\t}\n\t}\n\n\tprivate getLanguageLabel(): string {\n\t\tconst languageMap: Record<string, string> = {\n\t\t\tjavascript: 'JavaScript',\n\t\t\ttypescript: 'TypeScript',\n\t\t\thtml: 'HTML',\n\t\t\tmarkdown: 'Markdown',\n\t\t\tbash: 'Bash',\n\t\t}\n\n\t\tif (this.filename) {\n\t\t\treturn this.filename\n\t\t}\n\n\t\treturn languageMap[this.language.toLowerCase()] || this.language.toUpperCase()\n\t}\n\n\trender() {\n\t\tconst codeClass = this.lineNumbers || this.highlightLines ? 'code-with-lines' : 'hljs'\n\n\t\treturn html`\n\t\t\t<schmancy-details class=\"bg-surface-default\">\n\t\t\t\t<section slot=\"summary\">\n\t\t\t\t\t<!-- Header -->\n\t\t\t\t\t<div class=\"flex items-center justify-between\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t<div class=\"flex gap-1.5\">\n\t\t\t\t\t\t\t\t<div class=\"w-3 h-3 rounded-full opacity-60\" style=\"background-color: var(--md-sys-color-error);\"></div>\n\t\t\t\t\t\t\t\t<div class=\"w-3 h-3 rounded-full opacity-60\" style=\"background-color: var(--md-sys-color-tertiary);\"></div>\n\t\t\t\t\t\t\t\t<div class=\"w-3 h-3 rounded-full opacity-60\" style=\"background-color: var(--md-sys-color-secondary);\"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<span class=\"text-xs font-medium opacity-70 ml-2\" style=\"color: var(--md-sys-color-on-surface-variant);\">\n\t\t\t\t\t\t\t\t${this.getLanguageLabel()}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t${this.copyButton\n\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\t\t\t.variant=\"${this.copied ? 'filled tonal' : 'text'}\"\n\t\t\t\t\t\t\t\t\t\t@click=${this.copyCode}\n\t\t\t\t\t\t\t\t\t\tclass=\"transition-all\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<schmancy-icon > ${this.copied ? 'check' : 'content_copy'} </schmancy-icon>\n\t\t\t\t\t\t\t\t\t\t<span class=\"ml-1\">${this.copied ? 'Copied!' : 'Copy'}</span>\n\t\t\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t\t<!-- Code -->\n\t\t\t\t<div class=\"overflow-auto\" style=\"${this.maxHeight ? `max-height: ${this.maxHeight}` : ''}\">\n\t\t\t\t\t<pre class=\"m-0\"><code class=\"${codeClass}\">${unsafeHTML(this.highlightedCode)}</code></pre>\n\t\t\t\t</div>\n\t\t\t</schmancy-details>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-code': SchmancyCode\n\t}\n}\n","import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { timer } from 'rxjs'\nimport { take } from 'rxjs/operators'\n\n/**\n * @element schmancy-code-preview\n * A component that shows code and its rendered preview side by side\n * Takes the content as a slot and displays both the source and rendered result\n */\n@customElement('schmancy-code-preview')\nexport class SchmancyCodePreview extends SchmancyElement {\n\tstatic styles = [\n\t\tcss`:host{\n\t\t\tdisplay:block;\n\t\t\toverflow:hidden;\n\t\t\tposition:relative;\n\t\t\tinset:0;\n\t\t}`,\n\t];\n\n\t/**\n\t * Programming language for syntax highlighting\n\t */\n\t@property({ type: String })\n\tlanguage: string = 'html'\n\n\t/**\n\t * Show code on top or side-by-side\n\t */\n\t@property({ type: String })\n\tlayout: 'vertical' | 'horizontal' = 'vertical'\n\n\t/**\n\t * Whether to render/execute the code in preview section\n\t * When false, only shows the code without rendering\n\t */\n\t@property({ type: Boolean })\n\tpreview: boolean = true\n\n\t@state()\n\tprivate slotContent: string = ''\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Capture the slot content as HTML string\n\t\ttimer(0).pipe(take(1)).subscribe(() => {\n\t\t\tconst slot = this.shadowRoot?.querySelector('slot')\n\t\t\tif (slot) {\n\t\t\t\tconst nodes = slot.assignedNodes({ flatten: true })\n\t\t\t\tconst htmlStrings = nodes.map(node => {\n\t\t\t\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\t\t\treturn (node as HTMLElement).outerHTML\n\t\t\t\t\t} else if (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t\t\treturn node.textContent || ''\n\t\t\t\t\t}\n\t\t\t\t\treturn ''\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\t// Clean up the HTML string\n\t\t\t\tconst rawContent = htmlStrings.join('')\n\t\t\t\t\n\t\t\t\t// Find the minimum indentation (excluding empty lines)\n\t\t\t\tconst lines = rawContent.split('\\n')\n\t\t\t\tconst minIndent = lines\n\t\t\t\t\t.filter(line => line.trim().length > 0)\n\t\t\t\t\t.reduce((min, line) => {\n\t\t\t\t\t\tconst indent = line.match(/^(\\s*)/)?.[1].length || 0\n\t\t\t\t\t\treturn Math.min(min, indent)\n\t\t\t\t\t}, Infinity)\n\t\t\t\t\n\t\t\t\t// Remove the minimum indentation from all lines\n\t\t\t\tthis.slotContent = lines\n\t\t\t\t\t.map(line => line.slice(minIndent))\n\t\t\t\t\t.join('\\n')\n\t\t\t\t\t.trim()\n\t\t\t}\n\t\t})\n\t}\n\n\trender() {\n\t\tconst containerClass = this.layout === 'horizontal' \n\t\t\t? 'grid grid-cols-1 lg:grid-cols-2 gap-0' \n\t\t\t: 'flex flex-col'\n\n\t\tconst showPreview = this.preview && this.language.toLowerCase() === 'html'\n\t\t\n\t\treturn html`\n\t\t\t<schmancy-surface class=\"rounded-lg overflow-hidden\">\n\t\t\t\t<div class=\"${showPreview ? containerClass : ''}\">\n\t\t\t\t\t<!-- Code section with proper overflow handling -->\n\t\t\t\t\t<div class=\"min-w-0 overflow-hidden\">\n\t\t\t\t\t\t<schmancy-code\n\t\t\t\t\t\t\tlanguage=\"${this.language}\"\n\t\t\t\t\t\t\t.code=\"${this.slotContent}\"\n\t\t\t\t\t\t\t?copyButton=\"${true}\"\n\t\t\t\t\t\t\tclass=\"block w-full\"\n\t\t\t\t\t\t></schmancy-code>\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<!-- Preview section (only visible for HTML and when preview is enabled) -->\n\t\t\t\t\t${showPreview ? html`\n\t\t\t\t\t\t<div class=\"min-w-0 overflow-auto\">\n\t\t\t\t\t\t\t<schmancy-surface type=\"solid\" class=\"p-2 h-full\">\n\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t</schmancy-surface>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : html`\n\t\t\t\t\t\t<!-- Hidden slot to capture content -->\n\t\t\t\t\t\t<div class=\"hidden\">\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`}\n\t\t\t\t</div>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-code-preview': SchmancyCodePreview\n\t}\n}"],"mappings":"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"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t } from "./decorate-
|
|
3
|
-
import "./mixins.js";
|
|
1
|
+
import { s as e } from "./mixins-CL1krSOE.js";
|
|
2
|
+
import { t } from "./decorate-23nYs4Le.js";
|
|
4
3
|
import { timer as n } from "rxjs";
|
|
5
4
|
import { take as r } from "rxjs/operators";
|
|
6
5
|
import { customElement as i, property as a, state as o } from "lit/decorators.js";
|
|
7
6
|
import { css as s, html as c } from "lit";
|
|
8
|
-
import
|
|
9
|
-
|
|
7
|
+
import l from "highlight.js/lib/core";
|
|
8
|
+
import u from "highlight.js/lib/languages/bash";
|
|
9
|
+
import d from "highlight.js/lib/languages/javascript";
|
|
10
|
+
import f from "highlight.js/lib/languages/markdown";
|
|
11
|
+
import p from "highlight.js/lib/languages/typescript";
|
|
12
|
+
import m from "highlight.js/lib/languages/xml";
|
|
13
|
+
import { unsafeHTML as h } from "lit/directives/unsafe-html.js";
|
|
14
|
+
l.registerLanguage("javascript", d), l.registerLanguage("typescript", p), l.registerLanguage("html", m), l.registerLanguage("xml", m), l.registerLanguage("markdown", f), l.registerLanguage("bash", u);
|
|
15
|
+
var g = class extends e {
|
|
16
|
+
constructor(...e) {
|
|
17
|
+
super(...e), this.language = "javascript", this.code = "", this.lineNumbers = !1, this.copyButton = !0, this.copied = !1;
|
|
18
|
+
}
|
|
19
|
+
static {
|
|
20
|
+
this.styles = [s`
|
|
10
21
|
:host {
|
|
11
22
|
display: block;
|
|
12
23
|
width: 100%;
|
|
@@ -126,38 +137,21 @@ var u = null, d = class extends e(s`
|
|
|
126
137
|
user-select: none;
|
|
127
138
|
font-size: inherit;
|
|
128
139
|
}
|
|
129
|
-
`
|
|
130
|
-
constructor(...e) {
|
|
131
|
-
super(...e), this.language = "javascript", this.code = "", this.lineNumbers = !1, this.copyButton = !0, this.copied = !1, this._highlightedCode = "";
|
|
140
|
+
`];
|
|
132
141
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
async _rehighlight() {
|
|
137
|
-
if (!this.code) return void (this._highlightedCode = "");
|
|
138
|
-
let e = await (u ||= Promise.all([
|
|
139
|
-
import("highlight.js/lib/core"),
|
|
140
|
-
import("highlight.js/lib/languages/bash"),
|
|
141
|
-
import("highlight.js/lib/languages/javascript"),
|
|
142
|
-
import("highlight.js/lib/languages/markdown"),
|
|
143
|
-
import("highlight.js/lib/languages/typescript"),
|
|
144
|
-
import("highlight.js/lib/languages/xml")
|
|
145
|
-
]).then(([e, t, n, r, i, a]) => {
|
|
146
|
-
let o = e.default;
|
|
147
|
-
return o.registerLanguage("javascript", n.default), o.registerLanguage("typescript", i.default), o.registerLanguage("html", a.default), o.registerLanguage("xml", a.default), o.registerLanguage("markdown", r.default), o.registerLanguage("bash", t.default), o;
|
|
148
|
-
}));
|
|
149
|
-
if (!this.isConnected) return;
|
|
150
|
-
let t = "";
|
|
142
|
+
get highlightedCode() {
|
|
143
|
+
if (!this.code) return "";
|
|
144
|
+
let e = "";
|
|
151
145
|
try {
|
|
152
|
-
|
|
146
|
+
e = l.highlight(this.code.trim(), { language: this.language }).value;
|
|
153
147
|
} catch {
|
|
154
148
|
try {
|
|
155
|
-
|
|
149
|
+
e = l.highlightAuto(this.code.trim()).value;
|
|
156
150
|
} catch {
|
|
157
|
-
|
|
151
|
+
e = this.escapeHtml(this.code.trim());
|
|
158
152
|
}
|
|
159
153
|
}
|
|
160
|
-
this.lineNumbers || this.highlightLines ? this.
|
|
154
|
+
return this.lineNumbers || this.highlightLines ? this.addLineFeatures(e) : e;
|
|
161
155
|
}
|
|
162
156
|
escapeHtml(e) {
|
|
163
157
|
let t = document.createElement("div");
|
|
@@ -234,22 +228,25 @@ var u = null, d = class extends e(s`
|
|
|
234
228
|
</section>
|
|
235
229
|
<!-- Code -->
|
|
236
230
|
<div class="overflow-auto" style="${this.maxHeight ? `max-height: ${this.maxHeight}` : ""}">
|
|
237
|
-
<pre class="m-0"><code class="${e}">${
|
|
231
|
+
<pre class="m-0"><code class="${e}">${h(this.highlightedCode)}</code></pre>
|
|
238
232
|
</div>
|
|
239
233
|
</schmancy-details>
|
|
240
234
|
`;
|
|
241
235
|
}
|
|
242
236
|
};
|
|
243
|
-
t([a({ type: String })],
|
|
244
|
-
var
|
|
245
|
-
display:block;
|
|
246
|
-
overflow:hidden;
|
|
247
|
-
position:relative;
|
|
248
|
-
inset:0;
|
|
249
|
-
}`) {
|
|
237
|
+
t([a({ type: String })], g.prototype, "language", void 0), t([a({ type: String })], g.prototype, "code", void 0), t([a({ type: String })], g.prototype, "filename", void 0), t([a({ type: Boolean })], g.prototype, "lineNumbers", void 0), t([a({ type: Boolean })], g.prototype, "copyButton", void 0), t([a({ type: String })], g.prototype, "highlightLines", void 0), t([a({ type: String })], g.prototype, "maxHeight", void 0), t([o()], g.prototype, "copied", void 0), g = t([i("schmancy-code")], g);
|
|
238
|
+
var _ = class extends e {
|
|
250
239
|
constructor(...e) {
|
|
251
240
|
super(...e), this.language = "html", this.layout = "vertical", this.preview = !0, this.slotContent = "";
|
|
252
241
|
}
|
|
242
|
+
static {
|
|
243
|
+
this.styles = [s`:host{
|
|
244
|
+
display:block;
|
|
245
|
+
overflow:hidden;
|
|
246
|
+
position:relative;
|
|
247
|
+
inset:0;
|
|
248
|
+
}`];
|
|
249
|
+
}
|
|
253
250
|
connectedCallback() {
|
|
254
251
|
super.connectedCallback(), n(0).pipe(r(1)).subscribe(() => {
|
|
255
252
|
let e = this.shadowRoot?.querySelector("slot");
|
|
@@ -295,5 +292,5 @@ var f = class extends e(s`:host{
|
|
|
295
292
|
`;
|
|
296
293
|
}
|
|
297
294
|
};
|
|
298
|
-
t([a({ type: String })],
|
|
299
|
-
export {
|
|
295
|
+
t([a({ type: String })], _.prototype, "language", void 0), t([a({ type: String })], _.prototype, "layout", void 0), t([a({ type: Boolean })], _.prototype, "preview", void 0), t([o()], _.prototype, "slotContent", void 0), _ = t([i("schmancy-code-preview")], _);
|
|
296
|
+
export { g as n, _ as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-highlight-CcdCFMrn.js","names":[],"sources":["../src/code-highlight/code-highlight.ts","../src/code-highlight/code-preview.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport hljs from 'highlight.js/lib/core'\nimport bash from 'highlight.js/lib/languages/bash'\nimport javascript from 'highlight.js/lib/languages/javascript'\nimport markdown from 'highlight.js/lib/languages/markdown'\nimport typescript from 'highlight.js/lib/languages/typescript'\nimport xml from 'highlight.js/lib/languages/xml'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\n\n// Register only the languages we need\nhljs.registerLanguage('javascript', javascript)\nhljs.registerLanguage('typescript', typescript)\nhljs.registerLanguage('html', xml)\nhljs.registerLanguage('xml', xml)\nhljs.registerLanguage('markdown', markdown)\nhljs.registerLanguage('bash', bash)\n\n/**\n * @element schmancy-code\n * Code highlighting component using highlight.js with schmancy theming support\n */\n@customElement('schmancy-code')\nexport class SchmancyCode extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\toverflow: hidden;\n\t}\n\n\t/* Code block styling using schmancy color system */\n\t.hljs {\n\t\tdisplay: block;\n\t\toverflow-x: auto;\n\t\tpadding: 0.5em;\n\t\tcolor: var(--md-sys-color-on-surface-variant);\n\t\tbackground: var(--md-sys-color-surface-container-lowest);\n\t\tfont-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n\t}\n\n\t/* Comments and documentation */\n\t.hljs-comment,\n\t.hljs-quote {\n\t\tcolor: var(--md-sys-color-outline);\n\t\tfont-style: italic;\n\t}\n\n\t/* Keywords, doctags, formulas */\n\t.hljs-doctag,\n\t.hljs-keyword,\n\t.hljs-formula {\n\t\tcolor: var(--md-sys-color-primary);\n\t}\n\n\t/* Tags, sections, names, deletions */\n\t.hljs-section,\n\t.hljs-name,\n\t.hljs-selector-tag,\n\t.hljs-deletion,\n\t.hljs-subst {\n\t\tcolor: var(--md-sys-color-error);\n\t}\n\n\t/* Literals */\n\t.hljs-literal {\n\t\tcolor: var(--md-sys-color-tertiary);\n\t}\n\n\t/* Strings, regex, additions */\n\t.hljs-string,\n\t.hljs-regexp,\n\t.hljs-addition,\n\t.hljs-attribute,\n\t.hljs-meta-string {\n\t\tcolor: var(--md-sys-color-secondary);\n\t}\n\n\t/* Built-ins and class titles */\n\t.hljs-built_in,\n\t.hljs-class .hljs-title {\n\t\tcolor: var(--md-sys-color-tertiary);\n\t}\n\n\t/* Variables, attributes, types */\n\t.hljs-attr,\n\t.hljs-variable,\n\t.hljs-template-variable,\n\t.hljs-type,\n\t.hljs-selector-class,\n\t.hljs-selector-attr,\n\t.hljs-selector-pseudo,\n\t.hljs-number {\n\t\tcolor: var(--md-sys-color-on-surface);\n\t}\n\n\t/* Symbols, bullets, links, meta */\n\t.hljs-symbol,\n\t.hljs-bullet,\n\t.hljs-link,\n\t.hljs-meta,\n\t.hljs-selector-id,\n\t.hljs-title {\n\t\tcolor: var(--md-sys-color-secondary);\n\t}\n\n\t.hljs-emphasis {\n\t\tfont-style: italic;\n\t}\n\n\t.hljs-strong {\n\t\tfont-weight: bold;\n\t}\n\n\t.hljs-link {\n\t\ttext-decoration: underline;\n\t}\n\n\t/* Line features styling */\n\t.code-with-lines {\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t.code-line {\n\t\tdisplay: block;\n\t\tpadding-left: 0;\n\t\ttransition: background-color 0.2s ease;\n\t}\n\n\t.code-line.highlighted {\n\t\tbackground-color: var(--md-sys-color-primary-container);\n\t\topacity: 0.2;\n\t}\n\n\t.line-number {\n\t\tdisplay: inline-block;\n\t\twidth: 3rem;\n\t\tpadding-right: 1rem;\n\t\ttext-align: right;\n\t\tcolor: var(--md-sys-color-outline);\n\t\tuser-select: none;\n\t\tfont-size: inherit;\n\t}\n`];\n\t/**\n\t * Programming language for syntax highlighting\n\t */\n\t@property({ type: String })\n\tlanguage: string = 'javascript'\n\n\t/**\n\t * Code content to highlight\n\t */\n\t@property({ type: String })\n\tcode: string = ''\n\n\t/**\n\t * Optional filename or title to display in header\n\t */\n\t@property({ type: String })\n\tfilename?: string\n\n\t/**\n\t * Show line numbers\n\t */\n\t@property({ type: Boolean })\n\tlineNumbers: boolean = false\n\n\t/**\n\t * Show copy button\n\t */\n\t@property({ type: Boolean })\n\tcopyButton: boolean = true\n\n\t/**\n\t * Highlighted line numbers (comma-separated or ranges like \"1-3,5,7-9\")\n\t */\n\t@property({ type: String })\n\thighlightLines?: string\n\n\t/**\n\t * Maximum height before scrolling\n\t */\n\t@property({ type: String })\n\tmaxHeight?: string\n\n\t@state()\n\tprivate copied: boolean = false\n\n\tprivate get highlightedCode(): string {\n\t\tif (!this.code) return ''\n\n\t\tlet highlightedHtml = ''\n\n\t\ttry {\n\t\t\t// Use highlight.js to get highlighted code\n\t\t\tconst result = hljs.highlight(this.code.trim(), { language: this.language })\n\t\t\thighlightedHtml = result.value\n\t\t} catch {\n\t\t\t// Fallback to auto-detection if language is not supported\n\t\t\ttry {\n\t\t\t\tconst result = hljs.highlightAuto(this.code.trim())\n\t\t\t\thighlightedHtml = result.value\n\t\t\t} catch {\n\t\t\t\t// Final fallback to escaped plain text\n\t\t\t\thighlightedHtml = this.escapeHtml(this.code.trim())\n\t\t\t}\n\t\t}\n\n\t\t// Process for line numbers and highlighting if needed\n\t\tif (this.lineNumbers || this.highlightLines) {\n\t\t\treturn this.addLineFeatures(highlightedHtml)\n\t\t}\n\n\t\treturn highlightedHtml\n\t}\n\n\tprivate escapeHtml(text: string): string {\n\t\tconst div = document.createElement('div')\n\t\tdiv.textContent = text\n\t\treturn div.innerHTML\n\t}\n\n\tprivate getHighlightedLines(): Set<number> {\n\t\tconst lines = new Set<number>()\n\t\tif (!this.highlightLines) return lines\n\n\t\tconst parts = this.highlightLines.split(',')\n\t\tfor (const part of parts) {\n\t\t\tconst trimmed = part.trim()\n\t\t\tif (trimmed.includes('-')) {\n\t\t\t\tconst [start, end] = trimmed.split('-').map(n => parseInt(n.trim()))\n\t\t\t\tif (!isNaN(start) && !isNaN(end)) {\n\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\tlines.add(i)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst lineNum = parseInt(trimmed)\n\t\t\t\tif (!isNaN(lineNum)) {\n\t\t\t\t\tlines.add(lineNum)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn lines\n\t}\n\n\tprivate addLineFeatures(highlightedHtml: string): string {\n\t\tconst lines = highlightedHtml.split('\\n')\n\t\tconst highlightedLines = this.getHighlightedLines()\n\n\t\treturn lines\n\t\t\t.map((line, index) => {\n\t\t\t\tconst lineNumber = index + 1\n\t\t\t\tconst isHighlighted = highlightedLines.has(lineNumber)\n\t\t\t\tconst lineClass = isHighlighted ? 'code-line highlighted' : 'code-line'\n\n\t\t\t\tlet content = ''\n\t\t\t\tif (this.lineNumbers) {\n\t\t\t\t\tcontent += `<span class=\"line-number\">${lineNumber}</span>`\n\t\t\t\t}\n\t\t\t\tcontent += line\n\n\t\t\t\treturn `<div class=\"${lineClass}\">${content}</div>`\n\t\t\t})\n\t\t\t.join('')\n\t}\n\n\tprivate async copyCode() {\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(this.code)\n\t\t\tthis.copied = true\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.copied = false\n\t\t\t}, 2000)\n\t\t} catch (err) {\n\t\t\tconsole.error('Failed to copy code:', err)\n\t\t}\n\t}\n\n\tprivate getLanguageLabel(): string {\n\t\tconst languageMap: Record<string, string> = {\n\t\t\tjavascript: 'JavaScript',\n\t\t\ttypescript: 'TypeScript',\n\t\t\thtml: 'HTML',\n\t\t\tmarkdown: 'Markdown',\n\t\t\tbash: 'Bash',\n\t\t}\n\n\t\tif (this.filename) {\n\t\t\treturn this.filename\n\t\t}\n\n\t\treturn languageMap[this.language.toLowerCase()] || this.language.toUpperCase()\n\t}\n\n\trender() {\n\t\tconst codeClass = this.lineNumbers || this.highlightLines ? 'code-with-lines' : 'hljs'\n\n\t\treturn html`\n\t\t\t<schmancy-details class=\"bg-surface-default\">\n\t\t\t\t<section slot=\"summary\">\n\t\t\t\t\t<!-- Header -->\n\t\t\t\t\t<div class=\"flex items-center justify-between\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t<div class=\"flex gap-1.5\">\n\t\t\t\t\t\t\t\t<div class=\"w-3 h-3 rounded-full opacity-60\" style=\"background-color: var(--md-sys-color-error);\"></div>\n\t\t\t\t\t\t\t\t<div class=\"w-3 h-3 rounded-full opacity-60\" style=\"background-color: var(--md-sys-color-tertiary);\"></div>\n\t\t\t\t\t\t\t\t<div class=\"w-3 h-3 rounded-full opacity-60\" style=\"background-color: var(--md-sys-color-secondary);\"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<span class=\"text-xs font-medium opacity-70 ml-2\" style=\"color: var(--md-sys-color-on-surface-variant);\">\n\t\t\t\t\t\t\t\t${this.getLanguageLabel()}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t${this.copyButton\n\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\t\t\t.variant=\"${this.copied ? 'filled tonal' : 'text'}\"\n\t\t\t\t\t\t\t\t\t\t@click=${this.copyCode}\n\t\t\t\t\t\t\t\t\t\tclass=\"transition-all\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<schmancy-icon > ${this.copied ? 'check' : 'content_copy'} </schmancy-icon>\n\t\t\t\t\t\t\t\t\t\t<span class=\"ml-1\">${this.copied ? 'Copied!' : 'Copy'}</span>\n\t\t\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t\t<!-- Code -->\n\t\t\t\t<div class=\"overflow-auto\" style=\"${this.maxHeight ? `max-height: ${this.maxHeight}` : ''}\">\n\t\t\t\t\t<pre class=\"m-0\"><code class=\"${codeClass}\">${unsafeHTML(this.highlightedCode)}</code></pre>\n\t\t\t\t</div>\n\t\t\t</schmancy-details>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-code': SchmancyCode\n\t}\n}\n","import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { timer } from 'rxjs'\nimport { take } from 'rxjs/operators'\n\n/**\n * @element schmancy-code-preview\n * A component that shows code and its rendered preview side by side\n * Takes the content as a slot and displays both the source and rendered result\n */\n@customElement('schmancy-code-preview')\nexport class SchmancyCodePreview extends SchmancyElement {\n\tstatic styles = [\n\t\tcss`:host{\n\t\t\tdisplay:block;\n\t\t\toverflow:hidden;\n\t\t\tposition:relative;\n\t\t\tinset:0;\n\t\t}`,\n\t];\n\n\t/**\n\t * Programming language for syntax highlighting\n\t */\n\t@property({ type: String })\n\tlanguage: string = 'html'\n\n\t/**\n\t * Show code on top or side-by-side\n\t */\n\t@property({ type: String })\n\tlayout: 'vertical' | 'horizontal' = 'vertical'\n\n\t/**\n\t * Whether to render/execute the code in preview section\n\t * When false, only shows the code without rendering\n\t */\n\t@property({ type: Boolean })\n\tpreview: boolean = true\n\n\t@state()\n\tprivate slotContent: string = ''\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Capture the slot content as HTML string\n\t\ttimer(0).pipe(take(1)).subscribe(() => {\n\t\t\tconst slot = this.shadowRoot?.querySelector('slot')\n\t\t\tif (slot) {\n\t\t\t\tconst nodes = slot.assignedNodes({ flatten: true })\n\t\t\t\tconst htmlStrings = nodes.map(node => {\n\t\t\t\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\t\t\treturn (node as HTMLElement).outerHTML\n\t\t\t\t\t} else if (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t\t\treturn node.textContent || ''\n\t\t\t\t\t}\n\t\t\t\t\treturn ''\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\t// Clean up the HTML string\n\t\t\t\tconst rawContent = htmlStrings.join('')\n\t\t\t\t\n\t\t\t\t// Find the minimum indentation (excluding empty lines)\n\t\t\t\tconst lines = rawContent.split('\\n')\n\t\t\t\tconst minIndent = lines\n\t\t\t\t\t.filter(line => line.trim().length > 0)\n\t\t\t\t\t.reduce((min, line) => {\n\t\t\t\t\t\tconst indent = line.match(/^(\\s*)/)?.[1].length || 0\n\t\t\t\t\t\treturn Math.min(min, indent)\n\t\t\t\t\t}, Infinity)\n\t\t\t\t\n\t\t\t\t// Remove the minimum indentation from all lines\n\t\t\t\tthis.slotContent = lines\n\t\t\t\t\t.map(line => line.slice(minIndent))\n\t\t\t\t\t.join('\\n')\n\t\t\t\t\t.trim()\n\t\t\t}\n\t\t})\n\t}\n\n\trender() {\n\t\tconst containerClass = this.layout === 'horizontal' \n\t\t\t? 'grid grid-cols-1 lg:grid-cols-2 gap-0' \n\t\t\t: 'flex flex-col'\n\n\t\tconst showPreview = this.preview && this.language.toLowerCase() === 'html'\n\t\t\n\t\treturn html`\n\t\t\t<schmancy-surface class=\"rounded-lg overflow-hidden\">\n\t\t\t\t<div class=\"${showPreview ? containerClass : ''}\">\n\t\t\t\t\t<!-- Code section with proper overflow handling -->\n\t\t\t\t\t<div class=\"min-w-0 overflow-hidden\">\n\t\t\t\t\t\t<schmancy-code\n\t\t\t\t\t\t\tlanguage=\"${this.language}\"\n\t\t\t\t\t\t\t.code=\"${this.slotContent}\"\n\t\t\t\t\t\t\t?copyButton=\"${true}\"\n\t\t\t\t\t\t\tclass=\"block w-full\"\n\t\t\t\t\t\t></schmancy-code>\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<!-- Preview section (only visible for HTML and when preview is enabled) -->\n\t\t\t\t\t${showPreview ? html`\n\t\t\t\t\t\t<div class=\"min-w-0 overflow-auto\">\n\t\t\t\t\t\t\t<schmancy-surface type=\"solid\" class=\"p-2 h-full\">\n\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t</schmancy-surface>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t` : html`\n\t\t\t\t\t\t<!-- Hidden slot to capture content -->\n\t\t\t\t\t\t<div class=\"hidden\">\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`}\n\t\t\t\t</div>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-code-preview': SchmancyCodePreview\n\t}\n}"],"mappings":"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"}
|
package/dist/code-highlight.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./code-highlight-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./code-highlight-CJzuds4c.cjs`);Object.defineProperty(exports,`SchmancyCode`,{enumerable:!0,get:function(){return e.n}}),Object.defineProperty(exports,`SchmancyCodeHighlight`,{enumerable:!0,get:function(){return e.n}}),Object.defineProperty(exports,`SchmancyCodePreview`,{enumerable:!0,get:function(){return e.t}});
|
package/dist/code-highlight.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./code-highlight-
|
|
1
|
+
import { n as e, t } from "./code-highlight-CcdCFMrn.js";
|
|
2
2
|
export { e as SchmancyCode, e as SchmancyCodeHighlight, t as SchmancyCodePreview };
|
package/dist/connectivity.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-BIXF7xkF.cjs`),t=require(`./decorate-DpFmy0nm.cjs`),n=require(`./audio-DZN8HsSS.cjs`);let r=require(`rxjs`),i=require(`rxjs/operators`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/ref.js`);var c=class extends e.s{constructor(...e){super(...e),this.bannerRef=(0,s.createRef)(),this.surfaceRef=(0,s.createRef)(),this.iconRef=(0,s.createRef)(),this.messageRef=(0,s.createRef)()}static{this.styles=[o.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
}
|
|
@@ -39,7 +39,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./ch
|
|
|
39
39
|
.icon-bounce {
|
|
40
40
|
animation: icon-bounce 600ms ease-out;
|
|
41
41
|
}
|
|
42
|
-
`
|
|
42
|
+
`]}connectedCallback(){super.connectedCallback();let e=(0,r.merge)((0,r.fromEvent)(window,`online`).pipe((0,i.map)(()=>!0)),(0,r.fromEvent)(window,`offline`).pipe((0,i.map)(()=>!1))).pipe((0,i.distinctUntilChanged)());e.pipe((0,i.tap)(e=>this.updateBanner(e)),(0,i.takeUntil)(this.disconnecting)).subscribe(),e.pipe((0,i.skip)(1),(0,i.tap)(e=>n.t.play(e?`celebrated`:`disappointed`)),(0,i.takeUntil)(this.disconnecting)).subscribe()}updateBanner(e){let t=this.bannerRef.value,n=this.surfaceRef.value,a=this.iconRef.value,o=this.messageRef.value;t&&n&&a&&o&&(e?(n.setAttribute(`type`,`primary`),a.textContent=`🎉`,a.className=`text-2xl icon-bounce`,o.textContent=`Back online`,t.classList.remove(`exiting`),t.classList.add(`visible`),(0,r.timer)(1500).pipe((0,i.tap)(()=>{t.classList.add(`exiting`),(0,r.timer)(300).pipe((0,i.tap)(()=>t.classList.remove(`visible`,`exiting`)),(0,i.takeUntil)(this.disconnecting)).subscribe()}),(0,i.takeUntil)(this.disconnecting)).subscribe()):(n.setAttribute(`type`,`error`),a.textContent=`🙀`,a.className=`text-2xl icon-pulse`,o.textContent=`You're offline`,t.classList.remove(`exiting`),t.classList.add(`visible`)))}render(){return o.html`
|
|
43
43
|
<div ${(0,s.ref)(this.bannerRef)} class="banner fixed top-0 inset-x-0 z-50 p-2 pointer-events-none">
|
|
44
44
|
<schmancy-surface
|
|
45
45
|
${(0,s.ref)(this.surfaceRef)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectivity.cjs","names":[],"sources":["../src/connectivity/connectivity-status.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"connectivity.cjs","names":[],"sources":["../src/connectivity/connectivity-status.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { merge, fromEvent, timer } from 'rxjs'\nimport { map, distinctUntilChanged, tap, takeUntil, skip } from 'rxjs/operators'\nimport { $sounds } from '../audio'\n\n/**\n * @element schmancy-connectivity-status\n * A beautiful connectivity status component that monitors online/offline state\n * and shows subtle animated banners when connectivity changes.\n *\n * @example\n * <!-- Add once to your app root -->\n * <schmancy-connectivity-status></schmancy-connectivity-status>\n */\n@customElement('schmancy-connectivity-status')\nexport class SchmancyConnectivityStatus extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t}\n\n\t.banner {\n\t\ttransform: translateY(-100%);\n\t\topacity: 0;\n\t\ttransition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 400ms ease-out;\n\t}\n\n\t.banner.visible {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t}\n\n\t.banner.exiting {\n\t\ttransform: translateY(-100%);\n\t\topacity: 0;\n\t\ttransition: transform 300ms ease-out, opacity 300ms ease-out;\n\t}\n\n\t@keyframes icon-pulse {\n\t\t0%, 100% { transform: scale(1); }\n\t\t50% { transform: scale(1.2); }\n\t}\n\n\t@keyframes icon-bounce {\n\t\t0%, 100% { transform: translateY(0); }\n\t\t25% { transform: translateY(-6px); }\n\t\t50% { transform: translateY(0); }\n\t\t75% { transform: translateY(-3px); }\n\t}\n\n\t.icon-pulse {\n\t\tanimation: icon-pulse 1s ease-in-out infinite;\n\t}\n\n\t.icon-bounce {\n\t\tanimation: icon-bounce 600ms ease-out;\n\t}\n`];\n\tprivate bannerRef = createRef<HTMLDivElement>()\n\tprivate surfaceRef = createRef<HTMLElement>()\n\tprivate iconRef = createRef<HTMLSpanElement>()\n\tprivate messageRef = createRef<HTMLSpanElement>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\tconst connectivity$ = merge(\n\t\t\tfromEvent(window, 'online').pipe(map(() => true)),\n\t\t\tfromEvent(window, 'offline').pipe(map(() => false))\n\t\t).pipe(distinctUntilChanged())\n\n\t\t// UI updates via refs\n\t\tconnectivity$.pipe(\n\t\t\ttap(online => this.updateBanner(online)),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\n\t\t// Sounds (skip initial)\n\t\tconnectivity$.pipe(\n\t\t\tskip(1),\n\t\t\ttap(online => $sounds.play(online ? 'celebrated' : 'disappointed')),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprivate updateBanner(online: boolean): void {\n\t\tconst banner = this.bannerRef.value\n\t\tconst surface = this.surfaceRef.value\n\t\tconst icon = this.iconRef.value\n\t\tconst message = this.messageRef.value\n\n\t\tif (!banner || !surface || !icon || !message) return\n\n\t\tif (!online) {\n\t\t\t// Going offline\n\t\t\tsurface.setAttribute('type', 'error')\n\t\t\ticon.textContent = '🙀'\n\t\t\ticon.className = 'text-2xl icon-pulse'\n\t\t\tmessage.textContent = \"You're offline\"\n\t\t\tbanner.classList.remove('exiting')\n\t\t\tbanner.classList.add('visible')\n\t\t} else {\n\t\t\t// Back online\n\t\t\tsurface.setAttribute('type', 'primary')\n\t\t\ticon.textContent = '🎉'\n\t\t\ticon.className = 'text-2xl icon-bounce'\n\t\t\tmessage.textContent = 'Back online'\n\t\t\tbanner.classList.remove('exiting')\n\t\t\tbanner.classList.add('visible')\n\n\t\t\t// Auto-dismiss after 1.5 seconds\n\t\t\ttimer(1500).pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\tbanner.classList.add('exiting')\n\t\t\t\t\ttimer(300).pipe(\n\t\t\t\t\t\ttap(() => banner.classList.remove('visible', 'exiting')),\n\t\t\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t\t\t).subscribe()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t).subscribe()\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<div ${ref(this.bannerRef)} class=\"banner fixed top-0 inset-x-0 z-50 p-2 pointer-events-none\">\n\t\t\t\t<schmancy-surface\n\t\t\t\t\t${ref(this.surfaceRef)}\n\t\t\t\t\ttype=\"error\"\n\t\t\t\t\trounded=\"all\"\n\t\t\t\t\televation=\"3\"\n\t\t\t\t\tclass=\"mx-auto max-w-sm shadow-lg pointer-events-auto\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"flex items-center gap-3 px-4 py-3\">\n\t\t\t\t\t\t<span ${ref(this.iconRef)} class=\"text-2xl\">🙀</span>\n\t\t\t\t\t\t<schmancy-typography type=\"body\" token=\"md\">\n\t\t\t\t\t\t\t<span ${ref(this.messageRef)}>You're offline</span>\n\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-connectivity-status': SchmancyConnectivityStatus\n\t}\n}\n"],"mappings":"wVAkBO,IAAA,EAAA,cAAyC,EAAA,CAAA,CAAA,YAAA,GAAA,EAAA,CAAA,MAAA,GAAA,EAAA,CAAA,KAAA,WAAA,EAAA,EAAA,YAAA,CAAA,KAAA,YAAA,EAAA,EAAA,YAAA,CAAA,KAAA,SAAA,EAAA,EAAA,YAAA,CAAA,KAAA,YAAA,EAAA,EAAA,YAAA,CAAA,OAAA,KAAA,OAC/B,CAAC,EAAA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CpB,mBAAA,CACC,MAAM,mBAAA,CAEN,IAAM,GAAA,EAAA,EAAA,QAAA,EAAA,EAAA,WACK,OAAQ,SAAA,CAAU,MAAA,EAAA,EAAA,SAAA,CAAe,EAAA,CAAA,EAAM,EAAA,EAAA,WACvC,OAAQ,UAAA,CAAW,MAAA,EAAA,EAAA,SAAA,CAAe,EAAA,CAAA,CAAA,CAC3C,MAAA,EAAA,EAAA,uBAAA,CAAA,CAGF,EAAc,MAAA,EAAA,EAAA,KACT,GAAU,KAAK,aAAa,EAAA,CAAA,EAAQ,EAAA,EAAA,WAC9B,KAAK,cAAA,CAAA,CACd,WAAA,CAGF,EAAc,MAAA,EAAA,EAAA,MACR,EAAA,EAAE,EAAA,EAAA,KACH,GAAU,EAAA,EAAQ,KAAK,EAAS,aAAe,eAAA,CAAA,EAAgB,EAAA,EAAA,WACzD,KAAK,cAAA,CAAA,CACd,WAAA,CAGH,aAAqB,EAAA,CACpB,IAAM,EAAS,KAAK,UAAU,MACxB,EAAU,KAAK,WAAW,MAC1B,EAAO,KAAK,QAAQ,MACpB,EAAU,KAAK,WAAW,MAE3B,GAAW,GAAY,GAAS,IAEhC,GAUJ,EAAQ,aAAa,OAAQ,UAAA,CAC7B,EAAK,YAAc,KACnB,EAAK,UAAY,uBACjB,EAAQ,YAAc,cACtB,EAAO,UAAU,OAAO,UAAA,CACxB,EAAO,UAAU,IAAI,UAAA,EAGrB,EAAA,EAAA,OAAM,KAAA,CAAM,MAAA,EAAA,EAAA,SAAA,CAEV,EAAO,UAAU,IAAI,UAAA,EACrB,EAAA,EAAA,OAAM,IAAA,CAAK,MAAA,EAAA,EAAA,SACA,EAAO,UAAU,OAAO,UAAW,UAAA,CAAA,EAAW,EAAA,EAAA,WAC9C,KAAK,cAAA,CAAA,CACd,WAAA,EAAA,EACD,EAAA,EAAA,WACQ,KAAK,cAAA,CAAA,CACd,WAAA,GAzBF,EAAQ,aAAa,OAAQ,QAAA,CAC7B,EAAK,YAAc,KACnB,EAAK,UAAY,sBACjB,EAAQ,YAAc,iBACtB,EAAO,UAAU,OAAO,UAAA,CACxB,EAAO,UAAU,IAAI,UAAA,GAwBvB,QAAA,CACC,MAAO,GAAA,IAAI;oBACC,KAAK,UAAA,CAAA;;iBAER,KAAK,WAAA,CAAA;;;;;;;wBAOE,KAAK,QAAA,CAAA;;yBAEJ,KAAK,WAAA,CAAA;;;;;iCA3HT,+BAAA,CAAA,CAA+B,EAAA,CAAA,OAAA,eAAA,QAAA,6BAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
|
package/dist/connectivity.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t } from "./decorate-
|
|
3
|
-
import { t as n } from "./audio-
|
|
1
|
+
import { s as e } from "./mixins-CL1krSOE.js";
|
|
2
|
+
import { t } from "./decorate-23nYs4Le.js";
|
|
3
|
+
import { t as n } from "./audio-Tmre4WyL.js";
|
|
4
4
|
import { fromEvent as r, merge as i, timer as a } from "rxjs";
|
|
5
5
|
import { distinctUntilChanged as o, map as s, skip as c, takeUntil as l, tap as u } from "rxjs/operators";
|
|
6
6
|
import { customElement as d } from "lit/decorators.js";
|
|
7
7
|
import { css as f, html as p } from "lit";
|
|
8
8
|
import { createRef as m, ref as h } from "lit/directives/ref.js";
|
|
9
|
-
var g = class extends e
|
|
9
|
+
var g = class extends e {
|
|
10
|
+
constructor(...e) {
|
|
11
|
+
super(...e), this.bannerRef = m(), this.surfaceRef = m(), this.iconRef = m(), this.messageRef = m();
|
|
12
|
+
}
|
|
13
|
+
static {
|
|
14
|
+
this.styles = [f`
|
|
10
15
|
:host {
|
|
11
16
|
display: block;
|
|
12
17
|
}
|
|
@@ -47,9 +52,7 @@ var g = class extends e(f`
|
|
|
47
52
|
.icon-bounce {
|
|
48
53
|
animation: icon-bounce 600ms ease-out;
|
|
49
54
|
}
|
|
50
|
-
`
|
|
51
|
-
constructor(...e) {
|
|
52
|
-
super(...e), this.bannerRef = m(), this.surfaceRef = m(), this.iconRef = m(), this.messageRef = m();
|
|
55
|
+
`];
|
|
53
56
|
}
|
|
54
57
|
connectedCallback() {
|
|
55
58
|
super.connectedCallback();
|
package/dist/connectivity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectivity.js","names":[],"sources":["../src/connectivity/connectivity-status.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"connectivity.js","names":[],"sources":["../src/connectivity/connectivity-status.ts"],"sourcesContent":["import { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { merge, fromEvent, timer } from 'rxjs'\nimport { map, distinctUntilChanged, tap, takeUntil, skip } from 'rxjs/operators'\nimport { $sounds } from '../audio'\n\n/**\n * @element schmancy-connectivity-status\n * A beautiful connectivity status component that monitors online/offline state\n * and shows subtle animated banners when connectivity changes.\n *\n * @example\n * <!-- Add once to your app root -->\n * <schmancy-connectivity-status></schmancy-connectivity-status>\n */\n@customElement('schmancy-connectivity-status')\nexport class SchmancyConnectivityStatus extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t}\n\n\t.banner {\n\t\ttransform: translateY(-100%);\n\t\topacity: 0;\n\t\ttransition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 400ms ease-out;\n\t}\n\n\t.banner.visible {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t}\n\n\t.banner.exiting {\n\t\ttransform: translateY(-100%);\n\t\topacity: 0;\n\t\ttransition: transform 300ms ease-out, opacity 300ms ease-out;\n\t}\n\n\t@keyframes icon-pulse {\n\t\t0%, 100% { transform: scale(1); }\n\t\t50% { transform: scale(1.2); }\n\t}\n\n\t@keyframes icon-bounce {\n\t\t0%, 100% { transform: translateY(0); }\n\t\t25% { transform: translateY(-6px); }\n\t\t50% { transform: translateY(0); }\n\t\t75% { transform: translateY(-3px); }\n\t}\n\n\t.icon-pulse {\n\t\tanimation: icon-pulse 1s ease-in-out infinite;\n\t}\n\n\t.icon-bounce {\n\t\tanimation: icon-bounce 600ms ease-out;\n\t}\n`];\n\tprivate bannerRef = createRef<HTMLDivElement>()\n\tprivate surfaceRef = createRef<HTMLElement>()\n\tprivate iconRef = createRef<HTMLSpanElement>()\n\tprivate messageRef = createRef<HTMLSpanElement>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\tconst connectivity$ = merge(\n\t\t\tfromEvent(window, 'online').pipe(map(() => true)),\n\t\t\tfromEvent(window, 'offline').pipe(map(() => false))\n\t\t).pipe(distinctUntilChanged())\n\n\t\t// UI updates via refs\n\t\tconnectivity$.pipe(\n\t\t\ttap(online => this.updateBanner(online)),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\n\t\t// Sounds (skip initial)\n\t\tconnectivity$.pipe(\n\t\t\tskip(1),\n\t\t\ttap(online => $sounds.play(online ? 'celebrated' : 'disappointed')),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\tprivate updateBanner(online: boolean): void {\n\t\tconst banner = this.bannerRef.value\n\t\tconst surface = this.surfaceRef.value\n\t\tconst icon = this.iconRef.value\n\t\tconst message = this.messageRef.value\n\n\t\tif (!banner || !surface || !icon || !message) return\n\n\t\tif (!online) {\n\t\t\t// Going offline\n\t\t\tsurface.setAttribute('type', 'error')\n\t\t\ticon.textContent = '🙀'\n\t\t\ticon.className = 'text-2xl icon-pulse'\n\t\t\tmessage.textContent = \"You're offline\"\n\t\t\tbanner.classList.remove('exiting')\n\t\t\tbanner.classList.add('visible')\n\t\t} else {\n\t\t\t// Back online\n\t\t\tsurface.setAttribute('type', 'primary')\n\t\t\ticon.textContent = '🎉'\n\t\t\ticon.className = 'text-2xl icon-bounce'\n\t\t\tmessage.textContent = 'Back online'\n\t\t\tbanner.classList.remove('exiting')\n\t\t\tbanner.classList.add('visible')\n\n\t\t\t// Auto-dismiss after 1.5 seconds\n\t\t\ttimer(1500).pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\tbanner.classList.add('exiting')\n\t\t\t\t\ttimer(300).pipe(\n\t\t\t\t\t\ttap(() => banner.classList.remove('visible', 'exiting')),\n\t\t\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t\t\t).subscribe()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t).subscribe()\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<div ${ref(this.bannerRef)} class=\"banner fixed top-0 inset-x-0 z-50 p-2 pointer-events-none\">\n\t\t\t\t<schmancy-surface\n\t\t\t\t\t${ref(this.surfaceRef)}\n\t\t\t\t\ttype=\"error\"\n\t\t\t\t\trounded=\"all\"\n\t\t\t\t\televation=\"3\"\n\t\t\t\t\tclass=\"mx-auto max-w-sm shadow-lg pointer-events-auto\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"flex items-center gap-3 px-4 py-3\">\n\t\t\t\t\t\t<span ${ref(this.iconRef)} class=\"text-2xl\">🙀</span>\n\t\t\t\t\t\t<schmancy-typography type=\"body\" token=\"md\">\n\t\t\t\t\t\t\t<span ${ref(this.messageRef)}>You're offline</span>\n\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-connectivity-status': SchmancyConnectivityStatus\n\t}\n}\n"],"mappings":";;;;;;;;AAkBO,IAAA,IAAA,cAAyC,EAAA;CAAA,YAAA,GAAA,GAAA;AAAA,QAAA,GAAA,EAAA,EAAA,KAAA,YA2C3B,GAAA,EAAA,KAAA,aACC,GAAA,EAAA,KAAA,UACH,GAAA,EAAA,KAAA,aACG,GAAA;;CAAA;AAAA,OAAA,SA7CL,CAAC,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CpB,oBAAA;AACC,QAAM,mBAAA;EAEN,IAAM,IAAgB,EACrB,EAAU,QAAQ,SAAA,CAAU,KAAK,QAAA,CAAU,EAAA,CAAA,EAC3C,EAAU,QAAQ,UAAA,CAAW,KAAK,QAAA,CAAU,EAAA,CAAA,CAAA,CAC3C,KAAK,GAAA,CAAA;AAGP,IAAc,KACb,GAAI,MAAU,KAAK,aAAa,EAAA,CAAA,EAChC,EAAU,KAAK,cAAA,CAAA,CACd,WAAA,EAGF,EAAc,KACb,EAAK,EAAA,EACL,GAAI,MAAU,EAAQ,KAAK,IAAS,eAAe,eAAA,CAAA,EACnD,EAAU,KAAK,cAAA,CAAA,CACd,WAAA;;CAGH,aAAqB,GAAA;EACpB,IAAM,IAAS,KAAK,UAAU,OACxB,IAAU,KAAK,WAAW,OAC1B,IAAO,KAAK,QAAQ,OACpB,IAAU,KAAK,WAAW;AAE3B,OAAW,KAAY,KAAS,MAEhC,KAUJ,EAAQ,aAAa,QAAQ,UAAA,EAC7B,EAAK,cAAc,MACnB,EAAK,YAAY,wBACjB,EAAQ,cAAc,eACtB,EAAO,UAAU,OAAO,UAAA,EACxB,EAAO,UAAU,IAAI,UAAA,EAGrB,EAAM,KAAA,CAAM,KACX,QAAA;AACC,KAAO,UAAU,IAAI,UAAA,EACrB,EAAM,IAAA,CAAK,KACV,QAAU,EAAO,UAAU,OAAO,WAAW,UAAA,CAAA,EAC7C,EAAU,KAAK,cAAA,CAAA,CACd,WAAA;IAAA,EAEH,EAAU,KAAK,cAAA,CAAA,CACd,WAAA,KAzBF,EAAQ,aAAa,QAAQ,QAAA,EAC7B,EAAK,cAAc,MACnB,EAAK,YAAY,uBACjB,EAAQ,cAAc,kBACtB,EAAO,UAAU,OAAO,UAAA,EACxB,EAAO,UAAU,IAAI,UAAA;;CAwBvB,SAAA;AACC,SAAO,CAAI;UACH,EAAI,KAAK,UAAA,CAAA;;OAEZ,EAAI,KAAK,WAAA,CAAA;;;;;;;cAOF,EAAI,KAAK,QAAA,CAAA;;eAER,EAAI,KAAK,WAAA,CAAA;;;;;;;;OA3HvB,EAAc,+BAAA,CAAA,EAA+B,EAAA;AAAA,SAAA,KAAA"}
|
package/dist/content-drawer.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-DzFcGdcn.cjs`);Object.defineProperty(exports,`SchmancyContentDrawer`,{enumerable:!0,get:function(){return e._}}),exports.SchmancyContentDrawerID=e.v,Object.defineProperty(exports,`SchmancyContentDrawerMain`,{enumerable:!0,get:function(){return e.g}}),exports.SchmancyContentDrawerMaxHeight=e.y,exports.SchmancyContentDrawerMinWidth=e.b,Object.defineProperty(exports,`SchmancyContentDrawerSheet`,{enumerable:!0,get:function(){return e.h}}),exports.SchmancyContentDrawerSheetMode=e.x,exports.SchmancyContentDrawerSheetState=e.S,exports.schmancyContentDrawer=e.C;
|
package/dist/content-drawer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as e, S as t, _ as n, b as r, g as i,
|
|
2
|
-
export {
|
|
1
|
+
import { C as e, S as t, _ as n, b as r, g as i, h as a, v as o, x as s, y as c } from "./src-CHM4hrEr.js";
|
|
2
|
+
export { n as SchmancyContentDrawer, o as SchmancyContentDrawerID, i as SchmancyContentDrawerMain, c as SchmancyContentDrawerMaxHeight, r as SchmancyContentDrawerMinWidth, a as SchmancyContentDrawerSheet, s as SchmancyContentDrawerSheetMode, t as SchmancyContentDrawerSheetState, e as schmancyContentDrawer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-
|
|
1
|
+
{"version":3,"file":"context-Bdu1xt0W.js","names":[],"sources":["../src/button/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\n\nexport type SchmancyButtonSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg'\n\n/**\n * Provided by `<schmancy-button>` to its descendants so children\n * (e.g. `<schmancy-icon>`) can auto-size against the enclosing button.\n */\nexport const SchmancyButtonSizeContext = createContext<SchmancyButtonSize>('schmancy-button-size')\n"],"mappings":";AAQA,IAAa,IAA4B,EAAkC,uBAAA;AAAA,SAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./chunk-CncqDLb2.cjs`);var e=(0,require(`@lit/context`).createContext)(`schmancy-button-size`);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return e}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-
|
|
1
|
+
{"version":3,"file":"context-daN5G6HS.cjs","names":[],"sources":["../src/button/context.ts"],"sourcesContent":["import { createContext } from '@lit/context'\n\nexport type SchmancyButtonSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg'\n\n/**\n * Provided by `<schmancy-button>` to its descendants so children\n * (e.g. `<schmancy-icon>`) can auto-size against the enclosing button.\n */\nexport const SchmancyButtonSizeContext = createContext<SchmancyButtonSize>('schmancy-button-size')\n"],"mappings":"gCAQA,IAAa,GAAA,EAAA,QAAA,eAAA,CAAA,eAA8D,uBAAA,CAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "./reduced-motion-
|
|
1
|
+
import { t as e } from "./reduced-motion-D-L12p7G.js";
|
|
2
2
|
import { Subject as t, animationFrameScheduler as n, fromEvent as r, merge as i } from "rxjs";
|
|
3
3
|
import { auditTime as a, map as o, takeUntil as s } from "rxjs/operators";
|
|
4
4
|
import { AsyncDirective as c } from "lit/async-directive.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-glow-
|
|
1
|
+
{"version":3,"file":"cursor-glow-Ah7VXSj7.js","names":[],"sources":["../src/directives/cursor-glow.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 { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(_options?: CursorGlowOptions) {\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow 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.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\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>(this.element, '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\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":";;;;;AAwBA,IAqHa,IAAa,EArH1B,cAAkC,EAAA;CAAA,YAAA,GAAA,GAAA;AAAA,QAAA,GAAA,EAAA,EAAA,KAAA,YAGJ,IAAI,GAAA,EAAA,KAAA,SAChB,KAAA,KAAA,QACD,6CAAA,KAAA,YACI,KAAA,KAAA,iBAAA,CAEK;;CAGzB,OAAO,GAAA;CAIP,OAAgB,GAAA,CAAoB,IAAA;AACnC,MAAI,EAAK,SAAS,EAAS,QAC1B,OAAU,MAAM,kDAAA;EAGjB,IAAM,IAAM,KAAK,UAAU,KAAW,EAAA,CAAA;AAClC,OAAK,WAAW,MAAQ,KAAK,YACjC,KAAK,UAAU,GAEf,KAAK,UAAU,EAAK,SACpB,KAAK,SAAS,GAAS,UAAU,KACjC,KAAK,QAAQ,GAAS,SAAS,6CAC/B,KAAK,YAAY,GAAS,aAAa,KAEnC,EAAe,UAEnB,KAAK,UAAU,MAAA,EACf,KAAK,mBAAA,EACL,KAAK,eAAA;;CAKN,cAAA;AACC,OAAK,mBAAA,EACL,KAAK,UAAU,MAAA,EACf,KAAK,eAAA;;CAGN,oBAAA;AAEa,EADA,iBAAiB,KAAK,QAAA,CAAS,aAC/B,aACX,KAAK,QAAQ,MAAM,WAAW,YAC9B,KAAK,iBAAA,CAAiB,IAGlB,KAAK,WACT,KAAK,SAAS,SAAS,cAAc,MAAA,EACrC,KAAK,OAAO,aAAa,eAAe,OAAA,EACxC,OAAO,OAAO,KAAK,OAAO,OAAO;GAChC,UAAU;GACV,OAAO;GACP,eAAe;GACf,QAAQ;GACR,cAAc;GACd,UAAU;GACV,SAAS;GACT,YAAY;GAAA,CAAA,EAEb,KAAK,QAAQ,QAAQ,KAAK,OAAA;;CAI5B,gBAAA;AAyBC,IAxBe,EAAsB,KAAK,SAAS,aAAA,CAAc,KAChE,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAa,KAAK,QAAQ,uBAAA,EACxB,MAAA,CAAA,EAIK,EAAsB,KAAK,SAAS,YAAA,CAAa,KAC9D,EAAU,GAAG,EAAA,EACb,GAAI,MAAA;GACH,IAAM,IAAO,KAAK,cAAc,KAAK,QAAQ,uBAAA;AAC7C,UAAO;IAAE,GAAG,EAAE,UAAU,EAAK;IAAM,GAAG,EAAE,UAAU,EAAK;IAAA;IAAA,CAAA,EAI1C,EAAU,KAAK,SAAS,aAAA,CAAc,KACpD,SACK,KAAK,WAAQ,KAAK,OAAO,MAAM,UAAU,MAC7C,KAAK,aAAA,KAAa,GACX,MAAA,CAAA,CAAA,CAKP,KAAK,EAAU,KAAK,UAAA,CAAA,CACpB,WAAU,MAAA;AACN,QAAO,KAAK,WACf,KAAK,OAAO,MAAM,aAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,MAAjB,KAAK,UAAA,CAAA;IAAA;;CAOxD,eAAA;AACC,OAAK,UAAU,MAAA,EACf,KAAK,QAAQ,QAAA,EACb,KAAK,SAAA,KAAS,GACV,KAAK,kBAAkB,KAAK,YAC/B,KAAK,QAAQ,MAAM,WAAW,IAC9B,KAAK,iBAAA,CAAiB;;EAAA;AAAA,SAAA,KAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk-CncqDLb2.cjs`);const e=require(`./reduced-motion-
|
|
1
|
+
require(`./chunk-CncqDLb2.cjs`);const e=require(`./reduced-motion-Ds-HjMzn.cjs`);let t=require(`rxjs`),n=require(`rxjs/operators`),r=require(`lit/async-directive.js`),i=require(`lit/directive.js`);var a=class extends r.AsyncDirective{constructor(...e){super(...e),this.teardown$=new t.Subject,this.radius=200,this.color=`var(--schmancy-sys-color-primary-default)`,this.intensity=.12,this.didSetPosition=!1}render(e){}update(t,[n]){if(t.type!==i.PartType.ELEMENT)throw Error(`cursorGlow directive must be used on an element`);let r=JSON.stringify(n??{});this.element&&r===this.prevKey||(this.prevKey=r,this.element=t.element,this.radius=n?.radius??200,this.color=n?.color??`var(--schmancy-sys-color-primary-default)`,this.intensity=n?.intensity??.12,e.t.value||(this.teardown$.next(),this.ensureGlowElement(),this.setupTracking()))}reconnected(){this.ensureGlowElement(),this.teardown$.next(),this.setupTracking()}ensureGlowElement(){getComputedStyle(this.element).position===`static`&&(this.element.style.position=`relative`,this.didSetPosition=!0),this.glowEl||(this.glowEl=document.createElement(`div`),this.glowEl.setAttribute(`aria-hidden`,`true`),Object.assign(this.glowEl.style,{position:`absolute`,inset:`0`,pointerEvents:`none`,zIndex:`0`,borderRadius:`inherit`,overflow:`hidden`,opacity:`0`,transition:`opacity 400ms ease`}),this.element.prepend(this.glowEl))}setupTracking(){(0,t.merge)((0,t.fromEvent)(this.element,`mouseenter`).pipe((0,n.map)(()=>(this.glowEl&&(this.glowEl.style.opacity=`1`),this.cachedRect=this.element.getBoundingClientRect(),null))),(0,t.fromEvent)(this.element,`mousemove`).pipe((0,n.auditTime)(0,t.animationFrameScheduler),(0,n.map)(e=>{let t=this.cachedRect??this.element.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}})),(0,t.fromEvent)(this.element,`mouseleave`).pipe((0,n.map)(()=>(this.glowEl&&(this.glowEl.style.opacity=`0`),this.cachedRect=void 0,null)))).pipe((0,n.takeUntil)(this.teardown$)).subscribe(e=>{e&&this.glowEl&&(this.glowEl.style.background=`radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${e.x}px ${e.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(100*this.intensity)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`)})}disconnected(){this.teardown$.next(),this.glowEl?.remove(),this.glowEl=void 0,this.didSetPosition&&this.element&&(this.element.style.position=``,this.didSetPosition=!1)}},o=(0,i.directive)(a);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-glow-
|
|
1
|
+
{"version":3,"file":"cursor-glow-Bulq-38P.cjs","names":[],"sources":["../src/directives/cursor-glow.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 { reducedMotion$ } from './reduced-motion'\n\nexport interface CursorGlowOptions {\n\t/** Glow radius in pixels (default: 200) */\n\tradius?: number\n\t/** Glow color — CSS color value (default: primary color) */\n\tcolor?: string\n\t/** Glow opacity 0-1 (default: 0.12) */\n\tintensity?: number\n}\n\n/**\n * Cursor glow directive — a soft radial light follows the cursor across the surface.\n *\n * @example\n * ```html\n * <schmancy-surface type=\"glass\" ${cursorGlow()}>content</schmancy-surface>\n * <div ${cursorGlow({ radius: 300, intensity: 0.2 })}>hero panel</div>\n * ```\n */\nclass CursorGlowDirective extends AsyncDirective {\n\tprivate element!: HTMLElement\n\tprivate glowEl?: HTMLElement\n\tprivate readonly teardown$ = new Subject<void>()\n\tprivate radius = 200\n\tprivate color = 'var(--schmancy-sys-color-primary-default)'\n\tprivate intensity = 0.12\n\tprivate prevKey?: string\n\tprivate didSetPosition = false\n\tprivate cachedRect?: DOMRect\n\n\trender(_options?: CursorGlowOptions) {\n\t\treturn undefined\n\t}\n\n\toverride update(part: ElementPart, [options]: [CursorGlowOptions?]) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('cursorGlow 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.radius = options?.radius ?? 200\n\t\tthis.color = options?.color ?? 'var(--schmancy-sys-color-primary-default)'\n\t\tthis.intensity = options?.intensity ?? 0.12\n\n\t\tif (reducedMotion$.value) return undefined\n\n\t\tthis.teardown$.next()\n\t\tthis.ensureGlowElement()\n\t\tthis.setupTracking()\n\n\t\treturn undefined\n\t}\n\n\toverride reconnected() {\n\t\tthis.ensureGlowElement()\n\t\tthis.teardown$.next()\n\t\tthis.setupTracking()\n\t}\n\n\tprivate ensureGlowElement() {\n\t\tconst pos = getComputedStyle(this.element).position\n\t\tif (pos === 'static') {\n\t\t\tthis.element.style.position = 'relative'\n\t\t\tthis.didSetPosition = true\n\t\t}\n\n\t\tif (!this.glowEl) {\n\t\t\tthis.glowEl = document.createElement('div')\n\t\t\tthis.glowEl.setAttribute('aria-hidden', 'true')\n\t\t\tObject.assign(this.glowEl.style, {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tzIndex: '0',\n\t\t\t\tborderRadius: 'inherit',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\topacity: '0',\n\t\t\t\ttransition: 'opacity 400ms ease',\n\t\t\t})\n\t\t\tthis.element.prepend(this.glowEl)\n\t\t}\n\t}\n\n\tprivate setupTracking() {\n\t\tconst enter$ = fromEvent<MouseEvent>(this.element, 'mouseenter').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '1'\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>(this.element, '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\treturn { x: e.clientX - rect.left, y: e.clientY - rect.top }\n\t\t\t}),\n\t\t)\n\n\t\tconst leave$ = fromEvent(this.element, 'mouseleave').pipe(\n\t\t\tmap(() => {\n\t\t\t\tif (this.glowEl) this.glowEl.style.opacity = '0'\n\t\t\t\tthis.cachedRect = undefined\n\t\t\t\treturn null\n\t\t\t}),\n\t\t)\n\n\t\tmerge(enter$, move$, leave$)\n\t\t\t.pipe(takeUntil(this.teardown$))\n\t\t\t.subscribe(pos => {\n\t\t\t\tif (pos && this.glowEl) {\n\t\t\t\t\tthis.glowEl.style.background = `radial-gradient(\n\t\t\t\t\t\t${this.radius}px circle at ${pos.x}px ${pos.y}px,\n\t\t\t\t\t\tcolor-mix(in srgb, ${this.color} ${Math.round(this.intensity * 100)}%, transparent),\n\t\t\t\t\t\ttransparent\n\t\t\t\t\t)`\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\toverride disconnected() {\n\t\tthis.teardown$.next()\n\t\tthis.glowEl?.remove()\n\t\tthis.glowEl = undefined\n\t\tif (this.didSetPosition && this.element) {\n\t\t\tthis.element.style.position = ''\n\t\t\tthis.didSetPosition = false\n\t\t}\n\t}\n}\n\nexport const cursorGlow = directive(CursorGlowDirective)\n"],"mappings":"qMAwBA,IAAM,EAAN,cAAkC,EAAA,cAAA,CAAA,YAAA,GAAA,EAAA,CAAA,MAAA,GAAA,EAAA,CAAA,KAAA,UAGJ,IAAI,EAAA,QAAA,KAAA,OAChB,IAAA,KAAA,MACD,4CAAA,KAAA,UACI,IAAA,KAAA,eAAA,CAEK,EAGzB,OAAO,EAAA,EAIP,OAAgB,EAAA,CAAoB,GAAA,CACnC,GAAI,EAAK,OAAS,EAAA,SAAS,QAC1B,MAAU,MAAM,kDAAA,CAGjB,IAAM,EAAM,KAAK,UAAU,GAAW,EAAA,CAAA,CAClC,KAAK,SAAW,IAAQ,KAAK,UACjC,KAAK,QAAU,EAEf,KAAK,QAAU,EAAK,QACpB,KAAK,OAAS,GAAS,QAAU,IACjC,KAAK,MAAQ,GAAS,OAAS,4CAC/B,KAAK,UAAY,GAAS,WAAa,IAEnC,EAAA,EAAe,QAEnB,KAAK,UAAU,MAAA,CACf,KAAK,mBAAA,CACL,KAAK,eAAA,GAKN,aAAA,CACC,KAAK,mBAAA,CACL,KAAK,UAAU,MAAA,CACf,KAAK,eAAA,CAGN,mBAAA,CACa,iBAAiB,KAAK,QAAA,CAAS,WAC/B,WACX,KAAK,QAAQ,MAAM,SAAW,WAC9B,KAAK,eAAA,CAAiB,GAGlB,KAAK,SACT,KAAK,OAAS,SAAS,cAAc,MAAA,CACrC,KAAK,OAAO,aAAa,cAAe,OAAA,CACxC,OAAO,OAAO,KAAK,OAAO,MAAO,CAChC,SAAU,WACV,MAAO,IACP,cAAe,OACf,OAAQ,IACR,aAAc,UACd,SAAU,SACV,QAAS,IACT,WAAY,qBAAA,CAAA,CAEb,KAAK,QAAQ,QAAQ,KAAK,OAAA,EAI5B,eAAA,EAyBC,EAAA,EAAA,QAAA,EAAA,EAAA,WAxBqC,KAAK,QAAS,aAAA,CAAc,MAAA,EAAA,EAAA,UAE3D,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAa,KAAK,QAAQ,uBAAA,CACxB,MAAA,CAAA,EAoBH,EAAA,EAAA,WAhB8B,KAAK,QAAS,YAAA,CAAa,MAAA,EAAA,EAAA,WACpD,EAAG,EAAA,wBAAA,EAAwB,EAAA,EAAA,KACjC,GAAA,CACH,IAAM,EAAO,KAAK,YAAc,KAAK,QAAQ,uBAAA,CAC7C,MAAO,CAAE,EAAG,EAAE,QAAU,EAAK,KAAM,EAAG,EAAE,QAAU,EAAK,IAAA,EAAA,CAAA,EAY3C,EAAA,EAAA,WARW,KAAK,QAAS,aAAA,CAAc,MAAA,EAAA,EAAA,UAE/C,KAAK,SAAQ,KAAK,OAAO,MAAM,QAAU,KAC7C,KAAK,WAAA,IAAa,GACX,MAAA,CAAA,CAAA,CAKP,MAAA,EAAA,EAAA,WAAe,KAAK,UAAA,CAAA,CACpB,UAAU,GAAA,CACN,GAAO,KAAK,SACf,KAAK,OAAO,MAAM,WAAa,iCAC5B,KAAK,OAAA,eAAsB,EAAI,EAAA,KAAO,EAAI,EAAA,sCACvB,KAAK,MAAA,GAAS,KAAK,MAAuB,IAAjB,KAAK,UAAA,CAAA,0DAAA,CAOxD,cAAA,CACC,KAAK,UAAU,MAAA,CACf,KAAK,QAAQ,QAAA,CACb,KAAK,OAAA,IAAS,GACV,KAAK,gBAAkB,KAAK,UAC/B,KAAK,QAAQ,MAAM,SAAW,GAC9B,KAAK,eAAA,CAAiB,KAKZ,GAAA,EAAA,EAAA,WAAuB,EAAA,CAAA,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
|