@patternfly/elements 4.1.0 → 4.3.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 (318) hide show
  1. package/custom-elements.json +14909 -12588
  2. package/package.json +26 -17
  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-alert/pf-alert.css +193 -0
  16. package/pf-alert/pf-alert.d.ts +95 -0
  17. package/pf-alert/pf-alert.js +406 -0
  18. package/pf-alert/pf-alert.js.map +1 -0
  19. package/pf-alert/test/pf-alert.e2e.d.ts +1 -0
  20. package/pf-alert/test/pf-alert.e2e.js +45 -0
  21. package/pf-alert/test/pf-alert.e2e.js.map +1 -0
  22. package/pf-alert/test/pf-alert.spec.d.ts +1 -0
  23. package/pf-alert/test/pf-alert.spec.js +42 -0
  24. package/pf-alert/test/pf-alert.spec.js.map +1 -0
  25. package/pf-avatar/pf-avatar.css +14 -0
  26. package/pf-avatar/pf-avatar.d.ts +1 -14
  27. package/pf-avatar/pf-avatar.js +82 -2
  28. package/pf-avatar/pf-avatar.js.map +1 -1
  29. package/pf-back-to-top/pf-back-to-top.css +12 -0
  30. package/pf-back-to-top/pf-back-to-top.d.ts +1 -17
  31. package/pf-back-to-top/pf-back-to-top.js +87 -3
  32. package/pf-back-to-top/pf-back-to-top.js.map +1 -1
  33. package/pf-back-to-top/test/pf-back-to-top.spec.js +3 -2
  34. package/pf-back-to-top/test/pf-back-to-top.spec.js.map +1 -1
  35. package/pf-background-image/pf-background-image.css +7 -0
  36. package/pf-background-image/pf-background-image.d.ts +1 -8
  37. package/pf-background-image/pf-background-image.js +76 -2
  38. package/pf-background-image/pf-background-image.js.map +1 -1
  39. package/pf-badge/pf-badge.css +13 -0
  40. package/pf-badge/pf-badge.d.ts +1 -13
  41. package/pf-badge/pf-badge.js +53 -2
  42. package/pf-badge/pf-badge.js.map +1 -1
  43. package/pf-banner/pf-banner.css +21 -0
  44. package/pf-banner/pf-banner.d.ts +1 -19
  45. package/pf-banner/pf-banner.js +122 -2
  46. package/pf-banner/pf-banner.js.map +1 -1
  47. package/pf-button/pf-button-tokens.css +38 -0
  48. package/pf-button/pf-button.d.ts +1 -106
  49. package/pf-button/pf-button.js +837 -4
  50. package/pf-button/pf-button.js.map +1 -1
  51. package/pf-card/pf-card.css +24 -0
  52. package/pf-card/pf-card.d.ts +1 -38
  53. package/pf-card/pf-card.js +248 -2
  54. package/pf-card/pf-card.js.map +1 -1
  55. package/pf-chip/pf-chip-group.css +15 -0
  56. package/pf-chip/pf-chip-group.d.ts +0 -15
  57. package/pf-chip/pf-chip-group.js +111 -2
  58. package/pf-chip/pf-chip-group.js.map +1 -1
  59. package/pf-chip/pf-chip.css +30 -1
  60. package/pf-chip/pf-chip.d.ts +1 -20
  61. package/pf-chip/pf-chip.js +135 -2
  62. package/pf-chip/pf-chip.js.map +1 -1
  63. package/pf-clipboard-copy/pf-clipboard-copy.css +25 -0
  64. package/pf-clipboard-copy/pf-clipboard-copy.d.ts +1 -27
  65. package/pf-clipboard-copy/pf-clipboard-copy.js +318 -3
  66. package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
  67. package/pf-code-block/pf-code-block.css +11 -1
  68. package/pf-code-block/pf-code-block.js +70 -18
  69. package/pf-code-block/pf-code-block.js.map +1 -1
  70. package/pf-dropdown/pf-dropdown-group.js +40 -2
  71. package/pf-dropdown/pf-dropdown-group.js.map +1 -1
  72. package/pf-dropdown/pf-dropdown-item.css +10 -0
  73. package/pf-dropdown/pf-dropdown-item.d.ts +0 -27
  74. package/pf-dropdown/pf-dropdown-item.js +155 -2
  75. package/pf-dropdown/pf-dropdown-item.js.map +1 -1
  76. package/pf-dropdown/pf-dropdown-menu.js +39 -2
  77. package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
  78. package/pf-dropdown/pf-dropdown.css +13 -1
  79. package/pf-dropdown/pf-dropdown.d.ts +1 -9
  80. package/pf-dropdown/pf-dropdown.js +357 -2
  81. package/pf-dropdown/pf-dropdown.js.map +1 -1
  82. package/pf-helper-text/pf-helper-text.css +35 -0
  83. package/pf-helper-text/pf-helper-text.d.ts +41 -0
  84. package/pf-helper-text/pf-helper-text.js +107 -0
  85. package/pf-helper-text/pf-helper-text.js.map +1 -0
  86. package/pf-helper-text/test/pf-helper-text.e2e.d.ts +1 -0
  87. package/pf-helper-text/test/pf-helper-text.e2e.js +23 -0
  88. package/pf-helper-text/test/pf-helper-text.e2e.js.map +1 -0
  89. package/pf-helper-text/test/pf-helper-text.spec.d.ts +1 -0
  90. package/pf-helper-text/test/pf-helper-text.spec.js +57 -0
  91. package/pf-helper-text/test/pf-helper-text.spec.js.map +1 -0
  92. package/pf-hint/pf-hint.css +120 -0
  93. package/pf-hint/pf-hint.d.ts +19 -0
  94. package/pf-hint/pf-hint.js +180 -0
  95. package/pf-hint/pf-hint.js.map +1 -0
  96. package/pf-hint/test/pf-hint.e2e.d.ts +1 -0
  97. package/pf-hint/test/pf-hint.e2e.js +23 -0
  98. package/pf-hint/test/pf-hint.e2e.js.map +1 -0
  99. package/pf-hint/test/pf-hint.spec.d.ts +1 -0
  100. package/pf-hint/test/pf-hint.spec.js +87 -0
  101. package/pf-hint/test/pf-hint.spec.js.map +1 -0
  102. package/pf-icon/pf-icon.css +1 -0
  103. package/pf-icon/pf-icon.d.ts +1 -3
  104. package/pf-icon/pf-icon.js +44 -4
  105. package/pf-icon/pf-icon.js.map +1 -1
  106. package/pf-jump-links/pf-jump-links-item.css +7 -1
  107. package/pf-jump-links/pf-jump-links-item.d.ts +0 -8
  108. package/pf-jump-links/pf-jump-links-item.js +77 -2
  109. package/pf-jump-links/pf-jump-links-item.js.map +1 -1
  110. package/pf-jump-links/pf-jump-links-list.css +3 -0
  111. package/pf-jump-links/pf-jump-links-list.d.ts +0 -5
  112. package/pf-jump-links/pf-jump-links-list.js +20 -2
  113. package/pf-jump-links/pf-jump-links-list.js.map +1 -1
  114. package/pf-jump-links/pf-jump-links.css +36 -0
  115. package/pf-jump-links/pf-jump-links.d.ts +1 -38
  116. package/pf-jump-links/pf-jump-links.js +179 -2
  117. package/pf-jump-links/pf-jump-links.js.map +1 -1
  118. package/pf-label/pf-label.css +51 -1
  119. package/pf-label/pf-label.d.ts +1 -58
  120. package/pf-label/pf-label.js +257 -2
  121. package/pf-label/pf-label.js.map +1 -1
  122. package/pf-modal/pf-modal.css +11 -0
  123. package/pf-modal/pf-modal.d.ts +2 -25
  124. package/pf-modal/pf-modal.js +215 -2
  125. package/pf-modal/pf-modal.js.map +1 -1
  126. package/pf-panel/pf-panel.css +29 -0
  127. package/pf-panel/pf-panel.d.ts +1 -32
  128. package/pf-panel/pf-panel.js +204 -2
  129. package/pf-panel/pf-panel.js.map +1 -1
  130. package/pf-popover/pf-popover.css +33 -0
  131. package/pf-popover/pf-popover.d.ts +1 -108
  132. package/pf-popover/pf-popover.js +251 -3
  133. package/pf-popover/pf-popover.js.map +1 -1
  134. package/pf-progress/pf-progress.css +19 -0
  135. package/pf-progress/pf-progress.d.ts +1 -57
  136. package/pf-progress/pf-progress.js +231 -2
  137. package/pf-progress/pf-progress.js.map +1 -1
  138. package/pf-progress-stepper/pf-progress-step.js +126 -2
  139. package/pf-progress-stepper/pf-progress-step.js.map +1 -1
  140. package/pf-progress-stepper/pf-progress-stepper.css +96 -0
  141. package/pf-progress-stepper/pf-progress-stepper.d.ts +1 -115
  142. package/pf-progress-stepper/pf-progress-stepper.js +326 -2
  143. package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
  144. package/pf-search-input/pf-search-input.css +308 -0
  145. package/pf-search-input/pf-search-input.d.ts +75 -0
  146. package/pf-search-input/pf-search-input.js +630 -0
  147. package/pf-search-input/pf-search-input.js.map +1 -0
  148. package/pf-search-input/test/pf-search-input.e2e.d.ts +1 -0
  149. package/pf-search-input/test/pf-search-input.e2e.js +23 -0
  150. package/pf-search-input/test/pf-search-input.e2e.js.map +1 -0
  151. package/pf-search-input/test/pf-search-input.spec.d.ts +1 -0
  152. package/pf-search-input/test/pf-search-input.spec.js +1021 -0
  153. package/pf-search-input/test/pf-search-input.spec.js.map +1 -0
  154. package/pf-select/pf-option-group.js +27 -2
  155. package/pf-select/pf-option-group.js.map +1 -1
  156. package/pf-select/pf-option.css +9 -1
  157. package/pf-select/pf-option.js +83 -2
  158. package/pf-select/pf-option.js.map +1 -1
  159. package/pf-select/pf-select.css +157 -0
  160. package/pf-select/pf-select.d.ts +1 -158
  161. package/pf-select/pf-select.js +542 -5
  162. package/pf-select/pf-select.js.map +1 -1
  163. package/pf-spinner/pf-spinner.css +13 -0
  164. package/pf-spinner/pf-spinner.d.ts +1 -14
  165. package/pf-spinner/pf-spinner.js +101 -2
  166. package/pf-spinner/pf-spinner.js.map +1 -1
  167. package/pf-switch/pf-switch.css +22 -0
  168. package/pf-switch/pf-switch.d.ts +1 -30
  169. package/pf-switch/pf-switch.js +156 -2
  170. package/pf-switch/pf-switch.js.map +1 -1
  171. package/pf-table/pf-caption.js +10 -2
  172. package/pf-table/pf-caption.js.map +1 -1
  173. package/pf-table/pf-table.css +211 -0
  174. package/pf-table/pf-table.d.ts +1 -635
  175. package/pf-table/pf-table.js +437 -2
  176. package/pf-table/pf-table.js.map +1 -1
  177. package/pf-table/pf-tbody.js +18 -2
  178. package/pf-table/pf-tbody.js.map +1 -1
  179. package/pf-table/pf-td.js +107 -2
  180. package/pf-table/pf-td.js.map +1 -1
  181. package/pf-table/pf-th.js +95 -2
  182. package/pf-table/pf-th.js.map +1 -1
  183. package/pf-table/pf-thead.js +20 -2
  184. package/pf-table/pf-thead.js.map +1 -1
  185. package/pf-table/pf-tr.js +89 -2
  186. package/pf-table/pf-tr.js.map +1 -1
  187. package/pf-tabs/pf-tab-panel.css +1 -0
  188. package/pf-tabs/pf-tab-panel.d.ts +0 -2
  189. package/pf-tabs/pf-tab-panel.js +19 -3
  190. package/pf-tabs/pf-tab-panel.js.map +1 -1
  191. package/pf-tabs/pf-tab.css +33 -0
  192. package/pf-tabs/pf-tab.d.ts +0 -40
  193. package/pf-tabs/pf-tab.js +231 -2
  194. package/pf-tabs/pf-tab.js.map +1 -1
  195. package/pf-tabs/pf-tabs.css +26 -0
  196. package/pf-tabs/pf-tabs.d.ts +1 -34
  197. package/pf-tabs/pf-tabs.js +307 -2
  198. package/pf-tabs/pf-tabs.js.map +1 -1
  199. package/pf-text-area/pf-text-area.css +125 -0
  200. package/pf-text-area/pf-text-area.d.ts +1 -125
  201. package/pf-text-area/pf-text-area.js +320 -2
  202. package/pf-text-area/pf-text-area.js.map +1 -1
  203. package/pf-text-input/pf-text-input.css +126 -0
  204. package/pf-text-input/pf-text-input.d.ts +1 -126
  205. package/pf-text-input/pf-text-input.js +395 -2
  206. package/pf-text-input/pf-text-input.js.map +1 -1
  207. package/pf-tile/pf-tile.css +28 -8
  208. package/pf-tile/pf-tile.d.ts +1 -24
  209. package/pf-tile/pf-tile.js +156 -2
  210. package/pf-tile/pf-tile.js.map +1 -1
  211. package/pf-timestamp/pf-timestamp.d.ts +1 -0
  212. package/pf-timestamp/pf-timestamp.js +10 -2
  213. package/pf-timestamp/pf-timestamp.js.map +1 -1
  214. package/pf-tooltip/pf-tooltip.css +10 -0
  215. package/pf-tooltip/pf-tooltip.d.ts +1 -79
  216. package/pf-tooltip/pf-tooltip.js +113 -3
  217. package/pf-tooltip/pf-tooltip.js.map +1 -1
  218. package/pfe.min.js +0 -7439
  219. package/pfe.min.js.LEGAL.txt +0 -57
  220. package/pfe.min.js.map +0 -7
  221. package/react/pf-accordion/pf-accordion-header.d.ts +0 -5
  222. package/react/pf-accordion/pf-accordion-header.js +0 -12
  223. package/react/pf-accordion/pf-accordion-panel.d.ts +0 -5
  224. package/react/pf-accordion/pf-accordion-panel.js +0 -10
  225. package/react/pf-accordion/pf-accordion.d.ts +0 -5
  226. package/react/pf-accordion/pf-accordion.js +0 -13
  227. package/react/pf-avatar/pf-avatar.d.ts +0 -5
  228. package/react/pf-avatar/pf-avatar.js +0 -12
  229. package/react/pf-back-to-top/pf-back-to-top.d.ts +0 -5
  230. package/react/pf-back-to-top/pf-back-to-top.js +0 -10
  231. package/react/pf-background-image/pf-background-image.d.ts +0 -5
  232. package/react/pf-background-image/pf-background-image.js +0 -10
  233. package/react/pf-badge/pf-badge.d.ts +0 -5
  234. package/react/pf-badge/pf-badge.js +0 -10
  235. package/react/pf-banner/pf-banner.d.ts +0 -5
  236. package/react/pf-banner/pf-banner.js +0 -10
  237. package/react/pf-button/pf-button.d.ts +0 -5
  238. package/react/pf-button/pf-button.js +0 -12
  239. package/react/pf-card/pf-card.d.ts +0 -5
  240. package/react/pf-card/pf-card.js +0 -10
  241. package/react/pf-chip/pf-chip-group.d.ts +0 -5
  242. package/react/pf-chip/pf-chip-group.js +0 -13
  243. package/react/pf-chip/pf-chip.d.ts +0 -5
  244. package/react/pf-chip/pf-chip.js +0 -13
  245. package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +0 -5
  246. package/react/pf-clipboard-copy/pf-clipboard-copy.js +0 -12
  247. package/react/pf-code-block/pf-code-block.d.ts +0 -5
  248. package/react/pf-code-block/pf-code-block.js +0 -10
  249. package/react/pf-dropdown/pf-dropdown-group.d.ts +0 -5
  250. package/react/pf-dropdown/pf-dropdown-group.js +0 -10
  251. package/react/pf-dropdown/pf-dropdown-item.d.ts +0 -5
  252. package/react/pf-dropdown/pf-dropdown-item.js +0 -10
  253. package/react/pf-dropdown/pf-dropdown-menu.d.ts +0 -5
  254. package/react/pf-dropdown/pf-dropdown-menu.js +0 -10
  255. package/react/pf-dropdown/pf-dropdown.d.ts +0 -5
  256. package/react/pf-dropdown/pf-dropdown.js +0 -14
  257. package/react/pf-icon/pf-icon.d.ts +0 -5
  258. package/react/pf-icon/pf-icon.js +0 -13
  259. package/react/pf-jump-links/pf-jump-links-item.d.ts +0 -5
  260. package/react/pf-jump-links/pf-jump-links-item.js +0 -13
  261. package/react/pf-jump-links/pf-jump-links-list.d.ts +0 -5
  262. package/react/pf-jump-links/pf-jump-links-list.js +0 -10
  263. package/react/pf-jump-links/pf-jump-links.d.ts +0 -5
  264. package/react/pf-jump-links/pf-jump-links.js +0 -12
  265. package/react/pf-label/pf-label.d.ts +0 -5
  266. package/react/pf-label/pf-label.js +0 -12
  267. package/react/pf-modal/pf-modal.d.ts +0 -5
  268. package/react/pf-modal/pf-modal.js +0 -13
  269. package/react/pf-panel/pf-panel.d.ts +0 -5
  270. package/react/pf-panel/pf-panel.js +0 -10
  271. package/react/pf-popover/pf-popover.d.ts +0 -5
  272. package/react/pf-popover/pf-popover.js +0 -10
  273. package/react/pf-progress/pf-progress.d.ts +0 -5
  274. package/react/pf-progress/pf-progress.js +0 -10
  275. package/react/pf-progress-stepper/pf-progress-step.d.ts +0 -5
  276. package/react/pf-progress-stepper/pf-progress-step.js +0 -10
  277. package/react/pf-progress-stepper/pf-progress-stepper.d.ts +0 -5
  278. package/react/pf-progress-stepper/pf-progress-stepper.js +0 -10
  279. package/react/pf-select/pf-option-group.d.ts +0 -5
  280. package/react/pf-select/pf-option-group.js +0 -10
  281. package/react/pf-select/pf-option.d.ts +0 -5
  282. package/react/pf-select/pf-option.js +0 -10
  283. package/react/pf-select/pf-select.d.ts +0 -5
  284. package/react/pf-select/pf-select.js +0 -13
  285. package/react/pf-spinner/pf-spinner.d.ts +0 -5
  286. package/react/pf-spinner/pf-spinner.js +0 -10
  287. package/react/pf-switch/pf-switch.d.ts +0 -5
  288. package/react/pf-switch/pf-switch.js +0 -12
  289. package/react/pf-table/pf-caption.d.ts +0 -5
  290. package/react/pf-table/pf-caption.js +0 -10
  291. package/react/pf-table/pf-table.d.ts +0 -5
  292. package/react/pf-table/pf-table.js +0 -10
  293. package/react/pf-table/pf-tbody.d.ts +0 -5
  294. package/react/pf-table/pf-tbody.js +0 -10
  295. package/react/pf-table/pf-td.d.ts +0 -5
  296. package/react/pf-table/pf-td.js +0 -10
  297. package/react/pf-table/pf-th.d.ts +0 -5
  298. package/react/pf-table/pf-th.js +0 -10
  299. package/react/pf-table/pf-thead.d.ts +0 -5
  300. package/react/pf-table/pf-thead.js +0 -10
  301. package/react/pf-table/pf-tr.d.ts +0 -5
  302. package/react/pf-table/pf-tr.js +0 -10
  303. package/react/pf-tabs/pf-tab-panel.d.ts +0 -5
  304. package/react/pf-tabs/pf-tab-panel.js +0 -10
  305. package/react/pf-tabs/pf-tab.d.ts +0 -5
  306. package/react/pf-tabs/pf-tab.js +0 -12
  307. package/react/pf-tabs/pf-tabs.d.ts +0 -5
  308. package/react/pf-tabs/pf-tabs.js +0 -10
  309. package/react/pf-text-area/pf-text-area.d.ts +0 -5
  310. package/react/pf-text-area/pf-text-area.js +0 -10
  311. package/react/pf-text-input/pf-text-input.d.ts +0 -5
  312. package/react/pf-text-input/pf-text-input.js +0 -10
  313. package/react/pf-tile/pf-tile.d.ts +0 -5
  314. package/react/pf-tile/pf-tile.js +0 -10
  315. package/react/pf-timestamp/pf-timestamp.d.ts +0 -5
  316. package/react/pf-timestamp/pf-timestamp.js +0 -10
  317. package/react/pf-tooltip/pf-tooltip.d.ts +0 -5
  318. package/react/pf-tooltip/pf-tooltip.js +0 -10
