@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,93 +0,0 @@
1
- # Schmancy Charts
2
-
3
- > Canvas-rendered area chart and horizontal pill chart. Theme-aware, lazy-animated, with auto peak highlighting.
4
-
5
- ## schmancy-area-chart
6
-
7
- > Smooth Catmull-Rom spline area chart with peak markers and hover tooltips.
8
-
9
- ```html
10
- <schmancy-area-chart
11
- .data=${[
12
- { label: '9 AM', value: 12.4 },
13
- { label: '10 AM', value: 18.9 },
14
- { label: '11 AM', value: 42.1, metadata: { users: 320 } },
15
- { label: '12 PM', value: 56.7 },
16
- ]}
17
- value-prefix="EUR "
18
- value-decimals="2"
19
- peak-count="2"
20
- height="240"
21
- ></schmancy-area-chart>
22
- ```
23
-
24
- ### Properties
25
- | Property | Type | Default | Description |
26
- |----------|------|---------|-------------|
27
- | `data` | `ChartDataPoint[]` | `[]` | `{ label, value, metadata? }[]` |
28
- | `height` | number | `200` | Chart height in px |
29
- | `showGrid` | boolean | `true` | Background grid lines |
30
- | `showLabels` | boolean | `true` | X-axis labels |
31
- | `showTooltip` | boolean | `true` | Hover tooltip |
32
- | `peakCount` | number | `3` | Top-N points highlighted larger |
33
- | `animationDuration` | number | `800` | Entrance animation ms |
34
- | `animated` | boolean | `true` | Animate on first visible |
35
- | `valuePrefix` | string | `''` | Display prefix (e.g. `"EUR "`) |
36
- | `valueSuffix` | string | `''` | Display suffix (e.g. `"%"`) |
37
- | `valueDecimals` | number | `2` | Decimal places |
38
- | `theme` | `Partial<ChartTheme>` | `{}` | Override colors, stroke, radii |
39
-
40
- ### ChartTheme
41
- | Key | Default | Description |
42
- |-----|---------|-------------|
43
- | `primaryColor` | `--schmancy-sys-color-primary` | Line + fill gradient color |
44
- | `gradientOpacity` | `[0.4, 0.05]` | Top/bottom fill opacity |
45
- | `strokeWidth` | `2` | Line thickness |
46
- | `pointRadius` | `4` | Normal point radius |
47
- | `peakRadius` | `6` | Peak point radius |
48
-
49
- ## schmancy-pills
50
-
51
- > Horizontal bar chart with optional stacked segments, medal ranks, and peak/low styling.
52
-
53
- ```html
54
- <schmancy-pills
55
- .data=${[
56
- { label: 'Mon', value: 1240, rank: 1 },
57
- { label: 'Tue', value: 980 },
58
- { label: 'Wed', value: 1830, rank: 2, segments: [
59
- { label: 'Pizza', value: 1200 },
60
- { label: 'Drinks', value: 630 }
61
- ]},
62
- ]}
63
- ></schmancy-pills>
64
- ```
65
-
66
- ### Properties
67
- | Property | Type | Default | Description |
68
- |----------|------|---------|-------------|
69
- | `data` | `PillDataPoint[]` | `[]` | Rows with optional stacked `segments` |
70
- | `valuePrefix` / `valueSuffix` / `valueDecimals` | — | — | Value formatting (same as area chart) |
71
- | `showMedals` | boolean | `true` | Show 🥇🥈🥉 for rank 1/2/3 |
72
-
73
- ### PillDataPoint
74
- ```typescript
75
- {
76
- label: string
77
- value: number
78
- segments?: { label, value, color }[] // stacked
79
- isPeak?: boolean // highlighted
80
- isLow?: boolean // muted
81
- rank?: 1 | 2 | 3 // medal
82
- metadata?: Record<string, unknown>
83
- }
84
- ```
85
-
86
- ## Behavior
87
- - Both charts use an IntersectionObserver to defer animation until visible.
88
- - Responsive — resize triggers a re-render.
89
- - Dark/light aware via theme CSS variables.
90
-
91
- ## When to Use
92
- - Area chart: time-series or comparative trends.
93
- - Pills: ranked categorical data (leaderboards, top days, distribution).
@@ -1,47 +0,0 @@
1
- # schmancy-code
2
-
3
- > Syntax-highlighted code block with line numbers, copy button, and collapsible display.
4
-
5
- ## Usage
6
- ```html
7
- <schmancy-code language="typescript" .code=${'const x = 42'}></schmancy-code>
8
- ```
9
-
10
- ## Properties
11
- | Property | Type | Default | Description |
12
- |----------|------|---------|-------------|
13
- | code | string | `''` | Code content to highlight |
14
- | language | string | `'javascript'` | Language for syntax highlighting |
15
- | filename | string | `undefined` | Filename shown in header |
16
- | lineNumbers | boolean | `false` | Show line numbers |
17
- | copyButton | boolean | `true` | Show copy-to-clipboard button |
18
- | highlightLines | string | `undefined` | Lines to highlight (e.g., `'1-3,5,7-9'`) |
19
- | maxHeight | string | `undefined` | Max height before scrolling |
20
-
21
- ## Supported Languages
22
- javascript, typescript, html, xml, markdown, bash
23
-
24
- ## Examples
25
- ```html
26
- <!-- TypeScript with line numbers and highlighted lines -->
27
- <schmancy-code
28
- language="typescript"
29
- lineNumbers
30
- highlightLines="2-3"
31
- .code=${`import { html } from 'lit'
32
- const greeting = 'Hello'
33
- console.log(greeting)`}>
34
- </schmancy-code>
35
-
36
- <!-- Bash with filename -->
37
- <schmancy-code language="bash" filename="install.sh"
38
- .code=${'npm install @mhmo91/schmancy'}>
39
- </schmancy-code>
40
-
41
- <!-- With max height -->
42
- <schmancy-code language="javascript" maxHeight="300px"
43
- .code=${longCodeString}>
44
- </schmancy-code>
45
- ```
46
-
47
- Renders inside a collapsible `schmancy-details` with a macOS-style header (colored dots + language label). Uses highlight.js with schmancy color tokens.
@@ -1,59 +0,0 @@
1
- # Schmancy Extra
2
-
3
- > Data-driven dropdowns for common localization fields. Country and timezone pickers, form-associated and autocomplete-backed.
4
-
5
- ## schmancy-select-countries
6
- Fully autocomplete-searchable country dropdown. Form-associated (participates in `<form>` submission and validation via `ElementInternals`).
7
-
8
- ```html
9
- <schmancy-select-countries
10
- name="country"
11
- label="Country"
12
- placeholder="Select a country"
13
- required
14
- value="DE"
15
- @change=${e => this.country = e.target.value}
16
- ></schmancy-select-countries>
17
- ```
18
-
19
- | Property | Type | Default | Description |
20
- |----------|------|---------|-------------|
21
- | `value` | string | — | ISO country code (reflected) |
22
- | `name` | string | `''` | Form field name |
23
- | `label` | string | `'Country'` | Visible label |
24
- | `hint` | string | `'Please select a country'` | Helper text |
25
- | `placeholder` | string | `'Select a country'` | Placeholder in the input |
26
- | `required` | boolean | `false` | Validation constraint |
27
-
28
- ## schmancy-select-timezones
29
- Same pattern as countries, backed by timezone data.
30
-
31
- ```html
32
- <schmancy-select-timezones
33
- name="timezone"
34
- label="Timezone"
35
- value="Europe/Berlin"
36
- ></schmancy-select-timezones>
37
- ```
38
-
39
- Accepts the same set of properties (`value`, `name`, `label`, `hint`, `placeholder`, `required`).
40
-
41
- ## Raw Data Exports
42
- If you want the underlying data without the component:
43
- ```typescript
44
- import countries from '@mhmo91/schmancy' // default export from countries.data
45
- import timezones from '@mhmo91/schmancy' // default export from timezones.data
46
- ```
47
-
48
- Each countries row: `{ code, name, dialCode?, flag?, ... }`. Timezones: `{ name, offset, label, ... }`.
49
-
50
- ## Form Integration
51
- Both use `formAssociated = true` and register with the parent `<form>`. Works with native `form.checkValidity()` and with [`schmancy-form`](./form.md).
52
-
53
- ```html
54
- <schmancy-form @submit=${this.onSubmit}>
55
- <schmancy-select-countries name="country" required></schmancy-select-countries>
56
- <schmancy-select-timezones name="timezone" required></schmancy-select-timezones>
57
- <schmancy-button type="submit" variant="filled">Save</schmancy-button>
58
- </schmancy-form>
59
- ```
@@ -1,102 +0,0 @@
1
- # Schmancy Mailbox
2
-
3
- > Full email composition + campaign management system. Orchestrates recipients, templates, editor, attachments, and preview.
4
-
5
- ## Components
6
-
7
- | Tag | Purpose |
8
- |-----|---------|
9
- | `schmancy-mailbox` | Top-level orchestrator |
10
- | `schmancy-email-editor` | Subject + body composition |
11
- | `schmancy-email-viewer` | HTML/plaintext preview |
12
- | `schmancy-email-recipients` | Recipient list with import/CSV |
13
- | `schmancy-email-layout-selector` | Layout template picker |
14
- | `schmancy-email-template-picker` | Email template browser |
15
-
16
- ## Usage
17
- ```html
18
- <schmancy-mailbox
19
- .config=${{
20
- sendEndpoint: '/api/emails/send',
21
- uploadEndpoint: '/api/uploads',
22
- authenticateRequest: (req) => ({ ...req, headers: { Authorization: `Bearer ${token}` } })
23
- }}
24
- .templates=${myTemplates}
25
- .importSources=${[
26
- { id: 'ticketholders', label: 'Ticket holders', icon: 'confirmation_number', handler: loadTicketHolders },
27
- { id: 'waitlist', label: 'Waitlist', icon: 'hourglass_empty', handler: loadWaitlist },
28
- ]}
29
- ></schmancy-mailbox>
30
- ```
31
-
32
- ## schmancy-mailbox Properties
33
- | Property | Type | Default | Description |
34
- |----------|------|---------|-------------|
35
- | `config` | `EmailComposeConfig` | `{}` | Endpoints, auth, upload handlers |
36
- | `templates` | `EmailTemplate[]` | `[]` | Available email templates |
37
- | `importSources` | `ImportSource[]` | `[]` | Import buttons shown in recipients panel |
38
- | `disabled` | boolean | `false` | Disable all interactions |
39
- | `recipientsTitle` | string | `'Recipients'` | Recipients panel heading |
40
- | `recipientsEmptyTitle` | string | `'No recipients yet'` | Empty state title |
41
- | `recipientsEmptyMessage` | string | `'Import from sources or upload a CSV'` | Empty state body |
42
- | `enableCsvImport` | boolean | `true` | Allow CSV file import |
43
- | `enableDragDrop` | boolean | `true` | Accept dropped CSV files |
44
-
45
- ## Key Types
46
- ```typescript
47
- interface EmailTemplate { id, name, subject, body, category?, thumbnail? }
48
-
49
- interface EmailComposeConfig {
50
- sendEndpoint?: string
51
- templatesEndpoint?: string
52
- uploadEndpoint?: string
53
- authenticateRequest?: (req: RequestInit) => RequestInit
54
- uploadHandler?: (file: File) => Promise<string>
55
- imageUploadHandler?: (file: File) => Promise<string>
56
- }
57
-
58
- interface SendEmailRequest {
59
- recipients: string[]
60
- subject: string
61
- body: string
62
- attachments: EmailAttachment[]
63
- templateId?: string | null
64
- }
65
-
66
- interface ImportSource {
67
- id: string
68
- label: string
69
- icon: string // Material icon name
70
- handler: () => void // Populates recipients via events
71
- }
72
- ```
73
-
74
- ## Events
75
- | Event | Detail | Where |
76
- |-------|--------|-------|
77
- | `emails-imported` | `{ emails, source }` | Recipients |
78
- | `recipient-removed` | `{ email }` | Recipients |
79
- | `recipients-cleared` | `{}` | Recipients |
80
- | `selection-changed` | `{ selectedEmails }` | Recipients |
81
- | `compose-changed` | `{ subject, body, templateId, attachments }` | Editor |
82
- | `send-email` | `{ request: SendEmailRequest }` | Mailbox — consumer POSTs to backend |
83
- | `send-error` | `{ error }` | Mailbox |
84
-
85
- ## Recipients Flow
86
- 1. User clicks an `ImportSource` button (or drops a CSV).
87
- 2. CSV is parsed → `validEmails`, `invalidEmails`, `duplicates` reported.
88
- 3. `emails-imported` event fires; mailbox merges into selected recipients.
89
- 4. User edits subject/body via email-editor; changes bubble as `compose-changed`.
90
- 5. On send, `send-email` fires with the full `SendEmailRequest` — parent handles network.
91
-
92
- ## Minimal Integration
93
- ```typescript
94
- <schmancy-mailbox
95
- .config=${config}
96
- .templates=${templates}
97
- @send-email=${async (e: CustomEvent<{ request: SendEmailRequest }>) => {
98
- const result = await api.sendCampaign(e.detail.request)
99
- if (!result.success) this.dispatchError(result.message)
100
- }}
101
- ></schmancy-mailbox>
102
- ```
@@ -1,55 +0,0 @@
1
- # schmancy-map
2
-
3
- > Google Maps component. Accepts address string (auto-geocoded) or exact lat/lng. Singleton-loaded Maps SDK.
4
-
5
- ## Usage
6
- ```html
7
- <!-- By address -->
8
- <schmancy-map
9
- address="Times Square, New York"
10
- api-key="YOUR_GOOGLE_MAPS_KEY"
11
- ></schmancy-map>
12
-
13
- <!-- By coordinates -->
14
- <schmancy-map
15
- .latitude=${40.758}
16
- .longitude=${-73.985}
17
- .zoom=${15}
18
- type="satellite"
19
- api-key="YOUR_GOOGLE_MAPS_KEY"
20
- ></schmancy-map>
21
- ```
22
-
23
- ## Properties
24
- | Property | Type | Default | Description |
25
- |----------|------|---------|-------------|
26
- | `address` | string | — | Location for geocoding (e.g. `"Eiffel Tower, Paris"`) |
27
- | `latitude` | number | — | Precise latitude (takes precedence over address) |
28
- | `longitude` | number | — | Precise longitude |
29
- | `zoom` | number | default Maps default | Map zoom level |
30
- | `type` | `'roadmap' \| 'satellite' \| 'hybrid' \| 'terrain'` | `'roadmap'` | Map style |
31
- | `height` | string | — | Custom height (e.g. `'400px'`, `'60vh'`) |
32
- | `apiKey` | string | **required** | Google Maps API key |
33
-
34
- ## Behavior
35
- - The first `schmancy-map` instance triggers a singleton script load of `maps.googleapis.com/maps/api/js` with the `places` library.
36
- - Subsequent instances reuse the same loader — no duplicate network requests.
37
- - If `address` is provided without coordinates, the built-in `Geocoder` resolves it before rendering.
38
- - Errors (invalid key, unauthorized domain, geocode failure) render a fallback message inside the host.
39
-
40
- ## Setup
41
- 1. Acquire a Google Maps JavaScript API key from Google Cloud Console.
42
- 2. Enable the **Maps JavaScript API** and **Geocoding API**.
43
- 3. Add your domain to the authorized list.
44
-
45
- ## Example
46
- ```html
47
- <schmancy-surface type="subtle" rounded="all">
48
- <schmancy-map
49
- address="1600 Amphitheatre Parkway, Mountain View, CA"
50
- height="320px"
51
- type="hybrid"
52
- .apiKey=${import.meta.env.VITE_GOOGLE_MAPS_KEY}
53
- ></schmancy-map>
54
- </schmancy-surface>
55
- ```
@@ -1,51 +0,0 @@
1
- # schmancy-qr-scanner
2
-
3
- > Camera-based QR code scanner using `jsQR`. Requests rear-camera access, decodes frames in real time, deduplicates reads.
4
-
5
- ## Usage
6
- ```html
7
- <schmancy-qr-scanner
8
- continuous
9
- @scan-result=${e => this.handleScan(e.detail.data)}
10
- ></schmancy-qr-scanner>
11
- ```
12
-
13
- ```typescript
14
- handleScan(data: string) {
15
- console.log('QR decoded:', data)
16
- }
17
- ```
18
-
19
- ## Properties
20
- | Property | Type | Default | Description |
21
- |----------|------|---------|-------------|
22
- | `continuous` | boolean | `true` | Keep scanning after a successful read (dedupe repeated reads) |
23
-
24
- ## Events
25
- | Event | Detail | When |
26
- |-------|--------|------|
27
- | `scan-result` | `{ data: string, timestamp: number }` | QR code successfully decoded |
28
-
29
- ## Behavior
30
- - Requests `getUserMedia` with `facingMode: 'environment'` (rear camera) at 1280×720.
31
- - Decodes via `jsQR` on `animationFrames` stream with `throttleTime` to avoid CPU thrashing.
32
- - `distinctUntilChanged` prevents duplicate emissions for the same code.
33
- - Brief success flash on each valid read.
34
- - Stops camera + tears down subscriptions on disconnect.
35
- - Displays an error state if camera permission is denied.
36
-
37
- ## Requires
38
- - HTTPS (or `localhost`) for camera access.
39
- - User permission to the camera.
40
-
41
- ## Example
42
- ```html
43
- <schmancy-surface type="glass" rounded="all">
44
- <schmancy-qr-scanner
45
- @scan-result=${(e: CustomEvent<{ data: string }>) => {
46
- $notify.success(`Scanned: ${e.detail.data}`)
47
- this.scannedCode = e.detail.data
48
- }}
49
- ></schmancy-qr-scanner>
50
- </schmancy-surface>
51
- ```
@@ -1,95 +0,0 @@
1
- # schmancy-timeline-tile
2
-
3
- > One cell in a procurement-stage timeline rail. Renders an empty / filled / stacked paper-card tile with a 2-letter glyph label, optional tooltip + caption, and a built-in fan-on-hover orchestration for stacked variants.
4
-
5
- ## Usage
6
-
7
- ```html
8
- <!-- Empty cell (placeholder for a missing stage doc) -->
9
- <schmancy-timeline-tile state="empty" glyph="PO"></schmancy-timeline-tile>
10
-
11
- <!-- Single filled cell with tooltip + caption -->
12
- <schmancy-timeline-tile
13
- state="filled"
14
- glyph="IN"
15
- tooltip="INV-2025-0001"
16
- caption="EUR 12,400"
17
- @tile-click=${(e) => openInspect(e.detail)}
18
- ></schmancy-timeline-tile>
19
-
20
- <!-- Stack of N revisions: wrapper carries `data-stack-id` + `--fan-count`,
21
- stack-top sits on top with the ×N badge, siblings reveal on hover.
22
- The wrapper toggles `data-fanned` automatically — no consumer
23
- pointer wiring required. -->
24
- <div
25
- data-stack-id="po-123"
26
- style="position: relative; width: 32px; height: 40px; --fan-count: 3;"
27
- >
28
- <schmancy-timeline-tile state="stack-sibling" glyph="PO" .index=${0}></schmancy-timeline-tile>
29
- <schmancy-timeline-tile state="stack-sibling" glyph="PO" .index=${1}></schmancy-timeline-tile>
30
- <schmancy-timeline-tile
31
- state="stack-top"
32
- glyph="PO"
33
- .index=${2}
34
- .stackCount=${3}
35
- tooltip="PO-2025-0007 · rev 3"
36
- caption="EUR 12,400"
37
- ></schmancy-timeline-tile>
38
- </div>
39
- ```
40
-
41
- ## Properties
42
-
43
- | Property | Type | Default | Description |
44
- |----------|------|---------|-------------|
45
- | `state` | `'empty' \| 'filled' \| 'stack-top' \| 'stack-sibling'` | `'empty'` | Render mode (reflected) |
46
- | `glyph` | `string` | `''` | 2-letter stage label (e.g. `RQ`, `PO`, `OC`, `DN`, `IN`) |
47
- | `stackCount` | `number?` | `undefined` | When `state="stack-top"` and > 1, renders the ×N badge |
48
- | `index` | `number?` | `undefined` | Sibling position in the stack (drives `--i` for fan offset; reflected) |
49
- | `tooltip` | `string?` | `undefined` | Tooltip text shown on hover / focus |
50
- | `caption` | `string?` | `undefined` | Caption rendered below the tile (hidden on `stack-sibling`) |
51
-
52
- ## Events
53
-
54
- | Event | Detail | Description |
55
- |-------|--------|-------------|
56
- | `tile-click` | `{ glyph, state }` | Fires on click for any non-`empty` state. Bubbles + composed. |
57
-
58
- ## Stack fan orchestration
59
-
60
- When `state="stack-top"`, the component subscribes a `pointerover` pipe to its parent element (the stack wrapper). The pipe is hover-intent: `pointerover` events with a target that closest-matches `[data-stack-id]` immediately set `data-fanned` on the wrapper; leaving the wrapper waits 800 ms before clearing the attribute, so the cursor can cross the gap between fanned siblings without collapsing the stack. The attribute lifetime IS the fanned state — sibling tiles read it via the `:host-context([data-fanned])` selector and translate edge-to-edge.
61
-
62
- The consumer's wrapper element MUST carry:
63
- - `data-stack-id="<unique>"` so the pointerover pipe can match the target
64
- - `position: relative` so the absolutely-positioned tiles align to it
65
- - `width` + `height` matching `--schmancy-tile-w` / `--schmancy-tile-h` (default `32px` / `40px`)
66
- - `--fan-count: <N>` so each tile knows the total stack size
67
-
68
- `stack-sibling` tiles set `pointer-events: none` until the wrapper is fanned, then re-enable so the user can click any revision.
69
-
70
- ## Slots
71
-
72
- None. Glyph and caption are props, not slot content — keeps the tile self-contained and addressable from a `repeat()` template.
73
-
74
- ## Accessibility
75
-
76
- - Filled / stack tiles render a native `<button type="button">` with `tabindex="0"` and `role="button"`.
77
- - `aria-label` is composed from `glyph`, `caption`, and `tooltip`.
78
- - Empty tiles set `tabindex="-1"` and `aria-label="<glyph> · empty"`.
79
- - Focus shows a 2px ring in `--schmancy-sys-color-primary-default` with a 3px offset.
80
-
81
- ## Tokens consumed
82
-
83
- | Custom property | Source |
84
- |-----------------|--------|
85
- | `--schmancy-sys-color-outline` | dashed border, paper-card lines, sibling outline |
86
- | `--schmancy-sys-color-surface-containerLowest` | filled-card background, tooltip background |
87
- | `--schmancy-sys-color-surface-on` | tooltip + caption text |
88
- | `--schmancy-sys-color-surface-onVariant` | empty-state glyph |
89
- | `--schmancy-sys-color-primary-default` | hover border, focus ring, top-edge tint, ×N badge background |
90
- | `--schmancy-sys-color-primary-on` | ×N badge text |
91
- | `--schmancy-sys-color-primary-onContainer` | filled-state glyph color |
92
- | `--schmancy-tile-w`, `--schmancy-tile-h` | host width / height (defaults `32px` / `40px`) |
93
- | `--fan-count`, `--i` | wrapper-driven fan layout (consumer or component-set) |
94
-
95
- Theme overrides cascade from any ancestor `<schmancy-theme>` — wrap the timeline in a tinted theme block to recolor the rail without touching the component.
@@ -1,95 +0,0 @@
1
- # schmancy-timeline-tile
2
-
3
- > One cell in a procurement-stage timeline rail. Renders an empty / filled / stacked paper-card tile with a 2-letter glyph label, optional tooltip + caption, and a built-in fan-on-hover orchestration for stacked variants.
4
-
5
- ## Usage
6
-
7
- ```html
8
- <!-- Empty cell (placeholder for a missing stage doc) -->
9
- <schmancy-timeline-tile state="empty" glyph="PO"></schmancy-timeline-tile>
10
-
11
- <!-- Single filled cell with tooltip + caption -->
12
- <schmancy-timeline-tile
13
- state="filled"
14
- glyph="IN"
15
- tooltip="INV-2025-0001"
16
- caption="EUR 12,400"
17
- @tile-click=${(e) => openInspect(e.detail)}
18
- ></schmancy-timeline-tile>
19
-
20
- <!-- Stack of N revisions: wrapper carries `data-stack-id` + `--fan-count`,
21
- stack-top sits on top with the ×N badge, siblings reveal on hover.
22
- The wrapper toggles `data-fanned` automatically — no consumer
23
- pointer wiring required. -->
24
- <div
25
- data-stack-id="po-123"
26
- style="position: relative; width: 32px; height: 40px; --fan-count: 3;"
27
- >
28
- <schmancy-timeline-tile state="stack-sibling" glyph="PO" .index=${0}></schmancy-timeline-tile>
29
- <schmancy-timeline-tile state="stack-sibling" glyph="PO" .index=${1}></schmancy-timeline-tile>
30
- <schmancy-timeline-tile
31
- state="stack-top"
32
- glyph="PO"
33
- .index=${2}
34
- .stackCount=${3}
35
- tooltip="PO-2025-0007 · rev 3"
36
- caption="EUR 12,400"
37
- ></schmancy-timeline-tile>
38
- </div>
39
- ```
40
-
41
- ## Properties
42
-
43
- | Property | Type | Default | Description |
44
- |----------|------|---------|-------------|
45
- | `state` | `'empty' \| 'filled' \| 'stack-top' \| 'stack-sibling'` | `'empty'` | Render mode (reflected) |
46
- | `glyph` | `string` | `''` | 2-letter stage label (e.g. `RQ`, `PO`, `OC`, `DN`, `IN`) |
47
- | `stackCount` | `number?` | `undefined` | When `state="stack-top"` and > 1, renders the ×N badge |
48
- | `index` | `number?` | `undefined` | Sibling position in the stack (drives `--i` for fan offset; reflected) |
49
- | `tooltip` | `string?` | `undefined` | Tooltip text shown on hover / focus |
50
- | `caption` | `string?` | `undefined` | Caption rendered below the tile (hidden on `stack-sibling`) |
51
-
52
- ## Events
53
-
54
- | Event | Detail | Description |
55
- |-------|--------|-------------|
56
- | `tile-click` | `{ glyph, state }` | Fires on click for any non-`empty` state. Bubbles + composed. |
57
-
58
- ## Stack fan orchestration
59
-
60
- When `state="stack-top"`, the component subscribes a `pointerover` pipe to its parent element (the stack wrapper). The pipe is hover-intent: `pointerover` events with a target that closest-matches `[data-stack-id]` immediately set `data-fanned` on the wrapper; leaving the wrapper waits 800 ms before clearing the attribute, so the cursor can cross the gap between fanned siblings without collapsing the stack. The attribute lifetime IS the fanned state — sibling tiles read it via the `:host-context([data-fanned])` selector and translate edge-to-edge.
61
-
62
- The consumer's wrapper element MUST carry:
63
- - `data-stack-id="<unique>"` so the pointerover pipe can match the target
64
- - `position: relative` so the absolutely-positioned tiles align to it
65
- - `width` + `height` matching `--schmancy-tile-w` / `--schmancy-tile-h` (default `32px` / `40px`)
66
- - `--fan-count: <N>` so each tile knows the total stack size
67
-
68
- `stack-sibling` tiles set `pointer-events: none` until the wrapper is fanned, then re-enable so the user can click any revision.
69
-
70
- ## Slots
71
-
72
- None. Glyph and caption are props, not slot content — keeps the tile self-contained and addressable from a `repeat()` template.
73
-
74
- ## Accessibility
75
-
76
- - Filled / stack tiles render a native `<button type="button">` with `tabindex="0"` and `role="button"`.
77
- - `aria-label` is composed from `glyph`, `caption`, and `tooltip`.
78
- - Empty tiles set `tabindex="-1"` and `aria-label="<glyph> · empty"`.
79
- - Focus shows a 2px ring in `--schmancy-sys-color-primary-default` with a 3px offset.
80
-
81
- ## Tokens consumed
82
-
83
- | Custom property | Source |
84
- |-----------------|--------|
85
- | `--schmancy-sys-color-outline` | dashed border, paper-card lines, sibling outline |
86
- | `--schmancy-sys-color-surface-containerLowest` | filled-card background, tooltip background |
87
- | `--schmancy-sys-color-surface-on` | tooltip + caption text |
88
- | `--schmancy-sys-color-surface-onVariant` | empty-state glyph |
89
- | `--schmancy-sys-color-primary-default` | hover border, focus ring, top-edge tint, ×N badge background |
90
- | `--schmancy-sys-color-primary-on` | ×N badge text |
91
- | `--schmancy-sys-color-primary-onContainer` | filled-state glyph color |
92
- | `--schmancy-tile-w`, `--schmancy-tile-h` | host width / height (defaults `32px` / `40px`) |
93
- | `--fan-count`, `--i` | wrapper-driven fan layout (consumer or component-set) |
94
-
95
- Theme overrides cascade from any ancestor `<schmancy-theme>` — wrap the timeline in a tinted theme block to recolor the rail without touching the component.