@tessera-ui/core 0.4.0 → 0.5.0

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 (600) hide show
  1. package/README.md +21 -12
  2. package/dist/components/index.js +1 -1
  3. package/dist/components/{p-O8aQgWRZ.js → p-2ydrBbXU.js} +2 -2
  4. package/dist/components/p-A0saON5E.js +2 -0
  5. package/dist/components/p-B046Q9mB.js +2 -0
  6. package/dist/components/{p-C7JaUlNB.js → p-B4_cDa1A.js} +2 -2
  7. package/dist/components/{p-BdzH6wlc.js → p-BCv5H01l.js} +2 -2
  8. package/dist/components/p-BGnwokOT.js +2 -0
  9. package/dist/components/p-BMu62WKn.js +2 -0
  10. package/dist/components/p-BT1uIgln.js +2 -0
  11. package/dist/components/p-BUWioFPq.js +2 -0
  12. package/dist/components/{p-v-L32wKy.js → p-BdeYJARM.js} +2 -2
  13. package/dist/components/{p-DhQ7X_TL.js → p-BnX1KON4.js} +2 -2
  14. package/dist/components/{p-DwJ7Jt3k.js → p-BsX7YKf7.js} +2 -2
  15. package/dist/components/p-BzSptDZ8.js +2 -0
  16. package/dist/components/p-C4C_ntgI.js +2 -0
  17. package/dist/components/p-C4jvuley.js +2 -0
  18. package/dist/components/{p-BP-fZfRb.js → p-CGcBFblJ.js} +2 -2
  19. package/dist/components/p-CJvp9tpd.js +2 -0
  20. package/dist/components/{p-DD986daz.js → p-COpYtD-7.js} +2 -2
  21. package/dist/components/{p-C8wd1644.js → p-CV-_3uEV.js} +2 -2
  22. package/dist/components/p-CXpxj5LF.js +2 -0
  23. package/dist/components/{p-CEQXPxzU.js → p-Ccf23RDb.js} +2 -2
  24. package/dist/components/{p-SopsdO_f.js → p-Ccpbt1Ou.js} +2 -2
  25. package/dist/components/{p-DMPxu5Po.js → p-CgLMjfKE.js} +2 -2
  26. package/dist/components/p-D2rKVDAH.js +2 -0
  27. package/dist/components/{p-zveaarwa.js → p-D33ZtGZF.js} +2 -2
  28. package/dist/components/{p-Fot2uNwg.js → p-DHBR8Qn_.js} +2 -2
  29. package/dist/components/{p-faVXXwqR.js → p-DOtFbUdh.js} +2 -2
  30. package/dist/components/{p-BjiDgszq.js → p-DelBi-6m.js} +2 -2
  31. package/dist/components/{p-Cy_Ad-Jy.js → p-DgbNUE6a.js} +2 -2
  32. package/dist/components/{p-DTAVTqnc.js → p-I5_iFNxb.js} +2 -2
  33. package/dist/components/p-IZ8R1wr2.js +2 -0
  34. package/dist/components/{p-B_NL55YI.js → p-LcG5Mdyq.js} +2 -2
  35. package/dist/components/{p-BcoU0ISN.js → p-XuOQBHK0.js} +2 -2
  36. package/dist/components/p-_EbBBIv1.js +2 -0
  37. package/dist/components/p-_vCbug8y.js +2 -0
  38. package/dist/components/{p-B0ZXNFSa.js → p-b-zWbmXM.js} +2 -2
  39. package/dist/components/{p-DwUH8YQW.js → p-e-hrdd0t.js} +2 -2
  40. package/dist/components/p-gtluIo4p.js +2 -0
  41. package/dist/components/p-o-GUod2W.js +2 -0
  42. package/dist/components/{p-DooMF1E0.js → p-w9y5VC-3.js} +2 -2
  43. package/dist/components/ts-accordion-item.js +1 -1
  44. package/dist/components/ts-accordion.js +1 -1
  45. package/dist/components/ts-alert.js +1 -1
  46. package/dist/components/ts-avatar.js +1 -1
  47. package/dist/components/ts-badge.js +1 -1
  48. package/dist/components/ts-banner.js +1 -1
  49. package/dist/components/ts-breadcrumb-item.js +1 -1
  50. package/dist/components/ts-breadcrumb.js +1 -1
  51. package/dist/components/ts-button.js +1 -1
  52. package/dist/components/ts-card.js +1 -1
  53. package/dist/components/ts-checkbox.js +1 -1
  54. package/dist/components/ts-chip.js +1 -1
  55. package/dist/components/ts-container.js +1 -1
  56. package/dist/components/ts-date-picker.js +1 -1
  57. package/dist/components/ts-dialog.js +1 -1
  58. package/dist/components/ts-divider.js +1 -1
  59. package/dist/components/ts-drawer.js +1 -1
  60. package/dist/components/ts-empty-state.js +1 -1
  61. package/dist/components/ts-file-upload.js +1 -1
  62. package/dist/components/ts-grid.js +1 -1
  63. package/dist/components/ts-icon.js +1 -1
  64. package/dist/components/ts-input.js +1 -1
  65. package/dist/components/ts-menu-item.js +1 -1
  66. package/dist/components/ts-menu.js +1 -1
  67. package/dist/components/ts-modal.js +1 -1
  68. package/dist/components/ts-nav-item.js +1 -1
  69. package/dist/components/ts-nav.js +1 -1
  70. package/dist/components/ts-pagination.js +1 -1
  71. package/dist/components/ts-popover.js +1 -1
  72. package/dist/components/ts-progress.js +1 -1
  73. package/dist/components/ts-radio.js +1 -1
  74. package/dist/components/ts-row.js +1 -1
  75. package/dist/components/ts-select.js +1 -1
  76. package/dist/components/ts-skeleton.js +1 -1
  77. package/dist/components/ts-slider.js +1 -1
  78. package/dist/components/ts-spacer.js +1 -1
  79. package/dist/components/ts-spinner.js +1 -1
  80. package/dist/components/ts-stack.js +1 -1
  81. package/dist/components/ts-step.js +1 -1
  82. package/dist/components/ts-stepper.js +1 -1
  83. package/dist/components/ts-switch-group.js +1 -1
  84. package/dist/components/ts-switch-option.js +1 -1
  85. package/dist/components/ts-tab-panel.js +1 -1
  86. package/dist/components/ts-table.js +1 -1
  87. package/dist/components/ts-tabs.js +1 -1
  88. package/dist/components/ts-textarea.js +1 -1
  89. package/dist/components/ts-toast.js +1 -1
  90. package/dist/components/ts-toggle.js +1 -1
  91. package/dist/components/ts-toolbar.js +1 -1
  92. package/dist/components/ts-tooltip.js +1 -1
  93. package/dist/components/ts-tree-item.js +1 -1
  94. package/dist/components/ts-tree.js +1 -1
  95. package/package.json +24 -3
  96. package/dist/cjs/aria-CeYIvz3U.js.map +0 -1
  97. package/dist/cjs/index-Bel_x2OU.js.map +0 -1
  98. package/dist/cjs/index.cjs.js.map +0 -1
  99. package/dist/cjs/loader.cjs.js.map +0 -1
  100. package/dist/cjs/lucide-B1gCqJ3G.js.map +0 -1
  101. package/dist/cjs/tessera-ui.cjs.js.map +0 -1
  102. package/dist/cjs/ts-accordion-item.cjs.entry.js.map +0 -1
  103. package/dist/cjs/ts-accordion.cjs.entry.js.map +0 -1
  104. package/dist/cjs/ts-alert.cjs.entry.js.map +0 -1
  105. package/dist/cjs/ts-avatar.cjs.entry.js.map +0 -1
  106. package/dist/cjs/ts-badge.cjs.entry.js.map +0 -1
  107. package/dist/cjs/ts-banner.cjs.entry.js.map +0 -1
  108. package/dist/cjs/ts-breadcrumb-item.cjs.entry.js.map +0 -1
  109. package/dist/cjs/ts-breadcrumb.cjs.entry.js.map +0 -1
  110. package/dist/cjs/ts-button.cjs.entry.js.map +0 -1
  111. package/dist/cjs/ts-card.cjs.entry.js.map +0 -1
  112. package/dist/cjs/ts-checkbox.cjs.entry.js.map +0 -1
  113. package/dist/cjs/ts-chip.cjs.entry.js.map +0 -1
  114. package/dist/cjs/ts-container.cjs.entry.js.map +0 -1
  115. package/dist/cjs/ts-date-picker.cjs.entry.js.map +0 -1
  116. package/dist/cjs/ts-dialog.cjs.entry.js.map +0 -1
  117. package/dist/cjs/ts-divider.cjs.entry.js.map +0 -1
  118. package/dist/cjs/ts-drawer.cjs.entry.js.map +0 -1
  119. package/dist/cjs/ts-empty-state.cjs.entry.js.map +0 -1
  120. package/dist/cjs/ts-file-upload.cjs.entry.js.map +0 -1
  121. package/dist/cjs/ts-grid.cjs.entry.js.map +0 -1
  122. package/dist/cjs/ts-icon-CfbhgAgr.js.map +0 -1
  123. package/dist/cjs/ts-icon.cjs.entry.js.map +0 -1
  124. package/dist/cjs/ts-input.cjs.entry.js.map +0 -1
  125. package/dist/cjs/ts-menu-item.cjs.entry.js.map +0 -1
  126. package/dist/cjs/ts-menu.cjs.entry.js.map +0 -1
  127. package/dist/cjs/ts-modal.cjs.entry.js.map +0 -1
  128. package/dist/cjs/ts-nav-item.cjs.entry.js.map +0 -1
  129. package/dist/cjs/ts-nav.cjs.entry.js.map +0 -1
  130. package/dist/cjs/ts-pagination.cjs.entry.js.map +0 -1
  131. package/dist/cjs/ts-popover.cjs.entry.js.map +0 -1
  132. package/dist/cjs/ts-progress.cjs.entry.js.map +0 -1
  133. package/dist/cjs/ts-radio.cjs.entry.js.map +0 -1
  134. package/dist/cjs/ts-row.cjs.entry.js.map +0 -1
  135. package/dist/cjs/ts-select.cjs.entry.js.map +0 -1
  136. package/dist/cjs/ts-skeleton.cjs.entry.js.map +0 -1
  137. package/dist/cjs/ts-slider.cjs.entry.js.map +0 -1
  138. package/dist/cjs/ts-spacer.cjs.entry.js.map +0 -1
  139. package/dist/cjs/ts-spinner.cjs.entry.js.map +0 -1
  140. package/dist/cjs/ts-stack.cjs.entry.js.map +0 -1
  141. package/dist/cjs/ts-step.cjs.entry.js.map +0 -1
  142. package/dist/cjs/ts-stepper.cjs.entry.js.map +0 -1
  143. package/dist/cjs/ts-switch-group.cjs.entry.js.map +0 -1
  144. package/dist/cjs/ts-switch-option.cjs.entry.js.map +0 -1
  145. package/dist/cjs/ts-tab-panel.cjs.entry.js.map +0 -1
  146. package/dist/cjs/ts-table.cjs.entry.js.map +0 -1
  147. package/dist/cjs/ts-tabs.cjs.entry.js.map +0 -1
  148. package/dist/cjs/ts-textarea.cjs.entry.js.map +0 -1
  149. package/dist/cjs/ts-toast.cjs.entry.js.map +0 -1
  150. package/dist/cjs/ts-toggle.cjs.entry.js.map +0 -1
  151. package/dist/cjs/ts-toolbar.cjs.entry.js.map +0 -1
  152. package/dist/cjs/ts-tooltip.cjs.entry.js.map +0 -1
  153. package/dist/cjs/ts-tree-item.cjs.entry.js.map +0 -1
  154. package/dist/cjs/ts-tree.cjs.entry.js.map +0 -1
  155. package/dist/collection/components/accordion/accordion-item.js.map +0 -1
  156. package/dist/collection/components/accordion/accordion-item.stories.js +0 -4
  157. package/dist/collection/components/accordion/accordion-item.stories.js.map +0 -1
  158. package/dist/collection/components/accordion/accordion.js.map +0 -1
  159. package/dist/collection/components/accordion/accordion.stories.js +0 -90
  160. package/dist/collection/components/accordion/accordion.stories.js.map +0 -1
  161. package/dist/collection/components/alert/alert.js.map +0 -1
  162. package/dist/collection/components/alert/alert.stories.js +0 -128
  163. package/dist/collection/components/alert/alert.stories.js.map +0 -1
  164. package/dist/collection/components/avatar/avatar.js.map +0 -1
  165. package/dist/collection/components/avatar/avatar.stories.js +0 -138
  166. package/dist/collection/components/avatar/avatar.stories.js.map +0 -1
  167. package/dist/collection/components/badge/badge.js.map +0 -1
  168. package/dist/collection/components/badge/badge.stories.js +0 -193
  169. package/dist/collection/components/badge/badge.stories.js.map +0 -1
  170. package/dist/collection/components/banner/banner.js.map +0 -1
  171. package/dist/collection/components/banner/banner.stories.js +0 -92
  172. package/dist/collection/components/banner/banner.stories.js.map +0 -1
  173. package/dist/collection/components/breadcrumb/breadcrumb-item.js.map +0 -1
  174. package/dist/collection/components/breadcrumb/breadcrumb-item.stories.js +0 -4
  175. package/dist/collection/components/breadcrumb/breadcrumb-item.stories.js.map +0 -1
  176. package/dist/collection/components/breadcrumb/breadcrumb.js.map +0 -1
  177. package/dist/collection/components/breadcrumb/breadcrumb.stories.js +0 -88
  178. package/dist/collection/components/breadcrumb/breadcrumb.stories.js.map +0 -1
  179. package/dist/collection/components/button/button.js.map +0 -1
  180. package/dist/collection/components/button/button.stories.js +0 -219
  181. package/dist/collection/components/button/button.stories.js.map +0 -1
  182. package/dist/collection/components/card/card.js.map +0 -1
  183. package/dist/collection/components/card/card.stories.js +0 -221
  184. package/dist/collection/components/card/card.stories.js.map +0 -1
  185. package/dist/collection/components/checkbox/checkbox.js.map +0 -1
  186. package/dist/collection/components/checkbox/checkbox.stories.js +0 -90
  187. package/dist/collection/components/checkbox/checkbox.stories.js.map +0 -1
  188. package/dist/collection/components/chip/chip.js.map +0 -1
  189. package/dist/collection/components/chip/chip.stories.js +0 -139
  190. package/dist/collection/components/chip/chip.stories.js.map +0 -1
  191. package/dist/collection/components/container/container.js.map +0 -1
  192. package/dist/collection/components/container/container.stories.js +0 -138
  193. package/dist/collection/components/container/container.stories.js.map +0 -1
  194. package/dist/collection/components/date-picker/date-picker.js.map +0 -1
  195. package/dist/collection/components/date-picker/date-picker.stories.js +0 -119
  196. package/dist/collection/components/date-picker/date-picker.stories.js.map +0 -1
  197. package/dist/collection/components/dialog/dialog.js.map +0 -1
  198. package/dist/collection/components/dialog/dialog.stories.js +0 -147
  199. package/dist/collection/components/dialog/dialog.stories.js.map +0 -1
  200. package/dist/collection/components/divider/divider.js.map +0 -1
  201. package/dist/collection/components/divider/divider.stories.js +0 -94
  202. package/dist/collection/components/divider/divider.stories.js.map +0 -1
  203. package/dist/collection/components/drawer/drawer.js.map +0 -1
  204. package/dist/collection/components/drawer/drawer.stories.js +0 -143
  205. package/dist/collection/components/drawer/drawer.stories.js.map +0 -1
  206. package/dist/collection/components/empty-state/empty-state.js.map +0 -1
  207. package/dist/collection/components/empty-state/empty-state.stories.js +0 -113
  208. package/dist/collection/components/empty-state/empty-state.stories.js.map +0 -1
  209. package/dist/collection/components/file-upload/file-upload.js.map +0 -1
  210. package/dist/collection/components/file-upload/file-upload.stories.js +0 -107
  211. package/dist/collection/components/file-upload/file-upload.stories.js.map +0 -1
  212. package/dist/collection/components/grid/grid.js.map +0 -1
  213. package/dist/collection/components/grid/grid.stories.js +0 -134
  214. package/dist/collection/components/grid/grid.stories.js.map +0 -1
  215. package/dist/collection/components/icon/icon-registry.js.map +0 -1
  216. package/dist/collection/components/icon/icon.js.map +0 -1
  217. package/dist/collection/components/icon/icon.stories.js +0 -119
  218. package/dist/collection/components/icon/icon.stories.js.map +0 -1
  219. package/dist/collection/components/input/input.js.map +0 -1
  220. package/dist/collection/components/input/input.stories.js +0 -151
  221. package/dist/collection/components/input/input.stories.js.map +0 -1
  222. package/dist/collection/components/menu/menu-item.js.map +0 -1
  223. package/dist/collection/components/menu/menu-item.stories.js +0 -4
  224. package/dist/collection/components/menu/menu-item.stories.js.map +0 -1
  225. package/dist/collection/components/menu/menu.js.map +0 -1
  226. package/dist/collection/components/menu/menu.stories.js +0 -126
  227. package/dist/collection/components/menu/menu.stories.js.map +0 -1
  228. package/dist/collection/components/modal/modal.js.map +0 -1
  229. package/dist/collection/components/modal/modal.stories.js +0 -233
  230. package/dist/collection/components/modal/modal.stories.js.map +0 -1
  231. package/dist/collection/components/nav/nav-item.js.map +0 -1
  232. package/dist/collection/components/nav/nav-item.stories.js +0 -4
  233. package/dist/collection/components/nav/nav-item.stories.js.map +0 -1
  234. package/dist/collection/components/nav/nav.js.map +0 -1
  235. package/dist/collection/components/nav/nav.stories.js +0 -106
  236. package/dist/collection/components/nav/nav.stories.js.map +0 -1
  237. package/dist/collection/components/pagination/pagination.js.map +0 -1
  238. package/dist/collection/components/pagination/pagination.stories.js +0 -92
  239. package/dist/collection/components/pagination/pagination.stories.js.map +0 -1
  240. package/dist/collection/components/popover/popover.js.map +0 -1
  241. package/dist/collection/components/popover/popover.stories.js +0 -112
  242. package/dist/collection/components/popover/popover.stories.js.map +0 -1
  243. package/dist/collection/components/progress/progress.js.map +0 -1
  244. package/dist/collection/components/progress/progress.stories.js +0 -132
  245. package/dist/collection/components/progress/progress.stories.js.map +0 -1
  246. package/dist/collection/components/radio/radio.js.map +0 -1
  247. package/dist/collection/components/radio/radio.stories.js +0 -77
  248. package/dist/collection/components/radio/radio.stories.js.map +0 -1
  249. package/dist/collection/components/row/row.js.map +0 -1
  250. package/dist/collection/components/row/row.stories.js +0 -172
  251. package/dist/collection/components/row/row.stories.js.map +0 -1
  252. package/dist/collection/components/select/select.js.map +0 -1
  253. package/dist/collection/components/select/select.stories.js +0 -138
  254. package/dist/collection/components/select/select.stories.js.map +0 -1
  255. package/dist/collection/components/skeleton/skeleton.js.map +0 -1
  256. package/dist/collection/components/skeleton/skeleton.stories.js +0 -140
  257. package/dist/collection/components/skeleton/skeleton.stories.js.map +0 -1
  258. package/dist/collection/components/slider/slider.js.map +0 -1
  259. package/dist/collection/components/slider/slider.stories.js +0 -100
  260. package/dist/collection/components/slider/slider.stories.js.map +0 -1
  261. package/dist/collection/components/spacer/spacer.js.map +0 -1
  262. package/dist/collection/components/spacer/spacer.stories.js +0 -90
  263. package/dist/collection/components/spacer/spacer.stories.js.map +0 -1
  264. package/dist/collection/components/spinner/spinner.js.map +0 -1
  265. package/dist/collection/components/spinner/spinner.stories.js +0 -88
  266. package/dist/collection/components/spinner/spinner.stories.js.map +0 -1
  267. package/dist/collection/components/stack/stack.js.map +0 -1
  268. package/dist/collection/components/stack/stack.stories.js +0 -121
  269. package/dist/collection/components/stack/stack.stories.js.map +0 -1
  270. package/dist/collection/components/stepper/step.js.map +0 -1
  271. package/dist/collection/components/stepper/step.stories.js +0 -4
  272. package/dist/collection/components/stepper/step.stories.js.map +0 -1
  273. package/dist/collection/components/stepper/stepper.js.map +0 -1
  274. package/dist/collection/components/stepper/stepper.stories.js +0 -130
  275. package/dist/collection/components/stepper/stepper.stories.js.map +0 -1
  276. package/dist/collection/components/switch-group/switch-group.js.map +0 -1
  277. package/dist/collection/components/switch-group/switch-group.stories.js +0 -132
  278. package/dist/collection/components/switch-group/switch-group.stories.js.map +0 -1
  279. package/dist/collection/components/switch-group/switch-option.js.map +0 -1
  280. package/dist/collection/components/switch-group/switch-option.stories.js +0 -4
  281. package/dist/collection/components/switch-group/switch-option.stories.js.map +0 -1
  282. package/dist/collection/components/table/table.js.map +0 -1
  283. package/dist/collection/components/table/table.stories.js +0 -147
  284. package/dist/collection/components/table/table.stories.js.map +0 -1
  285. package/dist/collection/components/tabs/tab-panel.js.map +0 -1
  286. package/dist/collection/components/tabs/tab-panel.stories.js +0 -4
  287. package/dist/collection/components/tabs/tab-panel.stories.js.map +0 -1
  288. package/dist/collection/components/tabs/tabs.js.map +0 -1
  289. package/dist/collection/components/tabs/tabs.stories.js +0 -187
  290. package/dist/collection/components/tabs/tabs.stories.js.map +0 -1
  291. package/dist/collection/components/textarea/textarea.js.map +0 -1
  292. package/dist/collection/components/textarea/textarea.stories.js +0 -130
  293. package/dist/collection/components/textarea/textarea.stories.js.map +0 -1
  294. package/dist/collection/components/toast/toast.js.map +0 -1
  295. package/dist/collection/components/toast/toast.stories.js +0 -91
  296. package/dist/collection/components/toast/toast.stories.js.map +0 -1
  297. package/dist/collection/components/toggle/toggle.js.map +0 -1
  298. package/dist/collection/components/toggle/toggle.stories.js +0 -145
  299. package/dist/collection/components/toggle/toggle.stories.js.map +0 -1
  300. package/dist/collection/components/toolbar/toolbar.js.map +0 -1
  301. package/dist/collection/components/toolbar/toolbar.stories.js +0 -131
  302. package/dist/collection/components/toolbar/toolbar.stories.js.map +0 -1
  303. package/dist/collection/components/tooltip/tooltip.js.map +0 -1
  304. package/dist/collection/components/tooltip/tooltip.stories.js +0 -186
  305. package/dist/collection/components/tooltip/tooltip.stories.js.map +0 -1
  306. package/dist/collection/components/tree/tree-item.js.map +0 -1
  307. package/dist/collection/components/tree/tree-item.stories.js +0 -4
  308. package/dist/collection/components/tree/tree-item.stories.js.map +0 -1
  309. package/dist/collection/components/tree/tree.js.map +0 -1
  310. package/dist/collection/components/tree/tree.stories.js +0 -121
  311. package/dist/collection/components/tree/tree.stories.js.map +0 -1
  312. package/dist/collection/index.js.map +0 -1
  313. package/dist/collection/theme/tokens.js.map +0 -1
  314. package/dist/collection/types/index.js.map +0 -1
  315. package/dist/collection/utils/aria.js.map +0 -1
  316. package/dist/collection/utils/dom.js.map +0 -1
  317. package/dist/collection/utils/events.js.map +0 -1
  318. package/dist/components/index.js.map +0 -1
  319. package/dist/components/p-6RDSLDuS.js +0 -2
  320. package/dist/components/p-6RDSLDuS.js.map +0 -1
  321. package/dist/components/p-B0ZXNFSa.js.map +0 -1
  322. package/dist/components/p-BCgm2utU.js +0 -2
  323. package/dist/components/p-BCgm2utU.js.map +0 -1
  324. package/dist/components/p-BFN5hUo4.js +0 -2
  325. package/dist/components/p-BFN5hUo4.js.map +0 -1
  326. package/dist/components/p-BOxYojS-.js.map +0 -1
  327. package/dist/components/p-BP-fZfRb.js.map +0 -1
  328. package/dist/components/p-B_NL55YI.js.map +0 -1
  329. package/dist/components/p-BcoU0ISN.js.map +0 -1
  330. package/dist/components/p-BdzH6wlc.js.map +0 -1
  331. package/dist/components/p-BeErYjKz.js +0 -2
  332. package/dist/components/p-BeErYjKz.js.map +0 -1
  333. package/dist/components/p-BjiDgszq.js.map +0 -1
  334. package/dist/components/p-BjyTgfXe.js +0 -2
  335. package/dist/components/p-BjyTgfXe.js.map +0 -1
  336. package/dist/components/p-BlZHjan9.js +0 -2
  337. package/dist/components/p-BlZHjan9.js.map +0 -1
  338. package/dist/components/p-C7JaUlNB.js.map +0 -1
  339. package/dist/components/p-C8wd1644.js.map +0 -1
  340. package/dist/components/p-CEQXPxzU.js.map +0 -1
  341. package/dist/components/p-CGh7W07E.js +0 -2
  342. package/dist/components/p-CGh7W07E.js.map +0 -1
  343. package/dist/components/p-CHtE5caV.js +0 -2
  344. package/dist/components/p-CHtE5caV.js.map +0 -1
  345. package/dist/components/p-CSNeA_zh.js +0 -2
  346. package/dist/components/p-CSNeA_zh.js.map +0 -1
  347. package/dist/components/p-CbHlJvjF.js +0 -2
  348. package/dist/components/p-CbHlJvjF.js.map +0 -1
  349. package/dist/components/p-CkQOAizb.js +0 -2
  350. package/dist/components/p-CkQOAizb.js.map +0 -1
  351. package/dist/components/p-Cy_Ad-Jy.js.map +0 -1
  352. package/dist/components/p-DD986daz.js.map +0 -1
  353. package/dist/components/p-DFnNsZtI.js +0 -2
  354. package/dist/components/p-DFnNsZtI.js.map +0 -1
  355. package/dist/components/p-DMPxu5Po.js.map +0 -1
  356. package/dist/components/p-DMuI5d5r.js +0 -2
  357. package/dist/components/p-DMuI5d5r.js.map +0 -1
  358. package/dist/components/p-DPQ1o4MP.js +0 -2
  359. package/dist/components/p-DPQ1o4MP.js.map +0 -1
  360. package/dist/components/p-DTAVTqnc.js.map +0 -1
  361. package/dist/components/p-DhQ7X_TL.js.map +0 -1
  362. package/dist/components/p-DkpyRqHf.js.map +0 -1
  363. package/dist/components/p-DlB-KfKY.js +0 -2
  364. package/dist/components/p-DlB-KfKY.js.map +0 -1
  365. package/dist/components/p-DooMF1E0.js.map +0 -1
  366. package/dist/components/p-DwJ7Jt3k.js.map +0 -1
  367. package/dist/components/p-DwUH8YQW.js.map +0 -1
  368. package/dist/components/p-Fot2uNwg.js.map +0 -1
  369. package/dist/components/p-O8aQgWRZ.js.map +0 -1
  370. package/dist/components/p-SopsdO_f.js.map +0 -1
  371. package/dist/components/p-TFHAUMKT.js +0 -2
  372. package/dist/components/p-TFHAUMKT.js.map +0 -1
  373. package/dist/components/p-faVXXwqR.js.map +0 -1
  374. package/dist/components/p-lpqZSiIf.js.map +0 -1
  375. package/dist/components/p-mfB_pP4L.js +0 -2
  376. package/dist/components/p-mfB_pP4L.js.map +0 -1
  377. package/dist/components/p-v-L32wKy.js.map +0 -1
  378. package/dist/components/p-zveaarwa.js.map +0 -1
  379. package/dist/components/ts-accordion-item.js.map +0 -1
  380. package/dist/components/ts-accordion.js.map +0 -1
  381. package/dist/components/ts-alert.js.map +0 -1
  382. package/dist/components/ts-avatar.js.map +0 -1
  383. package/dist/components/ts-badge.js.map +0 -1
  384. package/dist/components/ts-banner.js.map +0 -1
  385. package/dist/components/ts-breadcrumb-item.js.map +0 -1
  386. package/dist/components/ts-breadcrumb.js.map +0 -1
  387. package/dist/components/ts-button.js.map +0 -1
  388. package/dist/components/ts-card.js.map +0 -1
  389. package/dist/components/ts-checkbox.js.map +0 -1
  390. package/dist/components/ts-chip.js.map +0 -1
  391. package/dist/components/ts-container.js.map +0 -1
  392. package/dist/components/ts-date-picker.js.map +0 -1
  393. package/dist/components/ts-dialog.js.map +0 -1
  394. package/dist/components/ts-divider.js.map +0 -1
  395. package/dist/components/ts-drawer.js.map +0 -1
  396. package/dist/components/ts-empty-state.js.map +0 -1
  397. package/dist/components/ts-file-upload.js.map +0 -1
  398. package/dist/components/ts-grid.js.map +0 -1
  399. package/dist/components/ts-icon.js.map +0 -1
  400. package/dist/components/ts-input.js.map +0 -1
  401. package/dist/components/ts-menu-item.js.map +0 -1
  402. package/dist/components/ts-menu.js.map +0 -1
  403. package/dist/components/ts-modal.js.map +0 -1
  404. package/dist/components/ts-nav-item.js.map +0 -1
  405. package/dist/components/ts-nav.js.map +0 -1
  406. package/dist/components/ts-pagination.js.map +0 -1
  407. package/dist/components/ts-popover.js.map +0 -1
  408. package/dist/components/ts-progress.js.map +0 -1
  409. package/dist/components/ts-radio.js.map +0 -1
  410. package/dist/components/ts-row.js.map +0 -1
  411. package/dist/components/ts-select.js.map +0 -1
  412. package/dist/components/ts-skeleton.js.map +0 -1
  413. package/dist/components/ts-slider.js.map +0 -1
  414. package/dist/components/ts-spacer.js.map +0 -1
  415. package/dist/components/ts-spinner.js.map +0 -1
  416. package/dist/components/ts-stack.js.map +0 -1
  417. package/dist/components/ts-step.js.map +0 -1
  418. package/dist/components/ts-stepper.js.map +0 -1
  419. package/dist/components/ts-switch-group.js.map +0 -1
  420. package/dist/components/ts-switch-option.js.map +0 -1
  421. package/dist/components/ts-tab-panel.js.map +0 -1
  422. package/dist/components/ts-table.js.map +0 -1
  423. package/dist/components/ts-tabs.js.map +0 -1
  424. package/dist/components/ts-textarea.js.map +0 -1
  425. package/dist/components/ts-toast.js.map +0 -1
  426. package/dist/components/ts-toggle.js.map +0 -1
  427. package/dist/components/ts-toolbar.js.map +0 -1
  428. package/dist/components/ts-tooltip.js.map +0 -1
  429. package/dist/components/ts-tree-item.js.map +0 -1
  430. package/dist/components/ts-tree.js.map +0 -1
  431. package/dist/components.json +0 -12678
  432. package/dist/esm/aria-lpqZSiIf.js.map +0 -1
  433. package/dist/esm/index-V8-ENixA.js.map +0 -1
  434. package/dist/esm/index.js.map +0 -1
  435. package/dist/esm/loader.js.map +0 -1
  436. package/dist/esm/lucide-BOxYojS-.js.map +0 -1
  437. package/dist/esm/tessera-ui.js.map +0 -1
  438. package/dist/esm/ts-accordion-item.entry.js.map +0 -1
  439. package/dist/esm/ts-accordion.entry.js.map +0 -1
  440. package/dist/esm/ts-alert.entry.js.map +0 -1
  441. package/dist/esm/ts-avatar.entry.js.map +0 -1
  442. package/dist/esm/ts-badge.entry.js.map +0 -1
  443. package/dist/esm/ts-banner.entry.js.map +0 -1
  444. package/dist/esm/ts-breadcrumb-item.entry.js.map +0 -1
  445. package/dist/esm/ts-breadcrumb.entry.js.map +0 -1
  446. package/dist/esm/ts-button.entry.js.map +0 -1
  447. package/dist/esm/ts-card.entry.js.map +0 -1
  448. package/dist/esm/ts-checkbox.entry.js.map +0 -1
  449. package/dist/esm/ts-chip.entry.js.map +0 -1
  450. package/dist/esm/ts-container.entry.js.map +0 -1
  451. package/dist/esm/ts-date-picker.entry.js.map +0 -1
  452. package/dist/esm/ts-dialog.entry.js.map +0 -1
  453. package/dist/esm/ts-divider.entry.js.map +0 -1
  454. package/dist/esm/ts-drawer.entry.js.map +0 -1
  455. package/dist/esm/ts-empty-state.entry.js.map +0 -1
  456. package/dist/esm/ts-file-upload.entry.js.map +0 -1
  457. package/dist/esm/ts-grid.entry.js.map +0 -1
  458. package/dist/esm/ts-icon-Jz9ioZag.js.map +0 -1
  459. package/dist/esm/ts-icon.entry.js.map +0 -1
  460. package/dist/esm/ts-input.entry.js.map +0 -1
  461. package/dist/esm/ts-menu-item.entry.js.map +0 -1
  462. package/dist/esm/ts-menu.entry.js.map +0 -1
  463. package/dist/esm/ts-modal.entry.js.map +0 -1
  464. package/dist/esm/ts-nav-item.entry.js.map +0 -1
  465. package/dist/esm/ts-nav.entry.js.map +0 -1
  466. package/dist/esm/ts-pagination.entry.js.map +0 -1
  467. package/dist/esm/ts-popover.entry.js.map +0 -1
  468. package/dist/esm/ts-progress.entry.js.map +0 -1
  469. package/dist/esm/ts-radio.entry.js.map +0 -1
  470. package/dist/esm/ts-row.entry.js.map +0 -1
  471. package/dist/esm/ts-select.entry.js.map +0 -1
  472. package/dist/esm/ts-skeleton.entry.js.map +0 -1
  473. package/dist/esm/ts-slider.entry.js.map +0 -1
  474. package/dist/esm/ts-spacer.entry.js.map +0 -1
  475. package/dist/esm/ts-spinner.entry.js.map +0 -1
  476. package/dist/esm/ts-stack.entry.js.map +0 -1
  477. package/dist/esm/ts-step.entry.js.map +0 -1
  478. package/dist/esm/ts-stepper.entry.js.map +0 -1
  479. package/dist/esm/ts-switch-group.entry.js.map +0 -1
  480. package/dist/esm/ts-switch-option.entry.js.map +0 -1
  481. package/dist/esm/ts-tab-panel.entry.js.map +0 -1
  482. package/dist/esm/ts-table.entry.js.map +0 -1
  483. package/dist/esm/ts-tabs.entry.js.map +0 -1
  484. package/dist/esm/ts-textarea.entry.js.map +0 -1
  485. package/dist/esm/ts-toast.entry.js.map +0 -1
  486. package/dist/esm/ts-toggle.entry.js.map +0 -1
  487. package/dist/esm/ts-toolbar.entry.js.map +0 -1
  488. package/dist/esm/ts-tooltip.entry.js.map +0 -1
  489. package/dist/esm/ts-tree-item.entry.js.map +0 -1
  490. package/dist/esm/ts-tree.entry.js.map +0 -1
  491. package/dist/tessera-ui/index.esm.js.map +0 -1
  492. package/dist/tessera-ui/p-0424cd55.entry.js.map +0 -1
  493. package/dist/tessera-ui/p-04522bf9.entry.js.map +0 -1
  494. package/dist/tessera-ui/p-04aa8b90.entry.js.map +0 -1
  495. package/dist/tessera-ui/p-080eaf89.entry.js.map +0 -1
  496. package/dist/tessera-ui/p-0ec061e5.entry.js.map +0 -1
  497. package/dist/tessera-ui/p-122e43b7.entry.js.map +0 -1
  498. package/dist/tessera-ui/p-16bb8ca8.entry.js.map +0 -1
  499. package/dist/tessera-ui/p-16fc632b.entry.js.map +0 -1
  500. package/dist/tessera-ui/p-1d73f6c9.entry.js.map +0 -1
  501. package/dist/tessera-ui/p-24305379.entry.js.map +0 -1
  502. package/dist/tessera-ui/p-25f77cc9.entry.js.map +0 -1
  503. package/dist/tessera-ui/p-35eb8496.entry.js.map +0 -1
  504. package/dist/tessera-ui/p-3aec66b4.entry.js.map +0 -1
  505. package/dist/tessera-ui/p-4277460b.entry.js.map +0 -1
  506. package/dist/tessera-ui/p-441310f7.entry.js.map +0 -1
  507. package/dist/tessera-ui/p-491e1a75.entry.js.map +0 -1
  508. package/dist/tessera-ui/p-50d092ce.entry.js.map +0 -1
  509. package/dist/tessera-ui/p-50efadf3.entry.js.map +0 -1
  510. package/dist/tessera-ui/p-53846d59.entry.js.map +0 -1
  511. package/dist/tessera-ui/p-56f2b070.entry.js.map +0 -1
  512. package/dist/tessera-ui/p-6760f922.entry.js.map +0 -1
  513. package/dist/tessera-ui/p-69bb11ed.entry.js.map +0 -1
  514. package/dist/tessera-ui/p-6d35a60c.entry.js.map +0 -1
  515. package/dist/tessera-ui/p-6ec285ad.entry.js.map +0 -1
  516. package/dist/tessera-ui/p-708d4eb5.entry.js.map +0 -1
  517. package/dist/tessera-ui/p-79ff8ceb.entry.js.map +0 -1
  518. package/dist/tessera-ui/p-7e531195.entry.js.map +0 -1
  519. package/dist/tessera-ui/p-7fa64f00.entry.js.map +0 -1
  520. package/dist/tessera-ui/p-829c4307.entry.js.map +0 -1
  521. package/dist/tessera-ui/p-91ccef3f.entry.js.map +0 -1
  522. package/dist/tessera-ui/p-9209e603.entry.js.map +0 -1
  523. package/dist/tessera-ui/p-97a9def7.entry.js.map +0 -1
  524. package/dist/tessera-ui/p-9b41b538.entry.js.map +0 -1
  525. package/dist/tessera-ui/p-9c0504fd.entry.js.map +0 -1
  526. package/dist/tessera-ui/p-BOxYojS-.js.map +0 -1
  527. package/dist/tessera-ui/p-StBQmS8h.js.map +0 -1
  528. package/dist/tessera-ui/p-V8-ENixA.js.map +0 -1
  529. package/dist/tessera-ui/p-a120b5d6.entry.js.map +0 -1
  530. package/dist/tessera-ui/p-a55a5695.entry.js.map +0 -1
  531. package/dist/tessera-ui/p-a83d903e.entry.js.map +0 -1
  532. package/dist/tessera-ui/p-adc807dc.entry.js.map +0 -1
  533. package/dist/tessera-ui/p-b09f202c.entry.js.map +0 -1
  534. package/dist/tessera-ui/p-b1182592.entry.js.map +0 -1
  535. package/dist/tessera-ui/p-b3f60955.entry.js.map +0 -1
  536. package/dist/tessera-ui/p-bb9ebbd8.entry.js.map +0 -1
  537. package/dist/tessera-ui/p-bce40715.entry.js.map +0 -1
  538. package/dist/tessera-ui/p-c35c7049.entry.js.map +0 -1
  539. package/dist/tessera-ui/p-c59ecffa.entry.js.map +0 -1
  540. package/dist/tessera-ui/p-d318774a.entry.js.map +0 -1
  541. package/dist/tessera-ui/p-d5cbadd6.entry.js.map +0 -1
  542. package/dist/tessera-ui/p-e1d2b141.entry.js.map +0 -1
  543. package/dist/tessera-ui/p-f0bf6408.entry.js.map +0 -1
  544. package/dist/tessera-ui/p-f639213a.entry.js.map +0 -1
  545. package/dist/tessera-ui/p-fd2376e0.entry.js.map +0 -1
  546. package/dist/tessera-ui/p-fef9a993.entry.js.map +0 -1
  547. package/dist/tessera-ui/p-lpqZSiIf.js.map +0 -1
  548. package/dist/tessera-ui/tessera-ui.esm.js.map +0 -1
  549. package/dist/types/components/accordion/accordion-item.stories.d.ts +0 -5
  550. package/dist/types/components/accordion/accordion.stories.d.ts +0 -21
  551. package/dist/types/components/alert/alert.stories.d.ts +0 -34
  552. package/dist/types/components/avatar/avatar.stories.d.ts +0 -51
  553. package/dist/types/components/badge/badge.stories.d.ts +0 -50
  554. package/dist/types/components/banner/banner.stories.d.ts +0 -40
  555. package/dist/types/components/breadcrumb/breadcrumb-item.stories.d.ts +0 -5
  556. package/dist/types/components/breadcrumb/breadcrumb.stories.d.ts +0 -20
  557. package/dist/types/components/button/button.stories.d.ts +0 -73
  558. package/dist/types/components/card/card.stories.d.ts +0 -46
  559. package/dist/types/components/checkbox/checkbox.stories.d.ts +0 -58
  560. package/dist/types/components/chip/chip.stories.d.ts +0 -54
  561. package/dist/types/components/container/container.stories.d.ts +0 -21
  562. package/dist/types/components/date-picker/date-picker.stories.d.ts +0 -62
  563. package/dist/types/components/dialog/dialog.stories.d.ts +0 -39
  564. package/dist/types/components/divider/divider.stories.d.ts +0 -33
  565. package/dist/types/components/drawer/drawer.stories.d.ts +0 -43
  566. package/dist/types/components/empty-state/empty-state.stories.d.ts +0 -37
  567. package/dist/types/components/file-upload/file-upload.stories.d.ts +0 -43
  568. package/dist/types/components/grid/grid.stories.d.ts +0 -30
  569. package/dist/types/components/icon/icon.stories.d.ts +0 -42
  570. package/dist/types/components/input/input.stories.d.ts +0 -77
  571. package/dist/types/components/menu/menu-item.stories.d.ts +0 -5
  572. package/dist/types/components/menu/menu.stories.d.ts +0 -36
  573. package/dist/types/components/modal/modal.stories.d.ts +0 -47
  574. package/dist/types/components/nav/nav-item.stories.d.ts +0 -5
  575. package/dist/types/components/nav/nav.stories.d.ts +0 -27
  576. package/dist/types/components/pagination/pagination.stories.d.ts +0 -42
  577. package/dist/types/components/popover/popover.stories.d.ts +0 -38
  578. package/dist/types/components/progress/progress.stories.d.ts +0 -59
  579. package/dist/types/components/radio/radio.stories.d.ts +0 -48
  580. package/dist/types/components/row/row.stories.d.ts +0 -52
  581. package/dist/types/components/select/select.stories.d.ts +0 -73
  582. package/dist/types/components/skeleton/skeleton.stories.d.ts +0 -44
  583. package/dist/types/components/slider/slider.stories.d.ts +0 -62
  584. package/dist/types/components/spacer/spacer.stories.d.ts +0 -28
  585. package/dist/types/components/spinner/spinner.stories.d.ts +0 -33
  586. package/dist/types/components/stack/stack.stories.d.ts +0 -28
  587. package/dist/types/components/stepper/step.stories.d.ts +0 -5
  588. package/dist/types/components/stepper/stepper.stories.d.ts +0 -36
  589. package/dist/types/components/switch-group/switch-group.stories.d.ts +0 -37
  590. package/dist/types/components/switch-group/switch-option.stories.d.ts +0 -5
  591. package/dist/types/components/table/table.stories.d.ts +0 -45
  592. package/dist/types/components/tabs/tab-panel.stories.d.ts +0 -5
  593. package/dist/types/components/tabs/tabs.stories.d.ts +0 -34
  594. package/dist/types/components/textarea/textarea.stories.d.ts +0 -88
  595. package/dist/types/components/toast/toast.stories.d.ts +0 -48
  596. package/dist/types/components/toggle/toggle.stories.d.ts +0 -46
  597. package/dist/types/components/toolbar/toolbar.stories.d.ts +0 -28
  598. package/dist/types/components/tooltip/tooltip.stories.d.ts +0 -43
  599. package/dist/types/components/tree/tree-item.stories.d.ts +0 -5
  600. package/dist/types/components/tree/tree.stories.d.ts +0 -21
