@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
package/dist/ai/theme.md CHANGED
@@ -1,1107 +1,58 @@
1
- # Theme Service
1
+ # schmancy-theme
2
2
 
3
- Comprehensive Material Design 3 theme management with reactive observables, automatic persistence, and a complete token system for colors, typography, motion, and more.
4
-
5
- ## Import
6
-
7
- ```typescript
8
- import { theme } from '@schmancy/theme'
9
- // Alternative: schmancyTheme
10
- ```
11
-
12
- ## Core Concepts
13
-
14
- - **Scheme**: Color mode (`'dark'` | `'light'` | `'auto'`)
15
- - **Resolved Scheme**: Actual theme after resolving `'auto'` based on system preferences
16
- - **Color**: Primary theme color in hex format
17
- - **Fullscreen**: Navigation visibility state
18
- - **Theme Component**: Visual theme provider that registers with service
19
- - **Material Design 3 Tokens**: Complete design system with colors, surfaces, typography, motion, and more
20
-
21
- ## Properties (Synchronous)
22
-
23
- ```typescript
24
- theme.scheme // 'dark' | 'light' | 'auto'
25
- theme.color // '#6200ee'
26
- theme.fullscreen // boolean
27
- theme.themeComponent // SchmancyThemeComponent | null
28
- theme.theme // Partial<TSchmancyTheme> - Full M3 token system
29
- ```
30
-
31
- ## Observables
32
-
33
- ```typescript
34
- // Scheme changes
35
- theme.scheme$.subscribe(scheme => {
36
- console.log(scheme) // 'dark' | 'light' | 'auto'
37
- })
38
-
39
- // Resolved scheme (auto → actual) - NEVER returns 'auto'
40
- theme.resolvedScheme$.subscribe(scheme => {
41
- console.log(scheme) // 'dark' | 'light' (automatically resolved)
42
- })
43
-
44
- // Color changes
45
- theme.color$.subscribe(color => {
46
- console.log(color) // '#6200ee'
47
- })
48
-
49
- // Fullscreen state
50
- theme.fullscreen$.subscribe(isFullscreen => {
51
- console.log(isFullscreen) // true/false
52
- })
53
-
54
- // Complete theme configuration
55
- theme.theme$.subscribe(themeConfig => {
56
- console.log(themeConfig) // Full Material Design 3 theme object
57
- })
58
- ```
59
-
60
- ## Methods
61
-
62
- ### `setScheme(scheme)`
63
- Set color scheme with automatic persistence.
64
- ```typescript
65
- theme.setScheme('dark') // Force dark
66
- theme.setScheme('light') // Force light
67
- theme.setScheme('auto') // Follow system preferences
68
- ```
69
-
70
- ### `toggleScheme()`
71
- Toggle between light/dark modes.
72
- ```typescript
73
- theme.toggleScheme() // light → dark → light
74
- ```
75
-
76
- ### `setColor(color)`
77
- Set primary color - automatically generates full M3 palette.
78
- ```typescript
79
- theme.setColor('#6750A4') // Generates all tones and color roles
80
- ```
81
-
82
- ### `isDarkMode()`
83
- Observable that emits current dark mode state.
84
- ```typescript
85
- theme.isDarkMode().subscribe(isDark => {
86
- console.log(isDark) // true/false
87
- })
88
- ```
89
-
90
- ### `setFullscreen(value)`
91
- Control fullscreen mode for immersive experiences.
92
- ```typescript
93
- theme.setFullscreen(true) // Hide navigation
94
- theme.setFullscreen(false) // Show navigation
95
- ```
96
-
97
- ### `toggleFullscreen()`
98
- Toggle fullscreen state.
99
- ```typescript
100
- theme.toggleFullscreen()
101
- ```
102
-
103
- ### `next(values)`
104
- Update multiple properties atomically.
105
- ```typescript
106
- theme.next({
107
- fullscreen: true,
108
- scheme: 'dark',
109
- color: '#6750A4'
110
- })
111
- ```
112
-
113
- ### `getCSSVariable(name)`
114
- Get computed CSS variable value.
115
- ```typescript
116
- const primary = theme.getCSSVariable('color-primary')
117
- const elevation = theme.getCSSVariable('elevation-3')
118
- // Returns computed value of --schmancy-{name}
119
- ```
120
-
121
- ### `watchCSSVariable(name)`
122
- Watch CSS variable changes reactively.
123
- ```typescript
124
- theme.watchCSSVariable('color-primary').subscribe(color => {
125
- console.log('Primary changed:', color)
126
- })
127
- ```
128
-
129
- ## Theme Controller Components
130
-
131
- Two theme controller components are available:
132
-
133
- ### 1. Standalone Theme Controller
134
- Embeddable theme controls for integration into settings panels:
135
-
136
- ```html
137
- <schmancy-theme-controller
138
- .customColors=${[
139
- { name: 'Brand Blue', value: '#1976D2', category: 'primary' },
140
- { name: 'Brand Red', value: '#D32F2F', category: 'accent' }
141
- ]}
142
- ></schmancy-theme-controller>
143
- ```
144
-
145
- ### 2. BOAT UX Theme Controller
146
- Floating, draggable theme control panel:
3
+ > Root theme provider that generates color tokens from a source color and distributes them as CSS custom properties.
147
4
 
