@mhmo91/schmancy 0.9.28 → 0.10.2

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 (1049) hide show
  1. package/custom-elements.json +1005 -2215
  2. package/dist/active-host-CcIa2tmW.cjs +1 -0
  3. package/dist/active-host-CcIa2tmW.cjs.map +1 -0
  4. package/dist/active-host-CvNYoprt.js +57 -0
  5. package/dist/active-host-CvNYoprt.js.map +1 -0
  6. package/dist/agent/{flow-CvG1fLW5.js.map → flow-CaPi2G8y.js.map} +1 -1
  7. package/dist/agent/{rolldown-runtime-BIIoCavz.js → rolldown-runtime-DsMetpgY.js} +2 -9
  8. package/dist/agent/schmancy.agent.js +12678 -7791
  9. package/dist/agent/schmancy.agent.js.map +1 -1
  10. package/dist/agent/schmancy.manifest.json +265 -1453
  11. package/dist/agent/{vendor-highlight-Dow87ZL_.js → vendor-highlight-CHJZQQB7.js} +85 -90
  12. package/dist/agent/{vendor-highlight-Dow87ZL_.js.map → vendor-highlight-CHJZQQB7.js.map} +1 -1
  13. package/dist/agent/{vendor-jsqr-Bl4iAtKC.js → vendor-jsqr-r7GNh4P3.js} +1 -1
  14. package/dist/agent/{vendor-jsqr-Bl4iAtKC.js.map → vendor-jsqr-r7GNh4P3.js.map} +1 -1
  15. package/dist/agent/{vendor-material-color-DcL7ZPxx.js.map → vendor-material-color-Be96dpGE.js.map} +1 -1
  16. package/dist/{animation-hXFClrIn.js.map → animation-BK-8BwY8.js.map} +1 -1
  17. package/dist/{animation-CQRdLgzX.cjs.map → animation-CO_Csq84.cjs.map} +1 -1
  18. package/dist/{area-BGBCMC79.js → area-DHVANBbr.js} +20 -15
  19. package/dist/area-DHVANBbr.js.map +1 -0
  20. package/dist/area-ZupIezvU.cjs +12 -0
  21. package/dist/area-ZupIezvU.cjs.map +1 -0
  22. package/dist/area.cjs +1 -1
  23. package/dist/area.js +2 -2
  24. package/dist/{audio-Dvr-RBzE.cjs → audio-CluX8Qpq.cjs} +1 -1
  25. package/dist/{audio-Dvr-RBzE.cjs.map → audio-CluX8Qpq.cjs.map} +1 -1
  26. package/dist/{audio-ql6nvY0y.js → audio-DcXphulJ.js} +1 -1
  27. package/dist/{audio-ql6nvY0y.js.map → audio-DcXphulJ.js.map} +1 -1
  28. package/dist/audio.cjs +1 -1
  29. package/dist/audio.js +2 -2
  30. package/dist/autocomplete-Bn525CTp.cjs +115 -0
  31. package/dist/autocomplete-Bn525CTp.cjs.map +1 -0
  32. package/dist/{autocomplete-C2P0Soht.js → autocomplete-pHvsyfbH.js} +29 -26
  33. package/dist/autocomplete-pHvsyfbH.js.map +1 -0
  34. package/dist/autocomplete.cjs +1 -1
  35. package/dist/autocomplete.js +1 -1
  36. package/dist/avatar.cjs +7 -0
  37. package/dist/avatar.cjs.map +1 -0
  38. package/dist/avatar.js +87 -0
  39. package/dist/avatar.js.map +1 -0
  40. package/dist/badge.cjs +1 -1
  41. package/dist/badge.js +1 -1
  42. package/dist/boat-IyEtsNI4.cjs +80 -0
  43. package/dist/boat-IyEtsNI4.cjs.map +1 -0
  44. package/dist/{boat-DXZ0k7oa.js → boat-_Yv3M6YM.js} +43 -54
  45. package/dist/boat-_Yv3M6YM.js.map +1 -0
  46. package/dist/boat.cjs +1 -1
  47. package/dist/boat.js +1 -1
  48. package/dist/breadcrumb.cjs +4 -4
  49. package/dist/breadcrumb.cjs.map +1 -1
  50. package/dist/breadcrumb.js +16 -11
  51. package/dist/breadcrumb.js.map +1 -1
  52. package/dist/{busy-DGYhpTnO.cjs → busy-CjM39APN.cjs} +4 -4
  53. package/dist/busy-CjM39APN.cjs.map +1 -0
  54. package/dist/{busy-iRjq6Nvd.js → busy-Ck2IXJ4r.js} +14 -9
  55. package/dist/busy-Ck2IXJ4r.js.map +1 -0
  56. package/dist/busy.cjs +1 -1
  57. package/dist/busy.js +1 -1
  58. package/dist/button.cjs +24 -24
  59. package/dist/button.cjs.map +1 -1
  60. package/dist/button.js +42 -37
  61. package/dist/button.js.map +1 -1
  62. package/dist/{card-DjYnCckw.cjs → card-DIxDuuth.cjs} +6 -6
  63. package/dist/card-DIxDuuth.cjs.map +1 -0
  64. package/dist/{card-wUTjx0EC.js → card-DUWZmMHc.js} +41 -30
  65. package/dist/card-DUWZmMHc.js.map +1 -0
  66. package/dist/card.cjs +1 -1
  67. package/dist/card.js +1 -1
  68. package/dist/charts.cjs +5 -5
  69. package/dist/charts.cjs.map +1 -1
  70. package/dist/charts.js +21 -16
  71. package/dist/charts.js.map +1 -1
  72. package/dist/checkbox-CGdFXuWQ.cjs +39 -0
  73. package/dist/checkbox-CGdFXuWQ.cjs.map +1 -0
  74. package/dist/{checkbox-VBSenxgb.js → checkbox-DPS1mWG-.js} +86 -82
  75. package/dist/checkbox-DPS1mWG-.js.map +1 -0
  76. package/dist/checkbox.cjs +1 -1
  77. package/dist/checkbox.js +1 -1
  78. package/dist/{chips-BDS9lkPa.js → chips-BnnXQSA-.js} +146 -136
  79. package/dist/chips-BnnXQSA-.js.map +1 -0
  80. package/dist/{chips-D6ptH5re.cjs → chips-UoFbwmlG.cjs} +19 -19
  81. package/dist/chips-UoFbwmlG.cjs.map +1 -0
  82. package/dist/chips.cjs +1 -1
  83. package/dist/chips.js +2 -2
  84. package/dist/{code-highlight-BzRmBZzz.cjs → code-highlight-CMilN0B8.cjs} +15 -15
  85. package/dist/code-highlight-CMilN0B8.cjs.map +1 -0
  86. package/dist/{code-highlight-Bi91XHJN.js → code-highlight-kFUJ1Eet.js} +37 -40
  87. package/dist/code-highlight-kFUJ1Eet.js.map +1 -0
  88. package/dist/code-highlight.cjs +1 -1
  89. package/dist/code-highlight.js +1 -1
  90. package/dist/connectivity.cjs +2 -2
  91. package/dist/connectivity.cjs.map +1 -1
  92. package/dist/connectivity.js +10 -7
  93. package/dist/connectivity.js.map +1 -1
  94. package/dist/content-drawer.cjs +1 -1
  95. package/dist/content-drawer.js +2 -2
  96. package/dist/context-Bdu1xt0W.js +3 -0
  97. package/dist/{context-BerzpUhI.js.map → context-Bdu1xt0W.js.map} +1 -1
  98. package/dist/context-daN5G6HS.cjs +1 -0
  99. package/dist/{context-C6dHUHhi.cjs.map → context-daN5G6HS.cjs.map} +1 -1
  100. package/dist/{cursor-glow-BydlDInj.js → cursor-glow-Ah7VXSj7.js} +1 -1
  101. package/dist/{cursor-glow-BydlDInj.js.map → cursor-glow-Ah7VXSj7.js.map} +1 -1
  102. package/dist/{cursor-glow-Duw9jHmh.cjs → cursor-glow-Bulq-38P.cjs} +1 -1
  103. package/dist/{cursor-glow-Duw9jHmh.cjs.map → cursor-glow-Bulq-38P.cjs.map} +1 -1
  104. package/dist/date-range-BIyrzTRZ.cjs +131 -0
  105. package/dist/date-range-BIyrzTRZ.cjs.map +1 -0
  106. package/dist/{date-range-ClTMg1AB.js → date-range-DOstCIg8.js} +16 -17
  107. package/dist/date-range-DOstCIg8.js.map +1 -0
  108. package/dist/date-range-inline-4P7zqeVe.cjs +43 -0
  109. package/dist/{date-range-inline-B9Dp2z6C.cjs.map → date-range-inline-4P7zqeVe.cjs.map} +1 -1
  110. package/dist/{date-range-inline-CpKG6qt2.js → date-range-inline-BVycTWLb.js} +5 -5
  111. package/dist/{date-range-inline-CpKG6qt2.js.map → date-range-inline-BVycTWLb.js.map} +1 -1
  112. package/dist/date-range-inline.cjs +1 -1
  113. package/dist/date-range-inline.js +1 -1
  114. package/dist/date-range.cjs +1 -1
  115. package/dist/date-range.js +1 -1
  116. package/dist/delay.cjs +9 -1
  117. package/dist/delay.cjs.map +1 -0
  118. package/dist/delay.js +77 -2
  119. package/dist/delay.js.map +1 -0
  120. package/dist/{details-Cz9ok9si.cjs → details-BJBbZOO6.cjs} +9 -9
  121. package/dist/details-BJBbZOO6.cjs.map +1 -0
  122. package/dist/{details-CPjlqQD4.js → details-DPc5GxPa.js} +19 -18
  123. package/dist/details-DPc5GxPa.js.map +1 -0
  124. package/dist/details.cjs +1 -1
  125. package/dist/details.js +1 -1
  126. package/dist/{dialog-service-DH-tjPuE.js → dialog-service-DI9PPy4H.js} +2 -2
  127. package/dist/dialog-service-DI9PPy4H.js.map +1 -0
  128. package/dist/{dialog-service-CzDO08Gy.cjs → dialog-service-DJd5L0f5.cjs} +1 -1
  129. package/dist/dialog-service-DJd5L0f5.cjs.map +1 -0
  130. package/dist/dialog.cjs +2 -2
  131. package/dist/dialog.cjs.map +1 -1
  132. package/dist/dialog.js +13 -14
  133. package/dist/dialog.js.map +1 -1
  134. package/dist/directives.cjs +2 -11
  135. package/dist/directives.cjs.map +1 -1
  136. package/dist/directives.js +141 -227
  137. package/dist/directives.js.map +1 -1
  138. package/dist/discovery.cjs +1 -1
  139. package/dist/discovery.cjs.map +1 -1
  140. package/dist/discovery.js +1 -1
  141. package/dist/discovery.js.map +1 -1
  142. package/dist/{divider-ghgyw5CU.js → divider-BvJsmSPH.js} +11 -9
  143. package/dist/divider-BvJsmSPH.js.map +1 -0
  144. package/dist/{divider-CILo3_vi.cjs → divider-DPT3XnG5.cjs} +3 -3
  145. package/dist/divider-DPT3XnG5.cjs.map +1 -0
  146. package/dist/divider.cjs +1 -1
  147. package/dist/divider.js +1 -1
  148. package/dist/dropdown.cjs +4 -4
  149. package/dist/dropdown.cjs.map +1 -1
  150. package/dist/dropdown.js +29 -28
  151. package/dist/dropdown.js.map +1 -1
  152. package/dist/{expand-CbjBr_Ds.js → expand-BMzocdtj.js} +24 -20
  153. package/dist/expand-BMzocdtj.js.map +1 -0
  154. package/dist/expand-CTqBWVXo.cjs +141 -0
  155. package/dist/expand-CTqBWVXo.cjs.map +1 -0
  156. package/dist/expand.cjs +1 -1
  157. package/dist/expand.js +1 -1
  158. package/dist/{extra-DK9MQtPJ.js → extra-BeHlUhzv.js} +19 -14
  159. package/dist/extra-BeHlUhzv.js.map +1 -0
  160. package/dist/{extra-BZeZOMBI.cjs → extra-h_cuxRII.cjs} +6 -6
  161. package/dist/extra-h_cuxRII.cjs.map +1 -0
  162. package/dist/extra.cjs +1 -1
  163. package/dist/extra.js +1 -1
  164. package/dist/{float-BfCvGeY9.js → float-CTc1xxqH.js} +2 -2
  165. package/dist/{float-BfCvGeY9.js.map → float-CTc1xxqH.js.map} +1 -1
  166. package/dist/float-CwVBs11k.cjs +1 -0
  167. package/dist/{float-CuZ8LOgB.cjs.map → float-CwVBs11k.cjs.map} +1 -1
  168. package/dist/float.cjs +1 -1
  169. package/dist/float.js +1 -1
  170. package/dist/{form-rCZqoAoK.js → form-BtwOBMZ9.js} +1 -1
  171. package/dist/form-BtwOBMZ9.js.map +1 -0
  172. package/dist/{form-wI58M85H.cjs → form-CSJp687X.cjs} +1 -1
  173. package/dist/form-CSJp687X.cjs.map +1 -0
  174. package/dist/form.cjs +1 -1
  175. package/dist/form.js +1 -1
  176. package/dist/handover/agent-runtime-followups.md +1 -1
  177. package/dist/handover/agent-runtime-v1.md +3 -3
  178. package/dist/handover/claude-design-brief.md +19 -54
  179. package/dist/handover/claude-design-setup.md +57 -0
  180. package/dist/{hashContent-B2IntJQf.js.map → hashContent-1ARKIsx9.js.map} +1 -1
  181. package/dist/{hashContent-CahnEuut.cjs.map → hashContent-Bp5S6T4U.cjs.map} +1 -1
  182. package/dist/{icons-Drq4kKy2.js → icons-BbCVrcas.js} +27 -24
  183. package/dist/icons-BbCVrcas.js.map +1 -0
  184. package/dist/icons-qEQW4pjM.cjs +52 -0
  185. package/dist/icons-qEQW4pjM.cjs.map +1 -0
  186. package/dist/icons.cjs +1 -1
  187. package/dist/icons.js +1 -1
  188. package/dist/{iframe-BmyHW8km.js → iframe-BJfDIEJf.js} +17 -11
  189. package/dist/iframe-BJfDIEJf.js.map +1 -0
  190. package/dist/iframe-D6HTruav.cjs +24 -0
  191. package/dist/iframe-D6HTruav.cjs.map +1 -0
  192. package/dist/iframe.cjs +1 -1
  193. package/dist/iframe.js +1 -1
  194. package/dist/index.cjs +1 -1
  195. package/dist/index.js +77 -77
  196. package/dist/{input-Bc3bVISm.js → input-LTK3cctF.js} +34 -34
  197. package/dist/input-LTK3cctF.js.map +1 -0
  198. package/dist/input-U26axtcs.cjs +51 -0
  199. package/dist/input-U26axtcs.cjs.map +1 -0
  200. package/dist/{input-chip-DN-cwf11.cjs → input-chip-CADXt0X5.cjs} +2 -2
  201. package/dist/input-chip-CADXt0X5.cjs.map +1 -0
  202. package/dist/{input-chip-BQrjpjaQ.js → input-chip-Ch-aCs3c.js} +7 -4
  203. package/dist/input-chip-Ch-aCs3c.js.map +1 -0
  204. package/dist/input.cjs +1 -1
  205. package/dist/input.js +1 -1
  206. package/dist/json.cjs +1 -1
  207. package/dist/json.cjs.map +1 -1
  208. package/dist/json.js +7 -5
  209. package/dist/json.js.map +1 -1
  210. package/dist/kbd.cjs +2 -2
  211. package/dist/kbd.cjs.map +1 -1
  212. package/dist/kbd.js +9 -7
  213. package/dist/kbd.js.map +1 -1
  214. package/dist/{layout-fjM1DWlF.js → layout-C4xmnU4n.js} +1 -1
  215. package/dist/{layout-fjM1DWlF.js.map → layout-C4xmnU4n.js.map} +1 -1
  216. package/dist/{layout-CTfRXQoz.cjs → layout-Dmh6fxh0.cjs} +1 -1
  217. package/dist/{layout-CTfRXQoz.cjs.map → layout-Dmh6fxh0.cjs.map} +1 -1
  218. package/dist/layout.cjs +1 -1
  219. package/dist/layout.js +2 -3
  220. package/dist/{lazy-D6R5N5v4.js.map → lazy-B0ia54tT.js.map} +1 -1
  221. package/dist/{lazy-BDNnH_r7.cjs.map → lazy-Dq9mRRjT.cjs.map} +1 -1
  222. package/dist/lightbox-DbYUSfVl.cjs +202 -0
  223. package/dist/lightbox-DbYUSfVl.cjs.map +1 -0
  224. package/dist/{lightbox-CY52Z_ig.js → lightbox-DqG2z3Cn.js} +13 -12
  225. package/dist/lightbox-DqG2z3Cn.js.map +1 -0
  226. package/dist/lightbox.cjs +1 -1
  227. package/dist/lightbox.js +1 -1
  228. package/dist/list-CLX4sSAw.cjs +40 -0
  229. package/dist/list-CLX4sSAw.cjs.map +1 -0
  230. package/dist/{list-D7wUxu1C.js → list-D6-_E5ZD.js} +26 -21
  231. package/dist/list-D6-_E5ZD.js.map +1 -0
  232. package/dist/list.cjs +1 -1
  233. package/dist/list.js +1 -1
  234. package/dist/{magnetic-CVXEkYTA.cjs → magnetic-BH0TsofV.cjs} +1 -1
  235. package/dist/{magnetic-CVXEkYTA.cjs.map → magnetic-BH0TsofV.cjs.map} +1 -1
  236. package/dist/{magnetic-BhXebqF3.js → magnetic-BZGFxAWG.js} +2 -2
  237. package/dist/{magnetic-BhXebqF3.js.map → magnetic-BZGFxAWG.js.map} +1 -1
  238. package/dist/{mailbox-DLiBGJhY.cjs → mailbox-Ct6iYe-4.cjs} +64 -66
  239. package/dist/mailbox-Ct6iYe-4.cjs.map +1 -0
  240. package/dist/{mailbox--EN-JhjV.js → mailbox-DsPII8HR.js} +137 -126
  241. package/dist/mailbox-DsPII8HR.js.map +1 -0
  242. package/dist/mailbox.cjs +1 -1
  243. package/dist/mailbox.js +1 -1
  244. package/dist/{map-B0S_q3ma.js → map-Dhy3ta9v.js} +11 -9
  245. package/dist/map-Dhy3ta9v.js.map +1 -0
  246. package/dist/map-WXeVkx2K.cjs +80 -0
  247. package/dist/map-WXeVkx2K.cjs.map +1 -0
  248. package/dist/map.cjs +1 -1
  249. package/dist/map.js +1 -1
  250. package/dist/{menu-COeFpb6n.js → menu-Bhd3EapX.js} +15 -10
  251. package/dist/menu-Bhd3EapX.js.map +1 -0
  252. package/dist/{menu-3edZGQ1x.cjs → menu-Cg2aaDjs.cjs} +5 -5
  253. package/dist/menu-Cg2aaDjs.cjs.map +1 -0
  254. package/dist/menu.cjs +1 -1
  255. package/dist/menu.js +1 -1
  256. package/dist/mixins-CcIWET41.js +627 -0
  257. package/dist/mixins-CcIWET41.js.map +1 -0
  258. package/dist/mixins-De3xfjrm.cjs +298 -0
  259. package/dist/mixins-De3xfjrm.cjs.map +1 -0
  260. package/dist/mixins.cjs +1 -1
  261. package/dist/mixins.js +2 -87
  262. package/dist/nav-drawer.cjs +1 -1
  263. package/dist/nav-drawer.js +2 -2
  264. package/dist/navigation-bar.cjs +1 -1
  265. package/dist/navigation-bar.js +1 -1
  266. package/dist/navigation-rail.cjs +3 -3
  267. package/dist/navigation-rail.cjs.map +1 -1
  268. package/dist/navigation-rail.js +15 -16
  269. package/dist/navigation-rail.js.map +1 -1
  270. package/dist/{notification-CC-TFN5v.js → notification-CVLqQ8c_.js} +40 -38
  271. package/dist/notification-CVLqQ8c_.js.map +1 -0
  272. package/dist/notification-D_PQjBSf.cjs +23 -0
  273. package/dist/notification-D_PQjBSf.cjs.map +1 -0
  274. package/dist/notification.cjs +1 -1
  275. package/dist/notification.js +1 -1
  276. package/dist/option-DDU_goh1.cjs +43 -0
  277. package/dist/option-DDU_goh1.cjs.map +1 -0
  278. package/dist/{option-BwAF4nAw.js → option-rm4HebVs.js} +9 -7
  279. package/dist/option-rm4HebVs.js.map +1 -0
  280. package/dist/option.cjs +1 -1
  281. package/dist/option.js +1 -1
  282. package/dist/{overlay-stack-7bs4ZNnh.cjs → overlay-stack-BprhAE9a.cjs} +1 -1
  283. package/dist/{overlay-stack-7bs4ZNnh.cjs.map → overlay-stack-BprhAE9a.cjs.map} +1 -1
  284. package/dist/{overlay-stack-DXPYHPhk.js → overlay-stack-CAQno0CK.js} +1 -1
  285. package/dist/{overlay-stack-DXPYHPhk.js.map → overlay-stack-CAQno0CK.js.map} +1 -1
  286. package/dist/overlay.cjs +43 -45
  287. package/dist/overlay.cjs.map +1 -1
  288. package/dist/overlay.js +684 -268
  289. package/dist/overlay.js.map +1 -1
  290. package/dist/page.cjs +3 -3
  291. package/dist/page.cjs.map +1 -1
  292. package/dist/page.js +15 -13
  293. package/dist/page.js.map +1 -1
  294. package/dist/{components-DZgJWHdZ.js → payment-card-form-C0dHYZIv.js} +21 -22
  295. package/dist/{components-DZgJWHdZ.js.map → payment-card-form-C0dHYZIv.js.map} +1 -1
  296. package/dist/payment-card-form-DNvmZxs4.cjs +73 -0
  297. package/dist/{components-DkmEgyAc.cjs.map → payment-card-form-DNvmZxs4.cjs.map} +1 -1
  298. package/dist/payment-card-form.cjs +1 -0
  299. package/dist/payment-card-form.js +2 -0
  300. package/dist/{progress-Bk_Q1Shy.js → progress-BRerM5Bn.js} +16 -13
  301. package/dist/progress-BRerM5Bn.js.map +1 -0
  302. package/dist/{progress-Yz6EMNSu.cjs → progress-U3LQkpM2.cjs} +3 -3
  303. package/dist/progress-U3LQkpM2.cjs.map +1 -0
  304. package/dist/progress.cjs +1 -1
  305. package/dist/progress.js +1 -1
  306. package/dist/qr-scanner.cjs +5 -5
  307. package/dist/qr-scanner.cjs.map +1 -1
  308. package/dist/qr-scanner.js +14 -15
  309. package/dist/qr-scanner.js.map +1 -1
  310. package/dist/{radio-group-BcdcjLNC.js → radio-group-BZ2WoOXJ.js} +14 -12
  311. package/dist/radio-group-BZ2WoOXJ.js.map +1 -0
  312. package/dist/radio-group-D7mm-yvJ.cjs +40 -0
  313. package/dist/radio-group-D7mm-yvJ.cjs.map +1 -0
  314. package/dist/radio-group.cjs +1 -1
  315. package/dist/radio-group.js +1 -1
  316. package/dist/range.cjs +2 -2
  317. package/dist/range.cjs.map +1 -1
  318. package/dist/range.js +9 -7
  319. package/dist/range.js.map +1 -1
  320. package/dist/{reduced-motion-BZTLqAyl.js.map → reduced-motion-D-L12p7G.js.map} +1 -1
  321. package/dist/{reduced-motion-9RjNnhIg.cjs.map → reduced-motion-Ds-HjMzn.cjs.map} +1 -1
  322. package/dist/{rxjs-utils-DJbZRjp3.cjs.map → rxjs-utils-Csnks202.cjs.map} +1 -1
  323. package/dist/{rxjs-utils-CKTnEKUH.js.map → rxjs-utils-d-ivVN84.js.map} +1 -1
  324. package/dist/rxjs-utils.cjs +1 -1
  325. package/dist/rxjs-utils.js +1 -1
  326. package/dist/scroll-DJTjNIT_.cjs +26 -0
  327. package/dist/scroll-DJTjNIT_.cjs.map +1 -0
  328. package/dist/{scroll-DXQv0ejL.js → scroll-qL-HkMdP.js} +9 -7
  329. package/dist/scroll-qL-HkMdP.js.map +1 -0
  330. package/dist/search-BLCRsxIC.cjs +1 -0
  331. package/dist/{search-CwMav5QB.cjs.map → search-BLCRsxIC.cjs.map} +1 -1
  332. package/dist/{search-CvUZRLF1.js → search-BTz7-Rev.js} +1 -1
  333. package/dist/{search-CvUZRLF1.js.map → search-BTz7-Rev.js.map} +1 -1
  334. package/dist/{select-BV4lK2zy.cjs → select-BvA7v-gL.cjs} +6 -6
  335. package/dist/select-BvA7v-gL.cjs.map +1 -0
  336. package/dist/{select-DKyGWDsG.js → select-CnPXUeSf.js} +23 -20
  337. package/dist/select-CnPXUeSf.js.map +1 -0
  338. package/dist/select.cjs +1 -1
  339. package/dist/select.js +1 -1
  340. package/dist/{sheet-C3TLKItO.js → sheet-BRL07BB4.js} +22 -20
  341. package/dist/sheet-BRL07BB4.js.map +1 -0
  342. package/dist/sheet-BYQJAHQn.cjs +35 -0
  343. package/dist/sheet-BYQJAHQn.cjs.map +1 -0
  344. package/dist/sheet.cjs +1 -1
  345. package/dist/sheet.js +2 -2
  346. package/dist/sheet.service-B25bsrYG.cjs +1 -0
  347. package/dist/{sheet.service-RcDBwHmv.cjs.map → sheet.service-B25bsrYG.cjs.map} +1 -1
  348. package/dist/{sheet.service-Dlv20Zfc.js → sheet.service-SPQ8oLCi.js} +3 -3
  349. package/dist/{sheet.service-Dlv20Zfc.js.map → sheet.service-SPQ8oLCi.js.map} +1 -1
  350. package/dist/skeleton.cjs +2 -2
  351. package/dist/skeleton.cjs.map +1 -1
  352. package/dist/skeleton.js +9 -7
  353. package/dist/skeleton.js.map +1 -1
  354. package/dist/skills/INDEX.md +1 -1
  355. package/dist/skills/SKILL.md +17 -5
  356. package/dist/skills/mixins.md +78 -20
  357. package/dist/skills/schmancy/INDEX.md +1 -1
  358. package/dist/skills/schmancy/SKILL.md +17 -5
  359. package/dist/skills/schmancy/mixins.md +78 -20
  360. package/dist/skills/schmancy/state.md +501 -0
  361. package/dist/skills/schmancy/theme.md +15 -0
  362. package/dist/skills/schmancy/timeline-tile.md +95 -0
  363. package/dist/skills/state.md +501 -0
  364. package/dist/skills/theme.md +15 -0
  365. package/dist/skills/timeline-tile.md +95 -0
  366. package/dist/slider.cjs +5 -5
  367. package/dist/slider.cjs.map +1 -1
  368. package/dist/slider.js +18 -13
  369. package/dist/slider.js.map +1 -1
  370. package/dist/sound.service-BGs6m0Cm.cjs +1 -0
  371. package/dist/sound.service-BGs6m0Cm.cjs.map +1 -0
  372. package/dist/{sound.service-DWZe6swU.js → sound.service-kKfsN0m-.js} +3 -3
  373. package/dist/sound.service-kKfsN0m-.js.map +1 -0
  374. package/dist/splash-screen-BDt4PInk.cjs +41 -0
  375. package/dist/splash-screen-BDt4PInk.cjs.map +1 -0
  376. package/dist/{splash-screen-DbI5RgBf.js → splash-screen-C8JCqX5L.js} +12 -9
  377. package/dist/splash-screen-C8JCqX5L.js.map +1 -0
  378. package/dist/splash-screen.cjs +1 -1
  379. package/dist/splash-screen.js +1 -1
  380. package/dist/src-CpRNClhg.cjs +263 -0
  381. package/dist/src-CpRNClhg.cjs.map +1 -0
  382. package/dist/{src-00DfxCJq.js → src-CqdnWGgr.js} +299 -351
  383. package/dist/src-CqdnWGgr.js.map +1 -0
  384. package/dist/state-BusMG6sM.js +868 -0
  385. package/dist/state-BusMG6sM.js.map +1 -0
  386. package/dist/state-DNdCPITt.cjs +1 -0
  387. package/dist/state-DNdCPITt.cjs.map +1 -0
  388. package/dist/state.cjs +1 -0
  389. package/dist/state.js +3 -0
  390. package/dist/steps.cjs +10 -10
  391. package/dist/steps.cjs.map +1 -1
  392. package/dist/steps.js +29 -24
  393. package/dist/steps.js.map +1 -1
  394. package/dist/surface-C8jQy8Ym.js +24 -0
  395. package/dist/surface-C8jQy8Ym.js.map +1 -0
  396. package/dist/surface-Du2Y4vXd.cjs +7 -0
  397. package/dist/surface-Du2Y4vXd.cjs.map +1 -0
  398. package/dist/surface.cjs +1 -1
  399. package/dist/surface.js +1 -1
  400. package/dist/switch.cjs +2 -2
  401. package/dist/switch.cjs.map +1 -1
  402. package/dist/switch.js +7 -5
  403. package/dist/switch.js.map +1 -1
  404. package/dist/table.cjs +72 -1
  405. package/dist/table.cjs.map +1 -0
  406. package/dist/table.js +174 -2
  407. package/dist/table.js.map +1 -0
  408. package/dist/tabs-0RfeCa00.cjs +31 -0
  409. package/dist/tabs-0RfeCa00.cjs.map +1 -0
  410. package/dist/{tabs-Ce55RbwF.js → tabs-Cyahh9Q6.js} +22 -22
  411. package/dist/tabs-Cyahh9Q6.js.map +1 -0
  412. package/dist/tabs.cjs +1 -1
  413. package/dist/tabs.js +1 -1
  414. package/dist/teleport.cjs +1 -1
  415. package/dist/teleport.js +2 -2
  416. package/dist/{textarea-DjN1D9u0.js → textarea-CXCcTVnf.js} +30 -28
  417. package/dist/textarea-CXCcTVnf.js.map +1 -0
  418. package/dist/textarea-jqRrLxmo.cjs +39 -0
  419. package/dist/textarea-jqRrLxmo.cjs.map +1 -0
  420. package/dist/textarea.cjs +1 -1
  421. package/dist/textarea.js +1 -1
  422. package/dist/{theme-pbxlt72h.js → theme-2KZW2Rfs.js} +45 -41
  423. package/dist/{theme-pbxlt72h.js.map → theme-2KZW2Rfs.js.map} +1 -1
  424. package/dist/theme-Hjz9sCN-.cjs +181 -0
  425. package/dist/{theme-B-IJ2r7Q.cjs.map → theme-Hjz9sCN-.cjs.map} +1 -1
  426. package/dist/{theme-button-CEMeAUOL.js → theme-button-9uF1eoHz.js} +3 -4
  427. package/dist/theme-button-9uF1eoHz.js.map +1 -0
  428. package/dist/theme-button-C7QIbke1.cjs +8 -0
  429. package/dist/theme-button-C7QIbke1.cjs.map +1 -0
  430. package/dist/theme-button.cjs +1 -1
  431. package/dist/theme-button.js +1 -1
  432. package/dist/theme.cjs +1 -1
  433. package/dist/{theme.events-NuihzD_p.js.map → theme.events-Cv7N4Toe.js.map} +1 -1
  434. package/dist/{theme.events-DakXxZeP.cjs.map → theme.events-DM4H5F2d.cjs.map} +1 -1
  435. package/dist/{theme.interface-DTwkuAKJ.cjs.map → theme.interface-D9l33b-M.cjs.map} +1 -1
  436. package/dist/{theme.interface-Buged9Cg.js.map → theme.interface-DnVNre4O.js.map} +1 -1
  437. package/dist/theme.js +5 -5
  438. package/dist/theme.service-BrUbGoeQ.cjs +1 -0
  439. package/dist/theme.service-BrUbGoeQ.cjs.map +1 -0
  440. package/dist/{theme.service-cOfPrtfe.js → theme.service-CmbOGMA8.js} +4 -4
  441. package/dist/theme.service-CmbOGMA8.js.map +1 -0
  442. package/dist/timeline.cjs +277 -0
  443. package/dist/timeline.cjs.map +1 -0
  444. package/dist/timeline.js +326 -0
  445. package/dist/timeline.js.map +1 -0
  446. package/dist/tree.cjs +2 -2
  447. package/dist/tree.cjs.map +1 -1
  448. package/dist/tree.js +15 -13
  449. package/dist/tree.js.map +1 -1
  450. package/dist/typewriter.cjs +10 -123
  451. package/dist/typewriter.cjs.map +1 -1
  452. package/dist/typewriter.js +90 -212
  453. package/dist/typewriter.js.map +1 -1
  454. package/dist/typography.cjs +3 -3
  455. package/dist/typography.cjs.map +1 -1
  456. package/dist/typography.js +18 -112
  457. package/dist/typography.js.map +1 -1
  458. package/dist/utils-Cr-YO4Np.cjs +1 -0
  459. package/dist/utils-Cr-YO4Np.cjs.map +1 -0
  460. package/dist/{utils-Bp2jhyZc.js → utils-hp-DnFf5.js} +16 -6
  461. package/dist/utils-hp-DnFf5.js.map +1 -0
  462. package/dist/utils.cjs +1 -1
  463. package/dist/utils.js +4 -5
  464. package/dist/visually-hidden.cjs +2 -2
  465. package/dist/visually-hidden.cjs.map +1 -1
  466. package/dist/visually-hidden.js +7 -5
  467. package/dist/visually-hidden.js.map +1 -1
  468. package/dist/{window-CrjZdf7Y.js → window-C7yY9yp5.js} +28 -30
  469. package/dist/window-C7yY9yp5.js.map +1 -0
  470. package/dist/window-DtUOWiAj.cjs +59 -0
  471. package/dist/window-DtUOWiAj.cjs.map +1 -0
  472. package/dist/window.cjs +1 -1
  473. package/dist/window.js +1 -1
  474. package/package.json +15 -4
  475. package/plugins/vite-plugin-schmancy-auto-import.ts +143 -0
  476. package/plugins/vite-plugin-schmancy-manifest.ts +438 -0
  477. package/skills/schmancy/INDEX.md +1 -1
  478. package/skills/schmancy/SKILL.md +17 -5
  479. package/skills/schmancy/mixins.md +78 -20
  480. package/skills/schmancy/state.md +501 -0
  481. package/skills/schmancy/theme.md +15 -0
  482. package/skills/schmancy/timeline-tile.md +95 -0
  483. package/src/agent/agent-bundle.test.ts +71 -54
  484. package/src/agent/agent-entry.ts +5 -21
  485. package/src/agent/helpers.ts +159 -0
  486. package/src/agent/schmancy-skill.ts +71 -0
  487. package/src/agent/virtual-manifest.d.ts +1 -12
  488. package/src/area/area.component.ts +7 -19
  489. package/src/area/area.service.test.ts +4 -5
  490. package/src/area/area.service.ts +4 -3
  491. package/src/area/route.component.ts +17 -4
  492. package/src/area/utils.ts +3 -2
  493. package/src/audio/emotional-sounds.ts +0 -2
  494. package/src/audio/sound.service.ts +7 -13
  495. package/src/autocomplete/autocomplete.ts +18 -21
  496. package/src/{avatar.ts → avatar/avatar.ts} +2 -2
  497. package/src/avatar/index.ts +1 -0
  498. package/src/badge/badge.ts +4 -3
  499. package/src/boat/boat.ts +28 -36
  500. package/src/breadcrumb/breadcrumb.ts +11 -19
  501. package/src/busy/busy.ts +4 -3
  502. package/src/busy/spinner.ts +4 -3
  503. package/src/button/button.ts +6 -11
  504. package/src/button/icon-button.ts +8 -12
  505. package/src/card/actions.ts +4 -12
  506. package/src/card/card.ts +5 -23
  507. package/src/card/content.ts +4 -12
  508. package/src/card/media.ts +4 -9
  509. package/src/charts/area-chart.ts +7 -4
  510. package/src/charts/pills.ts +6 -4
  511. package/src/checkbox/checkbox.test.ts +2 -2
  512. package/src/checkbox/checkbox.ts +3 -9
  513. package/src/chips/assist-chip.ts +6 -14
  514. package/src/chips/chips.ts +7 -21
  515. package/src/chips/filter-chip.ts +4 -3
  516. package/src/chips/input-chip.ts +10 -9
  517. package/src/chips/suggestion-chip.ts +10 -12
  518. package/src/code-highlight/code-highlight.ts +28 -59
  519. package/src/code-highlight/code-preview.ts +11 -9
  520. package/src/connectivity/connectivity-status.ts +4 -3
  521. package/src/content-drawer/drawer.ts +5 -3
  522. package/src/content-drawer/main.ts +5 -3
  523. package/src/content-drawer/sheet.ts +6 -4
  524. package/src/date-range/date-range-dialog.ts +2 -2
  525. package/src/date-range/date-range.ts +3 -2
  526. package/src/delay/delay.ts +2 -2
  527. package/src/details/details.ts +4 -17
  528. package/src/dialog/dialog-service.ts +2 -0
  529. package/src/dialog/dialog.component.ts +9 -9
  530. package/src/directives/drag.ts +1 -9
  531. package/src/directives/index.ts +0 -1
  532. package/src/discovery/discovery.service.ts +1 -1
  533. package/src/divider/divider.ts +5 -14
  534. package/src/dropdown/dropdown-component.ts +5 -16
  535. package/src/dropdown/dropdown-content.ts +7 -14
  536. package/src/expand/expand-root.component.ts +5 -15
  537. package/src/expand/expand.component.ts +4 -17
  538. package/src/extra/countries/countries.ts +5 -13
  539. package/src/extra/timezone/timezone.ts +7 -12
  540. package/src/form/form.test.ts +2 -2
  541. package/src/form/form.ts +2 -9
  542. package/src/icons/icon.ts +4 -3
  543. package/src/iframe/iframe.ts +13 -4
  544. package/src/index.ts +3 -3
  545. package/src/input/input.ts +6 -13
  546. package/src/json/json.ts +4 -3
  547. package/src/kbd/kbd.ts +4 -3
  548. package/src/layout/index.ts +1 -5
  549. package/src/layout/scroll/scroll.ts +5 -8
  550. package/src/lightbox/flip-directive.ts +1 -1
  551. package/src/lightbox/lightbox.ts +5 -14
  552. package/src/list/list-item.ts +4 -13
  553. package/src/list/list.ts +12 -10
  554. package/src/mailbox/email-editor.ts +17 -11
  555. package/src/mailbox/email-layout-selector.ts +2 -2
  556. package/src/mailbox/email-recipients.ts +13 -8
  557. package/src/mailbox/email-template-picker.ts +6 -5
  558. package/src/mailbox/email-viewer.ts +5 -3
  559. package/src/mailbox/mailbox.ts +6 -5
  560. package/src/map/map.ts +8 -6
  561. package/src/menu/menu-item.ts +5 -16
  562. package/src/menu/menu.ts +27 -13
  563. package/src/nav-drawer/appbar.ts +4 -14
  564. package/src/nav-drawer/content.ts +5 -14
  565. package/src/nav-drawer/drawer.ts +5 -18
  566. package/src/nav-drawer/navbar.ts +3 -17
  567. package/src/navigation-bar/navigation-bar-item.ts +8 -6
  568. package/src/navigation-bar/navigation-bar.ts +19 -19
  569. package/src/navigation-rail/navigation-rail-item.ts +9 -5
  570. package/src/navigation-rail/navigation-rail.ts +10 -14
  571. package/src/notification/notification-service.ts +0 -2
  572. package/src/notification/notification.ts +6 -3
  573. package/src/option/option.ts +4 -3
  574. package/src/overlay/overlay.animations.ts +183 -37
  575. package/src/overlay/overlay.component.ts +397 -190
  576. package/src/overlay/overlay.confirm-body.ts +21 -7
  577. package/src/overlay/overlay.gestures.ts +72 -36
  578. package/src/overlay/overlay.layout.ts +103 -1
  579. package/src/overlay/overlay.positioning.ts +301 -0
  580. package/src/overlay/overlay.service.ts +81 -3
  581. package/src/overlay/overlay.stack.ts +8 -10
  582. package/src/overlay/overlay.types.ts +83 -5
  583. package/src/page/page.ts +16 -11
  584. package/src/payment-card-form/index.ts +1 -0
  585. package/src/{components/form-elements → payment-card-form}/payment-card-form.ts +23 -23
  586. package/src/progress/progress.ts +5 -3
  587. package/src/qr-scanner/qr-scanner.ts +7 -30
  588. package/src/radio-group/radio-button.ts +3 -13
  589. package/src/radio-group/radio-group.ts +5 -22
  590. package/src/range/range.ts +4 -3
  591. package/src/rxjs-utils/waitForElements.ts +1 -1
  592. package/src/rxjs-utils/waitForElementsAll.ts +1 -1
  593. package/src/select/select.ts +10 -18
  594. package/src/sheet/hook.ts +1 -1
  595. package/src/sheet/sheet.ts +5 -20
  596. package/src/skeleton/skeleton.ts +4 -3
  597. package/src/slider/slide.ts +5 -3
  598. package/src/slider/slider.ts +5 -3
  599. package/src/splash-screen/splash-screen.ts +5 -3
  600. package/src/state/CLAUDE.md +161 -0
  601. package/src/state/MIGRATION.md +258 -0
  602. package/src/state/SCOPING.md +134 -0
  603. package/src/state/active-host.ts +190 -0
  604. package/src/state/index.ts +877 -0
  605. package/src/state/persist.ts +208 -0
  606. package/src/state/schmancy-context.ts +130 -0
  607. package/src/state/state.test-d.ts +227 -0
  608. package/src/state/state.test.ts +868 -0
  609. package/src/steps/schmancy-step.ts +5 -3
  610. package/src/steps/schmancy-steps-container.ts +5 -3
  611. package/src/surface/surface.ts +14 -9
  612. package/src/switch/switch.test.ts +2 -2
  613. package/src/switch/switch.ts +8 -10
  614. package/src/table/row.ts +7 -4
  615. package/src/table/table.ts +17 -14
  616. package/src/tabs/index.ts +0 -2
  617. package/src/tabs/tab.ts +2 -2
  618. package/src/tabs/tabs-group.ts +7 -4
  619. package/src/teleport/teleport.component.ts +5 -3
  620. package/src/textarea/textarea.ts +6 -12
  621. package/src/theme/theme-audio-player.ts +7 -5
  622. package/src/theme/theme-controller.ts +2 -2
  623. package/src/theme/theme.component.ts +22 -15
  624. package/src/theme/theme.service.ts +6 -7
  625. package/src/theme/theme.style.css +1 -0
  626. package/src/theme-button/theme-button.ts +2 -2
  627. package/src/timeline/index.ts +1 -0
  628. package/src/timeline/timeline-tile.ts +431 -0
  629. package/src/tree/tree.ts +4 -16
  630. package/src/typewriter/index.ts +1 -1
  631. package/src/typography/typography.ts +5 -98
  632. package/src/utils/intersection.ts +5 -1
  633. package/src/utils/overlay-stack.ts +1 -1
  634. package/src/utils/search.ts +2 -2
  635. package/src/visually-hidden/visually-hidden.ts +4 -3
  636. package/src/window/window-position.ts +3 -6
  637. package/src/window/window.ts +9 -7
  638. package/types/mixins/SchmancyElement.d.ts +49 -0
  639. package/types/mixins/formField.mixin.d.ts +4 -2
  640. package/types/mixins/index.d.ts +1 -0
  641. package/types/mixins/litElement.mixin.d.ts +11 -0
  642. package/types/src/agent/agent-entry.d.ts +2 -19
  643. package/types/src/agent/helpers.d.ts +0 -27
  644. package/types/src/agent/schmancy-skill.d.ts +3 -5
  645. package/types/src/area/area.component.d.ts +3 -17
  646. package/types/src/area/route.component.d.ts +14 -4
  647. package/types/src/audio/emotional-sounds.d.ts +0 -1
  648. package/types/src/audio/sound.service.d.ts +1 -1
  649. package/types/src/autocomplete/autocomplete.d.ts +4 -15
  650. package/types/src/{avatar.d.ts → avatar/avatar.d.ts} +2 -3
  651. package/types/src/avatar/index.d.ts +1 -0
  652. package/types/src/badge/badge.d.ts +3 -3
  653. package/types/src/boat/boat.d.ts +3 -2
  654. package/types/src/breadcrumb/breadcrumb.d.ts +9 -19
  655. package/types/src/busy/busy.d.ts +3 -3
  656. package/types/src/busy/spinner.d.ts +3 -3
  657. package/types/src/button/button.d.ts +4 -10
  658. package/types/src/button/icon-button.d.ts +5 -11
  659. package/types/src/card/actions.d.ts +3 -12
  660. package/types/src/card/card.d.ts +4 -24
  661. package/types/src/card/content.d.ts +3 -12
  662. package/types/src/card/media.d.ts +3 -9
  663. package/types/src/charts/area-chart.d.ts +3 -3
  664. package/types/src/charts/pills.d.ts +3 -3
  665. package/types/src/checkbox/checkbox.d.ts +3 -10
  666. package/types/src/chips/assist-chip.d.ts +5 -15
  667. package/types/src/chips/chips.d.ts +3 -17
  668. package/types/src/chips/filter-chip.d.ts +3 -3
  669. package/types/src/chips/input-chip.d.ts +9 -10
  670. package/types/src/chips/suggestion-chip.d.ts +9 -13
  671. package/types/src/code-highlight/code-highlight.d.ts +4 -11
  672. package/types/src/code-highlight/code-preview.d.ts +3 -3
  673. package/types/src/connectivity/connectivity-status.d.ts +3 -3
  674. package/types/src/content-drawer/drawer.d.ts +4 -4
  675. package/types/src/content-drawer/main.d.ts +3 -3
  676. package/types/src/content-drawer/sheet.d.ts +4 -4
  677. package/types/src/date-range/date-range-dialog.d.ts +2 -3
  678. package/types/src/date-range/date-range.d.ts +2 -3
  679. package/types/src/delay/delay.d.ts +2 -3
  680. package/types/src/details/details.d.ts +3 -14
  681. package/types/src/dialog/dialog.component.d.ts +9 -9
  682. package/types/src/directives/drag.d.ts +1 -3
  683. package/types/src/directives/index.d.ts +0 -1
  684. package/types/src/divider/divider.d.ts +3 -14
  685. package/types/src/dropdown/dropdown-component.d.ts +4 -17
  686. package/types/src/dropdown/dropdown-content.d.ts +6 -14
  687. package/types/src/expand/expand-root.component.d.ts +4 -14
  688. package/types/src/expand/expand.component.d.ts +3 -17
  689. package/types/src/extra/countries/countries.d.ts +3 -13
  690. package/types/src/extra/timezone/timezone.d.ts +4 -11
  691. package/types/src/form/form.d.ts +2 -9
  692. package/types/src/icons/icon.d.ts +3 -3
  693. package/types/src/iframe/iframe.d.ts +5 -3
  694. package/types/src/index.d.ts +3 -3
  695. package/types/src/input/input.d.ts +4 -11
  696. package/types/src/json/json.d.ts +3 -3
  697. package/types/src/kbd/kbd.d.ts +3 -3
  698. package/types/src/layout/index.d.ts +0 -4
  699. package/types/src/layout/scroll/scroll.d.ts +4 -8
  700. package/types/src/lightbox/lightbox.d.ts +3 -14
  701. package/types/src/list/list-item.d.ts +3 -13
  702. package/types/src/list/list.d.ts +11 -10
  703. package/types/src/mailbox/email-editor.d.ts +3 -3
  704. package/types/src/mailbox/email-layout-selector.d.ts +2 -3
  705. package/types/src/mailbox/email-recipients.d.ts +7 -3
  706. package/types/src/mailbox/email-template-picker.d.ts +4 -4
  707. package/types/src/mailbox/email-viewer.d.ts +3 -3
  708. package/types/src/mailbox/mailbox.d.ts +4 -4
  709. package/types/src/map/map.d.ts +4 -3
  710. package/types/src/menu/menu-item.d.ts +3 -16
  711. package/types/src/menu/menu.d.ts +25 -13
  712. package/types/src/nav-drawer/appbar.d.ts +3 -14
  713. package/types/src/nav-drawer/content.d.ts +3 -14
  714. package/types/src/nav-drawer/drawer.d.ts +3 -18
  715. package/types/src/nav-drawer/navbar.d.ts +3 -18
  716. package/types/src/navigation-bar/navigation-bar-item.d.ts +7 -6
  717. package/types/src/navigation-bar/navigation-bar.d.ts +13 -7
  718. package/types/src/navigation-rail/navigation-rail-item.d.ts +9 -6
  719. package/types/src/navigation-rail/navigation-rail.d.ts +10 -15
  720. package/types/src/notification/notification-service.d.ts +0 -1
  721. package/types/src/notification/notification.d.ts +3 -3
  722. package/types/src/option/option.d.ts +3 -3
  723. package/types/src/overlay/overlay.animations.d.ts +54 -6
  724. package/types/src/overlay/overlay.component.d.ts +39 -15
  725. package/types/src/overlay/overlay.confirm-body.d.ts +4 -4
  726. package/types/src/overlay/overlay.gestures.d.ts +26 -17
  727. package/types/src/overlay/overlay.layout.d.ts +27 -1
  728. package/types/src/overlay/overlay.positioning.d.ts +87 -0
  729. package/types/src/overlay/overlay.stack.d.ts +0 -2
  730. package/types/src/overlay/overlay.types.d.ts +59 -5
  731. package/types/src/page/page.d.ts +14 -11
  732. package/types/src/{components/form-elements → payment-card-form}/payment-card-form.d.ts +2 -3
  733. package/types/src/progress/progress.d.ts +3 -3
  734. package/types/src/qr-scanner/qr-scanner.d.ts +3 -3
  735. package/types/src/radio-group/radio-button.d.ts +3 -12
  736. package/types/src/radio-group/radio-group.d.ts +4 -20
  737. package/types/src/range/range.d.ts +3 -3
  738. package/types/src/rxjs-utils/waitForElements.d.ts +1 -1
  739. package/types/src/rxjs-utils/waitForElementsAll.d.ts +1 -1
  740. package/types/src/select/select.d.ts +4 -15
  741. package/types/src/sheet/sheet.d.ts +3 -20
  742. package/types/src/skeleton/skeleton.d.ts +3 -3
  743. package/types/src/slider/slide.d.ts +3 -2
  744. package/types/src/slider/slider.d.ts +3 -3
  745. package/types/src/splash-screen/splash-screen.d.ts +3 -3
  746. package/types/src/state/active-host.d.ts +23 -0
  747. package/types/src/state/index.d.ts +145 -0
  748. package/types/src/state/persist.d.ts +14 -0
  749. package/types/src/state/schmancy-context.d.ts +32 -0
  750. package/types/src/state/state.test-d.d.ts +131 -0
  751. package/types/src/state/state.test.d.ts +1 -0
  752. package/types/src/steps/schmancy-step.d.ts +3 -3
  753. package/types/src/steps/schmancy-steps-container.d.ts +3 -3
  754. package/types/src/surface/surface.d.ts +13 -5
  755. package/types/src/switch/switch.d.ts +7 -11
  756. package/types/src/table/row.d.ts +2 -3
  757. package/types/src/table/table.d.ts +4 -11
  758. package/types/src/tabs/index.d.ts +0 -2
  759. package/types/src/tabs/tab.d.ts +2 -3
  760. package/types/src/tabs/tabs-group.d.ts +3 -3
  761. package/types/src/teleport/teleport.component.d.ts +3 -3
  762. package/types/src/textarea/textarea.d.ts +5 -12
  763. package/types/src/theme/theme-audio-player.d.ts +3 -3
  764. package/types/src/theme/theme-controller.d.ts +2 -2
  765. package/types/src/theme/theme.component.d.ts +18 -13
  766. package/types/src/theme-button/theme-button.d.ts +2 -3
  767. package/types/src/timeline/index.d.ts +1 -0
  768. package/types/src/timeline/timeline-tile.d.ts +44 -0
  769. package/types/src/tree/tree.d.ts +3 -16
  770. package/types/src/typewriter/index.d.ts +1 -1
  771. package/types/src/typography/typography.d.ts +3 -36
  772. package/types/src/visually-hidden/visually-hidden.d.ts +3 -3
  773. package/types/src/window/window.d.ts +3 -3
  774. package/dist/agent/index.es-Dymj8REP.js +0 -489
  775. package/dist/agent/index.es-Dymj8REP.js.map +0 -1
  776. package/dist/area-BGBCMC79.js.map +0 -1
  777. package/dist/area-D7l9KR2N.cjs +0 -12
  778. package/dist/area-D7l9KR2N.cjs.map +0 -1
  779. package/dist/autocomplete-BPD5uraA.cjs +0 -115
  780. package/dist/autocomplete-BPD5uraA.cjs.map +0 -1
  781. package/dist/autocomplete-C2P0Soht.js.map +0 -1
  782. package/dist/boat-BkIO-0No.cjs +0 -80
  783. package/dist/boat-BkIO-0No.cjs.map +0 -1
  784. package/dist/boat-DXZ0k7oa.js.map +0 -1
  785. package/dist/busy-DGYhpTnO.cjs.map +0 -1
  786. package/dist/busy-iRjq6Nvd.js.map +0 -1
  787. package/dist/card-DjYnCckw.cjs.map +0 -1
  788. package/dist/card-wUTjx0EC.js.map +0 -1
  789. package/dist/checkbox-CiYEtw9F.cjs +0 -39
  790. package/dist/checkbox-CiYEtw9F.cjs.map +0 -1
  791. package/dist/checkbox-VBSenxgb.js.map +0 -1
  792. package/dist/chips-BDS9lkPa.js.map +0 -1
  793. package/dist/chips-D6ptH5re.cjs.map +0 -1
  794. package/dist/code-highlight-Bi91XHJN.js.map +0 -1
  795. package/dist/code-highlight-BzRmBZzz.cjs.map +0 -1
  796. package/dist/components-DkmEgyAc.cjs +0 -73
  797. package/dist/components.cjs +0 -1
  798. package/dist/components.js +0 -2
  799. package/dist/context-BerzpUhI.js +0 -3
  800. package/dist/context-C6dHUHhi.cjs +0 -1
  801. package/dist/date-range-BmFxTXiU.cjs +0 -131
  802. package/dist/date-range-BmFxTXiU.cjs.map +0 -1
  803. package/dist/date-range-ClTMg1AB.js.map +0 -1
  804. package/dist/date-range-inline-B9Dp2z6C.cjs +0 -43
  805. package/dist/delay-BHODnTg-.cjs +0 -9
  806. package/dist/delay-BHODnTg-.cjs.map +0 -1
  807. package/dist/delay-Dlk0A3he.js +0 -347
  808. package/dist/delay-Dlk0A3he.js.map +0 -1
  809. package/dist/details-CPjlqQD4.js.map +0 -1
  810. package/dist/details-Cz9ok9si.cjs.map +0 -1
  811. package/dist/dialog-service-CzDO08Gy.cjs.map +0 -1
  812. package/dist/dialog-service-DH-tjPuE.js.map +0 -1
  813. package/dist/divider-CILo3_vi.cjs.map +0 -1
  814. package/dist/divider-ghgyw5CU.js.map +0 -1
  815. package/dist/expand-CbjBr_Ds.js.map +0 -1
  816. package/dist/expand-r3OrSoDk.cjs +0 -141
  817. package/dist/expand-r3OrSoDk.cjs.map +0 -1
  818. package/dist/extra-BZeZOMBI.cjs.map +0 -1
  819. package/dist/extra-DK9MQtPJ.js.map +0 -1
  820. package/dist/float-CuZ8LOgB.cjs +0 -1
  821. package/dist/flow-BPDtbhLe.js +0 -386
  822. package/dist/flow-BPDtbhLe.js.map +0 -1
  823. package/dist/flow-Dn9AZktE.cjs +0 -1
  824. package/dist/flow-Dn9AZktE.cjs.map +0 -1
  825. package/dist/form-rCZqoAoK.js.map +0 -1
  826. package/dist/form-wI58M85H.cjs.map +0 -1
  827. package/dist/handover/agent-runtime-v2-loopback.md +0 -71
  828. package/dist/handover/claude-design-v2-paste.md +0 -42
  829. package/dist/icons-Drq4kKy2.js.map +0 -1
  830. package/dist/icons-DtdhaZdc.cjs +0 -52
  831. package/dist/icons-DtdhaZdc.cjs.map +0 -1
  832. package/dist/iframe-BkwwWIbQ.cjs +0 -24
  833. package/dist/iframe-BkwwWIbQ.cjs.map +0 -1
  834. package/dist/iframe-BmyHW8km.js.map +0 -1
  835. package/dist/index.es-BgmFX1JM.cjs +0 -1
  836. package/dist/index.es-BgmFX1JM.cjs.map +0 -1
  837. package/dist/index.es-CLyb_o3Y.js +0 -489
  838. package/dist/index.es-CLyb_o3Y.js.map +0 -1
  839. package/dist/input-BGNZlfL8.cjs +0 -51
  840. package/dist/input-BGNZlfL8.cjs.map +0 -1
  841. package/dist/input-Bc3bVISm.js.map +0 -1
  842. package/dist/input-chip-BQrjpjaQ.js.map +0 -1
  843. package/dist/input-chip-DN-cwf11.cjs.map +0 -1
  844. package/dist/intersection-BrXp4YTO.js +0 -12
  845. package/dist/intersection-BrXp4YTO.js.map +0 -1
  846. package/dist/intersection-DqBqnpgh.cjs +0 -1
  847. package/dist/intersection-DqBqnpgh.cjs.map +0 -1
  848. package/dist/layout-7eyMBmZk.cjs +0 -17
  849. package/dist/layout-7eyMBmZk.cjs.map +0 -1
  850. package/dist/layout-Ox6nJkzC.js +0 -268
  851. package/dist/layout-Ox6nJkzC.js.map +0 -1
  852. package/dist/lightbox-CY52Z_ig.js.map +0 -1
  853. package/dist/lightbox-H8Uq3AXy.cjs +0 -202
  854. package/dist/lightbox-H8Uq3AXy.cjs.map +0 -1
  855. package/dist/list-BGjVo6zb.cjs +0 -40
  856. package/dist/list-BGjVo6zb.cjs.map +0 -1
  857. package/dist/list-D7wUxu1C.js.map +0 -1
  858. package/dist/litElement.mixin-CszkJuNl.js +0 -12
  859. package/dist/litElement.mixin-CszkJuNl.js.map +0 -1
  860. package/dist/litElement.mixin-qh5-IIUq.cjs +0 -1
  861. package/dist/litElement.mixin-qh5-IIUq.cjs.map +0 -1
  862. package/dist/mailbox--EN-JhjV.js.map +0 -1
  863. package/dist/mailbox-DLiBGJhY.cjs.map +0 -1
  864. package/dist/map-B0S_q3ma.js.map +0 -1
  865. package/dist/map-EDQN0I6e.cjs +0 -80
  866. package/dist/map-EDQN0I6e.cjs.map +0 -1
  867. package/dist/menu-3edZGQ1x.cjs.map +0 -1
  868. package/dist/menu-COeFpb6n.js.map +0 -1
  869. package/dist/metric.cjs +0 -69
  870. package/dist/metric.cjs.map +0 -1
  871. package/dist/metric.js +0 -93
  872. package/dist/metric.js.map +0 -1
  873. package/dist/mixins.cjs.map +0 -1
  874. package/dist/mixins.js.map +0 -1
  875. package/dist/notification-CC-TFN5v.js.map +0 -1
  876. package/dist/notification-P4c-kFdH.cjs +0 -23
  877. package/dist/notification-P4c-kFdH.cjs.map +0 -1
  878. package/dist/option-BwAF4nAw.js.map +0 -1
  879. package/dist/option-Cu0ertuF.cjs +0 -43
  880. package/dist/option-Cu0ertuF.cjs.map +0 -1
  881. package/dist/progress-Bk_Q1Shy.js.map +0 -1
  882. package/dist/progress-Yz6EMNSu.cjs.map +0 -1
  883. package/dist/provide-CYgj58u_.cjs +0 -1
  884. package/dist/provide-CYgj58u_.cjs.map +0 -1
  885. package/dist/provide-ydIskwf2.js +0 -107
  886. package/dist/provide-ydIskwf2.js.map +0 -1
  887. package/dist/radio-group-BcdcjLNC.js.map +0 -1
  888. package/dist/radio-group-BpBz5tRA.cjs +0 -40
  889. package/dist/radio-group-BpBz5tRA.cjs.map +0 -1
  890. package/dist/scroll-DXQv0ejL.js.map +0 -1
  891. package/dist/scroll-DbZMTv0K.cjs +0 -26
  892. package/dist/scroll-DbZMTv0K.cjs.map +0 -1
  893. package/dist/search-CwMav5QB.cjs +0 -1
  894. package/dist/select-BV4lK2zy.cjs.map +0 -1
  895. package/dist/select-DKyGWDsG.js.map +0 -1
  896. package/dist/sheet-BAI_jH1t.cjs +0 -35
  897. package/dist/sheet-BAI_jH1t.cjs.map +0 -1
  898. package/dist/sheet-C3TLKItO.js.map +0 -1
  899. package/dist/sheet.service-RcDBwHmv.cjs +0 -1
  900. package/dist/skills/schmancy/store.md +0 -126
  901. package/dist/skills/store.md +0 -126
  902. package/dist/sound.service-BEN6Xjy_.cjs +0 -1
  903. package/dist/sound.service-BEN6Xjy_.cjs.map +0 -1
  904. package/dist/sound.service-DWZe6swU.js.map +0 -1
  905. package/dist/splash-screen-DbI5RgBf.js.map +0 -1
  906. package/dist/splash-screen-DoHRTHi8.cjs +0 -41
  907. package/dist/splash-screen-DoHRTHi8.cjs.map +0 -1
  908. package/dist/src-00DfxCJq.js.map +0 -1
  909. package/dist/src-C_JjQovE.cjs +0 -269
  910. package/dist/src-C_JjQovE.cjs.map +0 -1
  911. package/dist/store-CjFHCSDb.cjs +0 -1
  912. package/dist/store-CjFHCSDb.cjs.map +0 -1
  913. package/dist/store-CjzZDQt8.js +0 -1654
  914. package/dist/store-CjzZDQt8.js.map +0 -1
  915. package/dist/store.cjs +0 -1
  916. package/dist/store.js +0 -2
  917. package/dist/surface-D-GWBcsh.cjs +0 -7
  918. package/dist/surface-D-GWBcsh.cjs.map +0 -1
  919. package/dist/surface-D23JtxYP.js +0 -22
  920. package/dist/surface-D23JtxYP.js.map +0 -1
  921. package/dist/surface.mixin-DqMwoddO.js +0 -320
  922. package/dist/surface.mixin-DqMwoddO.js.map +0 -1
  923. package/dist/surface.mixin-DxOi-xo0.cjs +0 -297
  924. package/dist/surface.mixin-DxOi-xo0.cjs.map +0 -1
  925. package/dist/table-C7b73kdg.cjs +0 -63
  926. package/dist/table-C7b73kdg.cjs.map +0 -1
  927. package/dist/table-CTrhV9-k.js +0 -631
  928. package/dist/table-CTrhV9-k.js.map +0 -1
  929. package/dist/tabs-Ce55RbwF.js.map +0 -1
  930. package/dist/tabs-DAzB8O7w.cjs +0 -31
  931. package/dist/tabs-DAzB8O7w.cjs.map +0 -1
  932. package/dist/tailwind.mixin-DRI1oTYQ.cjs +0 -2
  933. package/dist/tailwind.mixin-DRI1oTYQ.cjs.map +0 -1
  934. package/dist/tailwind.mixin-mdQR3BEO.js +0 -219
  935. package/dist/tailwind.mixin-mdQR3BEO.js.map +0 -1
  936. package/dist/textarea-DjN1D9u0.js.map +0 -1
  937. package/dist/textarea-PuHxBvJA.cjs +0 -39
  938. package/dist/textarea-PuHxBvJA.cjs.map +0 -1
  939. package/dist/theme-B-IJ2r7Q.cjs +0 -181
  940. package/dist/theme-button-BSbYmS4p.cjs +0 -8
  941. package/dist/theme-button-BSbYmS4p.cjs.map +0 -1
  942. package/dist/theme-button-CEMeAUOL.js.map +0 -1
  943. package/dist/theme.service-DxJPUGlu.cjs +0 -1
  944. package/dist/theme.service-DxJPUGlu.cjs.map +0 -1
  945. package/dist/theme.service-cOfPrtfe.js.map +0 -1
  946. package/dist/tslib.es6-Cnt75pb6.cjs +0 -1
  947. package/dist/tslib.es6-Cnt75pb6.cjs.map +0 -1
  948. package/dist/tslib.es6-DMzzJKHV.js +0 -7
  949. package/dist/tslib.es6-DMzzJKHV.js.map +0 -1
  950. package/dist/utils-Bp2jhyZc.js.map +0 -1
  951. package/dist/utils-CBPQvxNW.cjs +0 -1
  952. package/dist/utils-CBPQvxNW.cjs.map +0 -1
  953. package/dist/window-CrjZdf7Y.js.map +0 -1
  954. package/dist/window-DTUARSrU.cjs +0 -59
  955. package/dist/window-DTUARSrU.cjs.map +0 -1
  956. package/skills/schmancy/store.md +0 -126
  957. package/src/components/form-elements/index.ts +0 -1
  958. package/src/components/index.ts +0 -1
  959. package/src/layout/flex/flex.scss +0 -4
  960. package/src/layout/flex/flex.ts +0 -74
  961. package/src/layout/flex/index.ts +0 -1
  962. package/src/layout/grid/.readme +0 -79
  963. package/src/layout/grid/grid.scss +0 -5
  964. package/src/layout/grid/grid.ts +0 -121
  965. package/src/layout/grid/index.ts +0 -1
  966. package/src/layout/layout.ts +0 -122
  967. package/src/layout/v2/flex.ts +0 -243
  968. package/src/layout/v2/index.ts +0 -1
  969. package/src/metric/index.ts +0 -1
  970. package/src/metric/metric.ts +0 -127
  971. package/src/store/context-array.ts +0 -358
  972. package/src/store/context-collection.ts +0 -218
  973. package/src/store/context-create.ts +0 -284
  974. package/src/store/context-object.ts +0 -298
  975. package/src/store/filter-directive.ts +0 -614
  976. package/src/store/index.ts +0 -10
  977. package/src/store/selector-hook.ts +0 -259
  978. package/src/store/selectors.ts +0 -289
  979. package/src/store/storage-manager.ts +0 -269
  980. package/src/store/store.class.ts +0 -239
  981. package/src/store/types.ts +0 -327
  982. package/src/tabs/tabs-compatibility.ts +0 -20
  983. package/src/typewriter/typewriter.ts +0 -410
  984. package/types/src/agent/index.d.ts +0 -1
  985. package/types/src/area/route.test.d.ts +0 -20
  986. package/types/src/button/button.test.d.ts +0 -1
  987. package/types/src/chips/chip.d.ts +0 -3
  988. package/types/src/components/index.d.ts +0 -1
  989. package/types/src/content-drawer/$sheet.d.ts +0 -14
  990. package/types/src/dialog/dailog.d.ts +0 -116
  991. package/types/src/dialog/dialog-content.d.ts +0 -17
  992. package/types/src/directives/guard.d.ts +0 -1
  993. package/types/src/directives/visibility.d.ts +0 -11
  994. package/types/src/form/form-v2.d.ts +0 -22
  995. package/types/src/input/input-v2.d.ts +0 -250
  996. package/types/src/layout/flex/flex.d.ts +0 -26
  997. package/types/src/layout/flex/index.d.ts +0 -1
  998. package/types/src/layout/grid/grid.d.ts +0 -39
  999. package/types/src/layout/grid/index.d.ts +0 -1
  1000. package/types/src/layout/layout.d.ts +0 -59
  1001. package/types/src/layout/v2/flex.d.ts +0 -65
  1002. package/types/src/layout/v2/grid.d.ts +0 -51
  1003. package/types/src/layout/v2/index.d.ts +0 -1
  1004. package/types/src/lightbox/flip.directive.d.ts +0 -22
  1005. package/types/src/metric/index.d.ts +0 -1
  1006. package/types/src/metric/metric.d.ts +0 -39
  1007. package/types/src/notification/outlet.d.ts +0 -10
  1008. package/types/src/sheet/header.d.ts +0 -10
  1009. package/types/src/store/context-array.d.ts +0 -83
  1010. package/types/src/store/context-collection.d.ts +0 -74
  1011. package/types/src/store/context-create.d.ts +0 -43
  1012. package/types/src/store/context-object.d.ts +0 -46
  1013. package/types/src/store/filter-directive.d.ts +0 -116
  1014. package/types/src/store/immer-integration.d.ts +0 -54
  1015. package/types/src/store/index.d.ts +0 -10
  1016. package/types/src/store/selector-hook.d.ts +0 -46
  1017. package/types/src/store/selectors.d.ts +0 -90
  1018. package/types/src/store/storage-manager.d.ts +0 -48
  1019. package/types/src/store/store.class.d.ts +0 -73
  1020. package/types/src/store/types.d.ts +0 -241
  1021. package/types/src/tabs/tabs-compatibility.d.ts +0 -13
  1022. package/types/src/theme/theme.elevation.d.ts +0 -131
  1023. package/types/src/theme/theme.motion.d.ts +0 -198
  1024. package/types/src/theme/theme.shape.d.ts +0 -144
  1025. package/types/src/theme/theme.state.d.ts +0 -546
  1026. package/types/src/theme/theme.typography.d.ts +0 -74
  1027. package/types/src/tooltip/tooltip.d.ts +0 -33
  1028. package/types/src/typewriter/typewriter.d.ts +0 -94
  1029. /package/dist/agent/{flow-CvG1fLW5.js → flow-CaPi2G8y.js} +0 -0
  1030. /package/dist/agent/{vendor-material-color-DcL7ZPxx.js → vendor-material-color-Be96dpGE.js} +0 -0
  1031. /package/dist/{animation-hXFClrIn.js → animation-BK-8BwY8.js} +0 -0
  1032. /package/dist/{animation-CQRdLgzX.cjs → animation-CO_Csq84.cjs} +0 -0
  1033. /package/dist/{decorate-D_utPUsC.js → decorate-23nYs4Le.js} +0 -0
  1034. /package/dist/{decorate-F9CuyeHg.cjs → decorate-DpFmy0nm.cjs} +0 -0
  1035. /package/dist/{hashContent-B2IntJQf.js → hashContent-1ARKIsx9.js} +0 -0
  1036. /package/dist/{hashContent-CahnEuut.cjs → hashContent-Bp5S6T4U.cjs} +0 -0
  1037. /package/dist/{lazy-D6R5N5v4.js → lazy-B0ia54tT.js} +0 -0
  1038. /package/dist/{lazy-BDNnH_r7.cjs → lazy-Dq9mRRjT.cjs} +0 -0
  1039. /package/dist/{reduced-motion-BZTLqAyl.js → reduced-motion-D-L12p7G.js} +0 -0
  1040. /package/dist/{reduced-motion-9RjNnhIg.cjs → reduced-motion-Ds-HjMzn.cjs} +0 -0
  1041. /package/dist/{rxjs-utils-DJbZRjp3.cjs → rxjs-utils-Csnks202.cjs} +0 -0
  1042. /package/dist/{rxjs-utils-CKTnEKUH.js → rxjs-utils-d-ivVN84.js} +0 -0
  1043. /package/dist/{theme.events-NuihzD_p.js → theme.events-Cv7N4Toe.js} +0 -0
  1044. /package/dist/{theme.events-DakXxZeP.cjs → theme.events-DM4H5F2d.cjs} +0 -0
  1045. /package/dist/{theme.interface-DTwkuAKJ.cjs → theme.interface-D9l33b-M.cjs} +0 -0
  1046. /package/dist/{theme.interface-Buged9Cg.js → theme.interface-DnVNre4O.js} +0 -0
  1047. /package/src/{directives/typewriter.ts → typewriter/typewriter.directive.ts} +0 -0
  1048. /package/types/src/{components/form-elements → payment-card-form}/index.d.ts +0 -0
  1049. /package/types/src/{directives/typewriter.d.ts → typewriter/typewriter.directive.d.ts} +0 -0
