@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
@@ -15,7 +15,358 @@ 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: var(
235
+ --pf-c-dropdown__menu--Left,
236
+ 0
237
+ ) !important;
238
+ right: var(
239
+ --pf-c-dropdown__menu--Right,
240
+ auto
241
+ ) !important;
242
+ z-index: var(
243
+ --pf-c-dropdown__menu--ZIndex,
244
+ var(--pf-global--ZIndex--sm, 200)
245
+ ) !important;
246
+ padding-top: var(
247
+ --pf-c-dropdown__menu--PaddingTop,
248
+ var(--pf-global--spacer--sm, 0.5rem)
249
+ ) !important;
250
+ padding-bottom: var(
251
+ --pf-c-dropdown__menu--PaddingBottom,
252
+ var(--pf-global--spacer--sm, 0.5rem)
253
+ ) !important;
254
+ background: var(--pf-c-dropdown__menu--BackgroundColor, #fff) !important;
255
+ background-clip: padding-box !important;
256
+ box-shadow: var(
257
+ --pf-c-dropdown__menu--BoxShadow,
258
+ var(
259
+ --pf-global--BoxShadow--md,
260
+ 0 0.25rem 0.5rem 0rem rgba(3, 3, 3, 0.12),
261
+ 0 0 0.25rem 0 rgba(3, 3, 3, 0.06)
262
+ )
263
+ ) !important;
264
+ min-width: 100% !important;
265
+ margin: 0 !important;
266
+ }
267
+
268
+ pf-button svg {
269
+ width: 1em;
270
+ height: 1em;
271
+ flex: 0 0 auto;
272
+ margin-inline-start: 1em;
273
+ }
274
+
275
+ ::slotted(hr) {
276
+ margin: 0;
277
+ border-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));
278
+ border-style: solid;
279
+ }
280
+
281
+ ::slotted([role="separator"]:not(hr)) {
282
+ width: 100%;
283
+ height: 1px;
284
+ background-color: var(--pf-c-divider--BackgroundColor, var(--pf-global--BorderColor--100, #d2d2d2));
285
+ padding: 0px;
286
+ margin: 0px;
287
+ border: 0;
288
+ display: block;
289
+ }
290
+
291
+ .disabled {
292
+ & pf-dropdown-menu,
293
+ & ::slotted(pf-dropdown-menu) {
294
+ background-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;
295
+ cursor: not-allowed !important;
296
+ }
297
+ & pf-button#default-toggle,
298
+ & ::slotted([slot="toggle"]) {
299
+ --pf-c-button--Color: var(--pf-c-button--disabled--Color);
300
+ --pf-c-button--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
301
+ --pf-c-button--after--BorderColor: var(--pf-c-button--disabled--after--BorderColor);
302
+
303
+ --pf-c-button--m-primary--Color: var(--pf-c-button--disabled--Color);
304
+ --pf-c-button--m-primary--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
305
+
306
+ --pf-c-button--m-secondary--Color: var(--pf-c-button--disabled--Color);
307
+ --pf-c-button--m-secondary--focus--Color: var(--pf-c-button--disabled--Color);
308
+ --pf-c-button--m-secondary--hover--Color: var(--pf-c-button--disabled--Color);
309
+ --pf-c-button--m-secondary--active--Color: var(--pf-c-button--disabled--Color);
310
+ --pf-c-button--m-secondary--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
311
+ --pf-c-button--m-secondary--after--BorderColor: transparent;
312
+ --pf-c-button--m-secondary--hover--after--BorderColor: transparent;
313
+ --pf-c-button--m-secondary--focus--after--BorderColor: transparent;
314
+ --pf-c-button--m-secondary--active--after--BorderColor: transparent;
315
+ --pf-c-button--m-secondary--focus--Color: var(--pf-c-button--disabled--Color);
316
+ --pf-c-button--m-secondary--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
317
+ --pf-c-button--m-secondary--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
318
+ --pf-c-button--m-secondary--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
319
+
320
+ --pf-c-button--m-control--Color: var(--pf-c-button--disabled--Color);
321
+ --pf-c-button--m-control--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
322
+ --pf-c-button--m-control--focus--Color: var(--pf-c-button--disabled--Color);
323
+ --pf-c-button--m-control--hover--Color: var(--pf-c-button--disabled--Color);
324
+ --pf-c-button--m-control--active--Color: var(--pf-c-button--disabled--Color);
325
+ --pf-c-button--m-control--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
326
+ --pf-c-button--m-control--after--BorderColor: transparent;
327
+ --pf-c-button--m-control--hover--after--BorderColor: transparent;
328
+ --pf-c-button--m-control--focus--after--BorderColor: transparent;
329
+ --pf-c-button--m-control--active--after--BorderColor: transparent;
330
+ --pf-c-button--m-control--focus--Color: var(--pf-c-button--disabled--Color);
331
+ --pf-c-button--m-control--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
332
+ --pf-c-button--m-control--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
333
+ --pf-c-button--m-control--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
334
+ --pf-c-button--m-control--after--BorderBottomColor: transparent;
335
+ --pf-c-button--m-control--focus--after--BorderBottomColor: transparent;
336
+ --pf-c-button--m-control--hover--after--BorderBottomColor: transparent;
337
+ --pf-c-button--m-control--active--after--BorderBottomColor: transparent;
338
+
339
+ --pf-c-button--m-plain--Color: var(--pf-c-button--disabled--Color);
340
+ --pf-c-button--m-plain--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
341
+ --pf-c-button--m-plain--focus--Color: var(--pf-c-button--disabled--Color);
342
+ --pf-c-button--m-plain--hover--Color: var(--pf-c-button--disabled--Color);
343
+ --pf-c-button--m-plain--active--Color: var(--pf-c-button--disabled--Color);
344
+ --pf-c-button--m-plain--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
345
+ --pf-c-button--m-plain--after--BorderColor: transparent;
346
+ --pf-c-button--m-plain--hover--after--BorderColor: transparent;
347
+ --pf-c-button--m-plain--focus--after--BorderColor: transparent;
348
+ --pf-c-button--m-plain--active--after--BorderColor: transparent;
349
+ --pf-c-button--m-plain--focus--Color: var(--pf-c-button--disabled--Color);
350
+ --pf-c-button--m-plain--hover--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
351
+ --pf-c-button--m-plain--active--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
352
+ --pf-c-button--m-plain--focus--BackgroundColor: var(--pf-c-button--disabled--BackgroundColor);
353
+ }
354
+
355
+ & pf-button:focus,
356
+ & ::slotted([slot="toggle"]:focus) {
357
+ outline: 3px solid var(--pf-global--link--Color, #0066cc);
358
+ }
359
+ }
360
+
361
+ pf-button#default-toggle,
362
+ ::slotted(pf-button[variant="control"]) {
363
+ --_button-icon-vertical-align: -0.25em;
364
+ --_button-icon-padding-inline-start: var(--pf-c-dropdown__toggle--PaddingLeft,
365
+ var(--pf-global--spacer--md, 1rem));
366
+ --_button-icon-padding-inline-end: var(-pf-c-dropdown__toggle--PaddingRight,
367
+ var(--pf-global--spacer--sm, 0.5rem));
368
+ }
369
+ `;
19
370
  export class PfDropdownSelectEvent extends Event {
20
371
  constructor(originalEvent, value) {
21
372
  super('select', { bubbles: true, cancelable: true });
@@ -65,6 +416,7 @@ let PfDropdown = class PfDropdown extends LitElement {
65
416
  [alignment ?? '']: !!alignment })}"
66
417
  style="${styleMap(styles)}"
67
418
  @slotchange="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onSlotchange)}">
419
+ <!-- Custom toggle button -->
68
420
  <slot name="toggle"
69
421
  @keydown="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onButtonKeydown)}"
70
422
  @click="${() => this.toggle()}">
@@ -73,12 +425,15 @@ let PfDropdown = class PfDropdown extends LitElement {
73
425
  <pf-icon icon="caret-down" size="md"></pf-icon>
74
426
  </pf-button>
75
427
  </slot>
428
+ <!-- when using a custom toggle, you must slot a \`<pf-dropdown-menu>\` in alongside it -->
76
429
  <slot name="menu"
77
430
  ?hidden="${!this.expanded}"
78
431
  @focusout="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onMenuFocusout)}"
79
432
  @keydown="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onMenuKeydown)}"
80
433
  @click="${__classPrivateFieldGet(this, _PfDropdown_instances, "m", _PfDropdown_onSelect)}">
434
+ <!-- The dropdown menu wrapper -->
81
435
  <pf-dropdown-menu id="menu" part="menu" ?disabled="${disabled}">
436
+ <!-- Must contain one or more \`<pf-dropdown-item>\` or \`<pf-dropdown-group>\` -->
82
437
  <slot></slot>
83
438
  </pf-dropdown-menu>
84
439
  </slot>
@@ -214,7 +569,7 @@ PfDropdown.shadowRootOptions = {
214
569
  ...LitElement.shadowRootOptions,
215
570
  delegatesFocus: true,
216
571
  };
217
- PfDropdown.version = "4.1.0";
572
+ PfDropdown.version = "4.3.0";
218
573
  __decorate([
219
574
  property({ type: Boolean, reflect: true })
220
575
  ], 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"]}
@@ -0,0 +1,35 @@
1
+ :host {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--pf-c-helper-text--Gap, 0.25rem);
5
+ font-size: var(--pf-c-helper-text--FontSize, 0.875rem);
6
+ color: var(--pf-c-helper-text__item-text--Color, #151515);
7
+ line-height: 1.4;
8
+ }
9
+
10
+ /* Color variants */
11
+ :host([variant='indeterminate']) {
12
+ color: var(--pf-c-helper-text__item-text--m-indeterminate--Color, #6a6e73);
13
+ }
14
+
15
+ :host([variant='warning']) {
16
+ color: var(--pf-c-helper-text__item-text--m-warning--Color, #795600);
17
+ }
18
+
19
+ :host([variant='success']) {
20
+ color: var(--pf-c-helper-text__item-text--m-success--Color, #1e4f18);
21
+ }
22
+
23
+ :host([variant='error']) {
24
+ color: var(--pf-c-helper-text__item-text--m-error--Color, #a30000);
25
+ }
26
+
27
+ ::slotted(ul) {
28
+ margin: 0;
29
+ padding: 0;
30
+ list-style-type: none;
31
+ }
32
+
33
+ pf-icon {
34
+ fill: currentColor;
35
+ }
@@ -0,0 +1,41 @@
1
+ import { LitElement, type TemplateResult } from 'lit';
2
+ import '@patternfly/elements/pf-icon/pf-icon.js';
3
+ /**
4
+ * Displays contextual feedback for form fields with optional icon and status color.
5
+ *
6
+ * @slot icon - Optional custom icon to override the default icon.
7
+ * @slot - Default slot for the helper text content.
8
+ *
9
+ * @fires icon-load - Fired when the icon successfully loads.
10
+ * @fires icon-error - Fired if loading the icon fails.
11
+ *
12
+ * @csspart icon - The container for the icon.
13
+ * @csspart text - The container for the text.
14
+ */
15
+ export declare class PfHelperText extends LitElement {
16
+ #private;
17
+ static readonly styles: CSSStyleSheet[];
18
+ /**
19
+ * Defines the helper text status and its corresponding color and icon.
20
+ */
21
+ variant: 'default' | 'success' | 'warning' | 'error' | 'indeterminate';
22
+ /**
23
+ * Custom icon name to override the default icon.
24
+ * Requires `<pf-icon>` to be imported.
25
+ */
26
+ icon?: string;
27
+ /**
28
+ * Icon set for custom icons (e.g., 'fas', 'patternfly').
29
+ */
30
+ iconSet?: string;
31
+ /**
32
+ * Determine the effective icon to display.
33
+ */
34
+ private get _resolvedIcon();
35
+ protected render(): TemplateResult<1>;
36
+ }
37
+ declare global {
38
+ interface HTMLElementTagNameMap {
39
+ 'pf-helper-text': PfHelperText;
40
+ }
41
+ }