5
+ ## Usage
148
6
  ```html
149
- <schmancy-theme-controller-boat
150
- .customColors=${[
151
- { name: 'Ocean', value: '#006994', category: 'primary' },
152
- { name: 'Sunset', value: '#FF6B35', category: 'accent' }
153
- ]}
154
- ></schmancy-theme-controller-boat>
155
- ```
156
-
157
- ### Features
158
- - **Color Picker**: Visual color selection with debounced input
159
- - **Scheme Toggle**: Beautiful icons for light/dark/auto modes
160
- - **Random Color**: Generate random theme colors
161
- - **Custom Presets**: Define your own color palette with categories
162
-
163
- ### Implementation Example
164
- ```typescript
165
- import '@schmancy/theme-controller'
166
- // or
167
- import '@schmancy/theme-controller-boat'
168
-
169
- @customElement('my-settings')
170
- export class MySettings extends $LitElement() {
171
- private brandColors = [
172
- { name: 'Brand Primary', value: '#6750A4', category: 'primary' },
173
- { name: 'Brand Secondary', value: '#0061A4', category: 'secondary' },
174
- { name: 'Brand Success', value: '#006E1C', category: 'accent' },
175
- { name: 'Brand Error', value: '#BA1B1B', category: 'accent' }
176
- ]
177
-
178
- render() {
179
- return html`
180
- <schmancy-surface type="container" class="p-4">
181
- <schmancy-typography type="title" token="medium">
182
- Theme Settings
183
- </schmancy-typography>
184
-
185
- <schmancy-theme-controller
186
- .customColors=${this.brandColors}
187
- ></schmancy-theme-controller>
188
- </schmancy-surface>
189
- `
190
- }
191
- }
192
- ```
193
-
194
- ## Complete Material Design 3 Token System
195
-
196
- The theme service generates a COMPLETE M3 design system with hundreds of tokens:
197
-
198
- ### Extended Color System
199
-
200
- Beyond primary/secondary/tertiary/error, the theme includes complete semantic color palettes:
201
-
202
- ```typescript
203
- // Success - Green palette for success states
204
- theme.theme.sys.color.success.default // Success default (#006E1C base)
205
- theme.theme.sys.color.success.on // Text on success backgrounds
206
- theme.theme.sys.color.success.container // Success container backgrounds
207
- theme.theme.sys.color.success.onContainer // Text on success containers
208
-
209
- // Warning - Amber/Yellow palette for warning states
210
- theme.theme.sys.color.warning.default // Warning default (#FFD600 base)
211
- theme.theme.sys.color.warning.on // Text on warning backgrounds
212
- theme.theme.sys.color.warning.container // Warning container backgrounds
213
- theme.theme.sys.color.warning.onContainer // Text on warning containers
214
-
215
- // Info - Blue palette for informational states
216
- theme.theme.sys.color.info.default // Info default (#2979FF base)
217
- theme.theme.sys.color.info.on // Text on info backgrounds
218
- theme.theme.sys.color.info.container // Info container backgrounds
219
- theme.theme.sys.color.info.onContainer // Text on info containers
220
- ```
221
-
222
- **Note**: All color roles follow the same pattern: `default`, `on`, `container`, `onContainer`
223
-
224
- ### Surface System
225
-
226
- Complete surface hierarchy with proper elevation:
227
-
228
- ```typescript
229
- // Base surfaces
230
- theme.theme.surface // Default surface
231
- theme.theme.surfaceDim // Dimmed surface
232
- theme.theme.surfaceBright // Bright surface
233
-
234
- // Container hierarchy
235
- theme.theme.surfaceContainerLowest // Lowest elevation
236
- theme.theme.surfaceContainerLow // Low elevation
237
- theme.theme.surfaceContainer // Default container
238
- theme.theme.surfaceContainerHigh // High elevation
239
- theme.theme.surfaceContainerHighest // Highest elevation
240
-
241
- // Fixed color variants (don't change with theme)
242
- theme.theme.primaryFixed // Fixed primary
243
- theme.theme.primaryFixedDim // Dimmed fixed primary
244
- theme.theme.onPrimaryFixed // Text on fixed primary
245
- theme.theme.onPrimaryFixedVariant
246
- // (Same for secondary, tertiary)
247
- ```
248
-
249
- ### Typography System
250
-
251
- Complete type scale with three axes:
252
-
253
- ```typescript
254
- // Display - Largest, for hero text
255
- theme.theme.typeface.scale.display.large // 57px
256
- theme.theme.typeface.scale.display.medium // 45px
257
- theme.theme.typeface.scale.display.small // 36px
258
-
259
- // Headline - For section headers
260
- theme.theme.typeface.scale.headline.large // 32px
261
- theme.theme.typeface.scale.headline.medium // 28px
262
- theme.theme.typeface.scale.headline.small // 24px
263
-
264
- // Title - For cards and lists
265
- theme.theme.typeface.scale.title.large // 22px
266
- theme.theme.typeface.scale.title.medium // 16px
267
- theme.theme.typeface.scale.title.small // 14px
268
-
269
- // Body - For content
270
- theme.theme.typeface.scale.body.large // 16px
271
- theme.theme.typeface.scale.body.medium // 14px
272
- theme.theme.typeface.scale.body.small // 12px
273
-
274
- // Label - For UI elements
275
- theme.theme.typeface.scale.label.large // 14px
276
- theme.theme.typeface.scale.label.medium // 12px
277
- theme.theme.typeface.scale.label.small // 11px
278
- ```
279
-
280
- ### Motion System
281
-
282
- Sophisticated animation tokens:
283
-
284
- ```typescript
285
- // Easing curves
286
- theme.theme.motion.easing.emphasized // Expressive motion
287
- theme.theme.motion.easing.emphasizedDecelerate // Enter animations
288
- theme.theme.motion.easing.emphasizedAccelerate // Exit animations
289
- theme.theme.motion.easing.standard // Standard transitions
290
- theme.theme.motion.easing.standardDecelerate
291
- theme.theme.motion.easing.standardAccelerate
292
- theme.theme.motion.easing.legacy // Backward compatibility
293
- theme.theme.motion.easing.linear // Constant speed
294
-
295
- // Duration scales (in ms)
296
- theme.theme.motion.duration.short1 // 50ms - Micro interactions
297
- theme.theme.motion.duration.short2 // 100ms
298
- theme.theme.motion.duration.short3 // 150ms
299
- theme.theme.motion.duration.short4 // 200ms
300
-
301
- theme.theme.motion.duration.medium1 // 250ms - Standard transitions
302
- theme.theme.motion.duration.medium2 // 300ms
303
- theme.theme.motion.duration.medium3 // 350ms
304
- theme.theme.motion.duration.medium4 // 400ms
305
-
306
- theme.theme.motion.duration.long1 // 450ms - Complex animations
307
- theme.theme.motion.duration.long2 // 500ms
308
- theme.theme.motion.duration.long3 // 550ms
309
- theme.theme.motion.duration.long4 // 600ms
310
-
311
- theme.theme.motion.duration.extraLong1 // 700ms - Dramatic effects
312
- theme.theme.motion.duration.extraLong2 // 800ms
313
- theme.theme.motion.duration.extraLong3 // 900ms
314
- theme.theme.motion.duration.extraLong4 // 1000ms
315
- ```
316
-
317
- ### Shape System
318
-
319
- Corner radius tokens:
320
-
321
- ```typescript
322
- theme.theme.shape.corner.none // 0px
323
- theme.theme.shape.corner.extraSmall // 4px
324
- theme.theme.shape.corner.small // 8px
325
- theme.theme.shape.corner.medium // 12px
326
- theme.theme.shape.corner.large // 16px
327
- theme.theme.shape.corner.extraLarge // 28px
328
- theme.theme.shape.corner.full // 9999px (pill shape)
329
- ```
330
-
331
- ### Elevation System
332
-
333
- Elevation with tinted shadows in dark mode:
334
-
335
- ```typescript
336
- theme.theme.elevation.level0 // Flat
337
- theme.theme.elevation.level1 // Cards
338
- theme.theme.elevation.level2 // Raised cards
339
- theme.theme.elevation.level3 // Floating action buttons
340
- theme.theme.elevation.level4 // Dialogs
341
- theme.theme.elevation.level5 // Highest elevation
342
-
343
- // In dark mode, shadows are tinted with primary color
344
- ```
345
-
346
- ### State Layer Opacities
347
-
348
- Interaction state opacities:
349
-
350
- ```typescript
351
- theme.theme.states.hover.stateLayerOpacity // 0.08
352
- theme.theme.states.focus.stateLayerOpacity // 0.1
353
- theme.theme.states.pressed.stateLayerOpacity // 0.1
354
- theme.theme.states.dragged.stateLayerOpacity // 0.15
355
- theme.theme.states.disabled.containerOpacity // 0.12
356
- theme.theme.states.disabled.contentOpacity // 0.38
357
- ```
358
-
359
- ### Spacing System
360
-
361
- 4dp grid spacing:
362
-
363
- ```typescript
364
- theme.theme.spacing.size.none // 0px
365
- theme.theme.spacing.size.s1 // 4px
366
- theme.theme.spacing.size.s2 // 8px
367
- theme.theme.spacing.size.s3 // 12px
368
- theme.theme.spacing.size.s4 // 16px
369
- theme.theme.spacing.size.s5 // 20px
370
- theme.theme.spacing.size.s6 // 24px
371
- theme.theme.spacing.size.s7 // 28px
372
- theme.theme.spacing.size.s8 // 32px
373
- theme.theme.spacing.size.s9 // 36px
374
- theme.theme.spacing.size.s10 // 40px
375
- theme.theme.spacing.size.s11 // 44px
376
- theme.theme.spacing.size.s12 // 48px
377
- ```
378
-
379
- ## State Management & Persistence
380
-
381
- The theme service uses a **persistent context** that automatically saves to localStorage:
382
-
383
- ```typescript
384
- // No manual localStorage code needed!
385
- // Settings persist automatically via context
386
-
387
- // The context key 'schmancy-theme-settings' stores:
388
- // - scheme: 'dark' | 'light' | 'auto'
389
- // - color: hex color string
390
-
391
- // Automatic restoration on page load
392
- // Just use the service - persistence is handled
393
- ```
394
-
395
- ## Theme Discovery Pattern
396
-
397
- The service uses a sophisticated bidirectional event system:
398
-
399
- ```typescript
400
- // Service dispatches discovery event
401
- dispatchEvent(new CustomEvent('ThemeWhereAreYou'))
402
-
403
- // Theme component responds
404
- dispatchEvent(new CustomEvent('ThemeHereIAm', {
405
- detail: themeComponent
406
- }))
407
-
408
- // Automatic registration with timeout
409
- theme.discoverTheme().pipe(
410
- timeout(1000), // 1 second timeout
411
- catchError(() => of(null))
412
- ).subscribe(component => {
413
- if (component) {
414
- console.log('Theme component found and registered')
415
- }
416
- })
417
- ```
418
-
419
- ## Advanced Patterns
420
-
421
- ### Activity Logging for Debugging
422
-
423
- ```typescript
424
- @customElement('theme-debugger')
425
- export class ThemeDebugger extends $LitElement() {
426
- @state() private activities: string[] = []
427
-
428
- connectedCallback() {
429
- super.connectedCallback()
430
-
431
- // Log all theme changes
432
- combineLatest([
433
- theme.scheme$,
434
- theme.color$,
435
- theme.fullscreen$
436
- ]).pipe(
437
- tap(([scheme, color, fullscreen]) => {
438
- const activity = `[${new Date().toLocaleTimeString()}] ` +
439
- `Scheme: ${scheme}, Color: ${color}, Fullscreen: ${fullscreen}`
440
- this.activities = [...this.activities, activity].slice(-10)
441
- }),
442
- takeUntil(this.disconnecting)
443
- ).subscribe()
444
- }
445
-
446
- render() {
447
- return html`
448
- <div class="font-mono text-xs">
449
- ${this.activities.map(a => html`<div>${a}</div>`)}
450
- </div>
451
- `
452
- }
453
- }
454
- ```
455
-
456
- ### Custom Color Presets with Categories
457
-
458
- ```typescript
459
- interface ColorPreset {
460
- category: string
461
- colors: Array<{ name: string; value: string }>
462
- }
463
-
464
- const presets: ColorPreset[] = [
465
- {
466
- category: 'Brand',
467
- colors: [
468
- { name: 'Primary', value: '#6750A4' },
469
- { name: 'Secondary', value: '#625B71' }
470
- ]
471
- },
472
- {
473
- category: 'Semantic',
474
- colors: [
475
- { name: 'Success', value: '#006E1C' },
476
- { name: 'Warning', value: '#FFB800' },
477
- { name: 'Error', value: '#BA1B1B' },
478
- { name: 'Info', value: '#0061A4' }
479
- ]
480
- }
481
- ]
482
-
483
- // Use in component
484
- html`
485
- ${presets.map(preset => html`
486
- <div>
487
- <h3>${preset.category}</h3>
488
- ${preset.colors.map(color => html`
489
- <button
490
- style="background: ${color.value}"
491
- @click=${() => theme.setColor(color.value)}
492
- title=${color.name}
493
- ></button>
494
- `)}
495
- </div>
496
- `)}
497
- `
498
- ```
499
-
500
- ### Animated Theme Transitions
501
-
502
- ```typescript
503
- @customElement('smooth-theme')
504
- export class SmoothTheme extends $LitElement(css`
505
- :host {
506
- transition: background-color
507
- var(--schmancy-motion-duration-medium2)
508
- var(--schmancy-motion-easing-standard);
509
- }
510
- `) {
511
- connectedCallback() {
512
- super.connectedCallback()
513
-
514
- // Apply smooth transitions using motion tokens
515
- theme.resolvedScheme$.pipe(
516
- tap(() => {
517
- // Background transitions automatically via CSS variables
518
- this.style.setProperty('background-color',
519
- 'var(--schmancy-color-surface)')
520
- }),
521
- takeUntil(this.disconnecting)
522
- ).subscribe()
523
- }
524
- }
525
- ```
526
-
527
- ### Responsive Theme Based on Time
528
-
529
- ```typescript
530
- @customElement('time-aware-theme')
531
- export class TimeAwareTheme extends $LitElement() {
532
- connectedCallback() {
533
- super.connectedCallback()
534
-
535
- // Auto-switch theme based on time
536
- interval(60000).pipe( // Check every minute
537
- startWith(0),
538
- map(() => new Date().getHours()),
539
- map(hour => hour >= 6 && hour < 18 ? 'light' : 'dark'),
540
- distinctUntilChanged(),
541
- tap(scheme => theme.setScheme(scheme)),
542
- takeUntil(this.disconnecting)
543
- ).subscribe()
544
- }
545
- }
7
+ <schmancy-theme color="#6200ee" scheme="auto" root>
8
+ <your-app></your-app>
9
+ </schmancy-theme>
546
10
  ```
