@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
@@ -15,7 +15,351 @@ import { PfDropdownItem } from './pf-dropdown-item.js';
15
15
  import { PfDropdownMenu } from './pf-dropdown-menu.js';
16
16
  import '@patternfly/elements/pf-button/pf-button.js';
17
17
  import { css } from "lit";
18
- const styles = css `:host {\n display: inline-block;\n position: relative;\n --pf-c-dropdown__toggle--PaddingTop: var(--pf-global--spacer--form-element, 0.375rem);\n --pf-c-dropdown__toggle--PaddingRight: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle--PaddingBottom: var(--pf-global--spacer--form-element, 0.375rem);\n --pf-c-dropdown__toggle--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle--MinWidth: 0;\n --pf-c-dropdown__toggle--FontSize: var(--pf-global--FontSize--md, 1rem);\n --pf-c-dropdown__toggle--FontWeight: var(--pf-global--FontWeight--normal, 400);\n --pf-c-dropdown__toggle--Color: var(--pf-global--Color--100, #151515);\n --pf-c-dropdown__toggle--LineHeight: var(--pf-global--LineHeight--md, 1.5);\n --pf-c-dropdown__toggle--BackgroundColor: transparent;\n --pf-c-dropdown__toggle--before--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);\n --pf-c-dropdown__toggle--before--BorderTopColor: var(--pf-global--BorderColor--300, #f0f0f0);\n --pf-c-dropdown__toggle--before--BorderRightColor: var(--pf-global--BorderColor--300, #f0f0f0);\n --pf-c-dropdown__toggle--before--BorderBottomColor: var(--pf-global--BorderColor--200, #8a8d90);\n --pf-c-dropdown__toggle--before--BorderLeftColor: var(--pf-global--BorderColor--300, #f0f0f0);\n --pf-c-dropdown__toggle--hover--before--BorderBottomColor: var(--pf-global--active-color--100, #06c);\n --pf-c-dropdown__toggle--focus--before--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--focus--before--BorderBottomColor: var(--pf-global--active-color--100, #06c);\n --pf-c-dropdown__toggle--active--before--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--active--before--BorderBottomColor: var(--pf-global--active-color--100, #06c);\n --pf-c-dropdown--m-expanded__toggle--before--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown--m-expanded__toggle--before--BorderBottomColor: var(--pf-global--active-color--100, #06c);\n --pf-c-dropdown__toggle--disabled--BackgroundColor: var(--pf-global--disabled-color--300, #f0f0f0);\n --pf-c-dropdown__toggle--m-plain--Color: var(--pf-global--Color--200, #6a6e73);\n --pf-c-dropdown__toggle--m-plain--hover--Color: var(--pf-global--Color--100, #151515);\n --pf-c-dropdown__toggle--m-plain--disabled--Color: var(--pf-global--disabled-color--200, #d2d2d2);\n --pf-c-dropdown__toggle--m-plain--PaddingRight: var(--pf-global--spacer--md, 1rem);\n --pf-c-dropdown__toggle--m-plain--PaddingLeft: var(--pf-global--spacer--md, 1rem);\n --pf-c-dropdown__toggle--m-plain--child--LineHeight: normal;\n --pf-c-dropdown__toggle--m-primary--Color: var(--pf-global--Color--light-100, #fff);\n --pf-c-dropdown__toggle--m-primary--BorderRadius: var(--pf-global--BorderRadius--sm, 3px);\n --pf-c-dropdown__toggle--m-primary--BackgroundColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle--m-primary--hover--BackgroundColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown__toggle--m-primary--focus--BackgroundColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown__toggle--m-primary--active--BackgroundColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown--m-expanded__toggle--m-primary--BackgroundColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown__toggle--m-primary--disabled--Color: var(--pf-global--Color--100, #151515);\n --pf-c-dropdown__toggle--m-secondary--Color: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle--m-secondary--BorderRadius: var(--pf-global--BorderRadius--sm, 3px);\n --pf-c-dropdown__toggle--m-secondary--BackgroundColor: transparent;\n --pf-c-dropdown__toggle--m-secondary--before--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);\n --pf-c-dropdown__toggle--m-secondary--hover--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--focus--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--active--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--before--BorderColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle--m-secondary--hover--before--BorderColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle--m-secondary--focus--before--BorderColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle--m-secondary--active--before--BorderColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown--m-expanded__toggle--m-secondary--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown--m-expanded__toggle--m-secondary--before--BorderColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle-button--Color: var(--pf-global--Color--100, #151515);\n --pf-c-dropdown__toggle-progress--Visibility: hidden;\n --pf-c-dropdown__toggle-progress--c-spinner--diameter: var(--pf-global--FontSize--sm, 0.875rem);\n --pf-c-dropdown__toggle--m-split-button--child--PaddingTop: var(--pf-global--spacer--form-element, 0.375rem);\n --pf-c-dropdown__toggle--m-split-button--child--PaddingRight: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-dropdown__toggle--m-split-button--child--PaddingBottom: var(--pf-global--spacer--form-element, 0.375rem);\n --pf-c-dropdown__toggle--m-split-button--child--PaddingLeft: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-dropdown__toggle--m-split-button--child--BackgroundColor: transparent;\n --pf-c-dropdown__toggle--m-split-button--first-child--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle--m-split-button--last-child--PaddingRight: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle--m-split-button--m-action--child--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle--m-split-button--m-action--child--PaddingRight: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle--m-split-button--m-action__toggle-button--MarginRight: calc(-1 * var(--pf-global--BorderWidth--sm, 1px));\n --pf-c-dropdown__toggle--m-split-button__toggle-check__input--TranslateY: -0.0625rem;\n --pf-c-dropdown__toggle--m-split-button__toggle-text--MarginLeft: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle--m-split-button--child--BorderRadius: var(--pf-global--BorderRadius--sm, 3px);\n --pf-c-dropdown__toggle--m-split-button--m-primary--child--BorderRadius: var(--pf-c-dropdown__toggle--m-split-button--child--BorderRadius);\n --pf-c-dropdown__toggle--m-split-button--m-primary--child--BackgroundColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle--m-split-button--m-primary--child--hover--BackgroundColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown__toggle--m-split-button--m-primary--child--focus--BackgroundColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown__toggle--m-split-button--m-primary--child--active--BackgroundColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown__toggle--m-split-button--m-primary--child--m-expanded--BackgroundColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown__toggle--m-split-button--m-primary--m-action--child--BorderLeftColor: var(--pf-global--primary-color--200, #004080);\n --pf-c-dropdown__toggle--m-split-button--m-primary--m-action--child--BorderLeftWidth: var(--pf-global--BorderWidth--sm, 1px);\n --pf-c-dropdown--m-expanded__toggle--m-secondary--m-split-button--child--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--Color: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--hover--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--focus--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--active--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderWidth--base: var(--pf-global--BorderWidth--sm, 1px);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderColor--base: var(--pf-global--primary-color--100, #06c);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderColor: var(--pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderColor--base);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderWidth: var(--pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderWidth--base);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--hover--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--focus--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--active--BorderWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-dropdown__toggle-icon--LineHeight: var(--pf-global--LineHeight--md, 1.5);\n --pf-c-dropdown__toggle-icon--MarginRight: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle-icon--MarginLeft: var(--pf-global--spacer--md, 1rem);\n --pf-c-dropdown--m-top--m-expanded__toggle-icon--Rotate: 180deg;\n --pf-c-dropdown--m-plain__toggle-icon--Color: var(--pf-global--Color--200, #6a6e73);\n --pf-c-dropdown--m-plain--hover__toggle-icon--Color: var(--pf-global--Color--100, #151515);\n --pf-c-dropdown__menu--BackgroundColor: var(--pf-global--BackgroundColor--light-100, #fff);\n --pf-c-dropdown__menu--BoxShadow: var(--pf-global--BoxShadow--md, 0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12), 0 0 0.25rem 0 rgba(3, 3, 3, 0.06));\n --pf-c-dropdown__menu--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__menu--PaddingBottom: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__menu--Top: calc(100% + var(--pf-global--spacer--xs, 0.25rem));\n --pf-c-dropdown__menu--ZIndex: var(--pf-global--ZIndex--sm, 200);\n --pf-c-dropdown--m-top__menu--Top: 0;\n --pf-c-dropdown--m-top__menu--TranslateY: calc(-100% - var(--pf-global--spacer--xs, 0.25rem));\n --pf-c-dropdown__menu-item--BackgroundColor: transparent;\n --pf-c-dropdown__menu-item--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__menu-item--PaddingRight: var(--pf-global--spacer--md, 1rem);\n --pf-c-dropdown__menu-item--PaddingBottom: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__menu-item--PaddingLeft: var(--pf-global--spacer--md, 1rem);\n --pf-c-dropdown__menu-item--FontSize: var(--pf-global--FontSize--md, 1rem);\n --pf-c-dropdown__menu-item--FontWeight: var(--pf-global--FontWeight--normal, 400);\n --pf-c-dropdown__menu-item--LineHeight: var(--pf-global--LineHeight--md, 1.5);\n --pf-c-dropdown__menu-item--Color: var(--pf-global--Color--dark-100, #151515);\n --pf-c-dropdown__menu-item--hover--Color: var(--pf-global--Color--dark-100, #151515);\n --pf-c-dropdown__menu-item--disabled--Color: var(--pf-global--Color--dark-200, #6a6e73);\n --pf-c-dropdown__menu-item--hover--BackgroundColor: var(--pf-global--BackgroundColor--light-300, #f0f0f0);\n --pf-c-dropdown__menu-item--disabled--BackgroundColor: transparent;\n --pf-c-dropdown__menu-item--m-text--Color: var(--pf-global--Color--dark-200, #6a6e73);\n --pf-c-dropdown__menu-item-icon--MarginRight: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__menu-item-icon--Width: var(--pf-global--icon--FontSize--lg, 1.5rem);\n --pf-c-dropdown__menu-item-icon--Height: var(--pf-global--icon--FontSize--lg, 1.5rem);\n --pf-c-dropdown__menu-item-description--FontSize: var(--pf-global--FontSize--xs, 0.75rem);\n --pf-c-dropdown__menu-item-description--Color: var(--pf-global--Color--dark-200, #6a6e73);\n --pf-c-dropdown__group--group--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__group-title--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__group-title--PaddingRight: var(--pf-c-dropdown__menu-item--PaddingRight);\n --pf-c-dropdown__group-title--PaddingBottom: var(--pf-c-dropdown__menu-item--PaddingBottom);\n --pf-c-dropdown__group-title--PaddingLeft: var(--pf-c-dropdown__menu-item--PaddingLeft);\n --pf-c-dropdown__group-title--FontSize: var(--pf-global--FontSize--xs, 0.75rem);\n --pf-c-dropdown__group-title--FontWeight: var(--pf-global--FontWeight--normal, 400);\n --pf-c-dropdown__group-title--Color: var(--pf-global--Color--dark-200, #6a6e73);\n --pf-c-dropdown__toggle-image--MarginTop: 0;\n --pf-c-dropdown__toggle-image--MarginBottom: 0;\n --pf-c-dropdown__toggle-image--MarginRight: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown--c-divider--MarginTop: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown--c-divider--MarginBottom: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-dropdown__toggle--c-badge__toggle-icon--MarginLeft: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-dropdown__toggle--c-badge__toggle-icon--MarginRight: 0;\n --pf-c-dropdown--c-menu--Top: calc(100% + var(--pf-global--spacer--xs, 0.25rem));\n --pf-c-dropdown--c-menu--ZIndex: var(--pf-global--ZIndex--sm, 200);\n --pf-c-dropdown--m-top--c-menu--Top: 0;\n --pf-c-dropdown--m-top--c-menu--TranslateY: calc(-100% - var(--pf-global--spacer--xs, 0.25rem));\n --pf-c-dropdown--m-full-height__toggle--before--BorderTopWidth: 0;\n --pf-c-dropdown--m-full-height__toggle--expanded--before--BorderBottomWidth: var(--pf-global--BorderWidth--xl, 4px);\n --pf-c-dropdown--m-full-height__toggle--hover--before--BorderBottomWidth: var(--pf-global--BorderWidth--xl, 4px);\n --pf-c-dropdown--m-full-height__toggle--active--before--BorderBottomWidth: var(--pf-global--BorderWidth--xl, 4px);\n --pf-c-dropdown--m-full-height__toggle--focus--before--BorderBottomWidth: var(--pf-global--BorderWidth--xl, 4px);\n --pf-c-dropdown--m-full-height__toggle--PaddingRight: var(--pf-global--spacer--lg, 1.5rem);\n --pf-c-dropdown--m-full-height__toggle--PaddingLeft: var(--pf-global--spacer--lg, 1.5rem);\n --_font-size: var(\n --pf-c-dropdown__menu-item--FontSize,\n var(--pf-global--FontSize--md, 1rem)\n );\n --_font-weight: var(\n --pf-c-dropdown__menu-item--FontWeight,\n var(--pf-global--FontWeight--normal, 400)\n );\n --_line-height: var(\n --pf-c-dropdown__menu-item--LineHeight,\n var(--pf-global--LineHeight--md, 1.5)\n );\n --_color: var(\n --pf-c-dropdown__menu-item--Color,\n var(--pf-global--Color--dark-100, #151515)\n );\n --_background-color: var(\n --pf-c-dropdown__menu-item--BackgroundColor,\n transparent\n );\n}\n\n:host([disabled]) {\n color: var(--pf-global--Color--dark-200, #6a6e73);\n}\n\n:host([hidden]),\n[hidden] {\n display: none !important;\n}\n\nslot[name="toggle"] {\n cursor: pointer;\n}\n\npf-button#default-toggle,\n::slotted([slot="toggle"]) {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-width: var(--pf-c-dropdown__toggle--MinWidth);\n max-width: 100%;\n padding:\n var(--pf-c-dropdown__toggle--PaddingTop)\n var(--pf-c-dropdown__toggle--PaddingRight)\n var(--pf-c-dropdown__toggle--PaddingBottom)\n var(--pf-c-dropdown__toggle--PaddingLeft);\n font-size: var(--pf-c-dropdown__toggle--FontSize);\n font-weight: var(--pf-c-dropdown__toggle--FontWeight);\n line-height: var(--pf-c-dropdown__toggle--LineHeight);\n color: var(--pf-c-dropdown__toggle--Color);\n background-color: var(--pf-c-dropdown__toggle--BackgroundColor);\n border: none;\n}\n\npf-dropdown-menu,\n::slotted(pf-dropdown-menu) {\n position: absolute !important;\n top: var(\n --pf-c-dropdown__menu--Top,\n calc(100% + var(--pf-global--spacer--xs, 0.25rem))\n ) !important;\n left: 0 !important;\n z-index: var(\n --pf-c-dropdown__menu--ZIndex,\n var(--pf-global--ZIndex--sm, 200)\n ) !important;\n padding-top: var(\n --pf-c-dropdown__menu--PaddingTop,\n var(--pf-global--spacer--sm, 0.5rem)\n ) !important;\n padding-bottom: var(\n --pf-c-dropdown__menu--PaddingBottom,\n var(--pf-global--spacer--sm, 0.5rem)\n ) !important;\n background: var(--pf-c-dropdown__menu--BackgroundColor, #fff) !important;\n background-clip: padding-box !important;\n box-shadow: var(\n --pf-c-dropdown__menu--BoxShadow,\n var(\n --pf-global--BoxShadow--md,\n 0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12),\n 0 0 0.25rem 0 rgba(3, 3, 3, 0.06)\n )\n ) !important;\n min-width: 100% !important;\n margin: 0 !important;\n}\n\npf-button svg {\n width: 1em;\n height: 1em;\n flex: 0 0 auto;\n margin-inline-start: 1em;\n}\n\n::slotted(hr) {\n margin: 0;\n border-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));\n border-style: solid;\n}\n\n::slotted([role="separator"]:not(hr)) {\n width: 100%;\n height: 1px;\n background-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));\n padding: 0px;\n margin: 0px;\n border: 0;\n display: block;\n}\n\n.disabled {\n & pf-dropdown-menu,\n & ::slotted(pf-dropdown-menu) {\n background-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;\n cursor: not-allowed !important;\n }\n & pf-button#default-toggle,\n & ::slotted([slot="toggle"]) {\n --pf-c-button--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--after--BorderColor: var(--pf-c-button--disabled--after--BorderColor);\n\n --pf-c-button--m-primary--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-primary--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n\n --pf-c-button--m-secondary--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-secondary--focus--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-secondary--hover--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-secondary--active--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-secondary--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-secondary--after--BorderColor: transparent;\n --pf-c-button--m-secondary--hover--after--BorderColor: transparent;\n --pf-c-button--m-secondary--focus--after--BorderColor: transparent;\n --pf-c-button--m-secondary--active--after--BorderColor: transparent;\n --pf-c-button--m-secondary--focus--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-secondary--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-secondary--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-secondary--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n\n --pf-c-button--m-control--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-control--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-control--focus--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-control--hover--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-control--active--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-control--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-control--after--BorderColor: transparent;\n --pf-c-button--m-control--hover--after--BorderColor: transparent;\n --pf-c-button--m-control--focus--after--BorderColor: transparent;\n --pf-c-button--m-control--active--after--BorderColor: transparent;\n --pf-c-button--m-control--focus--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-control--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-control--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-control--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-control--after--BorderBottomColor: transparent;\n --pf-c-button--m-control--focus--after--BorderBottomColor: transparent;\n --pf-c-button--m-control--hover--after--BorderBottomColor: transparent;\n --pf-c-button--m-control--active--after--BorderBottomColor: transparent;\n\n --pf-c-button--m-plain--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-plain--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-plain--focus--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-plain--hover--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-plain--active--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-plain--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-plain--after--BorderColor: transparent;\n --pf-c-button--m-plain--hover--after--BorderColor: transparent;\n --pf-c-button--m-plain--focus--after--BorderColor: transparent;\n --pf-c-button--m-plain--active--after--BorderColor: transparent;\n --pf-c-button--m-plain--focus--Color: var(--pf-c-button--disabled--Color);\n --pf-c-button--m-plain--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-plain--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n --pf-c-button--m-plain--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);\n }\n\n & pf-button:focus,\n & ::slotted([slot="toggle"]:focus) {\n outline: 3px solid var(--pf-global--link--Color, #0066cc);\n }\n}\n\npf-button#default-toggle,\n::slotted(pf-button[variant="control"]) {\n --_button-icon-vertical-align: -0.25em;\n --_button-icon-padding-inline-start: var(--pf-c-dropdown__toggle--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n --_button-icon-padding-inline-end: var(-pf-c-dropdown__toggle--PaddingRight,\n var(--pf-global--spacer--sm, 0.5rem));\n}\n`;
18
+ const styles = css `:host {
19
+ display: inline-block;
20
+ position: relative;
21
+ --pf-c-dropdown__toggle--PaddingTop: var(--pf-global--spacer--form-element, 0.375rem);
22
+ --pf-c-dropdown__toggle--PaddingRight: var(--pf-global--spacer--sm, 0.5rem);
23
+ --pf-c-dropdown__toggle--PaddingBottom: var(--pf-global--spacer--form-element, 0.375rem);
24
+ --pf-c-dropdown__toggle--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);
25
+ --pf-c-dropdown__toggle--MinWidth: 0;
26
+ --pf-c-dropdown__toggle--FontSize: var(--pf-global--FontSize--md, 1rem);
27
+ --pf-c-dropdown__toggle--FontWeight: var(--pf-global--FontWeight--normal, 400);
28
+ --pf-c-dropdown__toggle--Color: var(--pf-global--Color--100, #151515);
29
+ --pf-c-dropdown__toggle--LineHeight: var(--pf-global--LineHeight--md, 1.5);
30
+ --pf-c-dropdown__toggle--BackgroundColor: transparent;
31
+ --pf-c-dropdown__toggle--before--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);
32
+ --pf-c-dropdown__toggle--before--BorderTopColor: var(--pf-global--BorderColor--300, #f0f0f0);
33
+ --pf-c-dropdown__toggle--before--BorderRightColor: var(--pf-global--BorderColor--300, #f0f0f0);
34
+ --pf-c-dropdown__toggle--before--BorderBottomColor: var(--pf-global--BorderColor--200, #8a8d90);
35
+ --pf-c-dropdown__toggle--before--BorderLeftColor: var(--pf-global--BorderColor--300, #f0f0f0);
36
+ --pf-c-dropdown__toggle--hover--before--BorderBottomColor: var(--pf-global--active-color--100, #06c);
37
+ --pf-c-dropdown__toggle--focus--before--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);
38
+ --pf-c-dropdown__toggle--focus--before--BorderBottomColor: var(--pf-global--active-color--100, #06c);
39
+ --pf-c-dropdown__toggle--active--before--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);
40
+ --pf-c-dropdown__toggle--active--before--BorderBottomColor: var(--pf-global--active-color--100, #06c);
41
+ --pf-c-dropdown--m-expanded__toggle--before--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);
42
+ --pf-c-dropdown--m-expanded__toggle--before--BorderBottomColor: var(--pf-global--active-color--100, #06c);
43
+ --pf-c-dropdown__toggle--disabled--BackgroundColor: var(--pf-global--disabled-color--300, #f0f0f0);
44
+ --pf-c-dropdown__toggle--m-plain--Color: var(--pf-global--Color--200, #6a6e73);
45
+ --pf-c-dropdown__toggle--m-plain--hover--Color: var(--pf-global--Color--100, #151515);
46
+ --pf-c-dropdown__toggle--m-plain--disabled--Color: var(--pf-global--disabled-color--200, #d2d2d2);
47
+ --pf-c-dropdown__toggle--m-plain--PaddingRight: var(--pf-global--spacer--md, 1rem);
48
+ --pf-c-dropdown__toggle--m-plain--PaddingLeft: var(--pf-global--spacer--md, 1rem);
49
+ --pf-c-dropdown__toggle--m-plain--child--LineHeight: normal;
50
+ --pf-c-dropdown__toggle--m-primary--Color: var(--pf-global--Color--light-100, #fff);
51
+ --pf-c-dropdown__toggle--m-primary--BorderRadius: var(--pf-global--BorderRadius--sm, 3px);
52
+ --pf-c-dropdown__toggle--m-primary--BackgroundColor: var(--pf-global--primary-color--100, #06c);
53
+ --pf-c-dropdown__toggle--m-primary--hover--BackgroundColor: var(--pf-global--primary-color--200, #004080);
54
+ --pf-c-dropdown__toggle--m-primary--focus--BackgroundColor: var(--pf-global--primary-color--200, #004080);
55
+ --pf-c-dropdown__toggle--m-primary--active--BackgroundColor: var(--pf-global--primary-color--200, #004080);
56
+ --pf-c-dropdown--m-expanded__toggle--m-primary--BackgroundColor: var(--pf-global--primary-color--200, #004080);
57
+ --pf-c-dropdown__toggle--m-primary--disabled--Color: var(--pf-global--Color--100, #151515);
58
+ --pf-c-dropdown__toggle--m-secondary--Color: var(--pf-global--primary-color--100, #06c);
59
+ --pf-c-dropdown__toggle--m-secondary--BorderRadius: var(--pf-global--BorderRadius--sm, 3px);
60
+ --pf-c-dropdown__toggle--m-secondary--BackgroundColor: transparent;
61
+ --pf-c-dropdown__toggle--m-secondary--before--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);
62
+ --pf-c-dropdown__toggle--m-secondary--hover--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
63
+ --pf-c-dropdown__toggle--m-secondary--focus--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
64
+ --pf-c-dropdown__toggle--m-secondary--active--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
65
+ --pf-c-dropdown__toggle--m-secondary--before--BorderColor: var(--pf-global--primary-color--100, #06c);
66
+ --pf-c-dropdown__toggle--m-secondary--hover--before--BorderColor: var(--pf-global--primary-color--100, #06c);
67
+ --pf-c-dropdown__toggle--m-secondary--focus--before--BorderColor: var(--pf-global--primary-color--100, #06c);
68
+ --pf-c-dropdown__toggle--m-secondary--active--before--BorderColor: var(--pf-global--primary-color--100, #06c);
69
+ --pf-c-dropdown--m-expanded__toggle--m-secondary--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
70
+ --pf-c-dropdown--m-expanded__toggle--m-secondary--before--BorderColor: var(--pf-global--primary-color--100, #06c);
71
+ --pf-c-dropdown__toggle-button--Color: var(--pf-global--Color--100, #151515);
72
+ --pf-c-dropdown__toggle-progress--Visibility: hidden;
73
+ --pf-c-dropdown__toggle-progress--c-spinner--diameter: var(--pf-global--FontSize--sm, 0.875rem);
74
+ --pf-c-dropdown__toggle--m-split-button--child--PaddingTop: var(--pf-global--spacer--form-element, 0.375rem);
75
+ --pf-c-dropdown__toggle--m-split-button--child--PaddingRight: var(--pf-global--spacer--xs, 0.25rem);
76
+ --pf-c-dropdown__toggle--m-split-button--child--PaddingBottom: var(--pf-global--spacer--form-element, 0.375rem);
77
+ --pf-c-dropdown__toggle--m-split-button--child--PaddingLeft: var(--pf-global--spacer--xs, 0.25rem);
78
+ --pf-c-dropdown__toggle--m-split-button--child--BackgroundColor: transparent;
79
+ --pf-c-dropdown__toggle--m-split-button--first-child--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);
80
+ --pf-c-dropdown__toggle--m-split-button--last-child--PaddingRight: var(--pf-global--spacer--sm, 0.5rem);
81
+ --pf-c-dropdown__toggle--m-split-button--m-action--child--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);
82
+ --pf-c-dropdown__toggle--m-split-button--m-action--child--PaddingRight: var(--pf-global--spacer--sm, 0.5rem);
83
+ --pf-c-dropdown__toggle--m-split-button--m-action__toggle-button--MarginRight: calc(-1 * var(--pf-global--BorderWidth--sm, 1px));
84
+ --pf-c-dropdown__toggle--m-split-button__toggle-check__input--TranslateY: -0.0625rem;
85
+ --pf-c-dropdown__toggle--m-split-button__toggle-text--MarginLeft: var(--pf-global--spacer--sm, 0.5rem);
86
+ --pf-c-dropdown__toggle--m-split-button--child--BorderRadius: var(--pf-global--BorderRadius--sm, 3px);
87
+ --pf-c-dropdown__toggle--m-split-button--m-primary--child--BorderRadius: var(--pf-c-dropdown__toggle--m-split-button--child--BorderRadius);
88
+ --pf-c-dropdown__toggle--m-split-button--m-primary--child--BackgroundColor: var(--pf-global--primary-color--100, #06c);
89
+ --pf-c-dropdown__toggle--m-split-button--m-primary--child--hover--BackgroundColor: var(--pf-global--primary-color--200, #004080);
90
+ --pf-c-dropdown__toggle--m-split-button--m-primary--child--focus--BackgroundColor: var(--pf-global--primary-color--200, #004080);
91
+ --pf-c-dropdown__toggle--m-split-button--m-primary--child--active--BackgroundColor: var(--pf-global--primary-color--200, #004080);
92
+ --pf-c-dropdown__toggle--m-split-button--m-primary--child--m-expanded--BackgroundColor: var(--pf-global--primary-color--200, #004080);
93
+ --pf-c-dropdown__toggle--m-split-button--m-primary--m-action--child--BorderLeftColor: var(--pf-global--primary-color--200, #004080);
94
+ --pf-c-dropdown__toggle--m-split-button--m-primary--m-action--child--BorderLeftWidth: var(--pf-global--BorderWidth--sm, 1px);
95
+ --pf-c-dropdown--m-expanded__toggle--m-secondary--m-split-button--child--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
96
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--Color: var(--pf-global--primary-color--100, #06c);
97
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--hover--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
98
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--focus--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
99
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--active--before--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
100
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderWidth--base: var(--pf-global--BorderWidth--sm, 1px);
101
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderColor--base: var(--pf-global--primary-color--100, #06c);
102
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderColor: var(--pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderColor--base);
103
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderWidth: var(--pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--BorderWidth--base);
104
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--hover--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
105
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--focus--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
106
+ --pf-c-dropdown__toggle--m-secondary--m-split-button--child--before--active--BorderWidth: var(--pf-global--BorderWidth--md, 2px);
107
+ --pf-c-dropdown__toggle-icon--LineHeight: var(--pf-global--LineHeight--md, 1.5);
108
+ --pf-c-dropdown__toggle-icon--MarginRight: var(--pf-global--spacer--sm, 0.5rem);
109
+ --pf-c-dropdown__toggle-icon--MarginLeft: var(--pf-global--spacer--md, 1rem);
110
+ --pf-c-dropdown--m-top--m-expanded__toggle-icon--Rotate: 180deg;
111
+ --pf-c-dropdown--m-plain__toggle-icon--Color: var(--pf-global--Color--200, #6a6e73);
112
+ --pf-c-dropdown--m-plain--hover__toggle-icon--Color: var(--pf-global--Color--100, #151515);
113
+ --pf-c-dropdown__menu--BackgroundColor: var(--pf-global--BackgroundColor--light-100, #fff);
114
+ /** Dropdown box shadow */
115
+ --pf-c-dropdown__menu--BoxShadow: var(--pf-global--BoxShadow--md, 0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12), 0 0 0.25rem 0 rgba(3, 3, 3, 0.06));
116
+ /** Dropdown top padding */
117
+ --pf-c-dropdown__menu--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);
118
+ --pf-c-dropdown__menu--PaddingBottom: var(--pf-global--spacer--sm, 0.5rem);
119
+ /** Dropdown top position */
120
+ --pf-c-dropdown__menu--Top: calc(100% + var(--pf-global--spacer--xs, 0.25rem));
121
+ /** Dropdown z-index */
122
+ --pf-c-dropdown__menu--ZIndex: var(--pf-global--ZIndex--sm, 200);
123
+ --pf-c-dropdown--m-top__menu--Top: 0;
124
+ --pf-c-dropdown--m-top__menu--TranslateY: calc(-100% - var(--pf-global--spacer--xs, 0.25rem));
125
+ --pf-c-dropdown__menu-item--BackgroundColor: transparent;
126
+ --pf-c-dropdown__menu-item--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);
127
+ /** Dropdown menu item right padding */
128
+ --pf-c-dropdown__menu-item--PaddingRight: var(--pf-global--spacer--md, 1rem);
129
+ --pf-c-dropdown__menu-item--PaddingBottom: var(--pf-global--spacer--sm, 0.5rem);
130
+ --pf-c-dropdown__menu-item--PaddingLeft: var(--pf-global--spacer--md, 1rem);
131
+ --pf-c-dropdown__menu-item--FontSize: var(--pf-global--FontSize--md, 1rem);
132
+ --pf-c-dropdown__menu-item--FontWeight: var(--pf-global--FontWeight--normal, 400);
133
+ --pf-c-dropdown__menu-item--LineHeight: var(--pf-global--LineHeight--md, 1.5);
134
+ --pf-c-dropdown__menu-item--Color: var(--pf-global--Color--dark-100, #151515);
135
+ --pf-c-dropdown__menu-item--hover--Color: var(--pf-global--Color--dark-100, #151515);
136
+ --pf-c-dropdown__menu-item--disabled--Color: var(--pf-global--Color--dark-200, #6a6e73);
137
+ --pf-c-dropdown__menu-item--hover--BackgroundColor: var(--pf-global--BackgroundColor--light-300, #f0f0f0);
138
+ --pf-c-dropdown__menu-item--disabled--BackgroundColor: transparent;
139
+ --pf-c-dropdown__menu-item--m-text--Color: var(--pf-global--Color--dark-200, #6a6e73);
140
+ --pf-c-dropdown__menu-item-icon--MarginRight: var(--pf-global--spacer--sm, 0.5rem);
141
+ --pf-c-dropdown__menu-item-icon--Width: var(--pf-global--icon--FontSize--lg, 1.5rem);
142
+ --pf-c-dropdown__menu-item-icon--Height: var(--pf-global--icon--FontSize--lg, 1.5rem);
143
+ --pf-c-dropdown__menu-item-description--FontSize: var(--pf-global--FontSize--xs, 0.75rem);
144
+ --pf-c-dropdown__menu-item-description--Color: var(--pf-global--Color--dark-200, #6a6e73);
145
+ --pf-c-dropdown__group--group--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);
146
+ --pf-c-dropdown__group-title--PaddingTop: var(--pf-global--spacer--sm, 0.5rem);
147
+ --pf-c-dropdown__group-title--PaddingRight: var(--pf-c-dropdown__menu-item--PaddingRight);
148
+ --pf-c-dropdown__group-title--PaddingBottom: var(--pf-c-dropdown__menu-item--PaddingBottom);
149
+ --pf-c-dropdown__group-title--PaddingLeft: var(--pf-c-dropdown__menu-item--PaddingLeft);
150
+ --pf-c-dropdown__group-title--FontSize: var(--pf-global--FontSize--xs, 0.75rem);
151
+ --pf-c-dropdown__group-title--FontWeight: var(--pf-global--FontWeight--normal, 400);
152
+ --pf-c-dropdown__group-title--Color: var(--pf-global--Color--dark-200, #6a6e73);
153
+ --pf-c-dropdown__toggle-image--MarginTop: 0;
154
+ --pf-c-dropdown__toggle-image--MarginBottom: 0;
155
+ --pf-c-dropdown__toggle-image--MarginRight: var(--pf-global--spacer--sm, 0.5rem);
156
+ --pf-c-dropdown--c-divider--MarginTop: var(--pf-global--spacer--sm, 0.5rem);
157
+ --pf-c-dropdown--c-divider--MarginBottom: var(--pf-global--spacer--sm, 0.5rem);
158
+ --pf-c-dropdown__toggle--c-badge__toggle-icon--MarginLeft: var(--pf-global--spacer--xs, 0.25rem);
159
+ --pf-c-dropdown__toggle--c-badge__toggle-icon--MarginRight: 0;
160
+ --pf-c-dropdown--c-menu--Top: calc(100% + var(--pf-global--spacer--xs, 0.25rem));
161
+ --pf-c-dropdown--c-menu--ZIndex: var(--pf-global--ZIndex--sm, 200);
162
+ --pf-c-dropdown--m-top--c-menu--Top: 0;
163
+ --pf-c-dropdown--m-top--c-menu--TranslateY: calc(-100% - var(--pf-global--spacer--xs, 0.25rem));
164
+ --pf-c-dropdown--m-full-height__toggle--before--BorderTopWidth: 0;
165
+ --pf-c-dropdown--m-full-height__toggle--expanded--before--BorderBottomWidth: var(--pf-global--BorderWidth--xl, 4px);
166
+ --pf-c-dropdown--m-full-height__toggle--hover--before--BorderBottomWidth: var(--pf-global--BorderWidth--xl, 4px);
167
+ --pf-c-dropdown--m-full-height__toggle--active--before--BorderBottomWidth: var(--pf-global--BorderWidth--xl, 4px);
168
+ --pf-c-dropdown--m-full-height__toggle--focus--before--BorderBottomWidth: var(--pf-global--BorderWidth--xl, 4px);
169
+ --pf-c-dropdown--m-full-height__toggle--PaddingRight: var(--pf-global--spacer--lg, 1.5rem);
170
+ --pf-c-dropdown--m-full-height__toggle--PaddingLeft: var(--pf-global--spacer--lg, 1.5rem);
171
+ --_font-size: var(
172
+ --pf-c-dropdown__menu-item--FontSize,
173
+ var(--pf-global--FontSize--md, 1rem)
174
+ );
175
+ --_font-weight: var(
176
+ --pf-c-dropdown__menu-item--FontWeight,
177
+ var(--pf-global--FontWeight--normal, 400)
178
+ );
179
+ --_line-height: var(
180
+ --pf-c-dropdown__menu-item--LineHeight,
181
+ var(--pf-global--LineHeight--md, 1.5)
182
+ );
183
+ --_color: var(
184
+ --pf-c-dropdown__menu-item--Color,
185
+ var(--pf-global--Color--dark-100, #151515)
186
+ );
187
+ --_background-color: var(
188
+ --pf-c-dropdown__menu-item--BackgroundColor,
189
+ transparent
190
+ );
191
+ }
192
+
193
+ :host([disabled]) {
194
+ color: var(--pf-global--Color--dark-200, #6a6e73);
195
+ }
196
+
197
+ :host([hidden]),
198
+ [hidden] {
199
+ display: none !important;
200
+ }
201
+
202
+ slot[name="toggle"] {
203
+ cursor: pointer;
204
+ }
205
+
206
+ pf-button#default-toggle,
207
+ ::slotted([slot="toggle"]) {
208
+ position: relative;
209
+ display: flex;
210
+ align-items: center;
211
+ justify-content: space-between;
212
+ min-width: var(--pf-c-dropdown__toggle--MinWidth);
213
+ max-width: 100%;
214
+ padding:
215
+ var(--pf-c-dropdown__toggle--PaddingTop)
216
+ var(--pf-c-dropdown__toggle--PaddingRight)
217
+ var(--pf-c-dropdown__toggle--PaddingBottom)
218
+ var(--pf-c-dropdown__toggle--PaddingLeft);
219
+ font-size: var(--pf-c-dropdown__toggle--FontSize);
220
+ font-weight: var(--pf-c-dropdown__toggle--FontWeight);
221
+ line-height: var(--pf-c-dropdown__toggle--LineHeight);
222
+ color: var(--pf-c-dropdown__toggle--Color);
223
+ background-color: var(--pf-c-dropdown__toggle--BackgroundColor);
224
+ border: none;
225
+ }
226
+
227
+ pf-dropdown-menu,
228
+ ::slotted(pf-dropdown-menu) {
229
+ position: absolute !important;
230
+ top: var(
231
+ --pf-c-dropdown__menu--Top,
232
+ calc(100% + var(--pf-global--spacer--xs, 0.25rem))
233
+ ) !important;
234
+ left: 0 !important;
235
+ z-index: var(
236
+ --pf-c-dropdown__menu--ZIndex,
237
+ var(--pf-global--ZIndex--sm, 200)
238
+ ) !important;
239
+ padding-top: var(
240
+ --pf-c-dropdown__menu--PaddingTop,
241
+ var(--pf-global--spacer--sm, 0.5rem)
242
+ ) !important;
243
+ padding-bottom: var(
244
+ --pf-c-dropdown__menu--PaddingBottom,
245
+ var(--pf-global--spacer--sm, 0.5rem)
246
+ ) !important;
247
+ background: var(--pf-c-dropdown__menu--BackgroundColor, #fff) !important;
248
+ background-clip: padding-box !important;
249
+ box-shadow: var(
250
+ --pf-c-dropdown__menu--BoxShadow,
251
+ var(
252
+ --pf-global--BoxShadow--md,
253
+ 0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12),
254
+ 0 0 0.25rem 0 rgba(3, 3, 3, 0.06)
255
+ )
256
+ ) !important;
257
+ min-width: 100% !important;
258
+ margin: 0 !important;
259
+ }
260
+
261
+ pf-button svg {
262
+ width: 1em;
263
+ height: 1em;
264
+ flex: 0 0 auto;
265
+ margin-inline-start: 1em;
266
+ }
267
+
268
+ ::slotted(hr) {
269
+ margin: 0;
270
+ border-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));
271
+ border-style: solid;
272
+ }
273
+
274
+ ::slotted([role="separator"]:not(hr)) {
275
+ width: 100%;
276
+ height: 1px;
277
+ background-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));
278
+ padding: 0px;
279
+ margin: 0px;
280
+ border: 0;
281
+ display: block;
282
+ }
283
+
284
+ .disabled {
285
+ & pf-dropdown-menu,
286
+ & ::slotted(pf-dropdown-menu) {
287
+ background-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;
288
+ cursor: not-allowed !important;
289
+ }
290
+ & pf-button#default-toggle,
291
+ & ::slotted([slot="toggle"]) {
292
+ --pf-c-button--Color: var(--pf-c-button--disabled--Color);
293
+ --pf-c-button--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
294
+ --pf-c-button--after--BorderColor: var(--pf-c-button--disabled--after--BorderColor);
295
+
296
+ --pf-c-button--m-primary--Color: var(--pf-c-button--disabled--Color);
297
+ --pf-c-button--m-primary--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
298
+
299
+ --pf-c-button--m-secondary--Color: var(--pf-c-button--disabled--Color);
300
+ --pf-c-button--m-secondary--focus--Color: var(--pf-c-button--disabled--Color);
301
+ --pf-c-button--m-secondary--hover--Color: var(--pf-c-button--disabled--Color);
302
+ --pf-c-button--m-secondary--active--Color: var(--pf-c-button--disabled--Color);
303
+ --pf-c-button--m-secondary--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
304
+ --pf-c-button--m-secondary--after--BorderColor: transparent;
305
+ --pf-c-button--m-secondary--hover--after--BorderColor: transparent;
306
+ --pf-c-button--m-secondary--focus--after--BorderColor: transparent;
307
+ --pf-c-button--m-secondary--active--after--BorderColor: transparent;
308
+ --pf-c-button--m-secondary--focus--Color: var(--pf-c-button--disabled--Color);
309
+ --pf-c-button--m-secondary--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
310
+ --pf-c-button--m-secondary--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
311
+ --pf-c-button--m-secondary--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
312
+
313
+ --pf-c-button--m-control--Color: var(--pf-c-button--disabled--Color);
314
+ --pf-c-button--m-control--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
315
+ --pf-c-button--m-control--focus--Color: var(--pf-c-button--disabled--Color);
316
+ --pf-c-button--m-control--hover--Color: var(--pf-c-button--disabled--Color);
317
+ --pf-c-button--m-control--active--Color: var(--pf-c-button--disabled--Color);
318
+ --pf-c-button--m-control--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
319
+ --pf-c-button--m-control--after--BorderColor: transparent;
320
+ --pf-c-button--m-control--hover--after--BorderColor: transparent;
321
+ --pf-c-button--m-control--focus--after--BorderColor: transparent;
322
+ --pf-c-button--m-control--active--after--BorderColor: transparent;
323
+ --pf-c-button--m-control--focus--Color: var(--pf-c-button--disabled--Color);
324
+ --pf-c-button--m-control--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
325
+ --pf-c-button--m-control--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
326
+ --pf-c-button--m-control--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
327
+ --pf-c-button--m-control--after--BorderBottomColor: transparent;
328
+ --pf-c-button--m-control--focus--after--BorderBottomColor: transparent;
329
+ --pf-c-button--m-control--hover--after--BorderBottomColor: transparent;
330
+ --pf-c-button--m-control--active--after--BorderBottomColor: transparent;
331
+
332
+ --pf-c-button--m-plain--Color: var(--pf-c-button--disabled--Color);
333
+ --pf-c-button--m-plain--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
334
+ --pf-c-button--m-plain--focus--Color: var(--pf-c-button--disabled--Color);
335
+ --pf-c-button--m-plain--hover--Color: var(--pf-c-button--disabled--Color);
336
+ --pf-c-button--m-plain--active--Color: var(--pf-c-button--disabled--Color);
337
+ --pf-c-button--m-plain--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
338
+ --pf-c-button--m-plain--after--BorderColor: transparent;
339
+ --pf-c-button--m-plain--hover--after--BorderColor: transparent;
340
+ --pf-c-button--m-plain--focus--after--BorderColor: transparent;
341
+ --pf-c-button--m-plain--active--after--BorderColor: transparent;
342
+ --pf-c-button--m-plain--focus--Color: var(--pf-c-button--disabled--Color);
343
+ --pf-c-button--m-plain--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
344
+ --pf-c-button--m-plain--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
345
+ --pf-c-button--m-plain--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
346
+ }
347
+
348
+ & pf-button:focus,
349
+ & ::slotted([slot="toggle"]:focus) {
350
+ outline: 3px solid var(--pf-global--link--Color, #0066cc);
351
+ }
352
+ }
353
+
354
+ pf-button#default-toggle,
355
+ ::slotted(pf-button[variant="control"]) {
356
+ --_button-icon-vertical-align: -0.25em;
357
+ --_button-icon-padding-inline-start: var(--pf-c-dropdown__toggle--PaddingLeft,
358
+ var(--pf-global--spacer--md, 1rem));
359
+ --_button-icon-padding-inline-end: var(-pf-c-dropdown__toggle--PaddingRight,
360
+ var(--pf-global--spacer--sm, 0.5rem));
361
+ }
362
+ `;
19
363
  export class PfDropdownSelectEvent extends Event {
20
364
  constructor(originalEvent, value) {
21
365
  super('select', { bubbles: true, cancelable: true });
@@ -65,6 +409,7 @@ let PfDropdown = class PfDropdown extends LitElement {
65
409
  [alignment ?? '']: !!alignment })}"
