@xplortech/apollo-core 2.5.0 → 2.6.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 (373) hide show
  1. package/.typings/apollo-components.html-data.json +393 -26
  2. package/build/style.css +4224 -1016
  3. package/dist/apollo-core/apollo-core.css +18 -27
  4. package/dist/apollo-core/apollo-core.esm.js +1 -1
  5. package/dist/apollo-core/p-02167464.entry.js +1 -0
  6. package/dist/apollo-core/p-0bce3874.entry.js +1 -0
  7. package/dist/apollo-core/{p-0e1877a2.entry.js → p-1fd3dc87.entry.js} +1 -1
  8. package/dist/apollo-core/{p-0ac33b3a.entry.js → p-42016063.entry.js} +1 -1
  9. package/dist/apollo-core/p-5549756c.entry.js +1 -0
  10. package/dist/apollo-core/p-56fa4941.entry.js +1 -0
  11. package/dist/apollo-core/p-76c324da.entry.js +1 -0
  12. package/dist/apollo-core/p-7a3224b4.entry.js +1 -0
  13. package/dist/apollo-core/p-7e924697.entry.js +1 -0
  14. package/dist/apollo-core/{p-f4c2626d.entry.js → p-8a1affce.entry.js} +1 -1
  15. package/dist/apollo-core/p-9efca9e1.entry.js +1 -0
  16. package/dist/apollo-core/p-C_Z2nG0p.js +2 -0
  17. package/dist/apollo-core/p-b252b380.entry.js +1 -0
  18. package/dist/apollo-core/p-c91daac1.entry.js +1 -0
  19. package/dist/apollo-core/p-d9b62508.entry.js +1 -0
  20. package/dist/apollo-core/p-eaea16d1.entry.js +1 -0
  21. package/dist/apollo-core/p-eed13bca.entry.js +1 -0
  22. package/dist/apollo-core/{p-4fab8172.entry.js → p-f5af9539.entry.js} +1 -1
  23. package/dist/cjs/apollo-core.cjs.js +3 -3
  24. package/dist/cjs/{index-D__N_vw2.js → index-DH6pgWru.js} +137 -87
  25. package/dist/cjs/loader.cjs.js +2 -2
  26. package/dist/cjs/xpl-accordion.cjs.entry.js +5 -5
  27. package/dist/cjs/xpl-application-shell.cjs.entry.js +4 -4
  28. package/dist/cjs/{xpl-avatar_41.cjs.entry.js → xpl-avatar_47.cjs.entry.js} +2802 -272
  29. package/dist/cjs/xpl-button-row.cjs.entry.js +4 -4
  30. package/dist/cjs/xpl-calendar.cjs.entry.js +4 -4
  31. package/dist/cjs/xpl-dynamic-table-cell.cjs.entry.js +5 -5
  32. package/dist/cjs/xpl-dynamic-table-row.cjs.entry.js +5 -5
  33. package/dist/cjs/xpl-dynamic-table.cjs.entry.js +4 -4
  34. package/dist/cjs/xpl-grid-item.cjs.entry.js +4 -4
  35. package/dist/cjs/xpl-grid.cjs.entry.js +4 -4
  36. package/dist/cjs/xpl-large-card.cjs.entry.js +4 -4
  37. package/dist/cjs/xpl-list.cjs.entry.js +4 -4
  38. package/dist/cjs/xpl-main-nav.cjs.entry.js +4 -4
  39. package/dist/cjs/xpl-table-header-cell.cjs.entry.js +3 -3
  40. package/dist/cjs/xpl-table-header.cjs.entry.js +4 -4
  41. package/dist/cjs/xpl-toggle.cjs.entry.js +6 -6
  42. package/dist/cjs/xpl-toolbar.cjs.entry.js +5 -5
  43. package/dist/collection/collection-manifest.json +9 -2
  44. package/dist/collection/components/xpl-accordion/accordion.stories.js +4 -0
  45. package/dist/collection/components/xpl-accordion/xpl-accordion.js +3 -3
  46. package/dist/collection/components/xpl-application-shell/application-shell.stories.js +4 -0
  47. package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +2 -2
  48. package/dist/collection/components/xpl-avatar/avatar.stories.js +4 -0
  49. package/dist/collection/components/xpl-avatar/xpl-avatar.js +3 -3
  50. package/dist/collection/components/xpl-backdrop/backdrop.stories.js +4 -0
  51. package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +2 -2
  52. package/dist/collection/components/xpl-badge/badge.stories.js +108 -33
  53. package/dist/collection/components/xpl-badge/xpl-badge.js +122 -14
  54. package/dist/collection/components/xpl-banner/banner.stories.js +64 -0
  55. package/dist/collection/components/xpl-banner/xpl-banner.js +295 -0
  56. package/dist/collection/components/xpl-breadcrumbs/breadcrumbs.stories.js +4 -0
  57. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +2 -2
  58. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +2 -2
  59. package/dist/collection/components/xpl-button/button.stories.js +102 -98
  60. package/dist/collection/components/xpl-button/xpl-button.js +183 -93
  61. package/dist/collection/components/xpl-button-row/xpl-button-row.js +2 -2
  62. package/dist/collection/components/xpl-calendar/calendar.stories.js +4 -0
  63. package/dist/collection/components/xpl-calendar/xpl-calendar.js +2 -2
  64. package/dist/collection/components/xpl-checkbox/checkbox.stories.js +4 -0
  65. package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +4 -4
  66. package/dist/collection/components/xpl-choicelist/choicelist.stories.js +4 -0
  67. package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +2 -2
  68. package/dist/collection/components/xpl-content-area/xpl-content-area.js +2 -2
  69. package/dist/collection/components/xpl-dashboard/xpl-dashboard.js +2 -2
  70. package/dist/collection/components/xpl-data-card/data-card.stories.js +4 -0
  71. package/dist/collection/components/xpl-data-card/xpl-data-card.js +3 -3
  72. package/dist/collection/components/xpl-divider/divider.stories.js +4 -0
  73. package/dist/collection/components/xpl-divider/xpl-divider.js +2 -2
  74. package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +2 -2
  75. package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +2 -2
  76. package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +29 -4
  77. package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +120 -79
  78. package/dist/collection/components/xpl-dynamic-table/xpl-dynamic-table.js +2 -2
  79. package/dist/collection/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.js +3 -3
  80. package/dist/collection/components/xpl-dynamic-table-row/xpl-dynamic-table-row.js +3 -3
  81. package/dist/collection/components/xpl-grid/xpl-grid.js +2 -2
  82. package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +2 -2
  83. package/dist/collection/components/xpl-header-accordion/xpl-header-accordion.js +2 -2
  84. package/dist/collection/components/xpl-icon/xpl-icon.js +3 -3
  85. package/dist/collection/components/xpl-input/input.stories.js +75 -9
  86. package/dist/collection/components/xpl-input/xpl-input-color/xpl-input-color.js +9 -9
  87. package/dist/collection/components/xpl-input/xpl-input-date/xpl-input-date.js +55 -17
  88. package/dist/collection/components/xpl-input/xpl-input-file/xpl-input-file.js +5 -5
  89. package/dist/collection/components/xpl-input/xpl-input-phone/phone-country-data.js +58 -0
  90. package/dist/collection/components/xpl-input/xpl-input-phone/phone-format.js +219 -0
  91. package/dist/collection/components/xpl-input/xpl-input-phone/xpl-input-phone.js +469 -0
  92. package/dist/collection/components/xpl-input/xpl-input-time/xpl-input-time.js +3 -3
  93. package/dist/collection/components/xpl-input/xpl-input.js +101 -7
  94. package/dist/collection/components/xpl-large-card/large-card.stories.js +4 -0
  95. package/dist/collection/components/xpl-large-card/xpl-large-card.js +2 -2
  96. package/dist/collection/components/xpl-list/xpl-list.js +2 -2
  97. package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +2 -2
  98. package/dist/collection/components/xpl-modal/modal.stories.js +4 -0
  99. package/dist/collection/components/xpl-modal/xpl-modal.js +2 -2
  100. package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +3 -3
  101. package/dist/collection/components/xpl-pagination/pagination.stories.js +4 -0
  102. package/dist/collection/components/xpl-pagination/xpl-pagination.js +4 -4
  103. package/dist/collection/components/xpl-panel/panel.stories.js +51 -0
  104. package/dist/collection/components/xpl-panel/xpl-panel.js +60 -0
  105. package/dist/collection/components/xpl-popover/popover.stories.js +4 -0
  106. package/dist/collection/components/xpl-popover/xpl-popover.js +5 -5
  107. package/dist/collection/components/xpl-progress/xpl-progress.js +2 -2
  108. package/dist/collection/components/xpl-progress-bar/progress-bar.stories.js +96 -0
  109. package/dist/collection/components/xpl-progress-bar/xpl-progress-bar.js +158 -0
  110. package/dist/collection/components/xpl-radio/xpl-radio.js +4 -4
  111. package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +2 -2
  112. package/dist/collection/components/xpl-select/xpl-select.js +7 -7
  113. package/dist/collection/components/xpl-side-nav/side-nav.stories.js +519 -0
  114. package/dist/collection/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.js +259 -0
  115. package/dist/collection/components/xpl-side-nav/xpl-side-nav.js +32 -0
  116. package/dist/collection/components/xpl-skeleton/xpl-skeleton.js +2 -2
  117. package/dist/collection/components/xpl-slideout/xpl-slideout.js +2 -2
  118. package/dist/collection/components/xpl-tab/xpl-tab.js +3 -3
  119. package/dist/collection/components/xpl-tab-panel/xpl-tab-panel.js +3 -3
  120. package/dist/collection/components/xpl-table/xpl-table.js +6 -6
  121. package/dist/collection/components/xpl-table-header/xpl-table-header.js +2 -2
  122. package/dist/collection/components/xpl-table-header-cell/xpl-table-header-cell.js +1 -1
  123. package/dist/collection/components/xpl-tabs/xpl-tabs.js +6 -6
  124. package/dist/collection/components/xpl-tag/xpl-tag.js +3 -3
  125. package/dist/collection/components/xpl-toast/xpl-toast.js +3 -3
  126. package/dist/collection/components/xpl-toggle/xpl-toggle.js +4 -4
  127. package/dist/collection/components/xpl-toolbar/xpl-toolbar.js +3 -3
  128. package/dist/collection/components/xpl-tooltip/xpl-tooltip.js +2 -2
  129. package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +2 -2
  130. package/dist/collection/utils/layout-ancestors.js +22 -0
  131. package/dist/components/index.js +1 -1
  132. package/dist/components/xpl-accordion.js +1 -1
  133. package/dist/components/xpl-application-shell.js +1 -1
  134. package/dist/components/xpl-avatar.js +1 -1
  135. package/dist/components/xpl-avatar2.js +1 -1
  136. package/dist/components/xpl-backdrop.js +1 -1
  137. package/dist/components/xpl-backdrop2.js +1 -1
  138. package/dist/components/xpl-badge.js +1 -1
  139. package/dist/components/xpl-badge2.js +1 -1
  140. package/dist/components/xpl-banner.d.ts +11 -0
  141. package/dist/components/xpl-banner.js +1 -0
  142. package/dist/components/xpl-breadcrumb-item.js +1 -1
  143. package/dist/components/xpl-breadcrumbs.js +1 -1
  144. package/dist/components/xpl-button-row.js +1 -1
  145. package/dist/components/xpl-button.js +1 -1
  146. package/dist/components/xpl-button2.js +1 -1
  147. package/dist/components/xpl-calendar.js +1 -1
  148. package/dist/components/xpl-checkbox.js +1 -1
  149. package/dist/components/xpl-checkbox2.js +1 -1
  150. package/dist/components/xpl-choicelist.js +1 -1
  151. package/dist/components/xpl-content-area.js +1 -1
  152. package/dist/components/xpl-dashboard.js +1 -1
  153. package/dist/components/xpl-data-card.js +1 -1
  154. package/dist/components/xpl-divider.js +1 -1
  155. package/dist/components/xpl-divider2.js +1 -1
  156. package/dist/components/xpl-dropdown-group.js +1 -1
  157. package/dist/components/xpl-dropdown-group2.js +1 -1
  158. package/dist/components/xpl-dropdown-heading.js +1 -1
  159. package/dist/components/xpl-dropdown-heading2.js +1 -1
  160. package/dist/components/xpl-dropdown-option.js +1 -1
  161. package/dist/components/xpl-dropdown-option2.js +1 -1
  162. package/dist/components/xpl-dropdown.js +1 -1
  163. package/dist/components/xpl-dropdown2.js +1 -1
  164. package/dist/components/xpl-dynamic-table-cell.js +1 -1
  165. package/dist/components/xpl-dynamic-table-row.js +1 -1
  166. package/dist/components/xpl-dynamic-table.js +1 -1
  167. package/dist/components/xpl-grid-item.js +1 -1
  168. package/dist/components/xpl-grid.js +1 -1
  169. package/dist/components/xpl-header-accordion.js +1 -1
  170. package/dist/components/xpl-icon.js +1 -1
  171. package/dist/components/xpl-icon2.js +1 -1
  172. package/dist/components/xpl-input-date.js +1 -1
  173. package/dist/components/xpl-input-date2.js +1 -1
  174. package/dist/components/xpl-input-file.js +1 -1
  175. package/dist/components/xpl-input-file2.js +1 -1
  176. package/dist/components/xpl-input-phone.d.ts +11 -0
  177. package/dist/components/xpl-input-phone.js +1 -0
  178. package/dist/components/xpl-input-time.js +1 -1
  179. package/dist/components/xpl-input.js +1 -1
  180. package/dist/components/xpl-input2.js +1 -1
  181. package/dist/components/xpl-large-card.js +1 -1
  182. package/dist/components/xpl-list.js +1 -1
  183. package/dist/components/xpl-main-nav.js +1 -1
  184. package/dist/components/xpl-modal.js +1 -1
  185. package/dist/components/xpl-nav-item.js +1 -1
  186. package/dist/components/xpl-pagination.js +1 -1
  187. package/dist/components/xpl-panel.d.ts +11 -0
  188. package/dist/components/xpl-panel.js +1 -0
  189. package/dist/components/xpl-popover.js +1 -1
  190. package/dist/components/xpl-popover2.js +1 -1
  191. package/dist/components/xpl-progress-bar.d.ts +11 -0
  192. package/dist/components/xpl-progress-bar.js +1 -0
  193. package/dist/components/xpl-progress.js +1 -1
  194. package/dist/components/xpl-radio.js +1 -1
  195. package/dist/components/xpl-radio2.js +1 -1
  196. package/dist/components/xpl-secondary-nav.js +1 -1
  197. package/dist/components/xpl-select.js +1 -1
  198. package/dist/components/xpl-select2.js +1 -1
  199. package/dist/components/xpl-side-nav-item.d.ts +11 -0
  200. package/dist/components/xpl-side-nav-item.js +1 -0
  201. package/dist/components/xpl-side-nav.d.ts +11 -0
  202. package/dist/components/xpl-side-nav.js +1 -0
  203. package/dist/components/xpl-skeleton.js +1 -1
  204. package/dist/components/xpl-slideout.js +1 -1
  205. package/dist/components/xpl-tab-panel.js +1 -1
  206. package/dist/components/xpl-tab.js +1 -1
  207. package/dist/components/xpl-table-header.js +1 -1
  208. package/dist/components/xpl-table.js +1 -1
  209. package/dist/components/xpl-tabs.js +1 -1
  210. package/dist/components/xpl-tag.js +1 -1
  211. package/dist/components/xpl-tag2.js +1 -1
  212. package/dist/components/xpl-toast.js +1 -1
  213. package/dist/components/xpl-toggle.js +1 -1
  214. package/dist/components/xpl-toolbar.js +1 -1
  215. package/dist/components/xpl-tooltip.js +1 -1
  216. package/dist/components/xpl-tooltip2.js +1 -1
  217. package/dist/components/xpl-utility-bar.js +1 -1
  218. package/dist/docs/xpl-accordion/readme.md +4 -0
  219. package/dist/docs/xpl-avatar/readme.md +5 -0
  220. package/dist/docs/xpl-backdrop/readme.md +1 -1
  221. package/dist/docs/xpl-badge/readme.md +97 -4
  222. package/dist/docs/xpl-banner/readme.md +166 -0
  223. package/dist/docs/xpl-button/readme.md +151 -14
  224. package/dist/docs/xpl-button-row/readme.md +1 -0
  225. package/dist/docs/xpl-calendar/readme.md +2 -1
  226. package/dist/docs/xpl-checkbox/readme.md +2 -0
  227. package/dist/docs/xpl-choicelist/readme.md +1 -0
  228. package/dist/docs/xpl-data-card/readme.md +2 -2
  229. package/dist/docs/xpl-divider/readme.md +1 -1
  230. package/dist/docs/xpl-dropdown/readme.md +14 -11
  231. package/dist/docs/xpl-dropdown/xpl-dropdown-group/readme.md +1 -0
  232. package/dist/docs/xpl-dropdown/xpl-dropdown-option/readme.md +6 -0
  233. package/dist/docs/xpl-icon/readme.md +12 -0
  234. package/dist/docs/xpl-input/readme.md +41 -31
  235. package/dist/docs/xpl-input/xpl-input-color/readme.md +4 -0
  236. package/dist/docs/xpl-input/xpl-input-phone/readme.md +167 -0
  237. package/dist/docs/xpl-input/xpl-input-time/readme.md +4 -0
  238. package/dist/docs/xpl-large-card/readme.md +1 -1
  239. package/dist/docs/xpl-modal/readme.md +3 -0
  240. package/dist/docs/xpl-pagination/readme.md +3 -0
  241. package/dist/docs/xpl-panel/readme.md +83 -0
  242. package/dist/docs/xpl-popover/readme.md +1 -1
  243. package/dist/docs/xpl-progress-bar/readme.md +145 -0
  244. package/dist/docs/xpl-select/readme.md +1 -0
  245. package/dist/docs/xpl-side-nav/readme.md +71 -0
  246. package/dist/docs/xpl-side-nav/xpl-side-nav-item/readme.md +115 -0
  247. package/dist/docs/xpl-slideout/readme.md +1 -0
  248. package/dist/docs/xpl-tabs/readme.md +1 -0
  249. package/dist/docs/xpl-toast/readme.md +55 -0
  250. package/dist/esm/apollo-core.js +4 -4
  251. package/dist/esm/{index-DhZas3eX.js → index-C_Z2nG0p.js} +137 -87
  252. package/dist/esm/loader.js +3 -3
  253. package/dist/esm/xpl-accordion.entry.js +5 -5
  254. package/dist/esm/xpl-application-shell.entry.js +4 -4
  255. package/dist/esm/{xpl-avatar_41.entry.js → xpl-avatar_47.entry.js} +2753 -229
  256. package/dist/esm/xpl-button-row.entry.js +4 -4
  257. package/dist/esm/xpl-calendar.entry.js +4 -4
  258. package/dist/esm/xpl-dynamic-table-cell.entry.js +5 -5
  259. package/dist/esm/xpl-dynamic-table-row.entry.js +5 -5
  260. package/dist/esm/xpl-dynamic-table.entry.js +4 -4
  261. package/dist/esm/xpl-grid-item.entry.js +4 -4
  262. package/dist/esm/xpl-grid.entry.js +4 -4
  263. package/dist/esm/xpl-large-card.entry.js +4 -4
  264. package/dist/esm/xpl-list.entry.js +4 -4
  265. package/dist/esm/xpl-main-nav.entry.js +4 -4
  266. package/dist/esm/xpl-table-header-cell.entry.js +3 -3
  267. package/dist/esm/xpl-table-header.entry.js +4 -4
  268. package/dist/esm/xpl-toggle.entry.js +6 -6
  269. package/dist/esm/xpl-toolbar.entry.js +5 -5
  270. package/dist/types/components/xpl-accordion/xpl-accordion.d.ts +1 -1
  271. package/dist/types/components/xpl-application-shell/application-shell.stories.d.ts +4 -0
  272. package/dist/types/components/xpl-application-shell/xpl-application-shell.d.ts +1 -1
  273. package/dist/types/components/xpl-avatar/avatar.stories.d.ts +4 -0
  274. package/dist/types/components/xpl-avatar/xpl-avatar.d.ts +1 -1
  275. package/dist/types/components/xpl-backdrop/backdrop.stories.d.ts +4 -0
  276. package/dist/types/components/xpl-backdrop/xpl-backdrop.d.ts +1 -1
  277. package/dist/types/components/xpl-badge/badge.stories.d.ts +66 -11
  278. package/dist/types/components/xpl-badge/xpl-badge.d.ts +9 -2
  279. package/dist/types/components/xpl-banner/banner.stories.d.ts +77 -0
  280. package/dist/types/components/xpl-banner/xpl-banner.d.ts +20 -0
  281. package/dist/types/components/xpl-breadcrumbs/breadcrumbs.stories.d.ts +4 -0
  282. package/dist/types/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.d.ts +1 -1
  283. package/dist/types/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.d.ts +1 -1
  284. package/dist/types/components/xpl-button/button.stories.d.ts +68 -30
  285. package/dist/types/components/xpl-button/xpl-button.d.ts +14 -8
  286. package/dist/types/components/xpl-button-row/xpl-button-row.d.ts +1 -1
  287. package/dist/types/components/xpl-calendar/calendar.stories.d.ts +4 -0
  288. package/dist/types/components/xpl-calendar/xpl-calendar.d.ts +1 -1
  289. package/dist/types/components/xpl-checkbox/checkbox.stories.d.ts +4 -0
  290. package/dist/types/components/xpl-checkbox/xpl-checkbox.d.ts +1 -1
  291. package/dist/types/components/xpl-choicelist/choicelist.stories.d.ts +4 -0
  292. package/dist/types/components/xpl-choicelist/xpl-choicelist.d.ts +1 -1
  293. package/dist/types/components/xpl-content-area/xpl-content-area.d.ts +1 -1
  294. package/dist/types/components/xpl-dashboard/xpl-dashboard.d.ts +1 -1
  295. package/dist/types/components/xpl-data-card/data-card.stories.d.ts +4 -0
  296. package/dist/types/components/xpl-data-card/xpl-data-card.d.ts +1 -1
  297. package/dist/types/components/xpl-divider/divider.stories.d.ts +4 -0
  298. package/dist/types/components/xpl-divider/xpl-divider.d.ts +1 -1
  299. package/dist/types/components/xpl-dropdown/dropdown-option.d.ts +1 -0
  300. package/dist/types/components/xpl-dropdown/dropdown.stories.d.ts +1 -1
  301. package/dist/types/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.d.ts +1 -1
  302. package/dist/types/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.d.ts +1 -1
  303. package/dist/types/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.d.ts +3 -2
  304. package/dist/types/components/xpl-dropdown/xpl-dropdown.d.ts +11 -8
  305. package/dist/types/components/xpl-dynamic-table/xpl-dynamic-table.d.ts +1 -1
  306. package/dist/types/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.d.ts +1 -1
  307. package/dist/types/components/xpl-dynamic-table-row/xpl-dynamic-table-row.d.ts +1 -1
  308. package/dist/types/components/xpl-grid/xpl-grid.d.ts +1 -1
  309. package/dist/types/components/xpl-grid-item/xpl-grid-item.d.ts +1 -1
  310. package/dist/types/components/xpl-header-accordion/xpl-header-accordion.d.ts +1 -1
  311. package/dist/types/components/xpl-icon/xpl-icon.d.ts +1 -1
  312. package/dist/types/components/xpl-input/input.stories.d.ts +36 -7
  313. package/dist/types/components/xpl-input/xpl-input-color/xpl-input-color.d.ts +1 -1
  314. package/dist/types/components/xpl-input/xpl-input-date/xpl-input-date.d.ts +10 -3
  315. package/dist/types/components/xpl-input/xpl-input-file/xpl-input-file.d.ts +1 -1
  316. package/dist/types/components/xpl-input/xpl-input-phone/phone-country-data.d.ts +13 -0
  317. package/dist/types/components/xpl-input/xpl-input-phone/phone-format.d.ts +5 -0
  318. package/dist/types/components/xpl-input/xpl-input-phone/xpl-input-phone.d.ts +48 -0
  319. package/dist/types/components/xpl-input/xpl-input-time/xpl-input-time.d.ts +1 -1
  320. package/dist/types/components/xpl-input/xpl-input.d.ts +12 -2
  321. package/dist/types/components/xpl-large-card/large-card.stories.d.ts +4 -0
  322. package/dist/types/components/xpl-large-card/xpl-large-card.d.ts +1 -1
  323. package/dist/types/components/xpl-list/xpl-list.d.ts +1 -1
  324. package/dist/types/components/xpl-main-nav/xpl-main-nav.d.ts +1 -1
  325. package/dist/types/components/xpl-modal/modal.stories.d.ts +4 -0
  326. package/dist/types/components/xpl-modal/xpl-modal.d.ts +1 -1
  327. package/dist/types/components/xpl-nav-item/xpl-nav-item.d.ts +1 -1
  328. package/dist/types/components/xpl-pagination/pagination.stories.d.ts +4 -0
  329. package/dist/types/components/xpl-pagination/xpl-pagination.d.ts +1 -1
  330. package/dist/types/components/xpl-panel/panel.stories.d.ts +20 -0
  331. package/dist/types/components/xpl-panel/xpl-panel.d.ts +5 -0
  332. package/dist/types/components/xpl-popover/xpl-popover.d.ts +1 -1
  333. package/dist/types/components/xpl-progress/xpl-progress.d.ts +1 -1
  334. package/dist/types/components/xpl-progress-bar/progress-bar.stories.d.ts +73 -0
  335. package/dist/types/components/xpl-progress-bar/xpl-progress-bar.d.ts +15 -0
  336. package/dist/types/components/xpl-radio/xpl-radio.d.ts +1 -1
  337. package/dist/types/components/xpl-secondary-nav/xpl-secondary-nav.d.ts +1 -1
  338. package/dist/types/components/xpl-select/xpl-select.d.ts +1 -1
  339. package/dist/types/components/xpl-side-nav/side-nav.stories.d.ts +80 -0
  340. package/dist/types/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.d.ts +20 -0
  341. package/dist/types/components/xpl-side-nav/xpl-side-nav.d.ts +4 -0
  342. package/dist/types/components/xpl-skeleton/xpl-skeleton.d.ts +1 -1
  343. package/dist/types/components/xpl-slideout/xpl-slideout.d.ts +1 -1
  344. package/dist/types/components/xpl-tab/xpl-tab.d.ts +1 -1
  345. package/dist/types/components/xpl-tab-panel/xpl-tab-panel.d.ts +1 -1
  346. package/dist/types/components/xpl-table/xpl-table.d.ts +1 -1
  347. package/dist/types/components/xpl-table-header/xpl-table-header.d.ts +1 -1
  348. package/dist/types/components/xpl-table-header-cell/xpl-table-header-cell.d.ts +1 -1
  349. package/dist/types/components/xpl-tabs/xpl-tabs.d.ts +2 -2
  350. package/dist/types/components/xpl-tag/xpl-tag.d.ts +1 -1
  351. package/dist/types/components/xpl-toast/xpl-toast.d.ts +1 -1
  352. package/dist/types/components/xpl-toggle/xpl-toggle.d.ts +1 -1
  353. package/dist/types/components/xpl-toolbar/xpl-toolbar.d.ts +1 -1
  354. package/dist/types/components/xpl-tooltip/xpl-tooltip.d.ts +1 -1
  355. package/dist/types/components/xpl-utility-bar/xpl-utility-bar.d.ts +1 -1
  356. package/dist/types/components.d.ts +1219 -178
  357. package/dist/types/stencil-public-runtime.d.ts +23 -2
  358. package/dist/types/utils/layout-ancestors.d.ts +2 -0
  359. package/package.json +41 -27
  360. package/dist/apollo-core/p-1c2e4034.entry.js +0 -1
  361. package/dist/apollo-core/p-3b5f8989.entry.js +0 -1
  362. package/dist/apollo-core/p-576ce90f.entry.js +0 -1
  363. package/dist/apollo-core/p-5ec45742.entry.js +0 -1
  364. package/dist/apollo-core/p-77f0fd4a.entry.js +0 -1
  365. package/dist/apollo-core/p-7b7db57a.entry.js +0 -1
  366. package/dist/apollo-core/p-7c22b842.entry.js +0 -1
  367. package/dist/apollo-core/p-7d245bf0.entry.js +0 -1
  368. package/dist/apollo-core/p-812bb0e4.entry.js +0 -1
  369. package/dist/apollo-core/p-845eef0d.entry.js +0 -1
  370. package/dist/apollo-core/p-9853028c.entry.js +0 -1
  371. package/dist/apollo-core/p-9d65ece7.entry.js +0 -1
  372. package/dist/apollo-core/p-DhZas3eX.js +0 -2
  373. package/dist/apollo-core/p-be292555.entry.js +0 -1