547
11
 
548
- ### Theme-Aware Data Visualization
12
+ ## Properties
13
+ | Property | Type | Default | Description |
14
+ |----------|------|---------|-------------|
15
+ | `color` | `string` | Random hex | Primary source color in hex format (e.g. `#6200ee`) |
16
+ | `scheme` | `'dark' \| 'light' \| 'auto'` | `'auto'` | Color scheme. `auto` follows system preference |
17
+ | `root` | `boolean` | `false` | Apply CSS variables to `document.body` instead of shadow host |
18
+ | `locale` | `string` | `navigator.language` | Locale for number/date formatting (e.g. `de-DE`, `ar-SA`) |
19
+ | `name` | `string` | Auto-generated | Unique name for session storage persistence |
549
20
 
21
+ ## Theme Service (`theme`)
550
22
  ```typescript
551
- @customElement('theme-chart')
552
- export class ThemeChart extends $LitElement() {
553
- @state() private chartColors = {
554
- primary: '',
555
- surface: '',
556
- error: ''
557
- }
558
-
559
- connectedCallback() {
560
- super.connectedCallback()
561
-
562
- // Update chart colors when theme changes
563
- theme.theme$.pipe(
564
- tap(themeData => {
565
- this.chartColors = {
566
- primary: themeData.primary,
567
- surface: themeData.surface,
568
- error: themeData.error
569
- }
570
- this.updateChart()
571
- }),
572
- takeUntil(this.disconnecting)
573
- ).subscribe()
574
- }
575
-
576
- private updateChart() {
577
- // Use theme colors in charts/visualizations
578
- // Colors automatically adapt to light/dark mode
579
- }
580
- }
581
- ```
582
-
583
- ## Tailwind Utility Classes
584
-
585
- All theme colors are available as Tailwind utility classes with convenient aliases:
586
-
587
- ### Color Utility Aliases
588
-
589
- Base color names (e.g., `bg-primary`, `text-error`) are **aliases** to their `-default` variants:
590
-
591
- ```html
592
- <!-- These are IDENTICAL -->
593
- <div class="bg-primary">Primary</div>
594
- <div class="bg-primary-default">Primary</div>
595
-
596
- <div class="text-error">Error</div>
597
- <div class="text-error-default">Error</div>
598
-
599
- <div class="bg-warning">Warning</div>
600
- <div class="bg-warning-default">Warning</div>
601
-
602
- <div class="border-success">Success</div>
603
- <div class="border-success-default">Success</div>
604
- ```
605
-
606
- ### All Available Color Utilities
607
-
608
- **Core Colors** (primary, secondary, tertiary):
609
- ```html
610
- <!-- Background utilities -->
611
- <div class="bg-primary">Primary</div>
612
- <div class="bg-primary-default">Primary default (same as above)</div>
613
- <div class="bg-primary-container">Primary container</div>
614
- <div class="bg-on-primary">On primary</div>
615
- <div class="bg-on-primary-container">On primary container</div>
616
-
617
- <!-- Text utilities (same pattern) -->
618
- <div class="text-secondary">Secondary text</div>
619
- <div class="text-secondary-container">Secondary container text</div>
620
-
621
- <!-- Border utilities (same pattern) -->
622
- <div class="border-tertiary">Tertiary border</div>
623
- ```
624
-
625
- **Semantic Colors** (error, warning, success, info):
626
- ```html
627
- <!-- Error -->
628
- <div class="bg-error">Error</div>
629
- <div class="bg-error-container">Error container</div>
630
- <div class="text-error">Error text</div>
631
- <div class="text-on-error">On error text</div>
632
-
633
- <!-- Warning -->
634
- <div class="bg-warning">Warning</div>
635
- <div class="bg-warning-container">Warning container</div>
636
- <div class="text-warning">Warning text</div>
637
- <div class="border-warning">Warning border</div>
638
-
639
- <!-- Success -->
640
- <div class="bg-success">Success</div>
641
- <div class="bg-success-container">Success container</div>
642
-
643
- <!-- Info -->
644
- <div class="bg-info">Info</div>
645
- <div class="bg-info-container">Info container</div>
646
- ```
647
-
648
- **All utilities support standard Tailwind prefixes**:
649
- - `bg-*` - Background colors
650
- - `text-*` - Text colors
651
- - `border-*` - Border colors
652
- - `ring-*` - Ring colors
653
- - `decoration-*` - Text decoration colors
654
- - `divide-*` - Divider colors
655
- - `outline-*` - Outline colors
656
- - `fill-*` - SVG fill colors
657
- - `stroke-*` - SVG stroke colors
658
-
659
- ### Pattern Summary
660
-
661
- Every color role has **four variants**:
662
- 1. `{color}` or `{color}-default` - Main color (aliases)
663
- 2. `on-{color}` - Text/content on the color
664
- 3. `{color}-container` - Container/background variant
665
- 4. `on-{color}-container` - Text/content on container
666
-
667
- Applied to all colors:
668
- - **Core**: `primary`, `secondary`, `tertiary`
669
- - **Semantic**: `error`, `warning`, `success`, `info`
670
- - **Surfaces**: `surface`, `surface-dim`, `surface-bright`, `surface-container-*`
671
-
672
- ## Complete CSS Variable Reference
673
-
674
- All tokens are available as CSS variables with `--schmancy-` prefix:
675
-
676
- ### Color Variables
677
- ```css
678
- /* Core colors */
679
- --schmancy-color-primary
680
- --schmancy-color-onPrimary
681
- --schmancy-color-primaryContainer
682
- --schmancy-color-onPrimaryContainer
683
-
684
- --schmancy-color-secondary
685
- --schmancy-color-onSecondary
686
- --schmancy-color-secondaryContainer
687
- --schmancy-color-onSecondaryContainer
688
-
689
- --schmancy-color-tertiary
690
- --schmancy-color-onTertiary
691
- --schmancy-color-tertiaryContainer
692
- --schmancy-color-onTertiaryContainer
693
-
694
- --schmancy-color-error
695
- --schmancy-color-onError
696
- --schmancy-color-errorContainer
697
- --schmancy-color-onErrorContainer
698
-
699
- /* Extended semantic colors */
700
- --schmancy-color-success
701
- --schmancy-color-onSuccess
702
- --schmancy-color-successContainer
703
- --schmancy-color-onSuccessContainer
704
-
705
- --schmancy-color-warning
706
- --schmancy-color-onWarning
707
- --schmancy-color-warningContainer
708
- --schmancy-color-onWarningContainer
709
-
710
- --schmancy-color-info
711
- --schmancy-color-onInfo
712
- --schmancy-color-infoContainer
713
- --schmancy-color-onInfoContainer
714
-
715
- /* Surface hierarchy */
716
- --schmancy-color-surface
717
- --schmancy-color-onSurface
718
- --schmancy-color-surfaceVariant
719
- --schmancy-color-onSurfaceVariant
720
- --schmancy-color-surfaceDim
721
- --schmancy-color-surfaceBright
722
- --schmancy-color-surfaceContainerLowest
723
- --schmancy-color-surfaceContainerLow
724
- --schmancy-color-surfaceContainer
725
- --schmancy-color-surfaceContainerHigh
726
- --schmancy-color-surfaceContainerHighest
727
-
728
- /* Fixed variants */
729
- --schmancy-color-primaryFixed
730
- --schmancy-color-primaryFixedDim
731
- --schmancy-color-onPrimaryFixed
732
- --schmancy-color-onPrimaryFixedVariant
733
- /* (Same pattern for secondary, tertiary) */
734
-
735
- /* Other */
736
- --schmancy-color-outline
737
- --schmancy-color-outlineVariant
738
- --schmancy-color-shadow
739
- --schmancy-color-scrim
740
- --schmancy-color-inverseSurface
741
- --schmancy-color-inverseOnSurface
742
- --schmancy-color-inversePrimary
743
- ```
744
-
745
- ### Typography Variables
746
- ```css
747
- /* Display scale */
748
- --schmancy-typeface-scale-display-large
749
- --schmancy-typeface-scale-display-medium
750
- --schmancy-typeface-scale-display-small
751
-
752
- /* Headline scale */
753
- --schmancy-typeface-scale-headline-large
754
- --schmancy-typeface-scale-headline-medium
755
- --schmancy-typeface-scale-headline-small
756
-
757
- /* Title scale */
758
- --schmancy-typeface-scale-title-large
759
- --schmancy-typeface-scale-title-medium
760
- --schmancy-typeface-scale-title-small
761
-
762
- /* Body scale */
763
- --schmancy-typeface-scale-body-large
764
- --schmancy-typeface-scale-body-medium
765
- --schmancy-typeface-scale-body-small
766
-
767
- /* Label scale */
768
- --schmancy-typeface-scale-label-large
769
- --schmancy-typeface-scale-label-medium
770
- --schmancy-typeface-scale-label-small
771
- ```
772
-
773
- ### Motion Variables
774
- ```css
775
- /* Easing curves */
776
- --schmancy-motion-easing-emphasized
777
- --schmancy-motion-easing-emphasizedDecelerate
778
- --schmancy-motion-easing-emphasizedAccelerate
779
- --schmancy-motion-easing-standard
780
- --schmancy-motion-easing-standardDecelerate
781
- --schmancy-motion-easing-standardAccelerate
782
- --schmancy-motion-easing-legacy
783
- --schmancy-motion-easing-linear
23
+ import { theme } from '@mhmo91/schmancy'
784
24
 
785
- /* Duration scales */
786
- --schmancy-motion-duration-short1 /* 50ms */
787
- --schmancy-motion-duration-short2 /* 100ms */
788
- --schmancy-motion-duration-short3 /* 150ms */
789
- --schmancy-motion-duration-short4 /* 200ms */
25
+ theme.scheme // 'dark' | 'light' | 'auto' (sync)
26
+ theme.color // Current hex color (sync)
27
+ theme.scheme$ // Observable<string>
28
+ theme.resolvedScheme$ // Observable<'dark'|'light'> (resolves 'auto')
790
29
 
791
- --schmancy-motion-duration-medium1 /* 250ms */
792
- --schmancy-motion-duration-medium2 /* 300ms */
793
- --schmancy-motion-duration-medium3 /* 350ms */
794
- --schmancy-motion-duration-medium4 /* 400ms */
795
-
796
- --schmancy-motion-duration-long1 /* 450ms */
797
- --schmancy-motion-duration-long2 /* 500ms */
798
- --schmancy-motion-duration-long3 /* 550ms */
799
- --schmancy-motion-duration-long4 /* 600ms */
800
-
801
- --schmancy-motion-duration-extraLong1 /* 700ms */
802
- --schmancy-motion-duration-extraLong2 /* 800ms */
803
- --schmancy-motion-duration-extraLong3 /* 900ms */
804
- --schmancy-motion-duration-extraLong4 /* 1000ms */
805
- ```
806
-
807
- ### Shape Variables
808
- ```css
809
- --schmancy-shape-corner-none /* 0px */
810
- --schmancy-shape-corner-extraSmall /* 4px */
811
- --schmancy-shape-corner-small /* 8px */
812
- --schmancy-shape-corner-medium /* 12px */
813
- --schmancy-shape-corner-large /* 16px */
814
- --schmancy-shape-corner-extraLarge /* 28px */
815
- --schmancy-shape-corner-full /* 9999px */
816
- ```
817
-
818
- ### Elevation Variables
819
- ```css
820
- --schmancy-elevation-level0
821
- --schmancy-elevation-level1
822
- --schmancy-elevation-level2
823
- --schmancy-elevation-level3
824
- --schmancy-elevation-level4
825
- --schmancy-elevation-level5
826
- ```
827
-
828
- ### State Variables
829
- ```css
830
- --schmancy-states-hover-stateLayerOpacity /* 0.08 */
831
- --schmancy-states-focus-stateLayerOpacity /* 0.1 */
832
- --schmancy-states-pressed-stateLayerOpacity /* 0.1 */
833
- --schmancy-states-dragged-stateLayerOpacity /* 0.15 */
834
- --schmancy-states-disabled-containerOpacity /* 0.12 */
835
- --schmancy-states-disabled-contentOpacity /* 0.38 */
836
- ```
837
-
838
- ### Spacing Variables
839
- ```css
840
- --schmancy-spacing-size-none /* 0px */
841
- --schmancy-spacing-size-s1 /* 4px */
842
- --schmancy-spacing-size-s2 /* 8px */
843
- --schmancy-spacing-size-s3 /* 12px */
844
- --schmancy-spacing-size-s4 /* 16px */
845
- --schmancy-spacing-size-s5 /* 20px */
846
- --schmancy-spacing-size-s6 /* 24px */
847
- --schmancy-spacing-size-s7 /* 28px */
848
- --schmancy-spacing-size-s8 /* 32px */
849
- --schmancy-spacing-size-s9 /* 36px */
850
- --schmancy-spacing-size-s10 /* 40px */
851
- --schmancy-spacing-size-s11 /* 44px */
852
- --schmancy-spacing-size-s12 /* 48px */
853
- ```
854
-
855
- ## Fullscreen Integration
856
-
857
- Navigation components automatically respond to fullscreen:
858
-
859
- ```typescript
860
- // Enter fullscreen (hides navigation)
30
+ theme.setScheme('dark')
31
+ theme.setColor('#2196f3')
32
+ theme.toggleScheme()
33
+ theme.isDarkMode() // Observable<boolean>
861
34
  theme.setFullscreen(true)
862
-
863
- // Custom component integration
864
- fromEvent(window, 'fullscreen').pipe(
865
- tap((e: CustomEvent) => {
866
- this.hidden = e.detail
867
- }),
868
- takeUntil(this.disconnecting)
869
- ).subscribe()
870
- ```
871
-
872
- ## System Preference Detection
873
-
874
- Auto mode follows system preferences with automatic updates:
875
-
876
- ```typescript
877
- // Set to auto - follows system preference
878
- theme.setScheme('auto')
879
-
880
- // resolvedScheme$ automatically updates when system changes
881
- // Uses MediaQueryList with listeners for real-time updates
882
- theme.resolvedScheme$.subscribe(scheme => {
883
- // Always 'dark' or 'light', never 'auto'
884
- // Updates immediately when user changes OS theme
885
- })
886
- ```
887
-
888
- ## Best Practices
889
-
890
- 1. **Always use observables** for reactive updates
891
- 2. **Prefer `resolvedScheme$`** over `scheme$` for UI logic (never returns 'auto')
892
- 3. **Use `next()` method** for batch updates to avoid multiple emissions
893
- 4. **Let theme persist automatically** - no manual localStorage needed
894
- 5. **Use motion tokens** for consistent animations across the app
895
- 6. **Leverage extended colors** (success, warning, info) for semantic meaning
896
- 7. **Use surface hierarchy** for proper elevation and depth
897
- 8. **Apply state opacities** for consistent interaction feedback
898
- 9. **Call `super.connectedCallback()`** when subscribing to observables
899
- 10. **Use `takeUntil(this.disconnecting)`** for proper cleanup
900
-
901
- ## Common Patterns
902
-
903
- ### Complete Theme Toggle Component
904
- ```typescript
905
- @customElement('advanced-theme-toggle')
906
- export class AdvancedThemeToggle extends $LitElement() {
907
- @state() private resolvedScheme: 'dark' | 'light' = 'light'
908
- @state() private actualScheme: string = 'auto'
909
-
910
- connectedCallback() {
911
- super.connectedCallback()
912
-
913
- // Track both actual and resolved scheme
914
- combineLatest([
915
- theme.scheme$,
916
- theme.resolvedScheme$
917
- ]).pipe(
918
- tap(([scheme, resolved]) => {
919
- this.actualScheme = scheme
920
- this.resolvedScheme = resolved
921
- }),
922
- takeUntil(this.disconnecting)
923
- ).subscribe()
924
- }
925
-
926
- render() {
927
- return html`
928
- <div class="flex gap-2">
929
- <button
930
- @click=${() => theme.setScheme('light')}
931
- class=${this.actualScheme === 'light' ? 'active' : ''}
932
- >
933
- ☀️ Light
934
- </button>
935
- <button
936
- @click=${() => theme.setScheme('dark')}
937
- class=${this.actualScheme === 'dark' ? 'active' : ''}
938
- >
939
- 🌙 Dark
940
- </button>
941
- <button
942
- @click=${() => theme.setScheme('auto')}
943
- class=${this.actualScheme === 'auto' ? 'active' : ''}
944
- >
945
- 🔄 Auto (${this.resolvedScheme})
946
- </button>
947
- </div>
948
- `
949
- }
950
- }
951
- ```
952
-
953
- ### Fullscreen Video Player
954
- ```typescript
955
- @customElement('video-player')
956
- export class VideoPlayer extends $LitElement() {
957
- private videoRef = createRef<HTMLVideoElement>()
958
-
959
- private enterFullscreen() {
960
- theme.setFullscreen(true)
961
- this.videoRef.value?.requestFullscreen()
962
- }
963
-
964
- private exitFullscreen() {
965
- theme.setFullscreen(false)
966
- document.exitFullscreen()
967
- }
968
-
969
- render() {
970
- return html`
971
- <video ${ref(this.videoRef)}>
972
- <!-- Video content -->
973
- </video>
974
- `
975
- }
976
- }
977
35
  ```
