@mhmo91/schmancy 0.10.42 → 0.10.43

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 (759) hide show
  1. package/custom-elements.json +264 -79
  2. package/dist/SchmancyElement-CeKrBW2j.cjs +2 -0
  3. package/dist/SchmancyElement-CeKrBW2j.cjs.map +1 -0
  4. package/dist/SchmancyElement-Ob9yGkiG.js +286 -0
  5. package/dist/SchmancyElement-Ob9yGkiG.js.map +1 -0
  6. package/dist/agent/schmancy.agent.js +4031 -3891
  7. package/dist/agent/schmancy.agent.js.map +1 -1
  8. package/dist/agent/schmancy.manifest.json +215 -58
  9. package/dist/animation-CCOIW4wJ.cjs.map +1 -1
  10. package/dist/animation-DCznELuT.js.map +1 -1
  11. package/dist/area-CbajcnmJ.cjs +21 -0
  12. package/dist/area-CbajcnmJ.cjs.map +1 -0
  13. package/dist/{area-DtCNCb8w.js → area-MxLAyWgV.js} +22 -22
  14. package/dist/area-MxLAyWgV.js.map +1 -0
  15. package/dist/area.cjs +1 -1
  16. package/dist/area.js +1 -1
  17. package/dist/{audio-DdN76ikW.js → audio-B_0PGwYC.js} +1 -1
  18. package/dist/audio-B_0PGwYC.js.map +1 -0
  19. package/dist/{audio-B924fI5N.cjs → audio-CpwrIaw-.cjs} +1 -1
  20. package/dist/audio-CpwrIaw-.cjs.map +1 -0
  21. package/dist/audio.cjs +1 -1
  22. package/dist/audio.js +2 -2
  23. package/dist/autocomplete-CILzaDB7.cjs +115 -0
  24. package/dist/autocomplete-CILzaDB7.cjs.map +1 -0
  25. package/dist/{autocomplete-UNOknYUz.js → autocomplete-DV9RxCun.js} +113 -113
  26. package/dist/autocomplete-DV9RxCun.js.map +1 -0
  27. package/dist/autocomplete.cjs +1 -1
  28. package/dist/autocomplete.js +1 -1
  29. package/dist/avatar.cjs +1 -1
  30. package/dist/avatar.cjs.map +1 -1
  31. package/dist/avatar.js +4 -4
  32. package/dist/avatar.js.map +1 -1
  33. package/dist/badge.cjs +1 -1
  34. package/dist/badge.js +1 -1
  35. package/dist/{boat-BZah1Sf9.js → boat-DoZGgQ0P.js} +5 -5
  36. package/dist/{boat-BZah1Sf9.js.map → boat-DoZGgQ0P.js.map} +1 -1
  37. package/dist/{boat-D3bEjxf8.cjs → boat-sg0cWO8a.cjs} +2 -2
  38. package/dist/{boat-D3bEjxf8.cjs.map → boat-sg0cWO8a.cjs.map} +1 -1
  39. package/dist/boat.cjs +1 -1
  40. package/dist/boat.js +1 -1
  41. package/dist/breadcrumb.cjs +32 -31
  42. package/dist/breadcrumb.cjs.map +1 -1
  43. package/dist/breadcrumb.js +33 -32
  44. package/dist/breadcrumb.js.map +1 -1
  45. package/dist/busy-Brs-TDh9.cjs +133 -0
  46. package/dist/busy-Brs-TDh9.cjs.map +1 -0
  47. package/dist/busy-g4LoQmhB.js +172 -0
  48. package/dist/busy-g4LoQmhB.js.map +1 -0
  49. package/dist/busy.cjs +1 -1
  50. package/dist/busy.js +1 -1
  51. package/dist/{button-CTvS5YX4.cjs → button-Cml67Y_d.cjs} +41 -32
  52. package/dist/button-Cml67Y_d.cjs.map +1 -0
  53. package/dist/{button-DgoDfcJx.js → button-DWANpZfD.js} +43 -34
  54. package/dist/button-DWANpZfD.js.map +1 -0
  55. package/dist/button.cjs +40 -33
  56. package/dist/button.cjs.map +1 -1
  57. package/dist/button.js +42 -35
  58. package/dist/button.js.map +1 -1
  59. package/dist/calendar-2dJrw9pR.cjs +58 -0
  60. package/dist/calendar-2dJrw9pR.cjs.map +1 -0
  61. package/dist/calendar-kCe5LaBa.js +434 -0
  62. package/dist/calendar-kCe5LaBa.js.map +1 -0
  63. package/dist/calendar.cjs +1 -0
  64. package/dist/calendar.js +2 -0
  65. package/dist/{card-C6ijJZpF.js → card-CS_hYJbz.js} +136 -136
  66. package/dist/card-CS_hYJbz.js.map +1 -0
  67. package/dist/card-d0KhTnx5.cjs +177 -0
  68. package/dist/card-d0KhTnx5.cjs.map +1 -0
  69. package/dist/card.cjs +1 -1
  70. package/dist/card.js +1 -1
  71. package/dist/{checkbox-7vEPZuGC.js → checkbox-Bjp7kWuE.js} +2 -2
  72. package/dist/{checkbox-7vEPZuGC.js.map → checkbox-Bjp7kWuE.js.map} +1 -1
  73. package/dist/{checkbox-DXKdxkXE.cjs → checkbox-DZ2Wrz7Y.cjs} +1 -1
  74. package/dist/{checkbox-DXKdxkXE.cjs.map → checkbox-DZ2Wrz7Y.cjs.map} +1 -1
  75. package/dist/checkbox.cjs +1 -1
  76. package/dist/checkbox.js +1 -1
  77. package/dist/{chips-9eG-96_D.cjs → chips-BHBVkxsa.cjs} +142 -153
  78. package/dist/chips-BHBVkxsa.cjs.map +1 -0
  79. package/dist/{chips-DF7akwz7.js → chips-DACeW7YL.js} +127 -138
  80. package/dist/chips-DACeW7YL.js.map +1 -0
  81. package/dist/chips.cjs +1 -1
  82. package/dist/chips.js +2 -2
  83. package/dist/connectivity.cjs +53 -35
  84. package/dist/connectivity.cjs.map +1 -1
  85. package/dist/connectivity.js +55 -37
  86. package/dist/connectivity.js.map +1 -1
  87. package/dist/content-drawer.cjs +1 -1
  88. package/dist/content-drawer.js +1 -1
  89. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
  90. package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
  91. package/dist/date-range-CVAWMdar.cjs +138 -0
  92. package/dist/date-range-CVAWMdar.cjs.map +1 -0
  93. package/dist/date-range-D2NZU5Yg.js +433 -0
  94. package/dist/date-range-D2NZU5Yg.js.map +1 -0
  95. package/dist/{date-range-inline-DV2c_gWM.cjs → date-range-inline-CGM0SPK9.cjs} +2 -4
  96. package/dist/date-range-inline-CGM0SPK9.cjs.map +1 -0
  97. package/dist/{date-range-inline-BnOD-ddB.js → date-range-inline-D6Ozerzw.js} +3 -5
  98. package/dist/date-range-inline-D6Ozerzw.js.map +1 -0
  99. package/dist/date-range-inline.cjs +1 -1
  100. package/dist/date-range-inline.js +1 -1
  101. package/dist/date-range.cjs +1 -1
  102. package/dist/date-range.js +2 -2
  103. package/dist/dayjs.min-CvRZTfam.cjs +1 -0
  104. package/dist/dayjs.min-CvRZTfam.cjs.map +1 -0
  105. package/dist/dayjs.min-DnELezPs.js +296 -0
  106. package/dist/dayjs.min-DnELezPs.js.map +1 -0
  107. package/dist/delay.cjs +1 -1
  108. package/dist/delay.js +3 -3
  109. package/dist/{details-ByF66CyY.js → details-Ct1_GwKr.js} +104 -93
  110. package/dist/details-Ct1_GwKr.js.map +1 -0
  111. package/dist/{details-B2-jECBh.cjs → details-D4fVOaj4.cjs} +109 -98
  112. package/dist/details-D4fVOaj4.cjs.map +1 -0
  113. package/dist/details.cjs +1 -1
  114. package/dist/details.js +1 -1
  115. package/dist/{directives-DCb_LA9R.cjs → directives-B2VxfwRL.cjs} +1 -1
  116. package/dist/directives-B2VxfwRL.cjs.map +1 -0
  117. package/dist/{directives-BL7mzVsA.js → directives-Dj8jlv-Q.js} +3 -3
  118. package/dist/directives-Dj8jlv-Q.js.map +1 -0
  119. package/dist/directives.cjs +1 -1
  120. package/dist/directives.js +2 -2
  121. package/dist/discovery.service-CIa3Eeuk.cjs.map +1 -1
  122. package/dist/discovery.service-DZFxtRwW.js.map +1 -1
  123. package/dist/divider-B3v33OnX.cjs +57 -0
  124. package/dist/divider-B3v33OnX.cjs.map +1 -0
  125. package/dist/divider-BJHW3q11.js +89 -0
  126. package/dist/divider-BJHW3q11.js.map +1 -0
  127. package/dist/divider.cjs +1 -1
  128. package/dist/divider.js +1 -1
  129. package/dist/dropdown.cjs +40 -40
  130. package/dist/dropdown.cjs.map +1 -1
  131. package/dist/dropdown.js +41 -41
  132. package/dist/dropdown.js.map +1 -1
  133. package/dist/{expand-cZ8rfCWP.js → expand-BT8mOu8Q.js} +103 -97
  134. package/dist/expand-BT8mOu8Q.js.map +1 -0
  135. package/dist/expand-D0YdR9nR.cjs +147 -0
  136. package/dist/expand-D0YdR9nR.cjs.map +1 -0
  137. package/dist/expand.cjs +1 -1
  138. package/dist/expand.js +1 -1
  139. package/dist/fab.cjs +1 -1
  140. package/dist/fab.cjs.map +1 -1
  141. package/dist/fab.js +2 -2
  142. package/dist/fab.js.map +1 -1
  143. package/dist/{float-DkGyWSWy.cjs → float-BPQlDyai.cjs} +1 -1
  144. package/dist/{float-DkGyWSWy.cjs.map → float-BPQlDyai.cjs.map} +1 -1
  145. package/dist/{float-zn3DgXBT.js → float-BQcxj3i_.js} +2 -2
  146. package/dist/{float-zn3DgXBT.js.map → float-BQcxj3i_.js.map} +1 -1
  147. package/dist/float.cjs +1 -1
  148. package/dist/float.js +1 -1
  149. package/dist/{form-DowzVsgI.cjs → form-CoWFnClb.cjs} +8 -13
  150. package/dist/form-CoWFnClb.cjs.map +1 -0
  151. package/dist/{form-tG7LwDm4.js → form-hC2LvCHX.js} +10 -15
  152. package/dist/form-hC2LvCHX.js.map +1 -0
  153. package/dist/form.cjs +12 -13
  154. package/dist/form.cjs.map +1 -1
  155. package/dist/form.js +23 -24
  156. package/dist/form.js.map +1 -1
  157. package/dist/gravity-6pL6CfIr.cjs.map +1 -1
  158. package/dist/gravity-sVK3zGBF.js.map +1 -1
  159. package/dist/handover/agent-runtime-followups.md +1 -1
  160. package/dist/handover/agent-runtime-v1.md +3 -3
  161. package/dist/{hashContent-iRZJJWtE.cjs.map → hashContent--s09Ed_g.cjs.map} +1 -1
  162. package/dist/{hashContent-BqU6v1Xr.js.map → hashContent-CAvrQ56N.js.map} +1 -1
  163. package/dist/icons-BeGKDZ-k.cjs +22 -0
  164. package/dist/icons-BeGKDZ-k.cjs.map +1 -0
  165. package/dist/{icons-Dup5skuk.js → icons-DEJnIxml.js} +20 -22
  166. package/dist/icons-DEJnIxml.js.map +1 -0
  167. package/dist/icons.cjs +1 -1
  168. package/dist/icons.js +1 -1
  169. package/dist/{iframe-CDJjnNmo.cjs → iframe-BkSukM9C.cjs} +9 -9
  170. package/dist/iframe-BkSukM9C.cjs.map +1 -0
  171. package/dist/{iframe-Xc3EPMZT.js → iframe-V3S-bwEY.js} +10 -10
  172. package/dist/iframe-V3S-bwEY.js.map +1 -0
  173. package/dist/iframe.cjs +1 -1
  174. package/dist/iframe.js +1 -1
  175. package/dist/index.cjs +1 -1
  176. package/dist/index.js +61 -60
  177. package/dist/{input-cTyDxW9L.js → input-CPFCSQld.js} +3 -10
  178. package/dist/input-CPFCSQld.js.map +1 -0
  179. package/dist/{input-DnmC6J1T.cjs → input-DSfwfhhj.cjs} +2 -9
  180. package/dist/input-DSfwfhhj.cjs.map +1 -0
  181. package/dist/input-chip-BUuFJUky.cjs +129 -0
  182. package/dist/input-chip-BUuFJUky.cjs.map +1 -0
  183. package/dist/{input-chip-CYI17YOq.js → input-chip-C3a1fwKB.js} +87 -104
  184. package/dist/input-chip-C3a1fwKB.js.map +1 -0
  185. package/dist/input.cjs +1 -1
  186. package/dist/input.js +1 -1
  187. package/dist/json.cjs +5 -1
  188. package/dist/json.cjs.map +1 -1
  189. package/dist/json.js +8 -4
  190. package/dist/json.js.map +1 -1
  191. package/dist/kbd.cjs +28 -28
  192. package/dist/kbd.cjs.map +1 -1
  193. package/dist/kbd.js +29 -29
  194. package/dist/kbd.js.map +1 -1
  195. package/dist/{layout-CNlZSJFU.cjs → layout-CdyHy_oX.cjs} +1 -1
  196. package/dist/layout-CdyHy_oX.cjs.map +1 -0
  197. package/dist/{layout-DDxw0EwL.js → layout-k6fOkpif.js} +1 -1
  198. package/dist/layout-k6fOkpif.js.map +1 -0
  199. package/dist/layout.cjs +26 -26
  200. package/dist/layout.cjs.map +1 -1
  201. package/dist/layout.js +27 -27
  202. package/dist/layout.js.map +1 -1
  203. package/dist/lazy-BaAiIUru.js.map +1 -1
  204. package/dist/lazy-C-7a4FAe.cjs.map +1 -1
  205. package/dist/{lightbox-CH-y3rYB.js → lightbox-DIG0VLOK.js} +8 -14
  206. package/dist/lightbox-DIG0VLOK.js.map +1 -0
  207. package/dist/{lightbox-CvtqoInF.cjs → lightbox-E5rgd-hu.cjs} +7 -13
  208. package/dist/lightbox-E5rgd-hu.cjs.map +1 -0
  209. package/dist/lightbox.cjs +1 -1
  210. package/dist/lightbox.js +1 -1
  211. package/dist/list-BRz0rDSH.cjs +47 -0
  212. package/dist/list-BRz0rDSH.cjs.map +1 -0
  213. package/dist/{list-DrsawQ5R.js → list-NrOYDPBo.js} +42 -35
  214. package/dist/list-NrOYDPBo.js.map +1 -0
  215. package/dist/list.cjs +1 -1
  216. package/dist/list.js +1 -1
  217. package/dist/magnetic-DKtc4umC.cjs.map +1 -1
  218. package/dist/magnetic-DaOOv5Dz.js.map +1 -1
  219. package/dist/{menu-CsY5lMqY.js → menu-B1Ei9SVj.js} +12 -12
  220. package/dist/menu-B1Ei9SVj.js.map +1 -0
  221. package/dist/{menu-BFRcTe3o.cjs → menu-Duvl66Nl.cjs} +10 -10
  222. package/dist/menu-Duvl66Nl.cjs.map +1 -0
  223. package/dist/menu.cjs +1 -1
  224. package/dist/menu.js +1 -1
  225. package/dist/{mixins-BoMURWag.cjs → mixins-Cjn20BQH.cjs} +42 -100
  226. package/dist/mixins-Cjn20BQH.cjs.map +1 -0
  227. package/dist/{mixins-bCEXbwJV.js → mixins-q4KAL8Xr.js} +42 -100
  228. package/dist/mixins-q4KAL8Xr.js.map +1 -0
  229. package/dist/mixins.cjs +1 -1
  230. package/dist/mixins.js +2 -2
  231. package/dist/nav-drawer.cjs +1 -1
  232. package/dist/nav-drawer.js +1 -1
  233. package/dist/navigation-bar.cjs +1 -1
  234. package/dist/navigation-bar.js +1 -1
  235. package/dist/navigation-rail.cjs +2 -4
  236. package/dist/navigation-rail.cjs.map +1 -1
  237. package/dist/navigation-rail.js +3 -5
  238. package/dist/navigation-rail.js.map +1 -1
  239. package/dist/{notification-DFKRMmSq.js → notification-COhUhUCr.js} +5 -7
  240. package/dist/notification-COhUhUCr.js.map +1 -0
  241. package/dist/{notification-FBf3Mb2e.cjs → notification-DsdA_MJe.cjs} +2 -4
  242. package/dist/notification-DsdA_MJe.cjs.map +1 -0
  243. package/dist/notification.cjs +1 -1
  244. package/dist/notification.js +1 -1
  245. package/dist/{option-Ct0lGdH3.js → option-BIzgTbXz.js} +20 -20
  246. package/dist/option-BIzgTbXz.js.map +1 -0
  247. package/dist/option-C5hhqR2z.cjs +43 -0
  248. package/dist/option-C5hhqR2z.cjs.map +1 -0
  249. package/dist/option.cjs +1 -1
  250. package/dist/option.js +1 -1
  251. package/dist/{overlay-sRXiMkjn.cjs → overlay-BzgF8P7i.cjs} +48 -41
  252. package/dist/overlay-BzgF8P7i.cjs.map +1 -0
  253. package/dist/{overlay-Bh8Q_R01.js → overlay-LoRRemny.js} +52 -45
  254. package/dist/overlay-LoRRemny.js.map +1 -0
  255. package/dist/overlay-stack-Bdr9lOqi.cjs.map +1 -1
  256. package/dist/overlay-stack-D2rgxQLh.js.map +1 -1
  257. package/dist/overlay.cjs +1 -1
  258. package/dist/{overlay.confirm-body-CQihsR20.js → overlay.confirm-body-D0b1MoCw.js} +30 -45
  259. package/dist/overlay.confirm-body-D0b1MoCw.js.map +1 -0
  260. package/dist/{overlay.confirm-body-Jc1EuMGs.cjs → overlay.confirm-body-DCneq73Z.cjs} +22 -37
  261. package/dist/overlay.confirm-body-DCneq73Z.cjs.map +1 -0
  262. package/dist/overlay.js +3 -3
  263. package/dist/{overlay.service-BXPgS7ay.js → overlay.service-BuUeti6X.js} +2 -2
  264. package/dist/overlay.service-BuUeti6X.js.map +1 -0
  265. package/dist/{overlay.service-9Dp3g7ot.cjs → overlay.service-MMTiW2T3.cjs} +1 -1
  266. package/dist/overlay.service-MMTiW2T3.cjs.map +1 -0
  267. package/dist/{progress-CYLshdo2.js → progress-D7n3SKAO.js} +50 -50
  268. package/dist/progress-D7n3SKAO.js.map +1 -0
  269. package/dist/progress-DsCnFsH5.cjs +51 -0
  270. package/dist/progress-DsCnFsH5.cjs.map +1 -0
  271. package/dist/progress.cjs +1 -1
  272. package/dist/progress.js +1 -1
  273. package/dist/{radio-group-6kCgOgBL.cjs → radio-group-CaAjg9UV.cjs} +1 -1
  274. package/dist/radio-group-CaAjg9UV.cjs.map +1 -0
  275. package/dist/{radio-group-bZtZHOj_.js → radio-group-Drpl6Pl8.js} +2 -2
  276. package/dist/radio-group-Drpl6Pl8.js.map +1 -0
  277. package/dist/radio-group.cjs +1 -1
  278. package/dist/radio-group.js +1 -1
  279. package/dist/range.cjs +4 -2
  280. package/dist/range.cjs.map +1 -1
  281. package/dist/range.js +5 -3
  282. package/dist/range.js.map +1 -1
  283. package/dist/reduced-motion-D-L12p7G.js.map +1 -1
  284. package/dist/reduced-motion-Ds-HjMzn.cjs.map +1 -1
  285. package/dist/{rxjs-utils-Csnks202.cjs.map → rxjs-utils-4P2v57ke.cjs.map} +1 -1
  286. package/dist/{rxjs-utils-d-ivVN84.js.map → rxjs-utils-JMFdgQSl.js.map} +1 -1
  287. package/dist/rxjs-utils.cjs +1 -1
  288. package/dist/rxjs-utils.js +1 -1
  289. package/dist/search-DPKoC-dT.cjs.map +1 -1
  290. package/dist/search-MvIBA93K.js.map +1 -1
  291. package/dist/{select-CU3X-PIa.js → select-CTXkrrVZ.js} +13 -13
  292. package/dist/select-CTXkrrVZ.js.map +1 -0
  293. package/dist/select-DcLcpPCh.cjs +56 -0
  294. package/dist/select-DcLcpPCh.cjs.map +1 -0
  295. package/dist/select.cjs +1 -1
  296. package/dist/select.js +1 -1
  297. package/dist/skeleton.cjs +37 -33
  298. package/dist/skeleton.cjs.map +1 -1
  299. package/dist/skeleton.js +38 -34
  300. package/dist/skeleton.js.map +1 -1
  301. package/dist/skills/schmancy/surface.md +38 -22
  302. package/dist/skills/surface.md +38 -22
  303. package/dist/slider.cjs +31 -31
  304. package/dist/slider.cjs.map +1 -1
  305. package/dist/slider.js +32 -32
  306. package/dist/slider.js.map +1 -1
  307. package/dist/{sound.service-B4ZmXpH9.js → sound.service-AJwuk3yr.js} +1 -1
  308. package/dist/sound.service-AJwuk3yr.js.map +1 -0
  309. package/dist/{sound.service-DjlMvicQ.cjs → sound.service-CVsxhQkX.cjs} +1 -1
  310. package/dist/sound.service-CVsxhQkX.cjs.map +1 -0
  311. package/dist/{splash-screen-emCLYoVl.js → splash-screen-DANfqvlo.js} +23 -26
  312. package/dist/splash-screen-DANfqvlo.js.map +1 -0
  313. package/dist/splash-screen-K74cgU6S.cjs +38 -0
  314. package/dist/splash-screen-K74cgU6S.cjs.map +1 -0
  315. package/dist/splash-screen.cjs +1 -1
  316. package/dist/splash-screen.js +1 -1
  317. package/dist/{src-DGDTkOvC.js → src-DAtcPmCb.js} +173 -175
  318. package/dist/src-DAtcPmCb.js.map +1 -0
  319. package/dist/src-DuRvYagm.cjs +237 -0
  320. package/dist/src-DuRvYagm.cjs.map +1 -0
  321. package/dist/{state-CumAEPQH.cjs → state-BWQiqN6I.cjs} +1 -1
  322. package/dist/state-BWQiqN6I.cjs.map +1 -0
  323. package/dist/{state-DMd_FUeA.js → state-DBA_gzJO.js} +1 -1
  324. package/dist/state-DBA_gzJO.js.map +1 -0
  325. package/dist/state.cjs +1 -1
  326. package/dist/state.js +2 -2
  327. package/dist/steps.cjs +20 -12
  328. package/dist/steps.cjs.map +1 -1
  329. package/dist/steps.js +21 -13
  330. package/dist/steps.js.map +1 -1
  331. package/dist/surface-COBvWWFb.cjs +7 -0
  332. package/dist/surface-COBvWWFb.cjs.map +1 -0
  333. package/dist/{surface-DNiYigsX.js → surface-DXk1X1tL.js} +9 -9
  334. package/dist/{surface-DNiYigsX.js.map → surface-DXk1X1tL.js.map} +1 -1
  335. package/dist/surface.cjs +1 -1
  336. package/dist/surface.js +1 -1
  337. package/dist/switch.cjs +13 -4
  338. package/dist/switch.cjs.map +1 -1
  339. package/dist/switch.js +14 -5
  340. package/dist/switch.js.map +1 -1
  341. package/dist/table.cjs +4 -10
  342. package/dist/table.cjs.map +1 -1
  343. package/dist/table.js +5 -11
  344. package/dist/table.js.map +1 -1
  345. package/dist/{tabs-4T_4kCf-.js → tabs-BYhFWnsx.js} +7 -7
  346. package/dist/tabs-BYhFWnsx.js.map +1 -0
  347. package/dist/{tabs-Byxxt-AH.cjs → tabs-CJwB0fr0.cjs} +6 -6
  348. package/dist/tabs-CJwB0fr0.cjs.map +1 -0
  349. package/dist/tabs.cjs +1 -1
  350. package/dist/tabs.js +1 -1
  351. package/dist/teleport.cjs +1 -1
  352. package/dist/teleport.js +1 -1
  353. package/dist/{textarea-kkYNk1ET.js → textarea-BjDx1w2g.js} +37 -41
  354. package/dist/textarea-BjDx1w2g.js.map +1 -0
  355. package/dist/{textarea-BwYwH9fu.cjs → textarea-CGgznhd6.cjs} +36 -40
  356. package/dist/textarea-CGgznhd6.cjs.map +1 -0
  357. package/dist/textarea.cjs +1 -1
  358. package/dist/textarea.js +1 -1
  359. package/dist/{theme-BG0EnzYP.cjs → theme-BVul7lHS.cjs} +6 -6
  360. package/dist/{theme-BG0EnzYP.cjs.map → theme-BVul7lHS.cjs.map} +1 -1
  361. package/dist/{theme-DwQBl6sr.js → theme-Dvm5J8nh.js} +11 -11
  362. package/dist/{theme-DwQBl6sr.js.map → theme-Dvm5J8nh.js.map} +1 -1
  363. package/dist/{theme-button-BD8anzsZ.js → theme-button-Bko5ohFP.js} +2 -2
  364. package/dist/{theme-button-BD8anzsZ.js.map → theme-button-Bko5ohFP.js.map} +1 -1
  365. package/dist/{theme-button-DlrNoCMA.cjs → theme-button-YLY7zR1c.cjs} +1 -1
  366. package/dist/{theme-button-DlrNoCMA.cjs.map → theme-button-YLY7zR1c.cjs.map} +1 -1
  367. package/dist/theme-button.cjs +1 -1
  368. package/dist/theme-button.js +1 -1
  369. package/dist/theme.cjs +1 -1
  370. package/dist/{theme.interface-CSt7JUBD.cjs.map → theme.interface-B-qxDsZQ.cjs.map} +1 -1
  371. package/dist/{theme.interface-odQEpZZH.js.map → theme.interface-B7caS5cg.js.map} +1 -1
  372. package/dist/theme.js +4 -4
  373. package/dist/{theme.service-Dv_55nfE.js → theme.service-D94nm7Bf.js} +1 -1
  374. package/dist/theme.service-D94nm7Bf.js.map +1 -0
  375. package/dist/{theme.service-pjkTM209.cjs → theme.service-h2fXQq7x.cjs} +1 -1
  376. package/dist/theme.service-h2fXQq7x.cjs.map +1 -0
  377. package/dist/tooltip.cjs.map +1 -1
  378. package/dist/tooltip.js.map +1 -1
  379. package/dist/tree.cjs +14 -14
  380. package/dist/tree.cjs.map +1 -1
  381. package/dist/tree.js +15 -15
  382. package/dist/tree.js.map +1 -1
  383. package/dist/types.cjs +1 -1
  384. package/dist/types.cjs.map +1 -1
  385. package/dist/types.js +19 -2
  386. package/dist/types.js.map +1 -1
  387. package/dist/typewriter.cjs.map +1 -1
  388. package/dist/typewriter.js.map +1 -1
  389. package/dist/typography-ByF2k5yW.js +358 -0
  390. package/dist/typography-ByF2k5yW.js.map +1 -0
  391. package/dist/typography-Cfav17it.cjs +282 -0
  392. package/dist/typography-Cfav17it.cjs.map +1 -0
  393. package/dist/typography.cjs +1 -1
  394. package/dist/typography.js +1 -1
  395. package/dist/utils-DIXndz6Q.cjs.map +1 -0
  396. package/dist/utils-dSPH7Oh9.js.map +1 -0
  397. package/dist/utils.cjs +1 -1
  398. package/dist/utils.js +1 -1
  399. package/dist/visually-hidden.cjs +13 -13
  400. package/dist/visually-hidden.cjs.map +1 -1
  401. package/dist/visually-hidden.js +14 -14
  402. package/dist/visually-hidden.js.map +1 -1
  403. package/dist/window-Br1OmpL-.cjs +67 -0
  404. package/dist/window-Br1OmpL-.cjs.map +1 -0
  405. package/dist/{window-C76zstbV.js → window-CCmN4but.js} +24 -15
  406. package/dist/window-CCmN4but.js.map +1 -0
  407. package/dist/window.cjs +1 -1
  408. package/dist/window.js +1 -1
  409. package/package.json +1 -1
  410. package/skills/schmancy/surface.md +38 -22
  411. package/src/area/area.component.ts +249 -163
  412. package/src/area/area.service.test.ts +994 -1006
  413. package/src/area/area.service.ts +76 -72
  414. package/src/area/index.ts +7 -7
  415. package/src/area/lazy.ts +39 -42
  416. package/src/area/route.component.ts +54 -52
  417. package/src/area/router.types.ts +7 -7
  418. package/src/audio/emotional-sounds.ts +880 -801
  419. package/src/audio/sound.service.ts +26 -5
  420. package/src/avatar/avatar.ts +4 -4
  421. package/src/badge/badge.ts +15 -12
  422. package/src/badge/index.ts +1 -1
  423. package/src/boat/boat.ts +1 -1
  424. package/src/breadcrumb/breadcrumb.ts +37 -32
  425. package/src/busy/busy.ts +15 -12
  426. package/src/busy/index.ts +2 -2
  427. package/src/busy/spinner.ts +132 -119
  428. package/src/button/button.test.ts +5 -1
  429. package/src/button/button.ts +113 -72
  430. package/src/button/icon-button.ts +64 -46
  431. package/src/button/index.ts +2 -2
  432. package/src/calendar/calendar.test.ts +504 -0
  433. package/src/calendar/calendar.ts +587 -0
  434. package/src/calendar/index.ts +2 -0
  435. package/src/card/actions.ts +11 -9
  436. package/src/card/card.ts +79 -77
  437. package/src/card/content.ts +8 -6
  438. package/src/card/index.ts +4 -4
  439. package/src/card/media.ts +50 -50
  440. package/src/chips/assist-chip.ts +1 -1
  441. package/src/chips/chips.ts +1 -1
  442. package/src/chips/filter-chip.ts +1 -1
  443. package/src/chips/index.ts +1 -1
  444. package/src/chips/input-chip.ts +1 -1
  445. package/src/chips/suggestion-chip.ts +1 -1
  446. package/src/connectivity/connectivity-status.ts +90 -62
  447. package/src/content-drawer/drawer.service.ts +47 -36
  448. package/src/content-drawer/drawer.ts +31 -18
  449. package/src/content-drawer/index.ts +5 -5
  450. package/src/content-drawer/main.ts +9 -7
  451. package/src/content-drawer/sheet.ts +8 -6
  452. package/src/date-range-inline/date-range-inline.ts +523 -522
  453. package/src/date-range-inline/index.ts +2 -2
  454. package/src/delay/index.ts +1 -1
  455. package/src/details/details.ts +119 -105
  456. package/src/details/index.ts +1 -1
  457. package/src/directives/ai-badge.ts +1 -5
  458. package/src/directives/animate-text.ts +43 -31
  459. package/src/directives/art/effects/howl.ts +1 -4
  460. package/src/directives/art/effects/samwa.ts +11 -5
  461. package/src/directives/art/effects/snow.ts +1 -2
  462. package/src/directives/battery.ts +21 -12
  463. package/src/directives/confirm-click.ts +9 -17
  464. package/src/directives/cursor-glow.ts +1 -1
  465. package/src/directives/cycle-text.ts +7 -21
  466. package/src/directives/drag.ts +50 -45
  467. package/src/directives/fyi.ts +1 -6
  468. package/src/directives/gravity.ts +10 -8
  469. package/src/directives/hummingbird.ts +256 -107
  470. package/src/directives/index.ts +29 -29
  471. package/src/directives/intersect.ts +11 -11
  472. package/src/directives/layout.ts +25 -36
  473. package/src/directives/liquid.ts +4 -10
  474. package/src/directives/living-border.ts +7 -5
  475. package/src/directives/long-press.ts +2 -1
  476. package/src/directives/magnetic.ts +7 -6
  477. package/src/directives/nebula.ts +34 -28
  478. package/src/directives/overflow-within.ts +18 -20
  479. package/src/directives/reduced-motion.ts +9 -9
  480. package/src/directives/reveal.ts +193 -195
  481. package/src/directives/ripple.ts +9 -7
  482. package/src/directives/urgent.ts +3 -1
  483. package/src/directives/working-snake.ts +1 -1
  484. package/src/discovery/discovery.service.ts +198 -210
  485. package/src/discovery/index.ts +1 -1
  486. package/src/divider/divider.ts +49 -47
  487. package/src/divider/index.ts +1 -1
  488. package/src/dropdown/dropdown-content.ts +42 -40
  489. package/src/dropdown/index.ts +2 -2
  490. package/src/expand/expand-root.component.ts +70 -61
  491. package/src/expand/expand.component.ts +48 -43
  492. package/src/fab/fab.test.ts +1 -2
  493. package/src/fab/fab.ts +2 -4
  494. package/src/form/fields/autocomplete/autocomplete.scss +6 -2
  495. package/src/form/fields/autocomplete/autocomplete.ts +712 -724
  496. package/src/form/fields/autocomplete/index.ts +1 -1
  497. package/src/form/fields/checkbox/checkbox.ts +1 -4
  498. package/src/form/fields/chips/assist-chip.ts +69 -72
  499. package/src/form/fields/chips/chips.ts +14 -15
  500. package/src/form/fields/chips/filter-chip.ts +36 -32
  501. package/src/form/fields/chips/index.ts +5 -5
  502. package/src/form/fields/chips/input-chip.ts +130 -142
  503. package/src/form/fields/chips/suggestion-chip.ts +69 -72
  504. package/src/form/fields/date-range/date-range-dialog.ts +141 -194
  505. package/src/form/fields/date-range/date-range-helpers.ts +63 -64
  506. package/src/form/fields/date-range/date-range.test.ts +359 -122
  507. package/src/form/fields/date-range/date-range.ts +319 -395
  508. package/src/form/fields/date-range/index.ts +2 -2
  509. package/src/form/fields/input/index.ts +8 -8
  510. package/src/form/fields/input/input.scss +30 -26
  511. package/src/form/fields/input/input.test.ts +4 -1
  512. package/src/form/fields/input/input.ts +4 -20
  513. package/src/form/fields/radio-group/index.ts +2 -2
  514. package/src/form/fields/radio-group/radio-button.ts +8 -8
  515. package/src/form/fields/radio-group/radio-group.ts +4 -1
  516. package/src/form/fields/range/range.ts +3 -1
  517. package/src/form/fields/select/index.ts +2 -2
  518. package/src/form/fields/select/select.ts +51 -45
  519. package/src/form/fields/switch/switch.ts +13 -7
  520. package/src/form/fields/textarea/index.ts +1 -1
  521. package/src/form/fields/textarea/textarea.ts +44 -49
  522. package/src/form/form-summary.ts +15 -14
  523. package/src/form/form.test.ts +0 -1
  524. package/src/form/form.ts +11 -23
  525. package/src/icons/icon.ts +25 -25
  526. package/src/icons/index.ts +1 -1
  527. package/src/iframe/iframe.ts +11 -9
  528. package/src/index.ts +1 -0
  529. package/src/json/json.ts +9 -2
  530. package/src/kbd/kbd.ts +30 -28
  531. package/src/layout/scroll/index.ts +1 -1
  532. package/src/layout/scroll/scroll.ts +54 -54
  533. package/src/lightbox/lightbox-service.ts +27 -18
  534. package/src/lightbox/lightbox.directive.ts +2 -1
  535. package/src/lightbox/lightbox.ts +21 -38
  536. package/src/list/index.ts +3 -3
  537. package/src/list/list-item.ts +32 -26
  538. package/src/list/list.ts +13 -8
  539. package/src/menu/index.ts +2 -2
  540. package/src/menu/menu-item.ts +7 -5
  541. package/src/menu/menu.ts +8 -6
  542. package/src/nav-drawer/appbar.ts +9 -7
  543. package/src/nav-drawer/content.ts +10 -8
  544. package/src/nav-drawer/drawer.ts +29 -25
  545. package/src/nav-drawer/index.ts +6 -6
  546. package/src/navigation-bar/index.ts +2 -2
  547. package/src/navigation-bar/navigation-bar-item.ts +127 -118
  548. package/src/navigation-bar/navigation-bar.ts +103 -91
  549. package/src/navigation-rail/index.ts +2 -2
  550. package/src/navigation-rail/navigation-rail.ts +21 -22
  551. package/src/notification/index.ts +6 -6
  552. package/src/notification/notification-service.ts +1 -2
  553. package/src/notification/notification.scss +5 -1
  554. package/src/notification/notification.ts +1 -3
  555. package/src/notification/notify.ts +204 -207
  556. package/src/option/index.ts +1 -1
  557. package/src/option/option.ts +26 -25
  558. package/src/overlay/overlay.animations.ts +4 -14
  559. package/src/overlay/overlay.component.ts +110 -131
  560. package/src/overlay/overlay.confirm-body.ts +26 -48
  561. package/src/overlay/overlay.gestures.ts +8 -10
  562. package/src/overlay/overlay.layout.ts +1 -4
  563. package/src/overlay/overlay.positioning.ts +4 -15
  564. package/src/overlay/overlay.service.ts +9 -24
  565. package/src/overlay/overlay.stack.test.ts +4 -1
  566. package/src/overlay/overlay.stack.ts +4 -4
  567. package/src/overlay/overlay.types.ts +11 -20
  568. package/src/progress/index.ts +1 -1
  569. package/src/progress/progress.ts +135 -133
  570. package/src/rxjs-utils/index.ts +6 -6
  571. package/src/rxjs-utils/waitForElement.ts +20 -20
  572. package/src/rxjs-utils/waitForElementAll.ts +21 -21
  573. package/src/rxjs-utils/waitForElements.ts +27 -27
  574. package/src/rxjs-utils/waitForElementsAll.ts +27 -29
  575. package/src/rxjs-utils/waitUntil.ts +7 -12
  576. package/src/skeleton/skeleton.ts +39 -33
  577. package/src/slider/index.ts +2 -2
  578. package/src/slider/slide.ts +14 -12
  579. package/src/slider/slider.ts +24 -22
  580. package/src/splash-screen/index.ts +1 -1
  581. package/src/splash-screen/splash-screen.ts +26 -27
  582. package/src/state/active-host.ts +4 -5
  583. package/src/state/index.ts +34 -53
  584. package/src/state/persist.ts +14 -11
  585. package/src/state/schmancy-context.ts +88 -88
  586. package/src/state/state.test-d.ts +3 -13
  587. package/src/state/state.test.ts +1 -4
  588. package/src/steps/index.ts +3 -3
  589. package/src/steps/schmancy-step.ts +41 -31
  590. package/src/steps/schmancy-steps.ts +7 -5
  591. package/src/surface/index.ts +1 -1
  592. package/src/surface/surface.styles.ts +53 -104
  593. package/src/surface/surface.ts +10 -8
  594. package/src/table/index.ts +2 -2
  595. package/src/table/row.ts +1 -4
  596. package/src/table/table.ts +2 -5
  597. package/src/tabs/index.ts +2 -2
  598. package/src/tabs/tabs-group.ts +8 -6
  599. package/src/teleport/index.ts +2 -2
  600. package/src/test-utils/a11y.ts +1 -3
  601. package/src/theme/index.ts +17 -17
  602. package/src/theme/theme-audio-player.ts +18 -16
  603. package/src/theme/theme-controller-boat.ts +1 -1
  604. package/src/theme/theme-controller.ts +36 -32
  605. package/src/theme/theme.component.ts +5 -9
  606. package/src/theme/theme.events.ts +1 -1
  607. package/src/theme/theme.format.ts +7 -7
  608. package/src/theme/theme.service.ts +453 -468
  609. package/src/theme/theme.style.css +78 -23
  610. package/src/theme-button/index.ts +1 -1
  611. package/src/tooltip/tooltip.directive.ts +1 -1
  612. package/src/tree/index.ts +1 -1
  613. package/src/tree/tree.ts +24 -16
  614. package/src/types/surface.ts +38 -44
  615. package/src/typewriter/typewriter.directive.ts +30 -39
  616. package/src/typography/typography.ts +289 -269
  617. package/src/utils/animation.ts +2 -8
  618. package/src/utils/index.ts +6 -6
  619. package/src/utils/number.ts +480 -517
  620. package/src/utils/overlay-stack.ts +1 -3
  621. package/src/utils/search.ts +5 -9
  622. package/src/visually-hidden/visually-hidden.ts +15 -13
  623. package/src/window/window-manager.ts +6 -1
  624. package/src/window/window-position.ts +7 -5
  625. package/src/window/window.ts +143 -108
  626. package/types/src/calendar/calendar.d.ts +108 -0
  627. package/types/src/calendar/calendar.test.d.ts +1 -0
  628. package/types/src/calendar/index.d.ts +2 -0
  629. package/types/src/directives/cursor-glow.d.ts +1 -1
  630. package/types/src/directives/hummingbird.d.ts +3 -3
  631. package/types/src/form/fields/date-range/date-range-dialog.d.ts +24 -28
  632. package/types/src/form/fields/date-range/date-range.d.ts +35 -66
  633. package/types/src/form/fields/date-range/date-range.test.d.ts +1 -0
  634. package/types/src/form/fields/date-range/index.d.ts +1 -1
  635. package/types/src/index.d.ts +1 -0
  636. package/types/src/surface/surface.styles.d.ts +13 -6
  637. package/types/src/types/surface.d.ts +17 -22
  638. package/types/src/utils/number.d.ts +1 -1
  639. package/dist/SchmancyElement-OG71FtNv.js +0 -286
  640. package/dist/SchmancyElement-OG71FtNv.js.map +0 -1
  641. package/dist/SchmancyElement-PS1u0j1B.cjs +0 -2
  642. package/dist/SchmancyElement-PS1u0j1B.cjs.map +0 -1
  643. package/dist/area-CaEI33G0.cjs +0 -21
  644. package/dist/area-CaEI33G0.cjs.map +0 -1
  645. package/dist/area-DtCNCb8w.js.map +0 -1
  646. package/dist/audio-B924fI5N.cjs.map +0 -1
  647. package/dist/audio-DdN76ikW.js.map +0 -1
  648. package/dist/autocomplete-Dq3BkitV.cjs +0 -115
  649. package/dist/autocomplete-Dq3BkitV.cjs.map +0 -1
  650. package/dist/autocomplete-UNOknYUz.js.map +0 -1
  651. package/dist/busy--WqiXKnl.cjs +0 -134
  652. package/dist/busy--WqiXKnl.cjs.map +0 -1
  653. package/dist/busy-DzXyO0z6.js +0 -173
  654. package/dist/busy-DzXyO0z6.js.map +0 -1
  655. package/dist/button-CTvS5YX4.cjs.map +0 -1
  656. package/dist/button-DgoDfcJx.js.map +0 -1
  657. package/dist/card-C6ijJZpF.js.map +0 -1
  658. package/dist/card-Ci3_9Dd4.cjs +0 -177
  659. package/dist/card-Ci3_9Dd4.cjs.map +0 -1
  660. package/dist/chips-9eG-96_D.cjs.map +0 -1
  661. package/dist/chips-DF7akwz7.js.map +0 -1
  662. package/dist/date-range-C13_R3OA.js +0 -966
  663. package/dist/date-range-C13_R3OA.js.map +0 -1
  664. package/dist/date-range-Q2xj5Syc.cjs +0 -142
  665. package/dist/date-range-Q2xj5Syc.cjs.map +0 -1
  666. package/dist/date-range-inline-BnOD-ddB.js.map +0 -1
  667. package/dist/date-range-inline-DV2c_gWM.cjs.map +0 -1
  668. package/dist/details-B2-jECBh.cjs.map +0 -1
  669. package/dist/details-ByF66CyY.js.map +0 -1
  670. package/dist/directives-BL7mzVsA.js.map +0 -1
  671. package/dist/directives-DCb_LA9R.cjs.map +0 -1
  672. package/dist/divider-Bv2QiOZL.cjs +0 -57
  673. package/dist/divider-Bv2QiOZL.cjs.map +0 -1
  674. package/dist/divider-gYuz0zDU.js +0 -89
  675. package/dist/divider-gYuz0zDU.js.map +0 -1
  676. package/dist/expand-B9IUGVtc.cjs +0 -141
  677. package/dist/expand-B9IUGVtc.cjs.map +0 -1
  678. package/dist/expand-cZ8rfCWP.js.map +0 -1
  679. package/dist/form-DowzVsgI.cjs.map +0 -1
  680. package/dist/form-tG7LwDm4.js.map +0 -1
  681. package/dist/icons-BZeCloP9.cjs +0 -24
  682. package/dist/icons-BZeCloP9.cjs.map +0 -1
  683. package/dist/icons-Dup5skuk.js.map +0 -1
  684. package/dist/iframe-CDJjnNmo.cjs.map +0 -1
  685. package/dist/iframe-Xc3EPMZT.js.map +0 -1
  686. package/dist/input-DnmC6J1T.cjs.map +0 -1
  687. package/dist/input-cTyDxW9L.js.map +0 -1
  688. package/dist/input-chip-CV91URyU.cjs +0 -146
  689. package/dist/input-chip-CV91URyU.cjs.map +0 -1
  690. package/dist/input-chip-CYI17YOq.js.map +0 -1
  691. package/dist/layout-CNlZSJFU.cjs.map +0 -1
  692. package/dist/layout-DDxw0EwL.js.map +0 -1
  693. package/dist/lightbox-CH-y3rYB.js.map +0 -1
  694. package/dist/lightbox-CvtqoInF.cjs.map +0 -1
  695. package/dist/list-Dl8KfxrF.cjs +0 -40
  696. package/dist/list-Dl8KfxrF.cjs.map +0 -1
  697. package/dist/list-DrsawQ5R.js.map +0 -1
  698. package/dist/menu-BFRcTe3o.cjs.map +0 -1
  699. package/dist/menu-CsY5lMqY.js.map +0 -1
  700. package/dist/mixins-BoMURWag.cjs.map +0 -1
  701. package/dist/mixins-bCEXbwJV.js.map +0 -1
  702. package/dist/notification-DFKRMmSq.js.map +0 -1
  703. package/dist/notification-FBf3Mb2e.cjs.map +0 -1
  704. package/dist/option-Ct0lGdH3.js.map +0 -1
  705. package/dist/option-Il1KpU8M.cjs +0 -43
  706. package/dist/option-Il1KpU8M.cjs.map +0 -1
  707. package/dist/overlay-Bh8Q_R01.js.map +0 -1
  708. package/dist/overlay-sRXiMkjn.cjs.map +0 -1
  709. package/dist/overlay.confirm-body-CQihsR20.js.map +0 -1
  710. package/dist/overlay.confirm-body-Jc1EuMGs.cjs.map +0 -1
  711. package/dist/overlay.service-9Dp3g7ot.cjs.map +0 -1
  712. package/dist/overlay.service-BXPgS7ay.js.map +0 -1
  713. package/dist/progress-CWC5XYZ_.cjs +0 -51
  714. package/dist/progress-CWC5XYZ_.cjs.map +0 -1
  715. package/dist/progress-CYLshdo2.js.map +0 -1
  716. package/dist/radio-group-6kCgOgBL.cjs.map +0 -1
  717. package/dist/radio-group-bZtZHOj_.js.map +0 -1
  718. package/dist/select-CU3X-PIa.js.map +0 -1
  719. package/dist/select-MXsF8KsU.cjs +0 -56
  720. package/dist/select-MXsF8KsU.cjs.map +0 -1
  721. package/dist/sound.service-B4ZmXpH9.js.map +0 -1
  722. package/dist/sound.service-DjlMvicQ.cjs.map +0 -1
  723. package/dist/splash-screen-CN9dZcqC.cjs +0 -41
  724. package/dist/splash-screen-CN9dZcqC.cjs.map +0 -1
  725. package/dist/splash-screen-emCLYoVl.js.map +0 -1
  726. package/dist/src-DGDTkOvC.js.map +0 -1
  727. package/dist/src-DK3111z_.cjs +0 -240
  728. package/dist/src-DK3111z_.cjs.map +0 -1
  729. package/dist/state-CumAEPQH.cjs.map +0 -1
  730. package/dist/state-DMd_FUeA.js.map +0 -1
  731. package/dist/surface-DGI-FBoi.cjs +0 -7
  732. package/dist/surface-DGI-FBoi.cjs.map +0 -1
  733. package/dist/tabs-4T_4kCf-.js.map +0 -1
  734. package/dist/tabs-Byxxt-AH.cjs.map +0 -1
  735. package/dist/textarea-BwYwH9fu.cjs.map +0 -1
  736. package/dist/textarea-kkYNk1ET.js.map +0 -1
  737. package/dist/theme.service-Dv_55nfE.js.map +0 -1
  738. package/dist/theme.service-pjkTM209.cjs.map +0 -1
  739. package/dist/typography-BVkU11_q.js +0 -358
  740. package/dist/typography-BVkU11_q.js.map +0 -1
  741. package/dist/typography-aaQaIcNc.cjs +0 -282
  742. package/dist/typography-aaQaIcNc.cjs.map +0 -1
  743. package/dist/utils-DTa3QHxk.cjs.map +0 -1
  744. package/dist/utils-H8wNknWC.js.map +0 -1
  745. package/dist/window-C76zstbV.js.map +0 -1
  746. package/dist/window-CmB9XZzT.cjs +0 -58
  747. package/dist/window-CmB9XZzT.cjs.map +0 -1
  748. package/src/form/fields/date-range/date-range-presets.ts +0 -220
  749. package/src/form/fields/date-range/date-utils.ts +0 -58
  750. package/types/src/form/fields/date-range/date-range-presets.d.ts +0 -18
  751. package/types/src/form/fields/date-range/date-utils.d.ts +0 -15
  752. /package/dist/{hashContent-iRZJJWtE.cjs → hashContent--s09Ed_g.cjs} +0 -0
  753. /package/dist/{hashContent-BqU6v1Xr.js → hashContent-CAvrQ56N.js} +0 -0
  754. /package/dist/{rxjs-utils-Csnks202.cjs → rxjs-utils-4P2v57ke.cjs} +0 -0
  755. /package/dist/{rxjs-utils-d-ivVN84.js → rxjs-utils-JMFdgQSl.js} +0 -0
  756. /package/dist/{theme.interface-CSt7JUBD.cjs → theme.interface-B-qxDsZQ.cjs} +0 -0
  757. /package/dist/{theme.interface-odQEpZZH.js → theme.interface-B7caS5cg.js} +0 -0
  758. /package/dist/{utils-DTa3QHxk.cjs → utils-DIXndz6Q.cjs} +0 -0
  759. /package/dist/{utils-H8wNknWC.js → utils-dSPH7Oh9.js} +0 -0
