@mhmo91/schmancy 0.2.194 → 0.2.196

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 (328) hide show
  1. package/ai/animated-text.md +114 -0
  2. package/ai/area.md +158 -78
  3. package/ai/card.md +162 -131
  4. package/ai/circular-progress.md +91 -0
  5. package/ai/content-drawer.md +190 -0
  6. package/ai/date-range.md +142 -0
  7. package/ai/delay.md +158 -0
  8. package/ai/dialog.md +10 -0
  9. package/ai/divider.md +153 -0
  10. package/ai/index.md +43 -3
  11. package/ai/nav-drawer.md +206 -0
  12. package/ai/option.md +173 -0
  13. package/ai/slider.md +227 -0
  14. package/ai/steps.md +231 -0
  15. package/ai/surface.md +139 -200
  16. package/ai/table.md +99 -1
  17. package/ai/teleport.md +196 -0
  18. package/ai/theme-button.md +173 -0
  19. package/ai/theme.md +241 -0
  20. package/ai/typewriter.md +217 -0
  21. package/dist/_headers +2 -0
  22. package/dist/ai/animated-text.md +114 -0
  23. package/dist/ai/area.md +158 -78
  24. package/dist/ai/card.md +162 -131
  25. package/dist/ai/circular-progress.md +91 -0
  26. package/dist/ai/content-drawer.md +190 -0
  27. package/dist/ai/date-range.md +142 -0
  28. package/dist/ai/delay.md +158 -0
  29. package/dist/ai/dialog.md +10 -0
  30. package/dist/ai/divider.md +153 -0
  31. package/dist/ai/index.md +43 -3
  32. package/dist/ai/nav-drawer.md +206 -0
  33. package/dist/ai/option.md +173 -0
  34. package/dist/ai/slider.md +227 -0
  35. package/dist/ai/steps.md +231 -0
  36. package/dist/ai/surface.md +139 -200
  37. package/dist/ai/table.md +99 -1
  38. package/dist/ai/teleport.md +196 -0
  39. package/dist/ai/theme-button.md +173 -0
  40. package/dist/ai/theme.md +241 -0
  41. package/dist/ai/typewriter.md +217 -0
  42. package/dist/{animated-text-9AM64DHd.cjs → animated-text-DnX2TopW.cjs} +2 -2
  43. package/dist/{animated-text-9AM64DHd.cjs.map → animated-text-DnX2TopW.cjs.map} +1 -1
  44. package/dist/{animated-text-CVStWn5N.js → animated-text-jv1yAwLh.js} +3 -3
  45. package/dist/{animated-text-CVStWn5N.js.map → animated-text-jv1yAwLh.js.map} +1 -1
  46. package/dist/animated-text.cjs +1 -1
  47. package/dist/animated-text.js +1 -1
  48. package/dist/area.cjs +1 -1
  49. package/dist/area.component-DMD20wqd.js +191 -0
  50. package/dist/area.component-DMD20wqd.js.map +1 -0
  51. package/dist/area.component-Vs2WGXgk.cjs +8 -0
  52. package/dist/area.component-Vs2WGXgk.cjs.map +1 -0
  53. package/dist/area.js +21 -6
  54. package/dist/area.js.map +1 -1
  55. package/dist/{autocomplete-DBXvIJgc.cjs → autocomplete-BrAxEJJq.cjs} +2 -2
  56. package/dist/{autocomplete-DBXvIJgc.cjs.map → autocomplete-BrAxEJJq.cjs.map} +1 -1
  57. package/dist/{autocomplete-ih92pPkb.js → autocomplete-OS61ngsy.js} +3 -3
  58. package/dist/{autocomplete-ih92pPkb.js.map → autocomplete-OS61ngsy.js.map} +1 -1
  59. package/dist/autocomplete.cjs +1 -1
  60. package/dist/autocomplete.js +1 -1
  61. package/dist/{avatar-Bmg5TXj9.cjs → avatar-CEdv8DJY.cjs} +62 -24
  62. package/dist/avatar-CEdv8DJY.cjs.map +1 -0
  63. package/dist/{avatar-CgP1tBZq.js → avatar-CUHTDenQ.js} +183 -145
  64. package/dist/avatar-CUHTDenQ.js.map +1 -0
  65. package/dist/badge.cjs +1 -1
  66. package/dist/badge.js +1 -1
  67. package/dist/busy.cjs +1 -1
  68. package/dist/busy.js +1 -1
  69. package/dist/button.cjs +1 -1
  70. package/dist/button.js +1 -1
  71. package/dist/card.cjs +1 -1
  72. package/dist/card.js +1 -1
  73. package/dist/{checkbox-Jxxbjxp0.js → checkbox-CVXRiSWP.js} +72 -65
  74. package/dist/{checkbox-Jxxbjxp0.js.map → checkbox-CVXRiSWP.js.map} +1 -1
  75. package/dist/{checkbox-DtnX5sT6.cjs → checkbox-Chd-COYm.cjs} +10 -10
  76. package/dist/{checkbox-DtnX5sT6.cjs.map → checkbox-Chd-COYm.cjs.map} +1 -1
  77. package/dist/checkbox.cjs +1 -1
  78. package/dist/checkbox.js +1 -1
  79. package/dist/{chips-CVDnpVUM.cjs → chips-Bx9gSvN1.cjs} +2 -2
  80. package/dist/{chips-CVDnpVUM.cjs.map → chips-Bx9gSvN1.cjs.map} +1 -1
  81. package/dist/{chips-lP7ohQep.js → chips-Dx_erk55.js} +3 -3
  82. package/dist/{chips-lP7ohQep.js.map → chips-Dx_erk55.js.map} +1 -1
  83. package/dist/chips.cjs +1 -1
  84. package/dist/chips.js +1 -1
  85. package/dist/circular-progress-BQnGvbss.js +35 -0
  86. package/dist/circular-progress-BQnGvbss.js.map +1 -0
  87. package/dist/circular-progress-CNBah5dz.cjs +9 -0
  88. package/dist/circular-progress-CNBah5dz.cjs.map +1 -0
  89. package/dist/circular-progress.cjs +2 -0
  90. package/dist/circular-progress.cjs.map +1 -0
  91. package/dist/circular-progress.js +5 -0
  92. package/dist/circular-progress.js.map +1 -0
  93. package/dist/components.cjs +1 -1
  94. package/dist/components.js +1 -1
  95. package/dist/content-drawer.cjs +1 -1
  96. package/dist/content-drawer.js +1 -1
  97. package/dist/{date-range-DbPA5Y-t.cjs → date-range-Cq0diVSY.cjs} +4 -3
  98. package/dist/{date-range-DbPA5Y-t.cjs.map → date-range-Cq0diVSY.cjs.map} +1 -1
  99. package/dist/{date-range-Ca9WLI4Q.js → date-range-wxdt6Ha0.js} +5 -4
  100. package/dist/date-range-wxdt6Ha0.js.map +1 -0
  101. package/dist/date-range.cjs +1 -1
  102. package/dist/date-range.js +1 -1
  103. package/dist/{delay-BgNgQV2G.cjs → delay-BzkhDhs0.cjs} +2 -2
  104. package/dist/{delay-BgNgQV2G.cjs.map → delay-BzkhDhs0.cjs.map} +1 -1
  105. package/dist/{delay-5cCl7ji3.js → delay-Ds5suSsc.js} +2 -2
  106. package/dist/{delay-5cCl7ji3.js.map → delay-Ds5suSsc.js.map} +1 -1
  107. package/dist/delay.cjs +1 -1
  108. package/dist/delay.js +1 -1
  109. package/dist/{dialog-content-qj1E8aye.cjs → dialog-content-CJY69qfC.cjs} +8 -8
  110. package/dist/dialog-content-CJY69qfC.cjs.map +1 -0
  111. package/dist/{dialog-content-9pumpyLD.js → dialog-content-DFJnYzff.js} +86 -82
  112. package/dist/dialog-content-DFJnYzff.js.map +1 -0
  113. package/dist/dialog.cjs +1 -1
  114. package/dist/dialog.js +1 -1
  115. package/dist/{divider-r8-9eNnl.js → divider-C3w1_-N1.js} +3 -3
  116. package/dist/{divider-r8-9eNnl.js.map → divider-C3w1_-N1.js.map} +1 -1
  117. package/dist/{divider-CHckHGEQ.cjs → divider-CFzbCFsr.cjs} +2 -2
  118. package/dist/{divider-CHckHGEQ.cjs.map → divider-CFzbCFsr.cjs.map} +1 -1
  119. package/dist/divider.cjs +1 -1
  120. package/dist/divider.js +1 -1
  121. package/dist/{dropdown-content-D-TddflQ.js → dropdown-content-BGFYBXcx.js} +3 -3
  122. package/dist/{dropdown-content-D-TddflQ.js.map → dropdown-content-BGFYBXcx.js.map} +1 -1
  123. package/dist/{dropdown-content-B41MDDRG.cjs → dropdown-content-PaMOJphI.cjs} +2 -2
  124. package/dist/{dropdown-content-B41MDDRG.cjs.map → dropdown-content-PaMOJphI.cjs.map} +1 -1
  125. package/dist/dropdown.cjs +1 -1
  126. package/dist/dropdown.js +1 -1
  127. package/dist/extra.cjs +1 -1
  128. package/dist/extra.js +1 -1
  129. package/dist/{flex-Bf0zNqji.js → flex-Cy4Stl_1.js} +2 -2
  130. package/dist/{flex-Bf0zNqji.js.map → flex-Cy4Stl_1.js.map} +1 -1
  131. package/dist/{flex-CFv-Zb76.cjs → flex-DP5O5644.cjs} +2 -2
  132. package/dist/{flex-CFv-Zb76.cjs.map → flex-DP5O5644.cjs.map} +1 -1
  133. package/dist/{form-uYcr1RLJ.js → form-BQamcLFL.js} +2 -2
  134. package/dist/{form-uYcr1RLJ.js.map → form-BQamcLFL.js.map} +1 -1
  135. package/dist/{form-BN75s0PI.cjs → form-CG3kns69.cjs} +2 -2
  136. package/dist/{form-BN75s0PI.cjs.map → form-CG3kns69.cjs.map} +1 -1
  137. package/dist/form.cjs +1 -1
  138. package/dist/form.js +1 -1
  139. package/dist/{icon-BR-jE0Y2.js → icon-Cd4p9jRB.js} +3 -3
  140. package/dist/{icon-BR-jE0Y2.js.map → icon-Cd4p9jRB.js.map} +1 -1
  141. package/dist/{icon-Cu-imayV.cjs → icon-CilwMTXB.cjs} +2 -2
  142. package/dist/{icon-Cu-imayV.cjs.map → icon-CilwMTXB.cjs.map} +1 -1
  143. package/dist/{icon-button-1tZaicyb.js → icon-button-By17is4V.js} +3 -3
  144. package/dist/{icon-button-1tZaicyb.js.map → icon-button-By17is4V.js.map} +1 -1
  145. package/dist/{icon-button-D0BbHnDL.cjs → icon-button-C4Hf63hY.cjs} +2 -2
  146. package/dist/{icon-button-D0BbHnDL.cjs.map → icon-button-C4Hf63hY.cjs.map} +1 -1
  147. package/dist/icons.cjs +1 -1
  148. package/dist/icons.js +1 -1
  149. package/dist/index.cjs +1 -1
  150. package/dist/index.js +190 -173
  151. package/dist/index.js.map +1 -1
  152. package/dist/{input-B2oV6Hck.cjs → input-BIi0rS2t.cjs} +2 -2
  153. package/dist/{input-B2oV6Hck.cjs.map → input-BIi0rS2t.cjs.map} +1 -1
  154. package/dist/{input-kiz5O3dY.js → input-C8OAokVe.js} +2 -2
  155. package/dist/{input-kiz5O3dY.js.map → input-C8OAokVe.js.map} +1 -1
  156. package/dist/input.cjs +1 -1
  157. package/dist/input.js +1 -1
  158. package/dist/layout.cjs +1 -1
  159. package/dist/layout.js +1 -1
  160. package/dist/{list-wT4DLXCh.js → list-BC3OE3Pu.js} +2 -2
  161. package/dist/{list-wT4DLXCh.js.map → list-BC3OE3Pu.js.map} +1 -1
  162. package/dist/{list-CMHoPfX9.cjs → list-jFsCubuy.cjs} +2 -2
  163. package/dist/{list-CMHoPfX9.cjs.map → list-jFsCubuy.cjs.map} +1 -1
  164. package/dist/list.cjs +1 -1
  165. package/dist/list.js +1 -1
  166. package/dist/{litElement.mixin-B9Qdq5S_.js → litElement.mixin-C6PzcPXd.js} +2 -2
  167. package/dist/{litElement.mixin-B9Qdq5S_.js.map → litElement.mixin-C6PzcPXd.js.map} +1 -1
  168. package/dist/{litElement.mixin-CHvyxfxf.cjs → litElement.mixin-Cypiq-N-.cjs} +2 -2
  169. package/dist/{litElement.mixin-CHvyxfxf.cjs.map → litElement.mixin-Cypiq-N-.cjs.map} +1 -1
  170. package/dist/{menu-BcSplMNh.cjs → menu-CDjqdEd6.cjs} +2 -2
  171. package/dist/{menu-BcSplMNh.cjs.map → menu-CDjqdEd6.cjs.map} +1 -1
  172. package/dist/{menu-Dl1QU86K.js → menu-n_Doj-bW.js} +3 -3
  173. package/dist/{menu-Dl1QU86K.js.map → menu-n_Doj-bW.js.map} +1 -1
  174. package/dist/menu.cjs +1 -1
  175. package/dist/menu.js +1 -1
  176. package/dist/nav-drawer.cjs +1 -1
  177. package/dist/nav-drawer.js +1 -1
  178. package/dist/{notification-service-BV9ybQBu.cjs → notification-service--VLqOJJg.cjs} +2 -2
  179. package/dist/{notification-service-BV9ybQBu.cjs.map → notification-service--VLqOJJg.cjs.map} +1 -1
  180. package/dist/{notification-service-CC698xHg.js → notification-service-DHIhgWQr.js} +3 -3
  181. package/dist/{notification-service-CC698xHg.js.map → notification-service-DHIhgWQr.js.map} +1 -1
  182. package/dist/notification.cjs +1 -1
  183. package/dist/notification.js +1 -1
  184. package/dist/{option-CkLBgH71.cjs → option-B359EBiZ.cjs} +2 -2
  185. package/dist/{option-CkLBgH71.cjs.map → option-B359EBiZ.cjs.map} +1 -1
  186. package/dist/{option-DDxxXwwc.js → option-oyyjCwnL.js} +2 -2
  187. package/dist/{option-DDxxXwwc.js.map → option-oyyjCwnL.js.map} +1 -1
  188. package/dist/option.cjs +1 -1
  189. package/dist/option.js +1 -1
  190. package/dist/{payment-card-form-UWbAYNPR.cjs → payment-card-form-B-ZAsSED.cjs} +2 -2
  191. package/dist/{payment-card-form-UWbAYNPR.cjs.map → payment-card-form-B-ZAsSED.cjs.map} +1 -1
  192. package/dist/{payment-card-form-DDTO5_AA.js → payment-card-form-BSueaw97.js} +3 -3
  193. package/dist/{payment-card-form-DDTO5_AA.js.map → payment-card-form-BSueaw97.js.map} +1 -1
  194. package/dist/{radio-button-wWoxPDfq.js → radio-button-84TD7rpH.js} +2 -2
  195. package/dist/{radio-button-wWoxPDfq.js.map → radio-button-84TD7rpH.js.map} +1 -1
  196. package/dist/{radio-button-BykiVxTD.cjs → radio-button-BO6mIWCi.cjs} +2 -2
  197. package/dist/{radio-button-BykiVxTD.cjs.map → radio-button-BO6mIWCi.cjs.map} +1 -1
  198. package/dist/radio-group.cjs +1 -1
  199. package/dist/radio-group.js +1 -1
  200. package/dist/{schmancy-steps-container-B1mIGa9M.cjs → schmancy-steps-container-Cfq8OsWt.cjs} +2 -2
  201. package/dist/{schmancy-steps-container-B1mIGa9M.cjs.map → schmancy-steps-container-Cfq8OsWt.cjs.map} +1 -1
  202. package/dist/{schmancy-steps-container-ByO98z7L.js → schmancy-steps-container-Lo4d27n3.js} +2 -2
  203. package/dist/{schmancy-steps-container-ByO98z7L.js.map → schmancy-steps-container-Lo4d27n3.js.map} +1 -1
  204. package/dist/{select-BIOhocL7.js → select-B-zgP_v6.js} +3 -3
  205. package/dist/{select-BIOhocL7.js.map → select-B-zgP_v6.js.map} +1 -1
  206. package/dist/{select-DE57Nios.cjs → select-DhEVsWh6.cjs} +2 -2
  207. package/dist/{select-DE57Nios.cjs.map → select-DhEVsWh6.cjs.map} +1 -1
  208. package/dist/select.cjs +1 -1
  209. package/dist/select.js +1 -1
  210. package/dist/{sheet-fZYAWGsm.cjs → sheet-BEWq40cN.cjs} +2 -2
  211. package/dist/{sheet-fZYAWGsm.cjs.map → sheet-BEWq40cN.cjs.map} +1 -1
  212. package/dist/{sheet-Dh4MLVsU.js → sheet-DDY4pbD4.js} +3 -3
  213. package/dist/{sheet-Dh4MLVsU.js.map → sheet-DDY4pbD4.js.map} +1 -1
  214. package/dist/sheet.cjs +1 -1
  215. package/dist/sheet.js +1 -1
  216. package/dist/{slider-DVlJoDgU.js → slider--irxEv_B.js} +3 -3
  217. package/dist/{slider-DVlJoDgU.js.map → slider--irxEv_B.js.map} +1 -1
  218. package/dist/{slider-CejrdmPF.cjs → slider-De-H5fe8.cjs} +2 -2
  219. package/dist/{slider-CejrdmPF.cjs.map → slider-De-H5fe8.cjs.map} +1 -1
  220. package/dist/slider.cjs +1 -1
  221. package/dist/slider.js +1 -1
  222. package/dist/{spinner-DbTnai_Q.js → spinner-Bl9n09Z5.js} +3 -3
  223. package/dist/{spinner-DbTnai_Q.js.map → spinner-Bl9n09Z5.js.map} +1 -1
  224. package/dist/{spinner-DxVJ7QJZ.cjs → spinner-DNz1IjmL.cjs} +2 -2
  225. package/dist/{spinner-DxVJ7QJZ.cjs.map → spinner-DNz1IjmL.cjs.map} +1 -1
  226. package/dist/steps.cjs +1 -1
  227. package/dist/steps.js +1 -1
  228. package/dist/surface-BAEUiWcq.cjs +92 -0
  229. package/dist/surface-BAEUiWcq.cjs.map +1 -0
  230. package/dist/surface-h9dLHMTm.js +113 -0
  231. package/dist/surface-h9dLHMTm.js.map +1 -0
  232. package/dist/surface.cjs +1 -1
  233. package/dist/surface.js +1 -1
  234. package/dist/{table-CqUv1TOC.js → table-CxazXBjI.js} +72 -68
  235. package/dist/{table-CqUv1TOC.js.map → table-CxazXBjI.js.map} +1 -1
  236. package/dist/{table-CBhyHINV.cjs → table-Dn07ykGG.cjs} +4 -4
  237. package/dist/{table-CBhyHINV.cjs.map → table-Dn07ykGG.cjs.map} +1 -1
  238. package/dist/table.cjs +1 -1
  239. package/dist/table.js +1 -1
  240. package/dist/{tabs-compatibility-DUo2f_sV.js → tabs-compatibility-B8I0vg7Y.js} +2 -2
  241. package/dist/{tabs-compatibility-DUo2f_sV.js.map → tabs-compatibility-B8I0vg7Y.js.map} +1 -1
  242. package/dist/{tabs-compatibility-DPD6jfGF.cjs → tabs-compatibility-BrTxeSS-.cjs} +2 -2
  243. package/dist/{tabs-compatibility-DPD6jfGF.cjs.map → tabs-compatibility-BrTxeSS-.cjs.map} +1 -1
  244. package/dist/tabs.cjs +1 -1
  245. package/dist/tabs.js +1 -1
  246. package/dist/tailwind.mixin-Du4i6vQR.js +43 -0
  247. package/dist/{tailwind.mixin-Di7KWye7.js.map → tailwind.mixin-Du4i6vQR.js.map} +1 -1
  248. package/dist/tailwind.mixin-qyIcoDLk.cjs +2 -0
  249. package/dist/{tailwind.mixin-Dm5QDZav.cjs.map → tailwind.mixin-qyIcoDLk.cjs.map} +1 -1
  250. package/dist/teleport.cjs +1 -1
  251. package/dist/teleport.js +1 -1
  252. package/dist/{textarea-Dbz18REy.js → textarea-DibCLxC2.js} +2 -2
  253. package/dist/{textarea-Dbz18REy.js.map → textarea-DibCLxC2.js.map} +1 -1
  254. package/dist/{textarea-CesFdBkm.cjs → textarea-pMec4Wpg.cjs} +2 -2
  255. package/dist/{textarea-CesFdBkm.cjs.map → textarea-pMec4Wpg.cjs.map} +1 -1
  256. package/dist/textarea.cjs +1 -1
  257. package/dist/textarea.js +1 -1
  258. package/dist/{theme-button-Bt2OV4iu.cjs → theme-button-CG1w_waw.cjs} +2 -2
  259. package/dist/{theme-button-Bt2OV4iu.cjs.map → theme-button-CG1w_waw.cjs.map} +1 -1
  260. package/dist/{theme-button-lqbT2_LL.js → theme-button-irLEczd5.js} +2 -2
  261. package/dist/{theme-button-lqbT2_LL.js.map → theme-button-irLEczd5.js.map} +1 -1
  262. package/dist/theme-button.cjs +1 -1
  263. package/dist/theme-button.js +1 -1
  264. package/dist/theme.cjs +1 -1
  265. package/dist/{theme.component-xarFSe8p.js → theme.component-CMM8Xws2.js} +2 -2
  266. package/dist/{theme.component-xarFSe8p.js.map → theme.component-CMM8Xws2.js.map} +1 -1
  267. package/dist/{theme.component-BlBaN7d6.cjs → theme.component-CpRuySmd.cjs} +3 -3
  268. package/dist/{theme.component-BlBaN7d6.cjs.map → theme.component-CpRuySmd.cjs.map} +1 -1
  269. package/dist/theme.js +1 -1
  270. package/dist/{timezone-DwT_pQrj.js → timezone-DIrmlnD6.js} +3 -3
  271. package/dist/{timezone-DwT_pQrj.js.map → timezone-DIrmlnD6.js.map} +1 -1
  272. package/dist/{timezone-VUMRmZaJ.cjs → timezone-n5GflDRe.cjs} +2 -2
  273. package/dist/{timezone-VUMRmZaJ.cjs.map → timezone-n5GflDRe.cjs.map} +1 -1
  274. package/dist/{tooltip-Cvoroe7w.cjs → tooltip-0vIcVm5-.cjs} +2 -2
  275. package/dist/{tooltip-Cvoroe7w.cjs.map → tooltip-0vIcVm5-.cjs.map} +1 -1
  276. package/dist/{tooltip-BKOHVCMK.js → tooltip-N_B-vsDa.js} +2 -2
  277. package/dist/{tooltip-BKOHVCMK.js.map → tooltip-N_B-vsDa.js.map} +1 -1
  278. package/dist/tooltip.cjs +1 -1
  279. package/dist/tooltip.js +1 -1
  280. package/dist/{tree-_FJnHVmP.js → tree-2Hf2X0Hv.js} +2 -2
  281. package/dist/{tree-_FJnHVmP.js.map → tree-2Hf2X0Hv.js.map} +1 -1
  282. package/dist/{tree-Cyp2AZ8g.cjs → tree-Q8AMxJxP.cjs} +2 -2
  283. package/dist/{tree-Cyp2AZ8g.cjs.map → tree-Q8AMxJxP.cjs.map} +1 -1
  284. package/dist/tree.cjs +1 -1
  285. package/dist/tree.js +1 -1
  286. package/dist/{typewriter-BIm2tOe4.cjs → typewriter-CsL-NfYC.cjs} +2 -2
  287. package/dist/{typewriter-BIm2tOe4.cjs.map → typewriter-CsL-NfYC.cjs.map} +1 -1
  288. package/dist/{typewriter-DWfXPBni.js → typewriter-bqbNKczJ.js} +22 -22
  289. package/dist/{typewriter-DWfXPBni.js.map → typewriter-bqbNKczJ.js.map} +1 -1
  290. package/dist/typewriter.cjs +1 -1
  291. package/dist/typewriter.js +1 -1
  292. package/dist/{typography-DaKLzjFB.js → typography-CbrvouLo.js} +2 -2
  293. package/dist/{typography-DaKLzjFB.js.map → typography-CbrvouLo.js.map} +1 -1
  294. package/dist/{typography-OpLt6LNd.cjs → typography-Hlts-hzc.cjs} +2 -2
  295. package/dist/{typography-OpLt6LNd.cjs.map → typography-Hlts-hzc.cjs.map} +1 -1
  296. package/dist/typography.cjs +1 -1
  297. package/dist/typography.js +1 -1
  298. package/dist/utils-BqFGvnN9.cjs +2 -0
  299. package/dist/utils-BqFGvnN9.cjs.map +1 -0
  300. package/dist/utils-jduntaQU.js +128 -0
  301. package/dist/utils-jduntaQU.js.map +1 -0
  302. package/package.json +13 -14
  303. package/types/src/area/area.component.d.ts +1 -1
  304. package/types/src/area/area.service.d.ts +44 -26
  305. package/types/src/area/index.d.ts +1 -0
  306. package/types/src/area/utils.d.ts +91 -1
  307. package/types/src/checkbox/checkbox.d.ts +9 -0
  308. package/types/src/circular-progress/circular-progress.d.ts +15 -0
  309. package/types/src/circular-progress/index.d.ts +1 -0
  310. package/types/src/dialog/dailog.d.ts +8 -0
  311. package/types/src/dialog/dialog-service.d.ts +1 -0
  312. package/types/src/index.d.ts +1 -0
  313. package/types/src/table/table.d.ts +1 -0
  314. package/dist/area.component-CzFJM7Y4.js +0 -143
  315. package/dist/area.component-CzFJM7Y4.js.map +0 -1
  316. package/dist/area.component-WxccFh1z.cjs +0 -8
  317. package/dist/area.component-WxccFh1z.cjs.map +0 -1
  318. package/dist/avatar-Bmg5TXj9.cjs.map +0 -1
  319. package/dist/avatar-CgP1tBZq.js.map +0 -1
  320. package/dist/date-range-Ca9WLI4Q.js.map +0 -1
  321. package/dist/dialog-content-9pumpyLD.js.map +0 -1
  322. package/dist/dialog-content-qj1E8aye.cjs.map +0 -1
  323. package/dist/surface-BTuzKmT2.cjs +0 -20
  324. package/dist/surface-BTuzKmT2.cjs.map +0 -1
  325. package/dist/surface-DXx1bJN4.js +0 -43
  326. package/dist/surface-DXx1bJN4.js.map +0 -1
  327. package/dist/tailwind.mixin-Di7KWye7.js +0 -43
  328. package/dist/tailwind.mixin-Dm5QDZav.cjs +0 -2
