@mcp-b/web-components 0.2.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 (366) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -0
  3. package/dist/accordion-B1Q3kuP_.d.ts +373 -0
  4. package/dist/accordion-item-DvPfhpm8.js +307 -0
  5. package/dist/accordion-item-bPRIahNn.d.ts +63 -0
  6. package/dist/accordion-zDr-Br4V.js +483 -0
  7. package/dist/action-bar-CYsjmhwP.d.ts +29 -0
  8. package/dist/action-bar-CjN_UcnP.js +56 -0
  9. package/dist/alert-dialog-4CnO3Nb5.d.ts +60 -0
  10. package/dist/alert-dialog-D25Oi_TS.js +126 -0
  11. package/dist/avatar-Bje_KpZo.d.ts +141 -0
  12. package/dist/avatar-CRP0kW3x.js +224 -0
  13. package/dist/badge-Ct95U4UO.js +301 -0
  14. package/dist/badge-D1DNQrWn.d.ts +106 -0
  15. package/dist/breadcrumb-BxZ-nQE5.d.ts +365 -0
  16. package/dist/breadcrumb-item-BC454oQe.d.ts +59 -0
  17. package/dist/breadcrumb-item-P5pdq_gE.js +151 -0
  18. package/dist/breadcrumb-uURhiqWJ.js +384 -0
  19. package/dist/button-5k_aL_gD.js +802 -0
  20. package/dist/button-BQofnUt4.d.ts +354 -0
  21. package/dist/button-group-BydvJTQy.js +197 -0
  22. package/dist/button-group-COodHeuB.d.ts +155 -0
  23. package/dist/callout-B8zTf8Go.js +188 -0
  24. package/dist/callout-DFwPao36.d.ts +103 -0
  25. package/dist/card-BYDzdMAU.d.ts +177 -0
  26. package/dist/card-DIg1-X2G.js +332 -0
  27. package/dist/carousel-Bktu7wrD.js +843 -0
  28. package/dist/carousel-DQITCtEY.d.ts +423 -0
  29. package/dist/carousel-item-B5-X31Ha.js +79 -0
  30. package/dist/carousel-item-BB3jL2tk.d.ts +34 -0
  31. package/dist/cdn/loader.js +530 -0
  32. package/dist/checkbox-D6r7PVPj.js +641 -0
  33. package/dist/checkbox-DoFcDEKB.d.ts +354 -0
  34. package/dist/checkbox-group-CLvNAO_F.js +201 -0
  35. package/dist/checkbox-group-Cnh8rAn4.d.ts +152 -0
  36. package/dist/color-input-Bky89xg_.d.ts +470 -0
  37. package/dist/color-input-DPIxi9wR.js +894 -0
  38. package/dist/color-picker-adwOmtRl.js +1240 -0
  39. package/dist/color-picker-wQw8bPsq.d.ts +360 -0
  40. package/dist/combobox-B6al50UG.js +1693 -0
  41. package/dist/combobox-item-D2H1CMxC.d.ts +714 -0
  42. package/dist/combobox-item-yM6tDrGG.js +225 -0
  43. package/dist/comparison-B1-nMwmp.d.ts +134 -0
  44. package/dist/comparison-CyqKrCN-.js +435 -0
  45. package/dist/components/accordion/accordion.d.ts +2 -0
  46. package/dist/components/accordion/accordion.js +2 -0
  47. package/dist/components/accordion-item/accordion-item.d.ts +2 -0
  48. package/dist/components/accordion-item/accordion-item.js +2 -0
  49. package/dist/components/action-bar/action-bar.d.ts +2 -0
  50. package/dist/components/action-bar/action-bar.js +2 -0
  51. package/dist/components/alert-dialog/alert-dialog.d.ts +2 -0
  52. package/dist/components/alert-dialog/alert-dialog.js +2 -0
  53. package/dist/components/avatar/avatar.d.ts +2 -0
  54. package/dist/components/avatar/avatar.js +2 -0
  55. package/dist/components/badge/badge.d.ts +2 -0
  56. package/dist/components/badge/badge.js +2 -0
  57. package/dist/components/breadcrumb/breadcrumb.d.ts +2 -0
  58. package/dist/components/breadcrumb/breadcrumb.js +2 -0
  59. package/dist/components/breadcrumb-item/breadcrumb-item.d.ts +2 -0
  60. package/dist/components/breadcrumb-item/breadcrumb-item.js +2 -0
  61. package/dist/components/button/button.d.ts +2 -0
  62. package/dist/components/button/button.js +2 -0
  63. package/dist/components/button-group/button-group.d.ts +2 -0
  64. package/dist/components/button-group/button-group.js +2 -0
  65. package/dist/components/callout/callout.d.ts +2 -0
  66. package/dist/components/callout/callout.js +2 -0
  67. package/dist/components/card/card.d.ts +2 -0
  68. package/dist/components/card/card.js +2 -0
  69. package/dist/components/carousel/carousel.d.ts +2 -0
  70. package/dist/components/carousel/carousel.js +2 -0
  71. package/dist/components/carousel-item/carousel-item.d.ts +2 -0
  72. package/dist/components/carousel-item/carousel-item.js +2 -0
  73. package/dist/components/checkbox/checkbox.d.ts +2 -0
  74. package/dist/components/checkbox/checkbox.js +2 -0
  75. package/dist/components/checkbox-group/checkbox-group.d.ts +2 -0
  76. package/dist/components/checkbox-group/checkbox-group.js +2 -0
  77. package/dist/components/color-input/color-input.d.ts +2 -0
  78. package/dist/components/color-input/color-input.js +2 -0
  79. package/dist/components/color-picker/color-picker.d.ts +2 -0
  80. package/dist/components/color-picker/color-picker.js +2 -0
  81. package/dist/components/combobox/combobox.d.ts +2 -0
  82. package/dist/components/combobox/combobox.js +2 -0
  83. package/dist/components/combobox-item/combobox-item.d.ts +2 -0
  84. package/dist/components/combobox-item/combobox-item.js +2 -0
  85. package/dist/components/comparison/comparison.d.ts +2 -0
  86. package/dist/components/comparison/comparison.js +2 -0
  87. package/dist/components/copy/copy.d.ts +2 -0
  88. package/dist/components/copy/copy.js +291 -0
  89. package/dist/components/data-table/data-table.d.ts +2 -0
  90. package/dist/components/data-table/data-table.js +2 -0
  91. package/dist/components/date/date.d.ts +2 -0
  92. package/dist/components/date/date.js +2 -0
  93. package/dist/components/dialog/dialog.d.ts +2 -0
  94. package/dist/components/dialog/dialog.js +2 -0
  95. package/dist/components/divider/divider.d.ts +2 -0
  96. package/dist/components/divider/divider.js +2 -0
  97. package/dist/components/dropdown/dropdown.d.ts +2 -0
  98. package/dist/components/dropdown/dropdown.js +2 -0
  99. package/dist/components/dropdown-item/dropdown-item.d.ts +2 -0
  100. package/dist/components/dropdown-item/dropdown-item.js +2 -0
  101. package/dist/components/empty-result/empty-result.d.ts +2 -0
  102. package/dist/components/empty-result/empty-result.js +2 -0
  103. package/dist/components/empty-state/empty-state.d.ts +2 -0
  104. package/dist/components/empty-state/empty-state.js +2 -0
  105. package/dist/components/expander/expander.d.ts +2 -0
  106. package/dist/components/expander/expander.js +2 -0
  107. package/dist/components/field/field.d.ts +2 -0
  108. package/dist/components/field/field.js +2 -0
  109. package/dist/components/file-input/file-input.d.ts +2 -0
  110. package/dist/components/file-input/file-input.js +2 -0
  111. package/dist/components/filter-bar/filter-bar.d.ts +2 -0
  112. package/dist/components/filter-bar/filter-bar.js +2 -0
  113. package/dist/components/form-section/form-section.d.ts +2 -0
  114. package/dist/components/form-section/form-section.js +2 -0
  115. package/dist/components/icon/icon.d.ts +2 -0
  116. package/dist/components/icon/icon.js +2 -0
  117. package/dist/components/include/include.d.ts +2 -0
  118. package/dist/components/include/include.js +2 -0
  119. package/dist/components/index.d.ts +85 -0
  120. package/dist/components/index.js +86 -0
  121. package/dist/components/infinite-scroller/infinite-scroller.d.ts +2 -0
  122. package/dist/components/infinite-scroller/infinite-scroller.js +2 -0
  123. package/dist/components/intersection-observer/intersection-observer.d.ts +2 -0
  124. package/dist/components/intersection-observer/intersection-observer.js +2 -0
  125. package/dist/components/listbox/listbox.d.ts +2 -0
  126. package/dist/components/listbox/listbox.js +2 -0
  127. package/dist/components/listbox-item/listbox-item.d.ts +2 -0
  128. package/dist/components/listbox-item/listbox-item.js +2 -0
  129. package/dist/components/lorem-ipsum/lorem-ipsum.d.ts +2 -0
  130. package/dist/components/lorem-ipsum/lorem-ipsum.js +2 -0
  131. package/dist/components/meter/meter.d.ts +2 -0
  132. package/dist/components/meter/meter.js +2 -0
  133. package/dist/components/metric/metric.d.ts +2 -0
  134. package/dist/components/metric/metric.js +2 -0
  135. package/dist/components/metric-grid/metric-grid.d.ts +2 -0
  136. package/dist/components/metric-grid/metric-grid.js +2 -0
  137. package/dist/components/mutation-observer/mutation-observer.d.ts +2 -0
  138. package/dist/components/mutation-observer/mutation-observer.js +2 -0
  139. package/dist/components/navicon/navicon.d.ts +2 -0
  140. package/dist/components/navicon/navicon.js +2 -0
  141. package/dist/components/number/number.d.ts +2 -0
  142. package/dist/components/number/number.js +2 -0
  143. package/dist/components/number-field/number-field.d.ts +2 -0
  144. package/dist/components/number-field/number-field.js +2 -0
  145. package/dist/components/pagination/pagination.d.ts +2 -0
  146. package/dist/components/pagination/pagination.js +2 -0
  147. package/dist/components/popover/popover.d.ts +2 -0
  148. package/dist/components/popover/popover.js +2 -0
  149. package/dist/components/preview-card/preview-card.d.ts +2 -0
  150. package/dist/components/preview-card/preview-card.js +2 -0
  151. package/dist/components/progress/progress.d.ts +2 -0
  152. package/dist/components/progress/progress.js +2 -0
  153. package/dist/components/radio/radio.d.ts +2 -0
  154. package/dist/components/radio/radio.js +2 -0
  155. package/dist/components/radio-item/radio-item.d.ts +2 -0
  156. package/dist/components/radio-item/radio-item.js +2 -0
  157. package/dist/components/random-content/random-content.d.ts +2 -0
  158. package/dist/components/random-content/random-content.js +2 -0
  159. package/dist/components/rating/rating.d.ts +2 -0
  160. package/dist/components/rating/rating.js +2 -0
  161. package/dist/components/resize-observer/resize-observer.d.ts +2 -0
  162. package/dist/components/resize-observer/resize-observer.js +2 -0
  163. package/dist/components/scroll-area/scroll-area.d.ts +2 -0
  164. package/dist/components/scroll-area/scroll-area.js +2 -0
  165. package/dist/components/scroller/scroller.d.ts +2 -0
  166. package/dist/components/scroller/scroller.js +2 -0
  167. package/dist/components/search-list/search-list.d.ts +2 -0
  168. package/dist/components/search-list/search-list.js +2 -0
  169. package/dist/components/select/select.d.ts +2 -0
  170. package/dist/components/select/select.js +2 -0
  171. package/dist/components/selection-summary/selection-summary.d.ts +2 -0
  172. package/dist/components/selection-summary/selection-summary.js +2 -0
  173. package/dist/components/share/share.d.ts +2 -0
  174. package/dist/components/share/share.js +2 -0
  175. package/dist/components/slide-activator/slide-activator.d.ts +2 -0
  176. package/dist/components/slide-activator/slide-activator.js +2 -0
  177. package/dist/components/slider/slider.d.ts +2 -0
  178. package/dist/components/slider/slider.js +2 -0
  179. package/dist/components/sparkline/sparkline.d.ts +2 -0
  180. package/dist/components/sparkline/sparkline.js +2 -0
  181. package/dist/components/spinner/spinner.d.ts +2 -0
  182. package/dist/components/spinner/spinner.js +2 -0
  183. package/dist/components/splitter/splitter.d.ts +2 -0
  184. package/dist/components/splitter/splitter.js +2 -0
  185. package/dist/components/switch/switch.d.ts +2 -0
  186. package/dist/components/switch/switch.js +2 -0
  187. package/dist/components/tab/tab.d.ts +2 -0
  188. package/dist/components/tab/tab.js +2 -0
  189. package/dist/components/tab-list/tab-list.d.ts +2 -0
  190. package/dist/components/tab-list/tab-list.js +2 -0
  191. package/dist/components/tab-panel/tab-panel.d.ts +2 -0
  192. package/dist/components/tab-panel/tab-panel.js +2 -0
  193. package/dist/components/text-area/text-area.d.ts +2 -0
  194. package/dist/components/text-area/text-area.js +2 -0
  195. package/dist/components/text-field/text-field.d.ts +2 -0
  196. package/dist/components/text-field/text-field.js +2 -0
  197. package/dist/components/text-mask/text-mask.d.ts +2 -0
  198. package/dist/components/text-mask/text-mask.js +2 -0
  199. package/dist/components/timed-content/timed-content.d.ts +2 -0
  200. package/dist/components/timed-content/timed-content.js +2 -0
  201. package/dist/components/toast/toast.d.ts +2 -0
  202. package/dist/components/toast/toast.js +2 -0
  203. package/dist/components/toast-item/toast-item.d.ts +2 -0
  204. package/dist/components/toast-item/toast-item.js +2 -0
  205. package/dist/components/toggle-icon/toggle-icon.d.ts +2 -0
  206. package/dist/components/toggle-icon/toggle-icon.js +2 -0
  207. package/dist/components/toggle-tag/toggle-tag.d.ts +2 -0
  208. package/dist/components/toggle-tag/toggle-tag.js +2 -0
  209. package/dist/components/toolbar/toolbar.d.ts +2 -0
  210. package/dist/components/toolbar/toolbar.js +2 -0
  211. package/dist/components/tooltip/tooltip.d.ts +2 -0
  212. package/dist/components/tooltip/tooltip.js +2 -0
  213. package/dist/components/transition-group/transition-group.d.ts +2 -0
  214. package/dist/components/transition-group/transition-group.js +2 -0
  215. package/dist/components/zoomable-frame/zoomable-frame.d.ts +2 -0
  216. package/dist/components/zoomable-frame/zoomable-frame.js +2 -0
  217. package/dist/copy-CvC9vaGw.d.ts +206 -0
  218. package/dist/copy.styles-DWGvGNTP.js +100 -0
  219. package/dist/data-table-CITa8DSn.js +247 -0
  220. package/dist/data-table-DL5RhE0d.d.ts +89 -0
  221. package/dist/date-CJPmOdi9.js +146 -0
  222. package/dist/date-DtaTBM71.d.ts +142 -0
  223. package/dist/decorate-DcF3lt7P.js +9 -0
  224. package/dist/dialog-Cx46HMaZ.js +983 -0
  225. package/dist/dialog-N-v0woIy.d.ts +414 -0
  226. package/dist/divider-9vNsfHW8.js +169 -0
  227. package/dist/divider-DWuAxcXv.d.ts +79 -0
  228. package/dist/docs/custom-elements.json +29301 -0
  229. package/dist/dropdown-BXSKpVX9.js +1123 -0
  230. package/dist/dropdown-Bo00Vlr5.d.ts +537 -0
  231. package/dist/dropdown-item-_lIs-Tfd.d.ts +111 -0
  232. package/dist/dropdown-item-i77cRuN6.js +504 -0
  233. package/dist/empty-result-B2ln1yFL.js +65 -0
  234. package/dist/empty-result-B54x_Ab2.d.ts +31 -0
  235. package/dist/empty-state-BLWjtKUo.js +186 -0
  236. package/dist/empty-state-SGKjpwp3.d.ts +117 -0
  237. package/dist/expander-BUev0BmM.d.ts +174 -0
  238. package/dist/expander-Bwvxj6Oa.js +342 -0
  239. package/dist/field-BEyS909F.js +163 -0
  240. package/dist/field-ITx0jVw-.d.ts +69 -0
  241. package/dist/file-input-BEumLJjg.js +841 -0
  242. package/dist/file-input-D2D6YC0B.d.ts +378 -0
  243. package/dist/filter-bar-Bj2QzEn9.d.ts +35 -0
  244. package/dist/filter-bar-Dcs67aXo.js +66 -0
  245. package/dist/form-section-BchPetkj.js +83 -0
  246. package/dist/form-section-xFBTBULQ.d.ts +34 -0
  247. package/dist/icon-BPVkNsY4.js +165 -0
  248. package/dist/icon-Ci9CPZJV.d.ts +72 -0
  249. package/dist/icon-library-D_if7p2h.d.ts +2 -0
  250. package/dist/include-CQHVVtNs.d.ts +103 -0
  251. package/dist/include-qNUh_6kT.js +155 -0
  252. package/dist/index.d.ts +89 -0
  253. package/dist/index.js +92 -0
  254. package/dist/infinite-scroller-BmmtnWNt.js +285 -0
  255. package/dist/infinite-scroller-CuUEAlB9.d.ts +174 -0
  256. package/dist/intersection-observer-B6TciOAQ.js +503 -0
  257. package/dist/intersection-observer-B7nmP7Zz.d.ts +418 -0
  258. package/dist/listbox-C3XXRWGX.js +1257 -0
  259. package/dist/listbox-DD4ujIJe.d.ts +682 -0
  260. package/dist/listbox-item-CwD9s3VY.js +135 -0
  261. package/dist/listbox-item-DQEJWp4Z.d.ts +53 -0
  262. package/dist/localize-322EtXNX.d.ts +66 -0
  263. package/dist/lorem-ipsum-B2x3V-v8.js +198 -0
  264. package/dist/lorem-ipsum-CR82CSuJ.d.ts +130 -0
  265. package/dist/meter-BC7uaJWf.d.ts +73 -0
  266. package/dist/meter-BIDyjwFp.js +155 -0
  267. package/dist/metric-CjlLq_VA.d.ts +36 -0
  268. package/dist/metric-DbuOcDp_.js +86 -0
  269. package/dist/metric-grid-C2Pb0Zl3.js +37 -0
  270. package/dist/metric-grid-C5Xbb1_0.d.ts +27 -0
  271. package/dist/mutation-observer-BmrZ-GER.d.ts +326 -0
  272. package/dist/mutation-observer-DS8EBuOp.js +388 -0
  273. package/dist/navicon-Dic5Qjzb.d.ts +159 -0
  274. package/dist/navicon-_yMHY27-.js +486 -0
  275. package/dist/number-BNtNXNF3.js +162 -0
  276. package/dist/number-BwbnErlB.d.ts +143 -0
  277. package/dist/number-field-BQHB7UYo.js +726 -0
  278. package/dist/number-field-odk4lKXM.d.ts +422 -0
  279. package/dist/pagination-6z2qcf3U.d.ts +322 -0
  280. package/dist/pagination-DuKPuzdb.js +679 -0
  281. package/dist/popover-D0sxTU6o.d.ts +259 -0
  282. package/dist/popover-DJBrJ0za.js +556 -0
  283. package/dist/preview-card-C7H1FPfd.js +287 -0
  284. package/dist/preview-card-DitOCZTD.d.ts +86 -0
  285. package/dist/progress-Db0_axHQ.d.ts +181 -0
  286. package/dist/progress-DzVk260j.js +494 -0
  287. package/dist/radio-BtDG9xJM.js +658 -0
  288. package/dist/radio-CieMa4zU.d.ts +460 -0
  289. package/dist/radio-item-DIrUStAX.js +264 -0
  290. package/dist/radio-item-Xq2U3cMu.d.ts +69 -0
  291. package/dist/random-content-BhSeJFKz.d.ts +380 -0
  292. package/dist/random-content-BwiirXdG.js +450 -0
  293. package/dist/rating-4xNsWumY.d.ts +369 -0
  294. package/dist/rating-C1BcJDIO.js +722 -0
  295. package/dist/resize-observer-BseSbVWP.d.ts +187 -0
  296. package/dist/resize-observer-DcrLhddo.js +236 -0
  297. package/dist/scroll-area-COc1857S.js +127 -0
  298. package/dist/scroll-area-CVYDf5qY.d.ts +61 -0
  299. package/dist/scroller-LYgBVyfY.js +590 -0
  300. package/dist/scroller-bB2rGs7b.d.ts +374 -0
  301. package/dist/search-list-Clmrg8EV.js +884 -0
  302. package/dist/search-list-n0GYO7rh.d.ts +777 -0
  303. package/dist/select-CkZK2jJn.d.ts +506 -0
  304. package/dist/select-DLIaRnA4.js +690 -0
  305. package/dist/selection-summary-BVnNJ8Lw.js +48 -0
  306. package/dist/selection-summary-DmFkGyZI.d.ts +34 -0
  307. package/dist/share-DPlqP2dc.d.ts +162 -0
  308. package/dist/share-bsgXZCl7.js +250 -0
  309. package/dist/sigvelo.d.ts +5 -0
  310. package/dist/sigvelo.js +5 -0
  311. package/dist/sigvelo.loader.d.ts +3 -0
  312. package/dist/sigvelo.loader.js +102 -0
  313. package/dist/slide-activator-D7bBz69E.d.ts +429 -0
  314. package/dist/slide-activator-DlxQt9R9.js +798 -0
  315. package/dist/slider-B0FVsV1o.d.ts +921 -0
  316. package/dist/slider-B90Il7x3.js +1744 -0
  317. package/dist/sparkline-CcpTaJ_Z.js +358 -0
  318. package/dist/sparkline-DlCIt81-.d.ts +235 -0
  319. package/dist/spinner-C04Dmc0H.js +188 -0
  320. package/dist/spinner-CZ19x_dC.d.ts +99 -0
  321. package/dist/splitter-DBDJAzsp.d.ts +325 -0
  322. package/dist/splitter-MnD4In9H.js +638 -0
  323. package/dist/switch-CPaEKbog.js +581 -0
  324. package/dist/switch-Cief9M59.d.ts +248 -0
  325. package/dist/tab-BcqYGsuW.d.ts +44 -0
  326. package/dist/tab-C-FtuNmh.js +102 -0
  327. package/dist/tab-list-B_Ye_Oj9.js +691 -0
  328. package/dist/tab-list-DDvS8qHr.d.ts +450 -0
  329. package/dist/tab-panel-BaBl6eep.js +60 -0
  330. package/dist/tab-panel-BzSJlSfd.d.ts +38 -0
  331. package/dist/text-area-B_mjCE9W.d.ts +327 -0
  332. package/dist/text-area-Czixaz-_.js +556 -0
  333. package/dist/text-field-BClWMp6q.d.ts +424 -0
  334. package/dist/text-field-inpJfp0A.js +687 -0
  335. package/dist/text-mask-CNKVKSFp.d.ts +336 -0
  336. package/dist/text-mask-DDEurj90.js +370 -0
  337. package/dist/themes/sigvelo.css +10 -0
  338. package/dist/themes/utilities.css +9 -0
  339. package/dist/timed-content-D2mGFamc.d.ts +181 -0
  340. package/dist/timed-content-pvEP4l5V.js +226 -0
  341. package/dist/toast-BnZaIg6Z.js +636 -0
  342. package/dist/toast-cEBVK9NQ.d.ts +487 -0
  343. package/dist/toast-item-BPpJT6vD.d.ts +159 -0
  344. package/dist/toast-item-IS8IFUEg.js +372 -0
  345. package/dist/toggle-icon-4oLDeEt4.js +752 -0
  346. package/dist/toggle-icon-DlwMMWZL.d.ts +359 -0
  347. package/dist/toggle-tag-1sfTFJtg.js +434 -0
  348. package/dist/toggle-tag-IVvMGT4R.d.ts +245 -0
  349. package/dist/toolbar-CABq0ZL1.d.ts +122 -0
  350. package/dist/toolbar-CEZ0-F-X.js +196 -0
  351. package/dist/tooltip-DbyoPFNe.js +521 -0
  352. package/dist/tooltip-ahFthek8.d.ts +192 -0
  353. package/dist/transition-group-3hnAnwSd.js +801 -0
  354. package/dist/transition-group-DD_CjSNC.d.ts +608 -0
  355. package/dist/translations/en.d.ts +6 -0
  356. package/dist/translations/en.js +75 -0
  357. package/dist/translations/es.d.ts +6 -0
  358. package/dist/translations/es.js +75 -0
  359. package/dist/types/custom-element-jsx.d.ts +13723 -0
  360. package/dist/utilities/icon-library.d.ts +3 -0
  361. package/dist/utilities/icon-library.js +93 -0
  362. package/dist/utilities/localize.d.ts +2 -0
  363. package/dist/utilities/localize.js +6 -0
  364. package/dist/zoomable-frame-Cldvj5sE.js +398 -0
  365. package/dist/zoomable-frame-r6S6587z.d.ts +162 -0
  366. package/package.json +83 -0
