@patternfly/elements 4.0.2 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/custom-elements.json +13680 -12603
  2. package/package.json +17 -14
  3. package/pf-accordion/pf-accordion-header.css +37 -0
  4. package/pf-accordion/pf-accordion-header.d.ts +0 -61
  5. package/pf-accordion/pf-accordion-header.js +180 -2
  6. package/pf-accordion/pf-accordion-header.js.map +1 -1
  7. package/pf-accordion/pf-accordion-panel.css +12 -0
  8. package/pf-accordion/pf-accordion-panel.d.ts +0 -34
  9. package/pf-accordion/pf-accordion-panel.js +87 -2
  10. package/pf-accordion/pf-accordion-panel.js.map +1 -1
  11. package/pf-accordion/pf-accordion.css +62 -0
  12. package/pf-accordion/pf-accordion.d.ts +1 -64
  13. package/pf-accordion/pf-accordion.js +156 -2
  14. package/pf-accordion/pf-accordion.js.map +1 -1
  15. package/pf-avatar/pf-avatar.css +14 -0
  16. package/pf-avatar/pf-avatar.d.ts +1 -14
  17. package/pf-avatar/pf-avatar.js +82 -2
  18. package/pf-avatar/pf-avatar.js.map +1 -1
  19. package/pf-back-to-top/pf-back-to-top.css +12 -0
  20. package/pf-back-to-top/pf-back-to-top.d.ts +1 -17
  21. package/pf-back-to-top/pf-back-to-top.js +91 -4
  22. package/pf-back-to-top/pf-back-to-top.js.map +1 -1
  23. package/pf-background-image/pf-background-image.css +7 -0
  24. package/pf-background-image/pf-background-image.d.ts +1 -8
  25. package/pf-background-image/pf-background-image.js +76 -2
  26. package/pf-background-image/pf-background-image.js.map +1 -1
  27. package/pf-badge/pf-badge.css +13 -0
  28. package/pf-badge/pf-badge.d.ts +1 -13
  29. package/pf-badge/pf-badge.js +53 -2
  30. package/pf-badge/pf-badge.js.map +1 -1
  31. package/pf-banner/pf-banner.css +21 -0
  32. package/pf-banner/pf-banner.d.ts +1 -19
  33. package/pf-banner/pf-banner.js +122 -2
  34. package/pf-banner/pf-banner.js.map +1 -1
  35. package/pf-button/pf-button-tokens.css +38 -0
  36. package/pf-button/pf-button.d.ts +1 -106
  37. package/pf-button/pf-button.js +837 -4
  38. package/pf-button/pf-button.js.map +1 -1
  39. package/pf-card/pf-card.css +24 -0
  40. package/pf-card/pf-card.d.ts +1 -38
  41. package/pf-card/pf-card.js +248 -2
  42. package/pf-card/pf-card.js.map +1 -1
  43. package/pf-card/test/pf-card.e2e.js +20 -1
  44. package/pf-card/test/pf-card.e2e.js.map +1 -1
  45. package/pf-chip/pf-chip-group.css +15 -0
  46. package/pf-chip/pf-chip-group.d.ts +0 -15
  47. package/pf-chip/pf-chip-group.js +111 -2
  48. package/pf-chip/pf-chip-group.js.map +1 -1
  49. package/pf-chip/pf-chip.css +30 -1
  50. package/pf-chip/pf-chip.d.ts +1 -20
  51. package/pf-chip/pf-chip.js +135 -2
  52. package/pf-chip/pf-chip.js.map +1 -1
  53. package/pf-clipboard-copy/pf-clipboard-copy.css +25 -0
  54. package/pf-clipboard-copy/pf-clipboard-copy.d.ts +1 -27
  55. package/pf-clipboard-copy/pf-clipboard-copy.js +323 -6
  56. package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
  57. package/pf-code-block/pf-code-block.css +11 -1
  58. package/pf-code-block/pf-code-block.js +70 -18
  59. package/pf-code-block/pf-code-block.js.map +1 -1
  60. package/pf-dropdown/pf-dropdown-group.js +40 -2
  61. package/pf-dropdown/pf-dropdown-group.js.map +1 -1
  62. package/pf-dropdown/pf-dropdown-item.css +10 -0
  63. package/pf-dropdown/pf-dropdown-item.d.ts +0 -27
  64. package/pf-dropdown/pf-dropdown-item.js +155 -2
  65. package/pf-dropdown/pf-dropdown-item.js.map +1 -1
  66. package/pf-dropdown/pf-dropdown-menu.js +39 -2
  67. package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
  68. package/pf-dropdown/pf-dropdown.css +5 -0
  69. package/pf-dropdown/pf-dropdown.d.ts +1 -9
  70. package/pf-dropdown/pf-dropdown.js +350 -2
  71. package/pf-dropdown/pf-dropdown.js.map +1 -1
  72. package/pf-icon/pf-icon.css +1 -0
  73. package/pf-icon/pf-icon.d.ts +1 -3
  74. package/pf-icon/pf-icon.js +44 -4
  75. package/pf-icon/pf-icon.js.map +1 -1
  76. package/pf-jump-links/pf-jump-links-item.css +7 -1
  77. package/pf-jump-links/pf-jump-links-item.d.ts +0 -8
  78. package/pf-jump-links/pf-jump-links-item.js +77 -2
  79. package/pf-jump-links/pf-jump-links-item.js.map +1 -1
  80. package/pf-jump-links/pf-jump-links-list.css +3 -0
  81. package/pf-jump-links/pf-jump-links-list.d.ts +0 -5
  82. package/pf-jump-links/pf-jump-links-list.js +20 -2
  83. package/pf-jump-links/pf-jump-links-list.js.map +1 -1
  84. package/pf-jump-links/pf-jump-links.css +36 -0
  85. package/pf-jump-links/pf-jump-links.d.ts +1 -38
  86. package/pf-jump-links/pf-jump-links.js +179 -2
  87. package/pf-jump-links/pf-jump-links.js.map +1 -1
  88. package/pf-label/pf-label.css +51 -1
  89. package/pf-label/pf-label.d.ts +1 -58
  90. package/pf-label/pf-label.js +257 -2
  91. package/pf-label/pf-label.js.map +1 -1
  92. package/pf-modal/pf-modal.css +11 -0
  93. package/pf-modal/pf-modal.d.ts +1 -24
  94. package/pf-modal/pf-modal.js +215 -2
  95. package/pf-modal/pf-modal.js.map +1 -1
  96. package/pf-panel/pf-panel.css +29 -0
  97. package/pf-panel/pf-panel.d.ts +1 -32
  98. package/pf-panel/pf-panel.js +204 -2
  99. package/pf-panel/pf-panel.js.map +1 -1
  100. package/pf-popover/pf-popover.css +33 -0
  101. package/pf-popover/pf-popover.d.ts +1 -108
  102. package/pf-popover/pf-popover.js +251 -3
  103. package/pf-popover/pf-popover.js.map +1 -1
  104. package/pf-progress/pf-progress.css +19 -0
  105. package/pf-progress/pf-progress.d.ts +1 -57
  106. package/pf-progress/pf-progress.js +231 -2
  107. package/pf-progress/pf-progress.js.map +1 -1
  108. package/pf-progress-stepper/pf-progress-step.js +126 -2
  109. package/pf-progress-stepper/pf-progress-step.js.map +1 -1
  110. package/pf-progress-stepper/pf-progress-stepper.css +96 -0
  111. package/pf-progress-stepper/pf-progress-stepper.d.ts +1 -115
  112. package/pf-progress-stepper/pf-progress-stepper.js +326 -2
  113. package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
  114. package/pf-search-input/pf-search-input.css +308 -0
  115. package/pf-search-input/pf-search-input.d.ts +75 -0
  116. package/pf-search-input/pf-search-input.js +630 -0
  117. package/pf-search-input/pf-search-input.js.map +1 -0
  118. package/pf-search-input/test/pf-search-input.e2e.d.ts +1 -0
  119. package/pf-search-input/test/pf-search-input.e2e.js +23 -0
  120. package/pf-search-input/test/pf-search-input.e2e.js.map +1 -0
  121. package/pf-search-input/test/pf-search-input.spec.d.ts +1 -0
  122. package/pf-search-input/test/pf-search-input.spec.js +1021 -0
  123. package/pf-search-input/test/pf-search-input.spec.js.map +1 -0
  124. package/pf-select/pf-option-group.js +27 -2
  125. package/pf-select/pf-option-group.js.map +1 -1
  126. package/pf-select/pf-option.css +9 -1
  127. package/pf-select/pf-option.js +83 -2
  128. package/pf-select/pf-option.js.map +1 -1
  129. package/pf-select/pf-select.css +157 -0
  130. package/pf-select/pf-select.d.ts +1 -158
  131. package/pf-select/pf-select.js +542 -5
  132. package/pf-select/pf-select.js.map +1 -1
  133. package/pf-spinner/pf-spinner.css +13 -0
  134. package/pf-spinner/pf-spinner.d.ts +1 -14
  135. package/pf-spinner/pf-spinner.js +101 -2
  136. package/pf-spinner/pf-spinner.js.map +1 -1
  137. package/pf-switch/pf-switch.css +22 -0
  138. package/pf-switch/pf-switch.d.ts +1 -30
  139. package/pf-switch/pf-switch.js +156 -2
  140. package/pf-switch/pf-switch.js.map +1 -1
  141. package/pf-table/context.d.ts +3 -0
  142. package/pf-table/context.js +3 -0
  143. package/pf-table/context.js.map +1 -0
  144. package/pf-table/pf-caption.js +10 -2
  145. package/pf-table/pf-caption.js.map +1 -1
  146. package/pf-table/pf-table.css +211 -0
  147. package/pf-table/pf-table.d.ts +2 -635
  148. package/pf-table/pf-table.js +445 -4
  149. package/pf-table/pf-table.js.map +1 -1
  150. package/pf-table/pf-tbody.js +18 -2
  151. package/pf-table/pf-tbody.js.map +1 -1
  152. package/pf-table/pf-td.js +107 -2
  153. package/pf-table/pf-td.js.map +1 -1
  154. package/pf-table/pf-th.d.ts +1 -0
  155. package/pf-table/pf-th.js +102 -7
  156. package/pf-table/pf-th.js.map +1 -1
  157. package/pf-table/pf-thead.d.ts +1 -0
  158. package/pf-table/pf-thead.js +26 -2
  159. package/pf-table/pf-thead.js.map +1 -1
  160. package/pf-table/pf-tr.js +89 -2
  161. package/pf-table/pf-tr.js.map +1 -1
  162. package/pf-tabs/pf-tab-panel.css +1 -0
  163. package/pf-tabs/pf-tab-panel.d.ts +0 -2
  164. package/pf-tabs/pf-tab-panel.js +19 -3
  165. package/pf-tabs/pf-tab-panel.js.map +1 -1
  166. package/pf-tabs/pf-tab.css +33 -0
  167. package/pf-tabs/pf-tab.d.ts +1 -41
  168. package/pf-tabs/pf-tab.js +234 -4
  169. package/pf-tabs/pf-tab.js.map +1 -1
  170. package/pf-tabs/pf-tabs.css +26 -0
  171. package/pf-tabs/pf-tabs.d.ts +1 -34
  172. package/pf-tabs/pf-tabs.js +307 -2
  173. package/pf-tabs/pf-tabs.js.map +1 -1
  174. package/pf-tabs/test/pf-tabs.spec.js +9 -0
  175. package/pf-tabs/test/pf-tabs.spec.js.map +1 -1
  176. package/pf-text-area/pf-text-area.css +125 -0
  177. package/pf-text-area/pf-text-area.d.ts +1 -125
  178. package/pf-text-area/pf-text-area.js +320 -2
  179. package/pf-text-area/pf-text-area.js.map +1 -1
  180. package/pf-text-input/pf-text-input.css +126 -0
  181. package/pf-text-input/pf-text-input.d.ts +1 -126
  182. package/pf-text-input/pf-text-input.js +395 -2
  183. package/pf-text-input/pf-text-input.js.map +1 -1
  184. package/pf-tile/pf-tile.css +28 -8
  185. package/pf-tile/pf-tile.d.ts +1 -24
  186. package/pf-tile/pf-tile.js +156 -2
  187. package/pf-tile/pf-tile.js.map +1 -1
  188. package/pf-timestamp/pf-timestamp.d.ts +1 -0
  189. package/pf-timestamp/pf-timestamp.js +10 -2
  190. package/pf-timestamp/pf-timestamp.js.map +1 -1
  191. package/pf-tooltip/pf-tooltip.css +10 -0
  192. package/pf-tooltip/pf-tooltip.d.ts +1 -79
  193. package/pf-tooltip/pf-tooltip.js +115 -5
  194. package/pf-tooltip/pf-tooltip.js.map +1 -1
  195. package/pfe.min.js +0 -7439
  196. package/pfe.min.js.LEGAL.txt +0 -57
  197. package/pfe.min.js.map +0 -7
  198. package/react/pf-accordion/pf-accordion-header.d.ts +0 -5
  199. package/react/pf-accordion/pf-accordion-header.js +0 -12
  200. package/react/pf-accordion/pf-accordion-panel.d.ts +0 -5
  201. package/react/pf-accordion/pf-accordion-panel.js +0 -10
  202. package/react/pf-accordion/pf-accordion.d.ts +0 -5
  203. package/react/pf-accordion/pf-accordion.js +0 -13
  204. package/react/pf-avatar/pf-avatar.d.ts +0 -5
  205. package/react/pf-avatar/pf-avatar.js +0 -12
  206. package/react/pf-back-to-top/pf-back-to-top.d.ts +0 -5
  207. package/react/pf-back-to-top/pf-back-to-top.js +0 -10
  208. package/react/pf-background-image/pf-background-image.d.ts +0 -5
  209. package/react/pf-background-image/pf-background-image.js +0 -10
  210. package/react/pf-badge/pf-badge.d.ts +0 -5
  211. package/react/pf-badge/pf-badge.js +0 -10
  212. package/react/pf-banner/pf-banner.d.ts +0 -5
  213. package/react/pf-banner/pf-banner.js +0 -10
  214. package/react/pf-button/pf-button.d.ts +0 -5
  215. package/react/pf-button/pf-button.js +0 -12
  216. package/react/pf-card/pf-card.d.ts +0 -5
  217. package/react/pf-card/pf-card.js +0 -10
  218. package/react/pf-chip/pf-chip-group.d.ts +0 -5
  219. package/react/pf-chip/pf-chip-group.js +0 -13
  220. package/react/pf-chip/pf-chip.d.ts +0 -5
  221. package/react/pf-chip/pf-chip.js +0 -13
  222. package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +0 -5
  223. package/react/pf-clipboard-copy/pf-clipboard-copy.js +0 -12
  224. package/react/pf-code-block/pf-code-block.d.ts +0 -5
  225. package/react/pf-code-block/pf-code-block.js +0 -10
  226. package/react/pf-dropdown/pf-dropdown-group.d.ts +0 -5
  227. package/react/pf-dropdown/pf-dropdown-group.js +0 -10
  228. package/react/pf-dropdown/pf-dropdown-item.d.ts +0 -5
  229. package/react/pf-dropdown/pf-dropdown-item.js +0 -10
  230. package/react/pf-dropdown/pf-dropdown-menu.d.ts +0 -5
  231. package/react/pf-dropdown/pf-dropdown-menu.js +0 -10
  232. package/react/pf-dropdown/pf-dropdown.d.ts +0 -5
  233. package/react/pf-dropdown/pf-dropdown.js +0 -14
  234. package/react/pf-icon/pf-icon.d.ts +0 -5
  235. package/react/pf-icon/pf-icon.js +0 -13
  236. package/react/pf-jump-links/pf-jump-links-item.d.ts +0 -5
  237. package/react/pf-jump-links/pf-jump-links-item.js +0 -13
  238. package/react/pf-jump-links/pf-jump-links-list.d.ts +0 -5
  239. package/react/pf-jump-links/pf-jump-links-list.js +0 -10
  240. package/react/pf-jump-links/pf-jump-links.d.ts +0 -5
  241. package/react/pf-jump-links/pf-jump-links.js +0 -12
  242. package/react/pf-label/pf-label.d.ts +0 -5
  243. package/react/pf-label/pf-label.js +0 -12
  244. package/react/pf-modal/pf-modal.d.ts +0 -5
  245. package/react/pf-modal/pf-modal.js +0 -13
  246. package/react/pf-panel/pf-panel.d.ts +0 -5
  247. package/react/pf-panel/pf-panel.js +0 -10
  248. package/react/pf-popover/pf-popover.d.ts +0 -5
  249. package/react/pf-popover/pf-popover.js +0 -10
  250. package/react/pf-progress/pf-progress.d.ts +0 -5
  251. package/react/pf-progress/pf-progress.js +0 -10
  252. package/react/pf-progress-stepper/pf-progress-step.d.ts +0 -5
  253. package/react/pf-progress-stepper/pf-progress-step.js +0 -10
  254. package/react/pf-progress-stepper/pf-progress-stepper.d.ts +0 -5
  255. package/react/pf-progress-stepper/pf-progress-stepper.js +0 -10
  256. package/react/pf-select/pf-option-group.d.ts +0 -5
  257. package/react/pf-select/pf-option-group.js +0 -10
  258. package/react/pf-select/pf-option.d.ts +0 -5
  259. package/react/pf-select/pf-option.js +0 -10
  260. package/react/pf-select/pf-select.d.ts +0 -5
  261. package/react/pf-select/pf-select.js +0 -13
  262. package/react/pf-spinner/pf-spinner.d.ts +0 -5
  263. package/react/pf-spinner/pf-spinner.js +0 -10
  264. package/react/pf-switch/pf-switch.d.ts +0 -5
  265. package/react/pf-switch/pf-switch.js +0 -12
  266. package/react/pf-table/pf-caption.d.ts +0 -5
  267. package/react/pf-table/pf-caption.js +0 -10
  268. package/react/pf-table/pf-table.d.ts +0 -5
  269. package/react/pf-table/pf-table.js +0 -10
  270. package/react/pf-table/pf-tbody.d.ts +0 -5
  271. package/react/pf-table/pf-tbody.js +0 -10
  272. package/react/pf-table/pf-td.d.ts +0 -5
  273. package/react/pf-table/pf-td.js +0 -10
  274. package/react/pf-table/pf-th.d.ts +0 -5
  275. package/react/pf-table/pf-th.js +0 -10
  276. package/react/pf-table/pf-thead.d.ts +0 -5
  277. package/react/pf-table/pf-thead.js +0 -10
  278. package/react/pf-table/pf-tr.d.ts +0 -5
  279. package/react/pf-table/pf-tr.js +0 -10
  280. package/react/pf-tabs/pf-tab-panel.d.ts +0 -5
  281. package/react/pf-tabs/pf-tab-panel.js +0 -10
  282. package/react/pf-tabs/pf-tab.d.ts +0 -5
  283. package/react/pf-tabs/pf-tab.js +0 -12
  284. package/react/pf-tabs/pf-tabs.d.ts +0 -5
  285. package/react/pf-tabs/pf-tabs.js +0 -10
  286. package/react/pf-text-area/pf-text-area.d.ts +0 -5
  287. package/react/pf-text-area/pf-text-area.js +0 -10
  288. package/react/pf-text-input/pf-text-input.d.ts +0 -5
  289. package/react/pf-text-input/pf-text-input.js +0 -10
  290. package/react/pf-tile/pf-tile.d.ts +0 -5
  291. package/react/pf-tile/pf-tile.js +0 -10
  292. package/react/pf-timestamp/pf-timestamp.d.ts +0 -5
  293. package/react/pf-timestamp/pf-timestamp.js +0 -10
  294. package/react/pf-tooltip/pf-tooltip.d.ts +0 -5
  295. package/react/pf-tooltip/pf-tooltip.js +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"pf-table.js","sourceRoot":"","sources":["pf-table.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { state } from 'lit/decorators/state.js';\n\nimport { PfTh, RequestSortEvent } from './pf-th.js';\nimport { PfTr, RequestExpandEvent } from './pf-tr.js';\n\nexport * from './pf-caption.js';\nexport * from './pf-thead.js';\nexport * from './pf-tbody.js';\nexport * from './pf-tr.js';\nexport * from './pf-th.js';\nexport * from './pf-td.js';\n\nimport styles from './pf-table.css';\nimport { PfTd } from './pf-td.js';\n\nconst rowQuery = [\n ':scope > pf-tbody:not([expandable]) > pf-tr',\n ':scope > pf-tbody > pf-tr[expandable]',\n ':scope > pf-tr',\n ':scope > pf-tr[expandable]',\n].join();\n\n/**\n * A **table** is used to display large data sets that can be easily laid out in a simple grid with column headers.\n * @slot\n * The default slot can hold an optional `pf-caption` element and a combination of `pf-tr`, `pf-thead`, or `pf-tbody` elements.\n * @cssprop {<color>} [--pf-c-table--BackgroundColor=#fff]\n * Table background color\n *\n * @cssprop {<color>} [--pf-c-table--BorderColor=#d2d2d2]\n * Table border color\n *\n * @cssprop {<dimension>} [--pf-c-table--border-width--base=1px]\n * Table border base width\n *\n * @cssprop {<dimension>} [--pf-c-table-caption--FontSize=0.875rem]\n * Table caption font size\n *\n * @cssprop {<color>} [--pf-c-table-caption--Color=#6a6e73]\n * Table caption color\n *\n * @cssprop {<dimension>} [--pf-c-table-caption--PaddingTop=1rem]\n * Table caption top padding\n *\n * @cssprop {<dimension>} [--pf-c-table-caption--PaddingRight=1.5rem]\n * Table caption right padding\n *\n * @cssprop {<dimension>} [--pf-c-table-caption--PaddingBottom=1rem]\n * Table caption bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table-caption--PaddingLeft=1.5rem]\n * Table caption left padding\n *\n * @cssprop {<length>} [--pf-c-table-caption--xl--PaddingRight=1rem]\n * Table XL caption right padding\n *\n * @cssprop {<dimension>} [--pf-c-table-caption--xl--PaddingLeft=1rem]\n * Table XL caption left padding\n *\n * @cssprop {<dimension>} [--pf-c-table--thead--cell--FontSize=0.875rem]\n * Table head cell font size\n *\n * @cssprop {<number>} [--pf-c-table--thead--cell--FontWeight=700]\n * Table head cell font weight\n *\n * @cssprop {<dimension>} [--pf-c-table--tbody--cell--PaddingTop=1.5rem]\n * Table body cell padding top\n *\n * @cssprop {<dimension>} [--pf-c-table--tbody--cell--PaddingBottom=1.5rem]\n * Table body cell padding bottom\n *\n * @cssprop {<color>} [--pf-c-table--tr--BoxShadow--top--base=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Table row top base box shadow\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--Padding--base=1rem]\n * Table cell base padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--FontSize=1rem]\n * Table cell font size\n *\n * @cssprop {<number>} [--pf-c-table--cell--FontWeight=400]\n * Table cell font weight\n *\n * @cssprop {<color>} [--pf-c-table--cell--Color=#151515]\n * Table cell color\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--PaddingTop=1rem]\n * Table cell top padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--PaddingRight=1rem]\n * Table cell right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--PaddingBottom=1rem]\n * Table cell bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--PaddingLeft=1rem]\n * Table cell left padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--first-last-child--PaddingLeft=1rem]\n * Table cell last child left padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--first-last-child--PaddingRight=1rem]\n * Table cell last child right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--first-last-child--xl--PaddingLeft=1.5rem]\n * Table XL cell last child left padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--first-last-child--xl--PaddingRight=1.5rem]\n * Table XL cell last child right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--tr--m-first-cell-offset-reset--cell--PaddingLeft=1rem]\n * Table row first cell offset reset cell left padding\n *\n * @cssprop {<length>} [--pf-c-table--cell--MinWidth=0]\n * Table cell min width\n *\n * @cssprop {<length>} [--pf-c-table--cell--MaxWidth=none]\n * Table cell max width\n *\n * @cssprop {<length>} [--pf-c-table--cell--Width=auto]\n * Table cell width\n *\n * @cssprop {<overflow>} [--pf-c-table--cell--Overflow=visible]\n * Table cell overflow\n *\n * @cssprop {<>} [--pf-c-table--cell--TextOverflow=clip]\n * Table cell text overflow\n *\n * @cssprop {<>} [--pf-c-table--cell--WhiteSpace=normal]\n * Table cell white space\n *\n * @cssprop {<>} [--pf-c-table--cell--WordBreak=normal]\n * Table cell word break\n *\n * @cssprop {<length>} [--pf-c-table--cell--m-border-right--before--BorderRightWidth=1px]\n * Table cell before right border width\n *\n * @cssprop {<color>} [--pf-c-table--cell--m-border-right--before--BorderRightColor=#d2d2d2]\n * Table cell before right border color\n *\n * @cssprop {<length>} [--pf-c-table--cell--m-border-left--before--BorderLeftWidth=1px]\n * Table cell before left border width\n *\n * @cssprop {<color>} [--pf-c-table--cell--m-border-left--before--BorderLeftColor=#d2d2d2]\n * Table cell before left border color\n *\n * @cssprop {<length>} [--pf-c-table--cell--m-help--MinWidth=11ch]\n * Help cell minimum width\n *\n * @cssprop {<length>} [--pf-c-table--m-truncate--cell--MaxWidth=1px]\n * Help cell maximum width\n *\n * @cssprop {<calc-sum>} [--pf-c-table--m-truncate--cell--MinWidth=calc(5ch + 1rem + 1rem)]\n * Truncated cell minimum width\n *\n * @cssprop {<>} [--pf-c-table--cell--hidden-visible--Display=grid]\n * Cell visible display\n *\n * @cssprop {<calc-product>} [--pf-c-table__toggle--c-button--MarginTop=calc(0.375rem * -1)]\n * Toggle button top margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__toggle--c-button--MarginBottom=calc(0.375rem * -1)]\n * Toggle button bottom margin\n *\n * @cssprop {<>} [--pf-c-table__toggle--c-button__toggle-icon--Rotate=270deg]\n * Toggle button icon rotation\n *\n * @cssprop {<>} [--pf-c-table__toggle--c-button__toggle-icon--Transition=.2s ease-in 0s]\n * Toggle button icon transition\n *\n * @cssprop {<>} [--pf-c-table__toggle--c-button--m-expanded__toggle-icon--Rotate=360deg]\n * Expanded toggle button icon rotation\n *\n * @cssprop {<color>} [--pf-c-table__button--BackgroundColor=transparent]\n * Button background color\n *\n * @cssprop {<color>} [--pf-c-table__button--Color=#151515]\n * Button color\n *\n * @cssprop {<color>} [--pf-c-table__button--hover--Color=#151515]\n * Button hover color\n *\n * @cssprop {<color>} [--pf-c-table__button--focus--Color=#151515]\n * Button focus color\n *\n * @cssprop {<color>} [--pf-c-table__button--active--Color=#151515]\n * Button active color\n *\n * @cssprop {<calc-sum>} [--pf-c-table__button--OutlineOffset=calc(3px * -1)]\n * Button outline offset\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact__toggle--PaddingTop=0]\n * Compact toggle top padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact__toggle--PaddingBottom=0]\n * Compacy toggle bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table__check--input--MarginTop=0.25rem]\n * Check input top margin\n *\n * @cssprop {<dimension>} [--pf-c-table__check--input--FontSize=1rem]\n * Check input font size\n *\n * @cssprop {<color>} [--pf-c-table--cell--m-favorite--Color=#d2d2d2]\n * Favorite cell color\n *\n * @cssprop {<color>} [--pf-c-table__favorite--c-button--Color=#d2d2d2]\n * Favorite button color\n *\n * @cssprop {<dimension>} [--pf-c-table__favorite--c-button--FontSize=0.875rem]\n * Favorite button font size\n *\n * @cssprop {<calc-product>} [--pf-c-table__favorite--c-button--MarginTop=calc(0.375rem * -1)]\n * Favorite button top margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__favorite--c-button--MarginRight=calc(1rem * -1)]\n * Favorite button right margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__favorite--c-button--MarginBottom=calc(0.375rem * -1)]\n * Favorite button bottom margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__favorite--c-button--MarginLeft=calc(1rem * -1)]\n * Favorite button left margin\n *\n * @cssprop {<color>} [--pf-c-table__favorite--m-favorited--c-button--Color=#f0ab00]\n * Favorited button color\n *\n * @cssprop {<color>} [--pf-c-table__sort--m-favorite__button__text--Color=#6a6e73]\n * Favorite sort button text color\n *\n * @cssprop {<color>} [--pf-c-table__sort--m-favorite__button--hover__text--Color=#151515]\n * Favorite sort button hover text color\n *\n * @cssprop {<color>} [--pf-c-table__sort--m-favorite__button--focus__text--Color=#151515]\n * Favorite sort button focus text color\n *\n * @cssprop {<color>} [--pf-c-table__sort--m-favorite__button--active__text--Color=#151515]\n * Favorite sort button active text color\n *\n * @cssprop {<calc-product>} [--pf-c-table__draggable--c-button--MarginTop=calc(0.375rem * -1)]\n * Draggable button top margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__draggable--c-button--MarginRight=calc(1rem * -1)]\n * Draggable button right margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__draggable--c-button--MarginBottom=calc(0.375rem * -1)]\n * Draggable button bottom margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__draggable--c-button--MarginLeft=calc(1rem * -1)]\n * Draggable button left margin\n *\n * @cssprop {<dimension>} [--pf-c-table__tr--m-ghost-row--Opacity=.4]\n * Ghost row opacity\n *\n * @cssprop {<color>} [--pf-c-table__tr--m-ghost-row--BackgroundColor=#fff]\n * Ghost row background color\n *\n * @cssprop {<dimension>} [--pf-c-table__action--PaddingTop=0]\n * Action top padding\n *\n * @cssprop {<dimension>} [--pf-c-table__action--PaddingRight=0]\n * Action right padding\n *\n * @cssprop {<dimension>} [--pf-c-table__action--PaddingBottom=0]\n * Action bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table__action--PaddingLeft=0]\n * Action left padding\n *\n * @cssprop {<dimension>} [--pf-c-table__inline-edit-action--PaddingTop=0]\n * Inline edit action top padding\n *\n * @cssprop {<dimension>} [--pf-c-table__inline-edit-action--PaddingRight=0]\n * Inline edit action right padding\n *\n * @cssprop {<dimension>} [--pf-c-table__inline-edit-action--PaddingBottom=0]\n * Inline edit action bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table__inline-edit-action--PaddingLeft=0]\n * Inline edit action left padding\n *\n * @cssprop {<>} [--pf-c-table__expandable-row--Transition=all 250ms cubic-bezier(.42, 0, .58, 1)]\n * Expandable row transition\n *\n * @cssprop {<length>} [--pf-c-table__expandable-row--MaxHeight=28.125rem]\n * Expandable row max height\n *\n * @cssprop {<>} [--pf-c-table__expandable-row-content--Transition=all 250ms cubic-bezier(.42, 0, .58, 1)]\n * Expandable row content transition\n *\n * @cssprop {<dimension>} [--pf-c-table__expandable-row-content--PaddingTop=1.5rem]\n * Expandable row content top padding\n *\n * @cssprop {<dimension>} [--pf-c-table__expandable-row-content--PaddingBottom=1.5rem]\n * Expandable row content bottom padding\n *\n * @cssprop {<calc-product>} [--pf-c-table__expandable-row--after--Top=calc(1px * -1)]\n * Expandable row after top\n *\n * @cssprop {<calc-product>} [--pf-c-table__expandable-row--after--Bottom=calc(1px * -1)]\n * Expandable row after bottom\n *\n * @cssprop {<length>} [--pf-c-table__expandable-row--after--border-width--base=3px]\n * Expandable row after base border width\n *\n * @cssprop {<length>} [--pf-c-table__expandable-row--after--BorderLeftWidth=0]\n * Expandable row after left border width\n *\n * @cssprop {<color>} [--pf-c-table__expandable-row--after--BorderColor=#06c]\n * Expandable row after border color\n *\n * @cssprop {<dimension>} [--pf-c-table__icon-inline--MarginRight=0.5rem]\n * Inline icon right margin\n *\n * @cssprop {<calc-sum>} [--pf-c-table__sort--MinWidth=calc(6ch + 1rem + 1rem + 1rem)]\n * Sort button minimum width\n *\n * @cssprop {<dimension>} [--pf-c-table__sort__button--PaddingTop=0.375rem]\n * Sort button top padding\n *\n * @cssprop {<dimension>} [--pf-c-table__sort__button--PaddingRight=0.5rem]\n * Sort button right padding\n *\n * @cssprop {<dimension>} [--pf-c-table__sort__button--PaddingBottom=0.375rem]\n * Sort button bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table__sort__button--PaddingLeft=0.5rem]\n * Sort button left padding\n *\n * @cssprop {<calc-product>} [--pf-c-table__sort__button--MarginTop=calc(0.375rem * -1)]\n * Sort button top margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__sort__button--MarginBottom=calc(0.375rem * -1)]\n * Sort button bottom margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__sort__button--MarginLeft=calc(0.5rem * -1)]\n * Sort button left margin\n *\n * @cssprop {<color>} [--pf-c-table__sort__button--Color=#151515]\n * Sort button color\n *\n * @cssprop {<color>} [--pf-c-table__sort--m-selected__button--Color=#06c]\n * Selected sort button color\n *\n * @cssprop {<length>} [--pf-c-table__sort--m-help--MinWidth=15ch]\n * Help button minimum width\n *\n * @cssprop {<color>} [--pf-c-table__sort__button__text--Color=currentcolor]\n * Sort button text color\n *\n * @cssprop {<color>} [--pf-c-table__sort__button--hover__text--Color=currencolor]\n * Sort button hover text color\n *\n * @cssprop {<color>} [--pf-c-table__sort__button--focus__text--Color=currentcolor]\n * Sort button focus text color\n *\n * @cssprop {<color>} [--pf-c-table__sort__button--active__text--Color=currentcolor]\n * Sort button active text color\n *\n * @cssprop {<color>} [--pf-c-table__sort-indicator--Color=#d2d2d2]\n * Sort inidcator color\n *\n * @cssprop {<calc-sum>} [--pf-c-table__sort-indicator--MarginLeft=calc(6ch + 1rem + 1rem + 1rem)]\n * Sort inidcator left margin\n *\n * @cssprop {<color>} [--pf-c-table__sort--m-selected__sort-indicator--Color=#06c]\n * Selected sort inidcator color\n *\n * @cssprop {<color>} [--pf-c-table__sort__button--hover__sort-indicator--Color=#151515]\n * Sort button hover sort indicator color\n *\n * @cssprop {<color>} [--pf-c-table__sort__button--active__sort-indicator--Color=#151515]\n * Sort button hover active sort indicator color\n *\n * @cssprop {<color>} [--pf-c-table__sort__button--focus__sort-indicator--Color=#151515]\n * Sort button hover focus sort indicator color\n *\n * @cssprop {<length>} [--pf-c-table--th--m-help--MinWidth=11ch]\n * Header cell help minimum width\n *\n * @cssprop {<dimension>} [--pf-c-table__column-help--MarginLeft=0.25rem]\n * Help column left magin\n *\n * @cssprop {<dimension>} [--pf-c-table__column-help--TranslateY=0.125rem]\n * Help column translate y axis\n *\n * @cssprop {<calc-product>} [--pf-c-table__column-help--c-button--MarginTop=calc(0.375rem * -1)]\n * Help column button top margin\n *\n * @cssprop {<calc-product>} [--pf-c-table__column-help--c-button--MarginBottom=calc(0.375rem * -1)]\n * Help column button bottom margin\n *\n * @cssprop {<dimension>} [--pf-c-table__column-help--c-button--PaddingRight=0.5rem]\n * Help column button right padding\n *\n * @cssprop {<dimension>} [--pf-c-table__column-help--c-button--PaddingLeft=0.5rem]\n * Help column button left margin\n *\n * @cssprop {<color>} [--pf-c-table__compound-expansion-toggle__button--Color=#06c]\n * Compound expansion toggle button color\n *\n * @cssprop {<color>} [--pf-c-table__compound-expansion-toggle__button--hover--Color=#004080]\n * Compound expansion hover toggle button color\n *\n * @cssprop {<color>} [--pf-c-table__compound-expansion-toggle__button--focus--Color=#004080]\n * Compound expansion focus toggle button color\n *\n * @cssprop {<color>} [--pf-c-table__compound-expansion-toggle__button--active--Color=#004080]\n * Compound expansion active toggle button color\n *\n * @cssprop {<length>} [--pf-c-table__compound-expansion-toggle__button--before--border-width--base=1px]\n * Compound expansion toggle button before border width\n *\n * @cssprop {<color>} [--pf-c-table__compound-expansion-toggle__button--before--BorderColor=#d2d2d2]\n * Compound expansion toggle button before border color\n *\n * @cssprop {<length>} [--pf-c-table__compound-expansion-toggle__button--before--BorderRightWidth=0]\n * Compound expansion toggle button before right border width\n *\n * @cssprop {<length>} [--pf-c-table__compound-expansion-toggle__button--before--BorderLeftWidth=0]\n * Compound expansion toggle button before left border width\n *\n * @cssprop {<calc-product>} [--pf-c-table__compound-expansion-toggle__button--before--Bottom=calc(1px * -1)]\n * Compound expansion toggle button before bottom\n *\n * @cssprop {<calc-product>} [--pf-c-table__compound-expansion-toggle__button--before--Left=calc(1px * -1)]\n * Compound expansion toggle button before left\n *\n * @cssprop {<length>} [--pf-c-table__compound-expansion-toggle__button--after--border-width--base=3px]\n * Compound expansion toggle button after base border width\n *\n * @cssprop {<color>} [--pf-c-table__compound-expansion-toggle__button--after--BorderColor=#06c]\n * Compound expansion toggle button after border color\n *\n * @cssprop {<length>} [--pf-c-table__compound-expansion-toggle__button--after--BorderTopWidth=0]\n * Compound expansion toggle button after top border width\n *\n * @cssprop {<calc-sum>} [--pf-c-table__compound-expansion-toggle__button--after--Top=calc(1px * -1)]\n * Compound expansion toggle button after top\n *\n * @cssprop {<calc-sum>} [--pf-c-table__compound-expansion-toggle__button--after--Left=calc(1px * -1)]\n * Compound expansion toggle button after left\n *\n * @cssprop {<calc-sum>} [--pf-c-table--m-compact-th--PaddingTop=calc(0.5rem + 0.25rem)]\n * Compact header cell top padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact-th--PaddingBottom=0.5rem]\n * Compact header cell bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--cell--PaddingTop=0.5rem]\n * Compact cell top padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--cell--PaddingRight=0.5rem]\n * Compact cell right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--cell--PaddingBottom=0.5rem]\n * Compact cell bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--cell--PaddingLeft=0.5rem]\n * Compact cell left padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--cell--first-last-child--PaddingLeft=1rem]\n * Compact cell first child left padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--cell--first-last-child--PaddingRight=1rem]\n * Compact XLcell first child right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--cell--first-last-child--xl--PaddingLeft=1.5rem]\n * Compact cell first child XL left padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--cell--first-last-child--xl--PaddingRight=1.5rem]\n * Compact cell first child XL right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact--FontSize=0.875rem]\n * Compact font size\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact__expandable-row-content--PaddingTop=1.5rem]\n * Compact expandable row content top padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact__expandable-row-content--PaddingRight=1.5rem]\n * Compact expandable row content right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact__expandable-row-content--PaddingBottom=1.5rem]\n * Compact expandable row content bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table--m-compact__expandable-row-content--PaddingLeft=1.5rem]\n * Compact expandable row content left padding\n *\n * @cssprop {<dimension>} [--pf-c-table--nested--first-last-child--PaddingRight=1rem]\n * Nested first child right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--nested--first-last-child--PaddingLeft=1rem]\n * Nested first child left padding\n *\n * @cssprop {<color>} [--pf-c-table__expandable-row--m-expanded--BorderBottomColor=#d2d2d2]\n * Expandable row expanded bottom border color\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--BoxShadow--top=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Hoverable table row top box shadow\n *\n * @cssprop {<dimension>} [--pf-c-table--tr--m-hoverable--BackgroundColor=transparent]\n * Hoverable table row background color\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Hoverable table row box shadow\n *\n * @cssprop {<calc-sum>} [--pf-c-table--tr--m-hoverable--OutlineOffset=calc(-1 * 0.25rem)]\n * Hoverable table row outline offset\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--hover--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08), 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Hoverable table row hover box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--hover--BackgroundColor=#fff]\n * Hoverable table row hover background color\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--focus--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08), 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Hoverable table row focus box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--focus--BackgroundColor=#fff]\n * Hoverable table row focus background color\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--active--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08), 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Hoverable table row active box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--active--BackgroundColor=#fff]\n * Hoverable table row active background color\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-hoverable--m-selected--BoxShadow=0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16) inset, 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Hoverable table row selected box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-selected--BoxShadow--top=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Selected table row top box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-selected--BackgroundColor=#fff]\n * Selected table row background color\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-selected--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Selected table row box shadow\n *\n * @cssprop {<calc-sum>} [--pf-c-table--tr--m-selected--OutlineOffset=calc(-1 * 0.25rem)]\n * Selected table row outline offset\n *\n * @cssprop {<length>} [--pf-c-table--tr--m-selected--after--BorderLeftWidth=3px]\n * Selected table row after left border width\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-selected--after--BorderLeftColor=#06c]\n * Selected table row after left border color\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-selected--m-selected--BoxShadow=0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Selected table row box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-selected--hover--m-selected--BoxShadow=0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16) inset, 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Selected table row hover box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tr--m-selected--tr--m-selected--hover--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08), 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Selected table row hover box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--BoxShadow--top=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Hoverable table body top box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Hoverable table body box shadow\n *\n * @cssprop {<dimension>} [--pf-c-table--tbody--m-hoverable--BackgroundColor=transparent]\n * Hoverable table body background color\n *\n * @cssprop {<calc-sum>} [--pf-c-table--tbody--m-hoverable--OutlineOffset=calc(-1 * 0.25rem)]\n * Hoverable table body outline offset\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--hover--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08), 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Hoverable table body hover box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--hover--BackgroundColor=#fff]\n * Hoverable table body hover background color\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--focus--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08), 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Hoverable table body focus box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--focus--BackgroundColor=#fff]\n * Hoverable table body focus background color\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--active--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08), 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Hoverable table body active box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--active--BackgroundColor=#fff]\n * Hoverable table body active background color\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--m-expanded--BorderColor=#73bcf7]\n * Hoverable table body expanded border color\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-hoverable--m-selected--hover--tr--BoxShadow=0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16) inset, 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Hoverable table body selected table row box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-selected--BackgroundColor=#fff]\n * Selected table body background color\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-selected--BoxShadow--top=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Selected table body top box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-selected--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08)]\n * Selected table body box shadow\n *\n * @cssprop {<calc-product>} [--pf-c-table--tbody--m-selected--OutlineOffset=calc(-1 * 0.25rem)]\n * Selected table body outline offset\n *\n * @cssprop {<length>} [--pf-c-table--tbody--m-selected--after--BorderLeftWidth=3px]\n * Selected table body after left border width\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-selected--after--BorderLeftColor=#06c]\n * Selected table body after left border color\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-selected--m-selected--BoxShadow=0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Selected table body selected box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-selected--hover--tbody--m-selected--BoxShadow=0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16) inset, 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Selected table body hover selected box shadow\n *\n * @cssprop {<color>} [--pf-c-table--tbody--m-selected--tbody--m-selected--hover--BoxShadow=0 -0.1875rem 0.25rem -0.125rem rgba(3,3,3,.08), 0 0.125rem 0.25rem -0.0625rem rgba(3, 3, 3, 0.16)]\n * Selected table body hover box shadow\n *\n * @cssprop {<dimension>} [--pf-c-table--thead--m-nested-column-header--button--OutlineOffset=-0.1875rem]\n * Table head nested column header button outline offset\n *\n * @cssprop {<dimension>} [--pf-c-table--thead--m-nested-column-header--tr--PaddingTop=0.25rem]\n * Table head nested column header row top padding\n *\n * @cssprop {<dimension>} [--pf-c-table--thead--m-nested-column-header--tr--PaddingBottom=0.25rem]\n * Table head nested column header row bottom padding\n *\n * @cssprop {<color>} [--pf-c-table__subhead--Color=#6a6e73]\n * Subhead color\n *\n * @cssprop {<color>} [--pf-c-table--m-striped__tr--BackgroundColor=#fafafa]\n * Striped row background color\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--PaddingTop=1rem]\n * Cell top padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--PaddingRight=1rem]\n * Cell right padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--PaddingBottom=1rem]\n * Cell bottom padding\n *\n * @cssprop {<dimension>} [--pf-c-table--cell--PaddingLeft=1rem]\n * Cell left padding\n *\n * @cssprop {<calc-sum>} [--pf-c-table__favorite--c-button--MarginTop=calc(0.375rem * -1)]\n * Favorite button top margin\n *\n * @cssprop {<calc-sum>} [--pf-c-table__favorite--c-button--MarginRight=calc(1rem * -1)]\n * Favorite button right margin\n *\n * @cssprop {<calc-sum>} [--pf-c-table__favorite--c-button--MarginBottom=calc(0.375rem * -1)]\n * Favorite button bottom margin\n *\n * @cssprop {<calc-sum>} [--pf-c-table__favorite--c-button--MarginLeft=calc(1rem * -1)]\n * Favorite button left margin\n *\n */\n@customElement('pf-table')\nexport class PfTable extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n get rows(): NodeListOf<PfTr> {\n return this.querySelectorAll?.<PfTr>(rowQuery);\n }\n\n @state() private columns = 0;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'table');\n this.#onSlotchange();\n }\n\n render(): TemplateResult<1> {\n const hasExpandableRow = !!this.querySelector?.('pf-tr[expandable]');\n const coeffRows = hasExpandableRow ? '1' : '0';\n return html`\n <slot @slotchange=\"${this.#onSlotchange}\"\n @request-expand=\"${this.#onRequestExpand}\"\n @request-sort=\"${this.#onRequestSort}\"\n style=\"${styleMap({\n '--_pf-table--expandable-rows': coeffRows,\n '--_pf-table--number-of-columns': this.columns,\n })}\"\n ></slot>\n `;\n }\n\n #onRequestExpand(event: Event) {\n if (event instanceof RequestExpandEvent\n && !event.defaultPrevented) {\n event.stopPropagation();\n if (event.target instanceof PfTr) {\n event.target.expanded = !!event.target.expandable && !event.target.expanded;\n } else if (event.target instanceof PfTd && event.row) {\n event.row.expanded = event.compoundExpanded;\n for (const cell of event.row.querySelectorAll('pf-td')) {\n cell.expanded = event.compoundExpanded === cell.compoundExpand;\n }\n }\n }\n }\n\n #onSlotchange() {\n this.columns = this.querySelector('pf-tr')?.querySelectorAll('pf-th')?.length ?? 0;\n this.requestUpdate();\n }\n\n #onRequestSort(event: Event) {\n if (event instanceof RequestSortEvent) {\n for (const col of this.querySelectorAll<PfTh>('pf-th[sortable]')) {\n col.selected = col === event.target;\n if (col !== event.target) {\n col.removeAttribute('sort-direction');\n }\n }\n if (!event.defaultPrevented && event.target instanceof PfTh) {\n event.target.sortDirection = event.direction;\n this.#performSort(event.target, event.direction);\n }\n }\n }\n\n #performSort(header: PfTh, direction: 'asc' | 'desc') {\n const children = header.parentElement?.children;\n if (children) {\n const columnIndexToSort = [...children].indexOf(header);\n Array\n .from(this.rows, node => PfTable.getNodeContentForSort(columnIndexToSort, node))\n .sort((a, b) => PfTable.sortByContent(direction, a, b))\n .forEach(({ node }, index) => {\n const target = this.rows[index];\n if (this.rows[index] !== node) {\n const position: InsertPosition =\n direction === 'desc' ? 'afterend' : 'beforebegin';\n target.insertAdjacentElement(position, node);\n }\n });\n }\n }\n\n private static getNodeContentForSort(\n columnIndexToSort: number,\n node: Element,\n ) {\n const content = node.querySelector(`\n :scope > :is(pf-th, pf-td):nth-child(${columnIndexToSort + 1}),\n :scope > pf-tr > :is(pf-th, pf-td):nth-child(${columnIndexToSort + 1})\n `.trim())?.textContent?.trim()?.toLowerCase() ?? '';\n return { node, content };\n }\n\n private static sortByContent(\n direction: 'asc' | 'desc',\n a: { content: string },\n b: { content: string },\n ) {\n if (direction === 'asc') {\n return (a.content < b.content ? -1 : a.content > b.content ? 1 : 0);\n } else {\n return (b.content < a.content ? -1 : b.content > a.content ? 1 : 0);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-table': PfTable;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-table.js","sourceRoot":"","sources":["pf-table.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { state } from 'lit/decorators/state.js';\n\nimport { provide } from '@lit/context';\nimport { thRoleContext } from './context.js';\n\nimport { PfTh, RequestSortEvent } from './pf-th.js';\nimport { PfTd } from './pf-td.js';\nimport { PfTr, RequestExpandEvent } from './pf-tr.js';\n\nexport * from './pf-caption.js';\nexport * from './pf-thead.js';\nexport * from './pf-tbody.js';\nexport * from './pf-tr.js';\nexport * from './pf-th.js';\nexport * from './pf-td.js';\n\nimport styles from './pf-table.css';\n\nconst rowQuery = [\n ':scope > pf-tbody:not([expandable]) > pf-tr',\n ':scope > pf-tbody > pf-tr[expandable]',\n ':scope > pf-tr',\n ':scope > pf-tr[expandable]',\n].join();\n\n/**\n * A **table** is used to display large data sets that can be easily laid out in a simple grid with column headers.\n * @alias Table\n */\n@customElement('pf-table')\nexport class PfTable extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n get rows(): NodeListOf<PfTr> {\n return this.querySelectorAll?.<PfTr>(rowQuery);\n }\n\n @state() private columns = 0;\n\n @provide({ context: thRoleContext }) private thRowContext = 'rowheader';\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'table');\n this.#onSlotchange();\n }\n\n render(): TemplateResult<1> {\n const hasExpandableRow = !!this.querySelector?.('pf-tr[expandable]');\n const coeffRows = hasExpandableRow ? '1' : '0';\n return html`\n <!-- The default slot can hold an optional \\`pf-caption\\` element and a combination of \\`pf-tr\\`, \\`pf-thead\\`, or \\`pf-tbody\\` elements. -->\n <slot @slotchange=\"${this.#onSlotchange}\"\n @request-expand=\"${this.#onRequestExpand}\"\n @request-sort=\"${this.#onRequestSort}\"\n style=\"${styleMap({\n '--_pf-table--expandable-rows': coeffRows,\n '--_pf-table--number-of-columns': this.columns,\n })}\"\n ></slot>\n `;\n }\n\n #onRequestExpand(event: Event) {\n if (event instanceof RequestExpandEvent\n && !event.defaultPrevented) {\n event.stopPropagation();\n if (event.target instanceof PfTr) {\n event.target.expanded = !!event.target.expandable && !event.target.expanded;\n } else if (event.target instanceof PfTd && event.row) {\n event.row.expanded = event.compoundExpanded;\n for (const cell of event.row.querySelectorAll('pf-td')) {\n cell.expanded = event.compoundExpanded === cell.compoundExpand;\n }\n }\n }\n }\n\n #onSlotchange() {\n this.columns = this.querySelector?.('pf-tr')?.querySelectorAll('pf-th')?.length ?? 0;\n this.requestUpdate();\n }\n\n #onRequestSort(event: Event) {\n if (event instanceof RequestSortEvent) {\n for (const col of this.querySelectorAll<PfTh>('pf-th[sortable]')) {\n col.selected = col === event.target;\n if (col !== event.target) {\n col.removeAttribute('sort-direction');\n }\n }\n if (!event.defaultPrevented && event.target instanceof PfTh) {\n event.target.sortDirection = event.direction;\n this.#performSort(event.target, event.direction);\n }\n }\n }\n\n #performSort(header: PfTh, direction: 'asc' | 'desc') {\n const children = header.parentElement?.children;\n if (children) {\n const columnIndexToSort = [...children].indexOf(header);\n Array\n .from(this.rows, node => PfTable.getNodeContentForSort(columnIndexToSort, node))\n .sort((a, b) => PfTable.sortByContent(direction, a, b))\n .forEach(({ node }, index) => {\n const target = this.rows[index];\n if (this.rows[index] !== node) {\n const position: InsertPosition =\n direction === 'desc' ? 'afterend' : 'beforebegin';\n target.insertAdjacentElement(position, node);\n }\n });\n }\n }\n\n private static getNodeContentForSort(\n columnIndexToSort: number,\n node: Element,\n ) {\n const content = node.querySelector(`\n :scope > :is(pf-th, pf-td):nth-child(${columnIndexToSort + 1}),\n :scope > pf-tr > :is(pf-th, pf-td):nth-child(${columnIndexToSort + 1})\n `.trim())?.textContent?.trim()?.toLowerCase() ?? '';\n return { node, content };\n }\n\n private static sortByContent(\n direction: 'asc' | 'desc',\n a: { content: string },\n b: { content: string },\n ) {\n if (direction === 'asc') {\n return (a.content < b.content ? -1 : a.content > b.content ? 1 : 0);\n } else {\n return (b.content < a.content ? -1 : b.content > a.content ? 1 : 0);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-table': PfTable;\n }\n}\n"]}