@@ -1,221 +1,160 @@
1
1
  # Schmancy Surface - AI Reference
2
2
 
3
3
  ```js
4
- // Basic Surface
4
+ // Surface Component
5
5
  <schmancy-surface
6
- elevation="0|1|2|3|4|5"
7
- rounded="none|sm|md|lg|xl|full"
8
- padding="none|xs|sm|md|lg|xl">
9
- Surface content goes here
6
+ fill="all|width|height|auto"
7
+ rounded="none|top|left|right|bottom|all"
8
+ type="surface|surfaceDim|surfaceBright|containerLowest|containerLow|container|containerHigh|containerHighest"
9
+ elevation="0|1|2|3|4|5">
10
+ Content goes here
10
11
  </schmancy-surface>
11
12
 
12
- // Surface with color
13
- <schmancy-surface
14
- color="primary|secondary|tertiary|surface|background|error"
15
- theme="light|dark">
16
- Colored surface content
17
- </schmancy-surface>
18
-
19
- // Interactive surface
20
- <schmancy-surface
21
- interactive
22
- @click=${handleClick}>
23
- Click me!
24
- </schmancy-surface>
13
+ // Properties
14
+ fill: string // "all", "width", "height", "auto" (default: "auto")
15
+ rounded: string // Corner rounding: "none", "top", "left", "right", "bottom", "all" (default: "none")
16
+ type: string // Surface color variant (default: "surface")
17
+ elevation: number // Shadow depth 0-5 (default: 0)
25
18
 
26
- // Surface with border
27
- <schmancy-surface
28
- bordered
29
- border-color="primary|secondary|tertiary|divider|error"
30
- border-width="thin|medium|thick"
31
- border-style="solid|dashed|dotted">
32
- Surface with border
33
- </schmancy-surface>
19
+ // Surface Types (background colors)
20
+ "surface" // Default surface color
21
+ "surfaceDim" // Dimmed surface
22
+ "surfaceBright" // Bright surface
23
+ "containerLowest" // Lowest container elevation
24
+ "containerLow" // Low container elevation
25
+ "container" // Standard container
26
+ "containerHigh" // High container elevation
27
+ "containerHighest" // Highest container elevation
34
28
 
35
- // Surface with dimensions
36
- <schmancy-surface
37
- width="300px"
38
- height="200px"
39
- min-width="200px"
40
- max-width="500px"
41
- min-height="100px"
42
- max-height="300px">
43
- Fixed size surface
29
+ // Examples
30
+ // 1. Basic surface
31
+ <schmancy-surface>
32
+ Basic content
44
33
  </schmancy-surface>
45
34
 
46
- // Surface Properties
47
- elevation: number|string // Shadow elevation (0-5)
48
- rounded: string // Border radius: "none", "sm", "md", "lg", "xl", "full"
49
- padding: string // Padding: "none", "xs", "sm", "md", "lg", "xl"
50
- margin: string // Margin: "none", "xs", "sm", "md", "lg", "xl"
51
- color: string // Background color (theme color or CSS value)
52
- theme: string // Theme: "light", "dark"
53
- interactive: boolean // Enable hover and active states
54
- bordered: boolean // Show border
55
- borderColor: string // Border color
56
- borderWidth: string // Border width: "thin", "medium", "thick"
57
- borderStyle: string // Border style: "solid", "dashed", "dotted"
58
- width: string // Width
59
- height: string // Height
60
- minWidth: string // Minimum width
61
- maxWidth: string // Maximum width
62
- minHeight: string // Minimum height
63
- maxHeight: string // Maximum height
64
- fullWidth: boolean // Take full width of parent
65
- fullHeight: boolean // Take full height of parent
66
-
67
- // Surface Context
68
- // For theme-aware surfaces and consistent styling
69
- import { SurfaceContext } from 'schmancy/surface';
70
-
71
- const surfaceContext = new SurfaceContext({
72
- elevation: 1,
73
- rounded: 'md',
74
- padding: 'md',
75
- theme: 'light'
76
- });
77
-
78
- // Examples
79
- // Basic card-like surface
80
- <schmancy-surface
81
- elevation="2"
82
- rounded="lg"
83
- padding="lg">
35
+ // 2. Elevated card
36
+ <schmancy-surface
37
+ elevation="2"
38
+ rounded="all"
39
+ type="containerLow">
84
40
  <h3>Card Title</h3>
85
- <p>This is a basic card surface with elevation, rounded corners, and padding.</p>
41
+ <p>Card content</p>
86
42
  </schmancy-surface>
87
43
 
88
- // Interactive card
89
- <schmancy-surface
90
- elevation="1"
91
- rounded="md"
92
- padding="md"
93
- interactive
94
- @click=${navigateToDetails}>
95
- <div style="display: flex; align-items: center; gap: 16px;">
96
- <schmancy-avatar
97
- src="path/to/avatar.jpg"
98
- size="large">
99
- </schmancy-avatar>
100
-
101
- <div>
102
- <h3>John Doe</h3>
103
- <p>Software Engineer</p>
104
- </div>
105
-
106
- <schmancy-icon
107
- icon="chevron-right"
108
- style="margin-left: auto;">
109
- </schmancy-icon>
110
- </div>
44
+ // 3. Full-width surface
45
+ <schmancy-surface
46
+ fill="width"
47
+ type="surfaceDim"
48
+ elevation="1">
49
+ Full width content
111
50
  </schmancy-surface>
112
51
 
113
- // Alert surfaces
52
+ // 4. Dashboard panel
114
53
  <schmancy-surface
115
- color="primary"
116
- rounded="md"
117
- padding="md"
118
- bordered
119
- border-color="primary"
120
- style="--surface-color-opacity: 0.1;">
121
- <div style="display: flex; align-items: center; gap: 16px;">
122
- <schmancy-icon icon="info" color="primary"></schmancy-icon>
123
- <div>
124
- <h4>Information</h4>
125
- <p>This is an informational message.</p>
126
- </div>
54
+ elevation="3"
55
+ rounded="all"
56
+ type="containerHighest"
57
+ fill="all">
58
+ <div class="dashboard-content">
59
+ <!-- Content -->
127
60
  </div>
128
61
  </schmancy-surface>
62
+ ```
129
63
 