@@ -0,0 +1,691 @@
1
+ import { Localize } from "./utilities/localize.js";
2
+ import { t as __decorate } from "./decorate-DcF3lt7P.js";
3
+ import "./scroller-LYgBVyfY.js";
4
+ import "./tab-C-FtuNmh.js";
5
+ import "./tab-panel-BaBl6eep.js";
6
+ import { css, html } from "lit";
7
+ import { property, query } from "lit/decorators.js";
8
+ import hostStyles from "@mcp-b/wc-support/styles/host.styles";
9
+ import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
10
+ import { createId } from "@mcp-b/wc-support/utilities/math";
11
+ import { SigveloTabHiddenEvent, SigveloTabShownEvent } from "@mcp-b/wc-support/events/tabs";
12
+ //#region src/components/tab-list/tab-list.styles.ts
13
+ var tab_list_styles_default = css`
14
+ :host {
15
+ display: flex;
16
+ }
17
+
18
+ #tabs::part(content) {
19
+ display: flex;
20
+ position: relative;
21
+ }
22
+
23
+ /* Top placement */
24
+ :host([placement="top"]) {
25
+ flex-direction: column;
26
+ }
27
+
28
+ :host([placement="top"]) #tabs::part(content) {
29
+ align-items: center;
30
+ }
31
+
32
+ :host([placement="top"]) #panels {
33
+ margin-top: calc(var(--sigvelo-border-width) * -2);
34
+ padding-top: 2rem;
35
+ border-top: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2)
36
+ var(--sigvelo-color-neutral-border-subtle);
37
+ }
38
+
39
+ :host([placement="top"]) ::slotted(sigvelo-tab) {
40
+ border-bottom: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2) transparent;
41
+ }
42
+
43
+ :host([placement="top"]) ::slotted(sigvelo-tab[aria-selected="true"]) {
44
+ border-bottom-color: var(--sigvelo-color-primary-bg);
45
+ }
46
+
47
+ /* Bottom placement */
48
+ :host([placement="bottom"]) {
49
+ flex-direction: column;
50
+ }
51
+
52
+ :host([placement="bottom"]) #tabs {
53
+ order: 2;
54
+ }
55
+
56
+ :host([placement="bottom"]) #tabs::part(content) {
57
+ align-items: center;
58
+ overflow-x: auto;
59
+ scrollbar-width: thin;
60
+ }
61
+
62
+ :host([placement="bottom"]) #panels {
63
+ order: 1;
64
+ margin-bottom: calc(var(--sigvelo-border-width) * -2);
65
+ padding-bottom: 2rem;
66
+ border-bottom: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2)
67
+ var(--sigvelo-color-neutral-border-subtle);
68
+ }
69
+
70
+ :host([placement="bottom"]) ::slotted(sigvelo-tab) {
71
+ border-top: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2) transparent;
72
+ }
73
+
74
+ :host([placement="bottom"]) ::slotted(sigvelo-tab[aria-selected="true"]) {
75
+ border-top-color: var(--sigvelo-color-primary-bg);
76
+ }
77
+
78
+ /* Start placement */
79
+ :host([placement="start"]) {
80
+ flex-direction: row;
81
+ }
82
+
83
+ :host([placement="start"]) #tabs::part(content) {
84
+ flex: 0 0 auto;
85
+ flex-direction: column;
86
+ }
87
+
88
+ :host([placement="start"]) #panels {
89
+ flex: 1 1 auto;
90
+ margin-inline-start: calc(var(--sigvelo-border-width) * -2);
91
+ padding-inline-start: 2rem;
92
+ border-left: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2)
93
+ var(--sigvelo-color-neutral-bg-muted);
94
+ }
95
+
96
+ :host([placement="start"]) #panels:dir(rtl) {
97
+ border-right: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2)
98
+ var(--sigvelo-color-neutral-bg-muted);
99
+ border-left: none;
100
+ }
101
+
102
+ :host([placement="start"]) ::slotted(sigvelo-tab) {
103
+ border-right: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2) transparent;
104
+ }
105
+
106
+ :host([placement="start"]) ::slotted(sigvelo-tab:dir(rtl)) {
107
+ border-right: none;
108
+ border-left: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2) transparent;
109
+ }
110
+
111
+ :host([placement="start"]) ::slotted(sigvelo-tab[aria-selected="true"]) {
112
+ border-color: var(--sigvelo-color-primary-bg);
113
+ }
114
+
115
+ /* End placement */
116
+ :host([placement="end"]) {
117
+ flex-direction: row;
118
+ }
119
+
120
+ :host([placement="end"]) #tabs {
121
+ order: 2;
122
+ }
123
+
124
+ :host([placement="end"]) #tabs::part(content) {
125
+ flex: 0 0 auto;
126
+ flex-direction: column;
127
+ }
128
+
129
+ :host([placement="end"]) #panels {
130
+ flex: 1 1 auto;
131
+ order: 1;
132
+ margin-inline-end: calc(var(--sigvelo-border-width) * -2);
133
+ padding-inline-end: 2rem;
134
+ border-right: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2)
135
+ var(--sigvelo-color-neutral-bg-muted);
136
+ }
137
+
138
+ :host([placement="end"]) #panels:dir(rtl) {
139
+ border-right: none;
140
+ border-left: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2)
141
+ var(--sigvelo-color-neutral-bg-muted);
142
+ }
143
+
144
+ :host([placement="end"]) ::slotted(sigvelo-tab) {
145
+ border-left: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2) transparent;
146
+ }
147
+
148
+ :host([placement="end"]) ::slotted(sigvelo-tab:dir(rtl)) {
149
+ border-right: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2) transparent;
150
+ border-left: none;
151
+ }
152
+
153
+ :host([placement="end"]) ::slotted(sigvelo-tab[aria-selected="true"]) {
154
+ border-color: var(--sigvelo-color-primary-bg);
155
+ }
156
+ `;
157
+ //#endregion
158
+ //#region src/components/tab-list/tab-list.ts
159
+ /**
160
+ * <sigvelo-tab-list>
161
+ *
162
+ * @summary Allows users to switch between different sections of content without leaving the page, providing a clean and
163
+ * @tag sigvelo-tab-list
164
+ * organized interface.
165
+ * @documentation https://design-system.sigvelo.com/docs/components/tab-list
166
+ * @status stable
167
+ * @since 1.0
168
+ *
169
+ * @dependency sigvelo-scroller
170
+ * @dependency sigvelo-tab
171
+ * @dependency sigvelo-tab-panel
172
+ *
173
+ * @slot - One or more `<sigvelo-tab-panel>` elements, each with a `name` attribute unique to the tab list.
174
+ * @slot tab - One or more `<sigvelo-tab>` elements, each with a `panel` attribute linked to the `name` of a tab panel.
175
+ * Note that tabs will automatically apply this slot to themselves, so you can safely omit `slot="tab"` in your markup.
176
+ * Also useful for adding close buttons to tabs.
177
+ *
178
+ * @event sigvelo-tab-shown - Emitted after a tab is shown. The event will include a `detail` object with `tab` and
179
+ * `panel`properties that reference the respective tab and panel elements.
180
+ * @event sigvelo-tab-hidden - Emitted after a tab is hidden. The event will include a `detail` object with `tab` and
181
+ * `panel` properties that reference the respective tab and panel elements.
182
+ *
183
+ * @csspart tabs - The container that holds all of the tabs, a `<sigvelo-scroller>` element.
184
+ * @csspart tabs-content - The scroller's `content` part.
185
+ * @csspart panels - The container that holds all of the tab panels.
186
+ *
187
+ * @example Default
188
+ * Tab lists follow the ARIA APG tooltip pattern for accessibility. They are comprised of three different components. A single tab list surrounds one or more tabs and their corresponding tab panels. Each panel must have a unique `name`, and each tab must have a `panel` attribute that maps to a panel.
189
+ *
190
+ * ```html
191
+ * <sigvelo-tab-list label="Select a tab">
192
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
193
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
194
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
195
+ *
196
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
197
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
198
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
199
+ * </sigvelo-tab-list>
200
+ * ```
201
+ *
202
+ * **Note:** In the same way that images require `alt` text, you should add a `label` to every tab list. The label won't be displayed, but it will be announced by assistive devices.
203
+ *
204
+ * @example Setting the active tab
205
+ * To make a specific tab show initially, or to programmatically activate a tab, set the `tab` attribute to the name of the desired panel.
206
+ *
207
+ * ```html
208
+ * <sigvelo-tab-list label="Select a tab" tab="second">
209
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
210
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
211
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
212
+ *
213
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
214
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
215
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
216
+ * </sigvelo-tab-list>
217
+ * ```
218
+ *
219
+ * @example Showing tabs at the bottom
220
+ * Set the `placement` attribute to `bottom` to show tabs at the bottom.
221
+ *
222
+ * ```html
223
+ * <sigvelo-tab-list label="Select a tab" placement="bottom">
224
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
225
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
226
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
227
+ *
228
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
229
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
230
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
231
+ * </sigvelo-tab-list>
232
+ * ```
233
+ *
234
+ * @example Showing tabs at the start
235
+ * Set the `placement` attribute to `start` to show tabs at the start. The tabs will automatically move to the opposite side in <abbr title="Right to left">RTL</abbr> languages.
236
+ *
237
+ * ```html
238
+ * <sigvelo-tab-list label="Select a tab" placement="start">
239
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
240
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
241
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
242
+ *
243
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
244
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
245
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
246
+ * </sigvelo-tab-list>
247
+ * ```
248
+ *
249
+ * @example Showing tabs at the end
250
+ * Set the `placement` attribute to `end` to show tabs at the end. The tabs will automatically move to the opposite side in <abbr title="Right to left">RTL</abbr> languages.
251
+ *
252
+ * ```html
253
+ * <sigvelo-tab-list label="Select a tab" placement="end">
254
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
255
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
256
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
257
+ *
258
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
259
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
260
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
261
+ * </sigvelo-tab-list>
262
+ * ```
263
+ *
264
+ * @example Scrolling tabs
265
+ * When the number of tabs exceeds the available space in a top or bottom placement, the tab container will scroll horizontally.
266
+ *
267
+ * ```html
268
+ * <sigvelo-tab-list label="Select a tab">
269
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
270
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
271
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
272
+ * <sigvelo-tab panel="fourth">Fourth</sigvelo-tab>
273
+ * <sigvelo-tab panel="fifth">Fifth</sigvelo-tab>
274
+ * <sigvelo-tab panel="sixth">Sixth</sigvelo-tab>
275
+ * <sigvelo-tab panel="seventh">Seventh</sigvelo-tab>
276
+ * <sigvelo-tab panel="eight">Eight</sigvelo-tab>
277
+ * <sigvelo-tab panel="ninth">Ninth</sigvelo-tab>
278
+ * <sigvelo-tab panel="tenth">Tenth</sigvelo-tab>
279
+ *
280
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
281
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
282
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
283
+ * <sigvelo-tab-panel name="fourth">Stealthy shadows in the moonlight, cats emerge for nocturnal adventures through gardens and alleyways. Their night vision reveals a secret world invisible to human eyes during daylight hours.</sigvelo-tab-panel>
284
+ * <sigvelo-tab-panel name="fifth">Cozy blanket burrows become the ultimate fortress for sleepy kitties seeking warmth. The rhythmic breathing of a napping cat creates the most soothing soundtrack for peaceful afternoons.</sigvelo-tab-panel>
285
+ * <sigvelo-tab-panel name="sixth">Laser pointer dots trigger ancient hunting instincts, sending cats into acrobatic displays of athleticism. Every red dot becomes the ultimate prey in this eternal game of chase and pounce.</sigvelo-tab-panel>
286
+ * <sigvelo-tab-panel name="seventh">Catnip-infused toys transform ordinary house cats into euphoric party animals rolling with unbridled joy. This magical herb unlocks a level of feline happiness that's absolutely contagious to witness.</sigvelo-tab-panel>
287
+ * <sigvelo-tab-panel name="eight">Scratching posts serve as both manicure stations and territorial markers for our feline friends. Each scratch communicates ownership while maintaining those razor-sharp claws in perfect hunting condition.</sigvelo-tab-panel>
288
+ * <sigvelo-tab-panel name="ninth">Cardboard boxes become luxury penthouses in the cat real estate market, regardless of size. Whether tiny or enormous, every box offers the perfect hideout for surveillance and surprise attacks.</sigvelo-tab-panel>
289
+ * <sigvelo-tab-panel name="tenth">Sunrise stretches and yoga poses demonstrate the incredible flexibility that makes cats natural contortionists. Their graceful movements inspire humans to embrace daily stretching routines for better health.</sigvelo-tab-panel>
290
+ * </sigvelo-tab-list>
291
+ * ```
292
+ *
293
+ * If you don't want the tabs to scroll, you can apply `flex-wrap: wrap` to the `tabs-content` part to allow them to wrap instead.
294
+ *
295
+ * ```html
296
+ * <sigvelo-tab-list label="Select a tab" id="tabs-list__no-scroll">
297
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
298
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
299
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
300
+ * <sigvelo-tab panel="fourth">Fourth</sigvelo-tab>
301
+ * <sigvelo-tab panel="fifth">Fifth</sigvelo-tab>
302
+ * <sigvelo-tab panel="sixth">Sixth</sigvelo-tab>
303
+ * <sigvelo-tab panel="seventh">Seventh</sigvelo-tab>
304
+ * <sigvelo-tab panel="eight">Eight</sigvelo-tab>
305
+ * <sigvelo-tab panel="ninth">Ninth</sigvelo-tab>
306
+ * <sigvelo-tab panel="tenth">Tenth</sigvelo-tab>
307
+ *
308
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
309
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
310
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
311
+ * <sigvelo-tab-panel name="fourth">Stealthy shadows in the moonlight, cats emerge for nocturnal adventures through gardens and alleyways. Their night vision reveals a secret world invisible to human eyes during daylight hours.</sigvelo-tab-panel>
312
+ * <sigvelo-tab-panel name="fifth">Cozy blanket burrows become the ultimate fortress for sleepy kitties seeking warmth. The rhythmic breathing of a napping cat creates the most soothing soundtrack for peaceful afternoons.</sigvelo-tab-panel>
313
+ * <sigvelo-tab-panel name="sixth">Laser pointer dots trigger ancient hunting instincts, sending cats into acrobatic displays of athleticism. Every red dot becomes the ultimate prey in this eternal game of chase and pounce.</sigvelo-tab-panel>
314
+ * <sigvelo-tab-panel name="seventh">Catnip-infused toys transform ordinary house cats into euphoric party animals rolling with unbridled joy. This magical herb unlocks a level of feline happiness that's absolutely contagious to witness.</sigvelo-tab-panel>
315
+ * <sigvelo-tab-panel name="eight">Scratching posts serve as both manicure stations and territorial markers for our feline friends. Each scratch communicates ownership while maintaining those razor-sharp claws in perfect hunting condition.</sigvelo-tab-panel>
316
+ * <sigvelo-tab-panel name="ninth">Cardboard boxes become luxury penthouses in the cat real estate market, regardless of size. Whether tiny or enormous, every box offers the perfect hideout for surveillance and surprise attacks.</sigvelo-tab-panel>
317
+ * <sigvelo-tab-panel name="tenth">Sunrise stretches and yoga poses demonstrate the incredible flexibility that makes cats natural contortionists. Their graceful movements inspire humans to embrace daily stretching routines for better health.</sigvelo-tab-panel>
318
+ * </sigvelo-tab-list>
319
+ *
320
+ * <style>
321
+ * sigvelo-tab-list#tabs-list__no-scroll::part(tabs-content) {
322
+ * flex-wrap: wrap;
323
+ * }
324
+ * </style>
325
+ * ```
326
+ *
327
+ * @example Disabling
328
+ * To disable a tab, add the `disabled` attribute to it. Since tabs use automatic activation, disabled tabs are not focusable but are still recognized by assistive devices as disabled tabs.
329
+ *
330
+ * ```html
331
+ * <sigvelo-tab-list label="Select a tab">
332
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
333
+ * <sigvelo-tab panel="second" disabled>Second (disabled)</sigvelo-tab>
334
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
335
+ *
336
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
337
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
338
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
339
+ * </sigvelo-tab-list>
340
+ * ```
341
+ *
342
+ * @example Lazy loading content
343
+ * Sigvelo considers lazy loading tab content to be an anti-pattern but, when necessary, you can use the `sigvelo-tab-shown` event to do it.
344
+ *
345
+ * ```html
346
+ * <sigvelo-tab-list label="Select a tab" id="tab-list__lazy">
347
+ * <sigvelo-tab panel="regular">Regular</sigvelo-tab>
348
+ * <sigvelo-tab panel="lazy">Lazy</sigvelo-tab>
349
+ *
350
+ * <sigvelo-tab-panel name="regular">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
351
+ * <sigvelo-tab-panel name="lazy">
352
+ * <sigvelo-spinner label="Loading" style="display: block; margin-inline: auto;"></sigvelo-spinner>
353
+ * </sigvelo-tab-panel>
354
+ * </sigvelo-tab-list>
355
+ *
356
+ * <script>
357
+ * const tabList = document.getElementById('tab-list__lazy');
358
+ * const lazyPanel = tabList.querySelector('sigvelo-tab-panel[name="lazy"]');
359
+ *
360
+ * tabList.addEventListener('sigvelo-tab-shown', event => {
361
+ * if (event.detail.tab.panel === 'lazy' && !lazyPanel.hasAttribute('data-loaded')) {
362
+ * lazyPanel.setAttribute('data-loaded', '');
363
+ *
364
+ * // Some async operation...
365
+ *
366
+ * setTimeout(() => {
367
+ * lazyPanel.innerHTML = 'Surprise! A sleepy kitten just finished loading and is now ready for belly rubs and treats.';
368
+ * }, 2000);
369
+ * }
370
+ * });
371
+ * <\/script>
372
+ * ```
373
+ *
374
+ * @example Making tabs closable
375
+ * Avoid nesting buttons and other interactive elements inside of a tab, as it will cause assistive devices to work incorrectly. Instead, you can add buttons adjacent to tabs using the `tab` slot as shown in this example. When tabs are removable, you should also listen for the [[Delete]] key.
376
+ *
377
+ * Note that we use `tabindex="-1"` on the close button to prevent it from interfering with normal tabbing. The button, however, is still accessible to virtual cursors.
378
+ *
379
+ * ```html
380
+ * <sigvelo-tab-list label="Select a tab" id="tab-list__closable">
381
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
382
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
383
+ * <sigvelo-button slot="tab" variant="ghost" size="xs" icon-label="Close second tab" tabindex="-1">
384
+ * <sigvelo-icon name="x"></sigvelo-icon>
385
+ * </sigvelo-button>
386
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
387
+ *
388
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
389
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
390
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
391
+ * </sigvelo-tab-list>
392
+ *
393
+ * <sigvelo-button disabled style="margin-block-start: 2rem;">Restore Tab</sigvelo-button>
394
+ *
395
+ * <script>
396
+ * const tabList = document.getElementById('tab-list__closable');
397
+ * const firstTab = tabList.querySelector('sigvelo-tab[panel="first"]');
398
+ * const secondTab = tabList.querySelector('sigvelo-tab[panel="second"]');
399
+ * const secondPanel = tabList.querySelector('sigvelo-tab-panel[name="second"]');
400
+ * const closeButton = tabList.querySelector('sigvelo-button');
401
+ * const restoreButton = tabList.nextElementSibling;
402
+ *
403
+ * function closeTab() {
404
+ * closeButton.remove();
405
+ * secondTab.remove();
406
+ * secondPanel.remove();
407
+ * restoreButton.disabled = false;
408
+ *
409
+ * if (tabList.active === 'second') {
410
+ * tabList.active = 'third';
411
+ * }
412
+ * }
413
+ *
414
+ * function restoreTab() {
415
+ * firstTab.insertAdjacentElement('afterend', closeButton);
416
+ * firstTab.insertAdjacentElement('afterend', secondTab);
417
+ * tabList.append(secondPanel);
418
+ * restoreButton.disabled = true;
419
+ * }
420
+ *
421
+ * // Remove the tab when the close button is clicked
422
+ * closeButton.addEventListener('click', closeTab);
423
+ *
424
+ * // Remove the tab when delete is pressed
425
+ * secondTab.addEventListener('keydown', event => {
426
+ * if (event.key === 'Delete') {
427
+ * closeTab();
428
+ * }
429
+ * });
430
+ *
431
+ * // Restore the tab
432
+ * restoreButton.addEventListener('click', restoreTab);
433
+ * <\/script>
434
+ *
435
+ * <style>
436
+ * #tab-list__closable {
437
+ * sigvelo-button {
438
+ * position: relative;
439
+ * left: -1rem;
440
+ * font-size: .875rem;
441
+ * margin-inline-end: -.5rem;
442
+ * }
443
+ *
444
+ * sigvelo-button::part(button) {
445
+ * border-radius: var(--sigvelo-radius-md);
446
+ * height: 2rem;
447
+ * }
448
+ * }
449
+ * </style>
450
+ * ```
451
+ *
452
+ * @example Styling tab lists
453
+ * Tab lists come with a simple, minimal appearance. Feel free to customize them with your own styles.
454
+ *
455
+ * ```html
456
+ * <sigvelo-tab-list label="Select a tab" class="tab-list__cards">
457
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
458
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
459
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
460
+ *
461
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
462
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
463
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
464
+ * </sigvelo-tab-list>
465
+ *
466
+ * <style>
467
+ * .tab-list__cards {
468
+ * border: solid 1px var(--sigvelo-color-neutral-border-subtle);
469
+ * border-radius: var(--sigvelo-radius-md);
470
+ * box-shadow: var(--sigvelo-elevation-hairline);
471
+ *
472
+ * &::part(tabs) {
473
+ * padding-top: 0.5rem;
474
+ * }
475
+ *
476
+ * &::part(panels) {
477
+ * padding: 1.5rem 1rem;
478
+ * }
479
+ *
480
+ * sigvelo-tab {
481
+ * background-color: var(--sigvelo-color-surface);
482
+ * border: solid 1px var(--sigvelo-color-neutral-border-subtle);
483
+ * border-start-start-radius: var(--sigvelo-radius-md);
484
+ * border-start-end-radius: var(--sigvelo-radius-md);
485
+ * color: var(--sigvelo-color-text-muted);
486
+ * padding-block: 0.75rem;
487
+ * margin-inline: 0.25rem;
488
+ *
489
+ * &:state(active) {
490
+ * background-color: var(--sigvelo-color-canvas);
491
+ * }
492
+ * }
493
+ *
494
+ * sigvelo-tab:first-of-type {
495
+ * margin-inline-start: 0.5rem;
496
+ * }
497
+ *
498
+ * sigvelo-tab:last-of-type {
499
+ * margin-inline-end: 0.5rem;
500
+ * }
501
+ *
502
+ * sigvelo-tab:state(active) {
503
+ * border-bottom-color: var(--sigvelo-color-canvas);
504
+ * color: var(--sigvelo-color-text);
505
+ * }
506
+ *
507
+ * &::part(panels) {
508
+ * border-top-width: 1px;
509
+ * margin-top: -1px;
510
+ * }
511
+ * }
512
+ * </style>
513
+ * ```
514
+ *
515
+ * ```html
516
+ * <sigvelo-tab-list label="Select a tab" class="tab-list__segments">
517
+ * <sigvelo-tab panel="first">First</sigvelo-tab>
518
+ * <sigvelo-tab panel="second">Second</sigvelo-tab>
519
+ * <sigvelo-tab panel="third">Third</sigvelo-tab>
520
+ *
521
+ * <sigvelo-tab-panel name="first">Whiskers twitching with curiosity, cats patrol their domain with silent paws and keen eyes. Every corner holds potential adventure or the perfect sunny spot for an afternoon nap.</sigvelo-tab-panel>
522
+ * <sigvelo-tab-panel name="second">Purring contentedly on warm windowsills, felines observe the world with ancient wisdom. Their graceful movements and mysterious expressions captivate humans across all cultures.</sigvelo-tab-panel>
523
+ * <sigvelo-tab-panel name="third">Playful pouncing and midnight zoomies reveal the wild hunter within every house cat. From cardboard boxes to feather toys, everything becomes an exciting opportunity for feline fun.</sigvelo-tab-panel>
524
+ * </sigvelo-tab-list>
525
+ *
526
+ * <style>
527
+ * .tab-list__segments {
528
+ * &::part(tabs) {
529
+ * justify-content: space-between;
530
+ * background-color: var(--sigvelo-color-neutral-bg-subtle);
531
+ * border-radius: var(--sigvelo-radius-md);
532
+ * padding: .25rem;
533
+ * }
534
+ *
535
+ * sigvelo-tab {
536
+ * flex: 1 1 auto;
537
+ * justify-content: center;
538
+ * border: none;
539
+ * border-radius: var(--sigvelo-radius-md);
540
+ * color: var(--sigvelo-color-text-muted);
541
+ * padding-inline: 2rem;
542
+ * padding-block: .25rem;
543
+ * transition: 100ms background-color ease, 100ms color ease;
544
+ * }
545
+ *
546
+ * sigvelo-tab:first-child {
547
+ * margin-inline-start: 0;
548
+ * }
549
+ *
550
+ * sigvelo-tab:state(active) {
551
+ * border: none;
552
+ * background-color: var(--sigvelo-color-canvas);
553
+ * color: var(--sigvelo-color-text);
554
+ * }
555
+ *
556
+ * &::part(panels) {
557
+ * border: none;
558
+ * padding-block: 1rem;
559
+ * margin: 0;
560
+ * }
561
+ * }
562
+ * </style>
563
+ * ```
564
+ */
565
+ var SigveloTabList = class extends SigveloElement {
566
+ constructor(..._args) {
567
+ super(..._args);
568
+ this.localize = new Localize(this);
569
+ this.placement = "top";
570
+ }
571
+ static {
572
+ this.styles = [hostStyles, tab_list_styles_default];
573
+ }
574
+ updated(changedProperties) {
575
+ if (changedProperties.has("label")) this.setAttribute("aria-label", this.label ?? "");
576
+ if (changedProperties.has("tab")) this.setActiveTab(this.tab);
577
+ if (changedProperties.has("placement")) {
578
+ const orientation = ["top", "bottom"].includes(this.placement) ? "horizontal" : "vertical";
579
+ this.setAttribute("aria-orientation", orientation);
580
+ }
581
+ }
582
+ /**
583
+ * Gets an array of tabs slotted into the tab list.
584
+ *
585
+ * `slotchange` can fire before the first render and after the element is
586
+ * disconnected, so the @query result is not guaranteed to be present; an
587
+ * empty list is the correct answer in both cases.
588
+ */
589
+ getTabs(options) {
590
+ const tabs = this.tabSlot?.assignedElements({ flatten: true }) ?? [];
591
+ if (options?.includeDisabled) return tabs.filter((tab) => tab.localName === "sigvelo-tab");
592
+ else return tabs.filter((tab) => tab.localName === "sigvelo-tab" && !tab.disabled);
593
+ }
594
+ getPanels() {
595
+ return (this.panelSlot?.assignedElements({ flatten: true }) ?? []).filter((panel) => panel.localName === "sigvelo-tab-panel");
596
+ }
597
+ handleTabsClick(event) {
598
+ const tab = event.target.closest("sigvelo-tab");
599
+ if (tab?.panel && !tab.disabled) this.tab = tab.panel || "";
600
+ }
601
+ handleTabsKeyDown(event) {
602
+ const tabs = this.getTabs();
603
+ const activeTab = tabs.find((tab) => tab.panel === this.tab);
604
+ const activeTabIndex = activeTab ? tabs.indexOf(activeTab) : 0;
605
+ const isRtl = this.localize.dir() === "rtl";
606
+ const isVertical = ["start", "end"].includes(this.placement);
607
+ let targetTab;
608
+ if (isVertical && event.key === "ArrowUp" || !isVertical && event.key === (isRtl ? "ArrowRight" : "ArrowLeft")) targetTab = tabs[activeTabIndex === 0 ? tabs.length - 1 : activeTabIndex - 1];
609
+ if (isVertical && event.key === "ArrowDown" || !isVertical && event.key === (isRtl ? "ArrowLeft" : "ArrowRight")) targetTab = tabs[activeTabIndex === tabs.length - 1 ? 0 : activeTabIndex + 1];
610
+ if (event.key === "Home" || event.key === "End") targetTab = event.key === "Home" ? tabs[0] : tabs.slice(-1)[0];
611
+ if (event.key === " ") event.preventDefault();
612
+ if (targetTab) {
613
+ event.preventDefault();
614
+ event.stopPropagation();
615
+ this.tab = targetTab.panel || "";
616
+ targetTab.focus();
617
+ }
618
+ }
619
+ handleSlotChange() {
620
+ const tabs = this.getTabs();
621
+ const panels = this.getPanels();
622
+ tabs.forEach((tab) => tab.id = tab.id || createId("sigvelo-tab-"));
623
+ panels.forEach((panel) => panel.id = panel.id || createId("sigvelo-tab-panel-"));
624
+ tabs.forEach((tab) => {
625
+ const name = tab.panel;
626
+ if (!name) return;
627
+ const panel = panels.find((p) => p.name === name);
628
+ if (!panel) return;
629
+ tab.setAttribute("aria-controls", panel.id);
630
+ panel.setAttribute("aria-describedby", tab.id);
631
+ });
632
+ this.resetRovingTabIndex();
633
+ }
634
+ /** Sets the active tab + panel. */
635
+ setActiveTab(name) {
636
+ const tabs = this.getTabs({ includeDisabled: true });
637
+ const panels = this.getPanels();
638
+ if (!name) return;
639
+ this.tab = name;
640
+ for (const tab of tabs) tab.active = tab.panel === name && !tab.disabled;
641
+ for (const panel of panels) {
642
+ const linkedTab = tabs.find((tab) => tab.panel === panel.name);
643
+ if (panel.name === name && linkedTab && !linkedTab.disabled) {
644
+ panel.visible = true;
645
+ this.dispatchEvent(new SigveloTabShownEvent({
646
+ tab: linkedTab,
647
+ panel
648
+ }));
649
+ } else if (linkedTab && panel.visible) {
650
+ panel.visible = false;
651
+ this.dispatchEvent(new SigveloTabHiddenEvent({
652
+ tab: linkedTab,
653
+ panel
654
+ }));
655
+ }
656
+ }
657
+ }
658
+ /** @internal Makes only the active tab tabbable. If no tab is active, the first non-disabled tab will be tabbable. */
659
+ resetRovingTabIndex() {
660
+ const tabs = this.getTabs();
661
+ const targetTab = tabs.find((tab) => tab.active) || tabs[0];
662
+ if (targetTab) this.setActiveTab(targetTab.panel);
663
+ }
664
+ render() {
665
+ return html`
666
+ <sigvelo-scroller
667
+ id="tabs"
668
+ part="tabs"
669
+ exportparts="content:tabs-content"
670
+ @click=${this.handleTabsClick}
671
+ @keydown=${this.handleTabsKeyDown}
672
+ >
673
+ <div role="tablist">
674
+ <slot name="tab" @slotchange=${this.handleSlotChange}></slot>
675
+ </div>
676
+ </sigvelo-scroller>
677
+
678
+ <div id="panels" part="panels">
679
+ <slot @slotchange=${this.handleSlotChange}></slot>
680
+ </div>
681
+ `;
682
+ }
683
+ };
684
+ __decorate([query("#tabs > slot")], SigveloTabList.prototype, "tabSlot", void 0);
685
+ __decorate([query("#panels > slot")], SigveloTabList.prototype, "panelSlot", void 0);
686
+ __decorate([property()], SigveloTabList.prototype, "label", void 0);
687
+ __decorate([property({ reflect: true })], SigveloTabList.prototype, "tab", void 0);
688
+ __decorate([property({ reflect: true })], SigveloTabList.prototype, "placement", void 0);
689
+ customElements.define("sigvelo-tab-list", SigveloTabList);
690
+ //#endregion
691
+ export { SigveloTabList as t };