978
36
 
979
- ### Dynamic Motion Timing
980
- ```typescript
981
- @customElement('animated-component')
982
- export class AnimatedComponent extends $LitElement() {
983
- @state() private isExpanded = false
984
-
985
- render() {
986
- return html`
987
- <style>
988
- .panel {
989
- transition: height
990
- var(--schmancy-motion-duration-medium2)
991
- var(--schmancy-motion-easing-emphasized);
992
- }
993
-
994
- .fade-in {
995
- animation: fadeIn
996
- var(--schmancy-motion-duration-short3)
997
- var(--schmancy-motion-easing-emphasizedDecelerate);
998
- }
999
-
1000
- @keyframes fadeIn {
1001
- from { opacity: 0; }
1002
- to { opacity: 1; }
1003
- }
1004
- </style>
1005
-
1006
- <div class="panel ${this.isExpanded ? 'expanded' : ''}">
1007
- <!-- Content with smooth animations -->
1008
- </div>
1009
- `
1010
- }
1011
- }
1012
- ```
1013
-
1014
- ## Integration with Theme Component
1015
-
1016
- The service works bidirectionally with `<schmancy-theme>` component:
1017
-
37
+ ## Examples
1018
38
  ```html
1019
- <schmancy-theme color="#6750A4" scheme="auto">
1020
- <!-- All children have access to theme tokens -->
39
+ <!-- App root with dark blue theme -->
40
+ <schmancy-theme color="#1565c0" scheme="dark" root>
41
+ <my-app></my-app>
1021
42
  </schmancy-theme>
1022
- ```
1023
-
1024
- Component automatically:
1025
- - Registers with service via discovery events
1026
- - Syncs state bidirectionally
1027
- - Generates full M3 token system
1028
- - Updates CSS variables in real-time
1029
- - Persists settings to localStorage
1030
-
1031
- ## Error Handling
1032
-
1033
- ```typescript
1034
- // Graceful fallback when theme component is missing
1035
- theme.discoverTheme().pipe(
1036
- timeout(1000),
1037
- catchError(() => {
1038
- console.warn('Theme component not found, using defaults')
1039
- return of(null)
1040
- })
1041
- ).subscribe()
1042
43
 
1043
- // Validate color input
1044
- const isValidHex = (color: string) => /^#[0-9A-F]{6}$/i.test(color)
1045
-
1046
- if (isValidHex(newColor)) {
1047
- theme.setColor(newColor)
1048
- } else {
1049
- console.error('Invalid color format')
1050
- }
1051
- ```
1052
-
1053
- ## Performance Considerations
1054
-
1055
- 1. **Token Generation**: Full M3 theme is generated once per color change
1056
- 2. **CSS Variables**: Updated atomically via `adoptedStyleSheets`
1057
- 3. **Persistence**: Debounced writes to localStorage (via context)
1058
- 4. **Discovery**: One-time discovery with 1s timeout
1059
- 5. **MediaQuery**: Single listener for system preference changes
1060
- 6. **Observables**: Multicast for efficient subscriptions
1061
-
1062
- ## Migration Guide
1063
-
1064
- From manual theme management:
1065
- ```typescript
1066
- // Old way
1067
- localStorage.setItem('theme', 'dark')
1068
- document.body.classList.add('dark-theme')
1069
-
1070
- // New way
1071
- theme.setScheme('dark') // Automatic persistence & styling
1072
- ```
1073
-
1074
- From custom CSS variables:
1075
- ```typescript
1076
- // Old way
1077
- :root {
1078
- --primary: #6750A4;
1079
- }
44
+ <!-- Nested theme override for a section -->
45
+ <schmancy-theme color="#e91e63" scheme="light">
46
+ <div class="accent-section">...</div>
47
+ </schmancy-theme>
1080
48
 
1081
- // New way - Full M3 system generated
1082
- theme.setColor('#6750A4') // Generates 100+ tokens
49
+ <!-- Arabic locale -->
50
+ <schmancy-theme color="#4caf50" locale="ar-SA" root>
51
+ <my-app></my-app>
52
+ </schmancy-theme>
1083
53
  ```