130
- <schmancy-surface
131
- color="error"
132
- rounded="md"
133
- padding="md"
134
- bordered
135
- border-color="error"
136
- style="--surface-color-opacity: 0.1;">
137
- <div style="display: flex; align-items: center; gap: 16px;">
138
- <schmancy-icon icon="alert-triangle" color="error"></schmancy-icon>
139
- <div>
140
- <h4>Error</h4>
141
- <p>Something went wrong. Please try again.</p>
142
- </div>
143
- </div>
144
- </schmancy-surface>
64
+ ## Related Components
65
+ - **[Card](./card.md)**: Pre-styled surface for card layouts
66
+ - **[Sheet](./sheet.md)**: Modal surface overlay
67
+ - **[Dialog](./dialog.md)**: Elevated modal surface
68
+ - **[Layout](./layout.md)**: Layout components that often contain surfaces
145
69
 
146
- // Surface grid layout
147
- <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;">
148
- <schmancy-surface
149
- elevation="1"
150
- rounded="md"
151
- padding="md">
152
- <h3>Card 1</h3>
153
- <p>Content for card 1.</p>
154
- </schmancy-surface>
155
-
156
- <schmancy-surface
157
- elevation="1"
158
- rounded="md"
159
- padding="md">
160
- <h3>Card 2</h3>
161
- <p>Content for card 2.</p>
162
- </schmancy-surface>
163
-
164
- <schmancy-surface
165
- elevation="1"
166
- rounded="md"
167
- padding="md">
168
- <h3>Card 3</h3>
169
- <p>Content for card 3.</p>
170
- </schmancy-surface>
171
- </div>
172
-
173
- // Dashboard panel
174
- <schmancy-surface
175
- elevation="2"
176
- rounded="lg"
177
- padding="lg"
178
- height="300px">
179
- <div style="display: flex; flex-direction: column; height: 100%;">
180
- <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;">
181
- <h3>Sales Overview</h3>
182
- <schmancy-dropdown>
183
- <schmancy-button slot="trigger" variant="tertiary" size="small">
184
- <span>This Week</span>
185
- <schmancy-icon slot="suffix" icon="chevron-down"></schmancy-icon>
186
- </schmancy-button>
187
-
188
- <schmancy-menu slot="content">
189
- <schmancy-menu-item value="day">Today</schmancy-menu-item>
190
- <schmancy-menu-item value="week">This Week</schmancy-menu-item>
191
- <schmancy-menu-item value="month">This Month</schmancy-menu-item>
192
- <schmancy-menu-item value="year">This Year</schmancy-menu-item>
193
- </schmancy-menu>
194
- </schmancy-dropdown>
195
- </div>
196
-
197
- <div style="flex: 1; display: flex; align-items: center; justify-content: center;">
198
- <!-- Chart or content would go here -->
199
- <p>Chart placeholder</p>
200
- </div>
201
- </div>
202
- </schmancy-surface>
70
+ ## Technical Details
71
+
72
+ ### CSS Host Styling
73
+ The component uses `:host` selectors for all styling:
74
+ - No wrapper elements - styles apply directly to the component
75
+ - Properties reflect to HTML attributes for CSS targeting
76
+ - Uses CSS custom properties from the theme system
77
+
78
+ ### Theme Integration
79
+ ```css
80
+ /* Background colors use theme variables */
81
+ --schmancy-sys-color-surface-default
82
+ --schmancy-sys-color-surface-dim
83
+ --schmancy-sys-color-surface-bright
84
+ --schmancy-sys-color-surface-lowest
85
+ --schmancy-sys-color-surface-low
86
+ --schmancy-sys-color-surface-container
87
+ --schmancy-sys-color-surface-high
88
+ --schmancy-sys-color-surface-highest
89
+
90
+ /* Text color */
91
+ --schmancy-sys-color-surface-on
92
+
93
+ /* Elevation shadows */
94
+ --schmancy-sys-elevation-1 through --schmancy-sys-elevation-5
95
+ ```
96
+
97
+ ### Context Provider
98
+ Surface provides its type to descendant components via Lit Context:
99
+ ```js
100
+ import { SchmancySurfaceTypeContext } from '@schmancy/surface'
101
+ ```
102
+
103
+ ## Common Use Cases
104
+
105
+ 1. **Content Cards**: Elevated surfaces for grouped content
106
+ ```html
107
+ <schmancy-surface elevation="2" rounded="all" type="containerLow">
108
+ <h3>Feature Card</h3>
109
+ <p>Description of the feature</p>
110
+ <schmancy-button>Learn More</schmancy-button>
111
+ </schmancy-surface>
112
+ ```
113
+
114
+ 2. **Page Sections**: Full-width background surfaces
115
+ ```html
116
+ <schmancy-surface fill="width" type="surfaceDim">
117
+ <section class="hero-section">
118
+ <h1>Welcome</h1>
119
+ <p>Hero content here</p>
120
+ </section>
121
+ </schmancy-surface>
122
+ ```
123
+
124
+ 3. **Modal Backgrounds**: High elevation surfaces
125
+ ```html
126
+ <schmancy-surface
127
+ elevation="5"
128
+ rounded="all"
129
+ type="containerHighest">
130
+ <div class="modal-content">
131
+ <h2>Modal Title</h2>
132
+ <p>Modal body content</p>
133
+ </div>
134
+ </schmancy-surface>
135
+ ```
136
+
137
+ 4. **Nested Surfaces**: Different elevation levels
138
+ ```html
139
+ <schmancy-surface type="surface" fill="all">
140
+ <schmancy-surface
141
+ elevation="1"
142
+ rounded="all"
143
+ type="containerLow">
144
+ <p>Nested content with different elevation</p>
145
+ </schmancy-surface>
146
+ </schmancy-surface>
147
+ ```
203
148
 
