@xplortech/apollo-core 2.7.0 → 2.8.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 (270) hide show
  1. package/.typings/apollo-components.html-data.json +104 -183
  2. package/build/style.css +220 -951
  3. package/dist/apollo-core/apollo-core.css +5 -35
  4. package/dist/apollo-core/apollo-core.esm.js +1 -1
  5. package/dist/apollo-core/{p-6c956d4e.entry.js → p-0bf50890.entry.js} +1 -1
  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-34438721.entry.js +1 -0
  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-36ba29da.entry.js +1 -0
  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-689f1dae.entry.js +1 -0
  15. package/dist/apollo-core/{p-7eb86c63.entry.js → p-6a15f1e0.entry.js} +1 -1
  16. package/dist/apollo-core/p-8d692d05.entry.js +1 -0
  17. package/dist/apollo-core/{p-28d12fd3.entry.js → p-b61d7952.entry.js} +1 -1
  18. package/dist/apollo-core/{p-084d26ed.entry.js → p-ca127ee8.entry.js} +1 -1
  19. package/dist/apollo-core/p-cd56a3d5.entry.js +1 -0
  20. package/dist/apollo-core/p-dc205893.entry.js +1 -0
  21. package/dist/cjs/apollo-core.cjs.js +1 -1
  22. package/dist/cjs/index-BQ97-AWw.js +10 -2
  23. package/dist/cjs/loader.cjs.js +1 -1
  24. package/dist/cjs/xpl-accordion.cjs.entry.js +2 -2
  25. package/dist/cjs/xpl-application-shell.cjs.entry.js +1 -1
  26. package/dist/cjs/{xpl-avatar_61.cjs.entry.js → xpl-avatar_54.cjs.entry.js} +1311 -1725
  27. package/dist/cjs/xpl-button-row.cjs.entry.js +1 -1
  28. package/dist/cjs/xpl-calendar.cjs.entry.js +1 -1
  29. package/dist/cjs/xpl-dynamic-table-cell.cjs.entry.js +2 -2
  30. package/dist/cjs/xpl-dynamic-table-row.cjs.entry.js +2 -2
  31. package/dist/cjs/xpl-dynamic-table.cjs.entry.js +1 -1
  32. package/dist/cjs/xpl-grid-item.cjs.entry.js +1 -1
  33. package/dist/cjs/xpl-grid.cjs.entry.js +1 -1
  34. package/dist/cjs/xpl-large-card.cjs.entry.js +1 -1
  35. package/dist/cjs/xpl-main-nav.cjs.entry.js +1 -1
  36. package/dist/cjs/xpl-table-header-cell.cjs.entry.js +57 -0
  37. package/dist/cjs/xpl-table-header.cjs.entry.js +14 -0
  38. package/dist/cjs/xpl-toggle.cjs.entry.js +8 -3
  39. package/dist/cjs/xpl-toolbar.cjs.entry.js +2 -2
  40. package/dist/collection/collection-manifest.json +2 -7
  41. package/dist/collection/components/xpl-accordion/xpl-accordion.js +2 -2
  42. package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +1 -1
  43. package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +1 -1
  44. package/dist/collection/components/xpl-badge/xpl-badge.js +1 -1
  45. package/dist/collection/components/xpl-banner/xpl-banner.js +2 -2
  46. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +1 -1
  47. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +1 -1
  48. package/dist/collection/components/xpl-button/xpl-button.js +1 -1
  49. package/dist/collection/components/xpl-button-row/xpl-button-row.js +1 -1
  50. package/dist/collection/components/xpl-calendar/xpl-calendar.js +1 -1
  51. package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +29 -34
  52. package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +7 -6
  53. package/dist/collection/components/xpl-content-area/xpl-content-area.js +1 -1
  54. package/dist/collection/components/xpl-dashboard/xpl-dashboard.js +1 -1
  55. package/dist/collection/components/xpl-data-card/xpl-data-card.js +2 -2
  56. package/dist/collection/components/xpl-divider/xpl-divider.js +1 -1
  57. package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +1 -1
  58. package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +1 -1
  59. package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +2 -2
  60. package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +77 -7
  61. package/dist/collection/components/xpl-dynamic-table/xpl-dynamic-table.js +1 -1
  62. package/dist/collection/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.js +2 -2
  63. package/dist/collection/components/xpl-dynamic-table-row/xpl-dynamic-table-row.js +2 -2
  64. package/dist/collection/components/xpl-grid/xpl-grid.js +1 -1
  65. package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +1 -1
  66. package/dist/collection/components/xpl-header-accordion/xpl-header-accordion.js +53 -46
  67. package/dist/collection/components/xpl-icon/xpl-icon.js +2 -2
  68. package/dist/collection/components/xpl-input/xpl-input-color/xpl-input-color.js +8 -8
  69. package/dist/collection/components/xpl-input/xpl-input-date/xpl-input-date.js +3 -3
  70. package/dist/collection/components/xpl-input/xpl-input-file/xpl-input-file.js +4 -4
  71. package/dist/collection/components/xpl-input/xpl-input-phone/xpl-input-phone.js +5 -5
  72. package/dist/collection/components/xpl-input/xpl-input-search/xpl-input-search.js +1 -1
  73. package/dist/collection/components/xpl-input/xpl-input-time/xpl-input-time.js +2 -2
  74. package/dist/collection/components/xpl-input/xpl-input.js +28 -24
  75. package/dist/collection/components/xpl-large-card/xpl-large-card.js +1 -1
  76. package/dist/collection/components/xpl-list/xpl-list.js +2 -2
  77. package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +1 -1
  78. package/dist/collection/components/xpl-modal/xpl-modal.js +1 -1
  79. package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +2 -2
  80. package/dist/collection/components/xpl-pagination/pagination.stories.js +18 -0
  81. package/dist/collection/components/xpl-pagination/xpl-pagination.js +7 -3
  82. package/dist/collection/components/xpl-panel/xpl-panel.js +2 -2
  83. package/dist/collection/components/xpl-popover/xpl-popover.js +4 -4
  84. package/dist/collection/components/xpl-progress-bar/xpl-progress-bar.js +2 -2
  85. package/dist/collection/components/xpl-progress-indicator/xpl-progress-indicator.js +1 -1
  86. package/dist/collection/components/xpl-radio/radio.stories.js +10 -1
  87. package/dist/collection/components/xpl-radio/xpl-radio.js +30 -5
  88. package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +1 -1
  89. package/dist/collection/components/xpl-select/xpl-select.js +58 -6
  90. package/dist/collection/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.js +2 -2
  91. package/dist/collection/components/xpl-side-nav/xpl-side-nav.js +2 -2
  92. package/dist/collection/components/xpl-skeleton/xpl-skeleton.js +1 -1
  93. package/dist/collection/components/xpl-slideout/xpl-slideout.js +1 -1
  94. package/dist/collection/components/xpl-tab-panel/xpl-tab-panel.js +2 -2
  95. package/dist/collection/components/xpl-table/table.stories.js +67 -319
  96. package/dist/collection/components/xpl-table/xpl-table.js +151 -1456
  97. package/dist/collection/components/xpl-table-header/table-header.stories.js +126 -0
  98. package/dist/collection/components/xpl-table-header/xpl-table-header.js +7 -0
  99. package/dist/collection/components/xpl-table-header-cell/table-header-cell.stories.js +75 -0
  100. package/dist/collection/components/xpl-table-header-cell/xpl-table-header-cell.js +188 -0
  101. package/dist/collection/components/xpl-tabs/xpl-tabs.js +5 -5
  102. package/dist/collection/components/xpl-tag/xpl-tag.js +2 -2
  103. package/dist/collection/components/xpl-toast/xpl-toast.js +2 -2
  104. package/dist/collection/components/xpl-toggle/xpl-toggle.js +26 -4
  105. package/dist/collection/components/xpl-toolbar/xpl-toolbar.js +2 -2
  106. package/dist/collection/components/xpl-tooltip/xpl-tooltip.js +1 -1
  107. package/dist/collection/components/xpl-top-nav/xpl-nav-header-menu/xpl-nav-header-menu.js +2 -2
  108. package/dist/collection/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.js +2 -2
  109. package/dist/collection/components/xpl-top-nav/xpl-top-nav.js +5 -5
  110. package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +1 -1
  111. package/dist/components/index.js +1 -1
  112. package/dist/components/xpl-accordion.js +1 -1
  113. package/dist/components/xpl-application-shell.js +1 -1
  114. package/dist/components/xpl-backdrop2.js +1 -1
  115. package/dist/components/xpl-badge2.js +1 -1
  116. package/dist/components/xpl-banner.js +1 -1
  117. package/dist/components/xpl-breadcrumb-item.js +1 -1
  118. package/dist/components/xpl-breadcrumbs.js +1 -1
  119. package/dist/components/xpl-button-row.js +1 -1
  120. package/dist/components/xpl-button2.js +1 -1
  121. package/dist/components/xpl-calendar.js +1 -1
  122. package/dist/components/xpl-checkbox2.js +1 -1
  123. package/dist/components/xpl-choicelist.js +1 -1
  124. package/dist/components/xpl-content-area.js +1 -1
  125. package/dist/components/xpl-dashboard.js +1 -1
  126. package/dist/components/xpl-data-card.js +1 -1
  127. package/dist/components/xpl-divider2.js +1 -1
  128. package/dist/components/xpl-dropdown-group2.js +1 -1
  129. package/dist/components/xpl-dropdown-heading2.js +1 -1
  130. package/dist/components/xpl-dropdown-option2.js +1 -1
  131. package/dist/components/xpl-dropdown2.js +1 -1
  132. package/dist/components/xpl-dynamic-table-cell.js +1 -1
  133. package/dist/components/xpl-dynamic-table-row.js +1 -1
  134. package/dist/components/xpl-dynamic-table.js +1 -1
  135. package/dist/components/xpl-grid-item.js +1 -1
  136. package/dist/components/xpl-grid.js +1 -1
  137. package/dist/components/xpl-header-accordion.js +1 -1
  138. package/dist/components/xpl-icon2.js +1 -1
  139. package/dist/components/xpl-input-date2.js +1 -1
  140. package/dist/components/xpl-input-file2.js +1 -1
  141. package/dist/components/xpl-input-search2.js +1 -1
  142. package/dist/components/xpl-input2.js +1 -1
  143. package/dist/components/xpl-large-card.js +1 -1
  144. package/dist/components/xpl-list.js +1 -1
  145. package/dist/components/xpl-main-nav.js +1 -1
  146. package/dist/components/xpl-modal.js +1 -1
  147. package/dist/components/xpl-nav-header-menu.js +1 -1
  148. package/dist/components/xpl-nav-item.js +1 -1
  149. package/dist/components/xpl-pagination.js +1 -1
  150. package/dist/components/xpl-panel.js +1 -1
  151. package/dist/components/xpl-popover2.js +1 -1
  152. package/dist/components/xpl-progress-bar.js +1 -1
  153. package/dist/components/xpl-progress-indicator.js +1 -1
  154. package/dist/components/xpl-radio2.js +1 -1
  155. package/dist/components/xpl-secondary-nav.js +1 -1
  156. package/dist/components/xpl-select2.js +1 -1
  157. package/dist/components/xpl-side-nav-item.js +1 -1
  158. package/dist/components/xpl-side-nav.js +1 -1
  159. package/dist/components/xpl-skeleton.js +1 -1
  160. package/dist/components/xpl-slideout.js +1 -1
  161. package/dist/components/xpl-tab-panel.js +1 -1
  162. package/dist/components/xpl-table-header-cell.js +1 -1
  163. package/dist/components/xpl-table-header.js +1 -1
  164. package/dist/components/xpl-table.js +1 -1
  165. package/dist/components/xpl-tabs.js +1 -1
  166. package/dist/components/xpl-tag2.js +1 -1
  167. package/dist/components/xpl-toast.js +1 -1
  168. package/dist/components/xpl-toggle.js +1 -1
  169. package/dist/components/xpl-toolbar.js +1 -1
  170. package/dist/components/xpl-tooltip2.js +1 -1
  171. package/dist/components/xpl-top-nav-item2.js +1 -1
  172. package/dist/components/xpl-top-nav.js +1 -1
  173. package/dist/components/xpl-utility-bar.js +1 -1
  174. package/dist/docs/xpl-checkbox/readme.md +10 -10
  175. package/dist/docs/xpl-dropdown/readme.md +13 -11
  176. package/dist/docs/xpl-dynamic-table/readme.md +19 -22
  177. package/dist/docs/xpl-dynamic-table-cell/readme.md +18 -20
  178. package/dist/docs/xpl-dynamic-table-row/readme.md +19 -21
  179. package/dist/docs/xpl-icon/readme.md +1 -1
  180. package/dist/docs/xpl-radio/readme.md +10 -9
  181. package/dist/docs/xpl-select/readme.md +17 -15
  182. package/dist/docs/xpl-table/readme.md +46 -110
  183. package/dist/docs/{xpl-table/xpl-table-header → xpl-table-header}/readme.md +13 -13
  184. package/dist/docs/xpl-table-header-cell/readme.md +47 -0
  185. package/dist/docs/xpl-toggle/readme.md +16 -9
  186. package/dist/esm/apollo-core.js +1 -1
  187. package/dist/esm/index-C7bgJs6C.js +10 -2
  188. package/dist/esm/loader.js +1 -1
  189. package/dist/esm/xpl-accordion.entry.js +2 -2
  190. package/dist/esm/xpl-application-shell.entry.js +1 -1
  191. package/dist/esm/{xpl-avatar_61.entry.js → xpl-avatar_54.entry.js} +1312 -1719
  192. package/dist/esm/xpl-button-row.entry.js +1 -1
  193. package/dist/esm/xpl-calendar.entry.js +1 -1
  194. package/dist/esm/xpl-dynamic-table-cell.entry.js +2 -2
  195. package/dist/esm/xpl-dynamic-table-row.entry.js +2 -2
  196. package/dist/esm/xpl-dynamic-table.entry.js +1 -1
  197. package/dist/esm/xpl-grid-item.entry.js +1 -1
  198. package/dist/esm/xpl-grid.entry.js +1 -1
  199. package/dist/esm/xpl-large-card.entry.js +1 -1
  200. package/dist/esm/xpl-main-nav.entry.js +1 -1
  201. package/dist/esm/xpl-table-header-cell.entry.js +55 -0
  202. package/dist/esm/xpl-table-header.entry.js +12 -0
  203. package/dist/esm/xpl-toggle.entry.js +9 -4
  204. package/dist/esm/xpl-toolbar.entry.js +2 -2
  205. package/dist/types/components/xpl-checkbox/xpl-checkbox.d.ts +3 -3
  206. package/dist/types/components/xpl-dropdown/xpl-dropdown.d.ts +5 -0
  207. package/dist/types/components/xpl-header-accordion/xpl-header-accordion.d.ts +10 -9
  208. package/dist/types/components/xpl-input/xpl-input.d.ts +3 -2
  209. package/dist/types/components/xpl-pagination/pagination.stories.d.ts +13 -0
  210. package/dist/types/components/xpl-radio/radio.stories.d.ts +10 -1
  211. package/dist/types/components/xpl-radio/xpl-radio.d.ts +2 -0
  212. package/dist/types/components/xpl-select/xpl-select.d.ts +3 -0
  213. package/dist/types/components/xpl-table/table.stories.d.ts +19 -161
  214. package/dist/types/components/xpl-table/xpl-table.d.ts +21 -123
  215. package/dist/types/components/{xpl-table/xpl-table-header → xpl-table-header}/table-header.stories.d.ts +16 -13
  216. package/dist/types/components/{xpl-table/xpl-table-header-cell → xpl-table-header-cell}/table-header-cell.stories.d.ts +20 -24
  217. package/dist/types/components/xpl-table-header-cell/xpl-table-header-cell.d.ts +13 -0
  218. package/dist/types/components/xpl-toggle/xpl-toggle.d.ts +3 -0
  219. package/dist/types/components.d.ts +128 -402
  220. package/package.json +37 -3
  221. package/dist/apollo-core/p-146d5d55.entry.js +0 -1
  222. package/dist/apollo-core/p-16742606.entry.js +0 -1
  223. package/dist/apollo-core/p-3eb5eb7c.entry.js +0 -1
  224. package/dist/apollo-core/p-4882f0bd.entry.js +0 -1
  225. package/dist/apollo-core/p-64b34268.entry.js +0 -1
  226. package/dist/apollo-core/p-71b75f36.entry.js +0 -1
  227. package/dist/apollo-core/p-84254a24.entry.js +0 -1
  228. package/dist/apollo-core/p-9f2a0321.entry.js +0 -1
  229. package/dist/apollo-core/p-cde83ab0.entry.js +0 -1
  230. package/dist/apollo-core/p-e7363036.entry.js +0 -1
  231. package/dist/collection/components/xpl-table/utils/move-row-dom.js +0 -50
  232. package/dist/collection/components/xpl-table/utils/table-internal.js +0 -58
  233. package/dist/collection/components/xpl-table/xpl-table-body/xpl-table-body.js +0 -7
  234. package/dist/collection/components/xpl-table/xpl-table-cell/xpl-table-cell.js +0 -155
  235. package/dist/collection/components/xpl-table/xpl-table-footer/xpl-table-footer.js +0 -7
  236. package/dist/collection/components/xpl-table/xpl-table-footer-cell/xpl-table-footer-cell.js +0 -37
  237. package/dist/collection/components/xpl-table/xpl-table-header/table-header.stories.js +0 -131
  238. package/dist/collection/components/xpl-table/xpl-table-header/xpl-table-header.js +0 -7
  239. package/dist/collection/components/xpl-table/xpl-table-header-cell/table-header-cell.stories.js +0 -105
  240. package/dist/collection/components/xpl-table/xpl-table-header-cell/xpl-table-header-cell.js +0 -402
  241. package/dist/collection/components/xpl-table/xpl-table-row/xpl-table-row.js +0 -121
  242. package/dist/components/lifecycle.js +0 -1
  243. package/dist/components/xpl-table-body.d.ts +0 -11
  244. package/dist/components/xpl-table-body.js +0 -1
  245. package/dist/components/xpl-table-cell.d.ts +0 -11
  246. package/dist/components/xpl-table-cell.js +0 -1
  247. package/dist/components/xpl-table-cell2.js +0 -1
  248. package/dist/components/xpl-table-footer-cell.d.ts +0 -11
  249. package/dist/components/xpl-table-footer-cell.js +0 -1
  250. package/dist/components/xpl-table-footer-cell2.js +0 -1
  251. package/dist/components/xpl-table-footer.d.ts +0 -11
  252. package/dist/components/xpl-table-footer.js +0 -1
  253. package/dist/components/xpl-table-header-cell2.js +0 -1
  254. package/dist/components/xpl-table-row.d.ts +0 -11
  255. package/dist/components/xpl-table-row.js +0 -1
  256. package/dist/docs/xpl-table/xpl-table-body/readme.md +0 -10
  257. package/dist/docs/xpl-table/xpl-table-cell/readme.md +0 -33
  258. package/dist/docs/xpl-table/xpl-table-footer/readme.md +0 -10
  259. package/dist/docs/xpl-table/xpl-table-footer-cell/readme.md +0 -30
  260. package/dist/docs/xpl-table/xpl-table-header-cell/readme.md +0 -66
  261. package/dist/docs/xpl-table/xpl-table-row/readme.md +0 -19
  262. package/dist/types/components/xpl-table/utils/move-row-dom.d.ts +0 -3
  263. package/dist/types/components/xpl-table/utils/table-internal.d.ts +0 -8
  264. package/dist/types/components/xpl-table/xpl-table-body/xpl-table-body.d.ts +0 -3
  265. package/dist/types/components/xpl-table/xpl-table-cell/xpl-table-cell.d.ts +0 -11
  266. package/dist/types/components/xpl-table/xpl-table-footer/xpl-table-footer.d.ts +0 -3
  267. package/dist/types/components/xpl-table/xpl-table-footer-cell/xpl-table-footer-cell.d.ts +0 -4
  268. package/dist/types/components/xpl-table/xpl-table-header-cell/xpl-table-header-cell.d.ts +0 -32
  269. package/dist/types/components/xpl-table/xpl-table-row/xpl-table-row.d.ts +0 -13
  270. /package/dist/types/components/{xpl-table/xpl-table-header → xpl-table-header}/xpl-table-header.d.ts +0 -0
