@mhmo91/schmancy 0.10.36 → 0.10.37

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 (343) hide show
  1. package/custom-elements.json +15 -31
  2. package/dist/SchmancyElement-BHfQg3Tj.cjs +2 -0
  3. package/dist/{SchmancyElement-BBzRWB1w.cjs.map → SchmancyElement-BHfQg3Tj.cjs.map} +1 -1
  4. package/dist/SchmancyElement-CDT2q1lA.js +284 -0
  5. package/dist/{SchmancyElement-C3CpdNsi.js.map → SchmancyElement-CDT2q1lA.js.map} +1 -1
  6. package/dist/agent/schmancy.agent.js +111 -72
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +4 -22
  9. package/dist/{area-BA96mwFY.js → area-KtULlxuA.js} +2 -2
  10. package/dist/{area-BA96mwFY.js.map → area-KtULlxuA.js.map} +1 -1
  11. package/dist/{area-DtyQDdOF.cjs → area-fdKhYB6T.cjs} +1 -1
  12. package/dist/{area-DtyQDdOF.cjs.map → area-fdKhYB6T.cjs.map} +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{audio-B_jT9Xr7.cjs → audio-CUMAv9D_.cjs} +1 -1
  16. package/dist/{audio-B_jT9Xr7.cjs.map → audio-CUMAv9D_.cjs.map} +1 -1
  17. package/dist/{audio-D52h1jAT.js → audio-zIJVTo_V.js} +1 -1
  18. package/dist/{audio-D52h1jAT.js.map → audio-zIJVTo_V.js.map} +1 -1
  19. package/dist/audio.cjs +1 -1
  20. package/dist/audio.js +2 -2
  21. package/dist/{autocomplete-Bts5Jwwr.cjs → autocomplete-DEZk6wBD.cjs} +1 -1
  22. package/dist/{autocomplete-Bts5Jwwr.cjs.map → autocomplete-DEZk6wBD.cjs.map} +1 -1
  23. package/dist/{autocomplete-CI4QJXAN.js → autocomplete-DIScyo8Q.js} +3 -3
  24. package/dist/{autocomplete-CI4QJXAN.js.map → autocomplete-DIScyo8Q.js.map} +1 -1
  25. package/dist/autocomplete.cjs +1 -1
  26. package/dist/autocomplete.js +1 -1
  27. package/dist/avatar.cjs +1 -1
  28. package/dist/avatar.js +3 -3
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/{boat-_N1x5U_3.js → boat-BHPqSqJd.js} +4 -4
  32. package/dist/{boat-_N1x5U_3.js.map → boat-BHPqSqJd.js.map} +1 -1
  33. package/dist/{boat-I4B1UNMc.cjs → boat-OBZ77exO.cjs} +1 -1
  34. package/dist/{boat-I4B1UNMc.cjs.map → boat-OBZ77exO.cjs.map} +1 -1
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/breadcrumb.cjs +1 -1
  38. package/dist/breadcrumb.js +2 -2
  39. package/dist/{busy-BIUonyPk.cjs → busy-BJNsKSCM.cjs} +1 -1
  40. package/dist/{busy-BIUonyPk.cjs.map → busy-BJNsKSCM.cjs.map} +1 -1
  41. package/dist/{busy-CCB3qKnh.js → busy-Dut78y4L.js} +2 -2
  42. package/dist/{busy-CCB3qKnh.js.map → busy-Dut78y4L.js.map} +1 -1
  43. package/dist/busy.cjs +1 -1
  44. package/dist/busy.js +1 -1
  45. package/dist/{button-CkwQH-g3.cjs → button-DzlHLjWO.cjs} +1 -1
  46. package/dist/{button-CkwQH-g3.cjs.map → button-DzlHLjWO.cjs.map} +1 -1
  47. package/dist/{button-C89bPnHt.js → button-kcpPQavY.js} +2 -2
  48. package/dist/{button-C89bPnHt.js.map → button-kcpPQavY.js.map} +1 -1
  49. package/dist/button.cjs +1 -1
  50. package/dist/button.js +3 -3
  51. package/dist/{card-BO93_oxQ.cjs → card-BLxPLqdQ.cjs} +1 -1
  52. package/dist/{card-BO93_oxQ.cjs.map → card-BLxPLqdQ.cjs.map} +1 -1
  53. package/dist/{card-CFsCgJKZ.js → card-DxSKxCid.js} +2 -2
  54. package/dist/{card-CFsCgJKZ.js.map → card-DxSKxCid.js.map} +1 -1
  55. package/dist/card.cjs +1 -1
  56. package/dist/card.js +1 -1
  57. package/dist/{checkbox-Bh7q0djq.js → checkbox-B1wiM3Dv.js} +2 -2
  58. package/dist/{checkbox-Bh7q0djq.js.map → checkbox-B1wiM3Dv.js.map} +1 -1
  59. package/dist/{checkbox-CFUBUFtW.cjs → checkbox-BCLkhp5G.cjs} +1 -1
  60. package/dist/{checkbox-CFUBUFtW.cjs.map → checkbox-BCLkhp5G.cjs.map} +1 -1
  61. package/dist/checkbox.cjs +1 -1
  62. package/dist/checkbox.js +1 -1
  63. package/dist/{chips-BfzpsyV1.cjs → chips-C9dS1WKn.cjs} +1 -1
  64. package/dist/{chips-BfzpsyV1.cjs.map → chips-C9dS1WKn.cjs.map} +1 -1
  65. package/dist/{chips-6YaoRmeG.js → chips-vWmwqQed.js} +4 -4
  66. package/dist/{chips-6YaoRmeG.js.map → chips-vWmwqQed.js.map} +1 -1
  67. package/dist/chips.cjs +1 -1
  68. package/dist/chips.js +2 -2
  69. package/dist/connectivity.cjs +1 -1
  70. package/dist/connectivity.js +3 -3
  71. package/dist/content-drawer.cjs +1 -1
  72. package/dist/content-drawer.js +1 -1
  73. package/dist/{date-range-N-A249O9.cjs → date-range-BV6HuvLw.cjs} +1 -1
  74. package/dist/{date-range-N-A249O9.cjs.map → date-range-BV6HuvLw.cjs.map} +1 -1
  75. package/dist/{date-range-CEo_Kjqw.js → date-range-D3ge1b4c.js} +3 -3
  76. package/dist/{date-range-CEo_Kjqw.js.map → date-range-D3ge1b4c.js.map} +1 -1
  77. package/dist/{date-range-inline-DFopysWF.cjs → date-range-inline-DpYgdLRv.cjs} +1 -1
  78. package/dist/{date-range-inline-DFopysWF.cjs.map → date-range-inline-DpYgdLRv.cjs.map} +1 -1
  79. package/dist/{date-range-inline-BwialV9j.js → date-range-inline-DuWQaWps.js} +2 -2
  80. package/dist/{date-range-inline-BwialV9j.js.map → date-range-inline-DuWQaWps.js.map} +1 -1
  81. package/dist/date-range-inline.cjs +1 -1
  82. package/dist/date-range-inline.js +1 -1
  83. package/dist/date-range.cjs +1 -1
  84. package/dist/date-range.js +1 -1
  85. package/dist/delay.cjs +1 -1
  86. package/dist/delay.js +2 -2
  87. package/dist/{details-GtpfI2hA.js → details-C-GZaq3j.js} +2 -2
  88. package/dist/{details-GtpfI2hA.js.map → details-C-GZaq3j.js.map} +1 -1
  89. package/dist/{details-BLRPV8sY.cjs → details-Dp5rLIWk.cjs} +1 -1
  90. package/dist/{details-BLRPV8sY.cjs.map → details-Dp5rLIWk.cjs.map} +1 -1
  91. package/dist/details.cjs +1 -1
  92. package/dist/details.js +1 -1
  93. package/dist/{directives-CvYGSW_a.cjs → directives-D_l1E5H6.cjs} +2 -2
  94. package/dist/{directives-CvYGSW_a.cjs.map → directives-D_l1E5H6.cjs.map} +1 -1
  95. package/dist/{directives-C2dXgpCY.js → directives-DyS51FUh.js} +27 -18
  96. package/dist/{directives-C2dXgpCY.js.map → directives-DyS51FUh.js.map} +1 -1
  97. package/dist/directives.cjs +1 -1
  98. package/dist/directives.js +2 -2
  99. package/dist/{divider-rNsWCvMi.cjs → divider-CBnAmHMZ.cjs} +1 -1
  100. package/dist/{divider-rNsWCvMi.cjs.map → divider-CBnAmHMZ.cjs.map} +1 -1
  101. package/dist/{divider-D0pGX2VB.js → divider-nQffE0AD.js} +2 -2
  102. package/dist/{divider-D0pGX2VB.js.map → divider-nQffE0AD.js.map} +1 -1
  103. package/dist/divider.cjs +1 -1
  104. package/dist/divider.js +1 -1
  105. package/dist/dropdown.cjs +1 -1
  106. package/dist/dropdown.js +2 -2
  107. package/dist/{expand-FcKAzJta.js → expand-DvTb-UPR.js} +3 -3
  108. package/dist/{expand-FcKAzJta.js.map → expand-DvTb-UPR.js.map} +1 -1
  109. package/dist/{expand-tffQHGbZ.cjs → expand-mlP_3XWz.cjs} +1 -1
  110. package/dist/{expand-tffQHGbZ.cjs.map → expand-mlP_3XWz.cjs.map} +1 -1
  111. package/dist/expand.cjs +1 -1
  112. package/dist/expand.js +1 -1
  113. package/dist/fab.cjs +1 -1
  114. package/dist/fab.js +2 -2
  115. package/dist/{float-CQ1WEp3M.js → float-C-Ko0Le3.js} +2 -2
  116. package/dist/{float-CQ1WEp3M.js.map → float-C-Ko0Le3.js.map} +1 -1
  117. package/dist/{float-CDjgxWyy.cjs → float-C17xgMT1.cjs} +1 -1
  118. package/dist/{float-CDjgxWyy.cjs.map → float-C17xgMT1.cjs.map} +1 -1
  119. package/dist/float.cjs +1 -1
  120. package/dist/float.js +1 -1
  121. package/dist/{form-VYhbbir3.cjs → form-CwPHcQYB.cjs} +1 -1
  122. package/dist/{form-VYhbbir3.cjs.map → form-CwPHcQYB.cjs.map} +1 -1
  123. package/dist/{form-H24puioV.js → form-DA0hUu2h.js} +3 -3
  124. package/dist/{form-H24puioV.js.map → form-DA0hUu2h.js.map} +1 -1
  125. package/dist/form.cjs +1 -1
  126. package/dist/form.js +12 -12
  127. package/dist/handover/agent-runtime-followups.md +1 -1
  128. package/dist/handover/agent-runtime-v1.md +3 -3
  129. package/dist/{icons-DBxfN91B.js → icons-C6UfxmHZ.js} +2 -2
  130. package/dist/{icons-DBxfN91B.js.map → icons-C6UfxmHZ.js.map} +1 -1
  131. package/dist/{icons-B_a1HStW.cjs → icons-CW3-oMSb.cjs} +1 -1
  132. package/dist/{icons-B_a1HStW.cjs.map → icons-CW3-oMSb.cjs.map} +1 -1
  133. package/dist/icons.cjs +1 -1
  134. package/dist/icons.js +1 -1
  135. package/dist/{iframe-BDVElN8z.js → iframe-BTjZfYyh.js} +2 -2
  136. package/dist/{iframe-BDVElN8z.js.map → iframe-BTjZfYyh.js.map} +1 -1
  137. package/dist/{iframe-CG-z9qev.cjs → iframe-wuYT2xFz.cjs} +1 -1
  138. package/dist/{iframe-CG-z9qev.cjs.map → iframe-wuYT2xFz.cjs.map} +1 -1
  139. package/dist/iframe.cjs +1 -1
  140. package/dist/iframe.js +1 -1
  141. package/dist/index.cjs +1 -1
  142. package/dist/index.js +36 -36
  143. package/dist/{input-Bt_o4sYo.js → input-B_4g2ulO.js} +2 -2
  144. package/dist/{input-Bt_o4sYo.js.map → input-B_4g2ulO.js.map} +1 -1
  145. package/dist/{input-B14Nn6xD.cjs → input-BrDiIT60.cjs} +1 -1
  146. package/dist/{input-B14Nn6xD.cjs.map → input-BrDiIT60.cjs.map} +1 -1
  147. package/dist/{input-chip-ugYu9Fn9.cjs → input-chip-B-XWh4aE.cjs} +1 -1
  148. package/dist/{input-chip-ugYu9Fn9.cjs.map → input-chip-B-XWh4aE.cjs.map} +1 -1
  149. package/dist/{input-chip-DEqO0DXc.js → input-chip-BlWhOruv.js} +2 -2
  150. package/dist/{input-chip-DEqO0DXc.js.map → input-chip-BlWhOruv.js.map} +1 -1
  151. package/dist/input.cjs +1 -1
  152. package/dist/input.js +1 -1
  153. package/dist/json.cjs +1 -1
  154. package/dist/json.js +3 -3
  155. package/dist/kbd.cjs +1 -1
  156. package/dist/kbd.js +2 -2
  157. package/dist/{layout-DF9ZaQ-b.cjs → layout-BhyIcEVu.cjs} +1 -1
  158. package/dist/{layout-DF9ZaQ-b.cjs.map → layout-BhyIcEVu.cjs.map} +1 -1
  159. package/dist/{layout-BJ_43VrH.js → layout-Dxit9enO.js} +1 -1
  160. package/dist/{layout-BJ_43VrH.js.map → layout-Dxit9enO.js.map} +1 -1
  161. package/dist/layout.cjs +1 -1
  162. package/dist/layout.js +2 -2
  163. package/dist/{lightbox-B47Zoqv-.cjs → lightbox-CVBogswK.cjs} +1 -1
  164. package/dist/{lightbox-B47Zoqv-.cjs.map → lightbox-CVBogswK.cjs.map} +1 -1
  165. package/dist/{lightbox-ZmuoBBFT.js → lightbox-D85XAAuC.js} +2 -2
  166. package/dist/{lightbox-ZmuoBBFT.js.map → lightbox-D85XAAuC.js.map} +1 -1
  167. package/dist/lightbox.cjs +1 -1
  168. package/dist/lightbox.js +1 -1
  169. package/dist/{list-C47xzld_.js → list-DOF_yVn5.js} +2 -2
  170. package/dist/{list-C47xzld_.js.map → list-DOF_yVn5.js.map} +1 -1
  171. package/dist/{list-CaSWrlG2.cjs → list-nVjLskgx.cjs} +1 -1
  172. package/dist/{list-CaSWrlG2.cjs.map → list-nVjLskgx.cjs.map} +1 -1
  173. package/dist/list.cjs +1 -1
  174. package/dist/list.js +1 -1
  175. package/dist/{menu-Jpsy85SX.cjs → menu-DqmNjLgY.cjs} +1 -1
  176. package/dist/{menu-Jpsy85SX.cjs.map → menu-DqmNjLgY.cjs.map} +1 -1
  177. package/dist/{menu-8RObM6Ie.js → menu-QrAK5Uu9.js} +3 -3
  178. package/dist/{menu-8RObM6Ie.js.map → menu-QrAK5Uu9.js.map} +1 -1
  179. package/dist/menu.cjs +1 -1
  180. package/dist/menu.js +1 -1
  181. package/dist/{mixins-DTzfFVyv.js → mixins-De1zjyhy.js} +1 -1
  182. package/dist/{mixins-DTzfFVyv.js.map → mixins-De1zjyhy.js.map} +1 -1
  183. package/dist/{mixins-DPdzC9ZH.cjs → mixins-DxHpyMHA.cjs} +1 -1
  184. package/dist/{mixins-DPdzC9ZH.cjs.map → mixins-DxHpyMHA.cjs.map} +1 -1
  185. package/dist/mixins.cjs +1 -1
  186. package/dist/mixins.js +2 -2
  187. package/dist/nav-drawer.cjs +1 -1
  188. package/dist/nav-drawer.js +1 -1
  189. package/dist/navigation-bar.cjs +1 -1
  190. package/dist/navigation-bar.js +1 -1
  191. package/dist/navigation-rail.cjs +1 -1
  192. package/dist/navigation-rail.js +2 -2
  193. package/dist/{notification-Ccktcj9H.js → notification-BtAK7NK8.js} +4 -4
  194. package/dist/{notification-Ccktcj9H.js.map → notification-BtAK7NK8.js.map} +1 -1
  195. package/dist/{notification-DSkB-sn0.cjs → notification-DYzbUb5C.cjs} +1 -1
  196. package/dist/{notification-DSkB-sn0.cjs.map → notification-DYzbUb5C.cjs.map} +1 -1
  197. package/dist/notification.cjs +1 -1
  198. package/dist/notification.js +1 -1
  199. package/dist/{option-CkMxwBqU.js → option-DHwA0miA.js} +2 -2
  200. package/dist/{option-CkMxwBqU.js.map → option-DHwA0miA.js.map} +1 -1
  201. package/dist/{option-0aNiVB3Q.cjs → option-DnSPa8ro.cjs} +1 -1
  202. package/dist/{option-0aNiVB3Q.cjs.map → option-DnSPa8ro.cjs.map} +1 -1
  203. package/dist/option.cjs +1 -1
  204. package/dist/option.js +1 -1
  205. package/dist/{overlay-BS-ta-zq.cjs → overlay-BVkqZmoS.cjs} +1 -1
  206. package/dist/{overlay-BS-ta-zq.cjs.map → overlay-BVkqZmoS.cjs.map} +1 -1
  207. package/dist/{overlay-H3Wt_dgQ.js → overlay-Del1sBEB.js} +5 -5
  208. package/dist/{overlay-H3Wt_dgQ.js.map → overlay-Del1sBEB.js.map} +1 -1
  209. package/dist/overlay.cjs +1 -1
  210. package/dist/{overlay.confirm-body-CR9xaqOE.cjs → overlay.confirm-body-BV9umTAl.cjs} +1 -1
  211. package/dist/{overlay.confirm-body-CR9xaqOE.cjs.map → overlay.confirm-body-BV9umTAl.cjs.map} +1 -1
  212. package/dist/{overlay.confirm-body-Dxn_wNm3.js → overlay.confirm-body-DSONXUzl.js} +6 -6
  213. package/dist/{overlay.confirm-body-Dxn_wNm3.js.map → overlay.confirm-body-DSONXUzl.js.map} +1 -1
  214. package/dist/overlay.js +3 -3
  215. package/dist/{overlay.service-C46kOtUi.js → overlay.service-BTp5Oq7f.js} +2 -2
  216. package/dist/{overlay.service-C46kOtUi.js.map → overlay.service-BTp5Oq7f.js.map} +1 -1
  217. package/dist/{overlay.service-DEj3rfRr.cjs → overlay.service-XLlrsSdA.cjs} +1 -1
  218. package/dist/{overlay.service-DEj3rfRr.cjs.map → overlay.service-XLlrsSdA.cjs.map} +1 -1
  219. package/dist/{progress-zs18GR6C.cjs → progress-DUbTL9g9.cjs} +1 -1
  220. package/dist/{progress-zs18GR6C.cjs.map → progress-DUbTL9g9.cjs.map} +1 -1
  221. package/dist/{progress-BK7gSq8j.js → progress-DYA83CFU.js} +2 -2
  222. package/dist/{progress-BK7gSq8j.js.map → progress-DYA83CFU.js.map} +1 -1
  223. package/dist/progress.cjs +1 -1
  224. package/dist/progress.js +1 -1
  225. package/dist/{radio-group-DbYlyPc-.cjs → radio-group-B-ORNtvR.cjs} +1 -1
  226. package/dist/{radio-group-DbYlyPc-.cjs.map → radio-group-B-ORNtvR.cjs.map} +1 -1
  227. package/dist/{radio-group-1HCpzRUB.js → radio-group-DxX0iJBo.js} +2 -2
  228. package/dist/{radio-group-1HCpzRUB.js.map → radio-group-DxX0iJBo.js.map} +1 -1
  229. package/dist/radio-group.cjs +1 -1
  230. package/dist/radio-group.js +1 -1
  231. package/dist/range.cjs +1 -1
  232. package/dist/range.js +2 -2
  233. package/dist/{select-B-SSmUDe.cjs → select-B9uj_u-s.cjs} +1 -1
  234. package/dist/{select-B-SSmUDe.cjs.map → select-B9uj_u-s.cjs.map} +1 -1
  235. package/dist/{select-CEyhNtZ2.js → select-C7gkA-ab.js} +3 -3
  236. package/dist/{select-CEyhNtZ2.js.map → select-C7gkA-ab.js.map} +1 -1
  237. package/dist/select.cjs +1 -1
  238. package/dist/select.js +1 -1
  239. package/dist/skeleton.cjs +1 -1
  240. package/dist/skeleton.js +2 -2
  241. package/dist/skills/SKILL.md +14 -11
  242. package/dist/skills/schmancy/SKILL.md +14 -11
  243. package/dist/skills/schmancy/steps.md +68 -34
  244. package/dist/skills/steps.md +68 -34
  245. package/dist/slider.cjs +1 -1
  246. package/dist/slider.js +2 -2
  247. package/dist/{sound.service-G_8GV_6L.cjs → sound.service-C7FDY_yD.cjs} +1 -1
  248. package/dist/{sound.service-G_8GV_6L.cjs.map → sound.service-C7FDY_yD.cjs.map} +1 -1
  249. package/dist/{sound.service-DO4SmUUT.js → sound.service-O0232os6.js} +1 -1
  250. package/dist/{sound.service-DO4SmUUT.js.map → sound.service-O0232os6.js.map} +1 -1
  251. package/dist/{splash-screen-cbz4bxjB.cjs → splash-screen-DIS4odDr.cjs} +1 -1
  252. package/dist/{splash-screen-cbz4bxjB.cjs.map → splash-screen-DIS4odDr.cjs.map} +1 -1
  253. package/dist/{splash-screen-B1mM4_xz.js → splash-screen-jfE47xl0.js} +2 -2
  254. package/dist/{splash-screen-B1mM4_xz.js.map → splash-screen-jfE47xl0.js.map} +1 -1
  255. package/dist/splash-screen.cjs +1 -1
  256. package/dist/splash-screen.js +1 -1
  257. package/dist/{src-tncsWsTY.js → src-BP3h-9d9.js} +35 -35
  258. package/dist/{src-tncsWsTY.js.map → src-BP3h-9d9.js.map} +1 -1
  259. package/dist/{src-czeiuT1m.cjs → src-Um_pzb-U.cjs} +1 -1
  260. package/dist/{src-czeiuT1m.cjs.map → src-Um_pzb-U.cjs.map} +1 -1
  261. package/dist/{state-Cx0aoL5e.cjs → state-Bj0M9a6T.cjs} +1 -1
  262. package/dist/{state-Cx0aoL5e.cjs.map → state-Bj0M9a6T.cjs.map} +1 -1
  263. package/dist/{state-DJDp3N7J.js → state-DscWQpoM.js} +1 -1
  264. package/dist/{state-DJDp3N7J.js.map → state-DscWQpoM.js.map} +1 -1
  265. package/dist/state.cjs +1 -1
  266. package/dist/state.js +2 -2
  267. package/dist/steps.cjs +35 -19
  268. package/dist/steps.cjs.map +1 -1
  269. package/dist/steps.js +96 -73
  270. package/dist/steps.js.map +1 -1
  271. package/dist/{surface-CYBl8_a3.js → surface-B4Wn4SOO.js} +2 -2
  272. package/dist/{surface-CYBl8_a3.js.map → surface-B4Wn4SOO.js.map} +1 -1
  273. package/dist/{surface-C3cxTcJD.cjs → surface-DRq6cVW6.cjs} +1 -1
  274. package/dist/{surface-C3cxTcJD.cjs.map → surface-DRq6cVW6.cjs.map} +1 -1
  275. package/dist/surface.cjs +1 -1
  276. package/dist/surface.js +1 -1
  277. package/dist/switch.cjs +1 -1
  278. package/dist/switch.js +2 -2
  279. package/dist/table.cjs +1 -1
  280. package/dist/table.js +2 -2
  281. package/dist/{tabs-ORQ_Zd43.cjs → tabs-Ca_fbHPW.cjs} +1 -1
  282. package/dist/{tabs-ORQ_Zd43.cjs.map → tabs-Ca_fbHPW.cjs.map} +1 -1
  283. package/dist/{tabs-DHy93Q3N.js → tabs-CnQPo-XS.js} +2 -2
  284. package/dist/{tabs-DHy93Q3N.js.map → tabs-CnQPo-XS.js.map} +1 -1
  285. package/dist/tabs.cjs +1 -1
  286. package/dist/tabs.js +1 -1
  287. package/dist/teleport.cjs +1 -1
  288. package/dist/teleport.js +1 -1
  289. package/dist/{textarea-DHIMt-ly.js → textarea-BvqENhTW.js} +2 -2
  290. package/dist/{textarea-DHIMt-ly.js.map → textarea-BvqENhTW.js.map} +1 -1
  291. package/dist/{textarea-CEUaDURR.cjs → textarea-qr7oL8oU.cjs} +1 -1
  292. package/dist/{textarea-CEUaDURR.cjs.map → textarea-qr7oL8oU.cjs.map} +1 -1
  293. package/dist/textarea.cjs +1 -1
  294. package/dist/textarea.js +1 -1
  295. package/dist/{theme-CJpjkqHr.cjs → theme-BSwJ2YZo.cjs} +1 -1
  296. package/dist/{theme-CJpjkqHr.cjs.map → theme-BSwJ2YZo.cjs.map} +1 -1
  297. package/dist/{theme-CgI9PRco.js → theme-BV0EzHQ1.js} +5 -5
  298. package/dist/{theme-CgI9PRco.js.map → theme-BV0EzHQ1.js.map} +1 -1
  299. package/dist/{theme-button--FuBkuVr.cjs → theme-button-C6fpUzPM.cjs} +1 -1
  300. package/dist/{theme-button--FuBkuVr.cjs.map → theme-button-C6fpUzPM.cjs.map} +1 -1
  301. package/dist/{theme-button-D-FXb3oO.js → theme-button-O_xNCgI7.js} +2 -2
  302. package/dist/{theme-button-D-FXb3oO.js.map → theme-button-O_xNCgI7.js.map} +1 -1
  303. package/dist/theme-button.cjs +1 -1
  304. package/dist/theme-button.js +1 -1
  305. package/dist/theme.cjs +1 -1
  306. package/dist/theme.js +3 -3
  307. package/dist/{theme.service-BfTK1Wtl.js → theme.service-DwLhhOmP.js} +1 -1
  308. package/dist/{theme.service-BfTK1Wtl.js.map → theme.service-DwLhhOmP.js.map} +1 -1
  309. package/dist/{theme.service-Dg7LO0Qz.cjs → theme.service-kn9MC025.cjs} +1 -1
  310. package/dist/{theme.service-Dg7LO0Qz.cjs.map → theme.service-kn9MC025.cjs.map} +1 -1
  311. package/dist/tree.cjs +1 -1
  312. package/dist/tree.js +2 -2
  313. package/dist/{typography-BEGLfHwz.js → typography-Dtdooaic.js} +2 -2
  314. package/dist/{typography-BEGLfHwz.js.map → typography-Dtdooaic.js.map} +1 -1
  315. package/dist/{typography-CxA3sx9B.cjs → typography-opFYuUYS.cjs} +1 -1
  316. package/dist/{typography-CxA3sx9B.cjs.map → typography-opFYuUYS.cjs.map} +1 -1
  317. package/dist/typography.cjs +1 -1
  318. package/dist/typography.js +1 -1
  319. package/dist/visually-hidden.cjs +1 -1
  320. package/dist/visually-hidden.js +2 -2
  321. package/dist/{window-Vl1u1-EG.cjs → window-BSAemI9J.cjs} +1 -1
  322. package/dist/{window-Vl1u1-EG.cjs.map → window-BSAemI9J.cjs.map} +1 -1
  323. package/dist/{window-B_n4P9az.js → window-ConcHirJ.js} +3 -3
  324. package/dist/{window-B_n4P9az.js.map → window-ConcHirJ.js.map} +1 -1
  325. package/dist/window.cjs +1 -1
  326. package/dist/window.js +1 -1
  327. package/package.json +1 -1
  328. package/skills/schmancy/SKILL.md +14 -11
  329. package/skills/schmancy/steps.md +68 -34
  330. package/src/directives/reveal.ts +192 -118
  331. package/src/steps/index.ts +1 -1
  332. package/src/steps/schmancy-step.ts +91 -65
  333. package/src/steps/{schmancy-steps-container.ts → schmancy-steps.ts} +18 -38
  334. package/src/steps/steps.context.ts +5 -4
  335. package/src/steps/steps.test.ts +120 -0
  336. package/types/src/directives/reveal.d.ts +15 -5
  337. package/types/src/steps/index.d.ts +1 -1
  338. package/types/src/steps/schmancy-step.d.ts +8 -23
  339. package/types/src/steps/{schmancy-steps-container.d.ts → schmancy-steps.d.ts} +8 -9
  340. package/types/src/steps/steps.context.d.ts +2 -1
  341. package/types/src/steps/steps.test.d.ts +2 -0
  342. package/dist/SchmancyElement-BBzRWB1w.cjs +0 -2
  343. package/dist/SchmancyElement-C3CpdNsi.js +0 -284