@@ -0,0 +1,167 @@
1
+ # xpl-input-phone
2
+
3
+ The Phone Input Field allows users to input properly formatted phone numbers. It supports two modes: **international** (country selector + dial code prefix) and **domestic** (single country, no selector). Used as a subcomponent of `xpl-input` when `type="phone"`. The value is always emitted in **E.164** format (e.g. `+14155551234`).
4
+
5
+ ## Usage
6
+
7
+ ### International mode (default)
8
+
9
+ Use via the parent component for full international support with a country selector:
10
+
11
+ ```html
12
+ <xpl-input type="phone" label="Phone number" name="phone"></xpl-input>
13
+ ```
14
+
15
+ With preferred countries pinned to the top of the list:
16
+
17
+ ```html
18
+ <xpl-input
19
+ type="phone"
20
+ label="Phone number"
21
+ name="phone"
22
+ preferred-countries='["US","CA","GB"]'
23
+ ></xpl-input>
24
+ ```
25
+
26
+ ### Domestic mode
27
+
28
+ Set `is-international="false"` to lock the input to a single country. The country selector trigger and dropdown are hidden, and no dial code is shown in the input. The emitted value is still E.164.
29
+
30
+ ```html
31
+ <xpl-input
32
+ type="phone"
33
+ label="Phone number"
34
+ name="phone"
35
+ default-country="US"
36
+ is-international="false"
37
+ ></xpl-input>
38
+ ```
39
+
40
+ ### Pre-populating a value
41
+
42
+ Pass an E.164 string to `value`. The component parses it into the correct country and national number:
43
+
44
+ ```html
45
+ <xpl-input type="phone" label="Phone" value="+14155551234"></xpl-input>
46
+ ```
47
+
48
+ ## Value format
49
+
50
+ - **value** / **valueChange**: E.164 string (e.g. `+14155551234`). You can set `value` to pre-fill; the component parses it into country and national number.
51
+ - **defaultCountry**: ISO 3166-1 alpha-2 code (e.g. `"US"`) used when value is empty. In domestic mode, this locks the country permanently.
52
+ - **preferredCountries**: Optional array of country codes to show at the top of the country list (international mode only).
53
+ - **isInternational**: When `true` (default), the full international UI is shown. When `false`, the component is a simple domestic phone input locked to `defaultCountry`.
54
+
55
+ ## Design and behaviour
56
+
57
+ ### Country selector (international mode)
58
+
59
+ - The **trigger** displays a country flag icon (`xpl-icon`) and a chevron-down icon.
60
+ - Clicking the trigger opens an `xpl-dropdown` panel containing a **type-ahead search** field and a scrollable list of countries. Each option shows its flag icon, name, and dial code.
61
+ - Search filters by country name, dial code, or ISO country code.
62
+ - When a country is selected, focus returns to the phone input and the cursor is positioned after the dial code.
63
+ - Countries sharing a dial code (e.g. US and Canada both use `+1`) are handled correctly: changing the country in the dropdown preserves the selection even when the dial code is the same.
64
+
65
+ ### Domestic mode
66
+
67
+ No country selector is rendered. The input behaves as a standard phone field with country-specific formatting and validation based on `defaultCountry`. The dial code is not displayed in the input, but the emitted value is still E.164.
68
+
69
+ ### Input handling
70
+
71
+ - **Sanitization**: Non-numeric characters are automatically stripped on every keystroke, paste, or autofill. The input only accepts digits.
72
+ - **Max length**: Enforced per country based on the national number format (e.g. 10 digits for US/CA, 9 for AU/FR).
73
+ - **Cursor protection** (international mode): The dial code prefix (e.g. `+1 `) is read-only within the input. Users cannot backspace into it, click before it, or use Home/ArrowLeft to move the cursor before it.
74
+ - **Clear button**: A clear (`x-circle`) button appears when there is input and the field is not disabled or readonly.
75
+
76
+ ### Phone formatting
77
+
78
+ The national number is formatted as the user types (e.g. US: `415 555 1234`, FR: `6 12 34 56 78`). The stored and emitted value remains E.164. Cursor position is intelligently preserved during formatting so it does not jump.
79
+
80
+ Countries with custom formatters: US/CA, GB, AU, DE/AT/CH, FR, BR, MX, JP, CN, IN, KR. All other countries use a generic grouping format.
81
+
82
+ ### Validation and errors
83
+
84
+ - When `required` is set, the component emits a `hasErrorStateChanged` event with `"required"` if the national number is empty on change.
85
+ - The parent `xpl-input` can pass an `error` prop for external error messages (e.g. server-side validation).
86
+ - The component applies `xpl-input-phone--error` to the host when an internal error state is active.
87
+
88
+ ### Accessibility
89
+
90
+ - The country selector trigger has `aria-haspopup="listbox"` and `aria-expanded`.
91
+ - The country selector trigger has `aria-label="Select country"` for screen-reader clarity.
92
+ - The dropdown panel has `aria-label="Country"`.
93
+ - The clear button has `aria-label="Clear phone number"`.
94
+ - The input uses `inputmode="numeric"` to hint a numeric keyboard on mobile and `autocomplete="tel-national"` (international) or `autocomplete="tel"` (domestic).
95
+ - The input sets `aria-invalid="true"` when in an error state (e.g. required field left empty).
96
+ - Decorative icons (flag, chevron) use `aria-hidden="true"` to avoid screen reader noise.
97
+
98
+ ## Supported countries
99
+
100
+ 28 countries are currently supported. See `phone-country-data.ts` for the full list. Countries with custom number formatting are noted above. To add a new country, add an entry to the `PHONE_COUNTRIES` array and optionally add a formatter in `phone-format.ts`.
101
+
102
+ <!-- Auto Generated Below -->
103
+
104
+
105
+ ## Properties
106
+
107
+ | Property | Attribute | Description | Type | Default |
108
+ | -------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ----------- |
109
+ | `defaultCountry` | `default-country` | Default country code (ISO 3166-1 alpha-2) when value is empty, e.g. "US". | `string` | `'US'` |
110
+ | `disabled` | `disabled` | Whether the field is disabled | `boolean` | `undefined` |
111
+ | `inputId` | `input-id` | The `inputId` is used to associate the input with a label. | `string` | `undefined` |
112
+ | `isInternational` | `is-international` | Enables international mode with a country selector and dial code prefix. When false, the input is locked to `defaultCountry` with no country picker and no dial code shown in the display value. Emitted value is still E.164. | `boolean` | `true` |
113
+ | `name` | `name` | Most inputs are used in forms, and should have a `name` associated with the input for handling form data. | `string` | `undefined` |
114
+ | `placeholder` | `placeholder` | Placeholder text that appears when the field has no value | `string` | `undefined` |
115
+ | `preferredCountries` | -- | Country codes to show at the top of the country list, e.g. ["US", "CA", "GB"]. | `string[]` | `undefined` |
116
+ | `readonly` | `readonly` | Whether the input is editable | `boolean` | `undefined` |
117
+ | `required` | `required` | Whether the input is required | `boolean` | `undefined` |
118
+ | `value` | `value` | Including a `value` will pre-populate the input (E.164 format, e.g. +14155551234). | `string` | `undefined` |
119
+
120
+
121
+ ## Events
122
+
123
+ | Event | Description | Type |
124
+ | ---------------------- | --------------------------------------------------------------- | --------------------- |
125
+ | `hasErrorStateChanged` | Event that is emitted when the hasErrorState state changes. | `CustomEvent<string>` |
126
+ | `valueChange` | Event that emits the current value of the input (E.164 format). | `CustomEvent<string>` |
127
+
128
+
129
+ ## Dependencies
130
+
131
+ ### Used by
132
+
133
+ - [xpl-input](..)
134
+
135
+ ### Depends on
136
+
137
+ - [xpl-icon](../../xpl-icon)
138
+ - [xpl-dropdown](../../xpl-dropdown)
139
+ - [xpl-input](..)
140
+
141
+ ### Graph
142
+ ```mermaid
143
+ graph TD;
144
+ xpl-input-phone --> xpl-icon
145
+ xpl-input-phone --> xpl-dropdown
146
+ xpl-input-phone --> xpl-input
147
+ xpl-dropdown --> xpl-dropdown-group
148
+ xpl-dropdown --> xpl-dropdown-option
149
+ xpl-dropdown-group --> xpl-dropdown-group
150
+ xpl-dropdown-group --> xpl-dropdown-option
151
+ xpl-dropdown-group --> xpl-dropdown-heading
152
+ xpl-dropdown-option --> xpl-icon
153
+ xpl-input --> xpl-input-phone
154
+ xpl-input-file --> xpl-icon
155
+ xpl-input-color --> xpl-popover
156
+ xpl-input-color --> xpl-icon
157
+ xpl-input-color --> xpl-input
158
+ xpl-input-date --> xpl-icon
159
+ xpl-input-time --> xpl-input
160
+ xpl-input-time --> xpl-icon
161
+ xpl-input-time --> xpl-dropdown
162
+ style xpl-input-phone fill:#f9f,stroke:#333,stroke-width:4px
163
+ ```
164
+
165
+ ----------------------------------------------
166
+
167
+ *Built with [StencilJS](https://stenciljs.com/)*
@@ -56,11 +56,15 @@ graph TD;
56
56
  xpl-input-color --> xpl-icon
57
57
  xpl-input-color --> xpl-input
58
58
  xpl-input-date --> xpl-icon
59
+ xpl-input-phone --> xpl-icon
60
+ xpl-input-phone --> xpl-dropdown
61
+ xpl-input-phone --> xpl-input
59
62
  xpl-dropdown --> xpl-dropdown-group
60
63
  xpl-dropdown --> xpl-dropdown-option
61
64
  xpl-dropdown-group --> xpl-dropdown-group
62
65
  xpl-dropdown-group --> xpl-dropdown-option
63
66
  xpl-dropdown-group --> xpl-dropdown-heading
67
+ xpl-dropdown-option --> xpl-icon
64
68
  style xpl-input-time fill:#f9f,stroke:#333,stroke-width:4px
65
69
  ```
66
70
 
@@ -1,6 +1,6 @@
1
1
  # xpl-large-card
2
2
 
3
-
3
+ A card is a container and can contain any type of information. Cards contain actions and a content slot. Cards are flexible and can be arranged in grids or lists.
4
4
 
5
5
  <!-- Auto Generated Below -->
6
6
 
@@ -1,6 +1,8 @@
1
1
  # xpl-modal
2
2
 
3
+ Modals are dialogs that focus the user’s attention exclusively on one task or piece of information via a window layer above the current content.
3
4
 
5
+ Modals are disruptive and should only be used when disrupting the user’s flow is desired.
4
6
 
5
7
  <!-- Auto Generated Below -->
6
8
 
@@ -47,6 +49,7 @@ graph TD;
47
49
  xpl-modal --> xpl-backdrop
48
50
  xpl-modal --> xpl-icon
49
51
  xpl-modal --> xpl-button
52
+ xpl-button --> xpl-icon
50
53
  style xpl-modal fill:#f9f,stroke:#333,stroke-width:4px
51
54
  ```
52
55
 
@@ -1,5 +1,7 @@
1
1
  # xpl-pagination
2
2
 
3
+ Pagination bar allows users to navigate pages of content.
4
+
3
5
  > **Note:** This component is in beta. Use with caution and expect updates before the full release.
4
6
 
5
7
  <!-- Auto Generated Below -->
@@ -44,6 +46,7 @@ graph TD;
44
46
  xpl-dropdown-group --> xpl-dropdown-group
45
47
  xpl-dropdown-group --> xpl-dropdown-option
46
48
  xpl-dropdown-group --> xpl-dropdown-heading
49
+ xpl-dropdown-option --> xpl-icon
47
50
  style xpl-pagination fill:#f9f,stroke:#333,stroke-width:4px
48
51
  ```
49
52
 
@@ -0,0 +1,83 @@
1
+ # xpl-panel
2
+
3
+ ## Overview
4
+
5
+ XPL-Panel is a stateless, composable container component that defines a section on a page and can house any type of content. Panels are not dismissible and may contain a top accent in 5 standard accent colors.
6
+
7
+ ## Usage
8
+
9
+ ### Basic panel (no accent)
10
+
11
+ ```html
12
+ <xpl-panel>
13
+ <p>Any content goes here.</p>
14
+ </xpl-panel>
15
+ ```
16
+
17
+ ### Panel with accent
18
+
19
+ ```html
20
+ <xpl-panel accent="primary">
21
+ <p>Content with a primary accent bar.</p>
22
+ </xpl-panel>
23
+ ```
24
+
25
+ Available accent values: `none` (default), `primary`, `secondary`, `positive`,
26
+ `negative`, `highlight`.
27
+
28
+ ### Padding density
29
+
30
+ ```html
31
+ <xpl-panel padding="tight">
32
+ <p>Tighter padding on all breakpoints.</p>
33
+ </xpl-panel>
34
+ ```
35
+
36
+ Available padding values: `default`, `tight`, `loose`. Padding is responsive
37
+ and automatically scales down at tablet (768 px) and mobile (480 px) breakpoints.
38
+
39
+ ### Composing with other components
40
+
41
+ ```html
42
+ <xpl-panel accent="secondary" padding="loose">
43
+ <xpl-accordion header="Details">
44
+ <div slot="content">Accordion inside a panel.</div>
45
+ </xpl-accordion>
46
+ </xpl-panel>
47
+ ```
48
+
49
+ ### Dark mode
50
+
51
+ Wrap with an ancestor that has the `dark` class — the panel automatically
52
+ adapts its background, border, and accent colors.
53
+
54
+ ## Design
55
+
56
+ - [Figma: XPL-Panel](https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=1546-136120&p=f&t=SMeY3LnfDOiNmx1p-11)
57
+
58
+ <!-- Auto Generated Below -->
59
+
60
+
61
+ ## Overview
62
+
63
+ A stateless container that defines a section on a page and can house any
64
+ type of content. Panels are not dismissible and may contain a top accent.
65
+
66
+ ## Properties
67
+
68
+ | Property | Attribute | Description | Type | Default |
69
+ | --------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------- |
70
+ | `accent` | `accent` | Color accent bar displayed at the top of the panel. - `none` – no accent (default) - `primary` – brand primary color - `secondary` – brand secondary color - `positive` – positive / success color - `negative` – negative / error color - `highlight` – highlight / warning color | `"highlight" \| "negative" \| "none" \| "positive" \| "primary" \| "secondary"` | `'none'` |
71
+ | `padding` | `padding` | Padding density applied to the content area. Responsive: scales down at tablet and mobile breakpoints. - `default` – 24 px desktop / 16 px tablet+mobile - `tight` – 16 px desktop / 8 px tablet+mobile - `loose` – 40 px desktop / 32 px tablet / 24 px mobile | `"default" \| "loose" \| "tight"` | `'default'` |
72
+
73
+
74
+ ## Slots
75
+
76
+ | Slot | Description |
77
+ | ---- | ------------------------------------------------------------------------------------------------------------------ |
78
+ | | Default slot for panel content. Compose other Apollo components within the slot or build your own local component. |
79
+
80
+
81
+ ----------------------------------------------
82
+
83
+ *Built with [StencilJS](https://stenciljs.com/)*
@@ -1,6 +1,6 @@
1
1
  # xpl-popover
2
2
 
3
-
3
+ A popover is an overlay that pops up over all other layers and is triggered by a click or tap, and dismissed by clicking outside the popover or a dismiss icon. Popovers can contain additional actions and allow those actions to be triggered.
4
4
 
5
5
  <!-- Auto Generated Below -->
6
6
 
@@ -0,0 +1,145 @@
1
+ # xpl-progress-bar
2
+
3
+ The `xpl-progress-bar` component displays the progress of an operation, such as file uploads, form completion, or loading states. It supports multiple visual variants including default, success, error, and indeterminate states, with optional label and helper text.
4
+
5
+ ## Usage
6
+
7
+ ### Basic progress bar
8
+
9
+ ```html
10
+ <xpl-progress-bar label="Uploading..." value="45"></xpl-progress-bar>
11
+ ```
12
+
13
+ ### With helper text
14
+
15
+ ```html
16
+ <xpl-progress-bar
17
+ label="Uploading file..."
18
+ value="65"
19
+ helper-text="2.4 MB of 5 MB">
20
+ </xpl-progress-bar>
21
+ ```
22
+
23
+ ### Error state
24
+
25
+ ```html
26
+ <xpl-progress-bar
27
+ label="Upload failed"
28
+ value="30"
29
+ variant="error"
30
+ helper-text="Network error. Please check your connection.">
31
+ </xpl-progress-bar>
32
+ ```
33
+
34
+ ### Indeterminate loading
35
+
36
+ ```html
37
+ <xpl-progress-bar label="Processing..." variant="indeterminate"></xpl-progress-bar>
38
+ ```
39
+
40
+ ### Small size
41
+
42
+ ```html
43
+ <xpl-progress-bar value="60" size="sm"></xpl-progress-bar>
44
+ ```
45
+
46
+ ### Custom max value
47
+
48
+ ```html
49
+ <xpl-progress-bar value="75" max="150" label="75 of 150 items"></xpl-progress-bar>
50
+ ```
51
+
52
+ ## Variants
53
+
54
+ | Variant | Description |
55
+ |---------|-------------|
56
+ | `default` | Standard progress bar with accent color fill. Shows a checkmark icon when value reaches max. |
57
+ | `success` | Explicit success state with positive color. Shows a checkmark icon. |
58
+ | `error` | Error state with negative color. Shows an error (x-mark) icon. Helper text is recommended for this state. |
59
+ | `indeterminate` | Used when the progress duration is unknown. Displays an animated sliding bar instead of a fill percentage. |
60
+
61
+ ## Sizes
62
+
63
+ - `lg` (default): 6px height
64
+ - `sm`: 4px height
65
+
66
+ ## Icon Mapping
67
+
68
+ The component automatically renders status icons based on the variant or completion state:
69
+
70
+ | State | xpl-icon name |
71
+ |-------|---------------|
72
+ | Complete (default variant when value equals max) | `circle-check-1` |
73
+ | Success variant | `circle-check-1` |
74
+ | Error variant | `circle-xmark-1` |
75
+
76
+ ## Design Tokens
77
+
78
+ The following Apollo Foundation tokens are used by this component:
79
+
80
+ ### Background Colors (Fill)
81
+ - `--xpl-background-accent-default` - Default variant fill
82
+ - `--xpl-background-accent-positive-bold` - Success/complete fill
83
+ - `--xpl-background-accent-negative-bold` - Error fill
84
+ - `--xpl-background-accent-neutral` - Track background
85
+
86
+ ### Icon Colors
87
+ - `--xpl-icon-positive` - Success/complete icon
88
+ - `--xpl-icon-negative` - Error icon
89
+
90
+ ### Text Colors
91
+ - `--xpl-text-default` - Label text
92
+ - `--xpl-text-subdued` - Helper text
93
+ - `--xpl-text-negative` - Error helper text
94
+
95
+ ### Typography
96
+ - `--xpl-font-size-callout` - Label font size
97
+ - `--xpl-font-size-caption` - Helper text font size
98
+ - `--xpl-font-weight-normal` - Label and helper font weight
99
+
100
+ ### Spacing & Sizing
101
+ - `--xpl-space-8` - Gap between elements
102
+ - `--xpl-size-025` (4px) - Small bar height
103
+ - `--xpl-size-0375` (6px) - Large bar height
104
+ - `--xpl-border-radius-full` - Bar border radius
105
+
106
+ ## Accessibility
107
+
108
+ - **Determinate variants** (default, success, error) use the native HTML `<progress>` element, which provides:
109
+ - Native `role="progressbar"` semantics
110
+ - Automatic `aria-valuenow`, `aria-valuemin`, `aria-valuemax` handling
111
+ - Native value/max API with built-in clamping
112
+ - **Indeterminate variant** uses a custom `<div role="progressbar">` since native `<progress>` indeterminate state cannot be styled cross-browser
113
+ - The `aria-label` is set from the `label` prop, or falls back to `'Progress'` when no label is provided
114
+
115
+ <!-- Auto Generated Below -->
116
+
117
+
118
+ ## Properties
119
+
120
+ | Property | Attribute | Description | Type | Default |
121
+ | ------------ | ------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------ | ----------- |
122
+ | `helperText` | `helper-text` | The helper text displayed below the progress bar (recommended for error state) | `string` | `undefined` |
123
+ | `label` | `label` | The label text displayed above the progress bar | `string` | `undefined` |
124
+ | `max` | `max` | The maximum value of the progress (mirrors native <progress> max attribute) | `number` | `100` |
125
+ | `size` | `size` | The size of the progress bar height: sm = 4px, lg = 6px | `"lg" \| "sm"` | `'lg'` |
126
+ | `value` | `value` | The current value of the progress (mirrors native <progress> value attribute) | `number` | `0` |
127
+ | `variant` | `variant` | The visual variant of the progress bar | `"default" \| "error" \| "indeterminate" \| "success"` | `'default'` |
128
+
129
+
130
+ ## Dependencies
131
+
132
+ ### Depends on
133
+
134
+ - [xpl-icon](../xpl-icon)
135
+
136
+ ### Graph
137
+ ```mermaid
138
+ graph TD;
139
+ xpl-progress-bar --> xpl-icon
140
+ style xpl-progress-bar fill:#f9f,stroke:#333,stroke-width:4px
141
+ ```
142
+
143
+ ----------------------------------------------
144
+
145
+ *Built with [StencilJS](https://stenciljs.com/)*
@@ -78,6 +78,7 @@ graph TD;
78
78
  xpl-dropdown-group --> xpl-dropdown-group
79
79
  xpl-dropdown-group --> xpl-dropdown-option
80
80
  xpl-dropdown-group --> xpl-dropdown-heading
81
+ xpl-dropdown-option --> xpl-icon
81
82
  xpl-pagination --> xpl-select
82
83
  xpl-tabs --> xpl-select
83
84
  style xpl-select fill:#f9f,stroke:#333,stroke-width:4px
@@ -0,0 +1,71 @@
1
+ # xpl-side-nav
2
+
3
+ Slot-based sidebar for app navigation: scrollable main area and a fixed footer. Compose with [`xpl-side-nav-item`](./xpl-side-nav-item) for rows in the section and footer.
4
+
5
+ ## Slots
6
+
7
+ | Slot | Description |
8
+ | ---- | ----------- |
9
+ | `section` | Primary navigation. Place `xpl-side-nav-item` elements (or wrappers) inside this slot; layout uses internal section markup. |
10
+ | `nav-footer` | Footer actions (e.g. Help, Logout). Same item component; typically smaller label styling via CSS. |
11
+
12
+ ## Usage
13
+
14
+ Use the **`label`** prop for a unique accessible name on the `<nav>` when multiple landmarks exist on the page (see **Multi-Navigation Layouts** below).
15
+
16
+ ```html
17
+ <xpl-side-nav label="Main navigation">
18
+ <div slot="section">
19
+ <xpl-side-nav-item label="Dashboard" icon="house-4" selected></xpl-side-nav-item>
20
+ <xpl-side-nav-item has-children label="Settings" expanded>
21
+ <xpl-side-nav-item label="Profile"></xpl-side-nav-item>
22
+ </xpl-side-nav-item>
23
+ </div>
24
+ <div slot="nav-footer">
25
+ <xpl-side-nav-item label="Help" icon="headset"></xpl-side-nav-item>
26
+ </div>
27
+ </xpl-side-nav>
28
+ ```
29
+
30
+ **Link rows:** use `xpl-side-nav-item` with `link` and an anchor in the default slot — see [xpl-side-nav-item](./xpl-side-nav-item) **Link mode**.
31
+
32
+ ### Multi-Navigation Layouts (Accessibility)
33
+
34
+ When multiple navigation landmarks exist on a page (e.g., side nav, top nav, breadcrumbs), use the `label` prop to provide a unique accessible name for each `<nav>` element. This helps screen reader users distinguish between them.
35
+
36
+ ```html
37
+ <!-- Main side navigation -->
38
+ <xpl-side-nav label="Main navigation">
39
+ ...
40
+ </xpl-side-nav>
41
+
42
+ <!-- Top navigation (different component) -->
43
+ <xpl-top-navigation label="User menu">
44
+ ...
45
+ </xpl-top-navigation>
46
+
47
+ <!-- Breadcrumbs (different component) -->
48
+ <xpl-breadcrumbs label="Breadcrumb">
49
+ ...
50
+ </xpl-breadcrumbs>
51
+ ```
52
+
53
+ **WCAG Note:** When a page has multiple `<nav>` landmarks, each should have a unique accessible name via `aria-label`.
54
+
55
+ ## Related components
56
+
57
+ - [xpl-side-nav-item](../xpl-side-nav-item) — Navigation rows (leaf, expandable, or link) for section and footer.
58
+
59
+ <!-- Auto Generated Below -->
60
+
61
+
62
+ ## Properties
63
+
64
+ | Property | Attribute | Description | Type | Default |
65
+ | -------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------- |
66
+ | `label` | `label` | Accessible label for the navigation landmark. Maps to `aria-label` on the `<nav>` element. Recommended when multiple navigation landmarks exist on a page (e.g., side nav + top nav + breadcrumbs) to help screen readers distinguish them. | `string` | `undefined` |
67
+
68
+
69
+ ----------------------------------------------
70
+
71
+ *Built with [StencilJS](https://stenciljs.com/)*