@xplortech/apollo-core 2.6.0 → 2.7.1

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 (310) hide show
  1. package/.typings/apollo-components.html-data.json +626 -35
  2. package/build/style.css +5949 -3070
  3. package/dist/apollo-core/apollo-core.css +29 -19
  4. package/dist/apollo-core/apollo-core.esm.js +1 -1
  5. package/dist/apollo-core/p-0bf50890.entry.js +1 -0
  6. package/dist/apollo-core/p-1947e7a8.entry.js +1 -0
  7. package/dist/apollo-core/p-27928cb0.entry.js +1 -0
  8. package/dist/apollo-core/{p-5549756c.entry.js → p-34438721.entry.js} +1 -1
  9. package/dist/apollo-core/p-35c2f72d.entry.js +1 -0
  10. package/dist/apollo-core/p-368c81f1.entry.js +1 -0
  11. package/dist/apollo-core/{p-f5af9539.entry.js → p-36ba29da.entry.js} +1 -1
  12. package/dist/apollo-core/p-406b27a8.entry.js +1 -0
  13. package/dist/apollo-core/p-5d63b4ce.entry.js +1 -0
  14. package/dist/apollo-core/{p-02167464.entry.js → p-6a15f1e0.entry.js} +1 -1
  15. package/dist/apollo-core/p-8d692d05.entry.js +1 -0
  16. package/dist/apollo-core/{p-C_Z2nG0p.js → p-C7bgJs6C.js} +2 -2
  17. package/dist/apollo-core/{p-42016063.entry.js → p-b61d7952.entry.js} +1 -1
  18. package/dist/apollo-core/{p-8a1affce.entry.js → p-ca127ee8.entry.js} +1 -1
  19. package/dist/apollo-core/p-d1c9c233.entry.js +1 -0
  20. package/dist/apollo-core/p-dc205893.entry.js +1 -0
  21. package/dist/apollo-core/p-e2a5d41c.entry.js +1 -0
  22. package/dist/cjs/apollo-core.cjs.js +3 -3
  23. package/dist/cjs/{index-DH6pgWru.js → index-BQ97-AWw.js} +18 -7
  24. package/dist/cjs/loader.cjs.js +2 -2
  25. package/dist/cjs/xpl-accordion.cjs.entry.js +3 -3
  26. package/dist/cjs/xpl-application-shell.cjs.entry.js +2 -2
  27. package/dist/cjs/{xpl-avatar_47.cjs.entry.js → xpl-avatar_54.cjs.entry.js} +3726 -536
  28. package/dist/cjs/xpl-button-row.cjs.entry.js +2 -2
  29. package/dist/cjs/xpl-calendar.cjs.entry.js +2 -2
  30. package/dist/cjs/xpl-dynamic-table-cell.cjs.entry.js +3 -3
  31. package/dist/cjs/xpl-dynamic-table-row.cjs.entry.js +3 -3
  32. package/dist/cjs/xpl-dynamic-table.cjs.entry.js +2 -2
  33. package/dist/cjs/xpl-grid-item.cjs.entry.js +2 -2
  34. package/dist/cjs/xpl-grid.cjs.entry.js +2 -2
  35. package/dist/cjs/xpl-large-card.cjs.entry.js +2 -2
  36. package/dist/cjs/xpl-main-nav.cjs.entry.js +2 -2
  37. package/dist/cjs/xpl-table-header-cell.cjs.entry.js +1 -1
  38. package/dist/cjs/xpl-table-header.cjs.entry.js +2 -2
  39. package/dist/cjs/xpl-toggle.cjs.entry.js +4 -4
  40. package/dist/cjs/xpl-toolbar.cjs.entry.js +3 -3
  41. package/dist/collection/collection-manifest.json +11 -5
  42. package/dist/collection/components/xpl-accordion/xpl-accordion.js +2 -2
  43. package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +1 -1
  44. package/dist/collection/components/xpl-avatar/avatar.stories.js +122 -107
  45. package/dist/collection/components/xpl-avatar/xpl-avatar.js +249 -15
  46. package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +1 -1
  47. package/dist/collection/components/xpl-badge/badge.stories.js +1 -33
  48. package/dist/collection/components/xpl-badge/xpl-badge.js +1 -1
  49. package/dist/collection/components/xpl-banner/xpl-banner.js +4 -3
  50. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +1 -1
  51. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +1 -1
  52. package/dist/collection/components/xpl-button/xpl-button.js +21 -3
  53. package/dist/collection/components/xpl-button-row/xpl-button-row.js +1 -1
  54. package/dist/collection/components/xpl-calendar/xpl-calendar.js +1 -1
  55. package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +25 -3
  56. package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +1 -1
  57. package/dist/collection/components/xpl-content-area/xpl-content-area.js +1 -1
  58. package/dist/collection/components/xpl-dashboard/xpl-dashboard.js +1 -1
  59. package/dist/collection/components/xpl-data-card/xpl-data-card.js +2 -2
  60. package/dist/collection/components/xpl-divider/xpl-divider.js +1 -1
  61. package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +1 -1
  62. package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +1 -1
  63. package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +2 -2
  64. package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +77 -7
  65. package/dist/collection/components/xpl-dynamic-table/xpl-dynamic-table.js +1 -1
  66. package/dist/collection/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.js +2 -2
  67. package/dist/collection/components/xpl-dynamic-table-row/xpl-dynamic-table-row.js +2 -2
  68. package/dist/collection/components/xpl-grid/xpl-grid.js +1 -1
  69. package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +1 -1
  70. package/dist/collection/components/xpl-header-accordion/xpl-header-accordion.js +1 -1
  71. package/dist/collection/components/xpl-icon/xpl-icon.js +2 -2
  72. package/dist/collection/components/xpl-input/input.stories.js +96 -1
  73. package/dist/collection/components/xpl-input/xpl-input-color/xpl-input-color.js +8 -8
  74. package/dist/collection/components/xpl-input/xpl-input-date/xpl-input-date.js +3 -3
  75. package/dist/collection/components/xpl-input/xpl-input-file/xpl-input-file.js +4 -4
  76. package/dist/collection/components/xpl-input/xpl-input-phone/xpl-input-phone.js +5 -5
  77. package/dist/collection/components/xpl-input/xpl-input-search/xpl-input-search.js +485 -0
  78. package/dist/collection/components/xpl-input/xpl-input-time/xpl-input-time.js +2 -2
  79. package/dist/collection/components/xpl-input/xpl-input.js +130 -18
  80. package/dist/collection/components/xpl-large-card/xpl-large-card.js +1 -1
  81. package/dist/collection/components/xpl-list/list.stories.js +300 -63
  82. package/dist/collection/components/xpl-list/xpl-list-item/xpl-list-item.js +818 -0
  83. package/dist/collection/components/xpl-list/xpl-list.js +579 -21
  84. package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +1 -1
  85. package/dist/collection/components/xpl-modal/xpl-modal.js +1 -1
  86. package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +2 -2
  87. package/dist/collection/components/xpl-pagination/pagination.stories.js +18 -0
  88. package/dist/collection/components/xpl-pagination/xpl-pagination.js +7 -3
  89. package/dist/collection/components/xpl-panel/panel.stories.js +5 -3
  90. package/dist/collection/components/xpl-panel/xpl-panel.js +3 -3
  91. package/dist/collection/components/xpl-popover/xpl-popover.js +4 -4
  92. package/dist/collection/components/xpl-progress-bar/xpl-progress-bar.js +2 -2
  93. package/dist/collection/components/xpl-progress-indicator/progress-indicator.stories.js +118 -0
  94. package/dist/collection/components/xpl-progress-indicator/xpl-progress-indicator.js +171 -0
  95. package/dist/collection/components/xpl-radio/xpl-radio.js +3 -3
  96. package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +1 -1
  97. package/dist/collection/components/xpl-select/xpl-select.js +58 -6
  98. package/dist/collection/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.js +2 -2
  99. package/dist/collection/components/xpl-side-nav/xpl-side-nav.js +2 -2
  100. package/dist/collection/components/xpl-skeleton/xpl-skeleton.js +1 -1
  101. package/dist/collection/components/xpl-slideout/xpl-slideout.js +1 -1
  102. package/dist/collection/components/xpl-spotlight/spotlight.stories.js +385 -0
  103. package/dist/collection/components/xpl-spotlight/xpl-spotlight.js +1085 -0
  104. package/dist/collection/components/xpl-tab/xpl-tab.js +261 -8
  105. package/dist/collection/components/xpl-tab-panel/xpl-tab-panel.js +22 -15
  106. package/dist/collection/components/xpl-table/xpl-table.js +5 -5
  107. package/dist/collection/components/xpl-table-header/xpl-table-header.js +1 -1
  108. package/dist/collection/components/xpl-tabs/segment-control.stories.js +31 -0
  109. package/dist/collection/components/xpl-tabs/tabs.shared.js +156 -0
  110. package/dist/collection/components/xpl-tabs/tabs.stories.js +10 -60
  111. package/dist/collection/components/xpl-tabs/xpl-tabs.js +338 -62
  112. package/dist/collection/components/xpl-tag/tag.stories.js +153 -0
  113. package/dist/collection/components/xpl-tag/xpl-tag.js +312 -9
  114. package/dist/collection/components/xpl-toast/xpl-toast.js +2 -2
  115. package/dist/collection/components/xpl-toggle/xpl-toggle.js +3 -3
  116. package/dist/collection/components/xpl-toolbar/xpl-toolbar.js +2 -2
  117. package/dist/collection/components/xpl-tooltip/xpl-tooltip.js +1 -1
  118. package/dist/collection/components/xpl-top-nav/top-nav.stories.js +625 -0
  119. package/dist/collection/components/xpl-top-nav/xpl-nav-header-menu/xpl-nav-header-menu.js +122 -0
  120. package/dist/collection/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.js +481 -0
  121. package/dist/collection/components/xpl-top-nav/xpl-top-nav.js +433 -0
  122. package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +1 -1
  123. package/dist/collection/utils/lifecycle.js +79 -0
  124. package/dist/collection/utils/tab-a11y-ids.js +22 -0
  125. package/dist/components/floating-ui.dom.js +1 -0
  126. package/dist/components/index.js +1 -1
  127. package/dist/components/tab-a11y-ids.js +1 -0
  128. package/dist/components/xpl-accordion.js +1 -1
  129. package/dist/components/xpl-application-shell.js +1 -1
  130. package/dist/components/xpl-avatar2.js +1 -1
  131. package/dist/components/xpl-backdrop2.js +1 -1
  132. package/dist/components/xpl-badge2.js +1 -1
  133. package/dist/components/xpl-banner.js +1 -1
  134. package/dist/components/xpl-breadcrumb-item.js +1 -1
  135. package/dist/components/xpl-breadcrumbs.js +1 -1
  136. package/dist/components/xpl-button-row.js +1 -1
  137. package/dist/components/xpl-button2.js +1 -1
  138. package/dist/components/xpl-calendar.js +1 -1
  139. package/dist/components/xpl-checkbox2.js +1 -1
  140. package/dist/components/xpl-choicelist.js +1 -1
  141. package/dist/components/xpl-content-area.js +1 -1
  142. package/dist/components/xpl-dashboard.js +1 -1
  143. package/dist/components/xpl-data-card.js +1 -1
  144. package/dist/components/xpl-divider2.js +1 -1
  145. package/dist/components/xpl-dropdown-group2.js +1 -1
  146. package/dist/components/xpl-dropdown-heading2.js +1 -1
  147. package/dist/components/xpl-dropdown-option2.js +1 -1
  148. package/dist/components/xpl-dropdown2.js +1 -1
  149. package/dist/components/xpl-dynamic-table-cell.js +1 -1
  150. package/dist/components/xpl-dynamic-table-row.js +1 -1
  151. package/dist/components/xpl-dynamic-table.js +1 -1
  152. package/dist/components/xpl-grid-item.js +1 -1
  153. package/dist/components/xpl-grid.js +1 -1
  154. package/dist/components/xpl-header-accordion.js +1 -1
  155. package/dist/components/xpl-icon2.js +1 -1
  156. package/dist/components/xpl-input-date2.js +1 -1
  157. package/dist/components/xpl-input-file2.js +1 -1
  158. package/dist/components/xpl-input-search.d.ts +11 -0
  159. package/dist/components/xpl-input-search.js +1 -0
  160. package/dist/components/xpl-input-search2.js +1 -0
  161. package/dist/components/xpl-input2.js +1 -1
  162. package/dist/components/xpl-large-card.js +1 -1
  163. package/dist/components/{xpl-progress.d.ts → xpl-list-item.d.ts} +4 -4
  164. package/dist/components/xpl-list-item.js +1 -0
  165. package/dist/components/xpl-list-item2.js +1 -0
  166. package/dist/components/xpl-list.js +1 -1
  167. package/dist/components/xpl-main-nav.js +1 -1
  168. package/dist/components/xpl-modal.js +1 -1
  169. package/dist/components/xpl-nav-header-menu.d.ts +11 -0
  170. package/dist/components/xpl-nav-header-menu.js +1 -0
  171. package/dist/components/xpl-nav-item.js +1 -1
  172. package/dist/components/xpl-pagination.js +1 -1
  173. package/dist/components/xpl-panel.js +1 -1
  174. package/dist/components/xpl-popover2.js +1 -1
  175. package/dist/components/xpl-progress-bar.js +1 -1
  176. package/dist/components/xpl-progress-indicator.d.ts +11 -0
  177. package/dist/components/xpl-progress-indicator.js +1 -0
  178. package/dist/components/xpl-radio2.js +1 -1
  179. package/dist/components/xpl-secondary-nav.js +1 -1
  180. package/dist/components/xpl-select2.js +1 -1
  181. package/dist/components/xpl-side-nav-item.js +1 -1
  182. package/dist/components/xpl-side-nav.js +1 -1
  183. package/dist/components/xpl-skeleton.js +1 -1
  184. package/dist/components/xpl-slideout.js +1 -1
  185. package/dist/components/xpl-spotlight.d.ts +11 -0
  186. package/dist/components/xpl-spotlight.js +1 -0
  187. package/dist/components/xpl-tab-panel.js +1 -1
  188. package/dist/components/xpl-tab.js +1 -1
  189. package/dist/components/xpl-table-header.js +1 -1
  190. package/dist/components/xpl-table.js +1 -1
  191. package/dist/components/xpl-tabs.js +1 -1
  192. package/dist/components/xpl-tag2.js +1 -1
  193. package/dist/components/xpl-toast.js +1 -1
  194. package/dist/components/xpl-toggle.js +1 -1
  195. package/dist/components/xpl-toolbar.js +1 -1
  196. package/dist/components/xpl-tooltip2.js +1 -1
  197. package/dist/components/xpl-top-nav-item.d.ts +11 -0
  198. package/dist/components/xpl-top-nav-item.js +1 -0
  199. package/dist/components/xpl-top-nav-item2.js +1 -0
  200. package/dist/components/xpl-top-nav.d.ts +11 -0
  201. package/dist/components/xpl-top-nav.js +1 -0
  202. package/dist/components/xpl-utility-bar.js +1 -1
  203. package/dist/docs/xpl-avatar/readme.md +289 -15
  204. package/dist/docs/xpl-badge/readme.md +14 -9
  205. package/dist/docs/xpl-banner/readme.md +48 -11
  206. package/dist/docs/xpl-button/readme.md +28 -18
  207. package/dist/docs/xpl-calendar/readme.md +1 -1
  208. package/dist/docs/xpl-checkbox/readme.md +12 -11
  209. package/dist/docs/xpl-divider/readme.md +6 -4
  210. package/dist/docs/xpl-dropdown/readme.md +14 -12
  211. package/dist/docs/xpl-icon/readme.md +14 -2
  212. package/dist/docs/xpl-input/readme.md +66 -41
  213. package/dist/docs/xpl-input/xpl-input-color/readme.md +1 -0
  214. package/dist/docs/xpl-input/xpl-input-phone/readme.md +1 -0
  215. package/dist/docs/xpl-input/xpl-input-search/readme.md +175 -0
  216. package/dist/docs/xpl-input/xpl-input-time/readme.md +1 -0
  217. package/dist/docs/xpl-list/readme.md +320 -10
  218. package/dist/docs/xpl-list/xpl-list-item/readme.md +99 -0
  219. package/dist/docs/xpl-pagination/readme.md +1 -0
  220. package/dist/docs/xpl-panel/readme.md +108 -17
  221. package/dist/docs/xpl-popover/readme.md +2 -0
  222. package/dist/docs/xpl-progress-indicator/readme.md +234 -0
  223. package/dist/docs/xpl-radio/readme.md +6 -4
  224. package/dist/docs/xpl-select/readme.md +19 -16
  225. package/dist/docs/xpl-side-nav/readme.md +2 -2
  226. package/dist/docs/xpl-slideout/readme.md +1 -1
  227. package/dist/docs/xpl-spotlight/readme.md +235 -0
  228. package/dist/docs/xpl-tab/readme.md +43 -7
  229. package/dist/docs/xpl-tab-panel/readme.md +42 -0
  230. package/dist/docs/xpl-tabs/readme.md +62 -8
  231. package/dist/docs/xpl-tag/readme.md +379 -4
  232. package/dist/docs/xpl-toast/readme.md +1 -1
  233. package/dist/docs/xpl-top-nav/readme.md +179 -0
  234. package/dist/docs/xpl-top-nav/xpl-nav-header-menu/readme.md +81 -0
  235. package/dist/docs/xpl-top-nav/xpl-top-nav-item/readme.md +87 -0
  236. package/dist/esm/apollo-core.js +4 -4
  237. package/dist/esm/{index-C_Z2nG0p.js → index-C7bgJs6C.js} +18 -8
  238. package/dist/esm/loader.js +3 -3
  239. package/dist/esm/xpl-accordion.entry.js +3 -3
  240. package/dist/esm/xpl-application-shell.entry.js +2 -2
  241. package/dist/esm/{xpl-avatar_47.entry.js → xpl-avatar_54.entry.js} +3719 -536
  242. package/dist/esm/xpl-button-row.entry.js +2 -2
  243. package/dist/esm/xpl-calendar.entry.js +2 -2
  244. package/dist/esm/xpl-dynamic-table-cell.entry.js +3 -3
  245. package/dist/esm/xpl-dynamic-table-row.entry.js +3 -3
  246. package/dist/esm/xpl-dynamic-table.entry.js +2 -2
  247. package/dist/esm/xpl-grid-item.entry.js +2 -2
  248. package/dist/esm/xpl-grid.entry.js +2 -2
  249. package/dist/esm/xpl-large-card.entry.js +2 -2
  250. package/dist/esm/xpl-main-nav.entry.js +2 -2
  251. package/dist/esm/xpl-table-header-cell.entry.js +1 -1
  252. package/dist/esm/xpl-table-header.entry.js +2 -2
  253. package/dist/esm/xpl-toggle.entry.js +4 -4
  254. package/dist/esm/xpl-toolbar.entry.js +3 -3
  255. package/dist/types/components/xpl-avatar/avatar.stories.d.ts +88 -29
  256. package/dist/types/components/xpl-avatar/xpl-avatar.d.ts +29 -2
  257. package/dist/types/components/xpl-badge/badge.stories.d.ts +0 -19
  258. package/dist/types/components/xpl-button/xpl-button.d.ts +7 -0
  259. package/dist/types/components/xpl-checkbox/xpl-checkbox.d.ts +2 -1
  260. package/dist/types/components/xpl-dropdown/xpl-dropdown.d.ts +5 -0
  261. package/dist/types/components/xpl-input/input.stories.d.ts +1 -0
  262. package/dist/types/components/xpl-input/xpl-input-search/xpl-input-search.d.ts +39 -0
  263. package/dist/types/components/xpl-input/xpl-input.d.ts +13 -5
  264. package/dist/types/components/xpl-list/list.stories.d.ts +299 -13
  265. package/dist/types/components/xpl-list/listitem.d.ts +13 -0
  266. package/dist/types/components/xpl-list/xpl-list-item/xpl-list-item.d.ts +71 -0
  267. package/dist/types/components/xpl-list/xpl-list.d.ts +55 -2
  268. package/dist/types/components/xpl-pagination/pagination.stories.d.ts +13 -0
  269. package/dist/types/components/xpl-panel/panel.stories.d.ts +2 -0
  270. package/dist/types/components/xpl-progress-indicator/progress-indicator.stories.d.ts +62 -0
  271. package/dist/types/components/xpl-progress-indicator/xpl-progress-indicator.d.ts +11 -0
  272. package/dist/types/components/xpl-select/xpl-select.d.ts +3 -0
  273. package/dist/types/components/xpl-spotlight/spotlight.stories.d.ts +197 -0
  274. package/dist/types/components/xpl-spotlight/xpl-spotlight.d.ts +101 -0
  275. package/dist/types/components/xpl-tab/xpl-tab.d.ts +14 -1
  276. package/dist/types/components/xpl-tab-panel/xpl-tab-panel.d.ts +2 -1
  277. package/dist/types/components/xpl-tabs/segment-control.stories.d.ts +112 -0
  278. package/dist/types/components/xpl-tabs/tabs.shared.d.ts +156 -0
  279. package/dist/types/components/xpl-tabs/tabs.stories.d.ts +65 -12
  280. package/dist/types/components/xpl-tabs/xpl-tabs.d.ts +37 -18
  281. package/dist/types/components/xpl-tag/tag.stories.d.ts +65 -0
  282. package/dist/types/components/xpl-tag/xpl-tag.d.ts +36 -1
  283. package/dist/types/components/xpl-top-nav/top-nav.stories.d.ts +471 -0
  284. package/dist/types/components/xpl-top-nav/xpl-nav-header-menu/xpl-nav-header-menu.d.ts +18 -0
  285. package/dist/types/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.d.ts +48 -0
  286. package/dist/types/components/xpl-top-nav/xpl-top-nav.d.ts +51 -0
  287. package/dist/types/components.d.ts +1521 -83
  288. package/dist/types/utils/lifecycle.d.ts +16 -0
  289. package/dist/types/utils/tab-a11y-ids.d.ts +4 -0
  290. package/package.json +12 -3
  291. package/dist/apollo-core/p-0bce3874.entry.js +0 -1
  292. package/dist/apollo-core/p-1fd3dc87.entry.js +0 -1
  293. package/dist/apollo-core/p-56fa4941.entry.js +0 -1
  294. package/dist/apollo-core/p-76c324da.entry.js +0 -1
  295. package/dist/apollo-core/p-7a3224b4.entry.js +0 -1
  296. package/dist/apollo-core/p-7e924697.entry.js +0 -1
  297. package/dist/apollo-core/p-9efca9e1.entry.js +0 -1
  298. package/dist/apollo-core/p-b252b380.entry.js +0 -1
  299. package/dist/apollo-core/p-c91daac1.entry.js +0 -1
  300. package/dist/apollo-core/p-d9b62508.entry.js +0 -1
  301. package/dist/apollo-core/p-eaea16d1.entry.js +0 -1
  302. package/dist/apollo-core/p-eed13bca.entry.js +0 -1
  303. package/dist/cjs/xpl-list.cjs.entry.js +0 -32
  304. package/dist/collection/components/xpl-progress/progress.stories.js +0 -106
  305. package/dist/collection/components/xpl-progress/xpl-progress.js +0 -60
  306. package/dist/components/xpl-progress.js +0 -1
  307. package/dist/docs/xpl-progress/readme.md +0 -22
  308. package/dist/esm/xpl-list.entry.js +0 -30
  309. package/dist/types/components/xpl-progress/progress.stories.d.ts +0 -38
  310. package/dist/types/components/xpl-progress/xpl-progress.d.ts +0 -6