@@ -1,53 +1,87 @@
1
- # schmancy-steps-container / schmancy-step
1
+ # schmancy-steps / schmancy-step
2
2
 
3
- > Vertical stepper with collapsible steps, completion state, and navigation.
3
+ > Vertical stepper with orientation rail and optional collapsible content. Dual render mode decided per step by content presence.
4
4
 
5
5
  ## Usage
6
+
6
7
  ```html
7
- <schmancy-steps-container currentStep="1" @change=${(e) => handleStep(e.detail.value)}>
8
- <schmancy-step position="1" title="Account" description="Create your account">
8
+ <!-- Rail mode (no slotted content) dot + connector + label -->
9
+ <schmancy-steps
10
+ class="flex flex-col"
11
+ .value=${activeStep}
12
+ @change=${(e) => handleStep(e.detail.value)}
13
+ >
14
+ <schmancy-step position="1" label="Organisation"></schmancy-step>
15
+ <schmancy-step position="2" label="Legal entity"></schmancy-step>
16
+ <schmancy-step position="3" label="Location"></schmancy-step>
17
+ <schmancy-step position="4" label="Done"></schmancy-step>
18
+ </schmancy-steps>
19
+
20
+ <!-- Content mode (slotted content) — collapsible card, active step expands -->
21
+ <schmancy-steps .value=${activeStep} @change=${(e) => handleStep(e.detail.value)}>
22
+ <schmancy-step position="1" label="Account" description="Create your account">
9
23
  <schmancy-input label="Email" required></schmancy-input>
10
24
  </schmancy-step>
11
- <schmancy-step position="2" title="Profile" description="Set up profile">
25
+ <schmancy-step position="2" label="Profile" description="Set up profile">
12
26
  <schmancy-input label="Name" required></schmancy-input>
13
27
  </schmancy-step>
14
- </schmancy-steps-container>
28
+ </schmancy-steps>
15
29
  ```
