@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
@@ -1,498 +0,0 @@
1
- import { html, css, PropertyValues } from 'lit'
2
- import { customElement, property, state } from 'lit/decorators.js'
3
- import { ref, createRef, Ref } from 'lit/directives/ref.js'
4
- import { SchmancyElement } from '@mixins/index'
5
- import type { ChartDataPoint, ChartTheme, ProcessedDataPoint } from './types'
6
- import { catmullRomSpline, hexToRgba, easeOutCubic } from './utils'
7
-
8
- interface TooltipData {
9
- visible: boolean
10
- x: number
11
- y: number
12
- label: string
13
- value: number
14
- metadata?: Record<string, unknown>
15
- }
16
-
17
- @customElement('schmancy-area-chart')
18
- export class SchmancyAreaChart extends SchmancyElement {
19
- static styles = [css`
20
- :host {
21
- display: block;
22
- }
23
- `]
24
-
25
- /** Chart data points */
26
- @property({ type: Array })
27
- data: ChartDataPoint[] = []
28
-
29
- /** Chart height in pixels */
30
- @property({ type: Number })
31
- height = 200
32
-
33
- /** Show grid lines */
34
- @property({ type: Boolean })
35
- showGrid = true
36
-
37
- /** Show x-axis labels */
38
- @property({ type: Boolean })
39
- showLabels = true
40
-
41
- /** Enable tooltips */
42
- @property({ type: Boolean })
43
- showTooltip = true
44
-
45
- /** Number of peaks to highlight */
46
- @property({ type: Number })
47
- peakCount = 3
48
-
49
- /** Animation duration in milliseconds */
50
- @property({ type: Number })
51
- animationDuration = 800
52
-
53
- /** Enable entrance animation */
54
- @property({ type: Boolean })
55
- animated = true
56
-
57
- /** Prefix for values (e.g., "EUR ") */
58
- @property({ type: String })
59
- valuePrefix = ''
60
-
61
- /** Suffix for values (e.g., "%") */
62
- @property({ type: String })
63
- valueSuffix = ''
64
-
65
- /** Decimal places for value display */
66
- @property({ type: Number })
67
- valueDecimals = 2
68
-
69
- /** Theme overrides */
70
- @property({ type: Object })
71
- theme: Partial<ChartTheme> = {}
72
-
73
- @state() private tooltipData: TooltipData = {
74
- visible: false,
75
- x: 0,
76
- y: 0,
77
- label: '',
78
- value: 0,
79
- }
80
-
81
- @state() private animationProgress = 0
82
- @state() private isVisible = false
83
-
84
- private canvasRef: Ref<HTMLCanvasElement> = createRef()
85
- private containerRef: Ref<HTMLDivElement> = createRef()
86
- private animationFrameId: number | null = null
87
- private observer: IntersectionObserver | null = null
88
- private processedData: ProcessedDataPoint[] = []
89
- private resizeObserver: ResizeObserver | null = null
90
-
91
- connectedCallback() {
92
- super.connectedCallback()
93
- this.setupIntersectionObserver()
94
- }
95
-
96
- disconnectedCallback() {
97
- super.disconnectedCallback()
98
- this.cleanup()
99
- }
100
-
101
- private cleanup() {
102
- if (this.animationFrameId !== null) {
103
- cancelAnimationFrame(this.animationFrameId)
104
- this.animationFrameId = null
105
- }
106
- if (this.observer) {
107
- this.observer.disconnect()
108
- this.observer = null
109
- }
110
- if (this.resizeObserver) {
111
- this.resizeObserver.disconnect()
112
- this.resizeObserver = null
113
- }
114
- }
115
-
116
- private setupIntersectionObserver() {
117
- this.observer = new IntersectionObserver(
118
- entries => {
119
- const entry = entries[0]
120
- if (entry.isIntersecting && !this.isVisible) {
121
- this.isVisible = true
122
- if (this.animated) {
123
- this.startAnimation()
124
- } else {
125
- this.animationProgress = 1
126
- this.drawChart()
127
- }
128
- } else if (!entry.isIntersecting) {
129
- this.isVisible = false
130
- if (this.animationFrameId !== null) {
131
- cancelAnimationFrame(this.animationFrameId)
132
- this.animationFrameId = null
133
- }
134
- }
135
- },
136
- { threshold: 0.1 }
137
- )
138
- }
139
-
140
- protected updated(changedProperties: PropertyValues) {
141
- super.updated(changedProperties)
142
-
143
- if (this.containerRef.value && this.observer) {
144
- this.observer.observe(this.containerRef.value)
145
- }
146
-
147
- if (this.canvasRef.value && !this.resizeObserver) {
148
- this.resizeObserver = new ResizeObserver(() => {
149
- this.drawChart()
150
- })
151
- this.resizeObserver.observe(this.canvasRef.value)
152
- }
153
-
154
- // Redraw when data changes
155
- if (changedProperties.has('data') && this.isVisible) {
156
- if (this.animated) {
157
- this.animationProgress = 0
158
- this.startAnimation()
159
- } else {
160
- this.animationProgress = 1
161
- this.drawChart()
162
- }
163
- }
164
-
165
- // Redraw on theme or config changes
166
- if (
167
- (changedProperties.has('theme') ||
168
- changedProperties.has('showGrid') ||
169
- changedProperties.has('showLabels') ||
170
- changedProperties.has('peakCount')) &&
171
- this.isVisible
172
- ) {
173
- this.drawChart()
174
- }
175
- }
176
-
177
- private startAnimation() {
178
- const startTime = performance.now()
179
- const duration = this.animationDuration
180
-
181
- const animateFrame = (currentTime: number) => {
182
- const elapsed = currentTime - startTime
183
- const progress = Math.min(elapsed / duration, 1)
184
-
185
- this.animationProgress = easeOutCubic(progress)
186
- this.drawChart()
187
-
188
- if (progress < 1 && this.isVisible) {
189
- this.animationFrameId = requestAnimationFrame(animateFrame)
190
- }
191
- }
192
-
193
- this.animationFrameId = requestAnimationFrame(animateFrame)
194
- }
195
-
196
- private processData(): ProcessedDataPoint[] {
197
- if (!this.data || this.data.length === 0) return []
198
-
199
- // Find top N peak values
200
- const sortedByValue = [...this.data].toSorted((a, b) => b.value - a.value)
201
- const peakLabels = new Set(sortedByValue.slice(0, this.peakCount).map(d => d.label))
202
-
203
- return this.data.map(d => ({
204
- ...d,
205
- x: 0, // Will be calculated during draw
206
- y: 0, // Will be calculated during draw
207
- isPeak: peakLabels.has(d.label),
208
- }))
209
- }
210
-
211
- private getThemeValue<K extends keyof ChartTheme>(
212
- key: K,
213
- defaultValue: NonNullable<ChartTheme[K]>
214
- ): NonNullable<ChartTheme[K]> {
215
- return (this.theme[key] as NonNullable<ChartTheme[K]>) ?? defaultValue
216
- }
217
-
218
- private drawChart() {
219
- const canvas = this.canvasRef.value
220
- if (!canvas) return
221
-
222
- const ctx = canvas.getContext('2d')
223
- if (!ctx) return
224
-
225
- const dpr = window.devicePixelRatio || 1
226
- const rect = canvas.getBoundingClientRect()
227
- const width = rect.width
228
- const height = rect.height
229
-
230
- // Set canvas size for high DPI
231
- canvas.width = width * dpr
232
- canvas.height = height * dpr
233
- ctx.scale(dpr, dpr)
234
-
235
- // Clear canvas
236
- ctx.clearRect(0, 0, width, height)
237
-
238
- const data = this.processData()
239
- if (data.length === 0) return
240
-
241
- const padding = { top: 20, right: 20, bottom: this.showLabels ? 40 : 20, left: 20 }
242
- const chartWidth = width - padding.left - padding.right
243
- const chartHeight = height - padding.top - padding.bottom
244
-
245
- // Find max value for scaling
246
- const maxValue = Math.max(...data.map(d => d.value), 1)
247
-
248
- // Calculate positions
249
- // oxlint-disable-next-line oxc/no-map-spread
250
- const points = data.map((d, i) => ({
251
- ...d,
252
- x: padding.left + (data.length > 1 ? (i / (data.length - 1)) * chartWidth : chartWidth / 2),
253
- y: padding.top + chartHeight - (d.value / maxValue) * chartHeight,
254
- }))
255
-
256
- this.processedData = points
257
-
258
- // Get primary color from CSS or theme
259
- const computedStyle = getComputedStyle(this)
260
- const defaultPrimaryColor =
261
- computedStyle.getPropertyValue('--schmancy-sys-color-primary').trim() || '#6750A4'
262
- const primaryColor = this.getThemeValue('primaryColor', defaultPrimaryColor)
263
- const [gradientOpacityTop, gradientOpacityBottom] = this.getThemeValue('gradientOpacity', [0.4, 0.05])
264
- const strokeWidth = this.getThemeValue('strokeWidth', 2)
265
- const pointRadius = this.getThemeValue('pointRadius', 4)
266
- const peakRadius = this.getThemeValue('peakRadius', 6)
267
-
268
- // Draw grid lines
269
- if (this.showGrid) {
270
- ctx.strokeStyle = 'rgba(128, 128, 128, 0.15)'
271
- ctx.lineWidth = 1
272
- ctx.setLineDash([4, 4])
273
-
274
- for (let i = 1; i <= 3; i++) {
275
- const y = padding.top + (chartHeight * i) / 4
276
- ctx.beginPath()
277
- ctx.moveTo(padding.left, y)
278
- ctx.lineTo(width - padding.right, y)
279
- ctx.stroke()
280
- }
281
-
282
- ctx.setLineDash([])
283
- }
284
-
285
- // Create smooth curve path using Catmull-Rom spline
286
- const curvePath = new Path2D()
287
- const areaPath = new Path2D()
288
-
289
- if (points.length >= 2) {
290
- // Start area path from bottom left
291
- areaPath.moveTo(points[0].x, padding.top + chartHeight)
292
- curvePath.moveTo(points[0].x, points[0].y)
293
- areaPath.lineTo(points[0].x, points[0].y)
294
-
295
- for (let i = 0; i < points.length - 1; i++) {
296
- const p0 = points[Math.max(0, i - 1)]
297
- const p1 = points[i]
298
- const p2 = points[Math.min(points.length - 1, i + 1)]
299
- const p3 = points[Math.min(points.length - 1, i + 2)]
300
-
301
- // Draw curve segments
302
- const segments = 16
303
- for (let j = 1; j <= segments; j++) {
304
- const t = j / segments
305
- const point = catmullRomSpline(p0, p1, p2, p3, t)
306
- curvePath.lineTo(point.x, point.y)
307
- areaPath.lineTo(point.x, point.y)
308
- }
309
- }
310
-
311
- // Close area path
312
- areaPath.lineTo(points[points.length - 1].x, padding.top + chartHeight)
313
- areaPath.closePath()
314
- } else if (points.length === 1) {
315
- // Single point - draw a dot
316
- curvePath.arc(points[0].x, points[0].y, pointRadius, 0, Math.PI * 2)
317
- }
318
-
319
- // Apply animation clipping
320
- ctx.save()
321
- ctx.beginPath()
322
- ctx.rect(0, 0, padding.left + chartWidth * this.animationProgress, height)
323
- ctx.clip()
324
-
325
- // Draw gradient fill
326
- if (points.length >= 2) {
327
- const gradient = ctx.createLinearGradient(0, padding.top, 0, padding.top + chartHeight)
328
- gradient.addColorStop(0, hexToRgba(primaryColor, gradientOpacityTop))
329
- gradient.addColorStop(1, hexToRgba(primaryColor, gradientOpacityBottom))
330
-
331
- ctx.fillStyle = gradient
332
- ctx.fill(areaPath)
333
- }
334
-
335
- // Draw stroke
336
- ctx.strokeStyle = primaryColor
337
- ctx.lineWidth = strokeWidth
338
- ctx.lineCap = 'round'
339
- ctx.lineJoin = 'round'
340
- ctx.stroke(curvePath)
341
-
342
- // Draw data points
343
- points.forEach((point, index) => {
344
- const pointProgress = (index / (points.length - 1 || 1)) * this.animationProgress
345
- if (pointProgress < index / (points.length || 1)) return
346
-
347
- const radius = point.isPeak ? peakRadius - 1 : pointRadius - 1
348
- const outerRadius = point.isPeak ? peakRadius + 4 : pointRadius + 2
349
-
350
- // Outer glow for peaks
351
- if (point.isPeak) {
352
- ctx.beginPath()
353
- ctx.arc(point.x, point.y, outerRadius, 0, Math.PI * 2)
354
- ctx.fillStyle = hexToRgba(primaryColor, 0.2)
355
- ctx.fill()
356
- }
357
-
358
- // Inner dot
359
- ctx.beginPath()
360
- ctx.arc(point.x, point.y, radius, 0, Math.PI * 2)
361
- ctx.fillStyle = primaryColor
362
- ctx.fill()
363
-
364
- // White center for peaks
365
- if (point.isPeak) {
366
- ctx.beginPath()
367
- ctx.arc(point.x, point.y, 2, 0, Math.PI * 2)
368
- ctx.fillStyle = 'white'
369
- ctx.fill()
370
- }
371
- })
372
-
373
- ctx.restore()
374
-
375
- // Draw labels
376
- if (this.showLabels && points.length > 0) {
377
- ctx.fillStyle = 'rgba(128, 128, 128, 0.8)'
378
- ctx.font = '11px system-ui, sans-serif'
379
- ctx.textAlign = 'center'
380
- ctx.textBaseline = 'top'
381
-
382
- // Show fewer labels on narrow charts
383
- const labelStep = width < 400 ? 3 : width < 600 ? 2 : 1
384
- points.forEach((point, index) => {
385
- if (index % labelStep === 0) {
386
- ctx.fillText(point.label, point.x, height - padding.bottom + 8)
387
- }
388
- })
389
- }
390
- }
391
-
392
- private formatValue(value: number): string {
393
- const formatted = value.toFixed(this.valueDecimals)
394
- return `${this.valuePrefix}${formatted}${this.valueSuffix}`
395
- }
396
-
397
- private handlePointerMove = (e: PointerEvent) => {
398
- if (this.processedData.length === 0 || !this.showTooltip) return
399
-
400
- const canvas = this.canvasRef.value
401
- if (!canvas) return
402
-
403
- const rect = canvas.getBoundingClientRect()
404
- const x = e.clientX - rect.left
405
-
406
- // Find closest data point
407
- let closestPoint: ProcessedDataPoint | null = null
408
- let minDistance = Infinity
409
-
410
- this.processedData.forEach(point => {
411
- const distance = Math.abs(point.x - x)
412
- if (distance < minDistance) {
413
- minDistance = distance
414
- closestPoint = point
415
- }
416
- })
417
-
418
- if (closestPoint && minDistance < 30) {
419
- this.tooltipData = {
420
- visible: true,
421
- x: closestPoint.x,
422
- y: closestPoint.y,
423
- label: closestPoint.label,
424
- value: closestPoint.value,
425
- metadata: closestPoint.metadata,
426
- }
427
- } else {
428
- this.tooltipData = { ...this.tooltipData, visible: false }
429
- }
430
- }
431
-
432
- private handlePointerLeave = () => {
433
- this.tooltipData = { ...this.tooltipData, visible: false }
434
- }
435
-
436
- private renderMetadata() {
437
- if (!this.tooltipData.metadata) return ''
438
- return Object.entries(this.tooltipData.metadata).map(
439
- ([key, value]) => html`
440
- <schmancy-typography type="body" token="sm" class="text-surface-onVariant">
441
- ${key}: ${String(value)}
442
- </schmancy-typography>
443
- `
444
- )
445
- }
446
-
447
- render() {
448
- if (!this.data || this.data.length === 0) {
449
- return html``
450
- }
451
-
452
- return html`
453
- <div ${ref(this.containerRef)} class="relative">
454
- <div class="relative" style="height: ${this.height}px; touch-action: pan-y;">
455
- <canvas
456
- ${ref(this.canvasRef)}
457
- class="w-full h-full"
458
- style="display: block;"
459
- @pointermove=${this.handlePointerMove}
460
- @pointerleave=${this.handlePointerLeave}
461
- ></canvas>
462
-
463
- <!-- Tooltip -->
464
- ${this.showTooltip
465
- ? html`
466
- <div
467
- class="absolute pointer-events-none transition-opacity duration-150 ${this.tooltipData.visible
468
- ? 'opacity-100'
469
- : 'opacity-0'}"
470
- style="
471
- left: ${this.tooltipData.x}px;
472
- top: ${this.tooltipData.y - 60}px;
473
- transform: translateX(-50%);
474
- "
475
- >
476
- <schmancy-surface elevation="3" rounded="all" class="px-3 py-2 min-w-max">
477
- <schmancy-typography type="label" token="sm" class="text-surface-onVariant">
478
- ${this.tooltipData.label}
479
- </schmancy-typography>
480
- <schmancy-typography type="title" token="md" class="text-surface-on font-semibold">
481
- ${this.formatValue(this.tooltipData.value)}
482
- </schmancy-typography>
483
- ${this.renderMetadata()}
484
- </schmancy-surface>
485
- </div>
486
- `
487
- : ''}
488
- </div>
489
- </div>
490
- `
491
- }
492
- }
493
-
494
- declare global {
495
- interface HTMLElementTagNameMap {
496
- 'schmancy-area-chart': SchmancyAreaChart
497
- }
498
- }
@@ -1,4 +0,0 @@
1
- export * from './types'
2
- export * from './utils'
3
- export * from './area-chart'
4
- export * from './pills'