@@ -7,17 +7,18 @@ Checkboxes allow users to make selections or choices. Checkboxes can be multi-se
7
7
 
8
8
  ## Properties
9
9
 
10
- | Property | Attribute | Description | Type | Default |
11
- | --------------- | --------------- | ----------------------------------------------------------------------------------- | --------- | ----------- |
12
- | `checked` | `checked` | Whether the input is checked | `boolean` | `undefined` |
13
- | `dataId` | `data-id` | A custom data attribute for the checkbox | `string` | `undefined` |
14
- | `description` | `description` | Description text for the field | `string` | `undefined` |
15
- | `disabled` | `disabled` | Whether the input is disabled | `boolean` | `undefined` |
16
- | `indeterminate` | `indeterminate` | A visual state for when the input has not been interacted with | `boolean` | `undefined` |
17
- | `name` | `name` | The name attribute for the html input. (submitted in form as name/value pair) | `string` | `undefined` |
18
- | `required` | `required` | Whether the input is required | `boolean` | `undefined` |
19
- | `styled` | `styled` | Whether the input is contained in a box with a border and a background | `boolean` | `undefined` |
20
- | `value` | `value` | The value attribute for the checkbox input. (submittted in form as name/value pair) | `string` | `undefined` |
10
+ | Property | Attribute | Description | Type | Default |
11
+ | --------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | ----------- |
12
+ | `ariaLabel` | `aria-label` | Accessible name for the native checkbox input (sets `aria-label` on the `input`). Use when there is no visible label text in the default slot. Defaults to `''`; empty or whitespace-only values omit `aria-label` on the input so a visible `<label>` remains the sole name source. | `string` | `''` |
13
+ | `checked` | `checked` | Whether the input is checked | `boolean` | `undefined` |
14
+ | `dataId` | `data-id` | A custom data attribute for the checkbox | `string` | `undefined` |
15
+ | `description` | `description` | Description text for the field | `string` | `undefined` |
16
+ | `disabled` | `disabled` | Whether the input is disabled | `boolean` | `undefined` |
17
+ | `indeterminate` | `indeterminate` | A visual state for when the input has not been interacted with | `boolean` | `undefined` |
18
+ | `name` | `name` | The name attribute for the html input. (submitted in form as name/value pair) | `string` | `undefined` |
19
+ | `required` | `required` | Whether the input is required | `boolean` | `undefined` |
20
+ | `styled` | `styled` | Whether the input is contained in a box with a border and a background | `boolean` | `undefined` |
21
+ | `value` | `value` | The value attribute for the checkbox input. (submittted in form as name/value pair) | `string` | `undefined` |
21
22
 