16
30
 
17
- ## Properties (schmancy-steps-container)
18
- | Property | Type | Default | Description |
19
- |----------|------|---------|-------------|
20
- | currentStep | number | `1` | Currently active step (1-based) |
21
- | gap | number | `4` | Gap between steps (Tailwind scale) |
31
+ ## Properties schmancy-steps
22
32
 
23
- ## Properties (schmancy-step)
24
33
  | Property | Type | Default | Description |
25
- |----------|------|---------|-------------|
26
- | position | number | `1` | Step position (1-based) |
27
- | title | string | `''` | Step title |
28
- | description | string | `''` | Step description |
29
- | completed | boolean | `false` | Explicitly mark as complete |
30
- | lockBack | boolean | `false` | Prevent navigating to previous steps |
31
-
32
- ## Events (schmancy-steps-container)
34
+ |---|---|---|---|
35
+ | `value` | `number` | `1` | Active step (1-based). Reflected attribute. |
36
+ | `lockBack` | `boolean` | `false` | Block back-navigation for the whole stepper. |
37
+
38
+ Layout (spacing, orientation, width) is set by Tailwind classes on the host element; the primitive owns no layout props.
39
+
40
+ ## Events — schmancy-steps
41
+
33
42
  | Event | Detail | Description |
34
- |-------|--------|-------------|
35
- | change | `{ value: number }` | When current step changes |
43
+ |---|---|---|
44
+ | `change` | `{ value: number }` | Active step changed (property set or step click). |
45
+
46
+ ```ts
47
+ export type SchmancyStepsChangeEvent = CustomEvent<{ value: number }>
48
+ ```
49
+
50
+ ## Properties — schmancy-step
51
+
52
+ | Property | Type | Default | Description |
53
+ |---|---|---|---|
54
+ | `position` | `number` | `1` | This step's 1-based index. Unique within the container. |
55
+ | `label` | `string` | `''` | Step label. |
56
+ | `description` | `string` | `''` | Secondary line (content mode only). |
57
+ | `completed` | `boolean` | `false` | Force complete status regardless of order. |
58
+
59
+ ## Dual render mode
60
+
61
+ A `<schmancy-step>` detects its own content via `slotchange`:
62
+
63
+ - **With slotted content** — renders an interactive card row (icon circle, check/dot, label + description, `bg-primary-container/20` active card). The active step expands with `flex: 1 1 auto`; inactive steps collapse.
64
+ - **Without slotted content** — renders a minimal orientation rail row (dot + connector + label). Use this for a left-panel navigation rail.
65
+
66
+ ## Step status
67
+
68
+ | Condition | Status |
69
+ |---|---|
70
+ | `position < value` or `completed` | `complete` |
71
+ | `position === value` | `current` |
72
+ | `position > value` | `upcoming` |
73
+
74
+ Clicking a `complete` or `current` step sets `value` and emits `change`. `upcoming` steps are inert. Back-navigation is blocked when the container has `lockBack`.
36
75
 
