@mhmo91/schmancy 0.8.6 → 0.9.3

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 (1426) hide show
  1. package/README.md +54 -1
  2. package/ai/INDEX.md +321 -0
  3. package/ai/animation.md +64 -0
  4. package/ai/area.md +170 -237
  5. package/ai/audio.md +50 -222
  6. package/ai/autocomplete.md +44 -162
  7. package/ai/avatar.md +47 -178
  8. package/ai/badge.md +41 -108
  9. package/ai/boat.md +35 -41
  10. package/ai/busy.md +25 -184
  11. package/ai/button.md +52 -150
  12. package/ai/card.md +42 -215
  13. package/ai/charts.md +93 -0
  14. package/ai/checkbox.md +32 -135
  15. package/ai/chips.md +73 -383
  16. package/ai/code-highlight.md +33 -226
  17. package/ai/connectivity.md +36 -0
  18. package/ai/content-drawer.md +65 -232
  19. package/ai/date-range-inline.md +40 -258
  20. package/ai/date-range.md +43 -198
  21. package/ai/delay.md +31 -139
  22. package/ai/details.md +48 -453
  23. package/ai/dialog.md +55 -164
  24. package/ai/directives.md +258 -405
  25. package/ai/discovery.md +67 -0
  26. package/ai/divider.md +15 -137
  27. package/ai/dropdown.md +44 -235
  28. package/ai/expand.md +63 -0
  29. package/ai/extra.md +59 -0
  30. package/ai/float.md +14 -0
  31. package/ai/form.md +41 -137
  32. package/ai/icons.md +31 -235
  33. package/ai/iframe.md +44 -0
  34. package/ai/input.md +50 -210
  35. package/ai/json.md +33 -0
  36. package/ai/layout.md +45 -169
  37. package/ai/lightbox.md +25 -370
  38. package/ai/list.md +51 -130
  39. package/ai/mailbox.md +80 -508
  40. package/ai/map.md +47 -226
  41. package/ai/menu.md +25 -134
  42. package/ai/mixins.md +201 -0
  43. package/ai/nav-drawer.md +30 -184
  44. package/ai/navigation-bar.md +27 -184
  45. package/ai/navigation-rail.md +62 -630
  46. package/ai/notification.md +49 -183
  47. package/ai/option.md +30 -160
  48. package/ai/page.md +42 -0
  49. package/ai/progress.md +26 -65
  50. package/ai/qr-scanner.md +51 -0
  51. package/ai/radio-group.md +45 -189
  52. package/ai/range.md +47 -0
  53. package/ai/rxjs-utils.md +60 -0
  54. package/ai/select.md +49 -209
  55. package/ai/sheet.md +74 -506
  56. package/ai/slider.md +30 -214
  57. package/ai/steps.md +30 -392
  58. package/ai/store.md +173 -251
  59. package/ai/surface.md +58 -245
  60. package/ai/table.md +56 -330
  61. package/ai/tabs.md +31 -176
  62. package/ai/teleport.md +35 -177
  63. package/ai/textarea.md +48 -232
  64. package/ai/theme-button.md +16 -163
  65. package/ai/theme.md +40 -1089
  66. package/ai/tooltip.md +35 -146
  67. package/ai/tree.md +45 -271
  68. package/ai/typewriter.md +28 -317
  69. package/ai/typography.md +43 -296
  70. package/ai/utils.md +95 -0
  71. package/ai/window.md +67 -0
  72. package/custom-elements.json +10955 -0
  73. package/dist/ai/INDEX.md +321 -0
  74. package/dist/ai/animation.md +64 -0
  75. package/dist/ai/area.md +170 -237
  76. package/dist/ai/audio.md +50 -222
  77. package/dist/ai/autocomplete.md +44 -162
  78. package/dist/ai/avatar.md +47 -178
  79. package/dist/ai/badge.md +41 -108
  80. package/dist/ai/boat.md +35 -41
  81. package/dist/ai/busy.md +25 -184
  82. package/dist/ai/button.md +52 -150
  83. package/dist/ai/card.md +42 -215
  84. package/dist/ai/charts.md +93 -0
  85. package/dist/ai/checkbox.md +32 -135
  86. package/dist/ai/chips.md +73 -383
  87. package/dist/ai/code-highlight.md +33 -226
  88. package/dist/ai/connectivity.md +36 -0
  89. package/dist/ai/content-drawer.md +65 -232
  90. package/dist/ai/date-range-inline.md +40 -258
  91. package/dist/ai/date-range.md +43 -198
  92. package/dist/ai/delay.md +31 -139
  93. package/dist/ai/details.md +48 -453
  94. package/dist/ai/dialog.md +55 -164
  95. package/dist/ai/directives.md +258 -405
  96. package/dist/ai/discovery.md +67 -0
  97. package/dist/ai/divider.md +15 -137
  98. package/dist/ai/dropdown.md +44 -235
  99. package/dist/ai/expand.md +63 -0
  100. package/dist/ai/extra.md +59 -0
  101. package/dist/ai/float.md +14 -0
  102. package/dist/ai/form.md +41 -137
  103. package/dist/ai/icons.md +31 -235
  104. package/dist/ai/iframe.md +44 -0
  105. package/dist/ai/input.md +50 -210
  106. package/dist/ai/json.md +33 -0
  107. package/dist/ai/layout.md +45 -169
  108. package/dist/ai/lightbox.md +25 -370
  109. package/dist/ai/list.md +51 -130
  110. package/dist/ai/mailbox.md +80 -508
  111. package/dist/ai/map.md +47 -226
  112. package/dist/ai/menu.md +25 -134
  113. package/dist/ai/mixins.md +201 -0
  114. package/dist/ai/nav-drawer.md +30 -184
  115. package/dist/ai/navigation-bar.md +27 -184
  116. package/dist/ai/navigation-rail.md +62 -630
  117. package/dist/ai/notification.md +49 -183
  118. package/dist/ai/option.md +30 -160
  119. package/dist/ai/page.md +42 -0
  120. package/dist/ai/progress.md +26 -65
  121. package/dist/ai/qr-scanner.md +51 -0
  122. package/dist/ai/radio-group.md +45 -189
  123. package/dist/ai/range.md +47 -0
  124. package/dist/ai/rxjs-utils.md +60 -0
  125. package/dist/ai/select.md +49 -209
  126. package/dist/ai/sheet.md +74 -506
  127. package/dist/ai/slider.md +30 -214
  128. package/dist/ai/steps.md +30 -392
  129. package/dist/ai/store.md +173 -251
  130. package/dist/ai/surface.md +58 -245
  131. package/dist/ai/table.md +56 -330
  132. package/dist/ai/tabs.md +31 -176
  133. package/dist/ai/teleport.md +35 -177
  134. package/dist/ai/textarea.md +48 -232
  135. package/dist/ai/theme-button.md +16 -163
  136. package/dist/ai/theme.md +40 -1089
  137. package/dist/ai/tooltip.md +35 -146
  138. package/dist/ai/tree.md +45 -271
  139. package/dist/ai/typewriter.md +28 -317
  140. package/dist/ai/typography.md +43 -296
  141. package/dist/ai/utils.md +95 -0
  142. package/dist/ai/window.md +67 -0
  143. package/dist/animation-BK-8BwY8.js +173 -0
  144. package/dist/animation-BK-8BwY8.js.map +1 -0
  145. package/dist/animation-CO_Csq84.cjs +16 -0
  146. package/dist/animation-CO_Csq84.cjs.map +1 -0
  147. package/dist/area-CC8fUnra.js +590 -0
  148. package/dist/area-CC8fUnra.js.map +1 -0
  149. package/dist/area-wnWUAHEn.cjs +12 -0
  150. package/dist/area-wnWUAHEn.cjs.map +1 -0
  151. package/dist/area.cjs +1 -2
  152. package/dist/area.js +2 -29
  153. package/dist/audio-DtYYgzYD.cjs +1 -0
  154. package/dist/audio-DtYYgzYD.cjs.map +1 -0
  155. package/dist/audio-kz8UgPTO.js +335 -0
  156. package/dist/audio-kz8UgPTO.js.map +1 -0
  157. package/dist/audio.cjs +1 -2
  158. package/dist/audio.js +3 -9
  159. package/dist/autocomplete-B2Z3WK_7.cjs +111 -0
  160. package/dist/autocomplete-B2Z3WK_7.cjs.map +1 -0
  161. package/dist/autocomplete-CJ7YgtKN.js +378 -0
  162. package/dist/autocomplete-CJ7YgtKN.js.map +1 -0
  163. package/dist/autocomplete.cjs +1 -2
  164. package/dist/autocomplete.js +1 -2
  165. package/dist/badge.cjs +1 -2
  166. package/dist/badge.js +2 -6
  167. package/dist/boat-B57_4TzJ.cjs +80 -0
  168. package/dist/boat-B57_4TzJ.cjs.map +1 -0
  169. package/dist/boat-C9eU6NO-.js +347 -0
  170. package/dist/boat-C9eU6NO-.js.map +1 -0
  171. package/dist/boat.cjs +1 -2
  172. package/dist/boat.js +2 -5
  173. package/dist/busy--6oimtop.cjs +134 -0
  174. package/dist/busy--6oimtop.cjs.map +1 -0
  175. package/dist/busy-CGZXy0h-.js +167 -0
  176. package/dist/busy-CGZXy0h-.js.map +1 -0
  177. package/dist/busy.cjs +1 -2
  178. package/dist/busy.js +1 -2
  179. package/dist/button.cjs +113 -2
  180. package/dist/button.cjs.map +1 -1
  181. package/dist/button.js +398 -5
  182. package/dist/button.js.map +1 -1
  183. package/dist/card-BGJ0Hb1O.cjs +177 -0
  184. package/dist/card-BGJ0Hb1O.cjs.map +1 -0
  185. package/dist/card-C-ee-l5O.js +284 -0
  186. package/dist/card-C-ee-l5O.js.map +1 -0
  187. package/dist/card.cjs +1 -2
  188. package/dist/card.js +1 -2
  189. package/dist/charts.cjs +112 -2
  190. package/dist/charts.cjs.map +1 -1
  191. package/dist/charts.js +368 -8
  192. package/dist/charts.js.map +1 -1
  193. package/dist/checkbox-DuYaKoDZ.cjs +39 -0
  194. package/dist/checkbox-DuYaKoDZ.cjs.map +1 -0
  195. package/dist/checkbox-FRcorDrD.js +610 -0
  196. package/dist/checkbox-FRcorDrD.js.map +1 -0
  197. package/dist/checkbox.cjs +1 -2
  198. package/dist/checkbox.js +2 -5
  199. package/dist/chips-BpA0A-qr.cjs +253 -0
  200. package/dist/chips-BpA0A-qr.cjs.map +1 -0
  201. package/dist/chips-CyzNbKJD.js +645 -0
  202. package/dist/chips-CyzNbKJD.js.map +1 -0
  203. package/dist/chips.cjs +1 -2
  204. package/dist/chips.js +3 -10
  205. package/dist/chunk-BCfY8kxB.cjs +1 -0
  206. package/dist/chunk-C_1VqBVD.js +11 -0
  207. package/dist/code-highlight-C7O9ltXm.js +290 -0
  208. package/dist/code-highlight-C7O9ltXm.js.map +1 -0
  209. package/dist/code-highlight-DsBdSQBG.cjs +190 -0
  210. package/dist/code-highlight-DsBdSQBG.cjs.map +1 -0
  211. package/dist/code-highlight.cjs +1 -2
  212. package/dist/code-highlight.js +2 -7
  213. package/dist/components-CkMvOiTR.js +730 -0
  214. package/dist/components-CkMvOiTR.js.map +1 -0
  215. package/dist/components-dDI3xeIf.cjs +73 -0
  216. package/dist/components-dDI3xeIf.cjs.map +1 -0
  217. package/dist/components.cjs +1 -2
  218. package/dist/components.js +2 -5
  219. package/dist/connectivity.cjs +59 -0
  220. package/dist/connectivity.cjs.map +1 -0
  221. package/dist/connectivity.js +86 -0
  222. package/dist/connectivity.js.map +1 -0
  223. package/dist/content-drawer.cjs +1 -2
  224. package/dist/content-drawer.js +2 -13
  225. package/dist/cursor-glow-Ah7VXSj7.js +46 -0
  226. package/dist/cursor-glow-Ah7VXSj7.js.map +1 -0
  227. package/dist/cursor-glow-DtSy_PJd.cjs +1 -0
  228. package/dist/cursor-glow-DtSy_PJd.cjs.map +1 -0
  229. package/dist/date-range-70zhLUKE.cjs +131 -0
  230. package/dist/date-range-70zhLUKE.cjs.map +1 -0
  231. package/dist/date-range-BrN_Bs6_.js +946 -0
  232. package/dist/date-range-BrN_Bs6_.js.map +1 -0
  233. package/dist/date-range-inline-CPzD-tIv.cjs +43 -0
  234. package/dist/date-range-inline-CPzD-tIv.cjs.map +1 -0
  235. package/dist/date-range-inline-Cp294DxR.js +267 -0
  236. package/dist/date-range-inline-Cp294DxR.js.map +1 -0
  237. package/dist/date-range-inline.cjs +1 -2
  238. package/dist/date-range-inline.js +2 -5
  239. package/dist/date-range.cjs +1 -2
  240. package/dist/date-range.js +2 -6
  241. package/dist/delay-COcAkBqB.cjs +9 -0
  242. package/dist/delay-COcAkBqB.cjs.map +1 -0
  243. package/dist/delay-IV0Swce2.js +346 -0
  244. package/dist/delay-IV0Swce2.js.map +1 -0
  245. package/dist/delay.cjs +1 -2
  246. package/dist/delay.js +2 -6
  247. package/dist/details-CuKmr3Qw.js +293 -0
  248. package/dist/details-CuKmr3Qw.js.map +1 -0
  249. package/dist/details-DgWkPqmt.cjs +168 -0
  250. package/dist/details-DgWkPqmt.cjs.map +1 -0
  251. package/dist/details.cjs +1 -2
  252. package/dist/details.js +2 -5
  253. package/dist/dialog-service-NZEvyEK-.js +193 -0
  254. package/dist/dialog-service-NZEvyEK-.js.map +1 -0
  255. package/dist/dialog-service-VnW4gkmE.cjs +1 -0
  256. package/dist/dialog-service-VnW4gkmE.cjs.map +1 -0
  257. package/dist/dialog.cjs +82 -2
  258. package/dist/dialog.cjs.map +1 -1
  259. package/dist/dialog.js +396 -9
  260. package/dist/dialog.js.map +1 -1
  261. package/dist/directives.cjs +108 -2
  262. package/dist/directives.cjs.map +1 -1
  263. package/dist/directives.js +1362 -14
  264. package/dist/directives.js.map +1 -1
  265. package/dist/discovery.cjs +1 -2
  266. package/dist/discovery.cjs.map +1 -1
  267. package/dist/discovery.js +61 -6
  268. package/dist/discovery.js.map +1 -1
  269. package/dist/divider-BWoUbfgZ.js +87 -0
  270. package/dist/divider-BWoUbfgZ.js.map +1 -0
  271. package/dist/divider-BghtrMbn.cjs +57 -0
  272. package/dist/divider-BghtrMbn.cjs.map +1 -0
  273. package/dist/divider.cjs +1 -2
  274. package/dist/divider.js +1 -2
  275. package/dist/dropdown.cjs +57 -2
  276. package/dist/dropdown.cjs.map +1 -1
  277. package/dist/dropdown.js +160 -5
  278. package/dist/dropdown.js.map +1 -1
  279. package/dist/expand-CJU9m4ga.js +336 -0
  280. package/dist/expand-CJU9m4ga.js.map +1 -0
  281. package/dist/expand-XyDE5SsO.cjs +141 -0
  282. package/dist/expand-XyDE5SsO.cjs.map +1 -0
  283. package/dist/expand.cjs +1 -0
  284. package/dist/expand.js +2 -0
  285. package/dist/extra-BxXFmW1w.js +3435 -0
  286. package/dist/extra-BxXFmW1w.js.map +1 -0
  287. package/dist/extra-CsrRKKqE.cjs +31 -0
  288. package/dist/extra-CsrRKKqE.cjs.map +1 -0
  289. package/dist/extra.cjs +1 -2
  290. package/dist/extra.js +2 -6
  291. package/dist/float-BD86t_NU.js +5 -0
  292. package/dist/float-BD86t_NU.js.map +1 -0
  293. package/dist/float-DBv1FINW.cjs +1 -0
  294. package/dist/float-DBv1FINW.cjs.map +1 -0
  295. package/dist/float.cjs +1 -0
  296. package/dist/float.js +2 -0
  297. package/dist/flow-Bbwn6dRN.cjs +1 -0
  298. package/dist/flow-Bbwn6dRN.cjs.map +1 -0
  299. package/dist/flow-CUj0fDT_.js +386 -0
  300. package/dist/flow-CUj0fDT_.js.map +1 -0
  301. package/dist/form-Cp5-I_ZV.js +270 -0
  302. package/dist/form-Cp5-I_ZV.js.map +1 -0
  303. package/dist/form-D0bIeDWT.cjs +1 -0
  304. package/dist/form-D0bIeDWT.cjs.map +1 -0
  305. package/dist/form.cjs +1 -2
  306. package/dist/form.js +1 -2
  307. package/dist/hashContent-DYM21p6t.js +6 -0
  308. package/dist/hashContent-DYM21p6t.js.map +1 -0
  309. package/dist/hashContent-DaeGmY-p.cjs +1 -0
  310. package/dist/hashContent-DaeGmY-p.cjs.map +1 -0
  311. package/dist/icons-BpU0_l92.js +161 -0
  312. package/dist/icons-BpU0_l92.js.map +1 -0
  313. package/dist/icons-D8w_20mO.cjs +52 -0
  314. package/dist/icons-D8w_20mO.cjs.map +1 -0
  315. package/dist/icons.cjs +1 -2
  316. package/dist/icons.js +1 -2
  317. package/dist/iframe-BjwxA2Pg.cjs +24 -0
  318. package/dist/iframe-BjwxA2Pg.cjs.map +1 -0
  319. package/dist/iframe-tY1GY5g1.js +44 -0
  320. package/dist/iframe-tY1GY5g1.js.map +1 -0
  321. package/dist/iframe.cjs +1 -0
  322. package/dist/iframe.js +2 -0
  323. package/dist/index.cjs +1 -2
  324. package/dist/index.js +69 -285
  325. package/dist/input-BnfTpRN9.js +364 -0
  326. package/dist/input-BnfTpRN9.js.map +1 -0
  327. package/dist/input-BwxwognS.cjs +51 -0
  328. package/dist/input-BwxwognS.cjs.map +1 -0
  329. package/dist/input-chip-CkM2aYmO.js +301 -0
  330. package/dist/input-chip-CkM2aYmO.js.map +1 -0
  331. package/dist/input-chip-MjOwX5EY.cjs +146 -0
  332. package/dist/input-chip-MjOwX5EY.cjs.map +1 -0
  333. package/dist/input.cjs +1 -2
  334. package/dist/input.js +2 -6
  335. package/dist/intersection-BPLpqYEd.js +12 -0
  336. package/dist/intersection-BPLpqYEd.js.map +1 -0
  337. package/dist/intersection-CZpaIHeT.cjs +1 -0
  338. package/dist/intersection-CZpaIHeT.cjs.map +1 -0
  339. package/dist/json.cjs +11 -2
  340. package/dist/json.cjs.map +1 -1
  341. package/dist/json.js +40 -4
  342. package/dist/json.js.map +1 -1
  343. package/dist/layout-4C-6_cre.cjs +1 -0
  344. package/dist/layout-4C-6_cre.cjs.map +1 -0
  345. package/dist/layout-BV0EeyUS.cjs +17 -0
  346. package/dist/layout-BV0EeyUS.cjs.map +1 -0
  347. package/dist/layout-CJSlZlFL.js +267 -0
  348. package/dist/layout-CJSlZlFL.js.map +1 -0
  349. package/dist/layout-yxSlLybo.js +94 -0
  350. package/dist/layout-yxSlLybo.js.map +1 -0
  351. package/dist/layout.cjs +1 -2
  352. package/dist/layout.js +3 -9
  353. package/dist/lightbox-CpNMZHZW.cjs +202 -0
  354. package/dist/lightbox-CpNMZHZW.cjs.map +1 -0
  355. package/dist/lightbox-groqGmJH.js +678 -0
  356. package/dist/lightbox-groqGmJH.js.map +1 -0
  357. package/dist/lightbox.cjs +1 -2
  358. package/dist/lightbox.js +2 -8
  359. package/dist/list-CyHd0Zc2.cjs +40 -0
  360. package/dist/list-CyHd0Zc2.cjs.map +1 -0
  361. package/dist/list-DzkqT_r-.js +105 -0
  362. package/dist/list-DzkqT_r-.js.map +1 -0
  363. package/dist/list.cjs +1 -2
  364. package/dist/list.js +2 -7
  365. package/dist/litElement.mixin-BG6_-nYX.cjs +1 -0
  366. package/dist/litElement.mixin-BG6_-nYX.cjs.map +1 -0
  367. package/dist/litElement.mixin-Dm-4L8zL.js +12 -0
  368. package/dist/litElement.mixin-Dm-4L8zL.js.map +1 -0
  369. package/dist/magnetic-BZGFxAWG.js +47 -0
  370. package/dist/magnetic-BZGFxAWG.js.map +1 -0
  371. package/dist/magnetic-Dux4QwO4.cjs +1 -0
  372. package/dist/magnetic-Dux4QwO4.cjs.map +1 -0
  373. package/dist/mailbox-BcqnXYVP.js +1584 -0
  374. package/dist/mailbox-BcqnXYVP.js.map +1 -0
  375. package/dist/mailbox-C5eYTd7p.cjs +1142 -0
  376. package/dist/mailbox-C5eYTd7p.cjs.map +1 -0
  377. package/dist/mailbox.cjs +1 -2
  378. package/dist/mailbox.js +2 -9
  379. package/dist/map-BncheFt5.cjs +80 -0
  380. package/dist/map-BncheFt5.cjs.map +1 -0
  381. package/dist/map-C0o1PgLE.js +205 -0
  382. package/dist/map-C0o1PgLE.js.map +1 -0
  383. package/dist/map.cjs +1 -2
  384. package/dist/map.js +2 -5
  385. package/dist/menu-uwqlQbLd.js +51 -0
  386. package/dist/menu-uwqlQbLd.js.map +1 -0
  387. package/dist/menu-yXzwJZFf.cjs +23 -0
  388. package/dist/menu-yXzwJZFf.cjs.map +1 -0
  389. package/dist/menu.cjs +1 -2
  390. package/dist/menu.js +1 -2
  391. package/dist/mixins.cjs +1 -2
  392. package/dist/mixins.cjs.map +1 -1
  393. package/dist/mixins.js +59 -12
  394. package/dist/mixins.js.map +1 -1
  395. package/dist/nav-drawer.cjs +1 -2
  396. package/dist/nav-drawer.js +2 -12
  397. package/dist/navigation-bar.cjs +1 -2
  398. package/dist/navigation-bar.js +2 -6
  399. package/dist/navigation-rail.cjs +71 -2
  400. package/dist/navigation-rail.cjs.map +1 -1
  401. package/dist/navigation-rail.js +363 -5
  402. package/dist/navigation-rail.js.map +1 -1
  403. package/dist/notification-BjwTfLAl.cjs +23 -0
  404. package/dist/notification-BjwTfLAl.cjs.map +1 -0
  405. package/dist/notification-DzYT4deA.js +304 -0
  406. package/dist/notification-DzYT4deA.js.map +1 -0
  407. package/dist/notification.cjs +1 -2
  408. package/dist/notification.js +2 -9
  409. package/dist/option-BJsD3u2D.cjs +43 -0
  410. package/dist/option-BJsD3u2D.cjs.map +1 -0
  411. package/dist/option-JFHxgiYl.js +97 -0
  412. package/dist/option-JFHxgiYl.js.map +1 -0
  413. package/dist/option.cjs +1 -2
  414. package/dist/option.js +1 -2
  415. package/dist/overlay-stack-DQey9Qph.cjs +1 -0
  416. package/dist/overlay-stack-DQey9Qph.cjs.map +1 -0
  417. package/dist/overlay-stack-DT1SdaGW.js +39 -0
  418. package/dist/overlay-stack-DT1SdaGW.js.map +1 -0
  419. package/dist/page.cjs +20 -2
  420. package/dist/page.cjs.map +1 -1
  421. package/dist/page.js +71 -4
  422. package/dist/page.js.map +1 -1
  423. package/dist/progress-BUh5WBqx.js +128 -0
  424. package/dist/progress-BUh5WBqx.js.map +1 -0
  425. package/dist/progress-BoRmyGAa.cjs +51 -0
  426. package/dist/progress-BoRmyGAa.cjs.map +1 -0
  427. package/dist/progress.cjs +1 -2
  428. package/dist/progress.js +1 -2
  429. package/dist/provide-8MrDz_qX.js +107 -0
  430. package/dist/provide-8MrDz_qX.js.map +1 -0
  431. package/dist/provide-CDkxgjHb.cjs +1 -0
  432. package/dist/provide-CDkxgjHb.cjs.map +1 -0
  433. package/dist/qr-scanner.cjs +35 -2
  434. package/dist/qr-scanner.cjs.map +1 -1
  435. package/dist/qr-scanner.js +119 -4
  436. package/dist/qr-scanner.js.map +1 -1
  437. package/dist/radio-group-DbOWUPhi.js +105 -0
  438. package/dist/radio-group-DbOWUPhi.js.map +1 -0
  439. package/dist/radio-group-rhrvhB5X.cjs +40 -0
  440. package/dist/radio-group-rhrvhB5X.cjs.map +1 -0
  441. package/dist/radio-group.cjs +1 -2
  442. package/dist/radio-group.js +2 -6
  443. package/dist/range.cjs +62 -0
  444. package/dist/range.cjs.map +1 -0
  445. package/dist/range.js +85 -0
  446. package/dist/range.js.map +1 -0
  447. package/dist/reduced-motion-D-L12p7G.js +7 -0
  448. package/dist/reduced-motion-D-L12p7G.js.map +1 -0
  449. package/dist/reduced-motion-Ds05GPyz.cjs +1 -0
  450. package/dist/reduced-motion-Ds05GPyz.cjs.map +1 -0
  451. package/dist/rxjs-utils-BSjmI9-Q.js +32 -0
  452. package/dist/rxjs-utils-BSjmI9-Q.js.map +1 -0
  453. package/dist/rxjs-utils-DCsfzeap.cjs +1 -0
  454. package/dist/rxjs-utils-DCsfzeap.cjs.map +1 -0
  455. package/dist/rxjs-utils.cjs +1 -2
  456. package/dist/rxjs-utils.js +2 -14
  457. package/dist/scroll-BE9W9PF2.cjs +26 -0
  458. package/dist/scroll-BE9W9PF2.cjs.map +1 -0
  459. package/dist/scroll-qGks1R0k.js +112 -0
  460. package/dist/scroll-qGks1R0k.js.map +1 -0
  461. package/dist/search-C4dFHYbX.js +91 -0
  462. package/dist/search-C4dFHYbX.js.map +1 -0
  463. package/dist/search-Ds8tt7Et.cjs +1 -0
  464. package/dist/search-Ds8tt7Et.cjs.map +1 -0
  465. package/dist/select-D9sgBRjU.js +305 -0
  466. package/dist/select-D9sgBRjU.js.map +1 -0
  467. package/dist/select-DXU2kzg4.cjs +56 -0
  468. package/dist/select-DXU2kzg4.cjs.map +1 -0
  469. package/dist/select.cjs +1 -2
  470. package/dist/select.js +2 -5
  471. package/dist/sheet-CIxCCJ3H.js +168 -0
  472. package/dist/sheet-CIxCCJ3H.js.map +1 -0
  473. package/dist/sheet-CeX6BbNp.cjs +35 -0
  474. package/dist/sheet-CeX6BbNp.cjs.map +1 -0
  475. package/dist/sheet.cjs +1 -2
  476. package/dist/sheet.js +3 -7
  477. package/dist/sheet.service-CAB7weBc.js +86 -0
  478. package/dist/sheet.service-CAB7weBc.js.map +1 -0
  479. package/dist/sheet.service-DPAp7E3x.cjs +1 -0
  480. package/dist/sheet.service-DPAp7E3x.cjs.map +1 -0
  481. package/dist/slider.cjs +82 -2
  482. package/dist/slider.cjs.map +1 -1
  483. package/dist/slider.js +143 -5
  484. package/dist/slider.js.map +1 -1
  485. package/dist/sound.service-Bu3EQLv2.cjs +1 -0
  486. package/dist/sound.service-Bu3EQLv2.cjs.map +1 -0
  487. package/dist/sound.service-m3BrSfuH.js +2353 -0
  488. package/dist/sound.service-m3BrSfuH.js.map +1 -0
  489. package/dist/src-CbO5kJ2O.js +1244 -0
  490. package/dist/src-CbO5kJ2O.js.map +1 -0
  491. package/dist/src-SraDxEeg.cjs +269 -0
  492. package/dist/src-SraDxEeg.cjs.map +1 -0
  493. package/dist/steps.cjs +70 -2
  494. package/dist/steps.cjs.map +1 -1
  495. package/dist/steps.js +178 -7
  496. package/dist/steps.js.map +1 -1
  497. package/dist/store-CorvD3bT.cjs +1 -0
  498. package/dist/store-CorvD3bT.cjs.map +1 -0
  499. package/dist/store-DYqDLAvT.js +1654 -0
  500. package/dist/store-DYqDLAvT.js.map +1 -0
  501. package/dist/store.cjs +1 -2
  502. package/dist/store.js +2 -47
  503. package/dist/surface-DuH0pm2v.cjs +7 -0
  504. package/dist/surface-DuH0pm2v.cjs.map +1 -0
  505. package/dist/surface-eN_Jy2MJ.js +21 -0
  506. package/dist/surface-eN_Jy2MJ.js.map +1 -0
  507. package/dist/surface.cjs +1 -2
  508. package/dist/surface.js +2 -6
  509. package/dist/surface.mixin-CIXgN6iw.cjs +297 -0
  510. package/dist/surface.mixin-CIXgN6iw.cjs.map +1 -0
  511. package/dist/surface.mixin-D9jv1sKG.js +320 -0
  512. package/dist/surface.mixin-D9jv1sKG.js.map +1 -0
  513. package/dist/table-C9rRQJEB.cjs +63 -0
  514. package/dist/table-C9rRQJEB.cjs.map +1 -0
  515. package/dist/table-Dg_tUGB_.js +631 -0
  516. package/dist/table-Dg_tUGB_.js.map +1 -0
  517. package/dist/table.cjs +1 -2
  518. package/dist/table.js +2 -6
  519. package/dist/tabs-BbFC9omR.js +125 -0
  520. package/dist/tabs-BbFC9omR.js.map +1 -0
  521. package/dist/tabs-soTL-x4G.cjs +31 -0
  522. package/dist/tabs-soTL-x4G.cjs.map +1 -0
  523. package/dist/tabs.cjs +1 -2
  524. package/dist/tabs.js +1 -2
  525. package/dist/tailwind.mixin-BIVhjNvD.js +225 -0
  526. package/dist/tailwind.mixin-BIVhjNvD.js.map +1 -0
  527. package/dist/tailwind.mixin-DSuEu-y3.cjs +2 -0
  528. package/dist/tailwind.mixin-DSuEu-y3.cjs.map +1 -0
  529. package/dist/teleport.cjs +1 -2
  530. package/dist/teleport.js +2 -8
  531. package/dist/textarea-DaRUJ0ri.cjs +35 -0
  532. package/dist/textarea-DaRUJ0ri.cjs.map +1 -0
  533. package/dist/textarea-hChvHbNM.js +195 -0
  534. package/dist/textarea-hChvHbNM.js.map +1 -0
  535. package/dist/textarea.cjs +1 -2
  536. package/dist/textarea.js +1 -2
  537. package/dist/theme-B0M8Hlyo.js +4121 -0
  538. package/dist/theme-B0M8Hlyo.js.map +1 -0
  539. package/dist/theme-ZYH2MqX9.cjs +181 -0
  540. package/dist/theme-ZYH2MqX9.cjs.map +1 -0
  541. package/dist/theme-button-BtlX_Zgd.js +19 -0
  542. package/dist/theme-button-BtlX_Zgd.js.map +1 -0
  543. package/dist/theme-button-Dvqg-rE_.cjs +8 -0
  544. package/dist/theme-button-Dvqg-rE_.cjs.map +1 -0
  545. package/dist/theme-button.cjs +1 -2
  546. package/dist/theme-button.js +1 -2
  547. package/dist/theme.cjs +1 -2
  548. package/dist/theme.events-Cv7N4Toe.js +2 -0
  549. package/dist/theme.events-Cv7N4Toe.js.map +1 -0
  550. package/dist/theme.events-DM4H5F2d.cjs +1 -0
  551. package/dist/theme.events-DM4H5F2d.cjs.map +1 -0
  552. package/dist/theme.interface-CXloMUCw.js +276 -0
  553. package/dist/theme.interface-CXloMUCw.js.map +1 -0
  554. package/dist/theme.interface-Da23QAYb.cjs +1 -0
  555. package/dist/theme.interface-Da23QAYb.cjs.map +1 -0
  556. package/dist/theme.js +6 -21
  557. package/dist/theme.service-C_tjlqgy.cjs +1 -0
  558. package/dist/theme.service-C_tjlqgy.cjs.map +1 -0
  559. package/dist/theme.service-D9lEas89.js +108 -0
  560. package/dist/theme.service-D9lEas89.js.map +1 -0
  561. package/dist/tooltip.cjs +6 -2
  562. package/dist/tooltip.cjs.map +1 -1
  563. package/dist/tooltip.js +200 -5
  564. package/dist/tooltip.js.map +1 -1
  565. package/dist/tree.cjs +26 -2
  566. package/dist/tree.cjs.map +1 -1
  567. package/dist/tree.js +64 -4
  568. package/dist/tree.js.map +1 -1
  569. package/dist/tslib.es6-D7BIeDVB.cjs +1 -0
  570. package/dist/tslib.es6-D7BIeDVB.cjs.map +1 -0
  571. package/dist/tslib.es6-ErZEp3OO.js +7 -0
  572. package/dist/tslib.es6-ErZEp3OO.js.map +1 -0
  573. package/dist/types.cjs +1 -2
  574. package/dist/types.cjs.map +1 -1
  575. package/dist/types.js +4 -5
  576. package/dist/types.js.map +1 -1
  577. package/dist/typewriter-CCel8Nta.js +700 -0
  578. package/dist/typewriter-CCel8Nta.js.map +1 -0
  579. package/dist/typewriter-Cf9f2bdx.cjs +123 -0
  580. package/dist/typewriter-Cf9f2bdx.cjs.map +1 -0
  581. package/dist/typewriter.cjs +1 -2
  582. package/dist/typewriter.js +2 -5
  583. package/dist/typography.cjs +282 -2
  584. package/dist/typography.cjs.map +1 -1
  585. package/dist/typography.js +353 -4
  586. package/dist/typography.js.map +1 -1
  587. package/dist/utils-BcaKtQuA.cjs +1 -0
  588. package/dist/utils-BcaKtQuA.cjs.map +1 -0
  589. package/dist/utils-CoU7M2YS.js +259 -0
  590. package/dist/utils-CoU7M2YS.js.map +1 -0
  591. package/dist/utils.cjs +1 -2
  592. package/dist/utils.js +6 -9
  593. package/dist/window-B9_14c12.cjs +59 -0
  594. package/dist/window-B9_14c12.cjs.map +1 -0
  595. package/dist/window-CbgdwOZD.js +548 -0
  596. package/dist/window-CbgdwOZD.js.map +1 -0
  597. package/dist/window.cjs +1 -0
  598. package/dist/window.js +2 -0
  599. package/mixins/baseElement.ts +118 -1
  600. package/mixins/discovery.service.ts +162 -1
  601. package/mixins/formField.mixin.ts +13 -8
  602. package/mixins/index.ts +2 -0
  603. package/mixins/surface.mixin.ts +93 -0
  604. package/mixins/tailwind.css +331 -14
  605. package/package.json +32 -28
  606. package/src/CLAUDE.md +428 -0
  607. package/src/area/.excalidraw +357 -0
  608. package/src/area/area.component.ts +449 -0
  609. package/src/area/area.service.test.ts +1007 -0
  610. package/src/area/area.service.ts +748 -0
  611. package/src/area/ecrypt.ts +7 -0
  612. package/src/area/index.ts +7 -0
  613. package/src/area/lazy.ts +83 -0
  614. package/src/area/readme.md +338 -0
  615. package/src/area/route.component.ts +79 -0
  616. package/src/area/router-guide.md +360 -0
  617. package/src/area/router.types.ts +101 -0
  618. package/src/area/utils.ts +354 -0
  619. package/src/audio/emotional-sounds.ts +940 -0
  620. package/src/audio/index.ts +53 -0
  621. package/src/audio/sound.service.ts +1079 -0
  622. package/src/autocomplete/README.md +485 -0
  623. package/src/autocomplete/autocomplete.scss +24 -0
  624. package/src/autocomplete/autocomplete.ts +733 -0
  625. package/src/autocomplete/index.ts +1 -0
  626. package/src/avatar.ts +164 -0
  627. package/src/badge/badge.ts +286 -0
  628. package/src/badge/index.ts +1 -0
  629. package/src/boat/boat.ts +664 -0
  630. package/src/boat/index.ts +1 -0
  631. package/src/busy/busy.ts +39 -0
  632. package/src/busy/index.ts +2 -0
  633. package/src/busy/spinner.ts +165 -0
  634. package/src/button/button.ts +382 -0
  635. package/src/button/icon-button.ts +287 -0
  636. package/src/button/index.ts +2 -0
  637. package/src/card/actions.ts +28 -0
  638. package/src/card/card.ts +319 -0
  639. package/src/card/content.ts +24 -0
  640. package/src/card/index.ts +4 -0
  641. package/src/card/media.ts +77 -0
  642. package/src/charts/area-chart.ts +495 -0
  643. package/src/charts/index.ts +4 -0
  644. package/src/charts/pills.ts +350 -0
  645. package/src/charts/types.ts +66 -0
  646. package/src/charts/utils.ts +65 -0
  647. package/src/checkbox/checkbox.ts +122 -0
  648. package/src/checkbox/index.ts +1 -0
  649. package/src/chips/assist-chip.ts +261 -0
  650. package/src/chips/chips.ts +259 -0
  651. package/src/chips/filter-chip.ts +255 -0
  652. package/src/chips/index.ts +5 -0
  653. package/src/chips/input-chip.ts +408 -0
  654. package/src/chips/suggestion-chip.ts +266 -0
  655. package/src/code-highlight/code-highlight.ts +344 -0
  656. package/src/code-highlight/code-preview.ts +123 -0
  657. package/src/code-highlight/index.ts +3 -0
  658. package/src/components/form-elements/index.ts +1 -0
  659. package/src/components/form-elements/payment-card-form.ts +331 -0
  660. package/src/components/index.ts +1 -0
  661. package/src/connectivity/connectivity-status.ts +153 -0
  662. package/src/connectivity/index.ts +1 -0
  663. package/src/content-drawer/context.ts +13 -0
  664. package/src/content-drawer/drawer.service.ts +148 -0
  665. package/src/content-drawer/drawer.ts +183 -0
  666. package/src/content-drawer/index.ts +5 -0
  667. package/src/content-drawer/main.ts +83 -0
  668. package/src/content-drawer/readme.md +709 -0
  669. package/src/content-drawer/sheet.ts +180 -0
  670. package/src/date-range/date-range-dialog.ts +230 -0
  671. package/src/date-range/date-range-helpers.ts +135 -0
  672. package/src/date-range/date-range-presets.ts +220 -0
  673. package/src/date-range/date-range.ts +530 -0
  674. package/src/date-range/date-utils.ts +58 -0
  675. package/src/date-range/index.ts +2 -0
  676. package/src/date-range-inline/date-range-inline.ts +522 -0
  677. package/src/date-range-inline/index.ts +2 -0
  678. package/src/delay/delay.ts +136 -0
  679. package/src/delay/index.ts +1 -0
  680. package/src/details/details.ts +429 -0
  681. package/src/details/index.ts +1 -0
  682. package/src/dialog/dialog-base.mixin.ts +565 -0
  683. package/src/dialog/dialog-events.ts +17 -0
  684. package/src/dialog/dialog-service.ts +482 -0
  685. package/src/dialog/dialog.component.ts +394 -0
  686. package/src/dialog/index.ts +3 -0
  687. package/src/directives/animate-text.ts +551 -0
  688. package/src/directives/color.ts +41 -0
  689. package/src/directives/confirm-click.ts +350 -0
  690. package/src/directives/cursor-glow.ts +142 -0
  691. package/src/directives/cycle-text.ts +496 -0
  692. package/src/directives/depth-of-field.ts +83 -0
  693. package/src/directives/drag.ts +370 -0
  694. package/src/directives/gravity.ts +117 -0
  695. package/src/directives/index.ts +19 -0
  696. package/src/directives/intersect.ts +204 -0
  697. package/src/directives/layout.ts +261 -0
  698. package/src/directives/liquid.ts +150 -0
  699. package/src/directives/living-border.ts +166 -0
  700. package/src/directives/long-press.ts +150 -0
  701. package/src/directives/magnetic.ts +133 -0
  702. package/src/directives/nebula.ts +773 -0
  703. package/src/directives/reduced-motion.ts +30 -0
  704. package/src/directives/reveal.ts +158 -0
  705. package/src/directives/ripple.ts +102 -0
  706. package/src/directives/typewriter.ts +349 -0
  707. package/src/discovery/discovery.service.ts +210 -0
  708. package/src/discovery/index.ts +1 -0
  709. package/src/divider/divider.ts +100 -0
  710. package/src/divider/index.ts +1 -0
  711. package/src/dropdown/dropdown-component.ts +264 -0
  712. package/src/dropdown/dropdown-content.ts +108 -0
  713. package/src/dropdown/index.ts +2 -0
  714. package/src/expand/expand-root.component.ts +278 -0
  715. package/src/expand/expand.component.ts +287 -0
  716. package/src/expand/index.ts +2 -0
  717. package/src/extra/countries/countries.data.ts +196 -0
  718. package/src/extra/countries/countries.ts +107 -0
  719. package/src/extra/countries/index.ts +2 -0
  720. package/src/extra/index.ts +2 -0
  721. package/src/extra/timezone/index.ts +2 -0
  722. package/src/extra/timezone/timezone.ts +116 -0
  723. package/src/extra/timezone/timezones.data.ts +2546 -0
  724. package/src/float/float.ts +18 -0
  725. package/src/float/index.ts +1 -0
  726. package/src/form/form-v2.ts +268 -0
  727. package/src/form/form.ts +194 -0
  728. package/src/form/index.ts +2 -0
  729. package/src/icons/icon.ts +293 -0
  730. package/src/icons/index.ts +1 -0
  731. package/src/icons/readme.md +37 -0
  732. package/src/iframe/iframe.ts +98 -0
  733. package/src/iframe/index.ts +1 -0
  734. package/src/index.ts +69 -0
  735. package/src/input/index.ts +8 -0
  736. package/src/input/input.scss +211 -0
  737. package/src/input/input.ts +951 -0
  738. package/src/json/index.ts +1 -0
  739. package/src/json/json.ts +55 -0
  740. package/src/layout/flex/flex.scss +4 -0
  741. package/src/layout/flex/flex.ts +74 -0
  742. package/src/layout/flex/index.ts +1 -0
  743. package/src/layout/grid/.readme +79 -0
  744. package/src/layout/grid/grid.scss +5 -0
  745. package/src/layout/grid/grid.ts +121 -0
  746. package/src/layout/grid/index.ts +1 -0
  747. package/src/layout/index.ts +5 -0
  748. package/src/layout/layout.ts +122 -0
  749. package/src/layout/scroll/index.ts +1 -0
  750. package/src/layout/scroll/scroll.ts +351 -0
  751. package/src/layout/v2/flex.ts +243 -0
  752. package/src/layout/v2/grid.ts +93 -0
  753. package/src/layout/v2/index.ts +1 -0
  754. package/src/lightbox/flip-directive.ts +270 -0
  755. package/src/lightbox/index.ts +4 -0
  756. package/src/lightbox/lightbox-service.ts +378 -0
  757. package/src/lightbox/lightbox.directive.ts +256 -0
  758. package/src/lightbox/lightbox.ts +417 -0
  759. package/src/list/context.ts +3 -0
  760. package/src/list/index.ts +3 -0
  761. package/src/list/list-item.ts +94 -0
  762. package/src/list/list.ts +87 -0
  763. package/src/list/readme.md +62 -0
  764. package/src/mailbox/README.md +131 -0
  765. package/src/mailbox/email-editor.ts +1071 -0
  766. package/src/mailbox/email-layout-selector.ts +58 -0
  767. package/src/mailbox/email-recipients.ts +594 -0
  768. package/src/mailbox/email-template-picker.ts +296 -0
  769. package/src/mailbox/email-viewer.ts +715 -0
  770. package/src/mailbox/index.ts +31 -0
  771. package/src/mailbox/mailbox.ts +363 -0
  772. package/src/mailbox/types.ts +181 -0
  773. package/src/map/index.ts +1 -0
  774. package/src/map/map.ts +483 -0
  775. package/src/menu/index.ts +2 -0
  776. package/src/menu/menu-item.ts +26 -0
  777. package/src/menu/menu.ts +83 -0
  778. package/src/nav-drawer/$navbar.ts +51 -0
  779. package/src/nav-drawer/appbar.ts +26 -0
  780. package/src/nav-drawer/content.ts +32 -0
  781. package/src/nav-drawer/context.ts +6 -0
  782. package/src/nav-drawer/drawer.ts +128 -0
  783. package/src/nav-drawer/index.ts +6 -0
  784. package/src/nav-drawer/navbar.ts +191 -0
  785. package/src/navigation-bar/index.ts +2 -0
  786. package/src/navigation-bar/navigation-bar-item.ts +417 -0
  787. package/src/navigation-bar/navigation-bar.ts +482 -0
  788. package/src/navigation-rail/index.ts +2 -0
  789. package/src/navigation-rail/navigation-rail-item.ts +443 -0
  790. package/src/navigation-rail/navigation-rail.ts +492 -0
  791. package/src/notification/index.ts +6 -0
  792. package/src/notification/notification-service.ts +324 -0
  793. package/src/notification/notification.scss +117 -0
  794. package/src/notification/notification.ts +263 -0
  795. package/src/notification/notify.ts +207 -0
  796. package/src/notification/outlet.ts +16 -0
  797. package/src/option/index.ts +1 -0
  798. package/src/option/option.ts +180 -0
  799. package/src/page/index.ts +1 -0
  800. package/src/page/page.ts +135 -0
  801. package/src/progress/index.ts +1 -0
  802. package/src/progress/progress.ts +143 -0
  803. package/src/qr-scanner/index.ts +1 -0
  804. package/src/qr-scanner/qr-scanner.ts +240 -0
  805. package/src/radio-group/index.ts +2 -0
  806. package/src/radio-group/radio-button.ts +81 -0
  807. package/src/radio-group/radio-group.scss +4 -0
  808. package/src/radio-group/radio-group.ts +110 -0
  809. package/src/radio-group/readme.md +315 -0
  810. package/src/range/index.ts +1 -0
  811. package/src/range/range.ts +102 -0
  812. package/src/rxjs-utils/index.ts +6 -0
  813. package/src/rxjs-utils/mutation-observer.ts +22 -0
  814. package/src/rxjs-utils/waitForElement.ts +33 -0
  815. package/src/rxjs-utils/waitForElementAll.ts +34 -0
  816. package/src/rxjs-utils/waitForElements.ts +40 -0
  817. package/src/rxjs-utils/waitForElementsAll.ts +42 -0
  818. package/src/rxjs-utils/waitUntil.ts +16 -0
  819. package/src/select/README.md +405 -0
  820. package/src/select/index.ts +2 -0
  821. package/src/select/select.ts +766 -0
  822. package/src/sheet/hook.ts +40 -0
  823. package/src/sheet/index.ts +2 -0
  824. package/src/sheet/sheet.service.ts +235 -0
  825. package/src/sheet/sheet.ts +236 -0
  826. package/src/slider/index.ts +2 -0
  827. package/src/slider/slide.ts +107 -0
  828. package/src/slider/slider.ts +164 -0
  829. package/src/steps/index.ts +3 -0
  830. package/src/steps/schmancy-step.ts +213 -0
  831. package/src/steps/schmancy-steps-container.ts +109 -0
  832. package/src/steps/steps.context.ts +23 -0
  833. package/src/store/context-array.ts +358 -0
  834. package/src/store/context-collection.ts +218 -0
  835. package/src/store/context-create.ts +284 -0
  836. package/src/store/context-object.ts +298 -0
  837. package/src/store/filter-directive.ts +614 -0
  838. package/src/store/immer-integration.ts +99 -0
  839. package/src/store/index.ts +10 -0
  840. package/src/store/selector-hook.ts +259 -0
  841. package/src/store/selectors.ts +289 -0
  842. package/src/store/storage-manager.ts +269 -0
  843. package/src/store/store.class.ts +239 -0
  844. package/src/store/types.ts +327 -0
  845. package/src/surface/context.ts +3 -0
  846. package/src/surface/index.ts +1 -0
  847. package/src/surface/surface.styles.ts +334 -0
  848. package/src/surface/surface.ts +59 -0
  849. package/src/table/index.ts +2 -0
  850. package/src/table/row.ts +60 -0
  851. package/src/table/table.ts +266 -0
  852. package/src/tabs/Readme.md +397 -0
  853. package/src/tabs/context.ts +5 -0
  854. package/src/tabs/index.ts +4 -0
  855. package/src/tabs/tab.ts +39 -0
  856. package/src/tabs/tabs-compatibility.ts +20 -0
  857. package/src/tabs/tabs-group.ts +184 -0
  858. package/src/teleport/.excalidraw +2511 -0
  859. package/src/teleport/index.ts +2 -0
  860. package/src/teleport/readme.md +91 -0
  861. package/src/teleport/teleport.component.ts +132 -0
  862. package/src/teleport/teleport.service.ts +139 -0
  863. package/src/teleport/watcher.ts +20 -0
  864. package/src/textarea/index.ts +1 -0
  865. package/src/textarea/textarea.scss +54 -0
  866. package/src/textarea/textarea.ts +432 -0
  867. package/src/theme/context.ts +28 -0
  868. package/src/theme/index.ts +17 -0
  869. package/src/theme/theme-audio-player.ts +470 -0
  870. package/src/theme/theme-controller-boat.ts +49 -0
  871. package/src/theme/theme-controller-example.md +152 -0
  872. package/src/theme/theme-controller.ts +205 -0
  873. package/src/theme/theme.component.ts +305 -0
  874. package/src/theme/theme.events.ts +59 -0
  875. package/src/theme/theme.format.ts +417 -0
  876. package/src/theme/theme.interface.ts +399 -0
  877. package/src/theme/theme.service.ts +520 -0
  878. package/src/theme/theme.style.css +619 -0
  879. package/src/theme-button/index.ts +1 -0
  880. package/src/theme-button/theme-button.ts +35 -0
  881. package/src/tooltip/index.ts +2 -0
  882. package/src/tooltip/tooltip.directive.ts +277 -0
  883. package/src/tooltip/tooltip.ts +216 -0
  884. package/src/tree/README.md +59 -0
  885. package/src/tree/index.ts +1 -0
  886. package/src/tree/tree.ts +132 -0
  887. package/src/types/events.ts +5 -0
  888. package/src/types/index.ts +3 -0
  889. package/src/types/mood-audio.types.ts +220 -0
  890. package/src/types/surface.ts +52 -0
  891. package/src/typewriter/IMPROVEMENTS.md +174 -0
  892. package/src/typewriter/QUICK_REFERENCE.md +166 -0
  893. package/src/typewriter/index.ts +1 -0
  894. package/src/typewriter/test-typewriter.html +97 -0
  895. package/src/typewriter/typewriter.ts +376 -0
  896. package/src/typography/index.ts +1 -0
  897. package/src/typography/typography.ts +448 -0
  898. package/src/utils/animation.ts +418 -0
  899. package/src/utils/hashContent.ts +12 -0
  900. package/src/utils/index.ts +6 -0
  901. package/src/utils/intersection.ts +22 -0
  902. package/src/utils/number.ts +529 -0
  903. package/src/utils/overlay-stack.ts +101 -0
  904. package/src/utils/search.ts +322 -0
  905. package/src/vite-env.d.ts +2 -0
  906. package/src/window/index.ts +10 -0
  907. package/src/window/window-manager.ts +204 -0
  908. package/src/window/window-position.ts +136 -0
  909. package/src/window/window-registry.ts +34 -0
  910. package/src/window/window.ts +724 -0
  911. package/types/mixins/baseElement.d.ts +12 -0
  912. package/types/mixins/discovery.service.d.ts +72 -0
  913. package/types/mixins/index.d.ts +2 -0
  914. package/types/mixins/surface.mixin.d.ts +39 -0
  915. package/types/src/area/area.service.d.ts +2 -0
  916. package/types/src/badge/badge.d.ts +1 -1
  917. package/types/src/boat/boat.d.ts +40 -33
  918. package/types/src/button/icon-button.d.ts +10 -0
  919. package/types/src/chips/filter-chip.d.ts +0 -12
  920. package/types/src/connectivity/connectivity-status.d.ts +25 -0
  921. package/types/src/connectivity/index.d.ts +1 -0
  922. package/types/src/content-drawer/drawer.service.d.ts +3 -0
  923. package/types/src/date-range/date-range.d.ts +2 -0
  924. package/types/src/details/details.d.ts +26 -2
  925. package/types/src/dialog/dialog-base.mixin.d.ts +7 -3
  926. package/types/src/dialog/dialog-service.d.ts +27 -1
  927. package/types/src/dialog/dialog.component.d.ts +35 -1
  928. package/types/src/directives/animate-text.d.ts +67 -0
  929. package/types/src/directives/color.d.ts +2 -3
  930. package/types/src/directives/confirm-click.d.ts +38 -0
  931. package/types/src/directives/cursor-glow.d.ts +38 -0
  932. package/types/src/directives/cycle-text.d.ts +44 -0
  933. package/types/src/directives/depth-of-field.d.ts +38 -0
  934. package/types/src/directives/drag.d.ts +8 -8
  935. package/types/src/directives/gravity.d.ts +40 -0
  936. package/types/src/directives/index.d.ts +16 -2
  937. package/types/src/directives/intersect.d.ts +60 -0
  938. package/types/src/directives/layout.d.ts +62 -0
  939. package/types/src/directives/liquid.d.ts +38 -0
  940. package/types/src/directives/living-border.d.ts +39 -0
  941. package/types/src/directives/long-press.d.ts +38 -0
  942. package/types/src/directives/magnetic.d.ts +35 -0
  943. package/types/src/directives/nebula.d.ts +80 -0
  944. package/types/src/directives/reduced-motion.d.ts +2 -0
  945. package/types/src/directives/reveal.d.ts +54 -0
  946. package/types/src/directives/ripple.d.ts +15 -5
  947. package/types/src/directives/typewriter.d.ts +50 -0
  948. package/types/src/discovery/discovery.service.d.ts +72 -0
  949. package/types/src/expand/expand-root.component.d.ts +30 -0
  950. package/types/src/expand/expand.component.d.ts +38 -0
  951. package/types/src/expand/index.d.ts +2 -0
  952. package/types/src/float/float.d.ts +14 -0
  953. package/types/src/float/index.d.ts +1 -0
  954. package/types/src/icons/icon.d.ts +14 -0
  955. package/types/src/iframe/iframe.d.ts +37 -0
  956. package/types/src/iframe/index.d.ts +1 -0
  957. package/types/src/index.d.ts +6 -1
  958. package/types/src/input/index.d.ts +1 -1
  959. package/types/src/layout/scroll/scroll.d.ts +11 -0
  960. package/types/src/lightbox/lightbox.d.ts +1 -0
  961. package/types/src/mailbox/email-recipients.d.ts +2 -2
  962. package/types/src/mailbox/types.d.ts +1 -1
  963. package/types/src/navigation-bar/navigation-bar.d.ts +17 -0
  964. package/types/src/notification/notification.d.ts +1 -0
  965. package/types/src/page/page.d.ts +6 -0
  966. package/types/src/range/index.d.ts +1 -0
  967. package/types/src/range/range.d.ts +25 -0
  968. package/types/src/sheet/sheet.d.ts +0 -1
  969. package/types/src/steps/schmancy-steps-container.d.ts +8 -6
  970. package/types/src/surface/surface.d.ts +4 -27
  971. package/types/src/surface/surface.styles.d.ts +31 -0
  972. package/types/src/tabs/tab.d.ts +1 -0
  973. package/types/src/textarea/textarea.d.ts +3 -2
  974. package/types/src/theme/context.d.ts +2 -282
  975. package/types/src/theme/theme.component.d.ts +9 -1
  976. package/types/src/theme/theme.format.d.ts +1 -1
  977. package/types/src/theme/theme.interface.d.ts +8 -1
  978. package/types/src/theme/theme.service.d.ts +20 -282
  979. package/types/src/types/surface.d.ts +27 -1
  980. package/types/src/typography/typography.d.ts +17 -3
  981. package/types/src/utils/animation.d.ts +254 -0
  982. package/types/src/utils/index.d.ts +2 -0
  983. package/types/src/utils/number.d.ts +18 -2
  984. package/types/src/utils/overlay-stack.d.ts +54 -0
  985. package/types/src/window/index.d.ts +3 -0
  986. package/types/src/window/window-manager.d.ts +49 -0
  987. package/types/src/window/window-position.d.ts +64 -0
  988. package/types/src/window/window-registry.d.ts +28 -0
  989. package/types/src/window/window.d.ts +67 -0
  990. package/ai/animated-text.md +0 -116
  991. package/ai/component-relationships.md +0 -93
  992. package/ai/context.md +0 -572
  993. package/ai/countries.md +0 -271
  994. package/ai/index.md +0 -112
  995. package/ai/navigation-bar-item.md +0 -259
  996. package/ai/payment-card-form.md +0 -242
  997. package/ai/spinner.md +0 -165
  998. package/ai/template.md +0 -144
  999. package/ai/timezone.md +0 -276
  1000. package/dist/_commonjsHelpers-Dw9sPFZy.js +0 -7
  1001. package/dist/_commonjsHelpers-Dw9sPFZy.js.map +0 -1
  1002. package/dist/_commonjsHelpers-k2hpEU-q.cjs +0 -2
  1003. package/dist/_commonjsHelpers-k2hpEU-q.cjs.map +0 -1
  1004. package/dist/ai/animated-text.md +0 -116
  1005. package/dist/ai/component-relationships.md +0 -93
  1006. package/dist/ai/context.md +0 -572
  1007. package/dist/ai/countries.md +0 -271
  1008. package/dist/ai/index.md +0 -112
  1009. package/dist/ai/navigation-bar-item.md +0 -259
  1010. package/dist/ai/payment-card-form.md +0 -242
  1011. package/dist/ai/spinner.md +0 -165
  1012. package/dist/ai/template.md +0 -144
  1013. package/dist/ai/timezone.md +0 -276
  1014. package/dist/animated-text-B3DQRJBy.cjs +0 -37
  1015. package/dist/animated-text-B3DQRJBy.cjs.map +0 -1
  1016. package/dist/animated-text-BAj4-6hE.js +0 -76
  1017. package/dist/animated-text-BAj4-6hE.js.map +0 -1
  1018. package/dist/animated-text.cjs +0 -2
  1019. package/dist/animated-text.cjs.map +0 -1
  1020. package/dist/animated-text.js +0 -2
  1021. package/dist/animated-text.js.map +0 -1
  1022. package/dist/area.cjs.map +0 -1
  1023. package/dist/area.component-CP4DZ0d8.js +0 -330
  1024. package/dist/area.component-CP4DZ0d8.js.map +0 -1
  1025. package/dist/area.component-ChxSLt16.cjs +0 -12
  1026. package/dist/area.component-ChxSLt16.cjs.map +0 -1
  1027. package/dist/area.js.map +0 -1
  1028. package/dist/audio.cjs.map +0 -1
  1029. package/dist/audio.js.map +0 -1
  1030. package/dist/autocomplete-CAaVSg4g.cjs +0 -112
  1031. package/dist/autocomplete-CAaVSg4g.cjs.map +0 -1
  1032. package/dist/autocomplete-CGbACUYd.js +0 -333
  1033. package/dist/autocomplete-CGbACUYd.js.map +0 -1
  1034. package/dist/autocomplete.cjs.map +0 -1
  1035. package/dist/autocomplete.js.map +0 -1
  1036. package/dist/avatar-nWOZXEsW.cjs +0 -273
  1037. package/dist/avatar-nWOZXEsW.cjs.map +0 -1
  1038. package/dist/avatar-rLCF6MSI.js +0 -895
  1039. package/dist/avatar-rLCF6MSI.js.map +0 -1
  1040. package/dist/badge.cjs.map +0 -1
  1041. package/dist/badge.js.map +0 -1
  1042. package/dist/boat-Ckt9v__d.js +0 -301
  1043. package/dist/boat-Ckt9v__d.js.map +0 -1
  1044. package/dist/boat-yNAZ2LLB.cjs +0 -97
  1045. package/dist/boat-yNAZ2LLB.cjs.map +0 -1
  1046. package/dist/boat.cjs.map +0 -1
  1047. package/dist/boat.js.map +0 -1
  1048. package/dist/busy.cjs.map +0 -1
  1049. package/dist/busy.js.map +0 -1
  1050. package/dist/card.cjs.map +0 -1
  1051. package/dist/card.js.map +0 -1
  1052. package/dist/checkbox-BnAlpsJN.cjs +0 -40
  1053. package/dist/checkbox-BnAlpsJN.cjs.map +0 -1
  1054. package/dist/checkbox-D22yfGe3.js +0 -526
  1055. package/dist/checkbox-D22yfGe3.js.map +0 -1
  1056. package/dist/checkbox.cjs.map +0 -1
  1057. package/dist/checkbox.js.map +0 -1
  1058. package/dist/chips.cjs.map +0 -1
  1059. package/dist/chips.js.map +0 -1
  1060. package/dist/code-highlight.cjs.map +0 -1
  1061. package/dist/code-highlight.js.map +0 -1
  1062. package/dist/code-preview-DPlQayFd.js +0 -967
  1063. package/dist/code-preview-DPlQayFd.js.map +0 -1
  1064. package/dist/code-preview-jPnX60FF.cjs +0 -193
  1065. package/dist/code-preview-jPnX60FF.cjs.map +0 -1
  1066. package/dist/components.cjs.map +0 -1
  1067. package/dist/components.js.map +0 -1
  1068. package/dist/consume-5D1qfVWM.js +0 -38
  1069. package/dist/consume-5D1qfVWM.js.map +0 -1
  1070. package/dist/consume-edta5ng5.cjs +0 -2
  1071. package/dist/consume-edta5ng5.cjs.map +0 -1
  1072. package/dist/content-drawer.cjs.map +0 -1
  1073. package/dist/content-drawer.js.map +0 -1
  1074. package/dist/context-create-B_S-sD5B.js +0 -1107
  1075. package/dist/context-create-B_S-sD5B.js.map +0 -1
  1076. package/dist/context-create-DTybDbZp.cjs +0 -2
  1077. package/dist/context-create-DTybDbZp.cjs.map +0 -1
  1078. package/dist/date-range-GFm5NG33.js +0 -639
  1079. package/dist/date-range-GFm5NG33.js.map +0 -1
  1080. package/dist/date-range-inline-CgX2o0FP.cjs +0 -44
  1081. package/dist/date-range-inline-CgX2o0FP.cjs.map +0 -1
  1082. package/dist/date-range-inline-DTQLESAZ.js +0 -197
  1083. package/dist/date-range-inline-DTQLESAZ.js.map +0 -1
  1084. package/dist/date-range-inline.cjs.map +0 -1
  1085. package/dist/date-range-inline.js.map +0 -1
  1086. package/dist/date-range-ug3B9CFT.cjs +0 -119
  1087. package/dist/date-range-ug3B9CFT.cjs.map +0 -1
  1088. package/dist/date-range.cjs.map +0 -1
  1089. package/dist/date-range.js.map +0 -1
  1090. package/dist/delay-CWtBL0VD.cjs +0 -10
  1091. package/dist/delay-CWtBL0VD.cjs.map +0 -1
  1092. package/dist/delay-DEe1CmHc.js +0 -288
  1093. package/dist/delay-DEe1CmHc.js.map +0 -1
  1094. package/dist/delay.cjs.map +0 -1
  1095. package/dist/delay.js.map +0 -1
  1096. package/dist/details-D-LXW23W.js +0 -100
  1097. package/dist/details-D-LXW23W.js.map +0 -1
  1098. package/dist/details-DVke77dU.cjs +0 -55
  1099. package/dist/details-DVke77dU.cjs.map +0 -1
  1100. package/dist/details.cjs.map +0 -1
  1101. package/dist/details.js.map +0 -1
  1102. package/dist/dialog-service-C86xTS8q.cjs +0 -2
  1103. package/dist/dialog-service-C86xTS8q.cjs.map +0 -1
  1104. package/dist/dialog-service-D9E3jLAR.js +0 -118
  1105. package/dist/dialog-service-D9E3jLAR.js.map +0 -1
  1106. package/dist/dialog.component-BM0D-hK9.cjs +0 -48
  1107. package/dist/dialog.component-BM0D-hK9.cjs.map +0 -1
  1108. package/dist/dialog.component-a7FlKhGD.js +0 -145
  1109. package/dist/dialog.component-a7FlKhGD.js.map +0 -1
  1110. package/dist/discovery.service-BbYjU5x8.js +0 -21
  1111. package/dist/discovery.service-BbYjU5x8.js.map +0 -1
  1112. package/dist/discovery.service-BpGCuXPd.cjs +0 -2
  1113. package/dist/discovery.service-BpGCuXPd.cjs.map +0 -1
  1114. package/dist/divider-CzTpxOqt.js +0 -84
  1115. package/dist/divider-CzTpxOqt.js.map +0 -1
  1116. package/dist/divider-D8KStUhN.cjs +0 -58
  1117. package/dist/divider-D8KStUhN.cjs.map +0 -1
  1118. package/dist/divider.cjs.map +0 -1
  1119. package/dist/divider.js.map +0 -1
  1120. package/dist/dropdown-content-CngZN3vv.cjs +0 -58
  1121. package/dist/dropdown-content-CngZN3vv.cjs.map +0 -1
  1122. package/dist/dropdown-content-DCn-g0-f.js +0 -147
  1123. package/dist/dropdown-content-DCn-g0-f.js.map +0 -1
  1124. package/dist/email-recipients-BhntMZMf.cjs +0 -1173
  1125. package/dist/email-recipients-BhntMZMf.cjs.map +0 -1
  1126. package/dist/email-recipients-BzjAKNJ0.js +0 -1733
  1127. package/dist/email-recipients-BzjAKNJ0.js.map +0 -1
  1128. package/dist/emotional-sounds-BRnFhww6.js +0 -234
  1129. package/dist/emotional-sounds-BRnFhww6.js.map +0 -1
  1130. package/dist/emotional-sounds-DVGhmoZf.cjs +0 -2
  1131. package/dist/emotional-sounds-DVGhmoZf.cjs.map +0 -1
  1132. package/dist/extra.cjs.map +0 -1
  1133. package/dist/extra.js.map +0 -1
  1134. package/dist/flex-5dR48zie.js +0 -183
  1135. package/dist/flex-5dR48zie.js.map +0 -1
  1136. package/dist/flex-oHl2EfYB.cjs +0 -18
  1137. package/dist/flex-oHl2EfYB.cjs.map +0 -1
  1138. package/dist/flow-D0e7hGXO.cjs +0 -2
  1139. package/dist/flow-D0e7hGXO.cjs.map +0 -1
  1140. package/dist/flow-DXYqC9OA.js +0 -340
  1141. package/dist/flow-DXYqC9OA.js.map +0 -1
  1142. package/dist/form-BlPiAPt7.cjs +0 -2
  1143. package/dist/form-BlPiAPt7.cjs.map +0 -1
  1144. package/dist/form-BxVM6JTn.js +0 -141
  1145. package/dist/form-BxVM6JTn.js.map +0 -1
  1146. package/dist/form.cjs.map +0 -1
  1147. package/dist/form.js.map +0 -1
  1148. package/dist/formField.mixin-BCGA7Ea3.js +0 -48
  1149. package/dist/formField.mixin-BCGA7Ea3.js.map +0 -1
  1150. package/dist/formField.mixin-BfJMifU9.cjs +0 -2
  1151. package/dist/formField.mixin-BfJMifU9.cjs.map +0 -1
  1152. package/dist/height-CfECBO2j.js +0 -44
  1153. package/dist/height-CfECBO2j.js.map +0 -1
  1154. package/dist/height-Z70qJYJK.cjs +0 -2
  1155. package/dist/height-Z70qJYJK.cjs.map +0 -1
  1156. package/dist/icon-DHEXr3c-.cjs +0 -49
  1157. package/dist/icon-DHEXr3c-.cjs.map +0 -1
  1158. package/dist/icon-DYpLoegR.js +0 -84
  1159. package/dist/icon-DYpLoegR.js.map +0 -1
  1160. package/dist/icon-button-CmZBLHWC.js +0 -164
  1161. package/dist/icon-button-CmZBLHWC.js.map +0 -1
  1162. package/dist/icon-button-IbSX8C98.cjs +0 -70
  1163. package/dist/icon-button-IbSX8C98.cjs.map +0 -1
  1164. package/dist/icons.cjs.map +0 -1
  1165. package/dist/icons.js.map +0 -1
  1166. package/dist/index-CCi1otmh.cjs +0 -2
  1167. package/dist/index-CCi1otmh.cjs.map +0 -1
  1168. package/dist/index-CW6PhEkx.js +0 -17
  1169. package/dist/index-CW6PhEkx.js.map +0 -1
  1170. package/dist/index.cjs.map +0 -1
  1171. package/dist/index.js.map +0 -1
  1172. package/dist/input-BByjYlgl.cjs +0 -51
  1173. package/dist/input-BByjYlgl.cjs.map +0 -1
  1174. package/dist/input-D0cQ9DOY.js +0 -237
  1175. package/dist/input-D0cQ9DOY.js.map +0 -1
  1176. package/dist/input-chip-B5ErXgCB.js +0 -206
  1177. package/dist/input-chip-B5ErXgCB.js.map +0 -1
  1178. package/dist/input-chip-DkWaTciP.cjs +0 -147
  1179. package/dist/input-chip-DkWaTciP.cjs.map +0 -1
  1180. package/dist/input.cjs.map +0 -1
  1181. package/dist/input.js.map +0 -1
  1182. package/dist/intersection-CJxzz8c-.js +0 -15
  1183. package/dist/intersection-CJxzz8c-.js.map +0 -1
  1184. package/dist/intersection-CVvaDv96.cjs +0 -2
  1185. package/dist/intersection-CVvaDv96.cjs.map +0 -1
  1186. package/dist/json-BZVe74np.cjs +0 -12
  1187. package/dist/json-BZVe74np.cjs.map +0 -1
  1188. package/dist/json-PKewOWuJ.js +0 -51
  1189. package/dist/json-PKewOWuJ.js.map +0 -1
  1190. package/dist/layout.cjs.map +0 -1
  1191. package/dist/layout.js.map +0 -1
  1192. package/dist/lightbox-service-D-0JtxB1.cjs +0 -202
  1193. package/dist/lightbox-service-D-0JtxB1.cjs.map +0 -1
  1194. package/dist/lightbox-service-DZMnb1eU.js +0 -458
  1195. package/dist/lightbox-service-DZMnb1eU.js.map +0 -1
  1196. package/dist/lightbox.cjs.map +0 -1
  1197. package/dist/lightbox.js.map +0 -1
  1198. package/dist/list-B_2m7l3g.cjs +0 -17
  1199. package/dist/list-B_2m7l3g.cjs.map +0 -1
  1200. package/dist/list-CW56LV-v.js +0 -69
  1201. package/dist/list-CW56LV-v.js.map +0 -1
  1202. package/dist/list.cjs.map +0 -1
  1203. package/dist/list.js.map +0 -1
  1204. package/dist/litElement.mixin-CrpeGpZ7.cjs +0 -2
  1205. package/dist/litElement.mixin-CrpeGpZ7.cjs.map +0 -1
  1206. package/dist/litElement.mixin-DHZXtvYq.js +0 -15
  1207. package/dist/litElement.mixin-DHZXtvYq.js.map +0 -1
  1208. package/dist/mailbox.cjs.map +0 -1
  1209. package/dist/mailbox.js.map +0 -1
  1210. package/dist/map-2Hl60a0A.js +0 -175
  1211. package/dist/map-2Hl60a0A.js.map +0 -1
  1212. package/dist/map-DyPS9G7M.cjs +0 -81
  1213. package/dist/map-DyPS9G7M.cjs.map +0 -1
  1214. package/dist/map.cjs.map +0 -1
  1215. package/dist/map.js.map +0 -1
  1216. package/dist/media-CS8HpKnK.cjs +0 -152
  1217. package/dist/media-CS8HpKnK.cjs.map +0 -1
  1218. package/dist/media-DtWbcRxL.js +0 -244
  1219. package/dist/media-DtWbcRxL.js.map +0 -1
  1220. package/dist/menu-Caju5-zd.js +0 -60
  1221. package/dist/menu-Caju5-zd.js.map +0 -1
  1222. package/dist/menu-rX5RPAI2.cjs +0 -24
  1223. package/dist/menu-rX5RPAI2.cjs.map +0 -1
  1224. package/dist/menu.cjs.map +0 -1
  1225. package/dist/menu.js.map +0 -1
  1226. package/dist/nav-drawer.cjs.map +0 -1
  1227. package/dist/nav-drawer.js.map +0 -1
  1228. package/dist/navigation-bar.cjs.map +0 -1
  1229. package/dist/navigation-bar.js.map +0 -1
  1230. package/dist/navigation-rail-Ctketq5a.js +0 -256
  1231. package/dist/navigation-rail-Ctketq5a.js.map +0 -1
  1232. package/dist/navigation-rail-DC9_oSIM.cjs +0 -79
  1233. package/dist/navigation-rail-DC9_oSIM.cjs.map +0 -1
  1234. package/dist/notification-service-CUlfXqmj.js +0 -155
  1235. package/dist/notification-service-CUlfXqmj.js.map +0 -1
  1236. package/dist/notification-service-DknbpqTt.cjs +0 -19
  1237. package/dist/notification-service-DknbpqTt.cjs.map +0 -1
  1238. package/dist/notification.cjs.map +0 -1
  1239. package/dist/notification.js.map +0 -1
  1240. package/dist/notify-DJSOWTxv.js +0 -35
  1241. package/dist/notify-DJSOWTxv.js.map +0 -1
  1242. package/dist/notify-DickIEHW.cjs +0 -2
  1243. package/dist/notify-DickIEHW.cjs.map +0 -1
  1244. package/dist/number-B7aCRYnH.cjs +0 -2
  1245. package/dist/number-B7aCRYnH.cjs.map +0 -1
  1246. package/dist/number-BhTiptLA.js +0 -99
  1247. package/dist/number-BhTiptLA.js.map +0 -1
  1248. package/dist/option-Bng41-rY.js +0 -77
  1249. package/dist/option-Bng41-rY.js.map +0 -1
  1250. package/dist/option-DYT5Rkgy.cjs +0 -44
  1251. package/dist/option-DYT5Rkgy.cjs.map +0 -1
  1252. package/dist/option.cjs.map +0 -1
  1253. package/dist/option.js.map +0 -1
  1254. package/dist/page-BLn9gtSd.cjs +0 -20
  1255. package/dist/page-BLn9gtSd.cjs.map +0 -1
  1256. package/dist/page-D-ROcQDd.js +0 -48
  1257. package/dist/page-D-ROcQDd.js.map +0 -1
  1258. package/dist/payment-card-form-5UtfWzoW.cjs +0 -74
  1259. package/dist/payment-card-form-5UtfWzoW.cjs.map +0 -1
  1260. package/dist/payment-card-form-BJa4RgF2.js +0 -515
  1261. package/dist/payment-card-form-BJa4RgF2.js.map +0 -1
  1262. package/dist/pills-BS5rZ6C3.js +0 -346
  1263. package/dist/pills-BS5rZ6C3.js.map +0 -1
  1264. package/dist/pills-Blf7IAeq.cjs +0 -113
  1265. package/dist/pills-Blf7IAeq.cjs.map +0 -1
  1266. package/dist/progress-DlhYniW_.cjs +0 -35
  1267. package/dist/progress-DlhYniW_.cjs.map +0 -1
  1268. package/dist/progress-yTIX6EqC.js +0 -56
  1269. package/dist/progress-yTIX6EqC.js.map +0 -1
  1270. package/dist/progress.cjs.map +0 -1
  1271. package/dist/progress.js.map +0 -1
  1272. package/dist/provide-BxZ2kn_p.cjs +0 -2
  1273. package/dist/provide-BxZ2kn_p.cjs.map +0 -1
  1274. package/dist/provide-tcktw8xB.js +0 -100
  1275. package/dist/provide-tcktw8xB.js.map +0 -1
  1276. package/dist/qr-scanner-DOs7uNS_.cjs +0 -29
  1277. package/dist/qr-scanner-DOs7uNS_.cjs.map +0 -1
  1278. package/dist/qr-scanner-DjZ8mgHV.js +0 -743
  1279. package/dist/qr-scanner-DjZ8mgHV.js.map +0 -1
  1280. package/dist/radio-button-N_PrrxKB.cjs +0 -41
  1281. package/dist/radio-button-N_PrrxKB.cjs.map +0 -1
  1282. package/dist/radio-button-me3SRHGu.js +0 -115
  1283. package/dist/radio-button-me3SRHGu.js.map +0 -1
  1284. package/dist/radio-group.cjs.map +0 -1
  1285. package/dist/radio-group.js.map +0 -1
  1286. package/dist/ripple-BgJXbNSP.js +0 -124
  1287. package/dist/ripple-BgJXbNSP.js.map +0 -1
  1288. package/dist/ripple-x6sTX02K.cjs +0 -16
  1289. package/dist/ripple-x6sTX02K.cjs.map +0 -1
  1290. package/dist/rxjs-utils.cjs.map +0 -1
  1291. package/dist/rxjs-utils.js.map +0 -1
  1292. package/dist/schmancy-steps-container-J6P-NNNj.js +0 -156
  1293. package/dist/schmancy-steps-container-J6P-NNNj.js.map +0 -1
  1294. package/dist/schmancy-steps-container-T57BKMzi.cjs +0 -70
  1295. package/dist/schmancy-steps-container-T57BKMzi.cjs.map +0 -1
  1296. package/dist/scroll-C_gfUgjn.js +0 -87
  1297. package/dist/scroll-C_gfUgjn.js.map +0 -1
  1298. package/dist/scroll-CecsowP7.cjs +0 -27
  1299. package/dist/scroll-CecsowP7.cjs.map +0 -1
  1300. package/dist/search-B1s7thB0.cjs +0 -2
  1301. package/dist/search-B1s7thB0.cjs.map +0 -1
  1302. package/dist/search-DxxnLa5u.js +0 -95
  1303. package/dist/search-DxxnLa5u.js.map +0 -1
  1304. package/dist/select-BBA0gBHf.js +0 -280
  1305. package/dist/select-BBA0gBHf.js.map +0 -1
  1306. package/dist/select-D9oCjv7N.cjs +0 -57
  1307. package/dist/select-D9oCjv7N.cjs.map +0 -1
  1308. package/dist/select.cjs.map +0 -1
  1309. package/dist/select.js.map +0 -1
  1310. package/dist/selector-hook-9w2auh2O.cjs +0 -2
  1311. package/dist/selector-hook-9w2auh2O.cjs.map +0 -1
  1312. package/dist/selector-hook-CHV4kDMd.js +0 -319
  1313. package/dist/selector-hook-CHV4kDMd.js.map +0 -1
  1314. package/dist/sheet-0oUfBmXX.cjs +0 -15
  1315. package/dist/sheet-0oUfBmXX.cjs.map +0 -1
  1316. package/dist/sheet-CNcDT3VP.js +0 -97
  1317. package/dist/sheet-CNcDT3VP.js.map +0 -1
  1318. package/dist/sheet.cjs.map +0 -1
  1319. package/dist/sheet.js.map +0 -1
  1320. package/dist/sheet.service-2MobB-9z.js +0 -68
  1321. package/dist/sheet.service-2MobB-9z.js.map +0 -1
  1322. package/dist/sheet.service-su_7yDQ-.cjs +0 -2
  1323. package/dist/sheet.service-su_7yDQ-.cjs.map +0 -1
  1324. package/dist/slider-CV-Ehp_5.cjs +0 -83
  1325. package/dist/slider-CV-Ehp_5.cjs.map +0 -1
  1326. package/dist/slider-CkE-iFUy.js +0 -161
  1327. package/dist/slider-CkE-iFUy.js.map +0 -1
  1328. package/dist/sound.service-Nza4c6wv.js +0 -102
  1329. package/dist/sound.service-Nza4c6wv.js.map +0 -1
  1330. package/dist/sound.service-eRirZw59.cjs +0 -2
  1331. package/dist/sound.service-eRirZw59.cjs.map +0 -1
  1332. package/dist/spinner-Bfn8KC-9.cjs +0 -135
  1333. package/dist/spinner-Bfn8KC-9.cjs.map +0 -1
  1334. package/dist/spinner-DiMbWXp9.js +0 -168
  1335. package/dist/spinner-DiMbWXp9.js.map +0 -1
  1336. package/dist/store.cjs.map +0 -1
  1337. package/dist/store.js.map +0 -1
  1338. package/dist/suggestion-chip-CEDqUNoS.js +0 -481
  1339. package/dist/suggestion-chip-CEDqUNoS.js.map +0 -1
  1340. package/dist/suggestion-chip-HhsLtZXR.cjs +0 -271
  1341. package/dist/suggestion-chip-HhsLtZXR.cjs.map +0 -1
  1342. package/dist/surface-CW3H23Va.cjs +0 -199
  1343. package/dist/surface-CW3H23Va.cjs.map +0 -1
  1344. package/dist/surface-eBfnSwQS.js +0 -220
  1345. package/dist/surface-eBfnSwQS.js.map +0 -1
  1346. package/dist/surface.cjs.map +0 -1
  1347. package/dist/surface.js.map +0 -1
  1348. package/dist/table-D0tiSL_u.cjs +0 -64
  1349. package/dist/table-D0tiSL_u.cjs.map +0 -1
  1350. package/dist/table-Dmo4TvTx.js +0 -561
  1351. package/dist/table-Dmo4TvTx.js.map +0 -1
  1352. package/dist/table.cjs.map +0 -1
  1353. package/dist/table.js.map +0 -1
  1354. package/dist/tabs-compatibility-Bit6y6en.js +0 -104
  1355. package/dist/tabs-compatibility-Bit6y6en.js.map +0 -1
  1356. package/dist/tabs-compatibility-Vq_2-ekz.cjs +0 -35
  1357. package/dist/tabs-compatibility-Vq_2-ekz.cjs.map +0 -1
  1358. package/dist/tabs.cjs.map +0 -1
  1359. package/dist/tabs.js.map +0 -1
  1360. package/dist/tailwind.mixin-Bp_PR6yc.js +0 -67
  1361. package/dist/tailwind.mixin-Bp_PR6yc.js.map +0 -1
  1362. package/dist/tailwind.mixin-Cp4PyXok.cjs +0 -2
  1363. package/dist/tailwind.mixin-Cp4PyXok.cjs.map +0 -1
  1364. package/dist/teleport.cjs.map +0 -1
  1365. package/dist/teleport.js.map +0 -1
  1366. package/dist/textarea-B1d1QCqT.js +0 -134
  1367. package/dist/textarea-B1d1QCqT.js.map +0 -1
  1368. package/dist/textarea-DG8CHhZA.cjs +0 -44
  1369. package/dist/textarea-DG8CHhZA.cjs.map +0 -1
  1370. package/dist/textarea.cjs.map +0 -1
  1371. package/dist/textarea.js.map +0 -1
  1372. package/dist/theme-button-CPL6Eaqd.cjs +0 -9
  1373. package/dist/theme-button-CPL6Eaqd.cjs.map +0 -1
  1374. package/dist/theme-button-CrLuMQNe.js +0 -27
  1375. package/dist/theme-button-CrLuMQNe.js.map +0 -1
  1376. package/dist/theme-button.cjs.map +0 -1
  1377. package/dist/theme-button.js.map +0 -1
  1378. package/dist/theme-controller-boat-CXbNJSI3.cjs +0 -178
  1379. package/dist/theme-controller-boat-CXbNJSI3.cjs.map +0 -1
  1380. package/dist/theme-controller-boat-CzSmjyKq.js +0 -1159
  1381. package/dist/theme-controller-boat-CzSmjyKq.js.map +0 -1
  1382. package/dist/theme.cjs.map +0 -1
  1383. package/dist/theme.events-CPSLaOlR.js +0 -6
  1384. package/dist/theme.events-CPSLaOlR.js.map +0 -1
  1385. package/dist/theme.events-Car6U_SQ.cjs +0 -2
  1386. package/dist/theme.events-Car6U_SQ.cjs.map +0 -1
  1387. package/dist/theme.interface-BLfE5J_1.js +0 -5
  1388. package/dist/theme.interface-BLfE5J_1.js.map +0 -1
  1389. package/dist/theme.interface-BMeNadVb.cjs +0 -2
  1390. package/dist/theme.interface-BMeNadVb.cjs.map +0 -1
  1391. package/dist/theme.js.map +0 -1
  1392. package/dist/timezone-4vwX0BgA.js +0 -112
  1393. package/dist/timezone-4vwX0BgA.js.map +0 -1
  1394. package/dist/timezone-BxvQcqe1.cjs +0 -32
  1395. package/dist/timezone-BxvQcqe1.cjs.map +0 -1
  1396. package/dist/tooltip-CjdvBf4X.js +0 -119
  1397. package/dist/tooltip-CjdvBf4X.js.map +0 -1
  1398. package/dist/tooltip-ZtnGjoJd.cjs +0 -7
  1399. package/dist/tooltip-ZtnGjoJd.cjs.map +0 -1
  1400. package/dist/tree-CBEjV7jP.js +0 -65
  1401. package/dist/tree-CBEjV7jP.js.map +0 -1
  1402. package/dist/tree-DP5U00NA.cjs +0 -27
  1403. package/dist/tree-DP5U00NA.cjs.map +0 -1
  1404. package/dist/tslib.es6-DgOcxv4s.cjs +0 -2
  1405. package/dist/tslib.es6-DgOcxv4s.cjs.map +0 -1
  1406. package/dist/tslib.es6-ujVQHAQ4.js +0 -10
  1407. package/dist/tslib.es6-ujVQHAQ4.js.map +0 -1
  1408. package/dist/typewriter-C6kFjLcX.cjs +0 -124
  1409. package/dist/typewriter-C6kFjLcX.cjs.map +0 -1
  1410. package/dist/typewriter-Eo5qXoGC.js +0 -555
  1411. package/dist/typewriter-Eo5qXoGC.js.map +0 -1
  1412. package/dist/typewriter.cjs.map +0 -1
  1413. package/dist/typewriter.js.map +0 -1
  1414. package/dist/typography-C_1gdM2I.js +0 -264
  1415. package/dist/typography-C_1gdM2I.js.map +0 -1
  1416. package/dist/typography-DGyjlLCE.cjs +0 -243
  1417. package/dist/typography-DGyjlLCE.cjs.map +0 -1
  1418. package/dist/utils-C38P63L6.cjs +0 -2
  1419. package/dist/utils-C38P63L6.cjs.map +0 -1
  1420. package/dist/utils-CYOVFxSx.js +0 -150
  1421. package/dist/utils-CYOVFxSx.js.map +0 -1
  1422. package/dist/utils.cjs.map +0 -1
  1423. package/dist/utils.js.map +0 -1
  1424. package/types/src/animated-text/animated-text.d.ts +0 -30
  1425. package/types/src/animated-text/index.d.ts +0 -1
  1426. package/types/src/directives/height.d.ts +0 -20