@@ -45,10 +45,10 @@ export class SideNavItem {
45
45
  expanded: this.expanded,
46
46
  selected: this.selected,
47
47
  };
48
- return (h(Host, { key: '10318a2c26c650f5c5e2143c2fe1bde6a372f933', class: {
48
+ return (h(Host, { key: 'a621f4f9c04d79de708a34a4f4eab06e523a299a', class: {
49
49
  'xpl-side-nav-item': true,
50
50
  'xpl-side-nav-item--link-disabled': this.link && this.disabled,
51
- } }, this.link ? (h("slot", null)) : (h("button", { type: "button", class: linkClass, "aria-current": this.selected ? 'page' : undefined, "aria-expanded": this.hasChildren ? (this.expanded ? 'true' : 'false') : undefined, onClick: this.handleClick, disabled: this.disabled }, this.hasChildren && (h("span", { class: `xpl-side-nav-item__arrow ${this.expanded ? 'expanded' : ''}` }, h("xpl-icon", { icon: "chevron-down", size: 16 }))), !this.hasChildren && (h("span", { class: "xpl-side-nav-item__icon" }, h("slot", { name: "icon" }, this.icon ? (h("xpl-icon", { icon: this.icon, size: 16 })) : null))), h("span", { class: "xpl-side-nav-item__label" }, (_a = this.label) !== null && _a !== void 0 ? _a : ''))), this.hasChildren && !this.link && (h("div", { key: 'ea6e431300ffe641e970c8cc49e7935858986685', class: `xpl-side-nav-item__children ${this.expanded ? 'expanded' : ''}`, inert: !this.expanded ? true : undefined }, h("div", { key: '378a00e24a61911ce69ef6a50e69d47b496b5557', class: "xpl-side-nav-item__children-inner" }, h("slot", { key: 'b3ece8c8ddbf58693a370824c40fe3811828889a' }))))));
51
+ } }, this.link ? (h("slot", null)) : (h("button", { type: "button", class: linkClass, "aria-current": this.selected ? 'page' : undefined, "aria-expanded": this.hasChildren ? (this.expanded ? 'true' : 'false') : undefined, onClick: this.handleClick, disabled: this.disabled }, this.hasChildren && (h("span", { class: `xpl-side-nav-item__arrow ${this.expanded ? 'expanded' : ''}` }, h("xpl-icon", { icon: "chevron-down", size: 16 }))), !this.hasChildren && (h("span", { class: "xpl-side-nav-item__icon" }, h("slot", { name: "icon" }, this.icon ? (h("xpl-icon", { icon: this.icon, size: 16 })) : null))), h("span", { class: "xpl-side-nav-item__label" }, (_a = this.label) !== null && _a !== void 0 ? _a : ''))), this.hasChildren && !this.link && (h("div", { key: '3e22894c0bd9427f568b86bba00cdab822921997', class: `xpl-side-nav-item__children ${this.expanded ? 'expanded' : ''}`, inert: !this.expanded ? true : undefined }, h("div", { key: '41486a4241e4402232531d140e972b39d863ffd9', class: "xpl-side-nav-item__children-inner" }, h("slot", { key: 'd334c6ecac7dd1dd12602a461db444cd1ccefc86' }))))));
52
52
  }