37
76
  ## Examples
77
+
38
78
  ```html
39
- <!-- With locked steps -->
40
- <schmancy-steps-container currentStep="2">
41
- <schmancy-step position="1" title="Step 1" completed lockBack>
42
- <!-- Already completed, cannot go back -->
43
- </schmancy-step>
44
- <schmancy-step position="2" title="Step 2">
79
+ <!-- Lock back-navigation after the first step -->
80
+ <schmancy-steps .value=${step} lockBack @change=${onStep}>
81
+ <schmancy-step position="1" label="Review" completed></schmancy-step>
82
+ <schmancy-step position="2" label="Confirm">
45
83
  <p>Current step content</p>
46
84
  </schmancy-step>
47
- <schmancy-step position="3" title="Step 3">
48
- <!-- Not yet reachable -->
49
- </schmancy-step>
50
- </schmancy-steps-container>
85
+ <schmancy-step position="3" label="Done"></schmancy-step>
86
+ </schmancy-steps>
51
87
  ```
52
-
53
- Only the active step renders its slotted content. Completed steps show a checkmark. Active step expands with `flex: 1`.
@@ -4,6 +4,9 @@
4
4
  * Uses Blackbird spring physics for natural, organic motion.
5
5
  * Element stays in DOM to prevent layout shift.