@@ -1 +0,0 @@
1
- {"file":"ts-toast.cjs.entry.js","mappings":"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","names":["h","Host"],"sources":["src/components/toast/toast.css?tag=ts-toast&encapsulation=shadow","src/components/toast/toast.tsx"],"sourcesContent":["/* ==========================================================================\n ts-toast — Shadow DOM Scoped Styles\n\n Component tokens (Tier 3):\n --ts-toast-radius Border radius\n --ts-toast-shadow Box shadow\n --ts-toast-max-width Maximum width\n ========================================================================== */\n\n:host {\n display: block;\n position: fixed;\n z-index: var(--ts-z-toast, 9000);\n font-family: var(--ts-font-family-base);\n pointer-events: none;\n\n --ts-toast-radius: var(--ts-radius-xl);\n --ts-toast-shadow: var(--ts-shadow-lg);\n --ts-toast-max-width: 420px;\n}\n\n/* ---- Positions ---- */\n:host([position=\"top-right\"]) {\n inset-block-start: var(--ts-spacing-4);\n inset-inline-end: var(--ts-spacing-4);\n}\n\n:host([position=\"top-left\"]) {\n inset-block-start: var(--ts-spacing-4);\n inset-inline-start: var(--ts-spacing-4);\n}\n\n:host([position=\"bottom-right\"]) {\n inset-block-end: var(--ts-spacing-4);\n inset-inline-end: var(--ts-spacing-4);\n}\n\n:host([position=\"bottom-left\"]) {\n inset-block-end: var(--ts-spacing-4);\n inset-inline-start: var(--ts-spacing-4);\n}\n\n:host([position=\"top-center\"]) {\n inset-block-start: var(--ts-spacing-4);\n inset-inline-start: 50%;\n transform: translateX(-50%);\n}\n\n:host([position=\"bottom-center\"]) {\n inset-block-end: var(--ts-spacing-4);\n inset-inline-start: 50%;\n transform: translateX(-50%);\n}\n\n/* ---- Base ---- */\n.toast__base {\n display: flex;\n align-items: flex-start;\n gap: var(--ts-spacing-3);\n padding: var(--ts-spacing-3) var(--ts-spacing-4);\n border-radius: var(--ts-toast-radius);\n box-shadow: var(--ts-toast-shadow);\n max-inline-size: var(--ts-toast-max-width);\n pointer-events: auto;\n border: 1px solid transparent;\n font-size: var(--ts-font-size-sm);\n line-height: var(--ts-line-height-normal);\n animation: ts-toast-slide-in 0.3s ease-out;\n}\n\n@keyframes ts-toast-slide-in {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* ---- Variants ---- */\n:host([variant=\"info\"]) .toast__base {\n background-color: var(--ts-color-info-bg);\n border-color: var(--ts-color-info-border);\n color: var(--ts-color-info-600);\n}\n\n:host([variant=\"success\"]) .toast__base {\n background-color: var(--ts-color-success-bg);\n border-color: var(--ts-color-success-border);\n color: var(--ts-color-success-600);\n}\n\n:host([variant=\"warning\"]) .toast__base {\n background-color: var(--ts-color-warning-bg);\n border-color: var(--ts-color-warning-border);\n color: var(--ts-color-warning-600);\n}\n\n:host([variant=\"danger\"]) .toast__base {\n background-color: var(--ts-color-danger-bg);\n border-color: var(--ts-color-danger-border);\n color: var(--ts-color-danger-600);\n}\n\n:host([variant=\"neutral\"]) .toast__base {\n background-color: var(--ts-color-bg-subtle);\n border-color: var(--ts-color-border-subtle);\n color: var(--ts-color-text-secondary);\n}\n\n/* ---- Icon ---- */\n.toast__icon {\n display: flex;\n align-items: center;\n font-size: 1.15em;\n flex-shrink: 0;\n margin-block-start: 1px;\n}\n\n/* ---- Message ---- */\n.toast__message {\n flex: 1;\n min-inline-size: 0;\n}\n\n/* ---- Action ---- */\n.toast__action {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.toast__action:empty {\n display: none;\n}\n\n/* ---- Close button ---- */\n.toast__close {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n inline-size: 1.5rem;\n block-size: 1.5rem;\n border: none;\n border-radius: var(--ts-radius-sm);\n background: transparent;\n color: currentColor;\n opacity: 0.6;\n cursor: pointer;\n font-size: 0.8em;\n transition: opacity var(--ts-transition-fast);\n padding: 0;\n line-height: 1;\n}\n\n.toast__close:hover {\n opacity: 1;\n}\n\n.toast__close:focus-visible {\n box-shadow: var(--ts-focus-ring);\n opacity: 1;\n}\n","import { Component, Prop, Event, State, h, Host, Watch, Method } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\ntype TsToastVariant = 'info' | 'success' | 'warning' | 'danger' | 'neutral';\ntype TsToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';\n\n/**\n * @slot - Default slot for message content.\n * @slot action - Optional action button.\n *\n * @part base - The toast container.\n * @part icon - The variant icon wrapper.\n * @part message - The message wrapper.\n * @part action - The action slot wrapper.\n * @part close - The close button.\n */\n@Component({\n tag: 'ts-toast',\n styleUrl: 'toast.css',\n shadow: true,\n})\nexport class TsToast {\n private autoCloseTimer?: ReturnType<typeof setTimeout>;\n\n /** The toast's visual variant. */\n @Prop({ reflect: true }) variant: TsToastVariant = 'info';\n\n /** Auto-dismiss duration in ms. Set 0 to disable. */\n @Prop() duration = 5000;\n\n /** Whether the toast shows a close button. */\n @Prop() dismissible = true;\n\n /** Whether the toast is visible. */\n @Prop({ reflect: true, mutable: true }) open = false;\n\n /** Position of the toast on screen. */\n @Prop({ reflect: true }) position: TsToastPosition = 'top-right';\n\n /** Emitted when the toast is dismissed. */\n @Event({ eventName: 'tsClose' }) tsClose!: EventEmitter<void>;\n\n @State() isVisible = false;\n\n @Watch('open')\n handleOpenChange(newValue: boolean): void {\n if (newValue) {\n this.isVisible = true;\n this.startAutoClose();\n } else {\n this.isVisible = false;\n this.clearAutoClose();\n }\n }\n\n connectedCallback(): void {\n if (this.open) {\n this.isVisible = true;\n this.startAutoClose();\n }\n }\n\n disconnectedCallback(): void {\n this.clearAutoClose();\n }\n\n /** Programmatically close the toast. */\n @Method()\n async close(): Promise<void> {\n this.open = false;\n this.isVisible = false;\n this.clearAutoClose();\n this.tsClose.emit();\n }\n\n /** Programmatically show the toast. */\n @Method()\n async show(): Promise<void> {\n this.open = true;\n }\n\n private startAutoClose(): void {\n this.clearAutoClose();\n if (this.duration > 0) {\n this.autoCloseTimer = setTimeout(() => {\n this.close();\n }, this.duration);\n }\n }\n\n private clearAutoClose(): void {\n if (this.autoCloseTimer) {\n clearTimeout(this.autoCloseTimer);\n this.autoCloseTimer = undefined;\n }\n }\n\n private handleClose = (): void => {\n this.close();\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n private renderIcon() {\n const icons: Record<string, string> = {\n info: '\\u2139',\n success: '\\u2713',\n warning: '\\u26A0',\n danger: '\\u2715',\n neutral: '\\u2139',\n };\n return <span class=\"toast__icon-symbol\" aria-hidden=\"true\">{icons[this.variant] || '\\u2139'}</span>;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n if (!this.isVisible) return null;\n\n const ariaLive = this.variant === 'danger' ? 'assertive' : 'polite';\n\n return (\n <Host\n class={{\n 'ts-toast': true,\n [`ts-toast--${this.variant}`]: true,\n [`ts-toast--${this.position}`]: true,\n 'ts-toast--open': this.isVisible,\n }}\n role=\"status\"\n aria-live={ariaLive}\n >\n <div class=\"toast__base\" part=\"base\">\n <div class=\"toast__icon\" part=\"icon\">\n {this.renderIcon()}\n </div>\n\n <div class=\"toast__message\" part=\"message\">\n <slot />\n </div>\n\n <div class=\"toast__action\" part=\"action\">\n <slot name=\"action\" />\n </div>\n\n {this.dismissible && (\n <button\n class=\"toast__close\"\n part=\"close\"\n type=\"button\"\n aria-label=\"Dismiss notification\"\n onClick={this.handleClose}\n >\n \\u2715\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"ts-toggle.cjs.entry.js","mappings":";;;;;AAAA,MAAM,SAAS,GAAG,MAAM,CAAC,otEAAotE,CAAC;;MCkBjuE,QAAQ,GAAA,MAAA;;;;;;AAGX,IAAA,OAAO,GAAGA,eAAU,CAAC,WAAW,CAAC;;IAGD,OAAO,GAAG,KAAK;;IAG9B,IAAI,GAAW,IAAI;;IAGnB,QAAQ,GAAG,KAAK;;AAGjC,IAAA,IAAI;;AAGJ,IAAA,KAAK;;AAGqB,IAAA,QAAQ;;AAI1C,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;;;IAIzC,WAAW,GAAG,MAAW;QAC/B,IAAI,CAAC,MAAM,EAAE;AACf,KAAC;AAEO,IAAA,aAAa,GAAG,CAAC,KAAoB,KAAU;AACrD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,MAAM,EAAE;;AAEjB,KAAC;;IAGD,MAAM,GAAA;QACJ,QACEC,OAAA,CAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,KAAK,EAAE;AACL,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,CAAC,cAAc,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,IAAI;gBACjC,oBAAoB,EAAE,IAAI,CAAC,OAAO;gBAClC,qBAAqB,EAAE,IAAI,CAAC,QAAQ;AACrC,aAAA,EAAA,EAEDD,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,QAAQ,EAAA,cAAA,EACC,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,EAAA,eAAA,EAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,EACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAAA,EAE7BA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,OAAO,EAAA,EACrCA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,OAAO,GAAG,CACtC,EAENA,OAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,OAAO,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA,MAAA,CAAQ,EAAA,EACnEA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,CACF,CACJ,CACD;;;;;;;","names":["generateId","h","Host"],"sources":["src/components/toggle/toggle.css?tag=ts-toggle&encapsulation=shadow","src/components/toggle/toggle.tsx"],"sourcesContent":["/* ==========================================================================\n ts-toggle — Shadow DOM Scoped Styles\n\n Component tokens (Tier 3):\n --ts-toggle-track-bg Unchecked track background\n --ts-toggle-track-bg-checked Checked track background\n --ts-toggle-thumb-bg Thumb background\n --ts-toggle-focus-ring Focus ring box-shadow\n ========================================================================== */\n\n:host {\n display: inline-block;\n font-family: var(--ts-font-family-base);\n\n --ts-toggle-track-bg: var(--ts-color-neutral-200);\n --ts-toggle-track-bg-checked: var(--ts-color-primary-600);\n --ts-toggle-thumb-bg: var(--ts-color-bg-elevated);\n --ts-toggle-focus-ring: var(--ts-focus-ring);\n}\n\n.toggle__base {\n display: inline-flex;\n align-items: center;\n gap: var(--ts-spacing-2);\n cursor: pointer;\n outline: none;\n}\n\n.toggle__base:focus-visible .toggle__track {\n box-shadow: var(--ts-toggle-focus-ring);\n}\n\n:host(.ts-toggle--disabled) .toggle__base {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* ---- Track (M3 — outlined when unchecked) ---- */\n.toggle__track {\n position: relative;\n background-color: var(--ts-toggle-track-bg);\n border-radius: var(--ts-radius-full);\n border: 2px solid var(--ts-color-border-default);\n box-shadow: none;\n transition:\n background-color var(--ts-transition-fast),\n border-color var(--ts-transition-fast),\n box-shadow var(--ts-transition-fast);\n flex-shrink: 0;\n}\n\n:host(.ts-toggle--checked) .toggle__track {\n background-color: var(--ts-toggle-track-bg-checked);\n border-color: var(--ts-toggle-track-bg-checked);\n box-shadow: none;\n}\n\n/* ---- Thumb ---- */\n.toggle__thumb {\n position: absolute;\n top: 50%;\n transform: translateY(-50%) scale(1);\n background-color: var(--ts-toggle-thumb-bg);\n border-radius: var(--ts-radius-full);\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.06);\n transition:\n inset-inline-start var(--ts-transition-fast),\n transform var(--ts-transition-fast),\n box-shadow var(--ts-transition-fast);\n}\n\n:host(.ts-toggle--checked) .toggle__thumb {\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.06);\n}\n\n/* ---- Sizes ---- */\n:host([size=\"sm\"]) .toggle__track { width: 32px; height: 18px; }\n:host([size=\"sm\"]) .toggle__thumb { width: 14px; height: 14px; inset-inline-start: 2px; }\n:host(.ts-toggle--checked[size=\"sm\"]) .toggle__thumb { inset-inline-start: 16px; }\n\n:host([size=\"md\"]) .toggle__track { width: 40px; height: 22px; }\n:host([size=\"md\"]) .toggle__thumb { width: 18px; height: 18px; inset-inline-start: 2px; }\n:host(.ts-toggle--checked[size=\"md\"]) .toggle__thumb { inset-inline-start: 20px; }\n\n:host([size=\"lg\"]) .toggle__track { width: 50px; height: 28px; }\n:host([size=\"lg\"]) .toggle__thumb { width: 24px; height: 24px; inset-inline-start: 2px; }\n:host(.ts-toggle--checked[size=\"lg\"]) .toggle__thumb { inset-inline-start: 24px; }\n\n/* ---- Label ---- */\n.toggle__label {\n font-size: var(--ts-font-size-sm);\n color: var(--ts-color-text-secondary);\n cursor: inherit;\n user-select: none;\n}\n\n:host([size=\"lg\"]) .toggle__label {\n font-size: var(--ts-font-size-md);\n}\n","import { Component, Prop, Event, h, Host, Element, Method } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\nimport type { TsSize, TsToggleEventDetail } from '../../types';\nimport { generateId } from '../../utils/aria';\n\n/**\n * @slot - Default slot for the toggle label.\n *\n * @part base - The toggle container.\n * @part track - The toggle track.\n * @part thumb - The toggle thumb/knob.\n * @part label - The label wrapper.\n */\n@Component({\n tag: 'ts-toggle',\n styleUrl: 'toggle.css',\n shadow: true,\n})\nexport class TsToggle {\n @Element() hostEl!: HTMLElement;\n\n private inputId = generateId('ts-toggle');\n\n /** Whether the toggle is checked. */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /** The toggle's size. */\n @Prop({ reflect: true }) size: TsSize = 'md';\n\n /** Renders the toggle as disabled. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Name for form submission. */\n @Prop() name?: string;\n\n /** Value for form submission. */\n @Prop() value?: string;\n\n /** Emitted when the toggle state changes. */\n @Event({ eventName: 'tsChange' }) tsChange!: EventEmitter<TsToggleEventDetail>;\n\n /** Programmatically toggle the checked state. */\n @Method()\n async toggle(): Promise<void> {\n if (!this.disabled) {\n this.checked = !this.checked;\n this.tsChange.emit({ checked: this.checked });\n }\n }\n\n private handleClick = (): void => {\n this.toggle();\n };\n\n private handleKeydown = (event: KeyboardEvent): void => {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.toggle();\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host\n class={{\n 'ts-toggle': true,\n [`ts-toggle--${this.size}`]: true,\n 'ts-toggle--checked': this.checked,\n 'ts-toggle--disabled': this.disabled,\n }}\n >\n <div\n class=\"toggle__base\"\n part=\"base\"\n role=\"switch\"\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : undefined}\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n >\n <div class=\"toggle__track\" part=\"track\">\n <div class=\"toggle__thumb\" part=\"thumb\" />\n </div>\n\n <label class=\"toggle__label\" part=\"label\" id={`${this.inputId}-label`}>\n <slot />\n </label>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"ts-toolbar.cjs.entry.js","mappings":";;;;AAAA,MAAM,UAAU,GAAG,MAAM,CAAC,+7CAA+7C,CAAC;;MCkB78C,SAAS,GAAA,MAAA;;;;;IAEK,OAAO,GAAwC,SAAS;;IAGxD,IAAI,GAAW,IAAI;;IAG5C,MAAM,GAAA;QACJ,QACEA,OAAA,CAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,KAAK,EAAE;AACL,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,CAAC,eAAe,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,IAAI;AACrC,gBAAA,CAAC,eAAe,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,IAAI;AACnC,aAAA,EACD,IAAI,EAAC,SAAS,EAAA,kBAAA,EACG,YAAY,EAAA,EAE7BD,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,EAAA,EACpCA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO,EAAA,EACtCA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,OAAO,EAAA,CAAG,CACjB,EAENA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,EAAA,EACxCA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,CACJ,EAENA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,KAAK,EAAA,EAClCA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,KAAK,EAAA,CAAG,CACf,CACF,CACD;;;;;;;","names":["h","Host"],"sources":["src/components/toolbar/toolbar.css?tag=ts-toolbar&encapsulation=shadow","src/components/toolbar/toolbar.tsx"],"sourcesContent":["/* ==========================================================================\n ts-toolbar — Shadow DOM Scoped Styles\n\n Component tokens (Tier 3):\n --ts-toolbar-bg Background color\n --ts-toolbar-border-color Border color\n --ts-toolbar-padding Padding\n --ts-toolbar-gap Gap between items\n ========================================================================== */\n\n:host {\n display: block;\n font-family: var(--ts-font-family-base);\n\n --ts-toolbar-bg: var(--ts-color-bg-surface);\n --ts-toolbar-border-color: var(--ts-color-border-subtle);\n --ts-toolbar-padding: var(--ts-spacing-3);\n --ts-toolbar-gap: var(--ts-spacing-2);\n}\n\n.toolbar__base {\n display: flex;\n align-items: center;\n gap: var(--ts-toolbar-gap);\n padding-inline: var(--ts-toolbar-padding);\n padding-block: var(--ts-toolbar-padding);\n background-color: var(--ts-toolbar-bg);\n}\n\n/* ---- Variants ---- */\n:host([variant=\"bordered\"]) .toolbar__base {\n border-block-end: 1px solid var(--ts-toolbar-border-color);\n}\n\n:host([variant=\"elevated\"]) .toolbar__base {\n box-shadow: var(--ts-shadow-sm);\n border-radius: var(--ts-radius-md);\n}\n\n/* ---- Sizes ---- */\n:host([size=\"sm\"]) .toolbar__base {\n padding-inline: var(--ts-spacing-2);\n padding-block: var(--ts-spacing-1);\n gap: var(--ts-spacing-1);\n font-size: var(--ts-font-size-sm);\n}\n\n:host([size=\"md\"]) .toolbar__base {\n padding-inline: var(--ts-spacing-3);\n padding-block: var(--ts-spacing-2);\n gap: var(--ts-spacing-2);\n font-size: var(--ts-font-size-md);\n}\n\n:host([size=\"lg\"]) .toolbar__base {\n padding-inline: var(--ts-spacing-4);\n padding-block: var(--ts-spacing-3);\n gap: var(--ts-spacing-3);\n font-size: var(--ts-font-size-lg);\n}\n\n/* ---- Layout sections ---- */\n.toolbar__start {\n display: flex;\n align-items: center;\n gap: var(--ts-toolbar-gap);\n flex-shrink: 0;\n}\n\n.toolbar__center {\n display: flex;\n align-items: center;\n gap: var(--ts-toolbar-gap);\n flex: 1;\n min-inline-size: 0;\n}\n\n.toolbar__end {\n display: flex;\n align-items: center;\n gap: var(--ts-toolbar-gap);\n flex-shrink: 0;\n margin-inline-start: auto;\n}\n\n.toolbar__start:empty,\n.toolbar__end:empty {\n display: none;\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\nimport type { TsSize } from '../../types';\n\n/**\n * @slot - Default slot for toolbar items (center).\n * @slot start - Left/start-aligned items.\n * @slot end - Right/end-aligned items.\n *\n * @part base - The toolbar container.\n * @part start - The start slot wrapper.\n * @part center - The center/default slot wrapper.\n * @part end - The end slot wrapper.\n */\n@Component({\n tag: 'ts-toolbar',\n styleUrl: 'toolbar.css',\n shadow: true,\n})\nexport class TsToolbar {\n /** The toolbar variant style. */\n @Prop({ reflect: true }) variant: 'default' | 'bordered' | 'elevated' = 'default';\n\n /** The toolbar size. */\n @Prop({ reflect: true }) size: TsSize = 'md';\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host\n class={{\n 'ts-toolbar': true,\n [`ts-toolbar--${this.variant}`]: true,\n [`ts-toolbar--${this.size}`]: true,\n }}\n role=\"toolbar\"\n aria-orientation=\"horizontal\"\n >\n <div class=\"toolbar__base\" part=\"base\">\n <div class=\"toolbar__start\" part=\"start\">\n <slot name=\"start\" />\n </div>\n\n <div class=\"toolbar__center\" part=\"center\">\n <slot />\n </div>\n\n <div class=\"toolbar__end\" part=\"end\">\n <slot name=\"end\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"ts-tooltip.cjs.entry.js","mappings":";;;;;AAAA,MAAM,UAAU,GAAG,MAAM,CAAC,o7EAAo7E,CAAC;;MCel8E,SAAS,GAAA,MAAA;;;;;AAGZ,IAAA,SAAS,GAAGA,eAAU,CAAC,YAAY,CAAC;;IAGpC,OAAO,GAAG,EAAE;;IAGK,SAAS,GAAgB,KAAK;;IAG/C,SAAS,GAAG,GAAG;;IAGf,SAAS,GAAG,CAAC;;IAGI,QAAQ,GAAG,KAAK;;IAGhC,SAAS,GAAG,KAAK;AAElB,IAAA,WAAW;AACX,IAAA,WAAW;;AAInB,IAAA,MAAM,IAAI,GAAA;QACR,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACvB,SAAC,EAAE,IAAI,CAAC,SAAS,CAAC;;;AAKpB,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,SAAC,EAAE,IAAI,CAAC,SAAS,CAAC;;IAGpB,oBAAoB,GAAA;AAClB,QAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,QAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;;IAGxB,gBAAgB,GAAG,MAAW;QACpC,IAAI,CAAC,IAAI,EAAE;AACb,KAAC;IAEO,gBAAgB,GAAG,MAAW;QACpC,IAAI,CAAC,IAAI,EAAE;AACb,KAAC;IAEO,aAAa,GAAG,MAAW;QACjC,IAAI,CAAC,IAAI,EAAE;AACb,KAAC;IAEO,cAAc,GAAG,MAAW;QAClC,IAAI,CAAC,IAAI,EAAE;AACb,KAAC;AAEO,IAAA,aAAa,GAAG,CAAC,KAAoB,KAAU;QACrD,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YAC5C,IAAI,CAAC,IAAI,EAAE;;AAEf,KAAC;;IAGD,MAAM,GAAA;QACJ,QACEC,OAAA,CAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,KAAK,EAAE;AACL,gBAAA,YAAY,EAAE,IAAI;gBAClB,qBAAqB,EAAE,IAAI,CAAC,SAAS;AACtC,aAAA,EACD,YAAY,EAAE,IAAI,CAAC,gBAAgB,EACnC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EACnC,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,SAAS,EAAE,IAAI,CAAC,aAAa,EAAA,EAE7BD,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,kBAAkB,EAAA,kBAAA,EAAmB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,EAAA,EAC1FA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,CACH,EAEPA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAA,CAAE,GAAG,IAAI;gBAC3C,yBAAyB,EAAE,IAAI,CAAC,SAAS;aAC1C,EACD,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,IAAI,CAAC,SAAS,EAClB,IAAI,EAAC,SAAS,EAAA,aAAA,EACD,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,EAAA,EAEhD,IAAI,CAAC,OAAO,EACbA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO,EAAA,CAAG,CACvC,CACD;;;;;;;","names":["generateId","h","Host"],"sources":["src/components/tooltip/tooltip.css?tag=ts-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.tsx"],"sourcesContent":["/* ==========================================================================\n ts-tooltip — Shadow DOM Scoped Styles\n\n Component tokens (Tier 3):\n --ts-tooltip-bg Popup background\n --ts-tooltip-color Popup text color\n --ts-tooltip-radius Popup border radius\n ========================================================================== */\n\n:host {\n display: inline-block;\n position: relative;\n font-family: var(--ts-font-family-base);\n\n --ts-tooltip-bg: var(--ts-ref-neutral-900);\n --ts-tooltip-color: #ffffff;\n --ts-tooltip-radius: var(--ts-shape-badge);\n}\n\n.tooltip__trigger {\n display: inline-block;\n}\n\n/* ---- Popup ---- */\n.tooltip__popup {\n position: absolute;\n z-index: var(--ts-z-tooltip);\n padding: var(--ts-spacing-1) var(--ts-spacing-2);\n background-color: var(--ts-tooltip-bg);\n color: var(--ts-tooltip-color);\n font-size: var(--ts-font-size-xs);\n font-weight: var(--ts-font-weight-medium);\n line-height: var(--ts-line-height-normal);\n border-radius: var(--ts-tooltip-radius);\n white-space: nowrap;\n pointer-events: none;\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity var(--ts-transition-fast),\n transform var(--ts-transition-fast);\n}\n\n.tooltip__popup--visible {\n opacity: 1;\n transform: scale(1);\n}\n\n/* ---- Placements ---- */\n.tooltip__popup--top {\n bottom: calc(100% + 8px);\n left: 50%;\n transform-origin: bottom center;\n}\n.tooltip__popup--top,\n.tooltip__popup--top-start,\n.tooltip__popup--top-end {\n bottom: calc(100% + 8px);\n}\n.tooltip__popup--top { left: 50%; margin-left: -50%; }\n.tooltip__popup--top-start { inset-inline-start: 0; }\n.tooltip__popup--top-end { inset-inline-end: 0; }\n\n.tooltip__popup--bottom,\n.tooltip__popup--bottom-start,\n.tooltip__popup--bottom-end {\n top: calc(100% + 8px);\n}\n.tooltip__popup--bottom { left: 50%; margin-left: -50%; }\n.tooltip__popup--bottom-start { inset-inline-start: 0; }\n.tooltip__popup--bottom-end { inset-inline-end: 0; }\n\n.tooltip__popup--left,\n.tooltip__popup--left-start,\n.tooltip__popup--left-end {\n inset-inline-end: calc(100% + 8px);\n}\n.tooltip__popup--left { top: 50%; transform: translateY(-50%) scale(0.95); }\n.tooltip__popup--left.tooltip__popup--visible { transform: translateY(-50%) scale(1); }\n\n.tooltip__popup--right,\n.tooltip__popup--right-start,\n.tooltip__popup--right-end {\n inset-inline-start: calc(100% + 8px);\n}\n.tooltip__popup--right { top: 50%; transform: translateY(-50%) scale(0.95); }\n.tooltip__popup--right.tooltip__popup--visible { transform: translateY(-50%) scale(1); }\n\n/* ---- Arrow ---- */\n.tooltip__arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background: var(--ts-tooltip-bg);\n transform: rotate(45deg);\n}\n\n.tooltip__popup--top .tooltip__arrow,\n.tooltip__popup--top-start .tooltip__arrow,\n.tooltip__popup--top-end .tooltip__arrow {\n bottom: -4px;\n left: 50%;\n margin-left: -4px;\n}\n\n.tooltip__popup--bottom .tooltip__arrow,\n.tooltip__popup--bottom-start .tooltip__arrow,\n.tooltip__popup--bottom-end .tooltip__arrow {\n top: -4px;\n left: 50%;\n margin-left: -4px;\n}\n\n.tooltip__popup--left .tooltip__arrow {\n inset-inline-end: -4px;\n top: 50%;\n margin-top: -4px;\n}\n\n.tooltip__popup--right .tooltip__arrow {\n inset-inline-start: -4px;\n top: 50%;\n margin-top: -4px;\n}\n","import { Component, Prop, State, h, Host, Element, Method } from '@stencil/core';\nimport type { TsPlacement } from '../../types';\nimport { generateId } from '../../utils/aria';\n\n/**\n * @slot - Default slot for the trigger element.\n *\n * @part base - The tooltip popup container.\n * @part arrow - The tooltip arrow element.\n */\n@Component({\n tag: 'ts-tooltip',\n styleUrl: 'tooltip.css',\n shadow: true,\n})\nexport class TsTooltip {\n @Element() hostEl!: HTMLElement;\n\n private tooltipId = generateId('ts-tooltip');\n\n /** The tooltip text content. */\n @Prop() content = '';\n\n /** Placement of the tooltip relative to the trigger. */\n @Prop({ reflect: true }) placement: TsPlacement = 'top';\n\n /** Delay in ms before showing the tooltip. */\n @Prop() showDelay = 200;\n\n /** Delay in ms before hiding the tooltip. */\n @Prop() hideDelay = 0;\n\n /** Disables the tooltip. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Whether the tooltip is currently visible. */\n @State() isVisible = false;\n\n private showTimeout?: ReturnType<typeof setTimeout>;\n private hideTimeout?: ReturnType<typeof setTimeout>;\n\n /** Programmatically show the tooltip. */\n @Method()\n async show(): Promise<void> {\n if (this.disabled) return;\n clearTimeout(this.hideTimeout);\n this.showTimeout = setTimeout(() => {\n this.isVisible = true;\n }, this.showDelay);\n }\n\n /** Programmatically hide the tooltip. */\n @Method()\n async hide(): Promise<void> {\n clearTimeout(this.showTimeout);\n this.hideTimeout = setTimeout(() => {\n this.isVisible = false;\n }, this.hideDelay);\n }\n\n disconnectedCallback(): void {\n clearTimeout(this.showTimeout);\n clearTimeout(this.hideTimeout);\n }\n\n private handleMouseEnter = (): void => {\n this.show();\n };\n\n private handleMouseLeave = (): void => {\n this.hide();\n };\n\n private handleFocusIn = (): void => {\n this.show();\n };\n\n private handleFocusOut = (): void => {\n this.hide();\n };\n\n private handleKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this.isVisible) {\n this.hide();\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host\n class={{\n 'ts-tooltip': true,\n 'ts-tooltip--visible': this.isVisible,\n }}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onFocusin={this.handleFocusIn}\n onFocusout={this.handleFocusOut}\n onKeyDown={this.handleKeydown}\n >\n <span class=\"tooltip__trigger\" aria-describedby={this.isVisible ? this.tooltipId : undefined}>\n <slot />\n </span>\n\n <div\n class={{\n 'tooltip__popup': true,\n [`tooltip__popup--${this.placement}`]: true,\n 'tooltip__popup--visible': this.isVisible,\n }}\n part=\"base\"\n id={this.tooltipId}\n role=\"tooltip\"\n aria-hidden={!this.isVisible ? 'true' : undefined}\n >\n {this.content}\n <div class=\"tooltip__arrow\" part=\"arrow\" />\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"ts-tree-item.cjs.entry.js","mappings":"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","names":["h","Host"],"sources":["src/components/tree/tree-item.css?tag=ts-tree-item&encapsulation=shadow","src/components/tree/tree-item.tsx"],"sourcesContent":["/* ==========================================================================\n ts-tree-item — Shadow DOM Scoped Styles\n ========================================================================== */\n\n:host {\n display: block;\n font-family: var(--ts-font-family-base);\n outline: none;\n}\n\n.tree-item__base {\n display: flex;\n align-items: center;\n gap: var(--ts-spacing-1);\n min-block-size: var(--ts-tree-item-height, 2rem);\n padding-inline: var(--ts-spacing-2);\n padding-block: var(--ts-spacing-1);\n border-radius: var(--ts-radius-sm);\n cursor: pointer;\n user-select: none;\n font-size: var(--ts-font-size-sm);\n line-height: var(--ts-line-height-tight);\n color: var(--ts-color-text-primary);\n transition:\n background-color var(--ts-transition-fast),\n color var(--ts-transition-fast);\n}\n\n.tree-item__base:hover {\n background-color: var(--ts-color-bg-subtle);\n}\n\n:host(:focus-visible) .tree-item__base {\n box-shadow: var(--ts-focus-ring);\n}\n\n/* ---- Selected ---- */\n:host([selected]) .tree-item__base {\n background-color: var(--ts-tree-active-bg, var(--ts-color-interactive-primary-subtle));\n color: var(--ts-color-interactive-primary);\n}\n\n/* ---- Disabled ---- */\n:host([disabled]) .tree-item__base {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ---- Chevron ---- */\n.tree-item__chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n inline-size: 1.25rem;\n block-size: 1.25rem;\n transition: transform var(--ts-transition-fast);\n}\n\n.tree-item__chevron svg {\n inline-size: 0.875rem;\n block-size: 0.875rem;\n}\n\n:host(.ts-tree-item--expanded) .tree-item__chevron {\n transform: rotate(90deg);\n}\n\n.tree-item__chevron--hidden {\n visibility: hidden;\n}\n\n/* ---- Icon ---- */\n.tree-item__icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ---- Label ---- */\n.tree-item__label {\n flex: 1;\n min-inline-size: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* ---- Children ---- */\n.tree-item__children {\n padding-inline-start: var(--ts-tree-indent, var(--ts-spacing-5));\n}\n\n.tree-item__children--collapsed {\n display: none;\n}\n","import { Component, Prop, Event, State, h, Host, Element, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\n/**\n * @slot - Default slot for nested ts-tree-item children.\n * @slot label - Custom label content.\n *\n * @part base - The tree item container.\n * @part label - The label wrapper.\n * @part chevron - The expand/collapse chevron.\n * @part icon - The icon wrapper.\n */\n@Component({\n tag: 'ts-tree-item',\n styleUrl: 'tree-item.css',\n shadow: true,\n})\nexport class TsTreeItem {\n @Element() hostEl!: HTMLElement;\n\n /** The item label. */\n @Prop() label?: string;\n\n /** Whether the item is expanded (has children). */\n @Prop({ reflect: true, mutable: true }) expanded = false;\n\n /** Whether the item is selected. */\n @Prop({ reflect: true, mutable: true }) selected = false;\n\n /** Whether the item is disabled. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Optional Lucide icon name. */\n @Prop() icon?: string;\n\n /** Whether this item has slotted children (expandable). */\n @State() hasChildren = false;\n\n /** Emitted when expand/collapse is toggled. */\n @Event({ eventName: 'tsToggle' }) tsToggle!: EventEmitter<{ expanded: boolean }>;\n\n /** Emitted when the item is selected. */\n @Event({ eventName: 'tsSelect' }) tsSelect!: EventEmitter<{ selected: boolean; value: string }>;\n\n @Watch('expanded')\n onExpandedChange(): void {\n this.tsToggle.emit({ expanded: this.expanded });\n }\n\n componentDidLoad(): void {\n this.checkForChildren();\n }\n\n private checkForChildren(): void {\n const slot = this.hostEl.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot) {\n const assigned = slot.assignedElements();\n this.hasChildren = assigned.some(el => el.tagName === 'TS-TREE-ITEM');\n }\n }\n\n private handleToggle = (event: MouseEvent): void => {\n event.stopPropagation();\n if (this.disabled) return;\n this.expanded = !this.expanded;\n };\n\n private handleSelect = (): void => {\n if (this.disabled) return;\n const tree = this.hostEl.closest('ts-tree');\n if (tree && (tree as unknown as { selectable: boolean }).selectable) {\n this.selected = !this.selected;\n this.tsSelect.emit({ selected: this.selected, value: this.label || '' });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleSelect();\n }\n };\n\n private handleSlotChange = (): void => {\n this.checkForChildren();\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host\n class={{\n 'ts-tree-item': true,\n 'ts-tree-item--expanded': this.expanded,\n 'ts-tree-item--selected': this.selected,\n 'ts-tree-item--disabled': this.disabled,\n 'ts-tree-item--has-children': this.hasChildren,\n }}\n role=\"treeitem\"\n tabindex={this.disabled ? -1 : 0}\n aria-expanded={this.hasChildren ? String(this.expanded) : undefined}\n aria-selected={String(this.selected)}\n aria-disabled={this.disabled ? 'true' : undefined}\n onKeyDown={this.handleKeyDown}\n >\n <div class=\"tree-item__base\" part=\"base\" onClick={this.handleSelect}>\n <span\n class={{\n 'tree-item__chevron': true,\n 'tree-item__chevron--hidden': !this.hasChildren,\n }}\n part=\"chevron\"\n onClick={this.handleToggle}\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </span>\n\n {this.icon && (\n <span class=\"tree-item__icon\" part=\"icon\" aria-hidden=\"true\">\n <ts-icon name={this.icon} size=\"sm\" />\n </span>\n )}\n\n <span class=\"tree-item__label\" part=\"label\">\n <slot name=\"label\">{this.label}</slot>\n </span>\n </div>\n\n <div\n class={{\n 'tree-item__children': true,\n 'tree-item__children--collapsed': !this.expanded,\n }}\n role=\"group\"\n >\n <slot onSlotchange={this.handleSlotChange} />\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"ts-tree.cjs.entry.js","mappings":";;;;AAAA,MAAM,OAAO,GAAG,MAAM,CAAC,yOAAyO,CAAC;;MCYpP,MAAM,GAAA,MAAA;;;;;;IAIQ,UAAU,GAAG,KAAK;AAG3C,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;AAExB,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,aAA4B;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3C,IAAI,YAAY,KAAK,EAAE;YAAE;AAEzB,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAA0B;AAEhE,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;;gBAEjC;AACF,YAAA,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,YAAY,GAAG,CAAC,EAAE;oBACpB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;;gBAEjC;AACF,YAAA,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AACxC,oBAAA,WAAW,CAAC,QAAQ,GAAG,IAAI;;gBAE7B;AACF,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;AACvC,oBAAA,WAAW,CAAC,QAAQ,GAAG,KAAK;;gBAE9B;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBAChB;AACF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;gBAC/B;;;IAIE,eAAe,GAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;AACzE,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAG;AAC5B,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa;YAC/B,OAAO,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;gBACvC,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,IAAI,CAAE,MAAgC,CAAC,QAAQ,EAAE;AACpF,oBAAA,OAAO,KAAK;;AAEd,gBAAA,MAAM,GAAG,MAAM,CAAC,aAAa;;AAE/B,YAAA,OAAO,IAAI;AACb,SAAC,CAAkB;;;IAIrB,MAAM,GAAA;QACJ,QACEA,OAAA,CAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAC1B,IAAI,EAAC,MAAM,EAAA,EAEXD,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAA,EACjCA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,CACJ,CACD;;;;;;;","names":["h","Host"],"sources":["src/components/tree/tree.css?tag=ts-tree&encapsulation=shadow","src/components/tree/tree.tsx"],"sourcesContent":["/* ==========================================================================\n ts-tree — Shadow DOM Scoped Styles\n\n Component tokens (Tier 3):\n --ts-tree-indent Indentation per level\n --ts-tree-item-height Item height\n --ts-tree-active-bg Active item background\n ========================================================================== */\n\n:host {\n display: block;\n font-family: var(--ts-font-family-base);\n\n --ts-tree-indent: var(--ts-spacing-5);\n --ts-tree-item-height: 2rem;\n --ts-tree-active-bg: var(--ts-color-interactive-primary-subtle);\n}\n\n.tree__base {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n","import { Component, Prop, h, Host, Element, Listen } from '@stencil/core';\n\n/**\n * @slot - Default slot for ts-tree-item children.\n *\n * @part base - The tree container.\n */\n@Component({\n tag: 'ts-tree',\n styleUrl: 'tree.css',\n shadow: true,\n})\nexport class TsTree {\n @Element() hostEl!: HTMLElement;\n\n /** Enable item selection mode. */\n @Prop({ reflect: true }) selectable = false;\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent): void {\n const items = this.getVisibleItems();\n if (items.length === 0) return;\n\n const focused = document.activeElement as HTMLElement;\n const currentIndex = items.indexOf(focused);\n if (currentIndex === -1) return;\n\n const currentItem = items[currentIndex] as HTMLTsTreeItemElement;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (currentIndex < items.length - 1) {\n items[currentIndex + 1].focus();\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (currentIndex > 0) {\n items[currentIndex - 1].focus();\n }\n break;\n case 'ArrowRight':\n event.preventDefault();\n if (currentItem && !currentItem.expanded) {\n currentItem.expanded = true;\n }\n break;\n case 'ArrowLeft':\n event.preventDefault();\n if (currentItem && currentItem.expanded) {\n currentItem.expanded = false;\n }\n break;\n case 'Home':\n event.preventDefault();\n items[0].focus();\n break;\n case 'End':\n event.preventDefault();\n items[items.length - 1].focus();\n break;\n }\n }\n\n private getVisibleItems(): HTMLElement[] {\n const allItems = Array.from(this.hostEl.querySelectorAll('ts-tree-item'));\n return allItems.filter(item => {\n let parent = item.parentElement;\n while (parent && parent !== this.hostEl) {\n if (parent.tagName === 'TS-TREE-ITEM' && !(parent as HTMLTsTreeItemElement).expanded) {\n return false;\n }\n parent = parent.parentElement;\n }\n return true;\n }) as HTMLElement[];\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host\n class={{ 'ts-tree': true }}\n role=\"tree\"\n >\n <div class=\"tree__base\" part=\"base\">\n <slot />\n </div>\n </Host>\n );\n }\n}\n\ninterface HTMLTsTreeItemElement extends HTMLElement {\n expanded: boolean;\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion-item.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Event, h, Host, State, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nlet accordionItemId = 0;\n\n/**\n * @slot - Default slot for panel content.\n * @slot header - Custom header content (replaces heading text).\n *\n * @part header - The header button.\n * @part panel - The content panel.\n */\n@Component({\n tag: 'ts-accordion-item',\n styleUrl: 'accordion-item.css',\n shadow: true,\n})\nexport class TsAccordionItem {\n private headerId!: string;\n private panelId!: string;\n\n /** Whether the item is expanded. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Disables toggling. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Header text for the item. */\n @Prop() heading?: string;\n\n /** Emitted when the item is toggled. */\n @Event({ eventName: 'tsToggle' }) tsToggle!: EventEmitter<{ open: boolean }>;\n\n @State() internalOpen = false;\n\n @Watch('open')\n onOpenChange(newVal: boolean): void {\n this.internalOpen = newVal;\n }\n\n connectedCallback(): void {\n const id = accordionItemId++;\n this.headerId = `ts-accordion-header-${id}`;\n this.panelId = `ts-accordion-panel-${id}`;\n this.internalOpen = this.open;\n }\n\n private handleClick = (): void => {\n if (this.disabled) return;\n this.open = !this.open;\n this.internalOpen = this.open;\n this.tsToggle.emit({ open: this.open });\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleClick();\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host\n class={{\n 'ts-accordion-item': true,\n 'ts-accordion-item--open': this.internalOpen,\n 'ts-accordion-item--disabled': this.disabled,\n }}\n >\n <div\n class=\"accordion-item__header\"\n part=\"header\"\n id={this.headerId}\n role=\"button\"\n tabindex={this.disabled ? -1 : 0}\n aria-expanded={this.internalOpen ? 'true' : 'false'}\n aria-controls={this.panelId}\n aria-disabled={this.disabled ? 'true' : undefined}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n >\n <slot name=\"header\">\n <span class=\"accordion-item__heading\">{this.heading}</span>\n </slot>\n <span class=\"accordion-item__icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </span>\n </div>\n <div\n class=\"accordion-item__panel\"\n part=\"panel\"\n id={this.panelId}\n role=\"region\"\n aria-labelledby={this.headerId}\n hidden={!this.internalOpen}\n >\n <div class=\"accordion-item__content\">\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- // Stories for ts-accordion-item are in the parent component's stories file
2
- // This file exists only to prevent auto-generation
3
- export default { title: 'Internal/accordion-item', tags: ['!autodocs'] };
4
- //# sourceMappingURL=accordion-item.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion-item.stories.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion-item.stories.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,mDAAmD;AAEnD,eAAe,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC","sourcesContent":["// Stories for ts-accordion-item are in the parent component's stories file\n// This file exists only to prevent auto-generation\n\nexport default { title: 'Internal/accordion-item', tags: ['!autodocs'] };\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1E;;GAEG;AAMH,MAAM,OAAO,WAAW;IACX,MAAM,CAAe;IAEhC,sDAAsD;IAC9C,QAAQ,GAAG,KAAK,CAAC;IAGzB,YAAY,CAAC,KAAqC;QAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAChE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACnC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAC,cAAc;YACxB,8DAAQ,CACH,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host, Element, Listen } from '@stencil/core';\n\n/**\n * @slot - Default slot for ts-accordion-item children.\n */\n@Component({\n tag: 'ts-accordion',\n styleUrl: 'accordion.css',\n shadow: true,\n})\nexport class TsAccordion {\n @Element() hostEl!: HTMLElement;\n\n /** Allow multiple items to be open simultaneously. */\n @Prop() multiple = false;\n\n @Listen('tsToggle')\n handleToggle(event: CustomEvent<{ open: boolean }>): void {\n if (!this.multiple && event.detail.open) {\n const target = event.target as HTMLElement;\n const items = this.hostEl.querySelectorAll('ts-accordion-item');\n items.forEach((item) => {\n if (item !== target) {\n item.setAttribute('open', 'false');\n item.removeAttribute('open');\n }\n });\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host class=\"ts-accordion\">\n <slot />\n </Host>\n );\n }\n}\n"]}
@@ -1,90 +0,0 @@
1
- // Hand-written stories for ts-accordion
2
- export default {
3
- title: 'Components/Accordion',
4
- tags: ['autodocs'],
5
- argTypes: {
6
- multiple: {
7
- control: 'boolean',
8
- description: 'Allow multiple items to be open simultaneously.',
9
- },
10
- },
11
- };
12
- const Template = (args) => {
13
- const attrs = [];
14
- if (args.multiple)
15
- attrs.push('multiple');
16
- return `
17
- <ts-accordion ${attrs.join(' ')}>
18
- <ts-accordion-item heading="What is your return policy?">
19
- You can return any item within 30 days of purchase for a full refund.
20
- Items must be in their original packaging and in unused condition.
21
- </ts-accordion-item>
22
- <ts-accordion-item heading="How do I track my order?">
23
- Once your order ships, you will receive a confirmation email with a tracking
24
- number. You can also check your order status in your account dashboard.
25
- </ts-accordion-item>
26
- <ts-accordion-item heading="Do you ship internationally?">
27
- Yes, we ship to over 50 countries worldwide. International shipping rates
28
- and delivery times vary by destination.
29
- </ts-accordion-item>
30
- </ts-accordion>
31
- `;
32
- };
33
- export const Default = Object.assign(Template.bind({}), {
34
- args: {
35
- multiple: false,
36
- },
37
- });
38
- export const MultipleOpen = () => `
39
- <ts-accordion multiple>
40
- <ts-accordion-item heading="What is your return policy?" open>
41
- You can return any item within 30 days of purchase for a full refund.
42
- Items must be in their original packaging and in unused condition.
43
- </ts-accordion-item>
44
- <ts-accordion-item heading="How do I track my order?" open>
45
- Once your order ships, you will receive a confirmation email with a tracking
46
- number. You can also check your order status in your account dashboard.
47
- </ts-accordion-item>
48
- <ts-accordion-item heading="Do you ship internationally?">
49
- Yes, we ship to over 50 countries worldwide. International shipping rates
50
- and delivery times vary by destination.
51
- </ts-accordion-item>
52
- </ts-accordion>
53
- `;
54
- export const States = () => `
55
- <ts-accordion>
56
- <ts-accordion-item heading="Open by default" open>
57
- This item is expanded when the page loads.
58
- </ts-accordion-item>
59
- <ts-accordion-item heading="Closed item">
60
- Click the header to reveal this content.
61
- </ts-accordion-item>
62
- <ts-accordion-item heading="Disabled item" disabled>
63
- This item cannot be toggled.
64
- </ts-accordion-item>
65
- </ts-accordion>
66
- `;
67
- export const Composition = () => `
68
- <div style="max-width: 600px;">
69
- <h3 style="margin-bottom: 16px; font-family: sans-serif;">Frequently Asked Questions</h3>
70
- <ts-accordion>
71
- <ts-accordion-item heading="How do I create an account?">
72
- Click the "Sign Up" button in the top right corner of the page. Fill in your
73
- email address, create a password, and follow the verification steps.
74
- </ts-accordion-item>
75
- <ts-accordion-item heading="Can I change my subscription plan?">
76
- Yes, you can upgrade or downgrade your plan at any time from your account
77
- settings. Changes take effect at the start of your next billing cycle.
78
- </ts-accordion-item>
79
- <ts-accordion-item heading="What payment methods do you accept?">
80
- We accept all major credit cards (Visa, Mastercard, American Express),
81
- PayPal, and bank transfers for annual plans.
82
- </ts-accordion-item>
83
- <ts-accordion-item heading="How do I cancel my subscription?">
84
- Navigate to Account Settings > Subscription and click "Cancel Plan."
85
- You will retain access until the end of your current billing period.
86
- </ts-accordion-item>
87
- </ts-accordion>
88
- </div>
89
- `;
90
- //# sourceMappingURL=accordion.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.stories.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.stories.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,eAAe;IACb,KAAK,EAAE,sBAAsB;IAC7B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,iDAAiD;SAC/D;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAA6B,EAAU,EAAE;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO;oBACW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;GAchC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAwD,EAAE;IAC7G,IAAI,EAAE;QACJ,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;CAezC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;CAYnC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBxC,CAAC","sourcesContent":["// Hand-written stories for ts-accordion\n\nexport default {\n title: 'Components/Accordion',\n tags: ['autodocs'],\n argTypes: {\n multiple: {\n control: 'boolean',\n description: 'Allow multiple items to be open simultaneously.',\n },\n },\n};\n\nconst Template = (args: Record<string, unknown>): string => {\n const attrs: string[] = [];\n if (args.multiple) attrs.push('multiple');\n return `\n <ts-accordion ${attrs.join(' ')}>\n <ts-accordion-item heading=\"What is your return policy?\">\n You can return any item within 30 days of purchase for a full refund.\n Items must be in their original packaging and in unused condition.\n </ts-accordion-item>\n <ts-accordion-item heading=\"How do I track my order?\">\n Once your order ships, you will receive a confirmation email with a tracking\n number. You can also check your order status in your account dashboard.\n </ts-accordion-item>\n <ts-accordion-item heading=\"Do you ship internationally?\">\n Yes, we ship to over 50 countries worldwide. International shipping rates\n and delivery times vary by destination.\n </ts-accordion-item>\n </ts-accordion>\n `;\n};\n\nexport const Default = Object.assign(Template.bind({}) as typeof Template & { args: Record<string, unknown> }, {\n args: {\n multiple: false,\n },\n});\n\nexport const MultipleOpen = (): string => `\n <ts-accordion multiple>\n <ts-accordion-item heading=\"What is your return policy?\" open>\n You can return any item within 30 days of purchase for a full refund.\n Items must be in their original packaging and in unused condition.\n </ts-accordion-item>\n <ts-accordion-item heading=\"How do I track my order?\" open>\n Once your order ships, you will receive a confirmation email with a tracking\n number. You can also check your order status in your account dashboard.\n </ts-accordion-item>\n <ts-accordion-item heading=\"Do you ship internationally?\">\n Yes, we ship to over 50 countries worldwide. International shipping rates\n and delivery times vary by destination.\n </ts-accordion-item>\n </ts-accordion>\n`;\n\nexport const States = (): string => `\n <ts-accordion>\n <ts-accordion-item heading=\"Open by default\" open>\n This item is expanded when the page loads.\n </ts-accordion-item>\n <ts-accordion-item heading=\"Closed item\">\n Click the header to reveal this content.\n </ts-accordion-item>\n <ts-accordion-item heading=\"Disabled item\" disabled>\n This item cannot be toggled.\n </ts-accordion-item>\n </ts-accordion>\n`;\n\nexport const Composition = (): string => `\n <div style=\"max-width: 600px;\">\n <h3 style=\"margin-bottom: 16px; font-family: sans-serif;\">Frequently Asked Questions</h3>\n <ts-accordion>\n <ts-accordion-item heading=\"How do I create an account?\">\n Click the \"Sign Up\" button in the top right corner of the page. Fill in your\n email address, create a password, and follow the verification steps.\n </ts-accordion-item>\n <ts-accordion-item heading=\"Can I change my subscription plan?\">\n Yes, you can upgrade or downgrade your plan at any time from your account\n settings. Changes take effect at the start of your next billing cycle.\n </ts-accordion-item>\n <ts-accordion-item heading=\"What payment methods do you accept?\">\n We accept all major credit cards (Visa, Mastercard, American Express),\n PayPal, and bank transfers for annual plans.\n </ts-accordion-item>\n <ts-accordion-item heading=\"How do I cancel my subscription?\">\n Navigate to Account Settings > Subscription and click \"Cancel Plan.\"\n You will retain access until the end of your current billing period.\n </ts-accordion-item>\n </ts-accordion>\n </div>\n`;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/components/alert/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI/E;;;;;;;;;;GAUG;AAMH,MAAM,OAAO,OAAO;IAClB,oCAAoC;IACX,OAAO,GAAc,MAAM,CAAC;IAErD,0CAA0C;IAClC,QAAQ,GAAG,KAAK,CAAC;IAEzB,8CAA8C;IACrC,SAAS,GAAG,IAAI,CAAC;IAE1B,wCAAwC;IACP,OAAO,CAAsB;IAE9D,wCAAwC;IAExC,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,uCAAuC;IAEvC,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEO,WAAW,GAAG,GAAS,EAAE;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,4EAA4E;IACpE,iBAAiB;QACvB,MAAM,KAAK,GAA2B;YACpC,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,GAAG;SACb,CAAC;QACF,OAAO,2BAAkB,MAAM,IAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAQ,CAAC;IACtE,CAAC;IAED,4EAA4E;IAC5E,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,UAAU,EAAE,IAAI;gBAChB,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;aACpC,EACD,IAAI,EAAC,OAAO;YAEZ,WAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM;gBAClC,WAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM;oBAClC,YAAM,IAAI,EAAC,MAAM,IAAE,IAAI,CAAC,iBAAiB,EAAE,CAAQ,CAC/C;gBAEN,WAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,SAAS;oBACxC,eAAQ,CACJ;gBAEN,WAAK,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ;oBACtC,YAAM,IAAI,EAAC,QAAQ,GAAG,CAClB;gBAEL,IAAI,CAAC,QAAQ,IAAI,CAChB,cACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,QAAQ,gBACF,aAAa,EACxB,OAAO,EAAE,IAAI,CAAC,WAAW,aAGlB,CACV,CACG,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, Event, State, h, Host, Method } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\nimport type { TsVariant } from '../../types';\n\n/**\n * @slot - Default slot for alert message content.\n * @slot icon - Custom icon to override the default variant icon.\n * @slot action - Action buttons or links displayed at the end.\n *\n * @part base - The alert container.\n * @part icon - The icon wrapper.\n * @part message - The message wrapper.\n * @part action - The action slot wrapper.\n * @part close - The close button.\n */\n@Component({\n tag: 'ts-alert',\n styleUrl: 'alert.css',\n shadow: true,\n})\nexport class TsAlert {\n /** The alert's semantic variant. */\n @Prop({ reflect: true }) variant: TsVariant = 'info';\n\n /** Whether the alert can be dismissed. */\n @Prop() closable = false;\n\n /** Whether the alert is currently visible. */\n @State() isVisible = true;\n\n /** Emitted when the alert is closed. */\n @Event({ eventName: 'tsClose' }) tsClose!: EventEmitter<void>;\n\n /** Programmatically close the alert. */\n @Method()\n async close(): Promise<void> {\n this.isVisible = false;\n this.tsClose.emit();\n }\n\n /** Programmatically show the alert. */\n @Method()\n async show(): Promise<void> {\n this.isVisible = true;\n }\n\n private handleClose = (): void => {\n this.close();\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n private renderDefaultIcon() {\n const icons: Record<string, string> = {\n info: 'ℹ',\n success: '✓',\n warning: '⚠',\n danger: '✕',\n primary: 'ℹ',\n secondary: 'ℹ',\n neutral: 'ℹ',\n };\n return <span aria-hidden=\"true\">{icons[this.variant] || 'ℹ'}</span>;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n if (!this.isVisible) return null;\n\n return (\n <Host\n class={{\n 'ts-alert': true,\n [`ts-alert--${this.variant}`]: true,\n }}\n role=\"alert\"\n >\n <div class=\"alert__base\" part=\"base\">\n <div class=\"alert__icon\" part=\"icon\">\n <slot name=\"icon\">{this.renderDefaultIcon()}</slot>\n </div>\n\n <div class=\"alert__message\" part=\"message\">\n <slot />\n </div>\n\n <div class=\"alert__action\" part=\"action\">\n <slot name=\"action\" />\n </div>\n\n {this.closable && (\n <button\n class=\"alert__close\"\n part=\"close\"\n type=\"button\"\n aria-label=\"Close alert\"\n onClick={this.handleClose}\n >\n ✕\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,128 +0,0 @@
1
- // Hand-written stories for ts-alert
2
- export default {
3
- title: 'Components/Alert',
4
- tags: ['autodocs'],
5
- argTypes: {
6
- variant: {
7
- control: 'select',
8
- options: ['primary', 'secondary', 'success', 'warning', 'danger', 'info', 'neutral'],
9
- description: 'The alert\'s semantic variant.',
10
- },
11
- closable: { control: 'boolean', description: 'Whether the alert can be dismissed.' },
12
- slotContent: { control: 'text', description: 'Alert message content' },
13
- },
14
- };
15
- const Template = (args) => {
16
- const attrs = [];
17
- if (args.variant !== undefined && args.variant !== null)
18
- attrs.push(`variant="${args.variant}"`);
19
- if (args.closable)
20
- attrs.push('closable');
21
- return `<ts-alert ${attrs.join(' ')}>${args.slotContent || 'This is an alert message.'}</ts-alert>`;
22
- };
23
- export const Default = Object.assign(Template.bind({}), {
24
- args: {
25
- variant: 'info',
26
- closable: false,
27
- slotContent: 'Your account settings have been updated successfully.',
28
- },
29
- });
30
- export const Variants = () => `
31
- <ts-stack gap="2" style="max-width: 600px;">
32
- <ts-alert variant="info">A new software update is available. See what's new in version 3.2.</ts-alert>
33
- <ts-alert variant="success">Your payment of $49.99 has been processed successfully.</ts-alert>
34
- <ts-alert variant="warning">Your free trial expires in 3 days. Upgrade now to keep your data.</ts-alert>
35
- <ts-alert variant="danger">Unable to connect to the database. Please check your credentials.</ts-alert>
36
- <ts-alert variant="primary">Welcome back! You have 5 unread notifications.</ts-alert>
37
- <ts-alert variant="secondary">This feature is in beta. Your feedback helps us improve.</ts-alert>
38
- <ts-alert variant="neutral">Scheduled maintenance will occur on Sunday from 2-4 AM UTC.</ts-alert>
39
- </ts-stack>
40
- `;
41
- export const States = () => `
42
- <ts-stack gap="2" style="max-width: 600px;">
43
- <ts-alert variant="info">Standard non-dismissible alert.</ts-alert>
44
- <ts-alert variant="success" closable>Dismissible alert — click the close button to hide.</ts-alert>
45
- <ts-alert variant="warning" closable>Your session will expire in 10 minutes. Save your work.</ts-alert>
46
- <ts-alert variant="danger" closable>Failed to save changes. Please try again.</ts-alert>
47
- </ts-stack>
48
- `;
49
- export const WithIcons = () => `
50
- <ts-stack gap="2" style="max-width: 600px;">
51
- <ts-alert variant="info">
52
- <ts-icon slot="icon" name="info" size="sm"></ts-icon>
53
- Two-factor authentication is now available for your account.
54
- </ts-alert>
55
- <ts-alert variant="success">
56
- <ts-icon slot="icon" name="check-circle" size="sm"></ts-icon>
57
- Deployment to production completed in 2m 34s.
58
- </ts-alert>
59
- <ts-alert variant="warning">
60
- <ts-icon slot="icon" name="alert-triangle" size="sm"></ts-icon>
61
- API rate limit approaching. 450 of 500 requests used this hour.
62
- </ts-alert>
63
- <ts-alert variant="danger">
64
- <ts-icon slot="icon" name="x-circle" size="sm"></ts-icon>
65
- Build failed: 3 test suites did not pass. Check the logs for details.
66
- </ts-alert>
67
- </ts-stack>
68
- `;
69
- export const WithActions = () => `
70
- <ts-stack gap="2" style="max-width: 600px;">
71
- <ts-alert variant="info" closable>
72
- A new version (v3.2.0) is available.
73
- <span slot="action">
74
- <ts-button size="sm" appearance="outline" variant="primary">Update Now</ts-button>
75
- </span>
76
- </ts-alert>
77
- <ts-alert variant="warning">
78
- Your subscription will renew in 5 days at $29/month.
79
- <span slot="action">
80
- <ts-button size="sm" appearance="ghost" variant="neutral">Manage Plan</ts-button>
81
- </span>
82
- </ts-alert>
83
- <ts-alert variant="danger" closable>
84
- <ts-icon slot="icon" name="shield-alert" size="sm"></ts-icon>
85
- Unusual login attempt detected from a new device.
86
- <span slot="action">
87
- <ts-button size="sm" variant="danger">Review Activity</ts-button>
88
- </span>
89
- </ts-alert>
90
- <ts-alert variant="success" closable>
91
- <ts-icon slot="icon" name="check-circle" size="sm"></ts-icon>
92
- Your file has been uploaded successfully.
93
- <span slot="action">
94
- <ts-button size="sm" appearance="link" variant="primary">View File</ts-button>
95
- </span>
96
- </ts-alert>
97
- </ts-stack>
98
- `;
99
- export const Composition = () => `
100
- <ts-stack gap="4" style="max-width: 500px;">
101
- <ts-card bordered padding="lg">
102
- <span slot="header"><h3 style="margin: 0;">Account Settings</h3></span>
103
- <ts-stack gap="3">
104
- <ts-alert variant="warning">
105
- <ts-icon slot="icon" name="alert-triangle" size="sm"></ts-icon>
106
- Your email address has not been verified.
107
- <span slot="action">
108
- <ts-button size="sm" appearance="outline" variant="warning">Resend Verification</ts-button>
109
- </span>
110
- </ts-alert>
111
- <ts-input label="Email" value="unverified@example.com" type="email">
112
- <ts-icon slot="prefix" name="mail" size="sm"></ts-icon>
113
- </ts-input>
114
- <ts-input label="Phone" type="tel" placeholder="+1 (555) 000-0000">
115
- <ts-icon slot="prefix" name="phone" size="sm"></ts-icon>
116
- </ts-input>
117
- <ts-toggle checked>Enable two-factor authentication</ts-toggle>
118
- </ts-stack>
119
- <span slot="footer">
120
- <ts-row gap="2" justify="end" style="padding-top: 8px;">
121
- <ts-button appearance="outline" variant="neutral">Discard</ts-button>
122
- <ts-button variant="primary">Save Settings</ts-button>
123
- </ts-row>
124
- </span>
125
- </ts-card>
126
- </ts-stack>
127
- `;
128
- //# sourceMappingURL=alert.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert.stories.js","sourceRoot":"","sources":["../../../src/components/alert/alert.stories.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,eAAe;IACb,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;YACpF,WAAW,EAAE,gCAAgC;SAC9C;QACD,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE;QACpF,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE;KACvE;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAA6B,EAAU,EAAE;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACjG,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,2BAA2B,aAAa,CAAC;AACtG,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAwD,EAAE;IAC7G,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,uDAAuD;KACrE;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;CAUrC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC;;;;;;;CAOnC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;CAmBtC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BxC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BxC,CAAC","sourcesContent":["// Hand-written stories for ts-alert\n\nexport default {\n title: 'Components/Alert',\n tags: ['autodocs'],\n argTypes: {\n variant: {\n control: 'select',\n options: ['primary', 'secondary', 'success', 'warning', 'danger', 'info', 'neutral'],\n description: 'The alert\\'s semantic variant.',\n },\n closable: { control: 'boolean', description: 'Whether the alert can be dismissed.' },\n slotContent: { control: 'text', description: 'Alert message content' },\n },\n};\n\nconst Template = (args: Record<string, unknown>): string => {\n const attrs: string[] = [];\n if (args.variant !== undefined && args.variant !== null) attrs.push(`variant=\"${args.variant}\"`);\n if (args.closable) attrs.push('closable');\n return `<ts-alert ${attrs.join(' ')}>${args.slotContent || 'This is an alert message.'}</ts-alert>`;\n};\n\nexport const Default = Object.assign(Template.bind({}) as typeof Template & { args: Record<string, unknown> }, {\n args: {\n variant: 'info',\n closable: false,\n slotContent: 'Your account settings have been updated successfully.',\n },\n});\n\nexport const Variants = (): string => `\n <ts-stack gap=\"2\" style=\"max-width: 600px;\">\n <ts-alert variant=\"info\">A new software update is available. See what's new in version 3.2.</ts-alert>\n <ts-alert variant=\"success\">Your payment of $49.99 has been processed successfully.</ts-alert>\n <ts-alert variant=\"warning\">Your free trial expires in 3 days. Upgrade now to keep your data.</ts-alert>\n <ts-alert variant=\"danger\">Unable to connect to the database. Please check your credentials.</ts-alert>\n <ts-alert variant=\"primary\">Welcome back! You have 5 unread notifications.</ts-alert>\n <ts-alert variant=\"secondary\">This feature is in beta. Your feedback helps us improve.</ts-alert>\n <ts-alert variant=\"neutral\">Scheduled maintenance will occur on Sunday from 2-4 AM UTC.</ts-alert>\n </ts-stack>\n`;\n\nexport const States = (): string => `\n <ts-stack gap=\"2\" style=\"max-width: 600px;\">\n <ts-alert variant=\"info\">Standard non-dismissible alert.</ts-alert>\n <ts-alert variant=\"success\" closable>Dismissible alert — click the close button to hide.</ts-alert>\n <ts-alert variant=\"warning\" closable>Your session will expire in 10 minutes. Save your work.</ts-alert>\n <ts-alert variant=\"danger\" closable>Failed to save changes. Please try again.</ts-alert>\n </ts-stack>\n`;\n\nexport const WithIcons = (): string => `\n <ts-stack gap=\"2\" style=\"max-width: 600px;\">\n <ts-alert variant=\"info\">\n <ts-icon slot=\"icon\" name=\"info\" size=\"sm\"></ts-icon>\n Two-factor authentication is now available for your account.\n </ts-alert>\n <ts-alert variant=\"success\">\n <ts-icon slot=\"icon\" name=\"check-circle\" size=\"sm\"></ts-icon>\n Deployment to production completed in 2m 34s.\n </ts-alert>\n <ts-alert variant=\"warning\">\n <ts-icon slot=\"icon\" name=\"alert-triangle\" size=\"sm\"></ts-icon>\n API rate limit approaching. 450 of 500 requests used this hour.\n </ts-alert>\n <ts-alert variant=\"danger\">\n <ts-icon slot=\"icon\" name=\"x-circle\" size=\"sm\"></ts-icon>\n Build failed: 3 test suites did not pass. Check the logs for details.\n </ts-alert>\n </ts-stack>\n`;\n\nexport const WithActions = (): string => `\n <ts-stack gap=\"2\" style=\"max-width: 600px;\">\n <ts-alert variant=\"info\" closable>\n A new version (v3.2.0) is available.\n <span slot=\"action\">\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"primary\">Update Now</ts-button>\n </span>\n </ts-alert>\n <ts-alert variant=\"warning\">\n Your subscription will renew in 5 days at $29/month.\n <span slot=\"action\">\n <ts-button size=\"sm\" appearance=\"ghost\" variant=\"neutral\">Manage Plan</ts-button>\n </span>\n </ts-alert>\n <ts-alert variant=\"danger\" closable>\n <ts-icon slot=\"icon\" name=\"shield-alert\" size=\"sm\"></ts-icon>\n Unusual login attempt detected from a new device.\n <span slot=\"action\">\n <ts-button size=\"sm\" variant=\"danger\">Review Activity</ts-button>\n </span>\n </ts-alert>\n <ts-alert variant=\"success\" closable>\n <ts-icon slot=\"icon\" name=\"check-circle\" size=\"sm\"></ts-icon>\n Your file has been uploaded successfully.\n <span slot=\"action\">\n <ts-button size=\"sm\" appearance=\"link\" variant=\"primary\">View File</ts-button>\n </span>\n </ts-alert>\n </ts-stack>\n`;\n\nexport const Composition = (): string => `\n <ts-stack gap=\"4\" style=\"max-width: 500px;\">\n <ts-card bordered padding=\"lg\">\n <span slot=\"header\"><h3 style=\"margin: 0;\">Account Settings</h3></span>\n <ts-stack gap=\"3\">\n <ts-alert variant=\"warning\">\n <ts-icon slot=\"icon\" name=\"alert-triangle\" size=\"sm\"></ts-icon>\n Your email address has not been verified.\n <span slot=\"action\">\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"warning\">Resend Verification</ts-button>\n </span>\n </ts-alert>\n <ts-input label=\"Email\" value=\"unverified@example.com\" type=\"email\">\n <ts-icon slot=\"prefix\" name=\"mail\" size=\"sm\"></ts-icon>\n </ts-input>\n <ts-input label=\"Phone\" type=\"tel\" placeholder=\"+1 (555) 000-0000\">\n <ts-icon slot=\"prefix\" name=\"phone\" size=\"sm\"></ts-icon>\n </ts-input>\n <ts-toggle checked>Enable two-factor authentication</ts-toggle>\n </ts-stack>\n <span slot=\"footer\">\n <ts-row gap=\"2\" justify=\"end\" style=\"padding-top: 8px;\">\n <ts-button appearance=\"outline\" variant=\"neutral\">Discard</ts-button>\n <ts-button variant=\"primary\">Save Settings</ts-button>\n </ts-row>\n </span>\n </ts-card>\n </ts-stack>\n`;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;GAMG;AAMH,MAAM,OAAO,QAAQ;IACnB,gCAAgC;IACxB,GAAG,CAAU;IAErB,qCAAqC;IAC7B,GAAG,CAAU;IAErB,+CAA+C;IACvC,IAAI,CAAU;IAEtB,8BAA8B;IACL,IAAI,GAAqC,IAAI,CAAC;IAEvE,mCAAmC;IACV,OAAO,GAAwB,QAAQ,CAAC;IAEjE,kDAAkD;IAC1C,KAAK,CAAU;IAEvB,wCAAwC;IAC/B,QAAQ,GAAG,KAAK,CAAC;IAElB,WAAW,GAAG,GAAS,EAAE;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC;IAEM,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChF,CAAC;IAED,4EAA4E;IAC5E,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,CAAC,SAAS,IAAI,QAAQ,CAAC;QAE5C,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;gBACjB,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACjC,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;aACrC;YAED,4DACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,KAAK,gBACE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAC7C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;gBAE5E,SAAS,IAAI,CACZ,4DACE,KAAK,EAAC,eAAe,EACrB,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAChC,OAAO,EAAE,IAAI,CAAC,WAAW,GACzB,CACH;gBACA,YAAY,IAAI,CACf,6DAAM,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,UAAU,iBAAa,MAAM,IAC9D,QAAQ,CACJ,CACR;gBACA,CAAC,SAAS,IAAI,CAAC,YAAY,IAAI,8DAAQ,CACpC,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, State, h, Host } from '@stencil/core';\n\n/**\n * @slot - Default slot for custom content (e.g., icon).\n *\n * @part base - The avatar container.\n * @part image - The avatar image element.\n * @part initials - The initials text element.\n */\n@Component({\n tag: 'ts-avatar',\n styleUrl: 'avatar.css',\n shadow: true,\n})\nexport class TsAvatar {\n /** Image URL for the avatar. */\n @Prop() src?: string;\n\n /** Alt text for the avatar image. */\n @Prop() alt?: string;\n\n /** Name used to generate initials fallback. */\n @Prop() name?: string;\n\n /** The size of the avatar. */\n @Prop({ reflect: true }) size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /** Shape variant of the avatar. */\n @Prop({ reflect: true }) variant: 'circle' | 'square' = 'circle';\n\n /** Background color for the initials fallback. */\n @Prop() color?: string;\n\n /** Whether the image failed to load. */\n @State() hasError = false;\n\n private handleError = (): void => {\n this.hasError = true;\n };\n\n private getInitials(): string {\n if (!this.name) return '';\n const words = this.name.trim().split(/\\s+/);\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n return (words[0].charAt(0) + words[words.length - 1].charAt(0)).toUpperCase();\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n const showImage = this.src && !this.hasError;\n const initials = this.getInitials();\n const showInitials = !showImage && initials;\n\n return (\n <Host\n class={{\n 'ts-avatar': true,\n [`ts-avatar--${this.size}`]: true,\n [`ts-avatar--${this.variant}`]: true,\n }}\n >\n <div\n class=\"avatar__base\"\n part=\"base\"\n role=\"img\"\n aria-label={this.alt || this.name || 'Avatar'}\n style={this.color && !showImage ? { backgroundColor: this.color } : undefined}\n >\n {showImage && (\n <img\n class=\"avatar__image\"\n part=\"image\"\n src={this.src}\n alt={this.alt || this.name || ''}\n onError={this.handleError}\n />\n )}\n {showInitials && (\n <span class=\"avatar__initials\" part=\"initials\" aria-hidden=\"true\">\n {initials}\n </span>\n )}\n {!showImage && !showInitials && <slot />}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,138 +0,0 @@
1
- // Hand-written stories for ts-avatar
2
- export default {
3
- title: 'Components/Avatar',
4
- tags: ['autodocs'],
5
- argTypes: {
6
- src: { control: 'text', description: 'Image URL for the avatar.' },
7
- alt: { control: 'text', description: 'Alt text for the avatar image.' },
8
- name: { control: 'text', description: 'Name used to generate initials fallback.' },
9
- size: {
10
- control: 'select',
11
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
12
- description: 'The size of the avatar.',
13
- },
14
- variant: {
15
- control: 'select',
16
- options: ['circle', 'square'],
17
- description: 'Shape variant of the avatar.',
18
- },
19
- color: { control: 'color', description: 'Background color for the initials fallback.' },
20
- },
21
- };
22
- const Template = (args) => {
23
- const attrs = [];
24
- if (args.src !== undefined && args.src !== null && args.src !== '')
25
- attrs.push(`src="${args.src}"`);
26
- if (args.alt !== undefined && args.alt !== null && args.alt !== '')
27
- attrs.push(`alt="${args.alt}"`);
28
- if (args.name !== undefined && args.name !== null)
29
- attrs.push(`name="${args.name}"`);
30
- if (args.size !== undefined && args.size !== null)
31
- attrs.push(`size="${args.size}"`);
32
- if (args.variant !== undefined && args.variant !== null)
33
- attrs.push(`variant="${args.variant}"`);
34
- if (args.color !== undefined && args.color !== null)
35
- attrs.push(`color="${args.color}"`);
36
- return `<ts-avatar ${attrs.join(' ')}></ts-avatar>`;
37
- };
38
- export const Default = Object.assign(Template.bind({}), {
39
- args: {
40
- src: '',
41
- alt: '',
42
- name: 'James Kennedy',
43
- size: 'md',
44
- variant: 'circle',
45
- color: '#6366f1',
46
- },
47
- });
48
- export const Sizes = () => `
49
- <div style="display: flex; gap: 12px; align-items: center;">
50
- <ts-avatar size="xs" name="Alice Smith" color="#6366f1"></ts-avatar>
51
- <ts-avatar size="sm" name="Alice Smith" color="#6366f1"></ts-avatar>
52
- <ts-avatar size="md" name="Alice Smith" color="#6366f1"></ts-avatar>
53
- <ts-avatar size="lg" name="Alice Smith" color="#6366f1"></ts-avatar>
54
- <ts-avatar size="xl" name="Alice Smith" color="#6366f1"></ts-avatar>
55
- </div>
56
- `;
57
- export const Variants = () => `
58
- <div style="display: flex; gap: 16px; align-items: center;">
59
- <div style="text-align: center; font-family: sans-serif;">
60
- <ts-avatar variant="circle" name="James Kennedy" color="#2563eb" size="lg"></ts-avatar>
61
- <div style="font-size: 12px; margin-top: 4px; color: #666;">Circle</div>
62
- </div>
63
- <div style="text-align: center; font-family: sans-serif;">
64
- <ts-avatar variant="square" name="James Kennedy" color="#2563eb" size="lg"></ts-avatar>
65
- <div style="font-size: 12px; margin-top: 4px; color: #666;">Square</div>
66
- </div>
67
- </div>
68
- `;
69
- export const InitialsFallback = () => `
70
- <div style="display: flex; gap: 12px; align-items: center;">
71
- <ts-avatar name="James Kennedy" color="#6366f1" size="lg"></ts-avatar>
72
- <ts-avatar name="Alice Smith" color="#ec4899" size="lg"></ts-avatar>
73
- <ts-avatar name="Robert Chen" color="#14b8a6" size="lg"></ts-avatar>
74
- <ts-avatar name="Maria" color="#f59e0b" size="lg"></ts-avatar>
75
- <ts-avatar name="David Lee Park" color="#8b5cf6" size="lg"></ts-avatar>
76
- </div>
77
- `;
78
- export const WithImages = () => `
79
- <div style="display: flex; gap: 12px; align-items: center;">
80
- <ts-avatar
81
- src="https://i.pravatar.cc/150?u=user1"
82
- alt="User profile photo"
83
- name="Jane Doe"
84
- size="lg"
85
- ></ts-avatar>
86
- <ts-avatar
87
- src="https://i.pravatar.cc/150?u=user2"
88
- alt="User profile photo"
89
- name="John Smith"
90
- size="lg"
91
- ></ts-avatar>
92
- <ts-avatar
93
- src="https://i.pravatar.cc/150?u=user3"
94
- alt="User profile photo"
95
- name="Alex Johnson"
96
- size="lg"
97
- ></ts-avatar>
98
- </div>
99
- `;
100
- export const ImageErrorFallback = () => `
101
- <div style="display: flex; gap: 12px; align-items: center; font-family: sans-serif;">
102
- <div style="text-align: center;">
103
- <ts-avatar
104
- src="https://invalid-url.example.com/photo.jpg"
105
- name="Broken Image"
106
- color="#ef4444"
107
- size="lg"
108
- ></ts-avatar>
109
- <div style="font-size: 12px; margin-top: 4px; color: #666;">Falls back to initials</div>
110
- </div>
111
- </div>
112
- `;
113
- export const UserList = () => `
114
- <div style="display: flex; flex-direction: column; gap: 12px; max-width: 320px; font-family: sans-serif;">
115
- <div style="display: flex; align-items: center; gap: 12px; padding: 8px;">
116
- <ts-avatar name="James Kennedy" color="#6366f1" size="sm"></ts-avatar>
117
- <div>
118
- <div style="font-weight: 500;">James Kennedy</div>
119
- <div style="font-size: 13px; color: #666;">james@example.com</div>
120
- </div>
121
- </div>
122
- <div style="display: flex; align-items: center; gap: 12px; padding: 8px;">
123
- <ts-avatar name="Alice Smith" color="#ec4899" size="sm"></ts-avatar>
124
- <div>
125
- <div style="font-weight: 500;">Alice Smith</div>
126
- <div style="font-size: 13px; color: #666;">alice@example.com</div>
127
- </div>
128
- </div>
129
- <div style="display: flex; align-items: center; gap: 12px; padding: 8px;">
130
- <ts-avatar name="Robert Chen" color="#14b8a6" size="sm"></ts-avatar>
131
- <div>
132
- <div style="font-weight: 500;">Robert Chen</div>
133
- <div style="font-size: 13px; color: #666;">robert@example.com</div>
134
- </div>
135
- </div>
136
- </div>
137
- `;
138
- //# sourceMappingURL=avatar.stories.js.map