@mhmo91/schmancy 0.2.193 → 0.2.195

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 (354) hide show
  1. package/ai/area.md +205 -0
  2. package/ai/autocomplete.md +135 -0
  3. package/ai/avatar.md +178 -0
  4. package/ai/badge.md +100 -0
  5. package/ai/busy.md +195 -0
  6. package/ai/button.md +112 -0
  7. package/ai/card.md +155 -0
  8. package/ai/checkbox.md +108 -0
  9. package/ai/chips.md +180 -0
  10. package/ai/component-relationships.md +93 -0
  11. package/ai/content-drawer.md +190 -0
  12. package/ai/dialog.md +119 -0
  13. package/ai/dropdown.md +238 -0
  14. package/ai/form.md +148 -0
  15. package/ai/icons.md +147 -0
  16. package/ai/index.md +72 -0
  17. package/ai/input.md +167 -0
  18. package/ai/layout.md +166 -0
  19. package/ai/list.md +145 -0
  20. package/ai/menu.md +217 -0
  21. package/ai/notification.md +93 -0
  22. package/ai/radio-group.md +176 -0
  23. package/ai/select.md +174 -0
  24. package/ai/sheet.md +122 -0
  25. package/ai/store.md +235 -0
  26. package/ai/surface.md +221 -0
  27. package/ai/table.md +334 -0
  28. package/ai/tabs.md +71 -0
  29. package/ai/template.md +144 -0
  30. package/ai/textarea.md +147 -0
  31. package/ai/tooltip.md +149 -0
  32. package/ai/tree.md +279 -0
  33. package/ai/typography.md +170 -0
  34. package/dist/_headers +2 -0
  35. package/dist/ai/area.md +205 -0
  36. package/dist/ai/autocomplete.md +135 -0
  37. package/dist/ai/avatar.md +178 -0
  38. package/dist/ai/badge.md +100 -0
  39. package/dist/ai/busy.md +195 -0
  40. package/dist/ai/button.md +112 -0
  41. package/dist/ai/card.md +155 -0
  42. package/dist/ai/checkbox.md +108 -0
  43. package/dist/ai/chips.md +180 -0
  44. package/dist/ai/component-relationships.md +93 -0
  45. package/dist/ai/content-drawer.md +190 -0
  46. package/dist/ai/dialog.md +119 -0
  47. package/dist/ai/dropdown.md +238 -0
  48. package/dist/ai/form.md +148 -0
  49. package/dist/ai/icons.md +147 -0
  50. package/dist/ai/index.md +72 -0
  51. package/dist/ai/input.md +167 -0
  52. package/dist/ai/layout.md +166 -0
  53. package/dist/ai/list.md +145 -0
  54. package/dist/ai/menu.md +217 -0
  55. package/dist/ai/notification.md +93 -0
  56. package/dist/ai/radio-group.md +176 -0
  57. package/dist/ai/select.md +174 -0
  58. package/dist/ai/sheet.md +122 -0
  59. package/dist/ai/store.md +235 -0
  60. package/dist/ai/surface.md +221 -0
  61. package/dist/ai/table.md +334 -0
  62. package/dist/ai/tabs.md +71 -0
  63. package/dist/ai/template.md +144 -0
  64. package/dist/ai/textarea.md +147 -0
  65. package/dist/ai/tooltip.md +149 -0
  66. package/dist/ai/tree.md +279 -0
  67. package/dist/ai/typography.md +170 -0
  68. package/dist/{animated-text-9AM64DHd.cjs → animated-text-Bu9wh3wv.cjs} +2 -2
  69. package/dist/{animated-text-9AM64DHd.cjs.map → animated-text-Bu9wh3wv.cjs.map} +1 -1
  70. package/dist/{animated-text-CVStWn5N.js → animated-text-Ci7M0QTx.js} +3 -3
  71. package/dist/{animated-text-CVStWn5N.js.map → animated-text-Ci7M0QTx.js.map} +1 -1
  72. package/dist/animated-text.cjs +1 -1
  73. package/dist/animated-text.js +1 -1
  74. package/dist/area.cjs +1 -1
  75. package/dist/area.component-Cg9dqZJ5.cjs +8 -0
  76. package/dist/area.component-Cg9dqZJ5.cjs.map +1 -0
  77. package/dist/area.component-eJJ_wryh.js +191 -0
  78. package/dist/area.component-eJJ_wryh.js.map +1 -0
  79. package/dist/area.js +21 -6
  80. package/dist/area.js.map +1 -1
  81. package/dist/{autocomplete-DBXvIJgc.cjs → autocomplete-BH7nQbid.cjs} +2 -2
  82. package/dist/{autocomplete-DBXvIJgc.cjs.map → autocomplete-BH7nQbid.cjs.map} +1 -1
  83. package/dist/{autocomplete-ih92pPkb.js → autocomplete-D9n1MeKT.js} +3 -3
  84. package/dist/{autocomplete-ih92pPkb.js.map → autocomplete-D9n1MeKT.js.map} +1 -1
  85. package/dist/autocomplete.cjs +1 -1
  86. package/dist/autocomplete.js +1 -1
  87. package/dist/{avatar-WAIlaNJg.js → avatar-B4lSs4z5.js} +183 -145
  88. package/dist/avatar-B4lSs4z5.js.map +1 -0
  89. package/dist/{avatar-s-2jSsaH.cjs → avatar-Bg-rdjAe.cjs} +62 -24
  90. package/dist/avatar-Bg-rdjAe.cjs.map +1 -0
  91. package/dist/badge.cjs +1 -1
  92. package/dist/badge.js +1 -1
  93. package/dist/busy.cjs +1 -1
  94. package/dist/busy.js +1 -1
  95. package/dist/button.cjs +1 -1
  96. package/dist/button.js +1 -1
  97. package/dist/card.cjs +1 -1
  98. package/dist/card.js +1 -1
  99. package/dist/{checkbox-DtnX5sT6.cjs → checkbox-CgL23smr.cjs} +10 -10
  100. package/dist/{checkbox-DtnX5sT6.cjs.map → checkbox-CgL23smr.cjs.map} +1 -1
  101. package/dist/{checkbox-Jxxbjxp0.js → checkbox-y37-tGrk.js} +72 -65
  102. package/dist/{checkbox-Jxxbjxp0.js.map → checkbox-y37-tGrk.js.map} +1 -1
  103. package/dist/checkbox.cjs +1 -1
  104. package/dist/checkbox.js +1 -1
  105. package/dist/{chips-CVDnpVUM.cjs → chips-CKST7ug-.cjs} +2 -2
  106. package/dist/{chips-CVDnpVUM.cjs.map → chips-CKST7ug-.cjs.map} +1 -1
  107. package/dist/{chips-lP7ohQep.js → chips-Ndwt1V4b.js} +3 -3
  108. package/dist/{chips-lP7ohQep.js.map → chips-Ndwt1V4b.js.map} +1 -1
  109. package/dist/chips.cjs +1 -1
  110. package/dist/chips.js +1 -1
  111. package/dist/circular-progress-BDmc1zlm.cjs +9 -0
  112. package/dist/circular-progress-BDmc1zlm.cjs.map +1 -0
  113. package/dist/circular-progress-vokDGjmG.js +35 -0
  114. package/dist/circular-progress-vokDGjmG.js.map +1 -0
  115. package/dist/circular-progress.cjs +2 -0
  116. package/dist/circular-progress.cjs.map +1 -0
  117. package/dist/circular-progress.js +5 -0
  118. package/dist/circular-progress.js.map +1 -0
  119. package/dist/components.cjs +1 -1
  120. package/dist/components.js +1 -1
  121. package/dist/content-drawer.cjs +1 -1
  122. package/dist/content-drawer.js +1 -1
  123. package/dist/{date-range-Ca9WLI4Q.js → date-range-CpDVPn_v.js} +3 -3
  124. package/dist/{date-range-Ca9WLI4Q.js.map → date-range-CpDVPn_v.js.map} +1 -1
  125. package/dist/{date-range-DbPA5Y-t.cjs → date-range-DfZz3ifP.cjs} +2 -2
  126. package/dist/{date-range-DbPA5Y-t.cjs.map → date-range-DfZz3ifP.cjs.map} +1 -1
  127. package/dist/date-range.cjs +1 -1
  128. package/dist/date-range.js +1 -1
  129. package/dist/{delay-BgNgQV2G.cjs → delay-ASLyLkQL.cjs} +2 -2
  130. package/dist/{delay-BgNgQV2G.cjs.map → delay-ASLyLkQL.cjs.map} +1 -1
  131. package/dist/{delay-5cCl7ji3.js → delay-CG5SRrzF.js} +2 -2
  132. package/dist/{delay-5cCl7ji3.js.map → delay-CG5SRrzF.js.map} +1 -1
  133. package/dist/delay.cjs +1 -1
  134. package/dist/delay.js +1 -1
  135. package/dist/{dialog-content-9pumpyLD.js → dialog-content-BoPviBAt.js} +86 -82
  136. package/dist/dialog-content-BoPviBAt.js.map +1 -0
  137. package/dist/{dialog-content-qj1E8aye.cjs → dialog-content-D88EcY6L.cjs} +8 -8
  138. package/dist/dialog-content-D88EcY6L.cjs.map +1 -0
  139. package/dist/dialog.cjs +1 -1
  140. package/dist/dialog.js +1 -1
  141. package/dist/{divider-CHckHGEQ.cjs → divider-C38JDYss.cjs} +2 -2
  142. package/dist/{divider-CHckHGEQ.cjs.map → divider-C38JDYss.cjs.map} +1 -1
  143. package/dist/{divider-r8-9eNnl.js → divider-N7GWgK6o.js} +3 -3
  144. package/dist/{divider-r8-9eNnl.js.map → divider-N7GWgK6o.js.map} +1 -1
  145. package/dist/divider.cjs +1 -1
  146. package/dist/divider.js +1 -1
  147. package/dist/{dropdown-content-D-TddflQ.js → dropdown-content-DmO_yIVb.js} +3 -3
  148. package/dist/{dropdown-content-D-TddflQ.js.map → dropdown-content-DmO_yIVb.js.map} +1 -1
  149. package/dist/{dropdown-content-B41MDDRG.cjs → dropdown-content-rH8awIRA.cjs} +2 -2
  150. package/dist/{dropdown-content-B41MDDRG.cjs.map → dropdown-content-rH8awIRA.cjs.map} +1 -1
  151. package/dist/dropdown.cjs +1 -1
  152. package/dist/dropdown.js +1 -1
  153. package/dist/extra.cjs +1 -1
  154. package/dist/extra.js +1 -1
  155. package/dist/{flex-Bf0zNqji.js → flex-CXYfL6bE.js} +2 -2
  156. package/dist/{flex-Bf0zNqji.js.map → flex-CXYfL6bE.js.map} +1 -1
  157. package/dist/{flex-CFv-Zb76.cjs → flex-wYuewqrr.cjs} +2 -2
  158. package/dist/{flex-CFv-Zb76.cjs.map → flex-wYuewqrr.cjs.map} +1 -1
  159. package/dist/{form-BN75s0PI.cjs → form-CNWWdhT_.cjs} +2 -2
  160. package/dist/{form-BN75s0PI.cjs.map → form-CNWWdhT_.cjs.map} +1 -1
  161. package/dist/{form-uYcr1RLJ.js → form-q3JZjWez.js} +2 -2
  162. package/dist/{form-uYcr1RLJ.js.map → form-q3JZjWez.js.map} +1 -1
  163. package/dist/form.cjs +1 -1
  164. package/dist/form.js +1 -1
  165. package/dist/{icon-Cu-imayV.cjs → icon-QnmfHtfT.cjs} +2 -2
  166. package/dist/{icon-Cu-imayV.cjs.map → icon-QnmfHtfT.cjs.map} +1 -1
  167. package/dist/{icon-button-1tZaicyb.js → icon-button-DOTB_28y.js} +3 -3
  168. package/dist/{icon-button-1tZaicyb.js.map → icon-button-DOTB_28y.js.map} +1 -1
  169. package/dist/{icon-button-D0BbHnDL.cjs → icon-button-oAOX71_s.cjs} +2 -2
  170. package/dist/{icon-button-D0BbHnDL.cjs.map → icon-button-oAOX71_s.cjs.map} +1 -1
  171. package/dist/{icon-BR-jE0Y2.js → icon-pLQWXzo8.js} +3 -3
  172. package/dist/{icon-BR-jE0Y2.js.map → icon-pLQWXzo8.js.map} +1 -1
  173. package/dist/icons.cjs +1 -1
  174. package/dist/icons.js +1 -1
  175. package/dist/index.cjs +1 -1
  176. package/dist/index.js +190 -173
  177. package/dist/index.js.map +1 -1
  178. package/dist/{input-B2oV6Hck.cjs → input-CCniOtAr.cjs} +2 -2
  179. package/dist/{input-B2oV6Hck.cjs.map → input-CCniOtAr.cjs.map} +1 -1
  180. package/dist/{input-kiz5O3dY.js → input-DeJitVSV.js} +2 -2
  181. package/dist/{input-kiz5O3dY.js.map → input-DeJitVSV.js.map} +1 -1
  182. package/dist/input.cjs +1 -1
  183. package/dist/input.js +1 -1
  184. package/dist/layout.cjs +1 -1
  185. package/dist/layout.js +1 -1
  186. package/dist/{list-CMHoPfX9.cjs → list-Ad-24MHW.cjs} +2 -2
  187. package/dist/{list-CMHoPfX9.cjs.map → list-Ad-24MHW.cjs.map} +1 -1
  188. package/dist/{list-wT4DLXCh.js → list-Ca79GGNH.js} +2 -2
  189. package/dist/{list-wT4DLXCh.js.map → list-Ca79GGNH.js.map} +1 -1
  190. package/dist/list.cjs +1 -1
  191. package/dist/list.js +1 -1
  192. package/dist/{litElement.mixin-B9Qdq5S_.js → litElement.mixin-BoUiP2tU.js} +2 -2
  193. package/dist/{litElement.mixin-B9Qdq5S_.js.map → litElement.mixin-BoUiP2tU.js.map} +1 -1
  194. package/dist/{litElement.mixin-CHvyxfxf.cjs → litElement.mixin-qOTYSaNG.cjs} +2 -2
  195. package/dist/{litElement.mixin-CHvyxfxf.cjs.map → litElement.mixin-qOTYSaNG.cjs.map} +1 -1
  196. package/dist/{menu-BcSplMNh.cjs → menu-6Wum4ysc.cjs} +2 -2
  197. package/dist/{menu-BcSplMNh.cjs.map → menu-6Wum4ysc.cjs.map} +1 -1
  198. package/dist/{menu-Dl1QU86K.js → menu-Dd_X9oET.js} +3 -3
  199. package/dist/{menu-Dl1QU86K.js.map → menu-Dd_X9oET.js.map} +1 -1
  200. package/dist/menu.cjs +1 -1
  201. package/dist/menu.js +1 -1
  202. package/dist/nav-drawer.cjs +1 -1
  203. package/dist/nav-drawer.js +1 -1
  204. package/dist/{notification-service-CC698xHg.js → notification-service-C-9IqObm.js} +3 -3
  205. package/dist/{notification-service-CC698xHg.js.map → notification-service-C-9IqObm.js.map} +1 -1
  206. package/dist/{notification-service-BV9ybQBu.cjs → notification-service-CrNyAbmv.cjs} +2 -2
  207. package/dist/{notification-service-BV9ybQBu.cjs.map → notification-service-CrNyAbmv.cjs.map} +1 -1
  208. package/dist/notification.cjs +1 -1
  209. package/dist/notification.js +1 -1
  210. package/dist/{option-CkLBgH71.cjs → option-BbBbwrJq.cjs} +2 -2
  211. package/dist/{option-CkLBgH71.cjs.map → option-BbBbwrJq.cjs.map} +1 -1
  212. package/dist/{option-DDxxXwwc.js → option-DVSXUJ96.js} +2 -2
  213. package/dist/{option-DDxxXwwc.js.map → option-DVSXUJ96.js.map} +1 -1
  214. package/dist/option.cjs +1 -1
  215. package/dist/option.js +1 -1
  216. package/dist/{payment-card-form-DDTO5_AA.js → payment-card-form-CTjgVoJK.js} +3 -3
  217. package/dist/{payment-card-form-DDTO5_AA.js.map → payment-card-form-CTjgVoJK.js.map} +1 -1
  218. package/dist/{payment-card-form-UWbAYNPR.cjs → payment-card-form-R5wNWHAv.cjs} +2 -2
  219. package/dist/{payment-card-form-UWbAYNPR.cjs.map → payment-card-form-R5wNWHAv.cjs.map} +1 -1
  220. package/dist/{radio-button-wWoxPDfq.js → radio-button-BDAW1Euc.js} +2 -2
  221. package/dist/{radio-button-wWoxPDfq.js.map → radio-button-BDAW1Euc.js.map} +1 -1
  222. package/dist/{radio-button-BykiVxTD.cjs → radio-button-Cg1JobXT.cjs} +2 -2
  223. package/dist/{radio-button-BykiVxTD.cjs.map → radio-button-Cg1JobXT.cjs.map} +1 -1
  224. package/dist/radio-group.cjs +1 -1
  225. package/dist/radio-group.js +1 -1
  226. package/dist/{schmancy-steps-container-ByO98z7L.js → schmancy-steps-container--d7VK-QR.js} +2 -2
  227. package/dist/{schmancy-steps-container-ByO98z7L.js.map → schmancy-steps-container--d7VK-QR.js.map} +1 -1
  228. package/dist/{schmancy-steps-container-B1mIGa9M.cjs → schmancy-steps-container-BAPIxl4s.cjs} +2 -2
  229. package/dist/{schmancy-steps-container-B1mIGa9M.cjs.map → schmancy-steps-container-BAPIxl4s.cjs.map} +1 -1
  230. package/dist/{select-DE57Nios.cjs → select-CnjO7DLl.cjs} +2 -2
  231. package/dist/{select-DE57Nios.cjs.map → select-CnjO7DLl.cjs.map} +1 -1
  232. package/dist/{select-BIOhocL7.js → select-DfbOOZtm.js} +3 -3
  233. package/dist/{select-BIOhocL7.js.map → select-DfbOOZtm.js.map} +1 -1
  234. package/dist/select.cjs +1 -1
  235. package/dist/select.js +1 -1
  236. package/dist/{sheet-Dh4MLVsU.js → sheet-DhbKM9gJ.js} +3 -3
  237. package/dist/{sheet-Dh4MLVsU.js.map → sheet-DhbKM9gJ.js.map} +1 -1
  238. package/dist/{sheet-fZYAWGsm.cjs → sheet-Ds0Fp0lM.cjs} +2 -2
  239. package/dist/{sheet-fZYAWGsm.cjs.map → sheet-Ds0Fp0lM.cjs.map} +1 -1
  240. package/dist/sheet.cjs +1 -1
  241. package/dist/sheet.js +1 -1
  242. package/dist/{slider-DVlJoDgU.js → slider-Ba3AEh2W.js} +3 -3
  243. package/dist/{slider-DVlJoDgU.js.map → slider-Ba3AEh2W.js.map} +1 -1
  244. package/dist/{slider-CejrdmPF.cjs → slider-CSOzhUhA.cjs} +2 -2
  245. package/dist/{slider-CejrdmPF.cjs.map → slider-CSOzhUhA.cjs.map} +1 -1
  246. package/dist/slider.cjs +1 -1
  247. package/dist/slider.js +1 -1
  248. package/dist/{spinner-DbTnai_Q.js → spinner-BgeQqlFU.js} +3 -3
  249. package/dist/{spinner-DbTnai_Q.js.map → spinner-BgeQqlFU.js.map} +1 -1
  250. package/dist/{spinner-DxVJ7QJZ.cjs → spinner-llMfjiIc.cjs} +2 -2
  251. package/dist/{spinner-DxVJ7QJZ.cjs.map → spinner-llMfjiIc.cjs.map} +1 -1
  252. package/dist/steps.cjs +1 -1
  253. package/dist/steps.js +1 -1
  254. package/dist/surface-CT2g8fDM.cjs +92 -0
  255. package/dist/surface-CT2g8fDM.cjs.map +1 -0
  256. package/dist/surface-UcsAmLj5.js +113 -0
  257. package/dist/surface-UcsAmLj5.js.map +1 -0
  258. package/dist/surface.cjs +1 -1
  259. package/dist/surface.js +1 -1
  260. package/dist/{table-CBhyHINV.cjs → table-CSBhQ-pa.cjs} +4 -4
  261. package/dist/{table-CBhyHINV.cjs.map → table-CSBhQ-pa.cjs.map} +1 -1
  262. package/dist/{table-CqUv1TOC.js → table-DuUlrDCu.js} +72 -68
  263. package/dist/{table-CqUv1TOC.js.map → table-DuUlrDCu.js.map} +1 -1
  264. package/dist/table.cjs +1 -1
  265. package/dist/table.js +1 -1
  266. package/dist/{tabs-compatibility-DUo2f_sV.js → tabs-compatibility-BVFHArgV.js} +2 -2
  267. package/dist/{tabs-compatibility-DUo2f_sV.js.map → tabs-compatibility-BVFHArgV.js.map} +1 -1
  268. package/dist/{tabs-compatibility-DPD6jfGF.cjs → tabs-compatibility-Bt3coGzN.cjs} +2 -2
  269. package/dist/{tabs-compatibility-DPD6jfGF.cjs.map → tabs-compatibility-Bt3coGzN.cjs.map} +1 -1
  270. package/dist/tabs.cjs +1 -1
  271. package/dist/tabs.js +1 -1
  272. package/dist/tailwind.mixin-C71e_LC1.js +43 -0
  273. package/dist/{tailwind.mixin-Di7KWye7.js.map → tailwind.mixin-C71e_LC1.js.map} +1 -1
  274. package/dist/tailwind.mixin-CFCJhe5p.cjs +2 -0
  275. package/dist/{tailwind.mixin-Dm5QDZav.cjs.map → tailwind.mixin-CFCJhe5p.cjs.map} +1 -1
  276. package/dist/teleport.cjs +1 -1
  277. package/dist/teleport.js +1 -1
  278. package/dist/{textarea-Dbz18REy.js → textarea-B8eIpYa-.js} +2 -2
  279. package/dist/{textarea-Dbz18REy.js.map → textarea-B8eIpYa-.js.map} +1 -1
  280. package/dist/{textarea-CesFdBkm.cjs → textarea-CtCk_1Fq.cjs} +2 -2
  281. package/dist/{textarea-CesFdBkm.cjs.map → textarea-CtCk_1Fq.cjs.map} +1 -1
  282. package/dist/textarea.cjs +1 -1
  283. package/dist/textarea.js +1 -1
  284. package/dist/{theme-button-Bt2OV4iu.cjs → theme-button-DQe5uOxU.cjs} +2 -2
  285. package/dist/{theme-button-Bt2OV4iu.cjs.map → theme-button-DQe5uOxU.cjs.map} +1 -1
  286. package/dist/{theme-button-lqbT2_LL.js → theme-button-TEzhKUy6.js} +2 -2
  287. package/dist/{theme-button-lqbT2_LL.js.map → theme-button-TEzhKUy6.js.map} +1 -1
  288. package/dist/theme-button.cjs +1 -1
  289. package/dist/theme-button.js +1 -1
  290. package/dist/theme.cjs +1 -1
  291. package/dist/{theme.component-BlBaN7d6.cjs → theme.component-Be6M74nN.cjs} +3 -3
  292. package/dist/{theme.component-BlBaN7d6.cjs.map → theme.component-Be6M74nN.cjs.map} +1 -1
  293. package/dist/{theme.component-xarFSe8p.js → theme.component-DiTpToTC.js} +2 -2
  294. package/dist/{theme.component-xarFSe8p.js.map → theme.component-DiTpToTC.js.map} +1 -1
  295. package/dist/theme.js +1 -1
  296. package/dist/{timezone-VUMRmZaJ.cjs → timezone-C1aR24i0.cjs} +2 -2
  297. package/dist/{timezone-VUMRmZaJ.cjs.map → timezone-C1aR24i0.cjs.map} +1 -1
  298. package/dist/{timezone-DwT_pQrj.js → timezone-CBSuTrU2.js} +3 -3
  299. package/dist/{timezone-DwT_pQrj.js.map → timezone-CBSuTrU2.js.map} +1 -1
  300. package/dist/{tooltip-BKOHVCMK.js → tooltip-DYQW9R3I.js} +2 -2
  301. package/dist/{tooltip-BKOHVCMK.js.map → tooltip-DYQW9R3I.js.map} +1 -1
  302. package/dist/{tooltip-Cvoroe7w.cjs → tooltip-DYcXTtFy.cjs} +2 -2
  303. package/dist/{tooltip-Cvoroe7w.cjs.map → tooltip-DYcXTtFy.cjs.map} +1 -1
  304. package/dist/tooltip.cjs +1 -1
  305. package/dist/tooltip.js +1 -1
  306. package/dist/{tree-Cyp2AZ8g.cjs → tree-D-rTjnPs.cjs} +2 -2
  307. package/dist/{tree-Cyp2AZ8g.cjs.map → tree-D-rTjnPs.cjs.map} +1 -1
  308. package/dist/{tree-_FJnHVmP.js → tree-nsSIkdNT.js} +2 -2
  309. package/dist/{tree-_FJnHVmP.js.map → tree-nsSIkdNT.js.map} +1 -1
  310. package/dist/tree.cjs +1 -1
  311. package/dist/tree.js +1 -1
  312. package/dist/{typewriter-BIm2tOe4.cjs → typewriter-Cj0R-RDa.cjs} +2 -2
  313. package/dist/{typewriter-BIm2tOe4.cjs.map → typewriter-Cj0R-RDa.cjs.map} +1 -1
  314. package/dist/{typewriter-DWfXPBni.js → typewriter-DrYb6_FB.js} +22 -22
  315. package/dist/{typewriter-DWfXPBni.js.map → typewriter-DrYb6_FB.js.map} +1 -1
  316. package/dist/typewriter.cjs +1 -1
  317. package/dist/typewriter.js +1 -1
  318. package/dist/{typography-OpLt6LNd.cjs → typography-B0Kj2XoC.cjs} +2 -2
  319. package/dist/{typography-OpLt6LNd.cjs.map → typography-B0Kj2XoC.cjs.map} +1 -1
  320. package/dist/{typography-DaKLzjFB.js → typography-DMj2H_lZ.js} +2 -2
  321. package/dist/{typography-DaKLzjFB.js.map → typography-DMj2H_lZ.js.map} +1 -1
  322. package/dist/typography.cjs +1 -1
  323. package/dist/typography.js +1 -1
  324. package/dist/utils-BqFGvnN9.cjs +2 -0
  325. package/dist/utils-BqFGvnN9.cjs.map +1 -0
  326. package/dist/utils-jduntaQU.js +128 -0
  327. package/dist/utils-jduntaQU.js.map +1 -0
  328. package/package.json +14 -14
  329. package/types/src/area/area.component.d.ts +1 -1
  330. package/types/src/area/area.service.d.ts +72 -5
  331. package/types/src/area/index.d.ts +1 -0
  332. package/types/src/area/router.types.d.ts +41 -2
  333. package/types/src/area/utils.d.ts +91 -1
  334. package/types/src/checkbox/checkbox.d.ts +9 -0
  335. package/types/src/circular-progress/circular-progress.d.ts +15 -0
  336. package/types/src/circular-progress/index.d.ts +1 -0
  337. package/types/src/dialog/dailog.d.ts +8 -0
  338. package/types/src/dialog/dialog-service.d.ts +1 -0
  339. package/types/src/index.d.ts +1 -0
  340. package/types/src/table/table.d.ts +1 -0
  341. package/dist/area.component-CZELEuMj.js +0 -107
  342. package/dist/area.component-CZELEuMj.js.map +0 -1
  343. package/dist/area.component-grRkXEse.cjs +0 -8
  344. package/dist/area.component-grRkXEse.cjs.map +0 -1
  345. package/dist/avatar-WAIlaNJg.js.map +0 -1
  346. package/dist/avatar-s-2jSsaH.cjs.map +0 -1
  347. package/dist/dialog-content-9pumpyLD.js.map +0 -1
  348. package/dist/dialog-content-qj1E8aye.cjs.map +0 -1
  349. package/dist/surface-BTuzKmT2.cjs +0 -20
  350. package/dist/surface-BTuzKmT2.cjs.map +0 -1
  351. package/dist/surface-DXx1bJN4.js +0 -43
  352. package/dist/surface-DXx1bJN4.js.map +0 -1
  353. package/dist/tailwind.mixin-Di7KWye7.js +0 -43
  354. package/dist/tailwind.mixin-Dm5QDZav.cjs +0 -2