6
6
  *
7
+ * When fully revealed, no directive-imposed max-height or overflow:hidden
8
+ * is left on the element — it lays out at its natural full height.
9
+ *
7
10
  * Usage:
8
11
  * ```ts
9
12
  * // Basic - uses 'smooth' preset
@@ -12,7 +15,7 @@
12
15
  * // With preset - 'snappy' for quick interactions
13
16
  * html`<div ${reveal(this.isVisible, { preset: 'snappy' })}>Content</div>`
14
17
  *
15
- * // With custom max height
18
+ * // Opt-in scroll cap (explicit maxHeight — keeps overflow:auto, does NOT clip)
16
19
  * html`<div ${reveal(this.items.length > 1, { maxHeight: '200px' })}>Content</div>`
17
20
  *
18
21
  * // Bouncy for playful UI
@@ -28,131 +31,202 @@
28
31
  * @see packages/schmancy/src/utils/animation.ts for Blackbird system
29
32
  */
30
33
 
31
- import { noChange } from 'lit'
32
- import { AsyncDirective, directive } from 'lit/async-directive.js'
33
- import type { ElementPart, PartInfo } from 'lit/directive.js'
34
- import { PartType } from 'lit/directive.js'
34
+ import { noChange } from 'lit';
35
+ import { AsyncDirective, directive } from 'lit/async-directive.js';
36
+ import { type ElementPart, type PartInfo, PartType } from 'lit/directive.js';
37
+ import { fromEvent, Subject } from 'rxjs';
38
+ import { filter, take, takeUntil } from 'rxjs/operators';
35
39
  import {
36
- SPRING_SMOOTH,
37
- SPRING_SNAPPY,
38
- SPRING_BOUNCY,
39
- SPRING_GENTLE,
40
- getEasing,
41
- type AnimationPreset,
42
- } from '../utils/animation'
43
- import { reducedMotion$ } from './reduced-motion'
40
+ type AnimationPreset,
41
+ getEasing,
42
+ SPRING_BOUNCY,
43
+ SPRING_GENTLE,
44
+ SPRING_SMOOTH,
45
+ SPRING_SNAPPY,
46
+ } from '../utils/animation';
47
+ import { reducedMotion$ } from './reduced-motion';
44
48
 
45
- export type RevealPreset = 'smooth' | 'snappy' | 'bouncy' | 'gentle'
49
+ export type RevealPreset = 'smooth' | 'snappy' | 'bouncy' | 'gentle';
46
50
 
47
51
  export interface RevealOptions {
48
- /** Animation preset (default: 'smooth') */
49
- preset?: RevealPreset
50
- /** Max height when revealed (default: '10rem') */
51
- maxHeight?: string
52
- /** Custom duration override in ms (uses preset duration if not specified) */
53
- duration?: number
54
- /** Custom easing override (uses preset easing if not specified) */
55
- easing?: string
52
+ /** Animation preset (default: 'smooth') */
53
+ preset?: RevealPreset;
54
+ /**
55
+ * Explicit scroll cap (opt-in). When set the element is constrained to
56
+ * this height with overflow:auto content scrolls rather than clips.
57
+ * When omitted (the default) the element is fully unconstrained after
58
+ * opening: no max-height, no overflow:hidden left on it.
59
+ */
60
+ maxHeight?: string;
61
+ /** Custom duration override in ms (uses preset duration if not specified) */
62
+ duration?: number;
63
+ /** Custom easing override (uses preset easing if not specified) */
64
+ easing?: string;
56
65
  }
57
66
 
58
67
  const PRESETS: Record<RevealPreset, AnimationPreset> = {
59
- smooth: SPRING_SMOOTH,
60
- snappy: SPRING_SNAPPY,
61
- bouncy: SPRING_BOUNCY,
62
- gentle: SPRING_GENTLE,
63
- }
68
+ smooth: SPRING_SMOOTH,
69
+ snappy: SPRING_SNAPPY,
70
+ bouncy: SPRING_BOUNCY,
71
+ gentle: SPRING_GENTLE,
72
+ };
64
73
 
65
74
  class RevealDirective extends AsyncDirective {
66
- private initialized = false
67
- private element: HTMLElement | null = null
68
-
69
- constructor(partInfo: PartInfo) {
70
- super(partInfo)
71
- if (partInfo.type !== PartType.ELEMENT) {
72
- throw new Error('reveal() can only be used on elements')
73
- }
74
- }
75
-
76
- render(_show?: boolean, _options?: RevealOptions) {
77
- return noChange
78
- }
79
-
80
- override update(part: ElementPart, [show = false, options = {}]: [boolean | undefined, RevealOptions?]) {
81
- const element = part.element as HTMLElement
82
- this.element = element
83
-
84
- const { preset = 'smooth', maxHeight = '10rem', duration, easing } = options
85
-
86
- // Get the preset configuration
87
- const presetConfig = PRESETS[preset]
88
-
89
- // Determine actual duration and easing
90
- const actualDuration = duration ?? presetConfig.duration
91
- const actualEasing = easing ?? getEasing(presetConfig)
92
-
93
- const reducedMotion = reducedMotion$.value
94
-
95
- // Set up transitions on first run or when preset changes
96
- if (!this.initialized) {
97
- this.setupElement(element, actualDuration, actualEasing, reducedMotion)
98
- this.initialized = true
99
- }
100
-
101
- // Apply show/hide styles with spring physics
102
- if (show) {
103
- element.style.maxHeight = maxHeight
104
- element.style.opacity = '1'
105
- element.style.transform = 'translateY(0) scale(1)'
106
- element.style.pointerEvents = ''
107
- element.style.paddingTop = ''
108
- element.style.paddingBottom = ''
109
- element.style.marginTop = ''
110
- element.style.marginBottom = ''
111
- element.removeAttribute('aria-hidden')
112
- element.removeAttribute('inert')
113
- } else {
114
- element.style.maxHeight = '0'
115
- element.style.opacity = '0'
116
- element.style.transform = 'translateY(-8px) scale(0.98)'
117
- element.style.pointerEvents = 'none'
118
- element.style.paddingTop = '0'
119
- element.style.paddingBottom = '0'
120
- element.style.marginTop = '0'
121
- element.style.marginBottom = '0'
122
- element.setAttribute('aria-hidden', 'true')
123
- element.setAttribute('inert', '')
124
- }
125
-
126
- return noChange
127
- }
128
-
129
- private setupElement(element: HTMLElement, duration: number, easing: string, reducedMotion: boolean): void {
130
- element.style.overflow = 'hidden'
131
-
132
- if (reducedMotion) {
133
- // Instant transitions for reduced motion
134
- element.style.transition = 'none'
135
- } else {
136
- // Spring physics transitions — include padding/margin so hidden elements take zero space
137
- element.style.transition = [
138
- `max-height ${duration}ms ${easing}`,
139
- `opacity ${duration}ms ${easing}`,
140
- `transform ${duration}ms ${easing}`,
141
- `padding ${duration}ms ${easing}`,
142
- `margin ${duration}ms ${easing}`,
143
- ].join(', ')
144
- }
145
- }
146
-
147
- override disconnected(): void {
148
- if (this.element) {
149
- this.element.style.willChange = ''
150
- }
151
- }
152
-
153
- override reconnected(): void {
154
- // State preserved in inline styles — no action needed
155
- }
75
+ private initialized = false;
76
+ /** Fires on disconnect to tear down the transitionend subscription. */
77
+ private teardown$ = new Subject<void>();
78
+ /** True if this is the very first update call — used to detect always-true initial mount. */
79
+ private firstUpdate = true;
80
+
81
+ constructor(partInfo: PartInfo) {
82
+ super(partInfo);
83
+ if (partInfo.type !== PartType.ELEMENT) {
84
+ throw new Error('reveal() can only be used on elements');
85
+ }
86
+ }
87
+
88
+ render(_show?: boolean, _options?: RevealOptions) {
89
+ return noChange;
90
+ }
91
+
92
+ override update(
93
+ part: ElementPart,
94
+ [show = false, options = {}]: [boolean | undefined, RevealOptions?],
95
+ ) {
96
+ const element = part.element as HTMLElement;
97
+
98
+ const { preset = 'smooth', maxHeight, duration, easing } = options;
99
+ const explicitCap = maxHeight !== undefined;
100
+
101
+ const presetConfig = PRESETS[preset];
102
+ const actualDuration = duration ?? presetConfig.duration;
103
+ const actualEasing = easing ?? getEasing(presetConfig);
104
+ const reducedMotion = reducedMotion$.value;
105
+
106
+ const isFirstUpdate = this.firstUpdate;
107
+ this.firstUpdate = false;
108
+
109
+ if (!this.initialized) {
110
+ this.initialized = true;
111
+
112
+ if (reducedMotion) {
113
+ element.style.transition = 'none';
114
+ } else {
115
+ element.style.transition = [
116
+ `max-height ${actualDuration}ms ${actualEasing}`,
117
+ `opacity ${actualDuration}ms ${actualEasing}`,
118
+ `transform ${actualDuration}ms ${actualEasing}`,
119
+ `padding ${actualDuration}ms ${actualEasing}`,
120
+ `margin ${actualDuration}ms ${actualEasing}`,
121
+ ].join(', ');
122
+ }
123
+ }
124
+
125
+ if (show) {
126
+ if (isFirstUpdate) {
127
+ // Always-true initial mount: do not impose max-height animation.
128
+ // Apply opacity/transform entrance only (visible immediately for
129
+ // reduced-motion; fades in via the transition for normal motion).
130
+ if (explicitCap) {
131
+ element.style.maxHeight = maxHeight;
132
+ element.style.overflow = 'auto';
133
+ } else {
134
+ element.style.maxHeight = '';
135
+ element.style.overflow = '';
136
+ }
137
+ element.style.opacity = '1';
138
+ element.style.transform = 'translateY(0) scale(1)';
139
+ } else {
140
+ // Toggle case: false→true. Animate from 0 to natural height,
141
+ // then release the clamp so content is fully unconstrained.
142
+ if (reducedMotion) {
143
+ if (explicitCap) {
144
+ element.style.maxHeight = maxHeight;
145
+ element.style.overflow = 'auto';
146
+ } else {
147
+ element.style.maxHeight = '';
148
+ element.style.overflow = '';
149
+ }
150
+ element.style.opacity = '1';
151
+ element.style.transform = 'translateY(0) scale(1)';
152
+ } else {
153
+ // Force a concrete start value so CSS can animate from it.
154
+ element.style.overflow = 'hidden';
155
+ element.style.maxHeight = '0';
156
+ void element.offsetHeight; // force reflow
157
+
158
+ const targetHeight = explicitCap ? maxHeight : `${element.scrollHeight}px`;
159
+ element.style.maxHeight = targetHeight;
160
+ element.style.opacity = '1';
161
+ element.style.transform = 'translateY(0) scale(1)';
162
+
163
+ if (!explicitCap) {
164
+ // Once the open animation settles, release the clamp entirely.
165
+ fromEvent<TransitionEvent>(element, 'transitionend')
166
+ .pipe(
167
+ filter((e) => e.propertyName === 'max-height' && e.target === element),
168
+ take(1),
169
+ takeUntil(this.teardown$),
170
+ )
171
+ .subscribe(() => {
172
+ element.style.maxHeight = '';
173
+ element.style.overflow = '';
174
+ });
175
+ } else {
176
+ fromEvent<TransitionEvent>(element, 'transitionend')
177
+ .pipe(
178
+ filter((e) => e.propertyName === 'max-height' && e.target === element),
179
+ take(1),
180
+ takeUntil(this.teardown$),
181
+ )
182
+ .subscribe(() => {
183
+ element.style.overflow = 'auto';
184
+ });
185
+ }
186
+ }
187
+ }
188
+
189
+ element.style.pointerEvents = '';
190
+ element.style.paddingTop = '';
191
+ element.style.paddingBottom = '';
192
+ element.style.marginTop = '';
193
+ element.style.marginBottom = '';
194
+ element.removeAttribute('aria-hidden');
195
+ element.removeAttribute('inert');
196
+ } else {
197
+ // Collapse: animate to height 0. Re-measure from natural height if
198
+ // the clamp was previously released (max-height is '' or 'none').
199
+ if (element.style.maxHeight === '' || element.style.maxHeight === 'none') {
200
+ element.style.overflow = 'hidden';
201
+ element.style.maxHeight = `${element.scrollHeight}px`;
202
+ void element.offsetHeight; // force reflow so CSS sees the start value
203
+ } else {
204
+ element.style.overflow = 'hidden';
205
+ }
206
+
207
+ element.style.maxHeight = '0';
208
+ element.style.opacity = '0';
209
+ element.style.transform = 'translateY(-8px) scale(0.98)';
210
+ element.style.pointerEvents = 'none';
211
+ element.style.paddingTop = '0';
212
+ element.style.paddingBottom = '0';
213
+ element.style.marginTop = '0';
214
+ element.style.marginBottom = '0';
215
+ element.setAttribute('aria-hidden', 'true');
216
+ element.setAttribute('inert', '');
217
+ }
218
+
219
+ return noChange;
220
+ }
221
+
222
+ override disconnected(): void {
223
+ this.teardown$.next();
224
+ }
225
+
226
+ override reconnected(): void {
227
+ // Re-subscribe is handled on the next update() call via the new subscription
228
+ // created in the show branch. Nothing to wire up here explicitly.
229
+ }
156
230
  }
157
231
 
158
- export const reveal = directive(RevealDirective)
232
+ export const reveal = directive(RevealDirective);
@@ -1,3 +1,3 @@
1
1
  export * from './schmancy-step';
2
- export * from './schmancy-steps-container';
2
+ export * from './schmancy-steps';
3
3
  export * from './steps.context';