@@ -1,268 +0,0 @@
1
- import { t as e } from "./tailwind.mixin-mdQR3BEO.js";
2
- import { t } from "./decorate-D_utPUsC.js";
3
- import "./mixins.js";
4
- import "./scroll-DXQv0ejL.js";
5
- import { debounceTime as n, distinctUntilChanged as r, fromEvent as i, map as a, startWith as o, takeUntil as s } from "rxjs";
6
- import { classMap as c } from "lit/directives/class-map.js";
7
- import { styleMap as l } from "lit/directives/style-map.js";
8
- import { customElement as u, property as d, queryAssignedElements as f } from "lit/decorators.js";
9
- import { css as p, html as m, unsafeCSS as h } from "lit";
10
- var g = class extends e() {
11
- constructor(...e) {
12
- super(...e), this.layout = !0, this.center = void 0, this.display = void 0, this.overflow = void 0, this.overflowX = void 0, this.overflowY = void 0, this.position = void 0;
13
- }
14
- static {
15
- this.styles = [this.styles];
16
- }
17
- connectedCallback() {
18
- super.connectedCallback(), this.style.setProperty("padding", this.padding ?? ""), this.style.setProperty("margin", this.margin ?? ""), this.style.setProperty("width", this.width ?? ""), this.style.setProperty("height", this.height ?? ""), this.style.setProperty("min-width", this.minWidth ?? ""), this.style.setProperty("min-height", this.minHeight ?? ""), this.style.setProperty("max-width", this.maxWidth ?? ""), this.style.setProperty("max-height", this.maxHeight ?? ""), this.style.setProperty("display", this.display ?? ""), this.style.setProperty("overflow", this.overflow ?? ""), this.style.setProperty("overflow-x", this.overflowX ?? ""), this.style.setProperty("overflow-y", this.overflowY ?? ""), this.style.setProperty("position", this.position ?? ""), this.style.setProperty("top", this.top ?? ""), this.style.setProperty("right", this.right ?? ""), this.style.setProperty("bottom", this.bottom ?? ""), this.style.setProperty("left", this.left ?? ""), this.style.setProperty("inset", this.inset ?? ""), this.style.setProperty("z-index", this.zIndex ?? ""), this.style.setProperty("border", this.border ?? ""), this.style.setProperty("border-top", this.borderTop ?? ""), this.style.setProperty("border-right", this.borderRight ?? ""), this.style.setProperty("border-bottom", this.borderBottom ?? ""), this.style.setProperty("border-left", this.borderLeft ?? ""), this.style.setProperty("border-color", this.borderColor ?? ""), this.style.setProperty("border-radius", this.borderRadius ?? ""), this.style.setProperty("border-width", this.borderWidth ?? ""), this.style.setProperty("box-shadow", this.boxShadow ?? ""), this.style.setProperty("opacity", this.opacity ?? ""), this.style.setProperty("background", this.background ?? ""), this.style.setProperty("background-image", this.backgroundImage ?? ""), this.style.setProperty("background-position", this.backgroundPosition ?? ""), this.style.setProperty("background-size", this.backgroundSize ?? ""), this.style.setProperty("background-repeat", this.backgroundRepeat ?? ""), this.style.setProperty("background-attachment", this.backgroundAttachment ?? ""), this.style.setProperty("background-color", this.backgroundColor ?? ""), this.style.setProperty("background-clip", this.backgroundClip ?? ""), this.style.setProperty("background-origin", this.backgroundOrigin ?? ""), this.style.setProperty("background-blend-mode", this.backgroundBlendMode ?? ""), this.style.setProperty("filter", this.filter ?? ""), this.style.setProperty("backdrop-filter", this.backdropFilter ?? ""), this.center && (this.style.setProperty("margin-left", "auto"), this.style.setProperty("margin-right", "auto"));
19
- }
20
- };
21
- t([d({ type: Boolean })], g.prototype, "center", void 0), t([d({ type: String })], g.prototype, "padding", void 0), t([d({ type: String })], g.prototype, "margin", void 0), t([d({ type: String })], g.prototype, "width", void 0), t([d({ type: String })], g.prototype, "height", void 0), t([d({ type: String })], g.prototype, "minWidth", void 0), t([d({ type: String })], g.prototype, "minHeight", void 0), t([d({ type: String })], g.prototype, "maxWidth", void 0), t([d({ type: String })], g.prototype, "maxHeight", void 0), t([d({ type: String })], g.prototype, "display", void 0), t([d({ type: String })], g.prototype, "overflow", void 0), t([d({ type: String })], g.prototype, "overflowX", void 0), t([d({ type: String })], g.prototype, "overflowY", void 0), t([d({ type: String })], g.prototype, "position", void 0), t([d({ type: String })], g.prototype, "top", void 0), t([d({ type: String })], g.prototype, "right", void 0), t([d({ type: String })], g.prototype, "bottom", void 0), t([d({ type: String })], g.prototype, "left", void 0), t([d({ type: String })], g.prototype, "inset", void 0), t([d({ type: String })], g.prototype, "zIndex", void 0), t([d({ type: String })], g.prototype, "border", void 0), t([d({ type: String })], g.prototype, "borderTop", void 0), t([d({ type: String })], g.prototype, "borderRight", void 0), t([d({ type: String })], g.prototype, "borderBottom", void 0), t([d({ type: String })], g.prototype, "borderLeft", void 0), t([d({ type: String })], g.prototype, "borderColor", void 0), t([d({ type: String })], g.prototype, "borderRadius", void 0), t([d({ type: String })], g.prototype, "borderWidth", void 0), t([d({ type: String })], g.prototype, "boxShadow", void 0), t([d({ type: String })], g.prototype, "opacity", void 0), t([d({ type: String })], g.prototype, "background", void 0), t([d({ type: String })], g.prototype, "backgroundImage", void 0), t([d({ type: String })], g.prototype, "backgroundPosition", void 0), t([d({ type: String })], g.prototype, "backgroundSize", void 0), t([d({ type: String })], g.prototype, "backgroundRepeat", void 0), t([d({ type: String })], g.prototype, "backgroundAttachment", void 0), t([d({ type: String })], g.prototype, "backgroundColor", void 0), t([d({ type: String })], g.prototype, "backgroundClip", void 0), t([d({ type: String })], g.prototype, "backgroundOrigin", void 0), t([d({ type: String })], g.prototype, "backgroundBlendMode", void 0), t([d({ type: String })], g.prototype, "filter", void 0), t([d({ type: String })], g.prototype, "backdropFilter", void 0);
22
- var _ = class extends g {
23
- constructor(...e) {
24
- super(...e), this.layout = !0, this.flow = "col", this.wrap = "wrap", this.align = "start", this.justify = "start", this.gap = "none";
25
- }
26
- static {
27
- this.styles = [g.styles, h(":host{background-color:inherit;display:block}")];
28
- }
29
- render() {
30
- return m`
31
- <section class=${c({
32
- flex: !0,
33
- "flex-col": this.flow === "row",
34
- "flex-col-reverse": this.flow === "row-reverse",
35
- "flex-row": this.flow === "col",
36
- "flex-row-reverse": this.flow === "col-reverse",
37
- "flex-wrap": this.wrap === "wrap",
38
- "flex-wrap-reverse": this.wrap === "wrap-reverse",
39
- "flex-nowrap": this.wrap === "nowrap",
40
- "items-start": this.align === "start",
41
- "items-center": this.align === "center",
42
- "items-end": this.align === "end",
43
- "items-stretch": this.align === "stretch",
44
- "justify-baseline": this.align === "baseline",
45
- "justify-center": this.justify === "center",
46
- "justify-end": this.justify === "end",
47
- "justify-start": this.justify === "start",
48
- "justify-stretch": this.justify === "stretch",
49
- "justify-between": this.justify === "between",
50
- "gap-0": this.gap === "none",
51
- "gap-2": this.gap === "sm",
52
- "gap-4": this.gap === "md",
53
- "gap-8": this.gap === "lg"
54
- })} style=${l({})}>
55
- <slot></slot>
56
- </section>
57
- `;
58
- }
59
- };
60
- t([d({
61
- type: String,
62
- reflect: !0
63
- })], _.prototype, "flow", void 0), t([d({
64
- type: String,
65
- reflect: !0
66
- })], _.prototype, "wrap", void 0), t([d({
67
- type: String,
68
- reflect: !0
69
- })], _.prototype, "align", void 0), t([d({
70
- type: String,
71
- reflect: !0
72
- })], _.prototype, "justify", void 0), t([d({
73
- type: String,
74
- reflect: !0
75
- })], _.prototype, "gap", void 0), _ = t([u("schmancy-flex")], _);
76
- var v = class extends g {
77
- constructor(...e) {
78
- super(...e), this.layout = !0, this.flow = "row", this.align = "stretch", this.justify = "stretch", this.content = "stretch", this.gap = "none", this.wrap = !1;
79
- }
80
- static {
81
- this.styles = [g.styles, h(":host{width:-webkit-fill-available;height:max-content;display:block}")];
82
- }
83
- firstUpdated() {
84
- this.rcols && i(window, "resize").pipe(a((e) => e.target), o(1), a(() => this.clientWidth ? this.clientWidth : window.innerWidth), r(), s(this.disconnecting), n(10), a((e) => {
85
- let t;
86
- return this.rcols?.["2xl"] && e >= 1536 ? t = this.rcols?.["2xl"] : this.rcols?.xl && e >= 1280 ? t = this.rcols?.xl : this.rcols?.lg && e >= 1024 ? t = this.rcols?.lg : this.rcols?.md && e >= 768 ? t = this.rcols?.md : this.rcols?.sm && e >= 640 ? t = this.rcols?.sm : this.rcols?.xs && e < 640 && (t = this.rcols?.xs), t;
87
- })).subscribe((e) => {
88
- this.cols = e;
89
- });
90
- }
91
- render() {
92
- let e = {
93
- "h-full": !0,
94
- "grid flex-1": !0,
95
- "grid-flow-row auto-rows-max": this.flow === "row",
96
- "grid-flow-col auto-cols-max": this.flow === "col",
97
- "grid-flow-row-dense": this.flow === "row-dense",
98
- "grid-flow-col-dense": this.flow === "col-dense",
99
- "grid-flow-dense": this.flow === "dense",
100
- "justify-center": this.content === "center",
101
- "justify-end": this.content === "end",
102
- "justify-start": this.content === "start",
103
- "justify-stretch": this.content === "stretch",
104
- "justify-between": this.content === "between",
105
- "justify-around": this.content === "around",
106
- "justify-evenly": this.content === "evenly",
107
- "justify-items-center": this.justify === "center",
108
- "justify-items-end": this.justify === "end",
109
- "justify-items-start": this.justify === "start",
110
- "justify-items-stretch": this.justify === "stretch",
111
- "items-center": this.align === "center",
112
- "items-end": this.align === "end",
113
- "items-start": this.align === "start",
114
- "items-stretch": this.align === "stretch",
115
- "items-baseline": this.align === "baseline",
116
- "gap-0": this.gap === "none",
117
- "gap-1": this.gap === "xs",
118
- "gap-2": this.gap === "sm",
119
- "gap-4": this.gap === "md",
120
- "gap-8": this.gap === "lg",
121
- "flex-nowrap": this.wrap,
122
- "flex-wrap": !this.wrap
123
- }, t = {
124
- gridTemplateRows: this.rows ? this.rows : void 0,
125
- gridTemplateColumns: this.cols ? this.cols : void 0
126
- };
127
- return m`
128
- <section class="${this.classMap(e)}" style=${this.styleMap(t)}>
129
- <slot> </slot>
130
- </section>
131
- `;
132
- }
133
- };
134
- t([d({ type: String })], v.prototype, "flow", void 0), t([d({ type: String })], v.prototype, "align", void 0), t([d({ type: String })], v.prototype, "justify", void 0), t([d({ type: String })], v.prototype, "content", void 0), t([d({ type: String })], v.prototype, "gap", void 0), t([d({ type: String })], v.prototype, "cols", void 0), t([d({ type: String })], v.prototype, "rows", void 0), t([d({ type: Object })], v.prototype, "rcols", void 0), t([d({ type: Boolean })], v.prototype, "wrap", void 0), t([f()], v.prototype, "assignedElements", void 0), v = t([u("schmancy-grid")], v);
135
- var y = class extends g {
136
- constructor(...e) {
137
- super(...e), this.inline = !1, this.flow = "row", this.wrap = "wrap", this.align = "stretch", this.justify = "start", this.gap = "none";
138
- }
139
- static {
140
- this.styles = [g.styles, p`
141
- :host {
142
- display: block;
143
- }
144
- `];
145
- }
146
- render() {
147
- let e = this.inline ? "inline-flex" : "flex", t = "";
148
- switch (this.flow) {
149
- case "row":
150
- case "row-dense":
151
- default:
152
- t = "flex-row";
153
- break;
154
- case "row-reverse":
155
- t = "flex-row-reverse";
156
- break;
157
- case "col":
158
- case "col-dense":
159
- t = "flex-col";
160
- break;
161
- case "col-reverse": t = "flex-col-reverse";
162
- }
163
- let n = "";
164
- switch (this.flow === "row-dense" || this.flow === "col-dense" ? "wrap" : this.wrap) {
165
- case "wrap":
166
- default:
167
- n = "flex-wrap";
168
- break;
169
- case "nowrap":
170
- n = "flex-nowrap";
171
- break;
172
- case "wrap-reverse": n = "flex-wrap-reverse";
173
- }
174
- let r = "";
175
- switch (this.align) {
176
- case "start":
177
- r = "items-start";
178
- break;
179
- case "center":
180
- r = "items-center";
181
- break;
182
- case "end":
183
- r = "items-end";
184
- break;
185
- case "stretch":
186
- default:
187
- r = "items-stretch";
188
- break;
189
- case "baseline": r = "items-baseline";
190
- }
191
- let i = "";
192
- switch (this.justify) {
193
- case "start":
194
- default:
195
- i = "justify-start";
196
- break;
197
- case "center":
198
- i = "justify-center";
199
- break;
200
- case "end":
201
- i = "justify-end";
202
- break;
203
- case "between":
204
- i = "justify-between";
205
- break;
206
- case "around":
207
- i = "justify-around";
208
- break;
209
- case "evenly": i = "justify-evenly";
210
- }
211
- let a = "";
212
- if (this.content) switch (this.content) {
213
- case "start":
214
- a = "content-start";
215
- break;
216
- case "center":
217
- a = "content-center";
218
- break;
219
- case "end":
220
- a = "content-end";
221
- break;
222
- case "between":
223
- a = "content-between";
224
- break;
225
- case "around":
226
- a = "content-around";
227
- break;
228
- case "evenly": a = "content-evenly";
229
- }
230
- let o = this.gap === "none" ? "gap-0" : `gap-${this.gap}`;
231
- return m`
232
- <section class=${[
233
- e,
234
- t,
235
- n,
236
- r,
237
- i,
238
- a,
239
- o
240
- ].filter(Boolean).join(" ")}>
241
- <slot></slot>
242
- </section>
243
- `;
244
- }
245
- };
246
- t([d({
247
- type: Boolean,
248
- reflect: !0
249
- })], y.prototype, "inline", void 0), t([d({
250
- type: String,
251
- reflect: !0
252
- })], y.prototype, "flow", void 0), t([d({
253
- type: String,
254
- reflect: !0
255
- })], y.prototype, "wrap", void 0), t([d({
256
- type: String,
257
- reflect: !0
258
- })], y.prototype, "align", void 0), t([d({
259
- type: String,
260
- reflect: !0
261
- })], y.prototype, "justify", void 0), t([d({
262
- type: String,
263
- reflect: !0
264
- })], y.prototype, "content", void 0), t([d({
265
- type: String,
266
- reflect: !0
267
- })], y.prototype, "gap", void 0), y = t([u("sch-flex")], y);
268
- export { v as n, _ as r, y as t };
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-Ox6nJkzC.js","names":[],"sources":["../src/layout/layout.ts","../src/layout/flex/flex.scss?inline","../src/layout/flex/flex.ts","../src/layout/grid/grid.scss?inline","../src/layout/grid/grid.ts","../src/layout/v2/flex.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { property } from 'lit/decorators.js'\n\n/**\n * @deprecated Use Tailwind CSS utility classes directly on HTML elements instead of this base class.\n * This component will be removed in a future version.\n * \n * Migration guide:\n * - Use inline styles or Tailwind utility classes for layout properties\n * - Replace properties like padding, margin, width, etc. with their CSS equivalents\n * \n * @class Layout\n */\nexport default class Layout extends TailwindElement() {\n\tstatic styles = [this.styles]\n\tlayout = true\n\t@property({ type: Boolean }) center: boolean | undefined = undefined\n\t@property({ type: String }) padding: string | undefined\n\t@property({ type: String }) margin: string | undefined\n\t@property({ type: String }) width: string | undefined\n\t@property({ type: String }) height: string | undefined\n\t@property({ type: String }) minWidth: string | undefined\n\t@property({ type: String }) minHeight: string | undefined\n\t@property({ type: String }) maxWidth: string | undefined\n\t@property({ type: String }) maxHeight: string | undefined\n\t@property({ type: String }) display:\n\t\t| 'block'\n\t\t| 'inline-block'\n\t\t| 'inline'\n\t\t| 'flex'\n\t\t| 'inline-flex'\n\t\t| 'grid'\n\t\t| 'inline-grid'\n\t\t| 'table'\n\t\t| 'inline-table'\n\t\t| 'flow-root'\n\t\t| 'none'\n\t\t| undefined = undefined\n\t@property({ type: String }) overflow: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) overflowX: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) overflowY: 'visible' | 'hidden' | 'scroll' | 'auto' | undefined = undefined\n\t@property({ type: String }) position: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' | undefined = undefined\n\t@property({ type: String }) top: string | undefined\n\t@property({ type: String }) right: string | undefined\n\t@property({ type: String }) bottom: string | undefined\n\t@property({ type: String }) left: string | undefined\n\t@property({ type: String }) inset: string | undefined\n\t@property({ type: String }) zIndex: string | undefined\n\n\t@property({ type: String }) border: string | undefined\n\t@property({ type: String }) borderTop: string | undefined\n\t@property({ type: String }) borderRight: string | undefined\n\t@property({ type: String }) borderBottom: string | undefined\n\t@property({ type: String }) borderLeft: string | undefined\n\t@property({ type: String }) borderColor: string | undefined\n\t@property({ type: String }) borderRadius: string | undefined\n\t@property({ type: String }) borderWidth: string | undefined\n\n\t@property({ type: String }) boxShadow: string | undefined\n\t@property({ type: String }) opacity: string | undefined\n\t@property({ type: String }) background: string | undefined\n\t@property({ type: String }) backgroundImage: string | undefined\n\t@property({ type: String }) backgroundPosition: string | undefined\n\t@property({ type: String }) backgroundSize: string | undefined\n\t@property({ type: String }) backgroundRepeat: string | undefined\n\t@property({ type: String }) backgroundAttachment: string | undefined\n\t@property({ type: String }) backgroundColor: string | undefined\n\t@property({ type: String }) backgroundClip: string | undefined\n\t@property({ type: String }) backgroundOrigin: string | undefined\n\t@property({ type: String }) backgroundBlendMode: string | undefined\n\t@property({ type: String }) filter: string | undefined\n\t@property({ type: String }) backdropFilter: string | undefined\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.style.setProperty('padding', this.padding ?? '')\n\t\tthis.style.setProperty('margin', this.margin ?? '')\n\t\tthis.style.setProperty('width', this.width ?? '')\n\t\tthis.style.setProperty('height', this.height ?? '')\n\t\tthis.style.setProperty('min-width', this.minWidth ?? '')\n\t\tthis.style.setProperty('min-height', this.minHeight ?? '')\n\t\tthis.style.setProperty('max-width', this.maxWidth ?? '')\n\t\tthis.style.setProperty('max-height', this.maxHeight ?? '')\n\t\tthis.style.setProperty('display', this.display ?? '')\n\t\tthis.style.setProperty('overflow', this.overflow ?? '')\n\t\tthis.style.setProperty('overflow-x', this.overflowX ?? '')\n\t\tthis.style.setProperty('overflow-y', this.overflowY ?? '')\n\t\tthis.style.setProperty('position', this.position ?? '')\n\t\tthis.style.setProperty('top', this.top ?? '')\n\t\tthis.style.setProperty('right', this.right ?? '')\n\t\tthis.style.setProperty('bottom', this.bottom ?? '')\n\t\tthis.style.setProperty('left', this.left ?? '')\n\t\tthis.style.setProperty('inset', this.inset ?? '')\n\t\tthis.style.setProperty('z-index', this.zIndex ?? '')\n\t\tthis.style.setProperty('border', this.border ?? '')\n\t\tthis.style.setProperty('border-top', this.borderTop ?? '')\n\t\tthis.style.setProperty('border-right', this.borderRight ?? '')\n\t\tthis.style.setProperty('border-bottom', this.borderBottom ?? '')\n\t\tthis.style.setProperty('border-left', this.borderLeft ?? '')\n\t\tthis.style.setProperty('border-color', this.borderColor ?? '')\n\t\tthis.style.setProperty('border-radius', this.borderRadius ?? '')\n\t\tthis.style.setProperty('border-width', this.borderWidth ?? '')\n\t\tthis.style.setProperty('box-shadow', this.boxShadow ?? '')\n\t\tthis.style.setProperty('opacity', this.opacity ?? '')\n\t\tthis.style.setProperty('background', this.background ?? '')\n\t\tthis.style.setProperty('background-image', this.backgroundImage ?? '')\n\t\tthis.style.setProperty('background-position', this.backgroundPosition ?? '')\n\t\tthis.style.setProperty('background-size', this.backgroundSize ?? '')\n\t\tthis.style.setProperty('background-repeat', this.backgroundRepeat ?? '')\n\t\tthis.style.setProperty('background-attachment', this.backgroundAttachment ?? '')\n\t\tthis.style.setProperty('background-color', this.backgroundColor ?? '')\n\t\tthis.style.setProperty('background-clip', this.backgroundClip ?? '')\n\t\tthis.style.setProperty('background-origin', this.backgroundOrigin ?? '')\n\t\tthis.style.setProperty('background-blend-mode', this.backgroundBlendMode ?? '')\n\t\tthis.style.setProperty('filter', this.filter ?? '')\n\t\tthis.style.setProperty('backdrop-filter', this.backdropFilter ?? '')\n\t\tif (this.center) {\n\t\t\tthis.style.setProperty('margin-left', 'auto')\n\t\t\tthis.style.setProperty('margin-right', 'auto')\n\t\t}\n\t}\n}\n",":host {\n\tdisplay: block;\n\tbackground-color: inherit;\n}\n","import { html, unsafeCSS } 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'\nimport Layout from '../layout'\nimport style from './flex.scss?inline'\n\n/**\n * @deprecated Use Tailwind CSS flex classes directly instead of this component.\n * This component will be removed in a future version.\n * \n * Migration guide:\n * - Replace <schmancy-flex> with <div class=\"flex ...\">\n * - Use Tailwind's flex utilities: flex-row, flex-col, gap-*, items-*, justify-*, etc.\n * \n * @element schmancy-flex\n */\n@customElement('schmancy-flex')\nexport class SchmancyFlex extends Layout {\n\tstatic styles = [Layout.styles, unsafeCSS(style)]\n\tlayout = true\n\t@property({ type: String, reflect: true }) flow: 'row' | 'row-reverse' | 'col' | 'col-reverse' = 'col'\n\t@property({ type: String, reflect: true }) wrap: 'wrap' | 'nowrap' | 'wrap-reverse' = 'wrap'\n\t@property({ type: String, reflect: true }) align: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'start'\n\t@property({ type: String, reflect: true }) justify: 'start' | 'center' | 'end' | 'stretch' | 'between' = 'start'\n\t@property({ type: String, reflect: true }) gap: 'none' | 'sm' | 'md' | 'lg' = 'none'\n\n\trender() {\n\t\tconst classes = {\n\t\t\tflex: true,\n\t\t\t// Direction\n\t\t\t'flex-col': this.flow === 'row',\n\t\t\t'flex-col-reverse': this.flow === 'row-reverse',\n\t\t\t'flex-row': this.flow === 'col',\n\t\t\t'flex-row-reverse': this.flow === 'col-reverse',\n\t\t\t// Wrap\n\t\t\t'flex-wrap': this.wrap === 'wrap',\n\t\t\t'flex-wrap-reverse': this.wrap === 'wrap-reverse',\n\t\t\t'flex-nowrap': this.wrap === 'nowrap',\n\t\t\t// Align\n\t\t\t'items-start': this.align === 'start',\n\t\t\t'items-center': this.align === 'center',\n\t\t\t'items-end': this.align === 'end',\n\t\t\t'items-stretch': this.align === 'stretch',\n\t\t\t'justify-baseline': this.align === 'baseline',\n\n\t\t\t// Justify\n\t\t\t'justify-center': this.justify === 'center',\n\t\t\t'justify-end': this.justify === 'end',\n\t\t\t'justify-start': this.justify === 'start',\n\t\t\t'justify-stretch': this.justify === 'stretch',\n\t\t\t'justify-between': this.justify === 'between',\n\n\t\t\t// Gap\n\t\t\t'gap-0': this.gap === 'none',\n\t\t\t'gap-2': this.gap === 'sm',\n\t\t\t'gap-4': this.gap === 'md',\n\t\t\t'gap-8': this.gap === 'lg',\n\t\t}\n\n\t\tconst styles = {}\n\t\treturn html`\n\t\t\t<section class=${classMap(classes)} style=${styleMap(styles)}>\n\t\t\t\t<slot></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-flex': SchmancyFlex\n\t}\n}\n",":host {\n\theight: max-content;\n\twidth: -webkit-fill-available;\n\tdisplay: block;\n}\n","import { html, unsafeCSS } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { debounceTime, distinctUntilChanged, fromEvent, map, startWith, takeUntil } from 'rxjs'\nimport Layout from '../layout'\nimport style from './grid.scss?inline'\n\n/**\n * @deprecated Use Tailwind CSS grid classes directly instead of this component.\n * This component will be removed in a future version.\n * \n * Migration guide:\n * - Replace <schmancy-grid> with <div class=\"grid ...\">\n * - Use Tailwind's grid utilities: grid-cols-*, gap-*, items-*, justify-items-*, etc.\n * \n * @element schmancy-grid\n */\n@customElement('schmancy-grid')\nexport class SchmancyGrid extends Layout {\n\tstatic styles = [Layout.styles, unsafeCSS(style)]\n\tlayout = true\n\t@property({ type: String }) flow: 'row' | 'col' | 'dense' | 'row-dense' | 'col-dense' = 'row'\n\t@property({ type: String }) align: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'stretch'\n\t@property({ type: String }) justify: 'start' | 'center' | 'end' | 'stretch' = 'stretch'\n\t@property({ type: String }) content: 'start' | 'center' | 'end' | 'stretch' | 'around' | 'evenly' | 'between' =\n\t\t'stretch'\n\t@property({ type: String }) gap: 'none' | 'xs' | 'sm' | 'md' | 'lg' = 'none'\n\n\t@property({ type: String }) cols?: string\n\t@property({ type: String }) rows?: string\n\t@property({ type: Object }) rcols?: {\n\t\txs?: string | number\n\t\tsm?: string | number\n\t\tmd?: string | number\n\t\tlg?: string | number\n\t\txl?: string | number\n\t\t'2xl'?: string | number\n\t}\n\n\t@property({ type: Boolean }) wrap = false\n\n\t@queryAssignedElements() assignedElements!: HTMLElement[]\n\n\tfirstUpdated() {\n\t\tif (this.rcols)\n\t\t\tfromEvent<CustomEvent>(window, 'resize')\n\t\t\t\t.pipe(\n\t\t\t\t\tmap(event => event.target as Window),\n\t\t\t\t\tstartWith(1),\n\t\t\t\t\tmap(() => (this.clientWidth ? this.clientWidth : window.innerWidth)),\n\t\t\t\t\tdistinctUntilChanged(),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\tdebounceTime(10),\n\t\t\t\t\tmap(w => {\n\t\t\t\t\t\tlet cols\n\t\t\t\t\t\tif (this.rcols?.['2xl'] && w >= 1536) cols = this.rcols?.['2xl']\n\t\t\t\t\t\telse if (this.rcols?.xl && w >= 1280) cols = this.rcols?.xl\n\t\t\t\t\t\telse if (this.rcols?.lg && w >= 1024) cols = this.rcols?.lg\n\t\t\t\t\t\telse if (this.rcols?.md && w >= 768) cols = this.rcols?.md\n\t\t\t\t\t\telse if (this.rcols?.sm && w >= 640) cols = this.rcols?.sm\n\t\t\t\t\t\telse if (this.rcols?.xs && w < 640) cols = this.rcols?.xs\n\t\t\t\t\t\treturn cols\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.subscribe(cols => {\n\t\t\t\t\tthis.cols = cols\n\t\t\t\t})\n\t}\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'h-full': true,\n\t\t\t'grid flex-1': true,\n\t\t\t// flow classes: https://tailwindcss.com/docs/grid-auto-flow\n\t\t\t'grid-flow-row auto-rows-max': this.flow === 'row',\n\t\t\t'grid-flow-col auto-cols-max': this.flow === 'col',\n\t\t\t'grid-flow-row-dense': this.flow === 'row-dense',\n\t\t\t'grid-flow-col-dense': this.flow === 'col-dense',\n\t\t\t'grid-flow-dense': this.flow === 'dense',\n\n\t\t\t'justify-center': this.content === 'center',\n\t\t\t'justify-end': this.content === 'end',\n\t\t\t'justify-start': this.content === 'start',\n\t\t\t'justify-stretch': this.content === 'stretch',\n\t\t\t'justify-between': this.content === 'between',\n\t\t\t'justify-around': this.content === 'around',\n\t\t\t'justify-evenly': this.content === 'evenly',\n\n\t\t\t'justify-items-center': this.justify === 'center',\n\t\t\t'justify-items-end': this.justify === 'end',\n\t\t\t'justify-items-start': this.justify === 'start',\n\t\t\t'justify-items-stretch': this.justify === 'stretch',\n\t\t\t'items-center': this.align === 'center',\n\t\t\t'items-end': this.align === 'end',\n\t\t\t'items-start': this.align === 'start',\n\t\t\t'items-stretch': this.align === 'stretch',\n\t\t\t'items-baseline': this.align === 'baseline',\n\t\t\t'gap-0': this.gap === 'none',\n\t\t\t'gap-1': this.gap === 'xs',\n\t\t\t'gap-2': this.gap === 'sm',\n\t\t\t'gap-4': this.gap === 'md',\n\t\t\t'gap-8': this.gap === 'lg',\n\t\t\t'flex-nowrap': this.wrap,\n\t\t\t'flex-wrap': !this.wrap,\n\t\t}\n\t\tconst style = {\n\t\t\tgridTemplateRows: this.rows ? this.rows : undefined,\n\t\t\tgridTemplateColumns: this.cols ? this.cols : undefined,\n\t\t}\n\t\treturn html`\n\t\t\t<section class=\"${this.classMap(classes)}\" style=${this.styleMap(style)}>\n\t\t\t\t<slot> </slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-grid': SchmancyGrid\n\t}\n}\n","import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport Layout from '../layout'\n\n/**\n * @deprecated Use Tailwind CSS flex classes directly instead of this component.\n * This component will be removed in a future version.\n * \n * Migration guide:\n * - Replace <sch-flex> with <div class=\"flex ...\">\n * - Use Tailwind's flex utilities: flex-row, flex-col, gap-*, items-*, justify-*, etc.\n * \n * Original documentation:\n * \n * SchmancyFlex exposes a flex container with all the Tailwind CSS 4 options:\n *\n * - **Display**: By default uses `flex` but can be set to inline using the `inline` property.\n * - **Flow**: Accepts 'row', 'row-reverse', 'col', 'col-reverse' as well as grid‐like dense variants:\n * - Dense variants (`row-dense`, `col-dense`) force wrapping.\n * - **Wrap**: 'wrap', 'nowrap', or 'wrap-reverse'\n * - **Align Items**: 'start', 'center', 'end', 'stretch', or 'baseline'\n * - **Justify Content**: 'start', 'center', 'end', 'between', 'around', or 'evenly'\n * - **Align Content** (for multi-line flex containers): 'start', 'center', 'end', 'between', 'around', or 'evenly'\n * - **Gap**: Supports Tailwind’s spacing scale (e.g. 'none', '0', '1', '2', …, '64')\n */\n@customElement('sch-flex')\nexport class SchmancyFlexV2 extends Layout {\n\tstatic styles = [\n\t\tLayout.styles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t`,\n\t]\n\t// If true, the container will use inline-flex instead of flex.\n\t@property({ type: Boolean, reflect: true })\n\tinline = false\n\n\t/**\n\t * Flow property that determines the flex direction.\n\t * Allowed values:\n\t * - Standard: 'row', 'row-reverse', 'col', 'col-reverse'\n\t * - Dense variants: 'row-dense', 'col-dense' (dense implies wrapping)\n\t */\n\t@property({ type: String, reflect: true })\n\tflow: 'row' | 'row-reverse' | 'col' | 'col-reverse' | 'row-dense' | 'col-dense' = 'row'\n\n\t/**\n\t * Flex-wrap options:\n\t * - 'wrap', 'nowrap', or 'wrap-reverse'\n\t */\n\t@property({ type: String, reflect: true })\n\twrap: 'wrap' | 'nowrap' | 'wrap-reverse' = 'wrap'\n\n\t/**\n\t * Align-items (vertical alignment of flex items):\n\t * - 'start', 'center', 'end', 'stretch', or 'baseline'\n\t */\n\t@property({ type: String, reflect: true })\n\talign: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'stretch'\n\n\t/**\n\t * Justify-content (horizontal distribution):\n\t * - 'start', 'center', 'end', 'between', 'around', or 'evenly'\n\t */\n\t@property({ type: String, reflect: true })\n\tjustify: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly' = 'start'\n\n\t/**\n\t * Align-content (spacing between rows when wrapping):\n\t * - 'start', 'center', 'end', 'between', 'around', or 'evenly'\n\t */\n\t@property({ type: String, reflect: true })\n\tcontent?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'\n\n\t/**\n\t * Gap between flex items.\n\t * Options (based on Tailwind CSS 4 spacing scale):\n\t * - 'none', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '12', '16', '20', '24', '32', '40', '48', '56', or '64'\n\t */\n\t@property({ type: String, reflect: true })\n\tgap:\n\t\t| 'none'\n\t\t| '0'\n\t\t| '1'\n\t\t| '2'\n\t\t| '3'\n\t\t| '4'\n\t\t| '5'\n\t\t| '6'\n\t\t| '7'\n\t\t| '8'\n\t\t| '9'\n\t\t| '10'\n\t\t| '12'\n\t\t| '16'\n\t\t| '20'\n\t\t| '24'\n\t\t| '32'\n\t\t| '40'\n\t\t| '48'\n\t\t| '56'\n\t\t| '64' = 'none'\n\n\trender() {\n\t\t// Determine whether to use inline-flex or flex.\n\t\tconst baseDisplay = this.inline ? 'inline-flex' : 'flex'\n\n\t\t// Map the flow property to a flex-direction class.\n\t\t// (Dense variants use the same class as their standard counterparts.)\n\t\tlet directionClass = ''\n\t\tswitch (this.flow) {\n\t\t\tcase 'row':\n\t\t\tcase 'row-dense':\n\t\t\t\tdirectionClass = 'flex-row'\n\t\t\t\tbreak\n\t\t\tcase 'row-reverse':\n\t\t\t\tdirectionClass = 'flex-row-reverse'\n\t\t\t\tbreak\n\t\t\tcase 'col':\n\t\t\tcase 'col-dense':\n\t\t\t\tdirectionClass = 'flex-col'\n\t\t\t\tbreak\n\t\t\tcase 'col-reverse':\n\t\t\t\tdirectionClass = 'flex-col-reverse'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tdirectionClass = 'flex-row'\n\t\t}\n\n\t\t// Dense variants force wrapping regardless of the wrap property.\n\t\tconst isDense = this.flow === 'row-dense' || this.flow === 'col-dense'\n\t\tconst effectiveWrap = isDense ? 'wrap' : this.wrap\n\n\t\tlet wrapClass = ''\n\t\tswitch (effectiveWrap) {\n\t\t\tcase 'wrap':\n\t\t\t\twrapClass = 'flex-wrap'\n\t\t\t\tbreak\n\t\t\tcase 'nowrap':\n\t\t\t\twrapClass = 'flex-nowrap'\n\t\t\t\tbreak\n\t\t\tcase 'wrap-reverse':\n\t\t\t\twrapClass = 'flex-wrap-reverse'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\twrapClass = 'flex-wrap'\n\t\t}\n\n\t\t// Map align-items.\n\t\tlet alignClass = ''\n\t\tswitch (this.align) {\n\t\t\tcase 'start':\n\t\t\t\talignClass = 'items-start'\n\t\t\t\tbreak\n\t\t\tcase 'center':\n\t\t\t\talignClass = 'items-center'\n\t\t\t\tbreak\n\t\t\tcase 'end':\n\t\t\t\talignClass = 'items-end'\n\t\t\t\tbreak\n\t\t\tcase 'stretch':\n\t\t\t\talignClass = 'items-stretch'\n\t\t\t\tbreak\n\t\t\tcase 'baseline':\n\t\t\t\talignClass = 'items-baseline'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\talignClass = 'items-stretch'\n\t\t}\n\n\t\t// Map justify-content.\n\t\tlet justifyClass = ''\n\t\tswitch (this.justify) {\n\t\t\tcase 'start':\n\t\t\t\tjustifyClass = 'justify-start'\n\t\t\t\tbreak\n\t\t\tcase 'center':\n\t\t\t\tjustifyClass = 'justify-center'\n\t\t\t\tbreak\n\t\t\tcase 'end':\n\t\t\t\tjustifyClass = 'justify-end'\n\t\t\t\tbreak\n\t\t\tcase 'between':\n\t\t\t\tjustifyClass = 'justify-between'\n\t\t\t\tbreak\n\t\t\tcase 'around':\n\t\t\t\tjustifyClass = 'justify-around'\n\t\t\t\tbreak\n\t\t\tcase 'evenly':\n\t\t\t\tjustifyClass = 'justify-evenly'\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tjustifyClass = 'justify-start'\n\t\t}\n\n\t\t// Map align-content (if provided).\n\t\tlet contentClass = ''\n\t\tif (this.content) {\n\t\t\tswitch (this.content) {\n\t\t\t\tcase 'start':\n\t\t\t\t\tcontentClass = 'content-start'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'center':\n\t\t\t\t\tcontentClass = 'content-center'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'end':\n\t\t\t\t\tcontentClass = 'content-end'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'between':\n\t\t\t\t\tcontentClass = 'content-between'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'around':\n\t\t\t\t\tcontentClass = 'content-around'\n\t\t\t\t\tbreak\n\t\t\t\tcase 'evenly':\n\t\t\t\t\tcontentClass = 'content-evenly'\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Map gap value.\n\t\tconst gapClass = this.gap === 'none' ? 'gap-0' : `gap-${this.gap}`\n\n\t\t// Build the complete list of classes.\n\t\tconst classes = [baseDisplay, directionClass, wrapClass, alignClass, justifyClass, contentClass, gapClass]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ')\n\n\t\treturn html`\n\t\t\t<section class=${classes}>\n\t\t\t\t<slot></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sch-flex': SchmancyFlexV2\n\t}\n}\n"],"mappings":";;;;;;;;;AAaA,IAAqB,IAArB,cAAoC,GAAA,CAAA;CAAA,YAAA,GAAA,GAAA;AAAA,QAAA,GAAA,EAAA,EAAA,KAAA,SAAA,CAE1B,GAAA,KAAA,SAAA,KACkD,GAAA,KAAA,UAAA,KAqB5C,GAAA,KAAA,WAAA,KAC8E,GAAA,KAAA,YAAA,KACC,GAAA,KAAA,YAAA,KACA,GAAA,KAAA,WAAA,KACc;;CAAA;AAAA,OAAA,SA3B5F,CAAC,KAAK,OAAA;;CA2DtB,oBAAA;AACC,QAAM,mBAAA,EACN,KAAK,MAAM,YAAY,WAAW,KAAK,WAAW,GAAA,EAClD,KAAK,MAAM,YAAY,UAAU,KAAK,UAAU,GAAA,EAChD,KAAK,MAAM,YAAY,SAAS,KAAK,SAAS,GAAA,EAC9C,KAAK,MAAM,YAAY,UAAU,KAAK,UAAU,GAAA,EAChD,KAAK,MAAM,YAAY,aAAa,KAAK,YAAY,GAAA,EACrD,KAAK,MAAM,YAAY,cAAc,KAAK,aAAa,GAAA,EACvD,KAAK,MAAM,YAAY,aAAa,KAAK,YAAY,GAAA,EACrD,KAAK,MAAM,YAAY,cAAc,KAAK,aAAa,GAAA,EACvD,KAAK,MAAM,YAAY,WAAW,KAAK,WAAW,GAAA,EAClD,KAAK,MAAM,YAAY,YAAY,KAAK,YAAY,GAAA,EACpD,KAAK,MAAM,YAAY,cAAc,KAAK,aAAa,GAAA,EACvD,KAAK,MAAM,YAAY,cAAc,KAAK,aAAa,GAAA,EACvD,KAAK,MAAM,YAAY,YAAY,KAAK,YAAY,GAAA,EACpD,KAAK,MAAM,YAAY,OAAO,KAAK,OAAO,GAAA,EAC1C,KAAK,MAAM,YAAY,SAAS,KAAK,SAAS,GAAA,EAC9C,KAAK,MAAM,YAAY,UAAU,KAAK,UAAU,GAAA,EAChD,KAAK,MAAM,YAAY,QAAQ,KAAK,QAAQ,GAAA,EAC5C,KAAK,MAAM,YAAY,SAAS,KAAK,SAAS,GAAA,EAC9C,KAAK,MAAM,YAAY,WAAW,KAAK,UAAU,GAAA,EACjD,KAAK,MAAM,YAAY,UAAU,KAAK,UAAU,GAAA,EAChD,KAAK,MAAM,YAAY,cAAc,KAAK,aAAa,GAAA,EACvD,KAAK,MAAM,YAAY,gBAAgB,KAAK,eAAe,GAAA,EAC3D,KAAK,MAAM,YAAY,iBAAiB,KAAK,gBAAgB,GAAA,EAC7D,KAAK,MAAM,YAAY,eAAe,KAAK,cAAc,GAAA,EACzD,KAAK,MAAM,YAAY,gBAAgB,KAAK,eAAe,GAAA,EAC3D,KAAK,MAAM,YAAY,iBAAiB,KAAK,gBAAgB,GAAA,EAC7D,KAAK,MAAM,YAAY,gBAAgB,KAAK,eAAe,GAAA,EAC3D,KAAK,MAAM,YAAY,cAAc,KAAK,aAAa,GAAA,EACvD,KAAK,MAAM,YAAY,WAAW,KAAK,WAAW,GAAA,EAClD,KAAK,MAAM,YAAY,cAAc,KAAK,cAAc,GAAA,EACxD,KAAK,MAAM,YAAY,oBAAoB,KAAK,mBAAmB,GAAA,EACnE,KAAK,MAAM,YAAY,uBAAuB,KAAK,sBAAsB,GAAA,EACzE,KAAK,MAAM,YAAY,mBAAmB,KAAK,kBAAkB,GAAA,EACjE,KAAK,MAAM,YAAY,qBAAqB,KAAK,oBAAoB,GAAA,EACrE,KAAK,MAAM,YAAY,yBAAyB,KAAK,wBAAwB,GAAA,EAC7E,KAAK,MAAM,YAAY,oBAAoB,KAAK,mBAAmB,GAAA,EACnE,KAAK,MAAM,YAAY,mBAAmB,KAAK,kBAAkB,GAAA,EACjE,KAAK,MAAM,YAAY,qBAAqB,KAAK,oBAAoB,GAAA,EACrE,KAAK,MAAM,YAAY,yBAAyB,KAAK,uBAAuB,GAAA,EAC5E,KAAK,MAAM,YAAY,UAAU,KAAK,UAAU,GAAA,EAChD,KAAK,MAAM,YAAY,mBAAmB,KAAK,kBAAkB,GAAA,EAC7D,KAAK,WACR,KAAK,MAAM,YAAY,eAAe,OAAA,EACtC,KAAK,MAAM,YAAY,gBAAgB,OAAA;;;AAAA,EAAA,CAtGxC,EAAS,EAAE,MAAM,SAAA,CAAA,CAAA,EAAU,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAC3B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,aAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,aAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAa1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,aAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,aAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,OAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAE1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,aAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,eAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,gBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,cAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,eAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,gBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,eAAA,KAAA,EAAA,EAAA,EAAA,CAE1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,aAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,cAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,mBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,sBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,kBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,oBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,wBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,mBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,kBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,oBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,uBAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,kBAAA,KAAA,EAAA;AAAA,IErDrB,IAAA,cAA2B,EAAA;CAAA,YAAA,GAAA,GAAA;AAAA,QAAA,GAAA,EAAA,EAAA,KAAA,SAAA,CAExB,GAAA,KAAA,OACwF,OAAA,KAAA,OACX,QAAA,KAAA,QACkB,SAAA,KAAA,UACC,SAAA,KAAA,MAC3B;;CAAA;AAAA,OAAA,SAN9D,CAAC,EAAO,QAAQ,EAAA,gDAAA,CAAA;;CAQhC,SAAA;AAkCC,SAAO,CAAI;oBACO,EAAS;GAjC1B,MAAA,CAAM;GAEN,YAAY,KAAK,SAAS;GAC1B,oBAAoB,KAAK,SAAS;GAClC,YAAY,KAAK,SAAS;GAC1B,oBAAoB,KAAK,SAAS;GAElC,aAAa,KAAK,SAAS;GAC3B,qBAAqB,KAAK,SAAS;GACnC,eAAe,KAAK,SAAS;GAE7B,eAAe,KAAK,UAAU;GAC9B,gBAAgB,KAAK,UAAU;GAC/B,aAAa,KAAK,UAAU;GAC5B,iBAAiB,KAAK,UAAU;GAChC,oBAAoB,KAAK,UAAU;GAGnC,kBAAkB,KAAK,YAAY;GACnC,eAAe,KAAK,YAAY;GAChC,iBAAiB,KAAK,YAAY;GAClC,mBAAmB,KAAK,YAAY;GACpC,mBAAmB,KAAK,YAAY;GAGpC,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GAAR,CAAA,CAAA,SAK8B,EAAS,EAAA,CAAA,CAAA;;;;;;GAzCtD,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CACzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CACzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CACzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CACzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,OAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAR1C,EAAc,gBAAA,CAAA,EAAgB,EAAA;AAAA,IEAxB,IAAA,cAA2B,EAAA;CAAA,YAAA,GAAA,GAAA;AAAA,QAAA,GAAA,EAAA,EAAA,KAAA,SAAA,CAExB,GAAA,KAAA,OAC+E,OAAA,KAAA,QACC,WAAA,KAAA,UACX,WAAA,KAAA,UAE7E,WAAA,KAAA,MACqE,QAAA,KAAA,OAAA,CAalC;;CAAA;AAAA,OAAA,SApBpB,CAAC,EAAO,QAAQ,EAAA,uEAAA,CAAA;;CAwBhC,eAAA;AACK,OAAK,SACR,EAAuB,QAAQ,SAAA,CAC7B,KACA,GAAI,MAAS,EAAM,OAAA,EACnB,EAAU,EAAA,EACV,QAAW,KAAK,cAAc,KAAK,cAAc,OAAO,WAAA,EACxD,GAAA,EACA,EAAU,KAAK,cAAA,EACf,EAAa,GAAA,EACb,GAAI,MAAA;GACH,IAAI;AAOJ,UANI,KAAK,QAAQ,UAAU,KAAK,OAAM,IAAO,KAAK,QAAQ,SACjD,KAAK,OAAO,MAAM,KAAK,OAAM,IAAO,KAAK,OAAO,KAChD,KAAK,OAAO,MAAM,KAAK,OAAM,IAAO,KAAK,OAAO,KAChD,KAAK,OAAO,MAAM,KAAK,MAAK,IAAO,KAAK,OAAO,KAC/C,KAAK,OAAO,MAAM,KAAK,MAAK,IAAO,KAAK,OAAO,KAC/C,KAAK,OAAO,MAAM,IAAI,QAAK,IAAO,KAAK,OAAO,KAChD;IAAA,CAAA,CAGR,WAAU,MAAA;AACV,QAAK,OAAO;IAAA;;CAIhB,SAAA;EACC,IAAM,IAAU;GACf,UAAA,CAAU;GACV,eAAA,CAAe;GAEf,+BAA+B,KAAK,SAAS;GAC7C,+BAA+B,KAAK,SAAS;GAC7C,uBAAuB,KAAK,SAAS;GACrC,uBAAuB,KAAK,SAAS;GACrC,mBAAmB,KAAK,SAAS;GAEjC,kBAAkB,KAAK,YAAY;GACnC,eAAe,KAAK,YAAY;GAChC,iBAAiB,KAAK,YAAY;GAClC,mBAAmB,KAAK,YAAY;GACpC,mBAAmB,KAAK,YAAY;GACpC,kBAAkB,KAAK,YAAY;GACnC,kBAAkB,KAAK,YAAY;GAEnC,wBAAwB,KAAK,YAAY;GACzC,qBAAqB,KAAK,YAAY;GACtC,uBAAuB,KAAK,YAAY;GACxC,yBAAyB,KAAK,YAAY;GAC1C,gBAAgB,KAAK,UAAU;GAC/B,aAAa,KAAK,UAAU;GAC5B,eAAe,KAAK,UAAU;GAC9B,iBAAiB,KAAK,UAAU;GAChC,kBAAkB,KAAK,UAAU;GACjC,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GACtB,eAAe,KAAK;GACpB,aAAA,CAAc,KAAK;GAAA,EAEd,IAAQ;GACb,kBAAkB,KAAK,OAAO,KAAK,OAAA,KAAO;GAC1C,qBAAqB,KAAK,OAAO,KAAK,OAAA,KAAO;GAAA;AAE9C,SAAO,CAAI;qBACQ,KAAK,SAAS,EAAA,CAAA,UAAmB,KAAK,SAAS,EAAA,CAAA;;;;;;GAzFlE,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAE1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,OAAA,KAAA,EAAA,EAAA,EAAA,CAE1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAS1B,EAAS,EAAE,MAAM,SAAA,CAAA,CAAA,EAAU,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAE3B,GAAA,CAAA,EAAuB,EAAA,WAAA,oBAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAxBxB,EAAc,gBAAA,CAAA,EAAgB,EAAA;ACUxB,IAAA,IAAA,cAA6B,EAAA;CAAA,YAAA,GAAA,GAAA;AAAA,QAAA,GAAA,EAAA,EAAA,KAAA,SAAA,CAW1B,GAAA,KAAA,OASyE,OAAA,KAAA,OAOvC,QAAA,KAAA,QAOkB,WAAA,KAAA,UAOW,SAAA,KAAA,MAoC9D;;CAAA;AAAA,OAAA,SA5EM,CACf,EAAO,QACP,CAAG;;;;;;CA4EJ,SAAA;EAEC,IAAM,IAAc,KAAK,SAAS,gBAAgB,QAI9C,IAAiB;AACrB,UAAQ,KAAK,MAAb;GACC,KAAK;GACL,KAAK;GAaL;AACC,QAAiB;AAAA;GAXlB,KAAK;AACJ,QAAiB;AACjB;GACD,KAAK;GACL,KAAK;AACJ,QAAiB;AACjB;GACD,KAAK,cACJ,KAAiB;;EAUnB,IAAI,IAAY;AAChB,UAJgB,KAAK,SAAS,eAAe,KAAK,SAAS,cAC3B,SAAS,KAAK,MAG9C;GACC,KAAK;GASL;AACC,QAAY;AAAA;GAPb,KAAK;AACJ,QAAY;AACZ;GACD,KAAK,eACJ,KAAY;;EAOd,IAAI,IAAa;AACjB,UAAQ,KAAK,OAAb;GACC,KAAK;AACJ,QAAa;AACb;GACD,KAAK;AACJ,QAAa;AACb;GACD,KAAK;AACJ,QAAa;AACb;GACD,KAAK;GAML;AACC,QAAa;AAAA;GAJd,KAAK,WACJ,KAAa;;EAOf,IAAI,IAAe;AACnB,UAAQ,KAAK,SAAb;GACC,KAAK;GAkBL;AACC,QAAe;AAAA;GAhBhB,KAAK;AACJ,QAAe;AACf;GACD,KAAK;AACJ,QAAe;AACf;GACD,KAAK;AACJ,QAAe;AACf;GACD,KAAK;AACJ,QAAe;AACf;GACD,KAAK,SACJ,KAAe;;EAOjB,IAAI,IAAe;AACnB,MAAI,KAAK,QACR,SAAQ,KAAK,SAAb;GACC,KAAK;AACJ,QAAe;AACf;GACD,KAAK;AACJ,QAAe;AACf;GACD,KAAK;AACJ,QAAe;AACf;GACD,KAAK;AACJ,QAAe;AACf;GACD,KAAK;AACJ,QAAe;AACf;GACD,KAAK,SACJ,KAAe;;EAMlB,IAAM,IAAW,KAAK,QAAQ,SAAS,UAAU,OAAO,KAAK;AAO7D,SAAO,CAAI;oBAJK;GAAC;GAAa;GAAgB;GAAW;GAAY;GAAc;GAAc;GAAA,CAC/F,OAAO,QAAA,CACP,KAAK,IAAA,CAAA;;;;;;GAhMP,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAS1C,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAOzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAOzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CAOzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAOzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAQzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,OAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAxD1C,EAAc,WAAA,CAAA,EAAW,EAAA;AAAA,SAAA,KAAA,GAAA,KAAA,GAAA,KAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lightbox-CY52Z_ig.js","names":[],"sources":["../src/lightbox/lightbox.ts","../src/lightbox/flip-directive.ts","../src/lightbox/lightbox.directive.ts","../src/lightbox/lightbox-service.ts"],"sourcesContent":["import { css, html, PropertyValues } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\nimport { ref, createRef, Ref } from 'lit/directives/ref.js'\nimport { fromEvent } from 'rxjs'\nimport { filter, takeUntil, tap, switchMap, map, first } from 'rxjs/operators'\nimport { $LitElement } from '@mixins/index'\nimport { overlayStack } from '../utils/overlay-stack'\n\n/**\n * Image lightbox — thumbnail grid that opens to a full-screen viewer on click, with keyboard navigation between images.\n *\n * @element schmancy-lightbox\n * @summary Drop-in for galleries / image lists where each thumbnail should expand to fill the viewport. Pass an `images` array of `{ src, alt, caption? }`.\n * @example\n * <schmancy-lightbox .images=${[{ src: '/a.jpg', alt: 'A' }, { src: '/b.jpg', alt: 'B' }]}></schmancy-lightbox>\n * @platform dialog close - Modal full-screen viewer with keyboard navigation. Degrades to a plain image grid if the tag never registers.\n * @fires change - When the active image index changes (next/prev). `detail.index` is the new active image's position in the array.\n * @fires close - When the viewer is dismissed (ESC, backdrop click, close button).\n */\n@customElement('schmancy-lightbox')\nexport class SchmancyLightbox extends $LitElement(css`\n\t:host {\n\t\tdisplay: contents;\n\t}\n`) {\n\t@property({ type: String }) src: string = ''\n\t@property({ type: Array }) images: string[] = []\n\t@property({ type: Number }) initialIndex: number = 0\n\t@property({ type: Boolean }) open: boolean = false\n\n\t@state() private currentIndex: number = 0\n\t@state() private isLoading: boolean = false\n\t@state() private zIndex: number = 10000\n\n\tprivate readonly swipeThreshold = 50\n\tprivate overlayRef: Ref<HTMLDivElement> = createRef()\n\tprivate contentRef: Ref<HTMLDivElement> = createRef()\n\tprivate imageRef: Ref<HTMLImageElement> = createRef()\n\n\tprivate get isGalleryMode(): boolean {\n\t\treturn this.images.length > 0\n\t}\n\n\tprivate get currentImageSrc(): string {\n\t\tif (this.isGalleryMode) {\n\t\t\treturn this.images[this.currentIndex] || ''\n\t\t}\n\t\treturn this.src\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.currentIndex = this.initialIndex\n\t}\n\n\tupdated(changedProperties: PropertyValues) {\n\t\tsuper.updated(changedProperties)\n\n\t\tif (changedProperties.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\t// Set dynamic z-index for proper stacking with sheets/dialogs\n\t\t\t\tthis.zIndex = overlayStack.getNextZIndex()\n\t\t\t\tdocument.body.style.overflow = 'hidden'\n\t\t\t\tthis.animateIn()\n\t\t\t\tthis.setupEventListeners()\n\t\t\t} else {\n\t\t\t\tdocument.body.style.overflow = ''\n\t\t\t\tthis.animateOut()\n\t\t\t}\n\t\t}\n\n\t\tif (changedProperties.has('initialIndex')) {\n\t\t\tthis.currentIndex = this.initialIndex\n\t\t}\n\n\t\tif (changedProperties.has('currentIndex') && this.open) {\n\t\t\tthis.animateImageChange()\n\t\t}\n\t}\n\n\tprivate animateIn() {\n\t\tconst overlay = this.overlayRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst image = this.imageRef.value\n\n\t\tif (overlay) {\n\t\t\t// Set initial styles\n\t\t\toverlay.style.backgroundColor = 'rgba(0, 0, 0, 0)'\n\t\t\toverlay.style.opacity = '0'\n\n\t\t\t// Animate to visible state\n\t\t\toverlay.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 0 },\n\t\t\t\t\t{ opacity: 1 },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 300,\n\t\t\t\t\teasing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\n\t\t\t// Manually set background color after a tick\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\toverlay.style.backgroundColor = 'rgba(0, 0, 0, 0.95)'\n\t\t\t})\n\t\t}\n\n\t\tif (content) {\n\t\t\tcontent.animate(\n\t\t\t\t[\n\t\t\t\t\t{ transform: 'scale(0.95)', opacity: 0 },\n\t\t\t\t\t{ transform: 'scale(1)', opacity: 1 },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 400,\n\t\t\t\t\tdelay: 100,\n\t\t\t\t\teasing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', // Spring effect\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\n\t\tif (image) {\n\t\t\timage.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 0, transform: 'scale(0.98)' },\n\t\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 350,\n\t\t\t\t\tdelay: 150,\n\t\t\t\t\teasing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate animateOut() {\n\t\tconst overlay = this.overlayRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst image = this.imageRef.value\n\n\t\tif (image) {\n\t\t\timage.animate(\n\t\t\t\t[\n\t\t\t\t\t{ transform: 'scale(1)', opacity: 1 },\n\t\t\t\t\t{ transform: 'scale(0.95)', opacity: 0 },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 200,\n\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\n\t\tif (content) {\n\t\t\tcontent.animate(\n\t\t\t\t[\n\t\t\t\t\t{ transform: 'scale(1)', opacity: 1 },\n\t\t\t\t\t{ transform: 'scale(0.95)', opacity: 0 },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 250,\n\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\n\t\tif (overlay) {\n\t\t\tconst animation = overlay.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 1 },\n\t\t\t\t\t{ opacity: 0 },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 250,\n\t\t\t\t\tdelay: 50,\n\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tanimation.onfinish = () => {\n\t\t\t\t// Reset background color\n\t\t\t\toverlay.style.backgroundColor = 'rgba(0, 0, 0, 0)'\n\t\t\t\toverlayStack.release()\n\t\t\t\tthis.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }))\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate animateImageChange() {\n\t\tconst image = this.imageRef.value\n\t\tif (!image) return\n\n\t\t// Fade out\n\t\tconst fadeOut = image.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.98)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 150,\n\t\t\t\teasing: 'ease-out',\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t)\n\n\t\t// Fade in after fade out completes\n\t\tfadeOut.onfinish = () => {\n\t\t\timage.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 0, transform: 'scale(0.98)' },\n\t\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 200,\n\t\t\t\t\teasing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter(() => this.open),\n\t\t\t\ttap(e => {\n\t\t\t\t\tswitch (e.key) {\n\t\t\t\t\t\tcase 'Escape':\n\t\t\t\t\t\t\tthis.handleClose()\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\t\t\tthis.handlePrevious()\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\t\t\tthis.handleNext()\n\t\t\t\t\t\t\tbreak\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()\n\n\t\t// Touch/swipe events for mobile\n\t\tif (!this.isGalleryMode || this.images.length <= 1) return\n\n\t\tconst content = this.contentRef.value\n\t\tif (!content) return\n\n\t\tconst touchStart$ = fromEvent<TouchEvent>(content, 'touchstart')\n\t\tconst touchEnd$ = fromEvent<TouchEvent>(content, 'touchend')\n\n\t\ttouchStart$\n\t\t\t.pipe(\n\t\t\t\tswitchMap(startEvent => {\n\t\t\t\t\tconst startX = startEvent.touches[0].clientX\n\t\t\t\t\treturn touchEnd$.pipe(\n\t\t\t\t\t\tfirst(),\n\t\t\t\t\t\tmap(endEvent => {\n\t\t\t\t\t\t\tconst endX = endEvent.changedTouches[0].clientX\n\t\t\t\t\t\t\treturn endX - startX\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\tfilter(distance => Math.abs(distance) > this.swipeThreshold),\n\t\t\t\ttap(distance => (distance > 0 ? this.handlePrevious() : this.handleNext())),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\tprivate handleClose = () => {\n\t\tthis.open = false\n\t}\n\n\tprivate handlePrevious = () => {\n\t\tif (this.isGalleryMode && this.images.length > 1) {\n\t\t\tthis.isLoading = true\n\t\t\tthis.currentIndex = (this.currentIndex - 1 + this.images.length) % this.images.length\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail: { index: this.currentIndex },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate handleNext = () => {\n\t\tif (this.isGalleryMode && this.images.length > 1) {\n\t\t\tthis.isLoading = true\n\t\t\tthis.currentIndex = (this.currentIndex + 1) % this.images.length\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('change', {\n\t\t\t\t\tdetail: { index: this.currentIndex },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate handleImageLoad = () => {\n\t\tthis.isLoading = false\n\t}\n\n\tprivate handleOverlayClick = (e: Event) => {\n\t\t// Close when clicking the overlay (not the content)\n\t\tif (e.target === e.currentTarget) {\n\t\t\tthis.handleClose()\n\t\t}\n\t}\n\n\trender() {\n\t\tif (!this.open) return html``\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\t${ref(this.overlayRef)}\n\t\t\t\tclass=\"fixed inset-0 flex items-center justify-center backdrop-blur-sm\"\n\t\t\t\tstyle=\"z-index: ${this.zIndex}\"\n\t\t\t\t@click=${this.handleOverlayClick}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\t${ref(this.contentRef)}\n\t\t\t\t\tclass=\"relative max-w-[90vw] max-h-[90vh]\"\n\t\t\t\t\t@click=${(e: Event) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<!-- Close Button -->\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"absolute top-4 right-4 md:top-4 md:right-4 sm:top-2 sm:right-2 bg-white/15 backdrop-blur-md border border-white/20 text-white w-11 h-11 rounded-full flex items-center justify-center cursor-pointer z-10 transition-all duration-200 hover:bg-white/25 hover:scale-105 active:scale-95\"\n\t\t\t\t\t\t@click=${this.handleClose}\n\t\t\t\t\t\taria-label=\"Close lightbox\"\n\t\t\t\t\t\ttitle=\"Close (Esc)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-icon>close</schmancy-icon>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<!-- Touch Zones for Gallery Navigation -->\n\t\t\t\t\t${when(\n\t\t\t\t\t\tthis.isGalleryMode && this.images.length > 1,\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"absolute top-0 bottom-0 left-0 w-1/3 cursor-pointer z-5\"\n\t\t\t\t\t\t\t\t@click=${this.handlePrevious}\n\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"absolute top-0 bottom-0 right-0 w-1/3 cursor-pointer z-5\"\n\t\t\t\t\t\t\t\t@click=${this.handleNext}\n\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t)}\n\n\t\t\t\t\t<!-- Loading Spinner -->\n\t\t\t\t\t${when(\n\t\t\t\t\t\tthis.isLoading,\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t<div class=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2\">\n\t\t\t\t\t\t\t\t<schmancy-progress indeterminate></schmancy-progress>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t)}\n\n\t\t\t\t\t<!-- Main Image -->\n\t\t\t\t\t<img\n\t\t\t\t\t\t${ref(this.imageRef)}\n\t\t\t\t\t\tclass=\"max-w-[90vw] max-h-[90vh] object-contain rounded select-none touch-pinch-zoom ${this\n\t\t\t\t\t\t\t.isGalleryMode\n\t\t\t\t\t\t\t? 'cursor-default'\n\t\t\t\t\t\t\t: 'cursor-pointer'}\"\n\t\t\t\t\t\t.src=${this.currentImageSrc}\n\t\t\t\t\t\talt=\"Full size image\"\n\t\t\t\t\t\t@load=${this.handleImageLoad}\n\t\t\t\t\t\t@click=${() => (!this.isGalleryMode ? this.handleClose() : null)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<!-- Navigation Controls (Gallery Mode Only) -->\n\t\t\t\t\t${when(\n\t\t\t\t\t\tthis.isGalleryMode && this.images.length > 1,\n\t\t\t\t\t\t() => html`\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"absolute bottom-[-3.5rem] md:bottom-[-3.5rem] sm:bottom-[-3rem] left-1/2 -translate-x-1/2 flex items-center gap-4 z-10\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclass=\"bg-white/15 backdrop-blur-md border border-white/20 text-white w-10 h-10 rounded-full flex items-center justify-center cursor-pointer transition-all duration-200 hover:bg-white/25 hover:scale-105 active:scale-95\"\n\t\t\t\t\t\t\t\t\t@click=${this.handlePrevious}\n\t\t\t\t\t\t\t\t\taria-label=\"Previous image\"\n\t\t\t\t\t\t\t\t\ttitle=\"Previous (←)\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<schmancy-icon>arrow_back</schmancy-icon>\n\t\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t\t\t<div class=\"text-white text-base font-medium min-w-16 text-center\" aria-live=\"polite\">\n\t\t\t\t\t\t\t\t\t${this.currentIndex + 1} / ${this.images.length}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclass=\"bg-white/15 backdrop-blur-md border border-white/20 text-white w-10 h-10 rounded-full flex items-center justify-center cursor-pointer transition-all duration-200 hover:bg-white/25 hover:scale-105 active:scale-95\"\n\t\t\t\t\t\t\t\t\t@click=${this.handleNext}\n\t\t\t\t\t\t\t\t\taria-label=\"Next image\"\n\t\t\t\t\t\t\t\t\ttitle=\"Next (→)\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<schmancy-icon>arrow_forward</schmancy-icon>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-lightbox': SchmancyLightbox\n\t}\n}\n","import { directive, PartInfo, PartType, ElementPart } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { noChange } from 'lit'\n\nexport interface FlipOptions {\n\t/** Source element to animate from (uses element's bounding rect) */\n\tsourceElement?: HTMLElement\n\t/** Click position - can be MouseEvent, TouchEvent, or {x, y} coordinates */\n\tposition?: { x: number; y: number } | MouseEvent | TouchEvent\n\t/** Animation duration in ms (total for both stages) */\n\tduration?: number\n\t/** CSS easing function */\n\teasing?: string\n\t/** Whether to animate scale (default: true) */\n\tscale?: boolean\n\t/** Enable blackbird two-stage arc animation (default: true) */\n\tblackbird?: boolean\n}\n\n/** Extract x,y coordinates from various position inputs */\nfunction extractPosition(pos: FlipOptions['position']): { x: number; y: number } | null {\n\tif (!pos) return null\n\n\tif ('clientX' in pos) {\n\t\t// MouseEvent\n\t\treturn { x: pos.clientX, y: pos.clientY }\n\t} else if ('touches' in pos && pos.touches.length) {\n\t\t// TouchEvent\n\t\treturn { x: pos.touches[0].clientX, y: pos.touches[0].clientY }\n\t} else if ('x' in pos && 'y' in pos) {\n\t\t// Position object\n\t\treturn { x: pos.x, y: pos.y }\n\t}\n\n\treturn null\n}\n\n/**\n * Calculate arc control point for bird-like curved trajectory\n * Birds arc UP when taking off and arc DOWN when landing\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\n\t// Arc height proportional to distance, but capped\n\tconst arcHeight = Math.min(distance * intensity, 150)\n\n\treturn {\n\t\tx: midX,\n\t\ty: arcDirection === 'up' ? midY - arcHeight : midY + arcHeight,\n\t}\n}\n\nclass FlipDirective extends AsyncDirective {\n\tprivate element?: HTMLElement\n\tprivate hasAnimated = false\n\n\tconstructor(partInfo: PartInfo) {\n\t\tsuper(partInfo)\n\t\tif (partInfo.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('flip directive can only be used on elements')\n\t\t}\n\t}\n\n\trender(_options?: FlipOptions) {\n\t\treturn noChange\n\t}\n\n\tupdate(part: ElementPart, [options]: [FlipOptions?]) {\n\t\tthis.element = part.element as HTMLElement\n\n\t\t// Animate if we have either a source element or position\n\t\tconst hasSource = options?.sourceElement || options?.position\n\t\tif (!this.hasAnimated && hasSource) {\n\t\t\tthis.hasAnimated = true\n\t\t\tthis.animateIn(options)\n\t\t}\n\n\t\treturn noChange\n\t}\n\n\tprivate animateIn(options?: FlipOptions) {\n\t\tif (!this.element) return\n\n\t\t// Check reduced motion preference\n\t\tif (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return\n\n\t\tconst totalDuration = options?.duration ?? 600\n\t\tconst animateScale = options?.scale !== false\n\t\tconst useBlackbird = options?.blackbird !== false\n\n\t\t// Get positions\n\t\tconst clickPos = extractPosition(options?.position)\n\t\tconst sourceRect = options?.sourceElement?.getBoundingClientRect()\n\n\t\tconst animate = () => {\n\t\t\tconst targetRect = this.element!.getBoundingClientRect()\n\t\t\tconst targetCenter = {\n\t\t\t\tx: targetRect.left + targetRect.width / 2,\n\t\t\t\ty: targetRect.top + targetRect.height / 2,\n\t\t\t}\n\n\t\t\t// Determine source point\n\t\t\tlet sourceCenter: { x: number; y: number }\n\t\t\tlet sourceScale = { x: 0.1, y: 0.1 }\n\n\t\t\tif (sourceRect) {\n\t\t\t\tsourceCenter = {\n\t\t\t\t\tx: sourceRect.left + sourceRect.width / 2,\n\t\t\t\t\ty: sourceRect.top + sourceRect.height / 2,\n\t\t\t\t}\n\t\t\t\tif (animateScale) {\n\t\t\t\t\tsourceScale = {\n\t\t\t\t\t\tx: sourceRect.width / targetRect.width,\n\t\t\t\t\t\ty: sourceRect.height / targetRect.height,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (clickPos) {\n\t\t\t\tsourceCenter = clickPos\n\t\t\t} else {\n\t\t\t\tsourceCenter = { x: window.innerWidth / 2, y: window.innerHeight / 2 }\n\t\t\t}\n\n\t\t\t// Calculate deltas from target (where element is) to source (where we start)\n\t\t\tconst sourceDelta = {\n\t\t\t\tx: sourceCenter.x - targetCenter.x,\n\t\t\t\ty: sourceCenter.y - targetCenter.y,\n\t\t\t}\n\n\t\t\tif (useBlackbird && clickPos && sourceRect) {\n\t\t\t\t// TWO-STAGE BLACKBIRD ANIMATION\n\t\t\t\t// Stage 1: Source element → Click position (takeoff arc - UP)\n\t\t\t\t// Stage 2: Click position → Final destination (landing arc - DOWN)\n\n\t\t\t\tconst clickDelta = {\n\t\t\t\t\tx: clickPos.x - targetCenter.x,\n\t\t\t\t\ty: clickPos.y - targetCenter.y,\n\t\t\t\t}\n\n\t\t\t\t// Calculate arc control points\n\t\t\t\tconst takeoffArc = calculateArcPoint(sourceCenter, clickPos, 'up', 0.4)\n\t\t\t\tconst landingArc = calculateArcPoint(clickPos, targetCenter, 'down', 0.3)\n\n\t\t\t\t// Arc deltas relative to target\n\t\t\t\tconst takeoffArcDelta = {\n\t\t\t\t\tx: takeoffArc.x - targetCenter.x,\n\t\t\t\t\ty: takeoffArc.y - targetCenter.y,\n\t\t\t\t}\n\t\t\t\tconst landingArcDelta = {\n\t\t\t\t\tx: landingArc.x - targetCenter.x,\n\t\t\t\t\ty: landingArc.y - targetCenter.y,\n\t\t\t\t}\n\n\t\t\t\t// Intermediate scale at click position\n\t\t\t\tconst midScale = 0.3\n\n\t\t\t\t// Create keyframes for two-stage arc animation\n\t\t\t\t// 0% → 25% → 50% → 75% → 100%\n\t\t\t\t// Source → Takeoff Arc → Click → Landing Arc → Final\n\t\t\t\tthis.element!.animate(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// 0% - Start at source element\n\t\t\t\t\t\t\ttransform: `translate(${sourceDelta.x}px, ${sourceDelta.y}px) scale(${sourceScale.x}, ${sourceScale.y})`,\n\t\t\t\t\t\t\topacity: 0.6,\n\t\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// 25% - Peak of takeoff arc (bird lifts up)\n\t\t\t\t\t\t\ttransform: `translate(${takeoffArcDelta.x}px, ${takeoffArcDelta.y}px) scale(${midScale * 0.7})`,\n\t\t\t\t\t\t\topacity: 0.8,\n\t\t\t\t\t\t\toffset: 0.25,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// 50% - At click position (transition point)\n\t\t\t\t\t\t\ttransform: `translate(${clickDelta.x}px, ${clickDelta.y}px) scale(${midScale})`,\n\t\t\t\t\t\t\topacity: 0.9,\n\t\t\t\t\t\t\toffset: 0.5,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// 75% - Landing arc (bird descends toward target)\n\t\t\t\t\t\t\ttransform: `translate(${landingArcDelta.x}px, ${landingArcDelta.y}px) scale(0.6)`,\n\t\t\t\t\t\t\topacity: 0.95,\n\t\t\t\t\t\t\toffset: 0.75,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// 100% - Final position\n\t\t\t\t\t\t\ttransform: 'translate(0, 0) scale(1)',\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\toffset: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: totalDuration,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.34, 1.2, 0.64, 1)', // Slight overshoot for organic feel\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t} else if (useBlackbird && clickPos) {\n\t\t\t\t// SINGLE-STAGE with arc (click position to final)\n\t\t\t\tconst arcPoint = calculateArcPoint(clickPos, targetCenter, 'down', 0.35)\n\t\t\t\tconst arcDelta = {\n\t\t\t\t\tx: arcPoint.x - targetCenter.x,\n\t\t\t\t\ty: arcPoint.y - targetCenter.y,\n\t\t\t\t}\n\n\t\t\t\tthis.element!.animate(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttransform: `translate(${sourceDelta.x}px, ${sourceDelta.y}px) scale(0.1)`,\n\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttransform: `translate(${arcDelta.x}px, ${arcDelta.y}px) scale(0.5)`,\n\t\t\t\t\t\t\topacity: 0.8,\n\t\t\t\t\t\t\toffset: 0.5,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttransform: 'translate(0, 0) scale(1)',\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\toffset: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: totalDuration,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.34, 1.2, 0.64, 1)',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\t// SIMPLE animation (fallback)\n\t\t\t\tthis.element!.animate(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttransform: `translate(${sourceDelta.x}px, ${sourceDelta.y}px) scale(${sourceScale.x}, ${sourceScale.y})`,\n\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ transform: 'translate(0, 0) scale(1, 1)', opacity: 1 },\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: totalDuration,\n\t\t\t\t\t\teasing: options?.easing ?? 'cubic-bezier(0.34, 1.56, 0.64, 1)',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\t// Handle image loading\n\t\tif (this.element instanceof HTMLImageElement) {\n\t\t\tif (this.element.complete) {\n\t\t\t\trequestAnimationFrame(animate)\n\t\t\t} else {\n\t\t\t\tthis.element.onload = () => requestAnimationFrame(animate)\n\t\t\t}\n\t\t} else {\n\t\t\trequestAnimationFrame(animate)\n\t\t}\n\t}\n}\n\nexport const flip = directive(FlipDirective)\n","import { directive, PartInfo, PartType, ElementPart } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { noChange, TemplateResult } from 'lit'\nimport { html, render } from 'lit'\nimport { styleMap } from 'lit/directives/style-map.js'\nimport { flip } from './flip-directive.js'\n\nexport interface LightboxOptions {\n\timages?: string[]\n\tindex?: number\n\toverlay?: TemplateResult\n}\n\nclass LightboxDirective extends AsyncDirective {\n\tprivate element?: HTMLImageElement\n\tprivate clickHandler?: EventListener\n\tprivate keyHandler?: EventListener\n\tprivate overlayElement?: HTMLDivElement\n\tprivate currentIndex = 0\n\tprivate images: string[] = []\n\tprivate overlay?: TemplateResult\n\tprivate clickPosition?: { x: number; y: number }\n\n\tconstructor(partInfo: PartInfo) {\n\t\tsuper(partInfo)\n\t\tif (partInfo.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('lightbox directive can only be used on elements')\n\t\t}\n\t}\n\n\trender(_options?: LightboxOptions) {\n\t\treturn noChange\n\t}\n\n\tupdate(part: ElementPart, [options]: [LightboxOptions?]) {\n\t\tthis.element = part.element as HTMLImageElement\n\n\t\t// Setup click handler\n\t\tif (!this.clickHandler) {\n\t\t\tthis.clickHandler = (e: Event) => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\n\t\t\t\t// Capture click position from MouseEvent or TouchEvent\n\t\t\t\tif ('clientX' in e) {\n\t\t\t\t\tthis.clickPosition = { x: (e as MouseEvent).clientX, y: (e as MouseEvent).clientY }\n\t\t\t\t} else if ('touches' in e && (e as TouchEvent).touches.length) {\n\t\t\t\t\tconst touch = (e as TouchEvent).touches[0]\n\t\t\t\t\tthis.clickPosition = { x: touch.clientX, y: touch.clientY }\n\t\t\t\t}\n\n\t\t\t\tif (options?.images && options.images.length > 0) {\n\t\t\t\t\tthis.images = options.images\n\t\t\t\t\tthis.currentIndex = options.index || 0\n\t\t\t\t} else {\n\t\t\t\t\tthis.images = [this.element!.src]\n\t\t\t\t\tthis.currentIndex = 0\n\t\t\t\t}\n\t\t\t\tthis.overlay = options?.overlay\n\n\t\t\t\tthis.open()\n\t\t\t}\n\n\t\t\tthis.element.addEventListener('click', this.clickHandler)\n\t\t\tthis.element.style.cursor = 'pointer'\n\t\t\tthis.element.classList.add('hover:opacity-80', 'transition-opacity')\n\t\t}\n\n\t\treturn noChange\n\t}\n\n\tprivate open() {\n\t\t// Create overlay container with flex centering\n\t\tthis.overlayElement = document.createElement('div')\n\t\tthis.overlayElement.className = 'fixed inset-0 flex items-center justify-center opacity-0 bg-black/95 backdrop-blur-sm'\n\t\tthis.overlayElement.style.zIndex = '1000'\n\n\t\t// Render lightbox content using Lit\n\t\trender(this.renderLightbox(), this.overlayElement)\n\n\t\t// Add to body\n\t\tdocument.body.appendChild(this.overlayElement)\n\t\tdocument.body.style.overflow = 'hidden'\n\n\t\t// Animate in overlay\n\t\trequestAnimationFrame(() => {\n\t\t\tthis.overlayElement!.animate([{ opacity: 0 }, { opacity: 1 }], {\n\t\t\t\tduration: 300,\n\t\t\t\teasing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t})\n\n\t\t// Setup keyboard\n\t\tthis.keyHandler = (e: KeyboardEvent) => {\n\t\t\tif (e.key === 'Escape') this.close()\n\t\t\tif (e.key === 'ArrowLeft' && this.images.length > 1) this.prev()\n\t\t\tif (e.key === 'ArrowRight' && this.images.length > 1) this.next()\n\t\t}\n\t\tdocument.addEventListener('keydown', this.keyHandler)\n\n\t\t// Click overlay to close\n\t\tthis.overlayElement.addEventListener('click', e => {\n\t\t\tif (e.target === this.overlayElement) this.close()\n\t\t})\n\t}\n\n\tprivate close() {\n\t\tif (!this.overlayElement) return\n\n\t\tconst contentContainer = this.overlayElement.querySelector('[data-lightbox-content]') as HTMLElement\n\n\t\t// Animate back to click position\n\t\tif (contentContainer && this.clickPosition) {\n\t\t\tconst rect = contentContainer.getBoundingClientRect()\n\n\t\t\t// Animate container shrinking toward click point\n\t\t\tconst deltaX = this.clickPosition.x - (rect.left + rect.width / 2)\n\t\t\tconst deltaY = this.clickPosition.y - (rect.top + rect.height / 2)\n\n\t\t\tconst containerAnim = contentContainer.animate(\n\t\t\t\t[\n\t\t\t\t\t{ transform: 'translate(0, 0) scale(1)', opacity: 1 },\n\t\t\t\t\t{ transform: `translate(${deltaX}px, ${deltaY}px) scale(0.1)`, opacity: 0 },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 300,\n\t\t\t\t\teasing: 'cubic-bezier(0.4, 0, 0.2, 1)',\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tthis.overlayElement.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\tduration: 250,\n\t\t\t\teasing: 'ease-out',\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\n\t\t\tcontainerAnim.onfinish = () => {\n\t\t\t\tthis.overlayElement?.remove()\n\t\t\t\tthis.overlayElement = undefined\n\t\t\t\tdocument.body.style.overflow = ''\n\t\t\t}\n\t\t} else {\n\t\t\t// Fallback to simple fade\n\t\t\tconst animation = this.overlayElement.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\tduration: 250,\n\t\t\t\teasing: 'ease-out',\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\n\t\t\tanimation.onfinish = () => {\n\t\t\t\tthis.overlayElement?.remove()\n\t\t\t\tthis.overlayElement = undefined\n\t\t\t\tdocument.body.style.overflow = ''\n\t\t\t}\n\t\t}\n\n\t\tif (this.keyHandler) {\n\t\t\tdocument.removeEventListener('keydown', this.keyHandler)\n\t\t\tthis.keyHandler = undefined\n\t\t}\n\t}\n\n\tprivate prev() {\n\t\tthis.currentIndex = (this.currentIndex - 1 + this.images.length) % this.images.length\n\t\tthis.updateImage()\n\t}\n\n\tprivate next() {\n\t\tthis.currentIndex = (this.currentIndex + 1) % this.images.length\n\t\tthis.updateImage()\n\t}\n\n\tprivate updateImage() {\n\t\tif (!this.overlayElement) return\n\t\trender(this.renderLightbox(), this.overlayElement)\n\t}\n\n\tprivate renderLightbox() {\n\t\tconst currentSrc = this.images[this.currentIndex]\n\t\tconst isGallery = this.images.length > 1\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tdata-lightbox-content\n\t\t\t\tclass=\"relative\"\n\t\t\t\tstyle=${styleMap({\n\t\t\t\t\ttransformOrigin: 'center center',\n\t\t\t\t})}\n\t\t\t\t@click=${(e: Event) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t<!-- Close button -->\n\t\t\t\t<button\n\t\t\t\t\tclass=\"absolute top-2 right-2 z-10 w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center text-white transition-colors\"\n\t\t\t\t\t@click=${() => this.close()}\n\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"text-2xl\">×</span>\n\t\t\t\t</button>\n\n\t\t\t\t<!-- Image container with optional overlay -->\n\t\t\t\t<div class=\"relative\">\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc=${currentSrc}\n\t\t\t\t\t\t${flip({\n\t\t\t\t\t\t\tsourceElement: this.element,\n\t\t\t\t\t\t\tposition: this.clickPosition,\n\t\t\t\t\t\t\tduration: 600,\n\t\t\t\t\t\t\tscale: true,\n\t\t\t\t\t\t\tblackbird: true,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"object-contain rounded-lg\"\n\t\t\t\t\t\tstyle=\"max-height: calc(100vh - 40px); max-width: 90vw;\"\n\t\t\t\t\t\t@click=${() => !isGallery && this.close()}\n\t\t\t\t\t/>\n\t\t\t\t\t${this.overlay ? this.overlay : ''}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Gallery controls -->\n\t\t\t\t${isGallery\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<div class=\"flex items-center justify-center gap-4 text-white mt-4\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclass=\"w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors\"\n\t\t\t\t\t\t\t\t\t@click=${() => this.prev()}\n\t\t\t\t\t\t\t\t\taria-label=\"Previous\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t←\n\t\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t\t\t<div class=\"text-lg\">${this.currentIndex + 1} / ${this.images.length}</div>\n\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclass=\"w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors\"\n\t\t\t\t\t\t\t\t\t@click=${() => this.next()}\n\t\t\t\t\t\t\t\t\taria-label=\"Next\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t→\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\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\tdisconnected() {\n\t\tif (this.element && this.clickHandler) {\n\t\t\tthis.element.removeEventListener('click', this.clickHandler)\n\t\t}\n\t\tthis.close()\n\t}\n}\n\nexport const lightbox = directive(LightboxDirective)\n","import { filter, fromEvent, map, Subject, switchMap, takeUntil, tap } from 'rxjs'\nimport { html, render } from 'lit'\nimport { styleMap } from 'lit/directives/style-map.js'\nimport { ComponentType } from '../area/router.types'\nimport { discoverComponent } from '@mixins/discovery.service'\nimport { overlayStack } from '../utils/overlay-stack'\nimport { lightbox as lightboxDirective, type LightboxOptions } from './lightbox.directive'\n\nexport type LightboxConfig = {\n\t// Image mode\n\timage?: string\n\timages?: string[]\n\tindex?: number\n\toverlay?: ComponentType\n\n\t// Component-only mode (no image background)\n\tcomponent?: ComponentType\n\n\tprops?: Record<string, unknown>\n}\n\n\n/**\n * Lightbox service for centralized lightbox management.\n * Follows the same patterns as DialogService.\n */\nclass LightboxService {\n\tprivate static instance: LightboxService\n\n\t// Subject for lightbox opening requests\n\tprivate pushSubject = new Subject<LightboxConfig>()\n\n\t// Subject for lightbox dismissal requests\n\tprivate dismissSubject = new Subject<void>()\n\n\t// Track active lightbox\n\tprivate activeLightbox?: {\n\t\telement: HTMLDivElement\n\t\tconfig: LightboxConfig\n\t\tcurrentIndex: number\n\t\timages: string[]\n\t}\n\n\tprivate constructor() {\n\t\tthis.setupLightboxOpeningLogic()\n\t\tthis.setupLightboxDismissLogic()\n\t}\n\n\t/**\n\t * Get the singleton instance\n\t */\n\tpublic static getInstance(): LightboxService {\n\t\tif (!LightboxService.instance) {\n\t\t\tLightboxService.instance = new LightboxService()\n\t\t}\n\t\treturn LightboxService.instance\n\t}\n\n\t/**\n\t * Sets up the main lightbox opening logic using RxJS pipes\n\t */\n\tprivate setupLightboxOpeningLogic() {\n\t\tthis.pushSubject\n\t\t\t.pipe(\n\t\t\t\tswitchMap(config => {\n\t\t\t\t\t// Use discoverComponent to find schmancy-theme (same pattern as sheet.service.ts)\n\t\t\t\t\treturn discoverComponent<HTMLElement>('schmancy-theme').pipe(\n\t\t\t\t\t\tmap(theme => {\n\t\t\t\t\t\t\t// Determine container - use theme or fallback to body\n\t\t\t\t\t\t\tconst container = theme || document.body\n\n\t\t\t\t\t\t\t// Create overlay element\n\t\t\t\t\t\t\tconst overlay = document.createElement('div')\n\t\t\t\t\t\t\toverlay.className = 'fixed inset-0 flex items-center justify-center opacity-0 bg-black/95 backdrop-blur-sm'\n\t\t\t\t\t\t\toverlay.style.zIndex = String(overlayStack.getNextZIndex())\n\n\t\t\t\t\t\t\tcontainer.appendChild(overlay)\n\t\t\t\t\t\t\tdocument.body.style.overflow = 'hidden'\n\n\t\t\t\t\t\t\treturn { overlay, config, container }\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(({ overlay, config }) => {\n\t\t\t\t\t// Setup images array\n\t\t\t\t\tlet images: string[] = []\n\t\t\t\t\tlet currentIndex = 0\n\n\t\t\t\t\tif (config.images && config.images.length > 0) {\n\t\t\t\t\t\timages = config.images\n\t\t\t\t\t\tcurrentIndex = config.index || 0\n\t\t\t\t\t} else if (config.image) {\n\t\t\t\t\t\timages = [config.image]\n\t\t\t\t\t\tcurrentIndex = 0\n\t\t\t\t\t}\n\n\t\t\t\t\t// Store active lightbox state\n\t\t\t\t\tthis.activeLightbox = {\n\t\t\t\t\t\telement: overlay,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tcurrentIndex,\n\t\t\t\t\t\timages,\n\t\t\t\t\t}\n\n\t\t\t\t\t// Keyboard handling via RxJS\n\t\t\t\t\tfromEvent<KeyboardEvent>(document, 'keydown').pipe(\n\t\t\t\t\t\ttakeUntil(this.dismissSubject),\n\t\t\t\t\t\tfilter(() => !!this.activeLightbox),\n\t\t\t\t\t\ttap(e => {\n\t\t\t\t\t\t\tif (e.key === 'Escape') this.dismiss()\n\t\t\t\t\t\t\tif (e.key === 'ArrowLeft' && this.activeLightbox!.images.length > 1) this.navigatePrev()\n\t\t\t\t\t\t\tif (e.key === 'ArrowRight' && this.activeLightbox!.images.length > 1) this.navigateNext()\n\t\t\t\t\t\t})\n\t\t\t\t\t).subscribe()\n\n\t\t\t\t\t// Click overlay to close via RxJS\n\t\t\t\t\tfromEvent<MouseEvent>(overlay, 'click').pipe(\n\t\t\t\t\t\ttakeUntil(this.dismissSubject),\n\t\t\t\t\t\tfilter(e => e.target === overlay),\n\t\t\t\t\t\ttap(() => this.dismiss())\n\t\t\t\t\t).subscribe()\n\n\t\t\t\t\t// Render content\n\t\t\t\t\tif (config.component) {\n\t\t\t\t\t\tthis.renderComponent(overlay, config)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.renderLightbox(overlay, config, images, currentIndex)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Animate in\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\toverlay.animate([{ opacity: 0 }, { opacity: 1 }], {\n\t\t\t\t\t\t\tduration: 300,\n\t\t\t\t\t\t\teasing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n\t\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Sets up the lightbox dismissal logic\n\t */\n\tprivate setupLightboxDismissLogic() {\n\t\tthis.dismissSubject\n\t\t\t.pipe(\n\t\t\t\ttap(() => {\n\t\t\t\t\tif (!this.activeLightbox) return\n\n\t\t\t\t\tconst { element } = this.activeLightbox\n\n\t\t\t\t\t// Animate out\n\t\t\t\t\tconst animation = element.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\t\t\tduration: 250,\n\t\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t})\n\n\t\t\t\t\tanimation.onfinish = () => {\n\t\t\t\t\t\telement.remove()\n\t\t\t\t\t\tdocument.body.style.overflow = ''\n\t\t\t\t\t\toverlayStack.release()\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.activeLightbox = undefined\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t/**\n\t * Push/open a lightbox\n\t */\n\tpublic push(config: LightboxConfig): void {\n\t\t// Close any existing lightbox first\n\t\tif (this.activeLightbox) {\n\t\t\tthis.dismiss()\n\t\t}\n\t\tthis.pushSubject.next(config)\n\t}\n\n\t/**\n\t * Dismiss the lightbox\n\t */\n\tpublic dismiss(): void {\n\t\tthis.dismissSubject.next()\n\t}\n\n\t/**\n\t * Navigate to previous image\n\t */\n\tprivate navigatePrev(): void {\n\t\tif (!this.activeLightbox || this.activeLightbox.images.length <= 1) return\n\n\t\tconst { images, config, element } = this.activeLightbox\n\t\tthis.activeLightbox.currentIndex = (this.activeLightbox.currentIndex - 1 + images.length) % images.length\n\t\tthis.renderLightbox(element, config, images, this.activeLightbox.currentIndex)\n\t}\n\n\t/**\n\t * Navigate to next image\n\t */\n\tprivate navigateNext(): void {\n\t\tif (!this.activeLightbox || this.activeLightbox.images.length <= 1) return\n\n\t\tconst { images, config, element } = this.activeLightbox\n\t\tthis.activeLightbox.currentIndex = (this.activeLightbox.currentIndex + 1) % images.length\n\t\tthis.renderLightbox(element, config, images, this.activeLightbox.currentIndex)\n\t}\n\n\t/**\n\t * Render component-only mode (no image background)\n\t */\n\tprivate renderComponent(overlay: HTMLDivElement, config: LightboxConfig): void {\n\t\tif (!config.component) return\n\n\t\t// Create the component\n\t\tlet component: HTMLElement\n\t\tif (typeof config.component === 'string') {\n\t\t\tcomponent = document.createElement(config.component)\n\t\t} else {\n\t\t\tcomponent = new (config.component as CustomElementConstructor)()\n\t\t}\n\n\t\t// Set props\n\t\tif (config.props) {\n\t\t\tObject.entries(config.props).forEach(([key, value]) => {\n\t\t\t\t;(component as unknown as Record<string, unknown>)[key] = value\n\t\t\t})\n\t\t}\n\n\t\t// Create wrapper with close button\n\t\tconst template = html`\n\t\t\t<div class=\"relative\" @click=${(e: Event) => e.stopPropagation()}>\n\t\t\t\t<!-- Close button -->\n\t\t\t\t<button\n\t\t\t\t\tclass=\"absolute -top-12 right-0 z-10 w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center text-white transition-colors\"\n\t\t\t\t\t@click=${() => this.dismiss()}\n\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"text-2xl\">×</span>\n\t\t\t\t</button>\n\n\t\t\t\t<!-- Component container -->\n\t\t\t\t<div id=\"lightbox-component-container\"></div>\n\t\t\t</div>\n\t\t`\n\n\t\trender(template, overlay)\n\n\t\t// Append component after render\n\t\tconst container = overlay.querySelector('#lightbox-component-container')\n\t\tif (container) {\n\t\t\tcontainer.appendChild(component)\n\t\t}\n\t}\n\n\t/**\n\t * Render image lightbox\n\t */\n\tprivate renderLightbox(overlay: HTMLDivElement, config: LightboxConfig, images: string[], currentIndex: number): void {\n\t\tconst currentSrc = images[currentIndex]\n\t\tconst isGallery = images.length > 1\n\n\t\t// Create overlay component if specified\n\t\tlet overlayComponent: HTMLElement | null = null\n\t\tif (config.overlay) {\n\t\t\tif (typeof config.overlay === 'string') {\n\t\t\t\toverlayComponent = document.createElement(config.overlay)\n\t\t\t} else if (typeof config.overlay === 'function') {\n\t\t\t\toverlayComponent = new (config.overlay as CustomElementConstructor)()\n\t\t\t}\n\n\t\t\t// Set props on the component\n\t\t\tif (config.props && overlayComponent) {\n\t\t\t\tObject.entries(config.props).forEach(([key, value]) => {\n\t\t\t\t\t;(overlayComponent as unknown as Record<string, unknown>)[key] = value\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tconst template = html`\n\t\t\t<div\n\t\t\t\tclass=\"relative\"\n\t\t\t\tstyle=${styleMap({ maxWidth: '90vw', maxHeight: '90vh' })}\n\t\t\t\t@click=${(e: Event) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t<!-- Close button -->\n\t\t\t\t<button\n\t\t\t\t\tclass=\"absolute top-4 right-4 z-10 w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center text-white transition-colors\"\n\t\t\t\t\t@click=${() => this.dismiss()}\n\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"text-2xl\">×</span>\n\t\t\t\t</button>\n\n\t\t\t\t<!-- Image container with optional overlay -->\n\t\t\t\t<div class=\"relative\" id=\"lightbox-image-container\">\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc=${currentSrc}\n\t\t\t\t\t\tclass=\"max-w-full object-contain rounded-lg\"\n\t\t\t\t\t\tstyle=${styleMap({ maxHeight: '85vh' })}\n\t\t\t\t\t\t@click=${() => !isGallery && this.dismiss()}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Gallery controls -->\n\t\t\t\t${isGallery\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"absolute left-1/2 -translate-x-1/2 flex items-center gap-4 text-white\"\n\t\t\t\t\t\t\t\tstyle=${styleMap({ bottom: '-60px' })}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclass=\"w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors\"\n\t\t\t\t\t\t\t\t\t@click=${() => this.navigatePrev()}\n\t\t\t\t\t\t\t\t\taria-label=\"Previous\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t←\n\t\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t\t\t<div class=\"text-lg\">${currentIndex + 1} / ${images.length}</div>\n\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclass=\"w-10 h-10 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center transition-colors\"\n\t\t\t\t\t\t\t\t\t@click=${() => this.navigateNext()}\n\t\t\t\t\t\t\t\t\taria-label=\"Next\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t→\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`\n\t\t\t\t\t: ''}\n\t\t\t</div>\n\t\t`\n\n\t\trender(template, overlay)\n\n\t\t// Append overlay component to image container after render\n\t\tif (overlayComponent) {\n\t\t\tconst container = overlay.querySelector('#lightbox-image-container')\n\t\t\tif (container) {\n\t\t\t\t// Remove any existing overlay component\n\t\t\t\tconst existing = container.querySelector('[data-lightbox-overlay]')\n\t\t\t\tif (existing) existing.remove()\n\n\t\t\t\toverlayComponent.setAttribute('data-lightbox-overlay', '')\n\t\t\t\tcontainer.appendChild(overlayComponent)\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Unified lightbox type - works as both directive and service\n */\nexport type LightboxAPI = {\n\t(options?: LightboxOptions): ReturnType<typeof lightboxDirective>\n\tpush: (config: LightboxConfig) => void\n\tdismiss: () => void\n}\n\n/**\n * Unified lightbox export - works as both directive and service:\n * - Directive: ${lightbox()} or ${lightbox({ overlay: html`...` })}\n * - Service: lightbox.push({ image, overlay: 'component-name', props })\n */\nexport const lightbox: LightboxAPI = Object.assign(\n\t// Callable as directive (backward compatible)\n\t(options?: LightboxOptions) => lightboxDirective(options),\n\t// Also has service methods\n\t{\n\t\tpush: (config: LightboxConfig) => LightboxService.getInstance().push(config),\n\t\tdismiss: () => LightboxService.getInstance().dismiss(),\n\t},\n)\n"],"mappings":"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"}