1084
54
 
1085
- ## Summary
1086
-
1087
- The theme service provides a complete Material Design 3 implementation with:
1088
- - 🎨 **Extended color system** with semantic colors (error, warning, success, info)
1089
- - 🎨 **Tailwind utilities** with convenient aliases (`bg-primary` = `bg-primary-default`)
1090
- - 📐 **Complete surface hierarchy** for proper elevation
1091
- - 🔤 **Full typography scale** across 5 categories
1092
- - 🎬 **Sophisticated motion system** with easing and duration
1093
- - 🔲 **Shape tokens** for consistent corner radii
1094
- - 💾 **Automatic persistence** via context
1095
- - 🔍 **Smart discovery** with bidirectional events
1096
- - 🌓 **System preference detection** with real-time updates
1097
- - 🎯 **Ready-to-use controls** component
1098
- - ⚡ **Reactive observables** for all properties
1099
-
1100
- Use the theme service as your single source of truth for all design tokens and theming needs.
1101
-
1102
- ### Quick Reference
1103
-
1104
- **Colors**: primary, secondary, tertiary, error, warning, success, info
1105
- **Each color has**: default, on, container, onContainer variants
1106
- **Tailwind**: All colors work with bg-*, text-*, border-*, ring-* prefixes
1107
- **Aliases**: Base names (e.g., `bg-error`) automatically resolve to `-default` variants
55
+ ## Notes
56
+ - Color and scheme persist to `sessionStorage` per instance
57
+ - Generates success/warning/info/error semantic color tokens automatically
58
+ - Wraps content in a `schmancy-container` with `containerLowest` surface