@@ -0,0 +1,128 @@
1
+ function m(t, e) {
2
+ if (t === e) return !0;
3
+ if (typeof t != "function" || typeof e != "function") return !1;
4
+ if (t.name && e.name && t.name === e.name) return !0;
5
+ const n = t.observedAttributes, r = e.observedAttributes;
6
+ if (n && r && Array.isArray(n) && Array.isArray(r)) return n.length === r.length && n.every((o, s) => o === r[s]);
7
+ try {
8
+ const o = t.prototype, s = e.prototype;
9
+ if (Object.getPrototypeOf(o) === Object.getPrototypeOf(s)) {
10
+ const i = Object.getOwnPropertyNames(o).sort(), c = Object.getOwnPropertyNames(s).sort();
11
+ return i.length === c.length && i.every((y, l) => y === c[l]);
12
+ }
13
+ } catch {
14
+ }
15
+ return !1;
16
+ }
17
+ function f(t) {
18
+ return t.toLowerCase().replace(/[^a-z0-9]/g, "");
19
+ }
20
+ function g(t) {
21
+ if (typeof t == "string") return t.toLowerCase();
22
+ if (t instanceof HTMLElement) return t.tagName.toLowerCase();
23
+ if (typeof t == "function") {
24
+ const e = t.name;
25
+ if (e) return e.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "");
26
+ }
27
+ return null;
28
+ }
29
+ function O(t, e) {
30
+ const n = { ...t };
31
+ for (const r in e) if (e.hasOwnProperty(r)) {
32
+ const o = e[r], s = n[r];
33
+ a(o) && a(s) ? n[r] = O(s, o) : n[r] = o;
34
+ }
35
+ return n;
36
+ }
37
+ function a(t) {
38
+ return t !== null && typeof t == "object" && t.constructor === Object && Object.prototype.toString.call(t) === "[object Object]";
39
+ }
40
+ function h(t, e) {
41
+ let n = null;
42
+ return function(...r) {
43
+ const o = this;
44
+ n !== null && clearTimeout(n), n = setTimeout(() => {
45
+ t.apply(o, r), n = null;
46
+ }, e);
47
+ };
48
+ }
49
+ function S(t) {
50
+ try {
51
+ const e = JSON.stringify(t);
52
+ return encodeURIComponent(e);
53
+ } catch {
54
+ return "";
55
+ }
56
+ }
57
+ function w(t) {
58
+ if (!t) return {};
59
+ try {
60
+ const e = decodeURIComponent(t), n = JSON.parse(e);
61
+ if (a(n)) return n;
62
+ } catch {
63
+ }
64
+ return {};
65
+ }
66
+ function b(t, e) {
67
+ if (t.area !== e.area || typeof t.component != typeof e.component) return !1;
68
+ if (typeof t.component == "string" && typeof e.component == "string") {
69
+ if (f(t.component) !== f(e.component)) return !1;
70
+ } else if (typeof t.component == "function" && typeof e.component == "function") {
71
+ if (!m(t.component, e.component)) return !1;
72
+ } else if (t.component !== e.component) return !1;
73
+ return JSON.stringify(t.state || {}) === JSON.stringify(e.state || {}) && JSON.stringify(t.params || {}) === JSON.stringify(e.params || {});
74
+ }
75
+ function N(t, e) {
76
+ return t.area === e.area && t.component === e.component && JSON.stringify(t.state || {}) === JSON.stringify(e.state || {}) && JSON.stringify(t.params || {}) === JSON.stringify(e.params || {});
77
+ }
78
+ function J(t) {
79
+ const e = g(t.component) || "unknown", n = u(JSON.stringify(t.state || {})), r = u(JSON.stringify(t.params || {}));
80
+ return `${t.area}:${e}:${n}:${r}`;
81
+ }
82
+ function u(t) {
83
+ let e = 0;
84
+ for (let n = 0; n < t.length; n++)
85
+ e = (e << 5) - e + t.charCodeAt(n), e |= 0;
86
+ return Math.abs(e).toString(36);
87
+ }
88
+ function p(t, e = ["password", "token", "secret", "apiKey"]) {
89
+ const n = {};
90
+ for (const r in t) if (t.hasOwnProperty(r) && !e.includes(r)) {
91
+ const o = t[r];
92
+ a(o) ? n[r] = p(o, e) : Array.isArray(o) ? n[r] = o.map((s) => a(s) ? p(s, e) : s) : n[r] = o;
93
+ }
94
+ return n;
95
+ }
96
+ function d(t) {
97
+ const e = {};
98
+ let n;
99
+ return t instanceof URLSearchParams ? n = t : typeof t == "string" ? n = new URL(t, window.location.origin).searchParams : n = new URLSearchParams(window.location.search), n.forEach((r, o) => {
100
+ e[o] = r;
101
+ }), e;
102
+ }
103
+ function P(t) {
104
+ const e = new URLSearchParams();
105
+ for (const r in t) if (t.hasOwnProperty(r)) {
106
+ const o = t[r];
107
+ o != null && o !== "" && e.set(r, String(o));
108
+ }
109
+ const n = e.toString();
110
+ return n ? `?${n}` : "";
111
+ }
112
+ export {
113
+ h as a,
114
+ w as b,
115
+ m as c,
116
+ O as d,
117
+ S as e,
118
+ b as f,
119
+ g,
120
+ N as h,
121
+ a as i,
122
+ J as j,
123
+ d as k,
124
+ P as l,
125
+ f as n,
126
+ p as s
127
+ };
128
+ //# sourceMappingURL=utils-jduntaQU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-jduntaQU.js","sources":["../src/area/utils.ts"],"sourcesContent":["import { RouteAction, ActiveRoute } from './router.types'\n\n/**\n * Compare two custom element constructors for equality\n * @param constructor1 First constructor to compare\n * @param constructor2 Second constructor to compare\n * @returns true if constructors are functionally equivalent\n */\nexport function compareCustomElementConstructors(\n\tconstructor1: CustomElementConstructor | Function,\n\tconstructor2: CustomElementConstructor | Function\n): boolean {\n\t// Quick reference check\n\tif (constructor1 === constructor2) {\n\t\treturn true\n\t}\n\n\t// Check if both are functions\n\tif (typeof constructor1 !== 'function' || typeof constructor2 !== 'function') {\n\t\treturn false\n\t}\n\n\t// Compare by name (handles minification)\n\tif (constructor1.name && constructor2.name && constructor1.name === constructor2.name) {\n\t\treturn true\n\t}\n\n\t// Compare observed attributes if available\n\tconst obs1 = (constructor1 as any).observedAttributes\n\tconst obs2 = (constructor2 as any).observedAttributes\n\t\n\tif (obs1 && obs2) {\n\t\tif (Array.isArray(obs1) && Array.isArray(obs2)) {\n\t\t\tif (obs1.length !== obs2.length) return false\n\t\t\treturn obs1.every((attr, i) => attr === obs2[i])\n\t\t}\n\t}\n\n\t// Try to compare prototypes\n\ttry {\n\t\tconst proto1 = constructor1.prototype\n\t\tconst proto2 = constructor2.prototype\n\t\t\n\t\t// Check if they have the same prototype chain\n\t\tif (Object.getPrototypeOf(proto1) === Object.getPrototypeOf(proto2)) {\n\t\t\t// Check if they have the same property names\n\t\t\tconst keys1 = Object.getOwnPropertyNames(proto1).sort()\n\t\t\tconst keys2 = Object.getOwnPropertyNames(proto2).sort()\n\t\t\t\n\t\t\treturn keys1.length === keys2.length && \n\t\t\t\t keys1.every((key, i) => key === keys2[i])\n\t\t}\n\t} catch {\n\t\t// Ignore prototype access errors\n\t}\n\n\treturn false\n}\n\n/**\n * Normalize a component tag name for comparison\n * @param tagName Tag name to normalize\n * @returns Normalized tag name\n */\nexport function normalizeTagName(tagName: string): string {\n\treturn tagName\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]/g, '') // Remove all non-alphanumeric characters\n}\n\n/**\n * Get tag name from a component\n * @param component Component to get tag name from\n * @returns Tag name or null if unable to determine\n */\nexport function getTagName(component: any): string | null {\n\tif (typeof component === 'string') {\n\t\treturn component.toLowerCase()\n\t}\n\t\n\tif (component instanceof HTMLElement) {\n\t\treturn component.tagName.toLowerCase()\n\t}\n\t\n\tif (typeof component === 'function') {\n\t\t// Try to get custom element name from constructor\n\t\tconst name = component.name\n\t\tif (name) {\n\t\t\t// Convert PascalCase to kebab-case\n\t\t\treturn name\n\t\t\t\t.replace(/([A-Z])/g, '-$1')\n\t\t\t\t.toLowerCase()\n\t\t\t\t.replace(/^-/, '')\n\t\t}\n\t}\n\t\n\treturn null\n}\n\n/**\n * Deep merge two objects\n * @param target Target object\n * @param source Source object to merge\n * @returns Merged object\n */\nexport function deepMerge<T extends Record<string, any>>(\n\ttarget: T,\n\tsource: Partial<T>\n): T {\n\tconst output = { ...target }\n\t\n\tfor (const key in source) {\n\t\tif (source.hasOwnProperty(key)) {\n\t\t\tconst sourceValue = source[key]\n\t\t\tconst targetValue = output[key]\n\t\t\t\n\t\t\tif (isObject(sourceValue) && isObject(targetValue)) {\n\t\t\t\toutput[key] = deepMerge(targetValue, sourceValue)\n\t\t\t} else {\n\t\t\t\toutput[key] = sourceValue as T[Extract<keyof T, string>]\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn output\n}\n\n/**\n * Check if value is a plain object\n * @param obj Value to check\n * @returns true if value is a plain object\n */\nexport function isObject(obj: any): obj is Record<string, any> {\n\treturn obj !== null && \n\t\t typeof obj === 'object' && \n\t\t obj.constructor === Object &&\n\t\t Object.prototype.toString.call(obj) === '[object Object]'\n}\n\n/**\n * Debounce a function\n * @param func Function to debounce\n * @param wait Wait time in milliseconds\n * @returns Debounced function\n */\nexport function debounce<T extends (...args: any[]) => any>(\n\tfunc: T,\n\twait: number\n): (...args: Parameters<T>) => void {\n\tlet timeout: ReturnType<typeof setTimeout> | null = null\n\t\n\treturn function (this: any, ...args: Parameters<T>) {\n\t\tconst context = this\n\t\t\n\t\tif (timeout !== null) {\n\t\t\tclearTimeout(timeout)\n\t\t}\n\t\t\n\t\ttimeout = setTimeout(() => {\n\t\t\tfunc.apply(context, args)\n\t\t\ttimeout = null\n\t\t}, wait)\n\t}\n}\n\n/**\n * Create a URL-safe string from route state\n * @param state Route state object\n * @returns URL-safe encoded string\n */\nexport function encodeRouteState(state: Record<string, unknown>): string {\n\ttry {\n\t\tconst json = JSON.stringify(state)\n\t\treturn encodeURIComponent(json)\n\t} catch (error) {\n\t\tconsole.error('Failed to encode route state:', error)\n\t\treturn ''\n\t}\n}\n\n/**\n * Decode a URL-safe string to route state\n * @param encoded Encoded string\n * @returns Decoded route state or empty object\n */\nexport function decodeRouteState(encoded: string): Record<string, unknown> {\n\tif (!encoded) return {}\n\t\n\ttry {\n\t\tconst decoded = decodeURIComponent(encoded)\n\t\tconst parsed = JSON.parse(decoded)\n\t\t\n\t\tif (isObject(parsed)) {\n\t\t\treturn parsed\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('Failed to decode route state:', error)\n\t}\n\t\n\treturn {}\n}\n\n/**\n * Compare two route actions for equality\n * @param a First route action\n * @param b Second route action\n * @returns true if route actions are equal\n */\nexport function compareRouteActions(a: RouteAction, b: RouteAction): boolean {\n\t// Compare areas\n\tif (a.area !== b.area) return false\n\t\n\t// Compare components\n\tif (typeof a.component !== typeof b.component) return false\n\t\n\tif (typeof a.component === 'string' && typeof b.component === 'string') {\n\t\tif (normalizeTagName(a.component) !== normalizeTagName(b.component)) {\n\t\t\treturn false\n\t\t}\n\t} else if (typeof a.component === 'function' && typeof b.component === 'function') {\n\t\tif (!compareCustomElementConstructors(a.component, b.component)) {\n\t\t\treturn false\n\t\t}\n\t} else if (a.component !== b.component) {\n\t\treturn false\n\t}\n\t\n\t// Compare state\n\tif (JSON.stringify(a.state || {}) !== JSON.stringify(b.state || {})) {\n\t\treturn false\n\t}\n\t\n\t// Compare params\n\tif (JSON.stringify(a.params || {}) !== JSON.stringify(b.params || {})) {\n\t\treturn false\n\t}\n\t\n\treturn true\n}\n\n/**\n * Compare two active routes for equality\n * @param a First active route\n * @param b Second active route\n * @returns true if active routes are equal\n */\nexport function compareActiveRoutes(a: ActiveRoute, b: ActiveRoute): boolean {\n\treturn a.area === b.area &&\n\t\t a.component === b.component &&\n\t\t JSON.stringify(a.state || {}) === JSON.stringify(b.state || {}) &&\n\t\t JSON.stringify(a.params || {}) === JSON.stringify(b.params || {})\n}\n\n/**\n * Create a cache key from a route action\n * @param route Route action\n * @returns Cache key string\n */\nexport function createRouteCacheKey(route: RouteAction): string {\n\tconst tagName = getTagName(route.component) || 'unknown'\n\tconst stateHash = simpleHash(JSON.stringify(route.state || {}))\n\tconst paramsHash = simpleHash(JSON.stringify(route.params || {}))\n\t\n\treturn `${route.area}:${tagName}:${stateHash}:${paramsHash}`\n}\n\n/**\n * Simple hash function for creating cache keys\n * @param str String to hash\n * @returns Hash string\n */\nfunction simpleHash(str: string): string {\n\tlet hash = 0\n\t\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst char = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + char\n\t\thash = hash & hash // Convert to 32-bit integer\n\t}\n\t\n\treturn Math.abs(hash).toString(36)\n}\n\n/**\n * Sanitize route state to remove sensitive data\n * @param state Route state\n * @param keysToRemove Keys to remove from state\n * @returns Sanitized state\n */\nexport function sanitizeRouteState(\n\tstate: Record<string, unknown>,\n\tkeysToRemove: string[] = ['password', 'token', 'secret', 'apiKey']\n): Record<string, unknown> {\n\tconst sanitized: Record<string, unknown> = {}\n\t\n\tfor (const key in state) {\n\t\tif (state.hasOwnProperty(key) && !keysToRemove.includes(key)) {\n\t\t\tconst value = state[key]\n\t\t\t\n\t\t\tif (isObject(value)) {\n\t\t\t\tsanitized[key] = sanitizeRouteState(value, keysToRemove)\n\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\tsanitized[key] = value.map(item => \n\t\t\t\t\tisObject(item) ? sanitizeRouteState(item, keysToRemove) : item\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tsanitized[key] = value\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn sanitized\n}\n\n/**\n * Extract query parameters from URL\n * @param url URL string or URLSearchParams\n * @returns Object with query parameters\n */\nexport function extractQueryParams(url?: string | URLSearchParams): Record<string, string> {\n\tconst params: Record<string, string> = {}\n\t\n\tlet searchParams: URLSearchParams\n\t\n\tif (url instanceof URLSearchParams) {\n\t\tsearchParams = url\n\t} else if (typeof url === 'string') {\n\t\tconst urlObj = new URL(url, window.location.origin)\n\t\tsearchParams = urlObj.searchParams\n\t} else {\n\t\tsearchParams = new URLSearchParams(window.location.search)\n\t}\n\t\n\tsearchParams.forEach((value, key) => {\n\t\tparams[key] = value\n\t})\n\t\n\treturn params\n}\n\n/**\n * Build query string from parameters object\n * @param params Parameters object\n * @returns Query string with leading '?'\n */\nexport function buildQueryString(params: Record<string, string | number | boolean>): string {\n\tconst searchParams = new URLSearchParams()\n\t\n\tfor (const key in params) {\n\t\tif (params.hasOwnProperty(key)) {\n\t\t\tconst value = params[key]\n\t\t\tif (value !== undefined && value !== null && value !== '') {\n\t\t\t\tsearchParams.set(key, String(value))\n\t\t\t}\n\t\t}\n\t}\n\t\n\tconst queryString = searchParams.toString()\n\treturn queryString ? `?${queryString}` : ''\n}"],"names":["compareCustomElementConstructors","constructor1","constructor2","name","obs1","observedAttributes","obs2","Array","isArray","length","every","attr","i","proto1","prototype","proto2","Object","getPrototypeOf","keys1","getOwnPropertyNames","sort","keys2","key","normalizeTagName","tagName","toLowerCase","replace","getTagName","component","HTMLElement","deepMerge","target","source","output","hasOwnProperty","sourceValue","targetValue","isObject","obj","constructor","toString","call","debounce","func","wait","timeout","args","context","this","clearTimeout","setTimeout","apply","encodeRouteState","state","json","JSON","stringify","encodeURIComponent","decodeRouteState","encoded","decoded","decodeURIComponent","parsed","parse","error","compareRouteActions","a","b","area","params","compareActiveRoutes","createRouteCacheKey","route","stateHash","simpleHash","paramsHash","str","hash","charCodeAt","Math","abs","sanitizeRouteState","keysToRemove","sanitized","includes","value","map","item","extractQueryParams","url","searchParams","URLSearchParams","URL","window","location","origin","search","forEach","buildQueryString","set","String","queryString"],"mappings":"AAQgB,SAAAA,EACfC,GACAC,GAGA;AAAA,MAAID,MAAiBC,EACb,QAAA;AAIR,aAAWD,KAAiB,cAAsC,OAAjBC,KAAiB,WAC1D,QAAA;AAIR,MAAID,EAAaE,QAAQD,EAAaC,QAAQF,EAAaE,SAASD,EAAaC,KACzE;AAIR,QAAMC,IAAQH,EAAqBI,oBAC7BC,IAAQJ,EAAqBG;AAEnC,MAAID,KAAQE,KACPC,MAAMC,QAAQJ,CAAAA,KAASG,MAAMC,QAAQF,CACxC,EAAA,QAAIF,EAAKK,WAAWH,EAAKG,UAClBL,EAAKM,MAAM,CAACC,GAAMC,MAAMD,MAASL,EAAKM,CAK3C,CAAA;AAAA,MAAA;AACH,UAAMC,IAASZ,EAAaa,WACtBC,IAASb,EAAaY;AAG5B,QAAIE,OAAOC,eAAeJ,CAAYG,MAAAA,OAAOC,eAAeF,CAAS,GAAA;AAEpE,YAAMG,IAAQF,OAAOG,oBAAoBN,CAAAA,EAAQO,KAC3CC,GAAAA,IAAQL,OAAOG,oBAAoBJ,CAAQK,EAAAA,KAAAA;AAEjD,aAAOF,EAAMT,WAAWY,EAAMZ,UAC1BS,EAAMR,MAAM,CAACY,GAAKV,MAAMU,MAAQD,EAAMT,CAAAA,CAAAA;AAAAA,IAAE;AAAA,EAC7C;EACO;AAID,SAAA;AACR;AAOO,SAASW,EAAiBC,GAAAA;AAChC,SAAOA,EACLC,cACAC,QAAQ,cAAc,EACzB;AAAA;AAOO,SAASC,EAAWC,GAAAA;AACtB,MAAqB,OAAdA,KAAc,SACxB,QAAOA,EAAUH,YAGlB;AAAA,MAAIG,aAAqBC,YACjB,QAAAD,EAAUJ,QAAQC;AAGtB,MAAqB,OAAdG,KAAc,YAAY;AAEpC,UAAMzB,IAAOyB,EAAUzB;AACvB,QAAIA,EAEI,QAAAA,EACLuB,QAAQ,YAAY,OACpBD,YACAC,EAAAA,QAAQ,MAAM,EAAA;AAAA,EACjB;AAGM,SAAA;AACR;AAQgB,SAAAI,EACfC,GACAC,GAAAA;AAEM,QAAAC,IAAS,EAAKF,GAAAA,EAAAA;AAEpB,aAAWT,KAAOU,EACb,KAAAA,EAAOE,eAAeZ,IAAM;AACzB,UAAAa,IAAcH,EAAOV,IACrBc,IAAcH,EAAOX,CAEvBe;AAAAA,IAAAA,EAASF,MAAgBE,EAASD,CAAAA,IACrCH,EAAOX,CAAAA,IAAOQ,EAAUM,GAAaD,CAAAA,IAErCF,EAAOX,CAAAA,IAAOa;AAAAA,EACf;AAIK,SAAAF;AACR;AAOO,SAASI,EAASC,GAAAA;AACxB,SAAOA,MAAQ,QACJA,OAAAA,KAAQ,YACfA,EAAIC,gBAAgBvB,UACpBA,OAAOF,UAAU0B,SAASC,KAAKH,CACpC,MAD6C;AAC7C;AAQgB,SAAAI,EACfC,GACAC,GAEA;AAAA,MAAIC,IAAgD;AAEpD,SAAO,YAAwBC,GAAAA;AAC9B,UAAMC,IAAUC;AAEA,IAAZH,MAAY,QACfI,aAAaJ,CAAAA,GAGdA,IAAUK,WAAW,MAAA;AACfP,MAAAA,EAAAQ,MAAMJ,GAASD,CACVD,GAAAA,IAAA;AAAA,IAAA,GACRD,CACJ;AAAA,EAAA;AACD;AAOO,SAASQ,EAAiBC,GAC5B;AAAA,MAAA;AACG,UAAAC,IAAOC,KAAKC,UAAUH,CAAAA;AAC5B,WAAOI,mBAAmBH;UAGnB;AAAA,WAAA;AAAA,EAAA;AAET;AAOO,SAASI,EAAiBC;AAC5B,MAACA,CAAAA,EAAS,QAAO,CAAC;AAElB,MACG;AAAA,UAAAC,IAAUC,mBAAmBF,IAC7BG,IAASP,KAAKQ,MAAMH,CAAAA;AAEtB,QAAAvB,EAASyB,CAAAA,EACL,QAAAA;AAAAA,UAEAE;AAAAA,EAC4C;AAGrD,SAAO,CAAC;AACT;AAQgB,SAAAC,EAAoBC,GAAgBC,GAEnD;AAGA,MAHID,EAAEE,SAASD,EAAEC,QAGjB,OAAWF,EAAEtC,aAAqBuC,OAAAA,EAAEvC,UAAkB,QAAA;AAEtD,MAA2B,OAAhBsC,EAAEtC,aAAc,mBAAmBuC,EAAEvC,aAAc;AAC7D,QAAIL,EAAiB2C,EAAEtC,SAAAA,MAAeL,EAAiB4C,EAAEvC,WACjD,QAAA;AAAA,aAEyB,OAAhBsC,EAAEtC,aAAc,cAAqC,OAAhBuC,EAAEvC,aAAc;AACtE,SAAK5B,EAAiCkE,EAAEtC,WAAWuC,EAAEvC,WAC7C,QAAA;AAAA,aAEEsC,EAAEtC,cAAcuC,EAAEvC,UACrB,QAAA;AAIR,SAAI2B,KAAKC,UAAUU,EAAEb,SAAS,CAAE,CAAME,MAAAA,KAAKC,UAAUW,EAAEd,SAAS,CAAE,CAK9DE,KAAAA,KAAKC,UAAUU,EAAEG,UAAU,CAAE,CAAA,MAAMd,KAAKC,UAAUW,EAAEE,UAAU,CAAE;AAKrE;AAQgB,SAAAC,EAAoBJ,GAAgBC;AACnD,SAAOD,EAAEE,SAASD,EAAEC,QAChBF,EAAEtC,cAAcuC,EAAEvC,aAClB2B,KAAKC,UAAUU,EAAEb,SAAS,CAAE,OAAME,KAAKC,UAAUW,EAAEd,SAAS,CAAA,CAAA,KAC5DE,KAAKC,UAAUU,EAAEG,UAAU,CAAE,CAAMd,MAAAA,KAAKC,UAAUW,EAAEE,UAAU,CAAA,CAAA;AACnE;AAOO,SAASE,EAAoBC,GACnC;AAAA,QAAMhD,IAAUG,EAAW6C,EAAM5C,SAAc,KAAA,WACzC6C,IAAYC,EAAWnB,KAAKC,UAAUgB,EAAMnB,SAAS,CAAA,CAAA,CAAA,GACrDsB,IAAaD,EAAWnB,KAAKC,UAAUgB,EAAMH,UAAU,CAAA;AAEtD,SAAA,GAAGG,EAAMJ,IAAAA,IAAQ5C,KAAWiD,CAAaE,IAAAA,CAAAA;AACjD;AAOA,SAASD,EAAWE,GACnB;AAAA,MAAIC,IAAO;AAEX,WAASjE,IAAI,GAAGA,IAAIgE,EAAInE,QAAQG;AAEtBiE,IAAAA,KAAAA,KAAQ,KAAKA,IADTD,EAAIE,WAAWlE,IAE5BiE,KAAOA;AAGR,SAAOE,KAAKC,IAAIH,CAAAA,EAAMrC,SAAS,EAAA;AAChC;AAQgB,SAAAyC,EACf5B,GACA6B,IAAyB,CAAC,YAAY,SAAS,UAAU;AAEzD,QAAMC,IAAqC,CAAC;AAE5C,aAAW7D,KAAO+B,EACb,KAAAA,EAAMnB,eAAeZ,CAAAA,KAAAA,CAAS4D,EAAaE,SAAS9D,IAAM;AACvD,UAAA+D,IAAQhC,EAAM/B;AAEhBe,IAAAA,EAASgD,CAAAA,IACZF,EAAU7D,CAAAA,IAAO2D,EAAmBI,GAAOH,CAAAA,IACjC3E,MAAMC,QAAQ6E,KACdF,EAAA7D,CAAAA,IAAO+D,EAAMC,WACtBjD,EAASkD,CAAAA,IAAQN,EAAmBM,GAAML,KAAgBK,CAG3DJ,IAAAA,EAAU7D,CAAO+D,IAAAA;AAAAA,EAClB;AAIK,SAAAF;AACR;AAOO,SAASK,EAAmBC,GAClC;AAAA,QAAMpB,IAAiC,CAAC;AAEpC,MAAAqB;AAEJ,SAAID,aAAeE,kBACHD,IAAAD,IACU,OAARA,KAAQ,WAEzBC,IADe,IAAIE,IAAIH,GAAKI,OAAOC,SAASC,MAAAA,EACtBL,eAEtBA,IAAe,IAAIC,gBAAgBE,OAAOC,SAASE,MAAAA,GAGvCN,EAAAO,QAAQ,CAACZ,GAAO/D,MAC5B+C;AAAAA,IAAAA,EAAO/C,KAAO+D;AAAAA,EAAA,CAAA,GAGRhB;AACR;AAOO,SAAS6B,EAAiB7B,GAAAA;AAC1B,QAAAqB,IAAe,IAAIC;AAEzB,aAAWrE,KAAO+C,EACb,KAAAA,EAAOnC,eAAeZ,CAAAA,GAAM;AACzB,UAAA+D,IAAQhB,EAAO/C,CAAAA;AACjB+D,SAAAA,QAAyCA,MAAU,MACtDK,EAAaS,IAAI7E,GAAK8E,OAAOf,CAAAA,CAAAA;AAAAA,EAC9B;AAII,QAAAgB,IAAcX,EAAalD,SAAAA;AAC1B,SAAA6D,IAAc,IAAIA,CAAgB,KAAA;AAC1C;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhmo91/schmancy",
3
- "version": "0.2.193",
3
+ "version": "0.2.195",
4
4
  "description": "UI library build with web components",
