@mhmo91/schmancy 0.9.11 → 0.9.13

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 (395) hide show
  1. package/README.md +34 -0
  2. package/custom-elements.json +42 -0
  3. package/dist/agent/flow-CaPi2G8y.js +386 -0
  4. package/dist/agent/flow-CaPi2G8y.js.map +1 -0
  5. package/dist/agent/rolldown-runtime-DsMetpgY.js +11 -0
  6. package/dist/agent/schmancy.agent.js +36368 -0
  7. package/dist/agent/schmancy.agent.js.map +1 -0
  8. package/dist/agent/schmancy.manifest.json +6879 -0
  9. package/dist/agent/vendor-highlight-CHJZQQB7.js +2178 -0
  10. package/dist/agent/vendor-highlight-CHJZQQB7.js.map +1 -0
  11. package/dist/agent/vendor-jsqr-r7GNh4P3.js +10212 -0
  12. package/dist/agent/vendor-jsqr-r7GNh4P3.js.map +1 -0
  13. package/dist/agent/vendor-material-color-Be96dpGE.js +3309 -0
  14. package/dist/agent/vendor-material-color-Be96dpGE.js.map +1 -0
  15. package/dist/{area-BafkBc1f.cjs → area-CApZWjqs.cjs} +1 -1
  16. package/dist/area-CApZWjqs.cjs.map +1 -0
  17. package/dist/{area-D03HRn1L.js → area-D_p1YBgP.js} +1 -1
  18. package/dist/area-D_p1YBgP.js.map +1 -0
  19. package/dist/area.cjs +1 -1
  20. package/dist/area.js +1 -1
  21. package/dist/audio-C7TzWI8M.js.map +1 -1
  22. package/dist/audio-DUVz7Ars.cjs.map +1 -1
  23. package/dist/{autocomplete-BotVnTfP.js → autocomplete-DAK35swc.js} +2 -2
  24. package/dist/{autocomplete-BotVnTfP.js.map → autocomplete-DAK35swc.js.map} +1 -1
  25. package/dist/{autocomplete-BeLg4A3T.cjs → autocomplete-DlCqS1gW.cjs} +1 -1
  26. package/dist/{autocomplete-BeLg4A3T.cjs.map → autocomplete-DlCqS1gW.cjs.map} +1 -1
  27. package/dist/autocomplete.cjs +1 -1
  28. package/dist/autocomplete.js +1 -1
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/{boat-4hSLFsGy.cjs → boat-C57YTPbb.cjs} +1 -1
  32. package/dist/{boat-4hSLFsGy.cjs.map → boat-C57YTPbb.cjs.map} +1 -1
  33. package/dist/{boat-C1wGdoaF.js → boat-Dms45k4o.js} +1 -1
  34. package/dist/{boat-C1wGdoaF.js.map → boat-Dms45k4o.js.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 +1 -1
  39. package/dist/{busy-C0qP0TiL.cjs → busy-BfN1p1n8.cjs} +1 -1
  40. package/dist/{busy-C0qP0TiL.cjs.map → busy-BfN1p1n8.cjs.map} +1 -1
  41. package/dist/{busy-D74-XaFn.js → busy-IKS9obYj.js} +1 -1
  42. package/dist/{busy-D74-XaFn.js.map → busy-IKS9obYj.js.map} +1 -1
  43. package/dist/busy.cjs +1 -1
  44. package/dist/busy.js +1 -1
  45. package/dist/button.cjs +1 -1
  46. package/dist/button.cjs.map +1 -1
  47. package/dist/button.js +3 -3
  48. package/dist/button.js.map +1 -1
  49. package/dist/{card-DiNYPJ9b.js → card-DQNBal9V.js} +1 -1
  50. package/dist/{card-DiNYPJ9b.js.map → card-DQNBal9V.js.map} +1 -1
  51. package/dist/{card-Bht1QcYl.cjs → card-ZObyqkFF.cjs} +1 -1
  52. package/dist/{card-Bht1QcYl.cjs.map → card-ZObyqkFF.cjs.map} +1 -1
  53. package/dist/card.cjs +1 -1
  54. package/dist/card.js +1 -1
  55. package/dist/charts.cjs +1 -1
  56. package/dist/charts.js +1 -1
  57. package/dist/{checkbox-dRBf89qt.js → checkbox-COhTJ1x5.js} +1 -1
  58. package/dist/{checkbox-dRBf89qt.js.map → checkbox-COhTJ1x5.js.map} +1 -1
  59. package/dist/{checkbox-CRzu7URt.cjs → checkbox-CiAtIrqB.cjs} +1 -1
  60. package/dist/{checkbox-CRzu7URt.cjs.map → checkbox-CiAtIrqB.cjs.map} +1 -1
  61. package/dist/checkbox.cjs +1 -1
  62. package/dist/checkbox.js +1 -1
  63. package/dist/{chips-Bma_B3J-.js → chips-B5o3vNQF.js} +3 -3
  64. package/dist/{chips-Bma_B3J-.js.map → chips-B5o3vNQF.js.map} +1 -1
  65. package/dist/{chips-CXknD-vY.cjs → chips-D2xmsC36.cjs} +1 -1
  66. package/dist/{chips-CXknD-vY.cjs.map → chips-D2xmsC36.cjs.map} +1 -1
  67. package/dist/chips.cjs +1 -1
  68. package/dist/chips.js +2 -2
  69. package/dist/{code-highlight-BROOsNA_.cjs → code-highlight-BToHh8T6.cjs} +1 -1
  70. package/dist/{code-highlight-BROOsNA_.cjs.map → code-highlight-BToHh8T6.cjs.map} +1 -1
  71. package/dist/{code-highlight-DjiyaDcX.js → code-highlight-SkMMTkIJ.js} +1 -1
  72. package/dist/{code-highlight-DjiyaDcX.js.map → code-highlight-SkMMTkIJ.js.map} +1 -1
  73. package/dist/code-highlight.cjs +1 -1
  74. package/dist/code-highlight.js +1 -1
  75. package/dist/{components-ubXwQbGs.cjs → components-B-XYvUWn.cjs} +1 -1
  76. package/dist/{components-ubXwQbGs.cjs.map → components-B-XYvUWn.cjs.map} +1 -1
  77. package/dist/{components-DKgu88mm.js → components-Ca7OTgbQ.js} +1 -1
  78. package/dist/{components-DKgu88mm.js.map → components-Ca7OTgbQ.js.map} +1 -1
  79. package/dist/components.cjs +1 -1
  80. package/dist/components.js +1 -1
  81. package/dist/connectivity.cjs +1 -1
  82. package/dist/connectivity.js +1 -1
  83. package/dist/content-drawer.cjs +1 -1
  84. package/dist/content-drawer.js +1 -1
  85. package/dist/context-C6GwmNJJ.cjs +1 -0
  86. package/dist/{context-B81Q3U_1.cjs.map → context-C6GwmNJJ.cjs.map} +1 -1
  87. package/dist/context-oBTPHrbc.js +3 -0
  88. package/dist/{context-Dnj4ofbV.js.map → context-oBTPHrbc.js.map} +1 -1
  89. package/dist/cursor-glow-82y5h3E4.cjs.map +1 -1
  90. package/dist/{date-range-n_xPONd5.cjs → date-range-BTA9nKbw.cjs} +1 -1
  91. package/dist/{date-range-n_xPONd5.cjs.map → date-range-BTA9nKbw.cjs.map} +1 -1
  92. package/dist/{date-range-CwqFuGGK.js → date-range-DUWpF0Qw.js} +2 -2
  93. package/dist/{date-range-CwqFuGGK.js.map → date-range-DUWpF0Qw.js.map} +1 -1
  94. package/dist/date-range.cjs +1 -1
  95. package/dist/date-range.js +1 -1
  96. package/dist/{delay-BFpu_Yz9.cjs → delay-Co89XWry.cjs} +1 -1
  97. package/dist/{delay-BFpu_Yz9.cjs.map → delay-Co89XWry.cjs.map} +1 -1
  98. package/dist/{delay-Bkd3SOTy.js → delay-CtDrlf1Q.js} +3 -3
  99. package/dist/{delay-Bkd3SOTy.js.map → delay-CtDrlf1Q.js.map} +1 -1
  100. package/dist/delay.cjs +1 -1
  101. package/dist/delay.js +1 -1
  102. package/dist/{details-DZq61CD5.js → details-B1Ax7WiP.js} +1 -1
  103. package/dist/{details-DZq61CD5.js.map → details-B1Ax7WiP.js.map} +1 -1
  104. package/dist/{details-Bal2g3J4.cjs → details-CyXyVdb2.cjs} +1 -1
  105. package/dist/{details-Bal2g3J4.cjs.map → details-CyXyVdb2.cjs.map} +1 -1
  106. package/dist/details.cjs +1 -1
  107. package/dist/details.js +1 -1
  108. package/dist/dialog-service-CCFGpU7a.js.map +1 -1
  109. package/dist/dialog-service-DXLGSshF.cjs.map +1 -1
  110. package/dist/dialog.cjs +1 -1
  111. package/dist/dialog.cjs.map +1 -1
  112. package/dist/dialog.js +1 -1
  113. package/dist/directives.cjs.map +1 -1
  114. package/dist/directives.js.map +1 -1
  115. package/dist/{divider-ChK7lCQF.js → divider-DuwCrKQu.js} +1 -1
  116. package/dist/{divider-ChK7lCQF.js.map → divider-DuwCrKQu.js.map} +1 -1
  117. package/dist/{divider-RjZbewe8.cjs → divider-xcvHqVBc.cjs} +1 -1
  118. package/dist/{divider-RjZbewe8.cjs.map → divider-xcvHqVBc.cjs.map} +1 -1
  119. package/dist/divider.cjs +1 -1
  120. package/dist/divider.js +1 -1
  121. package/dist/dropdown.cjs +1 -1
  122. package/dist/dropdown.js +2 -2
  123. package/dist/{expand-DwZKr9hD.cjs → expand-DUgOh1af.cjs} +1 -1
  124. package/dist/{expand-DwZKr9hD.cjs.map → expand-DUgOh1af.cjs.map} +1 -1
  125. package/dist/{expand-CUrWPZu-.js → expand-X0C1W279.js} +2 -2
  126. package/dist/{expand-CUrWPZu-.js.map → expand-X0C1W279.js.map} +1 -1
  127. package/dist/expand.cjs +1 -1
  128. package/dist/expand.js +1 -1
  129. package/dist/{extra-C7xp1GQG.js → extra-BTyq-5Z6.js} +1 -1
  130. package/dist/{extra-C7xp1GQG.js.map → extra-BTyq-5Z6.js.map} +1 -1
  131. package/dist/{extra-BE9p8l3U.cjs → extra-BqfYIC_q.cjs} +1 -1
  132. package/dist/{extra-BE9p8l3U.cjs.map → extra-BqfYIC_q.cjs.map} +1 -1
  133. package/dist/extra.cjs +1 -1
  134. package/dist/extra.js +1 -1
  135. package/dist/{float-kRCgEf_1.js → float-BgGeLER6.js} +1 -1
  136. package/dist/{float-kRCgEf_1.js.map → float-BgGeLER6.js.map} +1 -1
  137. package/dist/{float-DoHSvH7R.cjs → float-yZoLnUg0.cjs} +1 -1
  138. package/dist/{float-DoHSvH7R.cjs.map → float-yZoLnUg0.cjs.map} +1 -1
  139. package/dist/float.cjs +1 -1
  140. package/dist/float.js +1 -1
  141. package/dist/{icons-D93IZn6-.js → icons-BDcb8dNb.js} +2 -2
  142. package/dist/{icons-D93IZn6-.js.map → icons-BDcb8dNb.js.map} +1 -1
  143. package/dist/{icons-Bz84Dr-q.cjs → icons-BLFEJFDG.cjs} +1 -1
  144. package/dist/{icons-Bz84Dr-q.cjs.map → icons-BLFEJFDG.cjs.map} +1 -1
  145. package/dist/icons.cjs +1 -1
  146. package/dist/icons.js +1 -1
  147. package/dist/{iframe-Cmanzy9x.cjs → iframe-CrDpQkhj.cjs} +1 -1
  148. package/dist/{iframe-Cmanzy9x.cjs.map → iframe-CrDpQkhj.cjs.map} +1 -1
  149. package/dist/{iframe-DyOg96rn.js → iframe-qCW0HzwB.js} +1 -1
  150. package/dist/{iframe-DyOg96rn.js.map → iframe-qCW0HzwB.js.map} +1 -1
  151. package/dist/iframe.cjs +1 -1
  152. package/dist/iframe.js +1 -1
  153. package/dist/index.cjs +1 -1
  154. package/dist/index.js +32 -32
  155. package/dist/{input-DIuyi3Gm.cjs → input-C1MIZaKq.cjs} +1 -1
  156. package/dist/{input-DIuyi3Gm.cjs.map → input-C1MIZaKq.cjs.map} +1 -1
  157. package/dist/{input-HzweUBSn.js → input-Dv-HtkM9.js} +1 -1
  158. package/dist/{input-HzweUBSn.js.map → input-Dv-HtkM9.js.map} +1 -1
  159. package/dist/{input-chip-B4uw64rQ.js → input-chip-CyvjhQSw.js} +1 -1
  160. package/dist/{input-chip-B4uw64rQ.js.map → input-chip-CyvjhQSw.js.map} +1 -1
  161. package/dist/{input-chip-DY9IEbQj.cjs → input-chip-DnfthOSY.cjs} +1 -1
  162. package/dist/{input-chip-DY9IEbQj.cjs.map → input-chip-DnfthOSY.cjs.map} +1 -1
  163. package/dist/input.cjs +1 -1
  164. package/dist/input.js +1 -1
  165. package/dist/json.cjs +1 -1
  166. package/dist/json.js +2 -2
  167. package/dist/kbd.cjs +1 -1
  168. package/dist/kbd.js +1 -1
  169. package/dist/{layout-DIuACbuC.cjs → layout-D0cR3hT1.cjs} +1 -1
  170. package/dist/{layout-DIuACbuC.cjs.map → layout-D0cR3hT1.cjs.map} +1 -1
  171. package/dist/layout-PZCF3kwl.cjs.map +1 -1
  172. package/dist/{layout-D7OCZ8rE.js → layout-Y5qo3er8.js} +2 -2
  173. package/dist/{layout-D7OCZ8rE.js.map → layout-Y5qo3er8.js.map} +1 -1
  174. package/dist/layout.cjs +1 -1
  175. package/dist/layout.js +2 -2
  176. package/dist/{lightbox-DL-v1tk9.js → lightbox-C_pqYF6q.js} +2 -2
  177. package/dist/{lightbox-DL-v1tk9.js.map → lightbox-C_pqYF6q.js.map} +1 -1
  178. package/dist/{lightbox-DFbqNGoX.cjs → lightbox-Ce8nMldr.cjs} +1 -1
  179. package/dist/{lightbox-DFbqNGoX.cjs.map → lightbox-Ce8nMldr.cjs.map} +1 -1
  180. package/dist/lightbox.cjs +1 -1
  181. package/dist/lightbox.js +1 -1
  182. package/dist/{list-D99W7WvC.cjs → list-CLc_OQ5k.cjs} +1 -1
  183. package/dist/{list-D99W7WvC.cjs.map → list-CLc_OQ5k.cjs.map} +1 -1
  184. package/dist/{list-DZTLJ-2e.js → list-DcnTGee0.js} +2 -2
  185. package/dist/{list-DZTLJ-2e.js.map → list-DcnTGee0.js.map} +1 -1
  186. package/dist/list.cjs +1 -1
  187. package/dist/list.js +1 -1
  188. package/dist/{litElement.mixin-De5SG5z7.cjs → litElement.mixin-DeT3kAOS.cjs} +1 -1
  189. package/dist/{litElement.mixin-De5SG5z7.cjs.map → litElement.mixin-DeT3kAOS.cjs.map} +1 -1
  190. package/dist/{litElement.mixin-D6ZHgGZv.js → litElement.mixin-Mi8bar6B.js} +1 -1
  191. package/dist/{litElement.mixin-D6ZHgGZv.js.map → litElement.mixin-Mi8bar6B.js.map} +1 -1
  192. package/dist/magnetic-aBBnj_vk.cjs.map +1 -1
  193. package/dist/{mailbox-BBV6hDAa.js → mailbox-BrLZPj2o.js} +4 -4
  194. package/dist/{mailbox-BBV6hDAa.js.map → mailbox-BrLZPj2o.js.map} +1 -1
  195. package/dist/{mailbox-CW7zc0v-.cjs → mailbox-CE5sTDsQ.cjs} +1 -1
  196. package/dist/{mailbox-CW7zc0v-.cjs.map → mailbox-CE5sTDsQ.cjs.map} +1 -1
  197. package/dist/mailbox.cjs +1 -1
  198. package/dist/mailbox.js +1 -1
  199. package/dist/{map-CSQMA89X.cjs → map-CKzhM6uY.cjs} +1 -1
  200. package/dist/{map-CSQMA89X.cjs.map → map-CKzhM6uY.cjs.map} +1 -1
  201. package/dist/{map-PvojF8B3.js → map-SNb-3q5h.js} +1 -1
  202. package/dist/{map-PvojF8B3.js.map → map-SNb-3q5h.js.map} +1 -1
  203. package/dist/map.cjs +1 -1
  204. package/dist/map.js +1 -1
  205. package/dist/{menu-3XXOfmrj.cjs → menu-BnGjBrdD.cjs} +1 -1
  206. package/dist/{menu-3XXOfmrj.cjs.map → menu-BnGjBrdD.cjs.map} +1 -1
  207. package/dist/{menu-B_o1fOPW.js → menu-VErqs9NG.js} +1 -1
  208. package/dist/{menu-B_o1fOPW.js.map → menu-VErqs9NG.js.map} +1 -1
  209. package/dist/menu.cjs +1 -1
  210. package/dist/menu.js +1 -1
  211. package/dist/mixins.cjs +1 -1
  212. package/dist/mixins.js +2 -2
  213. package/dist/nav-drawer.cjs +1 -1
  214. package/dist/nav-drawer.js +1 -1
  215. package/dist/navigation-bar.cjs +1 -1
  216. package/dist/navigation-bar.js +1 -1
  217. package/dist/navigation-rail.cjs +1 -1
  218. package/dist/navigation-rail.js +1 -1
  219. package/dist/{notification-BMtrJG-Y.js → notification-B_Fkxv7d.js} +2 -2
  220. package/dist/notification-B_Fkxv7d.js.map +1 -0
  221. package/dist/{notification-NnsatHAh.cjs → notification-DE5dFf8G.cjs} +1 -1
  222. package/dist/notification-DE5dFf8G.cjs.map +1 -0
  223. package/dist/notification.cjs +1 -1
  224. package/dist/notification.js +1 -1
  225. package/dist/{option-DxIFpYpC.cjs → option-BmbP5ulK.cjs} +1 -1
  226. package/dist/{option-DxIFpYpC.cjs.map → option-BmbP5ulK.cjs.map} +1 -1
  227. package/dist/{option-CNzW-sdU.js → option-DuAlGv27.js} +1 -1
  228. package/dist/{option-CNzW-sdU.js.map → option-DuAlGv27.js.map} +1 -1
  229. package/dist/option.cjs +1 -1
  230. package/dist/option.js +1 -1
  231. package/dist/page.cjs +1 -1
  232. package/dist/page.cjs.map +1 -1
  233. package/dist/page.js +2 -2
  234. package/dist/{progress-DHmYCHmy.js → progress-BnXr7aAs.js} +1 -1
  235. package/dist/{progress-DHmYCHmy.js.map → progress-BnXr7aAs.js.map} +1 -1
  236. package/dist/{progress-Cw6Qn3Kb.cjs → progress-Bt9gUiGP.cjs} +1 -1
  237. package/dist/{progress-Cw6Qn3Kb.cjs.map → progress-Bt9gUiGP.cjs.map} +1 -1
  238. package/dist/progress.cjs +1 -1
  239. package/dist/progress.js +1 -1
  240. package/dist/{provide-Dsoh3FdP.cjs → provide-CnXCF-UP.cjs} +1 -1
  241. package/dist/{provide-Dsoh3FdP.cjs.map → provide-CnXCF-UP.cjs.map} +1 -1
  242. package/dist/{provide-C4L6R1lo.js → provide-Disc6_zz.js} +1 -1
  243. package/dist/{provide-C4L6R1lo.js.map → provide-Disc6_zz.js.map} +1 -1
  244. package/dist/qr-scanner.cjs +1 -1
  245. package/dist/qr-scanner.js +1 -1
  246. package/dist/{radio-group-DneItRXU.js → radio-group-BgZgHMoA.js} +1 -1
  247. package/dist/{radio-group-DneItRXU.js.map → radio-group-BgZgHMoA.js.map} +1 -1
  248. package/dist/{radio-group-xgKQTd6h.cjs → radio-group-DkBFgq_3.cjs} +1 -1
  249. package/dist/{radio-group-xgKQTd6h.cjs.map → radio-group-DkBFgq_3.cjs.map} +1 -1
  250. package/dist/radio-group.cjs +1 -1
  251. package/dist/radio-group.js +1 -1
  252. package/dist/range.cjs +1 -1
  253. package/dist/range.js +1 -1
  254. package/dist/{scroll-D7QJYev7.js → scroll-57rkTHm8.js} +1 -1
  255. package/dist/{scroll-D7QJYev7.js.map → scroll-57rkTHm8.js.map} +1 -1
  256. package/dist/{scroll-DZAB4JFv.cjs → scroll-hWt0b1gK.cjs} +1 -1
  257. package/dist/{scroll-DZAB4JFv.cjs.map → scroll-hWt0b1gK.cjs.map} +1 -1
  258. package/dist/{select-D2eLEDUT.cjs → select-BDonPD5a.cjs} +1 -1
  259. package/dist/{select-D2eLEDUT.cjs.map → select-BDonPD5a.cjs.map} +1 -1
  260. package/dist/{select-B2T3RZng.js → select-CkOAwmxC.js} +1 -1
  261. package/dist/{select-B2T3RZng.js.map → select-CkOAwmxC.js.map} +1 -1
  262. package/dist/select.cjs +1 -1
  263. package/dist/select.js +1 -1
  264. package/dist/{sheet-NaecDxuR.cjs → sheet-Bv2mPHWk.cjs} +1 -1
  265. package/dist/{sheet-NaecDxuR.cjs.map → sheet-Bv2mPHWk.cjs.map} +1 -1
  266. package/dist/{sheet-BiGXZPdu.js → sheet-NUgEmozP.js} +3 -3
  267. package/dist/{sheet-BiGXZPdu.js.map → sheet-NUgEmozP.js.map} +1 -1
  268. package/dist/sheet.cjs +1 -1
  269. package/dist/sheet.js +2 -2
  270. package/dist/{sheet.service-CQq5hUNb.cjs → sheet.service-BKmnlkpZ.cjs} +1 -1
  271. package/dist/{sheet.service-CQq5hUNb.cjs.map → sheet.service-BKmnlkpZ.cjs.map} +1 -1
  272. package/dist/{sheet.service-gek7Spb6.js → sheet.service-CanLo8ko.js} +1 -1
  273. package/dist/{sheet.service-gek7Spb6.js.map → sheet.service-CanLo8ko.js.map} +1 -1
  274. package/dist/skeleton.cjs +1 -1
  275. package/dist/skeleton.js +1 -1
  276. package/dist/skills/SKILL.md +5 -3
  277. package/dist/skills/schmancy/SKILL.md +5 -3
  278. package/dist/slider.cjs +1 -1
  279. package/dist/slider.js +1 -1
  280. package/dist/{splash-screen-Dc6LDIbK.js → splash-screen-B0ppA3f1.js} +1 -1
  281. package/dist/{splash-screen-Dc6LDIbK.js.map → splash-screen-B0ppA3f1.js.map} +1 -1
  282. package/dist/{splash-screen-CxPHf-SC.cjs → splash-screen-BemqNFNj.cjs} +1 -1
  283. package/dist/{splash-screen-CxPHf-SC.cjs.map → splash-screen-BemqNFNj.cjs.map} +1 -1
  284. package/dist/splash-screen.cjs +1 -1
  285. package/dist/splash-screen.js +1 -1
  286. package/dist/{src-BP8bYUHc.cjs → src-ByGCYD-E.cjs} +1 -1
  287. package/dist/src-ByGCYD-E.cjs.map +1 -0
  288. package/dist/{src-BYrvfmFF.js → src-Cjy9zCiU.js} +41 -41
  289. package/dist/src-Cjy9zCiU.js.map +1 -0
  290. package/dist/steps.cjs +1 -1
  291. package/dist/steps.js +3 -3
  292. package/dist/store-Bmj6rvZY.js.map +1 -1
  293. package/dist/store-CO4nJyGj.cjs.map +1 -1
  294. package/dist/{surface-C9plkl5F.cjs → surface-CoLYICO1.cjs} +1 -1
  295. package/dist/{surface-C9plkl5F.cjs.map → surface-CoLYICO1.cjs.map} +1 -1
  296. package/dist/{surface-B2cmGNZ2.js → surface-CtpWeSGn.js} +2 -2
  297. package/dist/{surface-B2cmGNZ2.js.map → surface-CtpWeSGn.js.map} +1 -1
  298. package/dist/surface.cjs +1 -1
  299. package/dist/surface.js +1 -1
  300. package/dist/switch.cjs +1 -1
  301. package/dist/switch.js +1 -1
  302. package/dist/{table-6xNLZh3K.cjs → table-COQKtlJB.cjs} +1 -1
  303. package/dist/{table-6xNLZh3K.cjs.map → table-COQKtlJB.cjs.map} +1 -1
  304. package/dist/{table-BCJgjSvq.js → table-bgFb1KYU.js} +1 -1
  305. package/dist/{table-BCJgjSvq.js.map → table-bgFb1KYU.js.map} +1 -1
  306. package/dist/table.cjs +1 -1
  307. package/dist/table.js +1 -1
  308. package/dist/{tabs-BDqvhB54.js → tabs-BicCpU1B.js} +2 -2
  309. package/dist/{tabs-BDqvhB54.js.map → tabs-BicCpU1B.js.map} +1 -1
  310. package/dist/{tabs-pvevSaFB.cjs → tabs-CoMJAXDy.cjs} +1 -1
  311. package/dist/{tabs-pvevSaFB.cjs.map → tabs-CoMJAXDy.cjs.map} +1 -1
  312. package/dist/tabs.cjs +1 -1
  313. package/dist/tabs.js +1 -1
  314. package/dist/tailwind.mixin-BfdVIGgD.cjs +2 -0
  315. package/dist/{tailwind.mixin-Bug3G6K6.cjs.map → tailwind.mixin-BfdVIGgD.cjs.map} +1 -1
  316. package/dist/tailwind.mixin-CNdR3zFD.js +219 -0
  317. package/dist/{tailwind.mixin-ywtUNG2c.js.map → tailwind.mixin-CNdR3zFD.js.map} +1 -1
  318. package/dist/teleport.cjs +1 -1
  319. package/dist/teleport.js +1 -1
  320. package/dist/{textarea-D2v000gK.cjs → textarea-CxTSwn3x.cjs} +1 -1
  321. package/dist/{textarea-D2v000gK.cjs.map → textarea-CxTSwn3x.cjs.map} +1 -1
  322. package/dist/{textarea-BvZn41aa.js → textarea-D7O9Uo15.js} +1 -1
  323. package/dist/{textarea-BvZn41aa.js.map → textarea-D7O9Uo15.js.map} +1 -1
  324. package/dist/textarea.cjs +1 -1
  325. package/dist/textarea.js +1 -1
  326. package/dist/{theme-Dw9Ag_VS.cjs → theme-CCez6SRm.cjs} +1 -1
  327. package/dist/{theme-Dw9Ag_VS.cjs.map → theme-CCez6SRm.cjs.map} +1 -1
  328. package/dist/{theme-JvXazXJr.js → theme-DGiyJMTT.js} +3 -3
  329. package/dist/{theme-JvXazXJr.js.map → theme-DGiyJMTT.js.map} +1 -1
  330. package/dist/{theme-button-qHd4AFsE.cjs → theme-button-BV0CxpGn.cjs} +1 -1
  331. package/dist/{theme-button-qHd4AFsE.cjs.map → theme-button-BV0CxpGn.cjs.map} +1 -1
  332. package/dist/{theme-button-Bh8wKXtV.js → theme-button-s9GfSQL5.js} +1 -1
  333. package/dist/{theme-button-Bh8wKXtV.js.map → theme-button-s9GfSQL5.js.map} +1 -1
  334. package/dist/theme-button.cjs +1 -1
  335. package/dist/theme-button.js +1 -1
  336. package/dist/theme.cjs +1 -1
  337. package/dist/theme.js +2 -2
  338. package/dist/theme.service-ETiKUwVy.cjs.map +1 -1
  339. package/dist/theme.service-_qP5WvB9.js.map +1 -1
  340. package/dist/tree.cjs +1 -1
  341. package/dist/tree.cjs.map +1 -1
  342. package/dist/tree.js +1 -1
  343. package/dist/{typewriter-PpYJFsVi.js → typewriter-BTqEQXsX.js} +3 -3
  344. package/dist/{typewriter-PpYJFsVi.js.map → typewriter-BTqEQXsX.js.map} +1 -1
  345. package/dist/{typewriter-C5uDB2Lu.cjs → typewriter-DeaL3NfZ.cjs} +1 -1
  346. package/dist/{typewriter-C5uDB2Lu.cjs.map → typewriter-DeaL3NfZ.cjs.map} +1 -1
  347. package/dist/typewriter.cjs +1 -1
  348. package/dist/typewriter.js +1 -1
  349. package/dist/typography.cjs +1 -1
  350. package/dist/typography.js +1 -1
  351. package/dist/utils-C8PD8So2.cjs.map +1 -1
  352. package/dist/utils-DVuCPDfw.js.map +1 -1
  353. package/dist/visually-hidden.cjs +1 -1
  354. package/dist/visually-hidden.js +1 -1
  355. package/dist/{window-ChDgkb97.js → window-CDHDVOwO.js} +1 -1
  356. package/dist/{window-ChDgkb97.js.map → window-CDHDVOwO.js.map} +1 -1
  357. package/dist/{window-Czfu-i4Y.cjs → window-IGZgxuUC.cjs} +1 -1
  358. package/dist/{window-Czfu-i4Y.cjs.map → window-IGZgxuUC.cjs.map} +1 -1
  359. package/dist/window.cjs +1 -1
  360. package/dist/window.js +1 -1
  361. package/package.json +15 -3
  362. package/skills/schmancy/SKILL.md +5 -3
  363. package/src/agent/agent-bundle.test.ts +92 -0
  364. package/src/agent/agent-entry.ts +17 -0
  365. package/src/agent/helpers.ts +161 -0
  366. package/src/agent/index.ts +1 -0
  367. package/src/agent/schmancy-skill.ts +71 -0
  368. package/src/agent/virtual-manifest.d.ts +10 -0
  369. package/src/area/area.service.ts +11 -0
  370. package/src/content-drawer/drawer.service.ts +9 -0
  371. package/src/dialog/dialog-service.ts +11 -1
  372. package/src/notification/notification-service.ts +11 -1
  373. package/src/sheet/sheet.service.ts +10 -0
  374. package/src/theme/theme.service.ts +11 -1
  375. package/types/src/agent/agent-bundle.test.d.ts +1 -0
  376. package/types/src/agent/agent-entry.d.ts +4 -0
  377. package/types/src/agent/helpers.d.ts +87 -0
  378. package/types/src/agent/index.d.ts +1 -0
  379. package/types/src/agent/schmancy-skill.d.ts +33 -0
  380. package/types/src/area/area.service.d.ts +11 -0
  381. package/types/src/content-drawer/drawer.service.d.ts +9 -0
  382. package/types/src/dialog/dialog-service.d.ts +11 -1
  383. package/types/src/notification/notification-service.d.ts +11 -1
  384. package/types/src/sheet/sheet.service.d.ts +9 -0
  385. package/types/src/theme/theme.service.d.ts +11 -0
  386. package/dist/area-BafkBc1f.cjs.map +0 -1
  387. package/dist/area-D03HRn1L.js.map +0 -1
  388. package/dist/context-B81Q3U_1.cjs +0 -1
  389. package/dist/context-Dnj4ofbV.js +0 -3
  390. package/dist/notification-BMtrJG-Y.js.map +0 -1
  391. package/dist/notification-NnsatHAh.cjs.map +0 -1
  392. package/dist/src-BP8bYUHc.cjs.map +0 -1
  393. package/dist/src-BYrvfmFF.js.map +0 -1
  394. package/dist/tailwind.mixin-Bug3G6K6.cjs +0 -2
  395. package/dist/tailwind.mixin-ywtUNG2c.js +0 -219
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-DE5dFf8G.cjs","names":[],"sources":["../src/notification/notification.scss?inline","../src/notification/notification.ts","../src/notification/notification-service.ts","../src/notification/notify.ts"],"sourcesContent":[":host {\n\tdisplay: block;\n}\n\n.notification {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 10px;\n\tpadding: 12px;\n\tpadding-right: 32px;\n\tbackground: var(--schmancy-sys-color-surface-container);\n\tborder-radius: var(--schmancy-sys-shape-corner-extraLarge, 16px);\n\tcolor: var(--schmancy-sys-color-surface-on);\n\tmax-width: 320px;\n\toverflow: hidden;\n\n\t/* Type-colored luminous glow */\n\t--notification-glow-color: var(--schmancy-sys-color-primary-default);\n\tbox-shadow: 0 4px 24px -6px color-mix(in srgb, var(--notification-glow-color) 18%, transparent);\n\tborder-left: 2px solid color-mix(in srgb, var(--notification-glow-color) 50%, transparent);\n\n\ttransition:\n\t\tbox-shadow 300ms ease,\n\t\ttransform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);\n\n\t&.info { --notification-glow-color: var(--schmancy-sys-color-primary-default); }\n\t&.success { --notification-glow-color: var(--schmancy-sys-color-success-default); }\n\t&.warning { --notification-glow-color: var(--schmancy-sys-color-warning-default); }\n\t&.error { --notification-glow-color: var(--schmancy-sys-color-error-default); }\n\n\t&.hovered {\n\t\tbox-shadow: 0 8px 32px -4px color-mix(in srgb, var(--notification-glow-color) 28%, transparent);\n\t\ttransform: translateY(-2px);\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: box-shadow 200ms ease;\n\t\t&.hovered { transform: none; }\n\t}\n}\n\n.emoji {\n\tfont-size: 20px;\n\tline-height: 1;\n\tflex-shrink: 0;\n\tmargin-top: 1px;\n}\n\n.content {\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.title {\n\tfont-weight: 500;\n\tfont-size: 13px;\n\tline-height: 1.4;\n\tmargin-bottom: 2px;\n\tletter-spacing: 0.01em;\n\n\t.info & {\n\t\tcolor: var(--schmancy-sys-color-primary-default);\n\t}\n\t.success & {\n\t\tcolor: var(--schmancy-sys-color-success-default);\n\t}\n\t.warning & {\n\t\tcolor: var(--schmancy-sys-color-tertiary-default);\n\t}\n\t.error & {\n\t\tcolor: var(--schmancy-sys-color-error-default);\n\t}\n}\n\n.message {\n\tfont-size: 13px;\n\tline-height: 1.4;\n\topacity: 0.75;\n\tletter-spacing: 0.01em;\n}\n\n.close {\n\tposition: absolute;\n\ttop: 8px;\n\tright: 6px;\n\tbackground: none;\n\tborder: none;\n\tfont-size: 16px;\n\tfont-weight: 300;\n\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\tcursor: pointer;\n\tpadding: 4px 6px;\n\tline-height: 1;\n\topacity: 0.4;\n\tborder-radius: var(--schmancy-sys-shape-corner-full, 50%);\n\ttransition: opacity 200ms ease;\n\n\t&:hover {\n\t\topacity: 0.8;\n\t}\n\n\t&:focus-visible {\n\t\toutline: none;\n\t\topacity: 1;\n\t\tbox-shadow:\n\t\t\t0 0 0 2px var(--schmancy-sys-color-primary-default),\n\t\t\t0 0 8px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 25%, transparent);\n\t}\n}\n\n.progress {\n\tposition: absolute;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n}\n","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { BehaviorSubject, timer, interval, NEVER } from 'rxjs'\nimport { switchMap, takeUntil, map, tap, distinctUntilChanged } from 'rxjs/operators'\nimport '../progress/progress'\nimport style from './notification.scss?inline'\n\nexport type NotificationType = 'info' | 'success' | 'warning' | 'error'\n\n/**\n * Calculate a point on an arc between two points\n */\nfunction calculateArcPoint(\n\tstart: { x: number; y: number },\n\tend: { x: number; y: number },\n\tarcDirection: 'up' | 'down' = 'up',\n\tintensity: number = 0.3,\n): { x: number; y: number } {\n\tconst midX = (start.x + end.x) / 2\n\tconst midY = (start.y + end.y) / 2\n\tconst distance = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2))\n\tconst arcHeight = Math.min(distance * intensity, 150)\n\treturn {\n\t\tx: midX,\n\t\ty: arcDirection === 'up' ? midY - arcHeight : midY + arcHeight,\n\t}\n}\n\n/**\n * @fires close - When notification is closed\n */\n@customElement('sch-notification')\nexport default class SchmancyNotification extends $LitElement(style) {\n\t@property({ type: String }) title = ''\n\t@property({ type: String }) message = ''\n\t@property({ type: String }) type: NotificationType = 'info'\n\t@property({ type: Boolean }) closable = true\n\t@property({ type: Number }) duration = 5000 // 0 means no auto-close\n\t@property({ type: String }) id = `notification-${Date.now()}-${Math.floor(Math.random() * 10000)}`\n\t@property({ type: Boolean }) playSound = true\n\t@property({ type: Boolean }) showProgress = false // Show indeterminate progress bar\n\t@property({ type: Object }) startPosition: { x: number; y: number } = { x: 0, y: 0 }\n\n\t@state() private _visible = true\n\t@state() private _progress = 100\n\t@state() private _hovered = false\n\t@state() private _closing = false\n\n\tprivate paused$ = new BehaviorSubject<boolean>(false)\n\tprivate startTime = 0\n\tprivate pausedAt = 0\n\tprivate elapsedBeforePause = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Set fixed positioning for blackbird animation\n\t\tthis.style.position = 'fixed'\n\t\tthis.style.top = '16px'\n\t\tthis.style.right = '16px'\n\t\tthis.style.zIndex = '10001'\n\t\tthis.style.opacity = '0'\n\n\t\t// Animate in after first render\n\t\tthis.updateComplete.then(() => {\n\t\t\tthis.animateIn()\n\t\t})\n\n\t\tif (this.duration > 0) {\n\t\t\tthis.setupAutoClose()\n\t\t\tthis.setupProgressUpdates()\n\t\t}\n\n\t\tif (this.playSound) {\n\t\t\tthis._playSound()\n\t\t}\n\t}\n\n\tprivate async animateIn() {\n\t\t// Get the notification element's final position\n\t\tconst rect = this.getBoundingClientRect()\n\t\tconst targetX = rect.left + rect.width / 2\n\t\tconst targetY = rect.top + rect.height / 2\n\n\t\t// Calculate arc point for upward arc\n\t\tconst arcPoint = calculateArcPoint(this.startPosition, { x: targetX, y: targetY }, 'up', 0.3)\n\n\t\t// Animate from click position to final position with arc\n\t\tawait this.animate(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\ttransform: `translate(${this.startPosition.x - targetX}px, ${this.startPosition.y - targetY}px) scale(0.1)`,\n\t\t\t\t\topacity: 0,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttransform: `translate(${arcPoint.x - targetX}px, ${arcPoint.y - targetY}px) scale(0.6)`,\n\t\t\t\t\topacity: 0.9,\n\t\t\t\t\toffset: 0.5,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttransform: 'translate(0, 0) scale(1)',\n\t\t\t\t\topacity: 1,\n\t\t\t\t},\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 400,\n\t\t\t\teasing: 'cubic-bezier(0.34, 1.2, 0.64, 1)',\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t).finished\n\t}\n\n\tprivate setupAutoClose() {\n\t\tif (this.duration <= 0) return\n\n\t\tthis.startTime = Date.now()\n\t\tthis.elapsedBeforePause = 0\n\n\t\tthis.paused$\n\t\t\t.pipe(\n\t\t\t\tswitchMap(paused => {\n\t\t\t\t\tif (paused) {\n\t\t\t\t\t\tthis.pausedAt = Date.now()\n\t\t\t\t\t\tthis.elapsedBeforePause += this.pausedAt - this.startTime\n\t\t\t\t\t\treturn NEVER\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.startTime = Date.now()\n\t\t\t\t\t\tconst remaining = this.duration - this.elapsedBeforePause\n\t\t\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\t\t\tthis.close()\n\t\t\t\t\t\t\treturn NEVER\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn timer(remaining)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => this.close())\n\t}\n\n\tprivate setupProgressUpdates() {\n\t\tif (this.duration <= 0) return\n\n\t\tinterval(16)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() =>\n\t\t\t\t\tthis.paused$.pipe(\n\t\t\t\t\t\tmap(paused => {\n\t\t\t\t\t\t\tif (paused) return this._progress\n\t\t\t\t\t\t\tconst elapsed = this.elapsedBeforePause + (Date.now() - this.startTime)\n\t\t\t\t\t\t\tconst remaining = Math.max(0, this.duration - elapsed)\n\t\t\t\t\t\t\treturn (remaining / this.duration) * 100\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(progress => {\n\t\t\t\t\tthis._progress = progress\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate _playSound() {\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('playsound', {\n\t\t\t\tdetail: { type: this.type },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate _handleMouseEnter() {\n\t\tthis._hovered = true\n\t\tthis.paused$.next(true)\n\t}\n\n\tprivate _handleMouseLeave() {\n\t\tthis._hovered = false\n\t\tthis.paused$.next(false)\n\t}\n\n\tpublic async close() {\n\t\tif (this._closing) return\n\t\tthis._closing = true\n\t\tthis._visible = false\n\n\t\t// Animate out before dispatching close event\n\t\tawait this.animate(\n\t\t\t[\n\t\t\t\t{ transform: 'translate(0, 0) scale(1)', opacity: 1 },\n\t\t\t\t{ transform: 'translate(0, -20px) scale(0.8)', opacity: 0 },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 200,\n\t\t\t\teasing: 'cubic-bezier(0.4, 0, 1, 1)',\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t).finished\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('close', {\n\t\t\t\tdetail: { id: this.id },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate _getEmoji(): string {\n\t\tswitch (this.type) {\n\t\t\tcase 'success':\n\t\t\t\treturn '\\u2705'\n\t\t\tcase 'warning':\n\t\t\t\treturn '\\u26A0\\uFE0F'\n\t\t\tcase 'error':\n\t\t\t\treturn '\\u274C'\n\t\t\tdefault:\n\t\t\t\treturn '\\u{1F4A1}'\n\t\t}\n\t}\n\n\trender() {\n\t\tif (!this._visible && this._closing) return html``\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"notification ${this.type} ${this._closing ? 'closing' : ''} ${this._hovered ? 'hovered' : ''}\"\n\t\t\t\trole=\"alert\"\n\t\t\t\t@mouseenter=${this._handleMouseEnter}\n\t\t\t\t@mouseleave=${this._handleMouseLeave}\n\t\t\t>\n\t\t\t\t<span class=\"emoji\">${this._getEmoji()}</span>\n\t\t\t\t<div class=\"content\">\n\t\t\t\t\t${this.title ? html`<div class=\"title\">${this.title}</div>` : ''}\n\t\t\t\t\t<div class=\"message\">${this.message}</div>\n\t\t\t\t</div>\n\t\t\t\t${this.closable\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<button class=\"close\" aria-label=\"Close notification\" @click=${this.close}>x</button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t\t${this.showProgress || this.duration > 0\n\t\t\t\t\t? html`<schmancy-progress\n\t\t\t\t\t\tclass=\"progress\"\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t.value=${this._progress}\n\t\t\t\t\t\t?indeterminate=${this.showProgress && this.duration === 0}\n\t\t\t\t\t></schmancy-progress>`\n\t\t\t\t\t: ''}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-notification': SchmancyNotification\n\t}\n}\n","import { $sounds, type Feeling } from '../audio'\nimport SchmancyNotification, { NotificationType } from './notification'\n\nexport interface NotificationOptions {\n\tid?: string\n\ttitle?: string\n\tmessage: string\n\ttype?: NotificationType\n\tduration?: number\n\tclosable?: boolean\n\tplaySound?: boolean\n\tshowProgress?: boolean\n}\n\nconst typeToFeeling: Record<NotificationType, Feeling> = {\n\tinfo: 'curious',\n\tsuccess: 'content',\n\twarning: 'anxious',\n\terror: 'disappointed',\n}\n\n// Track last mouse position\nlet lastClickPosition = { x: window.innerWidth - 100, y: 50 }\n\n// Global mousedown listener to track click position\nif (typeof window !== 'undefined') {\n\twindow.addEventListener(\n\t\t'mousedown',\n\t\t(e: MouseEvent) => {\n\t\t\tlastClickPosition = { x: e.clientX, y: e.clientY }\n\t\t},\n\t\t{ capture: true, passive: true },\n\t)\n}\n\n// Track current notification element\nlet currentNotification: SchmancyNotification | null = null\n\n/**\n * Notification service for centralized notification management.\n * Provides a simple API for showing notifications.\n */\nexport class NotificationService {\n\tprivate static instance: NotificationService\n\tprivate notificationStack: string[] = []\n\tprivate audioVolume = 0.1\n\n\t// Default notification options\n\tprivate static DEFAULT_OPTIONS: Partial<NotificationOptions> = {\n\t\tduration: 1000, // 1 seconds - long enough to be readable\n\t\tclosable: true,\n\t\tplaySound: true,\n\t}\n\n\t// Type-specific default durations (in milliseconds)\n\tprivate static TYPE_DURATIONS: Record<NotificationType, number> = {\n\t\tsuccess: 1500, // 1.5 seconds - quick confirmation\n\t\tinfo: 2000, // 2 seconds - informational\n\t\twarning: 2500, // 2.5 seconds - needs attention\n\t\terror: 2500, // 2.5 seconds - important\n\t}\n\n\t// Private constructor for singleton pattern\n\tprivate constructor() {\n\t\t$sounds.setVolume(this.audioVolume)\n\t}\n\n\t/**\n\t * Get the singleton instance\n\t */\n\tpublic static getInstance(): NotificationService {\n\t\tif (!NotificationService.instance) {\n\t\t\tNotificationService.instance = new NotificationService()\n\t\t}\n\t\treturn NotificationService.instance\n\t}\n\n\t/**\n\t * Show a notification\n\t * @returns The ID of the created notification\n\t */\n\tpublic notify(options: NotificationOptions): string {\n\t\t// Apply default options\n\t\tconst completeOptions = {\n\t\t\t...NotificationService.DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t// Override with duraton from options if provided, otherwise use default\n\t\t\tduration: options.duration ?? NotificationService.DEFAULT_OPTIONS.duration,\n\t\t}\n\n\t\tconst id = completeOptions.id || `notification-${Date.now()}-${Math.floor(Math.random() * 10000)}`\n\n\t\t// Add to stack for tracking\n\t\tthis.notificationStack.push(id)\n\n\t\t// Remove existing notification if any (only 1 at a time)\n\t\tif (currentNotification) {\n\t\t\tcurrentNotification.remove()\n\t\t\tcurrentNotification = null\n\t\t}\n\n\t\t// Create the notification element directly\n\t\tconst notification = document.createElement('sch-notification') as SchmancyNotification\n\t\tnotification.id = id\n\t\tnotification.title = completeOptions.title || ''\n\t\tnotification.message = completeOptions.message\n\t\tnotification.type = completeOptions.type || 'info'\n\t\tnotification.duration = completeOptions.duration ?? 1000\n\t\tnotification.closable = completeOptions.closable !== false\n\t\tnotification.playSound = false // We handle sound here\n\t\tnotification.showProgress = completeOptions.showProgress || false\n\t\tnotification.startPosition = { ...lastClickPosition }\n\n\t\t// Play sound if enabled\n\t\tif (completeOptions.playSound !== false) {\n\t\t\t$sounds.play(typeToFeeling[notification.type])\n\t\t}\n\n\t\t// Listen for close event\n\t\tnotification.addEventListener('close', () => {\n\t\t\tconst index = this.notificationStack.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.notificationStack.splice(index, 1)\n\t\t\t}\n\t\t\tnotification.remove()\n\t\t\tif (currentNotification === notification) {\n\t\t\t\tcurrentNotification = null\n\t\t\t}\n\t\t})\n\n\t\t// Append to body\n\t\tdocument.body.appendChild(notification)\n\t\tcurrentNotification = notification\n\n\t\treturn id\n\t}\n\n\t/**\n\t * Dismiss a notification\n\t * @param id Optional notification ID. If not provided, dismisses the most recent notification\n\t */\n\tpublic dismiss(id?: string): void {\n\t\tlet targetId: string | undefined\n\n\t\tif (id) {\n\t\t\t// Remove specific notification from stack\n\t\t\tconst index = this.notificationStack.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.notificationStack.splice(index, 1)\n\t\t\t\ttargetId = id\n\t\t\t}\n\t\t} else {\n\t\t\t// Remove most recent notification (last in stack)\n\t\t\ttargetId = this.notificationStack.pop()\n\t\t}\n\n\t\tif (targetId && currentNotification && currentNotification.id === targetId) {\n\t\t\tcurrentNotification.close()\n\t\t}\n\t}\n\n\t/**\n\t * Update a notification's content\n\t */\n\tpublic update(id: string, options: Partial<NotificationOptions>): void {\n\t\tif (currentNotification && currentNotification.id === id) {\n\t\t\tif (options.title !== undefined) currentNotification.title = options.title\n\t\t\tif (options.message !== undefined) currentNotification.message = options.message\n\t\t\tif (options.type !== undefined) currentNotification.type = options.type\n\t\t}\n\t}\n\n\t/**\n\t * Show an info notification\n\t */\n\tpublic info(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'info',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.info) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a success notification\n\t */\n\tpublic success(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'success',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.success) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a warning notification\n\t */\n\tpublic warning(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'warning',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.warning) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show an error notification\n\t */\n\tpublic error(message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage: message ?? '',\n\t\t\ttype: 'error',\n\t\t\tduration: message ? (options.duration ?? NotificationService.TYPE_DURATIONS.error) : 1,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a notification with a custom duration\n\t */\n\tpublic customDuration(\n\t\tmessage: string,\n\t\tduration: number,\n\t\toptions: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {},\n\t): string {\n\t\treturn this.notify({\n\t\t\tmessage,\n\t\t\tduration,\n\t\t\t...options,\n\t\t})\n\t}\n\n\t/**\n\t * Show a persistent notification (won't auto-dismiss)\n\t */\n\tpublic persistent(message: string, options: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {}): string {\n\t\treturn this.notify({\n\t\t\tmessage,\n\t\t\tduration: 0, // Zero duration means no auto-close\n\t\t\t...options,\n\t\t})\n\t}\n}\n\n/**\n * Global notification (toast) utility. Fire-and-forget API for success,\n * error, info, and warning toasts, plus a low-level `show` for custom\n * notifications.\n *\n * @service\n * @summary Toast notifications — success, error, info, warning.\n * @method show(options: NotificationOptions) - Low-level; show any NotificationOptions.\n * @method success(message, options?) - Green success toast.\n * @method error(message, options?) - Red error toast.\n * @method info(message, options?) - Blue informational toast.\n * @method warning(message, options?) - Amber warning toast.\n */\nexport const $notify = {\n\t/**\n\t * Show a notification\n\t */\n\tshow: (options: NotificationOptions): string => {\n\t\treturn NotificationService.getInstance().notify(options)\n\t},\n\n\t/**\n\t * Show an info notification\n\t */\n\tinfo: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().info(message, options)\n\t},\n\n\t/**\n\t * Show a success notification\n\t */\n\tsuccess: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().success(message, options)\n\t},\n\n\t/**\n\t * Show a warning notification\n\t */\n\twarning: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().warning(message, options)\n\t},\n\n\t/**\n\t * Show an error notification\n\t */\n\terror: (message?: string, options: Partial<Omit<NotificationOptions, 'message' | 'type'>> = {}): string => {\n\t\treturn NotificationService.getInstance().error(message, options)\n\t},\n\n\t/**\n\t * Show a notification with a custom duration\n\t * @param message The notification message\n\t * @param duration Duration in milliseconds before auto-dismissing (0 for no auto-dismiss)\n\t * @param options Additional notification options\n\t */\n\tcustomDuration: (\n\t\tmessage: string,\n\t\tduration: number,\n\t\toptions: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {},\n\t): string => {\n\t\treturn NotificationService.getInstance().customDuration(message, duration, options)\n\t},\n\n\t/**\n\t * Show a persistent notification that won't auto-dismiss\n\t */\n\tpersistent: (message: string, options: Partial<Omit<NotificationOptions, 'message' | 'duration'>> = {}): string => {\n\t\treturn NotificationService.getInstance().persistent(message, options)\n\t},\n\n\t/**\n\t * Dismiss a notification\n\t * @param id Optional notification ID. If not provided, dismisses the most recent notification (queue-like behavior)\n\t */\n\tdismiss: (id?: string): void => {\n\t\treturn NotificationService.getInstance().dismiss(id)\n\t},\n\n\t/**\n\t * Update a notification's content\n\t */\n\tupdate: (id: string, options: Partial<NotificationOptions>): void => {\n\t\treturn NotificationService.getInstance().update(id, options)\n\t},\n}\n\nexport default NotificationService\n","import { Observable, tap, finalize, catchError } from 'rxjs'\r\nimport { $notify, NotificationOptions } from './notification-service'\r\n\r\nexport interface NotifyOptions {\r\n\t/**\r\n\t * Message to show while the operation is in progress\r\n\t */\r\n\tloadingMessage?: string\r\n\t/**\r\n\t * Message to show when the operation completes successfully\r\n\t */\r\n\tsuccessMessage?: string\r\n\t/**\r\n\t * Message to show when the operation fails (can be a function to format error)\r\n\t */\r\n\terrorMessage?: string | ((error: any) => string)\r\n\t/**\r\n\t * Type of notification for loading state\r\n\t */\r\n\tloadingType?: NotificationOptions['type']\r\n\t/**\r\n\t * Type of notification for success state\r\n\t */\r\n\tsuccessType?: NotificationOptions['type']\r\n\t/**\r\n\t * Type of notification for error state\r\n\t */\r\n\terrorType?: NotificationOptions['type']\r\n\t/**\r\n\t * Whether to auto-dismiss the loading notification on complete/error\r\n\t */\r\n\tautoDismissLoading?: boolean\r\n\t/**\r\n\t * Duration for success notification (ms). Use 0 for persistent\r\n\t */\r\n\tsuccessDuration?: number\r\n\t/**\r\n\t * Duration for error notification (ms). Use 0 for persistent\r\n\t */\r\n\terrorDuration?: number\r\n}\r\n\r\n/**\r\n * Wraps an Observable with notification lifecycle management.\r\n * Shows a loading notification with progress indicator, then auto-dismisses and shows success/error notification.\r\n * \r\n * @example\r\n * ```typescript\r\n * // Basic usage with progress indicator\r\n * someApiCall().pipe(\r\n * notify({\r\n * loadingMessage: 'Loading data...',\r\n * successMessage: 'Data loaded successfully!',\r\n * errorMessage: 'Failed to load data'\r\n * })\r\n * ).subscribe()\r\n * \r\n * // With custom durations\r\n * saveData().pipe(\r\n * notify({\r\n * loadingMessage: 'Saving...',\r\n * successMessage: 'Saved!',\r\n * successDuration: 5000, // Success stays for 5 seconds\r\n * errorMessage: (err) => `Save failed: ${err.message}`,\r\n * errorDuration: 0 // Error is persistent until dismissed\r\n * })\r\n * ).subscribe()\r\n * \r\n * // Full configuration example\r\n * uploadFile().pipe(\r\n * notify({\r\n * loadingMessage: 'Uploading file...',\r\n * loadingType: 'info',\r\n * successMessage: 'Upload complete!',\r\n * successType: 'success',\r\n * successDuration: 3000,\r\n * errorMessage: (err) => `Upload failed: ${err.message}`,\r\n * errorType: 'error',\r\n * errorDuration: 10000,\r\n * autoDismissLoading: true\r\n * })\r\n * ).subscribe()\r\n * ```\r\n */\r\nexport function notify<T>(options: NotifyOptions) {\r\n\treturn (source: Observable<T>): Observable<T> => {\r\n\t\tlet loadingNotificationId: string | undefined\r\n\r\n\t\t// Show loading notification if message provided\r\n\t\tif (options.loadingMessage) {\r\n\t\t\tloadingNotificationId = $notify.show({\r\n\t\t\t\tmessage: options.loadingMessage,\r\n\t\t\t\ttype: options.loadingType || 'info',\r\n\t\t\t\tduration: 0, // Persistent until dismissed\r\n\t\t\t\tshowProgress: true, // Show indeterminate progress by default\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn source.pipe(\r\n\t\t\ttap((value) => {\r\n\t\t\t\t// Check if the emitted value contains progress information\r\n\t\t\t\t// Common patterns: { progress: number }, { loaded: number, total: number }, etc.\r\n\t\t\t\tif (loadingNotificationId && typeof value === 'object' && value !== null) {\r\n\t\t\t\t\tlet progress: number | undefined\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Check for different progress patterns\r\n\t\t\t\t\tif ('progress' in value && typeof (value as any).progress === 'number') {\r\n\t\t\t\t\t\tprogress = (value as any).progress\r\n\t\t\t\t\t} else if ('loaded' in value && 'total' in value) {\r\n\t\t\t\t\t\tconst loaded = (value as any).loaded\r\n\t\t\t\t\t\tconst total = (value as any).total\r\n\t\t\t\t\t\tif (typeof loaded === 'number' && typeof total === 'number' && total > 0) {\r\n\t\t\t\t\t\t\tprogress = (loaded / total) * 100\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Update notification with progress if available\r\n\t\t\t\t\tif (progress !== undefined) {\r\n\t\t\t\t\t\t// We need to update the progress of the notification\r\n\t\t\t\t\t\t// For now, we'll update the message to show progress percentage\r\n\t\t\t\t\t\t$notify.update?.(loadingNotificationId, {\r\n\t\t\t\t\t\t\tmessage: `${options.loadingMessage} (${Math.round(progress)}%)`,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// Check if this is the final success emission (not a progress update)\r\n\t\t\t\t// Typically file uploads emit progress events then a final result\r\n\t\t\t\tconst isProgressUpdate = typeof value === 'object' && value !== null && \r\n\t\t\t\t\t('progress' in value || ('loaded' in value && 'total' in value))\r\n\t\t\t\t\r\n\t\t\t\tif (!isProgressUpdate) {\r\n\t\t\t\t\t// On successful final emission, dismiss loading and show success\r\n\t\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t\t\tloadingNotificationId = undefined\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (options.successMessage) {\r\n\t\t\t\t\t\t$notify.show({\r\n\t\t\t\t\t\t\tmessage: options.successMessage,\r\n\t\t\t\t\t\t\ttype: options.successType || 'success',\r\n\t\t\t\t\t\t\tduration: options.successDuration ?? 2000,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tcatchError((error) => {\r\n\t\t\t\t// On error, dismiss loading and show error\r\n\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t\tloadingNotificationId = undefined\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (options.errorMessage) {\r\n\t\t\t\t\tconst message = typeof options.errorMessage === 'function' \r\n\t\t\t\t\t\t? options.errorMessage(error)\r\n\t\t\t\t\t\t: options.errorMessage\r\n\t\t\t\t\t\r\n\t\t\t\t\t$notify.show({\r\n\t\t\t\t\t\tmessage,\r\n\t\t\t\t\t\ttype: options.errorType || 'error',\r\n\t\t\t\t\t\tduration: options.errorDuration ?? 3000,\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Re-throw the error to maintain the error flow\r\n\t\t\t\tthrow error\r\n\t\t\t}),\r\n\t\t\tfinalize(() => {\r\n\t\t\t\t// Clean up any remaining loading notification\r\n\t\t\t\tif (loadingNotificationId && options.autoDismissLoading !== false) {\r\n\t\t\t\t\t$notify.dismiss(loadingNotificationId)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t)\r\n\t}\r\n}\r\n\r\n/**\r\n * Simplified version for API calls that just need loading and auto-dismiss.\r\n * Perfect for fire-and-forget operations where you want to show progress.\r\n * \r\n * @example\r\n * ```typescript\r\n * downloadData().pipe(\r\n * notifyProgress('Downloading...')\r\n * ).subscribe()\r\n * \r\n * // With custom messages\r\n * saveDocument().pipe(\r\n * notifyProgress('Saving document...', 'Document saved!', 'Save failed')\r\n * ).subscribe()\r\n * ```\r\n */\r\nexport function notifyProgress<T>(\r\n\tloadingMessage: string,\r\n\tsuccessMessage?: string,\r\n\terrorMessage?: string\r\n) {\r\n\treturn notify<T>({\r\n\t\tloadingMessage,\r\n\t\tsuccessMessage: successMessage || undefined,\r\n\t\terrorMessage: errorMessage || undefined,\r\n\t\tautoDismissLoading: true,\r\n\t})\r\n}"],"mappings":"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"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./notification-NnsatHAh.cjs`);exports.$notify=e.r,exports.SchmancyNotification=e.i,exports.notify=e.t,exports.notifyProgress=e.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./notification-DE5dFf8G.cjs`);exports.$notify=e.r,exports.SchmancyNotification=e.i,exports.notify=e.t,exports.notifyProgress=e.n;
@@ -1,2 +1,2 @@
1
- import { i as e, n as t, r as n, t as r } from "./notification-BMtrJG-Y.js";
1
+ import { i as e, n as t, r as n, t as r } from "./notification-B_Fkxv7d.js";
2
2
  export { n as $notify, e as SchmancyNotification, r as notify, t as notifyProgress };
@@ -1,4 +1,4 @@
1
- require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-Bug3G6K6.cjs`),t=require(`./decorate-F9CuyeHg.cjs`);require(`./mixins.cjs`);let n=require(`rxjs`),r=require(`lit/decorators.js`),i=require(`lit`);var a=class extends e.t(i.css`
1
+ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BfdVIGgD.cjs`),t=require(`./decorate-F9CuyeHg.cjs`);require(`./mixins.cjs`);let n=require(`rxjs`),r=require(`lit/decorators.js`),i=require(`lit`);var a=class extends e.t(i.css`
2
2
  :host {
3
3
  display: block;
4
4
  cursor: pointer;
@@ -1 +1 @@
1
- {"version":3,"file":"option-DxIFpYpC.cjs","names":[],"sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n/**\n * `schmancy-option` is an option element for schmancy-select and schmancy-autocomplete components.\n *\n * @fires click - When the option is clicked\n */\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t\toutline: none;\n\t}\n\n\t:host(:focus-visible) {\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\n\t\toutline-offset: -2px;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t:host([disabled]) {\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n`) {\n\t/**\n\t * The value of the option, will be used when selected.\n\t */\n\t@property({ type: String })\n\tvalue: string = ''\n\n\t/**\n\t * The human-readable label for the option.\n\t */\n\t@property({ type: String })\n\tlabel: string = ''\n\n\t/**\n\t * Whether the option is currently selected.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tselected: boolean = false\n\n\t/**\n\t * Whether the option is disabled.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled: boolean = false\n\n\t/**\n\t * Optional group this option belongs to (for option grouping).\n\t */\n\t@property({ type: String })\n\tgroup: string = ''\n\n\t/**\n\t * Optional icon or image to display before the label.\n\t */\n\t@property({ type: String })\n\ticon: string = ''\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Ensure the option has an ID for accessibility\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-option-${Math.random().toString(36).substring(2, 9)}`\n\t\t}\n\n\t\t// If no label was provided, use the text content or value\n\t\tif (!this.label) {\n\t\t\tthis.label = this.textContent?.trim() || this.value\n\t\t}\n\n\t\t// If value wasn't set but there's text content, use that as the value\n\t\tif (!this.value && this.textContent) {\n\t\t\tthis.value = this.textContent.trim()\n\t\t}\n\n\t\t// Make the option clickable\n\t\tfromEvent<MouseEvent>(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tif (this.disabled) return\n\t\t\t\t// Dispatch a custom event with this option's value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('option-select', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\tfromEvent<KeyboardEvent>(this, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\t// Handle space and enter as clicks\n\t\t\t\tif (e.key === ' ' || e.key === 'Enter') {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\tif (this.disabled) return\n\t\t\t\t\t// Dispatch a custom event with this option's value\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent('option-select', {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tdisconnectedCallback() {\n\t\t// Event listeners are automatically cleaned up via takeUntil(this.disconnecting)\n\t\tsuper.disconnectedCallback()\n\t}\n\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'py-2': true,\n\t\t\t'px-3': true,\n\t\t\trounded: true,\n\t\t\t'text-sm': true,\n\t\t\t'w-full': true,\n\t\t\tflex: true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t// Selected state\n\t\t\t'bg-primary-container': this.selected,\n\t\t\t'text-primary-onContainer': this.selected,\n\t\t\t// Hover state (when not selected)\n\t\t\t'hover:bg-surface-high': !this.selected,\n\t\t\t// Focus state\n\t\t\t'focus:outline-none': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} role=\"option\" aria-selected=${this.selected} aria-disabled=${this.disabled}>\n\t\t\t\t${this.icon ? html`<span class=\"icon\">${this.icon}</span>` : ''}\n\t\t\t\t<span class=\"flex-1\">${this.label || this.value}</span>\n\t\t\t\t${this.selected\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<span class=\"check\">\n\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<polyline points=\"20 6 9 17 4 12\"></polyline>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"mappings":"oNAWe,IAAA,EAAA,cAA6B,EAAA,EAAgB,EAAA,GAAG;;;;;;;;;;;;;;;;;;;;;4CA0B9C,GAAA,KAAA,MAMA,GAAA,KAAA,SAAA,CAMI,EAAA,KAAA,SAAA,CAMA,EAAA,KAAA,MAMJ,GAAA,KAAA,KAMD,GAEf,mBAAA,CACC,MAAM,mBAAA,CAGD,AACJ,KAAK,KAAK,mBAAmB,KAAK,QAAA,CAAS,SAAS,GAAA,CAAI,UAAU,EAAG,EAAA,GAIjE,AACJ,KAAK,QAAQ,KAAK,aAAa,MAAA,EAAU,KAAK,MAAA,CAI1C,KAAK,OAAS,KAAK,cACvB,KAAK,MAAQ,KAAK,YAAY,MAAA,GAI/B,EAAA,EAAA,WAAsB,KAAM,QAAA,CAC1B,MAAA,EAAA,EAAA,WAAe,KAAK,cAAA,CAAA,CACpB,UAAW,GAAA,CACX,EAAE,iBAAA,CACE,KAAK,UAET,KAAK,cACJ,IAAI,YAAY,gBAAiB,CAChC,QAAA,CAAS,EACT,SAAA,CAAU,EACV,OAAQ,CAAE,MAAO,KAAK,MAAA,CAAA,CAAA,CAAA,EAAA,EAK1B,EAAA,EAAA,WAAyB,KAAM,UAAA,CAC7B,MAAA,EAAA,EAAA,WAAe,KAAK,cAAA,CAAA,CACpB,UAAW,GAAA,CAEX,GAAI,EAAE,MAAQ,KAAO,EAAE,MAAQ,QAAS,CAGvC,GAFA,EAAE,gBAAA,CACF,EAAE,iBAAA,CACE,KAAK,SAAU,OAEnB,KAAK,cACJ,IAAI,YAAY,gBAAiB,CAChC,QAAA,CAAS,EACT,SAAA,CAAU,EACV,OAAQ,CAAE,MAAO,KAAK,MAAA,CAAA,CAAA,CAAA,GAAA,CAO5B,sBAAA,CAEC,MAAM,sBAAA,CAIP,QAAA,CACC,IAAM,EAAU,CACf,OAAA,CAAQ,EACR,OAAA,CAAQ,EACR,QAAA,CAAS,EACT,UAAA,CAAW,EACX,SAAA,CAAU,EACV,KAAA,CAAM,EACN,eAAA,CAAgB,EAChB,QAAA,CAAS,EAET,uBAAwB,KAAK,SAC7B,2BAA4B,KAAK,SAEjC,wBAAA,CAA0B,KAAK,SAE/B,qBAAA,CAAsB,EAAA,CAGvB,MAAO,GAAA,IAAI;gBACG,KAAK,SAAS,EAAA,CAAA,+BAAwC,KAAK,SAAA,iBAA0B,KAAK,SAAA;MACpG,KAAK,KAAO,EAAA,IAAI,sBAAsB,KAAK,KAAA,SAAgB,GAAA;2BACtC,KAAK,OAAS,KAAK,MAAA;MACxC,KAAK,SACJ,EAAA,IAAI;;;;;;;;;;;;;;;QAgBJ,GAAA;;0BArII,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjB,CAAE,KAAM,QAAS,QAAA,CAAS,EAAA,CAAA,CAAA,CAAO,EAAA,UAAA,WAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjC,CAAE,KAAM,QAAS,QAAA,CAAS,EAAA,CAAA,CAAA,CAAO,EAAA,UAAA,WAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjC,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAxDb,kBAAA,CAAA,CAAkB,EAAA"}
1
+ {"version":3,"file":"option-BmbP5ulK.cjs","names":[],"sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n/**\n * `schmancy-option` is an option element for schmancy-select and schmancy-autocomplete components.\n *\n * @fires click - When the option is clicked\n */\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t\toutline: none;\n\t}\n\n\t:host(:focus-visible) {\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\n\t\toutline-offset: -2px;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t:host([disabled]) {\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n`) {\n\t/**\n\t * The value of the option, will be used when selected.\n\t */\n\t@property({ type: String })\n\tvalue: string = ''\n\n\t/**\n\t * The human-readable label for the option.\n\t */\n\t@property({ type: String })\n\tlabel: string = ''\n\n\t/**\n\t * Whether the option is currently selected.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tselected: boolean = false\n\n\t/**\n\t * Whether the option is disabled.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled: boolean = false\n\n\t/**\n\t * Optional group this option belongs to (for option grouping).\n\t */\n\t@property({ type: String })\n\tgroup: string = ''\n\n\t/**\n\t * Optional icon or image to display before the label.\n\t */\n\t@property({ type: String })\n\ticon: string = ''\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Ensure the option has an ID for accessibility\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-option-${Math.random().toString(36).substring(2, 9)}`\n\t\t}\n\n\t\t// If no label was provided, use the text content or value\n\t\tif (!this.label) {\n\t\t\tthis.label = this.textContent?.trim() || this.value\n\t\t}\n\n\t\t// If value wasn't set but there's text content, use that as the value\n\t\tif (!this.value && this.textContent) {\n\t\t\tthis.value = this.textContent.trim()\n\t\t}\n\n\t\t// Make the option clickable\n\t\tfromEvent<MouseEvent>(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tif (this.disabled) return\n\t\t\t\t// Dispatch a custom event with this option's value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('option-select', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\tfromEvent<KeyboardEvent>(this, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\t// Handle space and enter as clicks\n\t\t\t\tif (e.key === ' ' || e.key === 'Enter') {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\tif (this.disabled) return\n\t\t\t\t\t// Dispatch a custom event with this option's value\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent('option-select', {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tdisconnectedCallback() {\n\t\t// Event listeners are automatically cleaned up via takeUntil(this.disconnecting)\n\t\tsuper.disconnectedCallback()\n\t}\n\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'py-2': true,\n\t\t\t'px-3': true,\n\t\t\trounded: true,\n\t\t\t'text-sm': true,\n\t\t\t'w-full': true,\n\t\t\tflex: true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t// Selected state\n\t\t\t'bg-primary-container': this.selected,\n\t\t\t'text-primary-onContainer': this.selected,\n\t\t\t// Hover state (when not selected)\n\t\t\t'hover:bg-surface-high': !this.selected,\n\t\t\t// Focus state\n\t\t\t'focus:outline-none': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} role=\"option\" aria-selected=${this.selected} aria-disabled=${this.disabled}>\n\t\t\t\t${this.icon ? html`<span class=\"icon\">${this.icon}</span>` : ''}\n\t\t\t\t<span class=\"flex-1\">${this.label || this.value}</span>\n\t\t\t\t${this.selected\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<span class=\"check\">\n\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<polyline points=\"20 6 9 17 4 12\"></polyline>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"mappings":"oNAWe,IAAA,EAAA,cAA6B,EAAA,EAAgB,EAAA,GAAG;;;;;;;;;;;;;;;;;;;;;4CA0B9C,GAAA,KAAA,MAMA,GAAA,KAAA,SAAA,CAMI,EAAA,KAAA,SAAA,CAMA,EAAA,KAAA,MAMJ,GAAA,KAAA,KAMD,GAEf,mBAAA,CACC,MAAM,mBAAA,CAGD,AACJ,KAAK,KAAK,mBAAmB,KAAK,QAAA,CAAS,SAAS,GAAA,CAAI,UAAU,EAAG,EAAA,GAIjE,AACJ,KAAK,QAAQ,KAAK,aAAa,MAAA,EAAU,KAAK,MAAA,CAI1C,KAAK,OAAS,KAAK,cACvB,KAAK,MAAQ,KAAK,YAAY,MAAA,GAI/B,EAAA,EAAA,WAAsB,KAAM,QAAA,CAC1B,MAAA,EAAA,EAAA,WAAe,KAAK,cAAA,CAAA,CACpB,UAAW,GAAA,CACX,EAAE,iBAAA,CACE,KAAK,UAET,KAAK,cACJ,IAAI,YAAY,gBAAiB,CAChC,QAAA,CAAS,EACT,SAAA,CAAU,EACV,OAAQ,CAAE,MAAO,KAAK,MAAA,CAAA,CAAA,CAAA,EAAA,EAK1B,EAAA,EAAA,WAAyB,KAAM,UAAA,CAC7B,MAAA,EAAA,EAAA,WAAe,KAAK,cAAA,CAAA,CACpB,UAAW,GAAA,CAEX,GAAI,EAAE,MAAQ,KAAO,EAAE,MAAQ,QAAS,CAGvC,GAFA,EAAE,gBAAA,CACF,EAAE,iBAAA,CACE,KAAK,SAAU,OAEnB,KAAK,cACJ,IAAI,YAAY,gBAAiB,CAChC,QAAA,CAAS,EACT,SAAA,CAAU,EACV,OAAQ,CAAE,MAAO,KAAK,MAAA,CAAA,CAAA,CAAA,GAAA,CAO5B,sBAAA,CAEC,MAAM,sBAAA,CAIP,QAAA,CACC,IAAM,EAAU,CACf,OAAA,CAAQ,EACR,OAAA,CAAQ,EACR,QAAA,CAAS,EACT,UAAA,CAAW,EACX,SAAA,CAAU,EACV,KAAA,CAAM,EACN,eAAA,CAAgB,EAChB,QAAA,CAAS,EAET,uBAAwB,KAAK,SAC7B,2BAA4B,KAAK,SAEjC,wBAAA,CAA0B,KAAK,SAE/B,qBAAA,CAAsB,EAAA,CAGvB,MAAO,GAAA,IAAI;gBACG,KAAK,SAAS,EAAA,CAAA,+BAAwC,KAAK,SAAA,iBAA0B,KAAK,SAAA;MACpG,KAAK,KAAO,EAAA,IAAI,sBAAsB,KAAK,KAAA,SAAgB,GAAA;2BACtC,KAAK,OAAS,KAAK,MAAA;MACxC,KAAK,SACJ,EAAA,IAAI;;;;;;;;;;;;;;;QAgBJ,GAAA;;0BArII,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjB,CAAE,KAAM,QAAS,QAAA,CAAS,EAAA,CAAA,CAAA,CAAO,EAAA,UAAA,WAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjC,CAAE,KAAM,QAAS,QAAA,CAAS,EAAA,CAAA,CAAA,CAAO,EAAA,UAAA,WAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjC,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,QAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAMjB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eAxDb,kBAAA,CAAA,CAAkB,EAAA"}
@@ -1,4 +1,4 @@
1
- import { t as e } from "./tailwind.mixin-ywtUNG2c.js";
1
+ import { t as e } from "./tailwind.mixin-CNdR3zFD.js";
2
2
  import { t } from "./decorate-D_utPUsC.js";
3
3
  import "./mixins.js";
4
4
  import { fromEvent as n, takeUntil as r } from "rxjs";
@@ -1 +1 @@
1
- {"version":3,"file":"option-CNzW-sdU.js","names":[],"sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n/**\n * `schmancy-option` is an option element for schmancy-select and schmancy-autocomplete components.\n *\n * @fires click - When the option is clicked\n */\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t\toutline: none;\n\t}\n\n\t:host(:focus-visible) {\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\n\t\toutline-offset: -2px;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t:host([disabled]) {\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n`) {\n\t/**\n\t * The value of the option, will be used when selected.\n\t */\n\t@property({ type: String })\n\tvalue: string = ''\n\n\t/**\n\t * The human-readable label for the option.\n\t */\n\t@property({ type: String })\n\tlabel: string = ''\n\n\t/**\n\t * Whether the option is currently selected.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tselected: boolean = false\n\n\t/**\n\t * Whether the option is disabled.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled: boolean = false\n\n\t/**\n\t * Optional group this option belongs to (for option grouping).\n\t */\n\t@property({ type: String })\n\tgroup: string = ''\n\n\t/**\n\t * Optional icon or image to display before the label.\n\t */\n\t@property({ type: String })\n\ticon: string = ''\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Ensure the option has an ID for accessibility\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-option-${Math.random().toString(36).substring(2, 9)}`\n\t\t}\n\n\t\t// If no label was provided, use the text content or value\n\t\tif (!this.label) {\n\t\t\tthis.label = this.textContent?.trim() || this.value\n\t\t}\n\n\t\t// If value wasn't set but there's text content, use that as the value\n\t\tif (!this.value && this.textContent) {\n\t\t\tthis.value = this.textContent.trim()\n\t\t}\n\n\t\t// Make the option clickable\n\t\tfromEvent<MouseEvent>(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tif (this.disabled) return\n\t\t\t\t// Dispatch a custom event with this option's value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('option-select', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\tfromEvent<KeyboardEvent>(this, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\t// Handle space and enter as clicks\n\t\t\t\tif (e.key === ' ' || e.key === 'Enter') {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\tif (this.disabled) return\n\t\t\t\t\t// Dispatch a custom event with this option's value\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent('option-select', {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tdisconnectedCallback() {\n\t\t// Event listeners are automatically cleaned up via takeUntil(this.disconnecting)\n\t\tsuper.disconnectedCallback()\n\t}\n\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'py-2': true,\n\t\t\t'px-3': true,\n\t\t\trounded: true,\n\t\t\t'text-sm': true,\n\t\t\t'w-full': true,\n\t\t\tflex: true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t// Selected state\n\t\t\t'bg-primary-container': this.selected,\n\t\t\t'text-primary-onContainer': this.selected,\n\t\t\t// Hover state (when not selected)\n\t\t\t'hover:bg-surface-high': !this.selected,\n\t\t\t// Focus state\n\t\t\t'focus:outline-none': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} role=\"option\" aria-selected=${this.selected} aria-disabled=${this.disabled}>\n\t\t\t\t${this.icon ? html`<span class=\"icon\">${this.icon}</span>` : ''}\n\t\t\t\t<span class=\"flex-1\">${this.label || this.value}</span>\n\t\t\t\t${this.selected\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<span class=\"check\">\n\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<polyline points=\"20 6 9 17 4 12\"></polyline>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"mappings":";;;;;;AAWe,IAAA,IAAA,cAA6B,EAAgB,CAAG;;;;;;;;;;;;;;;;;;;;;;;4BA0B9C,IAAA,KAAA,QAMA,IAAA,KAAA,WAAA,CAMI,GAAA,KAAA,WAAA,CAMA,GAAA,KAAA,QAMJ,IAAA,KAAA,OAMD;;CAEf,oBAAA;AACC,QAAM,mBAAA,EAGD,AACJ,KAAK,OAAK,mBAAmB,KAAK,QAAA,CAAS,SAAS,GAAA,CAAI,UAAU,GAAG,EAAA,IAIjE,AACJ,KAAK,UAAQ,KAAK,aAAa,MAAA,IAAU,KAAK,OAAA,CAI1C,KAAK,SAAS,KAAK,gBACvB,KAAK,QAAQ,KAAK,YAAY,MAAA,GAI/B,EAAsB,MAAM,QAAA,CAC1B,KAAK,EAAU,KAAK,cAAA,CAAA,CACpB,WAAW,MAAA;AACX,KAAE,iBAAA,EACE,KAAK,YAET,KAAK,cACJ,IAAI,YAAY,iBAAiB;IAChC,SAAA,CAAS;IACT,UAAA,CAAU;IACV,QAAQ,EAAE,OAAO,KAAK,OAAA;IAAA,CAAA,CAAA;IAAA,EAK1B,EAAyB,MAAM,UAAA,CAC7B,KAAK,EAAU,KAAK,cAAA,CAAA,CACpB,WAAW,MAAA;AAEX,OAAI,EAAE,QAAQ,OAAO,EAAE,QAAQ,SAAS;AAGvC,QAFA,EAAE,gBAAA,EACF,EAAE,iBAAA,EACE,KAAK,SAAU;AAEnB,SAAK,cACJ,IAAI,YAAY,iBAAiB;KAChC,SAAA,CAAS;KACT,UAAA,CAAU;KACV,QAAQ,EAAE,OAAO,KAAK,OAAA;KAAA,CAAA,CAAA;;IAAA;;CAO5B,uBAAA;AAEC,QAAM,sBAAA;;CAIP,SAAA;EACC,IAAM,IAAU;GACf,QAAA,CAAQ;GACR,QAAA,CAAQ;GACR,SAAA,CAAS;GACT,WAAA,CAAW;GACX,UAAA,CAAU;GACV,MAAA,CAAM;GACN,gBAAA,CAAgB;GAChB,SAAA,CAAS;GAET,wBAAwB,KAAK;GAC7B,4BAA4B,KAAK;GAEjC,yBAAA,CAA0B,KAAK;GAE/B,sBAAA,CAAsB;GAAA;AAGvB,SAAO,CAAI;gBACG,KAAK,SAAS,EAAA,CAAA,+BAAwC,KAAK,SAAA,iBAA0B,KAAK,SAAA;MACpG,KAAK,OAAO,CAAI,sBAAsB,KAAK,KAAA,WAAgB,GAAA;2BACtC,KAAK,SAAS,KAAK,MAAA;MACxC,KAAK,WACJ,CAAI;;;;;;;;;;;;;;;UAgBJ,GAAA;;;;;GArIL,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAM1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAM1B,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAM1C,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAM1C,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAM1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAxD3B,EAAc,kBAAA,CAAA,EAAkB,EAAA"}
1
+ {"version":3,"file":"option-DuAlGv27.js","names":[],"sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n/**\n * `schmancy-option` is an option element for schmancy-select and schmancy-autocomplete components.\n *\n * @fires click - When the option is clicked\n */\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t\toutline: none;\n\t}\n\n\t:host(:focus-visible) {\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\n\t\toutline-offset: -2px;\n\t}\n\n\t:host([hidden]) {\n\t\tdisplay: none;\n\t}\n\n\t:host([disabled]) {\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n`) {\n\t/**\n\t * The value of the option, will be used when selected.\n\t */\n\t@property({ type: String })\n\tvalue: string = ''\n\n\t/**\n\t * The human-readable label for the option.\n\t */\n\t@property({ type: String })\n\tlabel: string = ''\n\n\t/**\n\t * Whether the option is currently selected.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tselected: boolean = false\n\n\t/**\n\t * Whether the option is disabled.\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled: boolean = false\n\n\t/**\n\t * Optional group this option belongs to (for option grouping).\n\t */\n\t@property({ type: String })\n\tgroup: string = ''\n\n\t/**\n\t * Optional icon or image to display before the label.\n\t */\n\t@property({ type: String })\n\ticon: string = ''\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Ensure the option has an ID for accessibility\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-option-${Math.random().toString(36).substring(2, 9)}`\n\t\t}\n\n\t\t// If no label was provided, use the text content or value\n\t\tif (!this.label) {\n\t\t\tthis.label = this.textContent?.trim() || this.value\n\t\t}\n\n\t\t// If value wasn't set but there's text content, use that as the value\n\t\tif (!this.value && this.textContent) {\n\t\t\tthis.value = this.textContent.trim()\n\t\t}\n\n\t\t// Make the option clickable\n\t\tfromEvent<MouseEvent>(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tif (this.disabled) return\n\t\t\t\t// Dispatch a custom event with this option's value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('option-select', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\tfromEvent<KeyboardEvent>(this, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e) => {\n\t\t\t\t// Handle space and enter as clicks\n\t\t\t\tif (e.key === ' ' || e.key === 'Enter') {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\tif (this.disabled) return\n\t\t\t\t\t// Dispatch a custom event with this option's value\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent('option-select', {\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\tdetail: { value: this.value },\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tdisconnectedCallback() {\n\t\t// Event listeners are automatically cleaned up via takeUntil(this.disconnecting)\n\t\tsuper.disconnectedCallback()\n\t}\n\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'py-2': true,\n\t\t\t'px-3': true,\n\t\t\trounded: true,\n\t\t\t'text-sm': true,\n\t\t\t'w-full': true,\n\t\t\tflex: true,\n\t\t\t'items-center': true,\n\t\t\t'gap-2': true,\n\t\t\t// Selected state\n\t\t\t'bg-primary-container': this.selected,\n\t\t\t'text-primary-onContainer': this.selected,\n\t\t\t// Hover state (when not selected)\n\t\t\t'hover:bg-surface-high': !this.selected,\n\t\t\t// Focus state\n\t\t\t'focus:outline-none': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div class=${this.classMap(classes)} role=\"option\" aria-selected=${this.selected} aria-disabled=${this.disabled}>\n\t\t\t\t${this.icon ? html`<span class=\"icon\">${this.icon}</span>` : ''}\n\t\t\t\t<span class=\"flex-1\">${this.label || this.value}</span>\n\t\t\t\t${this.selected\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<span class=\"check\">\n\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<polyline points=\"20 6 9 17 4 12\"></polyline>\n\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"mappings":";;;;;;AAWe,IAAA,IAAA,cAA6B,EAAgB,CAAG;;;;;;;;;;;;;;;;;;;;;;;4BA0B9C,IAAA,KAAA,QAMA,IAAA,KAAA,WAAA,CAMI,GAAA,KAAA,WAAA,CAMA,GAAA,KAAA,QAMJ,IAAA,KAAA,OAMD;;CAEf,oBAAA;AACC,QAAM,mBAAA,EAGD,AACJ,KAAK,OAAK,mBAAmB,KAAK,QAAA,CAAS,SAAS,GAAA,CAAI,UAAU,GAAG,EAAA,IAIjE,AACJ,KAAK,UAAQ,KAAK,aAAa,MAAA,IAAU,KAAK,OAAA,CAI1C,KAAK,SAAS,KAAK,gBACvB,KAAK,QAAQ,KAAK,YAAY,MAAA,GAI/B,EAAsB,MAAM,QAAA,CAC1B,KAAK,EAAU,KAAK,cAAA,CAAA,CACpB,WAAW,MAAA;AACX,KAAE,iBAAA,EACE,KAAK,YAET,KAAK,cACJ,IAAI,YAAY,iBAAiB;IAChC,SAAA,CAAS;IACT,UAAA,CAAU;IACV,QAAQ,EAAE,OAAO,KAAK,OAAA;IAAA,CAAA,CAAA;IAAA,EAK1B,EAAyB,MAAM,UAAA,CAC7B,KAAK,EAAU,KAAK,cAAA,CAAA,CACpB,WAAW,MAAA;AAEX,OAAI,EAAE,QAAQ,OAAO,EAAE,QAAQ,SAAS;AAGvC,QAFA,EAAE,gBAAA,EACF,EAAE,iBAAA,EACE,KAAK,SAAU;AAEnB,SAAK,cACJ,IAAI,YAAY,iBAAiB;KAChC,SAAA,CAAS;KACT,UAAA,CAAU;KACV,QAAQ,EAAE,OAAO,KAAK,OAAA;KAAA,CAAA,CAAA;;IAAA;;CAO5B,uBAAA;AAEC,QAAM,sBAAA;;CAIP,SAAA;EACC,IAAM,IAAU;GACf,QAAA,CAAQ;GACR,QAAA,CAAQ;GACR,SAAA,CAAS;GACT,WAAA,CAAW;GACX,UAAA,CAAU;GACV,MAAA,CAAM;GACN,gBAAA,CAAgB;GAChB,SAAA,CAAS;GAET,wBAAwB,KAAK;GAC7B,4BAA4B,KAAK;GAEjC,yBAAA,CAA0B,KAAK;GAE/B,sBAAA,CAAsB;GAAA;AAGvB,SAAO,CAAI;gBACG,KAAK,SAAS,EAAA,CAAA,+BAAwC,KAAK,SAAA,iBAA0B,KAAK,SAAA;MACpG,KAAK,OAAO,CAAI,sBAAsB,KAAK,KAAA,WAAgB,GAAA;2BACtC,KAAK,SAAS,KAAK,MAAA;MACxC,KAAK,WACJ,CAAI;;;;;;;;;;;;;;;UAgBJ,GAAA;;;;;GArIL,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAM1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAM1B,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAM1C,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAM1C,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAM1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAxD3B,EAAc,kBAAA,CAAA,EAAkB,EAAA"}
package/dist/option.cjs CHANGED
@@ -1 +1 @@
1
- require(`./option-DxIFpYpC.cjs`);
1
+ require(`./option-BmbP5ulK.cjs`);
package/dist/option.js CHANGED
@@ -1 +1 @@
1
- import "./option-CNzW-sdU.js";
1
+ import "./option-DuAlGv27.js";
package/dist/page.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./decorate-F9CuyeHg.cjs`),t=require(`./litElement.mixin-De5SG5z7.cjs`);require(`./mixins.cjs`);const n=require(`./theme.service-ETiKUwVy.cjs`),r=require(`./layout-PZCF3kwl.cjs`);require(`./scroll-DZAB4JFv.cjs`);let i=require(`rxjs`),a=require(`rxjs/operators`),o=require(`lit/decorators.js`),s=require(`lit`);var c=class extends t.t(s.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./decorate-F9CuyeHg.cjs`),t=require(`./litElement.mixin-DeT3kAOS.cjs`);require(`./mixins.cjs`);const n=require(`./theme.service-ETiKUwVy.cjs`),r=require(`./layout-PZCF3kwl.cjs`);require(`./scroll-hWt0b1gK.cjs`);let i=require(`rxjs`),a=require(`rxjs/operators`),o=require(`lit/decorators.js`),s=require(`lit`);var c=class extends t.t(s.css`
2
2
  :host {
3
3
  display: block;
4
4
  box-sizing: border-box;
package/dist/page.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"page.cjs","names":[],"sources":["../src/page/page.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport '../layout/scroll/scroll'\nimport { Subject, fromEvent, merge, EMPTY, timer, combineLatest } from 'rxjs'\nimport { debounceTime, switchMap, takeUntil, distinctUntilChanged, map, tap, startWith } from 'rxjs/operators'\nimport { theme } from '../theme/theme.service'\nimport { fromResizeObserver } from '../directives/layout'\n\n/**\n * Native mobile-like page container.\n * Prevents double-tap zoom, pull-to-refresh, rubber-banding.\n * Automatically fills remaining viewport height.\n *\n * @element schmancy-page\n *\n * @example\n * html`\n * <schmancy-page rows=\"1fr_2fr_auto\">\n * <header>App Bar</header>\n * <main>Scrollable content</main>\n * <footer>Navigation</footer>\n * </schmancy-page>\n * `\n */\n@customElement('schmancy-page')\nexport class SchmancyPage extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tbox-sizing: border-box;\n\t\ttouch-action: pan-x pan-y;\n\t\toverscroll-behavior: none;\n\t\t-webkit-tap-highlight-color: transparent;\n\t}\n`) {\n\t/** Custom grid-template-rows using underscores (e.g. \"1fr_2fr_auto\") */\n\t@property({ type: String })\n\trows = 'auto_1fr_auto'\n\n\t@property({ type: Boolean, attribute: 'show-scrollbar' })\n\tshowScrollbar = false\n\n\t@property({ type: Boolean, attribute: 'no-select' })\n\tnoSelect = false\n\n\tprivate heightDisconnecting$ = new Subject<void>()\n\n\tprivate calculateHeight(): number {\n\t\tconst viewportHeight = window.visualViewport?.height ?? window.innerHeight\n\t\tconst topOffset = this.getBoundingClientRect().top\n\t\treturn Math.max(0, viewportHeight - topOffset)\n\t}\n\n\tprivate applyHeight(height: number, bottomPadding: number) {\n\t\tthis.style.height = `${height}px`\n\t\tthis.style.paddingBottom = `${bottomPadding}px`\n\t}\n\n\tprivate setupHeightStream() {\n\t\t// Shared resize stream\n\t\tconst windowResize$ = fromEvent(window, 'resize', { passive: true })\n\t\tconst viewportEvents$ = window.visualViewport\n\t\t\t? merge(\n\t\t\t\t\tfromEvent(window.visualViewport, 'resize', { passive: true }),\n\t\t\t\t\tfromEvent(window.visualViewport, 'scroll', { passive: true })\n\t\t\t\t)\n\t\t\t: windowResize$\n\t\tconst orientation$ = fromEvent(window, 'orientationchange')\n\t\tconst focusOut$ = fromEvent(document, 'focusout', { passive: true }).pipe(\n\t\t\tswitchMap(() => timer(100))\n\t\t)\n\n\t\tconst globalEvents$ = merge(windowResize$, viewportEvents$, orientation$, focusOut$).pipe(\n\t\t\tdebounceTime(16)\n\t\t)\n\n\t\t// Parent resize detects layout shifts\n\t\tconst parentResize$ = this.parentElement\n\t\t\t? fromResizeObserver(this.parentElement)\n\t\t\t: EMPTY\n\n\t\t// Combine all sources, calculate height and padding, dedupe, apply\n\t\tcombineLatest([\n\t\t\tmerge(parentResize$, globalEvents$).pipe(startWith(null)),\n\t\t\ttheme.bottomOffset$,\n\t\t\ttheme.fullscreen$\n\t\t]).pipe(\n\t\t\tmap(([, bottomOffset, isFullscreen]) => ({\n\t\t\t\theight: this.calculateHeight(),\n\t\t\t\tpadding: isFullscreen ? 0 : bottomOffset\n\t\t\t})),\n\t\t\tdistinctUntilChanged((a, b) => a.height === b.height && a.padding === b.padding),\n\t\t\ttap(({ height, padding }) => this.applyHeight(height, padding)),\n\t\t\ttakeUntil(this.heightDisconnecting$)\n\t\t).subscribe()\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Auto-assign semantic elements to slots\n\t\tthis.querySelectorAll(':scope > header').forEach(el => el.setAttribute('slot', 'header'))\n\t\tthis.querySelectorAll(':scope > footer').forEach(el => el.setAttribute('slot', 'footer'))\n\t\t// Setup fullHeight on host\n\t\tthis.setupHeightStream()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.heightDisconnecting$.next()\n\t}\n\n\tprotected render() {\n\t\treturn html`\n\t\t\t<section\n\t\t\t\tclass=${this.classMap({\n\t\t\t\t\t'grid overflow-hidden h-full': true,\n\t\t\t\t\t'select-none': this.noSelect,\n\t\t\t\t})}\n\t\t\t\tstyle=\"grid-template-rows: ${this.rows.replace(/_/g, ' ')}\"\n\t\t\t>\n\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t<schmancy-scroll ?hide=${!this.showScrollbar}><slot></slot></schmancy-scroll>\n\t\t\t\t<schmancy-scroll ?hide=${!this.showScrollbar}>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</schmancy-scroll>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-page': SchmancyPage\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"page.cjs","names":[],"sources":["../src/page/page.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport '../layout/scroll/scroll'\nimport { Subject, fromEvent, merge, EMPTY, timer, combineLatest } from 'rxjs'\nimport { debounceTime, switchMap, takeUntil, distinctUntilChanged, map, tap, startWith } from 'rxjs/operators'\nimport { theme } from '../theme/theme.service'\nimport { fromResizeObserver } from '../directives/layout'\n\n/**\n * Native mobile-like page container.\n * Prevents double-tap zoom, pull-to-refresh, rubber-banding.\n * Automatically fills remaining viewport height.\n *\n * @element schmancy-page\n *\n * @example\n * html`\n * <schmancy-page rows=\"1fr_2fr_auto\">\n * <header>App Bar</header>\n * <main>Scrollable content</main>\n * <footer>Navigation</footer>\n * </schmancy-page>\n * `\n */\n@customElement('schmancy-page')\nexport class SchmancyPage extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tbox-sizing: border-box;\n\t\ttouch-action: pan-x pan-y;\n\t\toverscroll-behavior: none;\n\t\t-webkit-tap-highlight-color: transparent;\n\t}\n`) {\n\t/** Custom grid-template-rows using underscores (e.g. \"1fr_2fr_auto\") */\n\t@property({ type: String })\n\trows = 'auto_1fr_auto'\n\n\t@property({ type: Boolean, attribute: 'show-scrollbar' })\n\tshowScrollbar = false\n\n\t@property({ type: Boolean, attribute: 'no-select' })\n\tnoSelect = false\n\n\tprivate heightDisconnecting$ = new Subject<void>()\n\n\tprivate calculateHeight(): number {\n\t\tconst viewportHeight = window.visualViewport?.height ?? window.innerHeight\n\t\tconst topOffset = this.getBoundingClientRect().top\n\t\treturn Math.max(0, viewportHeight - topOffset)\n\t}\n\n\tprivate applyHeight(height: number, bottomPadding: number) {\n\t\tthis.style.height = `${height}px`\n\t\tthis.style.paddingBottom = `${bottomPadding}px`\n\t}\n\n\tprivate setupHeightStream() {\n\t\t// Shared resize stream\n\t\tconst windowResize$ = fromEvent(window, 'resize', { passive: true })\n\t\tconst viewportEvents$ = window.visualViewport\n\t\t\t? merge(\n\t\t\t\t\tfromEvent(window.visualViewport, 'resize', { passive: true }),\n\t\t\t\t\tfromEvent(window.visualViewport, 'scroll', { passive: true })\n\t\t\t\t)\n\t\t\t: windowResize$\n\t\tconst orientation$ = fromEvent(window, 'orientationchange')\n\t\tconst focusOut$ = fromEvent(document, 'focusout', { passive: true }).pipe(\n\t\t\tswitchMap(() => timer(100))\n\t\t)\n\n\t\tconst globalEvents$ = merge(windowResize$, viewportEvents$, orientation$, focusOut$).pipe(\n\t\t\tdebounceTime(16)\n\t\t)\n\n\t\t// Parent resize detects layout shifts\n\t\tconst parentResize$ = this.parentElement\n\t\t\t? fromResizeObserver(this.parentElement)\n\t\t\t: EMPTY\n\n\t\t// Combine all sources, calculate height and padding, dedupe, apply\n\t\tcombineLatest([\n\t\t\tmerge(parentResize$, globalEvents$).pipe(startWith(null)),\n\t\t\ttheme.bottomOffset$,\n\t\t\ttheme.fullscreen$\n\t\t]).pipe(\n\t\t\tmap(([, bottomOffset, isFullscreen]) => ({\n\t\t\t\theight: this.calculateHeight(),\n\t\t\t\tpadding: isFullscreen ? 0 : bottomOffset\n\t\t\t})),\n\t\t\tdistinctUntilChanged((a, b) => a.height === b.height && a.padding === b.padding),\n\t\t\ttap(({ height, padding }) => this.applyHeight(height, padding)),\n\t\t\ttakeUntil(this.heightDisconnecting$)\n\t\t).subscribe()\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Auto-assign semantic elements to slots\n\t\tthis.querySelectorAll(':scope > header').forEach(el => el.setAttribute('slot', 'header'))\n\t\tthis.querySelectorAll(':scope > footer').forEach(el => el.setAttribute('slot', 'footer'))\n\t\t// Setup fullHeight on host\n\t\tthis.setupHeightStream()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.heightDisconnecting$.next()\n\t}\n\n\tprotected render() {\n\t\treturn html`\n\t\t\t<section\n\t\t\t\tclass=${this.classMap({\n\t\t\t\t\t'grid overflow-hidden h-full': true,\n\t\t\t\t\t'select-none': this.noSelect,\n\t\t\t\t})}\n\t\t\t\tstyle=\"grid-template-rows: ${this.rows.replace(/_/g, ' ')}\"\n\t\t\t>\n\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t<schmancy-scroll ?hide=${!this.showScrollbar}><slot></slot></schmancy-scroll>\n\t\t\t\t<schmancy-scroll ?hide=${!this.showScrollbar}>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</schmancy-scroll>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-page': SchmancyPage\n\t}\n}\n"],"mappings":"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"}
package/dist/page.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "./decorate-D_utPUsC.js";
2
- import { t } from "./litElement.mixin-D6ZHgGZv.js";
2
+ import { t } from "./litElement.mixin-Mi8bar6B.js";
3
3
  import "./mixins.js";
4
4
  import { n } from "./theme.service-_qP5WvB9.js";
5
5
  import { t as r } from "./layout-BE2ld1IY.js";
6
- import "./scroll-D7QJYev7.js";
6
+ import "./scroll-57rkTHm8.js";
7
7
  import { EMPTY as i, Subject as a, combineLatest as o, fromEvent as s, merge as c, timer as l } from "rxjs";
8
8
  import { debounceTime as u, distinctUntilChanged as d, map as f, startWith as p, switchMap as m, takeUntil as h, tap as g } from "rxjs/operators";
9
9
  import { customElement as _, property as v } from "lit/decorators.js";
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./decorate-D_utPUsC.js";
2
- import { t } from "./litElement.mixin-D6ZHgGZv.js";
2
+ import { t } from "./litElement.mixin-Mi8bar6B.js";
3
3
  import { classMap as n } from "lit/directives/class-map.js";
4
4
  import { styleMap as r } from "lit/directives/style-map.js";
5
5
  import { customElement as i, property as a } from "lit/decorators.js";
@@ -1 +1 @@
1
- {"version":3,"file":"progress-DHmYCHmy.js","names":[],"sources":["../src/progress/progress.ts"],"sourcesContent":["import { $LitElement } from '@mixins/litElement.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { styleMap } from 'lit/directives/style-map.js'\n\n@customElement('schmancy-progress')\nexport default class SchmancyProgress extends $LitElement(css`\n :host {\n display: block;\n }\n\n /* Blackbird-style indeterminate animation with organic easing */\n @keyframes indeterminate {\n 0% {\n left: -30%;\n width: 20%;\n opacity: 0.6;\n }\n 25% {\n width: 35%;\n opacity: 1;\n }\n 50% {\n left: 40%;\n width: 30%;\n }\n 75% {\n width: 25%;\n opacity: 0.9;\n }\n 100% {\n left: 100%;\n width: 20%;\n opacity: 0.6;\n }\n }\n\n .indeterminate-animation {\n animation: indeterminate 1.8s cubic-bezier(0.34, 1.2, 0.64, 1) infinite;\n }\n`) {\n @property({ type: Number, reflect: true })\n value = 0\n\n @property({ type: Number, reflect: true })\n max = 100\n\n @property({ type: Boolean, reflect: true })\n indeterminate = false\n\n // M3 aligned track heights: xs=1px, sm=2px, md=4px, lg=8px\n @property({ type: String, reflect: true })\n size: 'xs' | 'sm' | 'md' | 'lg' = 'md'\n\n @property({ type: String, reflect: true })\n color: 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' = 'primary'\n\n @property({ type: Boolean, reflect: true })\n glass = false\n\n private get percentage(): number {\n if (this.indeterminate) return 0\n return Math.min(100, Math.max(0, (this.value / this.max) * 100))\n }\n\n protected render() {\n const containerClasses = {\n 'w-full': true,\n 'relative': true,\n 'overflow-hidden': true,\n 'rounded-full': true,\n 'h-px': this.size === 'xs', // 1px - M3 linear indicator track\n 'h-0.5': this.size === 'sm', // 2px\n 'h-1': this.size === 'md', // 4px - M3 default\n 'h-2': this.size === 'lg', // 8px\n // Glass effect background\n 'backdrop-blur-xl': this.glass,\n 'backdrop-saturate-150': this.glass,\n 'bg-surface-container/20': this.glass && !this.indeterminate,\n 'bg-surface-container': !this.glass,\n 'shadow-[inset_0_1px_2px_0_rgba(0,0,0,0.1)]': this.glass,\n 'border': this.glass,\n 'border-outline/20': this.glass\n }\n\n const barClasses = {\n 'h-full': true,\n 'rounded-full': true,\n 'transition-all': true,\n 'duration-300': true,\n 'ease-in-out': true,\n 'relative': true,\n 'bg-primary-default': this.color === 'primary' && !this.glass,\n 'bg-secondary-default': this.color === 'secondary' && !this.glass,\n 'bg-tertiary-default': this.color === 'tertiary' && !this.glass,\n 'bg-error-default': this.color === 'error' && !this.glass,\n 'bg-success-default': this.color === 'success' && !this.glass,\n 'absolute': this.indeterminate,\n 'indeterminate-animation': this.indeterminate\n }\n\n const barStyles = this.indeterminate \n ? {} \n : { width: `${this.percentage}%` }\n\n // Glass effect bar classes\n const glassBarClasses = {\n 'backdrop-blur-sm': this.glass,\n 'shadow-[0_0_20px_rgba(0,0,0,0.1)]': this.glass,\n // Use semi-transparent background colors for glass effect\n 'bg-primary-default/70': this.glass && this.color === 'primary',\n 'bg-secondary-default/70': this.glass && this.color === 'secondary',\n 'bg-tertiary-default/70': this.glass && this.color === 'tertiary',\n 'bg-error-default/70': this.glass && this.color === 'error',\n 'bg-success-default/70': this.glass && this.color === 'success',\n }\n\n return html`\n <div class=\"${classMap(containerClasses)}\">\n <div \n class=\"${classMap({...barClasses, ...glassBarClasses})}\"\n style=\"${styleMap(barStyles)}\"\n role=\"progressbar\"\n aria-valuenow=\"${this.value}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"${this.max}\"\n >\n ${this.glass ? html`\n <!-- Glass shine effect -->\n <div class=\"absolute inset-0 bg-linear-to-b from-surface-on/20 to-transparent rounded-full\"></div>\n ` : ''}\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-progress': SchmancyProgress\n }\n}\n"],"mappings":";;;;;;AAOe,IAAA,IAAA,cAA+B,EAAY,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAoCnD,GAAA,KAAA,MAGF,KAAA,KAAA,gBAAA,CAGU,GAAA,KAAA,OAIkB,MAAA,KAAA,QAGkC,WAAA,KAAA,QAAA,CAG5D;;CAER,IAAA,aAAY;AACV,SAAI,KAAK,gBAAsB,IACxB,KAAK,IAAI,KAAK,KAAK,IAAI,GAAI,KAAK,QAAQ,KAAK,MAAO,IAAA,CAAA;;CAG7D,SAAA;EACE,IAAM,IAAmB;GACvB,UAAA,CAAU;GACV,UAAA,CAAY;GACZ,mBAAA,CAAmB;GACnB,gBAAA,CAAgB;GAChB,QAAQ,KAAK,SAAS;GACtB,SAAS,KAAK,SAAS;GACvB,OAAO,KAAK,SAAS;GACrB,OAAO,KAAK,SAAS;GAErB,oBAAoB,KAAK;GACzB,yBAAyB,KAAK;GAC9B,2BAA2B,KAAK,SAAA,CAAU,KAAK;GAC/C,wBAAA,CAAyB,KAAK;GAC9B,8CAA8C,KAAK;GACnD,QAAU,KAAK;GACf,qBAAqB,KAAK;GAAA,EAGtB,IAAa;GACjB,UAAA,CAAU;GACV,gBAAA,CAAgB;GAChB,kBAAA,CAAkB;GAClB,gBAAA,CAAgB;GAChB,eAAA,CAAe;GACf,UAAA,CAAY;GACZ,sBAAsB,KAAK,UAAU,aAAV,CAAwB,KAAK;GACxD,wBAAwB,KAAK,UAAU,eAAV,CAA0B,KAAK;GAC5D,uBAAuB,KAAK,UAAU,cAAV,CAAyB,KAAK;GAC1D,oBAAoB,KAAK,UAAU,WAAV,CAAsB,KAAK;GACpD,sBAAsB,KAAK,UAAU,aAAV,CAAwB,KAAK;GACxD,UAAY,KAAK;GACjB,2BAA2B,KAAK;GAAA,EAG5B,IAAY,KAAK,gBACnB,EAAA,GACA,EAAE,OAAO,GAAG,KAAK,WAAA,IAAA,EAGf,IAAkB;GACtB,oBAAoB,KAAK;GACzB,qCAAqC,KAAK;GAE1C,yBAAyB,KAAK,SAAS,KAAK,UAAU;GACtD,2BAA2B,KAAK,SAAS,KAAK,UAAU;GACxD,0BAA0B,KAAK,SAAS,KAAK,UAAU;GACvD,uBAAuB,KAAK,SAAS,KAAK,UAAU;GACpD,yBAAyB,KAAK,SAAS,KAAK,UAAU;GAAV;AAG9C,SAAO,CAAI;oBACK,EAAS,EAAA,CAAA;;mBAEV,EAAS;GAAA,GAAI;GAAA,GAAe;GAAA,CAAA,CAAA;mBAC5B,EAAS,EAAA,CAAA;;2BAED,KAAK,MAAA;;2BAEL,KAAK,IAAA;;YAEpB,KAAK,QAAQ,CAAI;;;cAGf,GAAA;;;;;;GAzFX,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,OAAA,KAAA,EAAA,EAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,iBAAA,KAAA,EAAA,EAAA,EAAA,CAI1C,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CApD5C,EAAc,oBAAA,CAAA,EAAoB,EAAA"}
1
+ {"version":3,"file":"progress-BnXr7aAs.js","names":[],"sources":["../src/progress/progress.ts"],"sourcesContent":["import { $LitElement } from '@mixins/litElement.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { styleMap } from 'lit/directives/style-map.js'\n\n@customElement('schmancy-progress')\nexport default class SchmancyProgress extends $LitElement(css`\n :host {\n display: block;\n }\n\n /* Blackbird-style indeterminate animation with organic easing */\n @keyframes indeterminate {\n 0% {\n left: -30%;\n width: 20%;\n opacity: 0.6;\n }\n 25% {\n width: 35%;\n opacity: 1;\n }\n 50% {\n left: 40%;\n width: 30%;\n }\n 75% {\n width: 25%;\n opacity: 0.9;\n }\n 100% {\n left: 100%;\n width: 20%;\n opacity: 0.6;\n }\n }\n\n .indeterminate-animation {\n animation: indeterminate 1.8s cubic-bezier(0.34, 1.2, 0.64, 1) infinite;\n }\n`) {\n @property({ type: Number, reflect: true })\n value = 0\n\n @property({ type: Number, reflect: true })\n max = 100\n\n @property({ type: Boolean, reflect: true })\n indeterminate = false\n\n // M3 aligned track heights: xs=1px, sm=2px, md=4px, lg=8px\n @property({ type: String, reflect: true })\n size: 'xs' | 'sm' | 'md' | 'lg' = 'md'\n\n @property({ type: String, reflect: true })\n color: 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' = 'primary'\n\n @property({ type: Boolean, reflect: true })\n glass = false\n\n private get percentage(): number {\n if (this.indeterminate) return 0\n return Math.min(100, Math.max(0, (this.value / this.max) * 100))\n }\n\n protected render() {\n const containerClasses = {\n 'w-full': true,\n 'relative': true,\n 'overflow-hidden': true,\n 'rounded-full': true,\n 'h-px': this.size === 'xs', // 1px - M3 linear indicator track\n 'h-0.5': this.size === 'sm', // 2px\n 'h-1': this.size === 'md', // 4px - M3 default\n 'h-2': this.size === 'lg', // 8px\n // Glass effect background\n 'backdrop-blur-xl': this.glass,\n 'backdrop-saturate-150': this.glass,\n 'bg-surface-container/20': this.glass && !this.indeterminate,\n 'bg-surface-container': !this.glass,\n 'shadow-[inset_0_1px_2px_0_rgba(0,0,0,0.1)]': this.glass,\n 'border': this.glass,\n 'border-outline/20': this.glass\n }\n\n const barClasses = {\n 'h-full': true,\n 'rounded-full': true,\n 'transition-all': true,\n 'duration-300': true,\n 'ease-in-out': true,\n 'relative': true,\n 'bg-primary-default': this.color === 'primary' && !this.glass,\n 'bg-secondary-default': this.color === 'secondary' && !this.glass,\n 'bg-tertiary-default': this.color === 'tertiary' && !this.glass,\n 'bg-error-default': this.color === 'error' && !this.glass,\n 'bg-success-default': this.color === 'success' && !this.glass,\n 'absolute': this.indeterminate,\n 'indeterminate-animation': this.indeterminate\n }\n\n const barStyles = this.indeterminate \n ? {} \n : { width: `${this.percentage}%` }\n\n // Glass effect bar classes\n const glassBarClasses = {\n 'backdrop-blur-sm': this.glass,\n 'shadow-[0_0_20px_rgba(0,0,0,0.1)]': this.glass,\n // Use semi-transparent background colors for glass effect\n 'bg-primary-default/70': this.glass && this.color === 'primary',\n 'bg-secondary-default/70': this.glass && this.color === 'secondary',\n 'bg-tertiary-default/70': this.glass && this.color === 'tertiary',\n 'bg-error-default/70': this.glass && this.color === 'error',\n 'bg-success-default/70': this.glass && this.color === 'success',\n }\n\n return html`\n <div class=\"${classMap(containerClasses)}\">\n <div \n class=\"${classMap({...barClasses, ...glassBarClasses})}\"\n style=\"${styleMap(barStyles)}\"\n role=\"progressbar\"\n aria-valuenow=\"${this.value}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"${this.max}\"\n >\n ${this.glass ? html`\n <!-- Glass shine effect -->\n <div class=\"absolute inset-0 bg-linear-to-b from-surface-on/20 to-transparent rounded-full\"></div>\n ` : ''}\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-progress': SchmancyProgress\n }\n}\n"],"mappings":";;;;;;AAOe,IAAA,IAAA,cAA+B,EAAY,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAoCnD,GAAA,KAAA,MAGF,KAAA,KAAA,gBAAA,CAGU,GAAA,KAAA,OAIkB,MAAA,KAAA,QAGkC,WAAA,KAAA,QAAA,CAG5D;;CAER,IAAA,aAAY;AACV,SAAI,KAAK,gBAAsB,IACxB,KAAK,IAAI,KAAK,KAAK,IAAI,GAAI,KAAK,QAAQ,KAAK,MAAO,IAAA,CAAA;;CAG7D,SAAA;EACE,IAAM,IAAmB;GACvB,UAAA,CAAU;GACV,UAAA,CAAY;GACZ,mBAAA,CAAmB;GACnB,gBAAA,CAAgB;GAChB,QAAQ,KAAK,SAAS;GACtB,SAAS,KAAK,SAAS;GACvB,OAAO,KAAK,SAAS;GACrB,OAAO,KAAK,SAAS;GAErB,oBAAoB,KAAK;GACzB,yBAAyB,KAAK;GAC9B,2BAA2B,KAAK,SAAA,CAAU,KAAK;GAC/C,wBAAA,CAAyB,KAAK;GAC9B,8CAA8C,KAAK;GACnD,QAAU,KAAK;GACf,qBAAqB,KAAK;GAAA,EAGtB,IAAa;GACjB,UAAA,CAAU;GACV,gBAAA,CAAgB;GAChB,kBAAA,CAAkB;GAClB,gBAAA,CAAgB;GAChB,eAAA,CAAe;GACf,UAAA,CAAY;GACZ,sBAAsB,KAAK,UAAU,aAAV,CAAwB,KAAK;GACxD,wBAAwB,KAAK,UAAU,eAAV,CAA0B,KAAK;GAC5D,uBAAuB,KAAK,UAAU,cAAV,CAAyB,KAAK;GAC1D,oBAAoB,KAAK,UAAU,WAAV,CAAsB,KAAK;GACpD,sBAAsB,KAAK,UAAU,aAAV,CAAwB,KAAK;GACxD,UAAY,KAAK;GACjB,2BAA2B,KAAK;GAAA,EAG5B,IAAY,KAAK,gBACnB,EAAA,GACA,EAAE,OAAO,GAAG,KAAK,WAAA,IAAA,EAGf,IAAkB;GACtB,oBAAoB,KAAK;GACzB,qCAAqC,KAAK;GAE1C,yBAAyB,KAAK,SAAS,KAAK,UAAU;GACtD,2BAA2B,KAAK,SAAS,KAAK,UAAU;GACxD,0BAA0B,KAAK,SAAS,KAAK,UAAU;GACvD,uBAAuB,KAAK,SAAS,KAAK,UAAU;GACpD,yBAAyB,KAAK,SAAS,KAAK,UAAU;GAAV;AAG9C,SAAO,CAAI;oBACK,EAAS,EAAA,CAAA;;mBAEV,EAAS;GAAA,GAAI;GAAA,GAAe;GAAA,CAAA,CAAA;mBAC5B,EAAS,EAAA,CAAA;;2BAED,KAAK,MAAA;;2BAEL,KAAK,IAAA;;YAEpB,KAAK,QAAQ,CAAI;;;cAGf,GAAA;;;;;;GAzFX,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,OAAA,KAAA,EAAA,EAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,iBAAA,KAAA,EAAA,EAAA,EAAA,CAI1C,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAGzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CApD5C,EAAc,oBAAA,CAAA,EAAoB,EAAA"}
@@ -1,4 +1,4 @@
1
- require(`./chunk-BCfY8kxB.cjs`);const e=require(`./decorate-F9CuyeHg.cjs`),t=require(`./litElement.mixin-De5SG5z7.cjs`);let n=require(`lit/directives/class-map.js`),r=require(`lit/directives/style-map.js`),i=require(`lit/decorators.js`),a=require(`lit`);var o=class extends t.t(a.css`
1
+ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./decorate-F9CuyeHg.cjs`),t=require(`./litElement.mixin-DeT3kAOS.cjs`);let n=require(`lit/directives/class-map.js`),r=require(`lit/directives/style-map.js`),i=require(`lit/decorators.js`),a=require(`lit`);var o=class extends t.t(a.css`
2
2
  :host {
3
3
  display: block;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"progress-Cw6Qn3Kb.cjs","names":[],"sources":["../src/progress/progress.ts"],"sourcesContent":["import { $LitElement } from '@mixins/litElement.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { styleMap } from 'lit/directives/style-map.js'\n\n@customElement('schmancy-progress')\nexport default class SchmancyProgress extends $LitElement(css`\n :host {\n display: block;\n }\n\n /* Blackbird-style indeterminate animation with organic easing */\n @keyframes indeterminate {\n 0% {\n left: -30%;\n width: 20%;\n opacity: 0.6;\n }\n 25% {\n width: 35%;\n opacity: 1;\n }\n 50% {\n left: 40%;\n width: 30%;\n }\n 75% {\n width: 25%;\n opacity: 0.9;\n }\n 100% {\n left: 100%;\n width: 20%;\n opacity: 0.6;\n }\n }\n\n .indeterminate-animation {\n animation: indeterminate 1.8s cubic-bezier(0.34, 1.2, 0.64, 1) infinite;\n }\n`) {\n @property({ type: Number, reflect: true })\n value = 0\n\n @property({ type: Number, reflect: true })\n max = 100\n\n @property({ type: Boolean, reflect: true })\n indeterminate = false\n\n // M3 aligned track heights: xs=1px, sm=2px, md=4px, lg=8px\n @property({ type: String, reflect: true })\n size: 'xs' | 'sm' | 'md' | 'lg' = 'md'\n\n @property({ type: String, reflect: true })\n color: 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' = 'primary'\n\n @property({ type: Boolean, reflect: true })\n glass = false\n\n private get percentage(): number {\n if (this.indeterminate) return 0\n return Math.min(100, Math.max(0, (this.value / this.max) * 100))\n }\n\n protected render() {\n const containerClasses = {\n 'w-full': true,\n 'relative': true,\n 'overflow-hidden': true,\n 'rounded-full': true,\n 'h-px': this.size === 'xs', // 1px - M3 linear indicator track\n 'h-0.5': this.size === 'sm', // 2px\n 'h-1': this.size === 'md', // 4px - M3 default\n 'h-2': this.size === 'lg', // 8px\n // Glass effect background\n 'backdrop-blur-xl': this.glass,\n 'backdrop-saturate-150': this.glass,\n 'bg-surface-container/20': this.glass && !this.indeterminate,\n 'bg-surface-container': !this.glass,\n 'shadow-[inset_0_1px_2px_0_rgba(0,0,0,0.1)]': this.glass,\n 'border': this.glass,\n 'border-outline/20': this.glass\n }\n\n const barClasses = {\n 'h-full': true,\n 'rounded-full': true,\n 'transition-all': true,\n 'duration-300': true,\n 'ease-in-out': true,\n 'relative': true,\n 'bg-primary-default': this.color === 'primary' && !this.glass,\n 'bg-secondary-default': this.color === 'secondary' && !this.glass,\n 'bg-tertiary-default': this.color === 'tertiary' && !this.glass,\n 'bg-error-default': this.color === 'error' && !this.glass,\n 'bg-success-default': this.color === 'success' && !this.glass,\n 'absolute': this.indeterminate,\n 'indeterminate-animation': this.indeterminate\n }\n\n const barStyles = this.indeterminate \n ? {} \n : { width: `${this.percentage}%` }\n\n // Glass effect bar classes\n const glassBarClasses = {\n 'backdrop-blur-sm': this.glass,\n 'shadow-[0_0_20px_rgba(0,0,0,0.1)]': this.glass,\n // Use semi-transparent background colors for glass effect\n 'bg-primary-default/70': this.glass && this.color === 'primary',\n 'bg-secondary-default/70': this.glass && this.color === 'secondary',\n 'bg-tertiary-default/70': this.glass && this.color === 'tertiary',\n 'bg-error-default/70': this.glass && this.color === 'error',\n 'bg-success-default/70': this.glass && this.color === 'success',\n }\n\n return html`\n <div class=\"${classMap(containerClasses)}\">\n <div \n class=\"${classMap({...barClasses, ...glassBarClasses})}\"\n style=\"${styleMap(barStyles)}\"\n role=\"progressbar\"\n aria-valuenow=\"${this.value}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"${this.max}\"\n >\n ${this.glass ? html`\n <!-- Glass shine effect -->\n <div class=\"absolute inset-0 bg-linear-to-b from-surface-on/20 to-transparent rounded-full\"></div>\n ` : ''}\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-progress': SchmancyProgress\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"progress-Bt9gUiGP.cjs","names":[],"sources":["../src/progress/progress.ts"],"sourcesContent":["import { $LitElement } from '@mixins/litElement.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { styleMap } from 'lit/directives/style-map.js'\n\n@customElement('schmancy-progress')\nexport default class SchmancyProgress extends $LitElement(css`\n :host {\n display: block;\n }\n\n /* Blackbird-style indeterminate animation with organic easing */\n @keyframes indeterminate {\n 0% {\n left: -30%;\n width: 20%;\n opacity: 0.6;\n }\n 25% {\n width: 35%;\n opacity: 1;\n }\n 50% {\n left: 40%;\n width: 30%;\n }\n 75% {\n width: 25%;\n opacity: 0.9;\n }\n 100% {\n left: 100%;\n width: 20%;\n opacity: 0.6;\n }\n }\n\n .indeterminate-animation {\n animation: indeterminate 1.8s cubic-bezier(0.34, 1.2, 0.64, 1) infinite;\n }\n`) {\n @property({ type: Number, reflect: true })\n value = 0\n\n @property({ type: Number, reflect: true })\n max = 100\n\n @property({ type: Boolean, reflect: true })\n indeterminate = false\n\n // M3 aligned track heights: xs=1px, sm=2px, md=4px, lg=8px\n @property({ type: String, reflect: true })\n size: 'xs' | 'sm' | 'md' | 'lg' = 'md'\n\n @property({ type: String, reflect: true })\n color: 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' = 'primary'\n\n @property({ type: Boolean, reflect: true })\n glass = false\n\n private get percentage(): number {\n if (this.indeterminate) return 0\n return Math.min(100, Math.max(0, (this.value / this.max) * 100))\n }\n\n protected render() {\n const containerClasses = {\n 'w-full': true,\n 'relative': true,\n 'overflow-hidden': true,\n 'rounded-full': true,\n 'h-px': this.size === 'xs', // 1px - M3 linear indicator track\n 'h-0.5': this.size === 'sm', // 2px\n 'h-1': this.size === 'md', // 4px - M3 default\n 'h-2': this.size === 'lg', // 8px\n // Glass effect background\n 'backdrop-blur-xl': this.glass,\n 'backdrop-saturate-150': this.glass,\n 'bg-surface-container/20': this.glass && !this.indeterminate,\n 'bg-surface-container': !this.glass,\n 'shadow-[inset_0_1px_2px_0_rgba(0,0,0,0.1)]': this.glass,\n 'border': this.glass,\n 'border-outline/20': this.glass\n }\n\n const barClasses = {\n 'h-full': true,\n 'rounded-full': true,\n 'transition-all': true,\n 'duration-300': true,\n 'ease-in-out': true,\n 'relative': true,\n 'bg-primary-default': this.color === 'primary' && !this.glass,\n 'bg-secondary-default': this.color === 'secondary' && !this.glass,\n 'bg-tertiary-default': this.color === 'tertiary' && !this.glass,\n 'bg-error-default': this.color === 'error' && !this.glass,\n 'bg-success-default': this.color === 'success' && !this.glass,\n 'absolute': this.indeterminate,\n 'indeterminate-animation': this.indeterminate\n }\n\n const barStyles = this.indeterminate \n ? {} \n : { width: `${this.percentage}%` }\n\n // Glass effect bar classes\n const glassBarClasses = {\n 'backdrop-blur-sm': this.glass,\n 'shadow-[0_0_20px_rgba(0,0,0,0.1)]': this.glass,\n // Use semi-transparent background colors for glass effect\n 'bg-primary-default/70': this.glass && this.color === 'primary',\n 'bg-secondary-default/70': this.glass && this.color === 'secondary',\n 'bg-tertiary-default/70': this.glass && this.color === 'tertiary',\n 'bg-error-default/70': this.glass && this.color === 'error',\n 'bg-success-default/70': this.glass && this.color === 'success',\n }\n\n return html`\n <div class=\"${classMap(containerClasses)}\">\n <div \n class=\"${classMap({...barClasses, ...glassBarClasses})}\"\n style=\"${styleMap(barStyles)}\"\n role=\"progressbar\"\n aria-valuenow=\"${this.value}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"${this.max}\"\n >\n ${this.glass ? html`\n <!-- Glass shine effect -->\n <div class=\"absolute inset-0 bg-linear-to-b from-surface-on/20 to-transparent rounded-full\"></div>\n ` : ''}\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-progress': SchmancyProgress\n }\n}\n"],"mappings":"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"}
package/dist/progress.cjs CHANGED
@@ -1 +1 @@
1
- require(`./progress-Cw6Qn3Kb.cjs`);
1
+ require(`./progress-Bt9gUiGP.cjs`);
package/dist/progress.js CHANGED
@@ -1 +1 @@
1
- import "./progress-DHmYCHmy.js";
1
+ import "./progress-BnXr7aAs.js";
@@ -1 +1 @@
1
- const e=require(`./tailwind.mixin-Bug3G6K6.cjs`);var t=class{get value(){return this.o}set value(e){this.setValue(e)}setValue(e,t=!1){let n=t||!Object.is(e,this.o);this.o=e,n&&this.updateObservers()}constructor(e){this.subscriptions=new Map,this.updateObservers=()=>{for(let[e,{disposer:t}]of this.subscriptions)e(this.o,t)},e!==void 0&&(this.value=e)}addCallback(e,t,n){if(!n)return void e(this.value);this.subscriptions.has(e)||this.subscriptions.set(e,{disposer:()=>{this.subscriptions.delete(e)},consumerHost:t});let{disposer:r}=this.subscriptions.get(e);e(this.value,r)}clearCallbacks(){this.subscriptions.clear()}},n=class extends Event{constructor(e,t){super(`context-provider`,{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t}},r=class extends t{constructor(t,n,r){super(n.context===void 0?r:n.initialValue),this.onContextRequest=e=>{if(e.context!==this.context)return;let t=e.contextTarget??e.composedPath()[0];t!==this.host&&(e.stopPropagation(),this.addCallback(e.callback,t,e.subscribe))},this.onProviderRequest=t=>{if(t.context!==this.context||(t.contextTarget??t.composedPath()[0])===this.host)return;let n=new Set;for(let[t,{consumerHost:r}]of this.subscriptions)n.has(t)||(n.add(t),r.dispatchEvent(new e.s(this.context,r,t,!0)));t.stopPropagation()},this.host=t,n.context===void 0?this.context=n:this.context=n.context,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(`context-request`,this.onContextRequest),this.host.addEventListener(`context-provider`,this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new n(this.context,this.host))}};function i({context:e}){return(t,n)=>{let i=new WeakMap;if(typeof n==`object`)return{get(){return t.get.call(this)},set(e){return i.get(this).setValue(e),t.set.call(this,e)},init(t){return i.set(this,new r(this,{context:e,initialValue:t})),t}};{t.constructor.addInitializer(t=>{i.set(t,new r(t,{context:e}))});let a=Object.getOwnPropertyDescriptor(t,n),o;if(a===void 0){let e=new WeakMap;o={get(){return e.get(this)},set(t){i.get(this).setValue(t),e.set(this,t)},configurable:!0,enumerable:!0}}else{let e=a.set;o={...a,set(t){i.get(this).setValue(t),e?.call(this,t)}}}Object.defineProperty(t,n,o);return}}}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
1
+ const e=require(`./tailwind.mixin-BfdVIGgD.cjs`);var t=class{get value(){return this.o}set value(e){this.setValue(e)}setValue(e,t=!1){let n=t||!Object.is(e,this.o);this.o=e,n&&this.updateObservers()}constructor(e){this.subscriptions=new Map,this.updateObservers=()=>{for(let[e,{disposer:t}]of this.subscriptions)e(this.o,t)},e!==void 0&&(this.value=e)}addCallback(e,t,n){if(!n)return void e(this.value);this.subscriptions.has(e)||this.subscriptions.set(e,{disposer:()=>{this.subscriptions.delete(e)},consumerHost:t});let{disposer:r}=this.subscriptions.get(e);e(this.value,r)}clearCallbacks(){this.subscriptions.clear()}},n=class extends Event{constructor(e,t){super(`context-provider`,{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t}},r=class extends t{constructor(t,n,r){super(n.context===void 0?r:n.initialValue),this.onContextRequest=e=>{if(e.context!==this.context)return;let t=e.contextTarget??e.composedPath()[0];t!==this.host&&(e.stopPropagation(),this.addCallback(e.callback,t,e.subscribe))},this.onProviderRequest=t=>{if(t.context!==this.context||(t.contextTarget??t.composedPath()[0])===this.host)return;let n=new Set;for(let[t,{consumerHost:r}]of this.subscriptions)n.has(t)||(n.add(t),r.dispatchEvent(new e.s(this.context,r,t,!0)));t.stopPropagation()},this.host=t,n.context===void 0?this.context=n:this.context=n.context,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(`context-request`,this.onContextRequest),this.host.addEventListener(`context-provider`,this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new n(this.context,this.host))}};function i({context:e}){return(t,n)=>{let i=new WeakMap;if(typeof n==`object`)return{get(){return t.get.call(this)},set(e){return i.get(this).setValue(e),t.set.call(this,e)},init(t){return i.set(this,new r(this,{context:e,initialValue:t})),t}};{t.constructor.addInitializer(t=>{i.set(t,new r(t,{context:e}))});let a=Object.getOwnPropertyDescriptor(t,n),o;if(a===void 0){let e=new WeakMap;o={get(){return e.get(this)},set(t){i.get(this).setValue(t),e.set(this,t)},configurable:!0,enumerable:!0}}else{let e=a.set;o={...a,set(t){i.get(this).setValue(t),e?.call(this,t)}}}Object.defineProperty(t,n,o);return}}}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
@@ -1 +1 @@
1
- {"version":3,"file":"provide-Dsoh3FdP.cjs","names":["e","t","i","t"],"sources":["../node_modules/@lit/context/lib/value-notifier.js","../node_modules/@lit/context/lib/controllers/context-provider.js","../node_modules/@lit/context/lib/decorators/provide.js"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextProvider as t}from\"../controllers/context-provider.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e({context:e}){return(n,i)=>{const r=new WeakMap;if(\"object\"==typeof i)return{get(){return n.get.call(this)},set(t){return r.get(this).setValue(t),n.set.call(this,t)},init(n){return r.set(this,new t(this,{context:e,initialValue:n})),n}};{n.constructor.addInitializer((n=>{r.set(n,new t(n,{context:e}))}));const o=Object.getOwnPropertyDescriptor(n,i);let s;if(void 0===o){const t=new WeakMap;s={get(){return t.get(this)},set(e){r.get(this).setValue(e),t.set(this,e)},configurable:!0,enumerable:!0}}else{const t=o.set;s={...o,set(e){r.get(this).setValue(e),t?.call(this,e)}}}return void Object.defineProperty(n,i,s)}}}export{e as provide};\n//# sourceMappingURL=provide.js.map\n"],"x_google_ignoreList":[0,1,2],"mappings":"iDAKA,IAAM,EAAN,KAAA,CAAQ,IAAA,OAAI,CAAQ,OAAO,KAAK,EAAE,IAAA,MAAU,EAAA,CAAG,KAAK,SAAS,EAAA,CAAG,SAAS,EAAE,EAAA,CAAE,EAAA,CAAI,IAAM,EAAE,GAAA,CAAI,OAAO,GAAG,EAAE,KAAK,EAAA,CAAG,KAAK,EAAE,EAAE,GAAG,KAAK,iBAAA,CAAkB,YAAY,EAAA,CAAG,KAAK,cAAc,IAAI,IAAI,KAAK,oBAAA,CAAqB,IAAI,GAAA,CAAM,EAAA,CAAG,SAAS,MAAM,KAAK,cAAc,EAAE,KAAK,EAAE,EAAA,EAAa,IAAb,IAAS,KAAQ,KAAK,MAAM,GAAG,YAAY,EAAE,EAAE,EAAA,CAAG,GAAA,CAAI,EAAE,OAAA,KAAY,EAAE,KAAK,MAAA,CAAO,KAAK,cAAc,IAAI,EAAA,EAAI,KAAK,cAAc,IAAI,EAAE,CAAC,aAAA,CAAc,KAAK,cAAc,OAAO,EAAA,EAAI,aAAa,EAAA,CAAA,CAAI,GAAA,CAAM,SAAS,GAAG,KAAK,cAAc,IAAI,EAAA,CAAG,EAAE,KAAK,MAAM,EAAA,CAAG,gBAAA,CAAiB,KAAK,cAAc,OAAA,GCA3iBA,EAAN,cAAgB,KAAA,CAAM,YAAY,EAAE,EAAA,CAAG,MAAM,mBAAmB,CAAC,QAAA,CAAQ,EAAG,SAAA,CAAS,EAAA,CAAA,CAAK,KAAK,QAAQ,EAAE,KAAK,cAAc,IAAS,EAAN,cAAgB,CAAA,CAAE,YAAY,EAAE,EAAE,EAAA,CAAG,MAAe,EAAE,UAAjB,IAAW,GAA6B,EAAf,EAAE,aAAa,CAAG,KAAK,iBAAiB,GAAA,CAAI,GAAG,EAAE,UAAU,KAAK,QAAQ,OAAO,IAAM,EAAE,EAAE,eAAe,EAAE,cAAA,CAAe,GAAG,IAAI,KAAK,OAAO,EAAE,iBAAA,CAAkB,KAAK,YAAY,EAAE,SAAS,EAAE,EAAE,UAAA,GAAa,KAAK,kBAAkB,GAAA,CAAuC,GAAhC,EAAE,UAAU,KAAK,UAAmB,EAAE,eAAe,EAAE,cAAA,CAAe,MAAM,KAAK,KAAK,OAAO,IAAM,EAAE,IAAI,IAAI,IAAI,GAAA,CAAM,EAAA,CAAG,aAAa,MAAM,KAAK,cAAc,EAAE,IAAI,EAAA,GAAK,EAAE,IAAI,EAAA,CAAG,EAAE,cAAc,IAAIC,EAAAA,EAAE,KAAK,QAAQ,EAAE,EAAA,CAAE,EAAA,CAAA,EAAM,EAAE,iBAAA,EAAmB,KAAK,KAAK,EAAW,EAAE,UAAb,IAAO,GAAqC,KAAK,QAAQ,EAApC,KAAK,QAAQ,EAAE,QAAuB,KAAK,iBAAA,CAAkB,KAAK,KAAK,gBAAgB,KAAA,CAAM,iBAAA,CAAkB,KAAK,KAAK,iBAAiB,kBAAkB,KAAK,iBAAA,CAAkB,KAAK,KAAK,iBAAiB,mBAAmB,KAAK,kBAAA,CAAmB,eAAA,CAAgB,KAAK,KAAK,cAAc,IAAID,EAAE,KAAK,QAAQ,KAAK,KAAA,CAAA,GCAt/B,SAAS,EAAA,CAAG,QAAQ,GAAA,CAAI,OAAO,EAAE,IAAA,CAAK,IAAM,EAAE,IAAI,QAAQ,GAAG,OAAiBE,GAAjB,SAAmB,MAAM,CAAC,KAAA,CAAM,OAAO,EAAE,IAAI,KAAK,KAAA,EAAO,IAAI,EAAA,CAAG,OAAO,EAAE,IAAI,KAAA,CAAM,SAAS,EAAA,CAAG,EAAE,IAAI,KAAK,KAAK,EAAA,EAAI,KAAK,EAAA,CAAG,OAAO,EAAE,IAAI,KAAK,IAAIC,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAA,CAAA,CAAA,CAAK,GAAA,CAAI,CAAC,EAAE,YAAY,eAAgB,GAAA,CAAI,EAAE,IAAI,EAAE,IAAIA,EAAE,EAAE,CAAC,QAAQ,EAAA,CAAA,CAAA,EAAA,CAAQ,IAAM,EAAE,OAAO,yBAAyB,EAAED,EAAAA,CAAO,EAAE,GAAY,IAAZ,IAAQ,GAAM,CAAC,IAAM,EAAE,IAAI,QAAQ,EAAE,CAAC,KAAA,CAAM,OAAO,EAAE,IAAI,KAAA,EAAO,IAAI,EAAA,CAAG,EAAE,IAAI,KAAA,CAAM,SAAS,EAAA,CAAG,EAAE,IAAI,KAAK,EAAA,EAAI,aAAA,CAAa,EAAG,WAAA,CAAW,EAAA,KAAQ,CAAC,IAAM,EAAE,EAAE,IAAI,EAAE,CAAA,GAAI,EAAE,IAAI,EAAA,CAAG,EAAE,IAAI,KAAA,CAAM,SAAS,EAAA,CAAG,GAAG,KAAK,KAAK,EAAA,EAAA,CAAiB,OAAO,eAAe,EAAEA,EAAE,EAAA,CAAtC,SAAsC,OAAA,eAAA,QAAA,IAAA,CAAA,WAAA,CAAA,EAAA,IAAA,UAAA,CAAA,OAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"provide-CnXCF-UP.cjs","names":["e","t","i","t"],"sources":["../node_modules/@lit/context/lib/value-notifier.js","../node_modules/@lit/context/lib/controllers/context-provider.js","../node_modules/@lit/context/lib/decorators/provide.js"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextProvider as t}from\"../controllers/context-provider.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e({context:e}){return(n,i)=>{const r=new WeakMap;if(\"object\"==typeof i)return{get(){return n.get.call(this)},set(t){return r.get(this).setValue(t),n.set.call(this,t)},init(n){return r.set(this,new t(this,{context:e,initialValue:n})),n}};{n.constructor.addInitializer((n=>{r.set(n,new t(n,{context:e}))}));const o=Object.getOwnPropertyDescriptor(n,i);let s;if(void 0===o){const t=new WeakMap;s={get(){return t.get(this)},set(e){r.get(this).setValue(e),t.set(this,e)},configurable:!0,enumerable:!0}}else{const t=o.set;s={...o,set(e){r.get(this).setValue(e),t?.call(this,e)}}}return void Object.defineProperty(n,i,s)}}}export{e as provide};\n//# sourceMappingURL=provide.js.map\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { s as e } from "./tailwind.mixin-ywtUNG2c.js";
1
+ import { s as e } from "./tailwind.mixin-CNdR3zFD.js";
2
2
  var t = class {
3
3
  get value() {
4
4
  return this.o;
@@ -1 +1 @@
1
- {"version":3,"file":"provide-C4L6R1lo.js","names":["e","t","i","t"],"sources":["../node_modules/@lit/context/lib/value-notifier.js","../node_modules/@lit/context/lib/controllers/context-provider.js","../node_modules/@lit/context/lib/decorators/provide.js"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextProvider as t}from\"../controllers/context-provider.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e({context:e}){return(n,i)=>{const r=new WeakMap;if(\"object\"==typeof i)return{get(){return n.get.call(this)},set(t){return r.get(this).setValue(t),n.set.call(this,t)},init(n){return r.set(this,new t(this,{context:e,initialValue:n})),n}};{n.constructor.addInitializer((n=>{r.set(n,new t(n,{context:e}))}));const o=Object.getOwnPropertyDescriptor(n,i);let s;if(void 0===o){const t=new WeakMap;s={get(){return t.get(this)},set(e){r.get(this).setValue(e),t.set(this,e)},configurable:!0,enumerable:!0}}else{const t=o.set;s={...o,set(e){r.get(this).setValue(e),t?.call(this,e)}}}return void Object.defineProperty(n,i,s)}}}export{e as provide};\n//# sourceMappingURL=provide.js.map\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
1
+ {"version":3,"file":"provide-Disc6_zz.js","names":["e","t","i","t"],"sources":["../node_modules/@lit/context/lib/value-notifier.js","../node_modules/@lit/context/lib/controllers/context-provider.js","../node_modules/@lit/context/lib/decorators/provide.js"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextProvider as t}from\"../controllers/context-provider.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e({context:e}){return(n,i)=>{const r=new WeakMap;if(\"object\"==typeof i)return{get(){return n.get.call(this)},set(t){return r.get(this).setValue(t),n.set.call(this,t)},init(n){return r.set(this,new t(this,{context:e,initialValue:n})),n}};{n.constructor.addInitializer((n=>{r.set(n,new t(n,{context:e}))}));const o=Object.getOwnPropertyDescriptor(n,i);let s;if(void 0===o){const t=new WeakMap;s={get(){return t.get(this)},set(e){r.get(this).setValue(e),t.set(this,e)},configurable:!0,enumerable:!0}}else{const t=o.set;s={...o,set(e){r.get(this).setValue(e),t?.call(this,e)}}}return void Object.defineProperty(n,i,s)}}}export{e as provide};\n//# sourceMappingURL=provide.js.map\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-BCfY8kxB.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./litElement.mixin-De5SG5z7.cjs`);let r=require(`rxjs`),i=require(`rxjs/operators`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/when.js`),c=require(`jsqr`);c=e.n(c,1);var l=class extends n.t(o.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-BCfY8kxB.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./litElement.mixin-DeT3kAOS.cjs`);let r=require(`rxjs`),i=require(`rxjs/operators`),a=require(`lit/decorators.js`),o=require(`lit`),s=require(`lit/directives/when.js`),c=require(`jsqr`);c=e.n(c,1);var l=class extends n.t(o.css`
2
2
  :host {
3
3
  display: block;
4
4
  width: 100%;
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./decorate-D_utPUsC.js";
2
- import { t } from "./litElement.mixin-D6ZHgGZv.js";
2
+ import { t } from "./litElement.mixin-Mi8bar6B.js";
3
3
  import { Subject as n, animationFrames as r, timer as i } from "rxjs";
4
4
  import { distinctUntilChanged as a, filter as o, map as s, takeUntil as c, throttleTime as l } from "rxjs/operators";
5
5
  import { customElement as u, property as d, state as f } from "lit/decorators.js";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./tailwind.mixin-ywtUNG2c.js";
1
+ import { t as e } from "./tailwind.mixin-CNdR3zFD.js";
2
2
  import { t } from "./decorate-D_utPUsC.js";
3
3
  import { FormFieldMixin as n } from "./mixins.js";
4
4
  import { Subject as r, fromEvent as i, takeUntil as a } from "rxjs";
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-DneItRXU.js","names":[],"sources":["../src/radio-group/radio-group.scss?inline","../src/radio-group/radio-group.ts","../src/radio-group/radio-button.ts"],"sourcesContent":[":host {\n\tdisplay: inherit;\n\tposition: inherit;\n}\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { Subject, fromEvent, takeUntil } from 'rxjs'\nimport style from './radio-group.scss?inline'\nimport { TailwindElement } from '@mixins/index'\nimport { when } from 'lit/directives/when.js'\nimport { FormFieldMixin } from '../../mixins/formField.mixin'\n\nexport type SchmancyRadioGroupOption = {\n\tlabel: string\n\tvalue: string\n}\nexport type SchmancyRadioGroupChangeEvent = CustomEvent<{\n\tvalue: string\n}>\n@customElement('schmancy-radio-group')\nexport class RadioGroup extends FormFieldMixin(TailwindElement(style)) {\n\t@property({ type: String }) override label = ''\n\t@property({ type: String }) override name = ''\n\t@property({ type: String }) override value = ''\n\t@property({ type: Array }) options: SchmancyRadioGroupOption[] = []\n\t@property({ type: Boolean }) override required: boolean = false\n\tprivate selection$ = new Subject<string>()\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.selection$.pipe(takeUntil(this.disconnecting)).subscribe(value => {\n\t\t\tthis.value = value\n\t\t\tthis.emitChange({ value })\n\t\t\t// Update all child radio buttons\n\t\t\tthis.updateChildRadioButtons()\n\t\t})\n\n\t\t// Listen for radio button clicks from children\n\t\tfromEvent<CustomEvent>(this, 'radio-button-click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e: CustomEvent) => {\n\t\t\t\tthis.selection$.next(e.detail.value)\n\t\t\t})\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\t// Subscriptions are automatically cleaned up via takeUntil(this.disconnecting)\n\t\tthis.selection$?.complete()\n\t}\n\t\n\tprivate handleSelection(value: string) {\n\t\tthis.selection$.next(value)\n\t}\n\t\n\tprivate updateChildRadioButtons() {\n\t\t// Update child radio buttons checked state\n\t\tconst radioButtons = this.querySelectorAll('schmancy-radio-button')\n\t\tradioButtons.forEach(button => {\n\t\t\tconst buttonValue = button.getAttribute('value')\n\t\t\tif (buttonValue === this.value) {\n\t\t\t\tbutton.setAttribute('checked', '')\n\t\t\t} else {\n\t\t\t\tbutton.removeAttribute('checked')\n\t\t\t}\n\t\t})\n\t}\n\t\n\t// For backwards compatibility with direct option setting\n\tupdated(changedProperties: Map<string, any>) {\n\t\tsuper.updated(changedProperties)\n\t\tif (changedProperties.has('value')) {\n\t\t\tthis.updateChildRadioButtons()\n\t\t}\n\t}\n\n\trender() {\n\t\t// Check if we have any slotted radio buttons\n\t\tconst hasSlottedContent = this.childElementCount > 0\n\t\t\n\t\treturn html`\n\t\t\t<div class=\"grid gap-4\">\n\t\t\t\t${when(this.label, () => html` <label class=\"text-base font-semibold text-surface-on\">${this.label}</label> `)}\n\t\t\t\t\n\t\t\t\t${hasSlottedContent ? \n\t\t\t\t\thtml`<slot></slot>` :\n\t\t\t\t\tthis.options?.map(option => html`\n\t\t\t\t\t\t<div class=\"flex items-center\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t\t\tid=${option.value}\n\t\t\t\t\t\t\t\tclass=\"h-4 w-4 border-outline text-primary-default focus:ring-primary-default\"\n\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\tname=${this.name}\n\t\t\t\t\t\t\t\t.value=${option.value}\n\t\t\t\t\t\t\t\t.checked=${option.value === this.value}\n\t\t\t\t\t\t\t\t@change=${() => this.handleSelection(option.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<label for=${option.value} class=\"ml-3 block text-sm font-medium leading-6 text-surface-on\">\n\t\t\t\t\t\t\t\t${option.label || option.value}\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`)\n\t\t\t\t}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-radio-group': RadioGroup\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { FormFieldMixin } from '../../mixins/formField.mixin'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n/**\n * Radio button component for use within radio groups.\n *\n * @prop {string} name - Name attribute for grouping radio buttons\n * @prop {string} value - Value of this radio button\n * @prop {boolean} checked - Whether the radio button is selected\n * @prop {boolean} disabled - Whether the radio button is disabled\n */\n@customElement('schmancy-radio-button')\nexport class RadioButton extends FormFieldMixin(TailwindElement()) {\n\t@property({ type: String }) override value = ''\n\t@property({ type: Boolean, reflect: true }) checked = false\n\t@property({ type: Boolean }) override disabled = false\n\t@property({ type: String }) override name = ''\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Listen for click events\n\t\tfromEvent<MouseEvent>(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(this.handleClick)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\t// Event listeners are automatically cleaned up via takeUntil(this.disconnecting)\n\t}\n\n\tprivate handleClick() {\n\t\tif (this.disabled) return\n\n\t\t// Find parent radio-group if exists\n\t\tconst radioGroup = this.closest('schmancy-radio-group')\n\t\tif (radioGroup) {\n\t\t\t// Let the radio-group handle the change\n\t\t\tconst event = new CustomEvent('radio-button-click', {\n\t\t\t\tdetail: { value: this.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t})\n\t\t\tthis.dispatchEvent(event)\n\t\t} else {\n\t\t\t// Standalone usage\n\t\t\tthis.checked = true\n\t\t\tthis.emitChange({ value: this.value })\n\t\t}\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<label class=\"relative flex items-start cursor-pointer\">\n\t\t\t\t<div class=\"flex items-center h-6\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tclass=\"h-4 w-4 text-primary-default focus:ring-primary-container border-outline\"\n\t\t\t\t\t\t.value=${this.value}\n\t\t\t\t\t\t.checked=${this.checked}\n\t\t\t\t\t\t.disabled=${this.disabled}\n\t\t\t\t\t\t.name=${this.name}\n\t\t\t\t\t\t@change=${() => {}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ml-3\">\n\t\t\t\t\t<slot name=\"label\"></slot>\n\t\t\t\t</div>\n\t\t\t</label>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-radio-button': RadioButton\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"radio-group-BgZgHMoA.js","names":[],"sources":["../src/radio-group/radio-group.scss?inline","../src/radio-group/radio-group.ts","../src/radio-group/radio-button.ts"],"sourcesContent":[":host {\n\tdisplay: inherit;\n\tposition: inherit;\n}\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { Subject, fromEvent, takeUntil } from 'rxjs'\nimport style from './radio-group.scss?inline'\nimport { TailwindElement } from '@mixins/index'\nimport { when } from 'lit/directives/when.js'\nimport { FormFieldMixin } from '../../mixins/formField.mixin'\n\nexport type SchmancyRadioGroupOption = {\n\tlabel: string\n\tvalue: string\n}\nexport type SchmancyRadioGroupChangeEvent = CustomEvent<{\n\tvalue: string\n}>\n@customElement('schmancy-radio-group')\nexport class RadioGroup extends FormFieldMixin(TailwindElement(style)) {\n\t@property({ type: String }) override label = ''\n\t@property({ type: String }) override name = ''\n\t@property({ type: String }) override value = ''\n\t@property({ type: Array }) options: SchmancyRadioGroupOption[] = []\n\t@property({ type: Boolean }) override required: boolean = false\n\tprivate selection$ = new Subject<string>()\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.selection$.pipe(takeUntil(this.disconnecting)).subscribe(value => {\n\t\t\tthis.value = value\n\t\t\tthis.emitChange({ value })\n\t\t\t// Update all child radio buttons\n\t\t\tthis.updateChildRadioButtons()\n\t\t})\n\n\t\t// Listen for radio button clicks from children\n\t\tfromEvent<CustomEvent>(this, 'radio-button-click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe((e: CustomEvent) => {\n\t\t\t\tthis.selection$.next(e.detail.value)\n\t\t\t})\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\t// Subscriptions are automatically cleaned up via takeUntil(this.disconnecting)\n\t\tthis.selection$?.complete()\n\t}\n\t\n\tprivate handleSelection(value: string) {\n\t\tthis.selection$.next(value)\n\t}\n\t\n\tprivate updateChildRadioButtons() {\n\t\t// Update child radio buttons checked state\n\t\tconst radioButtons = this.querySelectorAll('schmancy-radio-button')\n\t\tradioButtons.forEach(button => {\n\t\t\tconst buttonValue = button.getAttribute('value')\n\t\t\tif (buttonValue === this.value) {\n\t\t\t\tbutton.setAttribute('checked', '')\n\t\t\t} else {\n\t\t\t\tbutton.removeAttribute('checked')\n\t\t\t}\n\t\t})\n\t}\n\t\n\t// For backwards compatibility with direct option setting\n\tupdated(changedProperties: Map<string, any>) {\n\t\tsuper.updated(changedProperties)\n\t\tif (changedProperties.has('value')) {\n\t\t\tthis.updateChildRadioButtons()\n\t\t}\n\t}\n\n\trender() {\n\t\t// Check if we have any slotted radio buttons\n\t\tconst hasSlottedContent = this.childElementCount > 0\n\t\t\n\t\treturn html`\n\t\t\t<div class=\"grid gap-4\">\n\t\t\t\t${when(this.label, () => html` <label class=\"text-base font-semibold text-surface-on\">${this.label}</label> `)}\n\t\t\t\t\n\t\t\t\t${hasSlottedContent ? \n\t\t\t\t\thtml`<slot></slot>` :\n\t\t\t\t\tthis.options?.map(option => html`\n\t\t\t\t\t\t<div class=\"flex items-center\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\t\t\tid=${option.value}\n\t\t\t\t\t\t\t\tclass=\"h-4 w-4 border-outline text-primary-default focus:ring-primary-default\"\n\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\tname=${this.name}\n\t\t\t\t\t\t\t\t.value=${option.value}\n\t\t\t\t\t\t\t\t.checked=${option.value === this.value}\n\t\t\t\t\t\t\t\t@change=${() => this.handleSelection(option.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<label for=${option.value} class=\"ml-3 block text-sm font-medium leading-6 text-surface-on\">\n\t\t\t\t\t\t\t\t${option.label || option.value}\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`)\n\t\t\t\t}\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-radio-group': RadioGroup\n\t}\n}\n","import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { FormFieldMixin } from '../../mixins/formField.mixin'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n/**\n * Radio button component for use within radio groups.\n *\n * @prop {string} name - Name attribute for grouping radio buttons\n * @prop {string} value - Value of this radio button\n * @prop {boolean} checked - Whether the radio button is selected\n * @prop {boolean} disabled - Whether the radio button is disabled\n */\n@customElement('schmancy-radio-button')\nexport class RadioButton extends FormFieldMixin(TailwindElement()) {\n\t@property({ type: String }) override value = ''\n\t@property({ type: Boolean, reflect: true }) checked = false\n\t@property({ type: Boolean }) override disabled = false\n\t@property({ type: String }) override name = ''\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\t// Listen for click events\n\t\tfromEvent<MouseEvent>(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(this.handleClick)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\t// Event listeners are automatically cleaned up via takeUntil(this.disconnecting)\n\t}\n\n\tprivate handleClick() {\n\t\tif (this.disabled) return\n\n\t\t// Find parent radio-group if exists\n\t\tconst radioGroup = this.closest('schmancy-radio-group')\n\t\tif (radioGroup) {\n\t\t\t// Let the radio-group handle the change\n\t\t\tconst event = new CustomEvent('radio-button-click', {\n\t\t\t\tdetail: { value: this.value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t})\n\t\t\tthis.dispatchEvent(event)\n\t\t} else {\n\t\t\t// Standalone usage\n\t\t\tthis.checked = true\n\t\t\tthis.emitChange({ value: this.value })\n\t\t}\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<label class=\"relative flex items-start cursor-pointer\">\n\t\t\t\t<div class=\"flex items-center h-6\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tclass=\"h-4 w-4 text-primary-default focus:ring-primary-container border-outline\"\n\t\t\t\t\t\t.value=${this.value}\n\t\t\t\t\t\t.checked=${this.checked}\n\t\t\t\t\t\t.disabled=${this.disabled}\n\t\t\t\t\t\t.name=${this.name}\n\t\t\t\t\t\t@change=${() => {}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ml-3\">\n\t\t\t\t\t<slot name=\"label\"></slot>\n\t\t\t\t</div>\n\t\t\t</label>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-radio-button': RadioButton\n\t}\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-Bug3G6K6.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./mixins.cjs`);let r=require(`rxjs`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`lit/directives/when.js`);var s=class extends n.FormFieldMixin(e.t(`:host{display:inherit;position:inherit}`)){constructor(...e){super(...e),this.label=``,this.name=``,this.value=``,this.options=[],this.required=!1,this.selection$=new r.Subject}connectedCallback(){super.connectedCallback(),this.selection$.pipe((0,r.takeUntil)(this.disconnecting)).subscribe(e=>{this.value=e,this.emitChange({value:e}),this.updateChildRadioButtons()}),(0,r.fromEvent)(this,`radio-button-click`).pipe((0,r.takeUntil)(this.disconnecting)).subscribe(e=>{this.selection$.next(e.detail.value)})}disconnectedCallback(){super.disconnectedCallback(),this.selection$?.complete()}handleSelection(e){this.selection$.next(e)}updateChildRadioButtons(){this.querySelectorAll(`schmancy-radio-button`).forEach(e=>{e.getAttribute(`value`)===this.value?e.setAttribute(`checked`,``):e.removeAttribute(`checked`)})}updated(e){super.updated(e),e.has(`value`)&&this.updateChildRadioButtons()}render(){let e=this.childElementCount>0;return a.html`
1
+ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-BfdVIGgD.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./mixins.cjs`);let r=require(`rxjs`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`lit/directives/when.js`);var s=class extends n.FormFieldMixin(e.t(`:host{display:inherit;position:inherit}`)){constructor(...e){super(...e),this.label=``,this.name=``,this.value=``,this.options=[],this.required=!1,this.selection$=new r.Subject}connectedCallback(){super.connectedCallback(),this.selection$.pipe((0,r.takeUntil)(this.disconnecting)).subscribe(e=>{this.value=e,this.emitChange({value:e}),this.updateChildRadioButtons()}),(0,r.fromEvent)(this,`radio-button-click`).pipe((0,r.takeUntil)(this.disconnecting)).subscribe(e=>{this.selection$.next(e.detail.value)})}disconnectedCallback(){super.disconnectedCallback(),this.selection$?.complete()}handleSelection(e){this.selection$.next(e)}updateChildRadioButtons(){this.querySelectorAll(`schmancy-radio-button`).forEach(e=>{e.getAttribute(`value`)===this.value?e.setAttribute(`checked`,``):e.removeAttribute(`checked`)})}updated(e){super.updated(e),e.has(`value`)&&this.updateChildRadioButtons()}render(){let e=this.childElementCount>0;return a.html`
2
2
  <div class="grid gap-4">
3
3
  ${(0,o.when)(this.label,()=>a.html` <label class="text-base font-semibold text-surface-on">${this.label}</label> `)}
4
4