66
410
  style="${styleMap(styles)}"
67
411
  @slotchange="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onSlotchange)}">
412
+ <!-- Custom toggle button -->
68
413
  <slot name="toggle"
69
414
  @keydown="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onButtonKeydown)}"
70
415
  @click="${() => this.toggle()}">
@@ -73,12 +418,15 @@ let PfDropdown = class PfDropdown extends LitElement {
73
418
  <pf-icon icon="caret-down" size="md"></pf-icon>
74
419
  </pf-button>
75
420
  </slot>
421
+ <!-- when using a custom toggle, you must slot a \`<pf-dropdown-menu>\` in alongside it -->
76
422
  <slot name="menu"
77
423
  ?hidden="${!this.expanded}"
78
424
  @focusout="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onMenuFocusout)}"
79
425
  @keydown="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onMenuKeydown)}"
80
426
  @click="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onSelect)}">
427
+ <!-- The dropdown menu wrapper -->
81
428
  <pf-dropdown-menu id="menu" part="menu" ?disabled="${disabled}">
429
+ <!-- Must contain one or more \`<pf-dropdown-item>\` or \`<pf-dropdown-group>\` -->
82
430
  <slot></slot>
83
431
  </pf-dropdown-menu>
84
432
  </slot>
@@ -214,7 +562,7 @@ PfDropdown.shadowRootOptions = {
214
562
  ...LitElement.shadowRootOptions,
215
563
  delegatesFocus: true,
216
564
  };
217
- PfDropdown.version = "4.0.2";
565
+ PfDropdown.version = "4.2.0";
218
566
  __decorate([
219
567
  property({ type: Boolean, reflect: true })
220
568
  ], PfDropdown.prototype, "disabled", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-dropdown.js","sourceRoot":"","sources":["pf-dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type PropertyValues, type TemplateResult } from 'lit';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport { provide } from '@lit/context';\n\nimport { FloatingDOMController } from '@patternfly/pfe-core/controllers/floating-dom-controller.js';\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\nimport { getRandomId } from '@patternfly/pfe-core/functions/random.js';\n\nimport { context, type PfDropdownContext } from './context.js';\nimport { PfDropdownItem } from './pf-dropdown-item.js';\nimport { PfDropdownMenu } from './pf-dropdown-menu.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\n\nimport styles from './pf-dropdown.css';\n\n\nexport class PfDropdownSelectEvent extends Event {\n constructor(\n public originalEvent: Event | KeyboardEvent,\n public value: string\n ) {\n super('select', { bubbles: true, cancelable: true });\n }\n}\n\n/**\n * A **dropdown** presents a menu of actions or links in a constrained space that\n * will trigger a process or navigate to a new location.\n * @slot - Must contain one or more `<pf-dropdown-item>` or `<pf-dropdown-group>`\n * @slot toggle - Custom toggle button\n * @slot menu - when using a custom toggle, you must slot a `<pf-dropdown-menu>` in alongside it\n * @csspart menu - The dropdown menu wrapper\n * @cssprop {<length>} [--pf-c-dropdown__menu--PaddingTop=0.5rem] Dropdown top padding\n * @cssprop {<length>} [--pf-c-tooltip__content--PaddingRight=0.5rem] Dropdown right padding\n * @cssprop {<length>} [--pf-c-dropdown__menu--ZIndex=200] Dropdown z-index\n * @cssprop [--pf-c-dropdown__menu--BoxShadow=0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12), 0 0 0.25rem 0 rgba(3, 3, 3, 0.06)] Dropdown box shadow\n * @cssprop {<length>} [--pf-c-dropdown__menu--Top=100% + 0.25rem] Dropdown top\n * @fires {PfDropdownSelectEvent} select - when a user select dropdown value\n * @fires open - when the dropdown toggles open\n * @fires close - when the dropdown toggles closed\n */\n@customElement('pf-dropdown')\nexport class PfDropdown extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * When disabled, the dropdown can still be toggled open and closed via keyboard, but menu items cannot be activated.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Whether the dropdown is expanded\n */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n @queryAssignedElements({ slot: 'toggle', flatten: true })\n private _toggleElements!: HTMLElement[];\n\n @queryAssignedElements({ slot: 'menu', flatten: true })\n private _menuElements!: HTMLElement[];\n\n @provide({ context }) private ctx: PfDropdownContext = { disabled: false };\n\n #logger = new Logger(this);\n\n #float = new FloatingDOMController(this, {\n content: () => this._menuElements?.at(0),\n });\n\n protected override async getUpdateComplete(): Promise<boolean> {\n const ps = await Promise.all([\n super.getUpdateComplete(),\n this._menuElements?.map(x => (x as LitElement).updateComplete),\n ]);\n return ps.every(x=>!!x);\n }\n\n willUpdate(changed: PropertyValues): void {\n if (changed.has('disabled')) {\n const { disabled } = this;\n this.ctx = { disabled };\n }\n }\n\n render(): TemplateResult<1> {\n const { expanded } = this;\n const { anchor, alignment, styles = {} } = this.#float;\n const { disabled } = this;\n return html`\n <div class=\"${classMap({ disabled,\n expanded,\n [anchor ?? '']: !!anchor,\n [alignment ?? '']: !!alignment })}\"\n style=\"${styleMap(styles)}\"\n @slotchange=\"${this.#onSlotchange}\">\n <slot name=\"toggle\"\n @keydown=\"${this.#onButtonKeydown}\"\n @click=\"${() => this.toggle()}\">\n <pf-button id=\"default-toggle\" variant=\"control\">\n Dropdown\n <pf-icon icon=\"caret-down\" size=\"md\"></pf-icon>\n </pf-button>\n </slot>\n <slot name=\"menu\"\n ?hidden=\"${!this.expanded}\"\n @focusout=\"${this.#onMenuFocusout}\"\n @keydown=\"${this.#onMenuKeydown}\"\n @click=\"${this.#onSelect}\">\n <pf-dropdown-menu id=\"menu\" part=\"menu\" ?disabled=\"${disabled}\">\n <slot></slot>\n </pf-dropdown-menu>\n </slot>\n </div>`;\n }\n\n override firstUpdated(): void {\n this.#onSlotchange();\n }\n\n updated(changed: PropertyValues<this>): void {\n if (changed.has('expanded')) {\n this.#expandedChanged();\n }\n if (changed.has('disabled')) {\n this.#disabledChanged();\n }\n }\n\n #validateDOM() {\n const [toggle] = this._toggleElements;\n const [menu] = this._menuElements;\n if (!toggle) {\n this.#logger.warn('no toggle found');\n return false;\n } else if (!menu) {\n this.#logger.warn('no menu found');\n return false;\n } else if (![toggle, menu].map(x => this.shadowRoot?.contains(x))\n .every((p, _, a) => p === a[0])) {\n this.#logger.warn('toggle and menu must be located in the same root');\n return false;\n } else {\n return true;\n }\n }\n\n #onSlotchange() {\n if (this.#validateDOM()) {\n const [menu] = this._menuElements;\n const [toggle] = this._toggleElements;\n menu.id ||= getRandomId('menu');\n toggle.setAttribute('aria-controls', menu.id);\n toggle.setAttribute('aria-haspopup', menu.id);\n toggle.setAttribute('aria-expanded', String(this.expanded) as 'true' | 'false');\n }\n }\n\n async #expandedChanged() {\n const will = this.expanded ? 'close' : 'open';\n const [menu] = this._menuElements;\n const [toggle] = this._toggleElements;\n toggle.setAttribute('aria-expanded', `${String(this.expanded) as 'true' | 'false'}`);\n this.dispatchEvent(new Event(will));\n if (this.expanded) {\n await this.#float.show();\n if (menu instanceof PfDropdownMenu) {\n menu.activeItem?.focus();\n }\n } else {\n await this.#float.hide();\n }\n }\n\n #disabledChanged() {\n if (this.#validateDOM()) {\n const [toggle] = this._toggleElements;\n toggle.setAttribute('aria-disabled', String(!!this.disabled));\n }\n }\n\n #onSelect(event: KeyboardEvent | Event & { target: PfDropdownItem }) {\n const [menu] = this._menuElements;\n if (menu instanceof PfDropdownMenu) {\n const target = event.target as PfDropdownItem || menu.activeItem;\n this.dispatchEvent(new PfDropdownSelectEvent(event, `${target?.value}`));\n this.hide();\n }\n }\n\n #onButtonKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown': {\n this.show();\n }\n }\n }\n\n #onMenuFocusout(event: FocusEvent) {\n if (this.expanded) {\n const root = this.getRootNode();\n const [menu] = this._menuElements;\n if (root instanceof ShadowRoot\n || root instanceof Document\n && event.relatedTarget instanceof PfDropdownItem\n && menu instanceof PfDropdownMenu\n && !menu.items.includes(event.relatedTarget)\n ) {\n this.hide();\n }\n }\n }\n\n #onMenuKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n this.#onSelect(event);\n break;\n case 'Escape':\n this.hide();\n this._toggleElements?.at(0)?.focus();\n }\n }\n\n /**\n * Opens the dropdown\n */\n async show(): Promise<void> {\n this.expanded = true;\n await this.updateComplete;\n }\n\n /**\n * Closes the dropdown\n */\n async hide(): Promise<void> {\n this.expanded = false;\n await this.updateComplete;\n }\n\n async toggle(): Promise<void> {\n this.expanded = !this.expanded;\n await this.updateComplete;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-dropdown': PfDropdown;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-dropdown.js","sourceRoot":"","sources":["pf-dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type PropertyValues, type TemplateResult } from 'lit';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport { provide } from '@lit/context';\n\nimport { FloatingDOMController } from '@patternfly/pfe-core/controllers/floating-dom-controller.js';\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\nimport { getRandomId } from '@patternfly/pfe-core/functions/random.js';\n\nimport { context, type PfDropdownContext } from './context.js';\nimport { PfDropdownItem } from './pf-dropdown-item.js';\nimport { PfDropdownMenu } from './pf-dropdown-menu.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\n\nimport styles from './pf-dropdown.css';\n\n\nexport class PfDropdownSelectEvent extends Event {\n constructor(\n public originalEvent: Event | KeyboardEvent,\n public value: string\n ) {\n super('select', { bubbles: true, cancelable: true });\n }\n}\n\n/**\n * A **dropdown** presents a menu of actions or links in a constrained space that\n * will trigger a process or navigate to a new location.\n * @alias Dropdown\n * @fires {PfDropdownSelectEvent} select - when a user select dropdown value\n * @fires open - when the dropdown toggles open\n * @fires close - when the dropdown toggles closed\n */\n@customElement('pf-dropdown')\nexport class PfDropdown extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * When disabled, the dropdown can still be toggled open and closed via keyboard, but menu items cannot be activated.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Whether the dropdown is expanded\n */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n @queryAssignedElements({ slot: 'toggle', flatten: true })\n private _toggleElements!: HTMLElement[];\n\n @queryAssignedElements({ slot: 'menu', flatten: true })\n private _menuElements!: HTMLElement[];\n\n @provide({ context }) private ctx: PfDropdownContext = { disabled: false };\n\n #logger = new Logger(this);\n\n #float = new FloatingDOMController(this, {\n content: () => this._menuElements?.at(0),\n });\n\n protected override async getUpdateComplete(): Promise<boolean> {\n const ps = await Promise.all([\n super.getUpdateComplete(),\n this._menuElements?.map(x => (x as LitElement).updateComplete),\n ]);\n return ps.every(x=>!!x);\n }\n\n willUpdate(changed: PropertyValues): void {\n if (changed.has('disabled')) {\n const { disabled } = this;\n this.ctx = { disabled };\n }\n }\n\n render(): TemplateResult<1> {\n const { expanded } = this;\n const { anchor, alignment, styles = {} } = this.#float;\n const { disabled } = this;\n return html`\n <div class=\"${classMap({ disabled,\n expanded,\n [anchor ?? '']: !!anchor,\n [alignment ?? '']: !!alignment })}\"\n style=\"${styleMap(styles)}\"\n @slotchange=\"${this.#onSlotchange}\">\n <!-- Custom toggle button -->\n <slot name=\"toggle\"\n @keydown=\"${this.#onButtonKeydown}\"\n @click=\"${() => this.toggle()}\">\n <pf-button id=\"default-toggle\" variant=\"control\">\n Dropdown\n <pf-icon icon=\"caret-down\" size=\"md\"></pf-icon>\n </pf-button>\n </slot>\n <!-- when using a custom toggle, you must slot a \\`<pf-dropdown-menu>\\` in alongside it -->\n <slot name=\"menu\"\n ?hidden=\"${!this.expanded}\"\n @focusout=\"${this.#onMenuFocusout}\"\n @keydown=\"${this.#onMenuKeydown}\"\n @click=\"${this.#onSelect}\">\n <!-- The dropdown menu wrapper -->\n <pf-dropdown-menu id=\"menu\" part=\"menu\" ?disabled=\"${disabled}\">\n <!-- Must contain one or more \\`<pf-dropdown-item>\\` or \\`<pf-dropdown-group>\\` -->\n <slot></slot>\n </pf-dropdown-menu>\n </slot>\n </div>`;\n }\n\n override firstUpdated(): void {\n this.#onSlotchange();\n }\n\n updated(changed: PropertyValues<this>): void {\n if (changed.has('expanded')) {\n this.#expandedChanged();\n }\n if (changed.has('disabled')) {\n this.#disabledChanged();\n }\n }\n\n #validateDOM() {\n const [toggle] = this._toggleElements;\n const [menu] = this._menuElements;\n if (!toggle) {\n this.#logger.warn('no toggle found');\n return false;\n } else if (!menu) {\n this.#logger.warn('no menu found');\n return false;\n } else if (![toggle, menu].map(x => this.shadowRoot?.contains(x))\n .every((p, _, a) => p === a[0])) {\n this.#logger.warn('toggle and menu must be located in the same root');\n return false;\n } else {\n return true;\n }\n }\n\n #onSlotchange() {\n if (this.#validateDOM()) {\n const [menu] = this._menuElements;\n const [toggle] = this._toggleElements;\n menu.id ||= getRandomId('menu');\n toggle.setAttribute('aria-controls', menu.id);\n toggle.setAttribute('aria-haspopup', menu.id);\n toggle.setAttribute('aria-expanded', String(this.expanded) as 'true' | 'false');\n }\n }\n\n async #expandedChanged() {\n const will = this.expanded ? 'close' : 'open';\n const [menu] = this._menuElements;\n const [toggle] = this._toggleElements;\n toggle.setAttribute('aria-expanded', `${String(this.expanded) as 'true' | 'false'}`);\n this.dispatchEvent(new Event(will));\n if (this.expanded) {\n await this.#float.show();\n if (menu instanceof PfDropdownMenu) {\n menu.activeItem?.focus();\n }\n } else {\n await this.#float.hide();\n }\n }\n\n #disabledChanged() {\n if (this.#validateDOM()) {\n const [toggle] = this._toggleElements;\n toggle.setAttribute('aria-disabled', String(!!this.disabled));\n }\n }\n\n #onSelect(event: KeyboardEvent | Event & { target: PfDropdownItem }) {\n const [menu] = this._menuElements;\n if (menu instanceof PfDropdownMenu) {\n const target = event.target as PfDropdownItem || menu.activeItem;\n this.dispatchEvent(new PfDropdownSelectEvent(event, `${target?.value}`));\n this.hide();\n }\n }\n\n #onButtonKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown': {\n this.show();\n }\n }\n }\n\n #onMenuFocusout(event: FocusEvent) {\n if (this.expanded) {\n const root = this.getRootNode();\n const [menu] = this._menuElements;\n if (root instanceof ShadowRoot\n || root instanceof Document\n && event.relatedTarget instanceof PfDropdownItem\n && menu instanceof PfDropdownMenu\n && !menu.items.includes(event.relatedTarget)\n ) {\n this.hide();\n }\n }\n }\n\n #onMenuKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n this.#onSelect(event);\n break;\n case 'Escape':\n this.hide();\n this._toggleElements?.at(0)?.focus();\n }\n }\n\n /**\n * Opens the dropdown\n */\n async show(): Promise<void> {\n this.expanded = true;\n await this.updateComplete;\n }\n\n /**\n * Closes the dropdown\n */\n async hide(): Promise<void> {\n this.expanded = false;\n await this.updateComplete;\n }\n\n async toggle(): Promise<void> {\n this.expanded = !this.expanded;\n await this.updateComplete;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-dropdown': PfDropdown;\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.0.2";
230
+ PfIcon.version = "4.2.0";
191
231
  __decorate([
192
232
  property()
193
233
  ], PfIcon.prototype, "set", void 0);