@@ -0,0 +1,587 @@
1
+ import dayjs from 'dayjs'
2
+ import localeData from 'dayjs/plugin/localeData'
3
+ import weekday from 'dayjs/plugin/weekday'
4
+ import isBetween from 'dayjs/plugin/isBetween'
5
+ import { css, html, PropertyValues } from 'lit'
6
+ import { customElement, property, state } from 'lit/decorators.js'
7
+ import { repeat } from 'lit/directives/repeat.js'
8
+ import { classMap } from 'lit/directives/class-map.js'
9
+ import { fromEvent, merge, Subject, takeUntil } from 'rxjs'
10
+ import { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators'
11
+ import { SchmancyElement } from '@mixins/index'
12
+
13
+ dayjs.extend(localeData)
14
+ dayjs.extend(weekday)
15
+ dayjs.extend(isBetween)
16
+
17
+ // ---------------------------------------------------------------------------
18
+ // Event detail types
19
+ // ---------------------------------------------------------------------------
20
+
21
+ /** Fired on every provisional change (including range hover-preview). */
22
+ export type SchmancyCalendarInputEvent = CustomEvent<{
23
+ value: string | null
24
+ start: string | null
25
+ end: string | null
26
+ }>
27
+
28
+ /** Fired on a committed change: single click | second range endpoint | clear. */
29
+ export type SchmancyCalendarChangeEvent = CustomEvent<{
30
+ value: string | null
31
+ start: string | null
32
+ end: string | null
33
+ }>
34
+
35
+ /** Fired as the dominant in-view month changes while scrolling. */
36
+ export type SchmancyCalendarNavigateEvent = CustomEvent<{
37
+ month: string
38
+ }>
39
+
40
+ // ---------------------------------------------------------------------------
41
+ // Internal helpers
42
+ // ---------------------------------------------------------------------------
43
+
44
+ /** Parse a 'YYYY-MM' string into { year, month } (1-based month). */
45
+ function parseYM(ym: string): { year: number; month: number } {
46
+ const [y, m] = ym.split('-').map(Number)
47
+ return { year: y, month: m }
48
+ }
49
+
50
+ /** Format a dayjs instance as 'YYYY-MM'. */
51
+ function toYM(d: dayjs.Dayjs): string {
52
+ return d.format('YYYY-MM')
53
+ }
54
+
55
+ /** Format a dayjs instance as 'YYYY-MM-DD'. */
56
+ function toYMD(d: dayjs.Dayjs): string {
57
+ return d.format('YYYY-MM-DD')
58
+ }
59
+
60
+ /** Number of months between two 'YYYY-MM' strings (inclusive). */
61
+ function monthsBetween(from: string, to: string): number {
62
+ const f = parseYM(from)
63
+ const t = parseYM(to)
64
+ return (t.year - f.year) * 12 + (t.month - f.month) + 1
65
+ }
66
+
67
+ /** Add `n` months to a 'YYYY-MM' string. */
68
+ function addMonths(ym: string, n: number): string {
69
+ const { year, month } = parseYM(ym)
70
+ const d = dayjs(new Date(year, month - 1, 1)).add(n, 'month')
71
+ return toYM(d)
72
+ }
73
+
74
+ /**
75
+ * Derive the first day of the week (0=Sun … 6=Sat) from a BCP-47 locale tag.
76
+ * `Intl.Locale.weekInfo.firstDay` uses 1=Mon … 7=Sun; we convert to 0-based Sun.
77
+ * Falls back to 0 (Sunday) when the API is unsupported or the locale is absent.
78
+ */
79
+ function firstDayOfWeek(locale: string | undefined): number {
80
+ if (!locale) return 0
81
+ try {
82
+ const info = (new Intl.Locale(locale) as { weekInfo?: { firstDay?: number } }).weekInfo
83
+ if (info?.firstDay == null) return 0
84
+ // Intl spec: 1=Mon … 7=Sun → convert to 0-based (0=Sun … 6=Sat)
85
+ return info.firstDay === 7 ? 0 : info.firstDay
86
+ } catch {
87
+ return 0
88
+ }
89
+ }
90
+
91
+ // ---------------------------------------------------------------------------
92
+ // Component
93
+ // ---------------------------------------------------------------------------
94
+
95
+ /**
96
+ * A presentational calendar primitive with continuous vertical month-scroll.
97
+ * Supports single-date and date-range selection. No form-association.
98
+ *
99
+ * @element schmancy-calendar
100
+ * @fires input - Every provisional change (incl. range hover-preview)
101
+ * @fires change - Committed change: single click | second range endpoint | clear
102
+ * @fires navigate - Dominant in-view month changed while scrolling
103
+ *
104
+ * @csspart scroll - The scrollable container
105
+ * @csspart month-label - Sticky month/year label
106
+ * @csspart weekday - Weekday header cell
107
+ * @csspart grid - Day grid for a month
108
+ * @csspart day - Individual day cell
109
+ * @csspart day-selected - A selected day (single mode, or both endpoints)
110
+ * @csspart day-range-start - Range start day
111
+ * @csspart day-range-end - Range end day
112
+ * @csspart day-in-range - Day inside the selected range (exclusive of endpoints)
113
+ * @csspart day-preview - Day inside the hover-preview range
114
+ * @csspart day-today - Today's date
115
+ * @csspart day-disabled - Disabled (out-of-bounds) day
116
+ */
117
+ @customElement('schmancy-calendar')
118
+ export class SchmancyCalendar extends SchmancyElement {
119
+ static styles = [
120
+ css`
121
+ :host {
122
+ display: block;
123
+ }
124
+ [part~='scroll'] {
125
+ scroll-behavior: smooth;
126
+ }
127
+ `,
128
+ ]
129
+
130
+ // -------------------------------------------------------------------------
131
+ // Public properties (per the plan contract)
132
+ // -------------------------------------------------------------------------
133
+
134
+ @property({ reflect: true }) mode: 'single' | 'range' = 'single'
135
+ @property() type: 'date' | 'datetime-local' = 'date'
136
+ @property() value?: string | null
137
+ @property() start?: string | null
138
+ @property() end?: string | null
139
+ @property() min?: string
140
+ @property() max?: string
141
+ @property() month?: string
142
+ /** BCP-47 locale tag; week-start derived from it. Stored as `calLocale` to avoid conflicting with the base-class `locale` getter. */
143
+ @property({ attribute: 'locale' }) calLocale?: string
144
+ @property({ type: Boolean, reflect: true }) disabled = false
145
+ @property({ type: Boolean, reflect: true }) readonly = false
146
+
147
+ // -------------------------------------------------------------------------
148
+ // Internal state
149
+ // -------------------------------------------------------------------------
150
+
151
+ /** The month the scroller is currently anchored to ('YYYY-MM'). */
152
+ @state() private anchorMonth: string = toYM(dayjs())
153
+
154
+ /** In range mode: the first click (pending second endpoint). */
155
+ @state() private pendingStart: string | null = null
156
+
157
+ /** In range mode: day the pointer is hovering over (for preview). */
158
+ @state() private hoverDate: string | null = null
159
+
160
+ // -------------------------------------------------------------------------
161
+ // Internal subjects
162
+ // -------------------------------------------------------------------------
163
+
164
+ /**
165
+ * Emits the dominant month string whenever a scroll event occurs.
166
+ * Fed by both the DOM scroller's fromEvent (via scrollerReady$) and any
167
+ * future direct pushes. Merging both into a single debounced pipeline
168
+ * satisfies ONE_PIPELINE_ONE_SUBSCRIBE.
169
+ */
170
+ private readonly scroll$ = new Subject<string>()
171
+
172
+ /**
173
+ * Emits the scroller HTMLElement once it is available in the DOM
174
+ * (from updated()). switchMap converts it into the fromEvent stream,
175
+ * which feeds scroll$ — all inside the single connectedCallback pipeline.
176
+ */
177
+ private readonly scrollerReady$ = new Subject<HTMLElement>()
178
+
179
+ // -------------------------------------------------------------------------
180
+ // Lifecycle
181
+ // -------------------------------------------------------------------------
182
+
183
+ override connectedCallback(): void {
184
+ super.connectedCallback()
185
+
186
+ // Resolve initial anchor from current props.
187
+ if (this.month) {
188
+ this.anchorMonth = this.month
189
+ } else if (this.mode === 'range') {
190
+ if (this.start) this.anchorMonth = toYM(dayjs(this.start))
191
+ else if (this.end) this.anchorMonth = toYM(dayjs(this.end))
192
+ else this.anchorMonth = toYM(dayjs())
193
+ } else {
194
+ this.anchorMonth = this.value ? toYM(dayjs(this.value)) : toYM(dayjs())
195
+ }
196
+
197
+ // Single pipeline. Three merged sources → debounce → navigate event.
198
+ // 1. scroll$ — direct pushes (future programmatic use)
199
+ // 2. scrollerReady$ switchMapped to fromEvent(scroller, 'scroll')
200
+ // — DOM scroll events once the scroller is in the shadow DOM
201
+ merge(
202
+ this.scroll$,
203
+ this.scrollerReady$.pipe(
204
+ switchMap(scroller =>
205
+ fromEvent(scroller, 'scroll').pipe(map(() => this.dominantMonth(scroller))),
206
+ ),
207
+ ),
208
+ )
209
+ .pipe(distinctUntilChanged(), debounceTime(50), takeUntil(this.disconnecting))
210
+ .subscribe(month => {
211
+ this.dispatchEvent(
212
+ new CustomEvent<SchmancyCalendarNavigateEvent['detail']>('navigate', {
213
+ detail: { month },
214
+ bubbles: true,
215
+ composed: true,
216
+ }),
217
+ )
218
+ })
219
+ }
220
+
221
+ override updated(changed: PropertyValues): void {
222
+ super.updated(changed)
223
+ // If the `month` prop changes externally, scroll to that month.
224
+ if (changed.has('month') && this.month && this.month !== this.anchorMonth) {
225
+ this.anchorMonth = this.month
226
+ this.scrollToMonth(this.month)
227
+ }
228
+ // Push the scroller element into the pipeline once it is in the DOM.
229
+ if (!this.scrollerAttached) {
230
+ const scroller = this.shadowRoot?.querySelector('[part="scroll"]') as HTMLElement | null
231
+ if (scroller) {
232
+ this.scrollerAttached = true
233
+ this.scrollerReady$.next(scroller)
234
+ }
235
+ }
236
+ }
237
+
238
+ // -------------------------------------------------------------------------
239
+ // Scroll listener gate (ensures scrollerReady$ fires exactly once)
240
+ // -------------------------------------------------------------------------
241
+
242
+ private scrollerAttached = false
243
+
244
+ // -------------------------------------------------------------------------
245
+ // Date-math helpers
246
+ // -------------------------------------------------------------------------
247
+
248
+ /** The scroll window start month. */
249
+ private windowStart(): string {
250
+ if (this.min) return toYM(dayjs(this.min).startOf('month'))
251
+ return addMonths(this.resolveAnchor(), -3)
252
+ }
253
+
254
+ /** The scroll window end month. */
255
+ private windowEnd(): string {
256
+ if (this.max) return toYM(dayjs(this.max).endOf('month'))
257
+ return addMonths(this.resolveAnchor(), 9)
258
+ }
259
+
260
+ /** Resolve the best anchor month from current props. */
261
+ private resolveAnchor(): string {
262
+ if (this.month) return this.month
263
+ if (this.mode === 'range') {
264
+ if (this.start) return toYM(dayjs(this.start))
265
+ if (this.end) return toYM(dayjs(this.end))
266
+ } else {
267
+ if (this.value) return toYM(dayjs(this.value))
268
+ }
269
+ return toYM(dayjs())
270
+ }
271
+
272
+ /** All months in the scroll window as 'YYYY-MM' strings. */
273
+ private months(): string[] {
274
+ const start = this.windowStart()
275
+ const end = this.windowEnd()
276
+ const count = monthsBetween(start, end)
277
+ return Array.from({ length: count }, (_, i) => addMonths(start, i))
278
+ }
279
+
280
+ /** Days of the week starting from the locale's first day (BCP-47 derived). */
281
+ private weekdayHeaders(): string[] {
282
+ const allDays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
283
+ const firstDay = firstDayOfWeek(this.calLocale)
284
+ return [...allDays.slice(firstDay), ...allDays.slice(0, firstDay)]
285
+ }
286
+
287
+ // -------------------------------------------------------------------------
288
+ // Dominant-month detection (for navigate events)
289
+ // -------------------------------------------------------------------------
290
+
291
+ private dominantMonth(scroller: HTMLElement): string {
292
+ const monthEls = scroller.querySelectorAll<HTMLElement>('[data-month]')
293
+ const scrollMid = scroller.scrollTop + scroller.clientHeight / 2
294
+ let best: string = this.anchorMonth
295
+ let bestDist = Infinity
296
+ for (const el of monthEls) {
297
+ const elMid = el.offsetTop + el.offsetHeight / 2
298
+ const dist = Math.abs(elMid - scrollMid)
299
+ if (dist < bestDist) {
300
+ bestDist = dist
301
+ best = el.dataset.month!
302
+ }
303
+ }
304
+ return best
305
+ }
306
+
307
+ private scrollToMonth(ym: string): void {
308
+ requestAnimationFrame(() => {
309
+ const scroller = this.shadowRoot?.querySelector('[part="scroll"]') as HTMLElement | null
310
+ if (!scroller) return
311
+ const el = scroller.querySelector<HTMLElement>(`[data-month="${ym}"]`)
312
+ if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' })
313
+ })
314
+ }
315
+
316
+ // -------------------------------------------------------------------------
317
+ // Day-state helpers
318
+ // -------------------------------------------------------------------------
319
+
320
+ private isSelected(iso: string): boolean {
321
+ if (this.mode === 'single') return iso === this.value
322
+ return iso === this.start || iso === this.end
323
+ }
324
+
325
+ private isRangeStart(iso: string): boolean {
326
+ return this.mode === 'range' && iso === this.start
327
+ }
328
+
329
+ private isRangeEnd(iso: string): boolean {
330
+ return this.mode === 'range' && iso === this.end
331
+ }
332
+
333
+ private isInRange(iso: string): boolean {
334
+ if (this.mode !== 'range' || !this.start || !this.end) return false
335
+ const d = dayjs(iso)
336
+ const s = dayjs(this.start)
337
+ const e = dayjs(this.end)
338
+ const [lo, hi] = s.isBefore(e) ? [s, e] : [e, s]
339
+ return d.isAfter(lo) && d.isBefore(hi)
340
+ }
341
+
342
+ private isInPreview(iso: string): boolean {
343
+ if (this.mode !== 'range' || !this.pendingStart || !this.hoverDate) return false
344
+ const d = dayjs(iso)
345
+ const s = dayjs(this.pendingStart)
346
+ const h = dayjs(this.hoverDate)
347
+ const [lo, hi] = s.isBefore(h) ? [s, h] : [h, s]
348
+ return (d.isAfter(lo) && d.isBefore(hi)) || d.isSame(lo) || d.isSame(hi)
349
+ }
350
+
351
+ private isToday(iso: string): boolean {
352
+ return iso === toYMD(dayjs())
353
+ }
354
+
355
+ private isDisabled(iso: string): boolean {
356
+ if (this.disabled) return true
357
+ if (this.min && iso < this.min) return true
358
+ if (this.max && iso > this.max) return true
359
+ return false
360
+ }
361
+
362
+ // -------------------------------------------------------------------------
363
+ // Click / hover / keyboard handlers
364
+ // -------------------------------------------------------------------------
365
+
366
+ private handleDayClick(iso: string): void {
367
+ if (this.isDisabled(iso) || this.readonly) return
368
+
369
+ if (this.mode === 'single') {
370
+ this.value = iso
371
+ this.emit('change', { value: iso, start: null, end: null })
372
+ return
373
+ }
374
+
375
+ // Range mode
376
+ if (this.pendingStart === null) {
377
+ // First click — set pending start, emit `input`
378
+ this.pendingStart = iso
379
+ this.hoverDate = iso
380
+ this.emit('input', { value: null, start: iso, end: null })
381
+ } else {
382
+ // Second click — commit range
383
+ const [s, e] = this.pendingStart <= iso ? [this.pendingStart, iso] : [iso, this.pendingStart]
384
+ this.pendingStart = null
385
+ this.hoverDate = null
386
+ this.start = s
387
+ this.end = e
388
+ this.emit('change', { value: null, start: s, end: e })
389
+ }
390
+ }
391
+
392
+ private handleDayHover(iso: string): void {
393
+ if (this.mode !== 'range' || this.pendingStart === null) return
394
+ this.hoverDate = iso
395
+ const [s, e] = this.pendingStart <= iso ? [this.pendingStart, iso] : [iso, this.pendingStart]
396
+ this.emit('input', { value: null, start: s, end: e })
397
+ }
398
+
399
+ private handleKeyDown(e: KeyboardEvent, iso: string): void {
400
+ if (e.key === 'Enter' || e.key === ' ') {
401
+ e.preventDefault()
402
+ this.handleDayClick(iso)
403
+ }
404
+ }
405
+
406
+ // -------------------------------------------------------------------------
407
+ // Event emission helper
408
+ // -------------------------------------------------------------------------
409
+
410
+ private emit(
411
+ eventName: 'input' | 'change',
412
+ detail: { value: string | null; start: string | null; end: string | null },
413
+ ): void {
414
+ this.dispatchEvent(
415
+ new CustomEvent(eventName, {
416
+ detail,
417
+ bubbles: true,
418
+ composed: true,
419
+ }),
420
+ )
421
+ }
422
+
423
+ // -------------------------------------------------------------------------
424
+ // Render
425
+ // -------------------------------------------------------------------------
426
+
427
+ render() {
428
+ const months = this.months()
429
+ const weekdays = this.weekdayHeaders()
430
+
431
+ return html`
432
+ <div
433
+ part="scroll"
434
+ class="overflow-y-auto h-full"
435
+ role="grid"
436
+ aria-label="Calendar"
437
+ aria-multiselectable="${this.mode === 'range' ? 'true' : 'false'}"
438
+ >
439
+ ${repeat(
440
+ months,
441
+ ym => ym,
442
+ ym => this.renderMonth(ym, weekdays),
443
+ )}
444
+ </div>
445
+ <div id="live-status" role="status" aria-live="polite" class="sr-only"></div>
446
+ `
447
+ }
448
+
449
+ private renderMonth(ym: string, weekdays: string[]) {
450
+ const { year, month } = parseYM(ym)
451
+ const firstDay = dayjs(new Date(year, month - 1, 1))
452
+ const daysInMonth = firstDay.daysInMonth()
453
+
454
+ // Offset relative to the locale's first day of week.
455
+ const localeFirstDay = firstDayOfWeek(this.calLocale)
456
+ // firstDay.day() returns 0=Sun … 6=Sat; adjust for locale offset
457
+ const startOffset = (firstDay.day() - localeFirstDay + 7) % 7
458
+
459
+ const monthLabel = firstDay.format('MMMM YYYY')
460
+
461
+ // Build flat cell array: leading empties + actual days
462
+ const cells: Array<{ iso: string | null; day: number | null }> = []
463
+ for (let i = 0; i < startOffset; i++) cells.push({ iso: null, day: null })
464
+ for (let d = 1; d <= daysInMonth; d++) {
465
+ cells.push({ iso: `${year}-${String(month).padStart(2, '0')}-${String(d).padStart(2, '0')}`, day: d })
466
+ }
467
+ // Pad to a full last week
468
+ while (cells.length % 7 !== 0) cells.push({ iso: null, day: null })
469
+
470
+ // Group into 7-day rows for proper ARIA grid structure
471
+ const rows: Array<typeof cells> = []
472
+ for (let r = 0; r < cells.length; r += 7) rows.push(cells.slice(r, r + 7))
473
+
474
+ return html`
475
+ <div data-month="${ym}" class="flex flex-col">
476
+ <!-- Sticky month label -->
477
+ <div
478
+ part="month-label"
479
+ class="sticky top-0 z-10 bg-surface-default px-3 py-2 font-medium text-sm text-on-surface"
480
+ >
481
+ <slot name="month-label">${monthLabel}</slot>
482
+ </div>
483
+
484
+ <!-- Weekday header row -->
485
+ <div role="row" part="weekday" class="grid grid-cols-7 gap-0 px-3">
486
+ ${weekdays.map(
487
+ d => html`<div role="columnheader" class="text-center text-xs text-on-surface-variant py-1">${d}</div>`,
488
+ )}
489
+ </div>
490
+
491
+ <!-- Day grid — each week is a row for ARIA grid conformance -->
492
+ <div part="grid" class="flex flex-col px-3 pb-4">
493
+ ${repeat(
494
+ rows,
495
+ (_, i) => `${ym}-row-${i}`,
496
+ (row, ri) => html`
497
+ <div role="row" class="grid grid-cols-7">
498
+ ${repeat(
499
+ row,
500
+ (_, ci) => `${ym}-${ri * 7 + ci}`,
501
+ cell => {
502
+ if (!cell.iso) return html`<div role="gridcell" aria-hidden="true" class="h-9"></div>`
503
+ return this.renderDay(cell.iso, cell.day!)
504
+ },
505
+ )}
506
+ </div>
507
+ `,
508
+ )}
509
+ </div>
510
+ </div>
511
+ `
512
+ }
513
+
514
+ private renderDay(iso: string, day: number) {
515
+ const disabled = this.isDisabled(iso)
516
+ const selected = this.isSelected(iso)
517
+ const rangeStart = this.isRangeStart(iso)
518
+ const rangeEnd = this.isRangeEnd(iso)
519
+ const inRange = this.isInRange(iso)
520
+ const inPreview = this.isInPreview(iso)
521
+ const isToday = this.isToday(iso)
522
+ const isEndpoint = rangeStart || rangeEnd
523
+
524
+ const parts = [
525
+ 'day',
526
+ selected ? 'day-selected' : '',
527
+ rangeStart ? 'day-range-start' : '',
528
+ rangeEnd ? 'day-range-end' : '',
529
+ inRange ? 'day-in-range' : '',
530
+ inPreview ? 'day-preview' : '',
531
+ isToday ? 'day-today' : '',
532
+ disabled ? 'day-disabled' : '',
533
+ ]
534
+ .filter(Boolean)
535
+ .join(' ')
536
+
537
+ // classMap keys must be single CSS class tokens (no spaces).
538
+ const classes = classMap({
539
+ 'h-9': true,
540
+ 'w-full': true,
541
+ flex: true,
542
+ 'items-center': true,
543
+ 'justify-center': true,
544
+ 'text-sm': true,
545
+ 'rounded-full': true,
546
+ 'cursor-pointer': true,
547
+ 'select-none': true,
548
+ 'bg-primary-default': selected || isEndpoint,
549
+ 'text-on-primary': selected || isEndpoint,
550
+ 'bg-primary-container': inRange,
551
+ 'text-on-primary-container': inRange,
552
+ 'rounded-none': inRange || (inPreview && !selected),
553
+ 'bg-primary-container/50': inPreview && !selected && !isEndpoint,
554
+ 'text-on-surface': inPreview && !selected && !isEndpoint,
555
+ 'font-semibold': isToday && !selected,
556
+ 'ring-1': isToday && !selected,
557
+ 'ring-primary-default': isToday && !selected,
558
+ 'opacity-30': disabled,
559
+ 'cursor-not-allowed': disabled,
560
+ 'pointer-events-none': disabled,
561
+ 'hover:bg-surface-variant': !disabled && !selected && !isEndpoint && !inRange && !inPreview,
562
+ })
563
+
564
+ return html`
565
+ <div
566
+ part="${parts}"
567
+ class="${classes}"
568
+ role="gridcell"
569
+ aria-label="${iso}"
570
+ aria-selected="${selected || isEndpoint || inRange ? 'true' : 'false'}"
571
+ aria-disabled="${disabled ? 'true' : 'false'}"
572
+ tabindex="${disabled ? '-1' : '0'}"
573
+ @click="${() => this.handleDayClick(iso)}"
574
+ @mouseenter="${() => this.handleDayHover(iso)}"
575
+ @keydown="${(e: KeyboardEvent) => this.handleKeyDown(e, iso)}"
576
+ >
577
+ ${day}
578
+ </div>
579
+ `
580
+ }
581
+ }
582
+
583
+ declare global {
584
+ interface HTMLElementTagNameMap {
585
+ 'schmancy-calendar': SchmancyCalendar
586
+ }
587
+ }
@@ -0,0 +1,2 @@
1
+ export { SchmancyCalendar } from './calendar'
2
+ export type { SchmancyCalendarInputEvent, SchmancyCalendarChangeEvent, SchmancyCalendarNavigateEvent } from './calendar'
@@ -8,15 +8,17 @@ import { customElement } from 'lit/decorators.js'
8
8
  */
9
9
  @customElement('schmancy-card-action')
10
10
  export default class SchmancyCardAction extends SchmancyElement {
11
- static styles = [css`
12
- :host {
13
- display: flex;
14
- gap: 0.5rem;
15
- padding: 0.5rem 1rem;
16
- align-items: center;
17
- justify-content: flex-end;
18
- }
19
- `];
11
+ static styles = [
12
+ css`
13
+ :host {
14
+ display: flex;
15
+ gap: 0.5rem;
16
+ padding: 0.5rem 1rem;
17
+ align-items: center;
18
+ justify-content: flex-end;
19
+ }
20
+ `,
21
+ ]
20
22
  protected render(): unknown {
21
23
  return html`<slot></slot>`
22
24
  }