@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.
Files changed (445) hide show
  1. package/README.md +11 -0
  2. package/custom-elements.json +235 -1807
  3. package/dist/agent/{flow-CaPi2G8y.js.map → flow-CvG1fLW5.js.map} +1 -1
  4. package/dist/agent/schmancy.agent.js +5347 -12408
  5. package/dist/agent/schmancy.agent.js.map +1 -1
  6. package/dist/agent/schmancy.manifest.json +70 -1068
  7. package/dist/agent/{vendor-material-color-Be96dpGE.js.map → vendor-material-color-DcL7ZPxx.js.map} +1 -1
  8. package/dist/{area-CSQdhCBF.cjs → area-8IBAXzbC.cjs} +1 -1
  9. package/dist/{area-CSQdhCBF.cjs.map → area-8IBAXzbC.cjs.map} +1 -1
  10. package/dist/{area-D5haQE-J.js → area-DSW_LYXQ.js} +1 -1
  11. package/dist/{area-D5haQE-J.js.map → area-DSW_LYXQ.js.map} +1 -1
  12. package/dist/area.cjs +1 -1
  13. package/dist/area.js +1 -1
  14. package/dist/{autocomplete-B_bJXUjm.cjs → autocomplete-9PLjlFYt.cjs} +1 -1
  15. package/dist/{autocomplete-B_bJXUjm.cjs.map → autocomplete-9PLjlFYt.cjs.map} +1 -1
  16. package/dist/{autocomplete-DtyjZJ1E.js → autocomplete-CXwwmUbC.js} +2 -2
  17. package/dist/{autocomplete-DtyjZJ1E.js.map → autocomplete-CXwwmUbC.js.map} +1 -1
  18. package/dist/autocomplete.cjs +1 -1
  19. package/dist/autocomplete.js +1 -1
  20. package/dist/avatar.cjs +1 -1
  21. package/dist/avatar.js +2 -2
  22. package/dist/badge.cjs +1 -1
  23. package/dist/badge.js +1 -1
  24. package/dist/{boat-BJLCp-Hv.cjs → boat-CpGNeWav.cjs} +1 -1
  25. package/dist/{boat-BJLCp-Hv.cjs.map → boat-CpGNeWav.cjs.map} +1 -1
  26. package/dist/{boat-MT8bRT8u.js → boat-Dwn5oXd8.js} +1 -1
  27. package/dist/{boat-MT8bRT8u.js.map → boat-Dwn5oXd8.js.map} +1 -1
  28. package/dist/boat.cjs +1 -1
  29. package/dist/boat.js +1 -1
  30. package/dist/breadcrumb.cjs +1 -1
  31. package/dist/breadcrumb.js +1 -1
  32. package/dist/{busy-DSF2E-zy.cjs → busy-CUUgvimY.cjs} +1 -1
  33. package/dist/{busy-DSF2E-zy.cjs.map → busy-CUUgvimY.cjs.map} +1 -1
  34. package/dist/{busy-6BqWGryX.js → busy-Cjm1BYVC.js} +1 -1
  35. package/dist/{busy-6BqWGryX.js.map → busy-Cjm1BYVC.js.map} +1 -1
  36. package/dist/busy.cjs +1 -1
  37. package/dist/busy.js +1 -1
  38. package/dist/button.cjs +1 -1
  39. package/dist/button.js +1 -1
  40. package/dist/{card-CvuVha-W.js → card-BR22oYCL.js} +1 -1
  41. package/dist/{card-CvuVha-W.js.map → card-BR22oYCL.js.map} +1 -1
  42. package/dist/{card-DnKnaHzf.cjs → card-BjZ_WRr3.cjs} +1 -1
  43. package/dist/{card-DnKnaHzf.cjs.map → card-BjZ_WRr3.cjs.map} +1 -1
  44. package/dist/card.cjs +1 -1
  45. package/dist/card.js +1 -1
  46. package/dist/{checkbox-D3u8Wm9r.cjs → checkbox-2e8v7CNg.cjs} +1 -1
  47. package/dist/{checkbox-D3u8Wm9r.cjs.map → checkbox-2e8v7CNg.cjs.map} +1 -1
  48. package/dist/{checkbox-QDRsE8cp.js → checkbox-CsADwyfu.js} +1 -1
  49. package/dist/{checkbox-QDRsE8cp.js.map → checkbox-CsADwyfu.js.map} +1 -1
  50. package/dist/checkbox.cjs +1 -1
  51. package/dist/checkbox.js +1 -1
  52. package/dist/{chips-Dy9vx8JS.js → chips-C9HwVbGT.js} +2 -2
  53. package/dist/{chips-Dy9vx8JS.js.map → chips-C9HwVbGT.js.map} +1 -1
  54. package/dist/{chips-CMoQzop1.cjs → chips-DPCcO55o.cjs} +1 -1
  55. package/dist/{chips-CMoQzop1.cjs.map → chips-DPCcO55o.cjs.map} +1 -1
  56. package/dist/chips.cjs +1 -1
  57. package/dist/chips.js +2 -2
  58. package/dist/connectivity.cjs +1 -1
  59. package/dist/connectivity.js +1 -1
  60. package/dist/content-drawer.cjs +1 -1
  61. package/dist/content-drawer.js +1 -1
  62. package/dist/{date-range-B2NuihKA.cjs → date-range-63-FC7gD.cjs} +1 -1
  63. package/dist/{date-range-B2NuihKA.cjs.map → date-range-63-FC7gD.cjs.map} +1 -1
  64. package/dist/{date-range-Boesjlic.js → date-range-CFaP-8Os.js} +2 -2
  65. package/dist/{date-range-Boesjlic.js.map → date-range-CFaP-8Os.js.map} +1 -1
  66. package/dist/{date-range-inline-DBuND2pc.js → date-range-inline-BCuK_XCv.js} +1 -1
  67. package/dist/{date-range-inline-DBuND2pc.js.map → date-range-inline-BCuK_XCv.js.map} +1 -1
  68. package/dist/{date-range-inline-BI6_4Ahl.cjs → date-range-inline-Cpdqd-8B.cjs} +1 -1
  69. package/dist/{date-range-inline-BI6_4Ahl.cjs.map → date-range-inline-Cpdqd-8B.cjs.map} +1 -1
  70. package/dist/date-range-inline.cjs +1 -1
  71. package/dist/date-range-inline.js +1 -1
  72. package/dist/date-range.cjs +1 -1
  73. package/dist/date-range.js +1 -1
  74. package/dist/delay.cjs +1 -1
  75. package/dist/delay.js +2 -2
  76. package/dist/{details-BrGrUTGC.js → details-0dOlqHHL.js} +1 -1
  77. package/dist/{details-BrGrUTGC.js.map → details-0dOlqHHL.js.map} +1 -1
  78. package/dist/{details-BRs_z5-k.cjs → details-qKikJIyH.cjs} +1 -1
  79. package/dist/{details-BRs_z5-k.cjs.map → details-qKikJIyH.cjs.map} +1 -1
  80. package/dist/details.cjs +1 -1
  81. package/dist/details.js +1 -1
  82. package/dist/{divider-W3TiDasp.js → divider-BxkIl0H1.js} +1 -1
  83. package/dist/{divider-W3TiDasp.js.map → divider-BxkIl0H1.js.map} +1 -1
  84. package/dist/{divider-BOxQ2T9h.cjs → divider-CX9mmWZ8.cjs} +1 -1
  85. package/dist/{divider-BOxQ2T9h.cjs.map → divider-CX9mmWZ8.cjs.map} +1 -1
  86. package/dist/divider.cjs +1 -1
  87. package/dist/divider.js +1 -1
  88. package/dist/dropdown.cjs +1 -1
  89. package/dist/dropdown.js +1 -1
  90. package/dist/{expand-CnccBF91.cjs → expand-891JuQuN.cjs} +1 -1
  91. package/dist/{expand-CnccBF91.cjs.map → expand-891JuQuN.cjs.map} +1 -1
  92. package/dist/{expand-Pu8fZ0jZ.js → expand-BeAx94MP.js} +2 -2
  93. package/dist/{expand-Pu8fZ0jZ.js.map → expand-BeAx94MP.js.map} +1 -1
  94. package/dist/expand.cjs +1 -1
  95. package/dist/expand.js +1 -1
  96. package/dist/{float-WCVdp3um.js → float-BPF2WO4L.js} +1 -1
  97. package/dist/{float-WCVdp3um.js.map → float-BPF2WO4L.js.map} +1 -1
  98. package/dist/{float-BRKa-P6Z.cjs → float-D7vvODxx.cjs} +1 -1
  99. package/dist/{float-BRKa-P6Z.cjs.map → float-D7vvODxx.cjs.map} +1 -1
  100. package/dist/float.cjs +1 -1
  101. package/dist/float.js +1 -1
  102. package/dist/{form-CI59gad4.js.map → form-CFvwnfuJ.js.map} +1 -1
  103. package/dist/{form-B2qudx_q.cjs.map → form-Ceijw1aA.cjs.map} +1 -1
  104. package/dist/form.cjs +1 -1
  105. package/dist/form.js +1 -1
  106. package/dist/handover/agent-runtime-followups.md +1 -1
  107. package/dist/handover/agent-runtime-v1.md +3 -3
  108. package/dist/{hashContent-a8uVr3xs.js.map → hashContent-BU6jl5ih.js.map} +1 -1
  109. package/dist/{hashContent-ejkBgDnN.cjs.map → hashContent-Bobsobip.cjs.map} +1 -1
  110. package/dist/{icons-C0ufCcdp.js → icons-BKxW_7QR.js} +1 -1
  111. package/dist/{icons-C0ufCcdp.js.map → icons-BKxW_7QR.js.map} +1 -1
  112. package/dist/{icons-DXEbmg-O.cjs → icons-QSdo-8h9.cjs} +1 -1
  113. package/dist/{icons-DXEbmg-O.cjs.map → icons-QSdo-8h9.cjs.map} +1 -1
  114. package/dist/icons.cjs +1 -1
  115. package/dist/icons.js +1 -1
  116. package/dist/{iframe-c9lGxw7x.js → iframe-BxvbhyTS.js} +1 -1
  117. package/dist/{iframe-c9lGxw7x.js.map → iframe-BxvbhyTS.js.map} +1 -1
  118. package/dist/{iframe-C6RVODkW.cjs → iframe-CMKV-bm8.cjs} +1 -1
  119. package/dist/{iframe-C6RVODkW.cjs.map → iframe-CMKV-bm8.cjs.map} +1 -1
  120. package/dist/iframe.cjs +1 -1
  121. package/dist/iframe.js +1 -1
  122. package/dist/index.cjs +1 -1
  123. package/dist/index.js +64 -72
  124. package/dist/{input-B4HM-9-H.cjs → input-BFhJU74_.cjs} +1 -1
  125. package/dist/{input-B4HM-9-H.cjs.map → input-BFhJU74_.cjs.map} +1 -1
  126. package/dist/{input-Pmj_bH37.js → input-DIqaR8Mr.js} +1 -1
  127. package/dist/{input-Pmj_bH37.js.map → input-DIqaR8Mr.js.map} +1 -1
  128. package/dist/{input-chip-BIGgd_7w.js → input-chip-D9tlSk_2.js} +1 -1
  129. package/dist/{input-chip-BIGgd_7w.js.map → input-chip-D9tlSk_2.js.map} +1 -1
  130. package/dist/{input-chip-BoDisY6c.cjs → input-chip-w09qTt7J.cjs} +1 -1
  131. package/dist/{input-chip-BoDisY6c.cjs.map → input-chip-w09qTt7J.cjs.map} +1 -1
  132. package/dist/input.cjs +1 -1
  133. package/dist/input.js +1 -1
  134. package/dist/json.cjs +1 -1
  135. package/dist/json.js +2 -2
  136. package/dist/kbd.cjs +1 -1
  137. package/dist/kbd.js +1 -1
  138. package/dist/layout.cjs +1 -1
  139. package/dist/layout.js +1 -1
  140. package/dist/{lightbox-DK1vDKm3.cjs → lightbox-CK035jsx.cjs} +1 -1
  141. package/dist/{lightbox-DK1vDKm3.cjs.map → lightbox-CK035jsx.cjs.map} +1 -1
  142. package/dist/{lightbox-K1eJTYXP.js → lightbox-GChmL3Ff.js} +2 -2
  143. package/dist/{lightbox-K1eJTYXP.js.map → lightbox-GChmL3Ff.js.map} +1 -1
  144. package/dist/lightbox.cjs +1 -1
  145. package/dist/lightbox.js +1 -1
  146. package/dist/{list-CEuVqAxN.cjs → list-B3P37zlH.cjs} +1 -1
  147. package/dist/{list-CEuVqAxN.cjs.map → list-B3P37zlH.cjs.map} +1 -1
  148. package/dist/{list-Ds0Nv1y5.js → list-J-Fz24Z1.js} +1 -1
  149. package/dist/{list-Ds0Nv1y5.js.map → list-J-Fz24Z1.js.map} +1 -1
  150. package/dist/list.cjs +1 -1
  151. package/dist/list.js +1 -1
  152. package/dist/{menu-Bly30Nje.cjs → menu-BnFd8CwU.cjs} +1 -1
  153. package/dist/{menu-Bly30Nje.cjs.map → menu-BnFd8CwU.cjs.map} +1 -1
  154. package/dist/{menu-L8MK1ma5.js → menu-DHTlUwXS.js} +2 -2
  155. package/dist/{menu-L8MK1ma5.js.map → menu-DHTlUwXS.js.map} +1 -1
  156. package/dist/menu.cjs +1 -1
  157. package/dist/menu.js +1 -1
  158. package/dist/mixins-47_CZk7q.cjs +298 -0
  159. package/dist/{mixins-CAb0b03r.cjs.map → mixins-47_CZk7q.cjs.map} +1 -1
  160. package/dist/mixins-PBJJGiiP.js +627 -0
  161. package/dist/{mixins-B34UxxCe.js.map → mixins-PBJJGiiP.js.map} +1 -1
  162. package/dist/mixins.cjs +1 -1
  163. package/dist/mixins.js +1 -1
  164. package/dist/nav-drawer.cjs +1 -1
  165. package/dist/nav-drawer.js +1 -1
  166. package/dist/navigation-bar.cjs +1 -1
  167. package/dist/navigation-bar.js +1 -1
  168. package/dist/navigation-rail.cjs +1 -1
  169. package/dist/navigation-rail.js +1 -1
  170. package/dist/{notification-7fSbk8hm.cjs → notification-B6YBL0hx.cjs} +1 -1
  171. package/dist/{notification-7fSbk8hm.cjs.map → notification-B6YBL0hx.cjs.map} +1 -1
  172. package/dist/{notification-DB25M-qo.js → notification-C-5Bv3vj.js} +2 -2
  173. package/dist/{notification-DB25M-qo.js.map → notification-C-5Bv3vj.js.map} +1 -1
  174. package/dist/notification.cjs +1 -1
  175. package/dist/notification.js +1 -1
  176. package/dist/{option-DDHa25k5.js → option-B7q6VXCu.js} +1 -1
  177. package/dist/{option-DDHa25k5.js.map → option-B7q6VXCu.js.map} +1 -1
  178. package/dist/{option-HF9Xqbuq.cjs → option-DVQRa3nr.cjs} +1 -1
  179. package/dist/{option-HF9Xqbuq.cjs.map → option-DVQRa3nr.cjs.map} +1 -1
  180. package/dist/option.cjs +1 -1
  181. package/dist/option.js +1 -1
  182. package/dist/{overlay-stack-CCiTaf_C.js.map → overlay-stack-DCDS17uj.js.map} +1 -1
  183. package/dist/{overlay-stack-CFGiYf34.cjs.map → overlay-stack-DPIe_aYv.cjs.map} +1 -1
  184. package/dist/overlay.cjs +1 -1
  185. package/dist/{overlay.confirm-body-BDG94R0x.js → overlay.confirm-body-CAY5xK1n.js} +1 -1
  186. package/dist/{overlay.confirm-body-BDG94R0x.js.map → overlay.confirm-body-CAY5xK1n.js.map} +1 -1
  187. package/dist/{overlay.confirm-body-b4Nx_OVf.cjs → overlay.confirm-body-XZtErofy.cjs} +1 -1
  188. package/dist/{overlay.confirm-body-b4Nx_OVf.cjs.map → overlay.confirm-body-XZtErofy.cjs.map} +1 -1
  189. package/dist/overlay.js +3 -3
  190. package/dist/{overlay.service-BUCuZa6V.js → overlay.service-BZE_lwKO.js} +2 -2
  191. package/dist/{overlay.service-BUCuZa6V.js.map → overlay.service-BZE_lwKO.js.map} +1 -1
  192. package/dist/{overlay.service-CRHZZY9F.cjs → overlay.service-Oyjrw831.cjs} +1 -1
  193. package/dist/{overlay.service-CRHZZY9F.cjs.map → overlay.service-Oyjrw831.cjs.map} +1 -1
  194. package/dist/page.cjs +1 -1
  195. package/dist/page.js +2 -2
  196. package/dist/{progress-CqOyMM4i.js → progress-BHXLYs9i.js} +1 -1
  197. package/dist/{progress-CqOyMM4i.js.map → progress-BHXLYs9i.js.map} +1 -1
  198. package/dist/{progress-54R4QRgW.cjs → progress-D99bumkC.cjs} +1 -1
  199. package/dist/{progress-54R4QRgW.cjs.map → progress-D99bumkC.cjs.map} +1 -1
  200. package/dist/progress.cjs +1 -1
  201. package/dist/progress.js +1 -1
  202. package/dist/{radio-group-B4zbBIZF.js → radio-group-BYra5_q1.js} +1 -1
  203. package/dist/{radio-group-B4zbBIZF.js.map → radio-group-BYra5_q1.js.map} +1 -1
  204. package/dist/{radio-group-BJqZpYVy.cjs → radio-group-DYsycLmD.cjs} +1 -1
  205. package/dist/{radio-group-BJqZpYVy.cjs.map → radio-group-DYsycLmD.cjs.map} +1 -1
  206. package/dist/radio-group.cjs +1 -1
  207. package/dist/radio-group.js +1 -1
  208. package/dist/range.cjs +1 -1
  209. package/dist/range.js +1 -1
  210. package/dist/{rxjs-utils-BXpvHN4-.js.map → rxjs-utils-CVeJQ9KG.js.map} +1 -1
  211. package/dist/{rxjs-utils-CaC-tdot.cjs.map → rxjs-utils-DCUHg_Ml.cjs.map} +1 -1
  212. package/dist/rxjs-utils.cjs +1 -1
  213. package/dist/rxjs-utils.js +1 -1
  214. package/dist/{scroll-CYm6Krus.js → scroll-TqNWZ0lo.js} +1 -1
  215. package/dist/{scroll-CYm6Krus.js.map → scroll-TqNWZ0lo.js.map} +1 -1
  216. package/dist/{scroll-iSRovYYt.cjs → scroll-cayCBOrq.cjs} +1 -1
  217. package/dist/{scroll-iSRovYYt.cjs.map → scroll-cayCBOrq.cjs.map} +1 -1
  218. package/dist/{select-DiQHtQJN.cjs → select-CRdSmlLq.cjs} +1 -1
  219. package/dist/{select-DiQHtQJN.cjs.map → select-CRdSmlLq.cjs.map} +1 -1
  220. package/dist/{select-1WHseXP6.js → select-nzq0qFlF.js} +2 -2
  221. package/dist/{select-1WHseXP6.js.map → select-nzq0qFlF.js.map} +1 -1
  222. package/dist/select.cjs +1 -1
  223. package/dist/select.js +1 -1
  224. package/dist/skeleton.cjs +1 -1
  225. package/dist/skeleton.js +1 -1
  226. package/dist/skills/INDEX.md +9 -6
  227. package/dist/skills/schmancy/INDEX.md +9 -6
  228. package/dist/slider.cjs +1 -1
  229. package/dist/slider.js +1 -1
  230. package/dist/{splash-screen-BwvtKMdN.js → splash-screen-BJeIiJ_e.js} +1 -1
  231. package/dist/{splash-screen-BwvtKMdN.js.map → splash-screen-BJeIiJ_e.js.map} +1 -1
  232. package/dist/{splash-screen-CJL8DGDe.cjs → splash-screen-BMLQXzDq.cjs} +1 -1
  233. package/dist/{splash-screen-CJL8DGDe.cjs.map → splash-screen-BMLQXzDq.cjs.map} +1 -1
  234. package/dist/splash-screen.cjs +1 -1
  235. package/dist/splash-screen.js +1 -1
  236. package/dist/{src-Bwr2NR0A.cjs → src-DE11tq2Q.cjs} +1 -1
  237. package/dist/{src-Bwr2NR0A.cjs.map → src-DE11tq2Q.cjs.map} +1 -1
  238. package/dist/{src-UaZeROcW.js → src-qvWlNoMO.js} +34 -42
  239. package/dist/{src-UaZeROcW.js.map → src-qvWlNoMO.js.map} +1 -1
  240. package/dist/steps.cjs +1 -1
  241. package/dist/steps.js +1 -1
  242. package/dist/{surface-DE5iuI8e.cjs → surface-D426MFLR.cjs} +1 -1
  243. package/dist/{surface-DE5iuI8e.cjs.map → surface-D426MFLR.cjs.map} +1 -1
  244. package/dist/{surface-DPUkQ3OL.js → surface-DG7Cmm9V.js} +1 -1
  245. package/dist/{surface-DPUkQ3OL.js.map → surface-DG7Cmm9V.js.map} +1 -1
  246. package/dist/surface.cjs +1 -1
  247. package/dist/surface.js +1 -1
  248. package/dist/switch.cjs +1 -1
  249. package/dist/switch.js +1 -1
  250. package/dist/table.cjs +1 -1
  251. package/dist/table.js +1 -1
  252. package/dist/{tabs-B2XEQPQl.js → tabs-B7siJkM5.js} +1 -1
  253. package/dist/{tabs-B2XEQPQl.js.map → tabs-B7siJkM5.js.map} +1 -1
  254. package/dist/{tabs-CsDQ72Qk.cjs → tabs-t3nMfg1F.cjs} +1 -1
  255. package/dist/{tabs-CsDQ72Qk.cjs.map → tabs-t3nMfg1F.cjs.map} +1 -1
  256. package/dist/tabs.cjs +1 -1
  257. package/dist/tabs.js +1 -1
  258. package/dist/teleport.cjs +1 -1
  259. package/dist/teleport.js +1 -1
  260. package/dist/{textarea-C_ps0lL-.js → textarea-DSxHCCle.js} +1 -1
  261. package/dist/{textarea-C_ps0lL-.js.map → textarea-DSxHCCle.js.map} +1 -1
  262. package/dist/{textarea-aeAP9cDG.cjs → textarea-o9vysorM.cjs} +1 -1
  263. package/dist/{textarea-aeAP9cDG.cjs.map → textarea-o9vysorM.cjs.map} +1 -1
  264. package/dist/textarea.cjs +1 -1
  265. package/dist/textarea.js +1 -1
  266. package/dist/{theme-DAYTVw13.cjs → theme-Ce9eIP05.cjs} +1 -1
  267. package/dist/{theme-DAYTVw13.cjs.map → theme-Ce9eIP05.cjs.map} +1 -1
  268. package/dist/{theme-DAx1iRNr.js → theme-XO3nHDbW.js} +2 -2
  269. package/dist/{theme-DAx1iRNr.js.map → theme-XO3nHDbW.js.map} +1 -1
  270. package/dist/{theme-button-BrHkzCtj.js → theme-button-DNutDO1j.js} +1 -1
  271. package/dist/{theme-button-BrHkzCtj.js.map → theme-button-DNutDO1j.js.map} +1 -1
  272. package/dist/{theme-button-LsMKY_N_.cjs → theme-button-H7PRz_bg.cjs} +1 -1
  273. package/dist/{theme-button-LsMKY_N_.cjs.map → theme-button-H7PRz_bg.cjs.map} +1 -1
  274. package/dist/theme-button.cjs +1 -1
  275. package/dist/theme-button.js +1 -1
  276. package/dist/theme.cjs +1 -1
  277. package/dist/{theme.interface-C_034TxG.js.map → theme.interface-B9TjbSBF.js.map} +1 -1
  278. package/dist/{theme.interface-DESopuZS.cjs.map → theme.interface-BujperTo.cjs.map} +1 -1
  279. package/dist/theme.js +3 -3
  280. package/dist/tree.cjs +1 -1
  281. package/dist/tree.js +1 -1
  282. package/dist/typography.cjs +1 -1
  283. package/dist/typography.js +1 -1
  284. package/dist/{utils-oLBkMvor.cjs → utils-Dt5PpmaQ.cjs} +1 -1
  285. package/dist/{utils-oLBkMvor.cjs.map → utils-Dt5PpmaQ.cjs.map} +1 -1
  286. package/dist/{utils-BzFQfaIr.js → utils-kND2Z9Xg.js} +1 -1
  287. package/dist/{utils-BzFQfaIr.js.map → utils-kND2Z9Xg.js.map} +1 -1
  288. package/dist/utils.cjs +1 -1
  289. package/dist/utils.js +2 -2
  290. package/dist/visually-hidden.cjs +1 -1
  291. package/dist/visually-hidden.js +1 -1
  292. package/dist/{window-BJrKS6Zr.cjs → window-BaoSwgGE.cjs} +1 -1
  293. package/dist/{window-BJrKS6Zr.cjs.map → window-BaoSwgGE.cjs.map} +1 -1
  294. package/dist/{window-CyDuTN80.js → window-KnLWhQ3S.js} +2 -2
  295. package/dist/{window-CyDuTN80.js.map → window-KnLWhQ3S.js.map} +1 -1
  296. package/dist/window.cjs +1 -1
  297. package/dist/window.js +1 -1
  298. package/package.json +4 -5
  299. package/skills/schmancy/INDEX.md +9 -6
  300. package/src/index.ts +0 -8
  301. package/types/src/index.d.ts +0 -8
  302. package/dist/agent/vendor-highlight-CHJZQQB7.js +0 -2178
  303. package/dist/agent/vendor-highlight-CHJZQQB7.js.map +0 -1
  304. package/dist/agent/vendor-jsqr-r7GNh4P3.js +0 -10212
  305. package/dist/agent/vendor-jsqr-r7GNh4P3.js.map +0 -1
  306. package/dist/charts.cjs +0 -112
  307. package/dist/charts.cjs.map +0 -1
  308. package/dist/charts.js +0 -374
  309. package/dist/charts.js.map +0 -1
  310. package/dist/code-highlight-Ddp0oZnm.cjs +0 -190
  311. package/dist/code-highlight-Ddp0oZnm.cjs.map +0 -1
  312. package/dist/code-highlight-DtE2-ObF.js +0 -296
  313. package/dist/code-highlight-DtE2-ObF.js.map +0 -1
  314. package/dist/code-highlight.cjs +0 -1
  315. package/dist/code-highlight.js +0 -2
  316. package/dist/extra-B8IPs6gG.cjs +0 -31
  317. package/dist/extra-B8IPs6gG.cjs.map +0 -1
  318. package/dist/extra-DxEWs41z.js +0 -3440
  319. package/dist/extra-DxEWs41z.js.map +0 -1
  320. package/dist/extra.cjs +0 -1
  321. package/dist/extra.js +0 -2
  322. package/dist/mailbox-CDWqbVvZ.cjs +0 -1140
  323. package/dist/mailbox-CDWqbVvZ.cjs.map +0 -1
  324. package/dist/mailbox-DD2How0H.js +0 -1607
  325. package/dist/mailbox-DD2How0H.js.map +0 -1
  326. package/dist/mailbox.cjs +0 -1
  327. package/dist/mailbox.js +0 -2
  328. package/dist/map-1uwxxvBa.js +0 -208
  329. package/dist/map-1uwxxvBa.js.map +0 -1
  330. package/dist/map-BrBSrIqg.cjs +0 -80
  331. package/dist/map-BrBSrIqg.cjs.map +0 -1
  332. package/dist/map.cjs +0 -1
  333. package/dist/map.js +0 -2
  334. package/dist/mixins-B34UxxCe.js +0 -627
  335. package/dist/mixins-CAb0b03r.cjs +0 -298
  336. package/dist/payment-card-form-C4jb-OdM.js +0 -729
  337. package/dist/payment-card-form-C4jb-OdM.js.map +0 -1
  338. package/dist/payment-card-form-WEx4CscR.cjs +0 -73
  339. package/dist/payment-card-form-WEx4CscR.cjs.map +0 -1
  340. package/dist/payment-card-form.cjs +0 -1
  341. package/dist/payment-card-form.js +0 -2
  342. package/dist/qr-scanner.cjs +0 -35
  343. package/dist/qr-scanner.cjs.map +0 -1
  344. package/dist/qr-scanner.js +0 -123
  345. package/dist/qr-scanner.js.map +0 -1
  346. package/dist/skills/charts.md +0 -93
  347. package/dist/skills/code-highlight.md +0 -47
  348. package/dist/skills/extra.md +0 -59
  349. package/dist/skills/mailbox.md +0 -102
  350. package/dist/skills/map.md +0 -55
  351. package/dist/skills/qr-scanner.md +0 -51
  352. package/dist/skills/schmancy/charts.md +0 -93
  353. package/dist/skills/schmancy/code-highlight.md +0 -47
  354. package/dist/skills/schmancy/extra.md +0 -59
  355. package/dist/skills/schmancy/mailbox.md +0 -102
  356. package/dist/skills/schmancy/map.md +0 -55
  357. package/dist/skills/schmancy/qr-scanner.md +0 -51
  358. package/dist/skills/schmancy/timeline-tile.md +0 -95
  359. package/dist/skills/timeline-tile.md +0 -95
  360. package/dist/timeline.cjs +0 -277
  361. package/dist/timeline.cjs.map +0 -1
  362. package/dist/timeline.js +0 -326
  363. package/dist/timeline.js.map +0 -1
  364. package/skills/schmancy/charts.md +0 -93
  365. package/skills/schmancy/code-highlight.md +0 -47
  366. package/skills/schmancy/extra.md +0 -59
  367. package/skills/schmancy/mailbox.md +0 -102
  368. package/skills/schmancy/map.md +0 -55
  369. package/skills/schmancy/qr-scanner.md +0 -51
  370. package/skills/schmancy/timeline-tile.md +0 -95
  371. package/src/charts/area-chart.ts +0 -498
  372. package/src/charts/index.ts +0 -4
  373. package/src/charts/pills.ts +0 -352
  374. package/src/charts/types.ts +0 -66
  375. package/src/charts/utils.ts +0 -65
  376. package/src/code-highlight/code-highlight.ts +0 -345
  377. package/src/code-highlight/code-preview.ts +0 -125
  378. package/src/code-highlight/index.ts +0 -3
  379. package/src/extra/countries/countries.data.ts +0 -196
  380. package/src/extra/countries/countries.ts +0 -109
  381. package/src/extra/countries/index.ts +0 -2
  382. package/src/extra/index.ts +0 -2
  383. package/src/extra/timezone/index.ts +0 -2
  384. package/src/extra/timezone/timezone.ts +0 -118
  385. package/src/extra/timezone/timezones.data.ts +0 -2546
  386. package/src/mailbox/README.md +0 -128
  387. package/src/mailbox/email-editor.ts +0 -1076
  388. package/src/mailbox/email-layout-selector.ts +0 -58
  389. package/src/mailbox/email-recipients.ts +0 -599
  390. package/src/mailbox/email-template-picker.ts +0 -303
  391. package/src/mailbox/email-viewer.ts +0 -717
  392. package/src/mailbox/index.ts +0 -31
  393. package/src/mailbox/mailbox.ts +0 -364
  394. package/src/mailbox/types.ts +0 -180
  395. package/src/map/index.ts +0 -1
  396. package/src/map/map.ts +0 -485
  397. package/src/payment-card-form/index.ts +0 -1
  398. package/src/payment-card-form/payment-card-form.ts +0 -331
  399. package/src/qr-scanner/index.ts +0 -1
  400. package/src/qr-scanner/qr-scanner.ts +0 -242
  401. package/src/timeline/index.ts +0 -1
  402. package/src/timeline/timeline-tile.ts +0 -431
  403. package/types/src/charts/area-chart.d.ts +0 -58
  404. package/types/src/charts/index.d.ts +0 -4
  405. package/types/src/charts/pills.d.ts +0 -51
  406. package/types/src/charts/types.d.ts +0 -62
  407. package/types/src/charts/utils.d.ts +0 -28
  408. package/types/src/code-highlight/code-highlight.d.ts +0 -49
  409. package/types/src/code-highlight/code-preview.d.ts +0 -30
  410. package/types/src/code-highlight/index.d.ts +0 -3
  411. package/types/src/extra/countries/countries.d.ts +0 -26
  412. package/types/src/extra/countries/countries.data.d.ts +0 -5
  413. package/types/src/extra/countries/index.d.ts +0 -2
  414. package/types/src/extra/index.d.ts +0 -2
  415. package/types/src/extra/timezone/index.d.ts +0 -2
  416. package/types/src/extra/timezone/timezone.d.ts +0 -34
  417. package/types/src/extra/timezone/timezones.data.d.ts +0 -7
  418. package/types/src/mailbox/email-editor.d.ts +0 -101
  419. package/types/src/mailbox/email-layout-selector.d.ts +0 -18
  420. package/types/src/mailbox/email-recipients.d.ts +0 -122
  421. package/types/src/mailbox/email-template-picker.d.ts +0 -54
  422. package/types/src/mailbox/email-viewer.d.ts +0 -86
  423. package/types/src/mailbox/index.d.ts +0 -12
  424. package/types/src/mailbox/mailbox.d.ts +0 -82
  425. package/types/src/mailbox/types.d.ts +0 -176
  426. package/types/src/map/index.d.ts +0 -1
  427. package/types/src/map/map.d.ts +0 -130
  428. package/types/src/payment-card-form/index.d.ts +0 -1
  429. package/types/src/payment-card-form/payment-card-form.d.ts +0 -85
  430. package/types/src/qr-scanner/index.d.ts +0 -1
  431. package/types/src/qr-scanner/qr-scanner.d.ts +0 -26
  432. package/types/src/timeline/index.d.ts +0 -1
  433. package/types/src/timeline/timeline-tile.d.ts +0 -44
  434. /package/dist/agent/{flow-CaPi2G8y.js → flow-CvG1fLW5.js} +0 -0
  435. /package/dist/agent/{vendor-material-color-Be96dpGE.js → vendor-material-color-DcL7ZPxx.js} +0 -0
  436. /package/dist/{form-CI59gad4.js → form-CFvwnfuJ.js} +0 -0
  437. /package/dist/{form-B2qudx_q.cjs → form-Ceijw1aA.cjs} +0 -0
  438. /package/dist/{hashContent-a8uVr3xs.js → hashContent-BU6jl5ih.js} +0 -0
  439. /package/dist/{hashContent-ejkBgDnN.cjs → hashContent-Bobsobip.cjs} +0 -0
  440. /package/dist/{overlay-stack-CCiTaf_C.js → overlay-stack-DCDS17uj.js} +0 -0
  441. /package/dist/{overlay-stack-CFGiYf34.cjs → overlay-stack-DPIe_aYv.cjs} +0 -0
  442. /package/dist/{rxjs-utils-BXpvHN4-.js → rxjs-utils-CVeJQ9KG.js} +0 -0
  443. /package/dist/{rxjs-utils-CaC-tdot.cjs → rxjs-utils-DCUHg_Ml.cjs} +0 -0
  444. /package/dist/{theme.interface-C_034TxG.js → theme.interface-B9TjbSBF.js} +0 -0
  445. /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}});
@@ -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 };
@@ -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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"}