53
53
  static get is() { return "xpl-side-nav-item"; }
54
54
  static get properties() {
@@ -1,9 +1,9 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  export class SideNav {
3
3
  render() {
4
- return (h(Host, { key: 'bfa4c94a1718583020da6a8b1e9104788ce78ef1', class: {
4
+ return (h(Host, { key: 'd01e8e27671eabc92613a803818b4351334011ac', class: {
5
5
  'xpl-side-nav': true,
6
- } }, h("div", { key: '1788f206ed3bea01be9cfa74fbc54a54e664945c', class: "xpl-side-nav__wrapper" }, h("nav", { key: 'ccbcbc45566a77a9134279b486148f3444bdb0ea', class: "xpl-side-nav__content", "aria-label": this.label }, h("div", { key: '6aef4d3f8e0c037aeedfc45d8471978c635b3293', class: "xpl-side-nav__section" }, h("slot", { key: 'e4384164f138cae0135472428079b62924afbcdf', name: "section" })), h("div", { key: '9794ea9a4b566713d0adb0787ae2ab1ae171fa6e', class: "xpl-side-nav__footer" }, h("slot", { key: 'e20ff6d3795784ea11470b7287550c29c0984a65', name: "nav-footer" }))))));
6
+ } }, h("div", { key: '92c9f31fa0d9d564164cde99d17e30562c30abb7', class: "xpl-side-nav__wrapper" }, h("nav", { key: '5ddd8b18d4f74bb752b747ec4e1c48780a0738de', class: "xpl-side-nav__content", "aria-label": this.label }, h("div", { key: '8b830945bf6ec1da8ab2e2c955c10a1077652590', class: "xpl-side-nav__section" }, h("slot", { key: '66e5cd33c23bdc8963d661e0741d34f80a0640fb', name: "section" })), h("div", { key: 'f0da4e3c25822453efcbfb3c6f8ea7ec328e717d', class: "xpl-side-nav__footer" }, h("slot", { key: '76b829e978361be9fd62bd412489ea4559852c3f', name: "nav-footer" }))))));
7
7
  }
8
8
  static get is() { return "xpl-side-nav"; }
9
9
  static get properties() {
@@ -5,7 +5,7 @@ export class Skeleton {
5
5
  this.size = 'custom';
6
6
  }
7
7
  render() {
8
- return (h(Host, { key: '4c0962c3339b49f2f89d07e4827e826089419c70', class: {
8
+ return (h(Host, { key: '0ac86ae7bf109ea51bca36ac502d506ac7d0b66e', class: {
9
9
  'xpl-skeleton': true,
10
10
  [`xpl-skeleton--shape-${this.shape}`]: true,
11
11
  [`xpl-skeleton--size-${this.size}`]: true,
@@ -26,7 +26,7 @@ export class Slideout {
26
26
  this.handleScroll();
27
27
  }
28
28
  render() {
29
- return (h(Host, { key: '01e702ef959cc596ae8fb140275d733c93c3b399', class: "xpl-slideout" }, this.backdrop && this.isOpen && (h("xpl-backdrop", { key: '4e82ee44b68eae102a4c4ef65e797ce23659d330', onClick: this.handleClose })), h("aside", { key: '1c718a30611bb6699f231a9e736c0521c248d65a', class: `slideout slideout--${!this.isOpen && 'closed'}` }, h("header", { key: 'c53419926fbe8ccc6616af39d021248b46f138a3', class: "header" }, h("div", { key: '36e02fe5b7ff8d6920759ab793ead2be0f0811ac', class: "title" }, h("slot", { key: '7932fd5e77edb89570ebd3fedc0346929582ec7b', name: "title" }), h("xpl-button", { key: '9772e880c9b132ba84ccf45c4793e0af70548866', class: "close-button", "icon-only": true, size: "sm", variant: "tertiary", onClick: this.handleClose }, h("xpl-icon", { key: '91922e8aa02c30aa73ae1ea3d2b47daffd954616', icon: "x" }))), h("div", { key: '2f7065ba1da7f0ad805e16b69f4a316d5a1f9285', class: "subtitle" }, h("slot", { key: '8edb8bdbdecd01abd2b7899d5c9897c91e625326', name: "subtitle" })), h("div", { key: '5945128002bb2103daac40d1f7457ebb97521002', class: "search" }, h("slot", { key: 'c4df975581beb16547a439a86f2a532c10fa4fa7', name: "search" }))), h("xpl-divider", { key: '3be4c74de14ca2380179798fe4ec0c9a758739af', tier: 0, class: "divider top" }), h("article", { key: '2012ae1197acc41f530af8920b19752a248e2b40', class: "content", tabIndex: 0 }, h("slot", { key: 'e8a1cedda6cd48bb62dc42f00c9bdc8510d4f603', name: "content" })), this.showFooter && (h("footer", { key: 'cfa5a41846485b879126a90f3a7346d6eb680776' }, h("xpl-divider", { key: 'bf05c9d85471b55dee25da790afb3cb642f1a86b', tier: 0, class: "divider bottom" }), h("div", { key: 'd109314ca745947f3337b06df73183ff277c89bb', class: "footer" }, h("slot", { key: 'cad183e788d3555a5366b19b4e01c3c90f7d9ae0', name: "tertiary" }), h("slot", { key: 'c12294440fe8544e51197dfddbc01aaea506575a', name: "secondary" }), h("slot", { key: '7accdf8dc3cc9b6a416cf784ec081d70c1d0f1e9', name: "primary" })))))));
29
+ return (h(Host, { key: '8a3f7af854b35469bf4a383cc4cb1fcfcaa15748', class: "xpl-slideout" }, this.backdrop && this.isOpen && (h("xpl-backdrop", { key: '7033d78efa9ac2642a99d2b2dca278a3e9a44368', onClick: this.handleClose })), h("aside", { key: '2999e4119a0dbaac5125c7a1ef5f03761f445a0e', class: `slideout slideout--${!this.isOpen && 'closed'}` }, h("header", { key: '5e6bcf1284c2b2a4fbc05dd8e5100a33fa7597b4', class: "header" }, h("div", { key: '88172efe113b56a533761b975605a44ef52c5174', class: "title" }, h("slot", { key: 'c8f13168f62f96374250b11814ace756fa680503', name: "title" }), h("xpl-button", { key: '8e0e29a8ad2a5f45b250f9d563886fe7ad2a7cb8', class: "close-button", "icon-only": true, size: "sm", variant: "tertiary", onClick: this.handleClose }, h("xpl-icon", { key: '110cbd50e31b51319745d6fed61188c1c885b8b3', icon: "x" }))), h("div", { key: '96e6cddf4b078736201116f220f27ddf34b90b44', class: "subtitle" }, h("slot", { key: 'eb02b4fce6ff5e658ec51c83819a5257f452d3a1', name: "subtitle" })), h("div", { key: 'ac8dfe1f99428cdf728027aa5a04d58d497f34f0', class: "search" }, h("slot", { key: '28deb70ef99f4880fba55beb2d2b4b1d3136a240', name: "search" }))), h("xpl-divider", { key: '928d20ef8e74eed4e06351c5dab0c0af9934d2b8', tier: 0, class: "divider top" }), h("article", { key: 'd6460cb29abb33f6676d2e4f517c1f2befa57148', class: "content", tabIndex: 0 }, h("slot", { key: 'b415af9cadedc61407623773fd6b2b1130caf5df', name: "content" })), this.showFooter && (h("footer", { key: 'db6a58277112f134dc150266446cc67c79bc6bc5' }, h("xpl-divider", { key: '129a61ba1a8a588e94d710b7e7fb1059c4b7f5e6', tier: 0, class: "divider bottom" }), h("div", { key: '6c81348acf8ee2bb4c12c2f3207daae564e78aa2', class: "footer" }, h("slot", { key: '8c9a6d4c215154bb2e66d62aa462b3b085ef0f5b', name: "tertiary" }), h("slot", { key: 'e66e45e2d090f45305f818c6496541b737c96aeb', name: "secondary" }), h("slot", { key: '8892bdf075a38237a5c858bfd951e1203fc3c892', name: "primary" })))))));
30
30
  }
31
31
  static get is() { return "xpl-slideout"; }
32
32
  static get properties() {
@@ -10,10 +10,10 @@ export class TabPanel {
10
10
  const t = (_a = this.target) !== null && _a !== void 0 ? _a : '';
11
11
  const panelId = tabPanelDomId(groupId, t);
12
12
  const labelledBy = tabTriggerId(groupId, t);
13
- return (h(Host, { key: '4491f3466d26e462432843c382b0d0b5ab64e68b', "aria-labelledby": labelledBy, class: {
13
+ return (h(Host, { key: '4c4a86dda347872ea6b1c4569f8424bd6cac7bd9', "aria-labelledby": labelledBy, class: {
14
14
  'xpl-tab-panel': true,
15
15
  'xpl-tab-panel--selected': this.selected,
16
- }, id: panelId, role: "tabpanel" }, h("slot", { key: '75b3da77cddb6e0a83b7cf41aa5e0aa30259b728' })));
16
+ }, id: panelId, role: "tabpanel" }, h("slot", { key: '30c9ae6f3748dc02a73da7535443266b1043d61b' })));
17
17
  }
18
18
  static get is() { return "xpl-tab-panel"; }
19
19
  static get properties() {
@@ -1,107 +1,19 @@
1
1
  import { v4 as uuid } from "uuid";
2
- const SLOT_TABLE_WRAPPER_STYLE = 'box-sizing: border-box; display: block; width: 100%; max-width: min(100vw - 2rem, 960px); overflow: auto;';
3
- const PLACEHOLDER_AVATAR_SRC = 'https://placebear.com/128/128';
4
2
  export default {
5
3
  title: 'Components/Table',
4
+ argTypes: {
5
+ freeze: { control: { type: 'boolean' } },
6
+ multiselect: { control: { type: 'boolean' } },
7
+ striped: { control: { type: 'boolean' } },
8
+ columns: { control: { type: 'object' } },
9
+ data: { control: { type: 'object' } },
10
+ footer: { control: { type: 'object' } },
11
+ isSortable: { control: { type: 'boolean' } },
12
+ sortableColumns: { control: { type: 'object' } },
13
+ },
6
14
  parameters: {
7
- controls: {
8
- sort: 'none',
9
- },
10
15
  actions: {
11
- handles: ['tableSelect', 'sortChanged', 'rowSelectionChange', 'rowOrderChange'],
12
- },
13
- docs: {
14
- description: {
15
- component: 'Use **Slot based** for compositional `xpl-table` (`xpl-table-header`, `xpl-table-body`, …). Use **Legacy** for the deprecated `columns` / `data` API (native `<table>`). Compositional mode: `selectable`, `row-reorderable`, toolbar slots, and **header sort** (`sortable` on `xpl-table-header-cell` + `sortChanged` on the table — the story script reorders rows for demo only).',
16
- },
17
- },
18
- },
19
- argTypes: {
20
- type: {
21
- name: 'Type',
22
- control: { type: 'select' },
23
- options: ['Legacy', 'Slot based'],
24
- table: { category: '00 — Mode' },
25
- },
26
- freeze: {
27
- control: { type: 'boolean' },
28
- table: { category: 'Shared' },
29
- },
30
- striped: {
31
- control: { type: 'boolean' },
32
- table: { category: 'Shared' },
33
- },
34
- multiselect: {
35
- control: { type: 'boolean' },
36
- if: { arg: 'type', eq: 'Legacy' },
37
- table: { category: '01 — Legacy' },
38
- },
39
- columns: {
40
- control: { type: 'object' },
41
- if: { arg: 'type', eq: 'Legacy' },
42
- table: { category: '01 — Legacy' },
43
- },
44
- data: {
45
- control: { type: 'object' },
46
- if: { arg: 'type', eq: 'Legacy' },
47
- table: { category: '01 — Legacy' },
48
- },
49
- footer: {
50
- control: { type: 'object' },
51
- if: { arg: 'type', eq: 'Legacy' },
52
- table: { category: '01 — Legacy' },
53
- },
54
- isSortable: {
55
- control: { type: 'boolean' },
56
- if: { arg: 'type', eq: 'Legacy' },
57
- table: { category: '01 — Legacy' },
58
- },
59
- sortableColumns: {
60
- control: { type: 'object' },
61
- if: { arg: 'type', eq: 'Legacy' },
62
- table: { category: '01 — Legacy' },
63
- },
64
- selectedValues: {
65
- control: { type: 'object' },
66
- if: { arg: 'type', eq: 'Legacy' },
67
- description: '**Legacy only** (`columns` / `data` + `multiselect`). Per-row checkbox values. Not used in slot-based mode.',
68
- table: { category: '01 — Legacy' },
69
- },
70
- tableLabel: {
71
- control: 'text',
72
- if: { arg: 'type', eq: 'Slot based' },
73
- description: 'Sets `label` / `aria-label` on `xpl-table`.',
74
- table: { category: '02 — Slot: Table' },
75
- },
76
- showSelectable: {
77
- control: 'boolean',
78
- if: { arg: 'type', eq: 'Slot based' },
79
- description: 'Adds `selectable` and a checkbox column (you must author header + row checkboxes).',
80
- table: { category: '02 — Slot: Table' },
81
- },
82
- showRowReorderable: {
83
- control: 'boolean',
84
- if: { arg: 'type', eq: 'Slot based' },
85
- description: 'Adds `row-reorderable`; Apollo injects the reorder column (grip).',
86
- table: { category: '02 — Slot: Table' },
87
- },
88
- showToolbar: {
89
- control: 'boolean',
90
- if: { arg: 'type', eq: 'Slot based' },
91
- description: 'Renders `slot="toolbar-actions-left"` on the bulk toolbar. Requires **`showSelectable`**: without `selectable`, those slots are not rendered by `xpl-table` and toolbar nodes would break the grid — the story skips them when selection is off.',
92
- table: { category: '02 — Slot: Table' },
93
- },
94
- sortableNameColumn: {
95
- control: 'boolean',
96
- if: { arg: 'type', eq: 'Slot based' },
97
- description: 'Name column uses `sortable` + `sort-key="name"`. Compositional tables emit `sortChanged` only; the story script reorders rows by the active sort-key in `event.detail` (same slug rules as `xpl-table`).',
98
- table: { category: '02 — Slot: Table' },
99
- },
100
- showRichCells: {
101
- control: 'boolean',
102
- if: { arg: 'type', eq: 'Slot based' },
103
- description: 'Name column shows avatar + caption (like the index.html rich demo).',
104
- table: { category: '03 — Slot: Row content' },
16
+ handles: ['tableSelect', 'sortChanged'],
105
17
  },
106
18
  },
107
19
  };
@@ -129,7 +41,7 @@ const selectedValuesDefault = [
129
41
  ];
130
42
  const sortableColumnsDefault = [false, false, false, false, false, false];
131
43
  const footerDefault = [['Total', '676.5', '159.75', 'All Seasons', '26', '106']];
132
- const legacyScript = ({ columns, data, footer, id, selectedValues, isSortable, sortableColumns, }) => `
44
+ const script = ({ columns, data, footer, id, selectedValues, isSortable, sortableColumns }) => `
133
45
  (function() {
134
46
  const table = document.getElementById("${id}");
135
47
  table.columns = ${JSON.stringify(columns)};
@@ -140,206 +52,8 @@ const legacyScript = ({ columns, data, footer, id, selectedValues, isSortable, s
140
52
  table.isSortable = ${isSortable};
141
53
  })();
142
54
  `;
143
- function slotBasedSortScript(tableId) {
144
- const idLiteral = JSON.stringify(tableId);
145
- return `
146
- <script>
147
- (function () {
148
- const table = document.getElementById(${idLiteral});
149
- if (!table) return;
150
-
151
- function sortKeySlug(h, columnIndex) {
152
- var sk = h.getAttribute('sort-key');
153
- var lab = (h.getAttribute('label') || '').trim();
154
- var raw = (sk || lab || '').trim();
155
- if (raw.length > 0) return raw.replace(/ /g, '-').toLowerCase();
156
- return 'column-' + columnIndex;
157
- }
158
-
159
- table.addEventListener('sortChanged', function (e) {
160
- const detail = e.detail;
161
- if (!detail || typeof detail !== 'object') return;
162
-
163
- var activeKey = null;
164
- var dir = null;
165
- Object.keys(detail).forEach(function (k) {
166
- var v = detail[k];
167
- if (v === 'asc' || v === 'desc') {
168
- activeKey = k;
169
- dir = v;
170
- }
171
- });
172
-
173
- const body = table.querySelector('xpl-table-body');
174
- const headerRow = table.querySelector('xpl-table-header xpl-table-row');
175
- if (!body || !headerRow) return;
176
- const headers = Array.from(headerRow.querySelectorAll('xpl-table-header-cell'));
177
- const rows = Array.from(body.querySelectorAll('xpl-table-row'));
178
-
179
- function defaultOrder(row) {
180
- const rid = row.getAttribute('row-id') || '';
181
- const m = rid.match(/-(\\d+)$/);
182
- return m ? parseInt(m[1], 10) : 0;
183
- }
184
-
185
- if (!activeKey) {
186
- rows.sort(function (a, b) {
187
- return defaultOrder(a) - defaultOrder(b);
188
- });
189
- rows.forEach(function (r) {
190
- body.appendChild(r);
191
- });
192
- return;
193
- }
194
-
195
- var sortColIdx = headers.findIndex(function (h, i) {
196
- return sortKeySlug(h, i) === activeKey;
197
- });
198
- if (sortColIdx < 0) return;
199
-
200
- function rowKey(row) {
201
- const cells = row.querySelectorAll('xpl-table-cell');
202
- const c = cells[sortColIdx];
203
- return (c && c.textContent ? c.textContent : '')
204
- .replace(/\\s+/g, ' ')
205
- .trim()
206
- .toLowerCase();
207
- }
208
- rows.sort(function (a, b) {
209
- const cmp = rowKey(a).localeCompare(rowKey(b));
210
- return dir === 'asc' ? cmp : -cmp;
211
- });
212
- rows.forEach(function (r) {
213
- body.appendChild(r);
214
- });
215
- });
216
- })();
217
- </script>`;
218
- }
219
- function slotBasedNameCell(showRichCells, rowIndex, name) {
220
- if (!showRichCells) {
221
- return `<xpl-table-cell>${name}</xpl-table-cell>`;
222
- }
223
- return `<xpl-table-cell>
224
- <div style="display: flex; align-items: center; gap: var(--xpl-space-12);">
225
- <xpl-avatar name="${name}" src="${PLACEHOLDER_AVATAR_SRC}" size="sm"></xpl-avatar>
226
- <div style="display: flex; flex-direction: column; gap: var(--xpl-space-4); min-width: 0;">
227
- <span style="font-weight: var(--xpl-font-weight-semibold)">${name}</span>
228
- <span class="xpl-text-caption">player${rowIndex}@example.com</span>
229
- </div>
230
- </div>
231
- </xpl-table-cell>`;
232
- }
233
- function renderSlotBasedTable(props) {
234
- const tableId = uuid();
235
- const label = props.tableLabel != null && String(props.tableLabel).trim() !== ''
236
- ? String(props.tableLabel)
237
- : 'Team directory';
238
- const labelAttr = ` label="${label.replace(/"/g, '&quot;')}"`;
239
- const attrs = [
240
- ` id="${tableId}"`,
241
- labelAttr,
242
- props.striped ? ' striped' : '',
243
- props.freeze ? ' freeze' : '',
244
- props.showSelectable ? ' selectable' : '',
245
- props.showRowReorderable ? ' row-reorderable' : '',
246
- ].join('');
247
- const toolbar = props.showSelectable && props.showToolbar
248
- ? `
249
- <div slot="toolbar-actions-left" style="display: inline-flex; align-items: center; gap: var(--xpl-space-8)">
250
- <xpl-button size="sm" variant="secondary" type="button">Bulk action</xpl-button>
251
- </div>`
252
- : '';
253
- const headerCheckbox = props.showSelectable
254
- ? `<xpl-table-header-cell type="checkbox" width="48"></xpl-table-header-cell>`
255
- : '';
256
- const nameSort = props.sortableNameColumn ? ' sortable sort-key="name"' : '';
257
- const names = ['Boston Rob Mariano', 'Parvati Shallow', 'Ozzy Lusth'];
258
- const bodyRows = [1, 2, 3]
259
- .map((i) => {
260
- var _a;
261
- const rowCheckbox = props.showSelectable
262
- ? `<xpl-table-cell><xpl-checkbox></xpl-checkbox></xpl-table-cell>`
263
- : '';
264
- const name = (_a = names[i - 1]) !== null && _a !== void 0 ? _a : `Player ${i}`;
265
- return `
266
- <xpl-table-row row-id="story-row-${i}">
267
- ${rowCheckbox}
268
- ${slotBasedNameCell(Boolean(props.showRichCells), i, name)}
269
- <xpl-table-cell>${90 + i * 7}</xpl-table-cell>
270
- <xpl-table-cell>S${10 + i}, S${20 + i}</xpl-table-cell>
271
- </xpl-table-row>`;
272
- })
273
- .join('');
274
- return `
275
- <div style="${SLOT_TABLE_WRAPPER_STYLE}">
276
- <xpl-table${attrs}>
277
- ${toolbar}
278
- <xpl-table-header>
279
- <xpl-table-row>
280
- ${headerCheckbox}
281
- <xpl-table-header-cell label="Name"${nameSort} width="280"></xpl-table-header-cell>
282
- <xpl-table-header-cell label="Days" align="right" width="96"></xpl-table-header-cell>
283
- <xpl-table-header-cell label="Seasons"></xpl-table-header-cell>
284
- </xpl-table-row>
285
- </xpl-table-header>
286
- <xpl-table-body>
287
- ${bodyRows}
288
- </xpl-table-body>
289
- </xpl-table>
290
- </div>${slotBasedSortScript(tableId)}`;
291
- }
292
- const slotBasedExample = `<div style="${SLOT_TABLE_WRAPPER_STYLE}">
293
- <xpl-table label="Team directory" selectable striped freeze row-reorderable>
294
- <div slot="toolbar-actions-left" style="display: inline-flex; align-items: center; gap: var(--xpl-space-8)">
295
- <xpl-button size="sm" variant="secondary" type="button">Bulk action</xpl-button>
296
- </div>
297
- <xpl-table-header>
298
- <xpl-table-row>
299
- <xpl-table-header-cell type="checkbox" width="48"></xpl-table-header-cell>
300
- <xpl-table-header-cell label="Name" sortable sort-key="name" width="280"></xpl-table-header-cell>
301
- <xpl-table-header-cell label="Days" align="right" width="96"></xpl-table-header-cell>
302
- <xpl-table-header-cell label="Seasons"></xpl-table-header-cell>
303
- </xpl-table-row>
304
- </xpl-table-header>
305
- <xpl-table-body>
306
- <xpl-table-row row-id="example-1">
307
- <xpl-table-cell><xpl-checkbox></xpl-checkbox></xpl-table-cell>
308
- <xpl-table-cell>
309
- <div style="display: flex; align-items: center; gap: var(--xpl-space-12);">
310
- <xpl-avatar name="Boston Rob" src="https://placebear.com/128/128" size="sm"></xpl-avatar>
311
- <div style="display: flex; flex-direction: column; gap: var(--xpl-space-4); min-width: 0;">
312
- <span style="font-weight: var(--xpl-font-weight-semibold)">Boston Rob Mariano</span>
313
- <span class="xpl-text-caption">boston@example.com</span>
314
- </div>
315
- </div>
316
- </xpl-table-cell>
317
- <xpl-table-cell align="right">152</xpl-table-cell>
318
- <xpl-table-cell>S4, S8, S20</xpl-table-cell>
319
- </xpl-table-row>
320
- <xpl-table-row row-id="example-2">
321
- <xpl-table-cell><xpl-checkbox></xpl-checkbox></xpl-table-cell>
322
- <xpl-table-cell>
323
- <div style="display: flex; align-items: center; gap: var(--xpl-space-12);">
324
- <xpl-avatar name="Parvati Shallow" size="sm" color="green"></xpl-avatar>
325
- <div style="display: flex; flex-direction: column; gap: var(--xpl-space-4); min-width: 0;">
326
- <span style="font-weight: var(--xpl-font-weight-semibold)">Parvati Shallow</span>
327
- <span class="xpl-text-caption">parvati@example.com</span>
328
- </div>
329
- </div>
330
- </xpl-table-cell>
331
- <xpl-table-cell align="right">149</xpl-table-cell>
332
- <xpl-table-cell>S13, S16, S20</xpl-table-cell>
333
- </xpl-table-row>
334
- </xpl-table-body>
335
- </xpl-table>
336
- </div>`;
337
- export const Table = (props) => {
338
- if (props.type === 'Slot based') {
339
- return renderSlotBasedTable(props);
340
- }
55
+ export const Table = ({ columns, data, footer, freeze, multiselect, selectedValues, striped, isSortable, sortableColumns, }) => {
341
56
  const id = uuid();
342
- const { columns, data, footer, freeze, multiselect, selectedValues, striped, isSortable, sortableColumns, } = props;
343
57
  let attrs = '';
344
58
  if (freeze)
345
59
  attrs += ' freeze';
@@ -354,43 +68,77 @@ export const Table = (props) => {
354
68
  <xpl-table id="${id}"${attrs}></xpl-table>
355
69
  </div>
356
70
  <script>
357
- ${legacyScript({
358
- id,
359
- columns,
360
- data,
361
- footer,
362
- selectedValues,
363
- sortableColumns,
364
- isSortable,
365
- })}
71
+ ${script({ id, columns, data, footer, selectedValues, sortableColumns, isSortable })}
366
72
  </script>
367
73
  `;
368
74
  };
369
75
  Table.args = {
370
- type: 'Slot based',
371
76
  freeze: true,
372
- striped: true,
373
77
  multiselect: false,
78
+ striped: false,
374
79
  columns: columnsDefault,
375
80
  data: dataDefault,
376
81
  footer: footerDefault,
377
82
  selectedValues: selectedValuesDefault,
378
83
  isSortable: false,
379
84
  sortableColumns: sortableColumnsDefault,
380
- tableLabel: 'Team directory',
381
- showSelectable: true,
382
- showRowReorderable: true,
383
- showToolbar: true,
384
- sortableNameColumn: true,
385
- showRichCells: true,
386
85
  };
387
86
  Table.parameters = {
388
- layout: 'padded',
87
+ layout: 'centered',
389
88
  'web-component': {
390
- render: [slotBasedExample],
89
+ render: (({ freeze, multiselect, striped }) => {
90
+ let attrs = '';
91
+ if (freeze)
92
+ attrs += ' freeze';
93
+ if (multiselect)
94
+ attrs += ' multiselect';
95
+ if (striped)
96
+ attrs += ' striped';
97
+ return [
98
+ `<xpl-table${attrs}></xpl-table>`,
99
+ `table.columns = [
100
+ "Name", "Total Days Played", ...
101
+ ];`,
102
+ `table.data = [
103
+ ["Boston Rob Mariano", ...],
104
+ ["Parvati Shallow", ...],
105
+ ...
106
+ ];`,
107
+ ];
108
+ })(Table.args),
391
109
  },
392
110
  html: {
393
- render: slotBasedExample,
111
+ render: (({ freeze, striped }) => {
112
+ let className = 'xpl-table';
113
+ if (striped)
114
+ className += ' xpl-table--striped';
115
+ if (freeze)
116
+ className += ' xpl-table--freeze';
117
+ return [
118
+ `WARNING: For \`multiselect\` tables, there is JS interactivity that is provided only by the web component. The code shown below does not reflect the additional \`multiselect\` table markup and interactivity.`,
119
+ `<div class="xpl-table-container">
120
+ <table class="${className}">
121
+ <thead>
122
+ <th>Name</th>
123
+ <th>Total Days Played</th>
124
+ ...
125
+ </thead>
126
+ <tbody>
127
+ <tr>
128
+ <td>Boston Rob Mariano</td>
129
+ <td>152</td>
130
+ ...
131
+ </tr>
132
+ <tr>
133
+ <td>Parvati Shallow</td>
134
+ <td>149</td>
135
+ ...
136
+ </tr>
137
+ </tbody>
138
+ </table>
139
+ </div>`,
140
+ ];
141
+ })(Table.args),
394
142
  },
395
143
  design: {
396
144
  type: 'figma',