@@ -0,0 +1,87 @@
1
+ import { expect, html } from '@open-wc/testing';
2
+ import { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';
3
+ import { PfHint } from '@patternfly/elements/pf-hint/pf-hint.js';
4
+ import { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';
5
+ describe('<pf-hint>', function () {
6
+ describe('simply instantiating', function () {
7
+ it('imperatively instantiates', function () {
8
+ expect(document.createElement('pf-hint')).to.be.an.instanceof(PfHint);
9
+ });
10
+ it('should upgrade', async function () {
11
+ const el = await createFixture(html `
12
+ <pf-hint>Basic hint</pf-hint>
13
+ `);
14
+ const klass = customElements.get('pf-hint');
15
+ expect(el)
16
+ .to.be.an.instanceOf(klass)
17
+ .and
18
+ .to.be.an.instanceOf(PfHint);
19
+ });
20
+ });
21
+ describe('basic hint', function () {
22
+ let element;
23
+ beforeEach(async function () {
24
+ element = await createFixture(html `
25
+ <pf-hint>Welcome to the new documentation experience.</pf-hint>
26
+ `);
27
+ });
28
+ it('should render body content, and not title footer, or actions', async function () {
29
+ const snap = await a11ySnapshot();
30
+ expect(snap.children?.length).to.equal(1);
31
+ });
32
+ });
33
+ describe('hint with title', function () {
34
+ let element;
35
+ beforeEach(async function () {
36
+ element = await createFixture(html `
37
+ <pf-hint>
38
+ <span slot="title">Do more with Find it Fix it capabilities</span>
39
+ Upgrade to Red Hat Smart Management.
40
+ </pf-hint>
41
+ `);
42
+ await element.updateComplete;
43
+ });
44
+ it('should render title and body content', async function () {
45
+ const snap = await a11ySnapshot();
46
+ expect(snap.children?.length).to.equal(2);
47
+ });
48
+ });
49
+ describe('hint with footer', function () {
50
+ let element;
51
+ beforeEach(async function () {
52
+ element = await createFixture(html `
53
+ <pf-hint>
54
+ <span slot="title">Do more with Find it Fix it capabilities</span>
55
+ Upgrade to Red Hat Smart Management.
56
+ <a slot="footer" href="#">Try it for 90 days</a>
57
+ </pf-hint>
58
+ `);
59
+ await element.updateComplete;
60
+ });
61
+ it('should render footer', function () {
62
+ const footer = element.shadowRoot.querySelector('#footer');
63
+ expect(footer).to.exist;
64
+ });
65
+ });
66
+ describe('hint with actions', function () {
67
+ let element;
68
+ beforeEach(async function () {
69
+ element = await createFixture(html `
70
+ <pf-hint>
71
+ <button slot="actions" aria-label="Actions">⋮</button>
72
+ <span slot="title">Do more with Find it Fix it capabilities</span>
73
+ Upgrade to Red Hat Smart Management.
74
+ </pf-hint>
75
+ `);
76
+ await element.updateComplete;
77
+ });
78
+ it('should render title, body, and actions', async function () {
79
+ const { children: [actions, title, body, ...rest] = [] } = await a11ySnapshot();
80
+ expect(actions.role).to.equal('button');
81
+ expect(title.role).to.equal('text');
82
+ expect(body.role).to.equal('text');
83
+ expect(rest.length).to.equal(0);
84
+ });
85
+ });
86
+ });
87
+ //# sourceMappingURL=pf-hint.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pf-hint.spec.js","sourceRoot":"","sources":["pf-hint.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, html } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { PfHint } from '@patternfly/elements/pf-hint/pf-hint.js';\nimport { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\n\ndescribe('<pf-hint>', function() {\n describe('simply instantiating', function() {\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-hint')).to.be.an.instanceof(PfHint);\n });\n\n it('should upgrade', async function() {\n const el = await createFixture<PfHint>(html`\n <pf-hint>Basic hint</pf-hint>\n `);\n const klass = customElements.get('pf-hint');\n expect(el)\n .to.be.an.instanceOf(klass)\n .and\n .to.be.an.instanceOf(PfHint);\n });\n });\n\n describe('basic hint', function() {\n let element: PfHint;\n beforeEach(async function() {\n element = await createFixture<PfHint>(html`\n <pf-hint>Welcome to the new documentation experience.</pf-hint>\n `);\n });\n\n it('should render body content, and not title footer, or actions', async function() {\n const snap = await a11ySnapshot();\n expect(snap.children?.length).to.equal(1);\n });\n });\n\n describe('hint with title', function() {\n let element: PfHint;\n beforeEach(async function() {\n element = await createFixture<PfHint>(html`\n <pf-hint>\n <span slot=\"title\">Do more with Find it Fix it capabilities</span>\n Upgrade to Red Hat Smart Management.\n </pf-hint>\n `);\n await element.updateComplete;\n });\n\n it('should render title and body content', async function() {\n const snap = await a11ySnapshot();\n expect(snap.children?.length).to.equal(2);\n });\n });\n\n describe('hint with footer', function() {\n let element: PfHint;\n beforeEach(async function() {\n element = await createFixture<PfHint>(html`\n <pf-hint>\n <span slot=\"title\">Do more with Find it Fix it capabilities</span>\n Upgrade to Red Hat Smart Management.\n <a slot=\"footer\" href=\"#\">Try it for 90 days</a>\n </pf-hint>\n `);\n await element.updateComplete;\n });\n\n it('should render footer', function() {\n const footer = element.shadowRoot!.querySelector('#footer');\n expect(footer).to.exist;\n });\n });\n\n describe('hint with actions', function() {\n let element: PfHint;\n beforeEach(async function() {\n element = await createFixture<PfHint>(html`\n <pf-hint>\n <button slot=\"actions\" aria-label=\"Actions\">⋮</button>\n <span slot=\"title\">Do more with Find it Fix it capabilities</span>\n Upgrade to Red Hat Smart Management.\n </pf-hint>\n `);\n await element.updateComplete;\n });\n\n it('should render title, body, and actions', async function() {\n const { children: [actions, title, body, ...rest] = [] } = await a11ySnapshot();\n expect(actions.role).to.equal('button');\n expect(title.role).to.equal('text');\n expect(body.role).to.equal('text');\n expect(rest.length).to.equal(0);\n });\n });\n});\n"]}
@@ -26,6 +26,7 @@ svg {
26
26
  :host([size=xl]) #container { --_size: var(--pf-global--icon--FontSize--xl, 54px); }
27
27
 
28
28
  #container, svg {
29
+ /** size of the icon */
29
30
  width: var(--pf-icon--size, var(--_size));
30
31
  height: var(--pf-icon--size, var(--_size));
31
32
  min-width: var(--pf-icon--size, var(--_size));
@@ -12,11 +12,9 @@ export declare class IconResolveError extends ErrorEvent {
12
12
  /**
13
13
  * An **icon** component is a container that allows for icons of varying dimensions to
14
14
  * seamlessly replace each other without shifting surrounding content.
15
- * @slot - Slotted content is used as a fallback in case the icon doesn't load
15
+ * @alias Icon
16
16
  * @fires load - Fired when an icon is loaded and rendered
17
17
  * @fires error - Fired when an icon fails to load
18
- * @csspart fallback - Container for the fallback (i.e. slotted) content
19
- * @cssprop {<length>} --pf-icon--size - size of the icon
20
18
  */
21
19
  export declare class PfIcon extends LitElement {
22
20
  #private;
@@ -6,7 +6,42 @@ import { property } from 'lit/decorators/property.js';
6
6
  import { state } from 'lit/decorators/state.js';
7
7
  import { Logger } from '@patternfly/pfe-core/controllers/logger.js';
8
8
  import { css } from "lit";
9
- const style = css `:host {\n position: relative;\n display: inline-block;\n line-height: 0;\n height: fit-content !important;\n width: fit-content !important;\n}\n\n#container {\n display: grid;\n grid-template: 1fr / 1fr;\n place-content: center;\n}\n\n#container.content ::slotted(*) {\n display: none;\n}\n\nsvg {\n fill: currentcolor;\n}\n\n:host([size=sm]) #container { --_size: var(--pf-global--icon--FontSize--sm, 10px); }\n:host([size=md]) #container { --_size: var(--pf-global--icon--FontSize--md, 18px); }\n:host([size=lg]) #container { --_size: var(--pf-global--icon--FontSize--lg, 24px); }\n:host([size=xl]) #container { --_size: var(--pf-global--icon--FontSize--xl, 54px); }\n\n#container, svg {\n width: var(--pf-icon--size, var(--_size));\n height: var(--pf-icon--size, var(--_size));\n min-width: var(--pf-icon--size, var(--_size));\n min-height: var(--pf-icon--size, var(--_size));\n}\n\n`;
9
+ const style = css `:host {
10
+ position: relative;
11
+ display: inline-block;
12
+ line-height: 0;
13
+ height: fit-content !important;
14
+ width: fit-content !important;
15
+ }
16
+
17
+ #container {
18
+ display: grid;
19
+ grid-template: 1fr / 1fr;
20
+ place-content: center;
21
+ }
22
+
23
+ #container.content ::slotted(*) {
24
+ display: none;
25
+ }
26
+
27
+ svg {
28
+ fill: currentcolor;
29
+ }
30
+
31
+ :host([size=sm]) #container { --_size: var(--pf-global--icon--FontSize--sm, 10px); }
32
+ :host([size=md]) #container { --_size: var(--pf-global--icon--FontSize--md, 18px); }
33
+ :host([size=lg]) #container { --_size: var(--pf-global--icon--FontSize--lg, 24px); }
34
+ :host([size=xl]) #container { --_size: var(--pf-global--icon--FontSize--xl, 54px); }
35
+
36
+ #container, svg {
37
+ /** size of the icon */
38
+ width: var(--pf-icon--size, var(--_size));
39
+ height: var(--pf-icon--size, var(--_size));
40
+ min-width: var(--pf-icon--size, var(--_size));
41
+ min-height: var(--pf-icon--size, var(--_size));
42
+ }
43
+
44
+ `;
10
45
  /**
11
46
  * requestIdleCallback when available, requestAnimationFrame when not
12
47
  * @param f callback
@@ -94,8 +129,13 @@ let PfIcon = _a = class PfIcon extends LitElement {
94
129
  render() {
95
130
  const content = this.content ?? '';
96
131
  return html `
97
- <div id="container" aria-hidden="true">${content}<span part="fallback"
98
- ?hidden=${!!content}><slot></slot>
132
+ <div id="container" aria-hidden="true">${content}<!--
133
+ summary: Container for the fallback (i.e. slotted) content
134
+ -->
135
+ <span part="fallback"
136
+ ?hidden=${!!content}><!--
137
+ summary: Slotted content is used as a fallback in case the icon doesn't load
138
+ --><slot></slot>
99
139
  </span>
100
140
  </div>
101
141
  `;
@@ -187,7 +227,7 @@ PfIcon.instances = new Set();
187
227
  * ```
188
228
  */
189
229
  PfIcon.resolve = PfIcon.defaultResolve;
190
- PfIcon.version = "4.1.0";
230
+ PfIcon.version = "4.3.0";
191
231
  __decorate([
192
232
  property()
193
233
  ], PfIcon.prototype, "set", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-icon.js","sourceRoot":"","sources":["pf-icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type PropertyValues, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport style from './pf-icon.css';\n\ntype Renderable = unknown;\n\nexport type IconResolverFunction = (set: string, icon: string) =>\n Renderable | Promise<Renderable>;\n\n/**\n * requestIdleCallback when available, requestAnimationFrame when not\n * @param f callback\n */\nconst ric: typeof globalThis.requestIdleCallback =\n globalThis.requestIdleCallback\n ?? globalThis.requestAnimationFrame\n ?? (async (f: () => void) => Promise.resolve().then(f));\n\n/** Fired when an icon fails to load */\nexport class IconResolveError extends ErrorEvent {\n constructor(\n set: string,\n icon: string,\n /** The original error when importing the icon module */\n public originalError: Error\n ) {\n super('error', { message: `Could not load icon \"${icon}\" from set \"${set}\".` });\n }\n}\n\n/**\n * An **icon** component is a container that allows for icons of varying dimensions to\n * seamlessly replace each other without shifting surrounding content.\n * @slot - Slotted content is used as a fallback in case the icon doesn't load\n * @fires load - Fired when an icon is loaded and rendered\n * @fires error - Fired when an icon fails to load\n * @csspart fallback - Container for the fallback (i.e. slotted) content\n * @cssprop {<length>} --pf-icon--size - size of the icon\n */\n@customElement('pf-icon')\nexport class PfIcon extends LitElement {\n public static readonly styles: CSSStyleSheet[] = [style];\n\n private static onIntersect: IntersectionObserverCallback = records =>\n records.forEach(({ isIntersecting, target }) => {\n const icon = target as PfIcon;\n icon.#intersecting = isIntersecting;\n ric(() => {\n if (icon.#intersecting) {\n icon.#load();\n }\n });\n });\n\n private static defaultResolve: IconResolverFunction = (set: string, icon: string): Renderable =>\n import(`@patternfly/icons/${set}/${icon}.js`)\n .then(mod => mod.default.cloneNode(true));\n\n private static io = new IntersectionObserver(PfIcon.onIntersect);\n\n private static resolvers = new Map<string, IconResolverFunction>();\n\n private static instances = new Set<PfIcon>();\n\n /**\n * Register a new icon set\n * @param setName - The name of the icon set\n * @param resolver - A function that returns the URL of an icon\n * @example returning a URL object\n * ```js\n * PfIcon.addIconSet('rh', (set, icon) =>\n * new URL(`./icons/${set}/${icon}.js`, import.meta.url));\n * ```\n * @example returning a string\n * ```js\n * PfIcon.addIconSet('rh', (set, icon) =>\n * `/assets/icons/${set}/${icon}.js`);\n * ```\n */\n public static addIconSet(setName: string, resolver: IconResolverFunction): void {\n if (typeof setName !== 'string') {\n Logger.warn(`[${this.name}]: the first argument to addIconSet must be a string.`);\n } else if (typeof resolver !== 'function') {\n Logger.warn(`[${this.name}]: the second argument to addIconSet must be a function.`);\n } else {\n this.resolvers.set(setName, resolver);\n for (const instance of this.instances) {\n instance.#load();\n }\n }\n }\n\n /** Removes all added icon sets and resets resolve function */\n public static reset(): void {\n this.resolvers.clear();\n this.resolve = this.defaultResolve;\n }\n\n /**\n * Gets a renderable icon. Override this to customize how icons are resolved.\n * @param set - The name of the icon set\n * @param icon - The name of the icon\n * @returns The icon content, a node or anything else which lit-html can render\n * @example resolving an icon node from an icon module\n * ```js\n * PfIcon.resolve = (set, icon) =>\n * import(`/assets/icons/${set}/${icon}.js`)\n * .then(mod => mod.default.cloneNode(true));\n * ```\n * @example resolving a named export from an icon collection module\n * ```js\n * PfIcon.resolve = (set, icon) =>\n * import(`/assets/icons.js`)\n * .then(module => module[icon]?.cloneNode(true));\n * ```\n * @example resolving a new node from an svg file\n * ```js\n * const iconCacne = new Map();\n * function getCachedIconOrNewNode(set, icon, svg) {\n * const key = `${set}_${icon}`;\n * if (!iconCache.has(key)) {\n * const template = document.createElement('template');\n * template.innerHTML = svg;\n * iconCache.set(key, template);\n * }\n * return iconCache.get(key);\n * }\n * PfIcon.resolve = (set, icon) =>\n * fetch(`/assets/icons/${set}/${icon}.svg`)\n * .then(response => response.text())\n * .then(svg => getCachedIconOrNewNode(set, icon, svg))\n * .then(node => node.content.cloneNode(true));\n * ```\n */\n public static resolve: IconResolverFunction = PfIcon.defaultResolve;\n\n /** Icon set */\n @property() set = 'fas';\n\n /** Icon name */\n @property({ reflect: true }) icon = '';\n\n /** Size of the icon */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Controls how eager the element will be to load the icon data\n * - `eager`: eagerly load the icon, blocking the main thread\n * - `idle`: wait for the browser to attain an idle state before loading\n * - `lazy` (default): wait for the element to enter the viewport before loading\n */\n @property() loading?: 'idle' | 'lazy' | 'eager' = 'lazy';\n\n /** Icon content. Any value that lit can render */\n @state() private content?: unknown;\n\n #intersecting = false;\n\n #logger = new Logger(this);\n\n #lazyLoad() {\n PfIcon.io.observe(this);\n if (this.#intersecting) {\n this.load();\n }\n }\n\n #load() {\n switch (this.loading) {\n case 'idle': return void ric(() => this.load());\n case 'lazy': return void this.#lazyLoad();\n case 'eager': return void this.load();\n }\n }\n\n async #contentChanged() {\n await this.updateComplete;\n this.dispatchEvent?.(new Event('load', { bubbles: true }));\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n PfIcon.instances.add(this);\n }\n\n willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('icon')) {\n this.#load();\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n PfIcon.io.unobserve(this);\n PfIcon.instances.delete(this);\n }\n\n render(): TemplateResult<1> {\n const content = this.content ?? '';\n return html`\n <div id=\"container\" aria-hidden=\"true\">${content}<span part=\"fallback\"\n ?hidden=${!!content}><slot></slot>\n </span>\n </div>\n `;\n }\n\n protected async load(): Promise<void> {\n const { set, icon } = this;\n const resolver = PfIcon.resolvers.get(set) ?? PfIcon.resolve;\n if (set && icon && typeof resolver === 'function') {\n try {\n this.content = await resolver(set, icon);\n this.#contentChanged();\n } catch (error: unknown) {\n this.#logger.error((error as IconResolveError).message);\n this.dispatchEvent?.(new IconResolveError(set, icon, error as Error));\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-icon': PfIcon;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-icon.js","sourceRoot":"","sources":["pf-icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type PropertyValues, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport style from './pf-icon.css';\n\ntype Renderable = unknown;\n\nexport type IconResolverFunction = (set: string, icon: string) =>\n Renderable | Promise<Renderable>;\n\n/**\n * requestIdleCallback when available, requestAnimationFrame when not\n * @param f callback\n */\nconst ric: typeof globalThis.requestIdleCallback =\n globalThis.requestIdleCallback\n ?? globalThis.requestAnimationFrame\n ?? (async (f: () => void) => Promise.resolve().then(f));\n\n/** Fired when an icon fails to load */\nexport class IconResolveError extends ErrorEvent {\n constructor(\n set: string,\n icon: string,\n /** The original error when importing the icon module */\n public originalError: Error\n ) {\n super('error', { message: `Could not load icon \"${icon}\" from set \"${set}\".` });\n }\n}\n\n/**\n * An **icon** component is a container that allows for icons of varying dimensions to\n * seamlessly replace each other without shifting surrounding content.\n * @alias Icon\n * @fires load - Fired when an icon is loaded and rendered\n * @fires error - Fired when an icon fails to load\n */\n@customElement('pf-icon')\nexport class PfIcon extends LitElement {\n public static readonly styles: CSSStyleSheet[] = [style];\n\n private static onIntersect: IntersectionObserverCallback = records =>\n records.forEach(({ isIntersecting, target }) => {\n const icon = target as PfIcon;\n icon.#intersecting = isIntersecting;\n ric(() => {\n if (icon.#intersecting) {\n icon.#load();\n }\n });\n });\n\n private static defaultResolve: IconResolverFunction = (set: string, icon: string): Renderable =>\n import(`@patternfly/icons/${set}/${icon}.js`)\n .then(mod => mod.default.cloneNode(true));\n\n private static io = new IntersectionObserver(PfIcon.onIntersect);\n\n private static resolvers = new Map<string, IconResolverFunction>();\n\n private static instances = new Set<PfIcon>();\n\n /**\n * Register a new icon set\n * @param setName - The name of the icon set\n * @param resolver - A function that returns the URL of an icon\n * @example returning a URL object\n * ```js\n * PfIcon.addIconSet('rh', (set, icon) =>\n * new URL(`./icons/${set}/${icon}.js`, import.meta.url));\n * ```\n * @example returning a string\n * ```js\n * PfIcon.addIconSet('rh', (set, icon) =>\n * `/assets/icons/${set}/${icon}.js`);\n * ```\n */\n public static addIconSet(setName: string, resolver: IconResolverFunction): void {\n if (typeof setName !== 'string') {\n Logger.warn(`[${this.name}]: the first argument to addIconSet must be a string.`);\n } else if (typeof resolver !== 'function') {\n Logger.warn(`[${this.name}]: the second argument to addIconSet must be a function.`);\n } else {\n this.resolvers.set(setName, resolver);\n for (const instance of this.instances) {\n instance.#load();\n }\n }\n }\n\n /** Removes all added icon sets and resets resolve function */\n public static reset(): void {\n this.resolvers.clear();\n this.resolve = this.defaultResolve;\n }\n\n /**\n * Gets a renderable icon. Override this to customize how icons are resolved.\n * @param set - The name of the icon set\n * @param icon - The name of the icon\n * @returns The icon content, a node or anything else which lit-html can render\n * @example resolving an icon node from an icon module\n * ```js\n * PfIcon.resolve = (set, icon) =>\n * import(`/assets/icons/${set}/${icon}.js`)\n * .then(mod => mod.default.cloneNode(true));\n * ```\n * @example resolving a named export from an icon collection module\n * ```js\n * PfIcon.resolve = (set, icon) =>\n * import(`/assets/icons.js`)\n * .then(module => module[icon]?.cloneNode(true));\n * ```\n * @example resolving a new node from an svg file\n * ```js\n * const iconCacne = new Map();\n * function getCachedIconOrNewNode(set, icon, svg) {\n * const key = `${set}_${icon}`;\n * if (!iconCache.has(key)) {\n * const template = document.createElement('template');\n * template.innerHTML = svg;\n * iconCache.set(key, template);\n * }\n * return iconCache.get(key);\n * }\n * PfIcon.resolve = (set, icon) =>\n * fetch(`/assets/icons/${set}/${icon}.svg`)\n * .then(response => response.text())\n * .then(svg => getCachedIconOrNewNode(set, icon, svg))\n * .then(node => node.content.cloneNode(true));\n * ```\n */\n public static resolve: IconResolverFunction = PfIcon.defaultResolve;\n\n /** Icon set */\n @property() set = 'fas';\n\n /** Icon name */\n @property({ reflect: true }) icon = '';\n\n /** Size of the icon */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /**\n * Controls how eager the element will be to load the icon data\n * - `eager`: eagerly load the icon, blocking the main thread\n * - `idle`: wait for the browser to attain an idle state before loading\n * - `lazy` (default): wait for the element to enter the viewport before loading\n */\n @property() loading?: 'idle' | 'lazy' | 'eager' = 'lazy';\n\n /** Icon content. Any value that lit can render */\n @state() private content?: unknown;\n\n #intersecting = false;\n\n #logger = new Logger(this);\n\n #lazyLoad() {\n PfIcon.io.observe(this);\n if (this.#intersecting) {\n this.load();\n }\n }\n\n #load() {\n switch (this.loading) {\n case 'idle': return void ric(() => this.load());\n case 'lazy': return void this.#lazyLoad();\n case 'eager': return void this.load();\n }\n }\n\n async #contentChanged() {\n await this.updateComplete;\n this.dispatchEvent?.(new Event('load', { bubbles: true }));\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n PfIcon.instances.add(this);\n }\n\n willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('icon')) {\n this.#load();\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n PfIcon.io.unobserve(this);\n PfIcon.instances.delete(this);\n }\n\n render(): TemplateResult<1> {\n const content = this.content ?? '';\n return html`\n <div id=\"container\" aria-hidden=\"true\">${content}<!--\n summary: Container for the fallback (i.e. slotted) content\n -->\n <span part=\"fallback\"\n ?hidden=${!!content}><!--\n summary: Slotted content is used as a fallback in case the icon doesn't load\n --><slot></slot>\n </span>\n </div>\n `;\n }\n\n protected async load(): Promise<void> {\n const { set, icon } = this;\n const resolver = PfIcon.resolvers.get(set) ?? PfIcon.resolve;\n if (set && icon && typeof resolver === 'function') {\n try {\n this.content = await resolver(set, icon);\n this.#contentChanged();\n } catch (error: unknown) {\n this.#logger.error((error as IconResolveError).message);\n this.dispatchEvent?.(new IconResolveError(set, icon, error as Error));\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-icon': PfIcon;\n }\n}\n"]}
@@ -17,17 +17,23 @@ a {
17
17
  display: flex;
18
18
  cursor: pointer;
19
19
  flex: 1;
20
+ /** Top padding around the link */
20
21
  padding-block-start: var(--pf-c-jump-links__link--PaddingTop,
21
22
  var(--pf-global--spacer--md, 1rem));
23
+ /** Right padding around the link */
22
24
  padding-inline-end: var(--pf-c-jump-links__link--PaddingRight,
23
25
  var(--pf-global--spacer--md, 1rem));
26
+ /** Bottom padding around the link */
24
27
  padding-block-end: var(--pf-c-jump-links__link--PaddingBottom,
25
28
  var(--pf-global--spacer--md, 1rem));
29
+ /** Left padding around the link */
26
30
  padding-inline-start: var(--pf-c-jump-links__link--PaddingLeft,
27
31
  var(--pf-global--spacer--md, 1rem));
28
32
  text-decoration: none;
33
+ /** Outline offset for jump links link */
29
34
  outline-offset: var(--pf-c-jump-links__link--OutlineOffset,
30
35
  calc(-1 * var(--pf-global--spacer--sm, 0.5rem)));
36
+ /** Color for jump links link text */
31
37
  color: var(--pf-c-jump-links__link-text--Color,
32
38
  var(--pf-global--Color--200, #6a6e73));
33
39
  }
@@ -65,5 +71,5 @@ a:focus {
65
71
  --pf-c-jump-links__link--before--BorderColor: var(--pf-c-jump-links__item--m-current__link--before--BorderColor,
66
72
  var(--pf-global--primary-color--100, #06c));
67
73
  --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__item--m-current__link-text--Color,
68
- pfvar(--pf-global--Color--100, #151515));
74
+ var(--pf-global--Color--100, #151515));
69
75
  }
@@ -1,12 +1,4 @@
1
1
  import { LitElement, type TemplateResult } from 'lit';
2
- /**
3
- * @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link
4
- * @cssprop --pf-c-jump-links__link--PaddingRight
5
- * @cssprop --pf-c-jump-links__link--PaddingBottom
6
- * @cssprop --pf-c-jump-links__link--PaddingLeft
7
- * @cssprop --pf-c-jump-links__link--OutlineOffset
8
- * @cssprop --pf-c-jump-links__link-text--Color
9
- */
10
2
  export declare class PfJumpLinksItem extends LitElement {
11
3
  #private;
12
4
  static readonly styles: CSSStyleSheet[];
@@ -6,7 +6,82 @@ import { property } from 'lit/decorators/property.js';
6
6
  import { ifDefined } from 'lit/directives/if-defined.js';
7
7
  import { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';
8
8
  import { css } from "lit";
9
- const style = css `:host {\n display: block;\n}\n\n#container {\n display: contents;\n}\n\nslot:not([name]) {\n display: flex;\n flex-direction: column;\n row-gap: var(--pf-global--spacer--md, 1rem);\n}\n\na {\n position: relative;\n display: flex;\n cursor: pointer;\n flex: 1;\n padding-block-start: var(--pf-c-jump-links__link--PaddingTop,\n var(--pf-global--spacer--md, 1rem));\n padding-inline-end: var(--pf-c-jump-links__link--PaddingRight,\n var(--pf-global--spacer--md, 1rem));\n padding-block-end: var(--pf-c-jump-links__link--PaddingBottom,\n var(--pf-global--spacer--md, 1rem));\n padding-inline-start: var(--pf-c-jump-links__link--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n text-decoration: none;\n outline-offset: var(--pf-c-jump-links__link--OutlineOffset,\n calc(-1 * var(--pf-global--spacer--sm, 0.5rem)));\n color: var(--pf-c-jump-links__link-text--Color,\n var(--pf-global--Color--200, #6a6e73));\n}\n\na::before {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: "";\n border-color: var(--pf-c-jump-links__link--before--BorderColor, transparent);\n border-style: solid;\n border-width:\n var(--pf-c-jump-links__link--before--BorderTopWidth,\n var(--pf-c-jump-links__list--before--BorderTopWidth,\n var(--pf-global--BorderWidth--sm, 1px)))\n var(--pf-c-jump-links__link--before--BorderRightWidth, 0)\n var(--pf-c-jump-links__link--before--BorderBottomWidth, 0)\n var(--pf-c-jump-links__link--before--BorderLeftWidth, 0);\n}\n\na:hover {\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--hover__link-text--Color,\n var(--pf-global--Color--100, #151515));\n}\n\na:focus {\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--focus__link-text--Color,\n var(--pf-global--Color--100, #151515));\n}\n\n:host([active]) {\n --pf-c-jump-links__link--before--BorderTopWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderTopWidth,\n var(--pf-global--BorderWidth--lg, 3px));\n --pf-c-jump-links__link--before--BorderLeftWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderLeftWidth, 0);\n --pf-c-jump-links__link--before--BorderColor: var(--pf-c-jump-links__item--m-current__link--before--BorderColor,\n var(--pf-global--primary-color--100, #06c));\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__item--m-current__link-text--Color,\n pfvar(--pf-global--Color--100, #151515));\n}\n`;
9
+ const style = css `:host {
10
+ display: block;
11
+ }
12
+
13
+ #container {
14
+ display: contents;
15
+ }
16
+
17
+ slot:not([name]) {
18
+ display: flex;
19
+ flex-direction: column;
20
+ row-gap: var(--pf-global--spacer--md, 1rem);
21
+ }
22
+
23
+ a {
24
+ position: relative;
25
+ display: flex;
26
+ cursor: pointer;
27
+ flex: 1;
28
+ /** Top padding around the link */
29
+ padding-block-start: var(--pf-c-jump-links__link--PaddingTop,
30
+ var(--pf-global--spacer--md, 1rem));
31
+ /** Right padding around the link */
32
+ padding-inline-end: var(--pf-c-jump-links__link--PaddingRight,
33
+ var(--pf-global--spacer--md, 1rem));
34
+ /** Bottom padding around the link */
35
+ padding-block-end: var(--pf-c-jump-links__link--PaddingBottom,
36
+ var(--pf-global--spacer--md, 1rem));
37
+ /** Left padding around the link */
38
+ padding-inline-start: var(--pf-c-jump-links__link--PaddingLeft,
39
+ var(--pf-global--spacer--md, 1rem));
40
+ text-decoration: none;
41
+ /** Outline offset for jump links link */
42
+ outline-offset: var(--pf-c-jump-links__link--OutlineOffset,
43
+ calc(-1 * var(--pf-global--spacer--sm, 0.5rem)));
44
+ /** Color for jump links link text */
45
+ color: var(--pf-c-jump-links__link-text--Color,
46
+ var(--pf-global--Color--200, #6a6e73));
47
+ }
48
+
49
+ a::before {
50
+ position: absolute;
51
+ inset: 0;
52
+ pointer-events: none;
53
+ content: "";
54
+ border-color: var(--pf-c-jump-links__link--before--BorderColor, transparent);
55
+ border-style: solid;
56
+ border-width:
57
+ var(--pf-c-jump-links__link--before--BorderTopWidth,
58
+ var(--pf-c-jump-links__list--before--BorderTopWidth,
59
+ var(--pf-global--BorderWidth--sm, 1px)))
60
+ var(--pf-c-jump-links__link--before--BorderRightWidth, 0)
61
+ var(--pf-c-jump-links__link--before--BorderBottomWidth, 0)
62
+ var(--pf-c-jump-links__link--before--BorderLeftWidth, 0);
63
+ }
64
+
65
+ a:hover {
66
+ --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--hover__link-text--Color,
67
+ var(--pf-global--Color--100, #151515));
68
+ }
69
+
70
+ a:focus {
71
+ --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--focus__link-text--Color,
72
+ var(--pf-global--Color--100, #151515));
73
+ }
74
+
75
+ :host([active]) {
76
+ --pf-c-jump-links__link--before--BorderTopWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderTopWidth,
77
+ var(--pf-global--BorderWidth--lg, 3px));
78
+ --pf-c-jump-links__link--before--BorderLeftWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderLeftWidth, 0);
79
+ --pf-c-jump-links__link--before--BorderColor: var(--pf-c-jump-links__item--m-current__link--before--BorderColor,
80
+ var(--pf-global--primary-color--100, #06c));
81
+ --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__item--m-current__link-text--Color,
82
+ var(--pf-global--Color--100, #151515));
83
+ }
84
+ `;
10
85
  import { observes } from '@patternfly/pfe-core/decorators/observes.js';
11
86
  let PfJumpLinksItem = class PfJumpLinksItem extends LitElement {
12
87
  constructor() {
@@ -43,7 +118,7 @@ PfJumpLinksItem.shadowRootOptions = {
43
118
  ...LitElement.shadowRootOptions,
44
119
  delegatesFocus: true,
45
120
  };
46
- PfJumpLinksItem.version = "4.1.0";
121
+ PfJumpLinksItem.version = "4.3.0";
47
122
  __decorate([
48
123
  property({ type: Boolean, reflect: true })
49
124
  ], PfJumpLinksItem.prototype, "active", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-jump-links-item.js","sourceRoot":"","sources":["pf-jump-links-item.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;AAI/F,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAWhE,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;;QAQL,mCAAmC;QACS,WAAM,GAAG,KAAK,CAAC;QAK3D,qCAAa,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAC;;IAEhE,MAAM;QACJ,OAAO,IAAI,CAAA;iBACE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;mBAClB,uBAAA,IAAI,4DAAS;mBACb,uBAAA,IAAI,4DAAS;;;;KAI3B,CAAC;IACJ,CAAC;IAGS,aAAa;QACrB,uBAAA,IAAI,kCAAW,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;;;;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AArCe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;AAEzB,iCAAiB,GAAmB;IAC3D,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;;AAG0C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAgB;AAG9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAe;AAgBjC;IADT,QAAQ,CAAC,QAAQ,CAAC;oDAGlB;AA9BU,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport style from './pf-jump-links-item.css';\n\nimport { observes } from '@patternfly/pfe-core/decorators/observes.js';\n\n/**\n * @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link\n * @cssprop --pf-c-jump-links__link--PaddingRight\n * @cssprop --pf-c-jump-links__link--PaddingBottom\n * @cssprop --pf-c-jump-links__link--PaddingLeft\n * @cssprop --pf-c-jump-links__link--OutlineOffset\n * @cssprop --pf-c-jump-links__link-text--Color\n */\n@customElement('pf-jump-links-item')\nexport class PfJumpLinksItem extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Whether this item is active. */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** hypertext reference for this link */\n @property({ reflect: true }) href?: string;\n\n #internals = InternalsController.of(this, { role: 'listitem' });\n\n render(): TemplateResult<1> {\n return html`\n <a href=\"${ifDefined(this.href)}\"\n @focus=\"${this.#onFocus}\"\n @click=\"${this.#onClick}\">\n <slot></slot>\n </a>\n <slot name=\"subsection\"></slot>\n `;\n }\n\n @observes('active')\n protected activeChanged(): void {\n this.#internals.ariaCurrent = this.active ? 'location' : null;\n }\n\n #onClick() {\n this.dispatchEvent(new Event('select', { bubbles: true }));\n }\n\n #onFocus() {\n this.dispatchEvent(new Event('focus', { bubbles: true }));\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-item': PfJumpLinksItem;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-jump-links-item.js","sourceRoot":"","sources":["pf-jump-links-item.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI/F,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAGhE,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;;QAQL,mCAAmC;QACS,WAAM,GAAG,KAAK,CAAC;QAK3D,qCAAa,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAC;;IAEhE,MAAM;QACJ,OAAO,IAAI,CAAA;iBACE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;mBAClB,uBAAA,IAAI,4DAAS;mBACb,uBAAA,IAAI,4DAAS;;;;KAI3B,CAAC;IACJ,CAAC;IAGS,aAAa;QACrB,uBAAA,IAAI,kCAAW,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;;;;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AArCe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;AAEzB,iCAAiB,GAAmB;IAC3D,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;;AAG0C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAgB;AAG9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAe;AAgBjC;IADT,QAAQ,CAAC,QAAQ,CAAC;oDAGlB;AA9BU,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport style from './pf-jump-links-item.css';\n\nimport { observes } from '@patternfly/pfe-core/decorators/observes.js';\n\n@customElement('pf-jump-links-item')\nexport class PfJumpLinksItem extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Whether this item is active. */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** hypertext reference for this link */\n @property({ reflect: true }) href?: string;\n\n #internals = InternalsController.of(this, { role: 'listitem' });\n\n render(): TemplateResult<1> {\n return html`\n <a href=\"${ifDefined(this.href)}\"\n @focus=\"${this.#onFocus}\"\n @click=\"${this.#onClick}\">\n <slot></slot>\n </a>\n <slot name=\"subsection\"></slot>\n `;\n }\n\n @observes('active')\n protected activeChanged(): void {\n this.#internals.ariaCurrent = this.active ? 'location' : null;\n }\n\n #onClick() {\n this.dispatchEvent(new Event('select', { bubbles: true }));\n }\n\n #onFocus() {\n this.dispatchEvent(new Event('focus', { bubbles: true }));\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-item': PfJumpLinksItem;\n }\n}\n"]}
@@ -6,10 +6,13 @@
6
6
  display: contents;
7
7
  --pf-c-jump-links__list--PaddingTop: 0;
8
8
  --pf-c-jump-links__list--PaddingBottom: 0;
9
+ /** Top padding around each link */
9
10
  --pf-c-jump-links__link--PaddingTop: var(--pf-c-jump-links__list__list__link--PaddingTop,
10
11
  var(--pf-global--spacer--sm, 0.5rem));
12
+ /** Bottom padding around each link */
11
13
  --pf-c-jump-links__link--PaddingBottom: var(--pf-c-jump-links__list__list__link--PaddingBottom,
12
14
  var(--pf-global--spacer--sm, 0.5rem));
15
+ /** Left padding around each link */
13
16
  --pf-c-jump-links__link--PaddingLeft: var(--pf-c-jump-links__list__list__link--PaddingLeft,
14
17
  var(--pf-global--spacer--lg, 1.5rem));
15
18
  }
@@ -1,9 +1,4 @@
1
1
  import { LitElement, type TemplateResult } from 'lit';
2
- /**
3
- * @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link
4
- * @cssprop --pf-c-jump-links__list__list__link--PaddingBottom
5
- * @cssprop --pf-c-jump-links__list__list__link--PaddingLeft
6
- */
7
2
  export declare class PfJumpLinksList extends LitElement {
8
3
  static readonly styles: CSSStyleSheet[];
9
4
  render(): TemplateResult<1>;
@@ -2,7 +2,25 @@ import { __decorate } from "tslib";
2
2
  import { html, LitElement } from 'lit';
3
3
  import { customElement } from 'lit/decorators/custom-element.js';
4
4
  import { css } from "lit";
5
- const style = css `:host {\n display: block;\n}\n\n#container {\n display: contents;\n --pf-c-jump-links__list--PaddingTop: 0;\n --pf-c-jump-links__list--PaddingBottom: 0;\n --pf-c-jump-links__link--PaddingTop: var(--pf-c-jump-links__list__list__link--PaddingTop,\n var(--pf-global--spacer--sm, 0.5rem));\n --pf-c-jump-links__link--PaddingBottom: var(--pf-c-jump-links__list__list__link--PaddingBottom,\n var(--pf-global--spacer--sm, 0.5rem));\n --pf-c-jump-links__link--PaddingLeft: var(--pf-c-jump-links__list__list__link--PaddingLeft,\n var(--pf-global--spacer--lg, 1.5rem));\n}\n`;
5
+ const style = css `:host {
6
+ display: block;
7
+ }
8
+
9
+ #container {
10
+ display: contents;
11
+ --pf-c-jump-links__list--PaddingTop: 0;
12
+ --pf-c-jump-links__list--PaddingBottom: 0;
13
+ /** Top padding around each link */
14
+ --pf-c-jump-links__link--PaddingTop: var(--pf-c-jump-links__list__list__link--PaddingTop,
15
+ var(--pf-global--spacer--sm, 0.5rem));
16
+ /** Bottom padding around each link */
17
+ --pf-c-jump-links__link--PaddingBottom: var(--pf-c-jump-links__list__list__link--PaddingBottom,
18
+ var(--pf-global--spacer--sm, 0.5rem));
19
+ /** Left padding around each link */
20
+ --pf-c-jump-links__link--PaddingLeft: var(--pf-c-jump-links__list__list__link--PaddingLeft,
21
+ var(--pf-global--spacer--lg, 1.5rem));
22
+ }
23
+ `;
6
24
  let PfJumpLinksList = class PfJumpLinksList extends LitElement {
7
25
  render() {
8
26
  // TODO: add label
@@ -11,7 +29,7 @@ let PfJumpLinksList = class PfJumpLinksList extends LitElement {
11
29
  }
12
30
  };
13
31
  PfJumpLinksList.styles = [style];
14
- PfJumpLinksList.version = "4.1.0";
32
+ PfJumpLinksList.version = "4.3.0";
15
33
  PfJumpLinksList = __decorate([
16
34
  customElement('pf-jump-links-list')
17
35
  ], PfJumpLinksList);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-jump-links-list.js","sourceRoot":"","sources":["pf-jump-links-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;AAU1D,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAG7C,MAAM;QACJ,kBAAkB;QAClB,oDAAoD;QACpD,OAAO,IAAI,CAAA,wDAAwD,CAAC;IACtE,CAAC;;AANe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;;AADvC,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport style from './pf-jump-links-list.css';\n\n/**\n * @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link\n * @cssprop --pf-c-jump-links__list__list__link--PaddingBottom\n * @cssprop --pf-c-jump-links__list__list__link--PaddingLeft\n */\n@customElement('pf-jump-links-list')\nexport class PfJumpLinksList extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n render(): TemplateResult<1> {\n // TODO: add label\n // eslint-disable-next-line lit-a11y/accessible-name\n return html`<div id=\"container\" role=\"listbox\"><slot></slot></div>`;\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-list': PfJumpLinksList;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-jump-links-list.js","sourceRoot":"","sources":["pf-jump-links-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;;;;;;;;;;;;;;;;;;;AAK1D,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAG7C,MAAM;QACJ,kBAAkB;QAClB,oDAAoD;QACpD,OAAO,IAAI,CAAA,wDAAwD,CAAC;IACtE,CAAC;;AANe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;;AADvC,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport style from './pf-jump-links-list.css';\n\n@customElement('pf-jump-links-list')\nexport class PfJumpLinksList extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n render(): TemplateResult<1> {\n // TODO: add label\n // eslint-disable-next-line lit-a11y/accessible-name\n return html`<div id=\"container\" role=\"listbox\"><slot></slot></div>`;\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-list': PfJumpLinksList;\n }\n}\n"]}
@@ -16,14 +16,21 @@
16
16
 
17
17
  slot {
18
18
  position: relative;
19
+ /** Controls the display type of the list container */
19
20
  display: var(--pf-c-jump-links__list--Display, flex);
21
+ /** Controls the direction of items in the list */
20
22
  flex-direction: var(--pf-c-jump-links__list--FlexDirection, row);
23
+ /** Padding around the list of links */
21
24
  padding-block-start: var(--pf-c-jump-links__list--PaddingTop, 0);
25
+ /** Right padding for the list */
22
26
  padding-inline-end: var(--pf-c-jump-links__list--PaddingRight,
23
27
  var(--pf-global--spacer--md, 1rem));
28
+ /** Bottom padding for the list */
24
29
  padding-block-end: var(--pf-c-jump-links__list--PaddingBottom, 0);
30
+ /** Left padding for the list */
25
31
  padding-inline-start: var(--pf-c-jump-links__list--PaddingLeft,
26
32
  var(--pf-global--spacer--md, 1rem));
33
+ /** Controls visibility of the list */
27
34
  visibility: var(--pf-c-jump-links__list--Visibility, visible);
28
35
  }
29
36
 
@@ -35,40 +42,54 @@ slot::before {
35
42
  left: 0;
36
43
  pointer-events: none;
37
44
  content: "";
45
+ /** Border color for the list pseudo-element */
38
46
  border: solid var(--pf-c-jump-links__list--before--BorderColor,
39
47
  var(--pf-global--BorderColor--100, #d2d2d2));
40
48
  border-width:
49
+ /** Top border width for the list pseudo-element */
41
50
  var(--pf-c-jump-links__list--before--BorderTopWidth,
42
51
  var(--pf-global--BorderWidth--sm, 1px))
52
+ /** Right border width for the list pseudo-element */
43
53
  var(--pf-c-jump-links__list--before--BorderRightWidth, 0)
54
+ /** Bottom border width for the list pseudo-element */
44
55
  var(--pf-c-jump-links__list--before--BorderBottomWidth, 0)
56
+ /** Left border width for the list pseudo-element */
45
57
  var(--pf-c-jump-links__list--before--BorderLeftWidth, 0);
46
58
  }
47
59
 
48
60
  :host([vertical]) #container {
61
+ /** Top padding for vertical layout */
49
62
  --pf-c-jump-links__list--PaddingTop:
50
63
  var(--pf-c-jump-links--m-vertical__list--PaddingTop,
51
64
  var(--pf-global--spacer--md, 1rem)
52
65
  );
66
+ /** Right padding for vertical layout */
53
67
  --pf-c-jump-links__list--PaddingRight:
54
68
  var(--pf-c-jump-links--m-vertical__list--PaddingRight,0);
69
+ /** Bottom padding for vertical layout */
55
70
  --pf-c-jump-links__list--PaddingBottom:
56
71
  var(--pf-c-jump-links--m-vertical__list--PaddingBottom,
57
72
  var(--pf-global--spacer--md, 1rem)
58
73
  );
74
+ /** Left padding for vertical layout */
59
75
  --pf-c-jump-links__list--PaddingLeft:
60
76
  var(--pf-c-jump-links--m-vertical__list--PaddingLeft, 0);
77
+ /** Top border width for vertical layout */
61
78
  --pf-c-jump-links__list--before--BorderTopWidth:
62
79
  var(--pf-c-jump-links--m-vertical__list--before--BorderTopWidth, 0);
80
+ /** Left border width for vertical layout */
63
81
  --pf-c-jump-links__list--before--BorderLeftWidth:
64
82
  var(--pf-c-jump-links--m-vertical__list--before--BorderLeftWidth,
65
83
  var(--pf-global--BorderWidth--sm, 1px));
84
+ /** Top border width for current item in vertical layout */
66
85
  --pf-c-jump-links__item--m-current__link--before--BorderTopWidth:
67
86
  var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderTopWidth, 0);
87
+ /** Left border width for current item in vertical layout */
68
88
  --pf-c-jump-links__item--m-current__link--before--BorderLeftWidth:
69
89
  var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderLeftWidth,
70
90
  var(--pf-global--BorderWidth--lg, 3px)
71
91
  );
92
+ /** Flex direction for vertical layout */
72
93
  --pf-c-jump-links__list--FlexDirection: var(--pf-c-jump-links--m-vertical__list--FlexDirection, column);
73
94
  }
74
95
 
@@ -88,6 +109,7 @@ slot::before {
88
109
  }
89
110
 
90
111
  :host([expandable]) {
112
+ /** Base margin for the toggle button */
91
113
  --pf-c-jump-links--m-expanded__toggle--MarginBottom:
92
114
  calc(var(--pf-c-jump-links__toggle--MarginBottom--base,
93
115
  calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))
@@ -96,43 +118,57 @@ slot::before {
96
118
 
97
119
  summary {
98
120
  display: block;
121
+ /** Padding around the expandable jump links disclosure widget. */
99
122
  margin-block-start: var(--pf-c-jump-links__toggle--MarginTop,
100
123
  calc(-1 * var(--pf-global--spacer--form-element, 0.375rem)));
124
+ /** Bottom margin for the toggle */
101
125
  margin-block-end: var(--pf-c-jump-links__toggle--MarginBottom,
102
126
  var(--pf-c-jump-links__toggle--MarginBottom--base,
103
127
  calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))));
128
+ /** Left margin for the toggle */
104
129
  margin-inline-start: var(--pf-c-jump-links__toggle--MarginLeft);
130
+ /** Color of the toggle text */
105
131
  color: var(--pf-c-jump-links__toggle-text--Color,
106
132
  var(--pf-global--Color--100, #151515));
133
+ /** Padding around the expandable jump links disclosure widget. */
107
134
  padding:
108
135
  var(--pf-c-button--PaddingTop,
109
136
  var(--pf-global--spacer--form-element, 0.375rem))
137
+ /** Right padding for the button */
110
138
  var(--pf-c-button--PaddingRight,
111
139
  var(--pf-global--spacer--md, 1rem))
140
+ /** Bottom padding for the button */
112
141
  var(--pf-c-button--PaddingBottom,
113
142
  var(--pf-global--spacer--form-element, 0.375rem))
143
+ /** Left padding for the button */
114
144
  var(--pf-c-button--PaddingLeft,
115
145
  var(--pf-global--spacer--md, 1rem));
116
146
  }
117
147
 
118
148
  summary pf-icon {
149
+ /** Rotation angle for the toggle icon */
119
150
  rotate: var(--pf-c-jump-links__toggle-icon--Rotate, 0);
151
+ /** Transition for the toggle icon */
120
152
  transition: var(--pf-c-jump-links__toggle-icon--Transition,
121
153
  var(--pf-global--Transition, all 250ms cubic-bezier(0.42, 0, 0.58, 1)));
122
154
  }
123
155
 
124
156
  summary span {
157
+ /** Left margin for the toggle text */
125
158
  margin-inline-start: var(--pf-c-jump-links__toggle-text--MarginLeft,
126
159
  var(--pf-global--spacer--md, 1rem));
127
160
  }
128
161
 
129
162
  :host([expanded]) #container {
163
+ /** Bottom margin for expanded toggle */
130
164
  --pf-c-jump-links__toggle--MarginBottom: var(--pf-c-jump-links--m-expanded__toggle--MarginBottom,
131
165
  calc(var(--pf-c-jump-links__toggle--MarginBottom--base,
132
166
  calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))) +
133
167
  var(--pf-global--spacer--md, 1rem)));
168
+ /** Rotation for expanded toggle icon */
134
169
  --pf-c-jump-links__toggle-icon--Rotate: var(--pf-c-jump-links--m-expanded__toggle-icon--Rotate,
135
170
  90deg);
171
+ /** Color for expanded toggle icon */
136
172
  --pf-c-jump-links__toggle-icon--Color: var(--pf-c-jump-links--m-expanded__toggle-icon--Color,
137
173
  var(--pf-global--Color--100, #151515));
138
174
  --pf-c-jump-links__toggle-icon--Rotate: 90deg;