22
23
 
23
24
  ## Events
@@ -1,7 +1,7 @@
1
- # xpl-divider
2
-
3
- Allows for easy separation and titling of sections within forms or other content.
4
-
1
+ # xpl-divider
2
+
3
+ Allows for easy separation and titling of sections within forms or other content.
4
+
5
5
  <!-- Auto Generated Below -->
6
6
 
7
7
 
@@ -16,11 +16,13 @@ Allows for easy separation and titling of sections within forms or other content
16
16
 
17
17
  ### Used by
18
18
 
19
+ - [xpl-list-item](../xpl-list/xpl-list-item)
19
20
  - [xpl-slideout](../xpl-slideout)
20
21
 
21
22
  ### Graph
22
23
  ```mermaid
23
24
  graph TD;
25
+ xpl-list-item --> xpl-divider
24
26
  xpl-slideout --> xpl-divider
25
27
  style xpl-divider fill:#f9f,stroke:#333,stroke-width:4px
26
28
  ```
@@ -3,24 +3,26 @@
3
3
  A Dropdown is a menu with a list of actions a user can take. Use a dropdown when you want to present a list of actions in a limited space. Dropdowns are single-select ***actions***, can be presented in groups, and can be triggered by other elements such as a button, icon, text etc.
4
4
  A selection within a dropdown does not change the parent trigger.