5
5
  "main": "./dist/index.js",
6
6
  "packageManager": "yarn@4.6.0",
@@ -22,6 +22,7 @@
22
22
  "files": [
23
23
  "dist",
24
24
  "types",
25
+ "ai",
25
26
  "README.md"
26
27
  ],
27
28
  "publishConfig": {
@@ -47,7 +48,7 @@
47
48
  },
48
49
  "homepage": "https://github.com/mhmo91/schmancy#readme",
49
50
  "dependencies": {
50
- "@floating-ui/dom": "^1.6.13",
51
+ "@floating-ui/dom": "^1.7.0",
51
52
  "@lit-labs/motion": "^1.0.8",
52
53
  "@lit-labs/virtualizer": "^2.1.0",
53
54
  "@lit/context": "^1.1.5",
@@ -65,7 +66,6 @@
65
66
  "fastest-levenshtein": "^1.0.16",
66
67
  "immer": "^10.1.1",
67
68
  "lit": "^3.3.0",
68
- "npm-check-updates": "^17.1.18",
69
69
  "playground-elements": "^0.20.0",
70
70
  "rxjs": "^7.8.2",
71
71
  "tippy.js": "^6.3.7",
@@ -78,26 +78,26 @@
78
78
  "devDependencies": {
79
79
  "@tailwindcss/container-queries": "^0.1.1",
80
80
  "@tailwindcss/forms": "^0.5.10",
81
- "@tailwindcss/postcss": "^4.1.3",
82
- "@tailwindcss/vite": "^4.1.3",
83
- "@types/node": "^22.14.1",
81
+ "@tailwindcss/postcss": "^4.1.6",
82
+ "@tailwindcss/vite": "^4.1.6",
83
+ "@types/node": "^22.15.17",
84
84
  "@types/uuid": "^10.0.0",
85
- "@typescript-eslint/parser": "^8.29.1",
86
- "@vitest/ui": "^3.1.1",
85
+ "@typescript-eslint/parser": "^8.32.0",
86
+ "@vitest/ui": "^3.1.3",
87
87
  "autoprefixer": "^10.4.21",
88
88
  "c8": "^10.1.3",
89
89
  "deepmerge": "^4.3.1",
90
- "eslint": "^9.24.0",
91
- "happy-dom": "^17.4.4",
90
+ "eslint": "^9.26.0",
91
+ "happy-dom": "^17.4.7",
92
92
  "postcss": "^8.5.3",
93
93
  "prettier": "^3.5.3",
94
94
  "rollup-plugin-copy": "^3.5.0",
95
- "sass": "^1.86.3",
96
- "tailwindcss": "^4.1.3",
97
- "vite": "^6.2.6",
95
+ "sass": "^1.88.0",
96
+ "tailwindcss": "^4.1.6",
97
+ "vite": "^6.3.5",
98
98
  "vite-plugin-sitemap": "^0.7.1",
99
99
  "vite-plugin-webfont-dl": "^3.10.4",
100
- "vitest": "^3.1.1"
100
+ "vitest": "^3.1.3"
101
101
  },
102
102
  "peerDependencies": {
103
103
  "lit": "^3.2.1",
@@ -10,7 +10,7 @@ export declare class SchmancyArea extends SchmancyArea_base {
10
10
  * @required
11
11
  */
12
12
  name: string;
13
- default: string | Promise<NodeModule> | CustomElementConstructor | TemplateResult<1>;
13
+ default: string | CustomElementConstructor | TemplateResult<1>;
14
14
  /**
15
15
  *
16
16
  * @param pathname pathname from the browser location API
@@ -1,6 +1,6 @@
1
- import { ReplaySubject, Subject } from 'rxjs';
1
+ import { Observable, ReplaySubject, Subject } from 'rxjs';
2
2
  import { SchmancyTeleportation } from '../teleport';
3
- import { ActiveRoute, RouteAction } from './router.types';
3
+ import { ActiveRoute, AreaSubscription, RouteAction } from './router.types';
4
4
  export declare const routerHistory: Subject<RouteAction>;
5
5
  export declare const FINDING_MORTIES = "FINDING_MORTIES";
6
6
  export declare const HERE_RICKY = "HERE_RICKY";
@@ -10,21 +10,88 @@ export type HERE_RICKY_EVENT = CustomEvent<{
10
10
  export type FINDING_MORTIES_EVENT = CustomEvent<{
11
11
  component: SchmancyTeleportation;
12
12
  }>;
13
- declare class AreaService {
13
+ declare class AreaService implements AreaSubscription {
14
14
  private static instance;
15
15
  prettyURL: boolean;
16
16
  mode: 'SILENT' | 'HISTORY';
17
17
  request: ReplaySubject<RouteAction>;
18
18
  current: Map<string, ActiveRoute>;
19
19
  $current: ReplaySubject<Map<string, ActiveRoute>>;
20
+ private get areaSubjects();
20
21
  enableHistoryMode: boolean;
21
22
  private findingMortiesEvent;
23
+ private disposed;
22
24
  constructor();
23
- find(): import("rxjs").Observable<any>;
25
+ /**
26
+ * Get or create a ReplaySubject for a specific area with proper cleanup
27
+ */
28
+ private getOrCreateAreaSubject;
29
+ /**
30
+ * Subscribe to a specific area with caching
31
+ */
32
+ on(areaName: string, skipCurrent?: boolean): Observable<ActiveRoute>;
33
+ /**
34
+ * Subscribe to all areas
35
+ */
36
+ all(skipCurrent?: boolean): Observable<Map<string, ActiveRoute>>;
37
+ /**
38
+ * Get state from an area with type safety
39
+ */
40
+ getState<T = unknown>(areaName: string): Observable<T>;
41
+ /**
42
+ * Get params from an area with type safety
43
+ */
44
+ params<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): Observable<T>;
45
+ /**
46
+ * Get a specific param from an area with null safety
47
+ */
48
+ param<T = unknown>(areaName: string, key: string): Observable<T>;
49
+ /**
50
+ * Find teleportation components
51
+ */
52
+ find(): Observable<{
53
+ component: SchmancyTeleportation;
54
+ }[]>;
55
+ /**
56
+ * Push a new route action with validation
57
+ */
24
58
  push(r: RouteAction): void;
59
+ /**
60
+ * Dispatch a DOM event for a specific area change
61
+ */
62
+ private dispatchAreaEvent;
63
+ /**
64
+ * Remove an area from the current state
65
+ */
25
66
  pop(name: string): void;
67
+ /**
68
+ * Clear all areas
69
+ */
70
+ clear(): void;
71
+ /**
72
+ * Dispose of the service and clean up resources
73
+ */
74
+ dispose(): void;
75
+ /**
76
+ * Get singleton instance
77
+ */
26
78
  static getInstance(): AreaService;
27
- get state(): {};
79
+ /**
80
+ * Get current state from URL
81
+ */
82
+ get state(): Record<string, unknown>;
83
+ /**
84
+ * Check if an area exists in current state
85
+ */
86
+ hasArea(areaName: string): boolean;
87
+ /**
88
+ * Get all active area names
89
+ */
90
+ getActiveAreas(): string[];
91
+ /**
92
+ * Get route for a specific area synchronously
93
+ */
94
+ getRoute(areaName: string): ActiveRoute | undefined;
28
95
  }
29
96
  export declare const area: AreaService;
30
97
  export default area;
@@ -1,3 +1,4 @@
1
1
  export * from './area.component';
2
2
  export * from './area.service';
3
3
  export * from './router.types';
4
+ export * from './utils';
@@ -1,15 +1,54 @@
1
1
  export type RouteAction = {
2
2
  component: CustomElementConstructor | string | HTMLElement;
3
3
  area: string;
4
- state?: object;
4
+ state?: Record<string, unknown>;
5
+ params?: Record<string, unknown>;
5
6
  historyStrategy?: THistoryStrategy;
6
7
  clearQueryParams?: string[] | null;
7
8
  };
8
9
  export type ActiveRoute = {
9
10
  component: string;
10
11
  area: string;
11
- state?: object;
12
+ state?: Record<string, unknown>;
13
+ params?: Record<string, unknown>;
12
14
  };
15
+ /**
16
+ * Interface for subscribing to area changes
17
+ */
18
+ export interface AreaSubscription {
19
+ /**
20
+ * Subscribe to a specific area
21
+ * @param areaName Name of the area to subscribe to
22
+ * @param skipCurrent Whether to skip the current value
23
+ * @returns Observable of the active route for the specified area
24
+ */
25
+ on(areaName: string, skipCurrent?: boolean): import('rxjs').Observable<ActiveRoute>;
26
+ /**
27
+ * Subscribe to all areas
28
+ * @param skipCurrent Whether to skip the current value
29
+ * @returns Observable of all active routes
30
+ */
31
+ all(skipCurrent?: boolean): import('rxjs').Observable<Map<string, ActiveRoute>>;
32
+ /**
33
+ * Get state from an area
34
+ * @param areaName Name of the area to subscribe to
35
+ * @returns Observable of the area's state
36
+ */
37
+ getState<T = unknown>(areaName: string): import('rxjs').Observable<T>;
38
+ /**
39
+ * Get params from an area
40
+ * @param areaName Name of the area to subscribe to
41
+ * @returns Observable of the area's params
42
+ */
43
+ params<T extends Record<string, unknown> = Record<string, unknown>>(areaName: string): import('rxjs').Observable<T>;
44
+ /**
45
+ * Get a specific param from an area
46
+ * @param areaName Name of the area to subscribe to
47
+ * @param key Key of the param to select
48
+ * @returns Observable of the param value
49
+ */
50
+ param<T = unknown>(areaName: string, key: string): import('rxjs').Observable<T>;
51
+ }
13
52
  export type THistoryStrategy = 'push' | 'replace' | 'pop' | 'silent';
14
53
  export declare enum HISTORY_STRATEGY {
15
54
  push = "push",
@@ -1 +1,91 @@
1
- export declare function compareCustomElementConstructors(constructor1: any, constructor2: any): boolean;
1
+ import { RouteAction, ActiveRoute } from './router.types';
2
+ /**
3
+ * Compare two custom element constructors for equality
4
+ * @param constructor1 First constructor to compare
5
+ * @param constructor2 Second constructor to compare
6
+ * @returns true if constructors are functionally equivalent
7
+ */
8
+ export declare function compareCustomElementConstructors(constructor1: CustomElementConstructor | Function, constructor2: CustomElementConstructor | Function): boolean;
9
+ /**
10
+ * Normalize a component tag name for comparison
11
+ * @param tagName Tag name to normalize
12
+ * @returns Normalized tag name
13
+ */
14
+ export declare function normalizeTagName(tagName: string): string;
15
+ /**
16
+ * Get tag name from a component
17
+ * @param component Component to get tag name from
18
+ * @returns Tag name or null if unable to determine
19
+ */
20
+ export declare function getTagName(component: any): string | null;
21
+ /**
22
+ * Deep merge two objects
23
+ * @param target Target object
24
+ * @param source Source object to merge
25
+ * @returns Merged object
26
+ */
27
+ export declare function deepMerge<T extends Record<string, any>>(target: T, source: Partial<T>): T;
28
+ /**
29
+ * Check if value is a plain object
30
+ * @param obj Value to check
31
+ * @returns true if value is a plain object
32
+ */
33
+ export declare function isObject(obj: any): obj is Record<string, any>;
34
+ /**
35
+ * Debounce a function
36
+ * @param func Function to debounce
37
+ * @param wait Wait time in milliseconds
38
+ * @returns Debounced function
39
+ */
40
+ export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void;
41
+ /**
42
+ * Create a URL-safe string from route state
43
+ * @param state Route state object
44
+ * @returns URL-safe encoded string
45
+ */
46
+ export declare function encodeRouteState(state: Record<string, unknown>): string;
47
+ /**
48
+ * Decode a URL-safe string to route state
49
+ * @param encoded Encoded string
50
+ * @returns Decoded route state or empty object
51
+ */
52
+ export declare function decodeRouteState(encoded: string): Record<string, unknown>;
53
+ /**
54
+ * Compare two route actions for equality
55
+ * @param a First route action
56
+ * @param b Second route action
57
+ * @returns true if route actions are equal
58
+ */
59
+ export declare function compareRouteActions(a: RouteAction, b: RouteAction): boolean;
60
+ /**
61
+ * Compare two active routes for equality
62
+ * @param a First active route
63
+ * @param b Second active route
64
+ * @returns true if active routes are equal
65
+ */
66
+ export declare function compareActiveRoutes(a: ActiveRoute, b: ActiveRoute): boolean;
67
+ /**
68
+ * Create a cache key from a route action
69
+ * @param route Route action
70
+ * @returns Cache key string
71
+ */
72
+ export declare function createRouteCacheKey(route: RouteAction): string;
73
+ /**
74
+ * Sanitize route state to remove sensitive data
75
+ * @param state Route state
76
+ * @param keysToRemove Keys to remove from state
77
+ * @returns Sanitized state
78
+ */
79
+ export declare function sanitizeRouteState(state: Record<string, unknown>, keysToRemove?: string[]): Record<string, unknown>;
80
+ /**
81
+ * Extract query parameters from URL
82
+ * @param url URL string or URLSearchParams
83
+ * @returns Object with query parameters
84
+ */
85
+ export declare function extractQueryParams(url?: string | URLSearchParams): Record<string, string>;
86
+ /**
87
+ * Build query string from parameters object
88
+ * @param params Parameters object
89
+ * @returns Query string with leading '?'
90
+ */
91
+ export declare function buildQueryString(params: Record<string, string | number | boolean>): string;
@@ -23,6 +23,11 @@ export declare class SchmancyCheckbox extends SchmancyCheckbox_base {
23
23
  * @attr {boolean} value - The value of the checkbox.
24
24
  */
25
25
  value: boolean;
26
+ /**
27
+ * @attr {boolean} checked - Alternative property for checkbox state (alias for value).
28
+ */
29
+ get checked(): boolean;
30
+ set checked(val: boolean);
26
31
  /**
27
32
  * @attr {boolean} disabled - The disabled state of the checkbox.
28
33
  */
@@ -39,6 +44,10 @@ export declare class SchmancyCheckbox extends SchmancyCheckbox_base {
39
44
  * @attr {string} id - The id of the checkbox.
40
45
  */
41
46
  id: string;
47
+ /**
48
+ * @attr {string} label - The label text for the checkbox.
49
+ */
50
+ label?: string;
42
51
  /**
43
52
  * @attr {sm | md | lg } size - The size of the checkbox.
44
53
  */
@@ -0,0 +1,15 @@
1
+ import '../busy';
2
+ export type CircularProgressSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | string;
3
+ declare const SchmancyCircularProgress_base: import("@mixins/index").Constructor<CustomElementConstructor> & import("@mixins/index").Constructor<import("@mixins/index").ITailwindElementMixin> & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
4
+ export declare class SchmancyCircularProgress extends SchmancyCircularProgress_base {
5
+ indeterminate: boolean;
6
+ size: CircularProgressSize;
7
+ private get spinnerSize();
8
+ protected render(): import("lit-html").TemplateResult<1>;
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'schmancy-circular-progress': SchmancyCircularProgress;
13
+ }
14
+ }
15
+ export {};
@@ -0,0 +1 @@
1
+ export { SchmancyCircularProgress } from './circular-progress';
@@ -30,6 +30,10 @@ export declare class ConfirmDialog extends ConfirmDialog_base {
30
30
  * Dialog variant (affects button colors)
31
31
  */
32
32
  variant: 'default' | 'danger';
33
+ /**
34
+ * Confirm button color
35
+ */
36
+ confirmColor?: 'primary' | 'error' | 'warning' | 'success';
33
37
  /**
34
38
  * Current position of the dialog
35
39
  */
@@ -86,6 +90,10 @@ export declare class ConfirmDialog extends ConfirmDialog_base {
86
90
  * Handle cancel action
87
91
  */
88
92
  private handleCancel;
93
+ /**
94
+ * Get the CSS class for the confirm button based on color
95
+ */
96
+ private getConfirmButtonClass;
89
97
  render(): import("lit-html").TemplateResult<1>;
90
98
  /**
91
99
  * Static helper for even simpler API
@@ -9,6 +9,7 @@ export interface DialogOptions {
9
9
  confirmText?: string;
10
10
  cancelText?: string;
11
11
  variant?: 'default' | 'danger';
12
+ confirmColor?: 'primary' | 'error' | 'warning' | 'success';
12
13
  position?: {
13
14
  x: number;
14
15
  y: number;
@@ -7,6 +7,7 @@ export * from './button';
7
7
  export * from './card';
8
8
  export * from './checkbox';
9
9
  export * from './chips';
10
+ export * from './circular-progress';
10
11
  export * from './components';
11
12
  export * from './content-drawer';
12
13
  export * from './date-range';
@@ -8,6 +8,7 @@ export interface TableColumn<T extends Record<string, any> = any> {
8
8
  weight?: 'normal' | 'bold';
9
9
  render?: (item: T) => TemplateResult | string | number;
10
10
  sortable?: boolean;
11
+ value?: (item: T) => any;
11
12
  }
12
13
  export interface RowEventDetail<T> {
13
14
  item: T;