@mhmo91/schmancy 0.10.5 → 0.10.7
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/README.md +11 -0
- package/custom-elements.json +235 -1807
- package/dist/agent/{flow-CaPi2G8y.js.map → flow-CvG1fLW5.js.map} +1 -1
- package/dist/agent/schmancy.agent.js +5347 -12408
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +70 -1068
- package/dist/agent/{vendor-material-color-Be96dpGE.js.map → vendor-material-color-DcL7ZPxx.js.map} +1 -1
- package/dist/{area-CSQdhCBF.cjs → area-8IBAXzbC.cjs} +1 -1
- package/dist/{area-CSQdhCBF.cjs.map → area-8IBAXzbC.cjs.map} +1 -1
- package/dist/{area-D5haQE-J.js → area-DSW_LYXQ.js} +1 -1
- package/dist/{area-D5haQE-J.js.map → area-DSW_LYXQ.js.map} +1 -1
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{autocomplete-B_bJXUjm.cjs → autocomplete-9PLjlFYt.cjs} +1 -1
- package/dist/{autocomplete-B_bJXUjm.cjs.map → autocomplete-9PLjlFYt.cjs.map} +1 -1
- package/dist/{autocomplete-DtyjZJ1E.js → autocomplete-CXwwmUbC.js} +2 -2
- package/dist/{autocomplete-DtyjZJ1E.js.map → autocomplete-CXwwmUbC.js.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +1 -1
- package/dist/avatar.js +2 -2
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-BJLCp-Hv.cjs → boat-CpGNeWav.cjs} +1 -1
- package/dist/{boat-BJLCp-Hv.cjs.map → boat-CpGNeWav.cjs.map} +1 -1
- package/dist/{boat-MT8bRT8u.js → boat-Dwn5oXd8.js} +1 -1
- package/dist/{boat-MT8bRT8u.js.map → boat-Dwn5oXd8.js.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/{busy-DSF2E-zy.cjs → busy-CUUgvimY.cjs} +1 -1
- package/dist/{busy-DSF2E-zy.cjs.map → busy-CUUgvimY.cjs.map} +1 -1
- package/dist/{busy-6BqWGryX.js → busy-Cjm1BYVC.js} +1 -1
- package/dist/{busy-6BqWGryX.js.map → busy-Cjm1BYVC.js.map} +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/{card-CvuVha-W.js → card-BR22oYCL.js} +1 -1
- package/dist/{card-CvuVha-W.js.map → card-BR22oYCL.js.map} +1 -1
- package/dist/{card-DnKnaHzf.cjs → card-BjZ_WRr3.cjs} +1 -1
- package/dist/{card-DnKnaHzf.cjs.map → card-BjZ_WRr3.cjs.map} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-D3u8Wm9r.cjs → checkbox-2e8v7CNg.cjs} +1 -1
- package/dist/{checkbox-D3u8Wm9r.cjs.map → checkbox-2e8v7CNg.cjs.map} +1 -1
- package/dist/{checkbox-QDRsE8cp.js → checkbox-CsADwyfu.js} +1 -1
- package/dist/{checkbox-QDRsE8cp.js.map → checkbox-CsADwyfu.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-Dy9vx8JS.js → chips-C9HwVbGT.js} +2 -2
- package/dist/{chips-Dy9vx8JS.js.map → chips-C9HwVbGT.js.map} +1 -1
- package/dist/{chips-CMoQzop1.cjs → chips-DPCcO55o.cjs} +1 -1
- package/dist/{chips-CMoQzop1.cjs.map → chips-DPCcO55o.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +1 -1
- package/dist/connectivity.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-B2NuihKA.cjs → date-range-63-FC7gD.cjs} +1 -1
- package/dist/{date-range-B2NuihKA.cjs.map → date-range-63-FC7gD.cjs.map} +1 -1
- package/dist/{date-range-Boesjlic.js → date-range-CFaP-8Os.js} +2 -2
- package/dist/{date-range-Boesjlic.js.map → date-range-CFaP-8Os.js.map} +1 -1
- package/dist/{date-range-inline-DBuND2pc.js → date-range-inline-BCuK_XCv.js} +1 -1
- package/dist/{date-range-inline-DBuND2pc.js.map → date-range-inline-BCuK_XCv.js.map} +1 -1
- package/dist/{date-range-inline-BI6_4Ahl.cjs → date-range-inline-Cpdqd-8B.cjs} +1 -1
- package/dist/{date-range-inline-BI6_4Ahl.cjs.map → date-range-inline-Cpdqd-8B.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 +1 -1
- package/dist/delay.js +2 -2
- package/dist/{details-BrGrUTGC.js → details-0dOlqHHL.js} +1 -1
- package/dist/{details-BrGrUTGC.js.map → details-0dOlqHHL.js.map} +1 -1
- package/dist/{details-BRs_z5-k.cjs → details-qKikJIyH.cjs} +1 -1
- package/dist/{details-BRs_z5-k.cjs.map → details-qKikJIyH.cjs.map} +1 -1
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{divider-W3TiDasp.js → divider-BxkIl0H1.js} +1 -1
- package/dist/{divider-W3TiDasp.js.map → divider-BxkIl0H1.js.map} +1 -1
- package/dist/{divider-BOxQ2T9h.cjs → divider-CX9mmWZ8.cjs} +1 -1
- package/dist/{divider-BOxQ2T9h.cjs.map → divider-CX9mmWZ8.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{expand-CnccBF91.cjs → expand-891JuQuN.cjs} +1 -1
- package/dist/{expand-CnccBF91.cjs.map → expand-891JuQuN.cjs.map} +1 -1
- package/dist/{expand-Pu8fZ0jZ.js → expand-BeAx94MP.js} +2 -2
- package/dist/{expand-Pu8fZ0jZ.js.map → expand-BeAx94MP.js.map} +1 -1
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/{float-WCVdp3um.js → float-BPF2WO4L.js} +1 -1
- package/dist/{float-WCVdp3um.js.map → float-BPF2WO4L.js.map} +1 -1
- package/dist/{float-BRKa-P6Z.cjs → float-D7vvODxx.cjs} +1 -1
- package/dist/{float-BRKa-P6Z.cjs.map → float-D7vvODxx.cjs.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-CI59gad4.js.map → form-CFvwnfuJ.js.map} +1 -1
- package/dist/{form-B2qudx_q.cjs.map → form-Ceijw1aA.cjs.map} +1 -1
- 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/{hashContent-a8uVr3xs.js.map → hashContent-BU6jl5ih.js.map} +1 -1
- package/dist/{hashContent-ejkBgDnN.cjs.map → hashContent-Bobsobip.cjs.map} +1 -1
- package/dist/{icons-C0ufCcdp.js → icons-BKxW_7QR.js} +1 -1
- package/dist/{icons-C0ufCcdp.js.map → icons-BKxW_7QR.js.map} +1 -1
- package/dist/{icons-DXEbmg-O.cjs → icons-QSdo-8h9.cjs} +1 -1
- package/dist/{icons-DXEbmg-O.cjs.map → icons-QSdo-8h9.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-c9lGxw7x.js → iframe-BxvbhyTS.js} +1 -1
- package/dist/{iframe-c9lGxw7x.js.map → iframe-BxvbhyTS.js.map} +1 -1
- package/dist/{iframe-C6RVODkW.cjs → iframe-CMKV-bm8.cjs} +1 -1
- package/dist/{iframe-C6RVODkW.cjs.map → iframe-CMKV-bm8.cjs.map} +1 -1
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +64 -72
- package/dist/{input-B4HM-9-H.cjs → input-BFhJU74_.cjs} +1 -1
- package/dist/{input-B4HM-9-H.cjs.map → input-BFhJU74_.cjs.map} +1 -1
- package/dist/{input-Pmj_bH37.js → input-DIqaR8Mr.js} +1 -1
- package/dist/{input-Pmj_bH37.js.map → input-DIqaR8Mr.js.map} +1 -1
- package/dist/{input-chip-BIGgd_7w.js → input-chip-D9tlSk_2.js} +1 -1
- package/dist/{input-chip-BIGgd_7w.js.map → input-chip-D9tlSk_2.js.map} +1 -1
- package/dist/{input-chip-BoDisY6c.cjs → input-chip-w09qTt7J.cjs} +1 -1
- package/dist/{input-chip-BoDisY6c.cjs.map → input-chip-w09qTt7J.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json.cjs +1 -1
- package/dist/json.js +2 -2
- package/dist/kbd.cjs +1 -1
- package/dist/kbd.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{lightbox-DK1vDKm3.cjs → lightbox-CK035jsx.cjs} +1 -1
- package/dist/{lightbox-DK1vDKm3.cjs.map → lightbox-CK035jsx.cjs.map} +1 -1
- package/dist/{lightbox-K1eJTYXP.js → lightbox-GChmL3Ff.js} +2 -2
- package/dist/{lightbox-K1eJTYXP.js.map → lightbox-GChmL3Ff.js.map} +1 -1
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/{list-CEuVqAxN.cjs → list-B3P37zlH.cjs} +1 -1
- package/dist/{list-CEuVqAxN.cjs.map → list-B3P37zlH.cjs.map} +1 -1
- package/dist/{list-Ds0Nv1y5.js → list-J-Fz24Z1.js} +1 -1
- package/dist/{list-Ds0Nv1y5.js.map → list-J-Fz24Z1.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{menu-Bly30Nje.cjs → menu-BnFd8CwU.cjs} +1 -1
- package/dist/{menu-Bly30Nje.cjs.map → menu-BnFd8CwU.cjs.map} +1 -1
- package/dist/{menu-L8MK1ma5.js → menu-DHTlUwXS.js} +2 -2
- package/dist/{menu-L8MK1ma5.js.map → menu-DHTlUwXS.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins-47_CZk7q.cjs +298 -0
- package/dist/{mixins-CAb0b03r.cjs.map → mixins-47_CZk7q.cjs.map} +1 -1
- package/dist/mixins-PBJJGiiP.js +627 -0
- package/dist/{mixins-B34UxxCe.js.map → mixins-PBJJGiiP.js.map} +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/{notification-7fSbk8hm.cjs → notification-B6YBL0hx.cjs} +1 -1
- package/dist/{notification-7fSbk8hm.cjs.map → notification-B6YBL0hx.cjs.map} +1 -1
- package/dist/{notification-DB25M-qo.js → notification-C-5Bv3vj.js} +2 -2
- package/dist/{notification-DB25M-qo.js.map → notification-C-5Bv3vj.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-DDHa25k5.js → option-B7q6VXCu.js} +1 -1
- package/dist/{option-DDHa25k5.js.map → option-B7q6VXCu.js.map} +1 -1
- package/dist/{option-HF9Xqbuq.cjs → option-DVQRa3nr.cjs} +1 -1
- package/dist/{option-HF9Xqbuq.cjs.map → option-DVQRa3nr.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-stack-CCiTaf_C.js.map → overlay-stack-DCDS17uj.js.map} +1 -1
- package/dist/{overlay-stack-CFGiYf34.cjs.map → overlay-stack-DPIe_aYv.cjs.map} +1 -1
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-BDG94R0x.js → overlay.confirm-body-CAY5xK1n.js} +1 -1
- package/dist/{overlay.confirm-body-BDG94R0x.js.map → overlay.confirm-body-CAY5xK1n.js.map} +1 -1
- package/dist/{overlay.confirm-body-b4Nx_OVf.cjs → overlay.confirm-body-XZtErofy.cjs} +1 -1
- package/dist/{overlay.confirm-body-b4Nx_OVf.cjs.map → overlay.confirm-body-XZtErofy.cjs.map} +1 -1
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-BUCuZa6V.js → overlay.service-BZE_lwKO.js} +2 -2
- package/dist/{overlay.service-BUCuZa6V.js.map → overlay.service-BZE_lwKO.js.map} +1 -1
- package/dist/{overlay.service-CRHZZY9F.cjs → overlay.service-Oyjrw831.cjs} +1 -1
- package/dist/{overlay.service-CRHZZY9F.cjs.map → overlay.service-Oyjrw831.cjs.map} +1 -1
- package/dist/page.cjs +1 -1
- package/dist/page.js +2 -2
- package/dist/{progress-CqOyMM4i.js → progress-BHXLYs9i.js} +1 -1
- package/dist/{progress-CqOyMM4i.js.map → progress-BHXLYs9i.js.map} +1 -1
- package/dist/{progress-54R4QRgW.cjs → progress-D99bumkC.cjs} +1 -1
- package/dist/{progress-54R4QRgW.cjs.map → progress-D99bumkC.cjs.map} +1 -1
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-B4zbBIZF.js → radio-group-BYra5_q1.js} +1 -1
- package/dist/{radio-group-B4zbBIZF.js.map → radio-group-BYra5_q1.js.map} +1 -1
- package/dist/{radio-group-BJqZpYVy.cjs → radio-group-DYsycLmD.cjs} +1 -1
- package/dist/{radio-group-BJqZpYVy.cjs.map → radio-group-DYsycLmD.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +1 -1
- package/dist/range.js +1 -1
- package/dist/{rxjs-utils-BXpvHN4-.js.map → rxjs-utils-CVeJQ9KG.js.map} +1 -1
- package/dist/{rxjs-utils-CaC-tdot.cjs.map → rxjs-utils-DCUHg_Ml.cjs.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{scroll-CYm6Krus.js → scroll-TqNWZ0lo.js} +1 -1
- package/dist/{scroll-CYm6Krus.js.map → scroll-TqNWZ0lo.js.map} +1 -1
- package/dist/{scroll-iSRovYYt.cjs → scroll-cayCBOrq.cjs} +1 -1
- package/dist/{scroll-iSRovYYt.cjs.map → scroll-cayCBOrq.cjs.map} +1 -1
- package/dist/{select-DiQHtQJN.cjs → select-CRdSmlLq.cjs} +1 -1
- package/dist/{select-DiQHtQJN.cjs.map → select-CRdSmlLq.cjs.map} +1 -1
- package/dist/{select-1WHseXP6.js → select-nzq0qFlF.js} +2 -2
- package/dist/{select-1WHseXP6.js.map → select-nzq0qFlF.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/skills/INDEX.md +9 -6
- package/dist/skills/schmancy/INDEX.md +9 -6
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{splash-screen-BwvtKMdN.js → splash-screen-BJeIiJ_e.js} +1 -1
- package/dist/{splash-screen-BwvtKMdN.js.map → splash-screen-BJeIiJ_e.js.map} +1 -1
- package/dist/{splash-screen-CJL8DGDe.cjs → splash-screen-BMLQXzDq.cjs} +1 -1
- package/dist/{splash-screen-CJL8DGDe.cjs.map → splash-screen-BMLQXzDq.cjs.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-Bwr2NR0A.cjs → src-DE11tq2Q.cjs} +1 -1
- package/dist/{src-Bwr2NR0A.cjs.map → src-DE11tq2Q.cjs.map} +1 -1
- package/dist/{src-UaZeROcW.js → src-qvWlNoMO.js} +34 -42
- package/dist/{src-UaZeROcW.js.map → src-qvWlNoMO.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-DE5iuI8e.cjs → surface-D426MFLR.cjs} +1 -1
- package/dist/{surface-DE5iuI8e.cjs.map → surface-D426MFLR.cjs.map} +1 -1
- package/dist/{surface-DPUkQ3OL.js → surface-DG7Cmm9V.js} +1 -1
- package/dist/{surface-DPUkQ3OL.js.map → surface-DG7Cmm9V.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.js +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-B2XEQPQl.js → tabs-B7siJkM5.js} +1 -1
- package/dist/{tabs-B2XEQPQl.js.map → tabs-B7siJkM5.js.map} +1 -1
- package/dist/{tabs-CsDQ72Qk.cjs → tabs-t3nMfg1F.cjs} +1 -1
- package/dist/{tabs-CsDQ72Qk.cjs.map → tabs-t3nMfg1F.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-C_ps0lL-.js → textarea-DSxHCCle.js} +1 -1
- package/dist/{textarea-C_ps0lL-.js.map → textarea-DSxHCCle.js.map} +1 -1
- package/dist/{textarea-aeAP9cDG.cjs → textarea-o9vysorM.cjs} +1 -1
- package/dist/{textarea-aeAP9cDG.cjs.map → textarea-o9vysorM.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-DAYTVw13.cjs → theme-Ce9eIP05.cjs} +1 -1
- package/dist/{theme-DAYTVw13.cjs.map → theme-Ce9eIP05.cjs.map} +1 -1
- package/dist/{theme-DAx1iRNr.js → theme-XO3nHDbW.js} +2 -2
- package/dist/{theme-DAx1iRNr.js.map → theme-XO3nHDbW.js.map} +1 -1
- package/dist/{theme-button-BrHkzCtj.js → theme-button-DNutDO1j.js} +1 -1
- package/dist/{theme-button-BrHkzCtj.js.map → theme-button-DNutDO1j.js.map} +1 -1
- package/dist/{theme-button-LsMKY_N_.cjs → theme-button-H7PRz_bg.cjs} +1 -1
- package/dist/{theme-button-LsMKY_N_.cjs.map → theme-button-H7PRz_bg.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.interface-C_034TxG.js.map → theme.interface-B9TjbSBF.js.map} +1 -1
- package/dist/{theme.interface-DESopuZS.cjs.map → theme.interface-BujperTo.cjs.map} +1 -1
- package/dist/theme.js +3 -3
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/{utils-oLBkMvor.cjs → utils-Dt5PpmaQ.cjs} +1 -1
- package/dist/{utils-oLBkMvor.cjs.map → utils-Dt5PpmaQ.cjs.map} +1 -1
- package/dist/{utils-BzFQfaIr.js → utils-kND2Z9Xg.js} +1 -1
- package/dist/{utils-BzFQfaIr.js.map → utils-kND2Z9Xg.js.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +2 -2
- package/dist/visually-hidden.cjs +1 -1
- package/dist/visually-hidden.js +1 -1
- package/dist/{window-BJrKS6Zr.cjs → window-BaoSwgGE.cjs} +1 -1
- package/dist/{window-BJrKS6Zr.cjs.map → window-BaoSwgGE.cjs.map} +1 -1
- package/dist/{window-CyDuTN80.js → window-KnLWhQ3S.js} +2 -2
- package/dist/{window-CyDuTN80.js.map → window-KnLWhQ3S.js.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +4 -5
- package/skills/schmancy/INDEX.md +9 -6
- package/src/index.ts +0 -8
- package/types/src/index.d.ts +0 -8
- package/dist/agent/vendor-highlight-CHJZQQB7.js +0 -2178
- package/dist/agent/vendor-highlight-CHJZQQB7.js.map +0 -1
- package/dist/agent/vendor-jsqr-r7GNh4P3.js +0 -10212
- package/dist/agent/vendor-jsqr-r7GNh4P3.js.map +0 -1
- package/dist/charts.cjs +0 -112
- package/dist/charts.cjs.map +0 -1
- package/dist/charts.js +0 -374
- package/dist/charts.js.map +0 -1
- package/dist/code-highlight-Ddp0oZnm.cjs +0 -190
- package/dist/code-highlight-Ddp0oZnm.cjs.map +0 -1
- package/dist/code-highlight-DtE2-ObF.js +0 -296
- package/dist/code-highlight-DtE2-ObF.js.map +0 -1
- package/dist/code-highlight.cjs +0 -1
- package/dist/code-highlight.js +0 -2
- package/dist/extra-B8IPs6gG.cjs +0 -31
- package/dist/extra-B8IPs6gG.cjs.map +0 -1
- package/dist/extra-DxEWs41z.js +0 -3440
- package/dist/extra-DxEWs41z.js.map +0 -1
- package/dist/extra.cjs +0 -1
- package/dist/extra.js +0 -2
- package/dist/mailbox-CDWqbVvZ.cjs +0 -1140
- package/dist/mailbox-CDWqbVvZ.cjs.map +0 -1
- package/dist/mailbox-DD2How0H.js +0 -1607
- package/dist/mailbox-DD2How0H.js.map +0 -1
- package/dist/mailbox.cjs +0 -1
- package/dist/mailbox.js +0 -2
- package/dist/map-1uwxxvBa.js +0 -208
- package/dist/map-1uwxxvBa.js.map +0 -1
- package/dist/map-BrBSrIqg.cjs +0 -80
- package/dist/map-BrBSrIqg.cjs.map +0 -1
- package/dist/map.cjs +0 -1
- package/dist/map.js +0 -2
- package/dist/mixins-B34UxxCe.js +0 -627
- package/dist/mixins-CAb0b03r.cjs +0 -298
- package/dist/payment-card-form-C4jb-OdM.js +0 -729
- package/dist/payment-card-form-C4jb-OdM.js.map +0 -1
- package/dist/payment-card-form-WEx4CscR.cjs +0 -73
- package/dist/payment-card-form-WEx4CscR.cjs.map +0 -1
- package/dist/payment-card-form.cjs +0 -1
- package/dist/payment-card-form.js +0 -2
- package/dist/qr-scanner.cjs +0 -35
- package/dist/qr-scanner.cjs.map +0 -1
- package/dist/qr-scanner.js +0 -123
- package/dist/qr-scanner.js.map +0 -1
- package/dist/skills/charts.md +0 -93
- package/dist/skills/code-highlight.md +0 -47
- package/dist/skills/extra.md +0 -59
- package/dist/skills/mailbox.md +0 -102
- package/dist/skills/map.md +0 -55
- package/dist/skills/qr-scanner.md +0 -51
- package/dist/skills/schmancy/charts.md +0 -93
- package/dist/skills/schmancy/code-highlight.md +0 -47
- package/dist/skills/schmancy/extra.md +0 -59
- package/dist/skills/schmancy/mailbox.md +0 -102
- package/dist/skills/schmancy/map.md +0 -55
- package/dist/skills/schmancy/qr-scanner.md +0 -51
- package/dist/skills/schmancy/timeline-tile.md +0 -95
- package/dist/skills/timeline-tile.md +0 -95
- package/dist/timeline.cjs +0 -277
- package/dist/timeline.cjs.map +0 -1
- package/dist/timeline.js +0 -326
- package/dist/timeline.js.map +0 -1
- package/skills/schmancy/charts.md +0 -93
- package/skills/schmancy/code-highlight.md +0 -47
- package/skills/schmancy/extra.md +0 -59
- package/skills/schmancy/mailbox.md +0 -102
- package/skills/schmancy/map.md +0 -55
- package/skills/schmancy/qr-scanner.md +0 -51
- package/skills/schmancy/timeline-tile.md +0 -95
- package/src/charts/area-chart.ts +0 -498
- package/src/charts/index.ts +0 -4
- package/src/charts/pills.ts +0 -352
- package/src/charts/types.ts +0 -66
- package/src/charts/utils.ts +0 -65
- package/src/code-highlight/code-highlight.ts +0 -345
- package/src/code-highlight/code-preview.ts +0 -125
- package/src/code-highlight/index.ts +0 -3
- package/src/extra/countries/countries.data.ts +0 -196
- package/src/extra/countries/countries.ts +0 -109
- package/src/extra/countries/index.ts +0 -2
- package/src/extra/index.ts +0 -2
- package/src/extra/timezone/index.ts +0 -2
- package/src/extra/timezone/timezone.ts +0 -118
- package/src/extra/timezone/timezones.data.ts +0 -2546
- package/src/mailbox/README.md +0 -128
- package/src/mailbox/email-editor.ts +0 -1076
- package/src/mailbox/email-layout-selector.ts +0 -58
- package/src/mailbox/email-recipients.ts +0 -599
- package/src/mailbox/email-template-picker.ts +0 -303
- package/src/mailbox/email-viewer.ts +0 -717
- package/src/mailbox/index.ts +0 -31
- package/src/mailbox/mailbox.ts +0 -364
- package/src/mailbox/types.ts +0 -180
- package/src/map/index.ts +0 -1
- package/src/map/map.ts +0 -485
- package/src/payment-card-form/index.ts +0 -1
- package/src/payment-card-form/payment-card-form.ts +0 -331
- package/src/qr-scanner/index.ts +0 -1
- package/src/qr-scanner/qr-scanner.ts +0 -242
- package/src/timeline/index.ts +0 -1
- package/src/timeline/timeline-tile.ts +0 -431
- package/types/src/charts/area-chart.d.ts +0 -58
- package/types/src/charts/index.d.ts +0 -4
- package/types/src/charts/pills.d.ts +0 -51
- package/types/src/charts/types.d.ts +0 -62
- package/types/src/charts/utils.d.ts +0 -28
- package/types/src/code-highlight/code-highlight.d.ts +0 -49
- package/types/src/code-highlight/code-preview.d.ts +0 -30
- package/types/src/code-highlight/index.d.ts +0 -3
- package/types/src/extra/countries/countries.d.ts +0 -26
- package/types/src/extra/countries/countries.data.d.ts +0 -5
- package/types/src/extra/countries/index.d.ts +0 -2
- package/types/src/extra/index.d.ts +0 -2
- package/types/src/extra/timezone/index.d.ts +0 -2
- package/types/src/extra/timezone/timezone.d.ts +0 -34
- package/types/src/extra/timezone/timezones.data.d.ts +0 -7
- package/types/src/mailbox/email-editor.d.ts +0 -101
- package/types/src/mailbox/email-layout-selector.d.ts +0 -18
- package/types/src/mailbox/email-recipients.d.ts +0 -122
- package/types/src/mailbox/email-template-picker.d.ts +0 -54
- package/types/src/mailbox/email-viewer.d.ts +0 -86
- package/types/src/mailbox/index.d.ts +0 -12
- package/types/src/mailbox/mailbox.d.ts +0 -82
- package/types/src/mailbox/types.d.ts +0 -176
- package/types/src/map/index.d.ts +0 -1
- package/types/src/map/map.d.ts +0 -130
- package/types/src/payment-card-form/index.d.ts +0 -1
- package/types/src/payment-card-form/payment-card-form.d.ts +0 -85
- package/types/src/qr-scanner/index.d.ts +0 -1
- package/types/src/qr-scanner/qr-scanner.d.ts +0 -26
- package/types/src/timeline/index.d.ts +0 -1
- package/types/src/timeline/timeline-tile.d.ts +0 -44
- /package/dist/agent/{flow-CaPi2G8y.js → flow-CvG1fLW5.js} +0 -0
- /package/dist/agent/{vendor-material-color-Be96dpGE.js → vendor-material-color-DcL7ZPxx.js} +0 -0
- /package/dist/{form-CI59gad4.js → form-CFvwnfuJ.js} +0 -0
- /package/dist/{form-B2qudx_q.cjs → form-Ceijw1aA.cjs} +0 -0
- /package/dist/{hashContent-a8uVr3xs.js → hashContent-BU6jl5ih.js} +0 -0
- /package/dist/{hashContent-ejkBgDnN.cjs → hashContent-Bobsobip.cjs} +0 -0
- /package/dist/{overlay-stack-CCiTaf_C.js → overlay-stack-DCDS17uj.js} +0 -0
- /package/dist/{overlay-stack-CFGiYf34.cjs → overlay-stack-DPIe_aYv.cjs} +0 -0
- /package/dist/{rxjs-utils-BXpvHN4-.js → rxjs-utils-CVeJQ9KG.js} +0 -0
- /package/dist/{rxjs-utils-CaC-tdot.cjs → rxjs-utils-DCUHg_Ml.cjs} +0 -0
- /package/dist/{theme.interface-C_034TxG.js → theme.interface-B9TjbSBF.js} +0 -0
- /package/dist/{theme.interface-DESopuZS.cjs → theme.interface-BujperTo.cjs} +0 -0
package/dist/timeline.cjs
DELETED
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./mixins-CAb0b03r.cjs`),t=require(`./decorate-DpFmy0nm.cjs`);let n=require(`rxjs`),r=require(`lit/decorators.js`),i=require(`lit`),a=require(`lit/directives/when.js`);var o=class extends e.s{constructor(...e){super(...e),this.state=`empty`,this.glyph=``,this._onClick=()=>{this.state!==`empty`&&this.dispatchEvent(new CustomEvent(`tile-click`,{detail:{glyph:this.glyph,state:this.state},bubbles:!0,composed:!0}))}}static{this.styles=[i.css`
|
|
2
|
-
:host {
|
|
3
|
-
--schmancy-tile-w: 32px;
|
|
4
|
-
--schmancy-tile-h: 40px;
|
|
5
|
-
display: inline-block;
|
|
6
|
-
position: relative;
|
|
7
|
-
width: var(--schmancy-tile-w);
|
|
8
|
-
height: var(--schmancy-tile-h);
|
|
9
|
-
font-size: 14px;
|
|
10
|
-
line-height: 1.45;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/* Inner box that paints the cell. The host is a layout container only;
|
|
14
|
-
the box owns the border / background / hover transform so the host
|
|
15
|
-
stays a clean focus target. */
|
|
16
|
-
.tile {
|
|
17
|
-
position: absolute;
|
|
18
|
-
inset: 0;
|
|
19
|
-
border-radius: 2px;
|
|
20
|
-
overflow: visible;
|
|
21
|
-
appearance: none;
|
|
22
|
-
padding: 0;
|
|
23
|
-
font: inherit;
|
|
24
|
-
color: inherit;
|
|
25
|
-
background: transparent;
|
|
26
|
-
z-index: 1;
|
|
27
|
-
transition:
|
|
28
|
-
transform 120ms ease-in-out,
|
|
29
|
-
box-shadow 120ms ease-in-out,
|
|
30
|
-
border-color 120ms ease-in-out;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/* Empty state */
|
|
34
|
-
:host([state='empty']) .tile {
|
|
35
|
-
border: 1px dashed var(--schmancy-sys-color-outline);
|
|
36
|
-
background: transparent;
|
|
37
|
-
cursor: default;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
:host([state='empty']) .glyph {
|
|
41
|
-
color: var(--schmancy-sys-color-surface-onVariant);
|
|
42
|
-
opacity: 0.7;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/* Shared filled-state card styling (filled / stack-top / stack-sibling) */
|
|
46
|
-
:host([state='filled']) .tile,
|
|
47
|
-
:host([state='stack-top']) .tile,
|
|
48
|
-
:host([state='stack-sibling']) .tile {
|
|
49
|
-
border: 1px solid var(--schmancy-sys-color-outline);
|
|
50
|
-
background: var(--schmancy-sys-color-surface-containerLowest);
|
|
51
|
-
cursor: pointer;
|
|
52
|
-
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/* Paper-card line texture: five thin lines emulating ruled paper */
|
|
56
|
-
:host([state='filled']) .tile::before,
|
|
57
|
-
:host([state='stack-top']) .tile::before,
|
|
58
|
-
:host([state='stack-sibling']) .tile::before {
|
|
59
|
-
content: '';
|
|
60
|
-
position: absolute;
|
|
61
|
-
left: 4px;
|
|
62
|
-
right: 4px;
|
|
63
|
-
top: 16px;
|
|
64
|
-
bottom: 5px;
|
|
65
|
-
background-image:
|
|
66
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),
|
|
67
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),
|
|
68
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),
|
|
69
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),
|
|
70
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px);
|
|
71
|
-
background-repeat: no-repeat;
|
|
72
|
-
background-size:
|
|
73
|
-
100% 1px,
|
|
74
|
-
80% 1px,
|
|
75
|
-
92% 1px,
|
|
76
|
-
65% 1px,
|
|
77
|
-
78% 1px;
|
|
78
|
-
background-position:
|
|
79
|
-
0 0,
|
|
80
|
-
0 4px,
|
|
81
|
-
0 8px,
|
|
82
|
-
0 12px,
|
|
83
|
-
0 16px;
|
|
84
|
-
opacity: 0.3;
|
|
85
|
-
pointer-events: none;
|
|
86
|
-
z-index: 0;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/* Tinted accent strip across the top edge */
|
|
90
|
-
:host([state='filled']) .tile::after,
|
|
91
|
-
:host([state='stack-top']) .tile::after,
|
|
92
|
-
:host([state='stack-sibling']) .tile::after {
|
|
93
|
-
content: '';
|
|
94
|
-
position: absolute;
|
|
95
|
-
left: 0;
|
|
96
|
-
right: 0;
|
|
97
|
-
top: 0;
|
|
98
|
-
height: 11px;
|
|
99
|
-
background: color-mix(
|
|
100
|
-
in oklch,
|
|
101
|
-
var(--schmancy-sys-color-primary-default) 10%,
|
|
102
|
-
transparent
|
|
103
|
-
);
|
|
104
|
-
border-bottom: 1px solid
|
|
105
|
-
color-mix(
|
|
106
|
-
in oklch,
|
|
107
|
-
var(--schmancy-sys-color-primary-default) 25%,
|
|
108
|
-
var(--schmancy-sys-color-outline)
|
|
109
|
-
);
|
|
110
|
-
pointer-events: none;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
:host([state='filled']) .glyph,
|
|
114
|
-
:host([state='stack-top']) .glyph,
|
|
115
|
-
:host([state='stack-sibling']) .glyph {
|
|
116
|
-
color: var(--schmancy-sys-color-primary-onContainer);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/* Single-card hover: lift 1px + soft shadow */
|
|
120
|
-
:host([state='filled']) .tile:hover {
|
|
121
|
-
border-color: var(--schmancy-sys-color-primary-default);
|
|
122
|
-
transform: translateY(-1px);
|
|
123
|
-
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/* Focus ring in primary color */
|
|
127
|
-
:host([state='filled']) .tile:focus-visible,
|
|
128
|
-
:host([state='stack-top']) .tile:focus-visible,
|
|
129
|
-
:host([state='stack-sibling']) .tile:focus-visible {
|
|
130
|
-
outline: 2px solid var(--schmancy-sys-color-primary-default);
|
|
131
|
-
outline-offset: 3px;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/* Stacked tiles position absolutely on the host's grid cell so the
|
|
135
|
-
wrapper's --fan-count / --i custom properties drive the offset. */
|
|
136
|
-
:host([state='stack-top']),
|
|
137
|
-
:host([state='stack-sibling']) {
|
|
138
|
-
position: absolute;
|
|
139
|
-
top: 0;
|
|
140
|
-
left: 0;
|
|
141
|
-
transition:
|
|
142
|
-
transform 200ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
143
|
-
box-shadow 200ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
144
|
-
transform: translate(
|
|
145
|
-
calc((var(--fan-count, 1) - 1 - var(--i, 0)) * -3px),
|
|
146
|
-
calc((var(--fan-count, 1) - 1 - var(--i, 0)) * 3px)
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/* Sibling tiles only become interactive once the wrapper is fanned —
|
|
151
|
-
otherwise they're stacked underneath and would steal pointer events
|
|
152
|
-
from the top card. */
|
|
153
|
-
:host([state='stack-sibling']) {
|
|
154
|
-
pointer-events: none;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/* Fanned: every tile slides edge-to-edge along the wrapper's row */
|
|
158
|
-
:host([state='stack-top']:host-context([data-fanned])),
|
|
159
|
-
:host-context([data-fanned]):host([state='stack-top']) {
|
|
160
|
-
transform: translate(
|
|
161
|
-
calc((var(--fan-count, 1) - 1 - var(--i, 0)) * var(--schmancy-tile-w) * -1),
|
|
162
|
-
0
|
|
163
|
-
);
|
|
164
|
-
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
:host([state='stack-sibling']:host-context([data-fanned])),
|
|
168
|
-
:host-context([data-fanned]):host([state='stack-sibling']) {
|
|
169
|
-
pointer-events: auto;
|
|
170
|
-
transform: translate(
|
|
171
|
-
calc((var(--fan-count, 1) - 1 - var(--i, 0)) * var(--schmancy-tile-w) * -1),
|
|
172
|
-
0
|
|
173
|
-
);
|
|
174
|
-
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
:host-context([data-fanned]):host([state='stack-top']) .tile:hover,
|
|
178
|
-
:host-context([data-fanned]):host([state='stack-sibling']) .tile:hover {
|
|
179
|
-
border-color: var(--schmancy-sys-color-primary-default);
|
|
180
|
-
box-shadow: 0 6px 14px rgba(0, 0, 0, 0.1);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
.glyph {
|
|
184
|
-
position: absolute;
|
|
185
|
-
top: 0;
|
|
186
|
-
left: 0;
|
|
187
|
-
right: 0;
|
|
188
|
-
height: 11px;
|
|
189
|
-
display: flex;
|
|
190
|
-
align-items: center;
|
|
191
|
-
justify-content: center;
|
|
192
|
-
font-size: 7.5px;
|
|
193
|
-
font-weight: 500;
|
|
194
|
-
letter-spacing: 0.12em;
|
|
195
|
-
line-height: 1;
|
|
196
|
-
z-index: 1;
|
|
197
|
-
font-variant-caps: all-petite-caps;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
.tooltip {
|
|
201
|
-
position: absolute;
|
|
202
|
-
bottom: calc(100% + 6px);
|
|
203
|
-
left: 50%;
|
|
204
|
-
transform: translate(-50%, 2px);
|
|
205
|
-
font-size: 10px;
|
|
206
|
-
line-height: 1.2;
|
|
207
|
-
color: var(--schmancy-sys-color-surface-on);
|
|
208
|
-
background: var(--schmancy-sys-color-surface-containerLowest);
|
|
209
|
-
border: 1px solid var(--schmancy-sys-color-outline);
|
|
210
|
-
padding: 2px 6px;
|
|
211
|
-
border-radius: 3px;
|
|
212
|
-
white-space: nowrap;
|
|
213
|
-
opacity: 0;
|
|
214
|
-
pointer-events: none;
|
|
215
|
-
transition:
|
|
216
|
-
opacity 150ms ease-in-out,
|
|
217
|
-
transform 150ms ease-in-out;
|
|
218
|
-
z-index: 2;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
.tile:hover .tooltip,
|
|
222
|
-
.tile:focus-visible .tooltip {
|
|
223
|
-
opacity: 1;
|
|
224
|
-
transform: translate(-50%, 0);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
.caption {
|
|
228
|
-
position: absolute;
|
|
229
|
-
top: calc(100% + 6px);
|
|
230
|
-
left: 50%;
|
|
231
|
-
transform: translateX(-50%);
|
|
232
|
-
font-size: 11px;
|
|
233
|
-
line-height: 1.2;
|
|
234
|
-
font-weight: 500;
|
|
235
|
-
white-space: nowrap;
|
|
236
|
-
color: var(--schmancy-sys-color-surface-on);
|
|
237
|
-
font-variant-numeric: tabular-nums;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
.stack-count {
|
|
241
|
-
position: absolute;
|
|
242
|
-
top: -5px;
|
|
243
|
-
right: -7px;
|
|
244
|
-
min-width: 14px;
|
|
245
|
-
height: 14px;
|
|
246
|
-
padding: 0 4px;
|
|
247
|
-
border-radius: 7px;
|
|
248
|
-
background: var(--schmancy-sys-color-primary-default);
|
|
249
|
-
color: var(--schmancy-sys-color-primary-on);
|
|
250
|
-
font-size: 9px;
|
|
251
|
-
font-weight: 500;
|
|
252
|
-
line-height: 14px;
|
|
253
|
-
text-align: center;
|
|
254
|
-
z-index: 10;
|
|
255
|
-
pointer-events: none;
|
|
256
|
-
transition: opacity 150ms ease-in-out;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
:host-context([data-fanned]) .stack-count {
|
|
260
|
-
opacity: 0;
|
|
261
|
-
}
|
|
262
|
-
`]}connectedCallback(){if(super.connectedCallback(),this.index!==void 0&&this.style.setProperty(`--i`,String(this.index)),this.state!==`stack-top`)return;let e=this.parentElement;e&&(0,n.fromEvent)(e,`pointerover`).pipe((0,n.map)(e=>e.target?.closest(`[data-stack-id]`)??null),(0,n.distinctUntilChanged)(),(0,n.switchMap)(t=>t===e?(0,n.of)(e):(0,n.timer)(800).pipe((0,n.map)(()=>null))),(0,n.distinctUntilChanged)(),(0,n.switchMap)(e=>e?new n.Observable(()=>(e.setAttribute(`data-fanned`,``),()=>e.removeAttribute(`data-fanned`))):n.EMPTY),(0,n.takeUntil)(this.disconnecting)).subscribe()}updated(e){super.updated(e),e.has(`index`)&&this.index!==void 0&&this.style.setProperty(`--i`,String(this.index))}_ariaLabel(){let e=[this.glyph];return this.caption&&e.push(this.caption),this.tooltip&&e.push(this.tooltip),this.state===`empty`&&e.push(`empty`),e.join(` · `)}render(){let e=this.state!==`empty`,t=this._ariaLabel();return i.html`
|
|
263
|
-
<button
|
|
264
|
-
type="button"
|
|
265
|
-
class="tile"
|
|
266
|
-
role=${e?`button`:`presentation`}
|
|
267
|
-
tabindex=${e?0:-1}
|
|
268
|
-
aria-label=${t}
|
|
269
|
-
?disabled=${!e}
|
|
270
|
-
@click=${this._onClick}
|
|
271
|
-
>
|
|
272
|
-
<span class="glyph">${this.glyph}</span>
|
|
273
|
-
${(0,a.when)(this.tooltip&&e,()=>i.html`<span class="tooltip">${this.tooltip}</span>`)}
|
|
274
|
-
${(0,a.when)(this.caption&&this.state!==`stack-sibling`,()=>i.html`<span class="caption">${this.caption}</span>`)}
|
|
275
|
-
${(0,a.when)(this.state===`stack-top`&&this.stackCount!==void 0&&this.stackCount>1,()=>i.html`<span class="stack-count">×${this.stackCount}</span>`)}
|
|
276
|
-
</button>
|
|
277
|
-
`}};t.t([(0,r.property)({type:String,reflect:!0})],o.prototype,`state`,void 0),t.t([(0,r.property)({type:String})],o.prototype,`glyph`,void 0),t.t([(0,r.property)({type:Number,attribute:`stack-count`})],o.prototype,`stackCount`,void 0),t.t([(0,r.property)({type:Number,reflect:!0})],o.prototype,`index`,void 0),t.t([(0,r.property)({type:String})],o.prototype,`tooltip`,void 0),t.t([(0,r.property)({type:String})],o.prototype,`caption`,void 0),o=t.t([(0,r.customElement)(`schmancy-timeline-tile`)],o),Object.defineProperty(exports,`SchmancyTimelineTile`,{enumerable:!0,get:function(){return o}});
|
package/dist/timeline.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.cjs","names":[],"sources":["../src/timeline/timeline-tile.ts"],"sourcesContent":["/**\n * Timeline tile — one cell in a procurement-stage rail.\n *\n * Three render states (one component, four `state` values):\n * - `empty` dashed-border outline + glyph\n * - `filled` paper-card with glyph; hoverable / focusable / clickable\n * - `stack-top` paper-card on top of N siblings; carries the ×N badge\n * - `stack-sibling` paper-card behind the top; revealed when the wrapper\n * is fanned\n *\n * Stack fan is coordinated by a `data-fanned` attribute on the parent\n * wrapper element. The `stack-top` tile owns the orchestration: a\n * `pointerover` pipe on the wrapper element with hover-intent (immediate\n * enter, 800ms leave debounce) toggles the attribute. Sibling tiles read\n * the attribute via the `:host-context([data-fanned])` selector. Native\n * `:hover` would drop the moment the cursor crosses the gap between\n * fanned siblings; the attribute survives that crossing because the\n * pointerover stream stays on the wrapper subtree.\n */\nimport { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport {\n\tEMPTY,\n\tObservable,\n\tdistinctUntilChanged,\n\tfromEvent,\n\tmap,\n\tof,\n\tswitchMap,\n\ttakeUntil,\n\ttimer,\n} from 'rxjs'\n\nexport type TimelineTileState = 'empty' | 'filled' | 'stack-top' | 'stack-sibling'\n\nexport type TimelineTileClickEvent = CustomEvent<{\n\tglyph: string\n\tstate: TimelineTileState\n}>\n\n@customElement('schmancy-timeline-tile')\nexport class SchmancyTimelineTile extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\t--schmancy-tile-w: 32px;\n\t\t--schmancy-tile-h: 40px;\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t\twidth: var(--schmancy-tile-w);\n\t\theight: var(--schmancy-tile-h);\n\t\tfont-size: 14px;\n\t\tline-height: 1.45;\n\t}\n\n\t/* Inner box that paints the cell. The host is a layout container only;\n\t the box owns the border / background / hover transform so the host\n\t stays a clean focus target. */\n\t.tile {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder-radius: 2px;\n\t\toverflow: visible;\n\t\tappearance: none;\n\t\tpadding: 0;\n\t\tfont: inherit;\n\t\tcolor: inherit;\n\t\tbackground: transparent;\n\t\tz-index: 1;\n\t\ttransition:\n\t\t\ttransform 120ms ease-in-out,\n\t\t\tbox-shadow 120ms ease-in-out,\n\t\t\tborder-color 120ms ease-in-out;\n\t}\n\n\t/* Empty state */\n\t:host([state='empty']) .tile {\n\t\tborder: 1px dashed var(--schmancy-sys-color-outline);\n\t\tbackground: transparent;\n\t\tcursor: default;\n\t}\n\n\t:host([state='empty']) .glyph {\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t\topacity: 0.7;\n\t}\n\n\t/* Shared filled-state card styling (filled / stack-top / stack-sibling) */\n\t:host([state='filled']) .tile,\n\t:host([state='stack-top']) .tile,\n\t:host([state='stack-sibling']) .tile {\n\t\tborder: 1px solid var(--schmancy-sys-color-outline);\n\t\tbackground: var(--schmancy-sys-color-surface-containerLowest);\n\t\tcursor: pointer;\n\t\tbox-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);\n\t}\n\n\t/* Paper-card line texture: five thin lines emulating ruled paper */\n\t:host([state='filled']) .tile::before,\n\t:host([state='stack-top']) .tile::before,\n\t:host([state='stack-sibling']) .tile::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 4px;\n\t\tright: 4px;\n\t\ttop: 16px;\n\t\tbottom: 5px;\n\t\tbackground-image:\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size:\n\t\t\t100% 1px,\n\t\t\t80% 1px,\n\t\t\t92% 1px,\n\t\t\t65% 1px,\n\t\t\t78% 1px;\n\t\tbackground-position:\n\t\t\t0 0,\n\t\t\t0 4px,\n\t\t\t0 8px,\n\t\t\t0 12px,\n\t\t\t0 16px;\n\t\topacity: 0.3;\n\t\tpointer-events: none;\n\t\tz-index: 0;\n\t}\n\n\t/* Tinted accent strip across the top edge */\n\t:host([state='filled']) .tile::after,\n\t:host([state='stack-top']) .tile::after,\n\t:host([state='stack-sibling']) .tile::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\ttop: 0;\n\t\theight: 11px;\n\t\tbackground: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--schmancy-sys-color-primary-default) 10%,\n\t\t\ttransparent\n\t\t);\n\t\tborder-bottom: 1px solid\n\t\t\tcolor-mix(\n\t\t\t\tin oklch,\n\t\t\t\tvar(--schmancy-sys-color-primary-default) 25%,\n\t\t\t\tvar(--schmancy-sys-color-outline)\n\t\t\t);\n\t\tpointer-events: none;\n\t}\n\n\t:host([state='filled']) .glyph,\n\t:host([state='stack-top']) .glyph,\n\t:host([state='stack-sibling']) .glyph {\n\t\tcolor: var(--schmancy-sys-color-primary-onContainer);\n\t}\n\n\t/* Single-card hover: lift 1px + soft shadow */\n\t:host([state='filled']) .tile:hover {\n\t\tborder-color: var(--schmancy-sys-color-primary-default);\n\t\ttransform: translateY(-1px);\n\t\tbox-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);\n\t}\n\n\t/* Focus ring in primary color */\n\t:host([state='filled']) .tile:focus-visible,\n\t:host([state='stack-top']) .tile:focus-visible,\n\t:host([state='stack-sibling']) .tile:focus-visible {\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\n\t\toutline-offset: 3px;\n\t}\n\n\t/* Stacked tiles position absolutely on the host's grid cell so the\n\t wrapper's --fan-count / --i custom properties drive the offset. */\n\t:host([state='stack-top']),\n\t:host([state='stack-sibling']) {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransition:\n\t\t\ttransform 200ms cubic-bezier(0.2, 0.8, 0.2, 1),\n\t\t\tbox-shadow 200ms cubic-bezier(0.2, 0.8, 0.2, 1);\n\t\ttransform: translate(\n\t\t\tcalc((var(--fan-count, 1) - 1 - var(--i, 0)) * -3px),\n\t\t\tcalc((var(--fan-count, 1) - 1 - var(--i, 0)) * 3px)\n\t\t);\n\t}\n\n\t/* Sibling tiles only become interactive once the wrapper is fanned —\n\t otherwise they're stacked underneath and would steal pointer events\n\t from the top card. */\n\t:host([state='stack-sibling']) {\n\t\tpointer-events: none;\n\t}\n\n\t/* Fanned: every tile slides edge-to-edge along the wrapper's row */\n\t:host([state='stack-top']:host-context([data-fanned])),\n\t:host-context([data-fanned]):host([state='stack-top']) {\n\t\ttransform: translate(\n\t\t\tcalc((var(--fan-count, 1) - 1 - var(--i, 0)) * var(--schmancy-tile-w) * -1),\n\t\t\t0\n\t\t);\n\t\tbox-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);\n\t}\n\n\t:host([state='stack-sibling']:host-context([data-fanned])),\n\t:host-context([data-fanned]):host([state='stack-sibling']) {\n\t\tpointer-events: auto;\n\t\ttransform: translate(\n\t\t\tcalc((var(--fan-count, 1) - 1 - var(--i, 0)) * var(--schmancy-tile-w) * -1),\n\t\t\t0\n\t\t);\n\t\tbox-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);\n\t}\n\n\t:host-context([data-fanned]):host([state='stack-top']) .tile:hover,\n\t:host-context([data-fanned]):host([state='stack-sibling']) .tile:hover {\n\t\tborder-color: var(--schmancy-sys-color-primary-default);\n\t\tbox-shadow: 0 6px 14px rgba(0, 0, 0, 0.1);\n\t}\n\n\t.glyph {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\theight: 11px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 7.5px;\n\t\tfont-weight: 500;\n\t\tletter-spacing: 0.12em;\n\t\tline-height: 1;\n\t\tz-index: 1;\n\t\tfont-variant-caps: all-petite-caps;\n\t}\n\n\t.tooltip {\n\t\tposition: absolute;\n\t\tbottom: calc(100% + 6px);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, 2px);\n\t\tfont-size: 10px;\n\t\tline-height: 1.2;\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tbackground: var(--schmancy-sys-color-surface-containerLowest);\n\t\tborder: 1px solid var(--schmancy-sys-color-outline);\n\t\tpadding: 2px 6px;\n\t\tborder-radius: 3px;\n\t\twhite-space: nowrap;\n\t\topacity: 0;\n\t\tpointer-events: none;\n\t\ttransition:\n\t\t\topacity 150ms ease-in-out,\n\t\t\ttransform 150ms ease-in-out;\n\t\tz-index: 2;\n\t}\n\n\t.tile:hover .tooltip,\n\t.tile:focus-visible .tooltip {\n\t\topacity: 1;\n\t\ttransform: translate(-50%, 0);\n\t}\n\n\t.caption {\n\t\tposition: absolute;\n\t\ttop: calc(100% + 6px);\n\t\tleft: 50%;\n\t\ttransform: translateX(-50%);\n\t\tfont-size: 11px;\n\t\tline-height: 1.2;\n\t\tfont-weight: 500;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tfont-variant-numeric: tabular-nums;\n\t}\n\n\t.stack-count {\n\t\tposition: absolute;\n\t\ttop: -5px;\n\t\tright: -7px;\n\t\tmin-width: 14px;\n\t\theight: 14px;\n\t\tpadding: 0 4px;\n\t\tborder-radius: 7px;\n\t\tbackground: var(--schmancy-sys-color-primary-default);\n\t\tcolor: var(--schmancy-sys-color-primary-on);\n\t\tfont-size: 9px;\n\t\tfont-weight: 500;\n\t\tline-height: 14px;\n\t\ttext-align: center;\n\t\tz-index: 10;\n\t\tpointer-events: none;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t:host-context([data-fanned]) .stack-count {\n\t\topacity: 0;\n\t}\n`]\n\n\t@property({ type: String, reflect: true }) state: TimelineTileState = 'empty'\n\n\t@property({ type: String }) glyph = ''\n\n\t@property({ type: Number, attribute: 'stack-count' }) stackCount?: number\n\n\t@property({ type: Number, reflect: true }) index?: number\n\n\t@property({ type: String }) tooltip?: string\n\n\t@property({ type: String }) caption?: string\n\n\toverride connectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Mirror `index` onto the host's `--i` custom property so the\n\t\t// fan-offset transforms don't depend on the consumer setting both\n\t\t// the prop and an inline style.\n\t\tif (this.index !== undefined) {\n\t\t\tthis.style.setProperty('--i', String(this.index))\n\t\t}\n\n\t\t// Stack-top owns the fan orchestration. The pointerover stream lives\n\t\t// on the parent wrapper (the element holding all sibling tiles); a\n\t\t// hover-intent pipe drives the `data-fanned` attribute on that\n\t\t// wrapper. Enter is immediate (`of(wrapper)`); leave waits 800ms\n\t\t// (`timer(800)`) so the cursor can cross the gap between fanned\n\t\t// cards without collapsing the stack. The inner Observable's\n\t\t// subscription lifetime IS the fanned state — subscribe sets the\n\t\t// attribute, teardown removes it.\n\t\tif (this.state !== 'stack-top') return\n\t\tconst wrapper = this.parentElement\n\t\tif (!wrapper) return\n\n\t\tfromEvent<PointerEvent>(wrapper, 'pointerover')\n\t\t\t.pipe(\n\t\t\t\tmap(\n\t\t\t\t\t(e) =>\n\t\t\t\t\t\t(e.target as HTMLElement | null)?.closest<HTMLElement>(\n\t\t\t\t\t\t\t'[data-stack-id]',\n\t\t\t\t\t\t) ?? null,\n\t\t\t\t),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tswitchMap((target) =>\n\t\t\t\t\ttarget === wrapper ? of(wrapper) : timer(800).pipe(map(() => null)),\n\t\t\t\t),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tswitchMap((target) =>\n\t\t\t\t\ttarget\n\t\t\t\t\t\t? new Observable<never>(() => {\n\t\t\t\t\t\t\t\ttarget.setAttribute('data-fanned', '')\n\t\t\t\t\t\t\t\treturn () => target.removeAttribute('data-fanned')\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: EMPTY,\n\t\t\t\t),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprotected override updated(changed: Map<string, unknown>): void {\n\t\tsuper.updated(changed)\n\t\tif (changed.has('index') && this.index !== undefined) {\n\t\t\tthis.style.setProperty('--i', String(this.index))\n\t\t}\n\t}\n\n\tprivate _onClick = (): void => {\n\t\tif (this.state === 'empty') return\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<TimelineTileClickEvent['detail']>('tile-click', {\n\t\t\t\tdetail: { glyph: this.glyph, state: this.state },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate _ariaLabel(): string {\n\t\tconst parts = [this.glyph]\n\t\tif (this.caption) parts.push(this.caption)\n\t\tif (this.tooltip) parts.push(this.tooltip)\n\t\tif (this.state === 'empty') parts.push('empty')\n\t\treturn parts.join(' · ')\n\t}\n\n\tprotected override render(): unknown {\n\t\tconst isInteractive = this.state !== 'empty'\n\t\tconst ariaLabel = this._ariaLabel()\n\t\treturn html`\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"tile\"\n\t\t\t\trole=${isInteractive ? 'button' : 'presentation'}\n\t\t\t\ttabindex=${isInteractive ? 0 : -1}\n\t\t\t\taria-label=${ariaLabel}\n\t\t\t\t?disabled=${!isInteractive}\n\t\t\t\t@click=${this._onClick}\n\t\t\t>\n\t\t\t\t<span class=\"glyph\">${this.glyph}</span>\n\t\t\t\t${when(\n\t\t\t\t\tthis.tooltip && isInteractive,\n\t\t\t\t\t() => html`<span class=\"tooltip\">${this.tooltip}</span>`,\n\t\t\t\t)}\n\t\t\t\t${when(\n\t\t\t\t\tthis.caption && this.state !== 'stack-sibling',\n\t\t\t\t\t() => html`<span class=\"caption\">${this.caption}</span>`,\n\t\t\t\t)}\n\t\t\t\t${when(\n\t\t\t\t\tthis.state === 'stack-top' &&\n\t\t\t\t\t\tthis.stackCount !== undefined &&\n\t\t\t\t\t\tthis.stackCount > 1,\n\t\t\t\t\t() => html`<span class=\"stack-count\">×${this.stackCount}</span>`,\n\t\t\t\t)}\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-timeline-tile': SchmancyTimelineTile\n\t}\n}\n"],"mappings":"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"}
|
package/dist/timeline.js
DELETED
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
import { s as e } from "./mixins-B34UxxCe.js";
|
|
2
|
-
import { t } from "./decorate-23nYs4Le.js";
|
|
3
|
-
import { EMPTY as n, Observable as r, distinctUntilChanged as i, fromEvent as a, map as o, of as s, switchMap as c, takeUntil as l, timer as u } from "rxjs";
|
|
4
|
-
import { customElement as d, property as f } from "lit/decorators.js";
|
|
5
|
-
import { css as p, html as m } from "lit";
|
|
6
|
-
import { when as h } from "lit/directives/when.js";
|
|
7
|
-
var g = class extends e {
|
|
8
|
-
constructor(...e) {
|
|
9
|
-
super(...e), this.state = "empty", this.glyph = "", this._onClick = () => {
|
|
10
|
-
this.state !== "empty" && this.dispatchEvent(new CustomEvent("tile-click", {
|
|
11
|
-
detail: {
|
|
12
|
-
glyph: this.glyph,
|
|
13
|
-
state: this.state
|
|
14
|
-
},
|
|
15
|
-
bubbles: !0,
|
|
16
|
-
composed: !0
|
|
17
|
-
}));
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
static {
|
|
21
|
-
this.styles = [p`
|
|
22
|
-
:host {
|
|
23
|
-
--schmancy-tile-w: 32px;
|
|
24
|
-
--schmancy-tile-h: 40px;
|
|
25
|
-
display: inline-block;
|
|
26
|
-
position: relative;
|
|
27
|
-
width: var(--schmancy-tile-w);
|
|
28
|
-
height: var(--schmancy-tile-h);
|
|
29
|
-
font-size: 14px;
|
|
30
|
-
line-height: 1.45;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/* Inner box that paints the cell. The host is a layout container only;
|
|
34
|
-
the box owns the border / background / hover transform so the host
|
|
35
|
-
stays a clean focus target. */
|
|
36
|
-
.tile {
|
|
37
|
-
position: absolute;
|
|
38
|
-
inset: 0;
|
|
39
|
-
border-radius: 2px;
|
|
40
|
-
overflow: visible;
|
|
41
|
-
appearance: none;
|
|
42
|
-
padding: 0;
|
|
43
|
-
font: inherit;
|
|
44
|
-
color: inherit;
|
|
45
|
-
background: transparent;
|
|
46
|
-
z-index: 1;
|
|
47
|
-
transition:
|
|
48
|
-
transform 120ms ease-in-out,
|
|
49
|
-
box-shadow 120ms ease-in-out,
|
|
50
|
-
border-color 120ms ease-in-out;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/* Empty state */
|
|
54
|
-
:host([state='empty']) .tile {
|
|
55
|
-
border: 1px dashed var(--schmancy-sys-color-outline);
|
|
56
|
-
background: transparent;
|
|
57
|
-
cursor: default;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
:host([state='empty']) .glyph {
|
|
61
|
-
color: var(--schmancy-sys-color-surface-onVariant);
|
|
62
|
-
opacity: 0.7;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/* Shared filled-state card styling (filled / stack-top / stack-sibling) */
|
|
66
|
-
:host([state='filled']) .tile,
|
|
67
|
-
:host([state='stack-top']) .tile,
|
|
68
|
-
:host([state='stack-sibling']) .tile {
|
|
69
|
-
border: 1px solid var(--schmancy-sys-color-outline);
|
|
70
|
-
background: var(--schmancy-sys-color-surface-containerLowest);
|
|
71
|
-
cursor: pointer;
|
|
72
|
-
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/* Paper-card line texture: five thin lines emulating ruled paper */
|
|
76
|
-
:host([state='filled']) .tile::before,
|
|
77
|
-
:host([state='stack-top']) .tile::before,
|
|
78
|
-
:host([state='stack-sibling']) .tile::before {
|
|
79
|
-
content: '';
|
|
80
|
-
position: absolute;
|
|
81
|
-
left: 4px;
|
|
82
|
-
right: 4px;
|
|
83
|
-
top: 16px;
|
|
84
|
-
bottom: 5px;
|
|
85
|
-
background-image:
|
|
86
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),
|
|
87
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),
|
|
88
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),
|
|
89
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),
|
|
90
|
-
linear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px);
|
|
91
|
-
background-repeat: no-repeat;
|
|
92
|
-
background-size:
|
|
93
|
-
100% 1px,
|
|
94
|
-
80% 1px,
|
|
95
|
-
92% 1px,
|
|
96
|
-
65% 1px,
|
|
97
|
-
78% 1px;
|
|
98
|
-
background-position:
|
|
99
|
-
0 0,
|
|
100
|
-
0 4px,
|
|
101
|
-
0 8px,
|
|
102
|
-
0 12px,
|
|
103
|
-
0 16px;
|
|
104
|
-
opacity: 0.3;
|
|
105
|
-
pointer-events: none;
|
|
106
|
-
z-index: 0;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/* Tinted accent strip across the top edge */
|
|
110
|
-
:host([state='filled']) .tile::after,
|
|
111
|
-
:host([state='stack-top']) .tile::after,
|
|
112
|
-
:host([state='stack-sibling']) .tile::after {
|
|
113
|
-
content: '';
|
|
114
|
-
position: absolute;
|
|
115
|
-
left: 0;
|
|
116
|
-
right: 0;
|
|
117
|
-
top: 0;
|
|
118
|
-
height: 11px;
|
|
119
|
-
background: color-mix(
|
|
120
|
-
in oklch,
|
|
121
|
-
var(--schmancy-sys-color-primary-default) 10%,
|
|
122
|
-
transparent
|
|
123
|
-
);
|
|
124
|
-
border-bottom: 1px solid
|
|
125
|
-
color-mix(
|
|
126
|
-
in oklch,
|
|
127
|
-
var(--schmancy-sys-color-primary-default) 25%,
|
|
128
|
-
var(--schmancy-sys-color-outline)
|
|
129
|
-
);
|
|
130
|
-
pointer-events: none;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
:host([state='filled']) .glyph,
|
|
134
|
-
:host([state='stack-top']) .glyph,
|
|
135
|
-
:host([state='stack-sibling']) .glyph {
|
|
136
|
-
color: var(--schmancy-sys-color-primary-onContainer);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/* Single-card hover: lift 1px + soft shadow */
|
|
140
|
-
:host([state='filled']) .tile:hover {
|
|
141
|
-
border-color: var(--schmancy-sys-color-primary-default);
|
|
142
|
-
transform: translateY(-1px);
|
|
143
|
-
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/* Focus ring in primary color */
|
|
147
|
-
:host([state='filled']) .tile:focus-visible,
|
|
148
|
-
:host([state='stack-top']) .tile:focus-visible,
|
|
149
|
-
:host([state='stack-sibling']) .tile:focus-visible {
|
|
150
|
-
outline: 2px solid var(--schmancy-sys-color-primary-default);
|
|
151
|
-
outline-offset: 3px;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/* Stacked tiles position absolutely on the host's grid cell so the
|
|
155
|
-
wrapper's --fan-count / --i custom properties drive the offset. */
|
|
156
|
-
:host([state='stack-top']),
|
|
157
|
-
:host([state='stack-sibling']) {
|
|
158
|
-
position: absolute;
|
|
159
|
-
top: 0;
|
|
160
|
-
left: 0;
|
|
161
|
-
transition:
|
|
162
|
-
transform 200ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
163
|
-
box-shadow 200ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
164
|
-
transform: translate(
|
|
165
|
-
calc((var(--fan-count, 1) - 1 - var(--i, 0)) * -3px),
|
|
166
|
-
calc((var(--fan-count, 1) - 1 - var(--i, 0)) * 3px)
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/* Sibling tiles only become interactive once the wrapper is fanned —
|
|
171
|
-
otherwise they're stacked underneath and would steal pointer events
|
|
172
|
-
from the top card. */
|
|
173
|
-
:host([state='stack-sibling']) {
|
|
174
|
-
pointer-events: none;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/* Fanned: every tile slides edge-to-edge along the wrapper's row */
|
|
178
|
-
:host([state='stack-top']:host-context([data-fanned])),
|
|
179
|
-
:host-context([data-fanned]):host([state='stack-top']) {
|
|
180
|
-
transform: translate(
|
|
181
|
-
calc((var(--fan-count, 1) - 1 - var(--i, 0)) * var(--schmancy-tile-w) * -1),
|
|
182
|
-
0
|
|
183
|
-
);
|
|
184
|
-
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
:host([state='stack-sibling']:host-context([data-fanned])),
|
|
188
|
-
:host-context([data-fanned]):host([state='stack-sibling']) {
|
|
189
|
-
pointer-events: auto;
|
|
190
|
-
transform: translate(
|
|
191
|
-
calc((var(--fan-count, 1) - 1 - var(--i, 0)) * var(--schmancy-tile-w) * -1),
|
|
192
|
-
0
|
|
193
|
-
);
|
|
194
|
-
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
:host-context([data-fanned]):host([state='stack-top']) .tile:hover,
|
|
198
|
-
:host-context([data-fanned]):host([state='stack-sibling']) .tile:hover {
|
|
199
|
-
border-color: var(--schmancy-sys-color-primary-default);
|
|
200
|
-
box-shadow: 0 6px 14px rgba(0, 0, 0, 0.1);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.glyph {
|
|
204
|
-
position: absolute;
|
|
205
|
-
top: 0;
|
|
206
|
-
left: 0;
|
|
207
|
-
right: 0;
|
|
208
|
-
height: 11px;
|
|
209
|
-
display: flex;
|
|
210
|
-
align-items: center;
|
|
211
|
-
justify-content: center;
|
|
212
|
-
font-size: 7.5px;
|
|
213
|
-
font-weight: 500;
|
|
214
|
-
letter-spacing: 0.12em;
|
|
215
|
-
line-height: 1;
|
|
216
|
-
z-index: 1;
|
|
217
|
-
font-variant-caps: all-petite-caps;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.tooltip {
|
|
221
|
-
position: absolute;
|
|
222
|
-
bottom: calc(100% + 6px);
|
|
223
|
-
left: 50%;
|
|
224
|
-
transform: translate(-50%, 2px);
|
|
225
|
-
font-size: 10px;
|
|
226
|
-
line-height: 1.2;
|
|
227
|
-
color: var(--schmancy-sys-color-surface-on);
|
|
228
|
-
background: var(--schmancy-sys-color-surface-containerLowest);
|
|
229
|
-
border: 1px solid var(--schmancy-sys-color-outline);
|
|
230
|
-
padding: 2px 6px;
|
|
231
|
-
border-radius: 3px;
|
|
232
|
-
white-space: nowrap;
|
|
233
|
-
opacity: 0;
|
|
234
|
-
pointer-events: none;
|
|
235
|
-
transition:
|
|
236
|
-
opacity 150ms ease-in-out,
|
|
237
|
-
transform 150ms ease-in-out;
|
|
238
|
-
z-index: 2;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
.tile:hover .tooltip,
|
|
242
|
-
.tile:focus-visible .tooltip {
|
|
243
|
-
opacity: 1;
|
|
244
|
-
transform: translate(-50%, 0);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
.caption {
|
|
248
|
-
position: absolute;
|
|
249
|
-
top: calc(100% + 6px);
|
|
250
|
-
left: 50%;
|
|
251
|
-
transform: translateX(-50%);
|
|
252
|
-
font-size: 11px;
|
|
253
|
-
line-height: 1.2;
|
|
254
|
-
font-weight: 500;
|
|
255
|
-
white-space: nowrap;
|
|
256
|
-
color: var(--schmancy-sys-color-surface-on);
|
|
257
|
-
font-variant-numeric: tabular-nums;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
.stack-count {
|
|
261
|
-
position: absolute;
|
|
262
|
-
top: -5px;
|
|
263
|
-
right: -7px;
|
|
264
|
-
min-width: 14px;
|
|
265
|
-
height: 14px;
|
|
266
|
-
padding: 0 4px;
|
|
267
|
-
border-radius: 7px;
|
|
268
|
-
background: var(--schmancy-sys-color-primary-default);
|
|
269
|
-
color: var(--schmancy-sys-color-primary-on);
|
|
270
|
-
font-size: 9px;
|
|
271
|
-
font-weight: 500;
|
|
272
|
-
line-height: 14px;
|
|
273
|
-
text-align: center;
|
|
274
|
-
z-index: 10;
|
|
275
|
-
pointer-events: none;
|
|
276
|
-
transition: opacity 150ms ease-in-out;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
:host-context([data-fanned]) .stack-count {
|
|
280
|
-
opacity: 0;
|
|
281
|
-
}
|
|
282
|
-
`];
|
|
283
|
-
}
|
|
284
|
-
connectedCallback() {
|
|
285
|
-
if (super.connectedCallback(), this.index !== void 0 && this.style.setProperty("--i", String(this.index)), this.state !== "stack-top") return;
|
|
286
|
-
let e = this.parentElement;
|
|
287
|
-
e && a(e, "pointerover").pipe(o((e) => e.target?.closest("[data-stack-id]") ?? null), i(), c((t) => t === e ? s(e) : u(800).pipe(o(() => null))), i(), c((e) => e ? new r(() => (e.setAttribute("data-fanned", ""), () => e.removeAttribute("data-fanned"))) : n), l(this.disconnecting)).subscribe();
|
|
288
|
-
}
|
|
289
|
-
updated(e) {
|
|
290
|
-
super.updated(e), e.has("index") && this.index !== void 0 && this.style.setProperty("--i", String(this.index));
|
|
291
|
-
}
|
|
292
|
-
_ariaLabel() {
|
|
293
|
-
let e = [this.glyph];
|
|
294
|
-
return this.caption && e.push(this.caption), this.tooltip && e.push(this.tooltip), this.state === "empty" && e.push("empty"), e.join(" · ");
|
|
295
|
-
}
|
|
296
|
-
render() {
|
|
297
|
-
let e = this.state !== "empty", t = this._ariaLabel();
|
|
298
|
-
return m`
|
|
299
|
-
<button
|
|
300
|
-
type="button"
|
|
301
|
-
class="tile"
|
|
302
|
-
role=${e ? "button" : "presentation"}
|
|
303
|
-
tabindex=${e ? 0 : -1}
|
|
304
|
-
aria-label=${t}
|
|
305
|
-
?disabled=${!e}
|
|
306
|
-
@click=${this._onClick}
|
|
307
|
-
>
|
|
308
|
-
<span class="glyph">${this.glyph}</span>
|
|
309
|
-
${h(this.tooltip && e, () => m`<span class="tooltip">${this.tooltip}</span>`)}
|
|
310
|
-
${h(this.caption && this.state !== "stack-sibling", () => m`<span class="caption">${this.caption}</span>`)}
|
|
311
|
-
${h(this.state === "stack-top" && this.stackCount !== void 0 && this.stackCount > 1, () => m`<span class="stack-count">×${this.stackCount}</span>`)}
|
|
312
|
-
</button>
|
|
313
|
-
`;
|
|
314
|
-
}
|
|
315
|
-
};
|
|
316
|
-
t([f({
|
|
317
|
-
type: String,
|
|
318
|
-
reflect: !0
|
|
319
|
-
})], g.prototype, "state", void 0), t([f({ type: String })], g.prototype, "glyph", void 0), t([f({
|
|
320
|
-
type: Number,
|
|
321
|
-
attribute: "stack-count"
|
|
322
|
-
})], g.prototype, "stackCount", void 0), t([f({
|
|
323
|
-
type: Number,
|
|
324
|
-
reflect: !0
|
|
325
|
-
})], g.prototype, "index", void 0), t([f({ type: String })], g.prototype, "tooltip", void 0), t([f({ type: String })], g.prototype, "caption", void 0), g = t([d("schmancy-timeline-tile")], g);
|
|
326
|
-
export { g as SchmancyTimelineTile };
|
package/dist/timeline.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.js","names":[],"sources":["../src/timeline/timeline-tile.ts"],"sourcesContent":["/**\n * Timeline tile — one cell in a procurement-stage rail.\n *\n * Three render states (one component, four `state` values):\n * - `empty` dashed-border outline + glyph\n * - `filled` paper-card with glyph; hoverable / focusable / clickable\n * - `stack-top` paper-card on top of N siblings; carries the ×N badge\n * - `stack-sibling` paper-card behind the top; revealed when the wrapper\n * is fanned\n *\n * Stack fan is coordinated by a `data-fanned` attribute on the parent\n * wrapper element. The `stack-top` tile owns the orchestration: a\n * `pointerover` pipe on the wrapper element with hover-intent (immediate\n * enter, 800ms leave debounce) toggles the attribute. Sibling tiles read\n * the attribute via the `:host-context([data-fanned])` selector. Native\n * `:hover` would drop the moment the cursor crosses the gap between\n * fanned siblings; the attribute survives that crossing because the\n * pointerover stream stays on the wrapper subtree.\n */\nimport { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport {\n\tEMPTY,\n\tObservable,\n\tdistinctUntilChanged,\n\tfromEvent,\n\tmap,\n\tof,\n\tswitchMap,\n\ttakeUntil,\n\ttimer,\n} from 'rxjs'\n\nexport type TimelineTileState = 'empty' | 'filled' | 'stack-top' | 'stack-sibling'\n\nexport type TimelineTileClickEvent = CustomEvent<{\n\tglyph: string\n\tstate: TimelineTileState\n}>\n\n@customElement('schmancy-timeline-tile')\nexport class SchmancyTimelineTile extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\t--schmancy-tile-w: 32px;\n\t\t--schmancy-tile-h: 40px;\n\t\tdisplay: inline-block;\n\t\tposition: relative;\n\t\twidth: var(--schmancy-tile-w);\n\t\theight: var(--schmancy-tile-h);\n\t\tfont-size: 14px;\n\t\tline-height: 1.45;\n\t}\n\n\t/* Inner box that paints the cell. The host is a layout container only;\n\t the box owns the border / background / hover transform so the host\n\t stays a clean focus target. */\n\t.tile {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tborder-radius: 2px;\n\t\toverflow: visible;\n\t\tappearance: none;\n\t\tpadding: 0;\n\t\tfont: inherit;\n\t\tcolor: inherit;\n\t\tbackground: transparent;\n\t\tz-index: 1;\n\t\ttransition:\n\t\t\ttransform 120ms ease-in-out,\n\t\t\tbox-shadow 120ms ease-in-out,\n\t\t\tborder-color 120ms ease-in-out;\n\t}\n\n\t/* Empty state */\n\t:host([state='empty']) .tile {\n\t\tborder: 1px dashed var(--schmancy-sys-color-outline);\n\t\tbackground: transparent;\n\t\tcursor: default;\n\t}\n\n\t:host([state='empty']) .glyph {\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t\topacity: 0.7;\n\t}\n\n\t/* Shared filled-state card styling (filled / stack-top / stack-sibling) */\n\t:host([state='filled']) .tile,\n\t:host([state='stack-top']) .tile,\n\t:host([state='stack-sibling']) .tile {\n\t\tborder: 1px solid var(--schmancy-sys-color-outline);\n\t\tbackground: var(--schmancy-sys-color-surface-containerLowest);\n\t\tcursor: pointer;\n\t\tbox-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);\n\t}\n\n\t/* Paper-card line texture: five thin lines emulating ruled paper */\n\t:host([state='filled']) .tile::before,\n\t:host([state='stack-top']) .tile::before,\n\t:host([state='stack-sibling']) .tile::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 4px;\n\t\tright: 4px;\n\t\ttop: 16px;\n\t\tbottom: 5px;\n\t\tbackground-image:\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px),\n\t\t\tlinear-gradient(var(--schmancy-sys-color-outline) 1px, transparent 1px);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size:\n\t\t\t100% 1px,\n\t\t\t80% 1px,\n\t\t\t92% 1px,\n\t\t\t65% 1px,\n\t\t\t78% 1px;\n\t\tbackground-position:\n\t\t\t0 0,\n\t\t\t0 4px,\n\t\t\t0 8px,\n\t\t\t0 12px,\n\t\t\t0 16px;\n\t\topacity: 0.3;\n\t\tpointer-events: none;\n\t\tz-index: 0;\n\t}\n\n\t/* Tinted accent strip across the top edge */\n\t:host([state='filled']) .tile::after,\n\t:host([state='stack-top']) .tile::after,\n\t:host([state='stack-sibling']) .tile::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\ttop: 0;\n\t\theight: 11px;\n\t\tbackground: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--schmancy-sys-color-primary-default) 10%,\n\t\t\ttransparent\n\t\t);\n\t\tborder-bottom: 1px solid\n\t\t\tcolor-mix(\n\t\t\t\tin oklch,\n\t\t\t\tvar(--schmancy-sys-color-primary-default) 25%,\n\t\t\t\tvar(--schmancy-sys-color-outline)\n\t\t\t);\n\t\tpointer-events: none;\n\t}\n\n\t:host([state='filled']) .glyph,\n\t:host([state='stack-top']) .glyph,\n\t:host([state='stack-sibling']) .glyph {\n\t\tcolor: var(--schmancy-sys-color-primary-onContainer);\n\t}\n\n\t/* Single-card hover: lift 1px + soft shadow */\n\t:host([state='filled']) .tile:hover {\n\t\tborder-color: var(--schmancy-sys-color-primary-default);\n\t\ttransform: translateY(-1px);\n\t\tbox-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);\n\t}\n\n\t/* Focus ring in primary color */\n\t:host([state='filled']) .tile:focus-visible,\n\t:host([state='stack-top']) .tile:focus-visible,\n\t:host([state='stack-sibling']) .tile:focus-visible {\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\n\t\toutline-offset: 3px;\n\t}\n\n\t/* Stacked tiles position absolutely on the host's grid cell so the\n\t wrapper's --fan-count / --i custom properties drive the offset. */\n\t:host([state='stack-top']),\n\t:host([state='stack-sibling']) {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransition:\n\t\t\ttransform 200ms cubic-bezier(0.2, 0.8, 0.2, 1),\n\t\t\tbox-shadow 200ms cubic-bezier(0.2, 0.8, 0.2, 1);\n\t\ttransform: translate(\n\t\t\tcalc((var(--fan-count, 1) - 1 - var(--i, 0)) * -3px),\n\t\t\tcalc((var(--fan-count, 1) - 1 - var(--i, 0)) * 3px)\n\t\t);\n\t}\n\n\t/* Sibling tiles only become interactive once the wrapper is fanned —\n\t otherwise they're stacked underneath and would steal pointer events\n\t from the top card. */\n\t:host([state='stack-sibling']) {\n\t\tpointer-events: none;\n\t}\n\n\t/* Fanned: every tile slides edge-to-edge along the wrapper's row */\n\t:host([state='stack-top']:host-context([data-fanned])),\n\t:host-context([data-fanned]):host([state='stack-top']) {\n\t\ttransform: translate(\n\t\t\tcalc((var(--fan-count, 1) - 1 - var(--i, 0)) * var(--schmancy-tile-w) * -1),\n\t\t\t0\n\t\t);\n\t\tbox-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);\n\t}\n\n\t:host([state='stack-sibling']:host-context([data-fanned])),\n\t:host-context([data-fanned]):host([state='stack-sibling']) {\n\t\tpointer-events: auto;\n\t\ttransform: translate(\n\t\t\tcalc((var(--fan-count, 1) - 1 - var(--i, 0)) * var(--schmancy-tile-w) * -1),\n\t\t\t0\n\t\t);\n\t\tbox-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);\n\t}\n\n\t:host-context([data-fanned]):host([state='stack-top']) .tile:hover,\n\t:host-context([data-fanned]):host([state='stack-sibling']) .tile:hover {\n\t\tborder-color: var(--schmancy-sys-color-primary-default);\n\t\tbox-shadow: 0 6px 14px rgba(0, 0, 0, 0.1);\n\t}\n\n\t.glyph {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\theight: 11px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 7.5px;\n\t\tfont-weight: 500;\n\t\tletter-spacing: 0.12em;\n\t\tline-height: 1;\n\t\tz-index: 1;\n\t\tfont-variant-caps: all-petite-caps;\n\t}\n\n\t.tooltip {\n\t\tposition: absolute;\n\t\tbottom: calc(100% + 6px);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, 2px);\n\t\tfont-size: 10px;\n\t\tline-height: 1.2;\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tbackground: var(--schmancy-sys-color-surface-containerLowest);\n\t\tborder: 1px solid var(--schmancy-sys-color-outline);\n\t\tpadding: 2px 6px;\n\t\tborder-radius: 3px;\n\t\twhite-space: nowrap;\n\t\topacity: 0;\n\t\tpointer-events: none;\n\t\ttransition:\n\t\t\topacity 150ms ease-in-out,\n\t\t\ttransform 150ms ease-in-out;\n\t\tz-index: 2;\n\t}\n\n\t.tile:hover .tooltip,\n\t.tile:focus-visible .tooltip {\n\t\topacity: 1;\n\t\ttransform: translate(-50%, 0);\n\t}\n\n\t.caption {\n\t\tposition: absolute;\n\t\ttop: calc(100% + 6px);\n\t\tleft: 50%;\n\t\ttransform: translateX(-50%);\n\t\tfont-size: 11px;\n\t\tline-height: 1.2;\n\t\tfont-weight: 500;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t\tfont-variant-numeric: tabular-nums;\n\t}\n\n\t.stack-count {\n\t\tposition: absolute;\n\t\ttop: -5px;\n\t\tright: -7px;\n\t\tmin-width: 14px;\n\t\theight: 14px;\n\t\tpadding: 0 4px;\n\t\tborder-radius: 7px;\n\t\tbackground: var(--schmancy-sys-color-primary-default);\n\t\tcolor: var(--schmancy-sys-color-primary-on);\n\t\tfont-size: 9px;\n\t\tfont-weight: 500;\n\t\tline-height: 14px;\n\t\ttext-align: center;\n\t\tz-index: 10;\n\t\tpointer-events: none;\n\t\ttransition: opacity 150ms ease-in-out;\n\t}\n\n\t:host-context([data-fanned]) .stack-count {\n\t\topacity: 0;\n\t}\n`]\n\n\t@property({ type: String, reflect: true }) state: TimelineTileState = 'empty'\n\n\t@property({ type: String }) glyph = ''\n\n\t@property({ type: Number, attribute: 'stack-count' }) stackCount?: number\n\n\t@property({ type: Number, reflect: true }) index?: number\n\n\t@property({ type: String }) tooltip?: string\n\n\t@property({ type: String }) caption?: string\n\n\toverride connectedCallback(): void {\n\t\tsuper.connectedCallback()\n\n\t\t// Mirror `index` onto the host's `--i` custom property so the\n\t\t// fan-offset transforms don't depend on the consumer setting both\n\t\t// the prop and an inline style.\n\t\tif (this.index !== undefined) {\n\t\t\tthis.style.setProperty('--i', String(this.index))\n\t\t}\n\n\t\t// Stack-top owns the fan orchestration. The pointerover stream lives\n\t\t// on the parent wrapper (the element holding all sibling tiles); a\n\t\t// hover-intent pipe drives the `data-fanned` attribute on that\n\t\t// wrapper. Enter is immediate (`of(wrapper)`); leave waits 800ms\n\t\t// (`timer(800)`) so the cursor can cross the gap between fanned\n\t\t// cards without collapsing the stack. The inner Observable's\n\t\t// subscription lifetime IS the fanned state — subscribe sets the\n\t\t// attribute, teardown removes it.\n\t\tif (this.state !== 'stack-top') return\n\t\tconst wrapper = this.parentElement\n\t\tif (!wrapper) return\n\n\t\tfromEvent<PointerEvent>(wrapper, 'pointerover')\n\t\t\t.pipe(\n\t\t\t\tmap(\n\t\t\t\t\t(e) =>\n\t\t\t\t\t\t(e.target as HTMLElement | null)?.closest<HTMLElement>(\n\t\t\t\t\t\t\t'[data-stack-id]',\n\t\t\t\t\t\t) ?? null,\n\t\t\t\t),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tswitchMap((target) =>\n\t\t\t\t\ttarget === wrapper ? of(wrapper) : timer(800).pipe(map(() => null)),\n\t\t\t\t),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tswitchMap((target) =>\n\t\t\t\t\ttarget\n\t\t\t\t\t\t? new Observable<never>(() => {\n\t\t\t\t\t\t\t\ttarget.setAttribute('data-fanned', '')\n\t\t\t\t\t\t\t\treturn () => target.removeAttribute('data-fanned')\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: EMPTY,\n\t\t\t\t),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprotected override updated(changed: Map<string, unknown>): void {\n\t\tsuper.updated(changed)\n\t\tif (changed.has('index') && this.index !== undefined) {\n\t\t\tthis.style.setProperty('--i', String(this.index))\n\t\t}\n\t}\n\n\tprivate _onClick = (): void => {\n\t\tif (this.state === 'empty') return\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<TimelineTileClickEvent['detail']>('tile-click', {\n\t\t\t\tdetail: { glyph: this.glyph, state: this.state },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate _ariaLabel(): string {\n\t\tconst parts = [this.glyph]\n\t\tif (this.caption) parts.push(this.caption)\n\t\tif (this.tooltip) parts.push(this.tooltip)\n\t\tif (this.state === 'empty') parts.push('empty')\n\t\treturn parts.join(' · ')\n\t}\n\n\tprotected override render(): unknown {\n\t\tconst isInteractive = this.state !== 'empty'\n\t\tconst ariaLabel = this._ariaLabel()\n\t\treturn html`\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"tile\"\n\t\t\t\trole=${isInteractive ? 'button' : 'presentation'}\n\t\t\t\ttabindex=${isInteractive ? 0 : -1}\n\t\t\t\taria-label=${ariaLabel}\n\t\t\t\t?disabled=${!isInteractive}\n\t\t\t\t@click=${this._onClick}\n\t\t\t>\n\t\t\t\t<span class=\"glyph\">${this.glyph}</span>\n\t\t\t\t${when(\n\t\t\t\t\tthis.tooltip && isInteractive,\n\t\t\t\t\t() => html`<span class=\"tooltip\">${this.tooltip}</span>`,\n\t\t\t\t)}\n\t\t\t\t${when(\n\t\t\t\t\tthis.caption && this.state !== 'stack-sibling',\n\t\t\t\t\t() => html`<span class=\"caption\">${this.caption}</span>`,\n\t\t\t\t)}\n\t\t\t\t${when(\n\t\t\t\t\tthis.state === 'stack-top' &&\n\t\t\t\t\t\tthis.stackCount !== undefined &&\n\t\t\t\t\t\tthis.stackCount > 1,\n\t\t\t\t\t() => html`<span class=\"stack-count\">×${this.stackCount}</span>`,\n\t\t\t\t)}\n\t\t\t</button>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-timeline-tile': SchmancyTimelineTile\n\t}\n}\n"],"mappings":"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"}
|