204
- // Using surface context
205
- <div .context=${surfaceContext}>
206
- <schmancy-surface>
207
- <h3>First Panel</h3>
208
- <p>This surface inherits settings from the context.</p>
209
- </schmancy-surface>
210
-
211
- <schmancy-surface>
212
- <h3>Second Panel</h3>
213
- <p>This surface also inherits settings from the context.</p>
214
- </schmancy-surface>
215
-
216
- <schmancy-surface elevation="3" rounded="xl">
217
- <h3>Custom Panel</h3>
218
- <p>This surface overrides some context settings.</p>
219
- </schmancy-surface>
220
- </div>
221
- ```
149
+ 5. **Sidebar Panels**: Directional rounding
150
+ ```html
151
+ <schmancy-surface
152
+ fill="height"
153
+ rounded="right"
154
+ elevation="2"
155
+ type="containerHigh">
156
+ <nav class="sidebar">
157
+ <!-- Navigation items -->
158
+ </nav>
159
+ </schmancy-surface>
160
+ ```
package/dist/ai/table.md CHANGED
@@ -50,6 +50,35 @@
50
50
  </tbody>
51
51
  </schmancy-table>
52
52
 
53
+ // Data Table with programmatic columns and custom sorting
54
+ <schmancy-table
55
+ .columns=${[
56
+ {
57
+ name: 'Name',
58
+ key: 'name',
59
+ sortable: true
60
+ },
61
+ {
62
+ name: 'Date Joined',
63
+ key: 'dateJoined',
64
+ sortable: true,
65
+ // Custom sort by Unix timestamp
66
+ value: (item) => new Date(item.dateJoined).getTime()
67
+ },
68
+ {
69
+ name: 'Profile Completion',
70
+ key: 'profile',
71
+ sortable: true,
72
+ // Sort by completion percentage
73
+ value: (item) => item.profile.completionPercentage,
74
+ // Display with custom rendering
75
+ render: (item) => html`${item.profile.completionPercentage}%`
76
+ }
77
+ ]}
78
+ .data=${users}
79
+ sortable>
80
+ </schmancy-table>
81
+
53
82
  // Table Properties
54
83
  striped: boolean // Apply alternating row colors
55
84
  bordered: boolean // Add borders to cells
@@ -60,6 +89,15 @@ sortable: boolean // Enable column sorting
60
89
  selectable: boolean // Enable row selection
61
90
  loading: boolean // Show loading state
62
91
 
92
+ // Column Configuration Properties (when using programmatic columns)
93
+ name: string // Display name for the column header
94
+ key?: keyof T // Object property to access for this column
95
+ align?: string // Text alignment ('left', 'right', 'center')
96
+ weight?: string // Font weight ('normal', 'bold')
97
+ render?: function // Custom render function for complex content: (item) => TemplateResult
98
+ sortable?: boolean // Whether this column supports sorting
99
+ value?: function // Custom value function for sorting: (item) => any
100
+
63
101
  // Row Properties
64
102
  selected: boolean // Whether the row is selected
65
103
  data: object // Data object for the row
@@ -105,7 +143,7 @@ data: object // Data object for the row
105
143
  </tbody>
106
144
  </schmancy-table>
107
145
 
108
- // Sortable table
146
+ // Sortable table - standard HTML structure
109
147
  <schmancy-table
110
148
  sortable
111
149
  @sort=${(e) => sortData(e.detail.column, e.detail.direction)}>
@@ -142,6 +180,66 @@ data: object // Data object for the row
142
180
  </tbody>
143
181
  </schmancy-table>
144
182
 
183
+ // Sortable table - programmatic with custom value functions
184
+ <schmancy-table
185
+ .data=${userData}
186
+ .columns=${[
187
+ {
188
+ name: 'ID',
189
+ key: 'id',
190
+ sortable: true
191
+ },
192
+ {
193
+ name: 'User',
194
+ key: 'user',
195
+ sortable: true,
196
+ // Sort by last name for "user" column
197
+ value: (item) => item.user.lastName,
198
+ // Custom render function for complex data
199
+ render: (item) => html`
200
+ <div class="flex items-center">
201
+ <schmancy-avatar src=${item.user.avatar} size="sm"></schmancy-avatar>
202
+ <div class="ml-2">
203
+ <div>${item.user.firstName} ${item.user.lastName}</div>
204
+ <div class="text-sm text-gray-500">${item.user.email}</div>
205
+ </div>
206
+ </div>
207
+ `
208
+ },
209
+ {
210
+ name: 'Status',
211
+ key: 'status',
212
+ sortable: true,
213
+ // Sort by status priority (numeric value) but display text
214
+ value: (item) => statusPriorities[item.status] || 0,
215
+ render: (item) => html`
216
+ <schmancy-badge variant=${getStatusVariant(item.status)}>
217
+ ${item.status}
218
+ </schmancy-badge>
219
+ `
220
+ },
221
+ {
222
+ name: 'Created',
223
+ key: 'createdAt',
224
+ sortable: true,
225
+ // Sort by timestamp but display formatted date
226
+ value: (item) => new Date(item.createdAt).getTime(),
227
+ render: (item) => formatDate(item.createdAt)
228
+ },
229
+ {
230
+ name: 'Actions',
231
+ render: (item) => html`
232
+ <div class="flex space-x-2">
233
+ <schmancy-icon-button icon="edit" @click=${() => editItem(item)}></schmancy-icon-button>
234
+ <schmancy-icon-button icon="delete" @click=${() => deleteItem(item)}></schmancy-icon-button>
235
+ </div>
236
+ `
237
+ }
238
+ ]}
239
+ sortable
240
+ @sort=${(e) => console.log('Sort changed:', e.detail)}>
241
+ </schmancy-table>
242
+
145
243
  // Selectable table
146
244
  <schmancy-table
147
245
  selectable
@@ -0,0 +1,196 @@
1
+ # Teleport Component
2
+
3
+ An advanced component that enables smooth FLIP (First, Last, Invert, Play) animations for elements transitioning between different DOM positions.
4
+
5
+ ## Quick Start
6
+
7
+ ```html
8
+ <!-- Source element -->
9
+ <schmancy-teleport id="user-avatar">
10
+ <schmancy-avatar src="/user.jpg" name="John Doe"></schmancy-avatar>
11
+ </schmancy-teleport>
12
+
13
+ <!-- Target location (different part of DOM) -->
14
+ <schmancy-teleport id="user-avatar">
15
+ <schmancy-avatar src="/user.jpg" name="John Doe"></schmancy-avatar>
16
+ </schmancy-teleport>
17
+ ```
18
+
19
+ ## Properties
20
+
21
+ | Property | Type | Default | Description |
22
+ |----------|------|---------|-------------|
23
+ | `id` | `string` | - | **Required** - Unique identifier for teleportation pair |
24
+ | `uuid` | `number` | `random` | Auto-generated unique instance ID |
25
+ | `delay` | `number` | `0` | Animation delay in milliseconds |
26
+
27
+ ## How It Works
28
+
29
+ The teleport component uses a sophisticated event system to coordinate animations:
30
+
31
+ 1. **Discovery Phase**: Components with same `id` find each other
32
+ 2. **Position Tracking**: Monitors element positions using ResizeObserver
33
+ 3. **FLIP Animation**: Smoothly animates between positions
34
+ 4. **State Management**: Maintains teleportation state across the app
35
+
36
+ ## Examples
37
+
38
+ ### Page Transition Animation
39
+ ```html
40
+ <!-- List view -->
41
+ <schmancy-list>
42
+ ${items.map(item => html`
43
+ <schmancy-list-item @click="${() => selectItem(item)}">
44
+ <schmancy-teleport id="item-${item.id}">
45
+ <schmancy-card>
46
+ <img src="${item.thumbnail}" />
47
+ <h3>${item.title}</h3>
48
+ </schmancy-card>
49
+ </schmancy-teleport>
50
+ </schmancy-list-item>
51
+ `)}
52
+ </schmancy-list>
53
+
54
+ <!-- Detail view -->
55
+ ${selectedItem ? html`
56
+ <div class="detail-view">
57
+ <schmancy-teleport id="item-${selectedItem.id}">
58
+ <schmancy-card>
59
+ <img src="${selectedItem.thumbnail}" />
60
+ <h3>${selectedItem.title}</h3>
61
+ <p>${selectedItem.description}</p>
62
+ </schmancy-card>
63
+ </schmancy-teleport>
64
+ </div>
65
+ ` : ''}
66
+ ```
67
+
68
+ ### Navigation Avatar Animation
69
+ ```html
70
+ <!-- Collapsed navbar -->
71
+ <nav class="navbar-collapsed">
72
+ <schmancy-teleport id="nav-user">
73
+ <schmancy-avatar size="sm" src="/user.jpg"></schmancy-avatar>
74
+ </schmancy-teleport>
75
+ </nav>
76
+
77
+ <!-- Expanded sidebar -->
78
+ <aside class="sidebar-expanded">
79
+ <schmancy-teleport id="nav-user">
80
+ <div class="user-profile">
81
+ <schmancy-avatar size="lg" src="/user.jpg"></schmancy-avatar>
82
+ <h3>John Doe</h3>
83
+ <p>john@example.com</p>
84
+ </div>
85
+ </schmancy-teleport>
86
+ </aside>
87
+ ```
88
+
89
+ ### Tab Content Transitions
90
+ ```html
91
+ <!-- Tab headers -->
92
+ <schmancy-tabs>
93
+ ${tabs.map(tab => html`
94
+ <schmancy-tab>
95
+ <schmancy-teleport id="tab-icon-${tab.id}">
96
+ <schmancy-icon>${tab.icon}</schmancy-icon>
97
+ </schmancy-teleport>
98
+ ${tab.label}
99
+ </schmancy-tab>
100
+ `)}
101
+ </schmancy-tabs>
102
+
103
+ <!-- Tab content -->
104
+ <div class="tab-content">
105
+ <schmancy-teleport id="tab-icon-${activeTab.id}">
106
+ <schmancy-icon size="xl">${activeTab.icon}</schmancy-icon>
107
+ </schmancy-teleport>
108
+ <h2>${activeTab.title}</h2>
109
+ <div>${activeTab.content}</div>
110
+ </div>
111
+ ```
112
+
113
+ ## Event System
114
+
115
+ The component uses custom events for coordination:
116
+
117
+ ### Internal Events
118
+ - `WhereAreYouRicky`: Discovery broadcast
119
+ - `HereMorty`: Response to discovery
120
+ - `FINDING_MORTIES`: Global search event
121
+ - `HERE_RICKY`: Component announcement
122
+
123
+ ## Service Integration
124
+
125
+ The teleport system uses a central service for state management:
126
+
127
+ ```typescript
128
+ // Access active teleportations
129
+ import { teleportationService } from '@schmancy/teleport';
130
+
131
+ // Get current positions
132
+ const positions = teleportationService.activeTeleportations;
133
+
134
+ // Subscribe to animations
135
+ teleportationService.flipRequests.subscribe(({ from, to }) => {
136
+ console.log('Animating from', from.rect, 'to', to.rect);
137
+ });
138
+ ```
139
+
140
+ ## Advanced Features
141
+
142
+ ### Position Watching
143
+ Uses `watchElementRect` to monitor element position changes:
144
+ - Handles resize events
145
+ - Tracks DOM mutations
146
+ - Updates on scroll
147
+
148
+ ### FLIP Animation
149
+ Implements the FLIP technique for performant animations:
150
+ - **F**irst: Record initial position
151
+ - **L**ast: Record final position
152
+ - **I**nvert: Calculate the difference
153
+ - **P**lay: Animate to final position
154
+
155
+ ### Visibility Management
156
+ - Initially hidden until position calculated
157
+ - Prevents layout jumps
158
+ - Smooth appearance after teleportation
159
+
160
+ ## Performance Considerations
161
+
162
+ 1. **Unique IDs**: Ensure IDs are unique per teleportation pair
163
+ 2. **Cleanup**: Components automatically cleanup on disconnect
164
+ 3. **Debouncing**: Position updates are optimized
165
+ 4. **Observer Management**: Efficient use of ResizeObserver
166
+
167
+ ## Debugging
168
+
169
+ Enable debug mode in development:
170
+ ```javascript
171
+ // The component has built-in debugging
172
+ debugging = import.meta.env.DEV ? true : false
173
+ ```
174
+
175
+ ## Best Practices
176
+
177
+ 1. **Unique IDs**: Always use unique, stable IDs
178
+ 2. **Matching Content**: Ensure teleported content is identical
179
+ 3. **Performance**: Limit active teleportations
180
+ 4. **Transitions**: Combine with route transitions
181
+ 5. **Fallbacks**: Handle cases where pairs don't exist
182
+
183
+ ## Related Components
184
+
185
+ - [Avatar](./avatar.md) - Common teleportation target
186
+ - [Card](./card.md) - Container animations
187
+ - [Icon](./icons.md) - Icon transitions
188
+ - [Area](./area.md) - Route-based animations
189
+
190
+ ## Use Cases
191
+
192
+ 1. **Shared Element Transitions**: Seamless page transitions
193
+ 2. **Master-Detail Views**: List to detail animations
194
+ 3. **Navigation Morphing**: Navbar state changes
195
+ 4. **Tab Transitions**: Content switching animations
196
+ 5. **Gallery Effects**: Image zoom transitions