@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,777 @@
1
+ import { CSSResultGroup, PropertyValues } from "lit";
2
+ import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
3
+
4
+ //#region src/components/search-list/search-list.d.ts
5
+ /**
6
+ * <sigvelo-search-list>
7
+ *
8
+ * @summary Queries a collection of items based on their content and keywords.
9
+ * @tag sigvelo-search-list
10
+ * @documentation https://design-system.sigvelo.com/docs/components/search-list
11
+ * @status stable
12
+ * @since 1.0
13
+ *
14
+ * @slot - One or more elements to be searched. Each element must be a direct descendent of the host, i.e. do not wrap
15
+ * items in other containers. If desired, you can apply flex and grid styles to the `items` part to control how items
16
+ * appear in the list. By default, items will be displayed in a flex column.
17
+ * @slot controller - A `<sigvelo-text-field>` or `<input>` element that will control the search list.
18
+ * @slot initial - Optional content to display when no search query has been entered.
19
+ * @slot empty - Optional content to display when the search yields no results.
20
+ *
21
+ * @csspart items - The container that wraps the slotted items. Displays as a flex column by default.
22
+ *
23
+ * @cssstate empty - Applied when a query is entered and no matching results are found.
24
+ * @cssstate initial - Applied when the query is empty and the `initial` slot is showing.
25
+ *
26
+ * @example Default
27
+ * Search Lists provide real-time filtering of on-page content as the user types, supporting exact or fuzzy matching, custom keywords, and customizable empty states. The component works with just about any type of content and can be customized with different layouts and styling.
28
+ *
29
+ * ```html
30
+ * <sigvelo-search-list match="fuzzy" id="search-list__overview">
31
+ * <!-- Controller -->
32
+ * <sigvelo-text-field
33
+ * slot="controller"
34
+ * label="Search cats"
35
+ * description="Results will update as you type"
36
+ * type="search"
37
+ * with-clear
38
+ * pill
39
+ * >
40
+ * <sigvelo-icon slot="start" name="search"></sigvelo-icon>
41
+ * </sigvelo-text-field>
42
+ *
43
+ * <!-- Items -->
44
+ * <sigvelo-card orientation="horizontal">
45
+ * <sigvelo-avatar slot="header" image="https://images.unsplash.com/photo-1672487209629-4d52e0c043d0?q=80&w=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"></sigvelo-avatar>
46
+ * <div>
47
+ * <h4 class="name">Meowy McGee</h4>
48
+ * <div class="tagline">Freedom's just another word for nothing left to lose.</div>
49
+ * </div>
50
+ * <sigvelo-button slot="actions" icon-label="Settings" variant="ghost" pill>
51
+ * <sigvelo-icon name="dots"></sigvelo-icon>
52
+ * </sigvelo-button>
53
+ * </sigvelo-card>
54
+ *
55
+ * <sigvelo-card orientation="horizontal">
56
+ * <sigvelo-avatar slot="header" image="https://images.unsplash.com/photo-1529778873920-4da4926a72c2?q=80&w=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"></sigvelo-avatar>
57
+ * <div>
58
+ * <h4 class="name">Wonder Whiskers</h4>
59
+ * <div class="tagline">Living my best nine lives, one nap at a time.</div>
60
+ * </div>
61
+ * <sigvelo-button slot="actions" icon-label="Settings" variant="ghost" pill>
62
+ * <sigvelo-icon name="dots"></sigvelo-icon>
63
+ * </sigvelo-button>
64
+ * </sigvelo-card>
65
+ *
66
+ * <sigvelo-card orientation="horizontal">
67
+ * <sigvelo-avatar slot="header" image="https://images.unsplash.com/photo-1569591159212-b02ea8a9f239?q=80&w=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"></sigvelo-avatar>
68
+ * <div>
69
+ * <h4 class="name">Maine Attraction</h4>
70
+ * <div class="tagline">Big fluff, bigger personality.</div>
71
+ * </div>
72
+ * <sigvelo-button slot="actions" icon-label="Settings" variant="ghost" pill>
73
+ * <sigvelo-icon name="dots"></sigvelo-icon>
74
+ * </sigvelo-button>
75
+ * </sigvelo-card>
76
+ *
77
+ * <sigvelo-card orientation="horizontal">
78
+ * <sigvelo-avatar slot="header" image="https://images.unsplash.com/photo-1735820474275-dd0ff4f28d71?q=80&w=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"></sigvelo-avatar>
79
+ * <div>
80
+ * <h4 class="name">Sir Pounce-a-lot</h4>
81
+ * <div class="tagline">Professional sunbeam chaser and nap enthusiast.</div>
82
+ * </div>
83
+ * <sigvelo-button slot="actions" icon-label="Settings" variant="ghost" pill>
84
+ * <sigvelo-icon name="dots"></sigvelo-icon>
85
+ * </sigvelo-button>
86
+ * </sigvelo-card>
87
+ *
88
+ * <!-- Empty state -->
89
+ * <sigvelo-empty-state slot="empty">
90
+ * <sigvelo-icon slot="illustration" name="cat"></sigvelo-icon>
91
+ * <p>No matching results</p>
92
+ * </sigvelo-empty-state>
93
+ * </sigvelo-search-list>
94
+ *
95
+ * <style>
96
+ * #search-list__overview {
97
+ * sigvelo-card {
98
+ * --spacing: 1rem;
99
+ *
100
+ * sigvelo-avatar {
101
+ * --size: 3rem;
102
+ * }
103
+ *
104
+ * .name,
105
+ * .tagline {
106
+ * margin: 0;
107
+ * line-height: 1.2;
108
+ * display: inline;
109
+ * }
110
+ *
111
+ * .name {
112
+ * display: block;
113
+ * font-size: 1.125rem;
114
+ * }
115
+ *
116
+ * .tagline {
117
+ * color: var(--sigvelo-color-text-muted);
118
+ * font-size: 0.875rem;
119
+ * }
120
+ * }
121
+ *
122
+ * div[slot="empty"] {
123
+ * text-align: center;
124
+ * color: var(--sigvelo-color-text-muted);
125
+ * margin-block-start: 1rem;
126
+ *
127
+ * sigvelo-icon {
128
+ * font-size: 2.5rem;
129
+ * stroke-width: 1px;
130
+ * }
131
+ * }
132
+ * }
133
+ * </style>
134
+ * ```
135
+ *
136
+ * @example Providing a controller and items
137
+ * Every search list must have a search box, or _controller_, that maintains the query. Controllers can be `<sigvelo-text-field>` or native `<input>` elements. To link a controller, place it in the search list's `controller` slot or assign an external one. Make sure to add a label and description to ensure it's accessible.
138
+ *
139
+ * Searchable items can be just about any element, but they _must_ be direct descendants of the `<sigvelo-search-list>` element. By default, an item's text content will be used to determine a match, but you can also specify keywords. A case-insensitive search is performed by default, but basic fuzzy matching and custom matching are also available.
140
+ *
141
+ * As the user types in the controller, the search list will update and show the matching results. When no query is entered, all items are shown. An optional empty state can be provided to show a custom message when a query is entered and no matches are found.
142
+ *
143
+ * A minimal implementation looks something like this. Note the use of `label` and `description`, which are important for accessibility.
144
+ *
145
+ * ```html
146
+ * <sigvelo-search-list>
147
+ * <!-- Controller -->
148
+ * <sigvelo-text-field
149
+ * slot="controller"
150
+ * label="Search"
151
+ * description="Results will update as you type"
152
+ * ></sigvelo-text-field>
153
+ *
154
+ * <!-- Items -->
155
+ * <div>Item 1</div>
156
+ * <div>Item 2</div>
157
+ * <div>Item 3</div>
158
+ * </sigvelo-search-list>
159
+ * ```
160
+ *
161
+ * Here's an example using a native `<input>` element.
162
+ *
163
+ * ```html
164
+ * <sigvelo-search-list>
165
+ * <!-- Controller -->
166
+ * <label slot="controller" for="search">Search</label>
167
+ * <input slot="controller" id="search" aria-description="Results will update as you type">
168
+ *
169
+ * <!-- Items -->
170
+ * <div>Item 1</div>
171
+ * <div>Item 2</div>
172
+ * <div>Item 3</div>
173
+ * </sigvelo-search-list>
174
+ * ```
175
+ *
176
+ * Items aren't given any styles by the component — that part is up to you! The item's container, however, is styled as a flex column container by default. To change the layout, apply the desired CSS using the `::part(items)` selector. Both flex and grid layouts work really well here.
177
+ *
178
+ * Here is the example from above, modified with example styles.
179
+ *
180
+ * ```html
181
+ * <sigvelo-search-list id="search-list__search">
182
+ * <sigvelo-text-field
183
+ * slot="controller"
184
+ * label="Search"
185
+ * description="Results will update as you type"
186
+ * ></sigvelo-text-field>
187
+ *
188
+ * <div>Item 1</div>
189
+ * <div>Item 2</div>
190
+ * <div>Item 3</div>
191
+ * </sigvelo-search-list>
192
+ *
193
+ * <style>
194
+ * #search-list__search {
195
+ * &::part(items) {
196
+ * display: grid;
197
+ * grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr));
198
+ * }
199
+ *
200
+ * > div {
201
+ * border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-color-neutral-border-subtle);
202
+ * border-radius: var(--sigvelo-radius-md);
203
+ * background-color: var(--sigvelo-color-surface);
204
+ * box-shadow: var(--sigvelo-elevation-hairline);
205
+ * text-align: center;
206
+ * padding: 1rem;
207
+ * }
208
+ * }
209
+ * </style>
210
+ * ```
211
+ *
212
+ * **Note:** Search lists are designed to listen for user input dispatched by their controllers. As such, canceling the controller's `input` event or programmatically modifying its value will cause the search list to get out of sync. In that case, you can use the `setQuery()` method to programmatically update the search list.
213
+ *
214
+ * @example Fuzzy matching
215
+ * By default, the search list shows results based on case-insensitive, exact matches. For a more permissive search, add `match="fuzzy"` which is more forgiving to typos.
216
+ *
217
+ * ```html
218
+ * <sigvelo-search-list match="fuzzy" id="search-list__fuzzy">
219
+ * <!-- Controller -->
220
+ * <sigvelo-text-field
221
+ * slot="controller"
222
+ * label="Search for names"
223
+ * type="search"
224
+ * with-clear
225
+ * pill
226
+ * >
227
+ * <sigvelo-icon slot="start" name="search"></sigvelo-icon>
228
+ * </sigvelo-text-field>
229
+ *
230
+ * <!-- Items -->
231
+ * <div class="item">Luna</div>
232
+ * <div class="item">Oliver</div>
233
+ * <div class="item">Bella</div>
234
+ * <div class="item">Whiskers</div>
235
+ * <div class="item">Maple</div>
236
+ * <div class="item">Sushi</div>
237
+ * <div class="item">Pepper</div>
238
+ * <div class="item">Mittens</div>
239
+ * <div class="item">Shadow</div>
240
+ * <div class="item">Oreo</div>
241
+ * <div class="item">Mochi</div>
242
+ * <div class="item">Nova</div>
243
+ * <div class="item">Tiger</div>
244
+ * <div class="item">Ziggy</div>
245
+ * </sigvelo-search-list>
246
+ *
247
+ * <style>
248
+ * #search-list__fuzzy {
249
+ * <!-- Style the items in a flex row -->
250
+ * &::part(items) {
251
+ * flex-direction: row;
252
+ * gap: 0.5rem;
253
+ * }
254
+ *
255
+ * <!-- Custom item styles -->
256
+ * .item {
257
+ * border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-color-neutral-border-subtle);
258
+ * border-radius: var(--sigvelo-radius-full);
259
+ * background-color: var(--sigvelo-color-surface);
260
+ * box-shadow: var(--sigvelo-elevation-hairline);
261
+ * padding: 0.5rem 1rem;
262
+ * }
263
+ * }
264
+ * </style>
265
+ * ```
266
+ *
267
+ * **Note:** For even more control over the matching algorithm, you can specific a [custom match function](#using-a-custom-match-function).
268
+ *
269
+ * @example Adding keywords
270
+ * Add the `data-keywords` attribute to any item to include additional keywords the search list should match by. This is useful for adding terms you'd like the item to match on even when the term doesn't appear in regular content.
271
+ *
272
+ * ```html
273
+ * <sigvelo-search-list id="search-list__keywords">
274
+ * <!-- Controller -->
275
+ * <sigvelo-text-field
276
+ * slot="controller"
277
+ * label="Search by color"
278
+ * description="e.g. brown, orange, white, gray, black"
279
+ * type="search"
280
+ * with-clear
281
+ * pill
282
+ * >
283
+ * <sigvelo-icon slot="start" name="search"></sigvelo-icon>
284
+ * </sigvelo-text-field>
285
+ *
286
+ * <!-- Items -->
287
+ * <img
288
+ * data-keywords="orange"
289
+ * src="https://images.unsplash.com/photo-1628612380382-e6204e135307?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
290
+ * alt="An orange kitten meows while perched on a stone wall"
291
+ * >
292
+ * <img
293
+ * data-keywords="white gray brown"
294
+ * src="https://images.unsplash.com/photo-1595252849939-1ec8070a354a?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
295
+ * alt="A multicolored cat walking through the grass stops to look at the camera"
296
+ * >
297
+ * <img
298
+ * data-keywords="white gray"
299
+ * src="https://images.unsplash.com/photo-1583399704033-3db671c65f5c?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
300
+ * alt="A white fluffy kitten lays comfortably on the arm of a chair"
301
+ * >
302
+ * <img
303
+ * data-keywords="gray black"
304
+ * src="https://images.unsplash.com/photo-1625060241508-22488e1e9264?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
305
+ * alt="A gray tabby lays in a bed and looks out past the camera"
306
+ * >
307
+ * <img
308
+ * data-keywords="white black"
309
+ * src="https://images.unsplash.com/photo-1692901573513-41cda579d689?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
310
+ * alt="A black and white kitten lays on its bed and looks at the camera"
311
+ * >
312
+ * <img
313
+ * data-keywords="gray black"
314
+ * src="https://images.unsplash.com/photo-1622273414093-27fd902ac078?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
315
+ * alt="A young gray tabby lays on the steps and yawns"
316
+ * >
317
+ * <img
318
+ * data-keywords="white black brown"
319
+ * src="https://images.unsplash.com/photo-1601217155197-0419cd3fd698?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
320
+ * alt="A multi-colored kitten poses for a picture"
321
+ * >
322
+ * <img
323
+ * data-keywords="gray brown"
324
+ * src="https://images.unsplash.com/photo-1622273509381-59a1e99afefd?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
325
+ * alt="A young tabby rests its eyes while playfully putting its paw up"
326
+ * >
327
+ * <img
328
+ * data-keywords="brown"
329
+ * src="https://images.unsplash.com/photo-1644625986841-fdedeb19d37c?q=80&w=500&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
330
+ * alt="A brown cat looks up at the camera"
331
+ * >
332
+ * </sigvelo-search-list>
333
+ *
334
+ * <style>
335
+ * #search-list__keywords {
336
+ * &::part(items) {
337
+ * display: grid;
338
+ * grid-template-columns: repeat(auto-fill, minmax(min(145px, 100%), 1fr));
339
+ * }
340
+ *
341
+ * img {
342
+ * height: 100%;
343
+ * object-fit: cover;
344
+ * }
345
+ * }
346
+ * </style>
347
+ * ```
348
+ *
349
+ * @example Providing an initial state
350
+ * To change what users see before they enter a query, use the `initial` slot. When provided, this content will appear instead of the items when no query is entered. Once the user starts typing, the matching items or the empty state will be shown.
351
+ *
352
+ * ```html
353
+ * <sigvelo-search-list id="search-list__initial">
354
+ * <!-- Controller -->
355
+ * <sigvelo-text-field
356
+ * slot="controller"
357
+ * label="Search cats"
358
+ * description="Find your perfect feline friend"
359
+ * type="search"
360
+ * with-clear
361
+ * pill
362
+ * >
363
+ * <sigvelo-icon slot="start" name="search"></sigvelo-icon>
364
+ * </sigvelo-text-field>
365
+ *
366
+ * <!-- Initial state -->
367
+ * <sigvelo-empty-state slot="initial">
368
+ * <sigvelo-icon slot="illustration" name="hearts"></sigvelo-icon>
369
+ * <h4>Ready to Meet Some Cats?</h4>
370
+ * <p><small>Start typing to discover our adorable cats</small></p>
371
+ * </sigvelo-empty-state>
372
+ *
373
+ * <!-- Items -->
374
+ * <sigvelo-card orientation="horizontal">
375
+ * <sigvelo-avatar slot="header" image="https://images.unsplash.com/photo-1672487209629-4d52e0c043d0?q=80&w=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"></sigvelo-avatar>
376
+ * <div>
377
+ * <h4 class="name">Meowy McGee</h4>
378
+ * <div class="tagline">Freedom's just another word for nothing left to lose.</div>
379
+ * </div>
380
+ * <sigvelo-button slot="actions" icon-label="Settings" variant="ghost" pill>
381
+ * <sigvelo-icon name="dots"></sigvelo-icon>
382
+ * </sigvelo-button>
383
+ * </sigvelo-card>
384
+ *
385
+ * <sigvelo-card orientation="horizontal">
386
+ * <sigvelo-avatar slot="header" image="https://images.unsplash.com/photo-1529778873920-4da4926a72c2?q=80&w=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"></sigvelo-avatar>
387
+ * <div>
388
+ * <h4 class="name">Wonder Whiskers</h4>
389
+ * <div class="tagline">Living my best nine lives, one nap at a time.</div>
390
+ * </div>
391
+ * <sigvelo-button slot="actions" icon-label="Settings" variant="ghost" pill>
392
+ * <sigvelo-icon name="dots"></sigvelo-icon>
393
+ * </sigvelo-button>
394
+ * </sigvelo-card>
395
+ *
396
+ * <sigvelo-card orientation="horizontal">
397
+ * <sigvelo-avatar slot="header" image="https://images.unsplash.com/photo-1569591159212-b02ea8a9f239?q=80&w=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"></sigvelo-avatar>
398
+ * <div>
399
+ * <h4 class="name">Maine Attraction</h4>
400
+ * <div class="tagline">Big fluff, bigger personality.</div>
401
+ * </div>
402
+ * <sigvelo-button slot="actions" icon-label="Settings" variant="ghost" pill>
403
+ * <sigvelo-icon name="dots"></sigvelo-icon>
404
+ * </sigvelo-button>
405
+ * </sigvelo-card>
406
+ *
407
+ * <sigvelo-card orientation="horizontal">
408
+ * <sigvelo-avatar slot="header" image="https://images.unsplash.com/photo-1735820474275-dd0ff4f28d71?q=80&w=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"></sigvelo-avatar>
409
+ * <div>
410
+ * <h4 class="name">Sir Pounce-a-lot</h4>
411
+ * <div class="tagline">Professional sunbeam chaser and nap enthusiast.</div>
412
+ * </div>
413
+ * <sigvelo-button slot="actions" icon-label="Settings" variant="ghost" pill>
414
+ * <sigvelo-icon name="dots"></sigvelo-icon>
415
+ * </sigvelo-button>
416
+ * </sigvelo-card>
417
+ *
418
+ * <!-- Empty state -->
419
+ * <sigvelo-empty-state slot="empty">
420
+ * <sigvelo-icon slot="illustration" name="cat"></sigvelo-icon>
421
+ * <h4>No Cats Found</h4>
422
+ * <p><small>Try different search terms to find your match</small></p>
423
+ * </sigvelo-empty-state>
424
+ * </sigvelo-search-list>
425
+ *
426
+ * <style>
427
+ * #search-list__initial {
428
+ * sigvelo-card {
429
+ * --spacing: 1rem;
430
+ *
431
+ * sigvelo-avatar {
432
+ * --size: 3rem;
433
+ * }
434
+ *
435
+ * .name,
436
+ * .tagline {
437
+ * margin: 0;
438
+ * line-height: 1.2;
439
+ * display: inline;
440
+ * }
441
+ *
442
+ * .name {
443
+ * display: block;
444
+ * font-size: 1.125rem;
445
+ * }
446
+ *
447
+ * .tagline {
448
+ * color: var(--sigvelo-color-text-muted);
449
+ * font-size: 0.875rem;
450
+ * }
451
+ * }
452
+ *
453
+ * div[slot="initial"],
454
+ * div[slot="empty"] {
455
+ * text-align: center;
456
+ * color: var(--sigvelo-color-text-muted);
457
+ * margin-block-start: 1rem;
458
+ *
459
+ * sigvelo-icon {
460
+ * font-size: 2.5rem;
461
+ * stroke-width: 1px;
462
+ * }
463
+ *
464
+ * h4 {
465
+ * margin: 0.5rem 0 0 0;
466
+ * }
467
+ *
468
+ * small {
469
+ * display: block;
470
+ * margin-top: 0.5rem;
471
+ * }
472
+ * }
473
+ * }
474
+ * </style>
475
+ * ```
476
+ *
477
+ * **Note:** The initial state will only be shown when the `initial` slot is provided and no query has been entered.
478
+ *
479
+ * @example Providing an empty state
480
+ * An optional empty state will be shown when no results are found. Use the `empty` slot to add text, icons, or illustrations to it. Empty state content is not styled by the component, so feel free to bring your own look to it.
481
+ *
482
+ * ```html
483
+ * <sigvelo-search-list id="search-list__empty">
484
+ * <!-- Controller -->
485
+ * <sigvelo-text-field
486
+ * slot="controller"
487
+ * label="Search"
488
+ * type="search"
489
+ * value="foo"
490
+ * with-clear
491
+ * pill
492
+ * >
493
+ * <sigvelo-icon slot="start" name="search"></sigvelo-icon>
494
+ * </sigvelo-text-field>
495
+ *
496
+ * <!-- Items -->
497
+ * <div class="item">Luna</div>
498
+ * <div class="item">Oliver</div>
499
+ * <div class="item">Bella</div>
500
+ * <div class="item">Whiskers</div>
501
+ * <div class="item">Maple</div>
502
+ * <div class="item">Sushi</div>
503
+ * <div class="item">Pepper</div>
504
+ * <div class="item">Mittens</div>
505
+ * <div class="item">Shadow</div>
506
+ * <div class="item">Oreo</div>
507
+ * <div class="item">Mochi</div>
508
+ * <div class="item">Nova</div>
509
+ * <div class="item">Tiger</div>
510
+ * <div class="item">Ziggy</div>
511
+ *
512
+ * <!-- The empty state -->
513
+ * <sigvelo-empty-state slot="empty">
514
+ * <sigvelo-icon slot="illustration" name="cat"></sigvelo-icon>
515
+ * No matching results
516
+ * </sigvelo-empty-state>
517
+ * </sigvelo-search-list>
518
+ *
519
+ * <style>
520
+ * #search-list__empty {
521
+ * &::part(items) {
522
+ * flex-direction: row;
523
+ * gap: 0.5rem;
524
+ * }
525
+ *
526
+ * .item {
527
+ * border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-color-neutral-border-subtle);
528
+ * border-radius: var(--sigvelo-radius-md);
529
+ * background-color: var(--sigvelo-color-surface);
530
+ * box-shadow: var(--sigvelo-elevation-hairline);
531
+ * padding: 0.5rem 1rem;
532
+ * }
533
+ *
534
+ * <!-- Empty state styles -->
535
+ * div[slot="empty"] {
536
+ * width: 100%;
537
+ * text-align: center;
538
+ * color: var(--sigvelo-color-text-muted);
539
+ * margin-block-start: 1rem;
540
+ *
541
+ * sigvelo-icon {
542
+ * font-size: 2.5rem;
543
+ * stroke-width: 1px;
544
+ * }
545
+ * }
546
+ * }
547
+ * </style>
548
+ * ```
549
+ *
550
+ * @example Using a custom match function
551
+ * For more control over the matching algorithm, set the `match` attribute to `custom` and provide a callback using the `isMatch` property. The function runs on each item whenever the search query changes.
552
+ *
553
+ * The callback receives three arguments: `query` (the current search term), `content` (the element's searchable content, including its `textContent` and `data-keywords`), and `el` (a reference to the element being searched). Return `true` if the element is a match and `false` otherwise.
554
+ *
555
+ * ```html
556
+ * <sigvelo-search-list match="custom" id="search-list__custom">
557
+ * <!-- Controller -->
558
+ * <sigvelo-text-field
559
+ * slot="controller"
560
+ * label="Search cats"
561
+ * description="Add @indoor or @outdoor to filter by environment"
562
+ * type="search"
563
+ * with-clear
564
+ * pill
565
+ * >
566
+ * <sigvelo-icon slot="start" name="search"></sigvelo-icon>
567
+ * </sigvelo-text-field>
568
+ *
569
+ * <!-- Items -->
570
+ * <div class="item" data-environment="indoor">
571
+ * <h4>Luna</h4>
572
+ * <p>Sweet and friendly, loves window watching</p>
573
+ * </div>
574
+ *
575
+ * <div class="item" data-environment="outdoor">
576
+ * <h4>Oliver</h4>
577
+ * <p>Adventurous explorer, loves the garden</p>
578
+ * </div>
579
+ *
580
+ * <div class="item" data-environment="indoor">
581
+ * <h4>Milo</h4>
582
+ * <p>Gentle soul who loves napping in sunbeams</p>
583
+ * </div>
584
+ *
585
+ * <div class="item" data-environment="outdoor">
586
+ * <h4>Bella</h4>
587
+ * <p>Free spirit, enjoys climbing trees</p>
588
+ * </div>
589
+ *
590
+ * <div class="item" data-environment="indoor">
591
+ * <h4>Charlie</h4>
592
+ * <p>Playful cat who chases laser pointers</p>
593
+ * </div>
594
+ *
595
+ * <div class="item" data-environment="outdoor">
596
+ * <h4>Lucy</h4>
597
+ * <p>Independent nature lover, great hunter</p>
598
+ * </div>
599
+ *
600
+ * <!-- Empty state -->
601
+ * <sigvelo-empty-state slot="empty">
602
+ * <sigvelo-icon slot="illustration" name="cat"></sigvelo-icon>
603
+ * <h4>No cats match your search</h4>
604
+ * <p><small>Try searching by name or using the @indoor or @outdoor tags</small></p>
605
+ * </sigvelo-empty-state>
606
+ * </sigvelo-search-list>
607
+ *
608
+ * <script>
609
+ * const searchList = document.getElementById('search-list__custom');
610
+ *
611
+ * // A very contrived custom match function
612
+ * searchList.isMatch = (query, content, el) => {
613
+ * query = query.toLowerCase().trim();
614
+ *
615
+ * // If no query, show all items
616
+ * if (!query) return true;
617
+ *
618
+ * const environment = el.getAttribute('data-environment');
619
+ * const envMatch = query.match(/@(indoor|outdoor)/);
620
+ *
621
+ * // Look for @indoor or @outdoor in the query
622
+ * if (envMatch) {
623
+ * // Remove the environment tag from the query for text search
624
+ * const searchEnvironment = envMatch[1];
625
+ * const textQuery = query.replace(/@(indoor|outdoor)/, '').trim();
626
+ *
627
+ * // Must match both environment and text (if any text remains)
628
+ * return environment === searchEnvironment && (!textQuery || content.toLowerCase().includes(textQuery));
629
+ * }
630
+ *
631
+ * // If no environment tag was found, fall back to text search
632
+ * return content.toLowerCase().includes(query);
633
+ * };
634
+ * </script>
635
+ *
636
+ * <style>
637
+ * #search-list__custom {
638
+ * &::part(items) {
639
+ * display: grid;
640
+ * grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr));
641
+ * gap: 1rem;
642
+ * }
643
+ *
644
+ * .item {
645
+ * border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-color-neutral-border-subtle);
646
+ * border-radius: var(--sigvelo-radius-md);
647
+ * background-color: var(--sigvelo-color-surface);
648
+ * box-shadow: var(--sigvelo-elevation-hairline);
649
+ * padding: 1rem;
650
+ *
651
+ * h4 {
652
+ * margin: 0;
653
+ * font-size: 1.125rem;
654
+ * }
655
+ *
656
+ * p {
657
+ * color: var(--sigvelo-color-text-muted);
658
+ * margin: 0.5rem 0;
659
+ * font-size: 0.875rem;
660
+ * margin-block-end: 0;
661
+ * }
662
+ * }
663
+ *
664
+ * div[slot="empty"] {
665
+ * text-align: center;
666
+ * color: var(--sigvelo-color-text-muted);
667
+ * margin-block-start: 1rem;
668
+ *
669
+ * sigvelo-icon {
670
+ * font-size: 2.5rem;
671
+ * stroke-width: 1px;
672
+ * }
673
+ *
674
+ * small {
675
+ * display: block;
676
+ * margin-top: 0.5rem;
677
+ * }
678
+ * }
679
+ * }
680
+ * </style>
681
+ * ```
682
+ *
683
+ * @example Using an external controller
684
+ * In some cases, the controller might need to exist outside of the component. In this case, give the controller an ID and set the search list's `controller` attribute to match.
685
+ *
686
+ * ```html
687
+ * <sigvelo-text-field
688
+ * id="external-controller"
689
+ * label="Search"
690
+ * description="Results will update as you type"
691
+ * ></sigvelo-text-field>
692
+ *
693
+ * <sigvelo-search-list controller="external-controller" id="search-list__external">
694
+ * <div>Item 1</div>
695
+ * <div>Item 2</div>
696
+ * <div>Item 3</div>
697
+ * </sigvelo-search-list>
698
+ *
699
+ * <style>
700
+ * #search-list__external {
701
+ * margin-block-start: 1rem;
702
+ *
703
+ * &::part(items) {
704
+ * display: grid;
705
+ * grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr));
706
+ * }
707
+ *
708
+ * > div {
709
+ * border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-color-neutral-border-subtle);
710
+ * border-radius: var(--sigvelo-radius-md);
711
+ * background-color: var(--sigvelo-color-surface);
712
+ * box-shadow: var(--sigvelo-elevation-hairline);
713
+ * text-align: center;
714
+ * padding: 1rem;
715
+ * }
716
+ * }
717
+ * </style>
718
+ * ```
719
+ *
720
+ * **Note:** When using an external controller, make sure the position of it makes sense in reference to the search list. It should usually come immediately before the search list to ensure all users can interact with it properly.
721
+ */
722
+ declare class SigveloSearchList extends SigveloElement {
723
+ static observeSlots: boolean;
724
+ static styles: CSSResultGroup;
725
+ private items;
726
+ private debounceTimeout;
727
+ private localize;
728
+ private resultsTimeout;
729
+ results: HTMLElement;
730
+ query: string;
731
+ isEmpty: boolean;
732
+ isInitial: boolean;
733
+ resultsMessage: string;
734
+ /**
735
+ * In most cases, you should slot the controller into the `controller` slot. However, when the controller must exist
736
+ * outside the search list, you can set this property to the ID of an external `<input>` or `<sigvelo-text-field>`
737
+ * element instead.
738
+ */
739
+ controller: string;
740
+ /**
741
+ * The search behavior to use when finding a matching item. The `exact` search is case-insensitive but requires an
742
+ * exact match. The `fuzzy` search is more forgiving to typos. When using `custom`, you can set the `isMatch` property
743
+ * to a custom function to determine if the provided query matches the element's content.
744
+ */
745
+ match: "exact" | "fuzzy" | "custom";
746
+ /** The time in milliseconds to use for debouncing the search results while the user types. */
747
+ debounce: number;
748
+ /**
749
+ * A custom search function you can provide to change the search behavior. The function is applied to each item when
750
+ * the search query changes. The `query` argument is the current search term, `content` is a string containing the
751
+ * element's searchable content, including its `textContent` and `data-keywords"`, and `el` is the element being
752
+ * searched. Property only.
753
+ */
754
+ isMatch: (query: string, content: string, el: Element) => boolean;
755
+ connectedCallback(): void;
756
+ disconnectedCallback(): void;
757
+ updated(changedProperties: PropertyValues<this>): void;
758
+ /** Gets the controller or returns `null` if one can't be found. */
759
+ private getController;
760
+ private handleDefaultSlotChange;
761
+ private handleControllerSlotChange;
762
+ /** Updates results when the controller's value changes. */
763
+ private handleControllerInput;
764
+ /** Listens to all `input` events on the document and responds only to controller events. */
765
+ private handleDocumentInput;
766
+ private updateResults;
767
+ /** Sets the search query and updates the results. To clear the search, set this to an empty string. */
768
+ setQuery(searchQuery?: string): void;
769
+ render(): import("lit-html").TemplateResult<1>;
770
+ }
771
+ declare global {
772
+ interface HTMLElementTagNameMap {
773
+ "sigvelo-search-list": SigveloSearchList;
774
+ }
775
+ }
776
+ //#endregion
777
+ export { SigveloSearchList as t };