@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,233 +0,0 @@
1
- // Hand-written stories for ts-modal
2
- export default {
3
- title: 'Components/Modal',
4
- tags: ['autodocs'],
5
- argTypes: {
6
- open: { control: 'boolean', description: 'Whether the modal is open.' },
7
- size: {
8
- control: 'select',
9
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
10
- description: 'The modal\'s width size preset.',
11
- },
12
- label: { control: 'text', description: 'Label for accessibility (used as aria-label).' },
13
- closeOnOverlay: { control: 'boolean', description: 'Whether clicking the overlay closes the modal.' },
14
- closeOnEscape: { control: 'boolean', description: 'Whether pressing Escape closes the modal.' },
15
- showClose: { control: 'boolean', description: 'Whether to show the close button.' },
16
- },
17
- };
18
- const Template = (args) => {
19
- const attrs = [];
20
- if (args.open)
21
- attrs.push('open');
22
- if (args.size !== undefined && args.size !== null)
23
- attrs.push(`size="${args.size}"`);
24
- if (args.label !== undefined && args.label !== null && args.label !== '')
25
- attrs.push(`label="${args.label}"`);
26
- if (args.closeOnOverlay === false)
27
- attrs.push('close-on-overlay="false"');
28
- if (args.closeOnEscape === false)
29
- attrs.push('close-on-escape="false"');
30
- if (args.showClose === false)
31
- attrs.push('show-close="false"');
32
- return `
33
- <ts-button variant="primary" onclick="this.nextElementSibling.open = true">Open Modal</ts-button>
34
- <ts-modal ${attrs.join(' ')}>
35
- <span slot="header"><h3 style="margin: 0;">Edit Profile</h3></span>
36
- <div style="display: flex; flex-direction: column; gap: 16px;">
37
- <ts-input label="Display Name" value="Sarah Chen" placeholder="Enter your name"></ts-input>
38
- <ts-input label="Email" type="email" value="sarah@example.com" placeholder="Enter your email"></ts-input>
39
- </div>
40
- <span slot="footer">
41
- <div style="display: flex; justify-content: flex-end; gap: 12px;">
42
- <ts-button appearance="outline" variant="neutral">Cancel</ts-button>
43
- <ts-button variant="primary">Save Changes</ts-button>
44
- </div>
45
- </span>
46
- </ts-modal>
47
- `;
48
- };
49
- export const Default = Object.assign(Template.bind({}), {
50
- args: {
51
- open: false,
52
- size: 'md',
53
- label: 'Edit Profile',
54
- closeOnOverlay: true,
55
- closeOnEscape: true,
56
- showClose: true,
57
- },
58
- });
59
- export const Sizes = () => `
60
- <div style="display: flex; gap: 16px; align-items: center; flex-wrap: wrap;">
61
- <ts-button size="sm" appearance="outline" variant="neutral" onclick="document.getElementById('modal-xs').open = true">Extra Small</ts-button>
62
- <ts-button size="sm" appearance="outline" variant="neutral" onclick="document.getElementById('modal-sm').open = true">Small</ts-button>
63
- <ts-button size="sm" appearance="outline" variant="neutral" onclick="document.getElementById('modal-md').open = true">Medium</ts-button>
64
- <ts-button size="sm" appearance="outline" variant="neutral" onclick="document.getElementById('modal-lg').open = true">Large</ts-button>
65
- <ts-button size="sm" appearance="outline" variant="neutral" onclick="document.getElementById('modal-xl').open = true">Extra Large</ts-button>
66
- </div>
67
-
68
- <ts-modal id="modal-xs" size="xs" label="Extra Small Modal">
69
- <span slot="header"><h3 style="margin: 0;">Quick Confirm</h3></span>
70
- <p style="margin: 0;">Are you sure?</p>
71
- <span slot="footer">
72
- <div style="display: flex; justify-content: flex-end; gap: 8px;">
73
- <ts-button size="sm" appearance="outline" variant="neutral">No</ts-button>
74
- <ts-button size="sm" variant="primary">Yes</ts-button>
75
- </div>
76
- </span>
77
- </ts-modal>
78
-
79
- <ts-modal id="modal-sm" size="sm" label="Small Modal">
80
- <span slot="header"><h3 style="margin: 0;">Rename File</h3></span>
81
- <ts-input label="File Name" value="quarterly-report.pdf"></ts-input>
82
- <span slot="footer">
83
- <div style="display: flex; justify-content: flex-end; gap: 8px;">
84
- <ts-button size="sm" appearance="outline" variant="neutral">Cancel</ts-button>
85
- <ts-button size="sm" variant="primary">Rename</ts-button>
86
- </div>
87
- </span>
88
- </ts-modal>
89
-
90
- <ts-modal id="modal-md" size="md" label="Medium Modal">
91
- <span slot="header"><h3 style="margin: 0;">Create New Project</h3></span>
92
- <div style="display: flex; flex-direction: column; gap: 16px;">
93
- <ts-input label="Project Name" placeholder="My Awesome Project"></ts-input>
94
- <ts-input label="Description" placeholder="A brief description of the project"></ts-input>
95
- </div>
96
- <span slot="footer">
97
- <div style="display: flex; justify-content: flex-end; gap: 8px;">
98
- <ts-button appearance="outline" variant="neutral">Cancel</ts-button>
99
- <ts-button variant="primary">Create Project</ts-button>
100
- </div>
101
- </span>
102
- </ts-modal>
103
-
104
- <ts-modal id="modal-lg" size="lg" label="Large Modal">
105
- <span slot="header"><h3 style="margin: 0;">User Preferences</h3></span>
106
- <div style="display: flex; flex-direction: column; gap: 16px;">
107
- <ts-input label="Display Name" placeholder="Your name"></ts-input>
108
- <ts-input label="Email" type="email" placeholder="you@example.com"></ts-input>
109
- <ts-input label="Organization" placeholder="Company name"></ts-input>
110
- <div style="display: flex; flex-direction: column; gap: 12px;">
111
- <ts-toggle>Enable email notifications</ts-toggle>
112
- <ts-toggle checked>Enable dark mode</ts-toggle>
113
- </div>
114
- </div>
115
- <span slot="footer">
116
- <div style="display: flex; justify-content: flex-end; gap: 8px;">
117
- <ts-button appearance="outline" variant="neutral">Cancel</ts-button>
118
- <ts-button variant="primary">Save Preferences</ts-button>
119
- </div>
120
- </span>
121
- </ts-modal>
122
-
123
- <ts-modal id="modal-xl" size="xl" label="Extra Large Modal">
124
- <span slot="header"><h3 style="margin: 0;">Dashboard Overview</h3></span>
125
- <div style="display: flex; gap: 16px; flex-wrap: wrap;">
126
- <ts-card bordered style="flex: 1; min-width: 200px;">
127
- <div style="text-align: center;">
128
- <div style="font-size: 32px; font-weight: 700; color: var(--ts-color-primary-600);">2,847</div>
129
- <div style="color: var(--ts-color-text-secondary);">Total Users</div>
130
- </div>
131
- </ts-card>
132
- <ts-card bordered style="flex: 1; min-width: 200px;">
133
- <div style="text-align: center;">
134
- <div style="font-size: 32px; font-weight: 700; color: var(--ts-color-success-600);">$12,459</div>
135
- <div style="color: var(--ts-color-text-secondary);">Revenue</div>
136
- </div>
137
- </ts-card>
138
- <ts-card bordered style="flex: 1; min-width: 200px;">
139
- <div style="text-align: center;">
140
- <div style="font-size: 32px; font-weight: 700; color: var(--ts-color-warning-600);">94%</div>
141
- <div style="color: var(--ts-color-text-secondary);">Uptime</div>
142
- </div>
143
- </ts-card>
144
- </div>
145
- <span slot="footer">
146
- <div style="display: flex; justify-content: flex-end;">
147
- <ts-button appearance="outline" variant="neutral">Close</ts-button>
148
- </div>
149
- </span>
150
- </ts-modal>
151
- `;
152
- export const States = () => `
153
- <div style="display: flex; gap: 16px; align-items: center; flex-wrap: wrap;">
154
- <ts-button variant="danger" onclick="document.getElementById('modal-confirm-delete').open = true">
155
- <ts-icon slot="prefix" name="trash-2" size="sm"></ts-icon>
156
- Delete Account
157
- </ts-button>
158
- <ts-button variant="primary" onclick="document.getElementById('modal-no-close').open = true">
159
- Non-dismissible Modal
160
- </ts-button>
161
- </div>
162
-
163
- <ts-modal id="modal-confirm-delete" size="sm" label="Confirm Deletion">
164
- <span slot="header"><h3 style="margin: 0; color: var(--ts-color-danger-600);">Delete Account</h3></span>
165
- <div>
166
- <ts-alert variant="danger">This action cannot be undone. All your data will be permanently removed.</ts-alert>
167
- <div style="margin-top: 16px;">
168
- <ts-input label="Type DELETE to confirm" placeholder="DELETE" error=""></ts-input>
169
- </div>
170
- </div>
171
- <span slot="footer">
172
- <div style="display: flex; justify-content: flex-end; gap: 8px;">
173
- <ts-button appearance="outline" variant="neutral">Cancel</ts-button>
174
- <ts-button variant="danger">
175
- <ts-icon slot="prefix" name="trash-2" size="sm"></ts-icon>
176
- Delete Forever
177
- </ts-button>
178
- </div>
179
- </span>
180
- </ts-modal>
181
-
182
- <ts-modal id="modal-no-close" size="sm" label="Terms and Conditions" close-on-overlay="false" close-on-escape="false" show-close="false">
183
- <span slot="header"><h3 style="margin: 0;">Accept Terms</h3></span>
184
- <p style="margin: 0;">You must accept the terms and conditions to continue using this service. Please review our updated privacy policy.</p>
185
- <span slot="footer">
186
- <div style="display: flex; justify-content: flex-end; gap: 8px;">
187
- <ts-button appearance="outline" variant="neutral" onclick="document.getElementById('modal-no-close').open = false">Decline</ts-button>
188
- <ts-button variant="primary" onclick="document.getElementById('modal-no-close').open = false">Accept</ts-button>
189
- </div>
190
- </span>
191
- </ts-modal>
192
- `;
193
- export const Composition = () => `
194
- <ts-button variant="primary" onclick="document.getElementById('modal-compose').open = true">
195
- <ts-icon slot="prefix" name="plus" size="sm"></ts-icon>
196
- Add Team Member
197
- </ts-button>
198
-
199
- <ts-modal id="modal-compose" size="md" label="Add Team Member">
200
- <span slot="header">
201
- <div style="display: flex; align-items: center; gap: 8px;">
202
- <ts-icon name="user-plus" size="sm"></ts-icon>
203
- <h3 style="margin: 0;">Add Team Member</h3>
204
- </div>
205
- </span>
206
- <div style="display: flex; flex-direction: column; gap: 16px;">
207
- <div style="display: flex; gap: 12px;">
208
- <ts-input label="First Name" placeholder="Jane" style="flex: 1;"></ts-input>
209
- <ts-input label="Last Name" placeholder="Doe" style="flex: 1;"></ts-input>
210
- </div>
211
- <ts-input label="Email Address" type="email" placeholder="jane@company.com" required>
212
- <ts-icon slot="prefix" name="mail" size="sm"></ts-icon>
213
- </ts-input>
214
- <div style="display: flex; flex-direction: column; gap: 8px;">
215
- <span style="font-weight: 600; font-size: 14px;">Permissions</span>
216
- <ts-toggle>Can edit projects</ts-toggle>
217
- <ts-toggle>Can manage team members</ts-toggle>
218
- <ts-toggle checked>Can view analytics</ts-toggle>
219
- </div>
220
- <ts-alert variant="info">An invitation email will be sent to the provided address.</ts-alert>
221
- </div>
222
- <span slot="footer">
223
- <div style="display: flex; justify-content: flex-end; gap: 12px;">
224
- <ts-button appearance="outline" variant="neutral">Cancel</ts-button>
225
- <ts-button variant="primary">
226
- <ts-icon slot="prefix" name="send" size="sm"></ts-icon>
227
- Send Invitation
228
- </ts-button>
229
- </div>
230
- </span>
231
- </ts-modal>
232
- `;
233
- //# sourceMappingURL=modal.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.stories.js","sourceRoot":"","sources":["../../../src/components/modal/modal.stories.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,eAAe;IACb,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;QACvE,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACvC,WAAW,EAAE,iCAAiC;SAC/C;QACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,+CAA+C,EAAE;QACxF,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gDAAgD,EAAE;QACrG,aAAa,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE;QAC/F,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE;KACpF;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,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,cAAc,KAAK,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1E,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,OAAO;;gBAEO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;GAa5B,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,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,cAAc;QACrB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;KAChB;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FlC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCnC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCxC,CAAC","sourcesContent":["// Hand-written stories for ts-modal\n\nexport default {\n title: 'Components/Modal',\n tags: ['autodocs'],\n argTypes: {\n open: { control: 'boolean', description: 'Whether the modal is open.' },\n size: {\n control: 'select',\n options: ['xs', 'sm', 'md', 'lg', 'xl'],\n description: 'The modal\\'s width size preset.',\n },\n label: { control: 'text', description: 'Label for accessibility (used as aria-label).' },\n closeOnOverlay: { control: 'boolean', description: 'Whether clicking the overlay closes the modal.' },\n closeOnEscape: { control: 'boolean', description: 'Whether pressing Escape closes the modal.' },\n showClose: { control: 'boolean', description: 'Whether to show the close button.' },\n },\n};\n\nconst Template = (args: Record<string, unknown>): string => {\n const attrs: string[] = [];\n if (args.open) attrs.push('open');\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.closeOnOverlay === false) attrs.push('close-on-overlay=\"false\"');\n if (args.closeOnEscape === false) attrs.push('close-on-escape=\"false\"');\n if (args.showClose === false) attrs.push('show-close=\"false\"');\n return `\n <ts-button variant=\"primary\" onclick=\"this.nextElementSibling.open = true\">Open Modal</ts-button>\n <ts-modal ${attrs.join(' ')}>\n <span slot=\"header\"><h3 style=\"margin: 0;\">Edit Profile</h3></span>\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <ts-input label=\"Display Name\" value=\"Sarah Chen\" placeholder=\"Enter your name\"></ts-input>\n <ts-input label=\"Email\" type=\"email\" value=\"sarah@example.com\" placeholder=\"Enter your email\"></ts-input>\n </div>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end; gap: 12px;\">\n <ts-button appearance=\"outline\" variant=\"neutral\">Cancel</ts-button>\n <ts-button variant=\"primary\">Save Changes</ts-button>\n </div>\n </span>\n </ts-modal>\n `;\n};\n\nexport const Default = Object.assign(Template.bind({}) as typeof Template & { args: Record<string, unknown> }, {\n args: {\n open: false,\n size: 'md',\n label: 'Edit Profile',\n closeOnOverlay: true,\n closeOnEscape: true,\n showClose: true,\n },\n});\n\nexport const Sizes = (): string => `\n <div style=\"display: flex; gap: 16px; align-items: center; flex-wrap: wrap;\">\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"neutral\" onclick=\"document.getElementById('modal-xs').open = true\">Extra Small</ts-button>\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"neutral\" onclick=\"document.getElementById('modal-sm').open = true\">Small</ts-button>\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"neutral\" onclick=\"document.getElementById('modal-md').open = true\">Medium</ts-button>\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"neutral\" onclick=\"document.getElementById('modal-lg').open = true\">Large</ts-button>\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"neutral\" onclick=\"document.getElementById('modal-xl').open = true\">Extra Large</ts-button>\n </div>\n\n <ts-modal id=\"modal-xs\" size=\"xs\" label=\"Extra Small Modal\">\n <span slot=\"header\"><h3 style=\"margin: 0;\">Quick Confirm</h3></span>\n <p style=\"margin: 0;\">Are you sure?</p>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end; gap: 8px;\">\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"neutral\">No</ts-button>\n <ts-button size=\"sm\" variant=\"primary\">Yes</ts-button>\n </div>\n </span>\n </ts-modal>\n\n <ts-modal id=\"modal-sm\" size=\"sm\" label=\"Small Modal\">\n <span slot=\"header\"><h3 style=\"margin: 0;\">Rename File</h3></span>\n <ts-input label=\"File Name\" value=\"quarterly-report.pdf\"></ts-input>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end; gap: 8px;\">\n <ts-button size=\"sm\" appearance=\"outline\" variant=\"neutral\">Cancel</ts-button>\n <ts-button size=\"sm\" variant=\"primary\">Rename</ts-button>\n </div>\n </span>\n </ts-modal>\n\n <ts-modal id=\"modal-md\" size=\"md\" label=\"Medium Modal\">\n <span slot=\"header\"><h3 style=\"margin: 0;\">Create New Project</h3></span>\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <ts-input label=\"Project Name\" placeholder=\"My Awesome Project\"></ts-input>\n <ts-input label=\"Description\" placeholder=\"A brief description of the project\"></ts-input>\n </div>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end; gap: 8px;\">\n <ts-button appearance=\"outline\" variant=\"neutral\">Cancel</ts-button>\n <ts-button variant=\"primary\">Create Project</ts-button>\n </div>\n </span>\n </ts-modal>\n\n <ts-modal id=\"modal-lg\" size=\"lg\" label=\"Large Modal\">\n <span slot=\"header\"><h3 style=\"margin: 0;\">User Preferences</h3></span>\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <ts-input label=\"Display Name\" placeholder=\"Your name\"></ts-input>\n <ts-input label=\"Email\" type=\"email\" placeholder=\"you@example.com\"></ts-input>\n <ts-input label=\"Organization\" placeholder=\"Company name\"></ts-input>\n <div style=\"display: flex; flex-direction: column; gap: 12px;\">\n <ts-toggle>Enable email notifications</ts-toggle>\n <ts-toggle checked>Enable dark mode</ts-toggle>\n </div>\n </div>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end; gap: 8px;\">\n <ts-button appearance=\"outline\" variant=\"neutral\">Cancel</ts-button>\n <ts-button variant=\"primary\">Save Preferences</ts-button>\n </div>\n </span>\n </ts-modal>\n\n <ts-modal id=\"modal-xl\" size=\"xl\" label=\"Extra Large Modal\">\n <span slot=\"header\"><h3 style=\"margin: 0;\">Dashboard Overview</h3></span>\n <div style=\"display: flex; gap: 16px; flex-wrap: wrap;\">\n <ts-card bordered style=\"flex: 1; min-width: 200px;\">\n <div style=\"text-align: center;\">\n <div style=\"font-size: 32px; font-weight: 700; color: var(--ts-color-primary-600);\">2,847</div>\n <div style=\"color: var(--ts-color-text-secondary);\">Total Users</div>\n </div>\n </ts-card>\n <ts-card bordered style=\"flex: 1; min-width: 200px;\">\n <div style=\"text-align: center;\">\n <div style=\"font-size: 32px; font-weight: 700; color: var(--ts-color-success-600);\">$12,459</div>\n <div style=\"color: var(--ts-color-text-secondary);\">Revenue</div>\n </div>\n </ts-card>\n <ts-card bordered style=\"flex: 1; min-width: 200px;\">\n <div style=\"text-align: center;\">\n <div style=\"font-size: 32px; font-weight: 700; color: var(--ts-color-warning-600);\">94%</div>\n <div style=\"color: var(--ts-color-text-secondary);\">Uptime</div>\n </div>\n </ts-card>\n </div>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end;\">\n <ts-button appearance=\"outline\" variant=\"neutral\">Close</ts-button>\n </div>\n </span>\n </ts-modal>\n`;\n\nexport const States = (): string => `\n <div style=\"display: flex; gap: 16px; align-items: center; flex-wrap: wrap;\">\n <ts-button variant=\"danger\" onclick=\"document.getElementById('modal-confirm-delete').open = true\">\n <ts-icon slot=\"prefix\" name=\"trash-2\" size=\"sm\"></ts-icon>\n Delete Account\n </ts-button>\n <ts-button variant=\"primary\" onclick=\"document.getElementById('modal-no-close').open = true\">\n Non-dismissible Modal\n </ts-button>\n </div>\n\n <ts-modal id=\"modal-confirm-delete\" size=\"sm\" label=\"Confirm Deletion\">\n <span slot=\"header\"><h3 style=\"margin: 0; color: var(--ts-color-danger-600);\">Delete Account</h3></span>\n <div>\n <ts-alert variant=\"danger\">This action cannot be undone. All your data will be permanently removed.</ts-alert>\n <div style=\"margin-top: 16px;\">\n <ts-input label=\"Type DELETE to confirm\" placeholder=\"DELETE\" error=\"\"></ts-input>\n </div>\n </div>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end; gap: 8px;\">\n <ts-button appearance=\"outline\" variant=\"neutral\">Cancel</ts-button>\n <ts-button variant=\"danger\">\n <ts-icon slot=\"prefix\" name=\"trash-2\" size=\"sm\"></ts-icon>\n Delete Forever\n </ts-button>\n </div>\n </span>\n </ts-modal>\n\n <ts-modal id=\"modal-no-close\" size=\"sm\" label=\"Terms and Conditions\" close-on-overlay=\"false\" close-on-escape=\"false\" show-close=\"false\">\n <span slot=\"header\"><h3 style=\"margin: 0;\">Accept Terms</h3></span>\n <p style=\"margin: 0;\">You must accept the terms and conditions to continue using this service. Please review our updated privacy policy.</p>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end; gap: 8px;\">\n <ts-button appearance=\"outline\" variant=\"neutral\" onclick=\"document.getElementById('modal-no-close').open = false\">Decline</ts-button>\n <ts-button variant=\"primary\" onclick=\"document.getElementById('modal-no-close').open = false\">Accept</ts-button>\n </div>\n </span>\n </ts-modal>\n`;\n\nexport const Composition = (): string => `\n <ts-button variant=\"primary\" onclick=\"document.getElementById('modal-compose').open = true\">\n <ts-icon slot=\"prefix\" name=\"plus\" size=\"sm\"></ts-icon>\n Add Team Member\n </ts-button>\n\n <ts-modal id=\"modal-compose\" size=\"md\" label=\"Add Team Member\">\n <span slot=\"header\">\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <ts-icon name=\"user-plus\" size=\"sm\"></ts-icon>\n <h3 style=\"margin: 0;\">Add Team Member</h3>\n </div>\n </span>\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <div style=\"display: flex; gap: 12px;\">\n <ts-input label=\"First Name\" placeholder=\"Jane\" style=\"flex: 1;\"></ts-input>\n <ts-input label=\"Last Name\" placeholder=\"Doe\" style=\"flex: 1;\"></ts-input>\n </div>\n <ts-input label=\"Email Address\" type=\"email\" placeholder=\"jane@company.com\" required>\n <ts-icon slot=\"prefix\" name=\"mail\" size=\"sm\"></ts-icon>\n </ts-input>\n <div style=\"display: flex; flex-direction: column; gap: 8px;\">\n <span style=\"font-weight: 600; font-size: 14px;\">Permissions</span>\n <ts-toggle>Can edit projects</ts-toggle>\n <ts-toggle>Can manage team members</ts-toggle>\n <ts-toggle checked>Can view analytics</ts-toggle>\n </div>\n <ts-alert variant=\"info\">An invitation email will be sent to the provided address.</ts-alert>\n </div>\n <span slot=\"footer\">\n <div style=\"display: flex; justify-content: flex-end; gap: 12px;\">\n <ts-button appearance=\"outline\" variant=\"neutral\">Cancel</ts-button>\n <ts-button variant=\"primary\">\n <ts-icon slot=\"prefix\" name=\"send\" size=\"sm\"></ts-icon>\n Send Invitation\n </ts-button>\n </div>\n </span>\n </ts-modal>\n`;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"nav-item.js","sourceRoot":"","sources":["../../../src/components/nav/nav-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGhE;;;;;;;GAOG;AAMH,MAAM,OAAO,SAAS;IACpB,8BAA8B;IACtB,IAAI,CAAU;IAEtB,6CAA6C;IACpB,MAAM,GAAG,KAAK,CAAC;IAExC,qCAAqC;IACZ,QAAQ,GAAG,KAAK,CAAC;IAE1C,mCAAmC;IAC3B,IAAI,CAAU;IAEtB,6CAA6C;IACX,QAAQ,CAAsB;IAExD,WAAW,GAAG,CAAC,KAAiB,EAAQ,EAAE;QAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,4EAA4E;IAC5E,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI;YACrB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YACjD,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEzD,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI;gBACnB,qBAAqB,EAAE,IAAI,CAAC,MAAM;gBAClC,uBAAuB,EAAE,IAAI,CAAC,QAAQ;aACvC;YAED,2DAAI,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,UAAU;gBACvD,EAAC,GAAG,wDACE,KAAK,EACT,KAAK,EAAC,gBAAgB,EACtB,IAAI,EAAC,MAAM,kBACG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,mBAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACjD,OAAO,EAAE,IAAI,CAAC,WAAW;oBAExB,IAAI,CAAC,IAAI,IAAI,CACZ,6DAAM,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM;wBACzD,gEAAS,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,IAAI,GAAG,CACjC,CACR;oBACD,6DAAM,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,OAAO;wBACxC,8DAAQ,CACH,CACH,CACH,CACA,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, Event, h, Host } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\n/**\n * @slot - Default slot for label text.\n *\n * @part item - The list item wrapper.\n * @part link - The anchor or button element.\n * @part icon - The icon wrapper.\n * @part label - The label wrapper.\n */\n@Component({\n tag: 'ts-nav-item',\n styleUrl: 'nav-item.css',\n shadow: true,\n})\nexport class TsNavItem {\n /** The URL to navigate to. */\n @Prop() href?: string;\n\n /** Whether this item is currently active. */\n @Prop({ reflect: true }) active = false;\n\n /** Whether this item is disabled. */\n @Prop({ reflect: true }) disabled = false;\n\n /** Lucide icon name to display. */\n @Prop() icon?: string;\n\n /** Emitted when the nav item is selected. */\n @Event({ eventName: 'tsSelect' }) tsSelect!: EventEmitter<void>;\n\n private handleClick = (event: MouseEvent): void => {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.tsSelect.emit();\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n const Tag = this.href ? 'a' : 'button';\n const attrs = this.href\n ? { href: this.disabled ? undefined : this.href }\n : { type: 'button' as const, disabled: this.disabled };\n\n return (\n <Host\n class={{\n 'ts-nav-item': true,\n 'ts-nav-item--active': this.active,\n 'ts-nav-item--disabled': this.disabled,\n }}\n >\n <li class=\"nav-item__wrapper\" part=\"item\" role=\"listitem\">\n <Tag\n {...attrs}\n class=\"nav-item__link\"\n part=\"link\"\n aria-current={this.active ? 'page' : undefined}\n aria-disabled={this.disabled ? 'true' : undefined}\n onClick={this.handleClick}\n >\n {this.icon && (\n <span class=\"nav-item__icon\" part=\"icon\" aria-hidden=\"true\">\n <ts-icon name={this.icon} size=\"sm\" />\n </span>\n )}\n <span class=\"nav-item__label\" part=\"label\">\n <slot />\n </span>\n </Tag>\n </li>\n </Host>\n );\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- // Stories for ts-nav-item are in the parent component's stories file
2
- // This file exists only to prevent auto-generation
3
- export default { title: 'Internal/nav-item', tags: ['!autodocs'] };
4
- //# sourceMappingURL=nav-item.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nav-item.stories.js","sourceRoot":"","sources":["../../../src/components/nav/nav-item.stories.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,mDAAmD;AAEnD,eAAe,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC","sourcesContent":["// Stories for ts-nav-item are in the parent component's stories file\n// This file exists only to prevent auto-generation\n\nexport default { title: 'Internal/nav-item', tags: ['!autodocs'] };\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"nav.js","sourceRoot":"","sources":["../../../src/components/nav/nav.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;GAKG;AAMH,MAAM,OAAO,KAAK;IAChB,qCAAqC;IACZ,OAAO,GAA6B,SAAS,CAAC;IAEvE,yDAAyD;IAChC,SAAS,GAAG,KAAK,CAAC;IAE3C,4EAA4E;IAC5E,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI;gBACd,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;gBACjC,mBAAmB,EAAE,IAAI,CAAC,SAAS;aACpC;YAED,4DAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,KAAK,gBAAY,YAAY;gBACzD,2DAAI,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM;oBAC3C,8DAAQ,CACL,CACD,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * @slot - Default slot for ts-nav-item children.\n *\n * @part nav - The native nav element.\n * @part list - The list container.\n */\n@Component({\n tag: 'ts-nav',\n styleUrl: 'nav.css',\n shadow: true,\n})\nexport class TsNav {\n /** The navigation layout variant. */\n @Prop({ reflect: true }) variant: 'sidebar' | 'horizontal' = 'sidebar';\n\n /** Whether the sidebar nav is collapsed (icons only). */\n @Prop({ reflect: true }) collapsed = false;\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n return (\n <Host\n class={{\n 'ts-nav': true,\n [`ts-nav--${this.variant}`]: true,\n 'ts-nav--collapsed': this.collapsed,\n }}\n >\n <nav class=\"nav__native\" part=\"nav\" aria-label=\"Navigation\">\n <ul class=\"nav__list\" part=\"list\" role=\"list\">\n <slot />\n </ul>\n </nav>\n </Host>\n );\n }\n}\n"]}
@@ -1,106 +0,0 @@
1
- // Hand-written stories for ts-nav
2
- export default {
3
- title: 'Components/Nav',
4
- tags: ['autodocs'],
5
- argTypes: {
6
- variant: {
7
- control: 'select',
8
- options: ['sidebar', 'horizontal'],
9
- description: 'The navigation layout variant.',
10
- },
11
- collapsed: {
12
- control: 'boolean',
13
- description: 'Whether the sidebar nav is collapsed (icons only).',
14
- },
15
- },
16
- };
17
- const Template = (args) => {
18
- const attrs = [];
19
- if (args.variant !== undefined)
20
- attrs.push(`variant="${args.variant}"`);
21
- if (args.collapsed)
22
- attrs.push('collapsed');
23
- return `
24
- <ts-nav ${attrs.join(' ')}>
25
- <ts-nav-item icon="layout-dashboard" active>Dashboard</ts-nav-item>
26
- <ts-nav-item icon="users">Users</ts-nav-item>
27
- <ts-nav-item icon="settings">Settings</ts-nav-item>
28
- <ts-nav-item icon="bar-chart-2">Reports</ts-nav-item>
29
- </ts-nav>
30
- `;
31
- };
32
- export const Default = Object.assign(Template.bind({}), {
33
- args: {
34
- variant: 'sidebar',
35
- collapsed: false,
36
- },
37
- });
38
- export const Variants = () => `
39
- <div style="display: flex; flex-direction: column; gap: 32px;">
40
- <div>
41
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Sidebar variant</p>
42
- <div style="width: 240px;">
43
- <ts-nav variant="sidebar">
44
- <ts-nav-item icon="layout-dashboard" active>Dashboard</ts-nav-item>
45
- <ts-nav-item icon="users">Users</ts-nav-item>
46
- <ts-nav-item icon="settings">Settings</ts-nav-item>
47
- <ts-nav-item icon="bar-chart-2">Reports</ts-nav-item>
48
- </ts-nav>
49
- </div>
50
- </div>
51
- <div>
52
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Horizontal variant</p>
53
- <ts-nav variant="horizontal">
54
- <ts-nav-item active>Dashboard</ts-nav-item>
55
- <ts-nav-item>Users</ts-nav-item>
56
- <ts-nav-item>Settings</ts-nav-item>
57
- <ts-nav-item>Reports</ts-nav-item>
58
- </ts-nav>
59
- </div>
60
- </div>
61
- `;
62
- export const States = () => `
63
- <div style="display: flex; flex-direction: column; gap: 32px;">
64
- <div>
65
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Expanded sidebar</p>
66
- <div style="width: 240px;">
67
- <ts-nav variant="sidebar">
68
- <ts-nav-item icon="layout-dashboard" active>Dashboard</ts-nav-item>
69
- <ts-nav-item icon="users">Users</ts-nav-item>
70
- <ts-nav-item icon="settings" disabled>Settings</ts-nav-item>
71
- <ts-nav-item icon="bar-chart-2">Reports</ts-nav-item>
72
- </ts-nav>
73
- </div>
74
- </div>
75
- <div>
76
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Collapsed sidebar (icons only)</p>
77
- <div style="width: 64px;">
78
- <ts-nav variant="sidebar" collapsed>
79
- <ts-nav-item icon="layout-dashboard" active>Dashboard</ts-nav-item>
80
- <ts-nav-item icon="users">Users</ts-nav-item>
81
- <ts-nav-item icon="settings">Settings</ts-nav-item>
82
- <ts-nav-item icon="bar-chart-2">Reports</ts-nav-item>
83
- </ts-nav>
84
- </div>
85
- </div>
86
- </div>
87
- `;
88
- export const Composition = () => `
89
- <div style="display: flex; border: 1px solid #e2e8f0; border-radius: 8px; height: 400px; overflow: hidden;">
90
- <div style="width: 240px; border-right: 1px solid #e2e8f0; padding: 16px 0; background: #f8fafc;">
91
- <div style="padding: 0 16px 16px; font-family: sans-serif; font-weight: 700; font-size: 18px;">Acme App</div>
92
- <ts-nav variant="sidebar">
93
- <ts-nav-item icon="layout-dashboard" active href="#">Dashboard</ts-nav-item>
94
- <ts-nav-item icon="users" href="#">Users</ts-nav-item>
95
- <ts-nav-item icon="file-text" href="#">Documents</ts-nav-item>
96
- <ts-nav-item icon="bar-chart-2" href="#">Analytics</ts-nav-item>
97
- <ts-nav-item icon="settings" href="#">Settings</ts-nav-item>
98
- </ts-nav>
99
- </div>
100
- <div style="flex: 1; padding: 24px; font-family: sans-serif;">
101
- <h2 style="margin: 0 0 8px;">Dashboard</h2>
102
- <p style="color: #666;">Welcome back! Here is an overview of your activity.</p>
103
- </div>
104
- </div>
105
- `;
106
- //# sourceMappingURL=nav.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nav.stories.js","sourceRoot":"","sources":["../../../src/components/nav/nav.stories.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC,eAAe;IACb,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;YAClC,WAAW,EAAE,gCAAgC;SAC9C;QACD,SAAS,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,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,OAAO,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO;cACK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;GAM1B,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,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,KAAK;KACjB;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuBrC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;CAiBxC,CAAC","sourcesContent":["// Hand-written stories for ts-nav\n\nexport default {\n title: 'Components/Nav',\n tags: ['autodocs'],\n argTypes: {\n variant: {\n control: 'select',\n options: ['sidebar', 'horizontal'],\n description: 'The navigation layout variant.',\n },\n collapsed: {\n control: 'boolean',\n description: 'Whether the sidebar nav is collapsed (icons only).',\n },\n },\n};\n\nconst Template = (args: Record<string, unknown>): string => {\n const attrs: string[] = [];\n if (args.variant !== undefined) attrs.push(`variant=\"${args.variant}\"`);\n if (args.collapsed) attrs.push('collapsed');\n return `\n <ts-nav ${attrs.join(' ')}>\n <ts-nav-item icon=\"layout-dashboard\" active>Dashboard</ts-nav-item>\n <ts-nav-item icon=\"users\">Users</ts-nav-item>\n <ts-nav-item icon=\"settings\">Settings</ts-nav-item>\n <ts-nav-item icon=\"bar-chart-2\">Reports</ts-nav-item>\n </ts-nav>\n `;\n};\n\nexport const Default = Object.assign(Template.bind({}) as typeof Template & { args: Record<string, unknown> }, {\n args: {\n variant: 'sidebar',\n collapsed: false,\n },\n});\n\nexport const Variants = (): string => `\n <div style=\"display: flex; flex-direction: column; gap: 32px;\">\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Sidebar variant</p>\n <div style=\"width: 240px;\">\n <ts-nav variant=\"sidebar\">\n <ts-nav-item icon=\"layout-dashboard\" active>Dashboard</ts-nav-item>\n <ts-nav-item icon=\"users\">Users</ts-nav-item>\n <ts-nav-item icon=\"settings\">Settings</ts-nav-item>\n <ts-nav-item icon=\"bar-chart-2\">Reports</ts-nav-item>\n </ts-nav>\n </div>\n </div>\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Horizontal variant</p>\n <ts-nav variant=\"horizontal\">\n <ts-nav-item active>Dashboard</ts-nav-item>\n <ts-nav-item>Users</ts-nav-item>\n <ts-nav-item>Settings</ts-nav-item>\n <ts-nav-item>Reports</ts-nav-item>\n </ts-nav>\n </div>\n </div>\n`;\n\nexport const States = (): string => `\n <div style=\"display: flex; flex-direction: column; gap: 32px;\">\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Expanded sidebar</p>\n <div style=\"width: 240px;\">\n <ts-nav variant=\"sidebar\">\n <ts-nav-item icon=\"layout-dashboard\" active>Dashboard</ts-nav-item>\n <ts-nav-item icon=\"users\">Users</ts-nav-item>\n <ts-nav-item icon=\"settings\" disabled>Settings</ts-nav-item>\n <ts-nav-item icon=\"bar-chart-2\">Reports</ts-nav-item>\n </ts-nav>\n </div>\n </div>\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Collapsed sidebar (icons only)</p>\n <div style=\"width: 64px;\">\n <ts-nav variant=\"sidebar\" collapsed>\n <ts-nav-item icon=\"layout-dashboard\" active>Dashboard</ts-nav-item>\n <ts-nav-item icon=\"users\">Users</ts-nav-item>\n <ts-nav-item icon=\"settings\">Settings</ts-nav-item>\n <ts-nav-item icon=\"bar-chart-2\">Reports</ts-nav-item>\n </ts-nav>\n </div>\n </div>\n </div>\n`;\n\nexport const Composition = (): string => `\n <div style=\"display: flex; border: 1px solid #e2e8f0; border-radius: 8px; height: 400px; overflow: hidden;\">\n <div style=\"width: 240px; border-right: 1px solid #e2e8f0; padding: 16px 0; background: #f8fafc;\">\n <div style=\"padding: 0 16px 16px; font-family: sans-serif; font-weight: 700; font-size: 18px;\">Acme App</div>\n <ts-nav variant=\"sidebar\">\n <ts-nav-item icon=\"layout-dashboard\" active href=\"#\">Dashboard</ts-nav-item>\n <ts-nav-item icon=\"users\" href=\"#\">Users</ts-nav-item>\n <ts-nav-item icon=\"file-text\" href=\"#\">Documents</ts-nav-item>\n <ts-nav-item icon=\"bar-chart-2\" href=\"#\">Analytics</ts-nav-item>\n <ts-nav-item icon=\"settings\" href=\"#\">Settings</ts-nav-item>\n </ts-nav>\n </div>\n <div style=\"flex: 1; padding: 24px; font-family: sans-serif;\">\n <h2 style=\"margin: 0 0 8px;\">Dashboard</h2>\n <p style=\"color: #666;\">Welcome back! Here is an overview of your activity.</p>\n </div>\n </div>\n`;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Event, h, Host } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\nimport type { TsSize } from '../../types';\n\n/**\n * @part nav - The nav element.\n * @part button - Each page button.\n * @part prev - The previous button.\n * @part next - The next button.\n */\n@Component({\n tag: 'ts-pagination',\n styleUrl: 'pagination.css',\n shadow: true,\n})\nexport class TsPagination {\n /** Total number of items. */\n @Prop() total!: number;\n\n /** Number of items per page. */\n @Prop() pageSize = 10;\n\n /** The current active page (1-based). */\n @Prop({ mutable: true, reflect: true }) currentPage = 1;\n\n /** Number of sibling pages shown around the current page. */\n @Prop() siblingCount = 1;\n\n /** The size of the pagination buttons. */\n @Prop({ reflect: true }) size: TsSize = 'md';\n\n /** Emitted when the page changes. */\n @Event({ eventName: 'tsChange' }) tsChange!: EventEmitter<{ page: number }>;\n\n private get totalPages(): number {\n return Math.max(1, Math.ceil(this.total / this.pageSize));\n }\n\n private getPageRange(): (number | 'ellipsis')[] {\n const total = this.totalPages;\n const current = this.currentPage;\n const siblings = this.siblingCount;\n\n const range: (number | 'ellipsis')[] = [];\n\n const leftSibling = Math.max(current - siblings, 2);\n const rightSibling = Math.min(current + siblings, total - 1);\n\n const showLeftEllipsis = leftSibling > 2;\n const showRightEllipsis = rightSibling < total - 1;\n\n // Always show first page\n range.push(1);\n\n if (showLeftEllipsis) {\n range.push('ellipsis');\n } else {\n for (let i = 2; i < leftSibling; i++) {\n range.push(i);\n }\n }\n\n for (let i = leftSibling; i <= rightSibling; i++) {\n range.push(i);\n }\n\n if (showRightEllipsis) {\n range.push('ellipsis');\n } else {\n for (let i = rightSibling + 1; i < total; i++) {\n range.push(i);\n }\n }\n\n // Always show last page (if > 1)\n if (total > 1) {\n range.push(total);\n }\n\n return range;\n }\n\n private handlePageClick = (page: number): void => {\n if (page < 1 || page > this.totalPages || page === this.currentPage) return;\n this.currentPage = page;\n this.tsChange.emit({ page });\n };\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n render() {\n const pages = this.getPageRange();\n const isFirstPage = this.currentPage <= 1;\n const isLastPage = this.currentPage >= this.totalPages;\n\n return (\n <Host\n class={{\n 'ts-pagination': true,\n [`ts-pagination--${this.size}`]: true,\n }}\n >\n <nav part=\"nav\" aria-label=\"Pagination\" class=\"pagination__nav\">\n <button\n class=\"pagination__button pagination__prev\"\n part=\"prev\"\n disabled={isFirstPage}\n aria-label=\"Previous page\"\n onClick={() => this.handlePageClick(this.currentPage - 1)}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </button>\n\n {pages.map((page, index) =>\n page === 'ellipsis' ? (\n <span class=\"pagination__ellipsis\" key={`ellipsis-${index}`} aria-hidden=\"true\">\n ...\n </span>\n ) : (\n <button\n class={{\n pagination__button: true,\n 'pagination__button--active': page === this.currentPage,\n }}\n part=\"button\"\n aria-current={page === this.currentPage ? 'page' : undefined}\n aria-label={`Page ${page}`}\n onClick={() => this.handlePageClick(page)}\n key={page}\n >\n {page}\n </button>\n ),\n )}\n\n <button\n class=\"pagination__button pagination__next\"\n part=\"next\"\n disabled={isLastPage}\n aria-label=\"Next page\"\n onClick={() => this.handlePageClick(this.currentPage + 1)}\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 </button>\n </nav>\n </Host>\n );\n }\n}\n"]}
@@ -1,92 +0,0 @@
1
- // Hand-written stories for ts-pagination
2
- export default {
3
- title: 'Components/Pagination',
4
- tags: ['autodocs'],
5
- argTypes: {
6
- total: {
7
- control: 'number',
8
- description: 'Total number of items.',
9
- },
10
- pageSize: {
11
- control: 'number',
12
- description: 'Number of items per page.',
13
- },
14
- currentPage: {
15
- control: 'number',
16
- description: 'The current active page (1-based).',
17
- },
18
- siblingCount: {
19
- control: 'number',
20
- description: 'Number of sibling pages shown around the current page.',
21
- },
22
- size: {
23
- control: 'select',
24
- options: ['sm', 'md', 'lg'],
25
- description: 'The size of the pagination buttons.',
26
- },
27
- },
28
- };
29
- const Template = (args) => {
30
- const attrs = [];
31
- if (args.total !== undefined)
32
- attrs.push(`total="${args.total}"`);
33
- if (args.pageSize !== undefined)
34
- attrs.push(`page-size="${args.pageSize}"`);
35
- if (args.currentPage !== undefined)
36
- attrs.push(`current-page="${args.currentPage}"`);
37
- if (args.siblingCount !== undefined)
38
- attrs.push(`sibling-count="${args.siblingCount}"`);
39
- if (args.size !== undefined)
40
- attrs.push(`size="${args.size}"`);
41
- return `<ts-pagination ${attrs.join(' ')}></ts-pagination>`;
42
- };
43
- export const Default = Object.assign(Template.bind({}), {
44
- args: {
45
- total: 100,
46
- pageSize: 10,
47
- currentPage: 1,
48
- siblingCount: 1,
49
- size: 'md',
50
- },
51
- });
52
- export const Sizes = () => `
53
- <div style="display: flex; flex-direction: column; gap: 16px;">
54
- <div>
55
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Small</p>
56
- <ts-pagination total="100" page-size="10" current-page="5" size="sm"></ts-pagination>
57
- </div>
58
- <div>
59
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Medium (default)</p>
60
- <ts-pagination total="100" page-size="10" current-page="5" size="md"></ts-pagination>
61
- </div>
62
- <div>
63
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Large</p>
64
- <ts-pagination total="100" page-size="10" current-page="5" size="lg"></ts-pagination>
65
- </div>
66
- </div>
67
- `;
68
- export const States = () => `
69
- <div style="display: flex; flex-direction: column; gap: 16px;">
70
- <div>
71
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">First page (prev disabled)</p>
72
- <ts-pagination total="100" page-size="10" current-page="1"></ts-pagination>
73
- </div>
74
- <div>
75
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Middle page with ellipsis</p>
76
- <ts-pagination total="100" page-size="10" current-page="5"></ts-pagination>
77
- </div>
78
- <div>
79
- <p style="margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;">Last page (next disabled)</p>
80
- <ts-pagination total="100" page-size="10" current-page="10"></ts-pagination>
81
- </div>
82
- </div>
83
- `;
84
- export const Composition = () => `
85
- <div style="max-width: 600px; font-family: sans-serif;">
86
- <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;">
87
- <span style="font-size: 14px; color: #666;">Showing 41-50 of 237 results</span>
88
- </div>
89
- <ts-pagination total="237" page-size="10" current-page="5" sibling-count="2"></ts-pagination>
90
- </div>
91
- `;
92
- //# sourceMappingURL=pagination.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.stories.js","sourceRoot":"","sources":["../../../src/components/pagination/pagination.stories.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,eAAe;IACb,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,wBAAwB;SACtC;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,2BAA2B;SACzC;QACD,WAAW,EAAE;YACX,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,oCAAoC;SAClD;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,wDAAwD;SACtE;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAC3B,WAAW,EAAE,qCAAqC;SACnD;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAA6B,EAAU,EAAE;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC5E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACxF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/D,OAAO,kBAAkB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC9D,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,GAAG;QACV,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,IAAI,EAAE,IAAI;KACX;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;CAelC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC;;;;;;;;;;;;;;;CAenC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC;;;;;;;CAOxC,CAAC","sourcesContent":["// Hand-written stories for ts-pagination\n\nexport default {\n title: 'Components/Pagination',\n tags: ['autodocs'],\n argTypes: {\n total: {\n control: 'number',\n description: 'Total number of items.',\n },\n pageSize: {\n control: 'number',\n description: 'Number of items per page.',\n },\n currentPage: {\n control: 'number',\n description: 'The current active page (1-based).',\n },\n siblingCount: {\n control: 'number',\n description: 'Number of sibling pages shown around the current page.',\n },\n size: {\n control: 'select',\n options: ['sm', 'md', 'lg'],\n description: 'The size of the pagination buttons.',\n },\n },\n};\n\nconst Template = (args: Record<string, unknown>): string => {\n const attrs: string[] = [];\n if (args.total !== undefined) attrs.push(`total=\"${args.total}\"`);\n if (args.pageSize !== undefined) attrs.push(`page-size=\"${args.pageSize}\"`);\n if (args.currentPage !== undefined) attrs.push(`current-page=\"${args.currentPage}\"`);\n if (args.siblingCount !== undefined) attrs.push(`sibling-count=\"${args.siblingCount}\"`);\n if (args.size !== undefined) attrs.push(`size=\"${args.size}\"`);\n return `<ts-pagination ${attrs.join(' ')}></ts-pagination>`;\n};\n\nexport const Default = Object.assign(Template.bind({}) as typeof Template & { args: Record<string, unknown> }, {\n args: {\n total: 100,\n pageSize: 10,\n currentPage: 1,\n siblingCount: 1,\n size: 'md',\n },\n});\n\nexport const Sizes = (): string => `\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Small</p>\n <ts-pagination total=\"100\" page-size=\"10\" current-page=\"5\" size=\"sm\"></ts-pagination>\n </div>\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Medium (default)</p>\n <ts-pagination total=\"100\" page-size=\"10\" current-page=\"5\" size=\"md\"></ts-pagination>\n </div>\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Large</p>\n <ts-pagination total=\"100\" page-size=\"10\" current-page=\"5\" size=\"lg\"></ts-pagination>\n </div>\n </div>\n`;\n\nexport const States = (): string => `\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">First page (prev disabled)</p>\n <ts-pagination total=\"100\" page-size=\"10\" current-page=\"1\"></ts-pagination>\n </div>\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Middle page with ellipsis</p>\n <ts-pagination total=\"100\" page-size=\"10\" current-page=\"5\"></ts-pagination>\n </div>\n <div>\n <p style=\"margin: 0 0 8px; font-family: sans-serif; font-size: 14px; color: #666;\">Last page (next disabled)</p>\n <ts-pagination total=\"100\" page-size=\"10\" current-page=\"10\"></ts-pagination>\n </div>\n </div>\n`;\n\nexport const Composition = (): string => `\n <div style=\"max-width: 600px; font-family: sans-serif;\">\n <div style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;\">\n <span style=\"font-size: 14px; color: #666;\">Showing 41-50 of 237 results</span>\n </div>\n <ts-pagination total=\"237\" page-size=\"10\" current-page=\"5\" sibling-count=\"2\"></ts-pagination>\n </div>\n`;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/components/popover/popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Event, State, h, Host, Element, Watch, Method } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\nimport { generateId } from '../../utils/aria';\n\ntype TsPopoverPlacement = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n\n/**\n * @slot trigger - The element that triggers the popover.\n * @slot - Default slot for popover content.\n *\n * @part base - The popover container.\n * @part arrow - The popover arrow.\n * @part trigger - The trigger wrapper.\n */\n@Component({\n tag: 'ts-popover',\n styleUrl: 'popover.css',\n shadow: true,\n})\nexport class TsPopover {\n @Element() hostEl!: HTMLElement;\n\n private popoverId = generateId('ts-popover');\n private outsideClickHandler?: (event: MouseEvent) => void;\n private escapeHandler?: (event: KeyboardEvent) => void;\n\n /** Whether the popover is currently visible. */\n @Prop({ reflect: true, mutable: true }) open = false;\n\n /** Placement of the popover relative to the trigger. */\n @Prop({ reflect: true }) placement: TsPopoverPlacement = 'bottom';\n\n /** How the popover is triggered. */\n @Prop() trigger: 'click' | 'hover' | 'manual' = 'click';\n\n /** Whether the popover closes on outside click or Escape. */\n @Prop() dismissible = true;\n\n /** Emitted when the popover opens. */\n @Event({ eventName: 'tsOpen' }) tsOpen!: EventEmitter<void>;\n\n /** Emitted when the popover closes. */\n @Event({ eventName: 'tsClose' }) tsClose!: EventEmitter<void>;\n\n @State() isVisible = false;\n\n @Watch('open')\n handleOpenChange(newValue: boolean): void {\n this.isVisible = newValue;\n if (newValue) {\n this.tsOpen.emit();\n this.addGlobalListeners();\n } else {\n this.tsClose.emit();\n this.removeGlobalListeners();\n }\n }\n\n connectedCallback(): void {\n if (this.open) {\n this.isVisible = true;\n this.addGlobalListeners();\n }\n }\n\n disconnectedCallback(): void {\n this.removeGlobalListeners();\n }\n\n /** Programmatically show the popover. */\n @Method()\n async show(): Promise<void> {\n this.open = true;\n }\n\n /** Programmatically hide the popover. */\n @Method()\n async hide(): Promise<void> {\n this.open = false;\n }\n\n private addGlobalListeners(): void {\n if (this.dismissible) {\n this.outsideClickHandler = (event: MouseEvent) => {\n const path = event.composedPath();\n if (!path.includes(this.hostEl)) {\n this.open = false;\n }\n };\n this.escapeHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.open = false;\n }\n };\n // Use setTimeout to avoid capturing the click that opened the popover\n setTimeout(() => {\n document.addEventListener('click', this.outsideClickHandler!);\n document.addEventListener('keydown', this.escapeHandler!);\n }, 0);\n }\n }\n\n private removeGlobalListeners(): void {\n if (this.outsideClickHandler) {\n document.removeEventListener('click', this.outsideClickHandler);\n this.outsideClickHandler = undefined;\n }\n if (this.escapeHandler) {\n document.removeEventListener('keydown', this.escapeHandler);\n this.escapeHandler = undefined;\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 (this.trigger === 'click' && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n this.open = !this.open;\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-popover': true,\n 'ts-popover--open': this.isVisible,\n [`ts-popover--${this.placement}`]: true,\n }}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <span\n class=\"popover__trigger\"\n part=\"trigger\"\n aria-expanded={this.isVisible ? 'true' : 'false'}\n aria-controls={this.popoverId}\n onClick={this.handleTriggerClick}\n onKeyDown={this.handleTriggerKeydown}\n >\n <slot name=\"trigger\" />\n </span>\n\n <div\n class={{\n 'popover__panel': true,\n [`popover__panel--${this.placement}`]: true,\n 'popover__panel--visible': this.isVisible,\n }}\n part=\"base\"\n id={this.popoverId}\n role=\"dialog\"\n aria-hidden={!this.isVisible ? 'true' : undefined}\n >\n <div class=\"popover__arrow\" part=\"arrow\" />\n <div class=\"popover__content\">\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}