@@ -0,0 +1,766 @@
1
+ import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'
2
+ import { $LitElement } from '@mixins/index'
3
+ import { color } from '@schmancy/directives'
4
+ import SchmancyInput from '@schmancy/input/input'
5
+ import SchmancyOption from '@schmancy/option/option'
6
+ import { SchmancyTheme } from '@schmancy/theme/theme.interface'
7
+ import { css, html, PropertyValues, TemplateResult } from 'lit'
8
+ import { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'
9
+ import { classMap } from 'lit/directives/class-map.js'
10
+ import { BehaviorSubject, combineLatest, fromEvent, Subject, takeUntil } from 'rxjs'
11
+ import { tap, withLatestFrom } from 'rxjs/operators'
12
+
13
+ export type SchmancySelectChangeEvent = CustomEvent<{
14
+ value: string | string[]
15
+ }>
16
+
17
+ /**
18
+ * Select dropdown component with single and multi-select support.
19
+ *
20
+ * @prop {string} name - Name attribute for form submission
21
+ * @prop {string} label - Label text displayed above the select
22
+ * @prop {string} placeholder - Placeholder text when no value is selected
23
+ * @prop {boolean} required - Whether the field is required
24
+ * @prop {boolean} multi - Enable multi-select mode
25
+ * @prop {string} value - Selected value (single select mode)
26
+ * @prop {string[]} values - Selected values (multi-select mode)
27
+ */
28
+ @customElement('schmancy-select')
29
+ export class SchmancySelect extends $LitElement(css`
30
+ :host {
31
+ display: block;
32
+ position: relative;
33
+ }
34
+
35
+ [role='listbox'] {
36
+ overflow-y: auto;
37
+ outline: none;
38
+ }
39
+ `) {
40
+ // Form association setup
41
+ static formAssociated = true
42
+ private internals?: ElementInternals
43
+
44
+ // API
45
+ @property({ type: String }) name: string | undefined
46
+ @property({ type: Boolean, reflect: true }) required = false
47
+ @property({ type: Boolean, reflect: true }) disabled = false
48
+ @property({ type: String }) placeholder = ''
49
+ @property({ type: String, reflect: true })
50
+ get value() {
51
+ return this.multi
52
+ ? this._selectedValues$.value // Return array for multi-select
53
+ : this._selectedValue$.value // Return string for single-select
54
+ }
55
+ set value(val: string | string[]) {
56
+ if (this.multi) {
57
+ const values = Array.isArray(val)
58
+ ? val
59
+ : val ? String(val).split(',').map(v => v.trim()).filter(Boolean) : []
60
+ this._selectedValues$.next(values)
61
+ } else {
62
+ this._selectedValue$.next(val == null ? '' : String(val))
63
+ }
64
+ }
65
+
66
+ // Values property for multi-select mode
67
+ @property({ type: Array })
68
+ get values() {
69
+ return [...this._selectedValues$.value]
70
+ }
71
+ set values(vals: string[]) {
72
+ this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])
73
+ }
74
+
75
+ @property({ type: Boolean }) multi = false
76
+ @property({ type: String }) label = ''
77
+ @property({ type: String }) hint = ''
78
+ @property({ type: String }) validateOn: 'always' | 'touched' | 'dirty' | 'submitted' = 'touched'
79
+ // M3 aligned sizes: 24dp (xxs) → 32dp (xs) → 40dp (sm) → 48dp (md) → 56dp (lg)
80
+ @property({ type: String }) size: 'xxs' | 'xs' | 'sm' | 'md' | 'lg' = 'md'
81
+
82
+ // Internal states
83
+ @state() private isOpen = false
84
+ @state() private valueLabel = ''
85
+ @state() private isValid = true
86
+ @property({ type: String }) validationMessage = ''
87
+
88
+ // Store the initial/default value for reset behavior
89
+ @state() private defaultValue: string | string[] = ''
90
+
91
+ @query('ul') private ul!: HTMLUListElement
92
+ @query('sch-input') private inputRef!: SchmancyInput
93
+ @queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]
94
+ private cleanupPositioner?: () => void
95
+
96
+ // Reactive state management
97
+ private _options$ = new BehaviorSubject<SchmancyOption[]>([])
98
+ private _selectedValue$ = new BehaviorSubject<string>('')
99
+ private _selectedValues$ = new BehaviorSubject<string[]>([])
100
+ private _optionSelect$ = new Subject<SchmancyOption>()
101
+ @state() _userInteracted = false
102
+ @state() private _touched = false
103
+ @state() private _dirty = false
104
+ @state() private _submitted = false
105
+
106
+ // Reference to current focused option (for keyboard navigation)
107
+ @state() private _focusedOptionId = ''
108
+
109
+ // Form event handlers
110
+ private formSubmitHandler = () => {
111
+ this._submitted = true
112
+ this.checkValidity()
113
+ }
114
+
115
+ private formResetHandler = () => {
116
+ this.reset()
117
+ }
118
+
119
+ constructor() {
120
+ super()
121
+ // Initialize ElementInternals for form association
122
+ try {
123
+ this.internals = this.attachInternals()
124
+ } catch (e) {
125
+ console.warn('FormAssociated elements not supported in this browser', e)
126
+ }
127
+ }
128
+
129
+ get form() {
130
+ return this.internals?.form
131
+ }
132
+
133
+ connectedCallback() {
134
+ super.connectedCallback()
135
+ if (!this.id) {
136
+ this.id = `schmancy-select-${Math.random().toString(36).substring(2, 9)}`
137
+ }
138
+
139
+ // Store initial value for reset
140
+ this.defaultValue = this.value
141
+
142
+ // Add keyboard handling to host element
143
+ fromEvent<KeyboardEvent>(this, 'keydown').pipe(takeUntil(this.disconnecting)).subscribe(this.handleKeyDown)
144
+
145
+ // Setup reactive pipelines
146
+ this._setupReactivePipelines()
147
+
148
+ // Listen for form submission events to mark field as submitted
149
+ if (this.internals?.form) {
150
+ fromEvent(this.internals.form, 'submit')
151
+ .pipe(takeUntil(this.disconnecting))
152
+ .subscribe(this.formSubmitHandler)
153
+
154
+ // Listen for form reset
155
+ fromEvent(this.internals.form, 'reset')
156
+ .pipe(takeUntil(this.disconnecting))
157
+ .subscribe(this.formResetHandler)
158
+ }
159
+ }
160
+
161
+ disconnectedCallback() {
162
+ super.disconnectedCallback()
163
+ this.cleanupPositioner?.()
164
+ // Form event listeners are automatically cleaned up via takeUntil(this.disconnecting)
165
+ }
166
+
167
+ firstUpdated() {
168
+ this.syncSelection()
169
+ this.setupOptionsAccessibility()
170
+
171
+ // Initially hide any validation errors until user interacts
172
+ if (this.inputRef) {
173
+ this.inputRef.error = false
174
+ }
175
+ }
176
+
177
+ updated(changedProps: PropertyValues) {
178
+ super.updated(changedProps)
179
+
180
+ if (changedProps.has('value')) {
181
+ // Update form value when component value changes
182
+ const formValue = this.multi
183
+ ? this._selectedValues$.value.join(',')
184
+ : this._selectedValue$.value
185
+ this.internals?.setFormValue(formValue)
186
+
187
+ // Mark as dirty if value changes from initial value
188
+ if (this.hasUpdated) {
189
+ this._dirty = true
190
+ }
191
+
192
+ // Check validity based on validation strategy
193
+ if (this.hasUpdated) {
194
+ this.checkValidity()
195
+ }
196
+ }
197
+
198
+ // When open state changes, setup or cleanup the dropdown positioner
199
+ if (changedProps.has('isOpen')) {
200
+ if (this.isOpen) {
201
+ this.positionDropdown()
202
+ } else {
203
+ this.cleanupPositioner?.()
204
+ }
205
+ }
206
+ }
207
+
208
+ /**
209
+ * Determines if validation errors should be shown based on current state
210
+ * and validation strategy
211
+ */
212
+ private shouldShowValidation(forceValidation = false): boolean {
213
+ if (forceValidation) return true
214
+
215
+ switch (this.validateOn) {
216
+ case 'always':
217
+ return true
218
+ case 'touched':
219
+ return this._touched
220
+ case 'dirty':
221
+ return this._dirty
222
+ case 'submitted':
223
+ return this._submitted
224
+ default:
225
+ return this._touched
226
+ }
227
+ }
228
+
229
+ private syncSelection() {
230
+ if (this.multi) {
231
+ // Read directly from the BehaviorSubject to avoid string conversion issues
232
+ const selectedValues = this._selectedValues$.value
233
+ this.options?.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state
234
+ this.valueLabel =
235
+ selectedValues.length > 0
236
+ ? this.options
237
+ ?.filter(o => selectedValues.includes(o.value))
238
+ .map(o => o.label || o.textContent || '')
239
+ .join(', ') || this.placeholder
240
+ : this.placeholder
241
+ } else {
242
+ // Single select - read from BehaviorSubject
243
+ const currentValue = this._selectedValue$.value
244
+ this.options?.forEach(o => {
245
+ // Set selected property on each option based on matching value
246
+ o.selected = o.value === currentValue
247
+ })
248
+ const selectedOption = this.options?.find(o => o.value === currentValue)
249
+ this.valueLabel = selectedOption ? (selectedOption.label || selectedOption.textContent || '') : this.placeholder
250
+ }
251
+ }
252
+
253
+ private setupOptionsAccessibility() {
254
+ this.options?.forEach((option, index) => {
255
+ option.setAttribute('role', 'option')
256
+ if (!option.id) {
257
+ option.id = `${this.id}-option-${index}`
258
+ }
259
+
260
+ // Set tabindex to -1 so they're focusable programmatically but not in the tab order
261
+ option.tabIndex = -1
262
+
263
+ option.setAttribute(
264
+ 'aria-selected',
265
+ String(this.multi ? this._selectedValues$.value.includes(option.value) : option.value === this._selectedValue$.value),
266
+ )
267
+ })
268
+ }
269
+
270
+ private async positionDropdown() {
271
+ const reference = this.renderRoot.querySelector('.trigger') as HTMLElement
272
+ if (!reference || !this.ul) return
273
+
274
+ this.cleanupPositioner = autoUpdate(reference, this.ul, async () => {
275
+ // Get viewport dimensions
276
+ const viewportHeight = window.innerHeight
277
+ const triggerRect = reference.getBoundingClientRect()
278
+
279
+ // Calculate available space below and above
280
+ const spaceBelow = viewportHeight - triggerRect.bottom
281
+ const spaceAbove = triggerRect.top
282
+
283
+ // Calculate max height - use 75% of the largest available space, but at least 150px
284
+ const maxHeight = Math.max(Math.max(spaceBelow, spaceAbove) * 0.75, 150)
285
+
286
+ // Determine if we should flip
287
+ const shouldFlip = spaceBelow < 200 && spaceAbove > spaceBelow
288
+
289
+ // Apply max height
290
+ this.ul.style.maxHeight = `${maxHeight}px`
291
+
292
+ const { x, y } = await computePosition(reference, this.ul, {
293
+ placement: shouldFlip ? 'top-start' : 'bottom-start',
294
+ middleware: [offset(5), flip(), shift({ padding: 5 })],
295
+ })
296
+
297
+ Object.assign(this.ul.style, {
298
+ left: `${x}px`,
299
+ top: `${y}px`,
300
+ position: 'absolute',
301
+ width: `${reference.offsetWidth}px`, // Match the width of the trigger
302
+ })
303
+ })
304
+ }
305
+
306
+ private handleKeyDown = (e: KeyboardEvent) => {
307
+ // Don't handle keyboard events when disabled
308
+ if (this.disabled) {
309
+ return
310
+ }
311
+
312
+ if (!this.isOpen) {
313
+ if (['Enter', ' ', 'ArrowDown'].includes(e.key)) {
314
+ e.preventDefault()
315
+ this.openDropdown(false)
316
+ }
317
+ return
318
+ }
319
+
320
+ // Find current focused option
321
+ const options = Array.from(this.options || [])
322
+ const current = options.findIndex(o => o.id === this._focusedOptionId) ?? -1
323
+
324
+ switch (e.key) {
325
+ case 'Escape':
326
+ e.preventDefault()
327
+ this.closeDropdown()
328
+ break
329
+ case 'ArrowDown':
330
+ e.preventDefault()
331
+ this.focusOption(options, Math.min(current + 1, options.length - 1))
332
+ break
333
+ case 'ArrowUp':
334
+ e.preventDefault()
335
+ this.focusOption(options, Math.max(current - 1, 0))
336
+ break
337
+ case 'Home':
338
+ e.preventDefault()
339
+ this.focusOption(options, 0)
340
+ break
341
+ case 'End':
342
+ e.preventDefault()
343
+ this.focusOption(options, options.length - 1)
344
+ break
345
+ case 'Enter':
346
+ case ' ':
347
+ e.preventDefault()
348
+ if (this._focusedOptionId) {
349
+ const focusedOption = options.find(opt => opt.id === this._focusedOptionId)
350
+ if (focusedOption) {
351
+ this.handleOptionSelect(focusedOption.value)
352
+ }
353
+ }
354
+ break
355
+ case 'Tab':
356
+ this.closeDropdown()
357
+ break
358
+ }
359
+ }
360
+
361
+ private focusOption(options: SchmancyOption[], index: number) {
362
+ const option = options[index]
363
+ if (option) {
364
+ option.focus()
365
+ this._focusedOptionId = option.id
366
+
367
+ // Update aria-activedescendant on the combobox
368
+ const combobox = this.renderRoot.querySelector('.trigger')
369
+ if (combobox) {
370
+ combobox.setAttribute('aria-activedescendant', option.id)
371
+ }
372
+
373
+ // Ensure option is visible in the scrollable area
374
+ if (this.ul && option.offsetTop !== undefined) {
375
+ // Get position info
376
+ const optionTop = option.offsetTop
377
+ const optionHeight = option.offsetHeight
378
+ const scrollTop = this.ul.scrollTop
379
+ const ulHeight = this.ul.clientHeight
380
+
381
+ // Scroll into view if needed
382
+ if (optionTop < scrollTop) {
383
+ this.ul.scrollTop = optionTop
384
+ } else if (optionTop + optionHeight > scrollTop + ulHeight) {
385
+ this.ul.scrollTop = optionTop + optionHeight - ulHeight
386
+ }
387
+ }
388
+ }
389
+ }
390
+
391
+ private async openDropdown(report = false) {
392
+ // Don't open if disabled
393
+ if (this.disabled) {
394
+ return
395
+ }
396
+
397
+ // Don't mark as touched on opening - we'll do that on closing
398
+ // so errors only show after interaction is complete
399
+
400
+ this.isOpen = true
401
+ await this.updateComplete
402
+
403
+ // Focus first or selected option
404
+ const options = Array.from(this.options || [])
405
+ const selectedIndex = this.multi ? 0 : options.findIndex(o => o.value === this._selectedValue$.value)
406
+
407
+ this.focusOption(options, Math.max(selectedIndex, 0))
408
+
409
+ // Don't automatically validate when opening
410
+ // Only validate if explicitly requested (like from a form submission)
411
+ if (report) this.reportValidity()
412
+ }
413
+
414
+ private closeDropdown() {
415
+ // Only mark as touched if the user actually interacted with the component
416
+ // and made a selection or explicitly closed it without selecting
417
+ if (this._userInteracted) {
418
+ this._touched = true
419
+ }
420
+
421
+ this.isOpen = false
422
+ this._focusedOptionId = ''
423
+
424
+ // Update combobox to remove aria-activedescendant
425
+ const combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')
426
+ if (combobox) {
427
+ combobox.removeAttribute('aria-activedescendant')
428
+ combobox?.focus()
429
+ }
430
+
431
+ // Only check validity when closing if the user has actually interacted
432
+ // with the component and validation should be shown
433
+ if (this._userInteracted && this.shouldShowValidation()) {
434
+ this.checkValidity()
435
+ }
436
+ }
437
+
438
+ private _setupReactivePipelines() {
439
+ // Listen for option-select events from child options
440
+ fromEvent<CustomEvent>(this, 'option-select')
441
+ .pipe(
442
+ tap((e) => {
443
+ e.stopPropagation() // Prevent event from bubbling further
444
+ const option = this.options.find(o => o.value === e.detail.value)
445
+ if (option) {
446
+ this._optionSelect$.next(option)
447
+ }
448
+ }),
449
+ takeUntil(this.disconnecting)
450
+ )
451
+ .subscribe()
452
+
453
+ // Handle option selection through reactive pipeline
454
+ this._optionSelect$
455
+ .pipe(
456
+ withLatestFrom(this._selectedValue$, this._selectedValues$),
457
+ tap(([option, _, currentValues]) => {
458
+ this._userInteracted = true
459
+ this._touched = true
460
+ this._dirty = true
461
+
462
+ if (this.multi) {
463
+ const index = currentValues.indexOf(option.value)
464
+ const newValues = index > -1
465
+ ? [...currentValues.slice(0, index), ...currentValues.slice(index + 1)]
466
+ : [...currentValues, option.value]
467
+ this._selectedValues$.next(newValues)
468
+
469
+ // Update form value
470
+ this.internals?.setFormValue(newValues.join(','))
471
+
472
+ // Update display label
473
+ this.valueLabel = newValues.length > 0
474
+ ? this.options
475
+ .filter(o => newValues.includes(o.value))
476
+ .map(o => o.label || o.textContent || '')
477
+ .join(', ')
478
+ : this.placeholder
479
+ } else {
480
+ // Single select
481
+ this._selectedValue$.next(option.value)
482
+
483
+ // Update form value
484
+ this.internals?.setFormValue(option.value)
485
+
486
+ this.valueLabel = option.label || option.textContent || this.placeholder
487
+ this.closeDropdown()
488
+ }
489
+
490
+ // Update the option's accessibility state
491
+ this.setupOptionsAccessibility()
492
+
493
+ // Dispatch change event
494
+ this._fireChangeEvent()
495
+ }),
496
+ takeUntil(this.disconnecting)
497
+ )
498
+ .subscribe()
499
+
500
+ // Options management pipeline - bind pointerdown events exactly like autocomplete
501
+ this._options$
502
+ .pipe(
503
+ tap((options) => {
504
+ options.forEach((option, index) => {
505
+ option.setAttribute('role', 'option')
506
+ option.tabIndex = -1
507
+ if (!option.id) {
508
+ option.id = `${this.id}-option-${index}`
509
+ }
510
+ // Use data-event-bound to prevent duplicate bindings
511
+ if (!option.hasAttribute('data-event-bound')) {
512
+ // Use click event instead of pointerdown for better mobile UX
513
+ // This allows users to scroll through options without immediately selecting
514
+ fromEvent(option, 'click').pipe(
515
+ tap(e => {
516
+ e.stopPropagation()
517
+ }),
518
+ takeUntil(this.disconnecting)
519
+ ).subscribe(() => this._optionSelect$.next(option))
520
+ option.setAttribute('data-event-bound', 'true')
521
+ }
522
+ })
523
+ }),
524
+ takeUntil(this.disconnecting)
525
+ )
526
+ .subscribe()
527
+
528
+ // Selection sync pipeline - sync selected states with value changes
529
+ combineLatest([this._selectedValue$, this._selectedValues$, this._options$])
530
+ .pipe(
531
+ tap(([singleValue, multiValues, options]) => {
532
+ if (options.length === 0) return
533
+
534
+ if (this.multi) {
535
+ options.forEach(option => {
536
+ option.selected = multiValues.includes(option.value)
537
+ })
538
+ } else {
539
+ options.forEach(option => {
540
+ option.selected = option.value === singleValue
541
+ })
542
+ }
543
+ }),
544
+ takeUntil(this.disconnecting)
545
+ )
546
+ .subscribe()
547
+ }
548
+
549
+ private handleOptionSelect(value: string) {
550
+ // This method is now called from keyboard navigation only
551
+ const option = this.options.find(o => o.value === value)
552
+ if (option) {
553
+ this._optionSelect$.next(option)
554
+ }
555
+ }
556
+
557
+ private _fireChangeEvent() {
558
+ // Get the current value based on multi/single mode
559
+ const value = this.multi ? this._selectedValues$.value : this._selectedValue$.value
560
+
561
+ // Dispatch only one change event with the value in detail
562
+ this.dispatchEvent(
563
+ new CustomEvent<SchmancySelectChangeEvent['detail']>('change', {
564
+ detail: { value },
565
+ bubbles: true,
566
+ composed: true,
567
+ }),
568
+ )
569
+
570
+ // Then check validity (only show error if validation should be shown)
571
+ this.checkValidity()
572
+ }
573
+
574
+ public checkValidity(): boolean {
575
+ // Disabled fields are always valid
576
+ if (this.disabled) {
577
+ return true
578
+ }
579
+
580
+ // Determine if the select is empty based on whether it's multi-select or single-select
581
+ const isEmpty = this.multi
582
+ ? this._selectedValues$.value.length === 0
583
+ : !this._selectedValue$.value
584
+
585
+ // Check if the value is valid (not empty when required)
586
+ const isValid = !(this.required && isEmpty)
587
+
588
+ // Set the validity state
589
+ this.isValid = isValid
590
+
591
+ if (!this.isValid) {
592
+ this.validationMessage = 'Please select an option.'
593
+ this.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)
594
+ } else {
595
+ // Clear validation message
596
+ this.validationMessage = ''
597
+ this.internals?.setValidity({})
598
+ }
599
+
600
+ // Update the input component to reflect our validation state
601
+ if (this.inputRef && this.hasUpdated) {
602
+ const showError = !this.isValid && this.shouldShowValidation()
603
+ this.inputRef.error = showError
604
+ this.inputRef.hint = showError ? this.validationMessage : this.hint
605
+ }
606
+
607
+ return this.isValid
608
+ }
609
+
610
+ public reportValidity(): boolean {
611
+ // Force validation display regardless of validation strategy
612
+ const valid = this.checkValidity()
613
+
614
+ // Force the input to show validation errors
615
+ if (this.inputRef) {
616
+ // Set the input's error state
617
+ this.inputRef.error = !valid
618
+ this.inputRef.hint = !valid ? this.validationMessage : this.hint
619
+
620
+ // If invalid and not already open, automatically open the dropdown to show options
621
+ if (!valid && !this.isOpen) {
622
+ // Open the dropdown but don't mark as user interaction yet
623
+ // This helps users immediately see available options when validation fails
624
+ this.openDropdown(false)
625
+ }
626
+
627
+ // Only call reportValidity on the input if invalid to show the native popup
628
+ if (!valid) {
629
+ this.inputRef.reportValidity()
630
+ }
631
+ }
632
+
633
+ return valid
634
+ }
635
+
636
+ public setCustomValidity(message: string) {
637
+ this.validationMessage = message
638
+ if (message) {
639
+ this.isValid = false
640
+ this.internals?.setValidity({ customError: true }, message, this.inputRef)
641
+ } else {
642
+ this.isValid = true
643
+ this.internals?.setValidity({})
644
+ }
645
+
646
+ // Update input if needed
647
+ if (this.inputRef && this.shouldShowValidation()) {
648
+ this.inputRef.error = !this.isValid
649
+ this.inputRef.hint = !this.isValid ? this.validationMessage : this.hint
650
+ }
651
+ }
652
+
653
+ public reset() {
654
+ // Reset to initial value
655
+ this.value = this.defaultValue
656
+ this.valueLabel = this.placeholder
657
+ this.isValid = true
658
+ this.validationMessage = ''
659
+ this._touched = false
660
+ this._dirty = false
661
+ this._submitted = false
662
+ this._userInteracted = false
663
+ this.internals?.setValidity({})
664
+
665
+ if (this.inputRef) {
666
+ this.inputRef.error = false
667
+ this.inputRef.hint = this.hint
668
+ }
669
+ }
670
+
671
+ render(): TemplateResult {
672
+ // Determine if we should show errors based on the validation strategy and interaction
673
+ // Never show errors on initial render or if the dropdown is open
674
+ const showErrors = !this.isValid && this.shouldShowValidation() && !this.isOpen
675
+
676
+ // Add caret icon based on open state
677
+ const caretIcon = this.isOpen
678
+ ? html`<span class="absolute right-3 top-1/2 transform -translate-y-1/2">▲</span>`
679
+ : html`<span class="absolute right-3 top-1/2 transform -translate-y-1/2">▼</span>`
680
+
681
+ return html`
682
+ <div class="relative ${this.disabled ? 'opacity-60 cursor-not-allowed' : ''}">
683
+ <sch-input
684
+ .name=${this.name}
685
+ tabIndex=${this.disabled ? '-1' : '0'}
686
+ class="trigger"
687
+ role="combobox"
688
+ aria-haspopup="listbox"
689
+ aria-expanded=${this.isOpen}
690
+ aria-controls="options"
691
+ aria-autocomplete="none"
692
+ aria-required=${this.required}
693
+ aria-activedescendant=${this._focusedOptionId || undefined}
694
+ aria-disabled=${this.disabled}
695
+ .label=${this.label}
696
+ .placeholder=${this.placeholder}
697
+ .value=${this.valueLabel}
698
+ .required=${this.required}
699
+ .disabled=${this.disabled}
700
+ .hint=${showErrors ? this.validationMessage : this.hint}
701
+ .error=${showErrors}
702
+ .validateOn=${this.validateOn}
703
+ .size=${this.size}
704
+ readonly
705
+ clickable
706
+ @click=${(e: MouseEvent) => {
707
+ // Don't process clicks if disabled
708
+ if (this.disabled) {
709
+ e.preventDefault()
710
+ e.stopPropagation()
711
+ return
712
+ }
713
+
714
+ // On first click, don't count this as user interaction yet
715
+ if (!this.isOpen) {
716
+ // Open without triggering validation - we'll validate when they close
717
+ this.openDropdown(false)
718
+ } else {
719
+ // Mark as interacted when they close the dropdown
720
+ this._userInteracted = true
721
+ this.closeDropdown()
722
+ }
723
+ }}
724
+ >
725
+ ${caretIcon}
726
+ </sch-input>
727
+
728
+ <!-- Overlay for capturing clicks outside when dropdown is open -->
729
+ ${this.isOpen
730
+ ? html` <div class="fixed inset-0 z-10" @click=${this.closeDropdown} tabindex="-1" aria-hidden="true"></div> `
731
+ : ''}
732
+
733
+ <ul
734
+ id="options"
735
+ role="listbox"
736
+ aria-multiselectable=${this.multi}
737
+ class=${classMap({
738
+ 'absolute min-w-full w-full z-20 mt-1 rounded-md shadow-lg': true,
739
+ hidden: !this.isOpen,
740
+ })}
741
+ ${color({
742
+ bgColor: SchmancyTheme.sys.color.surface.low,
743
+ color: SchmancyTheme.sys.color.surface.on,
744
+ })}
745
+ >
746
+ <slot
747
+ @slotchange=${() => {
748
+ this._options$.next(this.options)
749
+ // Sync selection state when options re-render
750
+ this.syncSelection()
751
+ }}
752
+ ></slot>
753
+ </ul>
754
+ </div>
755
+ `
756
+ }
757
+ }
758
+
759
+ // Don't export 'select' here as it conflicts with the store's select decorator
760
+ // export const select = SchmancySelect
761
+
762
+ declare global {
763
+ interface HTMLElementTagNameMap {
764
+ 'schmancy-select': SchmancySelect
765
+ }
766
+ }