@@ -2,7 +2,23 @@ import { __decorate } from "tslib";
2
2
  import { LitElement, html } from 'lit';
3
3
  import { customElement } from 'lit/decorators/custom-element.js';
4
4
  import { css } from "lit";
5
- const styles = css `:host {\n --pf-c-table--cell--PaddingTop: var(--pf-c-table--tbody--cell--PaddingTop);\n --pf-c-table--cell--PaddingBottom: var(--pf-c-table--tbody--cell--PaddingBottom);\n display: grid;\n}\n\n@media (max-width: 768px) {\n :host {\n position: relative;\n }\n \n :host:first-of-type {\n border-bottom: var(--pf-c-table--border-width--base) solid var(--pf-c-table--BorderColor);\n }\n}\n\n`;
5
+ const styles = css `:host {
6
+ --pf-c-table--cell--PaddingTop: var(--pf-c-table--tbody--cell--PaddingTop);
7
+ --pf-c-table--cell--PaddingBottom: var(--pf-c-table--tbody--cell--PaddingBottom);
8
+ display: grid;
9
+ }
10
+
11
+ @media (max-width: 768px) {
12
+ :host {
13
+ position: relative;
14
+ }
15
+
16
+ :host:first-of-type {
17
+ border-bottom: var(--pf-c-table--border-width--base) solid var(--pf-c-table--BorderColor);
18
+ }
19
+ }
20
+
21
+ `;
6
22
  let PfTbody = class PfTbody extends LitElement {
7
23
  connectedCallback() {
8
24
  super.connectedCallback();
@@ -15,7 +31,7 @@ let PfTbody = class PfTbody extends LitElement {
15
31
  }
16
32
  };
17
33
  PfTbody.styles = [styles];
18
- PfTbody.version = "4.0.2";
34
+ PfTbody.version = "4.2.0";
19
35
  PfTbody = __decorate([
20
36
  customElement('pf-tbody')
21
37
  ], PfTbody);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-tbody.js","sourceRoot":"","sources":["pf-tbody.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;AAS1D,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAG5B,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;;AAXe,cAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AADxC,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport styles from './pf-tbody.css';\n\n/**\n * Table body\n * @slot - Place element content here\n */\n@customElement('pf-tbody')\nexport class PfTbody extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'rowgroup');\n }\n\n render(): TemplateResult<1> {\n return html`\n <slot></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-tbody': PfTbody;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-tbody.js","sourceRoot":"","sources":["pf-tbody.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;;;;;;;;;;;;;;;;;AAS1D,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAG5B,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;;AAXe,cAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AADxC,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport styles from './pf-tbody.css';\n\n/**\n * Table body\n * @slot - Place element content here\n */\n@customElement('pf-tbody')\nexport class PfTbody extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'rowgroup');\n }\n\n render(): TemplateResult<1> {\n return html`\n <slot></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-tbody': PfTbody;\n }\n}\n"]}
package/pf-table/pf-td.js CHANGED
@@ -4,7 +4,112 @@ import { LitElement, html } from 'lit';
4
4
  import { customElement } from 'lit/decorators/custom-element.js';
5
5
  import { property } from 'lit/decorators/property.js';
6
6
  import { css } from "lit";
7
- const styles = css `:host(:empty),\n:host([compound-expand]) {\n padding: 0;\n}\n\n:host([compound-expand]:hover) {\n --pf-c-table__compound-expansion-toggle__button--before--BorderRightWidth: var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);\n --pf-c-table__compound-expansion-toggle__button--before--BorderLeftWidth: var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);\n --pf-c-table__compound-expansion-toggle__button--after--BorderTopWidth: var(--pf-c-table__compound-expansion-toggle__button--after--border-width--base);\n}\n\n:host([compound-expand]:focus-within) {\n outline-offset: var(--pf-c-table__button--OutlineOffset);\n}\n\n:host([compound-expand][expanded]) {\n --pf-c-table__compound-expansion-toggle__button--before--BorderRightWidth: var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);\n --pf-c-table__compound-expansion-toggle__button--before--BorderLeftWidth: var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);\n --pf-c-table__compound-expansion-toggle__button--after--BorderTopWidth: var(--pf-c-table__compound-expansion-toggle__button--after--border-width--base);\n --pf-c-table__compound-expansion-toggle__button--before--Left: 0;\n}\n\n@media (-webkit-min-device-pixel-ratio: 0) {\n :host([compound-expand]:focus-within) {\n outline-style: auto;\n outline-color: -webkit-focus-ring-color;\n }\n}\n\n@media (min-width: 768px) {\n :host {\n padding: 1.5rem 1rem;\n }\n}\n\nbutton {\n position: relative;\n width: 100%;\n padding: var(--pf-c-table--cell--PaddingTop) var(--pf-c-table--cell--PaddingRight) var(--pf-c-table--cell--PaddingBottom) var(--pf-c-table--cell--PaddingLeft);\n font-size: inherit;\n font-weight: inherit;\n color: var(--pf-c-table__button--Color);\n text-align: left;\n white-space: inherit;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n background-color: var(--pf-c-table__button--BackgroundColor);\n border: 0;\n min-width: 100%;\n min-height: 100%;\n overflow: hidden;\n}\n\nbutton::before,\nbutton::after {\n position: absolute;\n inset-inline-end: 0;\n content: "";\n border-style: solid;\n border-width: 0;\n border-block-start-width: 0px;\n}\n\nbutton::before {\n inset-block-start: 0;\n inset-block-end: var(--pf-c-table__compound-expansion-toggle__button--before--Bottom);\n inset-inline-start: var(--pf-c-table__compound-expansion-toggle__button--before--Left);\n border-color: var(--pf-c-table__compound-expansion-toggle__button--before--BorderColor);\n border-inline-start-width: var(--pf-c-table__compound-expansion-toggle__button--before--BorderLeftWidth);\n border-inline-end-width: var(--pf-c-table__compound-expansion-toggle__button--before--BorderRightWidth);\n}\n\n:host([expanded]) {\n border-bottom: var(--pf-c-table--BackgroundColor) solid var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);\n z-index: 1;\n}\n\nbutton::after {\n inset-block-start: var(--pf-c-table__compound-expansion-toggle__button--after--Top);\n inset-inline-start: var(--pf-c-table__compound-expansion-toggle__button--after--Left);\n pointer-events: none;\n border-color: var(--pf-c-table__compound-expansion-toggle__button--after--BorderColor);\n border-block-start-width: var(--pf-c-table__compound-expansion-toggle__button--after--BorderTopWidth);\n}\n\nbutton:active,\nbutton:focus,\nbutton:hover {\n outline: 0;\n}\n\nbutton:active {\n color: var(--pf-c-table__button--active--Color);\n}\n\nbutton:focus {\n color: var(--pf-c-table__button--focus--Color);\n}\n\nbutton:hover {\n color: var(--pf-c-table__button--hover--Color);\n}\n\n`;
7
+ const styles = css `:host(:empty),
8
+ :host([compound-expand]) {
9
+ padding: 0;
10
+ }
11
+
12
+ :host([compound-expand]:hover) {
13
+ --pf-c-table__compound-expansion-toggle__button--before--BorderRightWidth: var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);
14
+ --pf-c-table__compound-expansion-toggle__button--before--BorderLeftWidth: var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);
15
+ --pf-c-table__compound-expansion-toggle__button--after--BorderTopWidth: var(--pf-c-table__compound-expansion-toggle__button--after--border-width--base);
16
+ }
17
+
18
+ :host([compound-expand]:focus-within) {
19
+ outline-offset: var(--pf-c-table__button--OutlineOffset);
20
+ }
21
+
22
+ :host([compound-expand][expanded]) {
23
+ --pf-c-table__compound-expansion-toggle__button--before--BorderRightWidth: var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);
24
+ --pf-c-table__compound-expansion-toggle__button--before--BorderLeftWidth: var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);
25
+ --pf-c-table__compound-expansion-toggle__button--after--BorderTopWidth: var(--pf-c-table__compound-expansion-toggle__button--after--border-width--base);
26
+ --pf-c-table__compound-expansion-toggle__button--before--Left: 0;
27
+ }
28
+
29
+ @media (-webkit-min-device-pixel-ratio: 0) {
30
+ :host([compound-expand]:focus-within) {
31
+ outline-style: auto;
32
+ outline-color: -webkit-focus-ring-color;
33
+ }
34
+ }
35
+
36
+ @media (min-width: 768px) {
37
+ :host {
38
+ padding: 1.5rem 1rem;
39
+ }
40
+ }
41
+
42
+ button {
43
+ position: relative;
44
+ width: 100%;
45
+ padding: var(--pf-c-table--cell--PaddingTop) var(--pf-c-table--cell--PaddingRight) var(--pf-c-table--cell--PaddingBottom) var(--pf-c-table--cell--PaddingLeft);
46
+ font-size: inherit;
47
+ font-weight: inherit;
48
+ color: var(--pf-c-table__button--Color);
49
+ text-align: left;
50
+ white-space: inherit;
51
+ -webkit-user-select: text;
52
+ -moz-user-select: text;
53
+ -ms-user-select: text;
54
+ user-select: text;
55
+ background-color: var(--pf-c-table__button--BackgroundColor);
56
+ border: 0;
57
+ min-width: 100%;
58
+ min-height: 100%;
59
+ overflow: hidden;
60
+ }
61
+
62
+ button::before,
63
+ button::after {
64
+ position: absolute;
65
+ inset-inline-end: 0;
66
+ content: "";
67
+ border-style: solid;
68
+ border-width: 0;
69
+ border-block-start-width: 0px;
70
+ }
71
+
72
+ button::before {
73
+ inset-block-start: 0;
74
+ inset-block-end: var(--pf-c-table__compound-expansion-toggle__button--before--Bottom);
75
+ inset-inline-start: var(--pf-c-table__compound-expansion-toggle__button--before--Left);
76
+ border-color: var(--pf-c-table__compound-expansion-toggle__button--before--BorderColor);
77
+ border-inline-start-width: var(--pf-c-table__compound-expansion-toggle__button--before--BorderLeftWidth);
78
+ border-inline-end-width: var(--pf-c-table__compound-expansion-toggle__button--before--BorderRightWidth);
79
+ }
80
+
81
+ :host([expanded]) {
82
+ border-bottom: var(--pf-c-table--BackgroundColor) solid var(--pf-c-table__compound-expansion-toggle__button--before--border-width--base);
83
+ z-index: 1;
84
+ }
85
+
86
+ button::after {
87
+ inset-block-start: var(--pf-c-table__compound-expansion-toggle__button--after--Top);
88
+ inset-inline-start: var(--pf-c-table__compound-expansion-toggle__button--after--Left);
89
+ pointer-events: none;
90
+ border-color: var(--pf-c-table__compound-expansion-toggle__button--after--BorderColor);
91
+ border-block-start-width: var(--pf-c-table__compound-expansion-toggle__button--after--BorderTopWidth);
92
+ }
93
+
94
+ button:active,
95
+ button:focus,
96
+ button:hover {
97
+ outline: 0;
98
+ }
99
+
100
+ button:active {
101
+ color: var(--pf-c-table__button--active--Color);
102
+ }
103
+
104
+ button:focus {
105
+ color: var(--pf-c-table__button--focus--Color);
106
+ }
107
+
108
+ button:hover {
109
+ color: var(--pf-c-table__button--hover--Color);
110
+ }
111
+
112
+ `;
8
113
  import { RequestExpandEvent } from './pf-tr.js';
9
114
  let PfTd = class PfTd extends LitElement {
10
115
  constructor() {
@@ -35,7 +140,7 @@ _PfTd_onClick = function _PfTd_onClick() {
35
140
  this.dispatchEvent(event);
36
141
  };
37
142
  PfTd.styles = [styles];
38
- PfTd.version = "4.0.2";
143
+ PfTd.version = "4.2.0";
39
144
  __decorate([
40
145
  property({ attribute: 'compound-expand' })
41
146
  ], PfTd.prototype, "compoundExpand", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-td.js","sourceRoot":"","sources":["pf-td.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOzC,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;;QAKuC,aAAQ,GAAG,KAAK,CAAC;;IAEpD,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA;wBACb,uBAAA,IAAI,sCAAS;;;KAGhC,CAAC,CAAC,CAAC,IAAI,CAAA;;KAEP,CAAC;IACJ,CAAC;;;;IAGC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;IACjC,MAAM,KAAK,GACP,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE;QACjC,CAAC,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AA5Be,WAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AAEP;IAA3C,QAAQ,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;4CAAyB;AAExB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAAkB;AALlD,IAAI;IADhB,aAAa,CAAC,OAAO,CAAC;GACV,IAAI","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport styles from './pf-td.css';\nimport { RequestExpandEvent } from './pf-tr.js';\n\n/**\n * Table data cell\n * @slot - Place element content here\n */\n@customElement('pf-td')\nexport class PfTd extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n @property({ attribute: 'compound-expand' }) compoundExpand?: string;\n\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'cell');\n }\n\n render(): TemplateResult<1> {\n return this.compoundExpand ? html`\n <button @click=\"${this.#onClick}\">\n <slot></slot>\n </button>\n ` : html`\n <slot></slot>\n `;\n }\n\n #onClick() {\n const row = this.closest('pf-tr');\n const cell = this.compoundExpand;\n const event =\n !row ? new RequestExpandEvent()\n : new RequestExpandEvent(row.expanded === cell || cell || false, row);\n this.dispatchEvent(event);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-td': PfTd;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-td.js","sourceRoot":"","sources":["pf-td.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOzC,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;;QAKuC,aAAQ,GAAG,KAAK,CAAC;;IAEpD,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA;wBACb,uBAAA,IAAI,sCAAS;;;KAGhC,CAAC,CAAC,CAAC,IAAI,CAAA;;KAEP,CAAC;IACJ,CAAC;;;;IAGC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;IACjC,MAAM,KAAK,GACP,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE;QACjC,CAAC,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AA5Be,WAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AAEP;IAA3C,QAAQ,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;4CAAyB;AAExB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAAkB;AALlD,IAAI;IADhB,aAAa,CAAC,OAAO,CAAC;GACV,IAAI","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport styles from './pf-td.css';\nimport { RequestExpandEvent } from './pf-tr.js';\n\n/**\n * Table data cell\n * @slot - Place element content here\n */\n@customElement('pf-td')\nexport class PfTd extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n @property({ attribute: 'compound-expand' }) compoundExpand?: string;\n\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'cell');\n }\n\n render(): TemplateResult<1> {\n return this.compoundExpand ? html`\n <button @click=\"${this.#onClick}\">\n <slot></slot>\n </button>\n ` : html`\n <slot></slot>\n `;\n }\n\n #onClick() {\n const row = this.closest('pf-tr');\n const cell = this.compoundExpand;\n const event =\n !row ? new RequestExpandEvent()\n : new RequestExpandEvent(row.expanded === cell || cell || false, row);\n this.dispatchEvent(event);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-td': PfTd;\n }\n}\n"]}
@@ -16,6 +16,7 @@ export declare class PfTh extends LitElement {
16
16
  selected?: boolean;
17
17
  sortDirection?: 'asc' | 'desc';
18
18
  key: string;
19
+ private contextualRole;
19
20
  connectedCallback(): void;
20
21
  render(): TemplateResult<1>;
21
22
  sort(): void;
package/pf-table/pf-th.js CHANGED
@@ -4,9 +4,104 @@ import { LitElement, html, svg } from 'lit';
4
4
  import { customElement } from 'lit/decorators/custom-element.js';
5
5
  import { property } from 'lit/decorators/property.js';
6
6
  import { classMap } from 'lit/directives/class-map.js';
7
+ import { consume } from '@lit/context';
8
+ import { thRoleContext } from './context.js';
7
9
  import '@patternfly/elements/pf-button/pf-button.js';
8
10
  import { css } from "lit";
9
- const styles = css `:host {\n font-weight: bold;\n padding: 1rem;\n position: relative;\n}\n\n:host(:empty) {\n padding: 0;\n}\n\n.sortable {\n padding-inline-end: 1.5em;\n}\n\n.sortable slot {\n display: inline;\n margin-inline-end: 1.5em;\n}\n\nbutton {\n width: 100%;\n padding: var(--pf-c-table--cell--PaddingTop) var(--pf-c-table--cell--PaddingRight) var(--pf-c-table--cell--PaddingBottom) var(--pf-c-table--cell--PaddingLeft);\n font-size: inherit;\n font-weight: inherit;\n color: var(--pf-c-table__button--Color);\n text-align: left;\n white-space: inherit;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n background-color: var(--pf-c-table__button--BackgroundColor);\n border: 0;\n}\n\nbutton::before {\n position: absolute;\n inset: 0;\n cursor: pointer;\n content: '';\n}\n\nbutton:hover {\n --pf-c-table__sort-indicator--Color: var(--pf-c-table__sort__button--hover__sort-indicator--Color);\n --pf-c-table__sort__button__text--Color: var(--pf-c-table__sort__button--hover__text--Color);\n}\n\nbutton:active {\n --pf-c-table__sort-indicator--Color: var(--pf-c-table__sort__button--active__sort-indicator--Color);\n --pf-c-table__sort__button__text--Color: var(--pf-c-table__sort__button--active__text--Color);\n}\n\nbutton:focus {\n --pf-c-table__sort-indicator--Color: var(--pf-c-table__sort__button--focus__sort-indicator--Color);\n --pf-c-table__sort__button__text--Color: var(--pf-c-table__sort__button--focus__text--Color);\n}\n\nbutton.sortable {\n --pf-c-table--cell--PaddingTop: var(--pf-c-table__sort__button--PaddingTop);\n --pf-c-table--cell--PaddingRight: var(--pf-c-table__sort__button--PaddingRight);\n --pf-c-table--cell--PaddingBottom: var(--pf-c-table__sort__button--PaddingBottom);\n --pf-c-table--cell--PaddingLeft: var(--pf-c-table__sort__button--PaddingLeft);\n\n display: flex;\n width: auto;\n margin-top: var(--pf-c-table__sort__button--MarginTop);\n margin-bottom: var(--pf-c-table__sort__button--MarginBottom);\n margin-left: var(--pf-c-table__sort__button--MarginLeft);\n}\n\nbutton.selected {\n --pf-c-table__sort-indicator--Color: var(--pf-c-table__sort--m-selected__sort-indicator--Color);\n --pf-c-table__sort__button__text--Color: var(--pf-c-table__sort--m-selected__button__text--Color);\n\n color: var(--pf-c-table__sort--m-selected__button--Color);\n}\n\n#sort-indicator {\n width: 0;\n margin-inline-start: -1em;\n overflow: visible;\n color: var(--pf-c-table__sort-indicator--Color);\n}\n\n.visually-hidden {\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n`;
11
+ const styles = css `:host {
12
+ font-weight: bold;
13
+ padding: 1rem;
14
+ position: relative;
15
+ }
16
+
17
+ :host(:empty) {
18
+ padding: 0;
19
+ }
20
+
21
+ .sortable {
22
+ padding-inline-end: 1.5em;
23
+ }
24
+
25
+ .sortable slot {
26
+ display: inline;
27
+ margin-inline-end: 1.5em;
28
+ }
29
+
30
+ button {
31
+ width: 100%;
32
+ padding: var(--pf-c-table--cell--PaddingTop) var(--pf-c-table--cell--PaddingRight) var(--pf-c-table--cell--PaddingBottom) var(--pf-c-table--cell--PaddingLeft);
33
+ font-size: inherit;
34
+ font-weight: inherit;
35
+ color: var(--pf-c-table__button--Color);
36
+ text-align: left;
37
+ white-space: inherit;
38
+ -webkit-user-select: text;
39
+ -moz-user-select: text;
40
+ -ms-user-select: text;
41
+ user-select: text;
42
+ background-color: var(--pf-c-table__button--BackgroundColor);
43
+ border: 0;
44
+ }
45
+
46
+ button::before {
47
+ position: absolute;
48
+ inset: 0;
49
+ cursor: pointer;
50
+ content: '';
51
+ }
52
+
53
+ button:hover {
54
+ --pf-c-table__sort-indicator--Color: var(--pf-c-table__sort__button--hover__sort-indicator--Color);
55
+ --pf-c-table__sort__button__text--Color: var(--pf-c-table__sort__button--hover__text--Color);
56
+ }
57
+
58
+ button:active {
59
+ --pf-c-table__sort-indicator--Color: var(--pf-c-table__sort__button--active__sort-indicator--Color);
60
+ --pf-c-table__sort__button__text--Color: var(--pf-c-table__sort__button--active__text--Color);
61
+ }
62
+
63
+ button:focus {
64
+ --pf-c-table__sort-indicator--Color: var(--pf-c-table__sort__button--focus__sort-indicator--Color);
65
+ --pf-c-table__sort__button__text--Color: var(--pf-c-table__sort__button--focus__text--Color);
66
+ }
67
+
68
+ button.sortable {
69
+ --pf-c-table--cell--PaddingTop: var(--pf-c-table__sort__button--PaddingTop);
70
+ --pf-c-table--cell--PaddingRight: var(--pf-c-table__sort__button--PaddingRight);
71
+ --pf-c-table--cell--PaddingBottom: var(--pf-c-table__sort__button--PaddingBottom);
72
+ --pf-c-table--cell--PaddingLeft: var(--pf-c-table__sort__button--PaddingLeft);
73
+
74
+ display: flex;
75
+ width: auto;
76
+ margin-top: var(--pf-c-table__sort__button--MarginTop);
77
+ margin-bottom: var(--pf-c-table__sort__button--MarginBottom);
78
+ margin-left: var(--pf-c-table__sort__button--MarginLeft);
79
+ }
80
+
81
+ button.selected {
82
+ --pf-c-table__sort-indicator--Color: var(--pf-c-table__sort--m-selected__sort-indicator--Color);
83
+ --pf-c-table__sort__button__text--Color: var(--pf-c-table__sort--m-selected__button__text--Color);
84
+
85
+ color: var(--pf-c-table__sort--m-selected__button--Color);
86
+ }
87
+
88
+ #sort-indicator {
89
+ width: 0;
90
+ margin-inline-start: -1em;
91
+ overflow: visible;
92
+ color: var(--pf-c-table__sort-indicator--Color);
93
+ }
94
+
95
+ .visually-hidden {
96
+ position: fixed;
97
+ top: 0;
98
+ left: 0;
99
+ overflow: hidden;
100
+ clip: rect(0, 0, 0, 0);
101
+ white-space: nowrap;
102
+ border: 0;
103
+ }
104
+ `;
10
105
  const DIRECTIONS = { asc: 'desc', desc: 'asc' };
11
106
  export class RequestSortEvent extends Event {
12
107
  constructor(key, direction) {
@@ -29,14 +124,11 @@ let PfTh = class PfTh extends LitElement {
29
124
  _PfTh_instances.add(this);
30
125
  this.sortable = false;
31
126
  this.selected = false;
127
+ this.contextualRole = 'rowheader';
32
128
  }
33
129
  connectedCallback() {
34
130
  super.connectedCallback();
35
- const closestThead = this.closest('pf-thead');
36
- const closestTable = this.closest('pf-table');
37
- const isChildOfThead = !!closestThead && !!closestTable?.contains(closestThead);
38
- const role = isChildOfThead ? 'colheader' : 'rowheader';
39
- this.setAttribute('role', role);
131
+ this.setAttribute('role', this.contextualRole);
40
132
  }
41
133
  render() {
42
134
  const selected = !!this.selected;
@@ -70,7 +162,7 @@ _PfTh_onClick = function _PfTh_onClick() {
70
162
  }
71
163
  };
72
164
  PfTh.styles = [styles];
73
- PfTh.version = "4.0.2";
165
+ PfTh.version = "4.2.0";
74
166
  __decorate([
75
167
  property({ type: Boolean, reflect: true })
76
168
  ], PfTh.prototype, "sortable", void 0);
@@ -86,6 +178,9 @@ __decorate([
86
178
  __decorate([
87
179
  property()
88
180
  ], PfTh.prototype, "key", void 0);
181
+ __decorate([
182
+ consume({ context: thRoleContext })
183
+ ], PfTh.prototype, "contextualRole", void 0);
89
184
  PfTh = __decorate([
90
185
  customElement('pf-th')
91
186
  ], PfTh);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-th.js","sourceRoot":"","sources":["pf-th.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAuB,MAAM,KAAK,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,6CAA6C,CAAC;;;AAIrD,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAW,CAAC;AAEzD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YACS,GAAW,EACX,SAAyB;QAEhC,KAAK,CAAC,cAAc,EAAE;YACpB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QANI,QAAG,GAAH,GAAG,CAAQ;QACX,cAAS,GAAT,SAAS,CAAgB;IAMlC,CAAC;CACF;AAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IACnC,GAAG,EAAE,oOAAoO;IACzO,IAAI,EAAE,oOAAoO;IAC1O,IAAI,EAAE,+UAA+U;CACtV,CAAC,CAAC,CAAC;AAOG,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;;QAGuC,aAAQ,GAAa,KAAK,CAAC;QAE3B,aAAQ,GAAa,KAAK,CAAC;;IAS9D,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpB,IAAI,CAAA;;kCAEwB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;;0BAE9B,uBAAA,IAAI,sCAAS;;0CAEG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,GAAG;;sJAEU,GAAG,CAAA;yBAChI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,WAAW;;;;OAIpE,CAAC,CAAC,CAAC,IAAI,CAAA;;OAEP,CAAC;IACN,CAAC;IAQD,IAAI;QACF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;;;;IARC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AA/Ce,WAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AAEP;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAA4B;AAE3B;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAA4B;AAKpE;IAHF,QAAQ,CAAC;QACR,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,gBAAgB;KAC5B,CAAC;2CAAgC;AAEtB;IAAX,QAAQ,EAAE;iCAAc;AAZd,IAAI;IADhB,aAAa,CAAC,OAAO,CAAC;GACV,IAAI","sourcesContent":["import { LitElement, html, svg, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\n\nimport styles from './pf-th.css';\n\nconst DIRECTIONS = { asc: 'desc', desc: 'asc' } as const;\n\nexport class RequestSortEvent extends Event {\n constructor(\n public key: string,\n public direction: 'asc' | 'desc',\n ) {\n super('request-sort', {\n bubbles: true,\n cancelable: true,\n });\n }\n}\n\nconst paths = new Map(Object.entries({\n asc: `M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z`,\n desc: `M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z`,\n sort: `M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z`,\n}));\n\n/**\n * Table header cell\n * @slot - Place element content here\n */\n@customElement('pf-th')\nexport class PfTh extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n @property({ type: Boolean, reflect: true }) sortable?: boolean = false;\n\n @property({ type: Boolean, reflect: true }) selected?: boolean = false;\n\n @property({\n reflect: true,\n attribute: 'sort-direction',\n }) sortDirection?: 'asc' | 'desc';\n\n @property() key!: string;\n\n override connectedCallback(): void {\n super.connectedCallback();\n const closestThead = this.closest('pf-thead');\n const closestTable = this.closest('pf-table');\n const isChildOfThead = !!closestThead && !!closestTable?.contains(closestThead);\n const role = isChildOfThead ? 'colheader' : 'rowheader';\n this.setAttribute('role', role);\n }\n\n render(): TemplateResult<1> {\n const selected = !!this.selected;\n return this.sortable ?\n html`\n <button id=\"sort-button\"\n class=\"sortable ${classMap({ selected })}\"\n part=\"sort-button\"\n @click=\"${this.#onClick}\">\n <slot></slot>\n <span class=\"visually-hidden\">${!this.sortDirection ? '' : `(sorted ${this.sortDirection === 'asc' ? 'ascending' : 'descending'})`}</span>\n <span id=\"sort-indicator\">\n <svg fill=\"currentColor\" height=\"1em\" width=\"1em\" viewBox=\"0 0 256 512\" aria-hidden=\"true\" role=\"img\" style=\"vertical-align: -0.125em;\">${svg`\n <path d=\"${paths.get(this.sortDirection ?? 'sort')}\"></path>`}\n </svg>\n </span>\n </button>\n ` : html`\n <slot></slot>\n `;\n }\n\n #onClick() {\n if (this.sortable) {\n this.sort();\n }\n }\n\n sort(): void {\n const next = DIRECTIONS[this.sortDirection ?? 'asc'];\n this.dispatchEvent(new RequestSortEvent(this.key, next));\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-th': PfTh;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-th.js","sourceRoot":"","sources":["pf-th.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, svg, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { consume } from '@lit/context';\n\nimport { thRoleContext } from './context.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\n\nimport styles from './pf-th.css';\n\nconst DIRECTIONS = { asc: 'desc', desc: 'asc' } as const;\n\nexport class RequestSortEvent extends Event {\n constructor(\n public key: string,\n public direction: 'asc' | 'desc',\n ) {\n super('request-sort', {\n bubbles: true,\n cancelable: true,\n });\n }\n}\n\nconst paths = new Map(Object.entries({\n asc: `M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z`,\n desc: `M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z`,\n sort: `M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z`,\n}));\n\n/**\n * Table header cell\n * @slot - Place element content here\n */\n@customElement('pf-th')\nexport class PfTh extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n @property({ type: Boolean, reflect: true }) sortable?: boolean = false;\n\n @property({ type: Boolean, reflect: true }) selected?: boolean = false;\n\n @property({\n reflect: true,\n attribute: 'sort-direction',\n }) sortDirection?: 'asc' | 'desc';\n\n @property() key!: string;\n\n @consume({ context: thRoleContext })\n private contextualRole: 'colheader' | 'rowheader' = 'rowheader';\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', this.contextualRole);\n }\n\n render(): TemplateResult<1> {\n const selected = !!this.selected;\n return this.sortable ?\n html`\n <button id=\"sort-button\"\n class=\"sortable ${classMap({ selected })}\"\n part=\"sort-button\"\n @click=\"${this.#onClick}\">\n <slot></slot>\n <span class=\"visually-hidden\">${!this.sortDirection ? '' : `(sorted ${this.sortDirection === 'asc' ? 'ascending' : 'descending'})`}</span>\n <span id=\"sort-indicator\">\n <svg fill=\"currentColor\" height=\"1em\" width=\"1em\" viewBox=\"0 0 256 512\" aria-hidden=\"true\" role=\"img\" style=\"vertical-align: -0.125em;\">${svg`\n <path d=\"${paths.get(this.sortDirection ?? 'sort')}\"></path>`}\n </svg>\n </span>\n </button>\n ` : html`\n <slot></slot>\n `;\n }\n\n #onClick() {\n if (this.sortable) {\n this.sort();\n }\n }\n\n sort(): void {\n const next = DIRECTIONS[this.sortDirection ?? 'asc'];\n this.dispatchEvent(new RequestSortEvent(this.key, next));\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-th': PfTh;\n }\n}\n"]}
@@ -6,6 +6,7 @@ import { LitElement, type TemplateResult } from 'lit';
6
6
  export declare class PfThead extends LitElement {
7
7
  #private;
8
8
  static readonly styles: CSSStyleSheet[];
9
+ private thRowContext;
9
10
  connectedCallback(): void;
10
11
  render(): TemplateResult<1>;
11
12
  }
@@ -2,12 +2,33 @@ var _PfThead_instances, _PfThead_onSlotchange;
2
2
  import { __classPrivateFieldGet, __decorate } from "tslib";
3
3
  import { LitElement, html } from 'lit';
4
4
  import { customElement } from 'lit/decorators/custom-element.js';
5
+ import { thRoleContext } from './context.js';
5
6
  import { css } from "lit";
6
- const styles = css `:host {\n --pf-c-table--cell--MinWidth: var(--pf-c-table--m-truncate--cell--MinWidth);\n --pf-c-table--cell--MaxWidth: var(--pf-c-table--m-truncate--cell--MaxWidth);\n --pf-c-table--cell--Overflow: hidden;\n --pf-c-table--cell--TextOverflow: ellipsis;\n --pf-c-table--cell--WhiteSpace: nowrap;\n --pf-c-table--cell--FontSize: var(--pf-c-table--thead--cell--FontSize, var(--pf-global--FontSize--sm, 0.875rem));\n --pf-c-table--cell--FontWeight: var(--pf-c-table--thead--cell--FontWeight, var(--pf-global--FontWeight--bold, 700));\n vertical-align: bottom;\n display: grid;\n visibility: visible;\n}\n\n@media (max-width: 768px) {\n :host {\n display: none;\n visibility: hidden;\n }\n}`;
7
+ const styles = css `:host {
8
+ --pf-c-table--cell--MinWidth: var(--pf-c-table--m-truncate--cell--MinWidth);
9
+ --pf-c-table--cell--MaxWidth: var(--pf-c-table--m-truncate--cell--MaxWidth);
10
+ --pf-c-table--cell--Overflow: hidden;
11
+ --pf-c-table--cell--TextOverflow: ellipsis;
12
+ --pf-c-table--cell--WhiteSpace: nowrap;
13
+ --pf-c-table--cell--FontSize: var(--pf-c-table--thead--cell--FontSize, var(--pf-global--FontSize--sm, 0.875rem));
14
+ --pf-c-table--cell--FontWeight: var(--pf-c-table--thead--cell--FontWeight, var(--pf-global--FontWeight--bold, 700));
15
+ vertical-align: bottom;
16
+ display: grid;
17
+ visibility: visible;
18
+ }
19
+
20
+ @media (max-width: 768px) {
21
+ :host {
22
+ display: none;
23
+ visibility: hidden;
24
+ }
25
+ }`;
26
+ import { provide } from '@lit/context';
7
27
  let PfThead = class PfThead extends LitElement {
8
28
  constructor() {
9
29
  super(...arguments);
10
30
  _PfThead_instances.add(this);
31
+ this.thRowContext = 'colheader';
11
32
  }
12
33
  connectedCallback() {
13
34
  super.connectedCallback();
@@ -26,7 +47,10 @@ _PfThead_onSlotchange = function _PfThead_onSlotchange() {
26
47
  }
27
48
  };
28
49
  PfThead.styles = [styles];
29
- PfThead.version = "4.0.2";
50
+ PfThead.version = "4.2.0";
51
+ __decorate([
52
+ provide({ context: thRoleContext })
53
+ ], PfThead.prototype, "thRowContext", void 0);
30
54
  PfThead = __decorate([
31
55
  customElement('pf-thead')
32
56
  ], PfThead);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-thead.js","sourceRoot":"","sources":["pf-thead.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;AAS1D,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAAhC;;;;IAGL,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;0BACW,uBAAA,IAAI,iDAAc;KACvC,CAAC;IACJ,CAAC;;;;IAGC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzD,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAjBe,cAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AADxC,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport styles from './pf-thead.css';\n\n/**\n * Table head\n * @slot - Place element content here\n */\n@customElement('pf-thead')\nexport class PfThead extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'rowgroup');\n }\n\n render(): TemplateResult<1> {\n return html`\n <slot @slotchange=${this.#onSlotchange}></slot>\n `;\n }\n\n #onSlotchange() {\n for (const th of this.querySelectorAll(':scope > pf-th')) {\n th.setAttribute('role', 'columnheader');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-thead': PfThead;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-thead.js","sourceRoot":"","sources":["pf-thead.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;AAG7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAOhC,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAAhC;;;QAGwC,iBAAY,GAAG,WAAW,CAAC;;IAExE,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;0BACW,uBAAA,IAAI,iDAAc;KACvC,CAAC;IACJ,CAAC;;;;IAGC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzD,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAnBe,cAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AAEN;IAA5C,OAAO,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;6CAAoC;AAH7D,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport { thRoleContext } from './context.js';\n\nimport styles from './pf-thead.css';\nimport { provide } from '@lit/context';\n\n/**\n * Table head\n * @slot - Place element content here\n */\n@customElement('pf-thead')\nexport class PfThead extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n @provide({ context: thRoleContext }) private thRowContext = 'colheader';\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'rowgroup');\n }\n\n render(): TemplateResult<1> {\n return html`\n <slot @slotchange=${this.#onSlotchange}></slot>\n `;\n }\n\n #onSlotchange() {\n for (const th of this.querySelectorAll(':scope > pf-th')) {\n th.setAttribute('role', 'columnheader');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-thead': PfThead;\n }\n}\n"]}