@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pf-search-input.spec.js","sourceRoot":"","sources":["pf-search-input.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { aTimeout, expect, html, nextFrame } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { PfSearchInput } from '../pf-search-input.js';\nimport { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { clickElementAtCenter, clickElementAtOffset } from '@patternfly/pfe-tools/test/utils.js';\n\nfunction press(key: string) {\n return async function() {\n await sendKeys({ press: key });\n };\n}\n\n// a11yShapshot does not surface the options\nfunction getVisibleOptionValues(element: PfSearchInput): string[] {\n return element.options.filter(x => !x.hidden).map(x => x.value);\n}\n\n// a11yShapshot does not surface the options\nfunction getActiveOption(element: PfSearchInput) {\n return element.options.find(x => x.active);\n}\n\n/**\n * NOTE because of the copy-to-shadow-root shtick in ActivedescendantController,\n * we can't just pick an option (from light dom);\n * @param element pf-select\n * @param index item index\n */\nasync function clickItemAtIndex(element: PfSearchInput, index: number) {\n const itemHeight = 44;\n await clickElementAtOffset(element, [\n 10,\n element.offsetHeight + (itemHeight * (index + 1)) - itemHeight / 2,\n ], {\n allowOutOfBounds: true,\n });\n}\n\n\ndescribe('<pf-search-input>', function() {\n describe('simply instantiating', function() {\n let element: PfSearchInput;\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-search-input')).to.be.an.instanceof(PfSearchInput);\n });\n\n it('should upgrade', async function() {\n element = await createFixture<PfSearchInput>(html`<pf-search-input></pf-search-input>`);\n const klass = customElements.get('pf-search-input');\n expect(element)\n .to.be.an.instanceOf(klass)\n .and\n .to.be.an.instanceOf(PfSearchInput);\n });\n });\n\n describe('with accessible-label attribute and 3 items', function() {\n let element: PfSearchInput;\n const updateComplete = () => element.updateComplete;\n\n beforeEach(async function() {\n element = await createFixture<PfSearchInput>(html`\n <pf-search-input accessible-label=\"label\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n </pf-search-input>`);\n });\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('labels the combobox with the accessible-label attribuet', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: 'label',\n });\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('sets aria-setsize=\"3\" and aria-posinset on items', function() {\n element.options.forEach((option, i) => {\n expect(option).to.have.attr('aria-setsize', '3');\n expect(option).to.have.attr('aria-posinset', `${i + 1}`);\n });\n });\n\n describe('focus()', function() {\n beforeEach(press('Tab'));\n beforeEach(updateComplete);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('labels the listbox with the accessible-label attribute', async function() {\n const snap = await a11ySnapshot();\n expect(snap).to.axContainQuery({\n role: 'listbox',\n name: 'label',\n });\n });\n\n it('focuses on the first item', async function() {\n expect(getActiveOption(element)).to.have.value('1');\n });\n });\n });\n });\n\n describe('with 3 items and associated <label> elements', function() {\n let element: PfSearchInput;\n const updateComplete = () => element.updateComplete;\n\n beforeEach(async function() {\n element = await createFixture<PfSearchInput>(html`\n <pf-search-input id=\"search\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n </pf-search-input>\n <label for=\"search\">label1</label>\n <label for=\"search\">label2</label>\n `);\n });\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('labels the combobox with the label elements', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: 'label1label2',\n });\n });\n\n it('sets aria-setsize=\"3\" and aria-posinset on items', function() {\n element.options.forEach((option, i) => {\n expect(option).to.have.attr('aria-setsize', '3');\n expect(option).to.have.attr('aria-posinset', `${i + 1}`);\n });\n });\n\n describe('focus()', function() {\n beforeEach(press('Tab'));\n beforeEach(updateComplete);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n it('labels the listbox with the label elements', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'listbox',\n name: 'label1label2',\n });\n });\n });\n });\n });\n\n describe('in a deep shadow root', function() {\n let element: PfSearchInput;\n const focus = () => element.focus();\n const updateComplete = () => element.updateComplete;\n beforeEach(async function() {\n const fixture = await createFixture(html`\n <shadow-root>\n <template shadowrootmode=\"open\">\n <shadow-root>\n <template shadowrootmode=\"open\">\n <pf-search-input\n accessible-label=\"Search\"\n placeholder=\"Search\">\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n <pf-option value=\"4\">4</pf-option>\n <pf-option value=\"5\">5</pf-option>\n <pf-option value=\"6\">6</pf-option>\n <pf-option value=\"7\">7</pf-option>\n <pf-option value=\"8\">8</pf-option>\n </pf-search-input>\n </template>\n </shadow-root>\n </template>\n </shadow-root>`);\n\n function attachShadowRoots(root?: Document | ShadowRoot) {\n root?.querySelectorAll<HTMLTemplateElement>('template[shadowrootmode]').forEach(template => {\n const mode = template.getAttribute('shadowrootmode') as 'open' | 'closed';\n const shadowRoot = template.parentElement?.attachShadow?.({ mode });\n shadowRoot?.appendChild(template.content);\n template.remove();\n attachShadowRoots(shadowRoot);\n });\n }\n attachShadowRoots(document);\n\n const select = fixture.shadowRoot?.firstElementChild?.shadowRoot?.querySelector('pf-search-input');\n if (select) {\n element = select;\n await element?.updateComplete;\n } else {\n throw new Error('no element!');\n }\n });\n\n describe('expanding', function() {\n beforeEach(focus);\n beforeEach(press('Enter'));\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n it('remains expanded', function() {\n expect(element.expanded).to.be.true;\n });\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('remains expanded', function() {\n expect(element.expanded).to.be.true;\n });\n });\n });\n });\n });\n\n describe('with 8 items', function() {\n let element: PfSearchInput;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n\n beforeEach(async function() {\n element = await createFixture<PfSearchInput>(html`\n <pf-search-input>\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n <pf-option value=\"4\">4</pf-option>\n <pf-option value=\"5\">5</pf-option>\n <pf-option value=\"6\">6</pf-option>\n <pf-option value=\"7\">7</pf-option>\n <pf-option value=\"8\">8</pf-option>\n </pf-search-input>`);\n });\n\n it('does not pass aXe audit', async function() {\n await expect(element).to.not.be.accessible();\n });\n\n it('sets aria-setsize and aria-posinset on items', function() {\n element.options.forEach((option, i) => {\n expect(option).to.have.attr('aria-setsize', '8');\n expect(option).to.have.attr('aria-posinset', `${i + 1}`);\n });\n });\n\n describe('click combobox button', function() {\n beforeEach(() => clickElementAtCenter(element));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('does not pass aXe audit', async function() {\n await expect(element).to.not.be.accessible();\n });\n\n it('expands the listbox', async function() {\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('does not focus the combobox button', async function() {\n expect(await a11ySnapshot()).to.not.have.axTreeFocusedNode;\n });\n });\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n\n it('focuses on the combobox button', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axRole('combobox');\n });\n\n it('does not expand the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n describe('Space', function() {\n beforeEach(function() {\n document.body.style.height = '8000px';\n });\n afterEach(function() {\n document.body.style.height = 'initial';\n });\n\n beforeEach(press(' '));\n beforeEach(updateComplete);\n\n it('does not scroll the screen', function() {\n expect(window.scrollY).to.equal(0);\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('expands the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses on option 2', async function() {\n expect(getActiveOption(element)).to.have.value('2');\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n it('focuses on option 1', async function() {\n expect(getActiveOption(element)).to.have.value('1');\n });\n });\n\n describe('ArrowDown', async function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n it('focuses on option 3', async function() {\n expect(getActiveOption(element)).to.have.value('3');\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('selects option 3', function() {\n expect(element.value).to.equal('3');\n });\n\n it('exposes selection to assistive technology', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n value: '3',\n });\n });\n\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n });\n });\n });\n\n describe('Escape', function() {\n beforeEach(press('Escape'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n\n it('hides the listbox', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('focuses the button', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axRole('combobox');\n });\n });\n });\n });\n });\n\n describe('with alphabetically sorted items', function() {\n let element: PfSearchInput;\n const label = 'label';\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n\n beforeEach(async function() {\n element = await createFixture<PfSearchInput>(html`\n <pf-search-input >\n <pf-option>Blue</pf-option>\n <pf-option>Green</pf-option>\n <pf-option>Magenta</pf-option>\n <pf-option>Orange</pf-option>\n <pf-option>Purple</pf-option>\n <pf-option>Periwinkle</pf-option>\n <pf-option>Pink</pf-option>\n <pf-option>Red</pf-option>\n <pf-option>Yellow</pf-option>\n </pf-search-input>`);\n });\n\n beforeEach(nextFrame);\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n describe('with an `accessible-label` attribute', function() {\n beforeEach(function() {\n element.setAttribute('accessible-label', label);\n });\n beforeEach(nextFrame);\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('does not have redundant role', async function() {\n expect(element.shadowRoot?.firstElementChild).to.not.contain('[role=\"button\"]');\n });\n\n it('labels the combobox with the label', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n name: label,\n });\n });\n\n describe('show()', function() {\n beforeEach(() => element.show());\n it('labels the listbox with the placeholder attribute', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'listbox',\n name: 'label',\n });\n });\n });\n });\n\n describe('clicking the combobox input', function() {\n beforeEach(async function() {\n await clickElementAtOffset(element, [10, 10]);\n });\n beforeEach(() => aTimeout(300));\n it('shows the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n it('focuses the combobox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainQuery({\n focused: true,\n role: 'combobox',\n });\n });\n\n describe('clicking option 1', function() {\n beforeEach(async function() {\n await clickItemAtIndex(element, 0);\n });\n\n it('selects option 1', function() {\n expect(element.value).to.equal('Blue');\n });\n\n it('closes the listbox', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n });\n\n describe('clicking option 2', function() {\n beforeEach(async function() {\n await clickItemAtIndex(element, 1);\n });\n\n it('selects option 1', function() {\n expect(element.value).to.equal('Green');\n });\n\n it('closes the listbox', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n });\n });\n\n describe('focus()', function() {\n beforeEach(press('Tab'));\n beforeEach(updateComplete);\n\n describe('\"r\"', function() {\n beforeEach(press('r'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('only shows options that start with \"r\" or \"R\"', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Red',\n ]);\n });\n });\n\n describe('Space', function() {\n beforeEach(function() {\n document.body.style.height = '8000px';\n });\n afterEach(function() {\n document.body.style.height = 'initial';\n });\n\n beforeEach(press(' '));\n beforeEach(updateComplete);\n beforeEach(() => aTimeout(300));\n\n it('does not expand the listbox', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('does not scroll the screen', function() {\n expect(window.scrollY).to.equal(0);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n beforeEach(() => aTimeout(200));\n\n it('shows the listbox', async function() {\n expect(element.expanded).to.be.true;\n expect(await a11ySnapshot()).to.axContainRole('listbox');\n });\n\n // Skipping the test case as the role is visible in the accessibility tree,\n // and since the pf-button uses ElementInternals, the test case is unable to access the role.\n it.skip('labels the close button with the label', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'button',\n name: 'close',\n });\n });\n\n it('focuses option 1', function() {\n expect(getActiveOption(element)).to.have.value('Blue');\n });\n\n it('does not move keyboard focus', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axRole('combobox');\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses option 2', function() {\n expect(getActiveOption(element)).to.have.text('Green');\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('selects option 2', function() {\n expect(element.value).to.equal('Green');\n });\n\n it('sets typeahead input to second option value', async function() {\n expect(await a11ySnapshot())\n .axTreeFocusedNode\n .to.have.axProperty('value', 'Green');\n });\n\n it('retains focus on combobox input', async function() {\n expect(await a11ySnapshot()).axTreeFocusedNode.to.have.axRole('combobox');\n });\n\n it('hides the listbox', async function() {\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('only shows option 2', function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Green',\n ]);\n });\n });\n });\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(updateComplete);\n\n it('focuses the last item', async function() {\n expect(getActiveOption(element)).to.have.value('Yellow');\n });\n });\n });\n\n describe('\"p\"', function() {\n beforeEach(press('p'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('shows the listbox and maintains focus', async function() {\n expect(await a11ySnapshot())\n .to.axContainRole('listbox')\n .and.axTreeFocusedNode\n .to.have.axRole('combobox')\n .and.to.have.axProperty('value', 'p');\n });\n\n it('only shows listbox items starting with the letter p', function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Purple',\n 'Periwinkle',\n 'Pink',\n ]);\n });\n\n describe('Backspace', function() {\n beforeEach(press('Backspace'));\n beforeEach(updateComplete);\n\n it('shows the listbox and maintains focus', async function() {\n expect(await a11ySnapshot())\n .to.axContainRole('listbox')\n .and.axTreeFocusedNode\n .to.have.axRole('combobox')\n .and.to.not.have.axProperty('value', 'p');\n });\n\n it('all options are visible', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Blue',\n 'Green',\n 'Magenta',\n 'Orange',\n 'Purple',\n 'Periwinkle',\n 'Pink',\n 'Red',\n 'Yellow',\n ]);\n });\n });\n\n describe('\"u\"', function() {\n beforeEach(press('u'));\n beforeEach(updateComplete);\n\n it('only shows the option \"Purple\"', function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Purple',\n ]);\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('focuses the option \"Purple\"', function() {\n expect(getActiveOption(element)).to.have.text('Purple');\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('selects the option \"Purple\"', function() {\n expect(element.value).to.equal('Purple');\n });\n\n describe('Backspace (x5)', function() {\n beforeEach(press('Backspace'));\n beforeEach(press('Backspace'));\n beforeEach(press('Backspace'));\n beforeEach(press('Backspace'));\n beforeEach(press('Backspace'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('shows the options starting with \"P\"', function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Purple',\n 'Periwinkle',\n 'Pink',\n ]);\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n\n it('retains focus on the option \"Purple\"', function() {\n expect(getActiveOption(element)).to.have.text('Purple');\n });\n\n it('moves cursor to start', function() {\n // WARNING: ties test to DOM structure\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.selectionStart).to.equal(0);\n });\n });\n describe('End', function() {\n beforeEach(press('End'));\n\n it('retains focus on the option \"Purple\"', function() {\n expect(getActiveOption(element)).to.have.text('Purple');\n });\n\n it('moves cursor to start', function() {\n // WARNING: ties test to DOM structure\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.selectionStart).to.equal(1);\n });\n });\n });\n });\n });\n });\n });\n });\n\n describe.skip('setting filter to \"*\"', function() {\n beforeEach(function() {\n // @ts-expect-error: todo: add filter feature\n element.filter = '*';\n });\n beforeEach(updateComplete);\n it('does not error', async function() {\n const snapshot = await a11ySnapshot();\n const [, , listbox] = snapshot.children ?? [];\n expect(listbox?.children).to.not.be.ok;\n });\n });\n\n describe.skip('custom filtering', function() {\n beforeEach(function() {\n // @ts-expect-error: we intend to implement this in the next release\n element.customFilter = option =>\n // @ts-expect-error: TODO add filter feature\n new RegExp(element.filter).test(option.value);\n });\n\n beforeEach(focus);\n\n beforeEach(updateComplete);\n\n describe('r', function() {\n beforeEach(press('r'));\n beforeEach(updateComplete);\n it('shows options that contain \"r\"', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Green',\n 'Orange',\n 'Purple',\n ]);\n });\n });\n\n describe('typing \"R\"', function() {\n beforeEach(press('R'));\n beforeEach(nextFrame);\n beforeEach(updateComplete);\n it('shows options that start with \"r\"', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n 'Red',\n ]);\n });\n });\n });\n });\n\n describe('with `disabled` attribute', function() {\n let element: PfSearchInput;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n\n beforeEach(async function() {\n element = await createFixture<PfSearchInput>(html`\n <pf-search-input id=\"disabled-search\" disabled>\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n </pf-search-input>\n <label for=\"disabled-search\">Disabled</label>`);\n await updateComplete();\n });\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('is marked as disabled in accessibility tree', async function() {\n expect(await a11ySnapshot()).to.axContainQuery({\n role: 'combobox',\n disabled: true,\n });\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(updateComplete);\n\n it('does not open on focus and keyboard interaction', async function() {\n // Should remain closed\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n });\n\n describe('\"1\" when input is disabled', function() {\n beforeEach(press('1'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('does not show any options', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('does not add any value to the input', async function() {\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.value).to.equal('');\n });\n });\n });\n\n describe('clicking the element', function() {\n beforeEach(async function() {\n await clickElementAtOffset(element, [10, 10]);\n });\n it('cannot be interacted with via click', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n });\n });\n\n describe('clicking the close button', function() {\n let element: PfSearchInput;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n\n beforeEach(async function() {\n element = await createFixture<PfSearchInput>(html`\n <pf-search-input id=\"disabled-search\" disabled>\n <pf-option value=\"1\">1</pf-option>\n <pf-option value=\"2\">2</pf-option>\n <pf-option value=\"3\">3</pf-option>\n </pf-search-input>\n <label for=\"disabled-search\">Disabled</label>`);\n await updateComplete();\n });\n\n it('passes aXe audit', async function() {\n await expect(element).to.be.accessible();\n });\n\n describe('clicking the close button when list box is open', function() {\n beforeEach(async function() {\n await clickElementAtOffset(element, [-10, 10]);\n });\n\n it('hides the listbox', async function() {\n expect(element.expanded).not.to.be.true;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('hides the close button', async function() {\n expect(await a11ySnapshot()).not.to.axContainQuery({\n name: 'close',\n role: 'button',\n });\n });\n\n it('removes the selected option value', async function() {\n expect(element.value).to.be.undefined;\n });\n\n it('clears the input value', async function() {\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.value).to.equal('');\n });\n });\n\n describe('clicking the close button when list box is closed and input has value', function() {\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n describe(' press \"z\"', function() {\n beforeEach(press('z'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('does not show any options', async function() {\n expect(element.expanded).to.be.false;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n });\n\n beforeEach(async function() {\n await clickElementAtOffset(element, [-10, 10]);\n });\n\n it('hides the listbox', async function() {\n expect(element.expanded).not.to.be.true;\n expect(await a11ySnapshot()).to.not.axContainRole('listbox');\n });\n\n it('hides the close button', async function() {\n expect(await a11ySnapshot()).not.to.axContainQuery({\n name: 'close',\n role: 'button',\n });\n });\n\n it('clears the input value', async function() {\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.value).to.equal('');\n });\n });\n });\n });\n\n describe('Outside click behavior', function() {\n let element: PfSearchInput;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n let outsideElement: HTMLElement;\n\n beforeEach(async function() {\n element = await createFixture<PfSearchInput>(html`\n <pf-search-input>\n <pf-option value=\"11\">11</pf-option>\n <pf-option value=\"12\">12</pf-option>\n <pf-option value=\"13\">13</pf-option>\n <pf-option value=\"21\">21</pf-option>\n <pf-option value=\"22\">22</pf-option>\n <pf-option value=\"23\">23</pf-option>\n </pf-search-input>\n `);\n\n // Create a dummy div to represent an \"outside\" area\n outsideElement = document.createElement('div');\n outsideElement.style.width = '200px';\n outsideElement.style.height = '200px';\n document.body.appendChild(outsideElement);\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(updateComplete);\n\n describe('\"1\"', function() {\n beforeEach(press('1'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('should open the listbox when focused', function() {\n expect(element.expanded).to.be.true;\n });\n\n it('only shows options that start with \"1\"', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n '11',\n '12',\n '13',\n ]);\n });\n\n describe('click outside the element', function() {\n // Click outside element\n beforeEach(() => clickElementAtCenter(outsideElement));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('should close the listbox when clicking outside', async function() {\n expect(element.expanded).to.be.false;\n });\n\n it('should keep the entered value after outside click', async function() {\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.value).to.equal('1');\n });\n });\n });\n });\n });\n\n describe('on focus-out behavior', function() {\n let element: PfSearchInput;\n const updateComplete = () => element.updateComplete;\n const focus = () => element.focus();\n\n beforeEach(async function() {\n element = await createFixture<PfSearchInput>(html`\n <pf-search-input>\n <pf-option value=\"11\">11</pf-option>\n <pf-option value=\"12\">12</pf-option>\n <pf-option value=\"13\">13</pf-option>\n <pf-option value=\"21\">21</pf-option>\n <pf-option value=\"22\">22</pf-option>\n <pf-option value=\"23\">23</pf-option>\n </pf-search-input>\n `);\n\n beforeEach(updateComplete);\n });\n\n describe('focus()', function() {\n beforeEach(focus);\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n describe('\"1\"', function() {\n beforeEach(press('1'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('should open the listbox when focused', function() {\n expect(element.expanded).to.be.true;\n });\n\n it('only shows options that start with \"1\"', async function() {\n expect(getVisibleOptionValues(element)).to.deep.equal([\n '11',\n '12',\n '13',\n ]);\n });\n\n describe('move the focus out of the element', function() {\n beforeEach(press('Tab'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n beforeEach(press('Tab'));\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n\n it('should close the listbox when focused out', async function() {\n expect(element.expanded).to.be.false;\n });\n\n it('should keep the entered value after focus out', async function() {\n const input = element.shadowRoot?.querySelector('input');\n expect(input?.value).to.equal('1');\n });\n });\n });\n });\n });\n\n describe('form submission with pf-search-input', function() {\n let form: HTMLFormElement;\n let searchInput: PfSearchInput;\n const updateComplete = () => searchInput.updateComplete;\n const focus = () => searchInput.focus();\n let submittedData: FormData | null;\n\n beforeEach(async function() {\n form = await createFixture<HTMLFormElement>(html`\n <form>\n <pf-search-input name=\"search\">\n <pf-option value=\"Alabama\">Alabama</pf-option>\n <pf-option value=\"New York\">New York</pf-option>\n <pf-option value=\"New Jersey\">New Jersey</pf-option>\n </pf-search-input>\n <button type=\"submit\">Submit</button>\n </form>\n `);\n\n searchInput = form.querySelector('pf-search-input')!;\n beforeEach(updateComplete);\n\n form.addEventListener('submit', e => {\n e.preventDefault();\n submittedData = new FormData(form);\n });\n });\n\n describe('when a user types and selects an option', function() {\n describe('focus', function() {\n beforeEach(focus);\n beforeEach(() => aTimeout(300));\n beforeEach(updateComplete);\n describe('press `New`', function() {\n beforeEach(updateComplete);\n beforeEach(() => aTimeout(300));\n beforeEach(press('N'));\n beforeEach(() => aTimeout(300));\n beforeEach(press('e'));\n beforeEach(() => aTimeout(300));\n beforeEach(press('w'));\n\n describe('select the first option starting with `New` and submit the form', function() {\n beforeEach(updateComplete);\n beforeEach(() => aTimeout(300));\n beforeEach(press('ArrowDown'));\n beforeEach(() => aTimeout(300));\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('should select the option', function() {\n expect(searchInput.value).to.equal('New York');\n });\n\n it('should close the dropdown after selection', function() {\n expect(searchInput.expanded).to.be.false;\n });\n\n it('should keep selected value in input after submission', function() {\n const input = searchInput.shadowRoot?.querySelector('input');\n expect(input?.value).to.equal('New York');\n });\n\n describe('on form submit event', function() {\n it('should submit the selected value from pf-search-input', async function() {\n const event = new SubmitEvent('submit', {\n bubbles: true,\n cancelable: true,\n });\n\n form.dispatchEvent(event);\n expect(event.defaultPrevented).to.be.true;\n\n expect(submittedData).to.not.be.null;\n expect(submittedData?.get('search')).to.equal('New York');\n });\n });\n\n describe('on submit button click', function() {\n it('should submit the selected value', async function() {\n form.querySelector('button')?.click();\n beforeEach(() => aTimeout(300));\n\n expect(submittedData).to.not.be.null;\n expect(submittedData?.get('search')).to.equal('New York');\n });\n });\n\n describe('form submit on clicking `enter` key', function() {\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('should submit the selected value', function() {\n expect(submittedData).to.not.be.null;\n expect(submittedData?.get('search')).to.equal('New York');\n });\n });\n });\n });\n });\n });\n });\n});\n"]}
@@ -6,7 +6,32 @@ import { customElement } from 'lit/decorators/custom-element.js';
6
6
  import { property } from 'lit/decorators/property.js';
7
7
  import { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';
8
8
  import { css } from "lit";
9
- const styles = css `:host {\n display: block;\n border-bottom: 1px solid var(--pf-global--BorderColor--100, #d2d2d2);\n}\n\n:host([disabled]) {\n pointer-events: none;\n cursor: not-allowed;\n color: var(--pf-global--Color--200, #6a6e73) !important;\n background-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;\n border-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;\n --_active-descendant-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;\n --_svg-color: var(--pf-global--Color--200, #6a6e73) !important;\n}\n\nslot {\n display: block;\n padding: var(--pf-global--spacer--md, 1rem) 0;\n}\n\nslot[name="label"] {\n font-size: var(--pf-global--FontSize--xs, 0.75rem);\n color: var(--pf-global--Color--dark-200, #6a6e73);\n padding: var(--pf-global--spacer--md, 1rem) var(--pf-global--spacer--md, 1rem) 0;\n}\n`;
9
+ const styles = css `:host {
10
+ display: block;
11
+ border-bottom: 1px solid var(--pf-global--BorderColor--100, #d2d2d2);
12
+ }
13
+
14
+ :host([disabled]) {
15
+ pointer-events: none;
16
+ cursor: not-allowed;
17
+ color: var(--pf-global--Color--200, #6a6e73) !important;
18
+ background-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;
19
+ border-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;
20
+ --_active-descendant-color: var(--pf-theme--color--surface--lighter, #f0f0f0) !important;
21
+ --_svg-color: var(--pf-global--Color--200, #6a6e73) !important;
22
+ }
23
+
24
+ slot {
25
+ display: block;
26
+ padding: var(--pf-global--spacer--md, 1rem) 0;
27
+ }
28
+
29
+ slot[name="label"] {
30
+ font-size: var(--pf-global--FontSize--xs, 0.75rem);
31
+ color: var(--pf-global--Color--dark-200, #6a6e73);
32
+ padding: var(--pf-global--spacer--md, 1rem) var(--pf-global--spacer--md, 1rem) 0;
33
+ }
34
+ `;
10
35
  let PfOptionGroup = class PfOptionGroup extends LitElement {
11
36
  constructor() {
12
37
  super(...arguments);
@@ -30,7 +55,7 @@ let PfOptionGroup = class PfOptionGroup extends LitElement {
30
55
  };
31
56
  _PfOptionGroup_internals = new WeakMap();
32
57
  PfOptionGroup.styles = [styles];
33
- PfOptionGroup.version = "4.0.2";
58
+ PfOptionGroup.version = "4.2.0";
34
59
  __decorate([
35
60
  property()
36
61
  ], PfOptionGroup.prototype, "label", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-option-group.js","sourceRoot":"","sources":["pf-option-group.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;AAUxF,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAML,gCAAgC;QACY,aAAQ,GAAG,KAAK,CAAC;QAE7D,eAAe;QACf,2DAA2D;QAC3D,mCAAa,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAC;;IAE7D,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAA;;;uBAGQ,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;6BAChB,IAAI,CAAC,KAAK;;qBAElB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;KACtC,CAAC;IACJ,CAAC;;;AAtBe,oBAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AAGvC;IAAX,QAAQ,EAAE;4CAAgB;AAGiB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAkB;AAPlD,aAAa;IADzB,aAAa,CAAC,iBAAiB,CAAC;GACpB,aAAa","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport styles from './pf-option-group.css';\n\n/**\n * Group of options within a listbox\n * @slot - `<pf-option>` or `<hr>` elements\n * @slot label - Group label. Overrides the `label` attribute.\n */\n@customElement('pf-option-group')\nexport class PfOptionGroup extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** Group description. Overridden by `label` slot. */\n @property() label?: string;\n\n /** whether group is disabled */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n // for the role\n // eslint-disable-next-line no-unused-private-class-members\n #internals = InternalsController.of(this, { role: 'group' });\n\n render(): TemplateResult<1> {\n const { disabled } = this;\n return html`\n <div id=\"label-container\"\n role=\"presentation\">\n <slot class=\"${classMap({ disabled })}\"\n name=\"label\">${this.label}</slot>\n </div>\n <slot class=\"${classMap({ disabled })}\"></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-option-group': PfOptionGroup;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-option-group.js","sourceRoot":"","sources":["pf-option-group.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUxF,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAML,gCAAgC;QACY,aAAQ,GAAG,KAAK,CAAC;QAE7D,eAAe;QACf,2DAA2D;QAC3D,mCAAa,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAC;;IAE7D,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAA;;;uBAGQ,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;6BAChB,IAAI,CAAC,KAAK;;qBAElB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;KACtC,CAAC;IACJ,CAAC;;;AAtBe,oBAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AAGvC;IAAX,QAAQ,EAAE;4CAAgB;AAGiB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAkB;AAPlD,aAAa;IADzB,aAAa,CAAC,iBAAiB,CAAC;GACpB,aAAa","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport styles from './pf-option-group.css';\n\n/**\n * Group of options within a listbox\n * @slot - `<pf-option>` or `<hr>` elements\n * @slot label - Group label. Overrides the `label` attribute.\n */\n@customElement('pf-option-group')\nexport class PfOptionGroup extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** Group description. Overridden by `label` slot. */\n @property() label?: string;\n\n /** whether group is disabled */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n // for the role\n // eslint-disable-next-line no-unused-private-class-members\n #internals = InternalsController.of(this, { role: 'group' });\n\n render(): TemplateResult<1> {\n const { disabled } = this;\n return html`\n <div id=\"label-container\"\n role=\"presentation\">\n <slot class=\"${classMap({ disabled })}\"\n name=\"label\">${this.label}</slot>\n </div>\n <slot class=\"${classMap({ disabled })}\"></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-option-group': PfOptionGroup;\n }\n}\n"]}
@@ -15,7 +15,7 @@
15
15
  :host(:focus) #outer,
16
16
  :host(:hover) #outer,
17
17
  #outer.selected {
18
- background-color: #e0e0e0;
18
+ background-color: var(--_pf-option-selected-background-color, var(--rh-color-gray-20, #e0e0e0));
19
19
  }
20
20
 
21
21
  #outer {
@@ -72,3 +72,11 @@ slot[name="description"] {
72
72
  margin-inline-end: 0.5em;
73
73
  }
74
74
 
75
+ :host([suggestion]) {
76
+ #outer.selected {
77
+ background-color: transparent;
78
+ }
79
+ svg {
80
+ display: none;
81
+ }
82
+ }
@@ -8,7 +8,88 @@ import { classMap } from 'lit/directives/class-map.js';
8
8
  import { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';
9
9
  import { observes } from '@patternfly/pfe-core/decorators/observes.js';
10
10
  import { css } from "lit";
11
- const styles = css `:host {\n display: block;\n}\n\n:host([hidden]),\n*[hidden] {\n display: none !important;\n}\n\n:host([disabled]) {\n pointer-events: none !important;\n cursor: not-allowed !important;\n}\n\n:host(:focus) #outer,\n:host(:hover) #outer,\n#outer.selected {\n background-color: #e0e0e0;\n}\n\n#outer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-start;\n padding: var(--pf-global--spacer--sm, 0.5rem) var(--pf-global--spacer--md, 1rem);\n min-height: calc(44px - 2 * var(--pf-global--spacer--sm, 0.5rem));\n min-width: calc(44px - 2 * var(--pf-global--spacer--md, 1rem));\n}\n\n#outer.active {\n background-color: var(--_active-descendant-color, var(--pf-theme--color--surface--lighter, #f0f0f0));\n}\n\n:host([disabled]) #outer {\n color: var(--pf-global--Color--dark-200, #6a6e73) !important;\n}\n\ninput[type="checkbox"] {\n margin-inline-end: 1em;\n display: var(--_pf-option-checkboxes-display, none);\n pointer-events: none;\n flex: 0 0 auto;\n}\n\nspan {\n flex: 1 1 auto;\n}\n\nsvg {\n font-size: var(--pf-c-select__menu-item-icon--FontSize, var(--pf-global--icon--FontSize--sm, 0.675rem));\n color: var(--_svg-color, var(--pf-theme--color--accent, #0066cc));\n width: 1em;\n height: 1em;\n margin-inline-start: 1em;\n text-align: right;\n flex: 0 0 auto;\n display: var(--_pf-option-svg-display, block);\n}\n\n#description {\n display: block;\n flex: 1 0 100%;\n}\n\nslot[name="description"] {\n font-size: var(--pf-global--FontSize--xs, 0.75rem);\n color: var(--pf-global--Color--dark-200, #6a6e73);\n}\n\n::slotted([slot="icon"]) {\n margin-inline-end: 0.5em;\n}\n\n`;
11
+ const styles = css `:host {
12
+ display: block;
13
+ }
14
+
15
+ :host([hidden]),
16
+ *[hidden] {
17
+ display: none !important;
18
+ }
19
+
20
+ :host([disabled]) {
21
+ pointer-events: none !important;
22
+ cursor: not-allowed !important;
23
+ }
24
+
25
+ :host(:focus) #outer,
26
+ :host(:hover) #outer,
27
+ #outer.selected {
28
+ background-color: var(--_pf-option-selected-background-color, var(--rh-color-gray-20, #e0e0e0));
29
+ }
30
+
31
+ #outer {
32
+ display: flex;
33
+ flex-wrap: wrap;
34
+ align-items: center;
35
+ justify-content: flex-start;
36
+ padding: var(--pf-global--spacer--sm, 0.5rem) var(--pf-global--spacer--md, 1rem);
37
+ min-height: calc(44px - 2 * var(--pf-global--spacer--sm, 0.5rem));
38
+ min-width: calc(44px - 2 * var(--pf-global--spacer--md, 1rem));
39
+ }
40
+
41
+ #outer.active {
42
+ background-color: var(--_active-descendant-color, var(--pf-theme--color--surface--lighter, #f0f0f0));
43
+ }
44
+
45
+ :host([disabled]) #outer {
46
+ color: var(--pf-global--Color--dark-200, #6a6e73) !important;
47
+ }
48
+
49
+ input[type="checkbox"] {
50
+ margin-inline-end: 1em;
51
+ display: var(--_pf-option-checkboxes-display, none);
52
+ pointer-events: none;
53
+ flex: 0 0 auto;
54
+ }
55
+
56
+ span {
57
+ flex: 1 1 auto;
58
+ }
59
+
60
+ svg {
61
+ font-size: var(--pf-c-select__menu-item-icon--FontSize, var(--pf-global--icon--FontSize--sm, 0.675rem));
62
+ color: var(--_svg-color, var(--pf-theme--color--accent, #0066cc));
63
+ width: 1em;
64
+ height: 1em;
65
+ margin-inline-start: 1em;
66
+ text-align: right;
67
+ flex: 0 0 auto;
68
+ display: var(--_pf-option-svg-display, block);
69
+ }
70
+
71
+ #description {
72
+ display: block;
73
+ flex: 1 0 100%;
74
+ }
75
+
76
+ slot[name="description"] {
77
+ font-size: var(--pf-global--FontSize--xs, 0.75rem);
78
+ color: var(--pf-global--Color--dark-200, #6a6e73);
79
+ }
80
+
81
+ ::slotted([slot="icon"]) {
82
+ margin-inline-end: 0.5em;
83
+ }
84
+
85
+ :host([suggestion]) {
86
+ #outer.selected {
87
+ background-color: transparent;
88
+ }
89
+ svg {
90
+ display: none;
91
+ }
92
+ }`;
12
93
  let PfOption = class PfOption extends LitElement {
13
94
  constructor() {
14
95
  super(...arguments);
@@ -101,7 +182,7 @@ let PfOption = class PfOption extends LitElement {
101
182
  _PfOption_value = new WeakMap();
102
183
  _PfOption_internals = new WeakMap();
103
184
  PfOption.styles = [styles];
104
- PfOption.version = "4.0.2";
185
+ PfOption.version = "4.2.0";
105
186
  __decorate([
106
187
  property({ type: Boolean, reflect: true })
107
188
  ], PfOption.prototype, "disabled", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-option.js","sourceRoot":"","sources":["pf-option.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { queryAssignedNodes } from 'lit/decorators/query-assigned-nodes.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport { observes } from '@patternfly/pfe-core/decorators/observes.js';\n\nimport styles from './pf-option.css';\n\n/**\n * Option within a listbox\n * @slot -\n * option text\n * @slot icon\n * optional icon\n * @slot description\n * optional description\n */\n@customElement('pf-option')\nexport class PfOption extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** whether option is disabled */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** form value for this option */\n @property({ reflect: true })\n get value() {\n return (this.#value ?? this.textContent ?? '').trim();\n }\n\n set value(v: string) {\n this.#value = v;\n }\n\n /** whether option is selected */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n /** whether option is active descendant */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Optional option description; overridden by description slot. */\n @property() description = '';\n\n @queryAssignedNodes({ slot: '', flatten: true })\n private _slottedText!: Node[];\n\n /**\n * this option's position relative to the other options\n */\n set posInSet(posInSet: number | null) {\n this.#internals.ariaPosInSet = `${Math.max(0, posInSet ?? 0)}`;\n }\n\n get posInSet() {\n const parsed = parseInt(this.#internals.ariaPosInSet ?? '0');\n return Number.isNaN(parsed) ? null : parsed;\n }\n\n /**\n * total number of options\n */\n set setSize(setSize: number | null) {\n this.#internals.ariaSetSize = `${Math.max(0, setSize ?? 0)}`;\n }\n\n get setSize() {\n try {\n const int = parseInt(this.#internals.ariaSetSize ?? '0');\n if (Number.isNaN(int)) {\n return 0;\n } else {\n return int;\n }\n } catch {\n return 0;\n }\n }\n\n #value?: string;\n\n #internals = InternalsController.of(this, { role: 'option' });\n\n render(): TemplateResult<1> {\n const { disabled, active, selected } = this;\n return html`\n <div id=\"outer\" class=\"${classMap({ active, disabled, selected })}\">\n <input type=\"checkbox\"\n inert\n role=\"presentation\"\n tabindex=\"-1\"\n ?checked=\"${this.selected}\"\n ?disabled=\"${this.disabled}\">\n <slot name=\"icon\"></slot>\n <span>\n <slot name=\"create\"></slot>\n <slot>${this.value}</slot>\n </span>\n <svg ?hidden=\"${!this.selected}\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"></path>\n </svg>\n <slot id=\"description\" name=\"description\">${this.description ?? ''}</slot>\n </div>\n `;\n }\n\n @observes('selected')\n private selectedChanged() {\n this.#internals.ariaSelected = String(!!this.selected);\n }\n\n @observes('disabled')\n private disabledChanged() {\n this.#internals.ariaDisabled = String(!!this.disabled);\n }\n\n /**\n * text content within option (used for filtering)\n */\n get optionText(): string {\n return this._slottedText.map(node => node.textContent).join('').trim();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-option': PfOption;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-option.js","sourceRoot":"","sources":["pf-option.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { queryAssignedNodes } from 'lit/decorators/query-assigned-nodes.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport { observes } from '@patternfly/pfe-core/decorators/observes.js';\n\nimport styles from './pf-option.css';\n\n/**\n * Option within a listbox\n * @slot -\n * option text\n * @slot icon\n * optional icon\n * @slot description\n * optional description\n */\n@customElement('pf-option')\nexport class PfOption extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** whether option is disabled */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** form value for this option */\n @property({ reflect: true })\n get value() {\n return (this.#value ?? this.textContent ?? '').trim();\n }\n\n set value(v: string) {\n this.#value = v;\n }\n\n /** whether option is selected */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n /** whether option is active descendant */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Optional option description; overridden by description slot. */\n @property() description = '';\n\n @queryAssignedNodes({ slot: '', flatten: true })\n private _slottedText!: Node[];\n\n /**\n * this option's position relative to the other options\n */\n set posInSet(posInSet: number | null) {\n this.#internals.ariaPosInSet = `${Math.max(0, posInSet ?? 0)}`;\n }\n\n get posInSet() {\n const parsed = parseInt(this.#internals.ariaPosInSet ?? '0');\n return Number.isNaN(parsed) ? null : parsed;\n }\n\n /**\n * total number of options\n */\n set setSize(setSize: number | null) {\n this.#internals.ariaSetSize = `${Math.max(0, setSize ?? 0)}`;\n }\n\n get setSize() {\n try {\n const int = parseInt(this.#internals.ariaSetSize ?? '0');\n if (Number.isNaN(int)) {\n return 0;\n } else {\n return int;\n }\n } catch {\n return 0;\n }\n }\n\n #value?: string;\n\n #internals = InternalsController.of(this, { role: 'option' });\n\n render(): TemplateResult<1> {\n const { disabled, active, selected } = this;\n return html`\n <div id=\"outer\" class=\"${classMap({ active, disabled, selected })}\">\n <input type=\"checkbox\"\n inert\n role=\"presentation\"\n tabindex=\"-1\"\n ?checked=\"${this.selected}\"\n ?disabled=\"${this.disabled}\">\n <slot name=\"icon\"></slot>\n <span>\n <slot name=\"create\"></slot>\n <slot>${this.value}</slot>\n </span>\n <svg ?hidden=\"${!this.selected}\"\n viewBox=\"0 0 512 512\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"></path>\n </svg>\n <slot id=\"description\" name=\"description\">${this.description ?? ''}</slot>\n </div>\n `;\n }\n\n @observes('selected')\n private selectedChanged() {\n this.#internals.ariaSelected = String(!!this.selected);\n }\n\n @observes('disabled')\n private disabledChanged() {\n this.#internals.ariaDisabled = String(!!this.disabled);\n }\n\n /**\n * text content within option (used for filtering)\n */\n get optionText(): string {\n return this._slottedText.map(node => node.textContent).join('').trim();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-option': PfOption;\n }\n}\n"]}