5
5
 
6
- ***If you want to present a list of **options** a user can select, or multi-select options, please use [XPL-Select](https://xplor-apollo.herokuapp.com/?path=/story/components-select--select).***
6
+ ***If you want to present a list of **options** a user can select, or multi-select options, please use [XPL-Select](https://apollo.xplordocs.com/?path=/story/components-select--select).***
7
7
 
8
8
  <!-- Auto Generated Below -->
9
9
 
10
10
 
11
11
  ## Properties
12
12
 
13
- | Property | Attribute | Description | Type | Default |
14
- | ----------------- | ------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------- | ----------- |
15
- | `anchorToTrigger` | `anchor-to-trigger` | whether to anchor the dropdown to the trigger element, requires triggerId to be set | `boolean` | `false` |
16
- | `closeOnSelect` | `close-on-select` | options that are listed | `boolean` | `true` |
17
- | `isOpen` | `open` | text to display as heading | `boolean` | `false` |
18
- | `mode` | `mode` | constant representing number of options that can be selected | `"multi" \| "single"` | `'single'` |
19
- | `options` | -- | options that are listed | `Partial<DropdownOption & DropdownOptionGroup>[]` | `undefined` |
20
- | `selectOnFocus` | `select-on-focus` | whether selection should be made when focusing on interactive element | `boolean` | `false` |
21
- | `selectedValues` | `selected-values` | The currently selected value(s) in the dropdown. | `string \| string[]` | `undefined` |
22
- | `triggerId` | `trigger-id` | the id for the element that triggers the open state | `string` | `undefined` |
23
- | `update` | -- | call back function invoked when a selection is made | `(e: any, { component }: { component: Dropdown; }) => void` | `undefined` |
13
+ | Property | Attribute | Description | Type | Default |
14
+ | ------------------------ | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
15
+ | `anchorToTrigger` | `anchor-to-trigger` | whether to anchor the dropdown to the trigger element, requires triggerId to be set | `boolean` | `false` |
16
+ | `closeOnSelect` | `close-on-select` | options that are listed | `boolean` | `true` |
17
+ | `flipFallbackPlacements` | -- | When `anchorToTrigger` is true, additional placements to try when the default `placement` does not fit (passed to Floating UI `flip`). | `Placement[]` | `undefined` |
18
+ | `isOpen` | `open` | text to display as heading | `boolean` | `false` |
19
+ | `mode` | `mode` | constant representing number of options that can be selected | `"multi" \| "single"` | `'single'` |
20
+ | `options` | -- | options that are listed | `Partial<DropdownOption & DropdownOptionGroup>[]` | `undefined` |
21
+ | `placement` | `placement` | Floating UI placement when `anchorToTrigger` is true (e.g. `bottom-start`, `top-start`). | `"bottom" \| "bottom-end" \| "bottom-start" \| "left" \| "left-end" \| "left-start" \| "right" \| "right-end" \| "right-start" \| "top" \| "top-end" \| "top-start"` | `'bottom-start'` |
22
+ | `selectOnFocus` | `select-on-focus` | whether selection should be made when focusing on interactive element | `boolean` | `false` |
23
+ | `selectedValues` | `selected-values` | The currently selected value(s) in the dropdown. | `string \| string[]` | `undefined` |
24
+ | `triggerId` | `trigger-id` | the id for the element that triggers the open state | `string` | `undefined` |
25
+ | `update` | -- | call back function invoked when a selection is made | `(e: any, { component }: { component: Dropdown; }) => void` | `undefined` |
24
26
 
25
27
 
26
28
  ## Events
@@ -43,18 +43,24 @@ The `icon` property accepts any icon name as a string. See the links above for t
43
43
  - [xpl-input-date](../xpl-input/xpl-input-date)
44
44
  - [xpl-input-file](../xpl-input/xpl-input-file)
45
45
  - [xpl-input-phone](../xpl-input/xpl-input-phone)
46
+ - [xpl-input-search](../xpl-input/xpl-input-search)
46
47
  - [xpl-input-time](../xpl-input/xpl-input-time)
47
48
  - [xpl-large-card](../xpl-large-card)
48
- - [xpl-list](../xpl-list)
49
+ - [xpl-list-item](../xpl-list/xpl-list-item)
49
50
  - [xpl-modal](../xpl-modal)
50
51
  - [xpl-pagination](../xpl-pagination)
51
52
  - [xpl-progress-bar](../xpl-progress-bar)
53
+ - [xpl-progress-indicator](../xpl-progress-indicator)
52
54
  - [xpl-select](../xpl-select)
53
55
  - [xpl-side-nav-item](../xpl-side-nav/xpl-side-nav-item)
54
56
  - [xpl-slideout](../xpl-slideout)
57
+ - [xpl-spotlight](../xpl-spotlight)
55
58
  - [xpl-table](../xpl-table)
56
59
  - [xpl-table-header-cell](../xpl-table-header-cell)
60
+ - [xpl-tag](../xpl-tag)
57
61
  - [xpl-toast](../xpl-toast)
62
+ - [xpl-top-nav](../xpl-top-nav)
63
+ - [xpl-top-nav-item](../xpl-top-nav/xpl-top-nav-item)
58
64
  - [xpl-utility-bar](../xpl-utility-bar)
59
65
 
60
66
  ### Graph
@@ -71,18 +77,24 @@ graph TD;
71
77
  xpl-input-date --> xpl-icon
72
78
  xpl-input-file --> xpl-icon
73
79
  xpl-input-phone --> xpl-icon
80
+ xpl-input-search --> xpl-icon
74
81
  xpl-input-time --> xpl-icon
75
82
  xpl-large-card --> xpl-icon
76
- xpl-list --> xpl-icon
83
+ xpl-list-item --> xpl-icon
77
84
  xpl-modal --> xpl-icon
78
85
  xpl-pagination --> xpl-icon
79
86
  xpl-progress-bar --> xpl-icon
87
+ xpl-progress-indicator --> xpl-icon
80
88
  xpl-select --> xpl-icon
81
89
  xpl-side-nav-item --> xpl-icon
82
90
  xpl-slideout --> xpl-icon
91
+ xpl-spotlight --> xpl-icon
83
92
  xpl-table --> xpl-icon
84
93
  xpl-table-header-cell --> xpl-icon
94
+ xpl-tag --> xpl-icon
85
95
  xpl-toast --> xpl-icon
96
+ xpl-top-nav --> xpl-icon
97
+ xpl-top-nav-item --> xpl-icon
86
98
  xpl-utility-bar --> xpl-icon
87
99
  style xpl-icon fill:#f9f,stroke:#333,stroke-width:4px
88
100
  ```
@@ -1,58 +1,80 @@
1
1
  # xpl-input
2
2
 
3
- A flexible form input that supports multiple `type` values: `text`, `number`, `password`, `date`, `time`, `file`, `color`, and `phone`. Each type delegates to a dedicated sub-component (`xpl-input-date`, `xpl-input-time`, `xpl-input-phone`, etc.) while sharing a common label, description, and error-message wrapper.
3
+ A flexible form input that supports multiple `type` values: `text`, `number`, `password`, `date`, `time`, `file`, `color`, `phone`, and `search`. Each type delegates to a dedicated sub-component (`xpl-input-date`, `xpl-input-time`, `xpl-input-phone`, `xpl-input-search`, etc.) while sharing a common label, description, and error-message wrapper.
4
4
 
5
5
  For `type="phone"`, the value is always emitted in **E.164** format (e.g. `+14155551234`). See [`xpl-input-phone`](xpl-input-phone) for full phone-input documentation.
6
6
 
7
+ ### Delegated types (`search`, `phone`, `date`, `time`, …)
8
+
9
+ `valueChange`, `inputEvent`, `focusEvent`, and `blurEvent` are emitted by the inner component and **bubble** to `<xpl-input>`. For **`type="search"`**, **`focusEvent`** and **`blurEvent`** are **re-emitted from `<xpl-input>`** (parent uses **`onFocusEvent`** / **`onBlurEvent`** on **`<xpl-input-search>`** with **`stopPropagation`**) so **`event.target`** matches **`type="text"`**. For **`valueChange`** and **`inputEvent`** on search, events still **bubble** from **`xpl-input-search`** without parent re-emission; **`event.target`** may be the inner host—prefer **`event.detail`** (the string) or **`event.currentTarget`** when you attach the listener on **`<xpl-input>`**. Other delegated types follow the same **`event.detail`** / **`event.currentTarget`** guidance.
10
+
11
+ For **`type="search"`** commit: **`<xpl-input-search>`** defines a Stencil **`@Event() search`** (trimmed query in **`detail`**). **`<xpl-input>`** listens with **`onSearch`** on the inner tag, **`stopPropagation`s**, then **`this.search.emit(detail)`** so the canonical **`search`** **`@Event`** stays on **`<xpl-input>`** and listeners are not doubled. **`setFocus()`** on **`<xpl-input>`** uses a **`ref`** to the inner component to delegate focus.
12
+
7
13
  <!-- Auto Generated Below -->
8
14
 
9
15
 
10
16
  ## Properties
11
17
 
12
- | Property | Attribute | Description | Type | Default |
13
- | --------------------- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------- |
14
- | `_id` | `_id` | Because `id` is a reserved HTMLElement attribute, we prefix it with an underscore here so that it doesn't get automatically applied to the outer container. Applies to all input types. | `string` | `undefined` |
15
- | `accept` | `accept` | The accepted file types for the file input. Corresponds to the `accept` attribute on the input element. Example: 'image/*' for all image types, '.pdf' for PDF files, etc. Applies to file inputs. | `string` | `''` |
16
- | `allowCustomOption` | `allow-custom-option` | For time inputs, whether to allow custom option in the input even if not available in the dropdown. Example: A step of 30 minutes will allow 15:03, 15:37, etc. Applies to time inputs. | `boolean` | `false` |
17
- | `autocomplete` | `autocomplete` | Hint for form autofill feature Applies to text, password, number. | `string` | `undefined` |
18
- | `dateFormat` | `date-format` | The date format to use for the datepicker input. This is used by flatpickr to format the date. Default is 'Y-m-d' (e.g., 2023-10-01). See https://flatpickr.js.org/formatting/ for more details. Applies to date inputs. | `string` | `'Y-m-d'` |
19
- | `defaultCountry` | `default-country` | Default country code (ISO 3166-1 alpha-2) when value is empty, e.g. "US". Applies to phone inputs. | `string` | `'US'` |
20
- | `description` | `description` | Optional text that appears below the input label. Applies to all input types. | `string` | `undefined` |
21
- | `disabled` | `disabled` | Whether the field is disabled Applies to all input types. | `boolean` | `undefined` |
22
- | `error` | `error` | If an empty string (attribute present with no value), will display visually as an error. If a string is included, will display visually as an error and include the value as an error message. Applies to all input types. | `string` | `undefined` |
23
- | `hideAcceptText` | `hide-accept-text` | Hides the "Accept" text that indicates the accepted file types This is useful for cases where you want to hide the "Accept" text. Applies to file inputs. | `boolean` | `false` |
24
- | `hideEyeDropper` | `hide-eye-dropper` | Hide eye dropper Applies to color inputs. | `boolean` | `undefined` |
25
- | `hideFileNames` | `hide-file-names` | Hides the file names in the file upload component This is useful for cases where you want to hide the file names after selection. Applies to file inputs. | `boolean` | `false` |
26
- | `hideTriggerOnSelect` | `hide-trigger-on-select` | Hides the trigger element when a file is selected. This is useful for cases where you want to hide the trigger after a file is selected. Applies to file inputs. | `boolean` | `false` |
27
- | `isInternational` | `is-international` | Enables international mode with country selector for phone inputs. When false, the phone input is locked to defaultCountry with no country picker. | `boolean` | `true` |
28
- | `label` | `label` | Label text for the field Applies to all input types. | `string` | `undefined` |
29
- | `max` | `max` | Maximum value for the input. Applies to number, time, and date inputs. If the input is a time input, the value must be in 24 hour format, ex: 18:25 for 6:25 PM | `number \| string` | `undefined` |
30
- | `maxCharacterCount` | `max-character-count` | For multiline inputs, a max. character count will display along with the current character count, and will automatically render as an error if the character count exceeds the max. This is only applicable if `multiline` is `true`. | `number` | `undefined` |
31
- | `min` | `min` | The minimum value for the input. Applies to number, time, and date inputs. If the input is a time input, the value must be in 24 hour format, ex: 05:25 for 5:25 AM | `number \| string` | `undefined` |
32
- | `mode` | `mode` | For datepicker inputs, whether to allow only a single date or a range of dates. (Multiple non-consecutive dates planned to be supported in the future.) Applies to date inputs. | `"range" \| "single"` | `'single'` |
33
- | `multiline` | `multiline` | Whether to render as a singleline text input or as a multiline textarea. (If `true`, `pre` and `post` values will be ignored, if present.) Applies to text inputs. | `boolean` | `false` |
34
- | `multiple` | `multiple` | Whether the user can select multiple files at once. Corresponds to the `multiple` attribute on the input element. Applies to file inputs. | `boolean` | `false` |
35
- | `name` | `name` | Most inputs are used in forms, and should have a `name` associated with the input for handling form data. Applies to all input types. | `string` | `undefined` |
36
- | `placeholder` | `placeholder` | Placeholder text that appears when the field has no value Applies to text, password, number, and date inputs. | `string` | `undefined` |
37
- | `post` | `post` | A string (recommended max 3 characters) that gets shown visually to the left of (before) the input. Applies to text, password, number, and date inputs. Note: This will be ignored if `multiline` is `true`. | `string` | `undefined` |
38
- | `pre` | `pre` | A string (recommended max 8 characters) that gets shown visually to the right of (after) the input. Applies to text, password, number, and date inputs. Note: This will be ignored if `multiline` is `true`. | `string` | `undefined` |
39
- | `preferredCountries` | -- | Country codes to show at the top of the country list, e.g. ["US", "CA", "GB"]. Applies to phone inputs. | `string[]` | `undefined` |
40
- | `readonly` | `readonly` | Whether the input is editable Applies to text, password, number, and date inputs. | `boolean` | `undefined` |
41
- | `required` | `required` | Whether the input is required Applies to all input types. | `boolean` | `undefined` |
42
- | `step` | `step` | The granularity that the value in a `number` input must adhere to when incrementing or decrementing. The default stepping value for number inputs is 1 Applies to number and time inputs. | `number` | `undefined` |
43
- | `timeFormat` | `time-format` | The time format to display for the input. Applies to time inputs. If 12h is selected, the value will be displayed in 12 hour format, ex: 05:25 PM for 17:25 If 24h is selected, the value will be displayed in 24 hour format, ex: 17:25 for 17:25 | `"12h" \| "24h"` | `'24h'` |
44
- | `type` | `type` | The type of form control | `"color" \| "date" \| "file" \| "number" \| "password" \| "phone" \| "text" \| "time"` | `'text'` |
45
- | `value` | `value` | Including a `value` will pre-populate the input with the given string. Applies to text, password, number, and date inputs. | `string` | `undefined` |
18
+ | Property | Attribute | Description | Type | Default |
19
+ | --------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ----------- |
20
+ | `_id` | `_id` | Because `id` is a reserved HTMLElement attribute, we prefix it with an underscore here so that it doesn't get automatically applied to the outer container. Applies to all input types. | `string` | `undefined` |
21
+ | `accept` | `accept` | The accepted file types for the file input. Corresponds to the `accept` attribute on the input element. Example: 'image/*' for all image types, '.pdf' for PDF files, etc. Applies to file inputs. | `string` | `''` |
22
+ | `allowCustomOption` | `allow-custom-option` | For time inputs, whether to allow custom option in the input even if not available in the dropdown. Example: A step of 30 minutes will allow 15:03, 15:37, etc. Applies to time inputs. | `boolean` | `false` |
23
+ | `ariaLabel` | `aria-label` | Accessible name for search inputs when there is no visible `label` (after trim). Ignored for naming when a visible label is shown. Defaults to `''`; whitespace-only values are treated as missing and fall back to `'Search'` so the field is never unnamed when there is no visible label. Applies to search inputs (`type="search"`). | `string` | `''` |
24
+ | `autocomplete` | `autocomplete` | Hint for form autofill feature Applies to text, password, number, and search inputs. | `string` | `undefined` |
25
+ | `dateFormat` | `date-format` | The date format to use for the datepicker input. This is used by flatpickr to format the date. Default is 'Y-m-d' (e.g., 2023-10-01). See https://flatpickr.js.org/formatting/ for more details. Applies to date inputs. | `string` | `'Y-m-d'` |
26
+ | `defaultCountry` | `default-country` | Default country code (ISO 3166-1 alpha-2) when value is empty, e.g. "US". Applies to phone inputs. | `string` | `'US'` |
27
+ | `description` | `description` | Optional text that appears below the input label. Applies to all input types. | `string` | `undefined` |
28
+ | `disabled` | `disabled` | Whether the field is disabled Applies to all input types. | `boolean` | `undefined` |
29
+ | `error` | `error` | If an empty string (attribute present with no value), will display visually as an error. If a string is included, will display visually as an error and include the value as an error message. Applies to all input types. | `string` | `undefined` |
30
+ | `hideAcceptText` | `hide-accept-text` | Hides the "Accept" text that indicates the accepted file types This is useful for cases where you want to hide the "Accept" text. Applies to file inputs. | `boolean` | `false` |
31
+ | `hideEyeDropper` | `hide-eye-dropper` | Hide eye dropper Applies to color inputs. | `boolean` | `undefined` |
32
+ | `hideFileNames` | `hide-file-names` | Hides the file names in the file upload component This is useful for cases where you want to hide the file names after selection. Applies to file inputs. | `boolean` | `false` |
33
+ | `hideTriggerOnSelect` | `hide-trigger-on-select` | Hides the trigger element when a file is selected. This is useful for cases where you want to hide the trigger after a file is selected. Applies to file inputs. | `boolean` | `false` |
34
+ | `isInternational` | `is-international` | Enables international mode with country selector for phone inputs. When false, the phone input is locked to defaultCountry with no country picker. | `boolean` | `true` |
35
+ | `label` | `label` | Label text for the field Applies to all input types. | `string` | `undefined` |
36
+ | `max` | `max` | Maximum value for the input. Applies to number, time, and date inputs. If the input is a time input, the value must be in 24 hour format, ex: 18:25 for 6:25 PM | `number \| string` | `undefined` |
37
+ | `maxCharacterCount` | `max-character-count` | For multiline inputs, a max. character count will display along with the current character count, and will automatically render as an error if the character count exceeds the max. This is only applicable if `multiline` is `true`. | `number` | `undefined` |
38
+ | `min` | `min` | The minimum value for the input. Applies to number, time, and date inputs. If the input is a time input, the value must be in 24 hour format, ex: 05:25 for 5:25 AM | `number \| string` | `undefined` |
39
+ | `mode` | `mode` | For datepicker inputs, whether to allow only a single date or a range of dates. (Multiple non-consecutive dates planned to be supported in the future.) Applies to date inputs. | `"range" \| "single"` | `'single'` |
40
+ | `multiline` | `multiline` | Whether to render as a singleline text input or as a multiline textarea. (If `true`, `pre` and `post` values will be ignored, if present.) Applies to text inputs. | `boolean` | `false` |
41
+ | `multiple` | `multiple` | Whether the user can select multiple files at once. Corresponds to the `multiple` attribute on the input element. Applies to file inputs. | `boolean` | `false` |
42
+ | `name` | `name` | Most inputs are used in forms, and should have a `name` associated with the input for handling form data. Applies to all input types. | `string` | `undefined` |
43
+ | `placeholder` | `placeholder` | Placeholder text that appears when the field has no value Applies to text, password, number, date, and search inputs. | `string` | `undefined` |
44
+ | `post` | `post` | A string (recommended max 3 characters) that gets shown visually to the left of (before) the input. Applies to text, password, number, and date inputs. Note: This will be ignored if `multiline` is `true`. | `string` | `undefined` |
45
+ | `pre` | `pre` | A string (recommended max 8 characters) that gets shown visually to the right of (after) the input. Applies to text, password, number, and date inputs. Note: This will be ignored if `multiline` is `true`. | `string` | `undefined` |
46
+ | `preferredCountries` | -- | Country codes to show at the top of the country list, e.g. ["US", "CA", "GB"]. Applies to phone inputs. | `string[]` | `undefined` |
47
+ | `readonly` | `readonly` | Whether the input is editable Applies to text, password, number, date, and search inputs. | `boolean` | `undefined` |
48
+ | `required` | `required` | Whether the input is required Applies to all input types. | `boolean` | `undefined` |
49
+ | `shape` | `shape` | Shell corner radius for search inputs: `rounded` (pill) or `box` (rounded rectangle). Applies to search inputs (`type="search"`). | `"box" \| "rounded"` | `undefined` |
50
+ | `step` | `step` | The granularity that the value in a `number` input must adhere to when incrementing or decrementing. The default stepping value for number inputs is 1 Applies to number and time inputs. | `number` | `undefined` |
51
+ | `timeFormat` | `time-format` | The time format to display for the input. Applies to time inputs. If 12h is selected, the value will be displayed in 12 hour format, ex: 05:25 PM for 17:25 If 24h is selected, the value will be displayed in 24 hour format, ex: 17:25 for 17:25 | `"12h" \| "24h"` | `'24h'` |
52
+ | `type` | `type` | The type of form control | `"color" \| "date" \| "file" \| "number" \| "password" \| "phone" \| "search" \| "text" \| "time"` | `'text'` |
53
+ | `value` | `value` | Including a `value` will pre-populate the input with the given string. Applies to text, password, number, date, and search inputs. | `string` | `undefined` |
46
54
 
47
55
 
48
56
  ## Events
49
57
 
50
- | Event | Description | Type |
51
- | ------------- | ---------------------------------------------------------------------------------- | ------------------------- |
52
- | `blurEvent` | The event handler for the blur event | `CustomEvent<FocusEvent>` |
53
- | `focusEvent` | The event handler for the focus event | `CustomEvent<FocusEvent>` |
54
- | `inputEvent` | Event that emits the current value of the input Applies to text like inputs only. | `CustomEvent<string>` |
55
- | `valueChange` | Event that emits the current value of the input | `CustomEvent<string>` |
58
+ | Event | Description | Type |
59
+ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
60
+ | `blurEvent` | The event handler for the blur event | `CustomEvent<FocusEvent>` |
61
+ | `focusEvent` | The event handler for the focus event | `CustomEvent<FocusEvent>` |
62
+ | `inputEvent` | Event that emits the current value of the input Applies to text-like inputs and search inputs. | `CustomEvent<string>` |
63
+ | `search` | Emitted when the user commits a search (Enter with no enclosing form owner, or submit of the internal search form). `event.detail` is the trimmed query string. Applies to search inputs (`type="search"`). | `CustomEvent<string>` |
64
+ | `valueChange` | Event that emits the current value of the input (including search fields). | `CustomEvent<string>` |
65
+
66
+
67
+ ## Methods
68
+
69
+ ### `setFocus() => Promise<void>`
70
+
71
+ Moves keyboard focus to the native control (text field, textarea, or search inner input).
72
+
73
+ #### Returns
74
+
75
+ Type: `Promise<void>`
76
+
77
+
56
78
 
57
79
 
58
80
  ## Dependencies
@@ -70,6 +92,7 @@ For `type="phone"`, the value is always emitted in **E.164** format (e.g. `+1415
70
92
  - [xpl-input-date](xpl-input-date)
71
93
  - [xpl-input-time](xpl-input-time)
72
94
  - [xpl-input-phone](xpl-input-phone)
95
+ - [xpl-input-search](xpl-input-search)
73
96
  - [xpl-icon](../xpl-icon)
74
97
 
75
98
  ### Graph
@@ -80,6 +103,7 @@ graph TD;
80
103
  xpl-input --> xpl-input-date
81
104
  xpl-input --> xpl-input-time
82
105
  xpl-input --> xpl-input-phone
106
+ xpl-input --> xpl-input-search
83
107
  xpl-input --> xpl-icon
84
108
  xpl-input-file --> xpl-icon
85
109
  xpl-input-color --> xpl-input
@@ -92,6 +116,7 @@ graph TD;
92
116
  xpl-dropdown-group --> xpl-dropdown-heading
93
117
  xpl-dropdown-option --> xpl-icon
94
118
  xpl-input-phone --> xpl-input
119
+ xpl-input-search --> xpl-icon
95
120
  style xpl-input fill:#f9f,stroke:#333,stroke-width:4px
96
121
  ```
97
122
 
@@ -57,6 +57,7 @@ graph TD;
57
57
  xpl-input-phone --> xpl-icon
58
58
  xpl-input-phone --> xpl-dropdown
59
59
  xpl-input-phone --> xpl-input
60
+ xpl-input-search --> xpl-icon
60
61
  style xpl-input-color fill:#f9f,stroke:#333,stroke-width:4px
61
62
  ```
62
63
 
@@ -159,6 +159,7 @@ graph TD;
159
159
  xpl-input-time --> xpl-input
160
160
  xpl-input-time --> xpl-icon
161
161
  xpl-input-time --> xpl-dropdown
162
+ xpl-input-search --> xpl-icon
162
163
  style xpl-input-phone fill:#f9f,stroke:#333,stroke-width:4px
163
164
  ```
164
165
 
@@ -0,0 +1,175 @@
1
+ # xpl-input-search
2
+
3
+ Inner search field used by [`xpl-input`](../readme.md) when `type="search"`. It provides a leading magnifier, a native text field with `role="searchbox"`, an optional clear control, and a `shape` shell (`rounded` pill vs `box`). You normally consume search through **`xpl-input`**; use `xpl-input-search` only when composing a custom shell that still matches Apollo search visuals.
4
+
5
+ ## Usage
6
+
7
+ ### Recommended: `xpl-input` with `type="search"`
8
+
9
+ Default pill shell (`shape` defaults to `rounded`), placeholder, and optional `name` for forms:
10
+
11
+ ```html
12
+ <xpl-input type="search" name="q" placeholder="Search products"></xpl-input>
13
+ ```
14
+
15
+ Visible label, description, `box` shape, and `autocomplete`:
16
+
17
+ ```html
18
+ <xpl-input
19
+ type="search"
20
+ label="Search catalog"
21
+ description="SKU or product name"
22
+ name="q"
23
+ placeholder="SKU or name"
24
+ shape="box"
25
+ autocomplete="search"
26
+ ></xpl-input>
27
+ ```
28
+
29
+ When there is no visible label, set `aria-label` on `xpl-input` (forwarded to the inner field for assistive naming):
30
+
31
+ ```html
32
+ <xpl-input type="search" aria-label="Search help topics" placeholder="Search…"></xpl-input>
33
+ ```
34
+
35
+ Error state (border, `aria-invalid`, and error text on the parent) and an initial value (clear control appears when there is text):
36
+
37
+ ```html
38
+ <xpl-input type="search" shape="box" error="Invalid query" value="abc"></xpl-input>
39
+ ```
40
+
41
+ Listening for submit and live updates (vanilla JS):
42
+
43
+ ```html
44
+ <xpl-input id="search" type="search" placeholder="Search"></xpl-input>
45
+ <script type="module">
46
+ const el = document.getElementById('search');
47
+ el.addEventListener('search', (e) => {
48
+ console.log('submit', e.detail); // trimmed string
49
+ });
50
+ el.addEventListener('valueChange', (e) => {
51
+ console.log('value', e.detail); // raw string
52
+ });
53
+ </script>
54
+ ```
55
+
56
+ ### Events on `<xpl-input type="search">`
57
+
58
+ `valueChange`, `inputEvent`, `focusEvent`, and `blurEvent` are Stencil **`@Event`s** on **`xpl-input-search`** and **bubble** to the **`<xpl-input>`** host. **`focusEvent`** / **`blurEvent`** are also **re-emitted from `<xpl-input>`** so **`event.target`** matches **`type="text"`** (see **`xpl-input`** readme). **`valueChange`** / **`inputEvent`** are **not** re-emitted by the parent; use **`event.detail`** for the string if you do not want to depend on **`event.target`**.
59
+
60
+ The **commit** signal is a Stencil **`search`** **`@Event`** on **`xpl-input-search`** (trimmed query in **`detail`**). **`xpl-input`** wires **`onSearch`** on the inner tag, **`stopPropagation`s**, and **`this.search.emit(detail)`** so the public **`search`** **`@Event`** remains on **`<xpl-input>`**. **`setFocus()`** on **`<xpl-input>`** uses a **`ref`** to call the inner **`setFocus()`** only.
61
+
62
+ For advanced composition you can render `<xpl-input-search>` directly. You must pass **`input-id`** (matches a `<label for="…">` when used with a visible label). Set **`disabled`** and **`has-error`** (plus **`error-message-id`** when invalid) for both accessibility and visuals: the host adds `xpl-input-search--disabled` / `xpl-input-search--error` so disabled and error chrome match the wrapped `xpl-input` case. When nested under `xpl-input type="search"`, those props are set for you from the parent.
63
+
64
+ ```html
65
+ <label class="xpl-input-label" for="sid">Search</label>
66
+ <xpl-input-search input-id="sid" name="q" placeholder="Search…"></xpl-input-search>
67
+ ```
68
+
69
+ ## Design tokens
70
+
71
+ | Part | Token |
72
+ | ---- | ----- |
73
+ | Host text (input inherits) | `--xpl-text-default` |
74
+ | Shell layout | `gap`: `--xpl-space-12`; horizontal padding: `--xpl-space-12`; `min-height` / `max-height`: `--xpl-size-250` |
75
+ | Shell fill (resting) | `--xpl-background-surface-default` |
76
+ | Shell `border-radius` (pill, default `shape="rounded"`) | `--xpl-border-radius-button` |
77
+ | Shell `border-radius` (`shape="box"`) | `--xpl-border-radius-small` |
78
+ | Shell border (resting) | `--xpl-border-default` |
79
+ | Shell border (input focus, empty) | `--xpl-border-active` |
80
+ | Shell border (input focus, with value) | `--xpl-border-focus` |
81
+ | Shell border (error, from parent `xpl-input`) | `--xpl-border-negative` |
82
+ | Disabled shell (parent) | `--xpl-background-action-disabled` |
83
+ | Input typography | `--xpl-font-family-default`, `--xpl-font-size-body`, `--xpl-font-weight-normal` |
84
+ | Placeholder | `--xpl-text-subdued` |
85
+ | Disabled text / placeholder (parent) | `--xpl-text-disabled` |
86
+ | Leading icon | `--xpl-icon-default` / `--xpl-icon-disabled` |
87
+ | Clear icon | `--xpl-icon-subtle` |
88
+ | Caret (focus, with value) | `--xpl-border-focus` |
89
+ | Caret (focus, error, parent) | `--xpl-border-negative` |
90
+
91
+ Light and dark mode use Foundation purpose-specific tokens only (no component `.dark` overrides).
92
+
93
+ ## Icon mapping
94
+
95
+ | Role | When | `xpl-icon` name | `size` |
96
+ | ---- | ---- | ----------------- | ------ |
97
+ | Leading search | Always (when the control renders) | `magnifier` | 20 |
98
+ | Clear | Value non-empty and not `disabled` | `circle-xmark` | 16 |
99
+
100
+ ## Accessibility
101
+
102
+ - **Role and naming:** The field uses a native `<input type="text">` with `role="searchbox"`. `type="text"` avoids browser search-field chrome that would clash with the design-system clear control. When the parent does not render a visible label, `aria-label` on the inner input defaults to `"Search"` unless `ariaLabel` / parent `aria-label` overrides it. With a visible label, the input is named via `<label for="…">` and redundant `aria-label` on the input is omitted.
103
+ - **`autocomplete`:** Default `off` is typical for inline search; set `autocomplete` on `xpl-input` for search fields when you need a specific token.
104
+ - **Errors:** With `xpl-input`, non-empty `error` sets `aria-invalid`, links the message with `aria-describedby`, and styles the shell from the parent host.
105
+ - **Keyboard — standalone `xpl-input-search`:** An inner `<form>` wraps the shell when the host is not already inside a `<form>`. **Enter** submits that inner form (default prevented); the host emits a Stencil **`search`** event (trimmed value in **`detail`**). Listen with **`addEventListener('search', …)`** on **`xpl-input-search`**. **Tab** visits the input and the clear control when visible.
106
+ - **Keyboard — inside a parent `<form>`:** The inner `<form>` is omitted. **Enter** uses native form submission; listen on the parent form’s **`submit`**. Use **`valueChange`** / **`inputEvent`** for live typing.
107
+ - **Clear control:** The clear button exposes **`aria-label="Clear search"`**. Activating it clears the value, emits **`valueChange`** / **`inputEvent`** with `''`, and refocuses the input. When **`disabled`** or **`readonly`** is true, the clear control is hidden and inert (no value mutation).
108
+
109
+ <!-- Auto Generated Below -->
110
+
111
+
112
+ ## Properties
113
+
114
+ | Property | Attribute | Description | Type | Default |
115
+ | ---------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ----------- |
116
+ | `ariaLabel` | `aria-label` | Accessible name when there is no visible label from the parent; maps to `aria-label` on the input. When the parent provides a visible label, the input is named by `<label for="…">` — this prop is ignored for naming. Empty or whitespace-only values are treated as missing and fall back to `'Search'` so the field is never unnamed. | `string` | `'Search'` |
117
+ | `autocomplete` | `autocomplete` | Passed to the native input (`autocomplete` attribute). Default `off` matches common inline-search UX; browsers may still apply heuristics. | `string` | `'off'` |
118
+ | `disabled` | `disabled` | Disables the field and clear control. | `boolean` | `false` |
119
+ | `errorMessageId` | `error-message-id` | Element id for `aria-describedby` when `hasError` (error message lives on `xpl-input`). | `string` | `undefined` |
120
+ | `hasError` | `has-error` | Set by `xpl-input` when `error` is shown — drives `aria-invalid` / `aria-describedby`. | `boolean` | `false` |
121
+ | `hasVisibleLabel` | `has-visible-label` | When true, parent `xpl-input` renders a visible label — omit `aria-label` on the input. | `boolean` | `false` |
122
+ | `inputId` _(required)_ | `input-id` | Associates the control with the parent `xpl-input` label (`for` / `id`). | `string` | `undefined` |
123
+ | `name` | `name` | Form field `name` on the native input. | `string` | `undefined` |
124
+ | `placeholder` | `placeholder` | Placeholder shown when the value is empty. | `string` | `'Search'` |
125
+ | `readonly` | `readonly` | Whether the input is editable. | `boolean` | `false` |
126
+ | `required` | `required` | Whether the input is required. | `boolean` | `false` |
127
+ | `shape` | `shape` | Shell corner radius: `rounded` (pill) or `box` (rounded rectangle). | `"box" \| "rounded"` | `'rounded'` |
128
+ | `value` | `value` | Current value (controlled-friendly). | `string` | `''` |
129
+
130
+
131
+ ## Events
132
+
133
+ | Event | Description | Type |
134
+ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
135
+ | `blurEvent` | Emitted when the inner control loses focus. When nested under `xpl-input type="search"`, this event bubbles to the `xpl-input` host (same event name as other input types). | `CustomEvent<FocusEvent>` |
136
+ | `focusEvent` | Emitted when the inner control receives focus. When nested under `xpl-input type="search"`, this event bubbles to the `xpl-input` host (same event name as other input types). | `CustomEvent<FocusEvent>` |
137
+ | `inputEvent` | Fired on every input change (typing, paste) and when the value is cleared — mirrors `xpl-input` text fields. When nested under `xpl-input type="search"`, bubbles to the `xpl-input` host. | `CustomEvent<string>` |
138
+ | `search` | Emitted when the user commits a search (Enter with no enclosing form owner, or submit of the inner search form). `event.detail` is the trimmed query string. When nested under `xpl-input type="search"`, the parent listens with `onSearch` and re-emits so the canonical `search` `@Event` stays on `xpl-input`. | `CustomEvent<string>` |
139
+ | `valueChange` | Fired on every input change (typing, paste) and when the value is cleared. `event.detail` is the raw `value` string (not trimmed). When nested under `xpl-input type="search"`, bubbles to the `xpl-input` host. | `CustomEvent<string>` |
140
+
141
+
142
+ ## Methods
143
+
144
+ ### `setFocus() => Promise<void>`
145
+
146
+ Moves keyboard focus to the search field.
147
+
148
+ #### Returns
149
+
150
+ Type: `Promise<void>`
151
+
152
+
153
+
154
+
155
+ ## Dependencies
156
+
157
+ ### Used by
158
+
159
+ - [xpl-input](..)
160
+
161
+ ### Depends on
162
+
163
+ - [xpl-icon](../../xpl-icon)
164
+
165
+ ### Graph
166
+ ```mermaid
167
+ graph TD;
168
+ xpl-input-search --> xpl-icon
169
+ xpl-input --> xpl-input-search
170
+ style xpl-input-search fill:#f9f,stroke:#333,stroke-width:4px
171
+ ```
172
+
173
+ ----------------------------------------------
174
+
175
+ *Built with [StencilJS](https://stenciljs.com/)*