@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,151 +0,0 @@
1
- // Hand-written stories for ts-input
2
- export default {
3
- title: 'Components/Input',
4
- tags: ['autodocs'],
5
- argTypes: {
6
- value: { control: 'text', description: 'The input\'s value.' },
7
- type: {
8
- control: 'select',
9
- options: ['text', 'email', 'password', 'number', 'tel', 'url', 'search'],
10
- description: 'The input type.',
11
- },
12
- size: {
13
- control: 'select',
14
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
15
- description: 'The input\'s size.',
16
- },
17
- label: { control: 'text', description: 'Label text displayed above the input.' },
18
- placeholder: { control: 'text', description: 'Placeholder text.' },
19
- helpText: { control: 'text', description: 'Help text displayed below the input.' },
20
- error: { control: 'text', description: 'Renders the input in an error state with an error message.' },
21
- required: { control: 'boolean', description: 'Makes the input required.' },
22
- disabled: { control: 'boolean', description: 'Renders the input as disabled.' },
23
- readonly: { control: 'boolean', description: 'Renders the input as readonly.' },
24
- maxlength: { control: 'number', description: 'Maximum character length.' },
25
- name: { control: 'text', description: 'Name attribute for form submission.' },
26
- },
27
- };
28
- const Template = (args) => {
29
- const attrs = [];
30
- if (args.value !== undefined && args.value !== null && args.value !== '')
31
- attrs.push(`value="${args.value}"`);
32
- if (args.type !== undefined && args.type !== null)
33
- attrs.push(`type="${args.type}"`);
34
- if (args.size !== undefined && args.size !== null)
35
- attrs.push(`size="${args.size}"`);
36
- if (args.label !== undefined && args.label !== null && args.label !== '')
37
- attrs.push(`label="${args.label}"`);
38
- if (args.placeholder !== undefined && args.placeholder !== null && args.placeholder !== '')
39
- attrs.push(`placeholder="${args.placeholder}"`);
40
- if (args.helpText !== undefined && args.helpText !== null && args.helpText !== '')
41
- attrs.push(`help-text="${args.helpText}"`);
42
- if (args.error !== undefined && args.error !== null && args.error !== '')
43
- attrs.push(`error="${args.error}"`);
44
- if (args.required)
45
- attrs.push('required');
46
- if (args.disabled)
47
- attrs.push('disabled');
48
- if (args.readonly)
49
- attrs.push('readonly');
50
- if (args.maxlength !== undefined && args.maxlength !== null)
51
- attrs.push(`maxlength="${args.maxlength}"`);
52
- if (args.name !== undefined && args.name !== null && args.name !== '')
53
- attrs.push(`name="${args.name}"`);
54
- return `<div style="max-width: 400px;"><ts-input ${attrs.join(' ')}></ts-input></div>`;
55
- };
56
- export const Default = Object.assign(Template.bind({}), {
57
- args: {
58
- value: '',
59
- type: 'text',
60
- size: 'md',
61
- label: 'Full Name',
62
- placeholder: 'Enter your full name',
63
- helpText: 'As it appears on your government ID.',
64
- disabled: false,
65
- readonly: false,
66
- required: false,
67
- },
68
- });
69
- export const Sizes = () => `
70
- <ts-stack gap="3" style="max-width: 400px;">
71
- <ts-input size="xs" label="Extra Small" placeholder="xs input"></ts-input>
72
- <ts-input size="sm" label="Small" placeholder="sm input"></ts-input>
73
- <ts-input size="md" label="Medium" placeholder="md input"></ts-input>
74
- <ts-input size="lg" label="Large" placeholder="lg input"></ts-input>
75
- <ts-input size="xl" label="Extra Large" placeholder="xl input"></ts-input>
76
- </ts-stack>
77
- `;
78
- export const Types = () => `
79
- <ts-stack gap="3" style="max-width: 400px;">
80
- <ts-input type="text" label="Username" placeholder="johndoe"></ts-input>
81
- <ts-input type="email" label="Email Address" placeholder="john@example.com"></ts-input>
82
- <ts-input type="password" label="Password" placeholder="Enter password"></ts-input>
83
- <ts-input type="number" label="Quantity" placeholder="0"></ts-input>
84
- <ts-input type="tel" label="Phone Number" placeholder="+1 (555) 000-0000"></ts-input>
85
- <ts-input type="url" label="Website" placeholder="https://example.com"></ts-input>
86
- <ts-input type="search" label="Search" placeholder="Search products..."></ts-input>
87
- </ts-stack>
88
- `;
89
- export const States = () => `
90
- <ts-stack gap="3" style="max-width: 400px;">
91
- <ts-input label="Default" placeholder="Editable input"></ts-input>
92
- <ts-input label="With Value" value="jane@example.com" placeholder="Email"></ts-input>
93
- <ts-input label="Disabled" placeholder="Cannot edit" disabled></ts-input>
94
- <ts-input label="Read Only" value="Read-only content" readonly></ts-input>
95
- <ts-input label="Required" placeholder="This field is required" required></ts-input>
96
- <ts-input label="With Help Text" placeholder="Choose a username" help-text="Must be 3-20 characters, letters and numbers only."></ts-input>
97
- <ts-input label="Error State" value="invalid-email" error="Please enter a valid email address."></ts-input>
98
- </ts-stack>
99
- `;
100
- export const WithIcons = () => `
101
- <ts-stack gap="3" style="max-width: 400px;">
102
- <ts-input label="Search" placeholder="Search files...">
103
- <ts-icon slot="prefix" name="search" size="sm"></ts-icon>
104
- </ts-input>
105
- <ts-input label="Email" placeholder="you@company.com">
106
- <ts-icon slot="prefix" name="mail" size="sm"></ts-icon>
107
- </ts-input>
108
- <ts-input label="Website" placeholder="https://example.com">
109
- <ts-icon slot="prefix" name="globe" size="sm"></ts-icon>
110
- </ts-input>
111
- <ts-input label="Amount" placeholder="0.00">
112
- <span slot="prefix" style="font-weight: 600; color: var(--ts-color-text-secondary); padding-left: 4px;">$</span>
113
- <span slot="suffix" style="color: var(--ts-color-text-secondary); padding-right: 4px;">USD</span>
114
- </ts-input>
115
- <ts-input label="Password" type="password" placeholder="Enter password">
116
- <ts-icon slot="prefix" name="lock" size="sm"></ts-icon>
117
- <ts-icon slot="suffix" name="eye" size="sm"></ts-icon>
118
- </ts-input>
119
- </ts-stack>
120
- `;
121
- export const Composition = () => `
122
- <ts-stack gap="4" style="max-width: 400px;">
123
- <ts-card bordered padding="lg">
124
- <span slot="header"><h3 style="margin: 0;">Sign In</h3></span>
125
- <ts-stack gap="3">
126
- <ts-input label="Email" type="email" placeholder="john@example.com" required>
127
- <ts-icon slot="prefix" name="mail" size="sm"></ts-icon>
128
- </ts-input>
129
- <ts-input label="Password" type="password" placeholder="Enter your password" required>
130
- <ts-icon slot="prefix" name="lock" size="sm"></ts-icon>
131
- </ts-input>
132
- </ts-stack>
133
- <span slot="footer">
134
- <ts-stack gap="2" style="padding-top: 8px;">
135
- <ts-button block variant="primary">Sign In</ts-button>
136
- <ts-button appearance="link" variant="primary">Forgot your password?</ts-button>
137
- </ts-stack>
138
- </span>
139
- </ts-card>
140
-
141
- <ts-row gap="2" align="end">
142
- <div style="flex: 1;">
143
- <ts-input placeholder="Enter invite code" label="Invite Code">
144
- <ts-icon slot="prefix" name="ticket" size="sm"></ts-icon>
145
- </ts-input>
146
- </div>
147
- <ts-button variant="primary">Redeem</ts-button>
148
- </ts-row>
149
- </ts-stack>
150
- `;
151
- //# sourceMappingURL=input.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.stories.js","sourceRoot":"","sources":["../../../src/components/input/input.stories.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,eAAe;IACb,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE;QAC9D,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;YACxE,WAAW,EAAE,iBAAiB;SAC/B;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACvC,WAAW,EAAE,oBAAoB;SAClC;QACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,uCAAuC,EAAE;QAChF,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAClE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,sCAAsC,EAAE;QAClF,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,4DAA4D,EAAE;QACrG,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE;QAC1E,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;QAC/E,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;QAC/E,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;QAC1E,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,qCAAqC,EAAE;KAC9E;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAA6B,EAAU,EAAE;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9G,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9G,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IAC5I,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9H,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9G,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACzG,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACzG,OAAO,4CAA4C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACzF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAwD,EAAE;IAC7G,IAAI,EAAE;QACJ,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,sCAAsC;QAChD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,GAAW,EAAE,CAAC;;;;;;;;CAQlC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;CAUlC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;CAUnC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;CAoBtC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BxC,CAAC","sourcesContent":["// Hand-written stories for ts-input\n\nexport default {\n title: 'Components/Input',\n tags: ['autodocs'],\n argTypes: {\n value: { control: 'text', description: 'The input\\'s value.' },\n type: {\n control: 'select',\n options: ['text', 'email', 'password', 'number', 'tel', 'url', 'search'],\n description: 'The input type.',\n },\n size: {\n control: 'select',\n options: ['xs', 'sm', 'md', 'lg', 'xl'],\n description: 'The input\\'s size.',\n },\n label: { control: 'text', description: 'Label text displayed above the input.' },\n placeholder: { control: 'text', description: 'Placeholder text.' },\n helpText: { control: 'text', description: 'Help text displayed below the input.' },\n error: { control: 'text', description: 'Renders the input in an error state with an error message.' },\n required: { control: 'boolean', description: 'Makes the input required.' },\n disabled: { control: 'boolean', description: 'Renders the input as disabled.' },\n readonly: { control: 'boolean', description: 'Renders the input as readonly.' },\n maxlength: { control: 'number', description: 'Maximum character length.' },\n name: { control: 'text', description: 'Name attribute for form submission.' },\n },\n};\n\nconst Template = (args: Record<string, unknown>): string => {\n const attrs: string[] = [];\n if (args.value !== undefined && args.value !== null && args.value !== '') attrs.push(`value=\"${args.value}\"`);\n if (args.type !== undefined && args.type !== null) attrs.push(`type=\"${args.type}\"`);\n if (args.size !== undefined && args.size !== null) attrs.push(`size=\"${args.size}\"`);\n if (args.label !== undefined && args.label !== null && args.label !== '') attrs.push(`label=\"${args.label}\"`);\n if (args.placeholder !== undefined && args.placeholder !== null && args.placeholder !== '') attrs.push(`placeholder=\"${args.placeholder}\"`);\n if (args.helpText !== undefined && args.helpText !== null && args.helpText !== '') attrs.push(`help-text=\"${args.helpText}\"`);\n if (args.error !== undefined && args.error !== null && args.error !== '') attrs.push(`error=\"${args.error}\"`);\n if (args.required) attrs.push('required');\n if (args.disabled) attrs.push('disabled');\n if (args.readonly) attrs.push('readonly');\n if (args.maxlength !== undefined && args.maxlength !== null) attrs.push(`maxlength=\"${args.maxlength}\"`);\n if (args.name !== undefined && args.name !== null && args.name !== '') attrs.push(`name=\"${args.name}\"`);\n return `<div style=\"max-width: 400px;\"><ts-input ${attrs.join(' ')}></ts-input></div>`;\n};\n\nexport const Default = Object.assign(Template.bind({}) as typeof Template & { args: Record<string, unknown> }, {\n args: {\n value: '',\n type: 'text',\n size: 'md',\n label: 'Full Name',\n placeholder: 'Enter your full name',\n helpText: 'As it appears on your government ID.',\n disabled: false,\n readonly: false,\n required: false,\n },\n});\n\nexport const Sizes = (): string => `\n <ts-stack gap=\"3\" style=\"max-width: 400px;\">\n <ts-input size=\"xs\" label=\"Extra Small\" placeholder=\"xs input\"></ts-input>\n <ts-input size=\"sm\" label=\"Small\" placeholder=\"sm input\"></ts-input>\n <ts-input size=\"md\" label=\"Medium\" placeholder=\"md input\"></ts-input>\n <ts-input size=\"lg\" label=\"Large\" placeholder=\"lg input\"></ts-input>\n <ts-input size=\"xl\" label=\"Extra Large\" placeholder=\"xl input\"></ts-input>\n </ts-stack>\n`;\n\nexport const Types = (): string => `\n <ts-stack gap=\"3\" style=\"max-width: 400px;\">\n <ts-input type=\"text\" label=\"Username\" placeholder=\"johndoe\"></ts-input>\n <ts-input type=\"email\" label=\"Email Address\" placeholder=\"john@example.com\"></ts-input>\n <ts-input type=\"password\" label=\"Password\" placeholder=\"Enter password\"></ts-input>\n <ts-input type=\"number\" label=\"Quantity\" placeholder=\"0\"></ts-input>\n <ts-input type=\"tel\" label=\"Phone Number\" placeholder=\"+1 (555) 000-0000\"></ts-input>\n <ts-input type=\"url\" label=\"Website\" placeholder=\"https://example.com\"></ts-input>\n <ts-input type=\"search\" label=\"Search\" placeholder=\"Search products...\"></ts-input>\n </ts-stack>\n`;\n\nexport const States = (): string => `\n <ts-stack gap=\"3\" style=\"max-width: 400px;\">\n <ts-input label=\"Default\" placeholder=\"Editable input\"></ts-input>\n <ts-input label=\"With Value\" value=\"jane@example.com\" placeholder=\"Email\"></ts-input>\n <ts-input label=\"Disabled\" placeholder=\"Cannot edit\" disabled></ts-input>\n <ts-input label=\"Read Only\" value=\"Read-only content\" readonly></ts-input>\n <ts-input label=\"Required\" placeholder=\"This field is required\" required></ts-input>\n <ts-input label=\"With Help Text\" placeholder=\"Choose a username\" help-text=\"Must be 3-20 characters, letters and numbers only.\"></ts-input>\n <ts-input label=\"Error State\" value=\"invalid-email\" error=\"Please enter a valid email address.\"></ts-input>\n </ts-stack>\n`;\n\nexport const WithIcons = (): string => `\n <ts-stack gap=\"3\" style=\"max-width: 400px;\">\n <ts-input label=\"Search\" placeholder=\"Search files...\">\n <ts-icon slot=\"prefix\" name=\"search\" size=\"sm\"></ts-icon>\n </ts-input>\n <ts-input label=\"Email\" placeholder=\"you@company.com\">\n <ts-icon slot=\"prefix\" name=\"mail\" size=\"sm\"></ts-icon>\n </ts-input>\n <ts-input label=\"Website\" placeholder=\"https://example.com\">\n <ts-icon slot=\"prefix\" name=\"globe\" size=\"sm\"></ts-icon>\n </ts-input>\n <ts-input label=\"Amount\" placeholder=\"0.00\">\n <span slot=\"prefix\" style=\"font-weight: 600; color: var(--ts-color-text-secondary); padding-left: 4px;\">$</span>\n <span slot=\"suffix\" style=\"color: var(--ts-color-text-secondary); padding-right: 4px;\">USD</span>\n </ts-input>\n <ts-input label=\"Password\" type=\"password\" placeholder=\"Enter password\">\n <ts-icon slot=\"prefix\" name=\"lock\" size=\"sm\"></ts-icon>\n <ts-icon slot=\"suffix\" name=\"eye\" size=\"sm\"></ts-icon>\n </ts-input>\n </ts-stack>\n`;\n\nexport const Composition = (): string => `\n <ts-stack gap=\"4\" style=\"max-width: 400px;\">\n <ts-card bordered padding=\"lg\">\n <span slot=\"header\"><h3 style=\"margin: 0;\">Sign In</h3></span>\n <ts-stack gap=\"3\">\n <ts-input label=\"Email\" type=\"email\" placeholder=\"john@example.com\" required>\n <ts-icon slot=\"prefix\" name=\"mail\" size=\"sm\"></ts-icon>\n </ts-input>\n <ts-input label=\"Password\" type=\"password\" placeholder=\"Enter your password\" required>\n <ts-icon slot=\"prefix\" name=\"lock\" size=\"sm\"></ts-icon>\n </ts-input>\n </ts-stack>\n <span slot=\"footer\">\n <ts-stack gap=\"2\" style=\"padding-top: 8px;\">\n <ts-button block variant=\"primary\">Sign In</ts-button>\n <ts-button appearance=\"link\" variant=\"primary\">Forgot your password?</ts-button>\n </ts-stack>\n </span>\n </ts-card>\n\n <ts-row gap=\"2\" align=\"end\">\n <div style=\"flex: 1;\">\n <ts-input placeholder=\"Enter invite code\" label=\"Invite Code\">\n <ts-icon slot=\"prefix\" name=\"ticket\" size=\"sm\"></ts-icon>\n </ts-input>\n </div>\n <ts-button variant=\"primary\">Redeem</ts-button>\n </ts-row>\n </ts-stack>\n`;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-item.js","sourceRoot":"","sources":["../../../src/components/menu/menu-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Event, h, Host, Element, Method } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\n/**\n * @slot - Default slot for menu item label content.\n * @slot prefix - Content before the label (e.g., icon).\n * @slot suffix - Content after the label (e.g., shortcut or badge).\n *\n * @part base - The menu item container element.\n * @part prefix - The prefix slot wrapper.\n * @part label - The label wrapper.\n * @part suffix - The suffix slot wrapper.\n */\n@Component({\n tag: 'ts-menu-item',\n styleUrl: 'menu-item.css',\n shadow: true,\n})\nexport class TsMenuItem {\n @Element() hostEl!: HTMLElement;\n\n /** Disables the menu item. */\n @Prop({ reflect: true }) disabled = false;\n\n /** The value associated with this menu item. */\n @Prop({ reflect: true }) value = '';\n\n /** If provided, renders the item as a link. */\n @Prop() href?: string;\n\n /** Emitted when the menu item is selected. */\n @Event({ eventName: 'tsSelect' }) tsSelect!: EventEmitter<{ value: string }>;\n\n private baseEl?: HTMLElement;\n\n /** Focus the menu item. */\n @Method()\n async setFocus(): Promise<void> {\n this.baseEl?.focus();\n }\n\n connectedCallback(): void {\n // Allow the host element to delegate focus to the inner element\n this.hostEl.addEventListener('focus', () => {\n this.baseEl?.focus();\n });\n }\n\n private handleClick = (): void => {\n if (this.disabled) return;\n this.tsSelect.emit({ value: this.value });\n };\n\n private handleKeydown = (event: KeyboardEvent): void => {\n if (this.disabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.tsSelect.emit({ value: this.value });\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n const isLink = !!this.href;\n const Tag = isLink ? 'a' : 'div';\n\n const linkAttrs = isLink\n ? {\n href: this.disabled ? undefined : this.href,\n }\n : {};\n\n return (\n <Host\n class={{\n 'ts-menu-item': true,\n 'ts-menu-item--disabled': this.disabled,\n }}\n >\n <Tag\n {...linkAttrs}\n ref={(el) => (this.baseEl = el as HTMLElement)}\n class=\"menu-item__base\"\n part=\"base\"\n role=\"menuitem\"\n tabindex={this.disabled ? -1 : 0}\n aria-disabled={this.disabled ? 'true' : undefined}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n >\n <span class=\"menu-item__prefix\" part=\"prefix\">\n <slot name=\"prefix\" />\n </span>\n\n <span class=\"menu-item__label\" part=\"label\">\n <slot />\n </span>\n\n <span class=\"menu-item__suffix\" part=\"suffix\">\n <slot name=\"suffix\" />\n </span>\n </Tag>\n </Host>\n );\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- // Stories for ts-menu-item are in the parent component's stories file
2
- // This file exists only to prevent auto-generation
3
- export default { title: 'Internal/menu-item', tags: ['!autodocs'] };
4
- //# sourceMappingURL=menu-item.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-item.stories.js","sourceRoot":"","sources":["../../../src/components/menu/menu-item.stories.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,mDAAmD;AAEnD,eAAe,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC","sourcesContent":["// Stories for ts-menu-item are in the parent component's stories file\n// This file exists only to prevent auto-generation\n\nexport default { title: 'Internal/menu-item', tags: ['!autodocs'] };\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/components/menu/menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, Event, h, Host, Element, Watch, Listen } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\nimport { generateId } from '../../utils/aria';\n\nexport type TsMenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';\n\nexport type TsMenuTrigger = 'click' | 'hover';\n\n/**\n * @slot trigger - The element that opens the menu (e.g., a button).\n * @slot - Default slot for ts-menu-item children.\n *\n * @part panel - The dropdown panel container.\n */\n@Component({\n tag: 'ts-menu',\n styleUrl: 'menu.css',\n shadow: true,\n})\nexport class TsMenu {\n @Element() hostEl!: HTMLElement;\n\n private menuId = generateId('ts-menu');\n private triggerEl?: HTMLElement;\n\n /** Whether the menu dropdown is open. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** How the menu is triggered. */\n @Prop({ reflect: true }) trigger: TsMenuTrigger = 'click';\n\n /** Placement of the dropdown relative to the trigger. */\n @Prop({ reflect: true }) placement: TsMenuPlacement = 'bottom-start';\n\n /** Emitted when the menu opens. */\n @Event({ eventName: 'tsOpen' }) tsOpen!: EventEmitter<void>;\n\n /** Emitted when the menu closes. */\n @Event({ eventName: 'tsClose' }) tsClose!: EventEmitter<void>;\n\n /** Tracks the currently focused item index for keyboard navigation. */\n @State() focusedIndex = -1;\n\n @Watch('open')\n handleOpenChange(isOpen: boolean): void {\n if (isOpen) {\n this.tsOpen.emit();\n requestAnimationFrame(() => {\n this.focusFirstItem();\n });\n } else {\n this.focusedIndex = -1;\n this.tsClose.emit();\n }\n }\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: MouseEvent): void {\n if (this.open && !this.hostEl.contains(event.target as Node)) {\n this.open = false;\n }\n }\n\n @Listen('tsSelect')\n handleItemSelect(): void {\n this.open = false;\n this.triggerEl?.focus();\n }\n\n @Listen('keydown')\n handleKeydown(event: KeyboardEvent): void {\n if (!this.open) return;\n\n const items = this.getMenuItems();\n if (items.length === 0) return;\n\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n this.focusedIndex = (this.focusedIndex + 1) % items.length;\n this.focusItem(items[this.focusedIndex]);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.focusedIndex = this.focusedIndex <= 0 ? items.length - 1 : this.focusedIndex - 1;\n this.focusItem(items[this.focusedIndex]);\n break;\n }\n case 'Home': {\n event.preventDefault();\n this.focusedIndex = 0;\n this.focusItem(items[0]);\n break;\n }\n case 'End': {\n event.preventDefault();\n this.focusedIndex = items.length - 1;\n this.focusItem(items[this.focusedIndex]);\n break;\n }\n case 'Escape': {\n event.preventDefault();\n this.open = false;\n this.triggerEl?.focus();\n break;\n }\n case 'Tab': {\n this.open = false;\n break;\n }\n }\n }\n\n private getMenuItems(): HTMLElement[] {\n return Array.from(this.hostEl.querySelectorAll<HTMLElement>('ts-menu-item:not([disabled])'));\n }\n\n private focusItem(el: HTMLElement): void {\n const item = el as HTMLElement & { setFocus?: () => Promise<void> };\n if (typeof item.setFocus === 'function') {\n item.setFocus();\n } else {\n el.focus();\n }\n }\n\n private focusFirstItem(): void {\n const items = this.getMenuItems();\n if (items.length > 0) {\n this.focusedIndex = 0;\n this.focusItem(items[0]);\n }\n }\n\n private handleTriggerClick = (): void => {\n if (this.trigger === 'click') {\n this.open = !this.open;\n }\n };\n\n private handleTriggerKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.open = true;\n }\n };\n\n private handleMouseEnter = (): void => {\n if (this.trigger === 'hover') {\n this.open = true;\n }\n };\n\n private handleMouseLeave = (): void => {\n if (this.trigger === 'hover') {\n this.open = false;\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host\n class={{\n 'ts-menu': true,\n 'ts-menu--open': this.open,\n }}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <div\n class=\"menu__trigger\"\n ref={(el) => (this.triggerEl = el)}\n onClick={this.handleTriggerClick}\n onKeyDown={this.handleTriggerKeydown}\n aria-haspopup=\"true\"\n aria-expanded={this.open ? 'true' : 'false'}\n aria-controls={this.menuId}\n >\n <slot name=\"trigger\" />\n </div>\n\n <div\n class={{\n 'menu__panel': true,\n 'menu__panel--open': this.open,\n [`menu__panel--${this.placement}`]: true,\n }}\n part=\"panel\"\n id={this.menuId}\n role=\"menu\"\n aria-hidden={!this.open ? 'true' : undefined}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,126 +0,0 @@
1
- // Hand-written stories for ts-menu
2
- export default {
3
- title: 'Components/Menu',
4
- tags: ['autodocs'],
5
- argTypes: {
6
- open: { control: 'boolean', description: 'Whether the menu dropdown is open.' },
7
- trigger: {
8
- control: 'select',
9
- options: ['click', 'hover'],
10
- description: 'How the menu is triggered.',
11
- },
12
- placement: {
13
- control: 'select',
14
- options: ['bottom-start', 'bottom-end', 'top-start', 'top-end'],
15
- description: 'Placement of the dropdown relative to the trigger.',
16
- },
17
- },
18
- };
19
- const Template = (args) => {
20
- const attrs = [];
21
- if (args.open)
22
- attrs.push('open');
23
- if (args.trigger !== undefined && args.trigger !== null)
24
- attrs.push(`trigger="${args.trigger}"`);
25
- if (args.placement !== undefined && args.placement !== null)
26
- attrs.push(`placement="${args.placement}"`);
27
- return `
28
- <ts-menu ${attrs.join(' ')}>
29
- <ts-button slot="trigger">Actions</ts-button>
30
- <ts-menu-item value="edit">Edit</ts-menu-item>
31
- <ts-menu-item value="duplicate">Duplicate</ts-menu-item>
32
- <ts-menu-item value="archive">Archive</ts-menu-item>
33
- <ts-menu-item value="delete">Delete</ts-menu-item>
34
- </ts-menu>
35
- `;
36
- };
37
- export const Default = Object.assign(Template.bind({}), {
38
- args: {
39
- open: false,
40
- trigger: 'click',
41
- placement: 'bottom-start',
42
- },
43
- });
44
- export const Placements = () => `
45
- <div style="display: flex; gap: 24px; flex-wrap: wrap; padding: 80px 20px;">
46
- <ts-menu placement="bottom-start">
47
- <ts-button slot="trigger">Bottom Start</ts-button>
48
- <ts-menu-item value="one">Option One</ts-menu-item>
49
- <ts-menu-item value="two">Option Two</ts-menu-item>
50
- <ts-menu-item value="three">Option Three</ts-menu-item>
51
- </ts-menu>
52
- <ts-menu placement="bottom-end">
53
- <ts-button slot="trigger">Bottom End</ts-button>
54
- <ts-menu-item value="one">Option One</ts-menu-item>
55
- <ts-menu-item value="two">Option Two</ts-menu-item>
56
- <ts-menu-item value="three">Option Three</ts-menu-item>
57
- </ts-menu>
58
- <ts-menu placement="top-start">
59
- <ts-button slot="trigger">Top Start</ts-button>
60
- <ts-menu-item value="one">Option One</ts-menu-item>
61
- <ts-menu-item value="two">Option Two</ts-menu-item>
62
- <ts-menu-item value="three">Option Three</ts-menu-item>
63
- </ts-menu>
64
- <ts-menu placement="top-end">
65
- <ts-button slot="trigger">Top End</ts-button>
66
- <ts-menu-item value="one">Option One</ts-menu-item>
67
- <ts-menu-item value="two">Option Two</ts-menu-item>
68
- <ts-menu-item value="three">Option Three</ts-menu-item>
69
- </ts-menu>
70
- </div>
71
- `;
72
- export const WithDisabledItems = () => `
73
- <ts-menu>
74
- <ts-button slot="trigger">File Actions</ts-button>
75
- <ts-menu-item value="edit">Edit</ts-menu-item>
76
- <ts-menu-item value="duplicate">Duplicate</ts-menu-item>
77
- <ts-menu-item value="move" disabled>Move (no permission)</ts-menu-item>
78
- <ts-menu-item value="archive">Archive</ts-menu-item>
79
- <ts-menu-item value="delete" disabled>Delete (locked)</ts-menu-item>
80
- </ts-menu>
81
- `;
82
- export const HoverTrigger = () => `
83
- <ts-menu trigger="hover">
84
- <ts-button slot="trigger">Hover Me</ts-button>
85
- <ts-menu-item value="profile">Profile</ts-menu-item>
86
- <ts-menu-item value="settings">Settings</ts-menu-item>
87
- <ts-menu-item value="help">Help Center</ts-menu-item>
88
- <ts-menu-item value="logout">Log Out</ts-menu-item>
89
- </ts-menu>
90
- `;
91
- export const WithLinks = () => `
92
- <ts-menu>
93
- <ts-button slot="trigger">Navigate</ts-button>
94
- <ts-menu-item value="docs" href="https://example.com/docs">Documentation</ts-menu-item>
95
- <ts-menu-item value="api" href="https://example.com/api">API Reference</ts-menu-item>
96
- <ts-menu-item value="changelog" href="https://example.com/changelog">Changelog</ts-menu-item>
97
- <ts-menu-item value="support" href="https://example.com/support">Support</ts-menu-item>
98
- </ts-menu>
99
- `;
100
- export const ContextMenu = () => `
101
- <div style="display: flex; gap: 16px;">
102
- <ts-menu placement="bottom-end">
103
- <ts-button slot="trigger" appearance="ghost" size="sm">...</ts-button>
104
- <ts-menu-item value="edit">Edit</ts-menu-item>
105
- <ts-menu-item value="duplicate">Duplicate</ts-menu-item>
106
- <ts-menu-item value="archive">Archive</ts-menu-item>
107
- <ts-menu-item value="delete">Delete</ts-menu-item>
108
- </ts-menu>
109
- </div>
110
- `;
111
- export const UserMenu = () => `
112
- <ts-menu placement="bottom-end">
113
- <ts-button slot="trigger" appearance="ghost">
114
- <div style="display: flex; align-items: center; gap: 8px;">
115
- <ts-avatar name="James Kennedy" color="#6366f1" size="xs"></ts-avatar>
116
- <span>James Kennedy</span>
117
- </div>
118
- </ts-button>
119
- <ts-menu-item value="profile">My Profile</ts-menu-item>
120
- <ts-menu-item value="settings">Account Settings</ts-menu-item>
121
- <ts-menu-item value="billing">Billing</ts-menu-item>
122
- <ts-menu-item value="team">Team Management</ts-menu-item>
123
- <ts-menu-item value="logout">Sign Out</ts-menu-item>
124
- </ts-menu>
125
- `;
126
- //# sourceMappingURL=menu.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu.stories.js","sourceRoot":"","sources":["../../../src/components/menu/menu.stories.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC,eAAe;IACb,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAC/E,OAAO,EAAE;YACP,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YAC3B,WAAW,EAAE,4BAA4B;SAC1C;QACD,SAAS,EAAE;YACT,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC;YAC/D,WAAW,EAAE,oDAAoD;SAClE;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAA6B,EAAU,EAAE;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,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,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACzG,OAAO;eACM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;;GAO3B,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,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,cAAc;KAC1B;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE,CAAC;;;;;;;;;CAS9C,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC;;;;;;;;CAQzC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC;;;;;;;;CAQtC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;CAUxC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;CAcrC,CAAC","sourcesContent":["// Hand-written stories for ts-menu\n\nexport default {\n title: 'Components/Menu',\n tags: ['autodocs'],\n argTypes: {\n open: { control: 'boolean', description: 'Whether the menu dropdown is open.' },\n trigger: {\n control: 'select',\n options: ['click', 'hover'],\n description: 'How the menu is triggered.',\n },\n placement: {\n control: 'select',\n options: ['bottom-start', 'bottom-end', 'top-start', 'top-end'],\n description: 'Placement of the dropdown relative to the trigger.',\n },\n },\n};\n\nconst Template = (args: Record<string, unknown>): string => {\n const attrs: string[] = [];\n if (args.open) attrs.push('open');\n if (args.trigger !== undefined && args.trigger !== null) attrs.push(`trigger=\"${args.trigger}\"`);\n if (args.placement !== undefined && args.placement !== null) attrs.push(`placement=\"${args.placement}\"`);\n return `\n <ts-menu ${attrs.join(' ')}>\n <ts-button slot=\"trigger\">Actions</ts-button>\n <ts-menu-item value=\"edit\">Edit</ts-menu-item>\n <ts-menu-item value=\"duplicate\">Duplicate</ts-menu-item>\n <ts-menu-item value=\"archive\">Archive</ts-menu-item>\n <ts-menu-item value=\"delete\">Delete</ts-menu-item>\n </ts-menu>\n `;\n};\n\nexport const Default = Object.assign(Template.bind({}) as typeof Template & { args: Record<string, unknown> }, {\n args: {\n open: false,\n trigger: 'click',\n placement: 'bottom-start',\n },\n});\n\nexport const Placements = (): string => `\n <div style=\"display: flex; gap: 24px; flex-wrap: wrap; padding: 80px 20px;\">\n <ts-menu placement=\"bottom-start\">\n <ts-button slot=\"trigger\">Bottom Start</ts-button>\n <ts-menu-item value=\"one\">Option One</ts-menu-item>\n <ts-menu-item value=\"two\">Option Two</ts-menu-item>\n <ts-menu-item value=\"three\">Option Three</ts-menu-item>\n </ts-menu>\n <ts-menu placement=\"bottom-end\">\n <ts-button slot=\"trigger\">Bottom End</ts-button>\n <ts-menu-item value=\"one\">Option One</ts-menu-item>\n <ts-menu-item value=\"two\">Option Two</ts-menu-item>\n <ts-menu-item value=\"three\">Option Three</ts-menu-item>\n </ts-menu>\n <ts-menu placement=\"top-start\">\n <ts-button slot=\"trigger\">Top Start</ts-button>\n <ts-menu-item value=\"one\">Option One</ts-menu-item>\n <ts-menu-item value=\"two\">Option Two</ts-menu-item>\n <ts-menu-item value=\"three\">Option Three</ts-menu-item>\n </ts-menu>\n <ts-menu placement=\"top-end\">\n <ts-button slot=\"trigger\">Top End</ts-button>\n <ts-menu-item value=\"one\">Option One</ts-menu-item>\n <ts-menu-item value=\"two\">Option Two</ts-menu-item>\n <ts-menu-item value=\"three\">Option Three</ts-menu-item>\n </ts-menu>\n </div>\n`;\n\nexport const WithDisabledItems = (): string => `\n <ts-menu>\n <ts-button slot=\"trigger\">File Actions</ts-button>\n <ts-menu-item value=\"edit\">Edit</ts-menu-item>\n <ts-menu-item value=\"duplicate\">Duplicate</ts-menu-item>\n <ts-menu-item value=\"move\" disabled>Move (no permission)</ts-menu-item>\n <ts-menu-item value=\"archive\">Archive</ts-menu-item>\n <ts-menu-item value=\"delete\" disabled>Delete (locked)</ts-menu-item>\n </ts-menu>\n`;\n\nexport const HoverTrigger = (): string => `\n <ts-menu trigger=\"hover\">\n <ts-button slot=\"trigger\">Hover Me</ts-button>\n <ts-menu-item value=\"profile\">Profile</ts-menu-item>\n <ts-menu-item value=\"settings\">Settings</ts-menu-item>\n <ts-menu-item value=\"help\">Help Center</ts-menu-item>\n <ts-menu-item value=\"logout\">Log Out</ts-menu-item>\n </ts-menu>\n`;\n\nexport const WithLinks = (): string => `\n <ts-menu>\n <ts-button slot=\"trigger\">Navigate</ts-button>\n <ts-menu-item value=\"docs\" href=\"https://example.com/docs\">Documentation</ts-menu-item>\n <ts-menu-item value=\"api\" href=\"https://example.com/api\">API Reference</ts-menu-item>\n <ts-menu-item value=\"changelog\" href=\"https://example.com/changelog\">Changelog</ts-menu-item>\n <ts-menu-item value=\"support\" href=\"https://example.com/support\">Support</ts-menu-item>\n </ts-menu>\n`;\n\nexport const ContextMenu = (): string => `\n <div style=\"display: flex; gap: 16px;\">\n <ts-menu placement=\"bottom-end\">\n <ts-button slot=\"trigger\" appearance=\"ghost\" size=\"sm\">...</ts-button>\n <ts-menu-item value=\"edit\">Edit</ts-menu-item>\n <ts-menu-item value=\"duplicate\">Duplicate</ts-menu-item>\n <ts-menu-item value=\"archive\">Archive</ts-menu-item>\n <ts-menu-item value=\"delete\">Delete</ts-menu-item>\n </ts-menu>\n </div>\n`;\n\nexport const UserMenu = (): string => `\n <ts-menu placement=\"bottom-end\">\n <ts-button slot=\"trigger\" appearance=\"ghost\">\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <ts-avatar name=\"James Kennedy\" color=\"#6366f1\" size=\"xs\"></ts-avatar>\n <span>James Kennedy</span>\n </div>\n </ts-button>\n <ts-menu-item value=\"profile\">My Profile</ts-menu-item>\n <ts-menu-item value=\"settings\">Account Settings</ts-menu-item>\n <ts-menu-item value=\"billing\">Billing</ts-menu-item>\n <ts-menu-item value=\"team\">Team Management</ts-menu-item>\n <ts-menu-item value=\"logout\">Sign Out</ts-menu-item>\n </ts-menu>\n`;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n State,\n Event,\n h,\n Host,\n Element,\n Method,\n Watch,\n} from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\nimport type { TsSize } from '../../types';\nimport { generateId, trapFocus } from '../../utils/aria';\n\n/**\n * @slot - Default slot for modal body content.\n * @slot header - Modal header content.\n * @slot footer - Modal footer content (e.g., action buttons).\n *\n * @part overlay - The backdrop overlay.\n * @part dialog - The dialog container.\n * @part header - The header wrapper.\n * @part body - The body wrapper.\n * @part footer - The footer wrapper.\n * @part close - The close button.\n */\n@Component({\n tag: 'ts-modal',\n styleUrl: 'modal.css',\n shadow: true,\n})\nexport class TsModal {\n @Element() hostEl!: HTMLElement;\n\n private dialogEl?: HTMLElement;\n private removeFocusTrap?: () => void;\n private previouslyFocused?: HTMLElement;\n private modalId = generateId('ts-modal');\n\n /** Whether the modal is open. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** The modal's width size preset. */\n @Prop({ reflect: true }) size: TsSize = 'md';\n\n /** Label for accessibility (used as aria-label). */\n @Prop() label?: string;\n\n /** Whether clicking the overlay closes the modal. */\n @Prop() closeOnOverlay = true;\n\n /** Whether pressing Escape closes the modal. */\n @Prop() closeOnEscape = true;\n\n /** Whether to show the close button. */\n @Prop() showClose = true;\n\n /** Emitted when the modal opens. */\n @Event({ eventName: 'tsOpen' }) tsOpen!: EventEmitter<void>;\n\n /** Emitted when the modal closes. */\n @Event({ eventName: 'tsClose' }) tsClose!: EventEmitter<void>;\n\n /** Internal animation state. */\n @State() isAnimating = false;\n\n @Watch('open')\n handleOpenChange(isOpen: boolean): void {\n if (isOpen) {\n this.openModal();\n } else {\n this.closeModal();\n }\n }\n\n /** Programmatically open the modal. */\n @Method()\n async show(): Promise<void> {\n this.open = true;\n }\n\n /** Programmatically close the modal. */\n @Method()\n async close(): Promise<void> {\n this.open = false;\n }\n\n private openModal(): void {\n this.previouslyFocused = document.activeElement as HTMLElement;\n this.isAnimating = true;\n this.tsOpen.emit();\n\n // Prevent body scroll\n document.body.style.overflow = 'hidden';\n\n requestAnimationFrame(() => {\n if (this.dialogEl) {\n this.removeFocusTrap = trapFocus(this.dialogEl);\n // Focus the dialog itself\n this.dialogEl.focus();\n }\n });\n }\n\n private closeModal(): void {\n this.isAnimating = false;\n this.tsClose.emit();\n\n // Restore body scroll\n document.body.style.overflow = '';\n\n // Clean up focus trap\n this.removeFocusTrap?.();\n\n // Restore focus\n this.previouslyFocused?.focus();\n }\n\n disconnectedCallback(): void {\n this.removeFocusTrap?.();\n document.body.style.overflow = '';\n }\n\n private handleOverlayClick = (): void => {\n if (this.closeOnOverlay) {\n this.close();\n }\n };\n\n private handleDialogClick = (event: MouseEvent): void => {\n // Prevent overlay click from firing when clicking inside the dialog\n event.stopPropagation();\n };\n\n private handleKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this.closeOnEscape) {\n event.stopPropagation();\n this.close();\n }\n };\n\n private handleCloseClick = (): void => {\n this.close();\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n if (!this.open) return null;\n\n return (\n <Host\n class={{\n 'ts-modal': true,\n 'ts-modal--open': this.open,\n }}\n onKeyDown={this.handleKeydown}\n >\n <div class=\"modal__overlay\" part=\"overlay\" onClick={this.handleOverlayClick}>\n <div\n ref={(el) => (this.dialogEl = el)}\n class={{\n 'modal__dialog': true,\n [`modal__dialog--${this.size}`]: true,\n }}\n part=\"dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.label}\n aria-labelledby={!this.label ? `${this.modalId}-header` : undefined}\n tabindex={-1}\n onClick={this.handleDialogClick}\n >\n {this.showClose && (\n <button\n class=\"modal__close\"\n part=\"close\"\n type=\"button\"\n aria-label=\"Close modal\"\n onClick={this.handleCloseClick}\n >\n ✕\n </button>\n )}\n\n <div class=\"modal__header\" part=\"header\" id={`${this.modalId}-header`}>\n <slot name=\"header\" />\n </div>\n\n <div class=\"modal__body\" part=\"body\">\n <slot />\n </div>\n\n <div class=\"modal__footer\" part=\"footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}