@uva-glass/component-library 3.56.0 → 3.57.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 (389) hide show
  1. package/dist/{Accordion-DaCqVof1.js → Accordion-DQNoRsg_.js} +2 -2
  2. package/dist/{Accordion-DaCqVof1.js.map → Accordion-DQNoRsg_.js.map} +1 -1
  3. package/dist/{AccordionCard-CD5H9gR1.js → AccordionCard-C4k8EI39.js} +2 -2
  4. package/dist/{AccordionCard-CD5H9gR1.js.map → AccordionCard-C4k8EI39.js.map} +1 -1
  5. package/dist/{ActionList-C0hD9noC.js → ActionList-D2GC2qPX.js} +2 -2
  6. package/dist/{ActionList-C0hD9noC.js.map → ActionList-D2GC2qPX.js.map} +1 -1
  7. package/dist/{AddCatalogueLinkForm-DNv2tEdF.js → AddCatalogueLinkForm-Di0xm7Ep.js} +5 -5
  8. package/dist/{AddCatalogueLinkForm-DNv2tEdF.js.map → AddCatalogueLinkForm-Di0xm7Ep.js.map} +1 -1
  9. package/dist/{AppStatusBar-BK0yaC4G.js → AppStatusBar-DW-w7Nzp.js} +2 -2
  10. package/dist/{AppStatusBar-BK0yaC4G.js.map → AppStatusBar-DW-w7Nzp.js.map} +1 -1
  11. package/dist/{ButtonGroup-ZqGGZ1rz.js → ButtonGroup-D2z5UWTR.js} +2 -2
  12. package/dist/{ButtonGroup-ZqGGZ1rz.js.map → ButtonGroup-D2z5UWTR.js.map} +1 -1
  13. package/dist/{Card-BH1ySOiP.js → Card-DENYj3eR.js} +3 -3
  14. package/dist/{Card-BH1ySOiP.js.map → Card-DENYj3eR.js.map} +1 -1
  15. package/dist/{CheckboxButtonBar-DpNnwLzI.js → CheckboxButtonBar-OrJSqUTN.js} +5 -5
  16. package/dist/{CheckboxButtonBar-DpNnwLzI.js.map → CheckboxButtonBar-OrJSqUTN.js.map} +1 -1
  17. package/dist/{Column-BwCVSZrG.js → Column-jJBZgP8m.js} +2 -2
  18. package/dist/{Column-BwCVSZrG.js.map → Column-jJBZgP8m.js.map} +1 -1
  19. package/dist/{Container-DK25h_-f.js → Container-DOcrVe7u.js} +2 -2
  20. package/dist/{Container-DK25h_-f.js.map → Container-DOcrVe7u.js.map} +1 -1
  21. package/dist/{ControlsButton-9uR_zW_F.js → ControlsButton-Byx4XQtB.js} +2 -2
  22. package/dist/{ControlsButton-9uR_zW_F.js.map → ControlsButton-Byx4XQtB.js.map} +1 -1
  23. package/dist/{CopyableText-hSqhyUWx.js → CopyableText-BKsM-TuS.js} +2 -2
  24. package/dist/{CopyableText-hSqhyUWx.js.map → CopyableText-BKsM-TuS.js.map} +1 -1
  25. package/dist/{DataTable-C46IkAmF.js → DataTable-Cgn_RKTA.js} +2 -2
  26. package/dist/{DataTable-C46IkAmF.js.map → DataTable-Cgn_RKTA.js.map} +1 -1
  27. package/dist/{Drawer-BbVJqFQI.js → Drawer-fUw0LEuj.js} +3 -3
  28. package/dist/{Drawer-BbVJqFQI.js.map → Drawer-fUw0LEuj.js.map} +1 -1
  29. package/dist/{EmptyStateDataDisplay-IT2P3ius.js → EmptyStateDataDisplay-FBDAGO88.js} +2 -2
  30. package/dist/{EmptyStateDataDisplay-IT2P3ius.js.map → EmptyStateDataDisplay-FBDAGO88.js.map} +1 -1
  31. package/dist/{ExpandableInfoPanel-DMfcJFP3.js → ExpandableInfoPanel-BmbgbAjf.js} +2 -2
  32. package/dist/{ExpandableInfoPanel-DMfcJFP3.js.map → ExpandableInfoPanel-BmbgbAjf.js.map} +1 -1
  33. package/dist/{FeedbackBar-DRbJVniP.js → FeedbackBar-DEDpoNy7.js} +3 -3
  34. package/dist/{FeedbackBar-DRbJVniP.js.map → FeedbackBar-DEDpoNy7.js.map} +1 -1
  35. package/dist/{FeedbackBox-CaSxB4uc.js → FeedbackBox-BpOf_dxg.js} +2 -2
  36. package/dist/{FeedbackBox-CaSxB4uc.js.map → FeedbackBox-BpOf_dxg.js.map} +1 -1
  37. package/dist/{Fieldset-D01_rj_p.js → Fieldset-CgnLyAyS.js} +2 -2
  38. package/dist/{Fieldset-D01_rj_p.js.map → Fieldset-CgnLyAyS.js.map} +1 -1
  39. package/dist/{FormField-CcV84TfI.js → FormField-ByjTkKKq.js} +2 -2
  40. package/dist/{FormField-CcV84TfI.js.map → FormField-ByjTkKKq.js.map} +1 -1
  41. package/dist/{IconButton-CSNMVEG1.js → IconButton-BZVNomru.js} +2 -2
  42. package/dist/{IconButton-CSNMVEG1.js.map → IconButton-BZVNomru.js.map} +1 -1
  43. package/dist/{InfoMessage-COywXu4O.js → InfoMessage-CCEg222m.js} +2 -2
  44. package/dist/{InfoMessage-COywXu4O.js.map → InfoMessage-CCEg222m.js.map} +1 -1
  45. package/dist/{Input-BzKvzbzP.js → Input-CF3dxqTC.js} +2 -2
  46. package/dist/{Input-BzKvzbzP.js.map → Input-CF3dxqTC.js.map} +1 -1
  47. package/dist/{InputField-T01uazlI.js → InputField-asFsxHvx.js} +2 -2
  48. package/dist/{InputField-T01uazlI.js.map → InputField-asFsxHvx.js.map} +1 -1
  49. package/dist/{Label-D0ACrYG3.js → Label-52ny6d06.js} +2 -2
  50. package/dist/{Label-D0ACrYG3.js.map → Label-52ny6d06.js.map} +1 -1
  51. package/dist/{Lexical.prod-8zZnpGo4.js → Lexical.prod-DApSVwEN.js} +2 -2
  52. package/dist/Lexical.prod-DApSVwEN.js.map +1 -0
  53. package/dist/{LexicalClipboard.prod-hbxbsROy.js → LexicalClipboard.prod--xxt8Vi4.js} +6 -6
  54. package/dist/LexicalClipboard.prod--xxt8Vi4.js.map +1 -0
  55. package/dist/{LexicalComposerContext.prod-y_BRxu3Z.js → LexicalComposerContext.prod-o3ynMZsi.js} +2 -2
  56. package/dist/LexicalComposerContext.prod-o3ynMZsi.js.map +1 -0
  57. package/dist/{LexicalExtension.prod-v8IpET5E.js → LexicalExtension.prod-efmFsltb.js} +4 -4
  58. package/dist/LexicalExtension.prod-efmFsltb.js.map +1 -0
  59. package/dist/{LexicalLink.prod-BVUv9-sZ.js → LexicalLink.prod-DCBvBDd1.js} +5 -5
  60. package/dist/LexicalLink.prod-DCBvBDd1.js.map +1 -0
  61. package/dist/{LexicalList.prod-CCPDDafy.js → LexicalList.prod-DA6gHLh6.js} +5 -5
  62. package/dist/LexicalList.prod-DA6gHLh6.js.map +1 -0
  63. package/dist/{LexicalTable.prod-D_9Dr3kL.js → LexicalTable.prod-Dw8vTvL0.js} +6 -6
  64. package/dist/LexicalTable.prod-Dw8vTvL0.js.map +1 -0
  65. package/dist/{LexicalUtils.prod-BWhWP8es.js → LexicalUtils.prod-DRNc5TMZ.js} +4 -4
  66. package/dist/LexicalUtils.prod-DRNc5TMZ.js.map +1 -0
  67. package/dist/{LinkContextMenu-CTu2nP2j.js → LinkContextMenu-Jna2w4Ob.js} +2 -2
  68. package/dist/{LinkContextMenu-CTu2nP2j.js.map → LinkContextMenu-Jna2w4Ob.js.map} +1 -1
  69. package/dist/{MenuLink-La_3ANEL.js → MenuLink-sK2_W2zs.js} +2 -2
  70. package/dist/{MenuLink-La_3ANEL.js.map → MenuLink-sK2_W2zs.js.map} +1 -1
  71. package/dist/{ModalDialog-J7xcPcnS.js → ModalDialog-4V70sxK_.js} +3 -3
  72. package/dist/{ModalDialog-J7xcPcnS.js.map → ModalDialog-4V70sxK_.js.map} +1 -1
  73. package/dist/{MultiSelectBox-BmBxa6PH.js → MultiSelectBox-D34qAgzc.js} +2 -2
  74. package/dist/{MultiSelectBox-BmBxa6PH.js.map → MultiSelectBox-D34qAgzc.js.map} +1 -1
  75. package/dist/{MultiSelectItem-6d8kQgFs.js → MultiSelectItem-hx3Y4Lmk.js} +2 -2
  76. package/dist/{MultiSelectItem-6d8kQgFs.js.map → MultiSelectItem-hx3Y4Lmk.js.map} +1 -1
  77. package/dist/{Notification-BAqCenxt.js → Notification-BhqWENfu.js} +2 -2
  78. package/dist/{Notification-BAqCenxt.js.map → Notification-BhqWENfu.js.map} +1 -1
  79. package/dist/{OverlayCloseButton-j-7mC4Zz.js → OverlayCloseButton-Dt6Yec8G.js} +2 -2
  80. package/dist/{OverlayCloseButton-j-7mC4Zz.js.map → OverlayCloseButton-Dt6Yec8G.js.map} +1 -1
  81. package/dist/{OverlayStepBar-Cj_-0waE.js → OverlayStepBar-BiC06Itd.js} +2 -2
  82. package/dist/{OverlayStepBar-Cj_-0waE.js.map → OverlayStepBar-BiC06Itd.js.map} +1 -1
  83. package/dist/{PageOverlay-DqwdG5ve.js → PageOverlay-BR9ypiar.js} +3 -3
  84. package/dist/{PageOverlay-DqwdG5ve.js.map → PageOverlay-BR9ypiar.js.map} +1 -1
  85. package/dist/{PasteHandlerPlugin-Bc6n-G35.js → PasteHandlerPlugin-IsbHaMUu.js} +6 -6
  86. package/dist/{PasteHandlerPlugin-Bc6n-G35.js.map → PasteHandlerPlugin-IsbHaMUu.js.map} +1 -1
  87. package/dist/{Periods-C5cxLlWt.js → Periods-B4ms3N24.js} +2 -2
  88. package/dist/{Periods-C5cxLlWt.js.map → Periods-B4ms3N24.js.map} +1 -1
  89. package/dist/{ProgrammeCard-CAAOSWKa.js → ProgrammeCard-DdCFNx0d.js} +2 -2
  90. package/dist/{ProgrammeCard-CAAOSWKa.js.map → ProgrammeCard-DdCFNx0d.js.map} +1 -1
  91. package/dist/{RadioButton-CKALsbBb.js → RadioButton-DmBpXwIS.js} +2 -2
  92. package/dist/{RadioButton-CKALsbBb.js.map → RadioButton-DmBpXwIS.js.map} +1 -1
  93. package/dist/{RadioGroup-DhnnBRJu.js → RadioGroup-DlQjMmpa.js} +3 -3
  94. package/dist/{RadioGroup-DhnnBRJu.js.map → RadioGroup-DlQjMmpa.js.map} +1 -1
  95. package/dist/{Repeater-Bnoqqz0X.js → Repeater-BAEfOMZI.js} +2 -2
  96. package/dist/{Repeater-Bnoqqz0X.js.map → Repeater-BAEfOMZI.js.map} +1 -1
  97. package/dist/{SectionNotification-BT0Z2edJ.js → SectionNotification-CN-NdGL8.js} +2 -2
  98. package/dist/{SectionNotification-BT0Z2edJ.js.map → SectionNotification-CN-NdGL8.js.map} +1 -1
  99. package/dist/{Slider-dCmT0VM2.js → Slider-Czd2xAGf.js} +2 -2
  100. package/dist/{Slider-dCmT0VM2.js.map → Slider-Czd2xAGf.js.map} +1 -1
  101. package/dist/{SortableProvider-DV6gWmq_.js → SortableProvider-D-6Ttz0h.js} +2 -2
  102. package/dist/{SortableProvider-DV6gWmq_.js.map → SortableProvider-D-6Ttz0h.js.map} +1 -1
  103. package/dist/{StatusBage-CfEIuIPa.js → StatusBage-hJmNPqtk.js} +2 -2
  104. package/dist/{StatusBage-CfEIuIPa.js.map → StatusBage-hJmNPqtk.js.map} +1 -1
  105. package/dist/{StatusPill-CbJV4t-V.js → StatusPill-vdqU92pW.js} +2 -2
  106. package/dist/{StatusPill-CbJV4t-V.js.map → StatusPill-vdqU92pW.js.map} +1 -1
  107. package/dist/{TableCellContextMenu-9V8mnPmU.js → TableCellContextMenu-Dm-UNfH8.js} +3 -3
  108. package/dist/{TableCellContextMenu-9V8mnPmU.js.map → TableCellContextMenu-Dm-UNfH8.js.map} +1 -1
  109. package/dist/{TableCellResizerPlugin-Djym940U.js → TableCellResizerPlugin-OgsG5jSq.js} +6 -6
  110. package/dist/TableCellResizerPlugin-OgsG5jSq.js.map +1 -0
  111. package/dist/{TextArea-GR2ZWwLh.js → TextArea-D_VoyGIO.js} +2 -2
  112. package/dist/{TextArea-GR2ZWwLh.js.map → TextArea-D_VoyGIO.js.map} +1 -1
  113. package/dist/{ToggleSwitch-b54K58vY.js → ToggleSwitch-ev4Jh4y-.js} +2 -2
  114. package/dist/{ToggleSwitch-b54K58vY.js.map → ToggleSwitch-ev4Jh4y-.js.map} +1 -1
  115. package/dist/{VarIndicator-DoMWwSUm.js → VarIndicator-D0cnlcIf.js} +2 -2
  116. package/dist/{VarIndicator-DoMWwSUm.js.map → VarIndicator-D0cnlcIf.js.map} +1 -1
  117. package/dist/{chunk-FON5IJBZ-BBb6rYhU.js → chunk-5WKL7XVT-3IraU-Ja.js} +19 -24
  118. package/dist/chunk-5WKL7XVT-3IraU-Ja.js.map +1 -0
  119. package/dist/{client-DJaPTT6C.js → client-BcEWjSJP.js} +2 -2
  120. package/dist/client-BcEWjSJP.js.map +1 -0
  121. package/dist/{clsx-BWCAbrjV.js → clsx-C67XSbzZ.js} +2 -2
  122. package/dist/clsx-C67XSbzZ.js.map +1 -0
  123. package/dist/components/Accordion/Accordion.js +1 -1
  124. package/dist/components/Accordion/Accordion.stories.js +2 -2
  125. package/dist/components/Accordion/Accordion.test.js +4 -4
  126. package/dist/components/Accordion/index.js +1 -1
  127. package/dist/components/AccordionCard/AccordionCard.js +1 -1
  128. package/dist/components/AccordionCard/AccordionCard.stories.js +2 -2
  129. package/dist/components/AccordionCard/AccordionCard.test.js +4 -4
  130. package/dist/components/AccordionCard/index.js +1 -1
  131. package/dist/components/ActionList/ActionList.js +1 -1
  132. package/dist/components/ActionList/ActionList.stories.js +1 -1
  133. package/dist/components/ActionList/ActionList.test.js +4 -4
  134. package/dist/components/ActionList/index.js +1 -1
  135. package/dist/components/AppStatusBar/AppStatusBar.js +1 -1
  136. package/dist/components/AppStatusBar/AppStatusBar.stories.js +1 -1
  137. package/dist/components/AppStatusBar/AppStatusBar.test.js +3 -3
  138. package/dist/components/AppStatusBar/index.js +1 -1
  139. package/dist/components/Attention/Attention.test.js +2 -2
  140. package/dist/components/Backdrop/Backdrop.stories.js +1 -1
  141. package/dist/components/Backdrop/Backdrop.test.js +2 -2
  142. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  143. package/dist/components/ButtonGroup/ButtonGroup.stories.js +2 -2
  144. package/dist/components/ButtonGroup/index.js +1 -1
  145. package/dist/components/Buttons/Button.js +1 -1
  146. package/dist/components/Buttons/Button.stories.js +1 -1
  147. package/dist/components/Buttons/Button.test.js +2 -2
  148. package/dist/components/Buttons/LinkButton.js +1 -1
  149. package/dist/components/Buttons/LinkButton.stories.js +1 -1
  150. package/dist/components/Buttons/LinkButton.test.js +2 -2
  151. package/dist/components/Buttons/MenuButton.js +1 -1
  152. package/dist/components/Buttons/MenuButton.stories.js +1 -1
  153. package/dist/components/Buttons/MenuButton.test.js +2 -2
  154. package/dist/components/Card/Card.js +1 -1
  155. package/dist/components/Card/Card.stories.js +1 -1
  156. package/dist/components/Card/Card.test.js +3 -3
  157. package/dist/components/Card/index.js +1 -1
  158. package/dist/components/Checkbox/Checkbox.stories.js +3 -3
  159. package/dist/components/Checkbox/Checkbox.test.js +3 -3
  160. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +1 -1
  161. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +3 -3
  162. package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +3 -3
  163. package/dist/components/CheckboxButtonBar/index.js +1 -1
  164. package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
  165. package/dist/components/CheckboxTree/CheckboxTree.stories.js +3 -3
  166. package/dist/components/CheckboxTree/index.js +1 -1
  167. package/dist/components/Chip/Chip.stories.js +1 -1
  168. package/dist/components/ControlsButton/ControlsButton.js +1 -1
  169. package/dist/components/ControlsButton/ControlsButton.stories.js +3 -3
  170. package/dist/components/ControlsButton/index.js +1 -1
  171. package/dist/components/CopyableText/CopyableText.js +1 -1
  172. package/dist/components/CopyableText/CopyableText.stories.js +1 -1
  173. package/dist/components/CopyableText/index.js +1 -1
  174. package/dist/components/DataTable/DataTable.js +1 -1
  175. package/dist/components/DataTable/DataTable.stories.js +1 -1
  176. package/dist/components/DataTable/index.js +1 -1
  177. package/dist/components/Drawer/Drawer.js +1 -1
  178. package/dist/components/Drawer/Drawer.stories.js +3 -3
  179. package/dist/components/Drawer/index.js +1 -1
  180. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.js +1 -1
  181. package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js +1 -1
  182. package/dist/components/EmptyStateDataDisplay/index.js +1 -1
  183. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.js +1 -1
  184. package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js +2 -2
  185. package/dist/components/ExpandableInfoPanel/index.js +1 -1
  186. package/dist/components/FeedbackBar/FeedbackBar.js +1 -1
  187. package/dist/components/FeedbackBar/FeedbackBar.stories.js +3 -3
  188. package/dist/components/FeedbackBar/FeedbackBar.test.js +3 -3
  189. package/dist/components/FeedbackBar/index.js +1 -1
  190. package/dist/components/FeedbackBox/FeedbackBox.js +1 -1
  191. package/dist/components/FeedbackBox/FeedbackBox.stories.js +3 -3
  192. package/dist/components/FeedbackBox/index.js +1 -1
  193. package/dist/components/Fieldset/Fieldset.js +1 -1
  194. package/dist/components/Fieldset/Fieldset.stories.js +5 -5
  195. package/dist/components/Fieldset/index.js +1 -1
  196. package/dist/components/FormField/FormField.js +1 -1
  197. package/dist/components/FormField/FormField.stories.js +4 -4
  198. package/dist/components/FormField/index.js +1 -1
  199. package/dist/components/FormInput/FormInput.js +1 -1
  200. package/dist/components/FormInput/FormInput.stories.js +2 -2
  201. package/dist/components/FormInput/index.js +1 -1
  202. package/dist/components/GridRow/Column/Column.js +1 -1
  203. package/dist/components/GridRow/Column/index.js +1 -1
  204. package/dist/components/GridRow/GridRow.js +2 -2
  205. package/dist/components/IconButton/IconButton.js +1 -1
  206. package/dist/components/IconButton/IconButton.stories.js +2 -2
  207. package/dist/components/IconButton/index.js +1 -1
  208. package/dist/components/InfoMessage/InfoMessage.js +1 -1
  209. package/dist/components/InfoMessage/InfoMessage.stories.js +1 -1
  210. package/dist/components/InfoMessage/index.js +1 -1
  211. package/dist/components/Input/Input.js +1 -1
  212. package/dist/components/Input/Input.stories.js +1 -1
  213. package/dist/components/Input/index.js +1 -1
  214. package/dist/components/InputField/InputField.js +1 -1
  215. package/dist/components/InputField/InputField.stories.js +3 -3
  216. package/dist/components/InputField/index.js +1 -1
  217. package/dist/components/Label/Label.js +1 -1
  218. package/dist/components/Label/Label.stories.js +1 -1
  219. package/dist/components/Label/Label.test.js +3 -3
  220. package/dist/components/Label/index.js +1 -1
  221. package/dist/components/MenuLink/MenuLink.js +1 -1
  222. package/dist/components/MenuLink/MenuLink.stories.js +1 -1
  223. package/dist/components/MenuLink/index.js +1 -1
  224. package/dist/components/MetaDataBar/MetaDataBar.test.js +1 -1
  225. package/dist/components/MetaDataList/MetaDataList.stories.js +1 -1
  226. package/dist/components/ModalDialog/ModalDialog.js +1 -1
  227. package/dist/components/ModalDialog/ModalDialog.stories.js +6 -6
  228. package/dist/components/ModalDialog/index.js +1 -1
  229. package/dist/components/MultiSelect/MultiSelect.js +1 -1
  230. package/dist/components/MultiSelect/MultiSelect.stories.js +3 -3
  231. package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
  232. package/dist/components/MultiSelect/components/MultiSelectItem.js +1 -1
  233. package/dist/components/MultiSelect/index.js +1 -1
  234. package/dist/components/MultiSelectBox/MultiSelectBox.js +1 -1
  235. package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +2 -2
  236. package/dist/components/MultiSelectBox/MultiSelectBox.test.js +3 -3
  237. package/dist/components/MultiSelectBox/index.js +1 -1
  238. package/dist/components/Notification/Notification.js +1 -1
  239. package/dist/components/Notification/Notification.stories.js +2 -2
  240. package/dist/components/Notification/Notification.test.js +3 -3
  241. package/dist/components/Notification/index.js +1 -1
  242. package/dist/components/OverlayCloseButton/OverlayCloseButton.js +1 -1
  243. package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +3 -3
  244. package/dist/components/OverlayCloseButton/index.js +1 -1
  245. package/dist/components/OverlayStepBar/OverlayStepBar.js +1 -1
  246. package/dist/components/OverlayStepBar/OverlayStepBar.stories.js +1 -1
  247. package/dist/components/OverlayStepBar/index.js +1 -1
  248. package/dist/components/PageOverlay/PageOverlay.js +1 -1
  249. package/dist/components/PageOverlay/PageOverlay.stories.js +6 -6
  250. package/dist/components/PageOverlay/PageOverlay.stories.js.map +1 -1
  251. package/dist/components/PageOverlay/index.js +1 -1
  252. package/dist/components/PeriodSelector/PeriodSelector.js +1 -1
  253. package/dist/components/PeriodSelector/PeriodSelector.stories.js +2 -2
  254. package/dist/components/PeriodSelector/index.js +1 -1
  255. package/dist/components/Periods/Periods.js +1 -1
  256. package/dist/components/Periods/Periods.stories.js +1 -1
  257. package/dist/components/Periods/index.js +1 -1
  258. package/dist/components/ProgrammeCard/ProgrammeCard.js +1 -1
  259. package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +3 -3
  260. package/dist/components/ProgrammeCard/index.js +1 -1
  261. package/dist/components/RadioButton/RadioButton.js +1 -1
  262. package/dist/components/RadioButton/RadioButton.stories.js +1 -1
  263. package/dist/components/RadioButton/index.js +1 -1
  264. package/dist/components/RadioGroup/RadioGroup.js +1 -1
  265. package/dist/components/RadioGroup/RadioGroup.stories.js +2 -2
  266. package/dist/components/RadioGroup/Radiogroup.test.js +3 -3
  267. package/dist/components/RadioGroup/index.js +1 -1
  268. package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
  269. package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +2 -2
  270. package/dist/components/RadioTabSelector/index.js +1 -1
  271. package/dist/components/Repeater/Repeater.js +1 -1
  272. package/dist/components/Repeater/Repeater.stories.js +2 -2
  273. package/dist/components/Repeater/index.js +1 -1
  274. package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
  275. package/dist/components/RteEditor/EditorHeader/index.js +1 -1
  276. package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +3 -3
  277. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +1 -1
  278. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +1 -1
  279. package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +5 -5
  280. package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +1 -1
  281. package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +1 -1
  282. package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
  283. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
  284. package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +1 -1
  285. package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
  286. package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +1 -1
  287. package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +5 -5
  288. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +1 -1
  289. package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +1 -1
  290. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +1 -1
  291. package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +1 -1
  292. package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
  293. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +1 -1
  294. package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/index.js +1 -1
  295. package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +1 -1
  296. package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +2 -2
  297. package/dist/components/RteEditor/Plugins/TablePlugin/index.js +2 -2
  298. package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +1 -1
  299. package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +1 -1
  300. package/dist/components/RteEditor/Plugins/index.js +4 -4
  301. package/dist/components/RteEditor/RteEditor.js +1 -1
  302. package/dist/components/RteEditor/RteEditor.stories.js +2 -2
  303. package/dist/components/RteEditor/helpers.js +4 -4
  304. package/dist/components/RteEditor/index.js +1 -1
  305. package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +3 -3
  306. package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +3 -3
  307. package/dist/components/SearchField/SearchField.js +1 -1
  308. package/dist/components/SectionNotification/SectionNotification.js +1 -1
  309. package/dist/components/SectionNotification/SectionNotification.stories.js +1 -1
  310. package/dist/components/SectionNotification/index.js +1 -1
  311. package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
  312. package/dist/components/SelectListbox/components/SelectButton.js +1 -1
  313. package/dist/components/SelectListbox/components/SelectOption.js +1 -1
  314. package/dist/components/Slider/Slider.js +1 -1
  315. package/dist/components/Slider/Slider.stories.js +1 -1
  316. package/dist/components/Slider/index.js +1 -1
  317. package/dist/components/Sortable/Sortable.js +1 -1
  318. package/dist/components/Sortable/Sortable.stories.js +2 -2
  319. package/dist/components/Sortable/SortableProvider.js +1 -1
  320. package/dist/components/Sortable/components/SortableContainer.js +1 -1
  321. package/dist/components/Sortable/components/SortableItem.js +2 -2
  322. package/dist/components/StatusBadge/StatusBadge.stories.js +1 -1
  323. package/dist/components/StatusBadge/StatusBadge.test.js +3 -3
  324. package/dist/components/StatusBadge/StatusBage.js +1 -1
  325. package/dist/components/StatusBadge/index.js +1 -1
  326. package/dist/components/StatusPill/StatusPill.js +1 -1
  327. package/dist/components/StatusPill/StatusPill.stories.js +2 -2
  328. package/dist/components/StatusPill/index.js +1 -1
  329. package/dist/components/TextArea/TextArea.js +1 -1
  330. package/dist/components/TextArea/TextArea.stories.js +2 -2
  331. package/dist/components/TextArea/TextArea.test.js +4 -4
  332. package/dist/components/TextArea/index.js +1 -1
  333. package/dist/components/ToggleSwitch/ToggleSwitch.js +1 -1
  334. package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +2 -2
  335. package/dist/components/ToggleSwitch/index.js +1 -1
  336. package/dist/components/Tooltip/Tooltip.stories.js +1 -1
  337. package/dist/components/VarIndicator/VarIndicator.js +1 -1
  338. package/dist/components/VarIndicator/VarIndicator.stories.js +2 -2
  339. package/dist/components/VarIndicator/VarIndicator.test.js +4 -4
  340. package/dist/components/VarIndicator/index.js +1 -1
  341. package/dist/components/WeekSelector/components/WeekSelectorOption.js +1 -1
  342. package/dist/components/index.js +42 -42
  343. package/dist/{components-D6_Sx8Hs.js → components-DHB1OMJ8.js} +38 -38
  344. package/dist/components-DHB1OMJ8.js.map +1 -0
  345. package/dist/{lib-Do6N-CJR.js → dist-C6Ar8a59.js} +2799 -714
  346. package/dist/dist-C6Ar8a59.js.map +1 -0
  347. package/dist/{esm-BJhEQquH.js → esm-B6Pg-v2v.js} +89 -89
  348. package/dist/esm-B6Pg-v2v.js.map +1 -0
  349. package/dist/{helpers-z8cqBNoz.js → helpers-C3IJbMVf.js} +4 -4
  350. package/dist/helpers-C3IJbMVf.js.map +1 -0
  351. package/dist/index.js +42 -42
  352. package/dist/{react-18-BAudFSEM.js → react-18-DbbN8Pdb.js} +3 -3
  353. package/dist/react-18-DbbN8Pdb.js.map +1 -0
  354. package/dist/react.esm-56DGmlLk.js +8884 -0
  355. package/dist/react.esm-56DGmlLk.js.map +1 -0
  356. package/dist/setupTests.js +6 -1196
  357. package/dist/setupTests.js.map +1 -1
  358. package/dist/storyComponents/Container/Container.js +1 -1
  359. package/dist/storyComponents/Container/index.js +1 -1
  360. package/dist/storybook__react.d.js +17 -17
  361. package/dist/storybook__react.d.js.map +1 -1
  362. package/dist/{test-Bd7kXF_B.js → test-WxLxsxwA.js} +56 -57
  363. package/dist/test-WxLxsxwA.js.map +1 -0
  364. package/dist/{test-utils-DcI4ZXle.js → test-utils-CMrZ33U0.js} +2 -2
  365. package/dist/test-utils-CMrZ33U0.js.map +1 -0
  366. package/package.json +30 -17
  367. package/dist/Lexical.prod-8zZnpGo4.js.map +0 -1
  368. package/dist/LexicalClipboard.prod-hbxbsROy.js.map +0 -1
  369. package/dist/LexicalComposerContext.prod-y_BRxu3Z.js.map +0 -1
  370. package/dist/LexicalExtension.prod-v8IpET5E.js.map +0 -1
  371. package/dist/LexicalLink.prod-BVUv9-sZ.js.map +0 -1
  372. package/dist/LexicalList.prod-CCPDDafy.js.map +0 -1
  373. package/dist/LexicalTable.prod-D_9Dr3kL.js.map +0 -1
  374. package/dist/LexicalUtils.prod-BWhWP8es.js.map +0 -1
  375. package/dist/TableCellResizerPlugin-Djym940U.js.map +0 -1
  376. package/dist/chunk-FON5IJBZ-BBb6rYhU.js.map +0 -1
  377. package/dist/client-DJaPTT6C.js.map +0 -1
  378. package/dist/clsx-BWCAbrjV.js.map +0 -1
  379. package/dist/components-D6_Sx8Hs.js.map +0 -1
  380. package/dist/dist-Dlg0QxSO.js +0 -2225
  381. package/dist/dist-Dlg0QxSO.js.map +0 -1
  382. package/dist/esm-BJhEQquH.js.map +0 -1
  383. package/dist/helpers-z8cqBNoz.js.map +0 -1
  384. package/dist/lib-Do6N-CJR.js.map +0 -1
  385. package/dist/react-18-BAudFSEM.js.map +0 -1
  386. package/dist/react.esm-GvSawg5E.js +0 -3297
  387. package/dist/react.esm-GvSawg5E.js.map +0 -1
  388. package/dist/test-Bd7kXF_B.js.map +0 -1
  389. package/dist/test-utils-DcI4ZXle.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"dist-Dlg0QxSO.js","names":["_typeof","_toPropertyKey","_defineProperty","_toPrimitive","_ref","ArrayFrom","SetLike","parse","elementRoles","pico","roles"],"sources":["../node_modules/min-indent/index.js","../node_modules/redent/node_modules/strip-indent/index.js","../node_modules/indent-string/index.js","../node_modules/redent/index.js","../node_modules/@adobe/css-tools/dist/esm/adobe-css-tools.mjs","../node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api/dist/polyfills/array.from.mjs","../node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api/dist/polyfills/SetLike.mjs","../node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api/dist/getRole.mjs","../node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api/dist/util.mjs","../node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api/dist/accessible-name-and-description.mjs","../node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api/dist/accessible-description.mjs","../node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api/dist/accessible-name.mjs","../node_modules/picocolors/picocolors.browser.js","../node_modules/css.escape/css.escape.js","../node_modules/@testing-library/jest-dom/dist/matchers-35e4d3bd.mjs","../node_modules/@testing-library/jest-dom/dist/index.mjs"],"sourcesContent":["'use strict';\nmodule.exports = string => {\n\tconst match = string.match(/^[ \\t]*(?=\\S)/gm);\n\n\tif (!match) {\n\t\treturn 0;\n\t}\n\n\treturn match.reduce((r, a) => Math.min(r, a.length), Infinity);\n};\n","'use strict';\nconst minIndent = require('min-indent');\n\nmodule.exports = string => {\n\tconst indent = minIndent(string);\n\n\tif (indent === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = new RegExp(`^[ \\\\t]{${indent}}`, 'gm');\n\n\treturn string.replace(regex, '');\n};\n","'use strict';\n\nmodule.exports = (string, count = 1, options) => {\n\toptions = {\n\t\tindent: ' ',\n\t\tincludeEmptyLines: false,\n\t\t...options\n\t};\n\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof string}\\``\n\t\t);\n\t}\n\n\tif (typeof count !== 'number') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof count}\\``\n\t\t);\n\t}\n\n\tif (typeof options.indent !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof options.indent}\\``\n\t\t);\n\t}\n\n\tif (count === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = options.includeEmptyLines ? /^/gm : /^(?!\\s*$)/gm;\n\n\treturn string.replace(regex, options.indent.repeat(count));\n};\n","'use strict';\nconst stripIndent = require('strip-indent');\nconst indentString = require('indent-string');\n\nmodule.exports = (string, count = 0, options) => indentString(stripIndent(string), count, options);\n","class t extends Error{reason;filename;line;column;source;constructor(t,i,e,s,n){super(`${t}:${e}:${s}: ${i}`),this.reason=i,this.filename=t,this.line=e,this.column=s,this.source=n}}class i{start;end;source;constructor(t,i,e){this.start=t,this.end=i,this.source=e}}var e;!function(t){t.stylesheet=\"stylesheet\",t.rule=\"rule\",t.declaration=\"declaration\",t.comment=\"comment\",t.atRule=\"at-rule\",t.container=\"container\",t.charset=\"charset\",t.counterStyle=\"counter-style\",t.document=\"document\",t.customMedia=\"custom-media\",t.fontFace=\"font-face\",t.fontFeatureValues=\"font-feature-values\",t.host=\"host\",t.import=\"import\",t.keyframes=\"keyframes\",t.keyframe=\"keyframe\",t.layer=\"layer\",t.media=\"media\",t.namespace=\"namespace\",t.page=\"page\",t.pageMarginBox=\"page-margin-box\",t.positionTry=\"position-try\",t.property=\"property\",t.scope=\"scope\",t.startingStyle=\"starting-style\",t.supports=\"supports\",t.viewTransition=\"view-transition\"}(e||(e={}));const s=(t,i,e)=>{let s=e,n=1e4;do{const e=i.map(i=>t.indexOf(i,s));e.push(t.indexOf(\"\\\\\",s));const r=e.filter(t=>-1!==t);if(0===r.length)return-1;const o=Math.min(...r);if(\"\\\\\"!==t[o])return o;s=o+2,n--}while(n>0);throw new Error(\"Too many escaping\")},n=(t,i,e)=>{let r=e,o=1e4;do{const e=i.map(i=>t.indexOf(i,r));e.push(t.indexOf(\"(\",r)),e.push(t.indexOf('\"',r)),e.push(t.indexOf(\"'\",r)),e.push(t.indexOf(\"\\\\\",r));const c=e.filter(t=>-1!==t);if(0===c.length)return-1;const h=Math.min(...c);switch(t[h]){case\"\\\\\":r=h+2;break;case\"(\":{const i=n(t,[\")\"],h+1);if(-1===i)return-1;r=i+1}break;case'\"':{const i=s(t,['\"'],h+1);if(-1===i)return-1;r=i+1}break;case\"'\":{const i=s(t,[\"'\"],h+1);if(-1===i)return-1;r=i+1}break;default:return h}o--}while(o>0);throw new Error(\"Too many escaping\")},r=/\\/\\*[^]*?(?:\\*\\/|$)/g;function o(t){return t?t.trim():\"\"}function c(t,i){const e=t&&\"string\"==typeof t.type,s=e?t:i;for(const i in t){const e=t[i];Array.isArray(e)?e.forEach(t=>{c(t,s)}):e&&\"object\"==typeof e&&c(e,s)}return e&&Object.defineProperty(t,\"parent\",{configurable:!0,writable:!0,enumerable:!1,value:i||null}),t}class h{level=0;indentation=\" \";compress=!1;constructor(t){\"string\"==typeof t?.indent&&(this.indentation=t?.indent),t?.compress&&(this.compress=!0)}emit(t,i){return t}indent(t){return this.level=this.level||1,t?(this.level+=t,\"\"):Array(this.level).join(this.indentation)}visit(t){switch(t.type){case e.stylesheet:return this.stylesheet(t);case e.rule:return this.rule(t);case e.declaration:return this.declaration(t);case e.comment:return this.comment(t);case e.container:return this.container(t);case e.charset:return this.charset(t);case e.counterStyle:return this.counterStyle(t);case e.document:return this.document(t);case e.customMedia:return this.customMedia(t);case e.fontFace:return this.fontFace(t);case e.fontFeatureValues:return this.fontFeatureValues(t);case e.host:return this.host(t);case e.import:return this.import(t);case e.keyframes:return this.keyframes(t);case e.keyframe:return this.keyframe(t);case e.layer:return this.layer(t);case e.media:return this.media(t);case e.namespace:return this.namespace(t);case e.page:return this.page(t);case e.pageMarginBox:return this.pageMarginBox(t);case e.positionTry:return this.positionTry(t);case e.property:return this.property(t);case e.scope:return this.scope(t);case e.startingStyle:return this.startingStyle(t);case e.supports:return this.supports(t);case e.viewTransition:return this.viewTransition(t);case e.atRule:return this.genericAtRule(t)}}mapVisit(t,i){let e=\"\";i=i||\"\";for(let s=0,n=t.length;s<n;s++)e+=this.visit(t[s]),i&&s<n-1&&(e+=this.emit(i));return e}compile(t){return this.compress?t.stylesheet.rules.map(this.visit,this).join(\"\"):this.stylesheet(t)}stylesheet(t){return this.mapVisit(t.stylesheet.rules,\"\\n\\n\")}comment(t){return this.compress?this.emit(\"\",t.position):this.emit(`${this.indent()}/*${t.comment}*/`,t.position)}container(t){return this.compress?this.emit(`@container ${t.container}`,t.position)+this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):this.emit(`${this.indent()}@container ${t.container}`,t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`\\n${this.indent(-1)}${this.indent()}}`)}layer(t){return this.compress?this.emit(`@layer ${t.layer}`,t.position)+(t.rules?this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):\";\"):this.emit(`${this.indent()}@layer ${t.layer}`,t.position)+(t.rules?this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`\\n${this.indent(-1)}${this.indent()}}`):\";\")}import(t){return this.emit(`@import ${t.import};`,t.position)}media(t){return this.compress?this.emit(`@media ${t.media}`,t.position)+this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):this.emit(`${this.indent()}@media ${t.media}`,t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`\\n${this.indent(-1)}${this.indent()}}`)}document(t){const i=`@${t.vendor||\"\"}document ${t.document}`;return this.compress?this.emit(i,t.position)+this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):this.emit(i,t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`${this.indent(-1)}\\n}`)}charset(t){return this.emit(`@charset ${t.charset};`,t.position)}namespace(t){return this.emit(`@namespace ${t.namespace};`,t.position)}startingStyle(t){return this.compress?this.emit(\"@starting-style\",t.position)+this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):this.emit(`${this.indent()}@starting-style`,t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`\\n${this.indent(-1)}${this.indent()}}`)}supports(t){return this.compress?this.emit(`@supports ${t.supports}`,t.position)+this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):this.emit(`${this.indent()}@supports ${t.supports}`,t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`\\n${this.indent(-1)}${this.indent()}}`)}keyframes(t){return this.compress?this.emit(`@${t.vendor||\"\"}keyframes ${t.name}`,t.position)+this.emit(\"{\")+this.mapVisit(t.keyframes)+this.emit(\"}\"):this.emit(`@${t.vendor||\"\"}keyframes ${t.name}`,t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.keyframes,\"\\n\")+this.emit(`${this.indent(-1)}}`)}keyframe(t){const i=t.declarations;return this.compress?this.emit(t.values.join(\",\"),t.position)+this.emit(\"{\")+this.mapVisit(i)+this.emit(\"}\"):this.emit(this.indent())+this.emit(t.values.join(\", \"),t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(i,\"\\n\")+this.emit(`${this.indent(-1)}\\n${this.indent()}}\\n`)}page(t){if(this.compress){const i=t.selectors.length?t.selectors.join(\", \"):\"\";return this.emit(`@page ${i}`,t.position)+this.emit(\"{\")+this.mapVisit(t.declarations)+this.emit(\"}\")}const i=t.selectors.length?`${t.selectors.join(\", \")} `:\"\";return this.emit(`@page ${i}`,t.position)+this.emit(\"{\\n\")+this.emit(this.indent(1))+this.mapVisit(t.declarations,\"\\n\")+this.emit(this.indent(-1))+this.emit(\"\\n}\")}pageMarginBox(t){return this.compress?this.emit(`@${t.name}`,t.position)+this.emit(\"{\")+this.mapVisit(t.declarations)+this.emit(\"}\"):this.emit(`${this.indent()}@${t.name} `,t.position)+this.emit(\"{\\n\")+this.emit(this.indent(1))+this.mapVisit(t.declarations,\"\\n\")+this.emit(this.indent(-1))+this.emit(`\\n${this.indent()}}`)}fontFace(t){return this.compress?this.emit(\"@font-face\",t.position)+this.emit(\"{\")+this.mapVisit(t.declarations)+this.emit(\"}\"):this.emit(\"@font-face \",t.position)+this.emit(\"{\\n\")+this.emit(this.indent(1))+this.mapVisit(t.declarations,\"\\n\")+this.emit(this.indent(-1))+this.emit(\"\\n}\")}host(t){return this.compress?this.emit(\"@host\",t.position)+this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):this.emit(\"@host\",t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`${this.indent(-1)}\\n}`)}customMedia(t){return this.emit(`@custom-media ${t.name} ${t.media};`,t.position)}property(t){return this.compress?this.emit(`@property ${t.name}`,t.position)+this.emit(\"{\")+this.mapVisit(t.declarations)+this.emit(\"}\"):this.emit(`@property ${t.name} `,t.position)+this.emit(\"{\\n\")+this.emit(this.indent(1))+this.mapVisit(t.declarations,\"\\n\")+this.emit(this.indent(-1))+this.emit(\"\\n}\")}counterStyle(t){return this.compress?this.emit(`@counter-style ${t.name}`,t.position)+this.emit(\"{\")+this.mapVisit(t.declarations)+this.emit(\"}\"):this.emit(`@counter-style ${t.name} `,t.position)+this.emit(\"{\\n\")+this.emit(this.indent(1))+this.mapVisit(t.declarations,\"\\n\")+this.emit(this.indent(-1))+this.emit(\"\\n}\")}fontFeatureValues(t){return this.compress?this.emit(`@font-feature-values ${t.fontFamily}`,t.position)+this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):this.emit(`${this.indent()}@font-feature-values ${t.fontFamily}`,t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`\\n${this.indent(-1)}${this.indent()}}`)}scope(t){const i=t.scope?` ${t.scope}`:\"\";return this.compress?this.emit(`@scope${i}`,t.position)+this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):this.emit(`${this.indent()}@scope${i}`,t.position)+this.emit(` {\\n${this.indent(1)}`)+this.mapVisit(t.rules,\"\\n\\n\")+this.emit(`\\n${this.indent(-1)}${this.indent()}}`)}viewTransition(t){return this.compress?this.emit(\"@view-transition\",t.position)+this.emit(\"{\")+this.mapVisit(t.declarations)+this.emit(\"}\"):this.emit(\"@view-transition \",t.position)+this.emit(\"{\\n\")+this.emit(this.indent(1))+this.mapVisit(t.declarations,\"\\n\")+this.emit(this.indent(-1))+this.emit(\"\\n}\")}positionTry(t){return this.compress?this.emit(`@position-try ${t.name}`,t.position)+this.emit(\"{\")+this.mapVisit(t.declarations)+this.emit(\"}\"):this.emit(`@position-try ${t.name} `,t.position)+this.emit(\"{\\n\")+this.emit(this.indent(1))+this.mapVisit(t.declarations,\"\\n\")+this.emit(this.indent(-1))+this.emit(\"\\n}\")}genericAtRule(t){const i=t.prelude?` ${t.prelude}`:\"\";if(this.compress)return this.emit(`@${t.name}${i}`,t.position)+(t.rules?this.emit(\"{\")+this.mapVisit(t.rules)+this.emit(\"}\"):\";\");if(!t.rules)return this.emit(`${this.indent()}@${t.name}${i};`,t.position);const s=t.rules.some(t=>t.type!==e.declaration&&t.type!==e.comment),n=s?\"\\n\\n\":\"\\n\";return this.emit(`${this.indent()}@${t.name}${i}`,t.position)+this.emit(s?` {\\n${this.indent(1)}`:\" {\\n\")+this.emit(s?\"\":this.indent(1))+this.mapVisit(t.rules,n)+this.emit(s?`\\n${this.indent(-1)}${this.indent()}}`:`${this.indent(-1)}\\n${this.indent()}}`)}rule(t){const i=t.declarations;if(!i.length)return\"\";if(this.compress)return this.emit(t.selectors.join(\",\"),t.position)+this.emit(\"{\")+this.mapVisit(i)+this.emit(\"}\");const e=this.indent();return this.emit(t.selectors.map(t=>e+t).join(\",\\n\"),t.position)+this.emit(\" {\\n\")+this.emit(this.indent(1))+this.mapVisit(i,\"\\n\")+this.emit(this.indent(-1))+this.emit(`\\n${this.indent()}}`)}declaration(t){return this.compress?this.emit(`${t.property}:${t.value}`,t.position)+this.emit(\";\"):\"grid-template-areas\"===t.property?this.emit(this.indent())+this.emit(t.property+\": \"+t.value.split(\"\\n\").join(\"\\n\".padEnd(22)+this.indent()),t.position)+this.emit(\";\"):this.emit(this.indent())+this.emit(`${t.property}: ${t.value}`,t.position)+this.emit(\";\")}}const a=(s,h)=>{h=h||{};let a=1,m=1;function u(){const t={line:a,column:m};return e=>(e.position=new i(t,{line:a,column:m},h?.source||\"\"),g(),e)}const p=[];function l(i){const e=new t(h?.source||\"\",i,a,m,s);if(!h?.silent)throw e;p.push(e)}function f(){const t=/^{\\s*/.exec(s);return!!t&&(y(t),!0)}function d(){const t=/^}/.exec(s);return!!t&&(y(t),!0)}function y(t){const i=t[0];return function(t){const i=t.match(/\\n/g);i&&(a+=i.length);const e=t.lastIndexOf(\"\\n\");m=~e?t.length-e:m+t.length}(i),s=s.slice(i.length),t}function g(){const t=/^\\s*/.exec(s);t&&y(t)}function $(t){t=t||[];let i=x();for(;i;)t.push(i),i=x();return t}function x(){const t=u();if(\"/\"!==s.charAt(0)||\"*\"!==s.charAt(1))return;const i=/^\\/\\*[^]*?\\*\\//.exec(s);return i?(y(i),t({type:e.comment,comment:i[0].slice(2,-2)})):l(\"End of comment missing\")}function V(){const t=n(s,[\"{\"]);if(-1===t||0===t)return;const i=s.substring(0,t);y([i]);return((t,i)=>{const e=[];let s=0;for(;s<t.length;){const r=n(t,i,s);if(-1===r)return e.push(t.substring(s)),e;e.push(t.substring(s,r)),s=r+1}return e})(o(i).replace(r,\"\"),[\",\"]).map(t=>o(t))}function v(){const t=u(),i=/^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/.exec(s);if(!i)return;y(i);const c=o(i[0]),h=/^:\\s*/.exec(s);if(!h)return l(\"property missing ':'\");y(h);let a=\"\";const m=n(s,[\";\",\"}\"]);if(-1!==m){a=s.substring(0,m);y([a]),a=o(a).replace(r,\"\")}const p=t({type:e.declaration,property:c.replace(r,\"\"),value:a}),f=/^[;\\s]*/.exec(s);return f&&y(f),p}function w(){const t=[];if(!f())return l(\"missing '{'\");$(t);let i=v();for(;i;)t.push(i),$(t),i=v();for(;h?.silent&&s.length&&\"}\"!==s.charAt(0);){const e=s.indexOf(\";\"),n=s.indexOf(\"}\");if(-1===e||!(-1===n||e<n))break;for(y([s.substring(0,e+1)]),g(),$(t),i=v();i;)t.push(i),$(t),i=v()}return d()?t:l(\"missing '}'\")}function b(){const t=n(s,[\"{\"]);if(-1===t)return!1;const i=n(s,[\";\"]),e=n(s,[\"}\"]);return!(-1!==i&&i<t)&&!(-1!==e&&e<t)}function k(){const t=[];if(!f())return l(\"missing '{'\");for($(t);s.length&&\"}\"!==s.charAt(0);){if(\"@\"===s.charAt(0)){const i=E();if(i){t.push(i),$(t);continue}}if(b()){const i=R();if(i){t.push(i),$(t);continue}}const i=v();if(!i){if(h?.silent){const i=s.indexOf(\";\"),e=s.indexOf(\"}\");if(-1!==i&&(-1===e||i<e)){y([s.substring(0,i+1)]),g(),$(t);continue}}break}t.push(i),$(t)}return d()?t:l(\"missing '}'\")}function A(){const t=[];for(g(),$(t);s.length&&\"}\"!==s.charAt(0);){if(\"@\"===s.charAt(0)){const i=E();if(i){t.push(i),$(t);continue}}if(b()){const i=R();if(i){t.push(i),$(t);continue}}const i=v();if(!i){if(h?.silent){const i=s.indexOf(\";\"),e=s.indexOf(\"}\");if(-1!==i&&(-1===e||i<e)){y([s.substring(0,i+1)]),g(),$(t);continue}}break}t.push(i),$(t)}return t}function O(){const t=[],i=u();let n=/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/.exec(s);for(;n;){const i=y(n);t.push(i[1]);const e=/^,\\s*/.exec(s);e&&y(e),n=/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/.exec(s)}if(t.length)return i({type:e.keyframe,values:t,declarations:w()||[]})}const F=new RegExp(`^@(${[\"top-left-corner\",\"top-left\",\"top-center\",\"top-right\",\"top-right-corner\",\"bottom-left-corner\",\"bottom-left\",\"bottom-center\",\"bottom-right\",\"bottom-right-corner\",\"left-top\",\"left-middle\",\"left-bottom\",\"right-top\",\"right-middle\",\"right-bottom\"].join(\"|\")})(?![\\\\w-])\\\\s*`);const j=S(\"import\"),M=S(\"charset\"),T=S(\"namespace\");function S(t){const i=new RegExp(\"^@\"+t+\"\\\\s*((?::?[^;'\\\"]|\\\"(?:\\\\\\\\\\\"|[^\\\"])*?\\\"|'(?:\\\\\\\\'|[^'])*?')+)(?:;|$)\");return()=>{const e=u(),n=i.exec(s);if(!n)return;const r=y(n),o={type:t};return o[t]=r[1].trim(),e(o)}}function E(){if(\"@\"===s[0])return function(){const t=u(),i=/^@([-\\w]+)?keyframes\\s*/.exec(s);if(!i)return;const n=y(i)[1],r=/^([-\\w]+)\\s*/.exec(s);if(!r)return l(\"@keyframes missing name\");const o=y(r)[1];if(!f())return l(\"@keyframes missing '{'\");let c=$(),h=O();for(;h;)c.push(h),c=c.concat($()),h=O();return d()?t({type:e.keyframes,name:o,vendor:n,keyframes:c}):l(\"@keyframes missing '}'\")}()||function(){const t=u(),i=/^@media *([^{]+)/.exec(s);if(!i)return;const n=o(y(i)[1]);if(!f())return l(\"@media missing '{'\");const r=A();return d()?t({type:e.media,media:n,rules:r}):l(\"@media missing '}'\")}()||function(){const t=u(),i=/^@custom-media\\s+(--\\S+)\\s+([^{;\\s][^{;]*);/.exec(s);if(!i)return;const n=y(i);return t({type:e.customMedia,name:o(n[1]),media:o(n[2])})}()||function(){const t=u(),i=/^@supports *([^{]+)/.exec(s);if(!i)return;const n=o(y(i)[1]);if(!f())return l(\"@supports missing '{'\");const r=A();return d()?t({type:e.supports,supports:n,rules:r}):l(\"@supports missing '}'\")}()||j()||M()||T()||function(){const t=u(),i=/^@([-\\w]+)?document *([^{]+)/.exec(s);if(!i)return;const n=y(i),r=o(n[1]),c=o(n[2]);if(!f())return l(\"@document missing '{'\");const h=A();return d()?t({type:e.document,document:c,vendor:r,rules:h}):l(\"@document missing '}'\")}()||function(){const t=u(),i=/^@page */.exec(s);if(!i)return;y(i);const n=V()||[];if(!f())return l(\"@page missing '{'\");const r=[];for($(r);s.length&&\"}\"!==s.charAt(0);){if(\"@\"===s.charAt(0)){const t=E();if(t){r.push(t),$(r);continue}}const t=v();if(!t)break;r.push(t),$(r)}return d()?t({type:e.page,selectors:n,declarations:r}):l(\"@page missing '}'\")}()||function(){const t=u(),i=/^@host\\s*/.exec(s);if(!i)return;if(y(i),!f())return l(\"@host missing '{'\");const n=A();return d()?t({type:e.host,rules:n}):l(\"@host missing '}'\")}()||function(){const t=u(),i=/^@font-face\\s*/.exec(s);if(!i)return;if(y(i),!f())return l(\"@font-face missing '{'\");let n=$(),r=v();for(;r;)n.push(r),n=n.concat($()),r=v();return d()?t({type:e.fontFace,declarations:n}):l(\"@font-face missing '}'\")}()||function(){const t=u(),i=/^@font-feature-values\\s+([^{]+)/.exec(s);if(!i)return;const n=o(y(i)[1]);if(!f())return l(\"@font-feature-values missing '{'\");const r=A();return d()?t({type:e.fontFeatureValues,fontFamily:n,rules:r}):l(\"@font-feature-values missing '}'\")}()||function(){const t=u(),i=/^@container *([^{]+)/.exec(s);if(!i)return;const n=o(y(i)[1]);if(!f())return l(\"@container missing '{'\");const r=A();return d()?t({type:e.container,container:n,rules:r}):l(\"@container missing '}'\")}()||function(){const t=u(),i=/^@starting-style\\s*/.exec(s);if(!i)return;if(y(i),!f())return l(\"@starting-style missing '{'\");const n=A();return d()?t({type:e.startingStyle,rules:n}):l(\"@starting-style missing '}'\")}()||function(){const t=u(),i=/^@layer *([^{;@]+)/.exec(s);if(!i)return;const n=o(y(i)[1]);if(!f()){const i=/^[;\\s]*/.exec(s);return i&&y(i),t({type:e.layer,layer:n})}const r=A();return d()?t({type:e.layer,layer:n,rules:r}):l(\"@layer missing '}'\")}()||function(){const t=u(),i=/^@property\\s+(--[-\\w]+)\\s*/.exec(s);if(!i)return;const n=y(i)[1];if(!f())return l(\"@property missing '{'\");let r=$(),o=v();for(;o;)r.push(o),r=r.concat($()),o=v();return d()?t({type:e.property,name:n,declarations:r}):l(\"@property missing '}'\")}()||function(){const t=u(),i=/^@counter-style\\s+([-\\w]+)\\s*/.exec(s);if(!i)return;const n=y(i)[1];if(!f())return l(\"@counter-style missing '{'\");let r=$(),o=v();for(;o;)r.push(o),r=r.concat($()),o=v();return d()?t({type:e.counterStyle,name:n,declarations:r}):l(\"@counter-style missing '}'\")}()||function(){const t=u(),i=/^@scope\\s*([^{]*)/.exec(s);if(!i)return;const n=o(y(i)[1]);if(!f())return l(\"@scope missing '{'\");const r=A();return d()?t({type:e.scope,scope:n,rules:r}):l(\"@scope missing '}'\")}()||function(){const t=u(),i=/^@view-transition\\s*/.exec(s);if(!i)return;if(y(i),!f())return l(\"@view-transition missing '{'\");let n=$(),r=v();for(;r;)n.push(r),n=n.concat($()),r=v();return d()?t({type:e.viewTransition,declarations:n}):l(\"@view-transition missing '}'\")}()||function(){const t=u(),i=/^@position-try\\s+(--[-\\w]+)\\s*/.exec(s);if(!i)return;const n=y(i)[1];if(!f())return l(\"@position-try missing '{'\");let r=$(),o=v();for(;o;)r.push(o),r=r.concat($()),o=v();return d()?t({type:e.positionTry,name:n,declarations:r}):l(\"@position-try missing '}'\")}()||function(){const t=u(),i=F.exec(s);if(!i)return;const n=y(i)[1];if(!f())return l(`@${n} missing '{'`);let r=$(),o=v();for(;o;)r.push(o),r=r.concat($()),o=v();return d()?t({type:e.pageMarginBox,name:n,declarations:r}):l(`@${n} missing '}'`)}()||function(){const t=u(),i=/^@([-\\w]+)\\s*/.exec(s);if(!i)return;const r=y(i)[1];let c=\"\";const h=n(s,[\"{\",\";\"]);-1!==h&&h>0&&(c=o(s.substring(0,h)),y([s.substring(0,h)]));if(f()){const i=A();return d()?t({type:e.atRule,name:r,prelude:c,rules:i}):l(`@${r} missing '}'`)}const a=/^[;\\s]*/.exec(s);return a&&y(a),t({type:e.atRule,name:r,prelude:c})}()}function R(){const t=u(),i=V();return i?($(),t({type:e.rule,selectors:i,declarations:k()||[]})):l(\"selector missing\")}return c(function(){const t=function(){let t;const i=[];g(),$(i);for(;s.length;){if(\"}\"===s.charAt(0)){if(h?.silent){l(\"extra '}'\");y([\"}\"]),g(),$(i);continue}break}if(t=E()||R(),!t){if(h?.silent){y([s.charAt(0)]),g(),$(i);continue}break}i.push(t),$(i)}return i}();return{type:e.stylesheet,stylesheet:{source:h?.source,rules:t,parsingErrors:p}}}())},m=(t,i)=>new h(i||{}).compile(t);var u={parse:a,stringify:m};export{e as CssTypes,u as default,a as parse,m as stringify};\n//# sourceMappingURL=adobe-css-tools.mjs.map\n","/**\n * @source {https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill}\n * but without thisArg (too hard to type, no need to `this`)\n */\nvar toStr = Object.prototype.toString;\nfunction isCallable(fn) {\n return typeof fn === \"function\" || toStr.call(fn) === \"[object Function]\";\n}\nfunction toInteger(value) {\n var number = Number(value);\n if (isNaN(number)) {\n return 0;\n }\n if (number === 0 || !isFinite(number)) {\n return number;\n }\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n}\nvar maxSafeInteger = Math.pow(2, 53) - 1;\nfunction toLength(value) {\n var len = toInteger(value);\n return Math.min(Math.max(len, 0), maxSafeInteger);\n}\n/**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n */\n\n/**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\nexport default function arrayFrom(arrayLike, mapFn) {\n // 1. Let C be the this value.\n // edit(@eps1lon): we're not calling it as Array.from\n var C = Array;\n\n // 2. Let items be ToObject(arrayLike).\n var items = Object(arrayLike);\n\n // 3. ReturnIfAbrupt(items).\n if (arrayLike == null) {\n throw new TypeError(\"Array.from requires an array-like object - not null or undefined\");\n }\n\n // 4. If mapfn is undefined, then let mapping be false.\n // const mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n\n if (typeof mapFn !== \"undefined\") {\n // 5. else\n // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n if (!isCallable(mapFn)) {\n throw new TypeError(\"Array.from: when provided, the second argument must be a function\");\n }\n }\n\n // 10. Let lenValue be Get(items, \"length\").\n // 11. Let len be ToLength(lenValue).\n var len = toLength(items.length);\n\n // 13. If IsConstructor(C) is true, then\n // 13. a. Let A be the result of calling the [[Construct]] internal method\n // of C with an argument list containing the single item len.\n // 14. a. Else, Let A be ArrayCreate(len).\n var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n // 16. Let k be 0.\n var k = 0;\n // 17. Repeat, while k < len… (also steps a - h)\n var kValue;\n while (k < len) {\n kValue = items[k];\n if (mapFn) {\n A[k] = mapFn(kValue, k);\n } else {\n A[k] = kValue;\n }\n k += 1;\n }\n // 18. Let putStatus be Put(A, \"length\", len, true).\n A.length = len;\n // 20. Return A.\n return A;\n}\n//# sourceMappingURL=array.from.mjs.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n// for environments without Set we fallback to arrays with unique members\nvar SetLike = /*#__PURE__*/function () {\n function SetLike() {\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n _classCallCheck(this, SetLike);\n _defineProperty(this, \"items\", void 0);\n this.items = items;\n }\n _createClass(SetLike, [{\n key: \"add\",\n value: function add(value) {\n if (this.has(value) === false) {\n this.items.push(value);\n }\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.items = [];\n }\n }, {\n key: \"delete\",\n value: function _delete(value) {\n var previousLength = this.items.length;\n this.items = this.items.filter(function (item) {\n return item !== value;\n });\n return previousLength !== this.items.length;\n }\n }, {\n key: \"forEach\",\n value: function forEach(callbackfn) {\n var _this = this;\n this.items.forEach(function (item) {\n callbackfn(item, item, _this);\n });\n }\n }, {\n key: \"has\",\n value: function has(value) {\n return this.items.indexOf(value) !== -1;\n }\n }, {\n key: \"size\",\n get: function get() {\n return this.items.length;\n }\n }]);\n return SetLike;\n}();\nexport default typeof Set === \"undefined\" ? Set : SetLike;\n//# sourceMappingURL=SetLike.mjs.map","// https://w3c.github.io/html-aria/#document-conformance-requirements-for-use-of-aria-attributes-in-html\n\nimport { presentationRoles } from \"./util.mjs\";\n\n/**\n * Safe Element.localName for all supported environments\n * @param element\n */\nexport function getLocalName(element) {\n var _element$localName;\n return (// eslint-disable-next-line no-restricted-properties -- actual guard for environments without localName\n (_element$localName = element.localName) !== null && _element$localName !== void 0 ? _element$localName :\n // eslint-disable-next-line no-restricted-properties -- required for the fallback\n element.tagName.toLowerCase()\n );\n}\nvar localNameToRoleMappings = {\n article: \"article\",\n aside: \"complementary\",\n button: \"button\",\n datalist: \"listbox\",\n dd: \"definition\",\n details: \"group\",\n dialog: \"dialog\",\n dt: \"term\",\n fieldset: \"group\",\n figure: \"figure\",\n // WARNING: Only with an accessible name\n form: \"form\",\n footer: \"contentinfo\",\n h1: \"heading\",\n h2: \"heading\",\n h3: \"heading\",\n h4: \"heading\",\n h5: \"heading\",\n h6: \"heading\",\n header: \"banner\",\n hr: \"separator\",\n html: \"document\",\n legend: \"legend\",\n li: \"listitem\",\n math: \"math\",\n main: \"main\",\n menu: \"list\",\n nav: \"navigation\",\n ol: \"list\",\n optgroup: \"group\",\n // WARNING: Only in certain context\n option: \"option\",\n output: \"status\",\n progress: \"progressbar\",\n // WARNING: Only with an accessible name\n section: \"region\",\n summary: \"button\",\n table: \"table\",\n tbody: \"rowgroup\",\n textarea: \"textbox\",\n tfoot: \"rowgroup\",\n // WARNING: Only in certain context\n td: \"cell\",\n th: \"columnheader\",\n thead: \"rowgroup\",\n tr: \"row\",\n ul: \"list\"\n};\nvar prohibitedAttributes = {\n caption: new Set([\"aria-label\", \"aria-labelledby\"]),\n code: new Set([\"aria-label\", \"aria-labelledby\"]),\n deletion: new Set([\"aria-label\", \"aria-labelledby\"]),\n emphasis: new Set([\"aria-label\", \"aria-labelledby\"]),\n generic: new Set([\"aria-label\", \"aria-labelledby\", \"aria-roledescription\"]),\n insertion: new Set([\"aria-label\", \"aria-labelledby\"]),\n none: new Set([\"aria-label\", \"aria-labelledby\"]),\n paragraph: new Set([\"aria-label\", \"aria-labelledby\"]),\n presentation: new Set([\"aria-label\", \"aria-labelledby\"]),\n strong: new Set([\"aria-label\", \"aria-labelledby\"]),\n subscript: new Set([\"aria-label\", \"aria-labelledby\"]),\n superscript: new Set([\"aria-label\", \"aria-labelledby\"])\n};\n\n/**\n *\n * @param element\n * @param role The role used for this element. This is specified to control whether you want to use the implicit or explicit role.\n */\nfunction hasGlobalAriaAttributes(element, role) {\n // https://rawgit.com/w3c/aria/stable/#global_states\n // commented attributes are deprecated\n return [\"aria-atomic\", \"aria-busy\", \"aria-controls\", \"aria-current\", \"aria-description\", \"aria-describedby\", \"aria-details\",\n // \"disabled\",\n \"aria-dropeffect\",\n // \"errormessage\",\n \"aria-flowto\", \"aria-grabbed\",\n // \"haspopup\",\n \"aria-hidden\",\n // \"invalid\",\n \"aria-keyshortcuts\", \"aria-label\", \"aria-labelledby\", \"aria-live\", \"aria-owns\", \"aria-relevant\", \"aria-roledescription\"].some(function (attributeName) {\n var _prohibitedAttributes;\n return element.hasAttribute(attributeName) && !((_prohibitedAttributes = prohibitedAttributes[role]) !== null && _prohibitedAttributes !== void 0 && _prohibitedAttributes.has(attributeName));\n });\n}\nfunction ignorePresentationalRole(element, implicitRole) {\n // https://rawgit.com/w3c/aria/stable/#conflict_resolution_presentation_none\n return hasGlobalAriaAttributes(element, implicitRole);\n}\nexport default function getRole(element) {\n var explicitRole = getExplicitRole(element);\n if (explicitRole === null || presentationRoles.indexOf(explicitRole) !== -1) {\n var implicitRole = getImplicitRole(element);\n if (presentationRoles.indexOf(explicitRole || \"\") === -1 || ignorePresentationalRole(element, implicitRole || \"\")) {\n return implicitRole;\n }\n }\n return explicitRole;\n}\nfunction getImplicitRole(element) {\n var mappedByTag = localNameToRoleMappings[getLocalName(element)];\n if (mappedByTag !== undefined) {\n return mappedByTag;\n }\n switch (getLocalName(element)) {\n case \"a\":\n case \"area\":\n case \"link\":\n if (element.hasAttribute(\"href\")) {\n return \"link\";\n }\n break;\n case \"img\":\n if (element.getAttribute(\"alt\") === \"\" && !ignorePresentationalRole(element, \"img\")) {\n return \"presentation\";\n }\n return \"img\";\n case \"input\":\n {\n var _ref = element,\n type = _ref.type;\n switch (type) {\n case \"button\":\n case \"image\":\n case \"reset\":\n case \"submit\":\n return \"button\";\n case \"checkbox\":\n case \"radio\":\n return type;\n case \"range\":\n return \"slider\";\n case \"email\":\n case \"tel\":\n case \"text\":\n case \"url\":\n if (element.hasAttribute(\"list\")) {\n return \"combobox\";\n }\n return \"textbox\";\n case \"search\":\n if (element.hasAttribute(\"list\")) {\n return \"combobox\";\n }\n return \"searchbox\";\n case \"number\":\n return \"spinbutton\";\n default:\n return null;\n }\n }\n case \"select\":\n if (element.hasAttribute(\"multiple\") || element.size > 1) {\n return \"listbox\";\n }\n return \"combobox\";\n }\n return null;\n}\nfunction getExplicitRole(element) {\n var role = element.getAttribute(\"role\");\n if (role !== null) {\n var explicitRole = role.trim().split(\" \")[0];\n // String.prototype.split(sep, limit) will always return an array with at least one member\n // as long as limit is either undefined or > 0\n if (explicitRole.length > 0) {\n return explicitRole;\n }\n }\n return null;\n}\n//# sourceMappingURL=getRole.mjs.map","export { getLocalName } from \"./getRole.mjs\";\nimport getRole, { getLocalName } from \"./getRole.mjs\";\nexport var presentationRoles = [\"presentation\", \"none\"];\nexport function isElement(node) {\n return node !== null && node.nodeType === node.ELEMENT_NODE;\n}\nexport function isHTMLTableCaptionElement(node) {\n return isElement(node) && getLocalName(node) === \"caption\";\n}\nexport function isHTMLInputElement(node) {\n return isElement(node) && getLocalName(node) === \"input\";\n}\nexport function isHTMLOptGroupElement(node) {\n return isElement(node) && getLocalName(node) === \"optgroup\";\n}\nexport function isHTMLSelectElement(node) {\n return isElement(node) && getLocalName(node) === \"select\";\n}\nexport function isHTMLTableElement(node) {\n return isElement(node) && getLocalName(node) === \"table\";\n}\nexport function isHTMLTextAreaElement(node) {\n return isElement(node) && getLocalName(node) === \"textarea\";\n}\nexport function safeWindow(node) {\n var _ref = node.ownerDocument === null ? node : node.ownerDocument,\n defaultView = _ref.defaultView;\n if (defaultView === null) {\n throw new TypeError(\"no window available\");\n }\n return defaultView;\n}\nexport function isHTMLFieldSetElement(node) {\n return isElement(node) && getLocalName(node) === \"fieldset\";\n}\nexport function isHTMLLegendElement(node) {\n return isElement(node) && getLocalName(node) === \"legend\";\n}\nexport function isHTMLSlotElement(node) {\n return isElement(node) && getLocalName(node) === \"slot\";\n}\nexport function isSVGElement(node) {\n return isElement(node) && node.ownerSVGElement !== undefined;\n}\nexport function isSVGSVGElement(node) {\n return isElement(node) && getLocalName(node) === \"svg\";\n}\nexport function isSVGTitleElement(node) {\n return isSVGElement(node) && getLocalName(node) === \"title\";\n}\n\n/**\n *\n * @param {Node} node -\n * @param {string} attributeName -\n * @returns {Element[]} -\n */\nexport function queryIdRefs(node, attributeName) {\n if (isElement(node) && node.hasAttribute(attributeName)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute check\n var ids = node.getAttribute(attributeName).split(\" \");\n\n // Browsers that don't support shadow DOM won't have getRootNode\n var root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n return ids.map(function (id) {\n return root.getElementById(id);\n }).filter(function (element) {\n return element !== null;\n }\n // TODO: why does this not narrow?\n );\n }\n\n return [];\n}\nexport function hasAnyConcreteRoles(node, roles) {\n if (isElement(node)) {\n return roles.indexOf(getRole(node)) !== -1;\n }\n return false;\n}\n//# sourceMappingURL=util.mjs.map","/**\n * implements https://w3c.github.io/accname/\n */\nimport ArrayFrom from \"./polyfills/array.from.mjs\";\nimport SetLike from \"./polyfills/SetLike.mjs\";\nimport { hasAnyConcreteRoles, isElement, isHTMLTableCaptionElement, isHTMLInputElement, isHTMLSelectElement, isHTMLTextAreaElement, safeWindow, isHTMLFieldSetElement, isHTMLLegendElement, isHTMLOptGroupElement, isHTMLTableElement, isHTMLSlotElement, isSVGSVGElement, isSVGTitleElement, queryIdRefs, getLocalName, presentationRoles } from \"./util.mjs\";\n\n/**\n * A string of characters where all carriage returns, newlines, tabs, and form-feeds are replaced with a single space, and multiple spaces are reduced to a single space. The string contains only character data; it does not contain any markup.\n */\n\n/**\n * interface for an options-bag where `window.getComputedStyle` can be mocked\n */\n\n/**\n *\n * @param {string} string -\n * @returns {FlatString} -\n */\nfunction asFlatString(s) {\n return s.trim().replace(/\\s\\s+/g, \" \");\n}\n\n/**\n *\n * @param node -\n * @param options - These are not optional to prevent accidentally calling it without options in `computeAccessibleName`\n * @returns {boolean} -\n */\nfunction isHidden(node, getComputedStyleImplementation) {\n if (!isElement(node)) {\n return false;\n }\n if (node.hasAttribute(\"hidden\") || node.getAttribute(\"aria-hidden\") === \"true\") {\n return true;\n }\n var style = getComputedStyleImplementation(node);\n return style.getPropertyValue(\"display\") === \"none\" || style.getPropertyValue(\"visibility\") === \"hidden\";\n}\n\n/**\n * @param {Node} node -\n * @returns {boolean} - As defined in step 2E of https://w3c.github.io/accname/#mapping_additional_nd_te\n */\nfunction isControl(node) {\n return hasAnyConcreteRoles(node, [\"button\", \"combobox\", \"listbox\", \"textbox\"]) || hasAbstractRole(node, \"range\");\n}\nfunction hasAbstractRole(node, role) {\n if (!isElement(node)) {\n return false;\n }\n switch (role) {\n case \"range\":\n return hasAnyConcreteRoles(node, [\"meter\", \"progressbar\", \"scrollbar\", \"slider\", \"spinbutton\"]);\n default:\n throw new TypeError(\"No knowledge about abstract role '\".concat(role, \"'. This is likely a bug :(\"));\n }\n}\n\n/**\n * element.querySelectorAll but also considers owned tree\n * @param element\n * @param selectors\n */\nfunction querySelectorAllSubtree(element, selectors) {\n var elements = ArrayFrom(element.querySelectorAll(selectors));\n queryIdRefs(element, \"aria-owns\").forEach(function (root) {\n // babel transpiles this assuming an iterator\n elements.push.apply(elements, ArrayFrom(root.querySelectorAll(selectors)));\n });\n return elements;\n}\nfunction querySelectedOptions(listbox) {\n if (isHTMLSelectElement(listbox)) {\n // IE11 polyfill\n return listbox.selectedOptions || querySelectorAllSubtree(listbox, \"[selected]\");\n }\n return querySelectorAllSubtree(listbox, '[aria-selected=\"true\"]');\n}\nfunction isMarkedPresentational(node) {\n return hasAnyConcreteRoles(node, presentationRoles);\n}\n\n/**\n * Elements specifically listed in html-aam\n *\n * We don't need this for `label` or `legend` elements.\n * Their implicit roles already allow \"naming from content\".\n *\n * sources:\n *\n * - https://w3c.github.io/html-aam/#table-element\n */\nfunction isNativeHostLanguageTextAlternativeElement(node) {\n return isHTMLTableCaptionElement(node);\n}\n\n/**\n * https://w3c.github.io/aria/#namefromcontent\n */\nfunction allowsNameFromContent(node) {\n return hasAnyConcreteRoles(node, [\"button\", \"cell\", \"checkbox\", \"columnheader\", \"gridcell\", \"heading\", \"label\", \"legend\", \"link\", \"menuitem\", \"menuitemcheckbox\", \"menuitemradio\", \"option\", \"radio\", \"row\", \"rowheader\", \"switch\", \"tab\", \"tooltip\", \"treeitem\"]);\n}\n\n/**\n * TODO https://github.com/eps1lon/dom-accessibility-api/issues/100\n */\nfunction isDescendantOfNativeHostLanguageTextAlternativeElement(\n// eslint-disable-next-line @typescript-eslint/no-unused-vars -- not implemented yet\nnode) {\n return false;\n}\nfunction getValueOfTextbox(element) {\n if (isHTMLInputElement(element) || isHTMLTextAreaElement(element)) {\n return element.value;\n }\n // https://github.com/eps1lon/dom-accessibility-api/issues/4\n return element.textContent || \"\";\n}\nfunction getTextualContent(declaration) {\n var content = declaration.getPropertyValue(\"content\");\n if (/^[\"'].*[\"']$/.test(content)) {\n return content.slice(1, -1);\n }\n return \"\";\n}\n\n/**\n * https://html.spec.whatwg.org/multipage/forms.html#category-label\n * TODO: form-associated custom elements\n * @param element\n */\nfunction isLabelableElement(element) {\n var localName = getLocalName(element);\n return localName === \"button\" || localName === \"input\" && element.getAttribute(\"type\") !== \"hidden\" || localName === \"meter\" || localName === \"output\" || localName === \"progress\" || localName === \"select\" || localName === \"textarea\";\n}\n\n/**\n * > [...], then the first such descendant in tree order is the label element's labeled control.\n * -- https://html.spec.whatwg.org/multipage/forms.html#labeled-control\n * @param element\n */\nfunction findLabelableElement(element) {\n if (isLabelableElement(element)) {\n return element;\n }\n var labelableElement = null;\n element.childNodes.forEach(function (childNode) {\n if (labelableElement === null && isElement(childNode)) {\n var descendantLabelableElement = findLabelableElement(childNode);\n if (descendantLabelableElement !== null) {\n labelableElement = descendantLabelableElement;\n }\n }\n });\n return labelableElement;\n}\n\n/**\n * Polyfill of HTMLLabelElement.control\n * https://html.spec.whatwg.org/multipage/forms.html#labeled-control\n * @param label\n */\nfunction getControlOfLabel(label) {\n if (label.control !== undefined) {\n return label.control;\n }\n var htmlFor = label.getAttribute(\"for\");\n if (htmlFor !== null) {\n return label.ownerDocument.getElementById(htmlFor);\n }\n return findLabelableElement(label);\n}\n\n/**\n * Polyfill of HTMLInputElement.labels\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/labels\n * @param element\n */\nfunction getLabels(element) {\n var labelsProperty = element.labels;\n if (labelsProperty === null) {\n return labelsProperty;\n }\n if (labelsProperty !== undefined) {\n return ArrayFrom(labelsProperty);\n }\n\n // polyfill\n if (!isLabelableElement(element)) {\n return null;\n }\n var document = element.ownerDocument;\n return ArrayFrom(document.querySelectorAll(\"label\")).filter(function (label) {\n return getControlOfLabel(label) === element;\n });\n}\n\n/**\n * Gets the contents of a slot used for computing the accname\n * @param slot\n */\nfunction getSlotContents(slot) {\n // Computing the accessible name for elements containing slots is not\n // currently defined in the spec. This implementation reflects the\n // behavior of NVDA 2020.2/Firefox 81 and iOS VoiceOver/Safari 13.6.\n var assignedNodes = slot.assignedNodes();\n if (assignedNodes.length === 0) {\n // if no nodes are assigned to the slot, it displays the default content\n return ArrayFrom(slot.childNodes);\n }\n return assignedNodes;\n}\n\n/**\n * implements https://w3c.github.io/accname/#mapping_additional_nd_te\n * @param root\n * @param options\n * @returns\n */\nexport function computeTextAlternative(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var consultedNodes = new SetLike();\n var window = safeWindow(root);\n var _options$compute = options.compute,\n compute = _options$compute === void 0 ? \"name\" : _options$compute,\n _options$computedStyl = options.computedStyleSupportsPseudoElements,\n computedStyleSupportsPseudoElements = _options$computedStyl === void 0 ? options.getComputedStyle !== undefined : _options$computedStyl,\n _options$getComputedS = options.getComputedStyle,\n getComputedStyle = _options$getComputedS === void 0 ? window.getComputedStyle.bind(window) : _options$getComputedS,\n _options$hidden = options.hidden,\n hidden = _options$hidden === void 0 ? false : _options$hidden;\n\n // 2F.i\n function computeMiscTextAlternative(node, context) {\n var accumulatedText = \"\";\n if (isElement(node) && computedStyleSupportsPseudoElements) {\n var pseudoBefore = getComputedStyle(node, \"::before\");\n var beforeContent = getTextualContent(pseudoBefore);\n accumulatedText = \"\".concat(beforeContent, \" \").concat(accumulatedText);\n }\n\n // FIXME: Including aria-owns is not defined in the spec\n // But it is required in the web-platform-test\n var childNodes = isHTMLSlotElement(node) ? getSlotContents(node) : ArrayFrom(node.childNodes).concat(queryIdRefs(node, \"aria-owns\"));\n childNodes.forEach(function (child) {\n var result = computeTextAlternative(child, {\n isEmbeddedInLabel: context.isEmbeddedInLabel,\n isReferenced: false,\n recursion: true\n });\n // TODO: Unclear why display affects delimiter\n // see https://github.com/w3c/accname/issues/3\n var display = isElement(child) ? getComputedStyle(child).getPropertyValue(\"display\") : \"inline\";\n var separator = display !== \"inline\" ? \" \" : \"\";\n // trailing separator for wpt tests\n accumulatedText += \"\".concat(separator).concat(result).concat(separator);\n });\n if (isElement(node) && computedStyleSupportsPseudoElements) {\n var pseudoAfter = getComputedStyle(node, \"::after\");\n var afterContent = getTextualContent(pseudoAfter);\n accumulatedText = \"\".concat(accumulatedText, \" \").concat(afterContent);\n }\n return accumulatedText.trim();\n }\n\n /**\n *\n * @param element\n * @param attributeName\n * @returns A string non-empty string or `null`\n */\n function useAttribute(element, attributeName) {\n var attribute = element.getAttributeNode(attributeName);\n if (attribute !== null && !consultedNodes.has(attribute) && attribute.value.trim() !== \"\") {\n consultedNodes.add(attribute);\n return attribute.value;\n }\n return null;\n }\n function computeTooltipAttributeValue(node) {\n if (!isElement(node)) {\n return null;\n }\n return useAttribute(node, \"title\");\n }\n function computeElementTextAlternative(node) {\n if (!isElement(node)) {\n return null;\n }\n\n // https://w3c.github.io/html-aam/#fieldset-and-legend-elements\n if (isHTMLFieldSetElement(node)) {\n consultedNodes.add(node);\n var children = ArrayFrom(node.childNodes);\n for (var i = 0; i < children.length; i += 1) {\n var child = children[i];\n if (isHTMLLegendElement(child)) {\n return computeTextAlternative(child, {\n isEmbeddedInLabel: false,\n isReferenced: false,\n recursion: false\n });\n }\n }\n } else if (isHTMLTableElement(node)) {\n // https://w3c.github.io/html-aam/#table-element\n consultedNodes.add(node);\n var _children = ArrayFrom(node.childNodes);\n for (var _i = 0; _i < _children.length; _i += 1) {\n var _child = _children[_i];\n if (isHTMLTableCaptionElement(_child)) {\n return computeTextAlternative(_child, {\n isEmbeddedInLabel: false,\n isReferenced: false,\n recursion: false\n });\n }\n }\n } else if (isSVGSVGElement(node)) {\n // https://www.w3.org/TR/svg-aam-1.0/\n consultedNodes.add(node);\n var _children2 = ArrayFrom(node.childNodes);\n for (var _i2 = 0; _i2 < _children2.length; _i2 += 1) {\n var _child2 = _children2[_i2];\n if (isSVGTitleElement(_child2)) {\n return _child2.textContent;\n }\n }\n return null;\n } else if (getLocalName(node) === \"img\" || getLocalName(node) === \"area\") {\n // https://w3c.github.io/html-aam/#area-element\n // https://w3c.github.io/html-aam/#img-element\n var nameFromAlt = useAttribute(node, \"alt\");\n if (nameFromAlt !== null) {\n return nameFromAlt;\n }\n } else if (isHTMLOptGroupElement(node)) {\n var nameFromLabel = useAttribute(node, \"label\");\n if (nameFromLabel !== null) {\n return nameFromLabel;\n }\n }\n if (isHTMLInputElement(node) && (node.type === \"button\" || node.type === \"submit\" || node.type === \"reset\")) {\n // https://w3c.github.io/html-aam/#input-type-text-input-type-password-input-type-search-input-type-tel-input-type-email-input-type-url-and-textarea-element-accessible-description-computation\n var nameFromValue = useAttribute(node, \"value\");\n if (nameFromValue !== null) {\n return nameFromValue;\n }\n\n // TODO: l10n\n if (node.type === \"submit\") {\n return \"Submit\";\n }\n // TODO: l10n\n if (node.type === \"reset\") {\n return \"Reset\";\n }\n }\n var labels = getLabels(node);\n if (labels !== null && labels.length !== 0) {\n consultedNodes.add(node);\n return ArrayFrom(labels).map(function (element) {\n return computeTextAlternative(element, {\n isEmbeddedInLabel: true,\n isReferenced: false,\n recursion: true\n });\n }).filter(function (label) {\n return label.length > 0;\n }).join(\" \");\n }\n\n // https://w3c.github.io/html-aam/#input-type-image-accessible-name-computation\n // TODO: wpt test consider label elements but html-aam does not mention them\n // We follow existing implementations over spec\n if (isHTMLInputElement(node) && node.type === \"image\") {\n var _nameFromAlt = useAttribute(node, \"alt\");\n if (_nameFromAlt !== null) {\n return _nameFromAlt;\n }\n var nameFromTitle = useAttribute(node, \"title\");\n if (nameFromTitle !== null) {\n return nameFromTitle;\n }\n\n // TODO: l10n\n return \"Submit Query\";\n }\n if (hasAnyConcreteRoles(node, [\"button\"])) {\n // https://www.w3.org/TR/html-aam-1.0/#button-element\n var nameFromSubTree = computeMiscTextAlternative(node, {\n isEmbeddedInLabel: false,\n isReferenced: false\n });\n if (nameFromSubTree !== \"\") {\n return nameFromSubTree;\n }\n }\n return null;\n }\n function computeTextAlternative(current, context) {\n if (consultedNodes.has(current)) {\n return \"\";\n }\n\n // 2A\n if (!hidden && isHidden(current, getComputedStyle) && !context.isReferenced) {\n consultedNodes.add(current);\n return \"\";\n }\n\n // 2B\n var labelAttributeNode = isElement(current) ? current.getAttributeNode(\"aria-labelledby\") : null;\n // TODO: Do we generally need to block query IdRefs of attributes we have already consulted?\n var labelElements = labelAttributeNode !== null && !consultedNodes.has(labelAttributeNode) ? queryIdRefs(current, \"aria-labelledby\") : [];\n if (compute === \"name\" && !context.isReferenced && labelElements.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Can't be null here otherwise labelElements would be empty\n consultedNodes.add(labelAttributeNode);\n return labelElements.map(function (element) {\n // TODO: Chrome will consider repeated values i.e. use a node multiple times while we'll bail out in computeTextAlternative.\n return computeTextAlternative(element, {\n isEmbeddedInLabel: context.isEmbeddedInLabel,\n isReferenced: true,\n // this isn't recursion as specified, otherwise we would skip\n // `aria-label` in\n // <input id=\"myself\" aria-label=\"foo\" aria-labelledby=\"myself\"\n recursion: false\n });\n }).join(\" \");\n }\n\n // 2C\n // Changed from the spec in anticipation of https://github.com/w3c/accname/issues/64\n // spec says we should only consider skipping if we have a non-empty label\n var skipToStep2E = context.recursion && isControl(current) && compute === \"name\";\n if (!skipToStep2E) {\n var ariaLabel = (isElement(current) && current.getAttribute(\"aria-label\") || \"\").trim();\n if (ariaLabel !== \"\" && compute === \"name\") {\n consultedNodes.add(current);\n return ariaLabel;\n }\n\n // 2D\n if (!isMarkedPresentational(current)) {\n var elementTextAlternative = computeElementTextAlternative(current);\n if (elementTextAlternative !== null) {\n consultedNodes.add(current);\n return elementTextAlternative;\n }\n }\n }\n\n // special casing, cheating to make tests pass\n // https://github.com/w3c/accname/issues/67\n if (hasAnyConcreteRoles(current, [\"menu\"])) {\n consultedNodes.add(current);\n return \"\";\n }\n\n // 2E\n if (skipToStep2E || context.isEmbeddedInLabel || context.isReferenced) {\n if (hasAnyConcreteRoles(current, [\"combobox\", \"listbox\"])) {\n consultedNodes.add(current);\n var selectedOptions = querySelectedOptions(current);\n if (selectedOptions.length === 0) {\n // defined per test `name_heading_combobox`\n return isHTMLInputElement(current) ? current.value : \"\";\n }\n return ArrayFrom(selectedOptions).map(function (selectedOption) {\n return computeTextAlternative(selectedOption, {\n isEmbeddedInLabel: context.isEmbeddedInLabel,\n isReferenced: false,\n recursion: true\n });\n }).join(\" \");\n }\n if (hasAbstractRole(current, \"range\")) {\n consultedNodes.add(current);\n if (current.hasAttribute(\"aria-valuetext\")) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute guard\n return current.getAttribute(\"aria-valuetext\");\n }\n if (current.hasAttribute(\"aria-valuenow\")) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute guard\n return current.getAttribute(\"aria-valuenow\");\n }\n // Otherwise, use the value as specified by a host language attribute.\n return current.getAttribute(\"value\") || \"\";\n }\n if (hasAnyConcreteRoles(current, [\"textbox\"])) {\n consultedNodes.add(current);\n return getValueOfTextbox(current);\n }\n }\n\n // 2F: https://w3c.github.io/accname/#step2F\n if (allowsNameFromContent(current) || isElement(current) && context.isReferenced || isNativeHostLanguageTextAlternativeElement(current) || isDescendantOfNativeHostLanguageTextAlternativeElement(current)) {\n var accumulatedText2F = computeMiscTextAlternative(current, {\n isEmbeddedInLabel: context.isEmbeddedInLabel,\n isReferenced: false\n });\n if (accumulatedText2F !== \"\") {\n consultedNodes.add(current);\n return accumulatedText2F;\n }\n }\n if (current.nodeType === current.TEXT_NODE) {\n consultedNodes.add(current);\n return current.textContent || \"\";\n }\n if (context.recursion) {\n consultedNodes.add(current);\n return computeMiscTextAlternative(current, {\n isEmbeddedInLabel: context.isEmbeddedInLabel,\n isReferenced: false\n });\n }\n var tooltipAttributeValue = computeTooltipAttributeValue(current);\n if (tooltipAttributeValue !== null) {\n consultedNodes.add(current);\n return tooltipAttributeValue;\n }\n\n // TODO should this be reachable?\n consultedNodes.add(current);\n return \"\";\n }\n return asFlatString(computeTextAlternative(root, {\n isEmbeddedInLabel: false,\n // by spec computeAccessibleDescription starts with the referenced elements as roots\n isReferenced: compute === \"description\",\n recursion: false\n }));\n}\n//# sourceMappingURL=accessible-name-and-description.mjs.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { computeTextAlternative } from \"./accessible-name-and-description.mjs\";\nimport { queryIdRefs } from \"./util.mjs\";\n\n/**\n * @param root\n * @param options\n * @returns\n */\nexport function computeAccessibleDescription(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var description = queryIdRefs(root, \"aria-describedby\").map(function (element) {\n return computeTextAlternative(element, _objectSpread(_objectSpread({}, options), {}, {\n compute: \"description\"\n }));\n }).join(\" \");\n\n // TODO: Technically we need to make sure that node wasn't used for the accessible name\n // This causes `description_1.0_combobox-focusable-manual` to fail\n\n // https://w3c.github.io/aria/#aria-description\n // mentions that aria-description should only be calculated if aria-describedby didn't provide\n // a description\n if (description === \"\") {\n var ariaDescription = root.getAttribute(\"aria-description\");\n description = ariaDescription === null ? \"\" : ariaDescription;\n }\n\n // https://www.w3.org/TR/html-aam-1.0/#accessible-name-and-description-computation\n // says for so many elements to use the `title` that we assume all elements are considered\n if (description === \"\") {\n var title = root.getAttribute(\"title\");\n description = title === null ? \"\" : title;\n }\n return description;\n}\n//# sourceMappingURL=accessible-description.mjs.map","import { computeTextAlternative } from \"./accessible-name-and-description.mjs\";\nimport { hasAnyConcreteRoles } from \"./util.mjs\";\n\n/**\n * https://w3c.github.io/aria/#namefromprohibited\n */\nfunction prohibitsNaming(node) {\n return hasAnyConcreteRoles(node, [\"caption\", \"code\", \"deletion\", \"emphasis\", \"generic\", \"insertion\", \"none\", \"paragraph\", \"presentation\", \"strong\", \"subscript\", \"superscript\"]);\n}\n\n/**\n * implements https://w3c.github.io/accname/#mapping_additional_nd_name\n * @param root\n * @param options\n * @returns\n */\nexport function computeAccessibleName(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (prohibitsNaming(root)) {\n return \"\";\n }\n return computeTextAlternative(root, options);\n}\n//# sourceMappingURL=accessible-name.mjs.map","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n;(function(root, factory) {\n\t// https://github.com/umdjs/umd/blob/master/returnExports.js\n\tif (typeof exports == 'object') {\n\t\t// For Node.js.\n\t\tmodule.exports = factory(root);\n\t} else if (typeof define == 'function' && define.amd) {\n\t\t// For AMD. Register as an anonymous module.\n\t\tdefine([], factory.bind(root, root));\n\t} else {\n\t\t// For browser globals (not exposing the function separately).\n\t\tfactory(root);\n\t}\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn root.CSS.escape;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\treturn cssEscape;\n\n}));\n","import redent from 'redent';\nimport { parse } from '@adobe/css-tools';\nimport { computeAccessibleDescription, computeAccessibleName } from 'dom-accessibility-api';\nimport { elementRoles, roles } from 'aria-query';\nimport pico from 'picocolors';\nimport escape from 'css.escape';\n\nclass GenericTypeError extends Error {\n constructor(expectedString, received, matcherFn, context) {\n super();\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, matcherFn);\n }\n let withType = '';\n try {\n withType = context.utils.printWithType(\n 'Received',\n received,\n context.utils.printReceived,\n );\n } catch (e) {\n // Can throw for Document:\n // https://github.com/jsdom/jsdom/issues/2304\n }\n this.message = [\n context.utils.matcherHint(\n `${context.isNot ? '.not' : ''}.${matcherFn.name}`,\n 'received',\n '',\n ),\n '',\n // eslint-disable-next-line new-cap\n `${context.utils.RECEIVED_COLOR(\n 'received',\n )} value must ${expectedString}.`,\n withType,\n ].join('\\n');\n }\n}\n\nclass HtmlElementTypeError extends GenericTypeError {\n constructor(...args) {\n super('be an HTMLElement or an SVGElement', ...args);\n }\n}\n\nclass NodeTypeError extends GenericTypeError {\n constructor(...args) {\n super('be a Node', ...args);\n }\n}\n\nfunction checkHasWindow(htmlElement, ErrorClass, ...args) {\n if (\n !htmlElement ||\n !htmlElement.ownerDocument ||\n !htmlElement.ownerDocument.defaultView\n ) {\n throw new ErrorClass(htmlElement, ...args)\n }\n}\n\nfunction checkNode(node, ...args) {\n checkHasWindow(node, NodeTypeError, ...args);\n const window = node.ownerDocument.defaultView;\n\n if (!(node instanceof window.Node)) {\n throw new NodeTypeError(node, ...args)\n }\n}\n\nfunction checkHtmlElement(htmlElement, ...args) {\n checkHasWindow(htmlElement, HtmlElementTypeError, ...args);\n const window = htmlElement.ownerDocument.defaultView;\n\n if (\n !(htmlElement instanceof window.HTMLElement) &&\n !(htmlElement instanceof window.SVGElement)\n ) {\n throw new HtmlElementTypeError(htmlElement, ...args)\n }\n}\n\nclass InvalidCSSError extends Error {\n constructor(received, matcherFn, context) {\n super();\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, matcherFn);\n }\n this.message = [\n received.message,\n '',\n // eslint-disable-next-line new-cap\n context.utils.RECEIVED_COLOR(`Failing css:`),\n // eslint-disable-next-line new-cap\n context.utils.RECEIVED_COLOR(`${received.css}`),\n ].join('\\n');\n }\n}\n\nfunction parseCSS(css, ...args) {\n const ast = parse(`selector { ${css} }`, {silent: true}).stylesheet;\n\n if (ast.parsingErrors && ast.parsingErrors.length > 0) {\n const {reason, line} = ast.parsingErrors[0];\n\n throw new InvalidCSSError(\n {\n css,\n message: `Syntax error parsing expected css: ${reason} on line: ${line}`,\n },\n ...args,\n )\n }\n\n const parsedRules = ast.rules[0].declarations\n .filter(d => d.type === 'declaration')\n .reduce(\n (obj, {property, value}) => Object.assign(obj, {[property]: value}),\n {},\n );\n return parsedRules\n}\n\nfunction display(context, value) {\n return typeof value === 'string' ? value : context.utils.stringify(value)\n}\n\nfunction getMessage(\n context,\n matcher,\n expectedLabel,\n expectedValue,\n receivedLabel,\n receivedValue,\n) {\n return [\n `${matcher}\\n`,\n // eslint-disable-next-line new-cap\n `${expectedLabel}:\\n${context.utils.EXPECTED_COLOR(\n redent(display(context, expectedValue), 2),\n )}`,\n // eslint-disable-next-line new-cap\n `${receivedLabel}:\\n${context.utils.RECEIVED_COLOR(\n redent(display(context, receivedValue), 2),\n )}`,\n ].join('\\n')\n}\n\nfunction matches(textToMatch, matcher) {\n if (matcher instanceof RegExp) {\n return matcher.test(textToMatch)\n } else {\n return textToMatch.includes(String(matcher))\n }\n}\n\nfunction deprecate(name, replacementText) {\n // Notify user that they are using deprecated functionality.\n // eslint-disable-next-line no-console\n console.warn(\n `Warning: ${name} has been deprecated and will be removed in future updates.`,\n replacementText,\n );\n}\n\nfunction normalize(text) {\n return text.replace(/\\s+/g, ' ').trim()\n}\n\nfunction getTag(element) {\n return element.tagName && element.tagName.toLowerCase()\n}\n\nfunction getSelectValue({multiple, options}) {\n const selectedOptions = [...options].filter(option => option.selected);\n\n if (multiple) {\n return [...selectedOptions].map(opt => opt.value)\n }\n /* istanbul ignore if */\n if (selectedOptions.length === 0) {\n return undefined // Couldn't make this happen, but just in case\n }\n return selectedOptions[0].value\n}\n\nfunction getInputValue(inputElement) {\n switch (inputElement.type) {\n case 'number':\n return inputElement.value === '' ? null : Number(inputElement.value)\n case 'checkbox':\n return inputElement.checked\n default:\n return inputElement.value\n }\n}\n\nconst rolesSupportingValues = ['meter', 'progressbar', 'slider', 'spinbutton'];\nfunction getAccessibleValue(element) {\n if (!rolesSupportingValues.includes(element.getAttribute('role'))) {\n return undefined\n }\n return Number(element.getAttribute('aria-valuenow'))\n}\n\nfunction getSingleElementValue(element) {\n /* istanbul ignore if */\n if (!element) {\n return undefined\n }\n\n switch (element.tagName.toLowerCase()) {\n case 'input':\n return getInputValue(element)\n case 'select':\n return getSelectValue(element)\n default: {\n return element.value ?? getAccessibleValue(element)\n }\n }\n}\n\nfunction toSentence(\n array,\n {wordConnector = ', ', lastWordConnector = ' and '} = {},\n) {\n return [array.slice(0, -1).join(wordConnector), array[array.length - 1]].join(\n array.length > 1 ? lastWordConnector : '',\n )\n}\n\nfunction compareAsSet(val1, val2) {\n if (Array.isArray(val1) && Array.isArray(val2)) {\n return [...new Set(val1)].every(v => new Set(val2).has(v))\n }\n return val1 === val2\n}\n\nfunction toBeInTheDOM(element, container) {\n deprecate(\n 'toBeInTheDOM',\n 'Please use toBeInTheDocument for searching the entire document and toContainElement for searching a specific container.',\n );\n\n if (element) {\n checkHtmlElement(element, toBeInTheDOM, this);\n }\n\n if (container) {\n checkHtmlElement(container, toBeInTheDOM, this);\n }\n\n return {\n pass: container ? container.contains(element) : !!element,\n message: () => {\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeInTheDOM`,\n 'element',\n '',\n ),\n '',\n 'Received:',\n ` ${this.utils.printReceived(\n element ? element.cloneNode(false) : element,\n )}`,\n ].join('\\n')\n },\n }\n}\n\nfunction toBeInTheDocument(element) {\n if (element !== null || !this.isNot) {\n checkHtmlElement(element, toBeInTheDocument, this);\n }\n\n const pass =\n element === null\n ? false\n : element.ownerDocument === element.getRootNode({composed: true});\n\n const errorFound = () => {\n return `expected document not to contain element, found ${this.utils.stringify(\n element.cloneNode(true),\n )} instead`\n };\n const errorNotFound = () => {\n return `element could not be found in the document`\n };\n\n return {\n pass,\n message: () => {\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeInTheDocument`,\n 'element',\n '',\n ),\n '',\n // eslint-disable-next-line new-cap\n this.utils.RECEIVED_COLOR(this.isNot ? errorFound() : errorNotFound()),\n ].join('\\n')\n },\n }\n}\n\nfunction toBeEmpty(element) {\n deprecate(\n 'toBeEmpty',\n 'Please use instead toBeEmptyDOMElement for finding empty nodes in the DOM.',\n );\n checkHtmlElement(element, toBeEmpty, this);\n\n return {\n pass: element.innerHTML === '',\n message: () => {\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeEmpty`,\n 'element',\n '',\n ),\n '',\n 'Received:',\n ` ${this.utils.printReceived(element.innerHTML)}`,\n ].join('\\n')\n },\n }\n}\n\nfunction toBeEmptyDOMElement(element) {\n checkHtmlElement(element, toBeEmptyDOMElement, this);\n\n return {\n pass: isEmptyElement(element),\n message: () => {\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeEmptyDOMElement`,\n 'element',\n '',\n ),\n '',\n 'Received:',\n ` ${this.utils.printReceived(element.innerHTML)}`,\n ].join('\\n')\n },\n }\n}\n\n/**\n * Identifies if an element doesn't contain child nodes (excluding comments)\n * ℹ Node.COMMENT_NODE can't be used because of the following issue \n * https://github.com/jsdom/jsdom/issues/2220\n *\n * @param {*} element an HtmlElement or SVGElement\n * @return {*} true if the element only contains comments or none\n */\nfunction isEmptyElement(element){\n const nonCommentChildNodes = [...element.childNodes].filter(node => node.nodeType !== 8);\n return nonCommentChildNodes.length === 0;\n}\n\nfunction toContainElement(container, element) {\n checkHtmlElement(container, toContainElement, this);\n\n if (element !== null) {\n checkHtmlElement(element, toContainElement, this);\n }\n\n return {\n pass: container.contains(element),\n message: () => {\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toContainElement`,\n 'element',\n 'element',\n ),\n '',\n // eslint-disable-next-line new-cap\n this.utils.RECEIVED_COLOR(`${this.utils.stringify(\n container.cloneNode(false),\n )} ${\n this.isNot ? 'contains:' : 'does not contain:'\n } ${this.utils.stringify(element ? element.cloneNode(false) : element)}\n `),\n ].join('\\n')\n },\n }\n}\n\nfunction getNormalizedHtml(container, htmlText) {\n const div = container.ownerDocument.createElement('div');\n div.innerHTML = htmlText;\n return div.innerHTML\n}\n\nfunction toContainHTML(container, htmlText) {\n checkHtmlElement(container, toContainHTML, this);\n\n if (typeof htmlText !== 'string') {\n throw new Error(`.toContainHTML() expects a string value, got ${htmlText}`)\n }\n\n return {\n pass: container.outerHTML.includes(getNormalizedHtml(container, htmlText)),\n message: () => {\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toContainHTML`,\n 'element',\n '',\n ),\n 'Expected:',\n // eslint-disable-next-line new-cap\n ` ${this.utils.EXPECTED_COLOR(htmlText)}`,\n 'Received:',\n ` ${this.utils.printReceived(container.cloneNode(true))}`,\n ].join('\\n')\n },\n }\n}\n\nfunction toHaveTextContent(\n node,\n checkWith,\n options = {normalizeWhitespace: true},\n) {\n checkNode(node, toHaveTextContent, this);\n\n const textContent = options.normalizeWhitespace\n ? normalize(node.textContent)\n : node.textContent.replace(/\\u00a0/g, ' '); // Replace &nbsp; with normal spaces\n\n const checkingWithEmptyString = textContent !== '' && checkWith === '';\n\n return {\n pass: !checkingWithEmptyString && matches(textContent, checkWith),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveTextContent`,\n 'element',\n '',\n ),\n checkingWithEmptyString\n ? `Checking with empty string will always match, use .toBeEmptyDOMElement() instead`\n : `Expected element ${to} have text content`,\n checkWith,\n 'Received',\n textContent,\n )\n },\n }\n}\n\nfunction toHaveAccessibleDescription(\n htmlElement,\n expectedAccessibleDescription,\n) {\n checkHtmlElement(htmlElement, toHaveAccessibleDescription, this);\n const actualAccessibleDescription = computeAccessibleDescription(htmlElement);\n const missingExpectedValue = arguments.length === 1;\n\n let pass = false;\n if (missingExpectedValue) {\n // When called without an expected value we only want to validate that the element has an\n // accessible description, whatever it may be.\n pass = actualAccessibleDescription !== '';\n } else {\n pass =\n expectedAccessibleDescription instanceof RegExp\n ? expectedAccessibleDescription.test(actualAccessibleDescription)\n : this.equals(\n actualAccessibleDescription,\n expectedAccessibleDescription,\n );\n }\n\n return {\n pass,\n\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.${toHaveAccessibleDescription.name}`,\n 'element',\n '',\n ),\n `Expected element ${to} have accessible description`,\n expectedAccessibleDescription,\n 'Received',\n actualAccessibleDescription,\n )\n },\n }\n}\n\nconst ariaInvalidName = 'aria-invalid';\nconst validStates = ['false'];\n\n// See `aria-errormessage` spec at https://www.w3.org/TR/wai-aria-1.2/#aria-errormessage\nfunction toHaveAccessibleErrorMessage(\n htmlElement,\n expectedAccessibleErrorMessage,\n) {\n checkHtmlElement(htmlElement, toHaveAccessibleErrorMessage, this);\n const to = this.isNot ? 'not to' : 'to';\n const method = this.isNot\n ? '.not.toHaveAccessibleErrorMessage'\n : '.toHaveAccessibleErrorMessage';\n\n // Enforce Valid Id\n const errormessageId = htmlElement.getAttribute('aria-errormessage');\n const errormessageIdInvalid = !!errormessageId && /\\s+/.test(errormessageId);\n\n if (errormessageIdInvalid) {\n return {\n pass: false,\n message: () => {\n return getMessage(\n this,\n this.utils.matcherHint(method, 'element'),\n \"Expected element's `aria-errormessage` attribute to be empty or a single, valid ID\",\n '',\n 'Received',\n `aria-errormessage=\"${errormessageId}\"`,\n )\n },\n }\n }\n\n // See `aria-invalid` spec at https://www.w3.org/TR/wai-aria-1.2/#aria-invalid\n const ariaInvalidVal = htmlElement.getAttribute(ariaInvalidName);\n const fieldValid =\n !htmlElement.hasAttribute(ariaInvalidName) ||\n validStates.includes(ariaInvalidVal);\n\n // Enforce Valid `aria-invalid` Attribute\n if (fieldValid) {\n return {\n pass: false,\n message: () => {\n return getMessage(\n this,\n this.utils.matcherHint(method, 'element'),\n 'Expected element to be marked as invalid with attribute',\n `${ariaInvalidName}=\"${String(true)}\"`,\n 'Received',\n htmlElement.hasAttribute('aria-invalid')\n ? `${ariaInvalidName}=\"${htmlElement.getAttribute(ariaInvalidName)}`\n : null,\n )\n },\n }\n }\n\n const error = normalize(\n htmlElement.ownerDocument.getElementById(errormessageId)?.textContent ?? '',\n );\n\n return {\n pass:\n expectedAccessibleErrorMessage === undefined\n ? Boolean(error)\n : expectedAccessibleErrorMessage instanceof RegExp\n ? expectedAccessibleErrorMessage.test(error)\n : this.equals(error, expectedAccessibleErrorMessage),\n\n message: () => {\n return getMessage(\n this,\n this.utils.matcherHint(method, 'element'),\n `Expected element ${to} have accessible error message`,\n expectedAccessibleErrorMessage ?? '',\n 'Received',\n error,\n )\n },\n }\n}\n\nconst elementRoleList = buildElementRoleList(elementRoles);\n\nfunction toHaveRole(htmlElement, expectedRole) {\n checkHtmlElement(htmlElement, toHaveRole, this);\n\n const actualRoles = getExplicitOrImplicitRoles(htmlElement);\n const pass = actualRoles.some(el => el === expectedRole);\n\n return {\n pass,\n\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.${toHaveRole.name}`,\n 'element',\n '',\n ),\n `Expected element ${to} have role`,\n expectedRole,\n 'Received',\n actualRoles.join(', '),\n )\n },\n }\n}\n\nfunction getExplicitOrImplicitRoles(htmlElement) {\n const hasExplicitRole = htmlElement.hasAttribute('role');\n\n if (hasExplicitRole) {\n const roleValue = htmlElement.getAttribute('role');\n\n // Handle fallback roles, such as role=\"switch button\"\n // testing-library gates this behind the `queryFallbacks` flag; it is\n // unclear why, but it makes sense to support this pattern out of the box\n // https://testing-library.com/docs/queries/byrole/#queryfallbacks\n return roleValue.split(' ').filter(Boolean)\n }\n\n const implicitRoles = getImplicitAriaRoles(htmlElement);\n\n return implicitRoles\n}\n\nfunction getImplicitAriaRoles(currentNode) {\n for (const {match, roles} of elementRoleList) {\n if (match(currentNode)) {\n return [...roles]\n }\n }\n\n /* istanbul ignore next */\n return [] // this does not get reached in practice, since elements have at least a 'generic' role\n}\n\n/**\n * Transform the roles map (with required attributes and constraints) to a list\n * of roles. Each item in the list has functions to match an element against it.\n *\n * Essentially copied over from [dom-testing-library's\n * helpers](https://github.com/testing-library/dom-testing-library/blob/bd04cf95a1ed85a2238f7dfc1a77d5d16b4f59dc/src/role-helpers.js#L80)\n *\n * TODO: If we are truly just copying over stuff, would it make sense to move\n * this to a separate package?\n *\n * TODO: This technique relies on CSS selectors; are those consistently\n * available in all jest-dom environments? Why do other matchers in this package\n * not use them like this?\n */\nfunction buildElementRoleList(elementRolesMap) {\n function makeElementSelector({name, attributes}) {\n return `${name}${attributes\n .map(({name: attributeName, value, constraints = []}) => {\n const shouldNotExist = constraints.indexOf('undefined') !== -1;\n if (shouldNotExist) {\n return `:not([${attributeName}])`\n } else if (value) {\n return `[${attributeName}=\"${value}\"]`\n } else {\n return `[${attributeName}]`\n }\n })\n .join('')}`\n }\n\n function getSelectorSpecificity({attributes = []}) {\n return attributes.length\n }\n\n function bySelectorSpecificity(\n {specificity: leftSpecificity},\n {specificity: rightSpecificity},\n ) {\n return rightSpecificity - leftSpecificity\n }\n\n function match(element) {\n let {attributes = []} = element;\n\n // https://github.com/testing-library/dom-testing-library/issues/814\n const typeTextIndex = attributes.findIndex(\n attribute =>\n attribute.value &&\n attribute.name === 'type' &&\n attribute.value === 'text',\n );\n\n if (typeTextIndex >= 0) {\n // not using splice to not mutate the attributes array\n attributes = [\n ...attributes.slice(0, typeTextIndex),\n ...attributes.slice(typeTextIndex + 1),\n ];\n }\n\n const selector = makeElementSelector({...element, attributes});\n\n return node => {\n if (typeTextIndex >= 0 && node.type !== 'text') {\n return false\n }\n\n return node.matches(selector)\n }\n }\n\n let result = [];\n\n for (const [element, roles] of elementRolesMap.entries()) {\n result = [\n ...result,\n {\n match: match(element),\n roles: Array.from(roles),\n specificity: getSelectorSpecificity(element),\n },\n ];\n }\n\n return result.sort(bySelectorSpecificity)\n}\n\nfunction toHaveAccessibleName(htmlElement, expectedAccessibleName) {\n checkHtmlElement(htmlElement, toHaveAccessibleName, this);\n const actualAccessibleName = computeAccessibleName(htmlElement);\n const missingExpectedValue = arguments.length === 1;\n\n let pass = false;\n if (missingExpectedValue) {\n // When called without an expected value we only want to validate that the element has an\n // accessible name, whatever it may be.\n pass = actualAccessibleName !== '';\n } else {\n pass =\n expectedAccessibleName instanceof RegExp\n ? expectedAccessibleName.test(actualAccessibleName)\n : this.equals(actualAccessibleName, expectedAccessibleName);\n }\n\n return {\n pass,\n\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.${toHaveAccessibleName.name}`,\n 'element',\n '',\n ),\n `Expected element ${to} have accessible name`,\n expectedAccessibleName,\n 'Received',\n actualAccessibleName,\n )\n },\n }\n}\n\nfunction printAttribute(stringify, name, value) {\n return value === undefined ? name : `${name}=${stringify(value)}`\n}\n\nfunction getAttributeComment(stringify, name, value) {\n return value === undefined\n ? `element.hasAttribute(${stringify(name)})`\n : `element.getAttribute(${stringify(name)}) === ${stringify(value)}`\n}\n\nfunction toHaveAttribute(htmlElement, name, expectedValue) {\n checkHtmlElement(htmlElement, toHaveAttribute, this);\n const isExpectedValuePresent = expectedValue !== undefined;\n const hasAttribute = htmlElement.hasAttribute(name);\n const receivedValue = htmlElement.getAttribute(name);\n return {\n pass: isExpectedValuePresent\n ? hasAttribute && this.equals(receivedValue, expectedValue)\n : hasAttribute,\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n const receivedAttribute = hasAttribute\n ? printAttribute(this.utils.stringify, name, receivedValue)\n : null;\n const matcher = this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveAttribute`,\n 'element',\n this.utils.printExpected(name),\n {\n secondArgument: isExpectedValuePresent\n ? this.utils.printExpected(expectedValue)\n : undefined,\n comment: getAttributeComment(\n this.utils.stringify,\n name,\n expectedValue,\n ),\n },\n );\n return getMessage(\n this,\n matcher,\n `Expected the element ${to} have attribute`,\n printAttribute(this.utils.stringify, name, expectedValue),\n 'Received',\n receivedAttribute,\n )\n },\n }\n}\n\nfunction getExpectedClassNamesAndOptions(params) {\n const lastParam = params.pop();\n let expectedClassNames, options;\n\n if (typeof lastParam === 'object' && !(lastParam instanceof RegExp)) {\n expectedClassNames = params;\n options = lastParam;\n } else {\n expectedClassNames = params.concat(lastParam);\n options = {exact: false};\n }\n return {expectedClassNames, options}\n}\n\nfunction splitClassNames(str) {\n if (!str) return []\n return str.split(/\\s+/).filter(s => s.length > 0)\n}\n\nfunction isSubset$1(subset, superset) {\n return subset.every(strOrRegexp =>\n typeof strOrRegexp === 'string'\n ? superset.includes(strOrRegexp)\n : superset.some(className => strOrRegexp.test(className)),\n )\n}\n\nfunction toHaveClass(htmlElement, ...params) {\n checkHtmlElement(htmlElement, toHaveClass, this);\n const {expectedClassNames, options} = getExpectedClassNamesAndOptions(params);\n\n const received = splitClassNames(htmlElement.getAttribute('class'));\n const expected = expectedClassNames.reduce(\n (acc, className) =>\n acc.concat(\n typeof className === 'string' || !className\n ? splitClassNames(className)\n : className,\n ),\n [],\n );\n\n const hasRegExp = expected.some(className => className instanceof RegExp);\n if (options.exact && hasRegExp) {\n throw new Error('Exact option does not support RegExp expected class names')\n }\n\n if (options.exact) {\n return {\n pass: isSubset$1(expected, received) && expected.length === received.length,\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveClass`,\n 'element',\n this.utils.printExpected(expected.join(' ')),\n ),\n `Expected the element ${to} have EXACTLY defined classes`,\n expected.join(' '),\n 'Received',\n received.join(' '),\n )\n },\n }\n }\n\n return expected.length > 0\n ? {\n pass: isSubset$1(expected, received),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveClass`,\n 'element',\n this.utils.printExpected(expected.join(' ')),\n ),\n `Expected the element ${to} have class`,\n expected.join(' '),\n 'Received',\n received.join(' '),\n )\n },\n }\n : {\n pass: this.isNot ? received.length > 0 : false,\n message: () =>\n this.isNot\n ? getMessage(\n this,\n this.utils.matcherHint('.not.toHaveClass', 'element', ''),\n 'Expected the element to have classes',\n '(none)',\n 'Received',\n received.join(' '),\n )\n : [\n this.utils.matcherHint(`.toHaveClass`, 'element'),\n 'At least one expected class must be provided.',\n ].join('\\n'),\n }\n}\n\nfunction getStyleDeclaration(document, css) {\n const styles = {};\n\n // The next block is necessary to normalize colors\n const copy = document.createElement('div');\n Object.keys(css).forEach(property => {\n copy.style[property] = css[property];\n styles[property] = copy.style[property];\n });\n\n return styles\n}\n\nfunction isSubset(styles, computedStyle) {\n return (\n !!Object.keys(styles).length &&\n Object.entries(styles).every(([prop, value]) => {\n const isCustomProperty = prop.startsWith('--');\n const spellingVariants = [prop];\n if (!isCustomProperty) spellingVariants.push(prop.toLowerCase());\n\n return spellingVariants.some(\n name =>\n computedStyle[name] === value ||\n computedStyle.getPropertyValue(name) === value,\n )\n })\n )\n}\n\nfunction printoutStyles(styles) {\n return Object.keys(styles)\n .sort()\n .map(prop => `${prop}: ${styles[prop]};`)\n .join('\\n')\n}\n\n// Highlights only style rules that were expected but were not found in the\n// received computed styles\nfunction expectedDiff(diffFn, expected, computedStyles) {\n const received = Array.from(computedStyles)\n .filter(prop => expected[prop] !== undefined)\n .reduce(\n (obj, prop) =>\n Object.assign(obj, {[prop]: computedStyles.getPropertyValue(prop)}),\n {},\n );\n const diffOutput = diffFn(printoutStyles(expected), printoutStyles(received));\n // Remove the \"+ Received\" annotation because this is a one-way diff\n return diffOutput.replace(`${pico.red('+ Received')}\\n`, '')\n}\n\nfunction toHaveStyle(htmlElement, css) {\n checkHtmlElement(htmlElement, toHaveStyle, this);\n const parsedCSS =\n typeof css === 'object' ? css : parseCSS(css, toHaveStyle, this);\n const {getComputedStyle} = htmlElement.ownerDocument.defaultView;\n\n const expected = getStyleDeclaration(htmlElement.ownerDocument, parsedCSS);\n const received = getComputedStyle(htmlElement);\n\n return {\n pass: isSubset(expected, received),\n message: () => {\n const matcher = `${this.isNot ? '.not' : ''}.toHaveStyle`;\n return [\n this.utils.matcherHint(matcher, 'element', ''),\n expectedDiff(this.utils.diff, expected, received),\n ].join('\\n\\n')\n },\n }\n}\n\nfunction toHaveFocus(element) {\n checkHtmlElement(element, toHaveFocus, this);\n\n return {\n pass: element.ownerDocument.activeElement === element,\n message: () => {\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveFocus`,\n 'element',\n '',\n ),\n '',\n ...(this.isNot\n ? [\n 'Received element is focused:',\n ` ${this.utils.printReceived(element)}`,\n ]\n : [\n 'Expected element with focus:',\n ` ${this.utils.printExpected(element)}`,\n 'Received element with focus:',\n ` ${this.utils.printReceived(\n element.ownerDocument.activeElement,\n )}`,\n ]),\n ].join('\\n')\n },\n }\n}\n\n// Returns the combined value of several elements that have the same name\n// e.g. radio buttons or groups of checkboxes\nfunction getMultiElementValue(elements) {\n const types = [...new Set(elements.map(element => element.type))];\n if (types.length !== 1) {\n throw new Error(\n 'Multiple form elements with the same name must be of the same type',\n )\n }\n switch (types[0]) {\n case 'radio': {\n const theChosenOne = elements.find(radio => radio.checked);\n return theChosenOne ? theChosenOne.value : undefined\n }\n case 'checkbox':\n return elements\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value)\n default:\n // NOTE: Not even sure this is a valid use case, but just in case...\n return elements.map(element => element.value)\n }\n}\n\nfunction getFormValue(container, name) {\n const elements = [...container.querySelectorAll(`[name=\"${escape(name)}\"]`)];\n /* istanbul ignore if */\n if (elements.length === 0) {\n return undefined // shouldn't happen, but just in case\n }\n switch (elements.length) {\n case 1:\n return getSingleElementValue(elements[0])\n default:\n return getMultiElementValue(elements)\n }\n}\n\n// Strips the `[]` suffix off a form value name\nfunction getPureName(name) {\n return /\\[\\]$/.test(name) ? name.slice(0, -2) : name\n}\n\nfunction getAllFormValues(container) {\n const names = Array.from(container.elements).map(element => element.name);\n return names.reduce(\n (obj, name) => ({\n ...obj,\n [getPureName(name)]: getFormValue(container, name),\n }),\n {},\n )\n}\n\nfunction toHaveFormValues(formElement, expectedValues) {\n checkHtmlElement(formElement, toHaveFormValues, this);\n if (!formElement.elements) {\n // TODO: Change condition to use instanceof against the appropriate element classes instead\n throw new Error('toHaveFormValues must be called on a form or a fieldset')\n }\n const formValues = getAllFormValues(formElement);\n return {\n pass: Object.entries(expectedValues).every(([name, expectedValue]) =>\n compareAsSet(formValues[name], expectedValue),\n ),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n const matcher = `${this.isNot ? '.not' : ''}.toHaveFormValues`;\n const commonKeyValues = Object.keys(formValues)\n .filter(key => expectedValues.hasOwnProperty(key))\n .reduce((obj, key) => ({...obj, [key]: formValues[key]}), {});\n return [\n this.utils.matcherHint(matcher, 'element', ''),\n `Expected the element ${to} have form values`,\n this.utils.diff(expectedValues, commonKeyValues),\n ].join('\\n\\n')\n },\n }\n}\n\nfunction isStyleVisible(element) {\n const {getComputedStyle} = element.ownerDocument.defaultView;\n\n const {display, visibility, opacity} = getComputedStyle(element);\n return (\n display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse' &&\n opacity !== '0' &&\n opacity !== 0\n )\n}\n\nfunction isAttributeVisible(element, previousElement) {\n let detailsVisibility;\n\n if (previousElement) {\n detailsVisibility =\n element.nodeName === 'DETAILS' && previousElement.nodeName !== 'SUMMARY'\n ? element.hasAttribute('open')\n : true;\n } else {\n detailsVisibility =\n element.nodeName === 'DETAILS' ? element.hasAttribute('open') : true;\n }\n\n return !element.hasAttribute('hidden') && detailsVisibility\n}\n\nfunction isElementVisible(element, previousElement) {\n return (\n isStyleVisible(element) &&\n isAttributeVisible(element, previousElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n )\n}\n\nfunction toBeVisible(element) {\n checkHtmlElement(element, toBeVisible, this);\n const isInDocument =\n element.ownerDocument === element.getRootNode({composed: true});\n const isVisible = isInDocument && isElementVisible(element);\n return {\n pass: isVisible,\n message: () => {\n const is = isVisible ? 'is' : 'is not';\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeVisible`,\n 'element',\n '',\n ),\n '',\n `Received element ${is} visible${\n isInDocument ? '' : ' (element is not in the document)'\n }:`,\n ` ${this.utils.printReceived(element.cloneNode(false))}`,\n ].join('\\n')\n },\n }\n}\n\n// form elements that support 'disabled'\nconst FORM_TAGS$2 = [\n 'fieldset',\n 'input',\n 'select',\n 'optgroup',\n 'option',\n 'button',\n 'textarea',\n];\n\n/*\n * According to specification:\n * If <fieldset> is disabled, the form controls that are its descendants,\n * except descendants of its first optional <legend> element, are disabled\n *\n * https://html.spec.whatwg.org/multipage/form-elements.html#concept-fieldset-disabled\n *\n * This method tests whether element is first legend child of fieldset parent\n */\nfunction isFirstLegendChildOfFieldset(element, parent) {\n return (\n getTag(element) === 'legend' &&\n getTag(parent) === 'fieldset' &&\n element.isSameNode(\n Array.from(parent.children).find(child => getTag(child) === 'legend'),\n )\n )\n}\n\nfunction isElementDisabledByParent(element, parent) {\n return (\n isElementDisabled(parent) && !isFirstLegendChildOfFieldset(element, parent)\n )\n}\n\nfunction isCustomElement(tag) {\n return tag.includes('-')\n}\n\n/*\n * Only certain form elements and custom elements can actually be disabled:\n * https://html.spec.whatwg.org/multipage/semantics-other.html#disabled-elements\n */\nfunction canElementBeDisabled(element) {\n const tag = getTag(element);\n return FORM_TAGS$2.includes(tag) || isCustomElement(tag)\n}\n\nfunction isElementDisabled(element) {\n return canElementBeDisabled(element) && element.hasAttribute('disabled')\n}\n\nfunction isAncestorDisabled(element) {\n const parent = element.parentElement;\n return (\n Boolean(parent) &&\n (isElementDisabledByParent(element, parent) || isAncestorDisabled(parent))\n )\n}\n\nfunction isElementOrAncestorDisabled(element) {\n return (\n canElementBeDisabled(element) &&\n (isElementDisabled(element) || isAncestorDisabled(element))\n )\n}\n\nfunction toBeDisabled(element) {\n checkHtmlElement(element, toBeDisabled, this);\n\n const isDisabled = isElementOrAncestorDisabled(element);\n\n return {\n pass: isDisabled,\n message: () => {\n const is = isDisabled ? 'is' : 'is not';\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeDisabled`,\n 'element',\n '',\n ),\n '',\n `Received element ${is} disabled:`,\n ` ${this.utils.printReceived(element.cloneNode(false))}`,\n ].join('\\n')\n },\n }\n}\n\nfunction toBeEnabled(element) {\n checkHtmlElement(element, toBeEnabled, this);\n\n const isEnabled = !isElementOrAncestorDisabled(element);\n\n return {\n pass: isEnabled,\n message: () => {\n const is = isEnabled ? 'is' : 'is not';\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeEnabled`,\n 'element',\n '',\n ),\n '',\n `Received element ${is} enabled:`,\n ` ${this.utils.printReceived(element.cloneNode(false))}`,\n ].join('\\n')\n },\n }\n}\n\n// form elements that support 'required'\nconst FORM_TAGS$1 = ['select', 'textarea'];\n\nconst ARIA_FORM_TAGS = ['input', 'select', 'textarea'];\n\nconst UNSUPPORTED_INPUT_TYPES = [\n 'color',\n 'hidden',\n 'range',\n 'submit',\n 'image',\n 'reset',\n];\n\nconst SUPPORTED_ARIA_ROLES = [\n 'checkbox',\n 'combobox',\n 'gridcell',\n 'listbox',\n 'radiogroup',\n 'spinbutton',\n 'textbox',\n 'tree',\n];\n\nfunction isRequiredOnFormTagsExceptInput(element) {\n return FORM_TAGS$1.includes(getTag(element)) && element.hasAttribute('required')\n}\n\nfunction isRequiredOnSupportedInput(element) {\n return (\n getTag(element) === 'input' &&\n element.hasAttribute('required') &&\n ((element.hasAttribute('type') &&\n !UNSUPPORTED_INPUT_TYPES.includes(element.getAttribute('type'))) ||\n !element.hasAttribute('type'))\n )\n}\n\nfunction isElementRequiredByARIA(element) {\n return (\n element.hasAttribute('aria-required') &&\n element.getAttribute('aria-required') === 'true' &&\n (ARIA_FORM_TAGS.includes(getTag(element)) ||\n (element.hasAttribute('role') &&\n SUPPORTED_ARIA_ROLES.includes(element.getAttribute('role'))))\n )\n}\n\nfunction toBeRequired(element) {\n checkHtmlElement(element, toBeRequired, this);\n\n const isRequired =\n isRequiredOnFormTagsExceptInput(element) ||\n isRequiredOnSupportedInput(element) ||\n isElementRequiredByARIA(element);\n\n return {\n pass: isRequired,\n message: () => {\n const is = isRequired ? 'is' : 'is not';\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeRequired`,\n 'element',\n '',\n ),\n '',\n `Received element ${is} required:`,\n ` ${this.utils.printReceived(element.cloneNode(false))}`,\n ].join('\\n')\n },\n }\n}\n\nconst FORM_TAGS = ['form', 'input', 'select', 'textarea'];\n\nfunction isElementHavingAriaInvalid(element) {\n return (\n element.hasAttribute('aria-invalid') &&\n element.getAttribute('aria-invalid') !== 'false'\n )\n}\n\nfunction isSupportsValidityMethod(element) {\n return FORM_TAGS.includes(getTag(element))\n}\n\nfunction isElementInvalid(element) {\n const isHaveAriaInvalid = isElementHavingAriaInvalid(element);\n if (isSupportsValidityMethod(element)) {\n return isHaveAriaInvalid || !element.checkValidity()\n } else {\n return isHaveAriaInvalid\n }\n}\n\nfunction toBeInvalid(element) {\n checkHtmlElement(element, toBeInvalid, this);\n\n const isInvalid = isElementInvalid(element);\n\n return {\n pass: isInvalid,\n message: () => {\n const is = isInvalid ? 'is' : 'is not';\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeInvalid`,\n 'element',\n '',\n ),\n '',\n `Received element ${is} currently invalid:`,\n ` ${this.utils.printReceived(element.cloneNode(false))}`,\n ].join('\\n')\n },\n }\n}\n\nfunction toBeValid(element) {\n checkHtmlElement(element, toBeValid, this);\n\n const isValid = !isElementInvalid(element);\n\n return {\n pass: isValid,\n message: () => {\n const is = isValid ? 'is' : 'is not';\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeValid`,\n 'element',\n '',\n ),\n '',\n `Received element ${is} currently valid:`,\n ` ${this.utils.printReceived(element.cloneNode(false))}`,\n ].join('\\n')\n },\n }\n}\n\nfunction toHaveValue(htmlElement, expectedValue) {\n checkHtmlElement(htmlElement, toHaveValue, this);\n\n if (\n htmlElement.tagName.toLowerCase() === 'input' &&\n ['checkbox', 'radio'].includes(htmlElement.type)\n ) {\n throw new Error(\n 'input with type=checkbox or type=radio cannot be used with .toHaveValue(). Use .toBeChecked() for type=checkbox or .toHaveFormValues() instead',\n )\n }\n\n const receivedValue = getSingleElementValue(htmlElement);\n const expectsValue = expectedValue !== undefined;\n\n let expectedTypedValue = expectedValue;\n let receivedTypedValue = receivedValue;\n if (expectedValue == receivedValue && expectedValue !== receivedValue) {\n expectedTypedValue = `${expectedValue} (${typeof expectedValue})`;\n receivedTypedValue = `${receivedValue} (${typeof receivedValue})`;\n }\n\n return {\n pass: expectsValue\n ? compareAsSet(receivedValue, expectedValue)\n : Boolean(receivedValue),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n const matcher = this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveValue`,\n 'element',\n expectedValue,\n );\n return getMessage(\n this,\n matcher,\n `Expected the element ${to} have value`,\n expectsValue ? expectedTypedValue : '(any)',\n 'Received',\n receivedTypedValue,\n )\n },\n }\n}\n\nfunction toHaveDisplayValue(htmlElement, expectedValue) {\n checkHtmlElement(htmlElement, toHaveDisplayValue, this);\n const tagName = htmlElement.tagName.toLowerCase();\n\n if (!['select', 'input', 'textarea'].includes(tagName)) {\n throw new Error(\n '.toHaveDisplayValue() currently supports only input, textarea or select elements, try with another matcher instead.',\n )\n }\n\n if (tagName === 'input' && ['radio', 'checkbox'].includes(htmlElement.type)) {\n throw new Error(\n `.toHaveDisplayValue() currently does not support input[type=\"${htmlElement.type}\"], try with another matcher instead.`,\n )\n }\n\n const values = getValues(tagName, htmlElement);\n const expectedValues = getExpectedValues(expectedValue);\n const numberOfMatchesWithValues = expectedValues.filter(expected =>\n values.some(value =>\n expected instanceof RegExp\n ? expected.test(value)\n : this.equals(value, String(expected)),\n ),\n ).length;\n\n const matchedWithAllValues = numberOfMatchesWithValues === values.length;\n const matchedWithAllExpectedValues =\n numberOfMatchesWithValues === expectedValues.length;\n\n return {\n pass: matchedWithAllValues && matchedWithAllExpectedValues,\n message: () =>\n getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveDisplayValue`,\n 'element',\n '',\n ),\n `Expected element ${this.isNot ? 'not ' : ''}to have display value`,\n expectedValue,\n 'Received',\n values,\n ),\n }\n}\n\nfunction getValues(tagName, htmlElement) {\n return tagName === 'select'\n ? Array.from(htmlElement)\n .filter(option => option.selected)\n .map(option => option.textContent)\n : [htmlElement.value]\n}\n\nfunction getExpectedValues(expectedValue) {\n return expectedValue instanceof Array ? expectedValue : [expectedValue]\n}\n\nfunction toBeChecked(element) {\n checkHtmlElement(element, toBeChecked, this);\n\n const isValidInput = () => {\n return (\n element.tagName.toLowerCase() === 'input' &&\n ['checkbox', 'radio'].includes(element.type)\n )\n };\n\n const isValidAriaElement = () => {\n return (\n roleSupportsChecked(element.getAttribute('role')) &&\n ['true', 'false'].includes(element.getAttribute('aria-checked'))\n )\n };\n\n if (!isValidInput() && !isValidAriaElement()) {\n return {\n pass: false,\n message: () =>\n `only inputs with type=\"checkbox\" or type=\"radio\" or elements with ${supportedRolesSentence()} and a valid aria-checked attribute can be used with .toBeChecked(). Use .toHaveValue() instead`,\n }\n }\n\n const isChecked = () => {\n if (isValidInput()) return element.checked\n return element.getAttribute('aria-checked') === 'true'\n };\n\n return {\n pass: isChecked(),\n message: () => {\n const is = isChecked() ? 'is' : 'is not';\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBeChecked`,\n 'element',\n '',\n ),\n '',\n `Received element ${is} checked:`,\n ` ${this.utils.printReceived(element.cloneNode(false))}`,\n ].join('\\n')\n },\n }\n}\n\nfunction supportedRolesSentence() {\n return toSentence(\n supportedRoles().map(role => `role=\"${role}\"`),\n {lastWordConnector: ' or '},\n )\n}\n\nfunction supportedRoles() {\n return roles.keys().filter(roleSupportsChecked)\n}\n\nfunction roleSupportsChecked(role) {\n return roles.get(role)?.props['aria-checked'] !== undefined\n}\n\nfunction toBePartiallyChecked(element) {\n checkHtmlElement(element, toBePartiallyChecked, this);\n\n const isValidInput = () => {\n return (\n element.tagName.toLowerCase() === 'input' && element.type === 'checkbox'\n )\n };\n\n const isValidAriaElement = () => {\n return element.getAttribute('role') === 'checkbox'\n };\n\n if (!isValidInput() && !isValidAriaElement()) {\n return {\n pass: false,\n message: () =>\n 'only inputs with type=\"checkbox\" or elements with role=\"checkbox\" and a valid aria-checked attribute can be used with .toBePartiallyChecked(). Use .toHaveValue() instead',\n }\n }\n\n const isPartiallyChecked = () => {\n const isAriaMixed = element.getAttribute('aria-checked') === 'mixed';\n\n if (isValidInput()) {\n return element.indeterminate || isAriaMixed\n }\n\n return isAriaMixed\n };\n\n return {\n pass: isPartiallyChecked(),\n message: () => {\n const is = isPartiallyChecked() ? 'is' : 'is not';\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBePartiallyChecked`,\n 'element',\n '',\n ),\n '',\n `Received element ${is} partially checked:`,\n ` ${this.utils.printReceived(element.cloneNode(false))}`,\n ].join('\\n')\n },\n }\n}\n\n// See algoritm: https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description\nfunction toHaveDescription(htmlElement, checkWith) {\n deprecate(\n 'toHaveDescription',\n 'Please use toHaveAccessibleDescription.',\n );\n\n checkHtmlElement(htmlElement, toHaveDescription, this);\n\n const expectsDescription = checkWith !== undefined;\n\n const descriptionIDRaw = htmlElement.getAttribute('aria-describedby') || '';\n const descriptionIDs = descriptionIDRaw.split(/\\s+/).filter(Boolean);\n let description = '';\n if (descriptionIDs.length > 0) {\n const document = htmlElement.ownerDocument;\n const descriptionEls = descriptionIDs\n .map(descriptionID => document.getElementById(descriptionID))\n .filter(Boolean);\n description = normalize(descriptionEls.map(el => el.textContent).join(' '));\n }\n\n return {\n pass: expectsDescription\n ? checkWith instanceof RegExp\n ? checkWith.test(description)\n : this.equals(description, checkWith)\n : Boolean(description),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveDescription`,\n 'element',\n '',\n ),\n `Expected the element ${to} have description`,\n this.utils.printExpected(checkWith),\n 'Received',\n this.utils.printReceived(description),\n )\n },\n }\n}\n\n// See aria-errormessage spec https://www.w3.org/TR/wai-aria-1.2/#aria-errormessage\nfunction toHaveErrorMessage(htmlElement, checkWith) {\n deprecate('toHaveErrorMessage', 'Please use toHaveAccessibleErrorMessage.');\n checkHtmlElement(htmlElement, toHaveErrorMessage, this);\n\n if (\n !htmlElement.hasAttribute('aria-invalid') ||\n htmlElement.getAttribute('aria-invalid') === 'false'\n ) {\n const not = this.isNot ? '.not' : '';\n\n return {\n pass: false,\n message: () => {\n return getMessage(\n this,\n this.utils.matcherHint(`${not}.toHaveErrorMessage`, 'element', ''),\n `Expected the element to have invalid state indicated by`,\n 'aria-invalid=\"true\"',\n 'Received',\n htmlElement.hasAttribute('aria-invalid')\n ? `aria-invalid=\"${htmlElement.getAttribute('aria-invalid')}\"`\n : this.utils.printReceived(''),\n )\n },\n }\n }\n\n const expectsErrorMessage = checkWith !== undefined;\n\n const errormessageIDRaw = htmlElement.getAttribute('aria-errormessage') || '';\n const errormessageIDs = errormessageIDRaw.split(/\\s+/).filter(Boolean);\n\n let errormessage = '';\n if (errormessageIDs.length > 0) {\n const document = htmlElement.ownerDocument;\n\n const errormessageEls = errormessageIDs\n .map(errormessageID => document.getElementById(errormessageID))\n .filter(Boolean);\n\n errormessage = normalize(\n errormessageEls.map(el => el.textContent).join(' '),\n );\n }\n\n return {\n pass: expectsErrorMessage\n ? checkWith instanceof RegExp\n ? checkWith.test(errormessage)\n : this.equals(errormessage, checkWith)\n : Boolean(errormessage),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return getMessage(\n this,\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveErrorMessage`,\n 'element',\n '',\n ),\n `Expected the element ${to} have error message`,\n this.utils.printExpected(checkWith),\n 'Received',\n this.utils.printReceived(errormessage),\n )\n },\n }\n}\n\n/**\n * Returns the selection from the element.\n *\n * @param element {HTMLElement} The element to get the selection from.\n * @returns {String} The selection.\n */\nfunction getSelection(element) {\n const selection = element.ownerDocument.getSelection();\n\n if (['input', 'textarea'].includes(element.tagName.toLowerCase())) {\n if (['radio', 'checkbox'].includes(element.type)) return ''\n return element.value\n .toString()\n .substring(element.selectionStart, element.selectionEnd)\n }\n\n if (selection.anchorNode === null || selection.focusNode === null) {\n // No selection\n return ''\n }\n\n const originalRange = selection.getRangeAt(0);\n const temporaryRange = element.ownerDocument.createRange();\n\n if (selection.containsNode(element, false)) {\n // Whole element is inside selection\n temporaryRange.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(temporaryRange);\n } else if (\n element.contains(selection.anchorNode) &&\n element.contains(selection.focusNode)\n ) ; else {\n // Element is partially selected\n const selectionStartsWithinElement =\n element === originalRange.startContainer ||\n element.contains(originalRange.startContainer);\n const selectionEndsWithinElement =\n element === originalRange.endContainer ||\n element.contains(originalRange.endContainer);\n selection.removeAllRanges();\n\n if (selectionStartsWithinElement || selectionEndsWithinElement) {\n temporaryRange.selectNodeContents(element);\n\n if (selectionStartsWithinElement) {\n temporaryRange.setStart(\n originalRange.startContainer,\n originalRange.startOffset,\n );\n }\n if (selectionEndsWithinElement) {\n temporaryRange.setEnd(\n originalRange.endContainer,\n originalRange.endOffset,\n );\n }\n\n selection.addRange(temporaryRange);\n }\n }\n\n const result = selection.toString();\n\n selection.removeAllRanges();\n selection.addRange(originalRange);\n\n return result\n}\n\n/**\n * Checks if the element has the string selected.\n *\n * @param htmlElement {HTMLElement} The html element to check the selection for.\n * @param expectedSelection {String} The selection as a string.\n */\nfunction toHaveSelection(htmlElement, expectedSelection) {\n checkHtmlElement(htmlElement, toHaveSelection, this);\n\n const expectsSelection = expectedSelection !== undefined;\n\n if (expectsSelection && typeof expectedSelection !== 'string') {\n throw new Error(`expected selection must be a string or undefined`)\n }\n\n const receivedSelection = getSelection(htmlElement);\n\n return {\n pass: expectsSelection\n ? compareAsSet(receivedSelection, expectedSelection)\n : Boolean(receivedSelection),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n const matcher = this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveSelection`,\n 'element',\n expectedSelection,\n );\n return getMessage(\n this,\n matcher,\n `Expected the element ${to} have selection`,\n expectsSelection ? expectedSelection : '(any)',\n 'Received',\n receivedSelection,\n )\n },\n }\n}\n\nfunction toBePressed(element) {\n checkHtmlElement(element, toBePressed, this);\n\n const roles = (element.getAttribute('role') || '')\n .split(' ')\n .map(role => role.trim());\n\n const isButton =\n element.tagName.toLowerCase() === 'button' ||\n (element.tagName.toLowerCase() === 'input' && element.type === 'button') ||\n roles.includes('button');\n\n const pressedAttribute = element.getAttribute('aria-pressed');\n\n const isValidAriaElement =\n pressedAttribute === 'true' || pressedAttribute === 'false';\n\n if (!isButton || !isValidAriaElement) {\n return {\n pass: false,\n message: () =>\n `Only button or input with type=\"button\" or element with role=\"button\" and a valid aria-pressed attribute can be used with .toBePressed()`,\n }\n }\n\n const isPressed = pressedAttribute === 'true';\n\n return {\n pass: isButton && isPressed,\n\n message: () => {\n const matcher = this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBePressed`,\n 'element',\n '',\n );\n\n return getMessage(\n this,\n matcher,\n `Expected element to have`,\n `aria-pressed=\"${this.isNot ? 'false' : 'true'}\"`,\n `Received`,\n `aria-pressed=\"${pressedAttribute}\"`,\n )\n },\n }\n}\n\nfunction toBePartiallyPressed(element) {\n checkHtmlElement(element, toBePartiallyPressed, this);\n\n const roles = (element.getAttribute('role') || '')\n .split(' ')\n .map(role => role.trim());\n\n const isButton =\n element.tagName.toLowerCase() === 'button' ||\n (element.tagName.toLowerCase() === 'input' && element.type === 'button') ||\n roles.includes('button');\n\n const pressedAttribute = element.getAttribute('aria-pressed');\n\n const isValidAriaElement =\n pressedAttribute === 'true' ||\n pressedAttribute === 'false' ||\n pressedAttribute === 'mixed';\n\n if (!isButton || !isValidAriaElement) {\n return {\n pass: false,\n message: () =>\n `Only button or input with type=\"button\" or element with role=\"button\" and a valid aria-pressed attribute can be used with .toBePartiallyPressed()`,\n }\n }\n\n const isPartiallyPressed = pressedAttribute === 'mixed';\n\n return {\n pass: isButton && isPartiallyPressed,\n\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n\n const matcher = this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.toBePartiallyPressed`,\n 'element',\n '',\n );\n\n return getMessage(\n this,\n matcher,\n `Expected element ${to} have`,\n `aria-pressed=\"mixed\"`,\n `Received`,\n `aria-pressed=\"${pressedAttribute}\"`,\n )\n },\n }\n}\n\n// ref: https://dom.spec.whatwg.org/#dom-node-document_position_disconnected\nconst DOCUMENT_POSITION_DISCONNECTED = 0x01;\nconst DOCUMENT_POSITION_PRECEDING = 0x02;\nconst DOCUMENT_POSITION_FOLLOWING = 0x04;\nconst DOCUMENT_POSITION_CONTAINS = 0x08;\nconst DOCUMENT_POSITION_CONTAINED_BY = 0x10;\nconst DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;\n\n// ref: https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\nconst DOCUMENT_POSITIONS_STRINGS = {\n [DOCUMENT_POSITION_DISCONNECTED]: 'Node.DOCUMENT_POSITION_DISCONNECTED',\n [DOCUMENT_POSITION_PRECEDING]: 'Node.DOCUMENT_POSITION_PRECEDING',\n [DOCUMENT_POSITION_FOLLOWING]: 'Node.DOCUMENT_POSITION_FOLLOWING',\n [DOCUMENT_POSITION_CONTAINS]: 'Node.DOCUMENT_POSITION_CONTAINS',\n [DOCUMENT_POSITION_CONTAINED_BY]: 'Node.DOCUMENT_POSITION_CONTAINED_BY',\n [DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC]:\n 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC',\n};\n\nfunction makeDocumentPositionErrorString(documentPosition) {\n if (documentPosition in DOCUMENT_POSITIONS_STRINGS) {\n return `${DOCUMENT_POSITIONS_STRINGS[documentPosition]} (${documentPosition})`\n }\n\n return `Unknown document position (${documentPosition})`\n}\n\nfunction checkToAppear(methodName, targetDocumentPosition) {\n // eslint-disable-next-line func-names\n return function (element, secondElement) {\n checkHtmlElement(element, toAppearBefore, this);\n checkHtmlElement(secondElement, toAppearBefore, this);\n\n const documentPosition = element.compareDocumentPosition(secondElement);\n const pass = documentPosition === targetDocumentPosition;\n\n return {\n pass,\n message: () => {\n return [\n this.utils.matcherHint(\n `${this.isNot ? '.not' : ''}.${methodName}`,\n 'element',\n 'secondElement',\n ),\n '',\n `Received: ${makeDocumentPositionErrorString(documentPosition)}`,\n ].join('\\n')\n },\n }\n }\n}\n\nfunction toAppearBefore(element, secondElement) {\n return checkToAppear('toAppearBefore', DOCUMENT_POSITION_FOLLOWING).apply(\n this,\n [element, secondElement],\n )\n}\n\nfunction toAppearAfter(element, secondElement) {\n return checkToAppear('toAppearAfter', DOCUMENT_POSITION_PRECEDING).apply(\n this,\n [element, secondElement],\n )\n}\n\nvar extensions = /*#__PURE__*/Object.freeze({\n __proto__: null,\n toAppearAfter: toAppearAfter,\n toAppearBefore: toAppearBefore,\n toBeChecked: toBeChecked,\n toBeDisabled: toBeDisabled,\n toBeEmpty: toBeEmpty,\n toBeEmptyDOMElement: toBeEmptyDOMElement,\n toBeEnabled: toBeEnabled,\n toBeInTheDOM: toBeInTheDOM,\n toBeInTheDocument: toBeInTheDocument,\n toBeInvalid: toBeInvalid,\n toBePartiallyChecked: toBePartiallyChecked,\n toBePartiallyPressed: toBePartiallyPressed,\n toBePressed: toBePressed,\n toBeRequired: toBeRequired,\n toBeValid: toBeValid,\n toBeVisible: toBeVisible,\n toContainElement: toContainElement,\n toContainHTML: toContainHTML,\n toHaveAccessibleDescription: toHaveAccessibleDescription,\n toHaveAccessibleErrorMessage: toHaveAccessibleErrorMessage,\n toHaveAccessibleName: toHaveAccessibleName,\n toHaveAttribute: toHaveAttribute,\n toHaveClass: toHaveClass,\n toHaveDescription: toHaveDescription,\n toHaveDisplayValue: toHaveDisplayValue,\n toHaveErrorMessage: toHaveErrorMessage,\n toHaveFocus: toHaveFocus,\n toHaveFormValues: toHaveFormValues,\n toHaveRole: toHaveRole,\n toHaveSelection: toHaveSelection,\n toHaveStyle: toHaveStyle,\n toHaveTextContent: toHaveTextContent,\n toHaveValue: toHaveValue\n});\n\nexport { toBePartiallyChecked as A, toHaveDescription as B, toHaveErrorMessage as C, toHaveSelection as D, toBePressed as E, toBePartiallyPressed as F, toAppearBefore as G, toAppearAfter as H, toBeInTheDocument as a, toBeEmpty as b, toBeEmptyDOMElement as c, toContainElement as d, extensions as e, toContainHTML as f, toHaveTextContent as g, toHaveAccessibleDescription as h, toHaveAccessibleErrorMessage as i, toHaveRole as j, toHaveAccessibleName as k, toHaveAttribute as l, toHaveClass as m, toHaveStyle as n, toHaveFocus as o, toHaveFormValues as p, toBeVisible as q, toBeDisabled as r, toBeEnabled as s, toBeInTheDOM as t, toBeRequired as u, toBeInvalid as v, toBeValid as w, toHaveValue as x, toHaveDisplayValue as y, toBeChecked as z };\n","import { e as extensions } from './matchers-35e4d3bd.mjs';\nimport 'redent';\nimport '@adobe/css-tools';\nimport 'dom-accessibility-api';\nimport 'aria-query';\nimport 'picocolors';\nimport 'css.escape';\n\nexpect.extend(extensions);\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"mappings":"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"}