@internetarchive/bookreader 5.0.0-12-fixsorting-8 → 5.0.0-120

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 (420) hide show
  1. package/BookReader/474.js +2 -0
  2. package/BookReader/474.js.map +1 -0
  3. package/BookReader/BookReader.css +670 -1190
  4. package/BookReader/bergamot-translator-worker.js +2966 -0
  5. package/BookReader/bergamot-translator-worker.wasm +0 -0
  6. package/BookReader/hypothesis/LICENSE +50 -0
  7. package/BookReader/hypothesis/README.md +55 -0
  8. package/BookReader/hypothesis/build/boot-template.js +1 -0
  9. package/BookReader/hypothesis/build/boot.js +1 -0
  10. package/BookReader/hypothesis/build/manifest.json +20 -0
  11. package/BookReader/hypothesis/build/scripts/annotator.bundle.js +199 -0
  12. package/BookReader/hypothesis/build/scripts/annotator.bundle.js.map +1 -0
  13. package/BookReader/hypothesis/build/scripts/sidebar.bundle.js +811 -0
  14. package/BookReader/hypothesis/build/scripts/sidebar.bundle.js.map +1 -0
  15. package/BookReader/hypothesis/build/scripts/ui-playground.bundle.js +437 -0
  16. package/BookReader/hypothesis/build/scripts/ui-playground.bundle.js.map +1 -0
  17. package/BookReader/hypothesis/build/styles/annotator.css +4 -0
  18. package/BookReader/hypothesis/build/styles/annotator.css.map +1 -0
  19. package/BookReader/hypothesis/build/styles/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  20. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  21. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  22. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  23. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  24. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Bold.woff2 +0 -0
  25. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  26. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Italic.woff2 +0 -0
  27. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Regular.woff2 +0 -0
  28. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  29. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Math-Italic.woff2 +0 -0
  30. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  31. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  32. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  33. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Script-Regular.woff2 +0 -0
  34. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  35. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  36. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  37. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  38. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  39. package/BookReader/hypothesis/build/styles/highlights.css +2 -0
  40. package/BookReader/hypothesis/build/styles/highlights.css.map +1 -0
  41. package/BookReader/hypothesis/build/styles/katex.min.css +3 -0
  42. package/BookReader/hypothesis/build/styles/katex.min.css.map +1 -0
  43. package/BookReader/hypothesis/build/styles/pdfjs-overrides.css +14 -0
  44. package/BookReader/hypothesis/build/styles/pdfjs-overrides.css.map +1 -0
  45. package/BookReader/hypothesis/build/styles/sidebar.css +4 -0
  46. package/BookReader/hypothesis/build/styles/sidebar.css.map +1 -0
  47. package/BookReader/hypothesis/build/styles/ui-playground.css +4 -0
  48. package/BookReader/hypothesis/build/styles/ui-playground.css.map +1 -0
  49. package/BookReader/hypothesis/package.json +126 -0
  50. package/BookReader/ia-bookreader.js +1886 -0
  51. package/BookReader/{BookReader.js.LICENSE.txt → ia-bookreader.js.LICENSE.txt} +26 -20
  52. package/BookReader/ia-bookreader.js.map +1 -0
  53. package/BookReader/icons/1up.svg +1 -12
  54. package/BookReader/icons/2up.svg +1 -15
  55. package/BookReader/icons/advance.svg +3 -26
  56. package/BookReader/icons/chevron-right.svg +1 -1
  57. package/BookReader/icons/close-circle-dark.svg +1 -1
  58. package/BookReader/icons/close-circle.svg +1 -1
  59. package/BookReader/icons/fullscreen.svg +1 -17
  60. package/BookReader/icons/fullscreen_exit.svg +1 -17
  61. package/BookReader/icons/hamburger.svg +1 -15
  62. package/BookReader/icons/left-arrow.svg +1 -12
  63. package/BookReader/icons/magnify-minus.svg +1 -16
  64. package/BookReader/icons/magnify-plus.svg +1 -17
  65. package/BookReader/icons/magnify.svg +1 -15
  66. package/BookReader/icons/pause.svg +1 -23
  67. package/BookReader/icons/play.svg +1 -22
  68. package/BookReader/icons/playback-speed.svg +1 -34
  69. package/BookReader/icons/read-aloud.svg +1 -22
  70. package/BookReader/icons/review.svg +3 -22
  71. package/BookReader/icons/slider-toggle.svg +1 -0
  72. package/BookReader/icons/thumbnails.svg +1 -17
  73. package/BookReader/icons/voice.svg +1 -0
  74. package/BookReader/icons/volume-full.svg +1 -22
  75. package/BookReader/images/BRicons.svg +5 -94
  76. package/BookReader/images/books_graphic.svg +1 -177
  77. package/BookReader/images/hypothesis.ico +0 -0
  78. package/BookReader/images/icon_book.svg +1 -12
  79. package/BookReader/images/icon_bookmark.svg +1 -12
  80. package/BookReader/images/icon_experiment.svg +1 -0
  81. package/BookReader/images/icon_gear.svg +1 -14
  82. package/BookReader/images/icon_hamburger.svg +1 -20
  83. package/BookReader/images/icon_home.svg +1 -21
  84. package/BookReader/images/icon_info.svg +1 -11
  85. package/BookReader/images/icon_one_page.svg +1 -8
  86. package/BookReader/images/icon_pause.svg +1 -1
  87. package/BookReader/images/icon_play.svg +1 -1
  88. package/BookReader/images/icon_playback-rate.svg +1 -15
  89. package/BookReader/images/icon_search_button.svg +1 -8
  90. package/BookReader/images/icon_share.svg +1 -9
  91. package/BookReader/images/icon_skip-ahead.svg +1 -6
  92. package/BookReader/images/icon_skip-back.svg +2 -13
  93. package/BookReader/images/icon_speaker.svg +1 -18
  94. package/BookReader/images/icon_speaker_open.svg +1 -10
  95. package/BookReader/images/icon_thumbnails.svg +1 -12
  96. package/BookReader/images/icon_toc.svg +1 -5
  97. package/BookReader/images/icon_two_pages.svg +1 -9
  98. package/BookReader/images/marker_chap-off.svg +1 -11
  99. package/BookReader/images/marker_chap-on.svg +1 -11
  100. package/BookReader/images/marker_srch-on.svg +1 -11
  101. package/BookReader/images/translate.svg +1 -0
  102. package/BookReader/images/unviewable_page.png +0 -0
  103. package/BookReader/jquery-3.js +2 -0
  104. package/BookReader/jquery-3.js.LICENSE.txt +24 -0
  105. package/BookReader/plugins/plugin.archive_analytics.js +1 -172
  106. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
  107. package/BookReader/plugins/plugin.autoplay.js +1 -165
  108. package/BookReader/plugins/plugin.autoplay.js.map +1 -1
  109. package/BookReader/plugins/plugin.chapters.js +19 -301
  110. package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +1 -0
  111. package/BookReader/plugins/plugin.chapters.js.map +1 -1
  112. package/BookReader/plugins/plugin.experiments.js +3 -0
  113. package/BookReader/plugins/plugin.experiments.js.LICENSE.txt +1 -0
  114. package/BookReader/plugins/plugin.experiments.js.map +1 -0
  115. package/BookReader/plugins/plugin.iframe.js +1 -74
  116. package/BookReader/plugins/plugin.iframe.js.map +1 -1
  117. package/BookReader/plugins/plugin.iiif.js +2 -0
  118. package/BookReader/plugins/plugin.iiif.js.map +1 -0
  119. package/BookReader/plugins/plugin.resume.js +1 -368
  120. package/BookReader/plugins/plugin.resume.js.map +1 -1
  121. package/BookReader/plugins/plugin.search.js +2 -1385
  122. package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
  123. package/BookReader/plugins/plugin.search.js.map +1 -1
  124. package/BookReader/plugins/plugin.text_selection.js +2 -1080
  125. package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
  126. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  127. package/BookReader/plugins/plugin.translate.js +3 -0
  128. package/BookReader/plugins/plugin.translate.js.LICENSE.txt +1 -0
  129. package/BookReader/plugins/plugin.translate.js.map +1 -0
  130. package/BookReader/plugins/plugin.tts.js +2 -9193
  131. package/BookReader/plugins/plugin.tts.js.LICENSE.txt +2 -0
  132. package/BookReader/plugins/plugin.tts.js.map +1 -1
  133. package/BookReader/plugins/plugin.url.js +1 -269
  134. package/BookReader/plugins/plugin.url.js.map +1 -1
  135. package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -379
  136. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  137. package/BookReader/plugins/translator-worker.js +2 -0
  138. package/BookReader/plugins/translator-worker.js.map +1 -0
  139. package/BookReader/silence.mp3 +0 -0
  140. package/BookReader/translator-worker.js +475 -0
  141. package/BookReader/webcomponents-bundle.js +3 -0
  142. package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
  143. package/BookReader/webcomponents-bundle.js.map +1 -0
  144. package/README.md +17 -4
  145. package/dist/esm/ia-bookreader.js +3 -0
  146. package/dist/esm/ia-bookreader.js.LICENSE.txt +17 -0
  147. package/dist/esm/ia-bookreader.js.map +1 -0
  148. package/dist/esm/plugins/plugin.archive_analytics.js +2 -0
  149. package/dist/esm/plugins/plugin.archive_analytics.js.map +1 -0
  150. package/dist/esm/plugins/plugin.autoplay.js +2 -0
  151. package/dist/esm/plugins/plugin.autoplay.js.map +1 -0
  152. package/dist/esm/plugins/plugin.chapters.js +2 -0
  153. package/dist/esm/plugins/plugin.chapters.js.map +1 -0
  154. package/dist/esm/plugins/plugin.experiments.js +2 -0
  155. package/dist/esm/plugins/plugin.experiments.js.map +1 -0
  156. package/dist/esm/plugins/plugin.iframe.js +2 -0
  157. package/dist/esm/plugins/plugin.iframe.js.map +1 -0
  158. package/dist/esm/plugins/plugin.iiif.js +2 -0
  159. package/dist/esm/plugins/plugin.iiif.js.map +1 -0
  160. package/dist/esm/plugins/plugin.resume.js +2 -0
  161. package/dist/esm/plugins/plugin.resume.js.map +1 -0
  162. package/dist/esm/plugins/plugin.search.js +2 -0
  163. package/dist/esm/plugins/plugin.search.js.map +1 -0
  164. package/dist/esm/plugins/plugin.text_selection.js +2 -0
  165. package/dist/esm/plugins/plugin.text_selection.js.map +1 -0
  166. package/dist/esm/plugins/plugin.translate.js +2 -0
  167. package/dist/esm/plugins/plugin.translate.js.map +1 -0
  168. package/dist/esm/plugins/plugin.tts.js +2 -0
  169. package/dist/esm/plugins/plugin.tts.js.map +1 -0
  170. package/dist/esm/plugins/plugin.url.js +2 -0
  171. package/dist/esm/plugins/plugin.url.js.map +1 -0
  172. package/dist/esm/plugins/plugin.vendor-fullscreen.js +2 -0
  173. package/dist/esm/plugins/plugin.vendor-fullscreen.js.map +1 -0
  174. package/jsconfig.json +18 -0
  175. package/package.json +113 -71
  176. package/src/BookReader/BookModel.js +92 -46
  177. package/src/BookReader/DragScrollable.js +233 -0
  178. package/src/BookReader/ImageCache.js +49 -16
  179. package/src/BookReader/Mode1Up.js +66 -365
  180. package/src/BookReader/Mode1UpLit.js +392 -0
  181. package/src/BookReader/Mode2Up.js +87 -1315
  182. package/src/BookReader/Mode2UpLit.js +786 -0
  183. package/src/BookReader/ModeAbstract.js +43 -0
  184. package/src/BookReader/ModeCoordinateSpace.js +29 -0
  185. package/src/BookReader/ModeSmoothZoom.js +312 -0
  186. package/src/BookReader/ModeThumb.js +29 -15
  187. package/src/BookReader/Navbar/Navbar.js +204 -84
  188. package/src/BookReader/PageContainer.js +120 -23
  189. package/src/BookReader/ReduceSet.js +2 -2
  190. package/src/BookReader/Toolbar/Toolbar.js +18 -40
  191. package/src/BookReader/events.js +3 -3
  192. package/src/BookReader/options.js +105 -18
  193. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  194. package/src/BookReader/utils/ScrollClassAdder.js +31 -0
  195. package/src/BookReader/utils/SelectionObserver.js +72 -0
  196. package/src/BookReader/utils/classes.js +1 -1
  197. package/src/BookReader/utils.js +136 -12
  198. package/src/BookReader.js +732 -1231
  199. package/src/BookReaderPlugin.js +52 -0
  200. package/src/assets/icons/magnify-minus.svg +3 -7
  201. package/src/assets/icons/magnify-plus.svg +3 -7
  202. package/src/assets/icons/slider-toggle.svg +1 -0
  203. package/src/assets/icons/voice.svg +1 -0
  204. package/src/assets/images/hypothesis.ico +0 -0
  205. package/src/assets/images/icon_experiment.svg +1 -0
  206. package/src/assets/images/translate.svg +1 -0
  207. package/src/assets/images/unviewable_page.png +0 -0
  208. package/src/assets/silence.mp3 +0 -0
  209. package/src/css/BookReader.scss +1 -5
  210. package/src/css/_BRBookmarks.scss +1 -1
  211. package/src/css/_BRComponent.scss +1 -1
  212. package/src/css/_BRicon.scss +8 -2
  213. package/src/css/_BRmain.scss +16 -3
  214. package/src/css/_BRnav.scss +74 -70
  215. package/src/css/_BRpages.scss +174 -42
  216. package/src/css/_BRsearch.scss +69 -30
  217. package/src/css/_BRtoolbar.scss +5 -5
  218. package/src/css/_TextSelection.scss +249 -25
  219. package/src/css/_colorbox.scss +2 -2
  220. package/src/css/_controls.scss +24 -7
  221. package/src/css/_icons.scss +8 -1
  222. package/src/{BookNavigator/assets → css}/button-base.js +2 -2
  223. package/src/css/icon_checkmark.js +9 -0
  224. package/src/css/sharedStyles.js +15 -0
  225. package/src/ia-bookreader/downloads/downloads-provider.js +81 -0
  226. package/src/{BookNavigator → ia-bookreader}/downloads/downloads.js +25 -5
  227. package/src/ia-bookreader/ia-bookreader.js +686 -0
  228. package/src/ia-bookreader/sharing.js +27 -0
  229. package/src/ia-bookreader/viewable-files.js +98 -0
  230. package/src/{BookNavigator → ia-bookreader}/visual-adjustments/visual-adjustments-provider.js +17 -17
  231. package/src/{BookNavigator → ia-bookreader}/visual-adjustments/visual-adjustments.js +75 -67
  232. package/src/{BookNavigator → plugins}/bookmarks/bookmark-button.js +4 -3
  233. package/src/{BookNavigator/assets → plugins/bookmarks}/bookmark-colors.js +1 -1
  234. package/src/{BookNavigator → plugins}/bookmarks/bookmark-edit.js +43 -31
  235. package/src/{BookNavigator → plugins}/bookmarks/bookmarks-list.js +48 -49
  236. package/src/{BookNavigator → plugins}/bookmarks/bookmarks-loginCTA.js +3 -3
  237. package/src/plugins/bookmarks/bookmarks-provider.js +63 -0
  238. package/src/{BookNavigator → plugins/bookmarks}/delete-modal-actions.js +1 -1
  239. package/src/{BookNavigator → plugins}/bookmarks/ia-bookmarks.js +117 -68
  240. package/src/plugins/plugin.archive_analytics.js +84 -78
  241. package/src/plugins/plugin.autoplay.js +99 -104
  242. package/src/plugins/plugin.chapters.js +323 -205
  243. package/src/plugins/plugin.experiments.js +375 -0
  244. package/src/plugins/plugin.iframe.js +36 -37
  245. package/src/plugins/plugin.iiif.js +147 -0
  246. package/src/plugins/plugin.resume.js +54 -51
  247. package/src/plugins/plugin.text_selection.js +464 -219
  248. package/src/plugins/plugin.vendor-fullscreen.js +5 -5
  249. package/src/plugins/search/plugin.search.js +347 -397
  250. package/src/{BookNavigator → plugins}/search/search-provider.js +59 -27
  251. package/src/{BookNavigator → plugins}/search/search-results.js +105 -76
  252. package/src/plugins/search/utils.js +50 -0
  253. package/src/plugins/search/view.js +51 -69
  254. package/src/plugins/translate/TranslationManager.js +164 -0
  255. package/src/plugins/translate/plugin.translate.js +559 -0
  256. package/src/plugins/tts/AbstractTTSEngine.js +78 -49
  257. package/src/plugins/tts/FestivalTTSEngine.js +20 -30
  258. package/src/plugins/tts/PageChunk.js +117 -23
  259. package/src/plugins/tts/PageChunkIterator.js +11 -17
  260. package/src/plugins/tts/WebTTSEngine.js +132 -92
  261. package/src/plugins/tts/plugin.tts.js +341 -351
  262. package/src/plugins/tts/utils.js +76 -67
  263. package/src/plugins/url/UrlPlugin.js +213 -0
  264. package/src/plugins/{plugin.url.js → url/plugin.url.js} +54 -18
  265. package/src/util/TextSelectionManager.js +1464 -0
  266. package/src/util/browserSniffing.js +42 -1
  267. package/src/util/cache.js +20 -0
  268. package/src/util/docCookies.js +21 -2
  269. package/src/util/dom.js +88 -0
  270. package/src/util/generators.js +89 -0
  271. package/src/util/lit.js +15 -0
  272. package/src/util/strings.js +11 -0
  273. package/.babelrc +0 -12
  274. package/.dependabot/config.yml +0 -6
  275. package/.eslintrc.js +0 -50
  276. package/.gitattributes +0 -2
  277. package/.github/ISSUE_TEMPLATE/bug.md +0 -32
  278. package/.github/ISSUE_TEMPLATE/feature-request.md +0 -30
  279. package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -15
  280. package/.github/workflows/node.js.yml +0 -37
  281. package/.github/workflows/npm-publish.yml +0 -47
  282. package/.testcaferc.json +0 -5
  283. package/BookReader/BookReader.js +0 -21613
  284. package/BookReader/BookReader.js.map +0 -1
  285. package/BookReader/bookreader-component-bundle.js +0 -14497
  286. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
  287. package/BookReader/bookreader-component-bundle.js.map +0 -1
  288. package/BookReader/jquery-1.10.1.js +0 -108
  289. package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
  290. package/BookReader/plugins/plugin.menu_toggle.js +0 -369
  291. package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
  292. package/BookReader/plugins/plugin.mobile_nav.js +0 -335
  293. package/BookReader/plugins/plugin.mobile_nav.js.map +0 -1
  294. package/BookReaderDemo/BookReaderDemo.css +0 -41
  295. package/BookReaderDemo/BookReaderJSAdvanced.js +0 -115
  296. package/BookReaderDemo/BookReaderJSAutoplay.js +0 -56
  297. package/BookReaderDemo/BookReaderJSSimple.js +0 -55
  298. package/BookReaderDemo/IIIFBookReader.js +0 -207
  299. package/BookReaderDemo/assets/v5/Bookreader-logo-cool-grad.svg +0 -1
  300. package/BookReaderDemo/assets/v5/Bookreader-logo-flat.svg +0 -1
  301. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-cool-grad.png +0 -0
  302. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-flat.png +0 -0
  303. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.png +0 -0
  304. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.svg +0 -1
  305. package/BookReaderDemo/assets/v5/Bookreader-logo-warm.svg +0 -1
  306. package/BookReaderDemo/assets/v5/bookreader-logo-renders@1x.png +0 -0
  307. package/BookReaderDemo/assets/v5/bookreader-logo-renders@2x.png +0 -0
  308. package/BookReaderDemo/assets/v5/bookreader-v5-screenshot.png +0 -0
  309. package/BookReaderDemo/bookreader-template-bundle.js +0 -7178
  310. package/BookReaderDemo/demo-advanced.html +0 -33
  311. package/BookReaderDemo/demo-autoplay.html +0 -38
  312. package/BookReaderDemo/demo-embed-iframe-src.html +0 -84
  313. package/BookReaderDemo/demo-embed.html +0 -26
  314. package/BookReaderDemo/demo-fullscreen-mobile.html +0 -36
  315. package/BookReaderDemo/demo-fullscreen.html +0 -33
  316. package/BookReaderDemo/demo-iiif.html +0 -34
  317. package/BookReaderDemo/demo-iiif.js +0 -26
  318. package/BookReaderDemo/demo-internetarchive.html +0 -74
  319. package/BookReaderDemo/demo-multiple.html +0 -43
  320. package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
  321. package/BookReaderDemo/demo-preview-pages.html +0 -1092
  322. package/BookReaderDemo/demo-simple.html +0 -34
  323. package/BookReaderDemo/demo-vendor-fullscreen.html +0 -36
  324. package/BookReaderDemo/immersion-1up.html +0 -64
  325. package/BookReaderDemo/immersion-mode.html +0 -35
  326. package/BookReaderDemo/toggle_controls.html +0 -53
  327. package/BookReaderDemo/view_mode.html +0 -39
  328. package/BookReaderDemo/viewmode-cycle.html +0 -41
  329. package/CHANGELOG.md +0 -499
  330. package/CONTRIBUTING.md +0 -7
  331. package/codecov.yml +0 -17
  332. package/index.html +0 -31
  333. package/karma.conf.js +0 -23
  334. package/screenshot.png +0 -0
  335. package/scripts/postversion.js +0 -10
  336. package/scripts/preversion.js +0 -14
  337. package/scripts/version.js +0 -26
  338. package/src/BookNavigator/BookModel.js +0 -14
  339. package/src/BookNavigator/BookNavigator.js +0 -459
  340. package/src/BookNavigator/assets/book-loader.js +0 -27
  341. package/src/BookNavigator/assets/icon_checkmark.js +0 -6
  342. package/src/BookNavigator/assets/icon_close.js +0 -3
  343. package/src/BookNavigator/assets/icon_sort_ascending.js +0 -5
  344. package/src/BookNavigator/assets/icon_sort_descending.js +0 -5
  345. package/src/BookNavigator/assets/icon_sort_neutral.js +0 -5
  346. package/src/BookNavigator/assets/icon_volumes.js +0 -11
  347. package/src/BookNavigator/bookmarks/bookmarks-provider.js +0 -53
  348. package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
  349. package/src/BookNavigator/downloads/downloads-provider.js +0 -66
  350. package/src/BookNavigator/search/a-search-result.js +0 -55
  351. package/src/BookNavigator/volumes/volumes-provider.js +0 -83
  352. package/src/BookNavigator/volumes/volumes.js +0 -178
  353. package/src/BookReader/DebugConsole.js +0 -54
  354. package/src/BookReaderComponent/BookReaderComponent.js +0 -112
  355. package/src/ItemNavigator/ItemNavigator.js +0 -376
  356. package/src/ItemNavigator/providers/sharing.js +0 -33
  357. package/src/css/_MobileNav.scss +0 -194
  358. package/src/dragscrollable-br.js +0 -261
  359. package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
  360. package/src/plugins/plugin.mobile_nav.js +0 -287
  361. package/tests/BookReader/BookModel.test.js +0 -312
  362. package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
  363. package/tests/BookReader/DebugConsole.test.js +0 -25
  364. package/tests/BookReader/ImageCache.test.js +0 -150
  365. package/tests/BookReader/Mode1Up.test.js +0 -164
  366. package/tests/BookReader/Mode2Up.test.js +0 -247
  367. package/tests/BookReader/Navbar/Navbar.test.js +0 -169
  368. package/tests/BookReader/PageContainer.test.js +0 -115
  369. package/tests/BookReader/ReduceSet.test.js +0 -38
  370. package/tests/BookReader/Toolbar/Toolbar.test.js +0 -26
  371. package/tests/BookReader/utils/classes.test.js +0 -88
  372. package/tests/BookReader/utils.test.js +0 -109
  373. package/tests/BookReader.options.test.js +0 -39
  374. package/tests/BookReader.test.js +0 -301
  375. package/tests/e2e/README.md +0 -75
  376. package/tests/e2e/autoplay.test.js +0 -13
  377. package/tests/e2e/base.test.js +0 -35
  378. package/tests/e2e/helpers/base.js +0 -263
  379. package/tests/e2e/helpers/debug.js +0 -13
  380. package/tests/e2e/helpers/desktopSearch.js +0 -72
  381. package/tests/e2e/helpers/mobileSearch.js +0 -85
  382. package/tests/e2e/helpers/mockSearch.js +0 -93
  383. package/tests/e2e/helpers/rightToLeft.js +0 -29
  384. package/tests/e2e/ia-production/ia-prod-base.js +0 -17
  385. package/tests/e2e/models/BookReader.js +0 -11
  386. package/tests/e2e/models/Navigation.js +0 -56
  387. package/tests/e2e/rightToLeft.test.js +0 -20
  388. package/tests/e2e/viewmode.test.js +0 -37
  389. package/tests/karma/BookNavigator/book-navigator.test.js +0 -139
  390. package/tests/karma/BookNavigator/bookmarks/bookmark-edit.test.js +0 -133
  391. package/tests/karma/BookNavigator/bookmarks/bookmarks-list.test.js +0 -222
  392. package/tests/karma/BookNavigator/search/search-provider.test.js +0 -23
  393. package/tests/karma/BookNavigator/search/search-results.test.js +0 -240
  394. package/tests/karma/BookNavigator/sharing/sharing-provider.test.js +0 -40
  395. package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
  396. package/tests/karma/BookNavigator/volumes/volumes-provider.test.js +0 -141
  397. package/tests/karma/BookNavigator/volumes/volumes.test.js +0 -98
  398. package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
  399. package/tests/plugins/plugin.archive_analytics.test.js +0 -23
  400. package/tests/plugins/plugin.autoplay.test.js +0 -52
  401. package/tests/plugins/plugin.chapters.test.js +0 -130
  402. package/tests/plugins/plugin.iframe.test.js +0 -42
  403. package/tests/plugins/plugin.mobile_nav.test.js +0 -66
  404. package/tests/plugins/plugin.resume.test.js +0 -98
  405. package/tests/plugins/plugin.text_selection.test.js +0 -203
  406. package/tests/plugins/plugin.url.test.js +0 -129
  407. package/tests/plugins/plugin.vendor-fullscreen.test.js +0 -65
  408. package/tests/plugins/search/plugin.search.test.js +0 -173
  409. package/tests/plugins/search/plugin.search.view.test.js +0 -106
  410. package/tests/plugins/tts/AbstractTTSEngine.test.js +0 -153
  411. package/tests/plugins/tts/FestivalTTSEngine.test.js +0 -59
  412. package/tests/plugins/tts/PageChunk.test.js +0 -57
  413. package/tests/plugins/tts/PageChunkIterator.test.js +0 -179
  414. package/tests/plugins/tts/WebTTSEngine.test.js +0 -126
  415. package/tests/plugins/tts/utils.test.js +0 -133
  416. package/tests/util/browserSniffing.test.js +0 -56
  417. package/tests/util/docCookies.test.js +0 -15
  418. package/tests/util/strings.test.js +0 -63
  419. package/tests/utils.js +0 -42
  420. package/webpack.config.js +0 -86
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-playground.bundle.js","sources":["app:///node_modules/preact/dist/preact.mjs","app:///node_modules/preact/hooks/dist/hooks.mjs","app:///node_modules/classnames/index.js","app:///node_modules/wouter-preact/esm/preact-deps-dec5c677.js","app:///node_modules/wouter-preact/esm/use-browser-location.js","app:///node_modules/wouter-preact/esm/index.js","app:///node_modules/regexparam/dist/index.mjs","app:///node_modules/@hypothesis/frontend-shared/lib/util/listener-collection.js","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-stable-callback.js","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-arrow-key-navigation.js","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-click-away.js","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-focus-away.js","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-key-press.js","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-ordered-rows.js","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-synced-ref.js","app:///node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-tab-key-navigation.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/layout/Overlay.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/CloseableContext.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/ScrollContext.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/Scroll.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/layout/Card.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/layout/CardActions.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/layout/CardContent.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ArrowDown.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ArrowLeft.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ArrowRight.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ArrowUp.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Cancel.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Caution.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Check.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Checkbox.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CheckboxCheckedFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Code.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Copy.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Edit.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Ellipsis.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Email.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FileImage.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Hide.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Image.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Logo.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/MenuCollapse.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/MenuExpand.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Orderable.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/PointerDown.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/PointerUp.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Profile.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Radio.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/RadioChecked.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Reply.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Settings.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Share.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Show.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/SpinnerSpokes.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Annotate.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/BellFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Bell.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/BookmarkFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Bookmark.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CaretDown.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CaretLeft.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CaretRight.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CaretUp.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CautionFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CcStdFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CcStd.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CcZeroFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CcZero.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CheckAll.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CheckboxChecked.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ClockFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Clock.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Collapse.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Contrast.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/CopyFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/DottedCircle.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Download.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/EditorLatex.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/EditorQuote.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/EditorTextBold.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/EditorTextItalic.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/EllipsisVertical.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/EmailFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Expand.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/External.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FileCodeFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FileCode.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FileGenericFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FileGeneric.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FileImageFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FilePdfFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FilePdf.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FilterClear.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Filter.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FlagFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Flag.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Flashcard.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FolderFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Folder.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FolderOpenFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/FolderOpen.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Globe.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/GlobeLock.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/GoogleDrive.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Graph.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Grid.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/GroupsFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Groups.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Help.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/HideFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Highlight.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ImageFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Info.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/LeaveFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Leave.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Link.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/List.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ListOrdered.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ListUnordered.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/LockFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Lock.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Logout.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Mention.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Minus.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/NoteFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Note.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/OneDrive.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Pause.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Pending.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/PinFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Pin.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Plus.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/PreviewFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Preview.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ProfileFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Redo.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Refresh.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Restricted.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/SchoolFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/School.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Search.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Selection.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/ShowFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/SocialFacebook.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/SocialTwitter.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Sort.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/SpinnerCircle.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/TagFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Tag.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Theme.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/TrashFilled.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/Trash.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/icons/VitalSource.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/Button.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/InputGroup.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/IconButton.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/CloseButton.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/layout/CardTitle.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/layout/CardHeader.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/layout/Panel.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/feedback/Dialog.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/feedback/ModalDialog.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/AspectRatio.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/ToggleInput.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/Checkbox.js","app:///node_modules/@hypothesis/frontend-shared/lib/hooks/use-validation-error.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/Input.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/OptionButton.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/RadioGroupContext.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/RadioGroup.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/feedback/Popover.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/SelectContext.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/Select.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/input/Textarea.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/TableContext.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/Table.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/TableSectionContext.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/TableBody.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/TableCell.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/TableFoot.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/TableHead.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/TableRow.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/DataTable.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/ScrollContainer.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/ScrollContent.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/ScrollBox.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/feedback/Spinner.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/data/Thumbnail.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/feedback/Callout.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/feedback/SpinnerOverlay.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/feedback/ToastMessages.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/navigation/Link.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/navigation/LinkButton.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/navigation/Pagination.js","app:///node_modules/@hypothesis/frontend-shared/lib/util/pagination.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/navigation/PointerButton.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/navigation/Tab.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/navigation/TabList.js","app:///node_modules/@hypothesis/frontend-shared/lib/components/transition/Slider.js","app:///node_modules/highlight.js/lib/core.js","app:///node_modules/highlight.js/es/languages/css.js","app:///node_modules/highlight.js/es/languages/typescript.js","app:///node_modules/highlight.js/es/languages/xml.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/util/jsx-to-string.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/Library.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/ColorsPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/samples.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/data/DataTablePage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/feedback/DialogPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/util/prompts.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/feedback/ToastMessagesPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/CloseButtonPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/examples/select-in-input-group.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/examples/select-with-custom-options.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/SelectPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/transition/SliderPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/routes.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/GettingStartedPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/UsingComponentsPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/StylingComponentsPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/UtilitiesPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/data/AspectRatioPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/data/IconsPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/data/ScrollBoxPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/data/TablePage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/data/ThumbnailPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/feedback/CalloutPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/feedback/PopoverPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/feedback/SpinnerPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/ButtonPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/CheckboxPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/InputPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/InputGroupPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/OptionButtonPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/RadioGroupPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/input/TextareaPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/layout/CardPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/layout/PanelPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/layout/OverlayPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/navigation/LinkPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/navigation/LinkButtonPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/navigation/PaginationPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/navigation/PointerButtonPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/navigation/TabPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/hooks/UseClickAwayPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/patterns/utilities/LazyPage.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/components/PlaygroundApp.js","app:///node_modules/@hypothesis/frontend-shared/lib/pattern-library/index.js","app:///dev-server/ui-playground/index.js"],"sourcesContent":["var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,r=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,N(f,t,c),r.__e=r.__=null,t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_,m=t&&t.__k||v,b=l.length;for(f=P(u,l,m,f,b),a=0;a<b;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:m[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&B(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),(_=!!(4&y.__u))||h.__k===y.__k?f=A(y,f,n,_):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?o=n.__k[r]=m(null,o,null,null,null):w(o)?o=n.__k[r]=m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=n.__k[r]=m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),D(e,e));return t}function A(n,l,u,t){var i,r;if(\"function\"==typeof n.type){for(i=n.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=n,l=A(i[r],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=S(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],s=null!=c&&0==(2&c.__u);if(null===c&&null==e||s&&e==c.key&&f==c.type)return u;if(t>(s?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=E),C&&C.sub(h),h.state||(h.state={}),h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),u.__v==t.__v||!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=V(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else{for(T=o.length;T--;)g(o[T]);z(u)}else u.__e=t.__e,u.__k=t.__k,n.then||z(u);l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=q(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n){n&&n.__c&&(n.__c.__e=!0),n&&n.__k&&n.__k.forEach(z)}function N(n,u,t){for(var i=0;i<t.length;i++)B(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function V(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(V):d({},n)}function q(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props||p,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function B(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function D(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||B(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&D(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function E(n,l,u){return this.constructor(n,u)}function G(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),N(e,u,f)}function J(n,l){G(n,l,J)}function K(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function Q(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,K as cloneElement,Q as createContext,_ as createElement,b as createRef,_ as h,J as hydrate,t as isValidElement,l as options,G as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { useState, useLayoutEffect, useEffect, useRef } from 'preact/hooks';\nimport 'preact';\n\n// Copied from:\n// https://github.com/facebook/react/blob/main/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\n\n// TODO: switch to `export { useSyncExternalStore } from \"preact/compat\"` once we update Preact to >= 10.11.3\nfunction is(x, y) {\n return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getSSRSnapshot) {\n if (getSSRSnapshot && !canUseDOM) getSnapshot = getSSRSnapshot;\n const value = getSnapshot();\n\n const [{ _instance }, forceUpdate] = useState({\n _instance: { _value: value, _getSnapshot: getSnapshot },\n });\n\n useLayoutEffect(() => {\n _instance._value = value;\n _instance._getSnapshot = getSnapshot;\n\n if (!is(_instance._value, getSnapshot())) {\n forceUpdate({ _instance });\n }\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n if (!is(_instance._value, _instance._getSnapshot())) {\n forceUpdate({ _instance });\n }\n\n return subscribe(() => {\n if (!is(_instance._value, _instance._getSnapshot())) {\n forceUpdate({ _instance });\n }\n });\n }, [subscribe]);\n\n return value;\n}\n\n// provide forwardRef stub for preact\nfunction forwardRef(component) {\n return component;\n}\n\n// Userland polyfill while we wait for the forthcoming\n// https://github.com/reactjs/rfcs/blob/useevent/text/0000-useevent.md\n// Note: \"A high-fidelty polyfill for useEvent is not possible because\n// there is no lifecycle or Hook in React that we can use to switch\n// .current at the right timing.\"\n// So we will have to make do with this \"close enough\" approach for now.\nconst useEvent = (fn) => {\n const ref = useRef([fn, (...args) => ref[0](...args)]).current;\n useLayoutEffect(() => {\n ref[0] = fn;\n });\n return ref[1];\n};\n\nexport { useSyncExternalStore as a, forwardRef as f, useEvent as u };\n","import { a as useSyncExternalStore } from './preact-deps-dec5c677.js';\nimport 'preact/hooks';\nimport 'preact';\n\n/**\n * History API docs @see https://developer.mozilla.org/en-US/docs/Web/API/History\n */\nconst eventPopstate = \"popstate\";\nconst eventPushState = \"pushState\";\nconst eventReplaceState = \"replaceState\";\nconst eventHashchange = \"hashchange\";\nconst events = [\n eventPopstate,\n eventPushState,\n eventReplaceState,\n eventHashchange,\n];\n\nconst subscribeToLocationUpdates = (callback) => {\n for (const event of events) {\n addEventListener(event, callback);\n }\n return () => {\n for (const event of events) {\n removeEventListener(event, callback);\n }\n };\n};\n\nconst useLocationProperty = (fn, ssrFn) =>\n useSyncExternalStore(subscribeToLocationUpdates, fn, ssrFn);\n\nconst currentSearch = () => location.search;\n\nconst useSearch = ({ ssrSearch = \"\" } = {}) =>\n useLocationProperty(currentSearch, () => ssrSearch);\n\nconst currentPathname = () => location.pathname;\n\nconst usePathname = ({ ssrPath } = {}) =>\n useLocationProperty(\n currentPathname,\n ssrPath ? () => ssrPath : currentPathname\n );\n\nconst currentHistoryState = () => history.state;\nconst useHistoryState = () =>\n useLocationProperty(currentHistoryState, () => null);\n\nconst navigate = (to, { replace = false, state = null } = {}) =>\n history[replace ? eventReplaceState : eventPushState](state, \"\", to);\n\n// the 2nd argument of the `useBrowserLocation` return value is a function\n// that allows to perform a navigation.\nconst useBrowserLocation = (opts = {}) => [usePathname(opts), navigate];\n\nconst patchKey = Symbol.for(\"wouter_v3\");\n\n// While History API does have `popstate` event, the only\n// proper way to listen to changes via `push/replaceState`\n// is to monkey-patch these methods.\n//\n// See https://stackoverflow.com/a/4585031\nif (typeof history !== \"undefined\" && typeof window[patchKey] === \"undefined\") {\n for (const type of [eventPushState, eventReplaceState]) {\n const original = history[type];\n // TODO: we should be using unstable_batchedUpdates to avoid multiple re-renders,\n // however that will require an additional peer dependency on react-dom.\n // See: https://github.com/reactwg/react-18/discussions/86#discussioncomment-1567149\n history[type] = function () {\n const result = original.apply(this, arguments);\n const event = new Event(type);\n event.arguments = arguments;\n\n dispatchEvent(event);\n return result;\n };\n }\n\n // patch history object only once\n // See: https://github.com/molefrog/wouter/issues/167\n Object.defineProperty(window, patchKey, { value: true });\n}\n\nexport { navigate, useBrowserLocation, useHistoryState, useLocationProperty, usePathname, useSearch };\n","import { parse } from 'regexparam';\nimport { useBrowserLocation, useSearch as useSearch$1 } from './use-browser-location.js';\nimport { f as forwardRef, u as useEvent } from './preact-deps-dec5c677.js';\nimport { createContext, createElement, isValidElement, cloneElement, Fragment } from 'preact';\nimport { useContext, useRef, useLayoutEffect } from 'preact/hooks';\n\n/*\n * Transforms `path` into its relative `base` version\n * If base isn't part of the path provided returns absolute path e.g. `~/app`\n */\nconst relativePath = (base = \"\", path) =>\n !path.toLowerCase().indexOf(base.toLowerCase())\n ? path.slice(base.length) || \"/\"\n : \"~\" + path;\n\nconst absolutePath = (to, base = \"\") =>\n to[0] === \"~\" ? to.slice(1) : base + to;\n\n/*\n * Removes leading question mark\n */\nconst stripQm = (str) => (str[0] === \"?\" ? str.slice(1) : str);\n\n/*\n * decodes escape sequences such as %20\n */\nconst unescape = (str) => {\n try {\n return decodeURI(str);\n } catch (_e) {\n // fail-safe mode: if string can't be decoded do nothing\n return str;\n }\n};\n\n/*\n * Router and router context. Router is a lightweight object that represents the current\n * routing options: how location is managed, base path etc.\n *\n * There is a default router present for most of the use cases, however it can be overridden\n * via the <Router /> component.\n */\n\nconst defaultRouter = {\n hook: useBrowserLocation,\n searchHook: useSearch$1,\n parser: parse,\n base: \"\",\n // this option is used to override the current location during SSR\n ssrPath: undefined,\n ssrSearch: undefined,\n};\n\nconst RouterCtx = createContext(defaultRouter);\n\n// gets the closest parent router from the context\nconst useRouter = () => useContext(RouterCtx);\n\n/**\n * Parameters context. Used by `useParams()` to get the\n * matched params from the innermost `Route` component.\n */\n\nconst ParamsCtx = createContext({});\n\nconst useParams = () => useContext(ParamsCtx);\n\n/*\n * Part 1, Hooks API: useRoute and useLocation\n */\n\n// Internal version of useLocation to avoid redundant useRouter calls\n\nconst useLocationFromRouter = (router) => {\n const [location, navigate] = router.hook(router);\n\n // the function reference should stay the same between re-renders, so that\n // it can be passed down as an element prop without any performance concerns.\n // (This is achieved via `useEvent`.)\n return [\n unescape(relativePath(router.base, location)),\n useEvent((to, navOpts) => navigate(absolutePath(to, router.base), navOpts)),\n ];\n};\n\nconst useLocation = () => useLocationFromRouter(useRouter());\n\nconst useSearch = () => {\n const router = useRouter();\n return unescape(stripQm(router.searchHook(router)));\n};\n\nconst matchRoute = (parser, route, path, loose) => {\n // when parser is in \"loose\" mode, `$base` is equal to the\n // first part of the route that matches the pattern\n // (e.g. for pattern `/a/:b` and path `/a/1/2/3` the `$base` is `a/1`)\n // we use this for route nesting\n const { pattern, keys } = parser(route || \"*\", loose);\n const [$base, ...matches] = pattern.exec(path) || [];\n\n return $base !== undefined\n ? [\n true,\n\n // an object with parameters matched, e.g. { foo: \"bar\" } for \"/:foo\"\n // we \"zip\" two arrays here to construct the object\n // [\"foo\"], [\"bar\"] → { foo: \"bar\" }\n Object.fromEntries(keys.map((key, i) => [key, matches[i]])),\n\n // the third value if only present when parser is in \"loose\" mode,\n // so that we can extract the base path for nested routes\n ...(loose ? [$base] : []),\n ]\n : [false, null];\n};\n\nconst useRoute = (pattern) =>\n matchRoute(useRouter().parser, pattern, useLocation()[0]);\n\n/*\n * Part 2, Low Carb Router API: Router, Route, Link, Switch\n */\n\nconst Router = ({ children, ...props }) => {\n // the router we will inherit from - it is the closest router in the tree,\n // unless the custom `hook` is provided (in that case it's the default one)\n const parent_ = useRouter();\n const parent = props.hook ? defaultRouter : parent_;\n\n // holds to the context value: the router object\n let value = parent;\n\n // what is happening below: to avoid unnecessary rerenders in child components,\n // we ensure that the router object reference is stable, unless there are any\n // changes that require reload (e.g. `base` prop changes -> all components that\n // get the router from the context should rerender, even if the component is memoized).\n // the expected behaviour is:\n //\n // 1) when the resulted router is no different from the parent, use parent\n // 2) if the custom `hook` prop is provided, we always inherit from the\n // default router instead. this resets all previously overridden options.\n // 3) when the router is customized here, it should stay stable between renders\n let ref = useRef({}),\n prev = ref.current,\n next = prev;\n\n for (let k in parent) {\n const option =\n k === \"base\"\n ? /* base is special case, it is appended to the parent's base */\n parent[k] + (props[k] || \"\")\n : props[k] || parent[k];\n\n if (prev === next && option !== next[k]) {\n ref.current = next = { ...next };\n }\n\n next[k] = option;\n\n // the new router is no different from the parent, use parent\n if (option !== parent[k]) value = next;\n }\n\n return createElement(RouterCtx.Provider, { value, children });\n};\n\nconst h_route = ({ children, component }, params) => {\n // React-Router style `component` prop\n if (component) return createElement(component, { params });\n\n // support render prop or plain children\n return typeof children === \"function\" ? children(params) : children;\n};\n\nconst Route = ({ path, nest, match, ...renderProps }) => {\n const router = useRouter();\n const [location] = useLocationFromRouter(router);\n\n const [matches, params, base] =\n // `match` is a special prop to give up control to the parent,\n // it is used by the `Switch` to avoid double matching\n match ?? matchRoute(router.parser, path, location, nest);\n\n if (!matches) return null;\n\n const children = base\n ? createElement(Router, { base }, h_route(renderProps, params))\n : h_route(renderProps, params);\n\n return createElement(ParamsCtx.Provider, { value: params, children });\n};\n\nconst Link = forwardRef((props, ref) => {\n const router = useRouter();\n const [, navigate] = useLocationFromRouter(router);\n\n const {\n to,\n href: _href = to,\n onClick: _onClick,\n asChild,\n children,\n /* eslint-disable no-unused-vars */\n replace /* ignore nav props */,\n state /* ignore nav props */,\n /* eslint-enable no-unused-vars */\n ...restProps\n } = props;\n\n const onClick = useEvent((event) => {\n // ignores the navigation when clicked using right mouse button or\n // by holding a special modifier key: ctrl, command, win, alt, shift\n if (\n event.ctrlKey ||\n event.metaKey ||\n event.altKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n\n _onClick && _onClick(event); // TODO: is it safe to use _onClick?.(event)\n if (!event.defaultPrevented) {\n event.preventDefault();\n navigate(_href, props);\n }\n });\n\n // handle nested routers and absolute paths\n const href = _href[0] === \"~\" ? _href.slice(1) : router.base + _href;\n\n return asChild && isValidElement(children)\n ? cloneElement(children, { href, onClick })\n : createElement(\"a\", { ...restProps, href, onClick, children, ref });\n});\n\nconst flattenChildren = (children) => {\n return Array.isArray(children)\n ? [].concat(\n ...children.map((c) =>\n c && c.type === Fragment\n ? flattenChildren(c.props.children)\n : flattenChildren(c)\n )\n )\n : [children];\n};\n\nconst Switch = ({ children, location }) => {\n const router = useRouter();\n const [originalLocation] = useLocationFromRouter(router);\n\n for (const element of flattenChildren(children)) {\n let match = 0;\n\n if (\n isValidElement(element) &&\n // we don't require an element to be of type Route,\n // but we do require it to contain a truthy `path` prop.\n // this allows to use different components that wrap Route\n // inside of a switch, for example <AnimatedRoute />.\n (match = matchRoute(\n router.parser,\n element.props.path,\n location || originalLocation,\n element.props.nest\n ))[0]\n )\n return cloneElement(element, { match });\n }\n\n return null;\n};\n\nconst Redirect = (props) => {\n const { to, href = to } = props;\n const [, navigate] = useLocation();\n const redirect = useEvent(() => navigate(to || href, props));\n\n // redirect is guaranteed to be stable since it is returned from useEvent\n useLayoutEffect(() => {\n redirect();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport { Link, Redirect, Route, Router, Switch, useLocation, useParams, useRoute, useRouter, useSearch };\n","/**\n * @param {string|RegExp} input The route pattern\n * @param {boolean} [loose] Allow open-ended matching. Ignored with `RegExp` input.\n */\nexport function parse(input, loose) {\n\tif (input instanceof RegExp) return { keys:false, pattern:input };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = input.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push(c);\n\t\t\tpattern += tmp[1] === '?' ? '(?:/(.*))?' : '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? key : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * Return the event type that a listener will receive.\n *\n * For example `EventType<HTMLElement, 'keydown'>` evaluates to `KeyboardEvent`.\n *\n * The event type is extracted from the target's `on${Type}` property (eg.\n * `HTMLElement.onkeydown` here) If there is no such property, the type defaults\n * to `Event`.\n */\n\n/**\n * Utility that provides a way to conveniently remove a set of DOM event\n * listeners when they are no longer needed.\n */\nexport class ListenerCollection {\n constructor() {\n _defineProperty(this, \"_listeners\", void 0);\n this._listeners = new Map();\n }\n\n /**\n * Add a listener and return an ID that can be used to remove it later\n */\n add(eventTarget, eventType, listener, options) {\n eventTarget.addEventListener(eventType, listener, options);\n const symbol = Symbol();\n this._listeners.set(symbol, {\n eventTarget,\n eventType,\n listener,\n options\n });\n return symbol;\n }\n\n /**\n * Remove a specific listener.\n */\n remove(listenerId) {\n const event = this._listeners.get(listenerId);\n if (event) {\n const {\n eventTarget,\n eventType,\n listener,\n options\n } = event;\n eventTarget.removeEventListener(eventType, listener, options);\n this._listeners.delete(listenerId);\n }\n }\n removeAll() {\n this._listeners.forEach(({\n eventTarget,\n eventType,\n listener,\n options\n }) => {\n eventTarget.removeEventListener(eventType, listener, options);\n });\n this._listeners.clear();\n }\n}\n//# sourceMappingURL=listener-collection.js.map","import { useRef } from 'preact/hooks';\n\n/**\n * Return a function which wraps a callback to give it a stable value.\n *\n * The wrapper has a stable value across renders, but always forwards to the\n * callback from the most recent render. This is useful if you want to use a\n * callback inside a `useEffect` or `useMemo` hook without re-running the effect\n * or re-computing the memoed value when the callback changes.\n */\nexport function useStableCallback(callback) {\n const wrapper = useRef({\n callback,\n call: (...args) => wrapper.current.callback(...args)\n });\n\n // On each render, save the last callback value.\n wrapper.current.callback = callback;\n return wrapper.current.call;\n}\n//# sourceMappingURL=use-stable-callback.js.map","import { useEffect, useRef } from 'preact/hooks';\nimport { ListenerCollection } from '../util/listener-collection';\nimport { useStableCallback } from './use-stable-callback';\nfunction isElementDisabled(element) {\n return typeof element.disabled === 'boolean' && element.disabled;\n}\nfunction isElementVisible(element) {\n return element.offsetParent !== null;\n}\nfunction defaultSetFocus(element) {\n element.focus();\n}\n/**\n * Enable arrow key navigation between interactive descendants of a\n * container element.\n *\n * In addition to moving focus between elements when arrow keys are pressed,\n * this also implements the \"roving tabindex\" pattern [1] which sets the\n * `tabindex` attribute of elements to control which element gets focus when the\n * user tabs into the container.\n *\n * See [2] for a reference of how keyboard navigation should work in web\n * applications and how it applies to various common widgets.\n *\n * @example\n * function MyToolbar() {\n * const container = useRef();\n *\n * // Enable arrow key navigation between interactive elements in the\n * // toolbar container.\n * useArrowKeyNavigation(container);\n *\n * return (\n * <div ref={container} role=\"toolbar\">\n * <button>Bold</bold>\n * <button>Italic</bold>\n * <a href=\"https://example.com/help\">Help</a>\n * </div>\n * )\n * }\n *\n * [1] https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex\n * [2] https://www.w3.org/TR/wai-aria-practices/#keyboard\n *\n */\nexport function useArrowKeyNavigation(containerRef, {\n autofocus = false,\n loop = true,\n horizontal = true,\n vertical = true,\n selector = 'a,button',\n containerVisible = true,\n focusElement: focusElement_ = defaultSetFocus\n} = {}) {\n // Keep track of the element that was last focused by this hook such that\n // navigation can be restored if focus moves outside the container and then\n // back to/into it.\n const lastFocusedItem = useRef(null);\n const focusElement = useStableCallback(focusElement_);\n useEffect(() => {\n if (!containerVisible) {\n return () => {};\n }\n if (!containerRef.current) {\n throw new Error('Container ref not set');\n }\n const container = containerRef.current;\n const getNavigableElements = () => {\n const elements = Array.from(container.querySelectorAll(selector));\n const filtered = elements.filter(el => isElementVisible(el) && !isElementDisabled(el));\n // Include the container itself in the set of navigable elements if it\n // is currently focused. It will not be part of the tab sequence once it\n // loses focus. This allows, e.g., a widget container to be focused when\n // opened but not be part of the subsequent keyboard-navigation sequence.\n if (document.activeElement === container) {\n filtered.unshift(container);\n }\n return filtered;\n };\n\n /**\n * Update the `tabindex` attribute of navigable elements.\n *\n * Exactly one element will have `tabindex=0` and all others will have\n * `tabindex=1`.\n * @param currentIndex - Index of element in `elements` to make current.\n * Defaults to the current element if there is one, or the first element\n * otherwise.\n * @param setFocus - Whether to focus the current element\n */\n const updateTabIndexes = (elements = getNavigableElements(), currentIndex = -1, setFocus = false, keyEvent) => {\n if (currentIndex < 0) {\n currentIndex = elements.findIndex(el => el.tabIndex === 0);\n if (currentIndex < 0) {\n currentIndex = 0;\n }\n }\n for (const [index, element] of elements.entries()) {\n element.tabIndex = index === currentIndex ? 0 : -1;\n if (index === currentIndex && setFocus) {\n lastFocusedItem.current = element;\n focusElement(element, keyEvent);\n }\n }\n };\n const onKeyDown = event => {\n const elements = getNavigableElements();\n let currentIndex = elements.findIndex(item => item.tabIndex === 0);\n let handled = false;\n if (horizontal && event.key === 'ArrowLeft' || vertical && event.key === 'ArrowUp') {\n if (currentIndex === 0) {\n currentIndex = loop ? elements.length - 1 : currentIndex;\n } else {\n --currentIndex;\n }\n handled = true;\n } else if (horizontal && event.key === 'ArrowRight' || vertical && event.key === 'ArrowDown') {\n if (currentIndex === elements.length - 1) {\n currentIndex = loop ? 0 : currentIndex;\n } else {\n ++currentIndex;\n }\n handled = true;\n } else if (event.key === 'Home') {\n currentIndex = 0;\n handled = true;\n } else if (event.key === 'End') {\n currentIndex = elements.length - 1;\n handled = true;\n }\n if (!handled) {\n return;\n }\n updateTabIndexes(elements, currentIndex, true /* setFocus */, event);\n event.preventDefault();\n event.stopPropagation();\n };\n const navigableElements = getNavigableElements();\n // Start focus sequence with previously focused element, if any\n const initialIndex = lastFocusedItem.current ? navigableElements.indexOf(lastFocusedItem.current) : 0;\n updateTabIndexes(navigableElements, initialIndex, autofocus);\n const listeners = new ListenerCollection();\n\n // Set an element as current when it gains focus. In Safari this event\n // may not be received if the element immediately loses focus after it\n // is triggered.\n listeners.add(container, 'focusin', event => {\n if (event.target === container && lastFocusedItem.current) {\n // Focus is moving back to the container after having left. Restore the\n // last tabindex. This allows users to exit and re-enter the widget\n // without resetting the navigation sequence.\n focusElement(lastFocusedItem.current);\n return;\n }\n const elements = getNavigableElements();\n const targetIndex = elements.indexOf(event.target);\n if (targetIndex >= 0) {\n updateTabIndexes(elements, targetIndex, autofocus);\n }\n });\n listeners.add(container, 'keydown', onKeyDown);\n\n // Update the tab indexes of elements as they are added, removed, enabled\n // or disabled.\n const mo = new MutationObserver(() => {\n updateTabIndexes();\n });\n mo.observe(container, {\n subtree: true,\n attributes: true,\n attributeFilter: ['disabled'],\n childList: true\n });\n return () => {\n listeners.removeAll();\n mo.disconnect();\n };\n }, [autofocus, containerRef, focusElement, horizontal, loop, selector, vertical, containerVisible]);\n}\n//# sourceMappingURL=use-arrow-key-navigation.js.map","import { useEffect } from 'preact/hooks';\nimport { ListenerCollection } from '../util/listener-collection';\n/**\n * Listen on document.body for click events. If a click event's target is\n * outside the `container` element, invoke the `callback`. Do not listen if\n * not `enabled`.\n */\nexport function useClickAway(container, callback, {\n enabled = true\n} = {}) {\n useEffect(() => {\n if (!enabled) {\n return () => {};\n }\n const target = document.body;\n const listeners = new ListenerCollection();\n const handleAwayClick = event => {\n if (container.current &&\n // We test the composed path here to handle the case where the clicked\n // element was in fact in the container, but is removed from the DOM\n // (eg. by a re-render in a child component) before this callback is run.\n // The composed path reflects the DOM hierarchy at the time the event was\n // dispatched.\n !event.composedPath().includes(container.current)) {\n callback(event);\n }\n };\n listeners.add(target, 'mousedown', handleAwayClick);\n listeners.add(target, 'click', handleAwayClick);\n return () => {\n listeners.removeAll();\n };\n }, [container, enabled, callback]);\n}\n//# sourceMappingURL=use-click-away.js.map","import { useEffect } from 'preact/hooks';\nimport { ListenerCollection } from '../util/listener-collection';\n/**\n * Listen on container for focusout events. If a focusout event's relatedTarget\n * is outside of the `container` element, invoke the `callback`.\n * Do not listen if not `enabled`.\n */\nexport function useFocusAway(container, callback, {\n enabled = true\n} = {}) {\n useEffect(() => {\n if (!enabled || !container.current) {\n return () => {};\n }\n const listeners = new ListenerCollection();\n listeners.add(container.current, 'focusout', e => {\n // Event type is not being properly inferred as FocusEvent\n const event = e;\n if (container.current && !container.current.contains(event.relatedTarget)) {\n callback(event);\n }\n });\n return () => {\n listeners.removeAll();\n };\n }, [container, enabled, callback]);\n}\n//# sourceMappingURL=use-focus-away.js.map","import { useEffect } from 'preact/hooks';\nimport { ListenerCollection } from '../util/listener-collection';\n/**\n * Listen on HTMLElement `target` for key press events for the designated `keys`\n * and invoke a callback. Do not listen if not `enabled`.\n *\n * @param keys - Array of keys (e.g. 'Escape', 'd') to listen for\n */\nexport function useKeyPress(keys, callback, {\n enabled = true\n} = {}) {\n useEffect(() => {\n if (!enabled) {\n return () => {};\n }\n const target = document.body;\n const listeners = new ListenerCollection();\n listeners.add(target, 'keydown', event => {\n if (keys.includes(event.key)) {\n callback(event);\n }\n });\n return () => {\n listeners.removeAll();\n };\n }, [enabled, callback, keys]);\n}\n//# sourceMappingURL=use-key-press.js.map","import { useMemo } from 'preact/hooks';\nconst collator = new Intl.Collator(undefined, {\n sensitivity: 'case'\n});\n\n/**\n * Orders a list of rows based on provided order options.\n * Provided rows are not mutated, but a copy is returned instead.\n * Strings are compared using `Intl.Collator`, other types are compared using\n * standard JavaScript comparisons.\n */\nexport function useOrderedRows(rows, order) {\n return useMemo(() => {\n if (!order) {\n return rows;\n }\n\n // Order nulls last by default\n const {\n nullsLast = true\n } = order;\n return [...rows].sort(({\n [order.field]: a\n }, {\n [order.field]: b\n }) => {\n const [x, y] = order.direction === 'ascending' ? [a, b] : [b, a];\n if (typeof x === 'string' && typeof y === 'string') {\n return collator.compare(x, y);\n }\n if (x === y) {\n return 0;\n }\n\n // We check a/b instead of x/y because nulls should not be affected by the\n // regular order direction.\n if (a === null || a === undefined) {\n return nullsLast ? 1 : -1;\n }\n if (b === null || b === undefined) {\n return nullsLast ? -1 : 1;\n }\n return x > y ? 1 : -1;\n });\n }, [order, rows]);\n}\n//# sourceMappingURL=use-ordered-rows.js.map","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { useRef } from 'preact/hooks';\n\n/**\n * Object ref which synchronizes its value to another ref.\n */\nclass SyncedRef {\n /**\n * @param [target] - Initial target for this ref to synchronize to.\n * This is not called/set until the {@link current} property of the\n * SyncedRef is set. This makes the target behave close to how it would\n * if used in place of the SyncedRef.\n */\n constructor(target) {\n _defineProperty(this, \"_target\", void 0);\n _defineProperty(this, \"_value\", void 0);\n this._target = target;\n this._value = null;\n }\n get current() {\n return this._value;\n }\n set current(value) {\n this._value = value;\n this._updateTarget();\n }\n get target() {\n return this._target;\n }\n set target(target) {\n if (target === this._target) {\n return;\n }\n this._target = target;\n\n // If the target changes after the initial render, we currently synchronize\n // the value immediately. This is different than what happens if the target\n // were passed to an element directly, as it would be updated only after the\n // render.\n this._updateTarget();\n }\n _updateTarget() {\n const value = this._value;\n if (typeof this._target === 'function') {\n this._target(value);\n } else if (this._target) {\n this._target.current = value;\n }\n }\n}\n\n/**\n * Return an object ref which synchronizes its value to another \"target\" ref.\n *\n * This is useful when a component needs an object ref for an element for\n * internal use, but also wants to allow the caller to get a ref for the same\n * element.\n *\n * The target ref can be either a callback or an object.\n *\n * @example\n * function Widget({ elementRef }) {\n * const ref = useSyncedRef(elementRef);\n *\n * useEffect(() => {\n * ref.current.focus();\n * }, []);\n *\n * return <input ref={ref}>...</input>;\n * }\n */\nexport function useSyncedRef(targetRef) {\n const container = useRef(new SyncedRef(targetRef));\n container.current.target = targetRef;\n return container.current;\n}\n//# sourceMappingURL=use-synced-ref.js.map","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\"&quot;\";break;case 38:f=\"&amp;\";break;case 60:f=\"&lt;\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import { useEffect, useRef } from 'preact/hooks';\nimport { ListenerCollection } from '../util/listener-collection';\nfunction isElementDisabled(element) {\n return typeof element.disabled === 'boolean' && element.disabled;\n}\nfunction isElementVisible(element) {\n return element.offsetParent !== null;\n}\n/**\n * Trap focus within a modal dialog and support roving tabindex with 'Tab' and\n * 'Shift-Tab' keys to navigate through interactive descendants. See [1] for\n * reference for how keyboard navigation should work within modal dialogs.\n *\n * Note that this hook does not set initial focus: routing initial focus\n * appropriately is the responsibility of the consuming component.\n *\n * NB: This hook should be removed/disused once we migrate to using native\n * <dialog> elements. The hook duplicates some logic in `useArrowKeyNavigation`.\n *\n * @example\n * function MyModalDialog() {\n * const container = useRef();\n *\n * // Enable tab key navigation between interactive elements in the\n * // modal-dialog container.\n * useTabKeyNavigation(container);\n *\n * return (\n * <div ref={container} role=\"dialog\" aria-modal>\n * <button>Bold</bold>\n * <button>Italic</bold>\n * <a href=\"https://example.com/help\">Help</a>\n * </div>\n * )\n * }\n *\n * [1] https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/#keyboardinteraction\n *\n */\n\n// By default, include standard browser focus-able, tab-sequence elements (links, buttons,\n// inputs). Also include the containers for ARIA interactive widgets `grid` and\n// `tablist`. Internal keyboard navigation for those widgets should be handled\n// separately: exclude `tab`-role buttons from this hook's navigation sequence.\nconst defaultSelector = 'a,button:not([role=\"tab\"]),input,select,textarea,[role=\"grid\"],[role=\"tablist\"]';\nexport function useTabKeyNavigation(containerRef, {\n enabled = true,\n selector = defaultSelector\n} = {}) {\n const lastFocusedItem = useRef(null);\n useEffect(() => {\n if (!enabled) {\n return () => {};\n }\n if (!containerRef.current) {\n throw new Error('Container ref not set');\n }\n const container = containerRef.current;\n const getNavigableElements = () => {\n const elements = Array.from(container.querySelectorAll(selector));\n const filtered = elements.filter(el => isElementVisible(el) && !isElementDisabled(el));\n // Include the container itself in the set of navigable elements if it\n // is currently focused. It will not be part of the tab sequence once it\n // loses focus. This allows, e.g., a modal container to be focused when\n // opened but not be part of the subsequent trapped tab sequence.\n if (document.activeElement === container) {\n filtered.unshift(container);\n }\n return filtered;\n };\n\n /**\n * Update the `tabindex` attribute of navigable elements.\n *\n * Exactly one element will have `tabindex=0` and all others will have\n * `tabindex=1`.\n * @param currentIndex - Index of element in `elements` to make current.\n * Defaults to the current element if there is one, or the first element\n * otherwise.\n * @param setFocus - Whether to focus the current element\n */\n const updateTabIndexes = (elements = getNavigableElements(), currentIndex = -1, setFocus = false) => {\n if (currentIndex < 0) {\n currentIndex = elements.findIndex(el => el.tabIndex === 0);\n if (currentIndex < 0) {\n currentIndex = 0;\n }\n }\n for (const [index, element] of elements.entries()) {\n element.tabIndex = index === currentIndex ? 0 : -1;\n if (index === currentIndex && setFocus) {\n lastFocusedItem.current = element;\n element.focus();\n }\n }\n };\n const onKeyDown = event => {\n const elements = getNavigableElements();\n let currentIndex = elements.findIndex(item => item.tabIndex === 0);\n if ((currentIndex === -1 || elements[currentIndex] === container) && lastFocusedItem.current) {\n // Focus is moving back to/into the container after having left (or\n // active tabindex is a non-navigable element). Restore previous active\n // tabindex. This allows the user to exit and re-enter the widget\n // without losing tab-sequence position.\n currentIndex = elements.indexOf(lastFocusedItem.current);\n }\n let handled = false;\n if (event.key === 'Tab' && event.shiftKey) {\n if (currentIndex === 0) {\n currentIndex = elements.length - 1;\n } else {\n --currentIndex;\n }\n handled = true;\n } else if (event.key === 'Tab') {\n if (currentIndex === elements.length - 1) {\n currentIndex = 0;\n } else {\n ++currentIndex;\n }\n handled = true;\n }\n if (!handled) {\n return;\n }\n updateTabIndexes(elements, currentIndex, true);\n event.preventDefault();\n event.stopPropagation();\n };\n const elements = getNavigableElements();\n // One of the navigable elements may already have focus\n const focusedIndex = elements.indexOf(document.activeElement);\n updateTabIndexes(elements, focusedIndex);\n const listeners = new ListenerCollection();\n\n // Set an element as current when it gains focus. In Safari this event\n // may not be received if the element immediately loses focus after it\n // is triggered.\n listeners.add(container, 'focusin', event => {\n const elements = getNavigableElements();\n const targetIndex = elements.indexOf(event.target);\n if (targetIndex >= 0) {\n updateTabIndexes(elements, targetIndex);\n }\n });\n listeners.add(container, 'keydown', onKeyDown);\n\n // Update the tab indexes of elements as they are added, removed, enabled\n // or disabled.\n const mo = new MutationObserver(() => {\n updateTabIndexes();\n });\n mo.observe(container, {\n subtree: true,\n attributes: true,\n attributeFilter: ['disabled'],\n childList: true\n });\n return () => {\n listeners.removeAll();\n mo.disconnect();\n };\n }, [containerRef, enabled, selector]);\n}\n//# sourceMappingURL=use-tab-key-navigation.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * A full-screen fixed backdrop overlay\n */\nexport default function Overlay({\n children,\n classes,\n elementRef,\n open = true,\n variant = 'dark',\n ...htmlAttributes\n}) {\n if (!open) {\n return null;\n }\n return _jsx(\"div\", {\n \"data-component\": \"Overlay\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames('fixed top-0 left-0 w-full h-full z-10 flex items-center justify-center', {\n 'bg-black/50': variant === 'dark',\n // default\n 'bg-white/50': variant === 'light'\n }, classes),\n children: children\n });\n}\n//# sourceMappingURL=Overlay.js.map","import { createContext } from 'preact';\nconst CloseableContext = createContext({});\nexport default CloseableContext;\n//# sourceMappingURL=CloseableContext.js.map","import { createContext } from 'preact';\nconst ScrollContext = createContext({});\nexport default ScrollContext;\n//# sourceMappingURL=ScrollContext.js.map","import classnames from 'classnames';\nimport { useMemo } from 'preact/hooks';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { downcastRef } from '../../util/typing';\nimport ScrollContext from './ScrollContext';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a fluid container that scrolls on overflow.\n */\nexport default function Scroll({\n children,\n classes,\n elementRef,\n variant = 'raised',\n ...htmlAttributes\n}) {\n const ref = useSyncedRef(elementRef);\n const scrollContext = useMemo(() => ({\n scrollRef: ref\n }), [ref]);\n return _jsx(ScrollContext.Provider, {\n value: scrollContext,\n children: _jsx(\"div\", {\n \"data-component\": \"Scroll\",\n ...htmlAttributes,\n ref: downcastRef(ref),\n className: classnames(\n // Prevent overflow by overriding `min-height: auto`.\n // See https://stackoverflow.com/a/66689926/434243.\n 'min-h-0', 'h-full w-full overflow-auto', {\n 'scroll-shadows': variant === 'raised'\n }, classes),\n children: children\n })\n });\n}\n//# sourceMappingURL=Scroll.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render content in a card-like frame\n */\nexport default function Card({\n children,\n classes,\n elementRef,\n active = false,\n variant = 'raised',\n width = 'full',\n ...htmlAttributes\n}) {\n return _jsx(\"div\", {\n \"data-component\": \"Card\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames('rounded-lg border bg-white', {\n 'shadow hover:shadow-md': variant === 'raised',\n // default\n 'shadow-md': active && variant === 'raised'\n }, {\n 'w-full': width === 'full',\n // default\n 'w-auto': width === 'auto'\n // No width is set if `width === 'custom'`\n }, classes),\n children: children\n });\n}\n//# sourceMappingURL=Card.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a group of buttons or interactive elements inside a Card\n */\nexport default function CardActions({\n children,\n classes,\n elementRef,\n ...htmlAttributes\n}) {\n return _jsx(\"div\", {\n \"data-component\": \"CardActions\",\n ...htmlAttributes,\n className: classnames('flex items-center justify-end space-x-3', classes),\n ref: downcastRef(elementRef),\n children: children\n });\n}\n//# sourceMappingURL=CardActions.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Apply consistent spacing and padding for actions content inside a Card\n */\nexport default function CardContent({\n children,\n classes,\n elementRef,\n size = 'md',\n ...htmlAttributes\n}) {\n return _jsx(\"div\", {\n \"data-component\": \"CardContent\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames({\n 'p-3 space-y-4': size === 'md',\n // Default\n 'p-2 space-y-3': size === 'sm',\n 'p-4 space-y-6': size === 'lg'\n }, classes),\n children: children\n });\n}\n//# sourceMappingURL=CardContent.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from arrow-down.svg\n */\nexport default function ArrowDownIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ArrowDownIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 2a1 1 0 0 1 .993.883L9 3v7.585l2.293-2.292a1 1 0 0 1 1.32-.083l.094.083a1 1 0 0 1 .083 1.32l-.083.094-4 4a1 1 0 0 1-1.32.083l-.094-.083-4-4a1 1 0 0 1 1.32-1.497l.094.083L7 10.585V3a1 1 0 0 1 1-1\"\n })]\n })\n });\n}\n//# sourceMappingURL=ArrowDown.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from arrow-left.svg\n */\nexport default function ArrowLeftIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ArrowLeftIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.707 3.293a1 1 0 0 1 .083 1.32l-.083.094L5.415 7H13a1 1 0 0 1 .117 1.993L13 9H5.415l2.292 2.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083-4-4a1 1 0 0 1-.083-1.32l.083-.094 4-4a1 1 0 0 1 1.414 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=ArrowLeft.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from arrow-right.svg\n */\nexport default function ArrowRightIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ArrowRightIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m9.613 3.21.094.083 4 4a1 1 0 0 1 .083 1.32l-.083.094-4 4a1 1 0 0 1-1.497-1.32l.083-.094L10.585 9H3a1 1 0 0 1-.117-1.993L3 7h7.585L8.293 4.707a1 1 0 0 1-.083-1.32l.083-.094a1 1 0 0 1 1.32-.083\"\n })]\n })\n });\n}\n//# sourceMappingURL=ArrowRight.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from arrow-up.svg\n */\nexport default function ArrowUpIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ArrowUpIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m8.613 2.21.094.083 4 4a1 1 0 0 1-1.32 1.497l-.094-.083L9 5.415V13a1 1 0 0 1-1.993.117L7 13V5.415L4.707 7.707a1 1 0 0 1-1.32.083l-.094-.083a1 1 0 0 1-.083-1.32l.083-.094 4-4a1 1 0 0 1 1.32-.083\"\n })]\n })\n });\n}\n//# sourceMappingURL=ArrowUp.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from cancel.svg\n */\nexport default function CancelIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CancelIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m12.322 5.085-.08.087-2.828 2.827 2.829 2.83a1 1 0 0 1-1.32 1.497l-.095-.083L8 9.414l-2.828 2.829c-.915.914-2.272-.388-1.494-1.328l.08-.087L6.584 8 3.757 5.172a1 1 0 0 1 1.32-1.498l.095.083L8 6.585l2.828-2.828c.886-.885 2.188.309 1.56 1.239z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Cancel.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from caution.svg\n */\nexport default function CautionIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CautionIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0c.767 0 1.432.455 1.794 1.148l5.917 11.326c.386.738.36 1.573.071 2.23-.286.651-.926 1.296-1.864 1.296H2.082c-.938 0-1.578-.645-1.864-1.295a2.6 2.6 0 0 1 .07-2.23L6.207 1.147C6.568.455 7.233 0 8 0m0 2.038-.021.036L2.06 13.4a.6.6 0 0 0-.012.5.3.3 0 0 0 .062.1H13.89a.3.3 0 0 0 .061-.1.6.6 0 0 0-.012-.5L8.02 2.074zm5.874 11.972q0 0 .01-.006-.01.007-.01.006m-11.748 0q0 .002-.01-.006z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 5a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1M9 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Caution.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from check.svg\n */\nexport default function CheckIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CheckIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12.18 2.427a1 1 0 0 1 1.705 1.04l-.066.106-7 10a1 1 0 0 1-1.606.045l-.07-.104-3-5A1 1 0 0 1 3.792 7.39l.065.097 2.207 3.677z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Check.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from checkbox.svg\n */\nexport default function CheckboxIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CheckboxIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M0 2.5A2.5 2.5 0 0 1 2.5 0h11A2.5 2.5 0 0 1 16 2.5v11a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 13.5zM2.5 1A1.5 1.5 0 0 0 1 2.5v11A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-11A1.5 1.5 0 0 0 13.5 1z\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=Checkbox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from checkbox-checked-filled.svg\n */\nexport default function CheckboxCheckedFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CheckboxCheckedFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm10.18 3.636a.75.75 0 0 0-1.044.184l-4.588 6.552-1.655-2.758-.05-.072a.75.75 0 0 0-1.236.844l2.25 3.75.053.078a.75.75 0 0 0 1.204-.034l5.25-7.5.05-.08a.75.75 0 0 0-.234-.964\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=CheckboxCheckedFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from code.svg\n */\nexport default function CodeIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CodeIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12.707 4.293a1 1 0 1 0-1.414 1.414L13.586 8l-2.293 2.293a1 1 0 0 0 1.414 1.414l3-3a1 1 0 0 0 0-1.414zm-9.414 0a1 1 0 0 1 1.414 1.414L2.414 8l2.293 2.293a1 1 0 1 1-1.414 1.414l-3-3a1 1 0 0 1 0-1.414z\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=Code.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from copy.svg\n */\nexport default function CopyIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CopyIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15 0a1 1 0 0 1 .993.883L16 1v10a1 1 0 0 1-.883.993L15 12H7a1 1 0 0 1-.993-.883L6 11V1a1 1 0 0 1 .883-.993L7 0zM4 4a1 1 0 0 1 .117 1.993L4 6H2v8h7a1 1 0 0 1 .993.883L10 15a1 1 0 0 1-.883.993L9 16H1a1 1 0 0 1-.993-.883L0 15V5a1 1 0 0 1 .883-.993L1 4zm4-2h6v8H8z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Copy.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from edit.svg\n */\nexport default function EditIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EditIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M14.613.21a1 1 0 0 0-1.32.083l-1 1-.083.094a1 1 0 0 0 .083 1.32l1 1 .094.083a1 1 0 0 0 1.32-.083l1-1 .083-.094a1 1 0 0 0-.083-1.32l-1-1zm-3 3a1 1 0 0 0-1.32.083l-9 9-.072.08a1 1 0 0 0-.115.18l-1 2-.044.1c-.316.827.559 1.655 1.385 1.241l2-1 .093-.053a1 1 0 0 0 .167-.134l9-9 .083-.094a1 1 0 0 0-.083-1.32l-1-1z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Edit.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from ellipsis.svg\n */\nexport default function EllipsisIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EllipsisIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4m6 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4m8 2a2 2 0 1 0-4 0 2 2 0 0 0 4 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Ellipsis.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from email.svg\n */\nexport default function EmailIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EmailIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 12a2 2 0 0 1-1.85 1.995L14 14H2a2 2 0 0 1-1.995-1.85L0 12V4a2 2 0 0 1 1.85-1.995L2 2h12a2 2 0 0 1 1.995 1.85l.005.138zm-2-6.058L8.581 9.814a1 1 0 0 1-1.055.067l-.107-.067L2 5.943V12h12zM2.721 4h10.558L8 7.771z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Email.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from file-image.svg\n */\nexport default function FileImageIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FileImageIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12.685.144A.5.5 0 0 0 12.333 0H1.5a.5.5 0 0 0-.5.5v15a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5V2.643a.5.5 0 0 0-.148-.356zM2 1h9v2.5a.5.5 0 0 0 .5.5H14v11H2zm7.541 4.122.055.069 3.333 5.143a.432.432 0 0 1-.266.658l-.08.008H9.23a.93.93 0 0 0-.076-.98l-1.79-2.456 1.54-2.373a.41.41 0 0 1 .637-.069m-3.29 1.764-.062-.068a.41.41 0 0 0-.605.068l-2.5 3.428-.04.067c-.135.275.056.619.373.619h5l.076-.007a.432.432 0 0 0 .257-.679z\"\n })]\n })\n });\n}\n//# sourceMappingURL=FileImage.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from hide.svg\n */\nexport default function HideIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"HideIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m1.613.21.094.083 14 14a1 1 0 0 1-1.32 1.497l-.094-.083-14-14A1 1 0 0 1 1.613.21m.583 4.845a1 1 0 0 1 .292 1.384C2.165 6.935 2 7.46 2 8c0 2.123 2.628 4 6 4q.33 0 .657-.024a1 1 0 0 1 .147 1.994Q8.405 14 8 14c-4.36 0-8-2.6-8-6 0-.937.283-1.84.812-2.653a1 1 0 0 1 1.384-.292M16 8c0-3.4-3.64-6-8-6q-.405 0-.804.03a1 1 0 1 0 .147 1.994Q7.668 4 8 4c3.372 0 6 1.877 6 4 0 .539-.165 1.065-.488 1.561a1 1 0 1 0 1.676 1.092C15.718 9.84 16 8.937 16 8\"\n })]\n })\n });\n}\n//# sourceMappingURL=Hide.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from image.svg\n */\nexport default function ImageIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ImageIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.995 1.85A2 2 0 0 0 14 0H2l-.15.005A2 2 0 0 0 0 2v12l.005.15A2 2 0 0 0 2 16h12l.15-.005A2 2 0 0 0 16 14V2zM2 2h12v12H2zm7.541 3.122.055.069 3.333 5.143a.432.432 0 0 1-.266.658l-.08.008H9.23a.93.93 0 0 0-.076-.98l-1.79-2.456 1.54-2.373a.41.41 0 0 1 .637-.069m-3.29 1.764-.062-.068a.41.41 0 0 0-.605.068l-2.5 3.428-.04.067c-.135.275.056.619.373.619h5l.076-.007a.432.432 0 0 0 .257-.679z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Image.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from logo.svg\n */\nexport default function LogoIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"LogoIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M13.83 0C14.476 0 15 .53 15 1.185V12.69c0 .654-.524 1.185-1.17 1.185H9.75L8 16l-1.75-2.125H2.17c-.646 0-1.17-.53-1.17-1.185V1.186C1 .53 1.524 0 2.17 0z\"\n }), _jsx(\"path\", {\n fill: \"#fff\",\n d: \"M4.785 2.133h-1.71v9.6h1.71V8.735c0-1.522.473-1.754.905-1.793l.228-.009.17.003c.51.02.979.15.979 1.199v3.598h1.71V7.598c0-1.865-1.152-2.463-2.29-2.463l-.39.003c-.753.017-.822.154-1.312 1.197zM11.889 9.6c-.573 0-1.037.477-1.037 1.067 0 .589.464 1.066 1.037 1.066s1.037-.477 1.037-1.066S12.462 9.6 11.889 9.6\"\n })]\n })\n });\n}\n//# sourceMappingURL=Logo.js.map","import { jsx as _jsx } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from menu-collapse.svg\n */\nexport default function MenuCollapseIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"data-component\": \"MenuCollapseIcon\",\n ...props,\n children: _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m8.54 4.205 6.23 5.87a.69.69 0 0 1 0 1.03l-.72.68a.8.8 0 0 1-1.09 0L8 7.135l-4.96 4.65a.8.8 0 0 1-1.09 0l-.73-.69a.69.69 0 0 1 0-1.02l6.24-5.87a.8.8 0 0 1 1.08 0\"\n })\n });\n}\n//# sourceMappingURL=MenuCollapse.js.map","import { jsx as _jsx } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from menu-expand.svg\n */\nexport default function MenuExpandIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"MenuExpandIcon\",\n ...props,\n children: _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.456 11.788 1.226 5.92a.695.695 0 0 1 0-1.025l.726-.684a.804.804 0 0 1 1.087-.001L8 8.861l4.961-4.65a.804.804 0 0 1 1.087.001l.727.684c.3.283.3.742 0 1.025l-6.23 5.867a.804.804 0 0 1-1.09 0z\"\n })\n });\n}\n//# sourceMappingURL=MenuExpand.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from orderable.svg\n */\nexport default function OrderableIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"OrderableIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M4.293 5.293a1 1 0 0 0 1.414 1.414L8 4.414l2.293 2.293a1 1 0 1 0 1.414-1.414l-3-3a1 1 0 0 0-1.414 0zm0 5.414a1 1 0 0 1 1.414-1.414L8 11.586l2.293-2.293a1 1 0 1 1 1.414 1.414l-3 3a1 1 0 0 1-1.414 0z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Orderable.js.map","import { jsx as _jsx } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from pointer-down.svg\n */\nexport default function PointerDownIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"9\",\n \"data-component\": \"PointerDownIcon\",\n ...props,\n children: _jsx(\"path\", {\n stroke: \"currentColor\",\n d: \"m15.5 0-7 8-8-8\"\n })\n });\n}\n//# sourceMappingURL=PointerDown.js.map","import { jsx as _jsx } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from pointer-up.svg\n */\nexport default function PointerUpIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"9\",\n \"data-component\": \"PointerUpIcon\",\n ...props,\n children: _jsx(\"path\", {\n stroke: \"currentColor\",\n d: \"m.5 9 7-8 8 8\"\n })\n });\n}\n//# sourceMappingURL=PointerUp.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from profile.svg\n */\nexport default function ProfileIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ProfileIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 9c4.36 0 8 2.6 8 6a1 1 0 0 1-1.993.117L14 15c0-2.123-2.628-4-6-4s-6 1.877-6 4a1 1 0 1 1-2 0c0-3.4 3.64-6 8-6M6 4a2 2 0 1 1 4 0 2 2 0 0 1-4 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Profile.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from radio.svg\n */\nexport default function RadioIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"RadioIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=Radio.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from radio-checked.svg\n */\nexport default function RadioCheckedIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"RadioCheckedIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8\",\n \"clip-rule\": \"evenodd\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M14 8A6 6 0 1 1 2 8a6 6 0 0 1 12 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=RadioChecked.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from reply.svg\n */\nexport default function ReplyIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ReplyIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.707.293a1 1 0 0 1 .083 1.32l-.083.094L5.415 4H8a6 6 0 0 1 0 12 1 1 0 1 1 0-2 4 4 0 0 0 0-8H5.415l2.292 2.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083-4-4a1 1 0 0 1-.083-1.32l.083-.094 4-4a1 1 0 0 1 1.414 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Reply.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from settings.svg\n */\nexport default function SettingsIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"SettingsIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M3 1c1.312 0 2.427.842 2.835 2.015l.048-.008L6 3h9a1 1 0 0 1 .117 1.993L15 5H6q-.085 0-.166-.014A3 3 0 1 1 3 1m13 11a3 3 0 0 0-5.834-.986A1 1 0 0 0 10 11H1l-.117.007A1 1 0 0 0 1 13h9l.117-.007.048-.008A3.001 3.001 0 0 0 16 12m-4 0a1 1 0 1 1 2 0 1 1 0 0 1-2 0M2 4a1 1 0 1 1 2 0 1 1 0 0 1-2 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Settings.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from share.svg\n */\nexport default function ShareIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ShareIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8.707.293 8.613.21 8.51.14a1 1 0 0 0-1.218.153l-4 4-.083.094a1 1 0 0 0 .083 1.32l.094.083a1 1 0 0 0 1.32-.083L7 3.415V11l.007.117A1 1 0 0 0 9 11V3.415l2.293 2.292.094.083a1 1 0 0 0 1.32-1.497zm7.286 9.59A1 1 0 0 0 15 9l-.117.007A1 1 0 0 0 14 10v4H2v-4l-.007-.117A1 1 0 0 0 0 10v5l.007.117A1 1 0 0 0 1 16h14l.117-.007A1 1 0 0 0 16 15v-5z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Share.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from show.svg\n */\nexport default function ShowIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ShowIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 2c4.36 0 8 2.6 8 6s-3.64 6-8 6-8-2.6-8-6 3.64-6 8-6m0 2C4.628 4 2 5.877 2 8s2.628 4 6 4 6-1.877 6-4-2.628-4-6-4m2 4a2 2 0 1 0-4 0 2 2 0 0 0 4 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Show.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from spinner--spokes.svg\n */\nexport default function SpinnerSpokesIcon(props) {\n return _jsx(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 64 64\",\n \"data-component\": \"SpinnerSpokesIcon\",\n ...props,\n children: _jsxs(\"g\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-width\": \"6\",\n children: [_jsx(\"path\", {\n d: \"M32 16V4\",\n children: _jsx(\"animate\", {\n attributeName: \"stroke-opacity\",\n dur: \"750ms\",\n repeatCount: \"indefinite\",\n values: \"0;1;.8;.65;.45;.3;.15;0\"\n })\n }), _jsx(\"path\", {\n d: \"m43.314 20.686 8.485-8.485\",\n children: _jsx(\"animate\", {\n attributeName: \"stroke-opacity\",\n dur: \"750ms\",\n repeatCount: \"indefinite\",\n values: \".15;0;1;.8;.65;.45;.3;.15\"\n })\n }), _jsx(\"path\", {\n d: \"M48 32h12\",\n children: _jsx(\"animate\", {\n attributeName: \"stroke-opacity\",\n dur: \"750ms\",\n repeatCount: \"indefinite\",\n values: \".3;.15;0;1;.8;.65;.45;.3\"\n })\n }), _jsx(\"path\", {\n d: \"m43.314 43.314 8.485 8.485\",\n children: _jsx(\"animate\", {\n attributeName: \"stroke-opacity\",\n dur: \"750ms\",\n repeatCount: \"indefinite\",\n values: \".45;.3;.15;0;1;.85;.65;.45\"\n })\n }), _jsx(\"path\", {\n d: \"M32 48v12\",\n children: _jsx(\"animate\", {\n attributeName: \"stroke-opacity\",\n dur: \"750ms\",\n repeatCount: \"indefinite\",\n values: \".65;.45;.3;.15;0;1;.8;.65;\"\n })\n }), _jsx(\"path\", {\n d: \"m20.686 43.314-8.485 8.485\",\n children: _jsx(\"animate\", {\n attributeName: \"stroke-opacity\",\n dur: \"750ms\",\n repeatCount: \"indefinite\",\n values: \".8;.65;.45;.3;.15;0;1;.8\"\n })\n }), _jsx(\"path\", {\n d: \"M16 32H4\",\n children: _jsx(\"animate\", {\n attributeName: \"stroke-opacity\",\n dur: \"750ms\",\n repeatCount: \"indefinite\",\n values: \"1;.85;.6;.45;.3;.15;0;1;\"\n })\n }), _jsx(\"path\", {\n d: \"m20.686 20.686-8.485-8.485\",\n children: _jsx(\"animate\", {\n attributeName: \"stroke-opacity\",\n dur: \"750ms\",\n repeatCount: \"indefinite\",\n values: \"0;1;.8;.65;.45;.3;.15;0\"\n })\n })]\n })\n });\n}\n//# sourceMappingURL=SpinnerSpokes.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from annotate.svg\n */\nexport default function AnnotateIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"AnnotateIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M14 0a2 2 0 0 1 2 2v13a1 1 0 0 1-1.555.832l-4.262-1.757A1 1 0 0 0 9.802 14H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2zm-2.109 3.5h-.484l-.14.006-.122.018a.7.7 0 0 0-.2.071l-.076.054-.108.1-.097.1-1.632 1.999-.091.12-.084.129a2.6 2.6 0 0 0-.291.722l-.03.142-.027.218-.009.223v2.646l.01.086.027.08a.54.54 0 0 0 .236.236l.067.028.07.017.074.005h2.907l.074-.005.094-.025a.5.5 0 0 0 .169-.108.5.5 0 0 0 .082-.096l.029-.051.027-.081.01-.086V7.336l-.006-.073-.018-.068a.44.44 0 0 0-.124-.178.6.6 0 0 0-.103-.074l-.055-.026-.087-.024-.092-.009h-.579l-.057-.006-.054-.017a.3.3 0 0 1-.096-.07.2.2 0 0 1-.045-.078l-.004-.04.01-.043.022-.043 1.311-2.227.047-.09.037-.106a.5.5 0 0 0-.06-.394.53.53 0 0 0-.255-.22l-.084-.028-.092-.016zm-5.924 0h-.424l-.121.006-.108.018a.6.6 0 0 0-.174.071l-.067.054-.095.1-.084.1-1.429 1.999-.08.12-.096.174a2.8 2.8 0 0 0-.232.677l-.025.142-.024.218L3 7.402v2.646l.008.086.024.08a.5.5 0 0 0 .097.148q.052.055.11.088l.058.028.062.017.065.005h2.543l.065-.005.082-.025a.515.515 0 0 0 .22-.204l.025-.051.024-.081.008-.086V7.336l-.005-.073-.023-.09a.487.487 0 0 0-.191-.23l-.048-.026-.076-.024-.08-.009H5.46l-.05-.006-.047-.017a.3.3 0 0 1-.084-.07.2.2 0 0 1-.04-.078l-.003-.04.008-.043.02-.043L6.411 4.36l.04-.09.033-.106a.55.55 0 0 0-.053-.394.5.5 0 0 0-.222-.22l-.074-.028-.08-.016z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Annotate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from bell-filled.svg\n */\nexport default function BellFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"BellFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M9.873 1.298a2 2 0 0 0-3.746 0A6 6 0 0 0 2 7v2.5H1a1 1 0 0 0 0 2h14a1 1 0 1 0 0-2h-1V7c0-2.66-1.73-4.915-4.127-5.702M10.13 12.5a.27.27 0 0 0-.25.185 2 2 0 0 1-3.76 0 .27.27 0 0 0-.25-.185H4.313a.237.237 0 0 0-.238.28 4.001 4.001 0 0 0 7.848 0 .237.237 0 0 0-.238-.28z\"\n })]\n })\n });\n}\n//# sourceMappingURL=BellFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from bell.svg\n */\nexport default function BellIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"BellIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0a2 2 0 0 1 1.873 1.298A6 6 0 0 1 14 7v2.5h1a1 1 0 1 1 0 2H1a1 1 0 1 1 0-2h1V7c0-2.66 1.73-4.915 4.127-5.702A2 2 0 0 1 8 0m0 3a4 4 0 0 0-4 4v2a.5.5 0 0 0 .5.5h7A.5.5 0 0 0 12 9V7a4 4 0 0 0-4-4\",\n \"clip-rule\": \"evenodd\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M9.88 12.685a.27.27 0 0 1 .25-.185h1.556c.15 0 .267.132.238.28a4.001 4.001 0 0 1-7.848 0 .237.237 0 0 1 .238-.28H5.87c.114 0 .212.078.251.185a2 2 0 0 0 3.76 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Bell.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from bookmark-filled.svg\n */\nexport default function BookmarkFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"BookmarkFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M13 0a1 1 0 0 1 .993.883L14 1v14a1 1 0 0 1-1.534.846l-.09-.065L8 12.28l-4.375 3.5a1 1 0 0 1-1.6-.556l-.02-.112L2 15V1a1 1 0 0 1 .883-.993L3 0z\"\n })]\n })\n });\n}\n//# sourceMappingURL=BookmarkFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from bookmark.svg\n */\nexport default function BookmarkIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"BookmarkIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M3 0h10a1 1 0 0 1 1 1v14a1 1 0 0 1-1.625.78L8 12.28l-4.375 3.5a1 1 0 0 1-1.62-.668L2 15V1a1 1 0 0 1 1-1m9 12.92V2H4v10.919l3.375-2.7a1 1 0 0 1 1.147-.072l.103.072z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Bookmark.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from caret-down.svg\n */\nexport default function CaretDownIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CaretDownIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M3.293 5.293a1 1 0 0 1 1.32-.083l.094.083L8 8.585l3.293-3.292a1 1 0 0 1 1.32-.083l.094.083a1 1 0 0 1 .083 1.32l-.083.094-4 4a1 1 0 0 1-1.32.083l-.094-.083-4-4a1 1 0 0 1 0-1.414\"\n })]\n })\n });\n}\n//# sourceMappingURL=CaretDown.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from caret-left.svg\n */\nexport default function CaretLeftIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CaretLeftIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M9.293 3.293a1 1 0 0 1 1.497 1.32l-.083.094L7.415 8l3.292 3.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083-4-4a1 1 0 0 1-.083-1.32l.083-.094z\"\n })]\n })\n });\n}\n//# sourceMappingURL=CaretLeft.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from caret-right.svg\n */\nexport default function CaretRightIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CaretRightIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M5.293 3.293a1 1 0 0 1 1.32-.083l.094.083 4 4a1 1 0 0 1 .083 1.32l-.083.094-4 4a1 1 0 0 1-1.497-1.32l.083-.094L8.585 8 5.293 4.707a1 1 0 0 1-.083-1.32z\"\n })]\n })\n });\n}\n//# sourceMappingURL=CaretRight.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from caret-up.svg\n */\nexport default function CaretUpIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CaretUpIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.293 5.293a1 1 0 0 1 1.32-.083l.094.083 4 4a1 1 0 0 1-1.32 1.497l-.094-.083L8 7.415l-3.293 3.292a1 1 0 0 1-1.32.083l-.094-.083a1 1 0 0 1-.083-1.32l.083-.094z\"\n })]\n })\n });\n}\n//# sourceMappingURL=CaretUp.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from caution-filled.svg\n */\nexport default function CautionFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CautionFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M9.794 1.148C9.432.455 8.767 0 8 0S6.568.455 6.206 1.148L.29 12.474a2.6 2.6 0 0 0-.071 2.23C.504 15.356 1.144 16 2.082 16h11.836c.938 0 1.578-.645 1.864-1.295a2.6 2.6 0 0 0-.07-2.23zM9 6a1 1 0 1 0-2 0v3a1 1 0 0 0 2 0zm-1 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2\"\n })]\n })\n });\n}\n//# sourceMappingURL=CautionFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from cc-std-filled.svg\n */\nexport default function CcStdFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CcStdFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.985 0q3.357 0 5.715 2.343a7.7 7.7 0 0 1 1.714 2.579Q15.999 6.37 16 8a8.2 8.2 0 0 1-.578 3.078 7.35 7.35 0 0 1-1.708 2.536 8.2 8.2 0 0 1-2.657 1.772Q9.572 16 7.986 16a7.8 7.8 0 0 1-3.036-.607 8.05 8.05 0 0 1-2.6-1.757A7.846 7.846 0 0 1 0 8q0-1.586.607-3.05A8 8 0 0 1 2.371 2.33Q4.657 0 7.985 0m-2.2 5.515q-1.014 0-1.678.672-.665.67-.665 1.814 0 1.17.657 1.828t1.73.657q.671 0 1.228-.335.477-.288.776-.76l.095-.162-.985-.5q-.287.686-.986.686-.53 0-.8-.386Q4.884 8.643 4.884 8q0-1.415 1.072-1.415a.991.991 0 0 1 .814.509l.071.134 1.072-.557q-.643-1.157-2.129-1.157m2.95.672q.665-.672 1.679-.672 1.486 0 2.114 1.157l-1.057.557-.072-.134a1 1 0 0 0-.35-.366 1 1 0 0 0-.478-.143Q9.5 6.586 9.5 8.001q0 .642.272 1.028.27.386.8.386.7 0 .985-.686l1 .5-.115.189q-.306.453-.77.733a2.3 2.3 0 0 1-1.214.335q-1.086 0-1.735-.657-.65-.657-.65-1.828-.001-1.143.664-1.814\"\n })]\n })\n });\n}\n//# sourceMappingURL=CcStdFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from cc-std.svg\n */\nexport default function CcStdIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CcStdIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M13.7 2.343Q11.342 0 7.985 0 4.657 0 2.371 2.329A8 8 0 0 0 .607 4.95 7.9 7.9 0 0 0 0 8a7.85 7.85 0 0 0 2.35 5.636 8.05 8.05 0 0 0 2.6 1.757A7.8 7.8 0 0 0 7.986 16a8 8 0 0 0 3.071-.614q1.486-.615 2.657-1.772a7.35 7.35 0 0 0 1.707-2.536A8.2 8.2 0 0 0 16 8a8.15 8.15 0 0 0-.586-3.078A7.7 7.7 0 0 0 13.7 2.343M3.4 3.357q1.872-1.914 4.614-1.914 2.714 0 4.644 1.929a6.4 6.4 0 0 1 1.413 2.114q.486 1.185.486 2.515 0 2.757-1.871 4.586a6.9 6.9 0 0 1-2.178 1.443q-1.209.5-2.494.5a6.4 6.4 0 0 1-2.485-.493 6.6 6.6 0 0 1-2.13-1.43 6.6 6.6 0 0 1-1.45-2.128A6.3 6.3 0 0 1 1.444 8q0-1.299.507-2.493a6.9 6.9 0 0 1 1.45-2.15m4.514 3.315-1.072.557q-.171-.357-.42-.5a.95.95 0 0 0-.465-.143q-1.072 0-1.072 1.415 0 .642.271 1.028.272.386.8.386.7 0 .987-.686l.985.5a2.35 2.35 0 0 1-2.1 1.257q-1.07 0-1.729-.657-.657-.657-.657-1.828 0-1.143.665-1.814.664-.672 1.678-.672 1.486 0 2.13 1.157m3.557.557 1.057-.557q-.628-1.157-2.114-1.157-1.015 0-1.678.672Q8.07 6.857 8.07 8q0 1.17.65 1.828t1.736.657q.657 0 1.214-.335.557-.336.885-.922l-1-.5q-.285.686-.985.686-.53 0-.8-.386Q9.5 8.643 9.499 8q0-1.415 1.072-1.415.228 0 .479.143.25.143.421.5\"\n })]\n })\n });\n}\n//# sourceMappingURL=CcStd.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from cc-zero-filled.svg\n */\nexport default function CcZeroFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CcZeroFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M13.703 2.342C12.131.78 10.221 0 7.983 0Q4.655-.002 2.37 2.325A8.1 8.1 0 0 0 .6 4.958Q0 6.415 0 8q0 1.6.6 3.042.6 1.444 1.741 2.599a8.3 8.3 0 0 0 2.6 1.76q1.457.6 3.042.599a8 8 0 0 0 3.076-.617 8.2 8.2 0 0 0 2.655-1.77 7.3 7.3 0 0 0 1.703-2.526A8.1 8.1 0 0 0 16 8a8.1 8.1 0 0 0-.582-3.076 7.7 7.7 0 0 0-1.715-2.582M4.71 7.46C4.82 5.485 5.581 3.395 8 3.395c2.641 0 3.305 2.492 3.305 4.605S10.641 12.605 8 12.605c-2.348 0-3.134-1.969-3.28-3.89l-.02-.36L4.695 8l.007-.355zm4.608-.838.04.249q.034.25.048.49l.011.23.007.516-.008.363-.015.267-.026.279-.04.283c-.136.802-.478 1.57-1.333 1.57q-.108 0-.204-.015l-.093-.02-.135-.043c-.28-.12-.463-.327-.274-.682l.056-.092zM8.297 5.17A1.2 1.2 0 0 0 8 5.13c-.855 0-1.198.769-1.334 1.57l-.04.283-.026.279-.015.266-.006.249v.413c.002.201.01.433.033.674l.027.244 1.759-3.232.05-.102c.11-.264.018-.458-.151-.604\"\n })]\n })\n });\n}\n//# sourceMappingURL=CcZeroFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from cc-zero.svg\n */\nexport default function CcZeroIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CcZeroIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.983 0c2.238 0 4.148.78 5.72 2.342a7.7 7.7 0 0 1 1.715 2.582c.39.962.582 1.99.582 3.076a8.1 8.1 0 0 1-.583 3.087 7.3 7.3 0 0 1-1.703 2.526 8.2 8.2 0 0 1-2.655 1.77Q9.572 16 7.983 16a7.9 7.9 0 0 1-3.042-.6 8.3 8.3 0 0 1-2.6-1.759A8.1 8.1 0 0 1 .6 11.042 7.8 7.8 0 0 1 0 8q0-1.585.6-3.042a8.1 8.1 0 0 1 1.77-2.633C3.893.772 5.764 0 7.983 0m.034 1.44Q5.272 1.44 3.4 3.355a7 7 0 0 0-1.457 2.157 6.387 6.387 0 0 0 0 4.969 6.83 6.83 0 0 0 3.585 3.558q1.186.486 2.488.487a6.4 6.4 0 0 0 2.482-.498 6.9 6.9 0 0 0 2.185-1.446C13.93 11.364 14.56 9.839 14.56 8a6.6 6.6 0 0 0-.487-2.515 6.4 6.4 0 0 0-1.418-2.118Q10.73 1.439 8.017 1.44M11.305 8c0-2.113-.664-4.605-3.305-4.605-2.495 0-3.226 2.223-3.3 4.25L4.695 8c0 2.113.665 4.605 3.306 4.605S11.305 10.113 11.305 8M9.316 6.622 7.35 10.017c-.274.412-.083.645.219.774l.135.044q.137.033.297.034c1.358 0 1.422-1.938 1.422-2.869l-.007-.409a7 7 0 0 0-.06-.72zM6.58 7.778c.015-.985.163-2.646 1.421-2.646.107 0 .205.016.297.039.19.164.283.39.1.705L6.64 9.11l-.027-.244A10 10 0 0 1 6.577 8z\"\n })]\n })\n });\n}\n//# sourceMappingURL=CcZero.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from check-all.svg\n */\nexport default function CheckAllIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CheckAllIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.58 2.332a1 1 0 0 1 .235 1.394l-7 9.853a1 1 0 0 1-1.672-.065l-3-5a1 1 0 1 1 1.714-1.028l2.214 3.688 6.114-8.606a1 1 0 0 1 1.394-.236M.486 7.143a1 1 0 0 1 1.371.343l3 5a1 1 0 1 1-1.715 1.028l-3-5a1 1 0 0 1 .344-1.371\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11.6 2.2a1 1 0 0 1 .2 1.4l-3 4a1 1 0 1 1-1.6-1.2l3-4a1 1 0 0 1 1.4-.2\"\n })]\n })\n });\n}\n//# sourceMappingURL=CheckAll.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from checkbox-checked.svg\n */\nexport default function CheckboxCheckedIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CheckboxCheckedIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M0 2.5A2.5 2.5 0 0 1 2.5 0h11A2.5 2.5 0 0 1 16 2.5v11a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 13.5zM2.5 1A1.5 1.5 0 0 0 1 2.5v11A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-11A1.5 1.5 0 0 0 13.5 1z\",\n \"clip-rule\": \"evenodd\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11.136 3.82a.75.75 0 0 1 1.278.78l-.05.08-5.25 7.5a.75.75 0 0 1-1.204.034l-.053-.078-2.25-3.75a.75.75 0 0 1 1.237-.844l.05.072 1.654 2.758z\"\n })]\n })\n });\n}\n//# sourceMappingURL=CheckboxChecked.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from clock-filled.svg\n */\nexport default function ClockFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ClockFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 8c0-4.052-3.948-8-8-8S0 3.948 0 8s3.948 8 8 8 8-3.948 8-8M9 4a1 1 0 1 0-2 0v4a1 1 0 0 0 .445.832l3 2a1 1 0 0 0 1.11-1.664L9 7.465z\"\n })]\n })\n });\n}\n//# sourceMappingURL=ClockFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from clock.svg\n */\nexport default function ClockIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ClockIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0c4.052 0 8 3.948 8 8s-3.948 8-8 8-8-3.948-8-8 3.948-8 8-8m0 2C5.052 2 2 5.052 2 8s3.052 6 6 6 6-3.052 6-6-3.052-6-6-6\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 3a1 1 0 0 1 1 1v3.465l2.555 1.703a1 1 0 0 1-1.11 1.664l-3-2A1 1 0 0 1 7 8V4a1 1 0 0 1 1-1\"\n })]\n })\n });\n}\n//# sourceMappingURL=Clock.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from collapse.svg\n */\nexport default function CollapseIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CollapseIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.79 1.613a1 1 0 0 0-1.497-1.32L11 3.584V2l-.007-.117A1 1 0 0 0 9 2v4l.007.117A1 1 0 0 0 10 7h4l.117-.007A1 1 0 0 0 15 6l-.007-.117A1 1 0 0 0 14 5h-1.586l3.293-3.293zm-8.797 8.27A1 1 0 0 0 6 9H2l-.117.007A1 1 0 0 0 1 10l.007.117A1 1 0 0 0 2 11h1.584L.293 14.293l-.083.094a1 1 0 0 0 1.497 1.32L5 12.414V14l.007.117A1 1 0 0 0 7 14v-4z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Collapse.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from contrast.svg\n */\nexport default function ContrastIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ContrastIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 8c0-4.052-3.948-8-8-8S0 3.948 0 8s3.948 8 8 8 8-3.948 8-8m-2 0c0 2.948-3.052 6-6 6V2l.201.005C11.085 2.139 14 5.119 14 8\"\n })]\n })\n });\n}\n//# sourceMappingURL=Contrast.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from copy-filled.svg\n */\nexport default function CopyFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"CopyFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.993.883A1 1 0 0 0 15 0H7l-.117.007A1 1 0 0 0 6 1v10l.007.117A1 1 0 0 0 7 12h8l.117-.007A1 1 0 0 0 16 11V1zM.007 15.117A1 1 0 0 0 1 16h8l.117-.007A1 1 0 0 0 10 15v-1a1 1 0 0 0-1-1H5V5a1 1 0 0 0-1-1H1l-.117.007A1 1 0 0 0 0 5v10z\"\n })]\n })\n });\n}\n//# sourceMappingURL=CopyFilled.js.map","import { jsx as _jsx } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from dotted-circle.svg\n */\nexport default function DottedCircleIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"none\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"DottedCircleIcon\",\n ...props,\n children: _jsx(\"path\", {\n fill: \"currentColor\",\n \"fill-rule\": \"evenodd\",\n d: \"M6.956.068a8 8 0 0 1 2.088 0 .889.889 0 1 1-.23 1.762 6.3 6.3 0 0 0-1.628 0 .889.889 0 0 1-.23-1.762m4.668 1.748a.89.89 0 0 1 1.247-.163c.554.426 1.05.922 1.476 1.476a.889.889 0 0 1-1.41 1.083 6.3 6.3 0 0 0-1.15-1.15.89.89 0 0 1-.163-1.246m-7.248 0c.299.39.226.948-.164 1.247a6.3 6.3 0 0 0-1.15 1.15.889.889 0 0 1-1.409-1.084A8 8 0 0 1 3.13 1.653a.89.89 0 0 1 1.247.163m10.56 4.374a.89.89 0 0 1 .996.766 8 8 0 0 1 0 2.088.889.889 0 1 1-1.762-.23 6.3 6.3 0 0 0 0-1.628.89.89 0 0 1 .766-.996m-13.872 0c.487.063.83.51.766.996a6.3 6.3 0 0 0 0 1.628.889.889 0 0 1-1.762.23 8 8 0 0 1 0-2.088.89.89 0 0 1 .996-.766m13.12 5.434c.389.3.462.857.163 1.247a8 8 0 0 1-1.476 1.476.889.889 0 0 1-1.084-1.41 6.3 6.3 0 0 0 1.15-1.15.89.89 0 0 1 1.247-.163m-12.368 0a.89.89 0 0 1 1.247.163c.331.432.718.819 1.15 1.15a.889.889 0 0 1-1.084 1.41 8 8 0 0 1-1.476-1.476.89.89 0 0 1 .163-1.247m4.374 3.312a.89.89 0 0 1 .996-.766 6.3 6.3 0 0 0 1.628 0 .889.889 0 1 1 .23 1.762 8 8 0 0 1-2.088 0 .89.89 0 0 1-.766-.996\",\n \"clip-rule\": \"evenodd\"\n })\n });\n}\n//# sourceMappingURL=DottedCircle.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from download.svg\n */\nexport default function DownloadIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"DownloadIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m8.707 11.707-.094.083-.102.07a1 1 0 0 1-1.218-.153l-4-4-.083-.094a1 1 0 0 1 .083-1.32l.094-.083a1 1 0 0 1 1.32.083L7 8.585V1l.007-.117A1 1 0 0 1 9 1v7.585l2.293-2.292.094-.083a1 1 0 0 1 1.32 1.497zm7.286-1.824A1 1 0 0 0 15 9l-.117.007A1 1 0 0 0 14 10v4H2v-4l-.007-.117A1 1 0 0 0 0 10v5l.007.117A1 1 0 0 0 1 16h14l.117-.007A1 1 0 0 0 16 15v-5z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Download.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from editor-latex.svg\n */\nexport default function EditorLatexIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EditorLatexIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M13.392 16q.237 0 .423-.108.185-.109.185-.248v-1.778q0-.149-.185-.252a.85.85 0 0 0-.423-.104H6.85q-.207 0-.267-.083-.06-.082 0-.152l5.533-5.101q.238-.21.193-.378a.75.75 0 0 0-.193-.325L6.88 2.707q-.06-.07-.007-.143.05-.075.289-.074h6.17a.8.8 0 0 0 .416-.108q.178-.109.178-.248V.356q0-.139-.178-.248A.8.8 0 0 0 13.333 0H2.904q-.238 0-.423.108-.185.109-.185.248v1.943q0 .192.11.326l.171.204 5.31 4.815q.06.07.075.178a.22.22 0 0 1-.074.195l-5.622 5.154a8 8 0 0 0-.163.2.5.5 0 0 0-.104.33v1.943q0 .139.185.248a.8.8 0 0 0 .423.108z\"\n })]\n })\n });\n}\n//# sourceMappingURL=EditorLatex.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from editor-quote.svg\n */\nexport default function EditorQuoteIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EditorQuoteIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M3.538 13.745Q3.27 14 2.7 14h-.754q-.57 0-.827-.463-.258-.463.037-1.011l2.04-3.817q.111-.19-.027-.35a.41.41 0 0 0-.322-.16h-.9a.73.73 0 0 1-.525-.227.74.74 0 0 1-.23-.548v-4.65q0-.3.23-.538A.71.71 0 0 1 1.947 2H6.47q.293 0 .524.236.23.236.23.539V7.31a4.7 4.7 0 0 1-.23 1.474 4.1 4.1 0 0 1-.598 1.19l-2.408 3.251q-.184.265-.45.52m7.776 0q-.267.255-.818.255h-.754q-.57 0-.836-.463-.267-.463.045-1.011l2.023-3.817q.11-.19-.019-.35a.39.39 0 0 0-.312-.16h-.901a.73.73 0 0 1-.524-.227.74.74 0 0 1-.23-.548v-4.65q0-.3.22-.538A.7.7 0 0 1 9.743 2h4.504q.294 0 .524.236t.23.539V7.31a4.9 4.9 0 0 1-.22 1.474q-.222.7-.607 1.19l-2.409 3.251q-.183.265-.45.52\"\n })]\n })\n });\n}\n//# sourceMappingURL=EditorQuote.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from editor-text-bold.svg\n */\nexport default function EditorTextBoldIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EditorTextBoldIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8.661 16q1.207 0 2.193-.351a5 5 0 0 0 1.69-.993q.706-.642 1.081-1.557t.375-2.03q0-.435-.114-.893a4 4 0 0 0-.325-.87 4 4 0 0 0-.495-.754 4.4 4.4 0 0 0-.604-.597q-.255-.19 0-.412.572-.503.953-1.311.382-.81.382-1.568 0-.96-.395-1.813a4.6 4.6 0 0 0-1.08-1.484q-.687-.63-1.627-.999A5.5 5.5 0 0 0 8.66 0h-6.14a.53.53 0 0 0-.362.14A.42.42 0 0 0 2 .456v15.086q0 .178.159.318.16.139.362.139zm-.127-9.852H5.826q-.255 0-.254-.223V3.437q0-.235.254-.235h2.708q.673 0 1.195.435.52.435.521 1.027 0 .591-.521 1.038a1.78 1.78 0 0 1-1.195.446m-2.708 6.65h2.708q.84 0 1.335-.525.495-.524.495-1.205 0-.658-.495-1.188-.496-.53-1.335-.53H5.826q-.255 0-.254.234v2.99q0 .224.254.224\"\n })]\n })\n });\n}\n//# sourceMappingURL=EditorTextBold.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from editor-text-italic.svg\n */\nexport default function EditorTextItalicIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EditorTextItalicIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M10.61 16q.18 0 .329-.14a.63.63 0 0 0 .191-.317l.457-2.176a.35.35 0 0 0-.063-.313.34.34 0 0 0-.277-.133H8.845q-.213-.012-.17-.235l1.892-9.372q.053-.223.266-.223H13a.5.5 0 0 0 .335-.14.6.6 0 0 0 .196-.318L13.99.457a.5.5 0 0 0 .011-.1.34.34 0 0 0-.085-.223.34.34 0 0 0-.276-.134H5.805a.5.5 0 0 0-.335.14.62.62 0 0 0-.196.317l-.457 2.176a.35.35 0 0 0 .069.318q.111.14.281.14h2.18q.212 0 .17.223l-1.893 9.372q-.042.235-.255.235H2.967a.5.5 0 0 0-.324.133.6.6 0 0 0-.197.313l-.435 2.175a.5.5 0 0 0-.011.101q0 .123.074.223.107.134.266.134z\"\n })]\n })\n });\n}\n//# sourceMappingURL=EditorTextItalic.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from ellipsis-vertical.svg\n */\nexport default function EllipsisVerticalIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EllipsisVerticalIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M10 2a2 2 0 1 1-4 0 2 2 0 0 1 4 0m0 6a2 2 0 1 1-4 0 2 2 0 0 1 4 0m-2 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4\"\n })]\n })\n });\n}\n//# sourceMappingURL=EllipsisVertical.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from email-filled.svg\n */\nexport default function EmailFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"EmailFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.538 2.721A2 2 0 0 0 14 2H2l-.183.008a2 2 0 0 0-1.355.713L8 8.375zM7.7 9.4.031 3.647Q.001 3.82 0 4v8l.005.15A2 2 0 0 0 2 14h12l.15-.005A2 2 0 0 0 16 12V4l-.008-.178-.023-.174L8.3 9.4l-.08.049a.5.5 0 0 1-.44 0z\"\n })]\n })\n });\n}\n//# sourceMappingURL=EmailFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from expand.svg\n */\nexport default function ExpandIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ExpandIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.993.883A1 1 0 0 0 15 0h-4l-.117.007A1 1 0 0 0 10 1l.007.117A1 1 0 0 0 11 2h1.584L9.293 5.293l-.083.094a1 1 0 0 0 1.497 1.32L14 3.414V5l.007.117A1 1 0 0 0 16 5V1zm-9.203 9.73a1 1 0 0 0-1.497-1.32L2 12.584V11l-.007-.117A1 1 0 0 0 0 11v4l.007.117A1 1 0 0 0 1 16h4l.117-.007A1 1 0 0 0 6 15l-.007-.117A1 1 0 0 0 5 14H3.414l3.293-3.293z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Expand.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from external.svg\n */\nexport default function ExternalIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ExternalIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M13 2a1 1 0 0 1 .993.883L14 3v6a1 1 0 0 1-1.993.117L12 9V5.414l-8.293 8.293a1 1 0 0 1-1.497-1.32l.083-.094L10.584 4H7a1 1 0 0 1-.993-.883L6 3a1 1 0 0 1 .883-.993L7 2z\"\n })]\n })\n });\n}\n//# sourceMappingURL=External.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from file-code-filled.svg\n */\nexport default function FileCodeFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FileCodeFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11 0v3.5a.5.5 0 0 0 .41.492L11.5 4H15v11.5a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5V.5a.5.5 0 0 1 .5-.5zM6.53 5.47a.75.75 0 0 1 .073.976l-.073.084L5.061 8l1.47 1.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073-2-2a.75.75 0 0 1-.073-.976l.073-.084 2-2a.75.75 0 0 1 1.06 0m2.94 0a.75.75 0 0 1 .976-.073l.084.073 2 2 .073.084a.75.75 0 0 1 .007.882l-.08.094-2 2-.084.073a.75.75 0 0 1-.882.007l-.094-.08-.073-.084a.75.75 0 0 1-.007-.882l.08-.094L10.939 8l-1.47-1.47-.072-.084a.75.75 0 0 1 .073-.976\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m12.685.144 2.167 2.143a.5.5 0 0 1 .148.356V3h-2.75a.25.25 0 0 1-.25-.25V0h.333a.5.5 0 0 1 .352.144\"\n })]\n })\n });\n}\n//# sourceMappingURL=FileCodeFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from file-code.svg\n */\nexport default function FileCodeIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FileCodeIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12.685.144A.5.5 0 0 0 12.333 0H1.5a.5.5 0 0 0-.5.5v15a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5V2.643a.5.5 0 0 0-.148-.356zM2 1h9v2.5a.5.5 0 0 0 .5.5H14v11H2zm4.53 4.47a.75.75 0 0 1 .073.976l-.073.084L5.061 8l1.47 1.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073-2-2a.75.75 0 0 1-.073-.976l.073-.084 2-2a.75.75 0 0 1 1.06 0m4 0-.084-.073a.75.75 0 0 0-1.049 1.05l.073.083L10.939 8l-1.47 1.47-.08.094a.75.75 0 0 0 .008.882l.073.084.094.08a.75.75 0 0 0 .882-.007l.084-.073 2-2 .08-.094a.75.75 0 0 0-.007-.882l-.073-.084z\"\n })]\n })\n });\n}\n//# sourceMappingURL=FileCode.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from file-generic-filled.svg\n */\nexport default function FileGenericFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FileGenericFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11 0v3.5a.5.5 0 0 0 .41.492L11.5 4H15v11.5a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5V.5a.5.5 0 0 1 .5-.5zM4.75 5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zM4 11.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m12.685.144 2.167 2.143a.5.5 0 0 1 .148.356V3h-2.75a.25.25 0 0 1-.25-.25V0h.333a.5.5 0 0 1 .352.144\"\n })]\n })\n });\n}\n//# sourceMappingURL=FileGenericFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from file-generic.svg\n */\nexport default function FileGenericIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FileGenericIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12.333 0a.5.5 0 0 1 .352.144l2.167 2.143a.5.5 0 0 1 .148.356V15.5a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5V.5a.5.5 0 0 1 .5-.5zM11 1H2v14h12V4h-2.5a.5.5 0 0 1-.5-.5zM8 11.25a.75.75 0 0 0-.75-.75h-2.5a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 .75-.75m3.25-3.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5zm.75-2a.75.75 0 0 0-.75-.75h-6.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 .75-.75\"\n })]\n })\n });\n}\n//# sourceMappingURL=FileGeneric.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from file-image-filled.svg\n */\nexport default function FileImageFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FileImageFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11 3.5V0H1.5a.5.5 0 0 0-.5.5v15a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5V4h-3.5l-.09-.008A.5.5 0 0 1 11 3.5M8.958 5.122a.41.41 0 0 1 .583 0l.055.069 3.333 5.143.039.073a.43.43 0 0 1-.305.585l-.08.008H9.23l.044-.1a.93.93 0 0 0-.12-.88l-1.79-2.456 1.54-2.373zM6.19 6.818a.41.41 0 0 0-.544 0l-.061.068-2.5 3.428-.04.067a.432.432 0 0 0 .297.612l.076.007h5l.076-.007c.27-.05.42-.36.297-.612l-.04-.067-2.5-3.428zM12.685.144A.5.5 0 0 0 12.333 0H12v2.75c0 .138.112.25.25.25H15v-.357a.5.5 0 0 0-.148-.356z\"\n })]\n })\n });\n}\n//# sourceMappingURL=FileImageFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from file-pdf-filled.svg\n */\nexport default function FilePdfFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FilePdfFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11 0v3.5a.5.5 0 0 0 .41.492L11.5 4H15v11.5a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5V.5a.5.5 0 0 1 .5-.5zM7.449 3c-.408 0-1.089.32-1.089 1.279 0 .821.091 1.552.68 2.511l-.15.394-.182.445q-.098.234-.212.485c-.108.273-.233.53-.355.78q-.123.252-.234.499c-.94.325-1.518.688-1.895.99l-.187.159-.153.143-.124.123c-.686.73-.583 1.281-.456 1.555l.048.09.098.126c.156.187.41.421.809.421a1 1 0 0 0 .21-.028l.243-.063.111-.051.071-.042.083-.057.093-.075.106-.098.119-.124.064-.073.138-.169.152-.203.167-.242.088-.136.189-.305q.098-.165.204-.352l.22-.403q.114-.214.237-.456c.363-.137.77-.228 1.225-.32a22 22 0 0 1 1.587-.228l.178.185.32.322c.694.682 1.05.887 1.498 1 .182.091.363.091.5.091.68 0 .997-.41 1.088-.639.09-.274.181-.959-.5-1.37-.457-.25-1.18-.425-2.102-.452l-.256-.004h-.363l-.103-.11-.222-.256a4 4 0 0 0-.129-.137l-.195-.216-.348-.4a12 12 0 0 1-.681-.89c.332-.838.445-1.355.482-1.77l.013-.218.004-.204C8.492 3.274 7.72 3 7.449 3m-2.428 8.01.205-.339c-.413.224-.67.425-.85.589l-.193.188c-.212.213-.259.37-.27.473l-.002.074.09.046h-.045l.029.023c.017.011.04.023.062.023 0 .045.045.045.09 0l.023-.007.039-.022.057-.044.035-.032.086-.085.105-.12.126-.16.148-.205.17-.254zm5.603-1.389c.314.018.568.062.766.113l.212.063.087.03.186.08.065.034.065.06c.05.051.101.122.07.214 0 .045-.09.09-.271.09l-.042-.006-.118-.032a.4.4 0 0 0-.067-.007c-.17-.034-.315-.094-.606-.334l-.218-.188zM7.84 7.901l-.164-.198v.046l-.243.571-.075.205-.13.268a2 2 0 0 0-.097.234h.046l-.09.046.249-.063c.079-.017.158-.028.25-.028q.135-.018.263-.042l.495-.1.239-.04-.208-.242-.19-.23zm-.391-3.988c.09.046.227.229.227.64l-.002.167a3.2 3.2 0 0 1-.18.928c-.181-.548-.226-.913-.181-1.324q0-.342.136-.41M12.685.144A.5.5 0 0 0 12.333 0H12v2.75c0 .138.112.25.25.25H15v-.357a.5.5 0 0 0-.148-.356z\"\n })]\n })\n });\n}\n//# sourceMappingURL=FilePdfFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from file-pdf.svg\n */\nexport default function FilePdfIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FilePdfIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12.333 0a.5.5 0 0 1 .352.144l2.167 2.143a.5.5 0 0 1 .148.356V15.5a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5V.5a.5.5 0 0 1 .5-.5zM11 1H2v14h12V4h-2.5a.5.5 0 0 1-.5-.5zM8.538 4.507C8.492 3.274 7.72 3 7.449 3c-.408 0-1.089.32-1.089 1.279 0 .821.091 1.552.68 2.511l-.15.394-.182.445q-.098.234-.212.485c-.108.273-.233.53-.355.78q-.123.252-.234.499c-.94.325-1.518.688-1.895.99l-.187.159-.08.073-.197.193c-.686.73-.583 1.281-.456 1.555l.048.09.098.126c.156.187.41.421.809.421a1 1 0 0 0 .21-.028l.243-.063.111-.051.071-.042.083-.057.093-.075.106-.098.058-.059.125-.138.138-.169.152-.203.082-.116.173-.262.093-.147.196-.328.104-.182.22-.403q.114-.214.237-.456c.363-.137.77-.228 1.225-.32a22 22 0 0 1 1.587-.228l.178.185.32.322c.694.682 1.05.887 1.498 1 .182.091.363.091.5.091.68 0 .997-.41 1.088-.639.09-.274.181-.959-.5-1.37-.498-.274-1.315-.456-2.358-.456h-.363a3 3 0 0 1-.103-.11l-.222-.256-.129-.137-.195-.216-.348-.4a12 12 0 0 1-.681-.89c.332-.838.445-1.355.482-1.77l.013-.218zM5.226 10.67c-.413.224-.67.425-.85.589l-.193.188c-.212.213-.259.37-.27.473l-.002.074.09.046h-.045l.029.023c.017.011.04.023.062.023 0 .045.045.045.09 0l.023-.007.039-.022.057-.044.075-.07.096-.103.116-.139.137-.181.076-.109.17-.254.194-.31q.052-.084.106-.177m5.642-.831-.244-.219c.314.018.568.062.766.113l.212.063.087.03.136.057.115.057.065.06c.05.051.101.122.07.214 0 .045-.09.09-.271.09a.2.2 0 0 1-.042-.006l-.118-.032-.067-.007c-.19-.038-.347-.107-.709-.42M7.676 7.703v.046l-.243.571a4 4 0 0 0-.075.205l-.13.268a2 2 0 0 0-.097.234h.046l-.09.046.249-.063c.079-.017.158-.028.25-.028l.263-.042.495-.1.239-.04a15 15 0 0 1-.398-.472L7.84 7.9zm-.363-3.379q0-.342.136-.41c.09.045.227.228.227.639v.08l-.007.183a3.3 3.3 0 0 1-.175.832c-.181-.548-.226-.913-.181-1.324\"\n })]\n })\n });\n}\n//# sourceMappingURL=FilePdf.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from filter-clear.svg\n */\nexport default function FilterClearIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FilterClearIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m8.4 12 1.428 2H5a1 1 0 0 1-.117-1.993L5 12zM11.172 9H13l.117-.007A1 1 0 0 0 13 7H9.744zM4.828 7l1.428 2H3a1 1 0 0 1-.117-1.993L3 7zM7.6 4H15l.117-.007A1 1 0 0 0 15 2H6.172zM1.268 2q.048.083.105.162L2.685 4H1a1 1 0 0 1-.117-1.993L1 2zM13.581 15.814a1 1 0 0 0 .233-1.395l-10-14A1 1 0 1 0 2.186 1.58l10 14a1 1 0 0 0 1.395.233\"\n })]\n })\n });\n}\n//# sourceMappingURL=FilterClear.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from filter.svg\n */\nexport default function FilterIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FilterIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 3a1 1 0 0 0-1-1H1l-.117.007A1 1 0 0 0 1 4h14l.117-.007A1 1 0 0 0 16 3m-3 4a1 1 0 0 1 .117 1.993L13 9H3a1 1 0 0 1-.117-1.993L3 7zm-2 5a1 1 0 0 1 .117 1.993L11 14H5a1 1 0 0 1-.117-1.993L5 12z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Filter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from flag-filled.svg\n */\nexport default function FlagFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FlagFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2 1a1 1 0 0 1 .883-.993L3 0h12c.852 0 1.297.986.783 1.623l-.076.084L12.415 5l3.292 3.293c.575.575.253 1.523-.485 1.684l-.108.017L15 10H4v5a1 1 0 0 1-1.993.117L2 15z\"\n })]\n })\n });\n}\n//# sourceMappingURL=FlagFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from flag.svg\n */\nexport default function FlagIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FlagIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2.883.007A1 1 0 0 0 2 1v14l.007.117A1 1 0 0 0 4 15v-5h11l.114-.006.108-.017c.738-.16 1.06-1.109.485-1.684L12.415 5l3.292-3.293.076-.084C16.297.986 15.853 0 15 0H3zM4 2h8.584l-2.291 2.293-.083.094-.07.102a1 1 0 0 0 .153 1.218L12.585 8H4z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Flag.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from flashcard.svg\n */\nexport default function FlashcardIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FlashcardIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M0 4.5a.5.5 0 0 1 1 0v7a.5.5 0 0 1-1 0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M0 11.5a.5.5 0 0 0 1 0v-7a.5.5 0 0 0-1 0zM15 4.5a.5.5 0 0 1 1 0v7a.5.5 0 0 1-1 0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15 11.5a.5.5 0 0 0 1 0v-7a.5.5 0 0 0-1 0zM2 5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2zm10 .5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.5.5v5a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Flashcard.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from folder-filled.svg\n */\nexport default function FolderFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FolderFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M1.356 1.007A1.5 1.5 0 0 0 0 2.5V4h16v-.5l-.007-.144A1.5 1.5 0 0 0 14.5 2H5.915A1.5 1.5 0 0 0 4.5 1h-3zM16 13.5V5H0v8.5l.007.145A1.5 1.5 0 0 0 1.5 15h13l.145-.007A1.5 1.5 0 0 0 16 13.5\"\n })]\n })\n });\n}\n//# sourceMappingURL=FolderFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from folder.svg\n */\nexport default function FolderIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FolderIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M4.5 1a1.5 1.5 0 0 1 1.339.823l.056.125.018.052H14.5a1.5 1.5 0 0 1 1.473 1.215l.02.14L16 3.5v10a1.5 1.5 0 0 1-1.355 1.493L14.5 15h-13a1.5 1.5 0 0 1-1.493-1.355L0 13.5v-11a1.5 1.5 0 0 1 1.356-1.493L1.5 1zM15 5H1v8.5a.5.5 0 0 0 .41.492L1.5 14h13a.5.5 0 0 0 .492-.41L15 13.5zM1.5 2h3l.09.008a.5.5 0 0 1 .402.402l.016.18A.5.5 0 0 0 5.5 3h9l.09.008A.5.5 0 0 1 15 3.5V4H1V2.5l.008-.09A.5.5 0 0 1 1.5 2\"\n })]\n })\n });\n}\n//# sourceMappingURL=Folder.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from folder-open-filled.svg\n */\nexport default function FolderOpenFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FolderOpenFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M6.895 1.948A1.5 1.5 0 0 0 5.5 1h-3l-.144.007A1.5 1.5 0 0 0 1 2.5L.999 4.133a1.5 1.5 0 0 0-.873 1.533l.877 7.89.006.135C1.08 14.405 1.72 15 2.5 15h11l.145-.007A1.5 1.5 0 0 0 15 13.5l.874-7.834.006-.083.003-.083A1.5 1.5 0 0 0 15 4.133L15 3.5l-.007-.144A1.5 1.5 0 0 0 13.5 2H6.913zM2.5 2h3l.09.008A.5.5 0 0 1 6 2.5l.008.09A.5.5 0 0 0 6.5 3h7l.09.008A.5.5 0 0 1 14 3.5V4H2V2.5l.008-.09A.5.5 0 0 1 2.5 2\"\n })]\n })\n });\n}\n//# sourceMappingURL=FolderOpenFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from folder-open.svg\n */\nexport default function FolderOpenIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"FolderOpenIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M5.5 1a1.5 1.5 0 0 1 1.339.823l.056.125.018.052H13.5a1.5 1.5 0 0 1 1.473 1.215l.02.14L15 3.5l.001.633c.477.217.82.677.874 1.228l.008.153-.005.096L15 13.5a1.5 1.5 0 0 1-1.356 1.493L13.5 15h-11c-.78 0-1.42-.595-1.49-1.31l-.007-.135-.877-7.89A1.5 1.5 0 0 1 1 4.136V2.5a1.5 1.5 0 0 1 1.356-1.493L2.5 1zM1.593 5l-.031.003a.5.5 0 0 0-.444.462l.002.09L2 13.5a.5.5 0 0 0 .41.492L2.5 14h11c.245 0 .45-.177.494-.449l.009-.106.878-7.904.002-.041a.5.5 0 0 0-.41-.492L14.383 5zM2.5 2h3l.09.008A.5.5 0 0 1 6 2.5l.008.09A.5.5 0 0 0 6.5 3h7l.09.008.085.023A.5.5 0 0 1 14 3.5V4H2V2.5l.008-.09A.5.5 0 0 1 2.5 2\"\n })]\n })\n });\n}\n//# sourceMappingURL=FolderOpen.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from globe.svg\n */\nexport default function GlobeIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"GlobeIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 8A8 8 0 1 0 0 8a8 8 0 0 0 16 0m-8.86 2.516a23 23 0 0 1 1.72.002c-.093.809-.232 1.543-.407 2.157l-.06.198-.073.222a5 5 0 0 1-.229.55L8 13.81l-.078-.138-.078-.16a6 6 0 0 1-.297-.836 13.7 13.7 0 0 1-.407-2.16m-4.06.604-.17.058a6.02 6.02 0 0 0 2.8 2.37 12.6 12.6 0 0 1-.467-2.03l-.054-.383-.054-.451a13 13 0 0 0-1.807.36zm7.731.016.055-.452.323.046c.741.115 1.39.268 1.902.447a6.02 6.02 0 0 1-2.8 2.37c.228-.693.402-1.508.52-2.411M2.146 6.673l-.001.012a6 6 0 0 0 .003 2.643c.781-.285 1.761-.504 2.86-.645l-.006-.38v-.606l.006-.378c-1.099-.141-2.079-.36-2.862-.646m11.578.046.129-.046Q13.999 7.314 14 8q-.002.687-.146 1.328c-.783-.285-1.763-.504-2.862-.645l.006-.38L11 8q0-.305-.006-.603l-.002-.078c1.039-.134 1.972-.337 2.732-.6m-4.73.762-.259.01a26 26 0 0 1-1.73-.009L7 8q0 .262.006.52a24 24 0 0 1 1.988 0L9 8zM7.922 2.33l.077-.14.08.14.077.16c.102.227.203.508.297.835.175.614.314 1.349.407 2.16a23 23 0 0 1-1.72-.002c.093-.81.232-1.544.407-2.158a5.6 5.6 0 0 1 .375-.995m-2.212.123-.045.019a6.02 6.02 0 0 0-2.756 2.351c.584.206 1.348.376 2.225.494l.055-.453c.118-.903.292-1.718.52-2.411m4.63.157-.05-.158.265.118a6.03 6.03 0 0 1 2.537 2.254c-.585.205-1.35.375-2.227.494l-.054-.454-.058-.411a13 13 0 0 0-.412-1.843\"\n })]\n })\n });\n}\n//# sourceMappingURL=Globe.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from globe-lock.svg\n */\nexport default function GlobeLockIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"GlobeLockIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.372 10.303c-.07-1.663-.816-2.364-2.497-2.364-1.726 0-2.5.774-2.5 2.5v.312c0 .173.14.313.313.313h.624c.173 0 .313-.14.313-.313v-.312l.003-.11c.057-.985.248-1.14 1.247-1.14 1.036 0 1.25.214 1.25 1.25v.312c0 .173.14.313.313.313h.624c.173 0 .313-.14.313-.313v-.312zm.624 1.938a.625.625 0 0 0-.621-.552h-5l-.073.004a.625.625 0 0 0-.552.62v3.75l.004.074c.036.31.3.552.621.552h5l.073-.004c.31-.036.552-.3.552-.621v-3.75z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8.342 16.682a8 8 0 1 1 7.582-9.105 3 3 0 0 0-.166-.17c-.807-.762-1.871-.968-2.883-.968-1.053 0-2.148.233-2.958 1.042-.81.81-1.042 1.905-1.042 2.958v.369a2 2 0 0 0-.308.388 21 21 0 0 0-1.427.009c.093.81.232 1.545.407 2.159.094.327.195.608.297.835l.078.16.078.139c.053-.106.198.61.25.476v1.133l.01.16.004.043q.023.192.078.372M2.91 11.867l.17-.059.248-.075a13 13 0 0 1 1.807-.36l.054.451.054.382a12.6 12.6 0 0 0 .467 2.03 6.02 6.02 0 0 1-2.8-2.37m-.765-4.493.001-.012c.783.285 1.763.504 2.862.645l-.006.379v.606l.006.38c-1.099.14-2.079.36-2.86.645a6 6 0 0 1-.003-2.643m6.59.806.26-.01.005.519-.006.52a26 26 0 0 0-1.988 0A24 24 0 0 1 7 8.69l.006-.518a26 26 0 0 0 1.73.009M8 2.879l-.077.14a5.6 5.6 0 0 0-.375.995 14 14 0 0 0-.408 2.158q.425.019.861.018.436 0 .86-.016a13.7 13.7 0 0 0-.407-2.16 6 6 0 0 0-.297-.835l-.078-.16zm-2.334.281.045-.019c-.23.694-.403 1.51-.521 2.412l-.055.453c-.877-.118-1.641-.288-2.225-.494A6.02 6.02 0 0 1 5.665 3.16m4.625-.019.05.158c.17.548.308 1.168.413 1.843l.058.411.054.453c.877-.118 1.642-.288 2.226-.493a6.03 6.03 0 0 0-2.536-2.254z\"\n })]\n })\n });\n}\n//# sourceMappingURL=GlobeLock.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from google-drive.svg\n */\nexport default function GoogleDriveIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"GoogleDriveIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m15.539 9.51-4.872-8.44H5.333l4.872 8.44zM4.87 1.87 0 10.31l2.667 4.62 4.871-8.44zm1.387 8.44L3.59 14.93h9.742L16 10.31z\"\n })]\n })\n });\n}\n//# sourceMappingURL=GoogleDrive.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from graph.svg\n */\nexport default function GraphIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"GraphIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M14 0a2 2 0 0 0-2 2v12a2 2 0 1 0 4 0V2a2 2 0 0 0-2-2M6 6a2 2 0 1 1 4 0v8a2 2 0 1 1-4 0zM0 10a2 2 0 1 1 4 0v4a2 2 0 1 1-4 0z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Graph.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from grid.svg\n */\nexport default function GridIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"GridIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M1 2a1 1 0 0 1 1-1h4.5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1zM8.5 2a1 1 0 0 1 1-1H14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H9.5a1 1 0 0 1-1-1zM1 7a1 1 0 0 1 1-1h4.5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1zM8.5 7a1 1 0 0 1 1-1H14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H9.5a1 1 0 0 1-1-1zM1 12a1 1 0 0 1 1-1h4.5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1zM8.5 12a1 1 0 0 1 1-1H14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H9.5a1 1 0 0 1-1-1z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Grid.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from groups-filled.svg\n */\nexport default function GroupsFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"GroupsFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11.429 6.857a3.429 3.429 0 1 1-6.858 0 3.429 3.429 0 0 1 6.858 0M3.429 4.571a2.286 2.286 0 1 0 0-4.571 2.286 2.286 0 0 0 0 4.571M12.571 4.571a2.286 2.286 0 1 0 0-4.57 2.286 2.286 0 0 0 0 4.57M4.571 11.429a2.286 2.286 0 0 0-2.285 2.285v1.143c0 .631.511 1.143 1.143 1.143h9.142c.632 0 1.143-.512 1.143-1.143v-1.143a2.286 2.286 0 0 0-2.285-2.285zM4.976 10.286H1.143A1.143 1.143 0 0 1 0 9.143V8a2.286 2.286 0 0 1 2.286-2.286h1.287a4.58 4.58 0 0 0 1.403 4.572M11.024 10.286h3.833c.631 0 1.143-.512 1.143-1.143V8a2.286 2.286 0 0 0-2.286-2.286h-1.287a4.58 4.58 0 0 1-1.403 4.572\"\n })]\n })\n });\n}\n//# sourceMappingURL=GroupsFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from groups.svg\n */\nexport default function GroupsIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"GroupsIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2 14a3 3 0 0 1 3-3h6a3 3 0 0 1 3 3v1a1 1 0 1 1-2 0v-1a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v1a1 1 0 1 1-2 0zM0 8a2.5 2.5 0 0 1 2.5-2.5H3a1 1 0 0 1 0 2h-.5A.5.5 0 0 0 2 8v1.5a1 1 0 1 1-2 0zM16 8a2.5 2.5 0 0 0-2.5-2.5H13a1 1 0 1 0 0 2h.5a.5.5 0 0 1 .5.5v1.5a1 1 0 1 0 2 0zM8 8.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3m0 2a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7M12.5 4.25a2 2 0 1 0 0-4 2 2 0 0 0 0 4M3.5 4.25a2 2 0 1 0 0-4 2 2 0 0 0 0 4\"\n })]\n })\n });\n}\n//# sourceMappingURL=Groups.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from help.svg\n */\nexport default function HelpIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"HelpIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M13 4.5C13 1.983 10.734 0 8 0S3 1.983 3 4.5a1 1 0 0 0 2 0C5 3.151 6.316 2 8 2s3 1.151 3 2.5S9.684 7 8 7a1 1 0 0 0-1 1v1.5l.007.117A1 1 0 0 0 9 9.5v-.59c2.265-.415 4-2.208 4-4.41M10 14a2 2 0 1 0-4 0 2 2 0 0 0 4 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Help.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from hide-filled.svg\n */\nexport default function HideFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"HideFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m1.613.21.094.083 14 14a1 1 0 0 1-1.32 1.497l-.094-.083-14-14A1 1 0 0 1 1.613.21m-.038 4.195 3.43 3.429L5 8a3 3 0 0 0 3 3l.166-.006 2.631 2.632C9.923 13.87 8.98 14 8 14c-4.36 0-8-2.6-8-6 0-1.367.588-2.604 1.575-3.596M16 8c0-3.4-3.64-6-8-6-.98 0-1.924.131-2.798.374l2.631 2.631L8 5a3 3 0 0 1 3 3l-.005.166 3.43 3.43C15.412 10.604 16 9.365 16 8\"\n })]\n })\n });\n}\n//# sourceMappingURL=HideFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from highlight.svg\n */\nexport default function HighlightIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"HighlightIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M13 1a1 1 0 0 0-1-1h-2l-.117.007a1 1 0 0 0-.75 1.493A1 1 0 0 0 9 2v6l.009.134a1 1 0 0 0 .125.365.996.996 0 0 0 .374 1.37A1 1 0 0 0 9.5 10v2l.006.114c.087.814 1.098 1.196 1.701.593l1-1 .087-.099A1 1 0 0 0 12.5 11l.001-1.134a1 1 0 0 0 .365-1.366A1 1 0 0 0 13 8V2l-.009-.134a1 1 0 0 0-.125-.365A1 1 0 0 0 13 1m0 14a1 1 0 0 0-1-1H1l-.117.007A1 1 0 0 0 1 16h11l.117-.007A1 1 0 0 0 13 15\"\n })]\n })\n });\n}\n//# sourceMappingURL=Highlight.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from image-filled.svg\n */\nexport default function ImageFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ImageFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2 0h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2m7.541 5.122.055.069 3.333 5.143a.432.432 0 0 1-.266.658l-.08.008H9.23a.93.93 0 0 0-.076-.98l-1.79-2.456 1.54-2.373a.41.41 0 0 1 .637-.069M6.19 6.818l.061.068 2.5 3.428c.19.261.038.625-.257.68L8.417 11h-5c-.317 0-.508-.344-.373-.619l.04-.067 2.5-3.428a.41.41 0 0 1 .605-.068\"\n })]\n })\n });\n}\n//# sourceMappingURL=ImageFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from info.svg\n */\nexport default function InfoIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"InfoIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16M8 5.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M8 7a1 1 0 0 0-1 1v4a1 1 0 1 0 2 0V8a1 1 0 0 0-1-1\"\n })]\n })\n });\n}\n//# sourceMappingURL=Info.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from leave-filled.svg\n */\nexport default function LeaveFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"LeaveFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M0 8c0-4.052 3.948-8 8-8s8 3.948 8 8-3.948 8-8 8-8-3.948-8-8m6.613-2.79a1 1 0 0 0-1.226 0l-.094.083-.083.094a1 1 0 0 0 0 1.226l.083.094L6.585 8 5.293 9.293l-.083.094a1 1 0 0 0 .083 1.32l.094.083a1 1 0 0 0 1.32-.083L8 9.415l1.293 1.292.094.083a1 1 0 0 0 1.32-1.497L9.415 8l1.292-1.293.083-.094A1 1 0 0 0 9.387 5.21l-.094.083L8 6.585 6.707 5.293z\"\n })]\n })\n });\n}\n//# sourceMappingURL=LeaveFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from leave.svg\n */\nexport default function LeaveIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"LeaveIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0c4.052 0 8 3.948 8 8s-3.948 8-8 8-8-3.948-8-8 3.948-8 8-8m0 2C5.052 2 2 5.052 2 8s3.052 6 6 6 6-3.052 6-6-3.052-6-6-6m2.707 4.707.08-.087c.778-.94-.58-2.241-1.494-1.327L8 6.585 6.707 5.293l-.094-.083a1 1 0 0 0-1.32 1.497L6.585 8 5.293 9.293l-.08.087c-.778.94.58 2.241 1.494 1.327L8 9.415l1.293 1.292.094.083a1 1 0 0 0 1.32-1.497L9.415 8z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Leave.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from link.svg\n */\nexport default function LinkIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"LinkIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.004 6.108c1.412-1.466 1.29-3.735-.152-5.073-1.45-1.346-3.88-1.415-5.406 0l-.09.095L8.3 2.404l-.074.101a1 1 0 0 0 .205 1.307l.102.074a1 1 0 0 0 1.306-.205l1.005-1.211.091-.076c.748-.573 1.896-.507 2.558.107.66.613.694 1.645 0 2.29l-.08.082-3.077 3.592c-.805.723-1.856.713-2.655-.028a1 1 0 0 0-1.36 1.466c1.576 1.463 3.83 1.463 5.406 0l.06-.06 3.118-3.638zM9.733 7.51a1 1 0 0 0-.053-1.413c-1.576-1.463-3.83-1.463-5.406 0l-.08.082-3.099 3.615-.099.098c-1.412 1.466-1.29 3.735.152 5.073 1.45 1.346 3.88 1.415 5.406 0l.09-.095L7.7 13.596l.074-.101a1 1 0 0 0-.205-1.307l-.102-.074a1 1 0 0 0-1.306.205l-1.006 1.21-.09.077c-.748.573-1.896.507-2.558-.107a1.544 1.544 0 0 1 0-2.29l.08-.082 3.077-3.592c.805-.723 1.856-.713 2.655.028a1 1 0 0 0 1.413-.053\"\n })]\n })\n });\n}\n//# sourceMappingURL=Link.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from list.svg\n */\nexport default function ListIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ListIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 3a1 1 0 0 0-1-1H1l-.117.007A1 1 0 0 0 1 4h14l.117-.007A1 1 0 0 0 16 3m-1 4a1 1 0 0 1 .117 1.993L15 9H1a1 1 0 0 1-.117-1.993L1 7zm0 5a1 1 0 0 1 .117 1.993L15 14H1a1 1 0 0 1-.117-1.993L1 12z\"\n })]\n })\n });\n}\n//# sourceMappingURL=List.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from list-ordered.svg\n */\nexport default function ListOrderedIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ListOrderedIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m3.237 0 .052.008q.066.015.12.061a.25.25 0 0 1 .083.132l.006.052-.004 3.167.744.001.051.007a.3.3 0 0 1 .119.058q.067.054.086.132l.006.053-.001.595-.01.05a.278.278 0 0 1-.197.176l-.07.008H1.29l-.051-.008a.3.3 0 0 1-.12-.061.25.25 0 0 1-.084-.132l-.006-.052.001-.596.01-.05a.25.25 0 0 1 .077-.113.3.3 0 0 1 .12-.06l.069-.008.932.002.003-1.959-.796.629-.068.037a.3.3 0 0 1-.196-.002.25.25 0 0 1-.172-.179L1 1.881v-.587l.007-.089.015-.075a.35.35 0 0 1 .073-.132l.06-.059.83-.758.04-.036A1 1 0 0 1 2.139.07a.5.5 0 0 1 .183-.062L2.428 0zm-.46 5.5q.351 0 .66.101.311.102.544.288t.372.437q.14.256.14.551 0 .284-.145.542-.105.185-.258.34l-.108.1L2.71 8.932l1.52.001.053.006q.066.015.12.056.071.054.091.132l.007.054-.002.59-.01.05a.25.25 0 0 1-.083.113.3.3 0 0 1-.121.059L4.216 10H1.27l-.053-.007a.3.3 0 0 1-.122-.059.25.25 0 0 1-.089-.132L1 9.748v-.711l.004-.05a.3.3 0 0 1 .04-.115l.034-.043.035-.033L3.04 7.167l.036-.036a1 1 0 0 0 .08-.114.3.3 0 0 0 .055-.145.27.27 0 0 0-.099-.21q-.1-.093-.303-.094-.244 0-.369.093a.24.24 0 0 0-.103.147l-.006.064-.002.123-.01.052a.25.25 0 0 1-.084.112.3.3 0 0 1-.12.058l-.069.008h-.726l-.053-.007a.3.3 0 0 1-.121-.059.25.25 0 0 1-.09-.132l-.006-.054V6.87l.01-.137q.026-.216.135-.407.14-.25.379-.437.236-.185.544-.287.309-.1.658-.101m.617 6.103a2 2 0 0 0-.646-.103q-.34 0-.645.103a1.7 1.7 0 0 0-.533.286 1.5 1.5 0 0 0-.366.43q-.105.19-.132.402l-.008.135v.097l.006.052q.02.076.087.131a.3.3 0 0 0 .12.059l.052.006.712.001.067-.007a.3.3 0 0 0 .119-.059.25.25 0 0 0 .081-.111l.01-.051.002-.11.006-.065a.24.24 0 0 1 .098-.148q.12-.09.324-.09.212 0 .329.09c.07.053.103.12.103.213a.26.26 0 0 1-.104.222.45.45 0 0 1-.224.086l-.112.006h-.077l-.069.008a.3.3 0 0 0-.12.06.25.25 0 0 0-.079.111l-.01.05-.001.57.006.053q.02.077.087.132a.3.3 0 0 0 .12.058l.051.007h.1l.114.007a.54.54 0 0 1 .262.095c.08.06.12.14.12.253a.29.29 0 0 1-.12.252.6.6 0 0 1-.376.102q-.247-.001-.378-.101a.28.28 0 0 1-.112-.186l-.005-.077v-.047l-.006-.054a.24.24 0 0 0-.09-.133.3.3 0 0 0-.118-.056l-.051-.006-.708-.001-.07.007a.3.3 0 0 0-.12.06.25.25 0 0 0-.079.112l-.01.05-.001.078.009.148q.027.22.132.418.14.259.382.45.24.187.555.294.316.108.67.108t.67-.107.555-.296q.243-.19.384-.449.143-.264.143-.566 0-.28-.14-.538l-.075-.122-.057-.075a1 1 0 0 0-.131-.134l-.047-.035.063-.061q.11-.122.189-.269.123-.228.124-.484 0-.29-.134-.543a1.4 1.4 0 0 0-.364-.432 1.8 1.8 0 0 0-.534-.286M16 14a1 1 0 0 0-1-1H7l-.117.007A1 1 0 0 0 7 15h8l.117-.007A1 1 0 0 0 16 14m0-6a1 1 0 0 0-1-1H7l-.117.007A1 1 0 0 0 7 9h8l.117-.007A1 1 0 0 0 16 8m0-6a1 1 0 0 0-1-1H7l-.117.007A1 1 0 0 0 7 3h8l.117-.007A1 1 0 0 0 16 2\"\n })]\n })\n });\n}\n//# sourceMappingURL=ListOrdered.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from list-unordered.svg\n */\nexport default function ListUnorderedIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ListUnorderedIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4m0 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4m2 8a2 2 0 1 0-4 0 2 2 0 0 0 4 0m12 0a1 1 0 0 0-1-1H7l-.117.007A1 1 0 0 0 7 15h8l.117-.007A1 1 0 0 0 16 14m0-6a1 1 0 0 0-1-1H7l-.117.007A1 1 0 0 0 7 9h8l.117-.007A1 1 0 0 0 16 8m0-6a1 1 0 0 0-1-1H7l-.117.007A1 1 0 0 0 7 3h8l.117-.007A1 1 0 0 0 16 2\"\n })]\n })\n });\n}\n//# sourceMappingURL=ListUnordered.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from lock-filled.svg\n */\nexport default function LockFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"LockFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11.995 4.783C11.882 2.123 10.69 1 8 1 5.239 1 4 2.239 4 5v.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V5l.005-.176C6.096 3.249 6.402 3 8 3c1.657 0 2 .343 2 2v.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V5zm.998 3.1A1 1 0 0 0 12 7H4l-.117.007A1 1 0 0 0 3 8v6l.007.117A1 1 0 0 0 4 15h8l.117-.007A1 1 0 0 0 13 14V8z\"\n })]\n })\n });\n}\n//# sourceMappingURL=LockFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from lock.svg\n */\nexport default function LockIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"LockIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M11.995 4.783C11.882 2.123 10.69 1 8 1 5.239 1 4 2.239 4 5v.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V5l.005-.176C6.096 3.249 6.402 3 8 3c1.657 0 2 .343 2 2v.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V5zM5.5 9a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5zM4 7a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Lock.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from logout.svg\n */\nexport default function LogoutIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"LogoutIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M10 1a1 1 0 0 0-1-1H1L.883.007A1 1 0 0 0 0 1v14l.007.117A1 1 0 0 0 1 16h8l.117-.007A1 1 0 0 0 10 15l-.007-.117A1 1 0 0 0 9 14H1.999V2H9l.117-.007A1 1 0 0 0 10 1m1.707 2.293-.094-.083a1 1 0 0 0-1.32.083l-.083.094a1 1 0 0 0 .083 1.32L12.585 7H5l-.117.007A1 1 0 0 0 5 9h7.585l-2.292 2.293-.083.094a1 1 0 0 0 1.497 1.32l4-4 .083-.094a1 1 0 0 0-.083-1.32z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Logout.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from mention.svg\n */\nexport default function MentionIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"MentionIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8.195 16q-1.95 0-3.47-.53-1.522-.523-2.574-1.54-1.05-1.01-1.601-2.47T0 8.137q0-1.838.55-3.335.555-1.497 1.62-2.568Q3.232 1.156 4.767.578 6.307 0 8.275 0q1.821 0 3.251.53 1.436.529 2.433 1.509a6.4 6.4 0 0 1 1.521 2.319q.526 1.338.52 2.963a9.5 9.5 0 0 1-.196 2.057 5.1 5.1 0 0 1-.635 1.638q-.428.694-1.125 1.101-.697.402-1.687.457-.708.055-1.149-.104-.44-.158-.672-.469a1.7 1.7 0 0 1-.293-.736h-.074q-.146.366-.574.663a3.4 3.4 0 0 1-1.045.457 4.2 4.2 0 0 1-1.302.116 3.9 3.9 0 0 1-1.369-.335 3.5 3.5 0 0 1-1.143-.846q-.495-.554-.782-1.37-.28-.815-.287-1.886.006-1.058.3-1.844.299-.786.788-1.32.494-.537 1.1-.84a3.9 3.9 0 0 1 1.216-.39q.69-.105 1.308 0 .617.103 1.039.335.427.23.531.499h.086v-.682h1.913v5.94q.006.42.19.651a.6.6 0 0 0 .494.231q.423 0 .703-.37.287-.372.428-1.139.147-.766.147-1.954 0-1.144-.306-2.008-.3-.87-.843-1.479a4.4 4.4 0 0 0-1.253-.998 5.8 5.8 0 0 0-1.552-.56 8.2 8.2 0 0 0-1.712-.176q-1.521 0-2.658.462-1.137.458-1.895 1.284a5.4 5.4 0 0 0-1.136 1.942 7.7 7.7 0 0 0-.38 2.416q.008 1.442.404 2.556.403 1.108 1.186 1.862.782.755 1.93 1.145 1.15.39 2.641.389.703 0 1.375-.104.672-.097 1.216-.243.544-.14.874-.274l.605 1.765q-.385.219-1.045.408-.654.195-1.479.31Q9.063 16 8.195 16m-.28-5.502q.745 0 1.185-.286.446-.285.636-.846.195-.566.183-1.393-.006-.731-.19-1.236a1.4 1.4 0 0 0-.617-.773q-.434-.267-1.21-.268-.678 0-1.155.287a1.87 1.87 0 0 0-.721.803q-.245.51-.25 1.205.005.645.207 1.223.202.573.666.931.465.354 1.265.353\"\n })]\n })\n });\n}\n//# sourceMappingURL=Mention.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from minus.svg\n */\nexport default function MinusIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"MinusIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M14 8a1 1 0 0 0-1-1H3l-.117.007A1 1 0 0 0 3 9h10l.117-.007A1 1 0 0 0 14 8\"\n })]\n })\n });\n}\n//# sourceMappingURL=Minus.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from note-filled.svg\n */\nexport default function NoteFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"NoteFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.995 1.85A2 2 0 0 0 14 0H2l-.15.005A2 2 0 0 0 0 2v12l.005.15A2 2 0 0 0 2 16h3a1 1 0 0 0 1-1V9a1 1 0 0 1 1-1h8a1 1 0 0 0 1-1V2zM16 9.25a.25.25 0 0 0-.25-.25H8a1 1 0 0 0-1 1v5.75c0 .138.112.25.25.25z\"\n })]\n })\n });\n}\n//# sourceMappingURL=NoteFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from note.svg\n */\nexport default function NoteIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"NoteIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M14 0a2 2 0 0 1 1.995 1.85L16 2v7a1 1 0 0 1-.31.724l-.09.076-8 6a1 1 0 0 1-.471.192L7 16H2a2 2 0 0 1-1.995-1.85L0 14V2A2 2 0 0 1 1.85.005L2 0zm0 2H2v12h4V9a1 1 0 0 1 .883-.993L7 8h7zm-6 8h4l-4 3z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Note.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from one-drive.svg\n */\nexport default function OneDriveIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"OneDriveIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M5.14 8.277a3.574 3.574 0 0 1 6.057-1.608c.293-.098.599-.155.908-.168v-.104c0-1.985-1.476-3.595-3.295-3.595-1.3 0-2.415.83-2.95 2.024a2.4 2.4 0 0 0-1.355-.428c-1.427 0-2.583 1.261-2.583 2.818 0 .167.019.33.045.49C.866 7.814.004 8.94.004 10.169q.002.017.003.036c0 .01-.007.022-.007.033 0 .492.171.941.449 1.304a2.1 2.1 0 0 0 1.71.856h1.01a2.86 2.86 0 0 1-.32-1.291 2.895 2.895 0 0 1 2.292-2.83m9.165 1.544c-.02 0-.04.005-.06.006.005-.059.017-.117.017-.177a2.13 2.13 0 0 0-2.13-2.13c-.451 0-.89.145-1.251.412a2.575 2.575 0 0 0-4.1-.61 2.6 2.6 0 0 0-.758 1.83c0 .018.005.034.005.052a2 2 0 0 0-.287-.029 1.93 1.93 0 0 0-1.892 2.321 2.09 2.09 0 0 0 2.052 1.702h8.561v-.016a1.684 1.684 0 0 0-.157-3.361\"\n })]\n })\n });\n}\n//# sourceMappingURL=OneDrive.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from pause.svg\n */\nexport default function PauseIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"PauseIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M4.5 2C3.672 2 3 2.504 3 3.125v9.75C3 13.496 3.672 14 4.5 14S6 13.496 6 12.875v-9.75C6 2.504 5.328 2 4.5 2M11.5 2c-.828 0-1.5.504-1.5 1.125v9.75c0 .621.672 1.125 1.5 1.125s1.5-.504 1.5-1.125v-9.75C13 2.504 12.328 2 11.5 2\"\n })]\n })\n });\n}\n//# sourceMappingURL=Pause.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from pending.svg\n */\nexport default function PendingIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"PendingIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M6.956.068a8 8 0 0 1 2.088 0 .889.889 0 1 1-.23 1.762 6.3 6.3 0 0 0-1.628 0 .889.889 0 0 1-.23-1.762m4.668 1.748a.89.89 0 0 1 1.247-.163c.554.426 1.05.922 1.476 1.476a.889.889 0 0 1-1.41 1.083 6.3 6.3 0 0 0-1.15-1.15.89.89 0 0 1-.163-1.246m-7.248 0c.299.39.226.948-.164 1.247a6.3 6.3 0 0 0-1.15 1.15.889.889 0 0 1-1.409-1.084A8 8 0 0 1 3.13 1.653a.89.89 0 0 1 1.247.163m10.56 4.374a.89.89 0 0 1 .996.766 8 8 0 0 1 0 2.088.889.889 0 1 1-1.762-.23 6.3 6.3 0 0 0 0-1.628.89.89 0 0 1 .766-.996m-13.872 0c.487.063.83.51.766.996a6.3 6.3 0 0 0 0 1.628.889.889 0 0 1-1.762.23 8 8 0 0 1 0-2.088.89.89 0 0 1 .996-.766m13.12 5.434c.389.3.462.857.163 1.247a8 8 0 0 1-1.476 1.476.889.889 0 0 1-1.084-1.41 6.3 6.3 0 0 0 1.15-1.15.89.89 0 0 1 1.247-.163m-12.368 0a.89.89 0 0 1 1.247.163c.331.432.718.819 1.15 1.15a.889.889 0 0 1-1.084 1.41 8 8 0 0 1-1.476-1.476.89.89 0 0 1 .163-1.247m4.374 3.312a.89.89 0 0 1 .996-.766 6.3 6.3 0 0 0 1.628 0 .889.889 0 1 1 .23 1.762 8 8 0 0 1-2.088 0 .89.89 0 0 1-.766-.996\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=Pending.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from pin-filled.svg\n */\nexport default function PinFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"PinFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M4 0a1 1 0 0 0 0 2 .5.5 0 0 1 .5.5v.146a.5.5 0 0 1-.053.224L3.106 5.553A1 1 0 0 0 3 6v3a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6a1 1 0 0 0-.106-.447L11.553 2.87a.5.5 0 0 1-.053-.224V2.5A.5.5 0 0 1 12 2a1 1 0 1 0 0-2zM9.043 11h-2l.075 4.024a1 1 0 1 0 2-.047z\"\n })]\n })\n });\n}\n//# sourceMappingURL=PinFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from pin.svg\n */\nexport default function PinIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"PinIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M3 1a1 1 0 0 1 1-1h8a1 1 0 1 1 0 2 .5.5 0 0 0-.5.5v.146a.5.5 0 0 0 .053.224l1.341 2.683c.07.139.106.292.106.447v3a1 1 0 0 1-1 1H9.024l.093 4.977a1 1 0 0 1-2 .046L7.024 10H4a1 1 0 0 1-1-1V6a1 1 0 0 1 .106-.447L4.447 2.87a.5.5 0 0 0 .053-.224V2.5A.5.5 0 0 0 4 2a1 1 0 0 1-1-1m4 1a.5.5 0 0 0-.5.5V3a1 1 0 0 1-.106.447L5.053 6.13A.5.5 0 0 0 5 6.355V7.5a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5V6.354a.5.5 0 0 0-.053-.224L9.606 3.448A1 1 0 0 1 9.5 3v-.5A.5.5 0 0 0 9 2z\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=Pin.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from plus.svg\n */\nexport default function PlusIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"PlusIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8.993 2.867 9 3v3.999L13 7a1 1 0 0 1 .117 1.993L13 9H9v4c0 1.287-1.864 1.332-1.993.133L7 13V9H3a1 1 0 0 1-.117-1.993L3 7h4V3c0-1.287 1.864-1.332 1.993-.133\"\n })]\n })\n });\n}\n//# sourceMappingURL=Plus.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from preview-filled.svg\n */\nexport default function PreviewFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"PreviewFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 8A8 8 0 1 0 0 8a8 8 0 0 0 16 0M6.006 4.89A1 1 0 0 1 7.6 4.2l4 3 .1.085a1 1 0 0 1-.1 1.515l-4 3-.092.061A1 1 0 0 1 6 11V5z\"\n })]\n })\n });\n}\n//# sourceMappingURL=PreviewFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from preview.svg\n */\nexport default function PreviewIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"PreviewIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0m0 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2m-.492 2.138A1 1 0 0 0 6 5v6l.006.11a1 1 0 0 0 1.594.69l4-3 .1-.085a1 1 0 0 0-.1-1.515l-4-3z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Preview.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from profile-filled.svg\n */\nexport default function ProfileFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ProfileFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12 4a4 4 0 1 0-8 0 4 4 0 0 0 8 0m4 11c0-3.4-3.64-6-8-6s-8 2.6-8 6a1 1 0 0 0 1 1h14l.117-.007A1 1 0 0 0 16 15\"\n })]\n })\n });\n}\n//# sourceMappingURL=ProfileFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from redo.svg\n */\nexport default function RedoIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"RedoIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M3.717 5.42c-.206.34-.558.58-.955.58H2.63c-.67 0-1.148-.648-.837-1.24A7 7 0 0 1 8 1a7 7 0 0 1 6 3.393V3a1 1 0 1 1 2 0v4a1 1 0 0 1-1 1h-4a1 1 0 1 1 0-2h1.584a5.001 5.001 0 0 0-8.867-.58M2 13v-1.392A7 7 0 0 0 8 15a7 7 0 0 0 6.206-3.76c.31-.592-.168-1.24-.837-1.24h-.13c-.398 0-.75.24-.956.58A5.001 5.001 0 0 1 3.416 10H5a1 1 0 0 0 0-2H1a1 1 0 0 0-1 1v4a1 1 0 1 0 2 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Redo.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from refresh.svg\n */\nexport default function RefreshIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"RefreshIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0a1 1 0 0 1 .993.883L9 1v7.585l1.293-1.292a1 1 0 0 1 1.32-.083l.094.083a1 1 0 0 1 .083 1.32l-.083.094-3 3a1 1 0 0 1-1.32.083l-.094-.083-3-3a1 1 0 0 1 1.32-1.497l.094.083L7 8.585V1a1 1 0 0 1 1-1\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M4.82 1.683a1 1 0 0 1-.248 1.392 6 6 0 1 0 6.856 0 1 1 0 0 1 1.144-1.64 8 8 0 1 1-9.144 0 1 1 0 0 1 1.392.248\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=Refresh.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from restricted.svg\n */\nexport default function RestrictedIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"RestrictedIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8 0c1.682 0 3.346.68 4.717 1.766l.08.063.285.241.31.285.128.125.16.165.243.265.311.373C15.32 4.653 16 6.318 16 8c0 4.052-3.948 8-8 8-1.682 0-3.346-.68-4.717-1.766l-.056-.044a9 9 0 0 1-.322-.272l-.131-.118-.167-.156-.132-.13-.152-.156-.253-.276-.304-.365C.68 11.347 0 9.682 0 8c0-4.052 3.948-8 8-8m4.765 4.651L4.65 12.765C5.654 13.523 6.835 14 8 14c2.948 0 6-3.052 6-6 0-1.165-.477-2.346-1.235-3.349M2 8c0-2.948 3.052-6 6-6 1.165 0 2.347.477 3.35 1.236L3.236 11.35C2.476 10.347 2 9.165 2 8\"\n })]\n })\n });\n}\n//# sourceMappingURL=Restricted.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from school-filled.svg\n */\nexport default function SchoolFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"SchoolFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.504 1.132a1 1 0 0 1 .992 0l6.983 3.99A1 1 0 0 1 16 6v6a1 1 0 1 1-2 0V7.723l-5.504 3.145a1 1 0 0 1-.992 0l-7-4a1 1 0 0 1 0-1.736z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2.5 11V8.585l4.756 2.717a1.5 1.5 0 0 0 1.488 0L13.5 8.585V11a4 4 0 0 1-4 4h-3a4 4 0 0 1-4-4\"\n })]\n })\n });\n}\n//# sourceMappingURL=SchoolFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from school.svg\n */\nexport default function SchoolIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"SchoolIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.504 1.132a1 1 0 0 1 .992 0l6.983 3.99A1 1 0 0 1 16 6v6a1 1 0 1 1-2 0V7.723l-.5.286V11a4 4 0 0 1-4 4h-3a4 4 0 0 1-4-4V8.009L.504 6.869a1 1 0 0 1 0-1.737zM4.5 9.152V11a2 2 0 0 0 2 2h3a2 2 0 0 0 2-2V9.152l-3.004 1.716a1 1 0 0 1-.992 0zM3.016 6 8 8.848 12.984 6 8 3.152z\"\n })]\n })\n });\n}\n//# sourceMappingURL=School.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from search.svg\n */\nexport default function SearchIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"SearchIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12 6a6 6 0 1 0-2.525 4.892l4.818 4.815.094.083a1 1 0 0 0 1.32-1.497L10.89 9.474A5.97 5.97 0 0 0 12 6M2 6a4 4 0 1 1 6.961 2.69l-.15.155-.16.152A3.98 3.98 0 0 1 6 10a4 4 0 0 1-4-4\"\n })]\n })\n });\n}\n//# sourceMappingURL=Search.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from selection.svg\n */\nexport default function SelectionIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"SelectionIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M2.5 0h-1A1.5 1.5 0 0 0 0 1.5v1a1.5 1.5 0 0 0 1 1.415v8.17A1.5 1.5 0 0 0 0 13.5v1A1.5 1.5 0 0 0 1.5 16h1a1.5 1.5 0 0 0 1.415-1h8.17a1.5 1.5 0 0 0 1.415 1h1a1.5 1.5 0 0 0 1.5-1.5v-1a1.5 1.5 0 0 0-1-1.415v-8.17A1.5 1.5 0 0 0 16 2.5v-1A1.5 1.5 0 0 0 14.5 0h-1a1.5 1.5 0 0 0-1.415 1h-8.17A1.5 1.5 0 0 0 2.5 0m9.585 13c.151-.426.489-.764.915-.915v-8.17A1.5 1.5 0 0 1 12.085 3h-8.17c-.151.426-.489.764-.915.915v8.17c.426.151.764.489.915.915zM1 1.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zM1.5 13a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM13 1.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm.5 11.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=Selection.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from show-filled.svg\n */\nexport default function ShowFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ShowFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 8c0-3.4-3.64-6-8-6S0 4.6 0 8s3.64 6 8 6 8-2.6 8-6M5 8a3 3 0 1 1 6 0 3 3 0 0 1-6 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=ShowFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from social-facebook.svg\n */\nexport default function SocialFacebookIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"SocialFacebookIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.999 8.049c0-4.445-3.582-8.049-8-8.049S0 3.604 0 8.049C0 12.066 2.925 15.396 6.75 16v-5.624H4.717V8.049H6.75V6.276c0-2.018 1.195-3.132 3.022-3.132.875 0 1.79.157 1.79.157v1.981h-1.008c-.994 0-1.304.62-1.304 1.257v1.51h2.219l-.355 2.327H9.25V16c3.825-.604 6.75-3.934 6.75-7.951z\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=SocialFacebook.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from social-twitter.svg\n */\nexport default function SocialTwitterIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"SocialTwitterIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M15.969 3.049c-.59.259-1.22.436-1.884.516a3.3 3.3 0 0 0 1.442-1.815c-.634.37-1.336.64-2.084.79a3.28 3.28 0 0 0-5.59 2.988 9.3 9.3 0 0 1-6.76-3.418C.799 2.61.646 3.18.65 3.76c0 1.14.58 2.142 1.459 2.73a3.3 3.3 0 0 1-1.485-.41v.04a3.28 3.28 0 0 0 2.63 3.218 3.3 3.3 0 0 1-1.474.057 3.29 3.29 0 0 0 3.069 2.278A6.58 6.58 0 0 1 .78 13.076q-.39 0-.78-.044a9.33 9.33 0 0 0 5.038 1.472c6.036 0 9.332-4.997 9.332-9.323 0-.14 0-.28-.01-.42a6.6 6.6 0 0 0 1.64-1.7z\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=SocialTwitter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from sort.svg\n */\nexport default function SortIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"SortIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M4.707.293 4.613.21a1 1 0 0 0-1.32.083l-3 3-.083.094a1 1 0 0 0 .083 1.32l.094.083a1 1 0 0 0 1.32-.083L3 3.415V8a1 1 0 1 0 2 0V3.415l1.293 1.292.094.083a1 1 0 0 0 1.32-1.497zM13 8a1 1 0 1 0-2 0v4.585l-1.293-1.292-.094-.083a1 1 0 0 0-1.32 1.497l3 3 .094.083a1 1 0 0 0 1.32-.083l3-3 .083-.094a1 1 0 0 0-.083-1.32l-.094-.083a1 1 0 0 0-1.32.083L13 12.585z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Sort.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from spinner--circle.svg\n */\nexport default function SpinnerCircleIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 38 38\",\n \"data-component\": \"SpinnerCircleIcon\",\n ...props,\n children: _jsxs(\"g\", {\n fill: \"none\",\n \"fill-rule\": \"evenodd\",\n transform: \"translate(1 1)\",\n children: [_jsx(\"path\", {\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n d: \"M36 18c0-9.94-8.06-18-18-18\",\n children: _jsx(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"0.9s\",\n from: \"0 18 18\",\n repeatCount: \"indefinite\",\n to: \"360 18 18\",\n type: \"rotate\"\n })\n }), _jsx(\"circle\", {\n cx: \"36\",\n cy: \"18\",\n r: \"1\",\n fill: \"#fff\",\n children: _jsx(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"0.9s\",\n from: \"0 18 18\",\n repeatCount: \"indefinite\",\n to: \"360 18 18\",\n type: \"rotate\"\n })\n })]\n })\n });\n}\n//# sourceMappingURL=SpinnerCircle.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from tag-filled.svg\n */\nexport default function TagFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"TagFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7.563.174A1 1 0 0 0 7 0H1L.883.007A1 1 0 0 0 0 1v6l.007.121a1 1 0 0 0 .329.626l9 8 .098.078a1 1 0 0 0 1.38-.244l5-7 .067-.107a1 1 0 0 0-.223-1.227l-8-7zM3 5a2 2 0 1 1 4 0 2 2 0 0 1-4 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=TagFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from tag.svg\n */\nexport default function TagIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"TagIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7 0a1 1 0 0 1 .563.174l.096.073 8 7a1 1 0 0 1 .222 1.227l-.067.107-5 7a1 1 0 0 1-1.38.244l-.098-.078-9-8a1 1 0 0 1-.329-.626L0 7V1A1 1 0 0 1 .883.007L1 0zm-.376 2H2v4.551l7.833 6.962 3.826-5.358zM7 5a2 2 0 1 0-4 0 2 2 0 0 0 4 0\"\n })]\n })\n });\n}\n//# sourceMappingURL=Tag.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from theme.svg\n */\nexport default function ThemeIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"ThemeIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M8.993.883A1 1 0 0 0 7 1v2l.007.117A1 1 0 0 0 9 3V1zm4.742 2.787a1 1 0 0 0-1.492-1.327l-1.415 1.414-.077.088a1 1 0 0 0 1.492 1.327l1.414-1.415zM8 5c1.552 0 3 1.448 3 3s-1.448 3-3 3-3-1.448-3-3 1.448-3 3-3m-2.828 5.828a1 1 0 0 1 .077 1.327l-.077.088-1.415 1.414a1 1 0 0 1-1.492-1.327l.078-.087 1.414-1.415a1 1 0 0 1 1.415 0M8 12a1 1 0 0 1 .993.883L9 13v2a1 1 0 0 1-1.993.117L7 15v-2a1 1 0 0 1 1-1m4.243-1.172-.088-.077a1 1 0 0 0-1.327 1.492l1.415 1.414.087.078a1 1 0 0 0 1.327-1.492zM16 8a1 1 0 0 0-1-1h-2l-.117.007A1 1 0 0 0 13 9h2l.117-.007A1 1 0 0 0 16 8M3 7a1 1 0 0 1 .117 1.993L3 9H1a1 1 0 0 1-.117-1.993L1 7zm.67-4.735.087.078 1.415 1.414A1 1 0 0 1 3.845 5.25l-.088-.077-1.414-1.415A1 1 0 0 1 3.67 2.265\"\n })]\n })\n });\n}\n//# sourceMappingURL=Theme.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from trash-filled.svg\n */\nexport default function TrashFilledIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"TrashFilledIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 1a1 1 0 0 0-1-1H1a1 1 0 1 0 0 2h14a1 1 0 0 0 1-1m-1.003 4.08A1 1 0 0 0 14 4H2l-.116.007a1 1 0 0 0-.865 1.19l2 10 .03.113A1 1 0 0 0 4 16h8l.118-.007a1 1 0 0 0 .863-.797l2-10z\"\n })]\n })\n });\n}\n//# sourceMappingURL=TrashFilled.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from trash.svg\n */\nexport default function TrashIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"TrashIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 1a1 1 0 0 0-1-1H1a1 1 0 1 0 0 2h14a1 1 0 0 0 1-1M14 4H2a1 1 0 0 0-.98 1.196l2 10A1 1 0 0 0 4 16h8a1 1 0 0 0 .98-.804l2-10A1 1 0 0 0 14 4m-1.22 2-1.6 8H4.819l-1.6-8z\"\n })]\n })\n });\n}\n//# sourceMappingURL=Trash.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// This file was auto-generated using scripts/generate-icons.js\n\n/**\n * Icon generated from vital-source.svg\n */\nexport default function VitalSourceIcon(props) {\n return _jsx(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 16 16\",\n \"data-component\": \"VitalSourceIcon\",\n ...props,\n children: _jsxs(\"g\", {\n \"fill-rule\": \"evenodd\",\n children: [_jsx(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n }), _jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 0H0v16h16zm-5.055 3.968.085-.014 1.681.28-.16.47c-.452 1.32-.926 2.707-1.422 3.98a82 82 0 0 1-1.978 4.65H7.496a86 86 0 0 1-1.979-4.65A204 204 0 0 1 3.29 2.666l2.026.337.42 1.161c.234.64.47 1.287.585 1.624q.336.986.686 1.968.332.94.685 1.873.315.838.673 1.66.342-.822.658-1.654.356-.931.692-1.872.354-.985.694-1.975c.121-.355.206-.667.29-.977.074-.273.148-.545.247-.844\",\n \"clip-rule\": \"evenodd\"\n })]\n })\n });\n}\n//# sourceMappingURL=VitalSource.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Render a button with optional icon\n */\nexport default function Button({\n children,\n classes,\n elementRef,\n expanded,\n pressed,\n title,\n icon: Icon,\n size = 'md',\n variant = 'secondary',\n unstyled = false,\n role,\n ...htmlAttributes\n}) {\n const styled = !unstyled;\n const themed = styled && variant !== 'custom';\n const sized = styled && size !== 'custom';\n const ariaProps = {\n 'aria-label': title\n };\n\n // aria-pressed and aria-expanded are not allowed for buttons with\n // an aria role of `tab`. Instead, the aria-selected attribute is expected.\n if (role === 'tab') {\n ariaProps['aria-selected'] = pressed;\n } else {\n ariaProps['aria-pressed'] = pressed;\n ariaProps['aria-expanded'] = expanded;\n }\n return _jsxs(\"button\", {\n role: role !== null && role !== void 0 ? role : 'button',\n \"data-component\": \"Button\"\n // Setting a default `type` can prevent undesired form submissions in\n // certain cases\n ,\n type: \"button\",\n ...ariaProps,\n ...htmlAttributes,\n className: classnames({\n 'focus-visible:ring focus-visible:outline-none transition-colors whitespace-nowrap flex items-center': styled\n }, themed && {\n 'font-semibold rounded': true,\n 'text-grey-7 bg-grey-1 enabled:hover:text-grey-9 enabled:hover:bg-grey-2 aria-pressed:text-grey-9 aria-expanded:text-grey-9': variant === 'secondary',\n // default\n 'text-grey-1 bg-grey-7 enabled:hover:bg-grey-8 disabled:text-grey-4': variant === 'primary'\n }, sized && {\n 'p-2 gap-x-2': size === 'md',\n // default\n 'p-1 gap-x-1': size === 'xs',\n 'p-1.5 gap-x-1.5': size === 'sm',\n 'p-2.5 gap-x-1.5': size === 'lg'\n }, classes),\n ref: downcastRef(elementRef),\n title: title,\n children: [Icon && _jsx(Icon, {\n className: \"w-em h-em\"\n }), children]\n });\n}\n//# sourceMappingURL=Button.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\n\n// These styles may be applied to input components to adapt them when in\n// an InputGroup\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\nexport const inputGroupStyles = classnames(\n// All inputs within an InputGroup should have a border. Turn off border-radius\n'input-group:border input-group:rounded-none',\n// Restore border-radius on the leftmost and rightmost components in the group\n'input-group:first:rounded-l input-group:last:rounded-r',\n// \"Collapse\" borders between input components\n'input-group:ml-[-1px] input-group:first:ml-0',\n// Make sure focused element appears on top, preventing a cropped focus ring\n'focus:z-1');\n/**\n * Render a container that lays out a group of input components\n */\nexport default function InputGroup({\n children,\n classes,\n elementRef,\n ...htmlAttributes\n}) {\n return _jsx(\"div\", {\n \"data-component\": \"InputGroup\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames(\n // Set the `.input-group` class so that children may\n // use the `input-group:` variant in their styles\n 'input-group', 'flex items-stretch w-full justify-center', classes),\n children: children\n });\n}\n//# sourceMappingURL=InputGroup.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport Button from './Button';\nimport { inputGroupStyles } from './InputGroup';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Render a button that only contains an icon.\n */\nexport default function IconButton({\n children,\n classes,\n elementRef,\n pressed,\n expanded,\n icon: Icon,\n size = 'md',\n title,\n variant = 'secondary',\n unstyled = false,\n ...htmlAttributes\n}) {\n const styled = !unstyled;\n const themed = styled && variant !== 'custom';\n const sized = styled && size !== 'custom';\n return _jsxs(Button, {\n \"data-component\": \"IconButton\",\n ...htmlAttributes,\n classes: classnames({\n 'focus-visible:ring focus-visible:outline-none transition-colors rounded whitespace-nowrap': styled,\n 'flex items-center justify-center': styled\n },\n // Adapt styles when in an InputGroup\n styled && inputGroupStyles, themed && {\n // variant\n 'text-grey-7 bg-transparent enabled:hover:text-grey-9 aria-pressed:text-brand aria-expanded:text-brand': variant === 'secondary',\n //default\n 'text-brand bg-transparent enabled:hover:text-grey-9 disabled:text-grey-7': variant === 'primary',\n 'text-grey-7 bg-grey-2 enabled:hover:text-grey-9 enabled:hover:bg-grey-3 disabled:text-grey-5 aria-pressed:bg-grey-3 aria-expanded:bg-grey-3': variant === 'dark'\n }, sized && {\n 'gap-x-2 touch:min-w-touch-minimum touch:min-h-touch-minimum': true,\n 'p-2': size === 'md',\n // Default\n 'p-1': size === 'xs',\n 'p-1.5': size === 'sm',\n 'p-2.5': size === 'lg'\n }, classes),\n elementRef: downcastRef(elementRef),\n title: title,\n pressed: pressed,\n expanded: expanded,\n unstyled: true,\n children: [Icon && _jsx(Icon, {\n className: \"w-em h-em\"\n }), children]\n });\n}\n//# sourceMappingURL=IconButton.js.map","import { useContext } from 'preact/hooks';\nimport { downcastRef } from '../../util/typing';\nimport CloseableContext from '../CloseableContext';\nimport { CancelIcon } from '../icons';\nimport IconButton from './IconButton';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a close button. Use provided `onClick` or check for a CloseableContext\n * with a close handler.\n */\nexport default function CloseButton({\n children,\n classes,\n elementRef,\n title,\n onClick,\n ...iconButtonProps\n}) {\n var _ref;\n const closeableContext = useContext(CloseableContext);\n // Provided `title` and `onClick` are prioritized, but fall back to values\n // from the `CloseableContext`\n const buttonTitle = (_ref = title !== null && title !== void 0 ? title : closeableContext === null || closeableContext === void 0 ? void 0 : closeableContext.title) !== null && _ref !== void 0 ? _ref : 'Close';\n const closeHandler = onClick !== null && onClick !== void 0 ? onClick : closeableContext === null || closeableContext === void 0 ? void 0 : closeableContext.onClose;\n return _jsx(IconButton, {\n \"data-component\": \"CloseButton\",\n elementRef: downcastRef(elementRef),\n icon: CancelIcon,\n title: buttonTitle,\n classes: classes,\n ...iconButtonProps,\n onClick: closeHandler,\n children: children\n });\n}\n//# sourceMappingURL=CloseButton.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Style a title for a Card\n */\nexport default function CardTitle({\n children,\n classes,\n elementRef,\n tagName = 'h1',\n variant = 'primary',\n ...htmlAttributes\n}) {\n const WrapperElement = tagName;\n return _jsx(\"div\", {\n \"data-component\": \"CardTitle\",\n ...htmlAttributes,\n className: classnames({\n 'text-lg text-brand font-semibold': variant === 'primary',\n 'text-xl text-slate-7 font-normal': variant === 'secondary'\n }, classes),\n ref: downcastRef(elementRef),\n children: _jsx(WrapperElement, {\n \"data-testid\": \"card-title-heading\",\n children: children\n })\n });\n}\n//# sourceMappingURL=CardTitle.js.map","import classnames from 'classnames';\nimport { useContext } from 'preact/hooks';\nimport { downcastRef } from '../../util/typing';\nimport CloseableContext from '../CloseableContext';\nimport CloseButton from '../input/CloseButton';\nimport CardTitle from './CardTitle';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Render a header area in a Card with optional title and/or close button\n */\nexport default function CardHeader({\n children,\n classes,\n elementRef,\n fullWidth = false,\n onClose,\n title,\n variant = 'primary',\n ...htmlAttributes\n}) {\n const closeableContext = useContext(CloseableContext);\n // Provided `onClose` is prioritized, but also check to see if there is\n // a close handler provided by a `CloseableContext`\n const closeHandler = onClose !== null && onClose !== void 0 ? onClose : closeableContext === null || closeableContext === void 0 ? void 0 : closeableContext.onClose;\n return _jsxs(\"div\", {\n \"data-component\": \"CardHeader\",\n ...htmlAttributes,\n className: classnames('flex items-center gap-x-2 border-b py-2', {\n 'bg-slate-0 border-slate-5 rounded-t-[inherit]': variant === 'secondary',\n 'mx-3': !fullWidth && variant === 'primary',\n 'px-3': fullWidth || variant === 'secondary'\n }, classes),\n ref: downcastRef(elementRef),\n children: [title && _jsx(CardTitle, {\n variant: variant,\n children: title\n }), children, _jsx(\"div\", {\n className: \"grow\"\n }), closeHandler && _jsx(CloseButton, {\n onClick: closeHandler,\n classes: classnames(\n // Pull button right such that its icon right-aligns with the\n // header's bottom border\n '-mr-2.5',\n // Button icons render at 1em square. In this context, the icon\n // should always be exactly 16px square, so set font size to make\n // this happen.\n 'text-[16px]')\n })]\n });\n}\n//# sourceMappingURL=CardHeader.js.map","import classNames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport Scroll from '../data/Scroll';\nimport Card from './Card';\nimport CardActions from './CardActions';\nimport CardContent from './CardContent';\nimport CardHeader from './CardHeader';\nimport CardTitle from './CardTitle';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\n/**\n * Render a composed set of Card components in a panel-like interface.\n *\n * If the total height of the Panel exceeds any height constraints set on the\n * Panel's immediate parent element, content (`children`) will scroll. The\n * header and any buttons will not scroll.\n */\nexport default function Panel({\n children,\n elementRef,\n buttons,\n fullWidthHeader = false,\n icon: Icon,\n onClose,\n paddingSize = 'md',\n scrollable = false,\n title,\n ...htmlAttributes\n}) {\n // These classes are set on the content container hierarchy in this component\n // to ensure that the overall height is constrained to height rules set on\n // parent elements. This allows for control over scrolling content,\n // specifically.\n const heightConstraintClasses = 'flex flex-col min-h-0 h-full';\n const panelContent = paddingSize === 'none' ? children : _jsx(CardContent, {\n classes: heightConstraintClasses,\n \"data-testid\": \"panel-content-wrapper\",\n size: paddingSize,\n children: children\n });\n return _jsxs(Card, {\n \"data-composite-component\": \"Panel\",\n ...htmlAttributes,\n classes: heightConstraintClasses,\n elementRef: downcastRef(elementRef),\n children: [_jsxs(CardHeader, {\n onClose: onClose,\n fullWidth: scrollable || fullWidthHeader,\n children: [Icon && _jsx(Icon, {\n className: \"w-em h-em\"\n }), _jsx(CardTitle, {\n children: title\n })]\n }), scrollable ? _jsx(Scroll, {\n classes: classNames({\n // When no buttons are provided (which means this is the last children),\n // inherit the bottom border radius from Card.\n 'rounded-b-[inherit]': !buttons\n }),\n children: panelContent\n }) : _jsx(_Fragment, {\n children: panelContent\n }), buttons && _jsx(CardContent, {\n \"data-testid\": \"panel-buttons\",\n children: _jsx(CardActions, {\n children: buttons\n })\n })]\n });\n}\n//# sourceMappingURL=Panel.js.map","import classnames from 'classnames';\nimport { Fragment } from 'preact';\nimport { useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useClickAway } from '../../hooks/use-click-away';\nimport { useFocusAway } from '../../hooks/use-focus-away';\nimport { useKeyPress } from '../../hooks/use-key-press';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { downcastRef } from '../../util/typing';\nimport CloseableContext from '../CloseableContext';\nimport Panel from '../layout/Panel';\n\n// This component forwards a number of props on to `Panel` but always sets the\n// `fullWidthHeader` prop to `true`.\nimport { jsx as _jsx, Fragment as _Fragment } from \"preact/jsx-runtime\";\nfunction isPanelProps(props) {\n return props.variant !== 'custom';\n}\n\n/**\n * Show a dialog\n */\nexport default function Dialog({\n closeOnClickAway = false,\n closeOnEscape = false,\n closeOnFocusAway = false,\n children,\n initialFocus = 'auto',\n restoreFocus = false,\n transitionComponent: TransitionComponent,\n classes,\n elementRef,\n onClose,\n closeTitle,\n ...rest\n}) {\n const isPanel = isPanelProps(rest);\n const {\n buttons,\n icon,\n paddingSize = 'md',\n title = '',\n scrollable = true,\n ...htmlAttributes\n } = isPanel ? rest : {\n buttons: undefined,\n icon: undefined,\n paddingSize: undefined,\n title: undefined,\n scrollable: undefined,\n ...rest\n };\n const modalRef = useSyncedRef(elementRef);\n const restoreFocusEl = useRef(document.activeElement);\n const [transitionComponentVisible, setTransitionComponentVisible] = useState(false);\n const closeHandler = useCallback(() => {\n if (TransitionComponent) {\n // When a TransitionComponent is provided, the actual \"onClose\" will be\n // called by that component, once the \"out\" transition has finished\n setTransitionComponentVisible(false);\n } else {\n onClose === null || onClose === void 0 || onClose();\n }\n }, [onClose, TransitionComponent]);\n const initializeDialog = useCallback(() => {\n if (initialFocus === 'manual') {\n return;\n }\n if (initialFocus === 'auto') {\n var _modalRef$current;\n // An explicit `initialFocus` has not been set, so use automatic focus\n // handling. Modern accessibility guidance is to focus the dialog itself\n // rather than trying to be smart about focusing a particular control\n // within the dialog.\n (_modalRef$current = modalRef.current) === null || _modalRef$current === void 0 || _modalRef$current.focus();\n return;\n }\n const focusEl = initialFocus === null || initialFocus === void 0 ? void 0 : initialFocus.current;\n if (focusEl && !focusEl.disabled) {\n focusEl.focus();\n } else {\n var _modalRef$current2;\n // Fall back to focusing the modal itself\n (_modalRef$current2 = modalRef.current) === null || _modalRef$current2 === void 0 || _modalRef$current2.focus();\n }\n }, [initialFocus, modalRef]);\n const onTransitionEnd = direction => {\n if (direction === 'in') {\n initializeDialog();\n } else {\n onClose === null || onClose === void 0 || onClose();\n }\n };\n useClickAway(modalRef, closeHandler, {\n enabled: closeOnClickAway\n });\n useKeyPress(['Escape'], closeHandler, {\n enabled: closeOnEscape\n });\n useFocusAway(modalRef, closeHandler, {\n enabled: closeOnFocusAway\n });\n const dialogDescriptionId = useId();\n const Wrapper = useMemo(() => TransitionComponent !== null && TransitionComponent !== void 0 ? TransitionComponent : Fragment, [TransitionComponent]);\n useEffect(() => {\n setTransitionComponentVisible(true);\n if (!TransitionComponent) {\n initializeDialog();\n }\n\n // We only want to run this effect once when the dialog is mounted.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useLayoutEffect(\n /**\n * Restore focus when component is unmounted, if `restoreFocus` is set.\n */\n () => {\n const restoreFocusTo = restoreFocusEl.current;\n return () => {\n if (restoreFocus && restoreFocusTo) {\n restoreFocusTo.focus();\n }\n };\n },\n // We only want to run this effect once when the dialog is mounted.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n useLayoutEffect(\n /**\n * Try to assign the dialog an accessible description, using the content of\n * the first paragraph of text within it.\n *\n * A limitation of this approach is that it doesn't update if the dialog's\n * content changes after the initial render.\n */\n () => {\n var _modalRef$current3;\n const description = modalRef === null || modalRef === void 0 || (_modalRef$current3 = modalRef.current) === null || _modalRef$current3 === void 0 ? void 0 : _modalRef$current3.querySelector('p');\n if (description) {\n description.id = dialogDescriptionId;\n modalRef.current.setAttribute('aria-describedby', dialogDescriptionId);\n }\n }, [dialogDescriptionId, modalRef]);\n\n // Provide a close handler to descendant components\n const closeableContext = {\n onClose: onClose ? closeHandler : undefined,\n title: closeTitle\n };\n return _jsx(CloseableContext.Provider, {\n value: closeableContext,\n children: _jsx(Wrapper, {\n direction: transitionComponentVisible ? 'in' : 'out',\n onTransitionEnd: onTransitionEnd,\n children: _jsx(\"div\", {\n \"data-component\": \"Dialog\",\n tabIndex: -1\n // NB: Role can be overridden with an HTML attribute; this is purposeful\n ,\n role: \"dialog\",\n ...htmlAttributes,\n className: classnames(\n // Column-flex layout to constrain content to max-height\n 'flex flex-col', classes),\n ref: downcastRef(modalRef),\n children: isPanel ? _jsx(Panel, {\n buttons: buttons,\n fullWidthHeader: true,\n icon: icon,\n paddingSize: paddingSize,\n title: title,\n scrollable: scrollable,\n children: children\n }) : _jsx(_Fragment, {\n children: children\n })\n })\n })\n });\n}\n//# sourceMappingURL=Dialog.js.map","import classnames from 'classnames';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { useTabKeyNavigation } from '../../hooks/use-tab-key-navigation';\nimport { downcastRef } from '../../util/typing';\nimport Overlay from '../layout/Overlay';\nimport Dialog from './Dialog';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Show a modal dialog\n */\nexport default function ModalDialog({\n children,\n disableCloseOnEscape = false,\n disableFocusTrap = false,\n disableRestoreFocus = false,\n size = 'md',\n classes,\n elementRef,\n // Forwarded to Dialog\n closeOnClickAway = false,\n closeOnFocusAway = false,\n initialFocus = 'auto',\n ...htmlAndPanelAttributes\n}) {\n const modalRef = useSyncedRef(elementRef);\n useTabKeyNavigation(modalRef, {\n enabled: !disableFocusTrap\n });\n return _jsx(Overlay, {\n \"data-composite-component\": \"ModalDialog\",\n children: _jsx(Dialog\n // Attribute defaults; can be overridden\n , {\n \"aria-modal\": true,\n ...htmlAndPanelAttributes,\n // Dialog props\n closeOnClickAway: closeOnClickAway,\n closeOnFocusAway: closeOnFocusAway,\n closeOnEscape: !disableCloseOnEscape,\n initialFocus: initialFocus,\n restoreFocus: !disableRestoreFocus,\n classes: classnames(\n // Column-flex layout to constrain content to max-height\n 'flex flex-col', size !== 'custom' && 'max-w-[90vw] max-h-[90vh]',\n // Overlay sets up a flex layout centered on both axes. For taller\n // viewports, remove this modal container from the flex flow with\n // fixed positioning and position it 10vh from the top of the\n // viewport. This feels more balanced on taller screens. Ensure an\n // equal 10vh gap at the bottom of the screen by adjusting max-height\n // to `80vh`.\n size !== 'custom' && 'tall:fixed tall:max-h-[80vh] tall:top-[10vh]', {\n // Max-width rules will ensure actual width never exceeds 90vw\n 'w-[30rem]': size === 'sm',\n 'w-[36rem]': size === 'md',\n // default\n 'w-[42rem]': size === 'lg'\n // No width classes are added if `size` is 'custom'\n }, classes),\n elementRef: downcastRef(modalRef),\n \"data-modal-size\": size,\n children: children\n })\n });\n}\n//# sourceMappingURL=ModalDialog.js.map","import classnames from 'classnames';\nimport { cloneElement, toChildArray } from 'preact';\nimport { jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Render a wrapper element that constrains its first direct child to the\n * specified `ratio`.\n *\n * This component relies upon the old-fashioned \"bottom-padding hack\" to\n * constrain content until such a time as the browser support for `aspect-ratio`\n * is sufficient.\n *\n * In this model, proportional bottom padding is applied to a\n * relatively-positioned, full-width container, while the content element itself\n * is absolute-positioned with respect to the container.\n *\n * See https://www.smashingmagazine.com/2013/09/responsive-images-performance-problem-case-study/#the-padding-bottom-hack\n */\nexport default function AspectRatio({\n children,\n objectFit = 'cover',\n ratio = '16/9'\n}) {\n // Find the first vNode. This is the element that will be constrained to the\n // aspect ratio. Typically, this is either:\n // - a \"replaceable element\", e.g. image or video (media), or\n // - a block element, e.g. a div that contains placeholder content. In this\n // case, content within this node will be centered horizontally and\n // vertically.\n const childNodes = toChildArray(children);\n const firstChildNode = childNodes.find(child => typeof child === 'object');\n const otherChildren = firstChildNode ? childNodes.filter(child => child !== firstChildNode) : children;\n const mediaClasses = classnames(\n // Position the element box relative to its container\n 'absolute w-full h-full top-0 left-0',\n // Center any children horizontally and vertically\n 'flex items-center justify-center', {\n 'object-cover': objectFit === 'cover',\n // default\n 'object-contain': objectFit === 'contain',\n 'object-fill': objectFit === 'fill',\n 'object-scale-down': objectFit === 'scale-down',\n 'object-none': objectFit === 'none'\n });\n return _jsxs(\"div\", {\n className: \"w-full h-0 relative overflow-hidden\",\n \"data-component\": \"AspectRatio\",\n style: {\n paddingBottom: `calc(100% / (${ratio}))`\n },\n children: [firstChildNode && cloneElement(firstChildNode, {\n class: classnames(mediaClasses,\n // Retain existing classes\n firstChildNode.props.className)\n }), otherChildren]\n });\n}\n//# sourceMappingURL=AspectRatio.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Render a labeled checkbox or radio input. The input is styled with two icons:\n * one for the unchecked state and one for the checked state. The input itself\n * is positioned exactly on top of the icon, but is non-visible.\n */\nexport default function ToggleInput({\n children,\n elementRef,\n containerRef,\n checked,\n icon: UncheckedIcon,\n checkedIcon: CheckedIcon,\n disabled,\n onChange,\n id,\n type,\n containerClasses,\n ...htmlAttributes\n}) {\n const Icon = checked ? CheckedIcon : UncheckedIcon;\n return _jsxs(\"label\", {\n className: classnames('relative flex items-center gap-x-1.5', {\n 'cursor-pointer': !disabled,\n 'opacity-70': disabled\n }, containerClasses),\n htmlFor: id,\n \"data-composite-component\": type === 'checkbox' ? 'Checkbox' : 'RadioButton',\n ref: downcastRef(containerRef),\n children: [_jsx(\"input\", {\n ...htmlAttributes,\n type: type,\n ref: downcastRef(elementRef),\n className: classnames(\n // Set the special Tailwind peer class to allow sibling elements\n // to style themselves based on the state of this element\n 'peer',\n // Position this atop the icon and size it to the same dimensions\n 'absolute w-em h-em',\n // Make input visually hidden, but some screen readers won't read out\n // elements with 0 opacity\n 'opacity-[.00001]', {\n 'cursor-pointer': !disabled\n }),\n checked: checked,\n disabled: disabled,\n id: id,\n onChange: onChange\n }), _jsx(Icon, {\n className: classnames(\n // Add an outline ring to the icon when the input is focus-visible.\n // The ring needs to be applied here because the `input` has an\n // effectively-0 opacity.\n 'peer-focus-visible:ring',\n // Set preferred size of icon to match text.\n 'w-em h-em',\n // Set minimum size of icon to minimum size of SVG.\n 'min-w-min min-h-min')\n }), _jsx(\"span\", {\n children: children\n })]\n });\n}\n//# sourceMappingURL=ToggleInput.js.map","import { useState } from 'preact/hooks';\nimport { CheckboxCheckedFilledIcon, CheckboxIcon } from '../icons';\nimport ToggleInput from './ToggleInput';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a labeled checkbox input. The checkbox is styled with two icons:\n * one for the unchecked state and one for the checked state. The input itself\n * is positioned exactly on top of the icon, but is non-visible.\n */\nexport default function Checkbox({\n checked,\n defaultChecked = false,\n icon = CheckboxIcon,\n checkedIcon = CheckboxCheckedFilledIcon,\n onChange,\n ...rest\n}) {\n // If `checked` is present, treat this as a controlled component\n const isControlled = typeof checked === 'boolean';\n // Only use this local state if checkbox is uncontrolled\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked);\n const isChecked = isControlled ? checked : uncontrolledChecked;\n function handleChange(event) {\n onChange === null || onChange === void 0 || onChange.call(this, event);\n if (!isControlled) {\n setUncontrolledChecked(event.target.checked);\n }\n }\n return _jsx(ToggleInput, {\n icon: icon,\n checkedIcon: checkedIcon,\n type: \"checkbox\",\n checked: isChecked,\n onChange: handleChange,\n ...rest\n });\n}\n//# sourceMappingURL=Checkbox.js.map","import { useLayoutEffect } from 'preact/hooks';\n/**\n * Sync custom validation error messages to the browser's native validation\n * state.\n *\n * @param ref - An `HTMLInputElement` or other element that supports the\n * Constraint Validation API\n * @param error - The current error or undefined if the field input is valid\n */\nexport function useValidationError(ref, error) {\n // Sync errors to native form validation API. This will prevent submission\n // of the form until the error is resolved.\n useLayoutEffect(() => {\n var _ref$current;\n (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.setCustomValidity(error !== null && error !== void 0 ? error : '');\n }, [error, ref]);\n}\n//# sourceMappingURL=use-validation-error.js.map","import classnames from 'classnames';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { useValidationError } from '../../hooks/use-validation-error';\nimport { downcastRef } from '../../util/typing';\nimport { inputGroupStyles } from './InputGroup';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\nexport function inputStyles({\n classes,\n feedback\n}) {\n return classnames('focus-visible:ring focus-visible:outline-none ring-inset border rounded w-full p-2', 'bg-grey-0 focus:bg-white disabled:bg-grey-1', 'placeholder:text-grey-6 disabled:placeholder:text-grey-7',\n // On iOS, the input font size must be at least 16px to prevent the browser\n // from zooming into it on touch.\n 'touch:text-at-least-16px', {\n 'ring-2': !!feedback,\n 'ring-red-error': feedback === 'error',\n 'ring-yellow-notice': feedback === 'warning'\n },\n // Adapt styles when this component is inside an InputGroup\n inputGroupStyles, classes);\n}\n/**\n * Render a text field input\n */\nexport default function Input({\n elementRef,\n type = 'text',\n classes,\n error,\n feedback,\n ...htmlAttributes\n}) {\n if (!htmlAttributes.id && !htmlAttributes['aria-label']) {\n console.warn('`Input` component should have either an `id` or an `aria-label` attribute');\n }\n const inputRef = downcastRef(elementRef);\n const ref = useSyncedRef(inputRef);\n if (error) {\n feedback = 'error';\n }\n useValidationError(ref, error);\n return _jsx(\"input\", {\n \"data-component\": \"Input\",\n ...htmlAttributes,\n ref: ref,\n type: type,\n className: inputStyles({\n classes,\n feedback\n }),\n \"aria-invalid\": feedback === 'error'\n });\n}\n//# sourceMappingURL=Input.js.map","import classnames from 'classnames';\nimport { CheckIcon } from '../icons/';\nimport Button from './Button';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Render a button representing one of a set of options, with optional\n * right-aligned `details` content\n */\nexport default function OptionButton({\n children,\n details,\n selected = false,\n pressed,\n ...buttonProps\n}) {\n const isPressed = selected || pressed;\n return _jsxs(Button, {\n classes: classnames('group',\n // Facilitate styling children based on this element's state\n 'w-full gap-x-2 px-2 py-1', 'rounded border border-stone-300 bg-stone-50', 'enabled:hover:border-slate-5 enabled:hover:bg-slate-0', 'disabled:border-stone-200', 'aria-pressed:border-slate-5 aria-pressed:bg-slate-0 aria-pressed:shadow-inner', 'aria-expanded:border-slate-5 aria-expanded:bg-slate-0 aria-expanded:shadow-inner'),\n size: \"custom\",\n variant: \"custom\",\n pressed: isPressed,\n ...buttonProps,\n children: [_jsxs(\"div\", {\n className: \"grow flex items-center gap-x-1 text-start\",\n children: [isPressed && _jsx(\"div\", {\n className: \"rounded-full bg-slate-600 p-0.5\",\n children: _jsx(CheckIcon, {\n className: \"w-[0.6em] h-[0.6em] text-white\"\n })\n }), _jsx(\"div\", {\n className: \"text-slate-600 font-semibold group-disabled:text-stone-400\",\n \"data-testid\": \"option-button-label\",\n children: children\n })]\n }), _jsx(\"div\", {\n className: \"text-end\",\n children: details && _jsx(\"span\", {\n className: classnames('uppercase text-[0.8em] text-stone-500', 'group-enabled:group-hover:text-stone-600', 'group-disabled:text-stone-400', 'group-aria-pressed:text-slate-600 group-aria-expanded:text-slate-600'),\n \"data-testid\": \"option-button-details\",\n children: details\n })\n })]\n });\n}\n//# sourceMappingURL=OptionButton.js.map","import { createContext } from 'preact';\nconst RadioGroupContext = createContext(null);\nexport default RadioGroupContext;\n//# sourceMappingURL=RadioGroupContext.js.map","import classnames from 'classnames';\nimport { useContext, useRef } from 'preact/hooks';\nimport { useArrowKeyNavigation } from '../../hooks/use-arrow-key-navigation';\nimport { RadioCheckedIcon, RadioIcon } from '../icons';\nimport RadioGroupContext from './RadioGroupContext';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nfunction Radio({\n value,\n children,\n subtitle,\n disabled: radioDisabled\n}) {\n const radioGroupContext = useContext(RadioGroupContext);\n if (!radioGroupContext) {\n throw new Error('RadioGroup.Radio can only be used as RadioGroup child');\n }\n const {\n selected,\n disabled = radioDisabled,\n onChange\n } = radioGroupContext;\n const isSelected = !disabled && selected === value;\n return _jsxs(\"div\", {\n role: \"radio\",\n \"aria-checked\": isSelected,\n \"aria-disabled\": disabled,\n className: classnames('focus-visible:ring focus-visible:outline-none rounded-lg px-3 py-2 flex-1 group', {\n 'hover:bg-grey-3/25 aria-checked:bg-grey-3/50 cursor-pointer': !disabled,\n 'opacity-70': disabled\n }),\n \"data-value\": value,\n onClick: !disabled ? () => onChange(value) : undefined,\n onKeyDown: disabled ? undefined : e => {\n if (['Enter', ' '].includes(e.key)) {\n e.preventDefault();\n onChange(value);\n }\n },\n tabIndex: -1,\n children: [_jsxs(\"div\", {\n className: \"flex items-center gap-x-1.5\",\n children: [isSelected ? _jsx(RadioCheckedIcon, {}) : _jsx(RadioIcon, {}), _jsx(\"span\", {\n className: classnames('flex items-center gap-x-1.5', {\n 'text-grey-7 group-hover:text-grey-8 group-aria-checked:text-grey-8': !disabled\n }),\n children: children\n })]\n }), subtitle && _jsx(\"div\", {\n className: classnames('pl-4 ml-1.5 mt-1 text-sm', {\n 'text-grey-6 group-hover:text-grey-7 group-aria-checked:text-grey-7': !disabled\n }),\n children: subtitle\n })]\n });\n}\nRadio.displayName = 'RadioGroup.Radio';\nfunction RadioGroupMain({\n direction = 'horizontal',\n children,\n selected,\n onChange,\n disabled,\n 'aria-label': label,\n 'aria-labelledby': labelledBy,\n name\n}) {\n const containerRef = useRef(null);\n useArrowKeyNavigation(containerRef, {\n loop: false,\n selector: '[role=\"radio\"]:not([aria-disabled=\"true\"])',\n focusElement: el => {\n onChange(el.dataset.value);\n el.focus();\n }\n });\n return _jsxs(RadioGroupContext.Provider, {\n value: {\n selected,\n disabled,\n onChange: onChange\n },\n children: [_jsx(\"div\", {\n \"aria-label\": label,\n \"aria-labelledby\": labelledBy,\n ref: containerRef,\n role: \"radiogroup\",\n className: classnames('w-full flex gap-1.5', {\n 'flex-col': direction === 'vertical'\n }),\n children: children\n }), name && _jsx(\"input\", {\n type: \"hidden\",\n \"data-testid\": \"hidden-input\",\n name: name,\n value: selected,\n disabled: disabled\n })]\n });\n}\nconst RadioGroup = Object.assign(RadioGroupMain, {\n Radio,\n displayName: 'RadioGroup'\n});\nexport default RadioGroup;\n//# sourceMappingURL=RadioGroup.js.map","import classnames from 'classnames';\nimport { useCallback, useEffect, useLayoutEffect, useState } from 'preact/hooks';\nimport { useClickAway } from '../../hooks/use-click-away';\nimport { useKeyPress } from '../../hooks/use-key-press';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { ListenerCollection } from '../../util/listener-collection';\nimport { downcastRef } from '../../util/typing';\nimport { PointerDownIcon, PointerUpIcon } from '../icons';\n\n/** Small space in px, to apply between the anchor element and the popover */\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nconst POPOVER_ANCHOR_EL_GAP = 3;\n\n/**\n * Space in pixels to apply between the popover and the viewport sides to\n * prevent it from growing to the very edges.\n */\nexport const POPOVER_VIEWPORT_HORIZONTAL_GAP = 8;\n/**\n * Manages the popover position manually to make sure it renders \"next\" to the\n * anchor element (above or below). This is mainly needed when using the\n * popover API, as that makes it render in the top layer, making it impossible\n * to position it relative to the anchor element via regular CSS.\n */\nfunction usePopoverPositioning(popoverRef, anchorRef, {\n open,\n asNativePopover,\n alignToRight,\n placement,\n arrow\n}) {\n const [resolvedPlacement, setResolvedPlacement] = useState(placement);\n const adjustPopoverPositioning = useCallback(() => {\n const popoverEl = popoverRef.current;\n const anchorEl = anchorRef.current;\n\n /**\n * Set the positioning styles synchronously (not via <div style={computedStyles} />),\n * to make sure positioning happens before other side effects.\n * @return - A callback that undoes the property assignments\n */\n const setPopoverCSSProps = props => {\n Object.assign(popoverEl.style, props);\n const keys = Object.keys(props);\n return () => keys.map(prop => popoverEl.style[prop] = '');\n };\n const viewportHeight = window.innerHeight;\n const {\n top: anchorElDistanceToTop,\n bottom: anchorElBottom,\n left: anchorElLeft,\n height: anchorElHeight,\n width: anchorElWidth\n } = anchorEl.getBoundingClientRect();\n const anchorElDistanceToBottom = viewportHeight - anchorElBottom;\n const {\n height: popoverHeight,\n width: popoverWidth\n } = popoverEl.getBoundingClientRect();\n\n // The popover should render in indicated placement unless there's not\n // enough space to fit it there, but there is in the opposite one.\n const shouldBeAbove = placement === 'above' && (anchorElDistanceToTop > popoverHeight || anchorElDistanceToBottom < anchorElDistanceToTop) || placement === 'below' && anchorElDistanceToBottom < popoverHeight && anchorElDistanceToTop > anchorElDistanceToBottom;\n\n // Update the actual placement, which may not match provided one\n setResolvedPlacement(shouldBeAbove ? 'above' : 'below');\n const anchorGap = arrow ? POPOVER_ANCHOR_EL_GAP + 8 : POPOVER_ANCHOR_EL_GAP;\n if (!asNativePopover) {\n // Set styles for non-popover mode\n if (shouldBeAbove) {\n return setPopoverCSSProps({\n bottom: '100%',\n marginBottom: `${anchorGap}px`\n });\n }\n return setPopoverCSSProps({\n top: '100%',\n marginTop: `${anchorGap}px`\n });\n }\n const {\n top: bodyTop,\n width: bodyWidth\n } = document.body.getBoundingClientRect();\n const absBodyTop = Math.abs(bodyTop);\n\n // The available space is:\n // - left-aligned popovers: distance from left side of anchor element to\n // right side of viewport\n // - right-aligned popovers: distance from right side of anchor element to\n // left side of viewport\n const availableSpace = (alignToRight ? anchorElLeft + anchorElWidth : bodyWidth - anchorElLeft) - POPOVER_VIEWPORT_HORIZONTAL_GAP;\n let left = anchorElLeft;\n if (popoverWidth > availableSpace) {\n // If the popover is not going to fit the available space, let it \"grow\"\n // in the opposite direction\n left = alignToRight ? POPOVER_VIEWPORT_HORIZONTAL_GAP : left - (popoverWidth - availableSpace);\n } else if (alignToRight && popoverWidth > anchorElWidth) {\n // If a right-aligned popover fits the available space, but it's bigger\n // than the anchor element, move it to the left so that it is aligned with\n // the right side of the element\n left -= popoverWidth - anchorElWidth;\n }\n return setPopoverCSSProps({\n minWidth: `${anchorElWidth}px`,\n top: shouldBeAbove ? `${absBodyTop + anchorElDistanceToTop - popoverHeight - anchorGap}px` : `${absBodyTop + anchorElDistanceToTop + anchorElHeight + anchorGap}px`,\n left: `${Math.max(POPOVER_VIEWPORT_HORIZONTAL_GAP, left)}px`\n });\n }, [popoverRef, anchorRef, placement, arrow, asNativePopover, alignToRight]);\n useLayoutEffect(() => {\n if (!open) {\n return () => {};\n }\n\n // First of all, open popover if it's using the native API, otherwise its\n // size is 0x0 and positioning calculations won't work.\n const popover = popoverRef.current;\n if (asNativePopover) {\n popover.togglePopover(true);\n }\n const cleanup = adjustPopoverPositioning();\n if (!asNativePopover) {\n return cleanup;\n }\n\n // Readjust popover position when any element scrolls, just in case that\n // affected the anchor element position.\n const listeners = new ListenerCollection();\n listeners.add(document.body, 'scroll', adjustPopoverPositioning, {\n capture: true\n });\n\n // Readjust popover positioning if its resized, in case it dropped-up, and\n // it needs to be moved down\n const observer = new ResizeObserver(adjustPopoverPositioning);\n observer.observe(popover);\n return () => {\n if (asNativePopover) {\n popover === null || popover === void 0 || popover.togglePopover(false);\n }\n cleanup();\n listeners.removeAll();\n observer.disconnect();\n };\n }, [adjustPopoverPositioning, asNativePopover, open, popoverRef]);\n return resolvedPlacement;\n}\n\n/**\n * Add the right listeners to the popover so that `onClose` is called when\n * clicking away or pressing `Escape`.\n */\nfunction useOnClose(popoverRef, anchorElementRef, onClose, popoverOpen, asNativePopover) {\n // When the popover API is used, listen for the `toggle` event and call\n // onClose() when transitioning from `open` to `closed`.\n // This happens when clicking away or pressing `Escape` key.\n useEffect(() => {\n if (!asNativePopover) {\n return () => {};\n }\n const popover = popoverRef.current;\n const toggleListener = e => {\n if (e.oldState === 'open' && e.newState === 'closed') {\n onClose();\n }\n };\n popover.addEventListener('toggle', toggleListener);\n return () => popover.removeEventListener('toggle', toggleListener);\n }, [asNativePopover, onClose, popoverRef]);\n\n // When the popover API is not used, manually add listeners for Escape key\n // press and click away, to mimic the native popover behavior.\n // Disable these while the popover is closed, otherwise trying to open it\n // by interacting with some other element will trigger a click-away and\n // immediately close the popover after it opens..\n const enabled = popoverOpen && !asNativePopover;\n useClickAway(popoverRef, e => {\n // Ignore clicking \"away\" when the target is the anchor element.\n // In most cases, popovers will be anchored to a \"toggle\" which is\n // supposed to open/close the popover on click, so closing-on-click-away\n // when they are the target will cause the popover to close and\n // immediately open again.\n if (!e.composedPath().includes(anchorElementRef.current)) {\n onClose();\n }\n }, {\n enabled\n });\n useKeyPress(['Escape'], onClose, {\n enabled\n });\n}\n/**\n * Restore focus to the previously active element when a popover is closed.\n */\nfunction useRestoreFocusOnClose({\n popoverRef,\n open\n}) {\n useLayoutEffect(() => {\n const container = popoverRef.current;\n const restoreFocusTo = open ? document.activeElement : null;\n if (!container || !restoreFocusTo) {\n return () => {};\n }\n return () => {\n // When a popover is opened and then closed, there are several\n // possibilities for what happens to the focus:\n //\n // 1. The focus may be unchanged from before the popover was opened.\n //\n // 2. The focus may have moved into the popover when it was opened, and\n // then back to either the previously focused element or the body when\n // it was closed.\n //\n // When a native popover is closed via `togglePopover` or `hidePopover`,\n // focus will revert to the element that was focused at the time the\n // popover was shown. See https://html.spec.whatwg.org/multipage/popover.html#dom-hidepopover.\n //\n // 3. The user may have clicked an element outside the popover, focusing\n // that element and causing the popover to close.\n //\n // From the above cases, we only need to restore focus if it is still\n // inside the popover, or focus reverted to the document body.\n const currentFocus = document.activeElement;\n if (currentFocus && !container.contains(currentFocus) && currentFocus !== document.body) {\n return;\n }\n restoreFocusTo.focus();\n };\n }, [popoverRef, open]);\n}\nexport default function Popover({\n anchorElementRef,\n children,\n open,\n onClose,\n align = 'left',\n placement = 'below',\n arrow = false,\n classes,\n variant = 'panel',\n onScroll,\n elementRef,\n /* eslint-disable-next-line no-prototype-builtins */\n asNativePopover = HTMLElement.prototype.hasOwnProperty('popover')\n}) {\n const popoverRef = useSyncedRef(elementRef);\n const resolvedPlacement = usePopoverPositioning(popoverRef, anchorElementRef, {\n open,\n placement,\n arrow,\n alignToRight: align === 'right',\n asNativePopover\n });\n useOnClose(popoverRef, anchorElementRef, onClose, open, asNativePopover);\n useRestoreFocusOnClose({\n open,\n popoverRef: popoverRef\n });\n return _jsxs(\"div\", {\n className: classnames('absolute z-5', variant === 'panel' && ['max-h-80 ', 'rounded border bg-white shadow hover:shadow-md focus-within:shadow-md', !arrow && 'overflow-y-auto overflow-x-hidden'], arrow && 'overflow-visible', asNativePopover && [\n // We don't want the popover to ever render outside the viewport,\n // and we give it a 16px gap\n 'max-w-[calc(100%-16px)]',\n // Overwrite [popover] default styles\n 'p-0 m-0'], !asNativePopover && {\n // Hiding instead of unmounting so that popover size can be computed\n // to position it above or below\n hidden: !open,\n 'right-0': align === 'right',\n 'min-w-full': true\n }, classes),\n ref: downcastRef(popoverRef),\n popover: asNativePopover && 'auto',\n onScroll: onScroll,\n \"data-testid\": \"popover\",\n \"data-component\": \"Popover\",\n children: [open && arrow && _jsx(\"div\", {\n className: classnames('absolute z-10', 'fill-white text-grey-3', {\n 'top-full': resolvedPlacement === 'above',\n 'bottom-full': resolvedPlacement === 'below',\n 'left-2': align === 'left',\n 'right-2': align === 'right'\n }),\n \"data-testid\": \"arrow\",\n children: resolvedPlacement === 'below' ? _jsx(PointerUpIcon, {}) : _jsx(PointerDownIcon, {})\n }), open && children]\n });\n}\n//# sourceMappingURL=Popover.js.map","import { createContext } from 'preact';\nconst SelectContext = createContext(null);\nexport default SelectContext;\n//# sourceMappingURL=SelectContext.js.map","import classnames from 'classnames';\nimport { useCallback, useContext, useId, useMemo, useRef, useState } from 'preact/hooks';\nimport { useArrowKeyNavigation } from '../../hooks/use-arrow-key-navigation';\nimport { useFocusAway } from '../../hooks/use-focus-away';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { downcastRef } from '../../util/typing';\nimport Popover from '../feedback/Popover';\nimport { CheckboxCheckedFilledIcon, CheckIcon, MenuCollapseIcon, MenuExpandIcon } from '../icons';\nimport Checkbox from './Checkbox';\nimport { inputGroupStyles } from './InputGroup';\nimport SelectContext from './SelectContext';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nfunction optionChildren(children, status) {\n if (typeof children === 'function') {\n return children(status);\n }\n return children;\n}\nfunction SelectOption({\n value,\n children,\n disabled = false,\n classes,\n elementRef,\n title\n}) {\n const checkboxRef = useRef(null);\n const checkboxContainerRef = useRef(null);\n const optionRef = useSyncedRef(elementRef);\n const eventTriggeredInCheckbox = e => e.target === checkboxRef.current || e.target === checkboxContainerRef.current;\n const selectContext = useContext(SelectContext);\n if (!selectContext) {\n throw new Error('Select.Option can only be used as Select or MultiSelect child');\n }\n const {\n selectValue,\n value: currentValue,\n multiple\n } = selectContext;\n const selected = useMemo(() => {\n if (disabled) {\n return false;\n }\n if (!multiple) {\n return currentValue === value;\n }\n\n // In multi-select, the option should be marked as selected for values\n // which are explicitly part of the array, or for `undefined` values if the\n // array is empty\n return currentValue.includes(value) || currentValue.length === 0 && value === undefined;\n }, [currentValue, disabled, multiple, value]);\n const selectOneValue = useCallback(() => {\n const options = {\n closeListbox: true\n };\n if (!multiple) {\n selectValue(value, options);\n } else {\n selectValue(value !== undefined ? [value] : [], options);\n }\n }, [multiple, selectValue, value]);\n const toggleValue = useCallback(() => {\n /* istanbul ignore next - This will never be invoked in single-select, but TS doesn't know it */\n if (!multiple) {\n return;\n }\n const options = {\n // Close listbox only if selected value is a \"clear\" option. Clear options\n // are those with `undefined` value\n closeListbox: value === undefined\n };\n\n // In multi-select, clear selection for `undefined` values\n if (value === undefined) {\n selectValue([], options);\n return;\n }\n\n // In multi-select, toggle clicked items\n const index = currentValue.indexOf(value);\n if (index === -1) {\n selectValue([...currentValue, value], options);\n } else {\n const copy = [...currentValue];\n copy.splice(index, 1);\n selectValue(copy, options);\n }\n }, [currentValue, multiple, selectValue, value]);\n return _jsx(\"li\", {\n className: classnames('w-full ring-inset outline-none rounded-none select-none', 'px-1 mb-1 first:mt-1 whitespace-nowrap group', {\n 'text-grey-4': disabled,\n 'cursor-pointer': !disabled\n }, classes),\n onClick: e => {\n if (!disabled &&\n // Do not invoke callback if clicked element is the checkbox or its\n // container, as it has its own event handler.\n !eventTriggeredInCheckbox(e)) {\n selectOneValue();\n }\n },\n onKeyDown: e => {\n if (disabled) {\n return;\n }\n if (['Enter', ' '].includes(e.key) &&\n // Do not invoke callback if event triggered in the checkbox or its\n // container, as it has its own event handler.\n !eventTriggeredInCheckbox(e)) {\n e.preventDefault();\n selectOneValue();\n } else if (checkboxRef.current && e.key === 'ArrowRight') {\n e.preventDefault();\n checkboxRef.current.focus();\n }\n },\n role: \"option\",\n \"aria-disabled\": disabled,\n \"aria-selected\": selected\n // Set tabIndex to 0 for selected option, so that useArrowKeyNavigation\n // initially focuses it\n ,\n tabIndex: selected ? 0 : -1,\n ref: downcastRef(optionRef),\n title: title,\n children: _jsxs(\"div\", {\n className: classnames('flex justify-between items-center', 'w-full rounded', {\n 'hover:bg-grey-1 group-focus-visible:ring': !disabled,\n 'bg-grey-1 hover:bg-grey-2': selected\n }),\n children: [_jsx(\"div\", {\n className: classnames('py-2 pl-3', {\n truncate: selectContext.listboxOverflow === 'truncate',\n 'whitespace-normal': selectContext.listboxOverflow === 'wrap'\n }),\n children: optionChildren(children, {\n selected,\n disabled\n })\n }), !multiple && _jsx(\"div\", {\n className: \"px-3\",\n children: _jsx(CheckIcon, {\n className: classnames('text-grey-6 scale-125', {\n // Make the icon visible/invisible, instead of conditionally\n // rendering it, to ensure consistent spacing among selected and\n // non-selected options\n 'opacity-0': !selected\n })\n })\n }), multiple && _jsx(Checkbox, {\n containerClasses: classnames(\n // Make the checkbox stretch, so that its actionable surface spans\n // to the very edges of the option containing it.\n 'self-stretch px-3',\n // The checkbox is sized based on the container's font size. Make\n // it a bit larger.\n 'text-lg', {\n 'text-grey-6': selected,\n 'text-grey-3 hover:text-grey-6': !selected\n }),\n checked: selected,\n checkedIcon: CheckboxCheckedFilledIcon,\n elementRef: checkboxRef,\n containerRef: checkboxContainerRef,\n onChange: toggleValue,\n onKeyDown: e => {\n if (e.key === 'ArrowLeft') {\n var _optionRef$current;\n e.preventDefault();\n (_optionRef$current = optionRef.current) === null || _optionRef$current === void 0 || _optionRef$current.focus();\n }\n }\n })]\n })\n });\n}\nSelectOption.displayName = 'Select.Option';\nfunction SelectMain({\n buttonContent,\n value,\n onChange,\n children,\n disabled,\n elementRef,\n buttonId,\n buttonClasses,\n popoverClasses,\n containerClasses,\n onPopoverScroll,\n alignListbox = 'left',\n multiple,\n listboxOverflow = 'truncate',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n listboxAsPopover\n}) {\n const wrapperRef = useRef(null);\n const listboxRef = useRef(null);\n const [listboxOpen, setListboxOpen] = useState(false);\n const closeListbox = useCallback(() => setListboxOpen(false), [setListboxOpen]);\n const listboxId = useId();\n const buttonRef = useSyncedRef(elementRef);\n const defaultButtonId = useId();\n const selectValue = useCallback((value, options) => {\n onChange(value);\n if (options.closeListbox) {\n closeListbox();\n }\n }, [onChange, closeListbox]);\n\n // Close the listbox when focusing away\n useFocusAway(wrapperRef, closeListbox);\n\n // Vertical arrow key for options in the listbox\n useArrowKeyNavigation(listboxRef, {\n horizontal: false,\n loop: false,\n autofocus: true,\n containerVisible: listboxOpen,\n selector: '[role=\"option\"]:not([aria-disabled=\"true\"])'\n });\n return _jsxs(\"div\", {\n className: classnames('relative w-full border rounded', {\n 'border-grey-5': listboxOpen\n }, inputGroupStyles, containerClasses),\n ref: wrapperRef,\n children: [_jsxs(\"button\", {\n id: buttonId !== null && buttonId !== void 0 ? buttonId : defaultButtonId,\n className: classnames('focus-visible:ring focus-visible:outline-none transition-colors whitespace-nowrap', 'w-full flex items-center justify-between gap-x-2', 'bg-grey-0 disabled:bg-grey-1 disabled:text-grey-6',\n // Buttons are center-aligned by default. Overwrite it.\n 'text-left',\n // Add inherited rounded corners so that the toggle is consistent with\n // the wrapper, which is the element rendering borders.\n // Using overflow-hidden in the parent is not an option here, because\n // that would hide the listbox\n 'rounded-[inherit]', buttonClasses),\n type: \"button\",\n role: \"combobox\",\n disabled: disabled,\n \"aria-expanded\": listboxOpen,\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": listboxId,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ref: downcastRef(buttonRef),\n onClick: () => setListboxOpen(prev => !prev),\n onKeyDown: e => {\n if (e.key === 'ArrowDown' && !listboxOpen) {\n e.preventDefault();\n setListboxOpen(true);\n }\n },\n \"data-testid\": \"select-toggle-button\",\n children: [_jsx(\"div\", {\n className: \"pl-2 py-2 truncate grow\",\n children: buttonContent\n }), _jsx(\"div\", {\n className: \"pr-2 py-2 text-grey-6\",\n children: listboxOpen ? _jsx(MenuCollapseIcon, {}) : _jsx(MenuExpandIcon, {})\n })]\n }), _jsx(SelectContext.Provider, {\n value: {\n // Explicit type casting needed here\n value: value,\n selectValue,\n multiple,\n listboxOverflow\n },\n children: _jsx(Popover, {\n anchorElementRef: wrapperRef,\n open: listboxOpen,\n onClose: closeListbox,\n asNativePopover: listboxAsPopover,\n align: alignListbox,\n classes: popoverClasses,\n onScroll: onPopoverScroll,\n children: _jsx(\"ul\", {\n role: \"listbox\",\n id: listboxId,\n ref: listboxRef,\n \"aria-multiselectable\": multiple,\n \"aria-labelledby\": buttonId !== null && buttonId !== void 0 ? buttonId : defaultButtonId,\n \"aria-orientation\": \"vertical\",\n children: children\n })\n })\n })]\n });\n}\nexport const Select = Object.assign(\n// eslint-disable-next-line prefer-arrow-callback\nfunction (props) {\n // Calling the function directly instead of returning a JSX element, to\n // avoid an unnecessary extra layer in the component tree\n // eslint-disable-next-line new-cap\n return SelectMain({\n ...props,\n multiple: false\n });\n}, {\n Option: SelectOption,\n displayName: 'Select'\n});\nexport const MultiSelect = Object.assign(\n// eslint-disable-next-line prefer-arrow-callback\nfunction (props) {\n // Calling the function directly instead of returning a JSX element, to\n // avoid an unnecessary extra layer in the component tree\n // eslint-disable-next-line new-cap\n return SelectMain({\n ...props,\n multiple: true\n });\n}, {\n Option: SelectOption,\n displayName: 'MultiSelect'\n});\n//# sourceMappingURL=Select.js.map","import { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { useValidationError } from '../../hooks/use-validation-error';\nimport { downcastRef } from '../../util/typing';\nimport { inputStyles } from './Input';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a textarea\n */\nexport default function Textarea({\n elementRef,\n error,\n feedback,\n classes,\n ...htmlAttributes\n}) {\n if (!htmlAttributes.id && !htmlAttributes['aria-label']) {\n console.warn('`Textarea` component should have either an `id` or an `aria-label` attribute');\n }\n const textAreaRef = downcastRef(elementRef);\n const ref = useSyncedRef(textAreaRef);\n if (error) {\n feedback = 'error';\n }\n useValidationError(ref, error);\n return _jsx(\"textarea\", {\n \"data-component\": \"Textarea\",\n ...htmlAttributes,\n ref: ref,\n className: inputStyles({\n classes,\n feedback\n }),\n \"aria-invalid\": feedback === 'error'\n });\n}\n//# sourceMappingURL=Textarea.js.map","import { createContext } from 'preact';\nconst TableContext = createContext({});\nexport default TableContext;\n//# sourceMappingURL=TableContext.js.map","import classnames from 'classnames';\nimport { useMemo } from 'preact/hooks';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { downcastRef } from '../../util/typing';\nimport TableContext from './TableContext';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render table content\n */\nexport default function Table({\n children,\n classes,\n elementRef,\n title,\n interactive = false,\n stickyHeader = false,\n borderless = false,\n striped = true,\n grid = false,\n ...htmlAttributes\n}) {\n const ref = useSyncedRef(elementRef);\n const tableContext = useMemo(() => ({\n interactive,\n stickyHeader,\n borderless,\n striped,\n grid,\n tableRef: ref\n }), [interactive, stickyHeader, borderless, striped, grid, ref]);\n return _jsx(TableContext.Provider, {\n value: tableContext,\n children: _jsx(\"table\", {\n \"data-component\": \"Table\",\n ...htmlAttributes,\n \"aria-label\": title,\n className: classnames('w-full h-full', 'focus-visible:ring focus-visible:outline-none ring-inset',\n // Set the width of columns based on the width of the columns in the\n // first table row (typically headers)\n 'table-fixed',\n // `border-separate` is required to handle borders on sticky headers.\n // A side effect is that borders need to be set primarily on table\n // cells, not rows\n 'border-separate border-spacing-0',\n // No top border is set here: that border is set by `TableCell`.\n // If it is set here, there will be a 1-pixel wiggle in the sticky\n // header on scroll\n {\n 'border-x border-b': !borderless\n }, classes),\n ref: downcastRef(ref),\n children: children\n })\n });\n}\n//# sourceMappingURL=Table.js.map","import { createContext } from 'preact';\nconst TableSectionContext = createContext(null);\nexport default TableSectionContext;\n//# sourceMappingURL=TableSectionContext.js.map","import classnames from 'classnames';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { downcastRef } from '../../util/typing';\nimport TableContext from './TableContext';\nimport TableSectionContext from './TableSectionContext';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a table body\n */\nexport default function TableBody({\n children,\n classes,\n elementRef,\n ...htmlAttributes\n}) {\n const tableContext = useContext(TableContext);\n const sectionContext = useMemo(() => ({\n section: 'body'\n }), []);\n return _jsx(TableSectionContext.Provider, {\n value: sectionContext,\n children: _jsx(\"tbody\", {\n \"data-component\": \"TableBody\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames({\n 'cursor-pointer': tableContext === null || tableContext === void 0 ? void 0 : tableContext.interactive\n }, classes),\n children: children\n })\n });\n}\n//# sourceMappingURL=TableBody.js.map","import classnames from 'classnames';\nimport { useContext } from 'preact/hooks';\nimport { downcastRef } from '../../util/typing';\nimport TableContext from './TableContext';\nimport TableSectionContext from './TableSectionContext';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a single table cell\n */\nexport default function TableCell({\n children,\n classes,\n elementRef,\n unpadded = false,\n ...htmlAttributes\n}) {\n const sectionContext = useContext(TableSectionContext);\n const {\n borderless,\n grid\n } = useContext(TableContext);\n const isHeadCell = sectionContext && sectionContext.section === 'head';\n const Cell = isHeadCell ? 'th' : 'td';\n return _jsx(Cell, {\n \"data-component\": \"TableCell\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames({\n 'p-3': !unpadded,\n // Set horizontal borders here for table headers. This needs to be\n // done here (versus on the row or table) to prevent a 1-pixel wiggle\n // on scroll with sticky headers.\n 'text-left border-b border-b-grey-5': isHeadCell,\n 'border-t': isHeadCell && !borderless,\n 'border-none': !grid && !isHeadCell,\n // Apply a very subtle bottom border to the last row in the table (not\n // in the head). This can help delineate the end of data in tables\n // with sparse row data. Only apply border if row is not selected.\n // This uses Tailwind's nested-group syntax. See\n // https://tailwindcss.com/docs/hover-focus-and-other-states#differentiating-nested-groups\n 'group-last/unselected:border-b group-last/unselected:border-grey-2 group-last/unselected:border-dotted': !grid && !isHeadCell,\n // We would typically set `border` in cells together with\n // `border-collapse` in the parent table. However, that doesn't work\n // for sticky headers, so we mimic the behavior by conditionally\n // setting individual cell borders.\n 'group-[:not(:last-child)]:border-b': grid\n }, classes),\n scope: isHeadCell ? 'col' : undefined,\n \"data-grid\": grid,\n \"data-borderless\": borderless,\n children: children\n });\n}\n//# sourceMappingURL=TableCell.js.map","import classnames from 'classnames';\nimport { useMemo } from 'preact/hooks';\nimport { downcastRef } from '../../util/typing';\nimport TableSectionContext from './TableSectionContext';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a table footer section\n */\nexport default function TableFoot({\n children,\n classes,\n elementRef,\n ...htmlAttributes\n}) {\n const sectionContext = useMemo(() => ({\n section: 'foot'\n }), []);\n return _jsx(TableSectionContext.Provider, {\n value: sectionContext,\n children: _jsx(\"tfoot\", {\n \"data-component\": \"TableFoot\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames(\n // This tfoot element will take up available extra vertical space when\n // a Table has sparse data. This prevents <TableRow>s from stretching\n // vertically to fill extra space.\n 'h-full', classes),\n children: children\n })\n });\n}\n//# sourceMappingURL=TableFoot.js.map","import classnames from 'classnames';\nimport { useContext, useMemo } from 'preact/hooks';\nimport { downcastRef } from '../../util/typing';\nimport TableContext from './TableContext';\nimport TableSectionContext from './TableSectionContext';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a table head section\n */\nexport default function TableHead({\n children,\n classes,\n elementRef,\n ...htmlAttributes\n}) {\n const tableContext = useContext(TableContext);\n const sectionContext = useMemo(() => ({\n section: 'head'\n }), []);\n return _jsx(TableSectionContext.Provider, {\n value: sectionContext,\n children: _jsx(\"thead\", {\n \"data-component\": \"TableHead\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames(\n // This ensures the header is drawn on top of positioned content\n // in table cells.\n 'z-1', 'bg-grey-2', {\n 'sticky top-0': tableContext === null || tableContext === void 0 ? void 0 : tableContext.stickyHeader\n }, classes),\n children: children\n })\n });\n}\n//# sourceMappingURL=TableHead.js.map","import classnames from 'classnames';\nimport { useContext } from 'preact/hooks';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { downcastRef } from '../../util/typing';\nimport TableContext from './TableContext';\nimport TableSectionContext from './TableSectionContext';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a table row\n */\nexport default function TableRow({\n children,\n classes,\n elementRef,\n selected,\n ...htmlAttributes\n}) {\n const rowRef = useSyncedRef(elementRef);\n const sectionContext = useContext(TableSectionContext);\n const {\n interactive,\n striped,\n grid\n } = useContext(TableContext);\n const isHeadRow = (sectionContext === null || sectionContext === void 0 ? void 0 : sectionContext.section) === 'head';\n return _jsx(\"tr\", {\n \"data-component\": \"TableRow\",\n ...htmlAttributes,\n \"aria-selected\": selected,\n ref: downcastRef(rowRef),\n className: classnames('group', 'focus-visible:ring focus-visible:outline-none ring-inset', {\n // Low-opacity backgrounds allow any scroll shadows to be visible\n 'odd:bg-slate-9/[.03]': striped && !isHeadRow && !selected,\n 'bg-slate-7 text-color-text-inverted': selected,\n 'hover:bg-slate-9/[.08]': interactive && !selected,\n 'group/unselected': !selected,\n 'group/selected': selected,\n // We would typically set `border` in cells together with\n // `border-collapse` in the parent table. However, that doesn't work\n // for sticky headers, so we mimic the behavior by conditionally\n // setting individual cell borders.\n 'divide-x': grid\n }, classes),\n \"data-section\": isHeadRow ? 'head' : 'body',\n \"data-striped\": striped,\n \"data-grid\": grid,\n children: children\n });\n}\n//# sourceMappingURL=TableRow.js.map","import classnames from 'classnames';\nimport { useCallback, useContext, useEffect, useMemo } from 'preact/hooks';\nimport { useArrowKeyNavigation } from '../../hooks/use-arrow-key-navigation';\nimport { useStableCallback } from '../../hooks/use-stable-callback';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { downcastRef } from '../../util/typing';\nimport { ArrowDownIcon, ArrowUpIcon, OrderableIcon, SpinnerSpokesIcon } from '../icons';\nimport { Button } from '../input';\nimport ScrollContext from './ScrollContext';\nimport Table from './Table';\nimport TableBody from './TableBody';\nimport TableCell from './TableCell';\nimport TableFoot from './TableFoot';\nimport TableHead from './TableHead';\nimport TableRow from './TableRow';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nfunction defaultRenderItem(r, field) {\n return r[field];\n}\nfunction calculateNewOrder(newField, prevOrder, initialOrderForColumn) {\n if (newField !== (prevOrder === null || prevOrder === void 0 ? void 0 : prevOrder.field)) {\n var _initialOrderForColum;\n return {\n field: newField,\n direction: (_initialOrderForColum = initialOrderForColumn === null || initialOrderForColumn === void 0 ? void 0 : initialOrderForColumn[newField]) !== null && _initialOrderForColum !== void 0 ? _initialOrderForColum : 'ascending'\n };\n }\n const newDirection = prevOrder.direction === 'ascending' ? 'descending' : 'ascending';\n return {\n field: newField,\n direction: newDirection\n };\n}\nfunction HeaderComponent({\n children,\n onClick,\n field\n}) {\n const commonClasses = 'flex justify-between items-center';\n return onClick ? _jsx(Button, {\n classes: `${commonClasses} w-full h-full !p-3`,\n variant: \"custom\",\n onClick: onClick,\n \"data-testid\": `${field}-order-button`,\n children: children\n }) : _jsx(\"div\", {\n className: commonClasses,\n children: children\n });\n}\n\n/**\n * An interactive table of rows and columns with a sticky header.\n */\nexport default function DataTable({\n children,\n elementRef,\n columns = [],\n rows = [],\n selectedRow,\n selectedRows,\n loading = false,\n renderItem = defaultRenderItem,\n onSelectRow,\n onSelectRows,\n onConfirmRow,\n emptyMessage,\n order,\n onOrderChange,\n orderableColumns = [],\n // Forwarded to Table\n title,\n borderless,\n striped,\n grid,\n ...htmlAttributes\n}) {\n const tableRef = useSyncedRef(elementRef);\n const scrollContext = useContext(ScrollContext);\n const [orderableColumnsList, initialOrderForColumn] = useMemo(() => Array.isArray(orderableColumns) ? [orderableColumns, {}] : [Object.keys(orderableColumns), orderableColumns], [orderableColumns]);\n const updateOrder = useCallback(newField => {\n const newOrder = calculateNewOrder(newField, order, initialOrderForColumn);\n onOrderChange === null || onOrderChange === void 0 || onOrderChange(newOrder);\n }, [initialOrderForColumn, onOrderChange, order]);\n const noContent = loading || !rows.length && emptyMessage;\n const fields = useMemo(() => columns.map(column => column.field), [columns]);\n const selectRow = useStableCallback((row, mode = 'replace') => {\n onSelectRow === null || onSelectRow === void 0 || onSelectRow(row);\n\n // If multi-selection is enabled, and the user shift+clicked the new row,\n // extend the selection from the \"anchor\" row (first entry in `selectedRows`)\n // to the just-clicked row.\n let newSelection = [row];\n if (mode === 'extend' && selectedRows && selectedRows.length > 0) {\n const startIdx = rows.indexOf(selectedRows[0]);\n const endIdx = rows.indexOf(row);\n if (endIdx >= startIdx) {\n newSelection = rows.slice(startIdx, endIdx + 1);\n } else {\n // We reverse the selection here so that `startIdx` remains the first\n // entry in the list, and is used as the 'anchor' row for future\n // selections.\n newSelection = rows.slice(endIdx, startIdx + 1).reverse();\n }\n }\n onSelectRows === null || onSelectRows === void 0 || onSelectRows(newSelection);\n });\n useArrowKeyNavigation(tableRef, {\n selector: 'tbody tr',\n horizontal: true,\n vertical: true,\n focusElement: (element, keyEvent) => {\n // Simulate a click to update the selected row when arrow-key navigation\n // happens. We do this instead of using an `onFocus` handler on the row\n // itself because we need to know if the shift key was pressed, and\n // `FocusEvent` doesn't provide that information.\n if (keyEvent) {\n element.dispatchEvent(new MouseEvent('click', {\n // Propagate shift key state so arrow key + shift can be used to\n // create a multi-selection.\n shiftKey: keyEvent.shiftKey\n }));\n }\n\n // Scroll selected row into view.\n element.focus();\n }\n });\n const confirmRow = useStableCallback(row => {\n onConfirmRow === null || onConfirmRow === void 0 || onConfirmRow(row);\n });\n const handleKeyDown = useCallback((event, row) => {\n // Avoid preventing Enter key interactions in children elements by\n // ignoring events not triggered by the row element itself\n if (event.key === 'Enter' && event.target === event.currentTarget) {\n confirmRow(row);\n event.preventDefault();\n event.stopPropagation();\n }\n }, [confirmRow]);\n\n // Ensure that a selected row is visible when this table is within\n // a scrolling context\n useEffect(() => {\n var _tableRef$current, _tableRef$current2;\n if (!selectedRow || !scrollContext) {\n return;\n }\n const scrollEl = scrollContext.scrollRef.current;\n const tableHead = (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.querySelector('thead');\n const selectedRowEl = (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 ? void 0 : _tableRef$current2.querySelector('tr[aria-selected=\"true\"]');\n if (scrollEl && selectedRowEl) {\n // Ensure the row is visible within the scroll content area\n const scrollOffset = selectedRowEl.offsetTop - scrollEl.scrollTop;\n if (scrollOffset > scrollEl.clientHeight) {\n selectedRowEl.scrollIntoView();\n }\n // Ensure the row is not obscured by a sticky header\n if (tableHead) {\n const headingHeight = tableHead.clientHeight;\n const headingOffset = scrollOffset - headingHeight;\n if (headingOffset < 0) {\n scrollEl.scrollBy(0, headingOffset);\n }\n }\n }\n }, [selectedRow, tableRef, scrollContext]);\n\n // Render a <tfoot> element when there are any row data. This absorbs any\n // excess vertical space in tables with sparse rows data.\n const withFoot = !loading && rows.length > 0;\n const selection = useMemo(() => {\n if (selectedRows) {\n return selectedRows;\n } else if (selectedRow) {\n return [selectedRow];\n } else {\n return [];\n }\n }, [selectedRows, selectedRow]);\n const tableRows = useMemo(() => {\n return rows.map((row, idx) => _jsx(TableRow, {\n selected: selection.includes(row),\n onClick: e => selectRow(row, e.shiftKey ? 'extend' : 'replace'),\n onDblClick: () => confirmRow(row),\n onKeyDown: event => handleKeyDown(event, row),\n children: fields.map(field => _jsx(TableCell, {\n children: renderItem(row, field)\n }, field))\n }, idx));\n }, [confirmRow, fields, renderItem, handleKeyDown, rows, selectRow, selection]);\n const interactive = Boolean(onSelectRow || onSelectRows || onConfirmRow);\n return _jsxs(Table, {\n \"data-composite-component\": \"DataTable\",\n role: \"grid\",\n ...htmlAttributes,\n elementRef: downcastRef(tableRef),\n interactive: interactive,\n stickyHeader: true,\n title: title,\n borderless: borderless,\n striped: striped,\n grid: grid,\n children: [_jsx(TableHead, {\n children: _jsx(TableRow, {\n children: columns.map(column => {\n const isOrderable = !!onOrderChange && orderableColumnsList.includes(column.field);\n const isActiveOrder = (order === null || order === void 0 ? void 0 : order.field) === column.field;\n return _jsx(TableCell, {\n classes: column.classes,\n unpadded: isOrderable,\n \"aria-sort\": isActiveOrder ? order.direction : undefined,\n children: _jsxs(HeaderComponent, {\n field: column.field.toString(),\n onClick: isOrderable ? () => updateOrder(column.field) : undefined,\n children: [_jsx(\"div\", {\n children: column.label\n }), isOrderable && _jsxs(\"div\", {\n className: classnames('rounded p-1', {\n 'bg-white': isActiveOrder\n }),\n \"aria-hidden\": true,\n children: [isActiveOrder && (order.direction === 'ascending' ? _jsx(ArrowUpIcon, {}) : _jsx(ArrowDownIcon, {})), !isActiveOrder && _jsx(OrderableIcon, {\n className: classnames('text-grey-5', {\n // Interactive rows set a darker background color on\n // hover.\n // Setting a darker color on the icon when hovering\n // the row will ensure enough contrast.\n 'group-hover:text-grey-7': interactive\n })\n })]\n })]\n })\n }, column.field);\n })\n })\n }), _jsxs(TableBody, {\n children: [!loading && tableRows, noContent && _jsx(TableRow, {\n children: _jsx(TableCell, {\n colSpan: columns.length,\n classes: \"text-center p-3\",\n children: loading ? _jsx(SpinnerSpokesIcon, {\n className: \"inline w-2em h-2em\"\n }) : _jsx(_Fragment, {\n children: emptyMessage\n })\n })\n })]\n }), children, withFoot && _jsx(TableFoot, {})]\n });\n}\n//# sourceMappingURL=DataTable.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Constrain children (which may include both scrollable and non-scrolling\n * content) to the dimensions of the immediate parent.\n */\nexport default function ScrollContainer({\n children,\n classes,\n elementRef,\n borderless = false,\n rounded = false,\n ...htmlAttributes\n}) {\n return _jsx(\"div\", {\n \"data-component\": \"ScrollContainer\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames('flex flex-col h-full w-full',\n // Prevent overflow by overriding `min-height: auto`.\n // See https://stackoverflow.com/a/66689926/434243.\n 'min-h-0', {\n border: !borderless,\n 'rounded-lg overflow-hidden': rounded\n }, classes),\n children: children\n });\n}\n//# sourceMappingURL=ScrollContainer.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Apply consistent padding and spacing to content within a Scroll\n */\nexport default function ScrollContent({\n children,\n classes,\n elementRef,\n ...htmlAttributes\n}) {\n return _jsx(\"div\", {\n \"data-component\": \"ScrollContent\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames('px-3 py-2', classes),\n children: children\n });\n}\n//# sourceMappingURL=ScrollContent.js.map","import Scroll from './Scroll';\nimport ScrollContainer from './ScrollContainer';\nimport ScrollContent from './ScrollContent';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render an opinionated composition of Scroll components, making `children`\n * scrollable.\n */\nexport default function ScrollBox({\n children,\n elementRef,\n borderless = false,\n rounded = false,\n ...htmlAttributes\n}) {\n return _jsx(ScrollContainer, {\n \"data-composite-component\": \"ScrollBox\",\n ...htmlAttributes,\n borderless: borderless,\n rounded: rounded,\n elementRef: elementRef,\n children: _jsx(Scroll, {\n children: _jsx(ScrollContent, {\n children: children\n })\n })\n });\n}\n//# sourceMappingURL=ScrollBox.js.map","import classnames from 'classnames';\nimport { SpinnerSpokesIcon } from '../icons';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Style a spinner icon.\n */\nexport default function Spinner({\n size = 'sm',\n color = 'text-light'\n}) {\n return _jsx(SpinnerSpokesIcon, {\n className: classnames({\n 'text-color-text-light': color === 'text-light',\n // default\n 'text-color-text': color === 'text',\n 'text-color-text-inverted': color === 'text-inverted'\n }, {\n 'w-em h-em': size === 'sm',\n // default\n 'w-2em h-2em': size === 'md',\n 'w-4em h-4em': size === 'lg'\n }),\n \"data-component\": \"Spinner\"\n });\n}\n//# sourceMappingURL=Spinner.js.map","import classnames from 'classnames';\nimport { toChildArray } from 'preact';\nimport { downcastRef } from '../../util/typing';\nimport Spinner from '../feedback/Spinner';\nimport { EllipsisIcon } from '../icons';\nimport AspectRatio from './AspectRatio';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render embedded media (e.g. image), handling aspect ratio, loading state and\n * placeholder content.\n */\nexport default function Thumbnail({\n children,\n elementRef,\n borderless = false,\n loading = false,\n objectFit = 'cover',\n placeholder,\n ratio = '16/9',\n size = 'md',\n ...htmlAttributes\n}) {\n const emptyContent = placeholder !== null && placeholder !== void 0 ? placeholder : _jsx(EllipsisIcon, {\n className: classnames('text-grey-5', {\n 'w-4 h-4': size === 'sm' || size === 'md',\n // default (md)\n 'w-8 h-8': size === 'lg'\n })\n });\n // If there are no `children`, render a placeholder (unless loading)\n const content = toChildArray(children).length ? children : _jsx(\"div\", {\n children: emptyContent\n });\n return _jsx(\"div\", {\n \"data-composite-component\": \"Thumbnail\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames('bg-grey-1 w-full h-full overflow-hidden', {\n 'p-3': size === 'md' && !borderless,\n // default\n 'p-2': size === 'sm' && !borderless,\n 'p-4': size === 'lg' && !borderless,\n 'p-0': borderless\n }),\n children: _jsx(\"div\", {\n className: \"bg-white h-full w-full flex items-center justify-center overflow-hidden\",\n children: _jsx(AspectRatio, {\n ratio: ratio,\n objectFit: objectFit,\n children: loading ? _jsx(\"div\", {\n children: _jsx(Spinner, {\n size: size\n })\n }) : content\n })\n })\n });\n}\n//# sourceMappingURL=Thumbnail.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { CautionIcon, CheckIcon, CancelIcon } from '../icons';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Render a banner-like alert message with corresponding icon and coloring\n */\nexport default function Callout({\n children,\n classes,\n elementRef,\n icon: Icon,\n status = 'notice',\n size = 'md',\n variant = 'outlined',\n unstyled = false,\n ...htmlAttributes\n}) {\n const styled = !unstyled;\n const themed = styled && variant !== 'custom';\n const sized = styled && size !== 'custom';\n let StatusIcon = Icon;\n if (!StatusIcon) {\n switch (status) {\n case 'success':\n StatusIcon = CheckIcon;\n break;\n case 'error':\n StatusIcon = CancelIcon;\n break;\n default:\n StatusIcon = CautionIcon;\n break;\n }\n }\n\n // Only render an icon if no custom styling API props have been set.\n const withIcon = themed && sized;\n return _jsxs(\"div\", {\n \"data-component\": \"Callout\",\n ...htmlAttributes,\n ref: downcastRef(elementRef),\n className: classnames(styled && 'flex items-center border', themed && {\n 'rounded border': true,\n 'shadow hover:shadow-md cursor-pointer': variant === 'raised',\n 'border-yellow-notice': status === 'notice',\n 'border-green-success': status === 'success',\n 'border-red-error': status === 'error'\n },\n // Set background color, but only if rendering an icon\n themed && {\n 'bg-yellow-notice': status === 'notice' && withIcon,\n 'bg-green-success': status === 'success' && withIcon,\n 'bg-red-error': status === 'error' && withIcon,\n 'bg-white': !withIcon\n }, classes),\n children: [withIcon && _jsx(\"div\", {\n className: classnames({\n 'p-2': size === 'md',\n 'p-1.5': size === 'sm',\n 'p-3': size === 'lg'\n }),\n children: _jsx(StatusIcon, {\n \"data-testid\": \"callout-icon\",\n className: classnames('text-white', {\n 'w-[1.25em] h-[1.25em]': size === 'md',\n // default\n 'w-[0.85em] h-[0.85em]': size === 'sm',\n 'w-[1.5em] h-[1.5em]': size === 'lg'\n })\n })\n }), _jsx(\"div\", {\n className: classnames(sized && {\n 'p-2': size === 'md',\n // default\n 'py-1.5 px-2': size === 'sm',\n 'p-3': size === 'lg'\n }, styled && 'grow', themed && 'bg-white rounded-r'),\n children: children\n })]\n });\n}\n//# sourceMappingURL=Callout.js.map","import Overlay from '../layout/Overlay';\nimport Spinner from './Spinner';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a full-screen spinner atop a light-colored overlay\n */\nexport default function SpinnerOverlay({\n ...htmlAttributes\n}) {\n return _jsx(Overlay, {\n \"data-composite-component\": \"SpinnerOverlay\",\n ...htmlAttributes,\n variant: \"light\",\n children: _jsx(Spinner, {\n size: \"lg\"\n })\n });\n}\n//# sourceMappingURL=SpinnerOverlay.js.map","import classnames from 'classnames';\nimport { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport Callout from './Callout';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * An individual toast message: a brief and transient success or error message.\n * The message may be dismissed by clicking on it. `visuallyHidden` toast\n * messages will not be visible but are still available to screen readers.\n */\nfunction ToastMessageItem({\n message,\n onDismiss\n}) {\n return _jsx(Callout, {\n classes: classnames({\n 'sr-only': message.visuallyHidden\n }),\n status: message.type,\n onClick: () => onDismiss(message.id),\n variant: \"raised\",\n children: message.message\n });\n}\nconst ToastMessageTransition = ({\n direction,\n onTransitionEnd,\n children,\n transitionClasses = {}\n}) => {\n const isDismissed = direction === 'out';\n const containerRef = useRef(null);\n const handleAnimation = e => {\n // Ignore animations happening on child elements\n if (e.target !== containerRef.current) {\n return;\n }\n onTransitionEnd === null || onTransitionEnd === void 0 || onTransitionEnd(direction !== null && direction !== void 0 ? direction : 'in');\n };\n const classes = useMemo(() => {\n const {\n transitionIn = 'animate-fade-in',\n transitionOut = 'animate-fade-out'\n } = transitionClasses;\n return {\n [transitionIn]: !isDismissed,\n [transitionOut]: isDismissed\n };\n }, [isDismissed, transitionClasses]);\n return _jsx(\"div\", {\n \"data-testid\": \"animation-container\",\n onAnimationEnd: handleAnimation,\n ref: containerRef,\n className: classnames('relative w-full container', classes),\n children: children\n });\n};\n/**\n * A collection of toast messages. These are rendered within an `aria-live`\n * region for accessibility with screen readers.\n */\nexport default function ToastMessages({\n messages,\n onMessageDismiss,\n transitionClasses,\n /* istanbul ignore next - test seam */\n setTimeout_ = setTimeout\n}) {\n // List of IDs of toast messages that have been dismissed and have an\n // in-progress 'out' transition\n const [dismissedMessages, setDismissedMessages] = useState([]);\n // Tracks not finished timeouts for auto-dismiss toast messages\n const messageSchedules = useRef(new Map());\n const dismissMessage = useCallback(id => setDismissedMessages(ids => [...ids, id]), []);\n const scheduleMessageDismiss = useCallback(id => {\n const timeout = setTimeout_(() => {\n dismissMessage(id);\n messageSchedules.current.delete(id);\n }, 5000);\n messageSchedules.current.set(id, timeout);\n }, [dismissMessage, setTimeout_]);\n const onTransitionEnd = useCallback((direction, message) => {\n var _message$autoDismiss;\n const autoDismiss = (_message$autoDismiss = message.autoDismiss) !== null && _message$autoDismiss !== void 0 ? _message$autoDismiss : true;\n if (direction === 'in' && autoDismiss) {\n scheduleMessageDismiss(message.id);\n }\n if (direction === 'out') {\n onMessageDismiss(message.id);\n setDismissedMessages(ids => ids.filter(id => id !== message.id));\n }\n }, [scheduleMessageDismiss, onMessageDismiss]);\n useLayoutEffect(() => {\n // Clear all pending timeouts for not yet dismissed toast messages when the\n // component is unmounted\n const pendingTimeouts = messageSchedules.current;\n return () => {\n pendingTimeouts.forEach(timeout => clearTimeout(timeout));\n };\n }, []);\n return _jsx(\"ul\", {\n \"aria-live\": \"polite\",\n \"aria-relevant\": \"additions\",\n className: \"w-full space-y-2\",\n \"data-component\": \"ToastMessages\",\n children: messages.map(message => {\n const isDismissed = dismissedMessages.includes(message.id);\n return _jsx(\"li\", {\n className: classnames({\n // Add a bottom margin to visible messages only. Typically, we'd\n // use a `space-y-2` class on the parent to space children.\n // Doing that here could cause an undesired top margin on\n // the first visible message in a list that contains (only)\n // visually-hidden messages before it.\n // See https://tailwindcss.com/docs/space#limitations\n 'mb-2': !message.visuallyHidden\n }),\n children: _jsx(ToastMessageTransition, {\n direction: isDismissed ? 'out' : 'in',\n onTransitionEnd: direction => onTransitionEnd(direction, message),\n transitionClasses: transitionClasses,\n children: _jsx(ToastMessageItem, {\n message: message,\n onDismiss: dismissMessage\n })\n })\n }, message.id);\n })\n });\n}\n//# sourceMappingURL=ToastMessages.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Styled component for a link (`<a>` element).\n */\nexport default function Link({\n children,\n classes,\n elementRef,\n underline = 'none',\n unstyled = false,\n variant = 'brand',\n ...htmlAttributes\n}) {\n const styled = !unstyled;\n const themed = styled && variant !== 'custom';\n return _jsx(\"a\", {\n \"data-component\": \"Link\",\n rel: \"noopener noreferrer\",\n ...htmlAttributes,\n className: classnames(styled && {\n 'focus-visible:ring focus-visible:outline-none rounded': true,\n // underline\n // TODO: Underline should be controlled by `variant` and should default\n // to `always`\n 'no-underline hover:no-underline': underline === 'none',\n // default\n 'underline hover:underline': underline === 'always',\n 'no-underline hover:underline': underline === 'hover'\n }, themed && {\n // color\n 'text-brand hover:text-brand-dark': variant === 'brand',\n // default\n 'text-color-text-light hover:text-brand': variant === 'text-light',\n 'text-color-text hover:text-brand-dark': variant === 'text'\n }, classes),\n ref: downcastRef(elementRef),\n children: children\n });\n}\n//# sourceMappingURL=Link.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport Button from '../input/Button';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Style a button as a link\n */\nexport default function LinkButton({\n children,\n classes,\n elementRef,\n inline = false,\n underline = 'none',\n variant = 'brand',\n unstyled = false,\n ...htmlAttributes\n}) {\n const styled = !unstyled;\n const themed = styled && variant !== 'custom';\n return _jsx(Button, {\n \"data-component\": \"LinkButton\",\n ...htmlAttributes,\n elementRef: downcastRef(elementRef),\n classes: classnames(styled && {\n 'focus-visible:ring focus-visible:outline-none transition-colors whitespace-nowrap rounded': true,\n inline: inline,\n 'flex items-center': !inline\n }, styled && {\n // underline\n 'no-underline hover:no-underline': underline === 'none',\n // default\n 'underline enabled:hover:underline': underline === 'always',\n 'no-underline enabled:hover:underline': underline === 'hover'\n }, themed && {\n 'aria-pressed:font-semibold aria-expanded:font-semibold': true,\n 'text-brand enabled:hover:text-brand-dark': variant === 'brand',\n // default\n 'text-color-text enabled:hover:text-brand-dark': variant === 'text',\n 'text-color-text-light enabled:hover:text-brand': variant === 'text-light'\n }, classes),\n unstyled: true,\n children: children\n });\n}\n//# sourceMappingURL=LinkButton.js.map","import classnames from 'classnames';\nimport { paginationItems } from '../../util/pagination';\nimport { ArrowLeftIcon, ArrowRightIcon } from '../icons';\nimport Button from '../input/Button';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nfunction NavigationButton({\n children,\n invisible = false,\n pressed = false,\n onClick,\n title\n}) {\n return _jsx(Button, {\n classes: classnames('px-3.5 py-2.5 gap-x-1', 'font-semibold rounded',\n // These colors are the same as the \"dark\" variant of IconButton\n 'text-grey-7 enabled:hover:text-grey-9 enabled:hover:bg-grey-3', 'disabled:text-grey-5 aria-pressed:bg-grey-3 aria-expanded:bg-grey-3',\n // Disabled navigation buttons are rendered as invisible and disabled\n // rather than removed so that the overall width of the component and\n // positions of child controls doesn't change too much when navigating\n // between pages.\n invisible && 'invisible'),\n disabled: invisible,\n onClick: onClick,\n pressed: pressed,\n size: \"custom\",\n title: title,\n variant: \"custom\",\n children: children\n });\n}\n/**\n * Render controls for navigating between pages in a paginated list of items.\n *\n * Buttons corresponding to nearby pages are shown on wider screens; for narrow\n * screens only Prev and Next buttons are shown.\n */\nexport default function Pagination({\n currentPage,\n onChangePage,\n totalPages\n}) {\n // Pages are 1-indexed\n const hasNextPage = currentPage < totalPages;\n const hasPreviousPage = currentPage > 1;\n const pageNumbers = paginationItems(currentPage, totalPages);\n const changePageTo = (pageNumber, element) => {\n onChangePage(pageNumber);\n // Because changing pagination page doesn't reload the page (as it would\n // in a \"traditional\" HTML context), the clicked-upon navigation button\n // will awkwardly retain focus unless it is actively removed.\n // TODO: Evaluate this for a11y issues\n element.blur();\n };\n return _jsxs(\"div\", {\n className: \"flex items-center text-md select-none\",\n \"data-testid\": \"pagination-navigation\",\n children: [_jsx(\"div\", {\n className: \"mr-2\",\n children: _jsxs(NavigationButton, {\n invisible: !hasPreviousPage,\n title: \"Go to previous page\",\n onClick: e => changePageTo(currentPage - 1, e.target),\n children: [_jsx(ArrowLeftIcon, {}), \"prev\"]\n })\n }), _jsx(\"ul\", {\n className: classnames(\n // Where there's enough horizontal space,\n // lay out page navigation buttons horizontally between prev/next:\n // | prevPage | numberedPages | nextPage\n //\n // e.g.\n // | [<- prev] | [2] ... [5] [6] [7] ... [10] | [next ->] |\n //\n // These page buttons are hidden on narrow screens\n 'hidden',\n // For slightly wider screens, they are shown in a horizontal row\n 'md:flex md:items-center md:justify-center md:gap-x-2',\n // when visible, this element should stretch to fill available space\n 'md:grow'),\n children: pageNumbers.map((page, idx) => _jsx(\"li\", {\n children: page === null ?\n // Indicator for elided pages. Should be approximately the same\n // width as a small page number. This reduces the variation of\n // the component's width as the current page is advanced.\n //\n // Navigation buttons have `px-3.5`. This uses `px-3` since\n // an ellipsis is slightly wider than a digit.\n _jsx(\"div\", {\n className: \"px-3 text-center\",\n \"data-testid\": \"pagination-gap\",\n children: \"\\u2026\"\n }) : _jsx(NavigationButton, {\n title: `Go to page ${page}`,\n pressed: page === currentPage,\n onClick: e => changePageTo(page, e.target),\n children: page.toString()\n }, `page-${idx}`)\n }, idx))\n }), _jsx(\"div\", {\n className: classnames('ml-2 flex justify-end',\n // When page buttons are not shown, this element should grow to fill\n // available space. But when page buttons are shown, it should not.\n 'grow md:grow-0'),\n children: _jsxs(NavigationButton, {\n invisible: !hasNextPage,\n title: \"Go to next page\",\n onClick: e => changePageTo(currentPage + 1, e.target),\n children: [\"next\", _jsx(ArrowRightIcon, {})]\n })\n })]\n });\n}\n//# sourceMappingURL=Pagination.js.map","/**\n * The number of an available pagination page, or `null`, indicating a gap\n * between sequential numbered pages.\n */\n\n/**\n * Determine the set of (pagination) page numbers that should be provided to\n * a user.\n *\n * The result includes a mixture of page numbers that should be shown, plus\n * `null` values indicating elided page numbers. The goals of the selection\n * are:\n *\n * - To always provide page numbers for the first, last and current pages.\n * Additional adjacent pages are provided according to the `boundaryCount`\n * and `siblingCount` options.\n * - To try and keep the number of pagination items consistent as the current\n * page changes. If each item is rendered with approximately the same width,\n * this keeps the overall width of the pagination component and the location\n * of child controls consistent as the user navigates. This helps to avoid\n * mis-clicks due to controls moving around under the cursor.\n *\n * @param currentPage - The 1-based currently-visible/-active page number.\n * @param totalPages - The total number of pages\n * @param options - Options for the number of pages to show at the boundary and\n * around the current page.\n */\nexport function paginationItems(currentPage, totalPages, /* istanbul ignore next */\n{\n boundaryCount = 1,\n siblingCount = 1\n} = {}) {\n if (totalPages <= 1) {\n return [];\n }\n currentPage = Math.max(1, Math.min(currentPage, totalPages));\n boundaryCount = Math.max(boundaryCount, 1);\n siblingCount = Math.max(siblingCount, 0);\n const pageNumbers = [];\n const beforeCurrent = currentPage - 1;\n const afterCurrent = totalPages - currentPage;\n const elideBeforeCurrent = boundaryCount + siblingCount < beforeCurrent;\n let elideBefore = null;\n if (elideBeforeCurrent) {\n for (let page = 1; page <= boundaryCount; page++) {\n pageNumbers.push(page);\n }\n elideBefore = {\n index: pageNumbers.length,\n count: currentPage - siblingCount - boundaryCount,\n // Last value in elided range, as we expand backwards\n value: currentPage - siblingCount - 1\n };\n pageNumbers.push(null);\n for (let page = currentPage - siblingCount; page < currentPage; page++) {\n pageNumbers.push(page);\n }\n } else {\n for (let page = 1; page < currentPage; page++) {\n pageNumbers.push(page);\n }\n }\n pageNumbers.push(currentPage);\n const elideAfterCurrent = boundaryCount + siblingCount < afterCurrent;\n let elideAfter = null;\n if (elideAfterCurrent) {\n for (let page = currentPage + 1; page <= currentPage + siblingCount; page++) {\n pageNumbers.push(page);\n }\n elideAfter = {\n index: pageNumbers.length,\n count: totalPages - boundaryCount + 1 - (currentPage + siblingCount),\n // First value in elided range, as we expand forwards\n value: currentPage + siblingCount + 1\n };\n pageNumbers.push(null);\n for (let page = totalPages - boundaryCount + 1; page <= totalPages; page++) {\n pageNumbers.push(page);\n }\n } else {\n for (let page = currentPage + 1; page <= totalPages; page++) {\n pageNumbers.push(page);\n }\n }\n\n // Calculate the maximum number of items we will show for the total number\n // of pages and options.\n const maxItems = Math.min(\n // First and last pages\n 2 * boundaryCount +\n // Pages adjacent to current page\n 2 * siblingCount +\n // Current page, indicators for elided pages before and after current.\n 3, totalPages);\n\n // To keep the number of items consistent as the current page changes,\n // expand the elided ranges until we reach the maximum.\n while (pageNumbers.length < maxItems && ((_elideAfter = elideAfter) !== null && _elideAfter !== void 0 && _elideAfter.count || (_elideBefore = elideBefore) !== null && _elideBefore !== void 0 && _elideBefore.count)) {\n var _elideAfter, _elideBefore;\n if (elideAfter && elideAfter.count > 0) {\n // Expand ahead of current page if possible, starting with numbers closest\n // to current page.\n pageNumbers.splice(elideAfter.index, 0, elideAfter.value);\n ++elideAfter.index;\n ++elideAfter.value;\n --elideAfter.count;\n } else if (elideBefore) {\n // Otherwise expand behind, starting with numbers closest to current page.\n pageNumbers.splice(elideBefore.index + 1, 0, elideBefore.value);\n --elideBefore.value;\n --elideBefore.count;\n }\n }\n return pageNumbers;\n}\n//# sourceMappingURL=pagination.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport Button from '../input/Button';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * A button for pointing toward a quantified set of items somewhere else in the\n * UI or off-screen. When clicked, the application should navigate to the\n * indicated or implied position.\n *\n * Used by the bucket bar in the client application to point at\n * highlights/annotations in the guest document. Expected button content is\n * numeric text, e.g.:\n *\n * <PointerButton direction=\"left\">5</PointerButton>\n *\n * The arrow-points are created by the combination of borders and positioning.\n * See https://css-tricks.com/snippets/css/css-triangle/\n */\nexport default function PointerButton({\n children,\n classes,\n elementRef,\n expanded,\n pressed,\n title,\n direction,\n ...htmlAndButtonProps\n}) {\n return _jsx(Button, {\n \"data-component\": \"PointerButton\",\n ...htmlAndButtonProps,\n elementRef: downcastRef(elementRef),\n classes: classnames(\n // Establish relative positioning to allow absolute positioning of\n // ::before and ::after pseudo-elements (the arrow pointers)\n 'relative w-[26px] h-[16px]', 'flex items-center justify-center', 'bg-white rounded-[4px] border',\n // The borders of ::before and ::after will be used to style the arrow\n // pointer border (grey) and fill (white) respectively\n 'before:absolute before:border-transparent', 'after:absolute after:border-transparent', 'text-[10px] text-color-text-light leading-none font-semibold', {\n // This adds a 1-pixel x-offset to the default `shadow` (see tailwind\n // config)\n 'shadow-[1px_1px_1px_rgba(0,0,0,0.1)]': direction !== 'down',\n // The down arrow has no y-offset on its shadow to avoid odd edges\n // around its down-pointing wedge\n 'shadow-[1px_0px_1px_rgba(0,0,0,0.1)]': direction === 'down'\n },\n // Styling for left-pointing arrows\n {\n 'rounded-r-[4px] rounded-l-[2px]': direction === 'left',\n // Position the right edges of ::before and ::after to align with the\n // left edge of the button's body, centered vertically\n 'before:right-full before:top-1/2 after:right-full after:top-1/2': direction === 'left',\n // ::before is the grey border of the left-pointing wedge, 1px wider\n // than the fill\n 'before:mt-[-8px] before:border-8 before:border-r-[5px] before:border-r-grey-3': direction === 'left',\n // ::after is the white fill of the left-pointing wedge. NB: ordering\n // of these rules after the ::before rules is important for\n // compositing order\n 'after:mt-[-7px] after:border-[7px] after:border-r-[4px] after:border-r-white': direction === 'left'\n },\n // Styling for up-pointing arrows\n {\n 'z-1 rounded-t-px-sm rounded-b-px': direction === 'up',\n // Position the bottom edges of ::before and ::after to align with the\n // top edges of the button body. Center horizontally.\n 'before:top-auto before:left-1/2 before:bottom-full after:top-auto after:left-1/2 after:bottom-full': direction === 'up',\n // Grey border of up-pointing wedge\n 'before:ml-[-13px] before:border-[13px] before:border-b-[6px] before:border-b-grey-3': direction === 'up',\n // White fill of up-pointing wedge\n 'after:ml-[-12px] after:border-[12px] after:border-b-[5px] after:border-b-white': direction === 'up'\n },\n // Styling for down-pointing arrows\n {\n 'z-1 rounded-t-px rounded-b-px-sm': direction === 'down',\n // Position the top edges of ::before and ::after at the bottom of\n // the button body. Center horizontally.\n 'before:top-full before:left-1/2 after:top-full after:left-1/2': direction === 'down',\n // Grey border of down-pointing wedge\n 'before:ml-[-13px] before:border-[13px] before:border-t-[6px] before:border-t-grey-3': direction === 'down',\n // White fill of down-pointing wedge\n 'after:ml-[-12px] after:border-[12px] after:border-t-[5px] after:border-t-white': direction === 'down'\n }, classes),\n expanded: expanded,\n pressed: pressed,\n title: title,\n variant: \"custom\",\n size: \"custom\",\n children: children\n });\n}\n//# sourceMappingURL=PointerButton.js.map","import classnames from 'classnames';\nimport { downcastRef } from '../../util/typing';\nimport Button from '../input/Button';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Render a button with appropriate ARIA tab affordances\n */\nexport default function Tab({\n children,\n classes,\n elementRef,\n icon: Icon,\n textContent,\n selected = false,\n size = 'md',\n variant = 'text',\n unstyled = false,\n ...htmlAttributes\n}) {\n const styled = !unstyled;\n const themed = styled && variant !== 'custom';\n const sized = styled && size !== 'custom';\n return _jsxs(Button, {\n \"data-component\": \"Tab\",\n ...htmlAttributes,\n classes: classnames(\n // Buttons have a flex layout. Add a horizontal gap.\n sized && 'gap-x-1.5', themed && {\n 'px-4 py-2': variant === 'tab' && sized,\n 'font-semibold text-grey-7 rounded-t-lg border border-transparent border-b-0': variant === 'tab',\n 'aria-selected:text-color-text aria-selected:bg-white': variant === 'tab',\n 'aria-selected:border aria-selected:border-grey-3 aria-selected:border-b-0': variant === 'tab',\n 'enabled:hover:text-color-text disabled:text-grey-7/50': variant === 'tab',\n 'enabled:hover:text-brand-dark': variant === 'text',\n 'aria-selected:font-bold': variant === 'text'\n }, classes),\n elementRef: downcastRef(elementRef),\n \"aria-selected\": selected,\n role: \"tab\",\n variant: \"custom\",\n size: \"custom\",\n unstyled: unstyled,\n children: [Icon && _jsx(Icon, {\n className: classnames(\n // A small padding value here sizes the icon down slightly in relation\n // to the tab text, which results in nicer proportions.\n 'p-[0.125em] w-em h-em')\n }), _jsx(\"span\", {\n \"data-content\": textContent,\n \"data-testid\": \"sizing-wrapper\",\n className: classnames({\n // Set the content of this span's ::before pseudo-element to\n // `textContent` and make it bold.\n 'before:content-[attr(data-content)] before:font-bold': textContent,\n // Make the ::before occupy space within the button, but make it\n // invisible. This ensures that the tab button is wide enough to show\n // bolded text even if the visible text is not currently bold. See\n // https://css-tricks.com/bold-on-hover-without-the-layout-shift/\n 'before:block before:invisible before:h-0 before:overflow-hidden': textContent\n }),\n children: children\n })]\n });\n}\n//# sourceMappingURL=Tab.js.map","import classnames from 'classnames';\nimport { useArrowKeyNavigation } from '../../hooks/use-arrow-key-navigation';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render a tablist container for a set of tabs, with arrow key navigation per\n * https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n */\nexport default function TabList({\n children,\n classes,\n elementRef,\n vertical = false,\n ...htmlAttributes\n}) {\n const tabListRef = useSyncedRef(elementRef);\n useArrowKeyNavigation(tabListRef, {\n selector: 'button',\n horizontal: true,\n vertical\n });\n return _jsx(\"div\", {\n \"data-component\": \"TabList\",\n ...htmlAttributes,\n ref: downcastRef(tabListRef),\n className: classnames('flex focus-visible:ring focus-visible:outline-none', {\n 'flex-col': vertical\n }, classes),\n role: \"tablist\",\n \"aria-orientation\": vertical ? 'vertical' : 'horizontal',\n children: children\n });\n}\n//# sourceMappingURL=TabList.js.map","import { useCallback, useEffect, useState } from 'preact/hooks';\nimport { useSyncedRef } from '../../hooks/use-synced-ref';\nimport { downcastRef } from '../../util/typing';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\nconst Slider = ({\n children,\n direction = 'in',\n onTransitionEnd,\n delay,\n elementRef\n}) => {\n const visible = direction === 'in';\n const containerRef = useSyncedRef(elementRef);\n const [containerHeight, setContainerHeight] = useState(visible ? 'auto' : 0);\n\n // Whether the content is currently partially or wholly visible. This is\n // different from `visible` when collapsing as it is true until the collapse\n // animation completes.\n const [contentVisible, setContentVisible] = useState(visible);\n\n // Adjust the container height when the `visible` prop changes.\n useEffect(() => {\n const isVisible = containerHeight !== 0;\n if (visible === isVisible) {\n // Do nothing after the initial mount.\n return;\n }\n const el = containerRef.current;\n if (visible) {\n // Show the content synchronously so that we can measure it here.\n el.style.display = '';\n\n // Make content visible in future renders.\n setContentVisible(true);\n\n // When expanding, transition the container to the current fixed height\n // of the content. After the transition completes, we'll reset to \"auto\"\n // height to adapt to future content changes.\n setContainerHeight(el.scrollHeight);\n } else {\n // When collapsing, immediately change the current height to a fixed height\n // (in case it is currently \"auto\"), force a synchronous layout,\n // then transition to 0.\n //\n // These steps are needed because browsers will not animate transitions\n // from \"auto\" => \"0\" and may not animate \"auto\" => fixed height => 0\n // if the layout tree transitions directly from \"auto\" => 0.\n el.style.height = `${el.scrollHeight}px`;\n\n // Force a sync layout.\n el.getBoundingClientRect();\n setContainerHeight(0);\n }\n }, [containerHeight, containerRef, visible]);\n const handleTransitionEnd = useCallback(e => {\n // Only transitions on the actual component and for the \"height\" property\n // are relevant \"in\"/\"out\" transitions.\n if (e.target !== containerRef.current || e.propertyName !== 'height') {\n return;\n }\n if (visible) {\n setContainerHeight('auto');\n } else {\n // When the collapse animation completes, stop rendering the content so\n // that the browser has fewer nodes to render and the content is removed\n // from keyboard navigation.\n setContentVisible(false);\n }\n onTransitionEnd === null || onTransitionEnd === void 0 || onTransitionEnd(direction);\n }, [containerRef, visible, onTransitionEnd, direction]);\n const isFullyVisible = containerHeight === 'auto';\n return _jsx(\"div\", {\n // nb. Preact uses \"ontransitionend\" rather than \"onTransitionEnd\".\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=961193\n //\n // @ts-ignore\n ontransitionend: handleTransitionEnd,\n ref: downcastRef(containerRef),\n style: {\n display: contentVisible ? '' : 'none',\n height: containerHeight,\n // When the Slider is fully open, overflow is made visible so that\n // focus rings, which may extend outside the bounds of the Slider content,\n // are visible.\n overflow: isFullyVisible ? 'visible' : 'hidden',\n transition: `height 0.15s ease-in`,\n transitionDelay: delay\n },\n children: children\n });\n};\nexport default Slider;\n//# sourceMappingURL=Slider.js.map","/* eslint-disable no-multi-assign */\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear =\n obj.delete =\n obj.set =\n function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add =\n obj.clear =\n obj.delete =\n function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach((name) => {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#x27;');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record<number,boolean> */\n const emit = {};\n /** @type Record<number,string> */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.8.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'all',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-blend-mode',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block',\n 'border-block-color',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-style',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-style',\n 'border-block-start-width',\n 'border-block-style',\n 'border-block-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-inline',\n 'border-inline-color',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-style',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-style',\n 'border-inline-start-width',\n 'border-inline-style',\n 'border-inline-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-variant',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inline-size',\n 'isolation',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-break',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-block',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-block',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'row-gap',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'scrollbar-color',\n 'scrollbar-gutter',\n 'scrollbar-width',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: CSS\nCategory: common, css, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n/** @type LanguageFn */\nfunction css(hljs) {\n const regex = hljs.regex;\n const modes = MODES(hljs);\n const VENDOR_PREFIX = { begin: /-(webkit|moz|ms|o)-(?=[a-z])/ };\n const AT_MODIFIERS = \"and or not only\";\n const AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/; // @-webkit-keyframes\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const STRINGS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ];\n\n return {\n name: 'CSS',\n case_insensitive: true,\n illegal: /[=|'\\$]/,\n keywords: { keyframePosition: \"from to\" },\n classNameAliases: {\n // for visual continuity with `tag {}` and because we\n // don't have a great class for this?\n keyframePosition: \"selector-tag\" },\n contains: [\n modes.BLOCK_COMMENT,\n VENDOR_PREFIX,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: /#[A-Za-z0-9_-]+/,\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.' + IDENT_RE,\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n variants: [\n { begin: ':(' + PSEUDO_CLASSES.join('|') + ')' },\n { begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')' }\n ]\n },\n // we may actually need this (12/2020)\n // { // pseudo-selector params\n // begin: /\\(/,\n // end: /\\)/,\n // contains: [ hljs.CSS_NUMBER_MODE ]\n // },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n // attribute values\n {\n begin: /:/,\n end: /[;}{]/,\n contains: [\n modes.BLOCK_COMMENT,\n modes.HEXCOLOR,\n modes.IMPORTANT,\n modes.CSS_NUMBER_MODE,\n ...STRINGS,\n // needed to highlight these as strings and to avoid issues with\n // illegal characters that might be inside urls that would tigger the\n // languages illegal stack\n {\n begin: /(url|data-uri)\\(/,\n end: /\\)/,\n relevance: 0, // from keywords\n keywords: { built_in: \"url data-uri\" },\n contains: [\n ...STRINGS,\n {\n className: \"string\",\n // any character other than `)` as in `url()` will be the start\n // of a string, which ends with `)` (from the parent mode)\n begin: /[^)]/,\n endsWithParent: true,\n excludeEnd: true\n }\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n },\n {\n begin: regex.lookahead(/@/),\n end: '[{;]',\n relevance: 0,\n illegal: /:/, // break on Less variables @var: ...\n contains: [\n {\n className: 'keyword',\n begin: AT_PROPERTY_RE\n },\n {\n begin: /\\s/,\n endsWithParent: true,\n excludeEnd: true,\n relevance: 0,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n ...STRINGS,\n modes.CSS_NUMBER_MODE\n ]\n }\n ]\n },\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b'\n }\n ]\n };\n}\n\nexport { css as default };\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"sessionStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \"<Booger\" and checks to see\n * if we can find a matching \"</Booger\" later in the\n * content.\n * @param {RegExpMatchArray} match\n * @param {{after:number}} param1\n */\n const hasClosingTag = (match, { after }) => {\n const tag = \"</\" + match[0].slice(1);\n const pos = match.input.indexOf(tag, after);\n return pos !== -1;\n };\n\n const IDENT_RE$1 = IDENT_RE;\n const FRAGMENT = {\n begin: '<>',\n end: '</>'\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `<Array<Array<number>>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // `<T, A extends keyof T, V>`\n nextChar === \",\"\n ) {\n response.ignoreMatch();\n return;\n }\n\n // `<something>`\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `<blah />` (self-closing)\n // handled by simpleSelfClosing rule\n\n let m;\n const afterMatch = match.input.substring(afterMatchIndex);\n\n // some more template typing stuff\n // <T = any>(key?: string) => Modify<\n if ((m = afterMatch.match(/^\\s*=/))) {\n response.ignoreMatch();\n return;\n }\n\n // `<From extends string>`\n // technically this could be HTML, but it smells like a type\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const GRAPHQL_TEMPLATE = {\n begin: 'gql`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'graphql'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\",\n \"import\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'JavaScript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n GRAPHQL_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n // Skip numbers when they are part of a variable name\n { match: /\\$\\d+/ },\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti <panu.horsmalahti@iki.fi>\nContributors: Ike Ku <dempfi@yahoo.com>\nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const tsLanguage = javascript(hljs);\n\n const IDENT_RE$1 = IDENT_RE;\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"symbol\",\n \"bigint\",\n \"unknown\"\n ];\n const NAMESPACE = {\n beginKeywords: 'namespace',\n end: /\\{/,\n excludeEnd: true,\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [ tsLanguage.exports.CLASS_REFERENCE ]\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n \"namespace\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\",\n \"enum\",\n \"override\"\n ];\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n\n mode.contains.splice(indx, 1, replacement);\n };\n\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.label === \"func.def\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: [\n 'ts',\n 'tsx',\n 'mts',\n 'cts'\n ]\n });\n\n return tsLanguage;\n}\n\nexport { typescript as default };\n","/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /</,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: XML_IDENT_RE,\n relevance: 0\n },\n {\n begin: /=\\s*/,\n relevance: 0,\n contains: [\n {\n className: 'string',\n endsParent: true,\n variants: [\n {\n begin: /\"/,\n end: /\"/,\n contains: [ XML_ENTITIES ]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [ XML_ENTITIES ]\n },\n { begin: /[^\\s\"'=<>`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n /<!--/,\n /-->/,\n { relevance: 10 }\n ),\n {\n begin: /<!\\[CDATA\\[/,\n end: /\\]\\]>/,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n '<style' as a single word, followed by a whitespace or an\n ending bracket.\n */\n begin: /<style(?=\\s|>)/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the <style tag about the lookahead pattern\n begin: /<script(?=\\s|>)/,\n end: />/,\n keywords: { name: 'script' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/script>/,\n returnEnd: true,\n subLanguage: [\n 'javascript',\n 'handlebars',\n 'xml'\n ]\n }\n },\n // we need this for now for jSX\n {\n className: 'tag',\n begin: /<>|<\\/>/\n },\n // open tag\n {\n className: 'tag',\n begin: regex.concat(\n /</,\n regex.lookahead(regex.concat(\n TAG_NAME_RE,\n // <tag/>\n // <tag>\n // <tag ...\n regex.either(/\\/>/, />/, /\\s/)\n ))\n ),\n end: /\\/?>/,\n contains: [\n {\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0,\n starts: TAG_INTERNALS\n }\n ]\n },\n // close tag\n {\n className: 'tag',\n begin: regex.concat(\n /<\\//,\n regex.lookahead(regex.concat(\n TAG_NAME_RE, />/\n ))\n ),\n contains: [\n {\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0\n },\n {\n begin: />/,\n relevance: 0,\n endsParent: true\n }\n ]\n }\n ]\n };\n}\n\nexport { xml as default };\n","import hljs from 'highlight.js/lib/core';\nimport hljsCSSLang from 'highlight.js/lib/languages/css';\nimport hljsTypeScriptLang from 'highlight.js/lib/languages/typescript';\nimport hljsXMLLang from 'highlight.js/lib/languages/xml';\nimport { Fragment } from 'preact';\n/**\n * Escape `str` for use in a \"-quoted string.\n */\nfunction escapeQuotes(str) {\n return str.replace(/\"/g, '\\\\\"');\n}\n\n/**\n * Format a component's name for display\n */\nfunction componentName(type) {\n var _type$displayName;\n let name = typeof type === 'string' ? type : (_type$displayName = type.displayName) !== null && _type$displayName !== void 0 ? _type$displayName : type.name;\n\n // Handle (display)name conflicts if there are two components with the same\n // name. e.g. if there are two components named `Foo`, the second of those\n // encountered will have a name of `Foo$1`. Strip the `$1` in this case.\n name = name.replace(/\\$[0-9]+$/, '');\n // Remove trailing underscore from component names. This allows the pattern\n // library to create a convenience wrapper component around a given component\n // being documented, and have it appear that the documented component is being\n // used directly in rendered source content.\n name = name.replace(/\\B_$/, '');\n return name;\n}\n\n/**\n * Indent a multi-line string by `indent` spaces.\n */\nfunction indentLines(str, indent) {\n const indentStr = ' '.repeat(indent);\n const lines = str.split('\\n');\n return lines.map(line => indentStr + line).join('\\n');\n}\n\n/**\n * Test if an element looks like a JSX element.\n */\nfunction isJSXElement(value) {\n const elementType = value === null || value === void 0 ? void 0 : value.type;\n return typeof elementType === 'string' || typeof elementType === 'function';\n}\n\n/**\n * Should the prop with `name` be ignored from output code strings?\n *\n * The special `children` prop, as well as any prop name beginning with an\n * underscore, should be ignored.\n */\nfunction isExcludedProp(name) {\n return name.match(/^_/) || name === 'children';\n}\n\n/**\n * Render a JSX expression as a code string.\n *\n * A trailing underscore in component names will be omitted, allowing wrapper\n * components to be represented as the component they wrap. Props with a\n * leading underscore will be ignored.\n *\n * @example\n * jsxToString(<Widget_ count={0} error={false} open={true} label=\"Thing\" onClick={() => go()} _hello={\"hello\"} />)\n * // returns '<Widget count={0}error={false} open label=\"Thing\" onClick={onClick} />'\n */\nexport function jsxToString(vnode) {\n if (typeof vnode === 'string' || typeof vnode === 'number' || typeof vnode === 'bigint') {\n return vnode.toString();\n } else if (typeof vnode === 'boolean') {\n return '';\n } else if (vnode && 'type' in vnode) {\n // nb. The special `key` and `ref` props are not included in `vnode.props`.\n // `ref` is not serializable to a string and `key` is generally set dynamically\n // (eg. from an index or item ID) so it doesn't make sense to include it either.\n let propStr = Object.entries(vnode.props).map(([name, value]) => {\n if (isExcludedProp(name)) {\n return '';\n }\n if (isJSXElement(value)) {\n return `${name}={${jsxToString(value)}}`;\n }\n let valueStr = '';\n switch (typeof value) {\n case 'boolean':\n // When a boolean property is present, render:\n // 'booleanPropName' => when true\n // 'booleanPropName={false}' => when false\n valueStr = value ? name : `${name}={false}`;\n break;\n case 'string':\n valueStr = `${name}=\"${escapeQuotes(value)}\"`;\n break;\n case 'bigint':\n case 'number':\n case 'undefined':\n valueStr = `${name}={${value}}`;\n break;\n case 'function':\n // This also handles function components\n valueStr = componentName(value) ? `${name}={${componentName(value)}}` : `${name}={${value.toString()}}`;\n break;\n case 'object':\n // Use the prop name instead of [Object object]; it's more helpful\n if (value) {\n valueStr = `${name}={${name}}`;\n } else {\n // null is an object\n valueStr = `${name}={${value}}`;\n }\n break;\n default:\n if (value) {\n // `toString` necessary for Symbols\n valueStr = `${name}={${value.toString()}}`;\n }\n break;\n }\n return valueStr;\n }).join(' ').trim();\n if (propStr.length > 0) {\n propStr = ' ' + propStr;\n }\n const name = vnode.type === Fragment ? '' : componentName(vnode.type);\n const children = vnode.props.children;\n if (children) {\n let childrenStr = Array.isArray(children) ? children.map(jsxToString).join('\\n') : jsxToString(children);\n childrenStr = indentLines(childrenStr, 2);\n return `<${name}${propStr}>\\n${childrenStr}\\n</${name}>`;\n } else {\n // No children - use a self-closing tag.\n return `<${name}${propStr} />`;\n }\n } else {\n return '';\n }\n}\n/**\n * Render a code snippet as syntax-highlighted HTML markup.\n *\n * For the syntax highlighting to be visible, a Highlight.js CSS stylesheet must be\n * loaded on the page.\n *\n * The content returned by this function is sanitized and safe to use as\n * `dangerouslySetInnerHTML` prop.\n */\nexport function highlightCode(code, lang) {\n // JSX support in Highlight.js involves a combination of the TS and XML\n // languages, so we need to load both.\n if (!hljs.getLanguage('typescript')) {\n hljs.registerLanguage('typescript', hljsTypeScriptLang);\n }\n if (!hljs.getLanguage('xml')) {\n hljs.registerLanguage('xml', hljsXMLLang);\n }\n if (!hljs.getLanguage('css')) {\n hljs.registerLanguage('css', hljsCSSLang);\n }\n const languages = lang !== undefined ? [lang] : undefined;\n return hljs.highlightAuto(code, languages).value;\n}\n\n/**\n * Render a JSX expression as syntax-highlighted HTML markup.\n *\n * The content returned by this function is sanitized and safe to use as\n * `dangerouslySetInnerHTML` prop.\n */\nexport function jsxToHTML(vnode, lang) {\n const code = jsxToString(vnode);\n return highlightCode(code, lang);\n}\n//# sourceMappingURL=jsx-to-string.js.map","import classnames from 'classnames';\nimport { toChildArray, createContext } from 'preact';\nimport { useState, useContext, useEffect } from 'preact/hooks';\nimport { Link as RouteLink } from 'wouter-preact';\nimport { CautionIcon, CodeIcon, Link as UILink, Scroll, ScrollContainer } from '../../';\nimport { highlightCode, jsxToHTML } from '../util/jsx-to-string';\n\n/**\n * Components for rendering component documentation, examples and demos in the\n * pattern-library page.\n */\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\n/**\n * Render content for a pattern-library page\n */\nfunction Page({\n children,\n intro,\n title\n}) {\n return _jsx(\"main\", {\n className: \"styled-text text-stone-600\",\n children: _jsxs(\"div\", {\n className: \"px-8 py-4\",\n children: [_jsx(\"h1\", {\n className: \"text-3xl text-slate-600 font-bold\",\n id: \"page-header\",\n children: title\n }), intro && _jsx(\"div\", {\n className: \"my-8 pb-8 border-b space-y-4 font-light text-xl leading-relaxed\",\n children: intro\n }), children]\n })\n });\n}\nfunction Heading({\n children,\n level = 2,\n ...htmlAttributes\n}) {\n if (level <= 2) {\n return _jsx(\"h2\", {\n className: \"text-2xl text-slate-600 font-medium mb-4\",\n ...htmlAttributes,\n children: children\n });\n } else if (level === 3) {\n return _jsx(\"h3\", {\n className: \"text-xl text-slate-600 font-medium mb-4\",\n ...htmlAttributes,\n children: children\n });\n } else {\n return _jsx(\"h4\", {\n className: \"text-lg border-b border-stone-300 text-slate-600 font-normal mb-4\",\n ...htmlAttributes,\n children: children\n });\n }\n}\n// Keep track of <Section> nested depth\nconst SectionDepthContext = createContext(0);\n\n/**\n * Render a primary section of a page. Each component documented on a pattern-\n * library page gets its own section.\n */\nfunction Section({\n children,\n intro,\n level,\n title,\n ...htmlAttributes\n}) {\n const sectionDepth = useContext(SectionDepthContext);\n const depth = level !== null && level !== void 0 ? level : sectionDepth + 1;\n return _jsx(SectionDepthContext.Provider, {\n value: depth,\n children: _jsxs(\"section\", {\n \"data-depth\": depth,\n className: classnames('leading-relaxed', {\n 'mt-8 mb-16': depth <= 1,\n 'mt-8 mb-8': depth === 2,\n 'mt-6 mb-8': depth >= 3\n }),\n ...htmlAttributes,\n children: [title &&\n // Heading level is one larger than section level because heading\n // level 1 is reserved for the main heading of the page.\n _jsx(Heading, {\n level: depth + 1,\n children: title\n }), intro && _jsx(\"div\", {\n className: \"text-base space-y-3 leading-relaxed\",\n children: intro\n }), children]\n })\n });\n}\n/**\n * Render a second-level section. e.g. Usage, Props, Status\n */\nfunction SectionL2({\n children,\n title,\n ...htmlAttributes\n}) {\n return _jsx(Section, {\n level: 2,\n title: title,\n ...htmlAttributes,\n children: children\n });\n}\n/**\n * Render content in a third-level section, e.g. documentation\n * about a specific prop or examples of usage.\n */\nfunction SectionL3({\n children,\n title,\n ...htmlAttributes\n}) {\n return _jsx(Section, {\n level: 3,\n title: title,\n ...htmlAttributes,\n children: children\n });\n}\nfunction SimpleError({\n message\n}) {\n return _jsx(\"div\", {\n className: \"w-full text-red-600 p-2 border rounded border-red-600\",\n children: message\n });\n}\n\n/**\n * Fetches provided example file and returns its contents as text, excluding\n * the import statements.\n * An error is thrown if the file cannot be fetched for any reason.\n */\nasync function fetchCodeExample(exampleFile, signal) {\n const res = await fetch(`/examples/${exampleFile}.tsx`, {\n signal\n });\n if (res.status >= 400) {\n throw new Error(`Failed loading ${exampleFile} example file`);\n }\n const text = await res.text();\n\n // Remove import statements and trim trailing empty lines\n return text.replace(/^import .*;\\n/gm, '').replace(/^\\s*\\n*/, '');\n}\nfunction isStaticDemoContent(contentResult) {\n return 'children' in contentResult;\n}\n\n/**\n * Determines what are the contents to be used for a Demo, which can be either\n * an explicitly provided set of children, or the contents of an example file\n * which is dynamically imported.\n */\nfunction useDemoContents(props) {\n const [code, setCode] = useState();\n const [example, setExample] = useState();\n const [codeError, setCodeError] = useState();\n const [exampleError, setExampleError] = useState();\n useEffect(() => {\n if (!props.exampleFile) {\n return () => {};\n }\n import(`../examples/${props.exampleFile}.tsx`).then(({\n default: Example\n }) => setExample(_jsx(Example, {}))).catch(() => setExampleError(`Failed loading ../examples/${props.exampleFile}.tsx module`));\n const controller = new AbortController();\n fetchCodeExample(props.exampleFile, controller.signal).then(setCode).catch(e => setCodeError(e.message));\n return () => controller.abort();\n }, [props.exampleFile, props.children]);\n if (props.children) {\n return {\n children: props.children\n };\n }\n return {\n code,\n example,\n codeError,\n exampleError\n };\n}\n\n/**\n * Render a \"Demo\", with optional source. This will render the children as\n * provided in a tabbed container. If `withSource` is `true`, the JSX source\n * of the children will be provided in a separate \"Source\" tab from the\n * rendered Demo content.\n */\nfunction Demo({\n classes,\n withSource = false,\n style = {},\n title,\n ...rest\n}) {\n const [visibleTab, setVisibleTab] = useState('demo');\n const demoContents = useDemoContents(rest);\n const isStaticContent = isStaticDemoContent(demoContents);\n return _jsxs(\"div\", {\n className: \"my-8 p-2 space-y-1\",\n children: [_jsxs(\"div\", {\n className: \"flex items-center px-2\",\n children: [_jsx(\"div\", {\n className: \"py-1 grow\",\n children: _jsx(\"h5\", {\n className: \"text-base text-base leading-none font-semibold text-slate-600\",\n children: title\n })\n }), _jsx(\"div\", {\n className: \"flex flex-row items-center justify-end gap-x-4\",\n children: withSource && _jsx(\"button\", {\n className: classnames('flex items-center gap-x-1.5 py-1 px-2 rounded-md', 'text-sm text-slate-500', 'hover:bg-slate-50 border hover:border-slate-300', {\n 'bg-slate-100 border border-slate-400 shadow-inner': visibleTab === 'source',\n 'border-slate-100 shadow': visibleTab !== 'source'\n }),\n \"aria-pressed\": visibleTab === 'source',\n onClick: () => setVisibleTab(prevState => prevState === 'source' ? 'demo' : 'source'),\n title: \"Toggle view-source panel\",\n children: _jsx(CodeIcon, {\n className: \"w-[18px] h-[18px]\"\n })\n })\n })]\n }), _jsxs(\"div\", {\n className: \"p-2 unstyled-text\",\n children: [visibleTab === 'demo' && _jsx(\"div\", {\n className: \"w-full p-8 rounded-md border border-stone-300 bg-stone-50 rounded-md\",\n style: style,\n children: _jsxs(\"div\", {\n className: classnames('h-full flex flex-row items-center justify-center gap-2', classes),\n children: [!isStaticContent ? demoContents.example : demoContents.children, !isStaticContent && demoContents.exampleError && _jsx(SimpleError, {\n message: demoContents.exampleError\n })]\n })\n }), visibleTab === 'source' && _jsxs(_Fragment, {\n children: [!isStaticContent ? demoContents.code && _jsx(Code, {\n content: demoContents.code\n }) : _jsx(\"div\", {\n className: \"border w-full rounded-md bg-slate-7 text-color-text-inverted p-4\",\n children: _jsx(\"ul\", {\n children: toChildArray(demoContents.children).map((child, idx) => {\n return _jsx(\"li\", {\n children: _jsx(\"code\", {\n children: _jsx(\"pre\", {\n className: \"font-pre whitespace-pre-wrap break-words text-sm\",\n dangerouslySetInnerHTML: {\n __html: jsxToHTML(child)\n }\n })\n })\n }, idx);\n })\n })\n }), !isStaticContent && demoContents.codeError && _jsx(SimpleError, {\n message: demoContents.codeError\n })]\n })]\n })]\n });\n}\n/**\n * Render a pill to highlight a change\n */\nfunction StatusChip({\n status\n}) {\n return _jsxs(\"span\", {\n className: classnames('rounded-md py-1 px-2 mr-1.5 text-sm font-semibold', {\n 'bg-red-error text-color-text-inverted': status === 'breaking',\n 'bg-yellow-notice': status === 'deprecated' || status === 'changed',\n 'bg-green-success text-color-text-inverted': status === 'added'\n }),\n children: [status === 'breaking' && _jsx(\"span\", {\n children: \"Breaking\"\n }), status === 'deprecated' && _jsx(\"span\", {\n children: \"Deprecated\"\n }), status === 'added' && _jsx(\"span\", {\n children: \"Added\"\n }), status === 'changed' && _jsx(\"span\", {\n children: \"Changed\"\n })]\n });\n}\n/**\n * Wrapper around a list of changelog items\n */\nfunction Changelog({\n children\n}) {\n return _jsx(\"ul\", {\n children: children\n });\n}\n/**\n * Single changelog item\n */\nfunction ChangelogItem({\n status,\n children\n}) {\n return _jsxs(\"li\", {\n className: classnames('flex gap-x-2',\n // \"Outdent\": <ul>s are indented (for readability) by 2rem. In the\n // case of this particular <ul>, we want to regain left-hand space\n // because the status chips are aligned to the right.\n '-ml-8 '),\n children: [_jsx(\"div\", {\n className: \"mt-2 min-w-[7rem] text-right\",\n children: _jsx(StatusChip, {\n status: status\n })\n }), _jsx(\"div\", {\n className: \"grow\",\n children: children\n })]\n });\n}\nfunction isCodeWithContent(props) {\n return 'content' in props;\n}\n\n/**\n * Dynamically resolves the content based on provided props.\n * An error is optionally returned in case loading the content failed.\n */\nfunction useCodeContent(props) {\n const hasStaticContent = isCodeWithContent(props);\n const [codeMarkup, setCodeMarkup] = useState(hasStaticContent ? jsxToHTML(props.content, props.lang) : undefined);\n const [error, setError] = useState();\n useEffect(() => {\n if (hasStaticContent) {\n return () => {};\n }\n const controller = new AbortController();\n fetchCodeExample(`/examples/${props.exampleFile}.tsx`, controller.signal).then(code => setCodeMarkup(highlightCode(code, 'typescript'))).catch(setError);\n return () => controller.abort();\n }, [hasStaticContent, props]);\n return [codeMarkup, error];\n}\n\n/**\n * Render provided `content` as a \"code block\" example.\n *\n * Long code content will scroll if <Code /> is rendered inside a parent\n * element with constrained dimensions.\n */\nfunction Code({\n size,\n title,\n ...rest\n}) {\n const [codeMarkup, error] = useCodeContent(rest);\n return _jsxs(\"figure\", {\n className: \"space-y-2 min-h-0 h-full\",\n children: [codeMarkup && _jsxs(ScrollContainer, {\n borderless: true,\n children: [_jsx(\"div\", {\n className: classnames('unstyled-text bg-slate-7 text-color-text-inverted p-4 rounded-md min-h-0 h-full', {\n 'text-sm': size === 'sm'\n }),\n children: _jsx(Scroll, {\n variant: \"flat\",\n children: _jsx(\"code\", {\n className: \"text-color-text-inverted\",\n children: _jsx(\"pre\", {\n className: \"whitespace-pre-wrap\",\n dangerouslySetInnerHTML: {\n __html: codeMarkup\n }\n })\n })\n })\n }), title && _jsx(\"figcaption\", {\n className: \"flex justify-end\",\n children: _jsx(\"span\", {\n className: \"italic\",\n children: title\n })\n })]\n }), error && _jsx(SimpleError, {\n message: error.message\n })]\n });\n}\n/**\n * Render import \"usage\" of a given `componentName`\n */\nfunction Usage({\n componentName,\n symbolName = componentName,\n size = 'md'\n}) {\n const importPath = '@hypothesis/frontend-shared';\n return _jsx(Code, {\n content: `import { ${symbolName} } from '${importPath}';\n`,\n size: size\n });\n}\n/**\n * Render an internal link to another pattern-library page.\n * TODO: Support external links\n */\nfunction Link({\n children,\n href\n}) {\n return _jsx(RouteLink, {\n href: href,\n asChild: true,\n children: _jsx(UILink, {\n underline: \"always\",\n children: children\n })\n });\n}\nfunction Callout({\n children\n}) {\n return _jsxs(\"div\", {\n className: \"flex gap-x-2 p-3 rounded-md bg-slate-50 border shadow-inner\",\n children: [_jsx(\"div\", {\n className: \"w-6 h-6\",\n children: _jsx(CautionIcon, {\n className: \"text-yellow-notice w-6 h-6 mt-0.5\"\n })\n }), _jsx(\"div\", {\n children: children\n })]\n });\n}\n\n/**\n * Render a two-column grid for label-description pairs\n */\nfunction Info({\n children\n}) {\n return _jsx(\"div\", {\n className: \"grid grid-cols-[6rem_1fr] gap-x-4 gap-y-2 m-4\",\n children: children\n });\n}\n\n/**\n * Render a \"row\" in an Info layout with a label and description (children)\n */\nfunction InfoItem({\n children,\n label\n}) {\n return _jsxs(_Fragment, {\n children: [_jsx(\"div\", {\n className: \"pt-1 text-right font-medium text-stone-600 text-sm\",\n children: label\n }), _jsx(\"div\", {\n children: children\n })]\n });\n}\nexport default {\n Callout,\n Changelog,\n ChangelogItem,\n Code,\n Demo,\n Info,\n InfoItem,\n Link,\n Page,\n Section,\n SectionL2,\n SectionL3,\n StatusChip,\n Usage\n};\n//# sourceMappingURL=Library.js.map","import classnames from 'classnames';\nimport Library from '../Library';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nfunction ColorSwatch({\n colorClass,\n colorName\n}) {\n return _jsxs(\"div\", {\n children: [_jsx(\"div\", {\n className: classnames(colorClass, 'w-64 h-8 mr-4')\n }), _jsx(\"p\", {\n children: _jsx(\"i\", {\n children: colorName\n })\n })]\n });\n}\nconst brandExamples = _jsxs(_Fragment, {\n children: [_jsx(ColorSwatch, {\n colorClass: \"bg-brand\",\n colorName: \"brand\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-brand-dark\",\n colorName: \"brand-dark\"\n })]\n});\nconst greyExamples = _jsxs(_Fragment, {\n children: [_jsx(ColorSwatch, {\n colorClass: \"bg-white\",\n colorName: \"white\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-0\",\n colorName: \"grey-0\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-1\",\n colorName: \"grey-1\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-2\",\n colorName: \"grey-2\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-3\",\n colorName: \"grey-3\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-4\",\n colorName: \"grey-4\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-5\",\n colorName: \"grey-5\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-6\",\n colorName: \"grey-6\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-7\",\n colorName: \"grey-7\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-8\",\n colorName: \"grey-8\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-grey-9\",\n colorName: \"grey-9\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-black\",\n colorName: \"black\"\n })]\n});\nconst slateExamples = _jsxs(_Fragment, {\n children: [_jsx(ColorSwatch, {\n colorClass: \"bg-slate-0\",\n colorName: \"slate-0\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-slate-1\",\n colorName: \"slate-1\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-slate-3\",\n colorName: \"slate-3\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-slate-5\",\n colorName: \"slate-5\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-slate-7\",\n colorName: \"slate-7\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-slate-9\",\n colorName: \"slate-9\"\n })]\n});\nconst stateExamples = _jsxs(_Fragment, {\n children: [_jsx(ColorSwatch, {\n colorClass: \"bg-green-success\",\n colorName: \"green-success (green alias)\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-yellow-notice\",\n colorName: \"yellow-notice (yellow alias)\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-red-error\",\n colorName: \"red-error (red alias)\"\n })]\n});\nconst highlightingExamples = _jsxs(_Fragment, {\n children: [_jsx(ColorSwatch, {\n colorClass: \"bg-green-light\",\n colorName: \"green-light\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-green\",\n colorName: \"green\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-green-dark\",\n colorName: \"green-dark\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-yellow-light\",\n colorName: \"yellow-light\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-yellow\",\n colorName: \"yellow\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-yellow-dark\",\n colorName: \"yellow-dark\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-red-light\",\n colorName: \"red-light\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-red\",\n colorName: \"red\"\n }), _jsx(ColorSwatch, {\n colorClass: \"bg-red-dark\",\n colorName: \"red-dark\"\n })]\n});\nconst focusExamples = _jsx(_Fragment, {\n children: _jsx(ColorSwatch, {\n colorClass: \"bg-blue-focus\",\n colorName: \"blue-focus\"\n })\n});\nexport default function ColorsPage() {\n return _jsxs(Library.Page, {\n title: \"Colors\",\n children: [_jsx(Library.SectionL2, {\n title: \"Brand red\",\n children: _jsx(\"div\", {\n className: \"my-4 flex flex-row flex-wrap gap-4\",\n children: brandExamples\n })\n }), _jsx(Library.SectionL2, {\n title: \"Greys\",\n children: _jsx(\"div\", {\n className: \"my-4 flex flex-row flex-wrap gap-4\",\n children: greyExamples\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Slates\",\n children: [_jsx(\"p\", {\n children: \"These slightly blue greys may be used sparingly to help with differentiation and clarity within interfaces.\"\n }), _jsx(\"div\", {\n className: \"my-4 flex flex-row flex-wrap gap-4\",\n children: slateExamples\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Highlighting\",\n children: _jsx(\"div\", {\n className: \"my-4 flex flex-row flex-wrap gap-4\",\n children: highlightingExamples\n })\n }), _jsx(Library.SectionL2, {\n title: \"State indicators\",\n children: _jsx(\"div\", {\n className: \"my-4 flex flex-row flex-wrap gap-4\",\n children: stateExamples\n })\n }), _jsx(Library.SectionL2, {\n title: \"Focus indicators\",\n children: _jsx(\"div\", {\n className: \"my-4 flex flex-row flex-wrap gap-4\",\n children: focusExamples\n })\n })]\n });\n}\n//# sourceMappingURL=ColorsPage.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Fixture-like \"sample\" HTML-cased components for filling out pattern and\n * component examples.\n */\n\n/**\n * <li> elements for examples. The international NATO phonetic (radio) alphabet.\n */\nexport function SampleListElements() {\n return _jsxs(_Fragment, {\n children: [_jsx(\"li\", {\n children: \"Alpha\"\n }), _jsx(\"li\", {\n children: \"Bravo\"\n }), _jsx(\"li\", {\n children: \"Charlie\"\n }), _jsx(\"li\", {\n children: \"Delta\"\n }), _jsx(\"li\", {\n children: \"Echo\"\n }), _jsx(\"li\", {\n children: \"Foxtrot\"\n }), _jsx(\"li\", {\n children: \"Golf\"\n }), _jsx(\"li\", {\n children: \"Hotel\"\n }), _jsx(\"li\", {\n children: \"India\"\n }), _jsx(\"li\", {\n children: \"Juliett\"\n }), _jsx(\"li\", {\n children: \"Kilo\"\n }), _jsx(\"li\", {\n children: \"Lima\"\n }), _jsx(\"li\", {\n children: \"Mike\"\n }), _jsx(\"li\", {\n children: \"November\"\n }), _jsx(\"li\", {\n children: \"Oscar\"\n }), _jsx(\"li\", {\n children: \"Papa\"\n }), _jsx(\"li\", {\n children: \"Quebec\"\n }), _jsx(\"li\", {\n children: \"Romeo\"\n }), _jsx(\"li\", {\n children: \"Sierra\"\n }), _jsx(\"li\", {\n children: \"Tango\"\n }), _jsx(\"li\", {\n children: \"Uniform\"\n }), _jsx(\"li\", {\n children: \"Victor\"\n }), _jsx(\"li\", {\n children: \"Whiskey\"\n }), _jsx(\"li\", {\n children: \"XRay\"\n }), _jsx(\"li\", {\n children: \"Yankee\"\n }), _jsx(\"li\", {\n children: \"Zulu\"\n })]\n });\n}\nexport function SampleTableBody() {\n return _jsxs(\"tbody\", {\n children: [_jsxs(\"tr\", {\n children: [_jsx(\"td\", {\n children: \"Alphanumeric Balloons\"\n }), _jsx(\"td\", {\n children: \"Champagne Delusions\"\n })]\n }), _jsxs(\"tr\", {\n children: [_jsx(\"td\", {\n children: \"Elephantine Fry-ups\"\n }), _jsx(\"td\", {\n children: \"Gargantuan Hiccups\"\n })]\n }), _jsxs(\"tr\", {\n className: \"is-selected\",\n children: [_jsx(\"td\", {\n children: \"Illicit Jugglers\"\n }), _jsx(\"td\", {\n children: \"Katydid Lozenges Meringue\"\n })]\n }), _jsxs(\"tr\", {\n children: [_jsx(\"td\", {\n children: \"Alphanumeric Balloons\"\n }), _jsx(\"td\", {\n children: \"Champagne Delusions\"\n })]\n }), _jsxs(\"tr\", {\n children: [_jsx(\"td\", {\n children: \"Elephantine Fry-ups\"\n }), _jsx(\"td\", {\n children: \"Gargantuan Hiccups\"\n })]\n }), _jsxs(\"tr\", {\n children: [_jsx(\"td\", {\n children: \"Illicit Jugglers\"\n }), _jsx(\"td\", {\n children: \"Katydid Lozenges Moebius\"\n })]\n }), _jsxs(\"tr\", {\n children: [_jsx(\"td\", {\n children: \"Elephantine Fry-ups\"\n }), _jsx(\"td\", {\n children: \"Gargantuan Hiccups\"\n })]\n }), _jsxs(\"tr\", {\n children: [_jsx(\"td\", {\n children: \"Illicit Jugglers\"\n }), _jsx(\"td\", {\n children: \"Katydid Lozenges Meringue\"\n })]\n }), _jsxs(\"tr\", {\n children: [_jsx(\"td\", {\n children: \"Alphanumeric Balloons\"\n }), _jsx(\"td\", {\n children: \"Champagne Delusions\"\n })]\n })]\n });\n}\n/**\n * Render some example Lorem Ipsum text at different lengths.\n */\nexport function LoremIpsum({\n size = 'lg'\n}) {\n if (size === 'xs') {\n return _jsxs(_Fragment, {\n children: [_jsx(\"p\", {\n children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis a sapien cursus, fringilla diam posuere, varius urna.\"\n }), _jsx(\"p\", {\n children: \"Phasellus dictum sodales dui, sed scelerisque mauris auctor et. Integer suscipit justo in erat tristique, nec feugiat augue ultrices.\"\n })]\n });\n } else if (size === 'sm') {\n return _jsx(\"p\", {\n children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis a sapien cursus, fringilla diam posuere, varius urna. Phasellus dictum sodales dui, sed scelerisque mauris auctor et. Integer suscipit justo in erat tristique, nec feugiat augue ultrices. Sed accumsan pretium commodo. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut lobortis tortor metus, sed rutrum risus ultricies non. Maecenas ultricies rutrum diam non feugiat. Nam ut ex ac enim efficitur semper.\"\n });\n } else if (size === 'md') {\n return _jsxs(_Fragment, {\n children: [_jsx(\"p\", {\n children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis a sapien cursus, fringilla diam posuere, varius urna. Phasellus dictum sodales dui, sed scelerisque mauris auctor et. Integer suscipit justo in erat tristique, nec feugiat augue ultrices. Sed accumsan pretium commodo. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut lobortis tortor metus, sed rutrum risus ultricies non. Maecenas ultricies rutrum diam non feugiat. Nam ut ex ac enim efficitur semper.\"\n }), _jsx(\"p\", {\n children: \"Integer sed rhoncus eros. Nulla pharetra vulputate faucibus. Vestibulum vestibulum orci non maximus aliquet. Donec id dui ac ipsum pellentesque gravida sit amet non sem. Suspendisse malesuada turpis id erat porta, nec luctus odio mollis. Sed a arcu sed sem venenatis porta. In dictum sapien ut congue facilisis. Curabitur consequat vestibulum ultricies.\"\n }), _jsx(\"p\", {\n children: \"Vivamus rhoncus vitae sapien id volutpat. Fusce ac nisi dolor. Suspendisse ut venenatis ex. Quisque elementum libero quam, non consectetur lorem faucibus a. Sed eu orci vitae nibh sodales sodales ut at neque. Ut lobortis arcu eu lorem porttitor scelerisque. Aenean euismod est ac enim fermentum, sit amet tristique dui consequat. Phasellus vitae sapien dolor. Nulla iaculis nibh at magna convallis finibus ut vitae ipsum.\"\n })]\n });\n } else {\n return _jsx(\"p\", {\n children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis a sapien cursus, fringilla diam posuere, varius urna. Phasellus dictum sodales dui, sed scelerisque mauris auctor et. Integer suscipit justo in erat tristique, nec feugiat augue ultrices. Sed accumsan pretium commodo. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut lobortis tortor metus, sed rutrum risus ultricies non. Maecenas ultricies rutrum diam non feugiat. Nam ut ex ac enim efficitur semper. Integer sed rhoncus eros. Nulla pharetra vulputate faucibus. Vestibulum vestibulum orci non maximus aliquet. Donec id dui ac ipsum pellentesque gravida sit amet non sem. Suspendisse malesuada turpis id erat porta, nec luctus odio mollis. Sed a arcu sed sem venenatis porta. In dictum sapien ut congue facilisis. Curabitur consequat vestibulum ultricies. Vivamus rhoncus vitae sapien id volutpat. Fusce ac nisi dolor. Suspendisse ut venenatis ex. Quisque elementum libero quam, non consectetur lorem faucibus a. Sed eu orci vitae nibh sodales sodales ut at neque. Ut lobortis arcu eu lorem porttitor scelerisque. Aenean euismod est ac enim fermentum, sit amet tristique dui consequat. Phasellus vitae sapien dolor. Nulla iaculis nibh at magna convallis finibus ut vitae ipsum. Maecenas ultricies ultrices diam laoreet lacinia. Nunc commodo eu lorem a bibendum. Sed eu magna rutrum, consectetur orci sit amet, venenatis ex. Aliquam sodales nec odio ac ultricies. In sit amet congue ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus accumsan justo nec maximus sollicitudin. Aenean eu urna egestas justo dignissim venenatis quis quis massa. Pellentesque convallis posuere elit, eu interdum diam placerat et. Aenean cursus vehicula nibh, in scelerisque nunc feugiat eu. Praesent eleifend ipsum eget urna dictum semper. Nullam dapibus nisl sit amet ultricies lobortis. Vestibulum a velit neque. Suspendisse tincidunt aliquet lorem et consectetur. Phasellus at libero fringilla nulla egestas aliquam. Nullam ut magna risus. Etiam consequat neque sapien, vel ultrices justo vehicula sit amet. Donec semper facilisis odio vel faucibus. Integer eget sagittis justo. Integer sed tincidunt neque. In vulputate fermentum lacus, eget sollicitudin nisi vestibulum vel. Etiam porttitor varius justo, id efficitur tellus congue a. Cras condimentum congue lectus sit amet commodo. Etiam lacus ex, efficitur volutpat enim id, malesuada posuere metus. Mauris convallis convallis arcu, sit amet placerat felis sodales ut. Duis semper a risus ac consequat. Nulla id nibh sem. Aliquam et nulla nec lectus viverra lobortis. Vivamus eros enim, lobortis nec efficitur nec, rhoncus at tortor. Aliquam aliquet bibendum ipsum eu feugiat. Duis iaculis bibendum ligula non ultricies. Curabitur cursus nulla in nisl tincidunt, eget eleifend tellus ultricies. Pellentesque eget mauris nec magna ultrices fringilla id sit amet nulla. Ut nec velit sed augue eleifend pharetra. Aliquam a posuere massa. Nunc vitae tortor ut est cursus vestibulum. In hac habitasse platea dictumst. Nulla eget orci eleifend, elementum turpis vitae, consectetur magna. In in nulla in tellus vestibulum pharetra. Curabitur at rhoncus enim, tempus congue est. Nullam consectetur lobortis nunc, vel feugiat lorem semper a. Ut tellus nulla, tempus id posuere vel, luctus et sem. Nulla nec rhoncus mi. Aenean sit amet mollis nibh. Nam ullamcorper tellus quis arcu aliquam, dignissim ultricies justo efficitur. Cras non ipsum tempor, elementum dui id, pellentesque turpis. Praesent commodo dolor in elit aliquet, sit amet pellentesque sem molestie. In pharetra nisl nec orci pellentesque, ut posuere quam faucibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas mollis purus non erat tempor euismod. Vestibulum non leo eget magna vestibulum mattis. Aenean vitae tortor vel mauris pretium tempor. Sed viverra eros tristique, dapibus tellus a, feugiat ipsum. Pellentesque non tellus scelerisque, molestie massa vitae, fermentum ex. Quisque molestie interdum nibh a luctus. Sed aliquet risus ac varius suscipit. Proin eget leo vel lacus finibus posuere vel non nisl. In tristique ligula leo, sed molestie sem sodales nec. Phasellus sed consectetur lectus. In pretium hendrerit eros, a sagittis est faucibus ac. Etiam faucibus felis et eros commodo fringilla. Duis volutpat lobortis suscipit. Maecenas facilisis metus in lorem aliquet efficitur. Duis scelerisque eros scelerisque, rhoncus massa eget, tempor ipsum. Donec id feugiat purus, non condimentum turpis. Sed consequat lorem a odio pharetra pretium. Proin sed turpis ac sapien convallis iaculis a sit amet est. Proin lorem risus, rhoncus non metus at, fringilla commodo erat. Sed quis elit vitae leo ullamcorper interdum non nec ipsum. Etiam ullamcorper lorem ac velit condimentum, eget porttitor odio mollis. Maecenas semper, urna eu cursus placerat, enim neque aliquam orci, ut elementum justo ex id justo. Nunc malesuada egestas dui at vestibulum.\"\n });\n }\n}\nexport function sampleTableContent() {\n return {\n tableHeaders: [{\n label: 'Name'\n }, {\n label: 'Last modified'\n }],\n items: [{\n displayName: 'Persnickety.pdf',\n updated: 'Jul 28, 2021'\n }, {\n displayName: 'Albumen.pdf',\n updated: 'Jul 20, 2021'\n }, {\n displayName: 'Yams-and-sauce.pdf',\n updated: 'Aug 04, 2021'\n }, {\n displayName: 'Coneflowers-and-their-allies.pdf',\n updated: 'Aug 01, 2021'\n }, {\n displayName: 'Dollars-and-sense.pdf',\n updated: 'Aug 22, 2021'\n }, {\n displayName: 'Mendicant Friars.PDF',\n updated: 'Jul 20, 2021'\n }, {\n displayName: 'Paleogeography.pdf',\n updated: 'Aug 04, 2021'\n }, {\n displayName: 'Foregone conclusions.pdf',\n updated: 'Aug 01, 2021'\n }, {\n displayName: 'Forklifts-and-bananas.pdf',\n updated: 'Aug 01, 2021'\n }, {\n displayName: 'Coracles.pdf',\n updated: 'Aug 05, 2021'\n }]\n };\n}\nexport function nabokovNovels() {\n return [{\n title: 'Машенька',\n year: '1926',\n language: 'Russian',\n translatedTitle: 'Mary'\n }, {\n title: 'Король, дама, валет',\n year: '1928',\n language: 'Russian',\n translatedTitle: 'King, Queen, Knave'\n }, {\n title: 'Защита Лужина',\n year: '1930',\n language: 'Russian',\n translatedTitle: 'The Defense'\n }, {\n title: 'Соглядатай',\n year: '1930',\n language: 'Russian',\n translatedTitle: 'The Eye'\n }, {\n title: 'The Real Life of Sebastian Knight',\n year: '1941',\n language: 'English'\n }, {\n title: 'Bend Sinister',\n year: '1947',\n language: 'English'\n }, {\n title: 'Pale Fire',\n year: '1965',\n language: 'English'\n }, {\n title: 'Подвиг',\n year: '1932',\n language: 'Russian',\n translatedTitle: 'Glory'\n }, {\n title: 'Ada or Ardor: A Family Chronicle',\n year: '1969',\n language: 'English'\n }];\n}\n//# sourceMappingURL=samples.js.map","import { useCallback, useRef, useState } from 'preact/hooks';\nimport { Button, DataTable, Scroll } from '../../../../';\nimport { useOrderedRows } from '../../../../hooks/use-ordered-rows';\nimport Library from '../../Library';\nimport { nabokovNovels } from '../samples';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"preact/jsx-runtime\";\nconst nabokovRows = nabokovNovels();\nconst nabokovColumns = [{\n field: 'title',\n label: 'Title'\n}, {\n field: 'year',\n label: 'Year'\n}, {\n field: 'language',\n label: 'Language'\n}];\nfunction ClientOrderableDataTable({\n rows,\n // By default, all columns are orderable\n orderableColumns = nabokovColumns.map(({\n field\n }) => field),\n ...rest\n}) {\n const [order, setOrder] = useState();\n const orderedRows = useOrderedRows(rows, order);\n return _jsxs(_Fragment, {\n children: [_jsx(Button, {\n classes: \"mb-2\",\n onClick: () => setOrder(undefined),\n children: \"Reset order\"\n }), _jsx(\"div\", {\n className: \"h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n ...rest,\n rows: orderedRows,\n order: order,\n orderableColumns: orderableColumns,\n onOrderChange: setOrder\n })\n })\n })]\n });\n}\nfunction AsyncOrderableDataTable({\n rows,\n // By default, all columns are orderable\n orderableColumns = nabokovColumns.map(({\n field\n }) => field),\n ...rest\n}) {\n const [loading, setLoading] = useState(false);\n const [order, setOrder] = useState();\n const activeTimeout = useRef(null);\n const changeOrder = useCallback(newOrder => {\n if (activeTimeout.current) {\n // Abort current ordering, if any\n clearTimeout(activeTimeout.current);\n }\n setOrder(newOrder);\n setLoading(true);\n activeTimeout.current = setTimeout(() => {\n setLoading(false);\n activeTimeout.current = null;\n }, 600);\n }, []);\n const orderedRows = useOrderedRows(rows, order);\n return _jsxs(_Fragment, {\n children: [_jsx(Button, {\n classes: \"mb-2\",\n onClick: () => changeOrder(undefined),\n children: \"Reset order\"\n }), _jsx(\"div\", {\n className: \"h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n ...rest,\n rows: orderedRows,\n order: order,\n orderableColumns: orderableColumns,\n onOrderChange: changeOrder,\n loading: loading\n })\n })\n })]\n });\n}\nexport default function DataTablePage() {\n // For examples that support single selection\n const [selectedRow, setSelectedRow] = useState(nabokovRows[nabokovRows.length - 1]);\n const [selectedRow2, setSelectedRow2] = useState(null);\n const [confirmedRow, setConfirmedRow] = useState(null);\n\n // For examples that support multi-selection\n const [selectedRows, setSelectedRows] = useState([]);\n return _jsx(Library.Page, {\n title: \"DataTable\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"DataTable\"\n }), \" is a composite component that provides support for interactive tables with columns and rows data. It is built atop the \", _jsx(\"code\", {\n children: \"Table\"\n }), \" family of presentational components.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"DataTable\"\n }), _jsx(Library.Demo, {\n title: \"Basic DataTable\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"A subset of Nabokov's novels with publish date and original language\",\n rows: nabokovRows,\n columns: nabokovColumns\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with tables\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Rows, columns and items\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"DataTable\"\n }), \" operates on \", _jsx(\"code\", {\n children: \"rows\"\n }), \" and\", _jsx(\"code\", {\n children: \"columns\"\n }), \". Rows are generic key-value objects and columns determine which fields in each row are rendered in the table.\"]\n }), _jsxs(\"p\", {\n children: [\"All of the \", _jsx(\"code\", {\n children: \"DataTable\"\n }), \" examples on this page use the same \", _jsx(\"code\", {\n children: \"rows\"\n }), \" data:\"]\n }), _jsx(\"div\", {\n className: \"h-[300px]\",\n children: _jsx(Library.Code, {\n title: \"rows data used for examples on this page\",\n content: `const rows = [\n {\n title: 'Машенька',\n year: '1926',\n language: 'Russian',\n translatedTitle: 'Mary',\n },\n {\n title: 'Король, дама, валет',\n year: '1928',\n language: 'Russian',\n translatedTitle: 'King, Queen, Knave',\n },\n {\n title: 'Защита Лужина',\n year: '1930',\n language: 'Russian',\n translatedTitle: 'The Defense',\n },\n {\n title: 'Соглядатай',\n year: '1930',\n language: 'Russian',\n translatedTitle: 'The Eye',\n },\n {\n title: 'The Real Life of Sebastian Knight',\n year: '1941',\n language: 'English',\n },\n {\n title: 'Bend Sinister',\n year: '1947',\n language: 'English',\n },\n {\n title: 'Pale Fire',\n year: '1965',\n language: 'English',\n },\n {\n title: 'Подвиг',\n year: '1932',\n language: 'Russian',\n translatedTitle: 'Glory',\n },\n {\n title: 'Ada or Ardor: A Family Chronicle',\n year: '1969',\n language: 'English',\n },\n ];`\n })\n }), _jsx(Library.Code, {\n title: \"example of columns\",\n content: `const columns = [\n { field: 'title', label: 'Title', classes: 'w-[80%]' },\n { field: 'year', label: 'Year' },\n];`\n })]\n }), _jsx(Library.SectionL3, {\n title: \"Grid DataTables with scroll\",\n children: _jsx(Library.Demo, {\n title: \"Grid DataTables with scroll\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"A subset of Nabokov's novels with publish date and original language\",\n rows: nabokovRows,\n columns: nabokovColumns,\n grid: true\n })\n })\n })\n })\n }), _jsxs(Library.SectionL3, {\n title: \"Interactive DataTables\",\n children: [_jsxs(\"p\", {\n children: [\"The presence of a \", _jsx(\"code\", {\n children: \"onSelectRow\"\n }), \",\", ' ', _jsx(\"code\", {\n children: \"onSelectRows\"\n }), \" or \", _jsx(\"code\", {\n children: \"onConfirmRow\"\n }), \" callback prop will cause a \", _jsx(\"code\", {\n children: \"DataTable\"\n }), \" to be interactive.\"]\n }), _jsxs(\"p\", {\n children: [\"Rows in interactive \", _jsx(\"code\", {\n children: \"DataTable\"\n }), \"s can be\", ' ', _jsx(\"strong\", {\n children: \"selected\"\n }), \" by a single click or keyboard navigation focus, then subsequently \\u2014 if \", _jsx(\"code\", {\n children: \"onConfirmRow\"\n }), \" is provided \\u2014 \", _jsx(\"strong\", {\n children: \"confirmed\"\n }), \" with a double-click or by pressing \", \"'Enter'\", \".\"]\n }), _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"DataTable\"\n }), \" does not maintain internal state and expects a parent component to provide the current selected rows. If the user should be able to select a single row, this should be passed via \", _jsx(\"code\", {\n children: \"selectedRow\"\n }), \". If the user should be allowed to selected multiple rows, the selection should be passed via\", ' ', _jsx(\"code\", {\n children: \"selectedRows\"\n }), \".\"]\n }), _jsx(Library.Demo, {\n title: \"Interactive DataTable with callbacks for row selection, confirmation\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"space-y-2 w-full\",\n children: [_jsxs(\"div\", {\n children: [\"Selected row:\", ' ', selectedRow2 ? _jsx(\"i\", {\n children: selectedRow2.title\n }) : 'None']\n }), _jsxs(\"div\", {\n children: [\"Confirmed row:\", ' ', confirmedRow ? _jsx(\"i\", {\n children: confirmedRow.title\n }) : 'None']\n }), _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns,\n selectedRow: selectedRow2,\n onSelectRow: row => setSelectedRow2(row),\n onConfirmRow: row => setConfirmedRow(row)\n })\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Tables in constrained spaces\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"DataTable\"\n }), \" and \", _jsx(\"code\", {\n children: \"Table\"\n }), \" are designed to be compatible with scrolling contexts. The examples on this page are constrained within \", _jsx(\"code\", {\n children: \"Scroll\"\n }), \" components.\"]\n }), _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"DataTable\"\n }), \" is designed to fill its containing space vertically. If there are sparse data (fewer rows than fill the space), the \", _jsx(\"code\", {\n children: \"Table\"\n }), \" will still occupy the full vertical height.\"]\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"Constrained Table with sparse content\",\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"A subset of Nabokov's novels with publish date and original language\",\n rows: [nabokovRows[0], nabokovRows[1]],\n columns: nabokovColumns\n })\n })\n })\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"DataTable\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#composite-components-api\",\n children: \"composite component props\"\n }), ' ', \"and some\", ' ', _jsxs(Library.Link, {\n href: \"/data-table#table-props\",\n children: [_jsx(\"code\", {\n children: \"Table\"\n }), \" presentational props\"]\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"columns\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"An array of objects defining headers to render, as well as which fields in \", _jsx(\"code\", {\n children: \"rows\"\n }), \" are rendered. Optional\", ' ', _jsx(\"code\", {\n children: \"classes\"\n }), \" extend CSS classes applied to associated\", ' ', _jsx(\"code\", {\n children: \"th\"\n }), \" elements.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(Library.Code, {\n size: \"sm\",\n content: `Array<{\n field: string;\n label: string;\n classes?: string;\n}>\n`\n })\n }), _jsx(Library.InfoItem, {\n label: \"required\",\n children: _jsx(\"code\", {\n children: \"true\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Setting columns for a DataTable\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"Some of Nabokov's novels and their publish date\",\n rows: nabokovRows,\n columns: [{\n field: 'title',\n label: 'Title',\n classes: 'w-[80%]'\n }, {\n field: 'year',\n label: 'Year'\n }]\n })\n })\n })\n }), _jsx(Library.Code, {\n title: \"columns data used for this example\",\n content: `const columns = [\n { field: 'title', label: 'Title', classes: 'w-[80%]' },\n { field: 'year', label: 'Year' },\n];`\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"rows\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Array of objects mapping field names to values. Only fields that are declared in \", _jsx(\"code\", {\n children: \"columns\"\n }), \" will be rendered.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Array<Record<string,any>`\n })\n }), _jsx(Library.InfoItem, {\n label: \"required\",\n children: _jsx(\"code\", {\n children: \"true\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Only fields declared in columns are rendered\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"A subset of Nabokov's novels with publish date and original language\",\n rows: nabokovRows,\n columns: nabokovColumns\n })\n })\n })\n }), _jsxs(\"p\", {\n children: [\"In this example, the \", _jsx(\"code\", {\n children: \"translatedTitle\"\n }), \" field is not referenced in \", _jsx(\"code\", {\n children: \"columns\"\n }), \", so it is not rendered.\"]\n }), _jsx(Library.Code, {\n title: \"columns data used for this example\",\n content: `const columns = [\n { field: 'title', label: 'Title' },\n { field: 'year', label: 'Year' },\n { field: 'language', label: 'Language' },\n];`\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"emptyMessage\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Message to show if there are no \", _jsx(\"code\", {\n children: \"rows\"\n }), \". Superseded by\", ' ', _jsx(\"code\", {\n children: \"loading\"\n }), \" state.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `preact.ComponentChildren`\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"Some of Nabokov's novels\",\n rows: [],\n columns: nabokovColumns,\n emptyMessage: _jsx(\"strong\", {\n children: \"No books found\"\n })\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"loading\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Show a loading spinner. Column headings are still displayed.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns,\n loading: true\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"renderItem\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Callback for formatting the contents of an individual table cell.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `(r: Row, field: keyof Row) => preact.ComponentChildren`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `(r: Row, field: keyof Row) => r[field] as ComponentChildren`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Using renderItem to format table cell contents\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"Some of Nabokov's novels and their translated titles\",\n rows: nabokovRows,\n columns: [{\n field: 'title',\n label: 'Title'\n }, {\n field: 'translatedTitle',\n label: 'Translated As'\n }, {\n field: 'year',\n label: 'Year'\n }],\n renderItem: (row, field) => {\n switch (field) {\n case 'title':\n return _jsx(\"i\", {\n children: row.title\n });\n case 'translatedTitle':\n return row.translatedTitle ? _jsx(\"i\", {\n children: row.translatedTitle\n }) : 'N/A';\n default:\n return row[field];\n }\n }\n })\n })\n })\n }), _jsx(Library.Code, {\n title: \"renderItem callback used for this example\",\n size: \"sm\",\n content: `const renderItem = (row, field) => {\n switch (field) {\n case 'title':\n return <i>{row.title}</i>;\n case 'translatedTitle':\n return row.translatedTitle ? (\n <i>{row.translatedTitle}</i>\n ) : (\n 'N/A'\n );\n default:\n return row[field];\n }\n}`\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"onSelectRow\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Callback invoked when a row is selected (focused or single-clicked).\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `(r: Row) => void`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"DataTable with onSelectRow callback\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"space-y-2 w-full\",\n children: [_jsxs(\"div\", {\n children: [\"Selected row:\", ' ', selectedRow ? _jsx(\"i\", {\n children: selectedRow.title\n }) : 'None']\n }), _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns,\n selectedRow: selectedRow,\n onSelectRow: row => setSelectedRow(row)\n })\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"onSelectRows\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Callback invoked when the selected rows are changed if multi-row selections are enabled by passing the `selectedRows` prop.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `(r: Row[]) => void`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"DataTable with onSelectRows callback\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"space-y-2 w-full\",\n children: [_jsxs(\"div\", {\n children: [\"Selected rows:\", ' ', selectedRows.length > 0 ? _jsx(\"i\", {\n children: selectedRows.map(r => r.title).join(', ')\n }) : 'None']\n }), _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns,\n selectedRows: selectedRows,\n onSelectRows: rows => setSelectedRows(rows)\n })\n })\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"onConfirmRow\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Callback invoked when a row is confirmed (double-clicked, or\", ' ', _jsx(\"kbd\", {\n children: \"enter\"\n }), \" pressed)\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `(r: Row) => void`\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"selectedRow\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set which Row in \", _jsx(\"code\", {\n children: \"rows\"\n }), \" is currently selected.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Row`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"DataTable with selectedRow\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-full h-[250px]\",\n children: _jsx(Scroll, {\n children: _jsx(DataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns,\n selectedRow: nabokovRows[2]\n })\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"selectedRows\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"This is like \", _jsx(\"code\", {\n children: \"selectedRow\"\n }), \" except that it specifies an array of rows, and enables the user to select multiple rows.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Row[]`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"order\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set the column from which \", _jsx(\"code\", {\n children: \"rows\"\n }), \" are currently ordered. It will cause an arrow icon to be displayed next to the corresponding column name.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `{ field: T; direction: 'ascending' | 'descending' } | null`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"onOrderChange\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Used together with \", _jsx(\"code\", {\n children: \"order\"\n }), \", can be used to know what is the new order to apply when a column is clicked. It will cause columns to have a pointer cursor.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `(newOrder: { field: T; direction: 'ascending' | 'descending' } | null) => void`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"DataTable with client-side ordering\",\n children: _jsx(\"div\", {\n className: \"w-full\",\n children: _jsx(ClientOrderableDataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns\n })\n })\n }), _jsx(Library.Demo, {\n title: \"DataTable with server-side ordering\",\n children: _jsx(\"div\", {\n className: \"w-full\",\n children: _jsx(AsyncOrderableDataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"orderableColumns\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"If provided together with \", _jsx(\"code\", {\n children: \"onOrderChange\"\n }), \", it allows to restrict which columns can be used to order the table, or define the initial ordering direction for every orderable column. Defaults to no columns.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Field[] | Partial<Record<Field, 'ascending' | 'descending'>> | undefined`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Partially orderable DataTable\",\n children: _jsx(\"div\", {\n className: \"w-full\",\n children: _jsx(ClientOrderableDataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns,\n orderableColumns: ['title', 'year']\n })\n })\n }), _jsx(Library.Demo, {\n title: \"Year orders descending by default\",\n children: _jsx(\"div\", {\n className: \"w-full\",\n children: _jsx(ClientOrderableDataTable, {\n title: \"Some of Nabokov's novels\",\n rows: nabokovRows,\n columns: nabokovColumns,\n orderableColumns: {\n title: 'ascending',\n year: 'descending'\n }\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"DataTable\"\n }), \" accepts HTML element attributes except those detailed below.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<JSX.HTMLAttributes<HTMLElement>, 'size' | 'rows' | 'role' | 'loading'>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=DataTablePage.js.map","import { useState, useRef, useCallback } from 'preact/hooks';\nimport { ArrowRightIcon, Button, CloseButton, DataTable, Dialog, EditIcon, IconButton, Input, InputGroup, Link, Scroll, Slider, Tab, TabList } from '../../../../';\nimport { ModalDialog } from '../../../../components/feedback';\nimport { confirm } from '../../../../util/prompts';\nimport Library from '../../Library';\nimport { LoremIpsum, nabokovNovels } from '../samples';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"preact/jsx-runtime\";\nconst nabokovRows = nabokovNovels();\nconst nabokovColumns = [{\n field: 'title',\n label: 'Title'\n}, {\n field: 'year',\n label: 'Year'\n}, {\n field: 'language',\n label: 'Language'\n}];\nfunction DialogButtons() {\n return _jsxs(_Fragment, {\n children: [_jsx(Button, {\n onClick: () => alert('You chose maybe'),\n children: \"Maybe\"\n }, \"maybe\"), _jsx(Button, {\n onClick: () => alert('You chose yep'),\n variant: \"primary\",\n children: \"Do it!\"\n }, \"yep\")]\n });\n}\n/**\n * Wrap the Dialog component with some state management to make reuse in\n * multiple examples plausible and convenient.\n */\nfunction Dialog_({\n _alwaysShowButton = false,\n _nonCloseable,\n children,\n ...dialogProps\n}) {\n var _dialogProps$buttons;\n const [dialogOpen, setDialogOpen] = useState(false);\n const closeDialog = () => setDialogOpen(false);\n const closeHandler = _nonCloseable ? undefined : closeDialog;\n const panelProps = dialogProps.variant !== 'custom' ? {\n buttons: (_dialogProps$buttons = dialogProps.buttons) !== null && _dialogProps$buttons !== void 0 ? _dialogProps$buttons : _jsx(Button, {\n onClick: closeDialog,\n children: \"Escape!\"\n })\n } : undefined;\n const openButton = _jsxs(Button, {\n onClick: () => setDialogOpen(!dialogOpen),\n variant: \"primary\",\n children: [dialogOpen ? 'Hide' : 'Show', \" dialog\"]\n });\n return _jsxs(\"div\", {\n className: \"flex w-full gap-x-2\",\n children: [(!dialogOpen || _alwaysShowButton) && _jsx(\"div\", {\n children: openButton\n }), _jsx(\"div\", {\n className: \"grow\",\n children: dialogOpen && _jsx(Dialog, {\n ...panelProps,\n ...dialogProps,\n onClose: closeHandler,\n children: children\n })\n })]\n });\n}\nfunction Confirm() {\n const [result, setResult] = useState(null);\n const showConfirm = useCallback(async () => {\n const answer = await confirm({\n message: 'This is a confirm dialog',\n // Optional options\n title: 'Your title',\n confirmAction: 'Yes please',\n cancelAction: 'I changed my mind'\n });\n setResult(answer);\n }, []);\n return _jsxs(_Fragment, {\n children: [_jsx(Button, {\n variant: \"primary\",\n onClick: showConfirm,\n children: \"Show confirm\"\n }), result !== null && _jsxs(_Fragment, {\n children: [\"You clicked \", result ? 'Yes' : 'Cancel']\n })]\n });\n}\n/**\n * Wrap the ModalDialog component with some state management to make reuse in\n * multiple examples plausible and convenient.\n */\nfunction ModalDialog_({\n buttons,\n _alwaysShowButton = false,\n _nonCloseable,\n children,\n ...dialogProps\n}) {\n const [dialogOpen, setDialogOpen] = useState(false);\n const closeDialog = () => setDialogOpen(false);\n const closeHandler = _nonCloseable ? undefined : closeDialog;\n const forwardedButtons = buttons ? buttons : _jsx(Button, {\n onClick: closeDialog,\n children: \"Escape!\"\n });\n const openButton = _jsxs(Button, {\n onClick: () => setDialogOpen(!dialogOpen),\n variant: \"primary\",\n children: [dialogOpen ? 'Hide' : 'Show', \" dialog\"]\n });\n return _jsxs(_Fragment, {\n children: [(!dialogOpen || _alwaysShowButton) && openButton, dialogOpen && _jsx(ModalDialog, {\n buttons: forwardedButtons,\n ...dialogProps,\n onClose: closeHandler,\n children: children\n })]\n });\n}\nfunction CustomModalDialog_(dialogProps) {\n const [dialogOpen, setDialogOpen] = useState(false);\n return _jsxs(_Fragment, {\n children: [_jsxs(Button, {\n onClick: () => setDialogOpen(prev => !prev),\n variant: \"primary\",\n children: [dialogOpen ? 'Hide' : 'Show', \" dialog\"]\n }), dialogOpen && _jsx(ModalDialog, {\n ...dialogProps,\n onClose: () => setDialogOpen(false),\n closeOnClickAway: true\n })]\n });\n}\nexport default function DialogPage() {\n const inputRef = useRef(null);\n\n // For the complex-modal example\n const [selectedRow, setSelectedRow] = useState(null);\n const [selectedTab, setSelectedTab] = useState('tab1');\n return _jsxs(Library.Page, {\n title: \"Dialogs\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Dialog\"\n }), \" and \", _jsx(\"code\", {\n children: \"ModalDialog\"\n }), \" provide functionality similar to a \", \"browser's\", \" \", _jsx(\"code\", {\n children: \"dialog\"\n }), \" element, with applied\", _jsx(\"code\", {\n children: \"Panel\"\n }), \" layout.\"]\n }),\n children: [_jsxs(Library.Section, {\n id: \"dialog\",\n title: \"Dialog\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Dialog\"\n }), \" renders a non-modal dialog. It handles focus routing and provides other optional dialog behaviors.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Dialog\"\n }), _jsx(Library.Demo, {\n title: \"Basic Dialog\",\n withSource: true,\n children: _jsxs(Dialog_, {\n buttons: _jsx(DialogButtons, {}),\n icon: EditIcon,\n initialFocus: inputRef,\n title: \"Basic dialog\",\n children: [_jsx(\"p\", {\n children: \"This is a basic Dialog that routes focus initially to a text input.\"\n }), _jsxs(InputGroup, {\n children: [_jsx(Input, {\n name: \"my-input\",\n elementRef: inputRef\n }), _jsx(IconButton, {\n icon: ArrowRightIcon,\n variant: \"dark\",\n title: \"go\"\n })]\n })]\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Working with Dialogs\",\n children: _jsxs(Library.SectionL3, {\n title: \"Laying out content\",\n children: [_jsxs(\"p\", {\n children: [\"By default, \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" will lay out its children in a\", ' ', _jsx(\"code\", {\n children: \"Panel\"\n }), \". Set \", _jsx(\"code\", {\n children: \"variant\"\n }), \" to\", ' ', _jsx(\"code\", {\n children: `'custom'`\n }), \" to use a custom layout.\"]\n }), _jsxs(\"p\", {\n children: [\"Use\", ' ', _jsx(Library.Link, {\n href: \"/input-closebutton\",\n children: _jsx(\"code\", {\n children: \"CloseButton\"\n })\n }), ' ', \"in custom dialog layouts to ensure the proper close handler is used.\"]\n }), _jsx(Library.Demo, {\n title: \"Dialog with custom layout\",\n withSource: true,\n children: _jsx(Dialog_, {\n variant: \"custom\",\n transitionComponent: Slider,\n children: _jsxs(\"div\", {\n className: \"flex gap-x-3 items-center border p-3 bg-white\",\n children: [_jsx(\"div\", {\n className: \"grow\",\n children: \"Custom dialog content\"\n }), _jsx(CloseButton, {})]\n })\n })\n })]\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Dialog\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#composite-components-api\",\n children: \"composite component props\"\n }), \".\"]\n }), _jsx(Library.SectionL3, {\n title: \"title\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A \", _jsx(\"code\", {\n children: \"title\"\n }), \" is required for all dialogs.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"required\",\n children: _jsx(\"code\", {\n children: \"true\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"classes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Atypically for a composite component, \", _jsx(\"code\", {\n children: \"Dialog\"\n }), ' ', \"accepts \", _jsx(\"code\", {\n children: \"classes\"\n }), \" (CSS classes). These will be appended to the classes applied to the \", \"dialog's\", \" container element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"closeOnClickAway\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"The \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" should close (invoke its\", ' ', _jsx(\"code\", {\n children: \"onClose\"\n }), \" callback) when there are click events outside of it\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Dialog that closes on external clicks\",\n withSource: true,\n children: _jsx(Dialog_, {\n closeOnClickAway: true,\n title: \"Dialog that closes when there are external clicks\",\n children: _jsx(\"p\", {\n children: \"This dialog will close if you click outside of it\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"closeOnEscape\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"The \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" should close (invoke its\", ' ', _jsx(\"code\", {\n children: \"onClose\"\n }), \" callback) when the \", _jsx(\"kbd\", {\n children: \"ESC\"\n }), \" key is pressed.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Dialog with close-on-Escape behavior\",\n withSource: true,\n children: _jsx(Dialog_, {\n closeOnEscape: true,\n title: \"Close on ESC\",\n children: _jsxs(\"p\", {\n children: [\"This dialog will close if you press \", _jsx(\"kbd\", {\n children: \"Escape\"\n }), \".\"]\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"closeOnFocusAway\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"The \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" should close (invoke its\", ' ', _jsx(\"code\", {\n children: \"onClose\"\n }), \" callback) when there are focus events outside of it.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Dialog that closes on external focus events\",\n withSource: true,\n children: _jsx(Dialog_, {\n closeOnFocusAway: true,\n title: \"Close on Away Focus\",\n children: _jsx(\"p\", {\n children: \"This dialog will close if you focus outside of it\"\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"initialFocus\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Determine how initial focus is routed when the\", ' ', _jsx(\"code\", {\n children: \"Dialog\"\n }), \" is mounted (opened). By default (\", _jsx(\"code\", {\n children: `'auto'`\n }), \"), the dialog itself will be focused. Provide a \", _jsx(\"code\", {\n children: \"ref\"\n }), \" to focus a specific element initially, or set to \", _jsx(\"code\", {\n children: `'manual'`\n }), \" to opt out of any focus routing.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `preact.RefObject<HTMLOrSVGElement | null> | 'auto' | 'manual'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'auto'`\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"onClose\",\n children: [_jsxs(Library.Callout, {\n children: [\"The \", _jsx(\"code\", {\n children: \"onClose\"\n }), \" prop is optional, but should be considered required for all new \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \"s. This flexibility exists to support legacy use cases of\", ' ', 'non-closeable', \" dialogs.\"]\n }), _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Callback invoked when the \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" should be closed.\", ' ', \"Note: \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \"s have no state \\u2014 when rendered, they are always open.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `() => void`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Non-closeable Dialog example\",\n withSource: true,\n children: _jsx(Dialog_, {\n icon: EditIcon,\n title: \"Non-closeable dialog example\",\n _nonCloseable: true,\n children: _jsxs(\"p\", {\n children: [\"This is a \", '\"non-closeable\"', \" \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \". This pattern should be avoided, but is supported for a few legacy use cases. You can close this modal by clicking the\", ' ', '\"Escape!\"', \" button.\"]\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"closeTitle\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Determine the accessible title to be set on the close button when \", _jsx(\"code\", {\n children: \"onClose\"\n }), \" has also been provided.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'Close'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Custom close title\",\n withSource: true,\n children: _jsx(Dialog_, {\n title: \"Custom close title\",\n closeTitle: \"Custom text here\",\n children: _jsx(\"p\", {\n children: \"This dialog has a custom title on the close button. Hover over it to see it.\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"restoreFocus\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Upon closing (unmounting), restore focus to the element that had focus before the \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" was opened (mounted).\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Dialog with focus restoration on close\",\n withSource: true,\n children: _jsx(Dialog_, {\n _alwaysShowButton: true,\n restoreFocus: true,\n title: \"Restore focus\",\n children: _jsx(\"p\", {\n children: \"This dialog will restore focus to the previously-focused element on close.\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"transitionComponent\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A \", _jsx(\"code\", {\n children: \"TransitionComponent\"\n }), \" to use when this\", ' ', _jsx(\"code\", {\n children: \"Dialog\"\n }), \" is opened/mounted and closed/unmounted. By default, no transition is applied.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"TransitionComponent\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Dialog with TransitionComponent example\",\n withSource: true,\n children: _jsx(Dialog_, {\n title: \"Dialog with TransitionComponent example\",\n transitionComponent: Slider,\n children: _jsx(\"p\", {\n children: \"This dialog has a slide down/up transition when opened/closed.\"\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"variant\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"By default, contents are laid out in a \", _jsx(\"code\", {\n children: \"Panel\"\n }), \". Set to \", _jsx(\"code\", {\n children: `'custom'`\n }), \" to lay out dialog content manually.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'panel' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'panel'`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...panelProps\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Dialog\"\n }), \" uses \", _jsx(\"code\", {\n children: \"Panel\"\n }), \" for layout. All\", ' ', _jsx(Library.Link, {\n href: \"/layout-panel\",\n children: \"Panel\"\n }), \" props are accepted and forwarded except for\", ' ', _jsx(\"code\", {\n children: \"fullWidthHeader\"\n }), \" (which is always set for\", ' ', _jsx(\"code\", {\n children: \"Dialog\"\n }), \").\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<PanelProps, 'fullWidthHeader'>`\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n id: \"modaldialog\",\n title: \"ModalDialog\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"ModalDialog\"\n }), \" renders a modal dialog with a full-screen backdrop overlay. It extends \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" and sets some different behavioral defaults.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"ModalDialog\"\n }), _jsx(Library.Demo, {\n title: \"Basic ModalDialog\",\n withSource: true,\n children: _jsxs(ModalDialog_, {\n _alwaysShowButton: true,\n buttons: _jsx(DialogButtons, {}),\n icon: EditIcon,\n initialFocus: inputRef,\n title: \"Basic dialog\",\n children: [_jsx(\"p\", {\n children: \"This is a basic ModalDialog.\"\n }), _jsxs(\"ul\", {\n className: \"list-disc m-8\",\n children: [_jsxs(\"li\", {\n children: [\"It will close if you press the \", _jsx(\"kbd\", {\n children: \"Escape\"\n }), \" key.\"]\n }), _jsx(\"li\", {\n children: \"It will trap focus and allow navigation with tab and shift-tab.\"\n }), _jsx(\"li\", {\n children: \"It will restore focus after it is closed.\"\n })]\n }), _jsxs(InputGroup, {\n children: [_jsx(Input, {\n name: \"my-input\",\n elementRef: inputRef\n }), _jsx(IconButton, {\n icon: ArrowRightIcon,\n variant: \"dark\",\n title: \"go\"\n })]\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with ModalDialogs\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Handling long content\",\n children: [_jsxs(\"p\", {\n children: [\"By default, content in a \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" or\", ' ', _jsx(\"code\", {\n children: \"ModalDialog\"\n }), \" will scroll as needed to keep the modal from exceeding viewport capacity.\"]\n }), _jsx(Library.Demo, {\n title: \"Modal with overflowing content\",\n withSource: true,\n children: _jsx(ModalDialog_, {\n buttons: _jsx(DialogButtons, {}),\n title: \"Modal with long content\",\n children: _jsx(LoremIpsum, {\n size: \"lg\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Handling complex modals\",\n children: [_jsxs(\"p\", {\n children: [\"Modal dialogs should provide appropriate keyboard navigation even when there are multiple or complex embedded widgts, like data tables (ARIA \", _jsx(\"code\", {\n children: `role=\"grid\"`\n }), \") or tabs (ARIA\", ' ', _jsx(\"code\", {\n children: `role=\"tablist\"`\n }), \").\"]\n }), _jsx(Library.Demo, {\n title: \"Modal with embedded ARIA widgets\",\n withSource: true,\n children: _jsxs(ModalDialog_, {\n buttons: _jsx(DialogButtons, {}),\n classes: \"h-[25rem]\",\n title: \"Modal with tabs and data table\",\n scrollable: false,\n children: [_jsxs(TabList, {\n classes: \"gap-x-4\",\n children: [_jsx(Tab, {\n textContent: \"Tab 1\",\n selected: selectedTab === 'tab1',\n onClick: () => setSelectedTab('tab1'),\n children: \"Tab 1\"\n }), _jsx(Tab, {\n textContent: \"Tab 2\",\n selected: selectedTab === 'tab2',\n onClick: () => setSelectedTab('tab2'),\n children: \"Tab 2\"\n })]\n }), _jsxs(\"p\", {\n children: [\"Content for both tabs, with\", ' ', _jsx(Link, {\n href: \"#\",\n underline: \"always\",\n children: \"a link\"\n }), \".\"]\n }), selectedTab === 'tab1' && _jsx(Scroll, {\n children: _jsx(DataTable, {\n rows: nabokovRows,\n columns: nabokovColumns,\n title: \"Nabokov novels\",\n selectedRow: selectedRow,\n onSelectRow: row => setSelectedRow(row)\n })\n }), selectedTab === 'tab2' && _jsxs(_Fragment, {\n children: [_jsx(\"p\", {\n children: \"This is content on another, second, tab.\"\n }), _jsxs(\"div\", {\n className: \"flex gap-x-4\",\n children: [_jsx(Button, {\n children: \"Click me\"\n }), _jsx(Button, {\n children: \"No, me!\"\n })]\n })]\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Managing modal height\",\n children: [_jsx(\"p\", {\n children: \"By default, the height of a modal is dependent on the content inside of it. It will grow in height as needed for the content until it fills the available vertical space in the viewport, after which it will (unless disabled) scroll overheight content.\"\n }), _jsx(\"p\", {\n children: \"But you may wish to control the height of your modals. There are two options:\"\n }), _jsxs(\"ul\", {\n children: [_jsxs(\"li\", {\n children: [_jsx(\"strong\", {\n children: \"Set a height on the ModalDialog\"\n }), \" itself via the\", ' ', _jsx(\"code\", {\n children: \"classes\"\n }), \" prop. The Modal will always render at this height. If contained content height exceeds this height, it will scroll.\"]\n }), _jsxs(\"li\", {\n children: [_jsxs(\"strong\", {\n children: [\"Set a minimum height on the \", \"ModalDialog's\", \" content\"]\n }), \". The ModalDialog will always render at least this height, but will grow in height if needed to accommodate longer content (up to the bounds of the viewport).\"]\n })]\n }), _jsx(Library.Demo, {\n title: \"ModalDialog with a fixed height\",\n withSource: true,\n children: _jsx(ModalDialog_, {\n title: \"Modal with a fixed height\",\n buttons: _jsx(DialogButtons, {}),\n classes: \"h-[25rem]\",\n children: _jsxs(\"p\", {\n children: [\"This ModalDialog has a height of \", _jsx(\"code\", {\n children: \"25rem\"\n }), \".\"]\n })\n })\n }), _jsx(Library.Demo, {\n title: \"Modal with a fixed height: long content\",\n withSource: true,\n children: _jsxs(ModalDialog_, {\n title: \"ModalDialog with a fixed height\",\n buttons: _jsx(DialogButtons, {}),\n classes: \"h-[25rem]\",\n children: [_jsxs(\"p\", {\n children: [\"This ModalDialog has a height of \", _jsx(\"code\", {\n children: \"25rem\"\n }), \" and long content.\"]\n }), _jsx(LoremIpsum, {\n size: \"lg\"\n })]\n })\n }), _jsx(Library.Demo, {\n title: \"Modal with a minimum content height and not much content\",\n withSource: true,\n children: _jsx(ModalDialog_, {\n title: \"Modal with minimum height set on content\",\n buttons: _jsx(DialogButtons, {}),\n children: _jsx(\"div\", {\n className: \"min-h-[15rem]\",\n children: _jsxs(\"p\", {\n children: [\"This \", \"ModalDialog's\", \" content has a preferred height of 15rem set by a CSS class.\"]\n })\n })\n })\n }), _jsx(Library.Demo, {\n title: \"Modal with a minimum height and scrolling content\",\n withSource: true,\n children: _jsx(ModalDialog_, {\n title: \"Modal with a minimum height and tall content\",\n buttons: _jsx(DialogButtons, {}),\n children: _jsxs(\"div\", {\n className: \"min-h-[15rem] space-y-3\",\n children: [_jsx(\"p\", {\n children: \"This modal has a preferred height of 15rem, but its content exceeds the height of the viewport, and scrolls.\"\n }), _jsx(\"hr\", {}), _jsx(\"p\", {\n children: _jsx(LoremIpsum, {\n size: \"lg\"\n })\n })]\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"Custom layout\",\n children: _jsx(Library.Demo, {\n title: \"Modal dialog with custom layout\",\n withSource: true,\n children: _jsx(CustomModalDialog_, {\n variant: \"custom\",\n children: _jsxs(\"div\", {\n className: \"flex gap-x-3 items-center border p-3 bg-white\",\n children: [_jsx(\"div\", {\n className: \"grow\",\n children: \"Custom dialog content\"\n }), _jsx(CloseButton, {})]\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"ComponentAPI\",\n children: [_jsx(Library.SectionL3, {\n title: \"title\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A \", _jsx(\"code\", {\n children: \"title\"\n }), \" is required for all modal dialogs.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"required\",\n children: _jsx(\"code\", {\n children: \"true\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"disableCloseOnEscape\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Do not close the \", _jsx(\"code\", {\n children: \"ModalDialog\"\n }), \" when \", _jsx(\"kbd\", {\n children: \"ESC\"\n }), \" is pressed.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"disableFocusTrap\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Do not trap focus in the modal.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsxs(Library.Callout, {\n children: [_jsx(\"em\", {\n children: \"Note\"\n }), \": Modal focus trapping is part of\", ' ', _jsx(Link, {\n href: \"https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/#keyboardinteraction\",\n underline: \"always\",\n children: \"WAI-ARIA authoring guidelines\"\n }), \". Disabling this prop is not recommended and could raise issues of accessibility.\"]\n })]\n }), _jsx(Library.SectionL3, {\n title: \"disableRestoreFocus\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Do not restore focus to previously-focused element when the modal is closed.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"size\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set the relative width of the modal element. Set to \", `'custom'`, ' ', \"to customize dimensions via \", _jsx(\"code\", {\n children: \"classes\"\n }), \".\", _jsx(\"br\", {}), \"Note that setting \", `'custom'`, \" value will disable both horizontal and vertical automatic sizing.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'sm' | 'md' | 'lg' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'md'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"size='sm'\",\n withSource: true,\n children: _jsx(ModalDialog_, {\n buttons: _jsx(DialogButtons, {}),\n title: \"Small modal\",\n size: \"sm\",\n children: _jsx(LoremIpsum, {\n size: \"sm\"\n })\n })\n }), _jsx(Library.Demo, {\n title: \"size='md' (default)\",\n withSource: true,\n children: _jsx(ModalDialog_, {\n buttons: _jsx(DialogButtons, {}),\n title: \"Medium-size modal\",\n size: \"md\",\n children: _jsx(LoremIpsum, {\n size: \"md\"\n })\n })\n }), _jsx(Library.Demo, {\n title: \"size='lg'\",\n withSource: true,\n children: _jsx(ModalDialog_, {\n buttons: _jsx(DialogButtons, {}),\n title: \"Wide modal\",\n size: \"lg\",\n children: _jsx(LoremIpsum, {\n size: \"md\"\n })\n })\n }), _jsx(Library.Demo, {\n title: \"size='custom'\",\n withSource: true,\n children: _jsx(ModalDialog_, {\n buttons: _jsx(DialogButtons, {}),\n classes: \"w-[40em] h-[80vh] top-[10vh]\",\n title: \"Custom-size modal\",\n size: \"custom\",\n children: _jsx(LoremIpsum, {\n size: \"md\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"scrollable (default true)\",\n children: [_jsx(\"p\", {\n children: \"By default, dialogs will scroll overflowing content. In some cases, it is desireable to scroll only a portion of the content, or to disable scrolling entirely.\"\n }), _jsxs(\"p\", {\n children: [\"The \", _jsx(\"i\", {\n children: \"Handling Complex Modals\"\n }), \" example above disables scrolling with the \", _jsx(\"code\", {\n children: \"scrollable\"\n }), \" prop.\"]\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...dialogAndPanelProps\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Props forwarded to \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" and \", _jsx(\"code\", {\n children: \"Panel\"\n }), \".\"]\n }), _jsxs(Library.InfoItem, {\n label: \"props\",\n children: [\"All \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" and \", _jsx(\"code\", {\n children: \"Panel\"\n }), \" props,\", ' ', _jsx(\"strong\", {\n children: \"except\"\n }), \":\", _jsxs(\"ul\", {\n children: [_jsxs(\"li\", {\n children: [_jsx(\"code\", {\n children: \"closeOnEscape (Dialog)\"\n }), \": Use\", ' ', _jsx(\"code\", {\n children: \"disableCloseOnEscape\"\n }), \" instead\"]\n }), _jsxs(\"li\", {\n children: [_jsx(\"code\", {\n children: \"restoreFocus (Dialog)\"\n }), \": Use\", ' ', _jsx(\"code\", {\n children: \"disableRestoreFocus\"\n }), \" instead\"]\n }), _jsxs(\"li\", {\n children: [_jsx(\"code\", {\n children: \"fullWidthHeader (Panel)\"\n }), \": always\", ' ', _jsx(\"code\", {\n children: \"true\"\n }), \" for all dialogs\"]\n })]\n })]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<DialogProps, 'restoreFocus' | 'closeOnEscape'>`\n })\n })]\n })\n })]\n })]\n }), _jsx(Library.Section, {\n id: \"confirmprompt\",\n title: \"confirm\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"confirm\"\n }), \" is a utility function that renders a\", ' ', _jsx(\"code\", {\n children: \"ModalDialog\"\n }), \" with two action buttons. It returns a\", ' ', _jsx(\"code\", {\n children: \"Promise\"\n }), \" resolving a \", _jsx(\"code\", {\n children: \"boolean\"\n }), \".\"]\n }),\n children: _jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"confirm\"\n }), _jsx(Library.Demo, {\n title: \"Basic confirm\",\n children: _jsx(Confirm, {})\n }), _jsx(Library.Demo, {\n title: \"Usage\",\n children: _jsx(Library.Code, {\n content: `const answer = await confirm({\n message: 'This is a confirm dialog',\n\n // Optional options\n title: 'Your title',\n confirmAction: 'Yes please',\n cancelAction: 'I changed my mind'\n});`\n })\n })]\n })\n })]\n });\n}\n//# sourceMappingURL=DialogPage.js.map","import { render } from 'preact';\nimport { createRef } from 'preact';\nimport ModalDialog from '../components/feedback/ModalDialog';\nimport Button from '../components/input/Button';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"preact/jsx-runtime\";\n/**\n * Show the user a prompt asking them to confirm an action.\n *\n * This is like an async version of `window.confirm` except that:\n *\n * - It can be used inside iframes (browsers are starting to prevent this for\n * the native `window.confirm` dialog)\n * - The visual style of the dialog matches the Hypothesis design system\n *\n * @return - Promise that resolves with `true` if the user confirmed the action\n * or `false` if they canceled it.\n */\nexport async function confirm({\n title = 'Confirm',\n message,\n confirmAction = 'Yes',\n cancelAction = 'Cancel',\n initialFocus = 'cancel'\n}) {\n const cancelButton = createRef();\n const confirmButton = createRef();\n const initialFocusRef = initialFocus === 'cancel' ? cancelButton : confirmButton;\n const container = document.createElement('div');\n container.setAttribute('data-testid', 'confirm-container');\n\n // Ensure dialog appears above any existing content. The Z-index value here\n // is Good Enough™ for current usage.\n container.style.position = 'relative';\n container.style.zIndex = '10';\n document.body.appendChild(container);\n return new Promise(resolve => {\n const close = result => {\n render(null, container);\n container.remove();\n resolve(result);\n };\n render(_jsx(ModalDialog, {\n buttons: _jsxs(_Fragment, {\n children: [_jsx(Button, {\n elementRef: cancelButton,\n \"data-testid\": \"cancel-button\",\n onClick: () => close(false),\n children: cancelAction\n }), _jsx(Button, {\n variant: \"primary\",\n elementRef: confirmButton,\n \"data-testid\": \"confirm-button\",\n onClick: () => close(true),\n children: confirmAction\n })]\n }),\n initialFocus: initialFocusRef,\n title: title,\n onClose: () => close(false),\n children: message\n }), container);\n });\n}\n//# sourceMappingURL=prompts.js.map","import { useCallback, useState } from 'preact/hooks';\nimport ToastMessages from '../../../../components/feedback/ToastMessages';\nimport Button from '../../../../components/input/Button';\nimport Link from '../../../../components/navigation/Link';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nconst toastMessages = [{\n message: 'Success toast message',\n type: 'success',\n autoDismiss: false\n}, {\n message: 'Warning toast message',\n type: 'notice',\n autoDismiss: false\n}, {\n message: 'Error toast message',\n type: 'error',\n autoDismiss: false\n}];\nfunction ToastMessages_({\n messages: initialMessages,\n transitionClasses,\n _printOnDismiss = false,\n _allowAppending = false\n}) {\n const [messages, setMessages] = useState(initialMessages.map((message, index) => ({\n id: `${index}`,\n ...message\n })));\n const [lastDismissedMessage, setLastDismissedMessage] = useState();\n const onMessageDismiss = useCallback(id => {\n setLastDismissedMessage(messages.find(message => message.id === id));\n setMessages(prev => prev.filter(message => message.id !== id));\n }, [messages]);\n const appendMessage = useCallback(({\n autoDismiss\n }) => {\n const newId = messages.length === 0 ? 1 : Number(messages[messages.length - 1].id) + 1;\n const newMessage = {\n id: `${newId}`,\n message: autoDismiss ? 'Dismissing in 5 seconds...' : 'Click me to dismiss',\n type: 'success',\n autoDismiss\n };\n setMessages(prev => [...prev, newMessage]);\n }, [messages]);\n return _jsxs(\"div\", {\n className: \"w-full\",\n children: [_allowAppending && _jsxs(\"div\", {\n className: \"flex gap-x-2 mb-3\",\n children: [_jsx(Button, {\n onClick: () => appendMessage({\n autoDismiss: false\n }),\n classes: \"mb-2\",\n variant: \"primary\",\n children: \"Append message\"\n }), _jsx(Button, {\n onClick: () => appendMessage({\n autoDismiss: true\n }),\n classes: \"mb-2\",\n variant: \"primary\",\n children: \"Append auto-dismiss message\"\n })]\n }), _jsxs(\"div\", {\n className: \"w-1/2 mx-auto flex flex-col gap-y-4\",\n children: [_jsx(ToastMessages, {\n messages: messages,\n onMessageDismiss: onMessageDismiss,\n transitionClasses: transitionClasses\n }), _printOnDismiss && lastDismissedMessage && _jsxs(\"div\", {\n children: [\"Just dismissed message \", '\"', lastDismissedMessage.message, '\"']\n })]\n })]\n });\n}\nexport default function ToastMessagesPage() {\n return _jsx(Library.Page, {\n title: \"ToastMessages\",\n intro: _jsxs(\"p\", {\n children: [\"ToastMessages is a component that wraps\", ' ', _jsx(Library.Link, {\n href: \"/feedback-callout\",\n children: \"Callout\"\n }), \" with out of the box accessibility, message auto-dismiss, dismiss-on-click, transitions and message positioning.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"ToastMessages\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n withSource: true,\n title: \"Basic ToastMessages\",\n children: _jsx(ToastMessages_, {\n messages: toastMessages,\n onMessageDismiss: () => {}\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with ToastMessages\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Accessibility\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"ToastMessages\"\n }), \" includes an\", ' ', _jsx(Link, {\n href: \"https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\",\n children: _jsxs(\"code\", {\n children: [\"aria-live=\", '\"', \"polite\", '\"']\n })\n }), ' ', \"wrapper which will announce added toast messages to screen readers.\"]\n }), _jsxs(\"p\", {\n children: [\"Additionally, it is possible to append hidden messages that are only announced by screen readers, via\", ' ', _jsx(\"code\", {\n children: '{ visuallyHidden: true }'\n })]\n })]\n }), _jsx(Library.SectionL3, {\n title: \"Positioning\",\n children: _jsxs(\"p\", {\n children: [\"By default, every message rendered by \", _jsx(\"code\", {\n children: \"ToastMessages\"\n }), ' ', \"will be relative positioned. It\", \"'\", \"s up to consumers to wrap it in an absolute-positioned container if desired.\"]\n })\n }), _jsx(Library.SectionL3, {\n title: \"Auto-dismiss\",\n children: _jsxs(\"p\", {\n children: [\"All messages will be auto-dismissed after 5 seconds. Pass\", _jsx(\"code\", {\n children: '{ autoDismiss: false }'\n }), \" for those messages where you want this to be prevented.\"]\n })\n }), _jsx(Library.SectionL3, {\n title: \"Transitions\",\n children: _jsxs(\"p\", {\n children: [\"All messages will fade-in when appended and fade-out when dismissed, but you can provide your own transition classes via\", ' ', _jsx(\"code\", {\n children: \"transitionClasses\"\n }), \" prop.\"]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(Library.SectionL3, {\n title: \"messages\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"The list of toast messages to display at a given point.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `ToastMessage[]`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"ToastMessages with one message\",\n withSource: true,\n children: _jsx(ToastMessages_, {\n messages: [toastMessages[0]],\n onMessageDismiss: () => {}\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"onMessageDismiss\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Callback invoked with the toast message id, when it ends its dismiss transition. The message with that id can then be removed from the list.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `(toastMessageId: string) => void`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Click a message to dismiss it\",\n withSource: true,\n children: _jsx(ToastMessages_, {\n messages: toastMessages,\n onMessageDismiss: () => {},\n _printOnDismiss: true\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"transitionClasses\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Custom CSS classes to apply to toast messages when appended and/or dismissed. By default they get\", ' ', _jsx(\"code\", {\n children: \"animate-fade-in\"\n }), \" and \", _jsx(\"code\", {\n children: \"animate-fade-out\"\n })]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `{ transitionIn?: string; transitionOut?: string; }`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Custom transitions\",\n withSource: true,\n children: _jsx(ToastMessages_, {\n messages: toastMessages,\n onMessageDismiss: () => {},\n transitionClasses: {\n transitionIn: 'animate-slide-in-from-right',\n transitionOut: 'animate-slide-out-to-right'\n },\n _allowAppending: true\n })\n })]\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=ToastMessagesPage.js.map","import { useState } from 'preact/hooks';\nimport { Button, CloseButton, Dialog } from '../../../../';\nimport Library from '../../Library';\n\n/**\n * Dialog for use in demos\n */\nimport { jsxs as _jsxs, jsx as _jsx } from \"preact/jsx-runtime\";\nfunction Dialog_({\n children,\n ...dialogProps\n}) {\n const [dialogOpen, setDialogOpen] = useState(false);\n const closeDialog = () => setDialogOpen(false);\n const openButton = _jsxs(Button, {\n onClick: () => setDialogOpen(!dialogOpen),\n variant: \"primary\",\n children: [dialogOpen ? 'Hide' : 'Show', \" dialog\"]\n });\n return _jsxs(\"div\", {\n className: \"flex w-full gap-x-2\",\n children: [!dialogOpen && _jsx(\"div\", {\n children: openButton\n }), _jsx(\"div\", {\n className: \"grow\",\n children: dialogOpen && _jsx(Dialog, {\n ...dialogProps,\n onClose: closeDialog,\n children: children\n })\n })]\n });\n}\nexport default function CloseButtonPage() {\n return _jsx(Library.Page, {\n title: \"CloseButton\",\n intro: _jsx(\"p\", {\n children: \"Render a close button that can take a click handler or find one in context.\"\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"CloseButton\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n withSource: true,\n title: \"Basic CloseButton\",\n children: _jsx(CloseButton, {})\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Working with CloseButton\",\n children: _jsxs(Library.SectionL3, {\n title: \"Click handlers for close buttons\",\n children: [_jsxs(\"p\", {\n children: [\"You can pass an \", _jsx(\"code\", {\n children: \"onClick\"\n }), \" prop to\", ' ', _jsx(\"code\", {\n children: \"CloseButton\"\n }), \" like any button and that will be used. If no \", _jsx(\"code\", {\n children: \"onClick\"\n }), \" is provided, \", _jsx(\"code\", {\n children: \"CloseButton\"\n }), \" will check for any available \", _jsx(\"code\", {\n children: \"CloseableContext\"\n }), \" close handler and use that, if found.\"]\n }), _jsxs(\"p\", {\n children: [\"For example, \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" components provide a\", ' ', _jsx(\"code\", {\n children: \"CloseableContext\"\n }), \". Any \", _jsx(\"code\", {\n children: \"CloseButton\"\n }), \" inside of a \", _jsx(\"code\", {\n children: \"Dialog\"\n }), \" with an \", _jsx(\"code\", {\n children: \"onClose\"\n }), \" handler will use that handler automatically: you do not need to provide an\", ' ', _jsx(\"code\", {\n children: \"onClick\"\n }), \" prop in these cases.\"]\n }), _jsx(Library.Demo, {\n title: \"Dialog with CloseButton\",\n withSource: true,\n children: _jsx(Dialog_, {\n variant: \"custom\",\n children: _jsxs(\"div\", {\n className: \"flex gap-x-3\",\n children: [_jsx(\"div\", {\n className: \"grow\",\n children: \"Example custom dialog\"\n }), _jsx(CloseButton, {})]\n })\n })\n })]\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"CloseButton\"\n }), \" provides the same API as\", ' ', _jsx(\"code\", {\n children: _jsx(Library.Link, {\n href: \"/input-button\",\n children: \"IconButton\"\n })\n }), \".\"]\n }), _jsx(Library.SectionL3, {\n title: \"title\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"This is an optional prop for \", _jsx(\"code\", {\n children: \"CloseButton\"\n }), \" (it is required for \", _jsx(\"code\", {\n children: \"IconButton\"\n }), \").\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `string`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'Close'`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=CloseButtonPage.js.map","import { useCallback, useId, useMemo, useState } from 'preact/hooks';\nimport { ArrowLeftIcon, ArrowRightIcon } from '../../components/icons';\nimport { IconButton, InputGroup } from '../../components/input';\nimport { Select } from '../../components/input/Select';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nconst students = [{\n id: '1',\n name: 'All students'\n}, {\n id: '2',\n name: 'Albert Banana'\n}, {\n id: '3',\n name: 'Bernard California'\n}, {\n id: '4',\n name: 'Cecelia Davenport'\n}, {\n id: '5',\n name: 'Doris Evanescence'\n}];\nfunction StudentContainer({\n student\n}) {\n return _jsxs(\"div\", {\n className: \"flex\",\n children: [_jsx(\"div\", {\n className: \"rounded px-2 mr-2 bg-grey-7 text-white\",\n children: student.id\n }), _jsx(\"div\", {\n className: \"truncate\",\n children: student.name\n })]\n });\n}\nexport default function App({\n buttonClasses,\n wrapperClasses = 'w-96'\n}) {\n const [selected, setSelected] = useState();\n const selectedIndex = useMemo(() => !selected ? -1 : students.findIndex(item => item === selected), [selected]);\n const next = useCallback(() => {\n var _students$newIndex;\n const newIndex = selectedIndex + 1;\n setSelected((_students$newIndex = students[newIndex]) !== null && _students$newIndex !== void 0 ? _students$newIndex : selected);\n }, [selected, selectedIndex]);\n const previous = useCallback(() => {\n var _students$newIndex2;\n const newIndex = selectedIndex - 1;\n setSelected((_students$newIndex2 = students[newIndex]) !== null && _students$newIndex2 !== void 0 ? _students$newIndex2 : selected);\n }, [selected, selectedIndex]);\n const buttonId = useId();\n return _jsxs(\"div\", {\n className: wrapperClasses,\n children: [_jsx(\"label\", {\n htmlFor: buttonId,\n children: \"Select a person\"\n }), _jsxs(InputGroup, {\n children: [_jsx(IconButton, {\n icon: ArrowLeftIcon,\n title: \"Previous student\",\n variant: \"dark\",\n onClick: previous,\n disabled: selectedIndex <= 0\n }), _jsx(Select, {\n buttonId: buttonId,\n value: selected,\n onChange: setSelected,\n buttonClasses: buttonClasses,\n buttonContent: selected ? _jsx(StudentContainer, {\n student: selected\n }) : _jsx(_Fragment, {\n children: \"Select one\\u2026\"\n }),\n children: students.map(item => _jsx(Select.Option, {\n value: item,\n children: _jsx(StudentContainer, {\n student: item\n })\n }, item.id))\n }), _jsx(IconButton, {\n icon: ArrowRightIcon,\n title: \"Next student\",\n variant: \"dark\",\n onClick: next,\n disabled: selectedIndex >= students.length - 1\n })]\n })]\n });\n}\n//# sourceMappingURL=select-in-input-group.js.map","import { useId, useState } from 'preact/hooks';\nimport { Select } from '../..';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nconst defaultItems = [{\n id: '1',\n name: 'All students'\n}, {\n id: '2',\n name: 'Albert Banana'\n}, {\n id: '3',\n name: 'Bernard California'\n}, {\n id: '4',\n name: 'Cecelia Davenport'\n}, {\n id: '5',\n name: 'Doris Evanescence'\n}];\nfunction ItemContainer({\n item\n}) {\n return _jsxs(\"div\", {\n className: \"flex\",\n children: [_jsx(\"div\", {\n className: \"rounded px-2 mr-2 bg-grey-7 text-white\",\n children: item.id\n }), _jsx(\"div\", {\n className: \"truncate\",\n children: item.name\n })]\n });\n}\nexport default function App({\n items = defaultItems\n}) {\n const [value, setSelected] = useState();\n const selectId = useId();\n return _jsxs(\"div\", {\n className: \"w-96 mx-auto\",\n children: [_jsx(\"label\", {\n htmlFor: selectId,\n children: \"Select a person\"\n }), _jsx(Select, {\n value: value,\n onChange: setSelected,\n buttonId: selectId,\n buttonContent: value ? _jsx(ItemContainer, {\n item: value\n }) : _jsx(_Fragment, {\n children: \"Select one\\u2026\"\n }),\n children: items.map(item => _jsx(Select.Option, {\n value: item,\n children: _jsx(ItemContainer, {\n item: item\n })\n }, item.id))\n })]\n });\n}\n//# sourceMappingURL=select-with-custom-options.js.map","import classnames from 'classnames';\nimport { useId, useState } from 'preact/hooks';\nimport { Link } from '../../../..';\nimport { Select } from '../../../../components/input/Select';\nimport SelectInInputGroup from '../../../examples/select-in-input-group';\nimport SelectWithManyOptions from '../../../examples/select-with-custom-options';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nconst defaultItems = [{\n id: '1',\n name: 'All students'\n}, {\n id: '2',\n name: 'Albert Banana'\n}, {\n id: '3',\n name: 'Bernard California'\n}, {\n id: '4',\n name: 'Cecelia Davenport'\n}, {\n id: '5',\n name: 'Doris Evanescence'\n}];\nfunction SelectExample({\n textOnly,\n items = defaultItems,\n ...rest\n}) {\n const [value, setValue] = useState();\n const buttonId = useId();\n return _jsxs(_Fragment, {\n children: [_jsx(\"label\", {\n htmlFor: buttonId,\n children: \"Select a person\"\n }), _jsx(Select, {\n ...rest,\n buttonId: buttonId,\n value: value,\n onChange: setValue,\n buttonContent: value ? _jsxs(_Fragment, {\n children: [textOnly && value.name, !textOnly && _jsxs(\"div\", {\n className: \"flex\",\n children: [_jsx(\"div\", {\n className: \"rounded px-2 mr-2 bg-grey-7 text-white\",\n children: value.id\n }), _jsx(\"div\", {\n className: \"truncate\",\n children: value.name\n })]\n })]\n }) : _jsx(_Fragment, {\n children: \"Select one\\u2026\"\n }),\n children: items.map(item => _jsx(Select.Option, {\n value: item,\n disabled: item.disabled,\n children: ({\n disabled\n }) => textOnly ? item.name : _jsxs(\"div\", {\n className: \"flex\",\n children: [_jsx(\"div\", {\n className: classnames('rounded px-2 mr-2 text-white', {\n 'bg-grey-7': !disabled,\n 'bg-grey-4': disabled\n }),\n children: item.id\n }), _jsx(\"div\", {\n className: \"truncate\",\n children: item.name\n })]\n })\n }, item.id))\n })]\n });\n}\nexport default function SelectPage() {\n return _jsxs(Library.Page, {\n title: \"Selects\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Select\"\n }), \" and \", _jsx(\"code\", {\n children: \"MultiSelect\"\n }), \" are composite components which behave like the native \", _jsx(\"code\", {\n children: '<select>'\n }), ' ', \"element.\"]\n }),\n children: [_jsxs(Library.Section, {\n title: \"Select\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Select\"\n }), \" renders a single-selection drop-down control.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Select\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Select\",\n exampleFile: \"select-basic\",\n withSource: true\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with Select\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Select\"\n }), \" toggles a listbox where \", _jsx(\"code\", {\n children: \"Options\"\n }), \"'\", \" UI can be customized and values can be objects.\"]\n }), _jsxs(\"p\", {\n children: [\"A \", _jsx(Library.Link, {\n href: \"/feedback-popover\",\n children: \"Popover\"\n }), ' ', \"component is used to wrap the listbox and ensure it is always correctly positioned.\"]\n }), _jsxs(Library.SectionL3, {\n title: \"Composing and styling Selects\",\n children: [_jsx(Library.Demo, {\n title: \"Select with custom Options\",\n exampleFile: \"select-with-custom-options\",\n withSource: true\n }), _jsx(Library.Demo, {\n title: \"Select in InputGroup\",\n exampleFile: \"select-in-input-group\",\n withSource: true\n })]\n }), _jsx(Library.SectionL3, {\n title: \"Select with many options\",\n children: _jsx(Library.Demo, {\n title: \"Select with many options\",\n children: _jsx(SelectWithManyOptions, {\n items: [...defaultItems.map(({\n id,\n name\n }) => ({\n id: `1${id}`,\n name: `1 ${name}`\n })), ...defaultItems.map(({\n id,\n name\n }) => ({\n id: `2${id}`,\n name: `2 ${name}`\n })), ...defaultItems.map(({\n id,\n name\n }) => ({\n id: `3${id}`,\n name: `3 ${name}`\n })), ...defaultItems.map(({\n id,\n name\n }) => ({\n id: `4${id}`,\n name: `4 ${name}`\n })), ...defaultItems.map(({\n id,\n name\n }) => ({\n id: `5${id}`,\n name: `5 ${name}`\n })), ...defaultItems.map(({\n id,\n name\n }) => ({\n id: `6${id}`,\n name: `6 ${name}`\n }))]\n })\n })\n }), _jsxs(Library.SectionL3, {\n title: \"Labeling Select\",\n children: [_jsxs(\"p\", {\n children: [\"There are three ways to label a \", _jsx(\"code\", {\n children: \"Select\"\n }), \". Make sure you always use one of them.\"]\n }), _jsx(Library.Demo, {\n title: _jsxs(_Fragment, {\n children: [\"Via\", ' ', _jsxs(\"code\", {\n children: ['<', \"label \", '/>']\n }), ' ', \"linked to \", _jsx(\"code\", {\n children: \"buttonId\"\n })]\n }),\n exampleFile: \"select-basic\",\n withSource: true\n }), _jsx(Library.Demo, {\n title: \"Via aria-label\",\n exampleFile: \"select-aria-label\",\n withSource: true\n }), _jsx(Library.Demo, {\n title: \"Via aria-labelledby\",\n exampleFile: \"select-aria-labelledby\",\n withSource: true\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Select with long content\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Select\"\n }), \" makes sure the button content never overflows, and applies \", _jsx(\"code\", {\n children: \"text-overflow: ellipsis\"\n }), \".\"]\n }), _jsxs(\"p\", {\n children: [\"If you provide more complex children to \", _jsx(\"code\", {\n children: \"buttonContent\"\n }), \", and the default hidden overflow logic does not work for your use case, it is up to you to handle the overflow logic in your components.\"]\n }), _jsx(\"p\", {\n children: \"On the other hand, the listbox will always grow to fit its options.\"\n }), _jsx(Library.Demo, {\n title: \"Plain text\",\n children: _jsx(\"div\", {\n className: \"mx-auto\",\n children: _jsx(SelectExample, {\n textOnly: true,\n buttonClasses: \"!w-36\",\n items: defaultItems.map(({\n name,\n ...rest\n }) => ({\n ...rest,\n name: `${name} (this item has very long text)`\n }))\n })\n })\n }), _jsx(Library.Demo, {\n title: \"Custom options\",\n children: _jsx(\"div\", {\n className: \"mx-auto\",\n children: _jsx(SelectExample, {\n buttonClasses: \"!w-36\"\n })\n })\n }), _jsx(Library.Demo, {\n title: \"Input group\",\n children: _jsx(\"div\", {\n className: \"mx-auto\",\n children: _jsx(SelectInInputGroup, {\n buttonClasses: \"!w-36\",\n wrapperClasses: \"\"\n })\n })\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Select component API\",\n children: [_jsx(\"code\", {\n children: \"Select\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#composite-components-api\",\n children: \"composite component props\"\n }), _jsx(Library.SectionL3, {\n title: \"value\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Represents currently selected Option.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"T\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"onChange\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"A callback invoked every time selected value changes.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"(newValue: T) => void\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"buttonContent\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"The content to be displayed in the toggle button.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"ComponentChildren\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"buttonId\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"The toggle button\", \"'\", \"s \", _jsx(\"code\", {\n children: \"id\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"disabled\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Whether the Select is disabled or not.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Disabled Select\",\n exampleFile: \"select-disabled\",\n withSource: true\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"alignListbox\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Whether the listbox should be aligned to the right or left side of the toggle button.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'left' | 'right'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'left'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Right-aligned listbox\",\n exampleFile: \"select-right\",\n withSource: true\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"buttonClasses\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Additional classes to pass to toggle button.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | string[]\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Custom button\",\n children: _jsx(\"div\", {\n className: \"w-96 mx-auto\",\n children: _jsx(SelectExample, {\n buttonClasses: \"!bg-yellow-notice\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"containerClasses\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Additional classes to pass to container.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | string[]\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Custom container\",\n children: _jsx(\"div\", {\n className: \"w-96 mx-auto\",\n children: _jsx(SelectExample, {\n containerClasses: \"border-4 border-yellow-notice\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"listboxAsPopover\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Determines if the listbox should be rendered using the\", ' ', _jsx(Link, {\n target: \"_blank\",\n href: \"https://developer.mozilla.org/en-US/docs/Web/API/Popover_API\",\n children: \"popover API\"\n }), \". It\", \"'\", \"s mainly used as a test seam, but can help explicitly disabling this behavior if needed.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsxs(Library.InfoItem, {\n label: \"default\",\n children: [_jsx(\"code\", {\n children: \"true\"\n }), \" if the browser supports \", _jsx(\"code\", {\n children: \"[popover]\"\n }), \". Otherwise it is \", _jsx(\"code\", {\n children: \"false\"\n })]\n })]\n }), _jsx(Library.Demo, {\n title: \"Non-popover listbox\",\n exampleFile: \"select-non-popover-listbox\",\n withSource: true\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"popoverClasses\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Additional classes to pass to the popover.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | string[]\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Custom popover\",\n children: _jsx(\"div\", {\n className: \"w-96 mx-auto\",\n children: _jsx(SelectExample, {\n popoverClasses: \"border-4 border-yellow-notice\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"listboxOverflow\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Determines the behavior of the listbox options when their content is larger than the listbox.\", _jsxs(\"ul\", {\n className: \"list-disc\",\n children: [_jsxs(\"li\", {\n children: [_jsx(\"code\", {\n children: \"'truncate'\"\n }), \": Text will use one line and be truncated with an ellipsis.\"]\n }), _jsxs(\"li\", {\n children: [_jsx(\"code\", {\n children: \"'wrap'\"\n }), \": Text will span multiple lines if needed, ensuring all content is visible.\"]\n })]\n })]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'truncate' | 'wrap'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'truncate'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Truncate listbox options\",\n exampleFile: \"select-truncate-listbox\",\n withSource: true\n }), _jsx(Library.Demo, {\n title: \"Wrap listbox options\",\n exampleFile: \"select-wrap-listbox\",\n withSource: true\n })]\n }), _jsx(Library.SectionL3, {\n title: \"onPopoverScroll\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A callback passed to the \", _jsx(\"code\", {\n children: \"Popover\"\n }), \"'\", \"s \", _jsx(\"code\", {\n children: \"onScroll\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [\"() \", '=>', \" void \", '|', \" undefined\"]\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Select.Option component API\",\n children: [_jsx(Library.SectionL3, {\n title: \"children\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Content of the option. You can pass a callback to receive the option status (\", _jsx(\"code\", {\n children: \"disabled\"\n }), \" and \", _jsx(\"code\", {\n children: \"selected\"\n }), \").\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [\"ComponentChildren | ((\", '{', \" disabled, selected \", '}', \") \", '=>', ' ', \"ComponentChildren)\"]\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"value\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"The value to set when this option is selected.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"T\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"disabled\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Whether the option is disabled or not.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Disabled options\",\n children: _jsx(\"div\", {\n className: \"w-96 mx-auto\",\n children: _jsx(SelectExample, {\n items: defaultItems.map(item => item.id !== '4' ? item : {\n ...item,\n disabled: true\n })\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"classes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"CSS class(es) that will be appended to the CSS classes applied to the options\", \"'\", \"s outermost element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | string[] | undefined\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"elementRef\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A \", _jsx(\"code\", {\n children: \"Ref\"\n }), \" applied to the option\", \"'\", \"s outermost element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [\"MutableRef\", '<', \"HTMLElement | undefined\", '>', \" | undefined\"]\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"title\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"If provided, it is set as the option\", \"'\", \"s \", _jsx(\"code\", {\n children: \"title\"\n }), ' ', \"attribute.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | undefined\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n })]\n })]\n }), _jsx(Library.Section, {\n title: \"MultiSelect\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"MultiSelect\"\n }), \" is a variant of \", _jsx(\"code\", {\n children: \"Select\"\n }), \" that allows multiple options to be selected at once. It has the same API except that \", _jsx(\"code\", {\n children: \"value\"\n }), \" accepts, and \", _jsx(\"code\", {\n children: \"onChange\"\n }), ' ', \"receives receive, arrays rather than a single item.\"]\n }),\n children: _jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"MultiSelect\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic MultiSelect\",\n exampleFile: \"select-multi-select\",\n withSource: true\n })\n })]\n })\n })]\n });\n}\n//# sourceMappingURL=SelectPage.js.map","import { useState } from 'preact/hooks';\nimport { Button, Card, CardContent, Slider } from '../../../../';\nimport Library from '../../Library';\nimport { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from \"preact/jsx-runtime\";\nconst Slider_ = ({\n children,\n direction,\n onTransitionEnd,\n _transitionStatus\n}) => {\n const [currentDirection, setCurrentDirection] = useState(direction);\n const toggleSlider = () => setCurrentDirection(prev => prev === 'in' ? 'out' : 'in');\n return _jsxs(\"div\", {\n className: \"flex-col w-full space-y-2\",\n children: [_jsxs(Button, {\n onClick: toggleSlider,\n variant: \"primary\",\n children: [currentDirection === 'in' ? 'Hide' : 'Show', \" slider\"]\n }), _jsx(Slider, {\n direction: currentDirection,\n onTransitionEnd: onTransitionEnd,\n children: children\n }), _jsxs(\"div\", {\n children: [_transitionStatus === 'in' && _jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"Slider\"\n }), \" just opened.\"]\n }), _transitionStatus === 'out' && _jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"Slider\"\n }), \" just closed.\"]\n })]\n })]\n });\n};\nexport default function SliderPage() {\n return _jsx(Library.Page, {\n title: \"Slider\",\n intro: _jsx(_Fragment, {\n children: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Slider\"\n }), \" is a transition component with a slide-down/slide-up transition on open/close.\"]\n })\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Slider\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Slider\",\n withSource: true,\n children: _jsx(Slider_, {\n direction: \"out\",\n children: _jsx(Card, {\n children: _jsx(CardContent, {\n children: \"This is the content of the Slider\"\n })\n })\n })\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Component API\",\n children: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Slider\"\n }), \" accepts\", ' ', _jsx(Library.Link, {\n href: \"/using-components#transition-components-api\",\n children: \"transition component props\"\n }), \".\"]\n })\n })]\n })\n });\n}\n//# sourceMappingURL=SliderPage.js.map","import ColorsPage from './components/patterns/ColorsPage';\nimport GettingStartedPage from './components/patterns/GettingStartedPage';\nimport StylingComponentsPage from './components/patterns/StylingComponentsPage';\nimport UsingComponentsPage from './components/patterns/UsingComponentsPage';\nimport UtilitiesPage from './components/patterns/UtilitiesPage';\nimport AspectRatioPage from './components/patterns/data/AspectRatioPage';\nimport DataTablePage from './components/patterns/data/DataTablePage';\nimport IconsPage from './components/patterns/data/IconsPage';\nimport ScrollBoxPage from './components/patterns/data/ScrollBoxPage';\nimport TablePage from './components/patterns/data/TablePage';\nimport ThumbnailPage from './components/patterns/data/ThumbnailPage';\nimport CalloutPage from './components/patterns/feedback/CalloutPage';\nimport DialogPage from './components/patterns/feedback/DialogPage';\nimport PopoverPage from './components/patterns/feedback/PopoverPage';\nimport SpinnerPage from './components/patterns/feedback/SpinnerPage';\nimport ToastMessagesPage from './components/patterns/feedback/ToastMessagesPage';\nimport UseClickAwayPage from './components/patterns/hooks/UseClickAwayPage';\nimport ButtonsPage from './components/patterns/input/ButtonPage';\nimport CheckboxPage from './components/patterns/input/CheckboxPage';\nimport CloseButtonPage from './components/patterns/input/CloseButtonPage';\nimport InputGroupPage from './components/patterns/input/InputGroupPage';\nimport InputPage from './components/patterns/input/InputPage';\nimport OptionButtonPage from './components/patterns/input/OptionButtonPage';\nimport RadioGroupPage from './components/patterns/input/RadioGroupPage';\nimport SelectPage from './components/patterns/input/SelectPage';\nimport TextareaPage from './components/patterns/input/TextareaPage';\nimport CardPage from './components/patterns/layout/CardPage';\nimport OverlayPage from './components/patterns/layout/OverlayPage';\nimport PanelPage from './components/patterns/layout/PanelPage';\nimport LinkButtonPage from './components/patterns/navigation/LinkButtonPage';\nimport LinkPage from './components/patterns/navigation/LinkPage';\nimport PaginationPage from './components/patterns/navigation/PaginationPage';\nimport PointerButtonPage from './components/patterns/navigation/PointerButtonPage';\nimport TabPage from './components/patterns/navigation/TabPage';\nimport SliderPage from './components/patterns/transition/SliderPage';\nimport LazyPage from './components/patterns/utilities/LazyPage';\nexport const componentGroups = {\n data: 'Data Display',\n feedback: 'Feedback',\n input: 'Input',\n layout: 'Layout',\n navigation: 'Navigation',\n transition: 'Transitions'\n};\nObject.freeze(componentGroups);\n\n/**\n * Route \"handler\" that provides a component (function) that should be rendered\n * for the indicated route\n */\n\nconst routes = [{\n title: 'Getting started',\n group: 'foundations',\n component: GettingStartedPage,\n route: '/'\n}, {\n title: 'Using components',\n group: 'foundations',\n component: UsingComponentsPage,\n route: '/using-components'\n}, {\n title: 'Styling components',\n group: 'foundations',\n component: StylingComponentsPage,\n route: '/styling-components'\n}, {\n route: '/foundations-colors',\n title: 'Colors',\n component: ColorsPage,\n group: 'foundations'\n}, {\n route: '/foundations-util',\n title: 'Utilities',\n component: UtilitiesPage,\n group: 'foundations'\n}, {\n title: 'AspectRatio',\n group: 'data',\n component: AspectRatioPage,\n route: '/data-aspectratio'\n}, {\n title: 'DataTable',\n group: 'data',\n component: DataTablePage,\n route: '/data-datatable'\n}, {\n title: 'Icons',\n group: 'data',\n component: IconsPage,\n route: '/data-icons'\n}, {\n title: 'ScrollBox',\n group: 'data',\n component: ScrollBoxPage,\n route: '/data-scrollbox'\n}, {\n title: 'Table',\n group: 'data',\n component: TablePage,\n route: '/data-table'\n}, {\n title: 'Thumbnail',\n group: 'data',\n component: ThumbnailPage,\n route: '/data-thumbnail'\n}, {\n title: 'Callout',\n group: 'feedback',\n component: CalloutPage,\n route: '/feedback-callout'\n}, {\n title: 'Dialogs',\n group: 'feedback',\n component: DialogPage,\n route: '/feedback-dialog'\n}, {\n title: 'Popover',\n group: 'feedback',\n component: PopoverPage,\n route: '/feedback-popover'\n}, {\n title: 'Spinner',\n group: 'feedback',\n component: SpinnerPage,\n route: '/feedback-spinner'\n}, {\n title: 'ToastMessages',\n group: 'feedback',\n component: ToastMessagesPage,\n route: '/feedback-toast-messages'\n}, {\n title: 'Button',\n group: 'input',\n component: ButtonsPage,\n route: '/input-button'\n}, {\n title: 'Checkbox',\n group: 'input',\n component: CheckboxPage,\n route: '/input-checkbox'\n}, {\n title: 'CloseButton',\n group: 'input',\n component: CloseButtonPage,\n route: '/input-closebutton'\n}, {\n title: 'Input',\n group: 'input',\n component: InputPage,\n route: '/input-input'\n}, {\n title: 'InputGroup',\n group: 'input',\n component: InputGroupPage,\n route: '/input-input-group'\n}, {\n title: 'OptionButton',\n group: 'input',\n component: OptionButtonPage,\n route: '/input-option-button'\n}, {\n title: 'RadioGroup',\n group: 'input',\n component: RadioGroupPage,\n route: '/input-radio-group'\n}, {\n title: 'Selects',\n group: 'input',\n component: SelectPage,\n route: '/input-select'\n}, {\n title: 'Textarea',\n group: 'input',\n component: TextareaPage,\n route: '/input-textarea'\n}, {\n title: 'Card',\n group: 'layout',\n component: CardPage,\n route: '/layout-card'\n}, {\n title: 'Panel',\n group: 'layout',\n component: PanelPage,\n route: '/layout-panel'\n}, {\n title: 'Overlay',\n group: 'layout',\n component: OverlayPage,\n route: '/layout-overlay'\n}, {\n title: 'Link',\n group: 'navigation',\n route: '/navigation-link',\n component: LinkPage\n}, {\n title: 'LinkButton',\n group: 'navigation',\n component: LinkButtonPage,\n route: '/navigation-linkbutton'\n}, {\n title: 'Pagination',\n group: 'navigation',\n component: PaginationPage,\n route: '/navigation-pagination'\n}, {\n title: 'PointerButton',\n group: 'navigation',\n component: PointerButtonPage,\n route: '/navigation-pointerbutton'\n}, {\n title: 'Tabs',\n group: 'navigation',\n component: TabPage,\n route: '/navigation-tab'\n}, {\n title: 'Slider',\n group: 'transition',\n component: SliderPage,\n route: '/transitions-slider'\n}, {\n title: 'useClickAway',\n group: 'hooks',\n component: UseClickAwayPage,\n route: '/hooks-use-click-away'\n}, {\n title: 'lazy',\n group: 'utilities',\n component: LazyPage,\n route: '/utilities-lazy'\n}];\n\n/**\n * Retrieve all routes or the subset in group `group`.\n */\nexport function getRoutes(group) {\n if (group) {\n return routes.filter(route => route.group === group);\n }\n return routes;\n}\n//# sourceMappingURL=routes.js.map","import { Link } from '../../../';\nimport Library from '../Library';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nexport default function GettingStartedPage() {\n return _jsx(Library.Page, {\n title: \"Getting started\",\n intro: _jsx(_Fragment, {\n children: _jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"@hypothesis/frontend-shared\"\n }), \" package provides reusable UI components, hooks and utilities for Hypothesis front-end applications.\"]\n })\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n title: \"Installation\",\n children: [_jsxs(\"p\", {\n children: [\"Add\", ' ', _jsx(Link, {\n href: \"https://tailwindcss.com/\",\n underline: \"always\",\n children: \"tailwindcss\"\n }), ' ', \"to your application's dependencies.\"]\n }), _jsx(Library.Code, {\n content: `$ yarn add tailwindcss @tailwindcss/postcss @hypothesis/frontend-shared`\n }), _jsxs(\"p\", {\n children: [\"Then, in your project's gulp configuration, pass\", ' ', _jsxs(\"code\", {\n children: ['{', \" tailwind: true \", '}']\n }), ' ', \"to the \", _jsx(\"code\", {\n children: \"buildCSS\"\n }), \" function:\"]\n }), _jsx(Library.Code, {\n content: `import { buildCSS } from '@hypothesis/frontend-build';\n\ngulp.task('build-tailwind-css', () =>\n buildCSS(['app.css'], {\n tailwind: true,\n }),\n);`\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Configuration\",\n children: [_jsx(\"p\", {\n children: \"In your project's CSS entry point, import the Tailwind theme from this package:\"\n }), _jsx(Library.Code, {\n size: \"sm\",\n title: \"Your project's tailwind config\",\n lang: \"css\",\n content: `@import 'tailwindcss' @source(none);\n\n/* Scan the frontend-shared package for used classes. The path is relative to\n the location of the CSS file. */\n@source 'node_modules/@hypothesis/frontend-shared/lib/**/*.js';\n\n/* Enable the Tailwind theme and additional utilities. */\n@import '@hypothesis/frontend-shared/tailwind-config.css';\n `\n }), _jsxs(\"p\", {\n children: [\"See the\", ' ', _jsx(\"a\", {\n href: \"https://tailwindcss.com/docs/functions-and-directives\",\n children: \"Tailwind documentation\"\n }), ' ', \"for more details on configuration at-rules.\"]\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Usage\",\n children: _jsx(Library.Usage, {\n componentName: \"Card, Link\"\n })\n })]\n })\n });\n}\n//# sourceMappingURL=GettingStartedPage.js.map","import Library from '../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function UsingComponentsPage() {\n return _jsxs(Library.Page, {\n title: \"Using components\",\n intro: _jsx(\"p\", {\n children: \"This package provides several categories of components. Which category a component belongs to indicates its general role and common props API.\"\n }),\n children: [_jsxs(Library.Section, {\n title: \"Presentational components\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"strong\", {\n className: \"font-semibold\",\n children: \"Presentational components\"\n }), ' ', \"are the most common type of component. They are composable components that encapsulate design patterns and UI behavior.\"]\n }), _jsxs(\"p\", {\n children: [\"Examples:\", ' ', _jsx(Library.Link, {\n href: \"/input-button\",\n children: _jsx(\"code\", {\n children: \"Button\"\n })\n }), \",\", ' ', _jsx(Library.Link, {\n href: \"/navigation-link\",\n children: _jsx(\"code\", {\n children: \"Link\"\n })\n })]\n }), _jsxs(Library.Section, {\n id: \"presentational-components-api\",\n title: \"API\",\n children: [_jsx(\"p\", {\n children: \"All presentational components provide this API unless documented otherwise.\"\n }), _jsx(Library.SectionL3, {\n title: \"children\",\n children: _jsx(Library.Info, {\n children: _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"preact.ComponentChildren\"\n })\n })\n })\n }), _jsx(Library.SectionL3, {\n title: \"classes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"CSS class(es) that will be appended to the CSS classes applied to the \", \"component's\", \" outermost or most significant element. This can be used independently or in conjunction with the Styling API props.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"elementRef\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A \", _jsx(\"code\", {\n children: \"Ref\"\n }), \" applied to the \", \"component's\", \" outermost or most significant element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'preact.Ref<HTMLElement | undefined>'\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Presentational components accept HTML attributes applicable to the element type of the \", \"component's\", \" outermost or most significant element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"example\",\n children: _jsx(Library.Code, {\n content: `<Link id=\"my-own-id\" href=\"https://www.example.com\">A Link with attributes</Link>`,\n size: \"sm\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'preact.JSX.HTMLAttributes<T extends HTMLElement>'\n })\n })]\n })\n })]\n }), _jsxs(Library.Section, {\n id: \"presentational-components-styling-api\",\n title: \"Styling API\",\n children: [_jsx(\"p\", {\n children: _jsx(Library.Callout, {\n children: \"These props extend the common presentational-component API. They are new and not supported by all presentational components yet. See individual component API documentation for details.\"\n })\n }), _jsxs(\"p\", {\n children: [\"See also the\", ' ', _jsx(Library.Link, {\n href: \"/styling-components\",\n children: \"styling guide\"\n }), ' ', \"that details how to use these props to customize components.\"]\n }), _jsx(Library.SectionL3, {\n title: \"variant\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Many presentational components have multiple variants. Variants\", ' ', '\"theme\"', \" a component, affecting such aspects as color, transitions, shadows, etc. Set to \", _jsx(\"code\", {\n children: \"'custom'\"\n }), \" to disable variant styling.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'custom' | string`\n })\n }), _jsx(Library.InfoItem, {\n label: \"example\",\n children: _jsx(Library.Code, {\n content: `<SomeComponent variant=\"secondary\" classes=\"bg-pink\">\n <p>This will EXTEND the \"secondary\" variant styles with a pink background</p>\n</SomeComponent>\n\n<SomeComponent variant=\"custom\" classes=\"bg-pink\">\n <p>This will REPLACE all theming styles with a pink background</p>\n</SomeComponent>`,\n size: \"sm\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"size\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Many, but not all, presentational components provide multiple sizes. The \", _jsx(\"code\", {\n children: \"size\"\n }), \" value affects size, padding, margins, etc. Set to \", _jsx(\"code\", {\n children: \"'custom'\"\n }), \" to disable size-related styling.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'custom' | string`\n })\n }), _jsx(Library.InfoItem, {\n label: \"example\",\n children: _jsx(Library.Code, {\n content: `<SomeComponent size=\"lg\" classes=\"mt-4\">\n This will EXTEND size styling with a top margin\n</SomeComponent>\n\n<SomeComponent size=\"custom\" classes=\"mt-4\">\n This will REPLACE size styling with a top margin\n</SomeComponent>`,\n size: \"sm\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"unstyled\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set this to disable all styling. This is a \", '\"master switch\"', ' ', \"that will supersede \", _jsx(\"code\", {\n children: \"size\"\n }), \" and \", _jsx(\"code\", {\n children: \"variant\"\n }), ' ', \"values. Note that some components have core (typically behavioral) CSS classes that cannot be disabled.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"example\",\n children: _jsx(Library.Code, {\n content: `<SomeComponent unstyled classes=\"bg-pink\">\n This will replace all styles with a pink background (only)\n</SomeComponent>`,\n size: \"sm\"\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"Composite components\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"strong\", {\n className: \"font-semibold\",\n children: \"Composite components\"\n }), ' ', \"compose and style presentational components in a particular way to satisfy a use case and sometimes support more complex or widget-like behavior.\"]\n }), _jsxs(\"p\", {\n children: [\"Examples:\", ' ', _jsx(Library.Link, {\n href: \"/data-scrollbox\",\n children: _jsx(\"code\", {\n children: \"ScrollBox\"\n })\n }), \",\", ' ', _jsx(Library.Link, {\n href: \"/layout-panel\",\n children: _jsx(\"code\", {\n children: \"Panel\"\n })\n })]\n }), _jsxs(Library.Section, {\n id: \"composite-components-api\",\n title: \"API\",\n children: [_jsx(Library.SectionL3, {\n title: \"children\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Some, but not all, composite components accept\", ' ', _jsx(\"code\", {\n children: \"children\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"preact.ComponentChildren\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"elementRef\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A \", _jsx(\"code\", {\n children: \"Ref\"\n }), \" applied to the \", \"component's\", \" outermost or most significant element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'preact.Ref<HTMLElement | undefined>'\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Some, but not all, composite components accept HTML attributes applicable to the element type of the \", \"component's\", \" outermost or most significant element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"example\",\n children: _jsx(Library.Code, {\n content: `<Link id=\"my-own-id\" href=\"https://www.example.com\">A Link with attributes</Link>`,\n size: \"sm\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'preact.JSX.HTMLAttributes<T extends HTMLElement>'\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"Transition components\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"strong\", {\n className: \"font-semibold\",\n children: \"Transition components\"\n }), \" are components with an in/out transition which can be used standalone or wrapped by other components.\"]\n }), _jsxs(\"p\", {\n children: [\"Example:\", ' ', _jsx(Library.Link, {\n href: \"/transitions-slider\",\n children: _jsx(\"code\", {\n children: \"Slider\"\n })\n })]\n }), _jsxs(Library.Section, {\n title: \"API\",\n id: \"transition-components-api\",\n children: [_jsx(Library.SectionL3, {\n title: \"delay\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Sets delay before transitions begin. See the\", ' ', _jsx(\"a\", {\n href: \"https://developer.mozilla.org/en-US/docs/Web/CSS/transition-delay\",\n children: \"transition-delay\"\n }), ' ', \"CSS property.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | undefined\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"direction\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Sets the current direction of the component transition.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'in' | 'out' \"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'in'\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"onTransitionEnd\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Callback invoked when the \", \"component's\", \" transition has completed.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `(direction: 'in' | 'out') => void`\n })\n })]\n })\n })]\n })]\n }), _jsx(Library.Section, {\n title: \"Simple components\",\n children: _jsxs(\"p\", {\n children: [_jsx(\"strong\", {\n className: \"font-semibold\",\n children: \"Simple components\"\n }), \" are opinionated, simple components that apply design patterns. These components have a minimal, component-specific API.\"]\n })\n })]\n });\n}\n//# sourceMappingURL=UsingComponentsPage.js.map","import { Link } from '../../../';\nimport Library from '../Library';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nexport default function StylingComponentsPage() {\n return _jsx(Library.Page, {\n title: \"Styling components\",\n intro: _jsx(_Fragment, {\n children: _jsxs(\"p\", {\n children: [\"The\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-styling-api\",\n children: \"styling API\"\n }), ' ', \"supported by some presentational components provides several mechanisms for style customizations.\"]\n })\n }),\n children: _jsxs(Library.Section, {\n title: \"Using the Styling API\",\n children: [_jsxs(Library.Callout, {\n children: [\"This documentation pertains to updated presentational components that support the extended\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-styling-api\",\n children: \"Styling API\"\n }), \". For components that \", \"don't\", \" yet support this API, you can achieve most style customization using the \", _jsx(\"code\", {\n children: \"classes\"\n }), \" prop, but may need to use \", _jsx(\"code\", {\n children: \"!important\"\n }), \" rules in some cases to avoid conflicts.\"]\n }), _jsxs(Library.Section, {\n title: \"Component CSS layers and associated styling props\",\n children: [_jsxs(\"div\", {\n className: \"grid grid-cols-6 gap-2 my-8 items-center border py-4 px-2 rounded border-stone-400\",\n children: [_jsx(\"div\", {}), _jsx(\"div\", {\n className: \"col-span-4 border rounded-md p-3 text-center\",\n children: \"Functional and behavioral\"\n }), _jsx(\"div\", {}), _jsx(\"div\", {\n className: \"text-right\",\n children: _jsx(\"code\", {\n children: \"unstyled\"\n })\n }), _jsx(\"div\", {\n className: \"col-span-4 border rounded-md p-3 text-center\",\n children: \"Core and layout\"\n }), _jsx(\"div\", {}), _jsx(\"div\", {\n className: \"text-right\",\n children: _jsx(\"code\", {\n children: \"variant\"\n })\n }), _jsx(\"div\", {\n className: \"col-span-2 border rounded-md p-3 text-center\",\n children: \"Theming\"\n }), _jsx(\"div\", {\n className: \"col-span-2 border rounded-md p-3 text-center\",\n children: \"Dimensions\"\n }), _jsx(\"div\", {\n children: _jsx(\"code\", {\n children: \"size\"\n })\n })]\n }), _jsxs(\"ul\", {\n children: [_jsxs(\"li\", {\n children: [\"Some components have foundational\", ' ', _jsx(\"strong\", {\n children: \"functional and behavioral CSS\"\n }), \" that cannot be disabled, e.g. interactivity, accessibility rules.\"]\n }), _jsxs(\"li\", {\n children: [_jsx(\"strong\", {\n children: \"Core and layout\"\n }), \" styling can be disabled with the\", ' ', _jsx(\"code\", {\n children: \"unstyled\"\n }), \" prop. This will also disable theming and dimensional (sizing) styles, allowing full visual customization.\"]\n }), _jsxs(\"li\", {\n children: [_jsx(\"strong\", {\n children: \"Theming\"\n }), \" can be controlled or disabled with the\", ' ', _jsx(\"code\", {\n children: \"variant\"\n }), \" prop.\"]\n }), _jsxs(\"li\", {\n children: [_jsx(\"strong\", {\n children: \"Dimensions\"\n }), \" and sizing can be controlled or disabled with the \", _jsx(\"code\", {\n children: \"size\"\n }), \" prop.\"]\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"Theming with variant\",\n children: [_jsxs(\"p\", {\n children: [\"Many presentational components provide \", _jsx(\"code\", {\n children: \"variant\"\n }), \" options, which apply different defined \", '\"themes\"', \" to the component.\"]\n }), _jsx(Library.Demo, {\n title: \"Variant examples: Link\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex flex-col\",\n children: [_jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"brand\",\n children: \"Link with variant: brand\"\n }), _jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"text\",\n children: \"Link with variant: text\"\n })]\n })\n }), _jsxs(Library.Section, {\n title: \"Adjusting theming with the 'custom' variant\",\n children: [_jsxs(\"p\", {\n children: [\"Set \", _jsx(\"code\", {\n children: \"variant\"\n }), \" to \", _jsx(\"code\", {\n children: \"'custom'\"\n }), \" when:\"]\n }), _jsxs(\"ul\", {\n children: [_jsxs(\"li\", {\n children: [\"the component you are working takes a\", _jsx(\"code\", {\n children: \"variant\"\n }), \" prop (not all components have variants), \", _jsx(\"strong\", {\n children: \"and\"\n })]\n }), _jsxs(\"li\", {\n children: [\"you want to apply CSS (\", _jsx(\"code\", {\n children: \"classes\"\n }), \") that are in any of the theme-styling categories below\"]\n })]\n }), _jsx(\"p\", {\n children: \"Styles for dimensions (size) and core layout will still be applied.\"\n }), _jsx(Library.Demo, {\n title: \"Customizing Link theming\",\n withSource: true,\n children: _jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"custom\",\n classes: \"text-blue-focus hover:text-grey-7\",\n children: \"Link with custom theming of text color\"\n })\n }), _jsxs(Library.Section, {\n title: \"Theme styling categories\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"variant\"\n }), \" styles correspond to the following\", ' ', _jsx(Link, {\n href: \"https://tailwindcss.com/docs\",\n children: \"TailwindCSS\"\n }), ' ', \"styling categories:\"]\n }), _jsxs(\"ul\", {\n children: [_jsx(\"li\", {\n children: \"typography (includes colors)\"\n }), _jsx(\"li\", {\n children: \"backgrounds\"\n }), _jsx(\"li\", {\n children: \"borders (except ring)\"\n }), _jsx(\"li\", {\n children: \"effects\"\n }), _jsx(\"li\", {\n children: \"filters\"\n }), _jsx(\"li\", {\n children: \"transitions and animation\"\n }), _jsx(\"li\", {\n children: \"transforms\"\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"Avoiding CSS conflicts\",\n children: [_jsxs(\"p\", {\n children: [\"Setting \", _jsx(\"code\", {\n children: \"variant\"\n }), \" to \", _jsx(\"code\", {\n children: \"'custom'\"\n }), ' ', \"ensures that the component does not output any theme-related styles. This prevents CSS conflicts with your theming\", ' ', _jsx(\"code\", {\n children: \"classes\"\n }), \" and makes it easier to spot when a component has had its theme customized.\"]\n }), _jsx(Library.Demo, {\n title: \"Example: variant styles conflict\",\n withSource: true,\n children: _jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"text\",\n classes: \"text-brand\",\n underline: \"always\",\n children: \"This link should be red\"\n })\n }), _jsx(Library.Demo, {\n title: \"Example: Using `custom` variant to avoid conflicts\",\n withSource: true,\n children: _jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"custom\",\n classes: \"text-brand\",\n underline: \"always\",\n children: \"This link should be red\"\n })\n })]\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"Sizing with `size`\",\n children: [_jsxs(Library.Section, {\n title: \"When to use size='custom'\",\n children: [_jsxs(\"p\", {\n children: [\"Set \", _jsx(\"code\", {\n children: \"size\"\n }), \" to \", _jsx(\"code\", {\n children: \"'custom'\"\n }), \" when:\"]\n }), _jsxs(\"ul\", {\n children: [_jsxs(\"li\", {\n children: [\"the component you are working takes a\", _jsx(\"code\", {\n children: \"size\"\n }), \" prop (not all components have sizes), \", _jsx(\"strong\", {\n children: \"and\"\n })]\n }), _jsxs(\"li\", {\n children: [\"you want to apply \", _jsx(\"code\", {\n children: \"classes\"\n }), \" that are in any of the sizing categories below\"]\n })]\n }), _jsxs(\"p\", {\n children: [\"Setting \", _jsx(\"code\", {\n children: \"size\"\n }), \" to \", _jsx(\"code\", {\n children: \"'custom'\"\n }), \" ensures that the component does not output any size-related styles. This prevents CSS conflicts with your sizing \", _jsx(\"code\", {\n children: \"classes\"\n }), \" and makes it easier to spot when a component has had its theme customized.\"]\n })]\n }), _jsxs(Library.Section, {\n title: \"Size styling categories\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"size\"\n }), \" styles correspond to the following\", ' ', _jsx(Link, {\n href: \"https://tailwindcss.com/docs\",\n children: \"TailwindCSS\"\n }), ' ', \"styling categories:\"]\n }), _jsxs(\"ul\", {\n children: [_jsx(\"li\", {\n children: \"spacing: margins, padding, etc.\"\n }), _jsx(\"li\", {\n children: \"sizing\"\n }), _jsx(\"li\", {\n children: \"flexbox and grid: gap (only)\"\n })]\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"Unstyled components\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"unstyled\"\n }), \" (\", _jsx(\"code\", {\n children: \"boolean\"\n }), \") disables all styles in a component (except, in some cases, essential behavioral styles required for component functionality).\"]\n }), _jsx(Library.Demo, {\n title: \"Fully-customized Link using unstyled\",\n withSource: true,\n children: _jsx(Link, {\n unstyled: true,\n href: \"http://www.example.com\",\n classes: \"border rounded-md bg-slate-500 p-2 text-white hover:text-slate-100 hover:bg-slate-600\",\n children: \"Customized link\"\n })\n }), _jsxs(Library.Callout, {\n children: [_jsx(\"strong\", {\n children: \"Note\"\n }), \": When \", _jsx(\"code\", {\n children: \"unstyled\"\n }), \" is set, values passed to \", _jsx(\"code\", {\n children: \"size\"\n }), \" or \", _jsx(\"code\", {\n children: \"variant\"\n }), \" will be ignored, as associated styles are disabled.\"]\n }), _jsxs(Library.Section, {\n title: \"Unstyled style categories\",\n children: [_jsxs(\"p\", {\n children: [\"Setting \", _jsx(\"code\", {\n children: \"unstyled\"\n }), \" disables (pretty much) all styling.\", ' ', \"Disabled styles include those in \", _jsx(\"code\", {\n children: \"variant\"\n }), \" and\", ' ', _jsx(\"code\", {\n children: \"size\"\n }), \" categories, and, in addition, styles from the following\", ' ', _jsx(Link, {\n href: \"https://tailwindcss.com/docs\",\n children: \"TailwindCSS\"\n }), ' ', \"styling categories:\"]\n }), _jsxs(\"ul\", {\n children: [_jsx(\"li\", {\n children: \"layout\"\n }), _jsx(\"li\", {\n children: \"flexbox and grid\"\n }), _jsx(\"li\", {\n children: \"border: ring (only)\"\n })]\n })]\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=StylingComponentsPage.js.map","import { Link } from '../../../';\nimport Library from '../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function UtilitiesPage() {\n return _jsxs(Library.Page, {\n title: \"Utilities\",\n intro: _jsxs(\"p\", {\n children: [\"This \", \"package's\", \" \", _jsx(\"code\", {\n children: \"tailwindcss\"\n }), \" preset provides some extra utility classes and modifiers. These can be used independently to style your \", \"app's\", \" component elements.\"]\n }),\n children: [_jsx(Library.SectionL2, {\n title: \"Utility classes\",\n children: _jsxs(Library.SectionL3, {\n title: \".focus-visible-ring\",\n children: [_jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \".focus-visible-ring\"\n }), \" utility class customizes an interactive element's focus ring such that it is only visible when the element has \", _jsx(\"code\", {\n children: \":focus-visible\"\n }), \" or the polyfilled equivalent for browsers that do not support\", ' ', _jsx(\"code\", {\n children: \":focus-visible\"\n }), \". It uses the \", _jsx(\"code\", {\n children: \"blue-focus\"\n }), ' ', \"color.\"]\n }), _jsxs(Library.Demo, {\n title: \"input and button with .focus-visible-ring\",\n withSource: true,\n children: [_jsx(\"input\", {\n type: \"text\",\n className: \"border focus-visible-ring\"\n }), _jsx(\"button\", {\n className: \"focus-visible-ring\",\n children: \"Button\"\n })]\n }), _jsxs(Library.Demo, {\n title: \"Combining with other tailwind ring classes\",\n withSource: true,\n children: [_jsx(\"input\", {\n type: \"text\",\n className: \"border focus-visible-ring ring-slate-5\"\n }), _jsx(\"button\", {\n className: \"focus-visible-ring ring-inset\",\n children: \"Inset ring\"\n })]\n })]\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Modifiers (variants)\",\n children: [_jsx(\"p\", {\n children: \"This package also provides some tailwind variants (modifiers) that can be combined with other tailwind utility classes.\"\n }), _jsxs(Library.SectionL3, {\n title: \"Styling groups of inputs\",\n children: [_jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"input-group\"\n }), \" modifier allows adaptation of styling on inputs when they are part of a group of inputs. This is identical in functionality to the\", ' ', _jsxs(Link, {\n href: \"https://tailwindcss.com/docs/hover-focus-and-other-states#styling-based-on-parent-state\",\n underline: \"always\",\n children: [\"tailwind \", _jsx(\"code\", {\n children: \"group\"\n }), \" modifier\"]\n }), ' ', \"but is \", '\"namespaced\"', \" to associate it with its more targeted usage.\"]\n }), _jsxs(\"p\", {\n children: [\"Each of the \", _jsx(\"code\", {\n children: \"button\"\n }), \"s used in the following grouping examples has the markup shown below. The \", _jsx(\"code\", {\n children: \"rounded-lg\"\n }), ' ', \"class sets border-radius on the buttons, but\", ' ', _jsx(\"code\", {\n children: \"input-group:rounded-none\"\n }), \" removes it when the buttons are inside of an \", _jsx(\"code\", {\n children: \"input-group\"\n }), \".\"]\n }), _jsx(Library.Code, {\n content: _jsx(\"button\", {\n className: \"border p-2 rounded-lg input-group:rounded-none\",\n children: \"Label\"\n }),\n title: \"Button element styling\"\n }), _jsx(Library.Demo, {\n title: \"buttons in an .input-group\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"input-group\",\n children: _jsxs(\"div\", {\n className: \"flex gap-x-2 input-group:gap-x-0\",\n children: [_jsx(\"button\", {\n className: \"border p-2 rounded-lg input-group:rounded-none\",\n children: \"One\"\n }), _jsx(\"button\", {\n className: \"border p-2 rounded-lg input-group:rounded-none\",\n children: \"Two\"\n }), _jsx(\"button\", {\n className: \"border p-2 rounded-lg input-group:rounded-none\",\n children: \"Three\"\n })]\n })\n })\n }), _jsx(Library.Demo, {\n title: \"The same buttons not in an .input-group\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex gap-x-2 input-group:gap-x-0\",\n children: [_jsx(\"button\", {\n className: \"border p-2 rounded-lg input-group:rounded-none\",\n children: \"One\"\n }), _jsx(\"button\", {\n className: \"border p-2 rounded-lg input-group:rounded-none\",\n children: \"Two\"\n }), _jsx(\"button\", {\n className: \"border p-2 rounded-lg input-group:rounded-none\",\n children: \"Three\"\n })]\n })\n })]\n })]\n })]\n });\n}\n//# sourceMappingURL=UtilitiesPage.js.map","import { AspectRatio, FileImageIcon, Link } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function AspectRatioPage() {\n return _jsx(Library.Page, {\n title: \"AspectRatio\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"AspectRatio\"\n }), \" is a simple component that controls the aspect ratio of its first direct child, with a default ratio of 16:9.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"AspectRatio\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic AspectRatio\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(AspectRatio, {\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n })\n })]\n }), _jsxs(Library.Section, {\n title: \"Working with AspectRatio\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Placeholder content\",\n children: [_jsxs(\"p\", {\n children: [\"Placeholder content can be put in a container that is the first direct child of the \", _jsx(\"code\", {\n children: \"AspectRatio\"\n }), \".\"]\n }), _jsx(Library.Demo, {\n title: \"Placeholder\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[250px] border rounded-md\",\n children: _jsx(AspectRatio, {\n children: _jsx(\"div\", {\n children: _jsx(FileImageIcon, {\n className: \"text-slate-5 w-2em h-2em\"\n })\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Fitting and positioning content\",\n children: [_jsxs(\"p\", {\n children: [\"The way the content is resized and fitted (\", _jsx(Link, {\n underline: \"always\",\n href: \"https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit\",\n children: \"object-fit\"\n }), \") can be controlled with the \", _jsx(\"code\", {\n children: \"objectFit\"\n }), \" prop (documented below).\"]\n }), _jsxs(\"p\", {\n children: [_jsx(Link, {\n href: \"https://developer.mozilla.org/en-US/docs/Web/CSS/object-position\",\n underline: \"always\",\n children: \"Object positioning\"\n }), ' ', \"within the content \", \"element's\", \" box can be handled by styling the content element itself. By default, the browser will position content \", _jsx(\"code\", {\n children: '50% 50%'\n }), \" within the \", \"element's\", \" box. In this example, the image is styled to apply\", ' ', _jsx(\"code\", {\n children: 'object-position: top'\n }), \" instead.\"]\n }), _jsx(Library.Demo, {\n title: \"Changing the contained object's position\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(AspectRatio, {\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\",\n className: \"object-top\"\n })\n })\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"Component API\",\n children: [_jsx(Library.SectionL3, {\n title: \"children\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Either the\", ' ', _jsx(Link, {\n href: \"https://developer.mozilla.org/en-US/docs/Web/CSS/Replaced_element\",\n children: \"replaced element\"\n }), ' ', \"to be sized or placeholder content in a container.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"preact.ComponentChildren\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"ratio\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set the aspect ratio for the content\"\n }), _jsxs(Library.InfoItem, {\n label: \"type\",\n children: [_jsx(\"code\", {\n children: \"string\"\n }), \" Any numeric string that can be used in a CSS\", ' ', _jsx(\"code\", {\n children: \"calc()\"\n }), \" expression\"]\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'16/9'\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"objectFit\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Control the way the content is resized and fitted (\", _jsx(Link, {\n underline: \"always\",\n href: \"https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit\",\n children: \"object-fit\"\n }), \").\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'cover' | 'contain' | 'fill' | 'none' | 'scale-down'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'cover'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"objectFit:'cover' (default)\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px] border rounded-md\",\n children: _jsx(AspectRatio, {\n objectFit: \"cover\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n }), _jsx(Library.Demo, {\n title: \"objectFit:'contain'\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px] border rounded-md\",\n children: _jsx(AspectRatio, {\n objectFit: \"contain\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n }), _jsx(Library.Demo, {\n title: \"objectFit:'fill'\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px] border rounded-md\",\n children: _jsx(AspectRatio, {\n objectFit: \"fill\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n }), _jsx(Library.Demo, {\n title: \"objectFit:'scale-down'\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px] border rounded-md\",\n children: _jsx(AspectRatio, {\n objectFit: \"scale-down\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n }), _jsx(Library.Demo, {\n title: \"objectFit:'none'\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px] border rounded-md\",\n children: _jsx(AspectRatio, {\n objectFit: \"none\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n })]\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=AspectRatioPage.js.map","import classnames from 'classnames';\nimport { Link } from '../../../../';\nimport * as Icons from '../../../../components/icons';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function IconsPage() {\n return _jsx(Library.Page, {\n title: \"Icons\",\n intro: _jsx(\"p\", {\n children: \"Icons are simple, standalone components that wrap SVG source markup.\"\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"CancelIcon\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Icon component usage: CancelIcon\",\n withSource: true,\n children: _jsx(Icons.CancelIcon, {})\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Icon components\",\n children: _jsx(\"div\", {\n className: \"my-4 grid grid-cols-4 gap-6\",\n children: Object.keys(Icons).map(iconName => {\n const IconComponent = Icons[iconName];\n return _jsxs(\"div\", {\n className: classnames('flex flex-col gap-y-4 border rounded p-4 items-center justify-center'),\n children: [_jsx(IconComponent, {}), iconName]\n }, iconName);\n })\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(Library.SectionL3, {\n title: \"...htmlProps\",\n children: [_jsxs(Library.Callout, {\n children: [\"Unlike other components in this package, Icon components take\", ' ', _jsx(\"code\", {\n children: \"className\"\n }), \", not \", _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Icon components accept SVG attributes.\"\n }), _jsxs(Library.InfoItem, {\n label: \"type\",\n children: [_jsxs(\"code\", {\n children: ['preact.JSX.HTMLAttributes<', _jsx(Link, {\n href: \"https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement\",\n children: \"SVGSVGElement\"\n })]\n }), '>']\n })]\n })]\n }), _jsx(Library.Demo, {\n title: \"Styled icon component\",\n withSource: true,\n children: _jsx(Icons.CautionIcon, {\n className: \"text-yellow-notice w-16 h-16\"\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=IconsPage.js.map","import { ScrollBox, Scroll, ScrollContainer, ScrollContent } from '../../../../';\nimport Library from '../../Library';\nimport { SampleListElements } from '../samples';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nexport default function ScrollBoxPage() {\n return _jsxs(Library.Page, {\n title: \"ScrollBox\",\n intro: _jsxs(\"p\", {\n children: [\"The composite \", _jsx(\"code\", {\n children: \"ScrollBox\"\n }), \" component provides a container for scrolling content, while individual \", _jsx(\"code\", {\n children: \"Scroll\"\n }), \" components are available for additional customization if needed.\"]\n }),\n children: [_jsxs(Library.Section, {\n title: \"ScrollBox\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"ScrollBox\"\n }), \" is an opinionated composite component that provides a shorthand for styling scrollable content.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"ScrollBox\"\n }), _jsx(Library.Demo, {\n title: \"Basic Scrollbox\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[280px] h-[200px]\",\n children: _jsx(ScrollBox, {\n children: _jsx(\"ul\", {\n children: _jsx(SampleListElements, {})\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"ScrollBox\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#composite-components-api\",\n children: \"composite component props\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"borderless\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Disable the border on the \", _jsx(\"code\", {\n children: \"ScrollBox\"\n })]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Turning off borders\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[280px] h-[200px]\",\n children: _jsx(ScrollBox, {\n borderless: true,\n children: _jsx(\"ul\", {\n children: _jsx(SampleListElements, {})\n })\n })\n })\n })]\n })]\n })]\n }), _jsx(Library.Section, {\n title: \"Working with scrolling components\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Scroll\"\n }), \" and its allies allow for more customization control if \", _jsx(\"code\", {\n children: \"ScrollBox\"\n }), \" \", \"doesn't\", \" meet flexibility needs.\"]\n }),\n children: _jsx(Library.SectionL2, {\n title: \"Composing Scroll components\",\n children: _jsxs(Library.SectionL3, {\n children: [_jsxs(\"p\", {\n children: [\"Sizing constraints are dictated by the immediate parent container of the outermost \", _jsx(\"code\", {\n children: \"Scroll*\"\n }), \" component. Here and in following examples, the parent container sets width (\", _jsx(\"code\", {\n children: \"320px\"\n }), \") and height (\", _jsx(\"code\", {\n children: \"200px\"\n }), \").\"]\n }), _jsx(Library.Demo, {\n title: \"Using Scroll components to manage scroll\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[320px] h-[200px]\",\n children: _jsx(ScrollContainer, {\n children: _jsx(Scroll, {\n children: _jsx(ScrollContent, {\n children: _jsx(\"ul\", {\n children: _jsx(SampleListElements, {})\n })\n })\n })\n })\n })\n })]\n })\n })\n }), _jsxs(Library.Section, {\n title: \"Scroll\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Scroll\"\n }), \" is a presentational component providing a fluid container that scrolls on overflow.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Scroll\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Scroll\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[320px] h-[200px]\",\n children: _jsx(Scroll, {\n children: _jsx(\"ul\", {\n children: _jsx(SampleListElements, {})\n })\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Scroll\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Scroll\"\n }), \"'s\", \" default \", _jsx(\"code\", {\n children: \"'raised'\"\n }), \" \", _jsx(\"code\", {\n children: \"variant\"\n }), ' ', \"renders CSS shadows to hint that content is scrollable. These can be disabled by using the \", _jsx(\"code\", {\n children: \"flat\"\n }), \" variant.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'raised' | 'flat'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: 'raised'\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"variant:'flat'\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[320px] h-[200px]\",\n children: _jsx(Scroll, {\n variant: \"flat\",\n children: _jsx(\"ul\", {\n children: _jsx(SampleListElements, {})\n })\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Scroll\"\n }), \" accepts HTML element attributes\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"ScrollContent\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"ScrollContent\"\n }), \" is a presentational component that puts consistent padding and spacing around content in a\", ' ', _jsx(\"code\", {\n children: \"Scroll\"\n }), \" component.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"ScrollContent\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Scroll with ScrollContent\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[320px] h-[200px]\",\n children: _jsx(Scroll, {\n children: _jsx(ScrollContent, {\n children: _jsx(\"ul\", {\n children: _jsx(SampleListElements, {})\n })\n })\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"ScrollContent\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\"]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Scroll\"\n }), \" accepts HTML element attributes\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLDivElement>`\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"ScrollContainer\",\n intro: _jsxs(_Fragment, {\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"ScrollContainer\"\n }), \" is a presentational component that allows the combination of scrolling and non-scrolling content to be constrained to the parent \", \"container's\", \" dimensions. This is very handy when trying to constrain complex content within, e.g., a modal.\"]\n }), _jsxs(\"p\", {\n children: [\"Only the content within \", _jsx(\"code\", {\n children: \"Scroll\"\n }), \" actually scrolls.\"]\n })]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"ScrollContainer\"\n }), _jsx(Library.Demo, {\n title: \"Basic ScrollContainer\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[320px] h-[200px]\",\n children: _jsxs(ScrollContainer, {\n children: [_jsx(\"div\", {\n className: \"p-2 border-b\",\n children: \"Non-scrolling content here\"\n }), _jsx(Scroll, {\n children: _jsx(ScrollContent, {\n children: _jsx(\"ul\", {\n children: _jsx(SampleListElements, {})\n })\n })\n }), _jsx(\"div\", {\n className: \"p-2 border-t\",\n children: \"More non-scrolling content\"\n })]\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"ScrollContainer\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"borderless\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Disable the border on the \", _jsx(\"code\", {\n children: \"ScrollContainer\"\n })]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[320px] h-[200px]\",\n children: _jsxs(ScrollContainer, {\n borderless: true,\n children: [_jsx(\"div\", {\n className: \"p-2 border-b\",\n children: \"Non-scrolling content here\"\n }), _jsx(Scroll, {\n children: _jsx(ScrollContent, {\n children: _jsx(\"ul\", {\n children: _jsx(SampleListElements, {})\n })\n })\n })]\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"ScrollContainer\"\n }), \" accepts HTML element attributes\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLDivElement>`\n })\n })]\n })\n })]\n })]\n })]\n });\n}\n//# sourceMappingURL=ScrollBoxPage.js.map","import { ScrollContainer, Scroll, Table, TableBody, TableCell, TableHead, TableRow } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function TablePage() {\n return _jsx(Library.Page, {\n title: \"Table\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Table\"\n }), \", \", _jsx(\"code\", {\n children: \"TableHead\"\n }), \", \", _jsx(\"code\", {\n children: \"TableBody\"\n }), \",\", ' ', _jsx(\"code\", {\n children: \"TableRow\"\n }), \" and \", _jsx(\"code\", {\n children: \"TableCell\"\n }), \" are presentational components for rendering table content.\"]\n }),\n children: _jsxs(Library.Section, {\n title: \"Table\",\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Table, TableHead, TableBody, TableRow, TableCell\",\n size: \"sm\"\n }), _jsx(Library.Demo, {\n title: \"Basic Table\",\n withSource: true,\n children: _jsxs(Table, {\n title: \"Some sushi rolls\",\n children: [_jsx(TableHead, {\n children: _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Sushi roll name\"\n }), _jsx(TableCell, {\n children: \"Definition\"\n })]\n })\n }), _jsxs(TableBody, {\n children: [_jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Alaskan roll\"\n }), _jsx(TableCell, {\n children: \"A variant of the California roll with smoked salmon on the inside, or layered on the outside.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Boston roll\"\n }), _jsx(TableCell, {\n children: \"An uramaki California roll with poached shrimp instead of imitation crab.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"British Columbia roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing grilled or barbecued salmon skin, cucumber, sweet sauce, sometimes with roe. Also sometimes referred to as salmon skin rolls outside of British Columbia, Canada.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"California roll\"\n }), _jsxs(TableCell, {\n children: [\"A roll consisting of avocado, kani kama (imitation crab/crab stick) (also can contain real crab in \", 'premium', ' ', \"varieties), cucumber, and tobiko, often made as uramaki (with rice on the outside, nori on the inside).\"]\n })]\n })]\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with Tables\",\n children: [_jsx(Library.SectionL3, {\n title: \"Composing Table components\",\n children: _jsxs(\"p\", {\n children: [\"All \", _jsx(\"code\", {\n children: \"Table*\"\n }), \" (\", _jsx(\"code\", {\n children: \"TableHead\"\n }), \",\", ' ', _jsx(\"code\", {\n children: \"TableFoot\"\n }), \", \", _jsx(\"code\", {\n children: \"TableRow\"\n }), \",\", ' ', _jsx(\"code\", {\n children: \"TableCell\"\n }), \", \", _jsx(\"code\", {\n children: \"TableBody\"\n }), \") are presentational components and take all standard props from the presentational component API. All also accept HTML attributes for their associated element.\"]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"Sizing Tables\",\n children: [_jsx(\"p\", {\n children: \"Table column width is established by the first row, which are typically headers.\"\n }), _jsx(Library.Demo, {\n title: \"Controlling column width\",\n withSource: true,\n children: _jsxs(Table, {\n title: \"Some sushi rolls\",\n children: [_jsx(TableHead, {\n children: _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n classes: \"w-[200px]\",\n children: \"Sushi roll name\"\n }), _jsx(TableCell, {\n children: \"Definition\"\n })]\n })\n }), _jsxs(TableBody, {\n children: [_jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Alaskan roll\"\n }), _jsx(TableCell, {\n children: \"A variant of the California roll with smoked salmon on the inside, or layered on the outside.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Boston roll\"\n }), _jsx(TableCell, {\n children: \"An uramaki California roll with poached shrimp instead of imitation crab.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"British Columbia roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing grilled or barbecued salmon skin, cucumber, sweet sauce, sometimes with roe. Also sometimes referred to as salmon skin rolls outside of British Columbia, Canada.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"California roll\"\n }), _jsxs(TableCell, {\n children: [\"A roll consisting of avocado, kani kama (imitation crab/crab stick) (also can contain real crab in\", ' ', 'premium', \" varieties), cucumber, and tobiko, often made as uramaki (with rice on the outside, nori on the inside).\"]\n })]\n })]\n })]\n })\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n id: \"table-props\",\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Table\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsxs(Library.SectionL3, {\n title: \"stickyHeader\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Make the table headers sticky in scrolling contexts\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Table with stickyHeader and rounded Scroll\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"h-[250px]\",\n children: _jsx(ScrollContainer, {\n rounded: true,\n children: _jsx(Scroll, {\n children: _jsxs(Table, {\n title: \"Some sushi rolls\",\n stickyHeader: true,\n borderless: true,\n children: [_jsx(TableHead, {\n children: _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n classes: \"w-[180px]\",\n children: \"Sushi roll name\"\n }), _jsx(TableCell, {\n children: \"Definition\"\n })]\n })\n }), _jsxs(TableBody, {\n children: [_jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Alaskan roll\"\n }), _jsx(TableCell, {\n children: \"A variant of the California roll with smoked salmon on the inside, or layered on the outside.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Boston roll\"\n }), _jsx(TableCell, {\n children: \"An uramaki California roll with poached shrimp instead of imitation crab.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"British Columbia roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing grilled or barbecued salmon skin, cucumber, sweet sauce, sometimes with roe. Also sometimes referred to as salmon skin rolls outside of British Columbia, Canada.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"California roll\"\n }), _jsxs(TableCell, {\n children: [\"A roll consisting of avocado, kani kama (imitation crab/crab stick) (also can contain real crab in\", ' ', 'premium', \" varieties), cucumber, and tobiko, often made as uramaki (with rice on the outside, nori on the inside).\"]\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Dynamite roll\"\n }), _jsx(TableCell, {\n children: \"A roll including yellowtail (hamachi) or prawn tempura, and fillings such as bean sprouts, carrots, avocado, cucumber, chili, spicy mayonnaise, and roe.\"\n })]\n }), _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n children: \"Hawaiian roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing sh\\u014Dyu tuna (canned), tamago, kanpy\\u014D, kamaboko, and the distinctive red and green hana ebi (shrimp powder).\"\n })]\n })]\n })]\n })\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"interactive\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set this boolean prop if rows in the table are select-able or otherwise interactive.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Table with interactive set\",\n withSource: true,\n children: _jsxs(Table, {\n title: \"Some sushi rolls\",\n interactive: true,\n children: [_jsx(TableHead, {\n children: _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n classes: \"w-[180px]\",\n children: \"Sushi roll name\"\n }), _jsx(TableCell, {\n children: \"Definition\"\n })]\n })\n }), _jsxs(TableBody, {\n children: [_jsxs(TableRow, {\n onClick: () => alert('Yum, Alaska roll!'),\n children: [_jsx(TableCell, {\n children: \"Alaskan roll\"\n }), _jsx(TableCell, {\n children: \"A variant of the California roll with smoked salmon on the inside, or layered on the outside.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('This is a new one!'),\n children: [_jsx(TableCell, {\n children: \"Boston roll\"\n }), _jsx(TableCell, {\n children: \"An uramaki California roll with poached shrimp instead of imitation crab.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('I call this a salmon-skin roll'),\n children: [_jsx(TableCell, {\n children: \"British Columbia roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing grilled or barbecued salmon skin, cucumber, sweet sauce, sometimes with roe. Also sometimes referred to as salmon skin rolls outside of British Columbia, Canada.\"\n })]\n })]\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n id: \"table-props-borderless\",\n title: \"borderless\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set this boolean prop if you want to remove the table\", \"'\", \"s outer borders, in case it is rendered in a container with its own borders.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Table without borders\",\n withSource: true,\n children: _jsxs(Table, {\n title: \"Some sushi rolls\",\n borderless: true,\n children: [_jsx(TableHead, {\n children: _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n classes: \"w-[180px]\",\n children: \"Sushi roll name\"\n }), _jsx(TableCell, {\n children: \"Definition\"\n })]\n })\n }), _jsxs(TableBody, {\n children: [_jsxs(TableRow, {\n onClick: () => alert('Yum, Alaska roll!'),\n children: [_jsx(TableCell, {\n children: \"Alaskan roll\"\n }), _jsx(TableCell, {\n children: \"A variant of the California roll with smoked salmon on the inside, or layered on the outside.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('This is a new one!'),\n children: [_jsx(TableCell, {\n children: \"Boston roll\"\n }), _jsx(TableCell, {\n children: \"An uramaki California roll with poached shrimp instead of imitation crab.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('I call this a salmon-skin roll'),\n children: [_jsx(TableCell, {\n children: \"British Columbia roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing grilled or barbecued salmon skin, cucumber, sweet sauce, sometimes with roe. Also sometimes referred to as salmon skin rolls outside of British Columbia, Canada.\"\n })]\n })]\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"striped\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Renders a different background for odd rows.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"true\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Table without stripes\",\n withSource: true,\n children: _jsxs(Table, {\n title: \"Some sushi rolls\",\n striped: false,\n children: [_jsx(TableHead, {\n children: _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n classes: \"w-[180px]\",\n children: \"Sushi roll name\"\n }), _jsx(TableCell, {\n children: \"Definition\"\n })]\n })\n }), _jsxs(TableBody, {\n children: [_jsxs(TableRow, {\n onClick: () => alert('Yum, Alaska roll!'),\n children: [_jsx(TableCell, {\n children: \"Alaskan roll\"\n }), _jsx(TableCell, {\n children: \"A variant of the California roll with smoked salmon on the inside, or layered on the outside.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('This is a new one!'),\n children: [_jsx(TableCell, {\n children: \"Boston roll\"\n }), _jsx(TableCell, {\n children: \"An uramaki California roll with poached shrimp instead of imitation crab.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('I call this a salmon-skin roll'),\n children: [_jsx(TableCell, {\n children: \"British Columbia roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing grilled or barbecued salmon skin, cucumber, sweet sauce, sometimes with roe. Also sometimes referred to as salmon skin rolls outside of British Columbia, Canada.\"\n })]\n })]\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"grid\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Renders borders for table cells.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Table with grid\",\n withSource: true,\n children: _jsxs(Table, {\n title: \"Some sushi rolls\",\n grid: true,\n children: [_jsx(TableHead, {\n children: _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n classes: \"w-[180px]\",\n children: \"Sushi roll name\"\n }), _jsx(TableCell, {\n children: \"Definition\"\n })]\n })\n }), _jsxs(TableBody, {\n children: [_jsxs(TableRow, {\n onClick: () => alert('Yum, Alaska roll!'),\n children: [_jsx(TableCell, {\n children: \"Alaskan roll\"\n }), _jsx(TableCell, {\n children: \"A variant of the California roll with smoked salmon on the inside, or layered on the outside.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('This is a new one!'),\n children: [_jsx(TableCell, {\n children: \"Boston roll\"\n }), _jsx(TableCell, {\n children: \"An uramaki California roll with poached shrimp instead of imitation crab.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('I call this a salmon-skin roll'),\n children: [_jsx(TableCell, {\n children: \"British Columbia roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing grilled or barbecued salmon skin, cucumber, sweet sauce, sometimes with roe. Also sometimes referred to as salmon skin rolls outside of British Columbia, Canada.\"\n })]\n })]\n })]\n })\n }), _jsx(Library.Demo, {\n title: \"Table with grid, without stripes\",\n withSource: true,\n children: _jsxs(Table, {\n title: \"Some sushi rolls\",\n grid: true,\n striped: false,\n children: [_jsx(TableHead, {\n children: _jsxs(TableRow, {\n children: [_jsx(TableCell, {\n classes: \"w-[180px]\",\n children: \"Sushi roll name\"\n }), _jsx(TableCell, {\n children: \"Definition\"\n })]\n })\n }), _jsxs(TableBody, {\n children: [_jsxs(TableRow, {\n onClick: () => alert('Yum, Alaska roll!'),\n children: [_jsx(TableCell, {\n children: \"Alaskan roll\"\n }), _jsx(TableCell, {\n children: \"A variant of the California roll with smoked salmon on the inside, or layered on the outside.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('This is a new one!'),\n children: [_jsx(TableCell, {\n children: \"Boston roll\"\n }), _jsx(TableCell, {\n children: \"An uramaki California roll with poached shrimp instead of imitation crab.\"\n })]\n }), _jsxs(TableRow, {\n onClick: () => alert('I call this a salmon-skin roll'),\n children: [_jsx(TableCell, {\n children: \"British Columbia roll\"\n }), _jsx(TableCell, {\n children: \"A roll containing grilled or barbecued salmon skin, cucumber, sweet sauce, sometimes with roe. Also sometimes referred to as salmon skin rolls outside of British Columbia, Canada.\"\n })]\n })]\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Link\"\n }), \" accepts HTML attribute props applicable to\", ' ', _jsx(\"code\", {\n children: \"HTMLTableElement\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'preact.JSX.HTMLAttributes<HTMLTableElement>'\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=TablePage.js.map","import { Thumbnail, ImageIcon, Link } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function ThumbnailPage() {\n return _jsx(Library.Page, {\n title: \"Thumbnail\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Thumbnail\"\n }), \" renders media thumbnails, handling aspect ratio, loading states, and placeholder content. It is a composite component that uses\", ' ', _jsx(Library.Link, {\n href: \"/data-aspectratio\",\n children: _jsx(\"code\", {\n children: \"AspectRatio\"\n })\n }), \".\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Thumbnail\"\n }), _jsx(Library.Demo, {\n title: \"Basic Thumbnail\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[250px]\",\n children: _jsx(Thumbnail, {\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with Thumbnails\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Loading and placeholder content\",\n children: [_jsx(Library.Demo, {\n withSource: true,\n title: \"Loading state\",\n children: _jsx(\"div\", {\n className: \"w-[250px]\",\n children: _jsx(Thumbnail, {\n loading: true,\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"Placeholder shown when empty\",\n children: _jsx(\"div\", {\n className: \"w-[250px]\",\n children: _jsx(Thumbnail, {})\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Height and width constraints\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Thumbnail\"\n }), \" will constrain content to within the height and width constraints of the containing element. If the parent element has a set height and there is extra space, Thumbnail content will be centered vertically.\"]\n }), _jsx(Library.Demo, {\n title: \"Extra available vertical space\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[250px] h-[300px]\",\n children: _jsx(Thumbnail, {\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n }), _jsxs(\"p\", {\n children: [\"Thumbnail content respects parent constraints, even if there is not enough room to show the full content. In this example,\", _jsx(\"code\", {\n children: \"object-position: top\"\n }), \" has been set on the contained image to optimize the cropping.\"]\n }), _jsx(Library.Demo, {\n title: \"Content taller than vertical space\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px] h-[150px]\",\n children: _jsx(Thumbnail, {\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n className: \"object-top\",\n alt: \"placeholder\"\n })\n })\n })\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Thumbnail\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#composite-components-api\",\n children: \"composite component props\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"borderless\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Render the \", _jsx(\"code\", {\n children: \"Thumbnail\"\n }), \" with no visual border. Relative border size can be controlled with the\", ' ', _jsx(\"code\", {\n children: \"size\"\n }), \" prop.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"borderless Thumbnails\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"space-y-4\",\n children: [_jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n borderless: true,\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n }), _jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n borderless: true\n })\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"loading\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Display a loading indicator.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"objectFit\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Control the way the content is resized and fitted (\", _jsx(Link, {\n underline: \"always\",\n href: \"https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit\",\n children: \"object-fit\"\n }), \").\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'cover' | 'contain' | 'fill' | 'none' | 'scale-down'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'cover'\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"placeholder\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Custom placeholder content to use when the\", ' ', _jsx(\"code\", {\n children: \"Thumbnail\"\n }), \" is empty.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"preact.ComponentChildren\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"Custom placeholder\",\n children: _jsx(\"div\", {\n className: \"w-[250px]\",\n children: _jsx(Thumbnail, {\n placeholder: _jsx(ImageIcon, {\n className: \"text-grey-5 w-1em h-1em\"\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"ratio\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set the aspect ratio for the content.\"\n }), _jsxs(Library.InfoItem, {\n label: \"type\",\n children: [_jsx(\"code\", {\n children: \"string\"\n }), \" Any numeric string that can be used in a CSS\", ' ', _jsx(\"code\", {\n children: \"calc()\"\n }), \" expression\"]\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'16/9'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"ratio: '4/3'\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[250px]\",\n children: _jsx(Thumbnail, {\n ratio: \"4/3\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"size\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set the relative proportions of the \", _jsx(\"code\", {\n children: \"Thumbnail\"\n }), \", its border, loading spinner and placeholder content. If you need more styling control, use\", ' ', _jsx(Library.Link, {\n href: \"/data-aspectratio\",\n children: \"AspectRatio\"\n }), ' ', \"directly.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'sm' | 'md' | 'lg'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'md'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"size: 'sm'\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex gap-x-4\",\n children: [_jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"sm\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n }), _jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"sm\",\n loading: true\n })\n }), _jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"sm\"\n })\n })]\n })\n }), _jsx(Library.Demo, {\n title: \"size: 'md'\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex gap-x-4\",\n children: [_jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"md\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n }), _jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"md\",\n loading: true\n })\n }), _jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"md\"\n })\n })]\n })\n }), _jsx(Library.Demo, {\n title: \"size: 'lg'\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex gap-x-4\",\n children: [_jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"lg\",\n children: _jsx(\"img\", {\n src: \"https://placehold.co/400x400\",\n alt: \"placeholder\"\n })\n })\n }), _jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"lg\",\n loading: true\n })\n }), _jsx(\"div\", {\n className: \"w-[200px]\",\n children: _jsx(Thumbnail, {\n size: \"lg\"\n })\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Thubmnail\"\n }), \" accepts HTML element attributes\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<JSX.HTMLAttributes<HTMLElement>, 'size' | 'loading' | 'placeholder'>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=ThumbnailPage.js.map","import { Callout, ProfileIcon } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function CalloutPage() {\n return _jsx(Library.Page, {\n title: \"Callout\",\n intro: _jsx(\"p\", {\n children: \"Callout is a presentational component that can be used for alerts, banners or toast messages.\"\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Callout\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n withSource: true,\n title: \"Basic Callout\",\n children: _jsxs(\"div\", {\n className: \"flex flex-col gap-y-4\",\n children: [_jsx(Callout, {\n status: \"notice\",\n children: \"A callout with (default) notice status.\"\n }), _jsx(Callout, {\n status: \"success\",\n children: \"A callout with a success message.\"\n }), _jsx(Callout, {\n status: \"error\",\n children: \"A callout with an error message.\"\n })]\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Callout\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"icon\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Custom icon to display in callout.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `IconComponent`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Callout with custom icon\",\n withSource: true,\n children: _jsx(Callout, {\n icon: ProfileIcon,\n status: \"success\",\n children: \"This callout has a custom icon\"\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"status\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Will theme the callout with an appropriate icon and coloring (unless overridden by the \", _jsx(\"code\", {\n children: \"icon\"\n }), \" prop or Styling API props).\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'notice' | 'success' | 'error'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'notice'`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Callout\"\n }), \" accepts HTML attribute props applicable to\", ' ', _jsx(\"code\", {\n children: \"HTMLElement\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<JSX.HTMLAttributes<HTMLElement>, 'size' | 'icon'>`\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Styling API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Callout\"\n }), \" accepts the following props from the\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-styling-api\",\n children: \"presentational component styling API\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set the \", _jsx(\"code\", {\n children: \"Callout\"\n }), \" theming.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'outlined' | 'raised' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'outlined'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Callout variants\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex flex-col gap-y-4\",\n children: [_jsxs(Callout, {\n variant: \"outlined\",\n children: [\"This is an \", _jsx(\"strong\", {\n children: \"outlined\"\n }), \" (default) callout.\"]\n }), _jsxs(Callout, {\n variant: \"raised\",\n children: [\"This is a \", _jsx(\"strong\", {\n children: \"raised\"\n }), \" callout, which provides dimensionality and interactive cursor.\"]\n })]\n })\n }), _jsx(Library.Demo, {\n title: \"Callout with custom variant\",\n withSource: true,\n children: _jsxs(Callout, {\n variant: \"custom\",\n children: [\"Note that no icon is rendered when variant is\", ' ', _jsx(\"code\", {\n children: `'custom'`\n }), \".\"]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"size\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set the relative internal sizing of the callout. Set to\", ' ', _jsx(\"code\", {\n children: `'custom'`\n }), \" to disable sizing classes and set your own with \", _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'sm' | 'md' | 'lg' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'md'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Callout sizes\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex flex-col gap-y-4\",\n children: [_jsx(Callout, {\n status: \"success\",\n size: \"sm\",\n children: \"A callout with a small size.\"\n }), _jsx(Callout, {\n status: \"success\",\n size: \"md\",\n children: \"A callout with a medium size.\"\n }), _jsx(Callout, {\n status: \"success\",\n size: \"lg\",\n children: \"A callout with a large size.\"\n }), _jsxs(Callout, {\n status: \"success\",\n size: \"custom\",\n classes: \"p-4\",\n children: [\"Note that no icon is rendered if size is\", ' ', _jsx(\"code\", {\n children: `'custom'`\n })]\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"unstyled\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set this to disable all styling and provide your own styling with \", _jsx(\"code\", {\n children: \"classes\"\n }), \". No icon will be rendered.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=CalloutPage.js.map","import { Link } from '../../../../components/navigation';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nexport default function PopoverPage() {\n return _jsx(Library.Page, {\n title: \"Popover\",\n intro: _jsx(_Fragment, {\n children: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Popover\"\n }), \" is a floating element rendered above other content and positioned next to an anchor element.\"]\n })\n }),\n children: _jsxs(Library.Section, {\n title: \"Popover\",\n intro: _jsxs(_Fragment, {\n children: [_jsxs(\"p\", {\n children: [\"By default, \", _jsx(\"code\", {\n children: \"Popover\"\n }), \" will be displayed below the anchor element, unless there is not enough space below.\"]\n }), _jsx(\"p\", {\n children: \"It will always be at least as wide as the anchor element, but it can grow to fit its content if needed. However, it will never grow beyond the viewport.\"\n }), _jsxs(\"p\", {\n children: [\"In browsers that support it, \", _jsx(\"code\", {\n children: \"Popover\"\n }), \" uses the\", ' ', _jsx(Link, {\n target: \"_blank\",\n href: \"https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/popover\",\n children: _jsx(\"code\", {\n children: \"popover\"\n })\n }), ' ', \"attribute and gets toggled via\", ' ', _jsx(Link, {\n target: \"_blank\",\n href: \"https://developer.mozilla.org/en-US/docs/Web/API/Popover_API\",\n children: \"popover API\"\n }), \". Otherwise, it is rendered as an absolute-positioned element, so it is recommended to wrap it and its anchor element in a relative-positioned container.\"]\n })]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n symbolName: \"Popover\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Popover\",\n exampleFile: \"popover-basic\",\n withSource: true\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Popover component API\",\n children: [_jsxs(Library.SectionL3, {\n title: \"align\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Determines to which side of the anchor element the popover should be aligned.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'left' | 'right'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'left'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Right-aligned Popover\",\n exampleFile: \"popover-right\",\n withSource: true\n })]\n }), _jsx(Library.SectionL3, {\n title: \"anchorElementRef\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"A reference to the element to which the popover should anchor, which will be used to calculate the popover size and positioning.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'RefObject<HTMLElement | undefined>'\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"arrow\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Determines if a small arrow pointing to the anchor element should be displayed.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'true | false'\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: 'false'\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Popover with arrow\",\n exampleFile: \"popover-with-arrow\",\n withSource: true\n })]\n }), _jsx(Library.SectionL3, {\n title: \"asNativePopover\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Determines if the\", ' ', _jsx(Link, {\n target: \"_blank\",\n href: \"https://developer.mozilla.org/en-US/docs/Web/API/Popover_API\",\n children: \"popover API\"\n }), ' ', \"should be used. It\", \"'\", \"s mainly used as a test seam, but can be used to explicitly disable use of the native popover API.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsxs(Library.InfoItem, {\n label: \"default\",\n children: [_jsx(\"code\", {\n children: \"true\"\n }), \" if the browser supports \", _jsx(\"code\", {\n children: \"[popover]\"\n }), \". Otherwise it is \", _jsx(\"code\", {\n children: \"false\"\n })]\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"classes\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Additional CSS classes to pass to the popover.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | string[]\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"elementRef\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Ref for the popover\", \"'\", \"s outermost element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [\"RefObject\", '<', \"HTMLElement\", '>']\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"onClose\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Callback invoked when the popover is automatically closed by clicking away or pressing \", _jsx(\"code\", {\n children: \"Escape\"\n }), \".\", _jsx(\"br\", {}), \"The caller should use this callback to keep local state in sync, so that the popover is re-rendered with \", _jsx(\"code\", {\n children: \"open\"\n }), \" set to\", ' ', _jsx(\"code\", {\n children: \"false\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: '() => void'\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"onScroll\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Handler for \", '\"', \"scroll\", '\"', \" events on the outermost element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: '() => void | undefined'\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"open\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Whether the \", _jsx(\"code\", {\n children: \"Popover\"\n }), \" is currently open or not.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"placement\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Whether the \", _jsx(\"code\", {\n children: \"Popover\"\n }), \" should show above or below the anchor element.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'above' | 'below'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'below'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Popover placement\",\n exampleFile: \"popover-placement\",\n withSource: true\n })]\n }), _jsx(Library.SectionL3, {\n title: \"restoreFocusOnClose\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Determines if focus should be restored when the\", ' ', _jsx(\"code\", {\n children: \"Popover\"\n }), \" is closed.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"true\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set the \", _jsx(\"code\", {\n children: \"Popover\"\n }), \" style variant.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'panel' | 'custom'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'panel'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Custom Popover\",\n exampleFile: \"popover-custom\",\n withSource: true\n })]\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=PopoverPage.js.map","import { useState } from 'preact/hooks';\nimport { Spinner, SpinnerOverlay, Button } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nexport default function SpinnerPage() {\n const [overlayOpen, setOverlayOpen] = useState(false);\n function toggleOverlayOpen() {\n setOverlayOpen(!overlayOpen);\n }\n return _jsxs(Library.Page, {\n title: \"Spinner\",\n intro: _jsx(_Fragment, {\n children: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Spinner\"\n }), \" and \", _jsx(\"code\", {\n children: \"SpinnerOverlay\"\n }), \" are simple components to render loading spinners.\"]\n })\n }),\n children: [_jsxs(Library.Section, {\n title: \"Spinner\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Spinner\"\n }), \" is a simple component to render a spinner with spokes, representing loading or other progress.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Spinner\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(Spinner, {})\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(Library.SectionL3, {\n title: \"color\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set the foreground color of the spinner icon.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [`'text' |'text-light' | 'text-inverted'`, \"]\"]\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'text-light'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Available Spinner colors\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex gap-x-8 items-center\",\n children: [_jsx(Spinner, {\n color: \"text-light\",\n size: \"md\"\n }), _jsx(Spinner, {\n color: \"text\",\n size: \"md\"\n }), _jsx(\"div\", {\n className: \"bg-slate-7 rounded-lg flex items-center justify-center p-8\",\n children: _jsx(Spinner, {\n color: \"text-inverted\",\n size: \"md\"\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"size\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set relative size of the spinner.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'sm' | 'md' | 'lg' `\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'md'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Spinner sizes\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex gap-x-8 items-center\",\n children: [_jsx(Spinner, {\n size: \"sm\"\n }), _jsx(Spinner, {\n size: \"md\"\n }), _jsx(Spinner, {\n size: \"lg\"\n })]\n })\n })]\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"SpinnerOverlay\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"SpinnerOverlay\"\n }), \" is a simple component that composes a spinner with an\", ' ', _jsx(Library.Link, {\n href: \"/layout-overlay\",\n children: _jsx(\"code\", {\n children: \"Overlay\"\n })\n }), \".\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"SpinnerOverlay\"\n }), _jsxs(Library.SectionL3, {\n children: [_jsxs(Library.Demo, {\n title: \"Basic SpinnerOverlay\",\n children: [_jsx(Button, {\n onClick: toggleOverlayOpen,\n children: \"Show overlay\"\n }), overlayOpen && _jsx(SpinnerOverlay, {\n onClick: toggleOverlayOpen\n })]\n }), _jsx(Library.Code, {\n content: `<Button onClick={toggleOverlayOpen}>Show overlay</Button>\n{overlayOpen && <SpinnerOverlay onClick={toggleOverlayOpen} />}`,\n title: \"Source for spinner-overlay example\"\n })]\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Component API\",\n children: _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"HTML attributes applied to the outermost full-screen element.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<JSX.HTMLAttributes<HTMLElement>, 'className' | 'open'>`\n })\n })]\n })\n })\n })]\n })]\n });\n}\n//# sourceMappingURL=SpinnerPage.js.map","import { Button, IconButton } from '../../../../';\nimport { CancelIcon, CheckIcon, EditIcon, ReplyIcon, ShareIcon, CautionIcon } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function ButtonPage() {\n return _jsxs(Library.Page, {\n title: \"Button\",\n intro: _jsxs(\"p\", {\n children: [\"Button components apply common styling and accessibility attributes to\", ' ', _jsx(\"code\", {\n children: \"button\"\n }), \" elements.\"]\n }),\n children: [_jsxs(Library.Section, {\n title: \"Button\",\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Button\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Button\",\n withSource: true,\n children: _jsx(Button, {\n icon: CheckIcon,\n onClick: () => alert('You clicked the button'),\n children: \"Click me\"\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Button\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsx(Library.SectionL3, {\n title: \"expanded\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"This \", \"button's\", \" associated content is expanded.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"icon\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"An SVG icon to display to the left of the \", \"button's\", \" content.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"IconComponent\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"pressed\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"This button is active\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"title\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Used to set an \", _jsx(\"code\", {\n children: \"aria-label\"\n }), \" attribute\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Button\"\n }), \" accepts HTML attribute props applicable to\", ' ', _jsx(\"code\", {\n children: \"HTMLButtonElement\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<preact.JSX.ButtonHTMLAttributes<HTMLButtonElement>, 'icon' | 'size'>`\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Styling API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Button\"\n }), \" accepts the following props from the\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-styling-api\",\n children: \"presentational component styling API\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set a defined theme on the button. Set to \", `'custom'`, \" to disable theming and provide your own theming with\", ' ', _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'primary' | 'secondary' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'secondary'`\n })\n })]\n }), _jsxs(Library.Demo, {\n title: \"variant: 'secondary'\",\n withSource: true,\n children: [_jsx(Button, {\n variant: \"secondary\",\n children: \"Default\"\n }), _jsxs(Button, {\n variant: \"secondary\",\n children: [_jsx(CancelIcon, {}), \"Default\"]\n }), _jsx(Button, {\n variant: \"secondary\",\n pressed: true,\n children: \"Pressed\"\n }), _jsx(Button, {\n variant: \"secondary\",\n expanded: true,\n children: \"Expanded\"\n }), _jsx(Button, {\n variant: \"secondary\",\n disabled: true,\n children: \"Disabled\"\n })]\n }), _jsxs(Library.Demo, {\n title: \"variant: 'primary'\",\n withSource: true,\n children: [_jsx(Button, {\n variant: \"primary\",\n children: \"Default\"\n }), _jsxs(Button, {\n variant: \"primary\",\n children: [_jsx(EditIcon, {}), \"Default\"]\n }), _jsx(Button, {\n variant: \"primary\",\n pressed: true,\n children: \"Pressed\"\n }), _jsx(Button, {\n variant: \"primary\",\n expanded: true,\n children: \"Expanded\"\n }), _jsx(Button, {\n variant: \"primary\",\n disabled: true,\n children: \"Disabled\"\n })]\n }), _jsxs(Library.Demo, {\n title: \"variant: 'custom' (custom theming)\",\n withSource: true,\n children: [_jsx(Button, {\n variant: \"custom\",\n classes: \"border rounded-md\",\n children: \"Default\"\n }), _jsxs(Button, {\n variant: \"custom\",\n classes: \"border rounded-md\",\n children: [_jsx(EditIcon, {}), \"Default\"]\n }), _jsx(Button, {\n variant: \"custom\",\n pressed: true,\n classes: \"border rounded-md\",\n children: \"Pressed\"\n }), _jsx(Button, {\n variant: \"custom\",\n expanded: true,\n classes: \"border rounded-md\",\n children: \"Expanded\"\n }), _jsx(Button, {\n variant: \"custom\",\n disabled: true,\n classes: \"border rounded-md\",\n children: \"Disabled\"\n })]\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"size\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set the relative internal sizing of the button. Set to\", ' ', `'custom'`, \" to disable sizing classes and set your own with\", ' ', _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'xs' | 'sm' | 'md' | 'lg' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'md'`\n })\n })]\n }), _jsxs(Library.Demo, {\n title: \"Button sizes\",\n withSource: true,\n children: [_jsx(Button, {\n icon: EditIcon,\n size: \"xs\",\n children: \"(xs)\"\n }), _jsx(Button, {\n icon: EditIcon,\n size: \"sm\",\n children: \"(sm)\"\n }), _jsx(Button, {\n icon: ReplyIcon,\n size: \"md\",\n children: \"(md)\"\n }), _jsx(Button, {\n icon: CheckIcon,\n size: \"lg\",\n children: \"(lg)\"\n }), _jsx(Button, {\n icon: CheckIcon,\n size: \"custom\",\n classes: \"p-2 gap-x-3\",\n children: \"(custom)\"\n })]\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"unstyled\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set this to disable all styling and provide your own styling with \", _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"unstyled Button with custom styling\",\n withSource: true,\n children: _jsx(Button, {\n unstyled: true,\n classes: \"border rounded-md p-2 bg-stone-100 font-normal color-slate-600 hover:bg-stone-50 hover:color-slate-700 hover:shadow-lg\",\n children: \"Custom button\"\n })\n })]\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"IconButton\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"IconButton\"\n }), \" is for icon-only \", _jsx(\"code\", {\n children: \"Button\"\n }), \"s.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"IconButton\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic IconButton\",\n withSource: true,\n children: _jsx(IconButton, {\n onClick: () => alert('You clicked the button'),\n icon: ReplyIcon,\n title: \"Reply\"\n })\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Working with IconButtons\",\n children: _jsxs(Library.SectionL3, {\n title: \"Styling the icon\",\n children: [_jsxs(\"p\", {\n children: [\"If you need more control over icon styles, use an icon component directly in the content instead of passing an \", _jsx(\"code\", {\n children: \"icon\"\n }), ' ', \"prop.\"]\n }), _jsxs(Library.Demo, {\n withSource: true,\n children: [_jsx(IconButton, {\n title: \"Share\",\n children: _jsx(ShareIcon, {\n className: \"w-8 h-8\"\n })\n }), _jsx(IconButton, {\n title: \"Share\",\n children: _jsx(ShareIcon, {\n className: \"w-3 h-3\"\n })\n })]\n })]\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(Library.SectionL3, {\n title: \"title\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A \", _jsx(\"code\", {\n children: \"title\"\n }), \" is required for \", _jsx(\"code\", {\n children: \"IconButton\"\n }), \"s.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"required\",\n children: _jsx(\"code\", {\n children: \"true\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"...buttonProps\",\n children: [_jsx(\"code\", {\n children: \"IconButton\"\n }), \" accepts and forwards all props from the\", ' ', _jsx(\"code\", {\n children: \"Button\"\n }), \" component API.\"]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"IconButton\"\n }), \" accepts HTML attribute props applicable to \", _jsx(\"code\", {\n children: \"HTMLButtonElement\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<preact.JSX.HTMLAttributes<HTMLButtonElement>, 'icon' | 'size'>`\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Styling API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"IconButton\"\n }), \" accepts the following props from the\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-styling-api\",\n children: \"presentational component styling API\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set a defined theme on the button. Set to \", `'custom'`, \" to disable theming and provide your own theming with\", ' ', _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'primary' | 'secondary' | 'dark' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'secondary'`\n })\n })]\n }), _jsxs(\"p\", {\n children: [\"The following examples show themed \", _jsx(\"code\", {\n children: \"IconButton\"\n }), \"s in default state, \", _jsx(\"code\", {\n children: \"pressed\"\n }), \", \", _jsx(\"code\", {\n children: \"expanded\"\n }), \" and\", ' ', _jsx(\"code\", {\n children: \"disabled\"\n }), \".\"]\n }), _jsxs(Library.Demo, {\n title: \"variant: 'secondary'\",\n withSource: true,\n children: [_jsx(IconButton, {\n variant: \"secondary\",\n title: \"Watch out!\",\n icon: CautionIcon\n }), _jsx(IconButton, {\n variant: \"secondary\",\n title: \"Watch out!\",\n icon: CautionIcon,\n pressed: true\n }), _jsx(IconButton, {\n variant: \"secondary\",\n title: \"Watch out!\",\n icon: CautionIcon,\n expanded: true\n }), _jsx(IconButton, {\n variant: \"secondary\",\n title: \"Watch out!\",\n icon: CautionIcon,\n disabled: true\n })]\n }), _jsxs(Library.Demo, {\n title: \"variant: 'primary'\",\n withSource: true,\n children: [_jsx(IconButton, {\n variant: \"primary\",\n title: \"Watch out!\",\n icon: CautionIcon\n }), _jsx(IconButton, {\n variant: \"primary\",\n title: \"Watch out!\",\n icon: CautionIcon,\n pressed: true\n }), _jsx(IconButton, {\n variant: \"primary\",\n title: \"Watch out!\",\n icon: CautionIcon,\n expanded: true\n }), _jsx(IconButton, {\n variant: \"primary\",\n title: \"Watch out!\",\n icon: CautionIcon,\n disabled: true\n })]\n }), _jsxs(Library.Demo, {\n classes: \"bg-slate-0 p-4\",\n title: \"variant: 'dark'\",\n withSource: true,\n children: [_jsx(IconButton, {\n variant: \"dark\",\n title: \"Watch out!\",\n icon: CautionIcon\n }), _jsx(IconButton, {\n variant: \"dark\",\n title: \"Watch out!\",\n icon: CautionIcon,\n pressed: true\n }), _jsx(IconButton, {\n variant: \"dark\",\n title: \"Watch out!\",\n icon: CautionIcon,\n expanded: true\n }), _jsx(IconButton, {\n variant: \"dark\",\n title: \"Watch out!\",\n icon: CautionIcon,\n disabled: true\n })]\n }), _jsxs(Library.Demo, {\n title: \"variant: 'custom' with custom theming\",\n withSource: true,\n children: [_jsx(IconButton, {\n classes: \"border rounded-md text-slate-600\",\n variant: \"custom\",\n title: \"Watch out!\",\n icon: CautionIcon\n }), _jsx(IconButton, {\n classes: \"border rounded-md text-slate-800 bg-stone-100 border-slate-400\",\n variant: \"custom\",\n title: \"Watch out!\",\n icon: CautionIcon,\n pressed: true\n }), _jsx(IconButton, {\n variant: \"custom\",\n classes: \"border rounded-md text-slate-800 bg-stone-100 border-slate-400\",\n title: \"Watch out!\",\n icon: CautionIcon,\n expanded: true\n }), _jsx(IconButton, {\n classes: \"border rounded-md text-slate-400\",\n variant: \"custom\",\n title: \"Watch out!\",\n icon: CautionIcon,\n disabled: true\n })]\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"size\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set relative internal sizing. Set to \", `'custom'`, \" to disable sizing classes and set your own with \", _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'xs' | 'sm' | 'md' | 'lg' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'md'`\n })\n })]\n }), _jsxs(Library.Demo, {\n title: \"size: 'xs', 'sm', 'md', 'lg' and 'custom'\",\n withSource: true,\n children: [_jsx(IconButton, {\n icon: EditIcon,\n size: \"xs\",\n title: \"Edit\"\n }), _jsx(IconButton, {\n icon: EditIcon,\n size: \"sm\",\n title: \"Edit\"\n }), _jsx(IconButton, {\n icon: EditIcon,\n size: \"md\",\n title: \"Edit\"\n }), _jsx(IconButton, {\n icon: EditIcon,\n size: \"lg\",\n title: \"Edit\"\n }), _jsx(IconButton, {\n icon: EditIcon,\n size: \"custom\",\n title: \"Edit\",\n classes: \"p-3\"\n })]\n })]\n }), _jsx(Library.SectionL3, {\n title: \"unstyled\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set this to disable all styling and provide your own styling with \", _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n })]\n })]\n })]\n });\n}\n//# sourceMappingURL=ButtonPage.js.map","import { useState } from 'preact/hooks';\nimport { Checkbox, ShowIcon, HideIcon } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function CheckboxPage() {\n const [checked, setChecked] = useState(false);\n const handleControlledChange = e => {\n setChecked(e.target.checked);\n };\n return _jsxs(Library.Page, {\n title: \"Checkbox\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Checkbox\"\n }), \" is a composite component that includes a checkbox input and label.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Checkbox\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Checkbox\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex flex-col\",\n children: [_jsx(Checkbox, {\n children: \"Click me\"\n }), _jsx(Checkbox, {\n disabled: true,\n children: \"Disabled\"\n })]\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with Checkboxes\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Controlled Checkboxes\",\n children: [_jsxs(\"p\", {\n children: [\"The presence of a \", _jsx(\"code\", {\n children: \"checked\"\n }), \" prop will make the\", ' ', _jsx(\"code\", {\n children: \"Checkbox\"\n }), \" behave as a controlled component. Consuming components should respond to the \", _jsx(\"code\", {\n children: \"onChange\"\n }), \" event.\"]\n }), _jsx(Library.Demo, {\n title: \"Controlling a Checkbox with `checked`\",\n withSource: true,\n children: _jsx(Checkbox, {\n checked: checked,\n onChange: handleControlledChange,\n children: \"Controlled checkbox\"\n })\n }), _jsx(Library.Code, {\n content: `const [checked, setChecked] = useState(false);\n\nconst handleControlledChange = e => {\n setChecked(e.target.checked);\n};\n\n<Checkbox\n checked={checked}\n onChange={handleControlledChange}\n>\n Controlled checkbox\n</Checkbox>\n`,\n size: \"sm\",\n title: \"When the `checked prop` is present, Checkbox will behave as a controlled component\"\n }), _jsx(Library.Demo, {\n title: \"Don't forget to handle events for controlled Checkboxes\",\n withSource: true,\n children: _jsx(Checkbox, {\n checked: false,\n children: _jsx(\"div\", {\n className: \"text-red-error\",\n children: \"This checkbox will not update when clicked\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Customizing Checkbox icons\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Checkbox\"\n }), \" uses icons to style the checkbox, in unchecked and checked states. Custom icons may be provided if desired.\"]\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"Checkbox with custom icon and checkedIcon\",\n children: _jsx(Checkbox, {\n icon: HideIcon,\n checkedIcon: ShowIcon,\n defaultChecked: true\n })\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Checkbox\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsx(Library.SectionL3, {\n title: \"checked\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set whether the \", _jsx(\"code\", {\n children: \"Checkbox\"\n }), \" is checked. The presence of this component indicates that the \", _jsx(\"code\", {\n children: \"Checkbox\"\n }), \" is being used as a controlled component.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `undefined`\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"defaultChecked\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Whether the \", _jsx(\"code\", {\n children: \"Checkbox\"\n }), \" is initially checked. For use when \", _jsx(\"code\", {\n children: \"Checkbox\"\n }), \" is an uncontrolled component.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `false`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Uncontrolled Checkbox with defaultChecked\",\n withSource: true,\n children: _jsx(Checkbox, {\n defaultChecked: true,\n children: \"Default checked\"\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"icon\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"IconComponent\"\n }), \" to use as the (unchecked) checkbox icon\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `IconComponent`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"checkedIcon\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"IconComponent\"\n }), \" to use as the (checked) checkbox icon\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `IconComponent`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Checkbox\"\n }), \" accepts HTML attributes for input elements\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.InputHTMLAttributes<HTMLInputElement>`\n })\n })]\n })\n })]\n })]\n });\n}\n//# sourceMappingURL=CheckboxPage.js.map","import { Input } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function InputPage() {\n return _jsx(Library.Page, {\n title: \"Input\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Input\"\n }), \" is a presentational component for styling textual\", ' ', _jsx(\"code\", {\n children: \"input\"\n }), \" elements.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Input\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Input\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(Input, {\n \"aria-label\": \"Input example\",\n placeholder: \"Placeholder...\"\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with Inputs\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Labels\",\n children: [_jsxs(\"p\", {\n children: [\"Hypothesis does not currently have a design pattern for labeling text inputs. However, for accessibility, it is critical that an\", ' ', _jsx(\"code\", {\n children: \"Input\"\n }), \" have either an associated \", _jsx(\"code\", {\n children: \"label\"\n }), ' ', \"element or an \", _jsx(\"code\", {\n children: \"aria-label\"\n }), \" attribute.\"]\n }), _jsx(Library.Demo, {\n title: \"Input with label\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"w-[350px]\",\n children: [_jsx(\"label\", {\n htmlFor: \"input-with-label\",\n className: \"font-semibold\",\n children: \"Label\"\n }), _jsx(Input, {\n id: \"input-with-label\",\n placeholder: \"Placeholder...\"\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Disabled inputs\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Input\"\n }), \"s can be disabled by applying the HTML\", ' ', _jsx(\"code\", {\n children: \"disabled\"\n }), \" attribute.\"]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(Input, {\n \"aria-label\": \"Example input\",\n placeholder: \"Placeholder...\",\n disabled: true\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Validation errors\",\n children: [_jsxs(\"p\", {\n children: [\"Validation errors can be triggered as a result of standard HTML attributes such as \", _jsx(\"code\", {\n children: \"required\"\n }), \" or a custom error set using the \", _jsx(\"code\", {\n children: \"error\"\n }), \" prop. Errors set using\", ' ', _jsx(\"code\", {\n children: \"error\"\n }), \" are synced to the browser via\", ' ', _jsx(\"code\", {\n children: \"HTMLInputElement.setCustomValidity\"\n }), \". This allows the browser to alert the user when they try to submit the containing form.\"]\n }), _jsxs(\"p\", {\n children: [\"If the input has custom validation checks, they should be performed in the element's \", _jsx(\"code\", {\n children: \"onChange\"\n }), \" handler.\"]\n }), _jsxs(\"p\", {\n children: [\"If the form is using custom UI to present validation errors, inputs must link to the element displaying their validation error using \", _jsx(\"code\", {\n children: \"aria-describedby\"\n }), \".\"]\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Input\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsx(Library.SectionL3, {\n title: \"error\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set \", _jsx(\"code\", {\n children: \"error\"\n }), \" to indicate a validation error. This implicitly sets\", ' ', _jsxs(\"code\", {\n children: [\"feedback=\", '\"', \"error\", '\"']\n }), \". In addition to visually and semantically indicating the error state, this will set a custom validation error on the input using \", _jsx(\"code\", {\n children: \"HTMLInputElement.setCustomValidity\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"feedback\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set \", _jsx(\"code\", {\n children: \"feedback\"\n }), \" to indicate that there is an associated error or warning for the \", _jsx(\"code\", {\n children: \"Input\"\n }), \".\", _jsx(\"br\", {}), \"Notice that setting\", ' ', _jsxs(\"code\", {\n children: [\"feedback=\", '\"', \"error\", '\"']\n }), ' ', \"will implicitly set\", ' ', _jsxs(\"code\", {\n children: [\"aria-invalid=\", '\"', \"true\", '\"']\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [`\"error\"`, \" | \", `\"warning\"`]\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `undefined`\n })\n })]\n }), _jsxs(Library.Demo, {\n withSource: true,\n children: [_jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(Input, {\n \"aria-label\": \"Input with error\",\n feedback: \"error\",\n value: \"something invalid\"\n })\n }), _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(Input, {\n \"aria-label\": \"Input with warning\",\n feedback: \"warning\",\n value: \"might be a problem\"\n })\n })]\n })]\n }), _jsx(Library.SectionL3, {\n title: \"type\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Input\"\n }), \" supports several input types\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'text' | 'url' | 'email' | 'search'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'text'`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Input\"\n }), \" accepts HTML attributes for input elements.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.InputHTMLAttributes<HTMLInputElement>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=InputPage.js.map","import { InputGroup, Input, IconButton, CopyIcon, ArrowLeftIcon, ArrowRightIcon, Select } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function InputGroupPage() {\n return _jsx(Library.Page, {\n title: \"InputGroup\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"InputGroup\"\n }), \" is a presentational component that provides layout and styling for groups of input components.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"InputGroup\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic InputGroup containing an Input and an IconButton\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsxs(InputGroup, {\n children: [_jsx(Input, {\n name: \"test\"\n }), _jsx(IconButton, {\n icon: CopyIcon,\n title: \"copy\",\n variant: \"dark\"\n })]\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with InputGroups\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Composing InputGroups\",\n children: [_jsxs(\"p\", {\n children: [\"The following input components can be used in an\", ' ', _jsx(\"code\", {\n children: \"InputGroup\"\n }), \":\"]\n }), _jsxs(\"ul\", {\n children: [_jsx(\"li\", {\n children: _jsx(\"code\", {\n children: \"Input\"\n })\n }), _jsx(\"li\", {\n children: _jsx(\"code\", {\n children: \"IconButton\"\n })\n }), _jsx(\"li\", {\n children: _jsx(\"code\", {\n children: \"Select\"\n })\n }), _jsx(\"li\", {\n children: _jsx(\"code\", {\n children: \"MultiSelect\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Select and IconButton components in InputGroup\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsxs(InputGroup, {\n children: [_jsx(IconButton, {\n icon: ArrowLeftIcon,\n title: \"Previous\",\n variant: \"dark\"\n }), _jsxs(Select, {\n value: \"1\",\n buttonContent: \"Apple\",\n onChange: () => {},\n children: [_jsx(Select.Option, {\n value: \"1\",\n children: \"Apple\"\n }), _jsx(Select.Option, {\n value: \"2\",\n children: \"Banana\"\n }), _jsx(Select.Option, {\n value: \"3\",\n children: \"Cherries\"\n })]\n }), _jsx(IconButton, {\n icon: ArrowRightIcon,\n title: \"Next\",\n variant: \"dark\"\n })]\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"Sizing InputGroups\",\n children: _jsx(Library.Demo, {\n title: \"Scaling to local font size\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(\"div\", {\n className: \"text-xs\",\n children: _jsxs(InputGroup, {\n children: [_jsx(Input, {\n name: \"test\"\n }), _jsx(IconButton, {\n icon: CopyIcon,\n title: \"copy\",\n size: \"sm\",\n variant: \"dark\"\n })]\n })\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"InputGroup\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\"]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"InputGroup\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=InputGroupPage.js.map","import { OptionButton } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function OptionButtonPage() {\n return _jsx(Library.Page, {\n title: \"OptionButton\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"OptionButton\"\n }), \" is a simple component for presenting an option as part of a set of options. It can be used in places where it is impractical or undesirable to use an equivalent\", ' ', _jsx(\"code\", {\n children: `input type=\"radio\"`\n }), \" or \", _jsx(\"code\", {\n children: \"select\"\n }), \" element.\", ' ', _jsx(\"code\", {\n children: \"OptionButton\"\n }), \" wraps\", ' ', _jsx(Library.Link, {\n href: \"/input-button\",\n children: _jsx(\"code\", {\n children: \"Button\"\n })\n }), \".\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"OptionButton\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n withSource: true,\n title: \"Basic OptionButton\",\n children: _jsx(\"div\", {\n className: \"w-[250px]\",\n children: _jsx(OptionButton, {\n children: \"Option Alpha\"\n })\n })\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Working with OptionButton\",\n children: _jsxs(Library.SectionL3, {\n title: \"Multiple OptionButtons\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"OptionButton\"\n }), \" is designed for use in a set, similar to an \", _jsx(\"code\", {\n children: \"option\"\n }), \" element or a radio button. While not enforced, a maximum of one \", _jsx(\"code\", {\n children: \"OptionButton\"\n }), \" in a set should be selected. There is also \", _jsx(\"code\", {\n children: \"disabled\"\n }), \"styling.\"]\n }), _jsxs(\"p\", {\n children: [\"To facilitate alignment, \", _jsx(\"code\", {\n children: \"OptionButton\"\n }), \" stretches to the full width of its container.\"]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"w-[280px] space-y-2\",\n children: [_jsx(OptionButton, {\n children: \"Option Alpha\"\n }), _jsx(OptionButton, {\n selected: true,\n children: \"Option Bravo\"\n }), _jsx(OptionButton, {\n children: \"Option Charlie-Delta-Echo\"\n }), _jsx(OptionButton, {\n disabled: true,\n children: \"Option Foxtrot\"\n }), _jsx(OptionButton, {\n children: \"Option Golf\"\n })]\n })\n })]\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(Library.SectionL3, {\n title: \"details\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Optional content to display at right side of button. Be sure to set a useful \", _jsx(\"code\", {\n children: \"title\"\n }), \" (used for generating\", ' ', _jsx(\"code\", {\n children: \"aria-label\"\n }), \") when constructing such buttons.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"preact.ComponentChildren\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"OptionButton with details\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[250px]\",\n children: _jsx(OptionButton, {\n details: \"PDF\",\n title: \"Select a PDF from Google Drive\",\n children: \"Google Drive\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"selected\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"The option represented by the button is selected. A maximum of one \", _jsx(\"code\", {\n children: \"OptionButton\"\n }), \" in a set should be selected at any time. This is an alias for the \", _jsx(\"code\", {\n children: \"Button\"\n }), ' ', _jsx(\"code\", {\n children: \"pressed\"\n }), \" prop.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Selected OptionButton\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[250px]\",\n children: _jsx(OptionButton, {\n details: \"PDF\",\n title: \"Select a PDF from Google Drive\",\n selected: true,\n children: \"Google Drive\"\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...buttonProps\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"OptionButton\"\n }), \" accepts and forwards all\", ' ', _jsx(Library.Link, {\n href: \"/input-button\",\n children: _jsx(\"code\", {\n children: \"Button\"\n })\n }), ' ', \"component API props. Styling API props are not forwarded.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<ButtonProps, 'size' | 'unstyled' | 'classes' | 'variant'>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=OptionButtonPage.js.map","import { Link } from '../../../../components/navigation';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function RadioGroupPage() {\n return _jsxs(Library.Page, {\n title: \"Radio group\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"RadioGroup\"\n }), \" is a component implementing the\", ' ', _jsx(Link, {\n href: \"https://www.w3.org/WAI/ARIA/apg/patterns/radio/\",\n target: \"_blank\",\n children: \"Radio Group Pattern\"\n }), \".\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"RadioGroup\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic RadioGroup\",\n withSource: true,\n exampleFile: \"radio-group-horizontal\"\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with RadioGroups\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"RadioGroup\"\n }), \" can render a list of radios arranged horizontally or vertically. Each radio can optionally render a subtitle, and be individually disabled.\"]\n }), _jsx(\"p\", {\n children: \"Radios can be focused via arrow keys. Right/Down to move focus to the next radio, and Up/Left for the previous one.\"\n }), _jsx(Library.SectionL3, {\n title: \"RadioGroup direction\",\n children: _jsx(Library.Demo, {\n title: \"Vertical RadioGroup\",\n withSource: true,\n exampleFile: \"radio-group-vertical\"\n })\n }), _jsxs(Library.SectionL3, {\n title: \"RadioGroup with complex layout\",\n children: [_jsxs(\"p\", {\n children: [\"If the \", _jsx(\"code\", {\n children: \"RadioGroup\"\n }), \" \", _jsx(\"code\", {\n children: \"direction\"\n }), \" does not fit your needs, you can provide a more complex container around radios, like a responsive set of columns or a grid layout.\"]\n }), _jsx(Library.Demo, {\n title: \"RadioGroup grid layout\",\n withSource: true,\n exampleFile: \"radio-group-grid-layout\"\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Labelling RadioGroups\",\n children: [_jsxs(\"p\", {\n children: [\"There are two ways to label a \", _jsx(\"code\", {\n children: \"RadioGroup\"\n }), \". Make sure to use at least one of them.\"]\n }), _jsx(Library.Demo, {\n title: \"Via aria-label\",\n withSource: true,\n exampleFile: \"radio-group-aria-label\"\n }), _jsx(Library.Demo, {\n title: \"Via aria-labelledby\",\n withSource: true,\n exampleFile: \"radio-group-aria-labelledby\"\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(Library.SectionL3, {\n title: \"aria-label\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Sets the \", _jsx(\"code\", {\n children: \"aria-label\"\n }), \" attribute in the\", ' ', _jsx(\"code\", {\n children: \"RadioGroup\"\n }), \". Make sure either this or\", ' ', _jsx(\"code\", {\n children: \"aria-labelledby\"\n }), \" is used.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | undefined\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"aria-labelledby\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Sets the \", _jsx(\"code\", {\n children: \"aria-labelledby\"\n }), \" attribute in the\", ' ', _jsx(\"code\", {\n children: \"RadioGroup\"\n }), \". Make sure either this or\", ' ', _jsx(\"code\", {\n children: \"aria-label\"\n }), \" is used.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | undefined\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"children\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"The content to render inside the \", _jsx(\"code\", {\n children: \"RadioGroup\"\n }), \", typically a list of \", _jsx(\"code\", {\n children: \"RadioGroup.Radio\"\n }), \" components.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"ComponentChildren\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"direction\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Whether the radios should be stacked horizontally or vertically.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [\"'\", \"vertical\", \"'\", \" | \", \"'\", \"horizontal\", \"'\"]\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsxs(\"code\", {\n children: [\"'\", \"horizontal\", \"'\"]\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"disabled\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"If true, it will disable all radios, regardless of the value of their own \", _jsx(\"code\", {\n children: \"disabled\"\n }), \" prop.\", _jsx(\"br\", {}), \"Disabled radios are never marked as selected.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Disabled RadioGroup\",\n withSource: true,\n exampleFile: \"radio-group-disabled\"\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"name\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"When provided, a hidden \", _jsx(\"code\", {\n children: \"input\"\n }), \" will be included, with this name and selected value, allowing \", _jsx(\"code\", {\n children: \"RadioGroup\"\n }), \" to be used as a regular form control.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string | undefined\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Named RadioGroup in form\",\n withSource: true,\n exampleFile: \"radio-group-in-form\"\n })]\n }), _jsx(Library.SectionL3, {\n title: \"onChange\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"A callback invoked when selected radio changes.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [\"(newValue: T) \", '=>', \" void\"]\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"selected\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"The value for currently selected radio.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"T | undefined\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n })]\n })]\n });\n}\n//# sourceMappingURL=RadioGroupPage.js.map","import { Textarea } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function TextareaPage() {\n return _jsx(Library.Page, {\n title: \"Textarea\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Textarea\"\n }), \" is a presentational component for styling\", ' ', _jsx(\"code\", {\n children: \"textarea\"\n }), \" elements.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Textarea\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Textarea\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(Textarea, {\n \"aria-label\": \"Textarea example\",\n placeholder: \"Placeholder...\"\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with Textareas\",\n children: [_jsxs(Library.SectionL3, {\n title: \"Labels\",\n children: [_jsxs(\"p\", {\n children: [\"Hypothesis does not currently have a design pattern for labeling textareas. However, for accessibility, it is critical that a\", ' ', _jsx(\"code\", {\n children: \"Textarea\"\n }), \" have either an associated \", _jsx(\"code\", {\n children: \"label\"\n }), ' ', \"element or an \", _jsx(\"code\", {\n children: \"aria-label\"\n }), \" attribute.\"]\n }), _jsx(Library.Demo, {\n title: \"Textarea with label\",\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"w-[350px]\",\n children: [_jsx(\"label\", {\n htmlFor: \"textarea-with-label\",\n className: \"font-semibold\",\n children: \"Label\"\n }), _jsx(Textarea, {\n id: \"textarea-with-label\",\n placeholder: \"Placeholder...\"\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Disabled Textareas\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Textarea\"\n }), \"s can be disabled by applying the HTML\", ' ', _jsx(\"code\", {\n children: \"disabled\"\n }), \" attribute.\"]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(Textarea, {\n \"aria-label\": \"Example textarea\",\n placeholder: \"Placeholder...\",\n disabled: true\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"Validation errors\",\n children: [_jsxs(\"p\", {\n children: [\"Validation errors can be triggered as a result of standard HTML attributes such as \", _jsx(\"code\", {\n children: \"required\"\n }), \" or a custom error set using the \", _jsx(\"code\", {\n children: \"error\"\n }), \" prop. Errors set using\", ' ', _jsx(\"code\", {\n children: \"error\"\n }), \" are synced to the browser via\", ' ', _jsx(\"code\", {\n children: \"HTMLTextAreaElement.setCustomValidity\"\n }), \". This allows the browser to alert the user when they try to submit the containing form.\"]\n }), _jsxs(\"p\", {\n children: [\"If the text area has custom validation checks, they should be performed in the element's \", _jsx(\"code\", {\n children: \"onChange\"\n }), \" handler.\"]\n }), _jsxs(\"p\", {\n children: [\"If the form is using custom UI to present validation errors, inputs must link to the element displaying their validation error using \", _jsx(\"code\", {\n children: \"aria-describedby\"\n }), \".\"]\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Textarea\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsx(Library.SectionL3, {\n title: \"error\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set \", _jsx(\"code\", {\n children: \"error\"\n }), \" to indicate a validation error. This implicitly sets\", ' ', _jsxs(\"code\", {\n children: [\"feedback=\", '\"', \"error\", '\"']\n }), \". In addition to visually and semantically indicating the error state, this will set a custom validation error on the textarea using \", _jsx(\"code\", {\n children: \"HTMLTextAreaElement.setCustomValidity\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"feedback\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set \", _jsx(\"code\", {\n children: \"feedback\"\n }), \" to indicate that there is an associated error or warning for the \", _jsx(\"code\", {\n children: \"Textarea\"\n }), \".\", _jsx(\"br\", {}), \"Notice that setting\", ' ', _jsxs(\"code\", {\n children: [\"feedback=\", '\"', \"error\", '\"']\n }), ' ', \"will implicitly set\", ' ', _jsxs(\"code\", {\n children: [\"aria-invalid=\", '\"', \"true\", '\"']\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [`\"error\"`, \" | \", `\"warning\"`]\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `undefined`\n })\n })]\n }), _jsxs(Library.Demo, {\n withSource: true,\n children: [_jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(Textarea, {\n \"aria-label\": \"Textarea with error\",\n feedback: \"error\",\n value: \"something invalid\"\n })\n }), _jsx(\"div\", {\n className: \"w-[350px]\",\n children: _jsx(Textarea, {\n \"aria-label\": \"Textarea with warning\",\n feedback: \"warning\",\n value: \"might be a problem\"\n })\n })]\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Textarea\"\n }), \" accepts HTML attributes for textarea elements.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.TextareaHTMLAttributes<HTMLTextareaElement>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=TextareaPage.js.map","import { Card, CardContent, CardHeader, CardTitle, CardActions } from '../../../../';\nimport { Button, EditIcon } from '../../../../';\nimport Library from '../../Library';\nimport { LoremIpsum } from '../samples';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function CardPage() {\n return _jsxs(Library.Page, {\n title: \"Card\",\n intro: _jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"Card\"\n }), \" family of presentational components provide support for laying out content in a card-like interface.\"]\n }),\n children: [_jsxs(Library.Section, {\n title: \"Card\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Card\"\n }), \" lays out content in a frame, with dimensional shadows by default.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Card, CardContent\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Card\",\n withSource: true,\n children: _jsx(Card, {\n children: _jsx(CardContent, {\n children: _jsx(LoremIpsum, {\n size: \"xs\"\n })\n })\n })\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Working with Cards\",\n children: _jsxs(Library.SectionL3, {\n title: \"Full-width content\",\n children: [_jsxs(\"p\", {\n children: [\"You can add full-bleed content by placing it outside of the\", ' ', _jsx(\"code\", {\n children: \"CardContent\"\n }), \" component.\"]\n }), _jsx(Library.Demo, {\n title: \"Card with full-width image\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsx(\"img\", {\n className: \"rounded-t-[inherit]\",\n src: \"https://placehold.co/1000/250\",\n alt: \"placeholder\"\n }), _jsx(CardContent, {\n children: _jsx(LoremIpsum, {\n size: \"xs\"\n })\n })]\n })\n })]\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Card\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsxs(Library.SectionL3, {\n title: \"active\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Style the card as if it is hovered or otherwise active.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `false`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"active Card\",\n withSource: true,\n children: _jsx(Card, {\n active: true,\n children: _jsx(CardContent, {\n children: _jsx(LoremIpsum, {\n size: \"xs\"\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set the \", _jsx(\"code\", {\n children: \"Card\"\n }), \" theming.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'raised' | 'flat'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `raised`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"raised\",\n withSource: true,\n children: _jsx(Card, {\n variant: \"raised\",\n children: _jsx(CardContent, {\n children: _jsxs(\"p\", {\n children: [\"The default \", `\"raised\"`, \" variant has dimensional effects on hover.\"]\n })\n })\n })\n }), _jsx(Library.Demo, {\n title: \"flat\",\n withSource: true,\n children: _jsx(Card, {\n variant: \"flat\",\n children: _jsx(CardContent, {\n children: _jsxs(\"p\", {\n children: [\"The \", `\"flat\"`, \" variant does not have dimensional effects.\"]\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"width\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Define how the \", `card's`, \" width is set. Provide width\", ' ', _jsx(\"code\", {\n children: \"classes\"\n }), \" when setting \", _jsx(\"code\", {\n children: \"width\"\n }), \" to\", ' ', _jsx(\"code\", {\n children: `'custom'`\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'full' | 'auto' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'full'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"full width\",\n withSource: true,\n children: _jsx(Card, {\n width: \"full\",\n children: _jsx(CardContent, {\n children: \"By default, a card will use the full width of its container.\"\n })\n })\n }), _jsx(Library.Demo, {\n title: \"auto width\",\n withSource: true,\n children: _jsx(Card, {\n width: \"auto\",\n children: _jsxs(CardContent, {\n children: [\"Setting width to \", _jsx(\"em\", {\n children: \"auto\"\n }), \".\"]\n })\n })\n }), _jsx(Library.Demo, {\n title: \"custom width with extra classes\",\n withSource: true,\n children: _jsx(Card, {\n classes: \"w-[400px]\",\n width: \"custom\",\n children: _jsx(CardContent, {\n children: _jsx(\"p\", {\n children: \"Sized to 400 px.\"\n })\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Card\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"CardContent\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"CardContent\"\n }), \" puts consistent padding and spacing around content in a \", _jsx(\"code\", {\n children: \"Card\"\n }), \" component.\"]\n }),\n children: [_jsx(Library.SectionL2, {\n children: _jsx(Library.Usage, {\n componentName: \"Card, CardContent\"\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"CardContent\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsxs(Library.SectionL3, {\n title: \"size\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set relative spacing and padding.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'sm' | 'md' | 'lg'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'md'`\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"space-y-3\",\n children: [_jsx(Card, {\n children: _jsxs(CardContent, {\n size: \"sm\",\n children: [_jsxs(\"div\", {\n children: [_jsx(\"code\", {\n children: \"CardContent\"\n }), \" component with\", ' ', _jsx(\"strong\", {\n children: _jsxs(\"code\", {\n children: [\"size=\", \"'sm'\"]\n })\n }), \".\"]\n }), _jsx(LoremIpsum, {\n size: \"xs\"\n })]\n })\n }), _jsx(Card, {\n children: _jsxs(CardContent, {\n size: \"md\",\n children: [_jsxs(\"div\", {\n children: [_jsx(\"code\", {\n children: \"CardContent\"\n }), \" component with\", ' ', _jsx(\"strong\", {\n children: _jsxs(\"code\", {\n children: [\"size=\", \"'md'\"]\n })\n }), \".\"]\n }), _jsx(LoremIpsum, {\n size: \"xs\"\n })]\n })\n }), _jsx(Card, {\n children: _jsxs(CardContent, {\n size: \"lg\",\n children: [_jsxs(\"div\", {\n children: [_jsx(\"code\", {\n children: \"CardContent\"\n }), \" component with\", ' ', _jsx(\"strong\", {\n children: _jsxs(\"code\", {\n children: [\"size=\", \"'lg'\"]\n })\n }), \".\"]\n }), _jsx(LoremIpsum, {\n size: \"xs\"\n })]\n })\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"CardContent\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"CardHeader\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"CardHeader\"\n }), \" renders a styled title and an optional close button on a \", _jsx(\"code\", {\n children: \"Card\"\n }), \".\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Card, CardContent, CardHeader\",\n size: \"sm\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n withSource: true,\n title: \"Basic CardHeader\",\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n title: \"Card title\"\n }), _jsx(CardContent, {\n children: _jsxs(\"div\", {\n children: [\"A \", _jsx(\"code\", {\n children: \"Card\"\n }), \" with \", _jsx(\"code\", {\n children: \"CardHeader\"\n }), \".\"]\n })\n })]\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"CardHeader\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsxs(Library.SectionL3, {\n title: \"title\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Render a \", _jsx(\"code\", {\n children: \"CardTitle\"\n }), \" with this title string in the\", ' ', _jsx(\"code\", {\n children: \"CardHeader\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `string`\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"With a `title`\",\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n title: \"Card title\",\n onClose: () => {}\n }), _jsx(CardContent, {\n children: _jsxs(\"div\", {\n children: [\"A \", _jsx(\"code\", {\n children: \"Card\"\n }), \" with \", _jsx(\"code\", {\n children: \"CardHeader\"\n }), \".\"]\n })\n })]\n })\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"Composed with `CardTitle`\",\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n onClose: () => {},\n children: _jsx(CardTitle, {\n children: \"Title here\"\n })\n }), _jsx(CardContent, {\n children: _jsxs(\"div\", {\n children: [\"A \", _jsx(\"code\", {\n children: \"Card\"\n }), \" with \", _jsx(\"code\", {\n children: \"CardHeader\"\n }), \".\"]\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"onClose\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Callback to request that the card close. When provided, a close button will be rendered.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `() => void`\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n title: \"This card can be closed\",\n onClose: () => alert('you clicked it')\n }), _jsx(CardContent, {\n children: _jsxs(\"div\", {\n children: [\"Passing an \", _jsx(\"code\", {\n children: \"onClose\"\n }), \" function to\", ' ', _jsx(\"code\", {\n children: \"CardHeader\"\n }), \" will add a close button.\"]\n })\n })]\n })\n }), _jsx(Library.Demo, {\n title: \"Close button sizing\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"text-[13px] w-full\",\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n onClose: () => alert('you clicked it'),\n children: _jsx(\"h3\", {\n className: \"text-brand font-semibold\",\n children: \"Custom title styling\"\n })\n }), _jsx(CardContent, {\n children: _jsxs(\"div\", {\n children: [\"The close button will always have the same size, regardless of local font size. Here, font size is\", ' ', _jsx(\"code\", {\n children: \"13px\"\n }), \", echoing the client application base font size, but the close button remains the same size.\"]\n })\n })]\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"fullWidth\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Ensure that the header divider (border) spans the full width of the card. This can be helpful when the card content scrolls.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `false`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Making a CardHeader span the full width\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n title: \"Full-width header\",\n onClose: () => alert('you clicked it'),\n fullWidth: true\n }), _jsx(CardContent, {\n children: _jsxs(\"div\", {\n children: [\"A \", _jsx(\"code\", {\n children: \"Card\"\n }), \" with \", _jsx(\"code\", {\n children: \"CardHeader\"\n }), \".\"]\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Define which theme to use for \", _jsx(\"code\", {\n children: \"CardHeader\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `{'primary' | 'secondary'}`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'primary'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"primary\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n variant: \"primary\",\n title: \"Primary variant\",\n onClose: () => {}\n }), _jsx(CardContent, {\n children: _jsxs(\"p\", {\n children: [\"This \", \"Card's\", \" \", _jsx(\"code\", {\n children: \"CardHeader\"\n }), \" is styled with the\", ' ', _jsx(\"code\", {\n children: \"primary\"\n }), \" (default) variant.\"]\n })\n })]\n })\n }), _jsx(Library.Demo, {\n title: \"secondary\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n variant: \"secondary\",\n onClose: () => {},\n title: \"Secondary variant\"\n }), _jsx(CardContent, {\n children: _jsxs(\"p\", {\n children: [\"This \", \"Card's\", \" \", _jsx(\"code\", {\n children: \"CardHeader\"\n }), \" is styled with the\", ' ', _jsx(\"code\", {\n children: \"secondary\"\n }), \" variant.\"]\n })\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"CardHeader\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"CardTitle\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"CardTitle\"\n }), \" styles a heading element in a\", ' ', _jsx(\"code\", {\n children: \"CardHeader\"\n }), \".\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Card, CardContent, CardHeader, CardTitle\",\n size: \"sm\"\n }), _jsx(Library.Demo, {\n title: \"Setting title with CardTitle\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsxs(CardHeader, {\n children: [_jsx(EditIcon, {}), _jsx(CardTitle, {\n children: \"Card title\"\n })]\n }), _jsx(CardContent, {\n children: _jsxs(\"div\", {\n children: [\"Using \", _jsx(\"code\", {\n children: \"CardTitle\"\n }), \" in a \", _jsx(\"code\", {\n children: \"CardHeader\"\n }), \". This allows for other custom content in the\", ' ', _jsx(\"code\", {\n children: \"CardHeader\"\n }), \".\"]\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"CardTitle\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsxs(Library.SectionL3, {\n title: \"tagName\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Which heading element to use for the title\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'h1' | 'h2' | 'h3' | 'h4' | 'h5'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'h1'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"tagName = 'h3'\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsxs(CardHeader, {\n children: [_jsx(EditIcon, {}), _jsx(CardTitle, {\n tagName: \"h3\",\n children: \"Card title\"\n })]\n }), _jsx(CardContent, {\n children: _jsxs(\"p\", {\n children: [\"Setting a different heading level (HTML tag) in a\", ' ', _jsx(\"code\", {\n children: \"CardTitle\"\n }), \".\"]\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Define which theme to use for \", _jsx(\"code\", {\n children: \"CardTitle\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `{'primary' | 'secondary'}`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'primary'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"primary\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n children: _jsx(CardTitle, {\n variant: \"primary\",\n children: \"Card title\"\n })\n }), _jsx(CardContent, {\n children: _jsxs(\"p\", {\n children: [\"This \", _jsx(\"code\", {\n children: \"CardTitle\"\n }), \" uses the default\", ' ', _jsx(\"code\", {\n children: \"'primary'\"\n }), \" variant.\"]\n })\n })]\n })\n }), _jsx(Library.Demo, {\n title: \"secondary\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n children: _jsx(CardTitle, {\n variant: \"secondary\",\n children: \"Card title\"\n })\n }), _jsx(CardContent, {\n children: _jsxs(\"p\", {\n children: [\"This \", _jsx(\"code\", {\n children: \"CardTitle\"\n }), \" uses the\", _jsx(\"code\", {\n children: \"'secondary'\"\n }), \" variant.\"]\n })\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"CardTitle\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"CardActions\",\n intro: _jsxs(\"p\", {\n children: [\"Use \", _jsx(\"code\", {\n children: \"CardActions\"\n }), \" to render a group of buttons in a\", ' ', _jsx(\"code\", {\n children: \"Card\"\n }), \".\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Card, CardContent, CardHeader, CardActions\",\n size: \"sm\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Card with actions\",\n withSource: true,\n children: _jsxs(Card, {\n children: [_jsx(CardHeader, {\n title: \"This card has some actions\"\n }), _jsxs(CardContent, {\n children: [_jsx(LoremIpsum, {\n size: \"xs\"\n }), _jsxs(CardActions, {\n children: [_jsx(Button, {\n children: \"Cancel\"\n }), _jsx(Button, {\n variant: \"primary\",\n children: \"Do it\"\n })]\n })]\n })]\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"CardActions\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"CardActions\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n })]\n });\n}\n//# sourceMappingURL=CardPage.js.map","import { Panel } from '../../../../';\nimport { Button, EditIcon, ScrollBox } from '../../../../';\nimport Library from '../../Library';\nimport { LoremIpsum } from '../samples';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nexport default function PanelPage() {\n return _jsx(Library.Page, {\n title: \"Panel\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Panel\"\n }), \" is a composite component that can be used to create panel-like interfaces. For more nuanced control, use \", _jsx(\"code\", {\n children: \"Card\"\n }), ' ', \"and its allies.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Panel\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Panel\",\n withSource: true,\n children: _jsx(Panel, {\n title: \"A simple panel\",\n children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\"\n })\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Working with Panels\",\n children: _jsxs(Library.SectionL3, {\n title: \"Scrolling content\",\n children: [_jsxs(\"p\", {\n children: [\"If a \", _jsx(\"code\", {\n children: \"Panel\"\n }), \" is a direct child of an element with a height constraint and the \", _jsx(\"code\", {\n children: \"scrollable\"\n }), \" prop is set, its content will scroll if it exceeds the available height. Header and buttons do not scroll.\"]\n }), _jsx(Library.Demo, {\n title: \"Scrolling content with `scrollable` prop\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"h-[350px]\",\n children: _jsx(Panel, {\n title: \"Scrolling content\",\n scrollable: true,\n children: _jsx(LoremIpsum, {})\n })\n })\n }), _jsxs(\"p\", {\n children: [\"More control can be achieved by using \", _jsx(\"code\", {\n children: \"ScrollBox\"\n }), \" or other scrolling components instead.\"]\n }), _jsx(Library.Demo, {\n title: \"Scrolling certain content\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"h-[350px]\",\n children: _jsxs(Panel, {\n title: \"Scrolling selected content\",\n buttons: _jsxs(_Fragment, {\n children: [_jsx(Button, {\n children: \"Buttons\"\n }), _jsx(Button, {\n children: \"do not\"\n }), _jsx(Button, {\n variant: \"primary\",\n children: \"Scroll\"\n })]\n }),\n children: [_jsx(\"p\", {\n children: \"This content does not scroll.\"\n }), _jsx(ScrollBox, {\n children: _jsx(LoremIpsum, {})\n })]\n })\n })\n })]\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Panel\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#composite-components-api\",\n children: \"composite component props\"\n }), \".\", _jsx(Library.SectionL3, {\n title: \"title\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Panel title\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `string`\n })\n }), _jsx(Library.InfoItem, {\n label: \"required\",\n children: _jsx(\"code\", {\n children: \"true\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"buttons\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"ComponentChildren\"\n }), \" to render as available actions in the panel.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `preact.ComponentChildren`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Panel with buttons\",\n withSource: true,\n children: _jsx(Panel, {\n title: \"Panel title\",\n buttons: _jsxs(_Fragment, {\n children: [_jsx(Button, {\n children: \"Cancel\"\n }), _jsx(Button, {\n variant: \"primary\",\n children: \"Do it\"\n })]\n }),\n children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\"\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"fullWidthHeader\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Make the header and its bottom border stretch the full width of the panel.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `false`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Panel with fullWidthHeader\",\n withSource: true,\n children: _jsx(Panel, {\n title: \"Panel with full-width header\",\n fullWidthHeader: true,\n children: _jsx(LoremIpsum, {\n size: \"xs\"\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"icon\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"An \", _jsx(\"code\", {\n children: \"IconComponent\"\n }), \" to render in the panel header.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `IconComponent`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Panel with icon\",\n withSource: true,\n children: _jsx(Panel, {\n title: \"Panel title\",\n icon: EditIcon,\n children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\"\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"onClose\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Render a close button and invoke this callback function when it is clicked.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `() => void`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Panel with close button\",\n withSource: true,\n children: _jsx(Panel, {\n title: \"Panel title\",\n onClose: () => alert('you clicked it'),\n children: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\"\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"paddingSize\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Determine how much padding is used around the content in the panel.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'sm' | 'md' | 'lg' | 'none'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'md'`\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(Panel, {\n title: \"paddingSize: 'sm'\",\n paddingSize: \"sm\",\n children: _jsx(\"div\", {\n className: \"bg-grey-1\",\n children: _jsx(LoremIpsum, {\n size: \"xs\"\n })\n })\n })\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(Panel, {\n title: \"paddingSize: 'md'\",\n paddingSize: \"md\",\n children: _jsx(\"div\", {\n className: \"bg-grey-1\",\n children: _jsx(LoremIpsum, {\n size: \"xs\"\n })\n })\n })\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(Panel, {\n title: \"paddingSize: 'lg'\",\n paddingSize: \"lg\",\n children: _jsx(\"div\", {\n className: \"bg-grey-1\",\n children: _jsx(LoremIpsum, {\n size: \"xs\"\n })\n })\n })\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"No padding\",\n children: _jsx(Panel, {\n title: \"paddingSize: 'none'\",\n paddingSize: \"none\",\n children: _jsx(\"div\", {\n className: \"bg-grey-1\",\n children: _jsx(LoremIpsum, {\n size: \"xs\"\n })\n })\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"scrollable\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Make the content in the panel scroll if the panel exceeds height constraints. All scrollable panels have a\", ' ', _jsx(\"code\", {\n children: \"fullWidthHeader\"\n }), \" to align with scroll-shadow hints.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `false`\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(\"div\", {\n className: \"h-[300px]\",\n children: _jsx(Panel, {\n title: \"Scrolling panel\",\n buttons: _jsxs(_Fragment, {\n children: [_jsx(Button, {\n children: \"Cancel\"\n }), _jsx(Button, {\n variant: \"primary\",\n children: \"Do it\"\n })]\n }),\n scrollable: true,\n children: _jsx(LoremIpsum, {\n size: \"lg\"\n })\n })\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Panel\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=PanelPage.js.map","import { useState } from 'preact/hooks';\nimport { Button, Card, CardContent, Spinner } from '../../../../';\nimport { Overlay } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function OverlayPage() {\n const [defaultOpen, setDefaultOpen] = useState(false);\n const [darkOpen, setDarkOpen] = useState(false);\n const [lightOpen, setLightOpen] = useState(false);\n const toggleDefaultOverlay = () => setDefaultOpen(!defaultOpen);\n const toggleLightOpen = () => setLightOpen(!lightOpen);\n const toggleDarkOpen = () => setDarkOpen(!darkOpen);\n return _jsx(Library.Page, {\n title: \"Overlay\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Overlay\"\n }), \" is a presentational component that styles full-screen backdrops for use during loading or as a modal backdrop.\"]\n }),\n children: _jsxs(Library.Section, {\n title: \"Overlay\",\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Overlay\"\n }), _jsx(Library.SectionL3, {\n children: _jsxs(Library.Demo, {\n title: \"Basic Overlay\",\n withSource: true,\n children: [_jsx(Button, {\n onClick: toggleDefaultOverlay,\n children: \"Show Overlay\"\n }), _jsx(Overlay, {\n open: defaultOpen,\n onClick: toggleDefaultOverlay,\n children: _jsx(Card, {\n width: \"auto\",\n children: _jsx(CardContent, {\n children: \"Content in Overlay\"\n })\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Overlay\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Define which theme to use for the \", _jsx(\"code\", {\n children: \"Overlay\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `{'dark' | 'light'}`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'dark'`\n })\n })]\n }), _jsxs(Library.Demo, {\n title: \"dark\",\n withSource: true,\n children: [_jsx(Button, {\n onClick: toggleDarkOpen,\n children: \"Show Overlay\"\n }), _jsx(Overlay, {\n open: darkOpen,\n onClick: toggleDarkOpen,\n variant: \"dark\",\n children: _jsx(Spinner, {\n size: \"lg\",\n color: \"text-inverted\"\n })\n })]\n }), _jsxs(Library.Demo, {\n title: \"light\",\n withSource: true,\n children: [_jsx(Button, {\n onClick: toggleLightOpen,\n children: \"Show Overlay\"\n }), _jsx(Overlay, {\n open: lightOpen,\n onClick: toggleLightOpen,\n variant: \"light\",\n children: _jsx(Spinner, {\n size: \"lg\"\n })\n })]\n })]\n }), _jsx(Library.SectionL3, {\n title: \"open\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set whether the overlay is open (visible) or not.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'true'`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Overlay\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `JSX.HTMLAttributes<HTMLElement>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=OverlayPage.js.map","import { Link } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function LinkPage() {\n return _jsx(Library.Page, {\n title: \"Link\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Link\"\n }), \" is a presentational component that provides styling and common behavior for anchor (\", _jsx(\"code\", {\n children: \"a\"\n }), \") elements.\"]\n }),\n children: _jsxs(Library.Section, {\n title: \"Link\",\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Link\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Link\",\n withSource: true,\n children: _jsx(Link, {\n href: \"https://www.example.com\",\n children: \"A link to a website\"\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Link\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsxs(Library.SectionL3, {\n title: \"underline\",\n children: [_jsx(\"div\", {\n className: \"m-4\",\n children: _jsxs(Library.Callout, {\n children: [_jsx(\"strong\", {\n children: \"Note\"\n }), \" The \", _jsx(\"code\", {\n children: \"underline\"\n }), \" prop is likely to be removed in future and underlining will be controlled with a styling-API prop. This prop is ignored if\", ' ', _jsx(\"code\", {\n children: \"unstyled\"\n }), \" is set (in which case, no underline styling will be applied).\"]\n })\n }), _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Control when underlines are applied to links. Current default is\", ' ', _jsx(\"code\", {\n children: \"'none'\"\n }), \", but this will be changing in future. Links inline with text content should set \", _jsx(\"code\", {\n children: \"underline\"\n }), ' ', \"to \", _jsx(\"code\", {\n children: \"'always'\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'none' | 'hover' | 'always'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'none'\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex flex-col\",\n children: [_jsx(Link, {\n href: \"https://www.example.com\",\n underline: \"none\",\n children: \"Link with underline: none\"\n }), _jsx(Link, {\n href: \"https://www.example.com\",\n underline: \"hover\",\n children: \"Link with underline: hover\"\n }), _jsx(Link, {\n href: \"https://www.example.com\",\n underline: \"always\",\n children: \"Link with underline: always\"\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Link\"\n }), \" accepts HTML attribute props applicable to\", ' ', _jsx(\"code\", {\n children: \"HTMLAnchorElement\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'preact.JSX.AnchorHTMLAttributes<HTMLAnchorElement>'\n })\n }), _jsx(Library.InfoItem, {\n label: \"example\",\n children: _jsx(Library.Code, {\n content: `<Link id=\"my-own-id\" href=\"https://www.example.com\">A Link with attributes</Link>`,\n size: \"sm\"\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Styling API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Link\"\n }), \" accepts the following props from the\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-styling-api\",\n children: \"presentational component styling API\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n id: \"styling-api-variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Link \", _jsx(\"code\", {\n children: \"variant\"\n }), \"s affect the color of link text (including hover color). Set to \", _jsx(\"code\", {\n children: \"custom\"\n }), \" to remove theming styles.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'brand' | 'text' | 'text-light' | 'custom'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'brand'\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex flex-col\",\n children: [_jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"brand\",\n children: \"Variant: brand (default)\"\n }), _jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"text\",\n children: \"Variant: text\"\n }), _jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"text-light\",\n children: \"Variant: text-light\"\n }), _jsx(Link, {\n href: \"https://www.example.com\",\n variant: \"custom\",\n children: \"Variant: custom\"\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"unstyled\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set to remove all styling.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(Link, {\n href: \"https://www.example.com\",\n unstyled: true,\n children: \"Unstyled Link\"\n })\n })]\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=LinkPage.js.map","import { LinkButton } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function LinkButtonPage() {\n return _jsx(Library.Page, {\n title: \"LinkButton\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"LinkButton\"\n }), \" is a presentational component that can be used to style a button to appear as a link.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"LinkButton\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic LinkButton\",\n withSource: true,\n children: _jsx(LinkButton, {\n children: \"Example of LinkButton\"\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(Library.SectionL3, {\n title: \"color\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"status\",\n children: [_jsx(Library.StatusChip, {\n status: \"deprecated\"\n }), \" Use\", ' ', _jsx(\"code\", {\n children: \"variant\"\n }), \" prop instead.\"]\n }), _jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Link \", _jsx(\"code\", {\n children: \"color\"\n }), \" affects the color of link text (including hover color).\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'brand' | 'text' | 'text-light'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'brand'\"\n })\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"inline\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Style a \", _jsx(\"code\", {\n children: \"LinkButton\"\n }), \" to lay out inline. Ignored if\", ' ', _jsx(\"code\", {\n children: \"unstyled\"\n }), \" is set.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex flex-col gap-y-4\",\n children: [_jsxs(\"p\", {\n children: [\"This is\", ' ', _jsx(LinkButton, {\n underline: \"always\",\n children: \"a default LinkButton\"\n }), ' ', \"with some text.\"]\n }), _jsxs(\"p\", {\n children: [\"This is\", ' ', _jsx(LinkButton, {\n underline: \"always\",\n inline: true,\n children: \"an inline LinkButton\"\n }), ' ', \"with some text.\"]\n })]\n })\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"underline\",\n children: [_jsx(\"div\", {\n className: \"m-4\",\n children: _jsxs(Library.Callout, {\n children: [_jsx(\"strong\", {\n children: \"Note\"\n }), \" The \", _jsx(\"code\", {\n children: \"underline\"\n }), \" prop is likely to be removed in future and underlining will be controlled with a styling-API prop. This prop is ignored if\", ' ', _jsx(\"code\", {\n children: \"unstyled\"\n }), \" is set (in which case, no underline styling will be applied).\"]\n })\n }), _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Control when underlines are applied to \", _jsx(\"code\", {\n children: \"LinkButton\"\n }), \"s. Current default is \", _jsx(\"code\", {\n children: \"'none'\"\n }), \", but this will be changing in future. Links inline with text content should set\", ' ', _jsx(\"code\", {\n children: \"underline\"\n }), \" to \", _jsx(\"code\", {\n children: \"'always'\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'none' | 'hover' | 'always'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'none'`\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsxs(\"div\", {\n className: \"flex flex-col\",\n children: [_jsx(LinkButton, {\n underline: \"none\",\n children: \"Underline: none (default)\"\n }), _jsx(LinkButton, {\n underline: \"hover\",\n children: \"Underline: hover\"\n }), _jsx(LinkButton, {\n underline: \"always\",\n children: \"Underline: always\"\n }), _jsxs(\"p\", {\n children: [\"LinkButtons should be\", ' ', _jsx(LinkButton, {\n underline: \"always\",\n inline: true,\n children: \"always underlined\"\n }), ' ', \"when inline with text content.\"]\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"LinkButton\"\n }), \" accepts HTML attribute props applicable to \", _jsx(\"code\", {\n children: \"HTMLButtonElement\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: 'preact.JSX.ButtonHTMLAttributes<HTMLButtonElement>'\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Styling API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"LinkButton\"\n }), \" accepts the following props from the\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-styling-api\",\n children: \"presentational component styling API\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set to \", _jsx(\"code\", {\n children: \"custom\"\n }), \" to remove theming styles.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"'brand' | 'text' | 'text-light' | 'custom'\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'brand'\"\n })\n })]\n }), _jsxs(\"div\", {\n className: \"m-8 grid grid-cols-4 gap-x-16 gap-y-4\",\n children: [_jsx(\"div\", {\n className: \"row-span-2 self-end\",\n children: _jsx(\"strong\", {\n children: \"variant\"\n })\n }), _jsx(\"div\", {\n className: \"uppercase col-span-3 w-full text-center font-semibold border-b border-stone-300 pb-2 border-dashed\",\n children: \"states\"\n }), _jsx(\"div\", {\n children: _jsx(\"strong\", {\n children: \"default\"\n })\n }), _jsx(\"div\", {\n children: _jsx(\"strong\", {\n children: \"pressed\"\n })\n }), _jsx(\"div\", {\n children: _jsx(\"strong\", {\n children: \"disabled\"\n })\n }), _jsx(\"div\", {\n className: \"col-span-4 border-b border-stone-300\"\n }), _jsx(\"div\", {\n children: _jsx(\"code\", {\n children: `'brand'`\n })\n }), _jsx(LinkButton, {\n variant: \"brand\",\n children: \"Link text\"\n }), _jsx(LinkButton, {\n variant: \"brand\",\n pressed: true,\n children: \"Link text\"\n }), _jsx(LinkButton, {\n variant: \"brand\",\n disabled: true,\n children: \"Link text\"\n }), _jsx(\"div\", {\n children: _jsx(\"code\", {\n children: `'text'`\n })\n }), _jsx(LinkButton, {\n variant: \"text\",\n children: \"Link text\"\n }), _jsx(LinkButton, {\n variant: \"text\",\n pressed: true,\n children: \"Link text\"\n }), _jsx(LinkButton, {\n variant: \"text\",\n disabled: true,\n children: \"Link text\"\n }), _jsx(\"div\", {\n children: _jsx(\"code\", {\n children: `'text-light'`\n })\n }), _jsx(LinkButton, {\n variant: \"text-light\",\n children: \"Link text\"\n }), _jsx(LinkButton, {\n variant: \"text-light\",\n pressed: true,\n children: \"Link text\"\n }), _jsx(LinkButton, {\n variant: \"text-light\",\n disabled: true,\n children: \"Link text\"\n }), _jsx(\"div\", {\n children: _jsx(\"code\", {\n children: `'custom'`\n })\n }), _jsx(LinkButton, {\n variant: \"custom\",\n children: \"Link text\"\n }), _jsx(LinkButton, {\n variant: \"custom\",\n pressed: true,\n children: \"Link text\"\n }), _jsx(LinkButton, {\n variant: \"custom\",\n disabled: true,\n children: \"Link text\"\n })]\n })]\n }), _jsxs(Library.SectionL3, {\n title: \"unstyled\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set to remove all styling.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n children: _jsx(LinkButton, {\n unstyled: true,\n children: \"Unstyled LinkButton\"\n })\n })]\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=LinkButtonPage.js.map","import { useState } from 'preact/hooks';\nimport { Pagination } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function PaginationPage() {\n const [currentPage, setCurrentPage] = useState(1);\n return _jsx(Library.Page, {\n title: \"Pagination\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Pagination\"\n }), \" is a component that allows navigating between pages in a paginated set of items.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n symbolName: \"Pagination\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic usage\",\n withSource: true,\n children: _jsx(Pagination, {\n currentPage: currentPage,\n totalPages: 10,\n onChangePage: page => setCurrentPage(page)\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(Library.SectionL3, {\n title: \"currentPage\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"The 1-based number of the currently visible page.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"number\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"onChangePage\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Callback invoked with the new page number when the user clicks a navigation button.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsxs(\"code\", {\n children: [\"(newPage: number) \", '=>', \" void\"]\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"totalPages\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"The total number of pages available.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"number\"\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=PaginationPage.js.map","import { PointerButton } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nexport default function PointerButtonPage() {\n return _jsx(Library.Page, {\n title: \"PointerButton\",\n intro: _jsxs(_Fragment, {\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"PointerButton\"\n }), \" is a presentational component for styling a button that points towards a group of items elsewhere in the UI or off-screen. They are specifically used to indicate and navigate to \\\"buckets\\\" (groups of annotations that are near each other in document content) in the Hypothesis client.\"]\n }), _jsx(\"p\", {\n children: \"PointerButtons point at and navigate to these groups of annotation highlights, which are either in the visible content of the source document (guest page) or off-screen (above or below).\"\n })]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"PointerButton\"\n }), _jsx(Library.SectionL3, {\n children: _jsxs(Library.Demo, {\n title: \"Basic PointerButtons\",\n withSource: true,\n children: [_jsx(PointerButton, {\n direction: \"up\",\n children: \"3\"\n }), _jsx(PointerButton, {\n direction: \"down\",\n children: \"7\"\n }), _jsx(PointerButton, {\n direction: \"left\",\n children: \"5\"\n })]\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Working with PointerButtons\",\n children: _jsxs(Library.SectionL3, {\n title: \"PointerButtons in context\",\n children: [_jsxs(\"p\", {\n children: [\"The following example shows \", _jsx(\"code\", {\n children: \"PointerButtons\"\n }), \" as they might appear in the client, positioned absolutely in a\", ' ', '\"bucket bar\"', \".\"]\n }), _jsx(Library.Demo, {\n title: \"PointerButtons in visual context\",\n withSource: true,\n children: _jsx(\"div\", {\n className: \"w-[23px] h-[250px] bg-grey-2\",\n children: _jsxs(\"ul\", {\n className: \"relative h-full pointer-events-none\",\n children: [_jsx(\"li\", {\n className: \"absolute right-0 pointer-events-auto mt-[-11px]\",\n style: {\n top: '15px'\n },\n children: _jsx(PointerButton, {\n direction: \"up\",\n children: \"6\"\n })\n }), _jsx(\"li\", {\n className: \"absolute right-0 pointer-events-auto mt-[-8px]\",\n style: {\n top: '47px'\n },\n children: _jsx(PointerButton, {\n direction: \"left\",\n children: \"10\"\n })\n }), _jsx(\"li\", {\n className: \"absolute right-0 pointer-events-auto mt-[-8px]\",\n style: {\n top: '112px'\n },\n children: _jsx(PointerButton, {\n direction: \"left\",\n children: \"1\"\n })\n }), _jsx(\"li\", {\n className: \"absolute right-0 pointer-events-auto\",\n style: {\n top: '230px'\n },\n children: _jsx(PointerButton, {\n direction: \"down\",\n children: \"4\"\n })\n })]\n })\n })\n })]\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsx(\"code\", {\n children: \"Button\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\", _jsxs(Library.SectionL3, {\n title: \"direction\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Direction the button should point. If not provided, the button will be a round lozenge.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'up' | 'down' | 'left'`\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"direction not set\",\n withSource: true,\n children: _jsx(PointerButton, {\n children: \"24\"\n })\n }), _jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"left\"\n }), \" direction is intended to point to and navigate to a bucket of annotations currently visible on-screen.\"]\n }), _jsx(Library.Demo, {\n title: \"direction: left\",\n withSource: true,\n children: _jsx(PointerButton, {\n direction: \"left\",\n children: \"3\"\n })\n }), _jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"up\"\n }), \" direction is intended to point to and navigate to the next bucket offscreen (above).\"]\n }), _jsx(Library.Demo, {\n title: \"direction: up\",\n withSource: true,\n children: _jsx(PointerButton, {\n direction: \"up\",\n children: \"4\"\n })\n }), _jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"down\"\n }), \" direction is intended to point to and navigate to the next bucket offscreen (below).\"]\n }), _jsx(Library.Demo, {\n title: \"direction: down\",\n withSource: true,\n children: _jsx(PointerButton, {\n direction: \"down\",\n children: \"6\"\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...buttonProps\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"PointerButton\"\n }), \" props for\", ' ', _jsx(Library.Link, {\n href: \"/input-button\",\n children: \"Button\"\n }), \" except for styling API props. This includes HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<ButtonProps>, 'variant' | 'size' | 'unstyled'>`\n })\n })]\n })\n })]\n })]\n })\n });\n}\n//# sourceMappingURL=PointerButtonPage.js.map","import classnames from 'classnames';\nimport { useState } from 'preact/hooks';\nimport { Card, EmailIcon, ProfileIcon, SettingsIcon, Tab, TabList } from '../../../../';\nimport Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function TabPage() {\n const [prefPanel, setPrefPanel] = useState('notifications');\n const [sidebarPanel, setSidebarPanel] = useState('annotations');\n const [sidebarPanel2, setSidebarPanel2] = useState('annotations');\n const [sidebarPanel3, setSidebarPanel3] = useState('annotations');\n const [verticalPanel, setVerticalPanel] = useState('notifications');\n return _jsxs(Library.Page, {\n title: \"Tabs\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Tab\"\n }), \" and \", _jsx(\"code\", {\n children: \"TabList\"\n }), \" are presentational components for rendering accessible tabs.\"]\n }),\n children: [_jsxs(Library.Section, {\n title: \"Tab\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Tab\"\n }), \" generates a button with appropriate ARIA attributes.\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"Tab\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n title: \"Basic Tabs in a tablist\",\n withSource: true,\n children: _jsxs(\"div\", {\n role: \"tablist\",\n className: \"gap-x-6 flex\",\n children: [_jsxs(Tab, {\n children: [\"Annotations\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 52\n })]\n }), _jsxs(Tab, {\n selected: true,\n children: [\"Page Notes\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 4\n })]\n }), _jsxs(Tab, {\n children: [\"Orphans\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 2\n })]\n })]\n })\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Working with Tabs\",\n children: [_jsx(Library.SectionL3, {\n title: \"Accessibility\",\n children: _jsxs(\"ul\", {\n children: [_jsxs(\"li\", {\n children: [_jsx(\"code\", {\n children: \"Tab\"\n }), \"s \", _jsx(\"em\", {\n children: \"must\"\n }), \" be direct children of an element with \", _jsxs(\"code\", {\n children: [\"role=\", '\"tablist\"']\n }), \" (or use the\", ' ', _jsx(\"code\", {\n children: \"TabList\"\n }), \" component).\"]\n }), _jsxs(\"li\", {\n children: [\"You \", _jsx(\"em\", {\n children: \"should\"\n }), \" provide an\", ' ', _jsx(\"a\", {\n href: \"https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls\",\n children: _jsx(\"code\", {\n children: \"aria-controls\"\n })\n }), ' ', \"attribute to each \", _jsx(\"code\", {\n children: \"Tab\"\n }), \". This is not always feasible in our applications.\"]\n })]\n })\n }), _jsxs(Library.SectionL3, {\n title: \"Preventing text jiggle with textContent\",\n children: [_jsx(\"p\", {\n children: \"Bolding is used in our design patterns to indicate a selected tab. Without any intervention, textual tabs will jiggle around when they are selected. This has a simple cause: bold text takes up more room.\"\n }), _jsxs(\"p\", {\n children: [_jsxs(\"strong\", {\n children: [\"Setting \", _jsx(\"code\", {\n children: \"textContent\"\n }), \" can help prevent jiggle in selected tabs\"]\n }), \". The size of the tab will accommodate this string rendered in bold text.\"]\n }), _jsx(Library.Demo, {\n title: \"Tabs without textContent (jiggle when selected)\",\n withSource: true,\n children: _jsxs(TabList, {\n classes: \"gap-x-6\",\n children: [_jsxs(Tab, {\n selected: sidebarPanel === 'annotations',\n onClick: () => setSidebarPanel('annotations'),\n children: [\"Annotations\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 52\n })]\n }), _jsxs(Tab, {\n selected: sidebarPanel === 'pageNotes',\n onClick: () => setSidebarPanel('pageNotes'),\n children: [\"Page Notes\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 48\n })]\n }), _jsxs(Tab, {\n selected: sidebarPanel === 'orphans',\n onClick: () => setSidebarPanel('orphans'),\n children: [\"Orphans\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 4\n })]\n })]\n })\n }), _jsxs(\"p\", {\n children: [\"For tabs that have a simple text label, setting\", ' ', _jsx(\"code\", {\n children: \"textContent\"\n }), \" to that string avoids the jiggle. Text will still change size (bold text is larger) but the tabs themselves do not move.\"]\n }), _jsx(Library.Demo, {\n title: \"Tabs with textContent (no jiggle)\",\n withSource: true,\n children: _jsxs(TabList, {\n classes: \"gap-x-6\",\n children: [_jsx(Tab, {\n selected: sidebarPanel2 === 'annotations',\n onClick: () => setSidebarPanel2('annotations'),\n textContent: \"Annotations\",\n children: \"Annotations\"\n }), _jsx(Tab, {\n selected: sidebarPanel2 === 'pageNotes',\n onClick: () => setSidebarPanel2('pageNotes'),\n textContent: \"Page Notes\",\n children: \"Page Notes\"\n }), _jsx(Tab, {\n selected: sidebarPanel2 === 'orphans',\n onClick: () => setSidebarPanel2('orphans'),\n textContent: \"Orphans\",\n children: \"Orphans\"\n })]\n })\n }), _jsxs(\"p\", {\n children: [\"For tabs with styled or dynamic content, \", _jsx(\"code\", {\n children: \"textContent\"\n }), ' ', \"can be set to an estimated \", '\"widest-possible-text-content\"', ' ', \"value.\"]\n }), _jsx(Library.Demo, {\n title: \"Tabs with estimated widest-value textContent\",\n withSource: true,\n children: _jsxs(TabList, {\n classes: \"gap-x-6\",\n children: [_jsxs(Tab, {\n selected: sidebarPanel3 === 'annotations',\n onClick: () => setSidebarPanel3('annotations'),\n textContent: \"Annotations##\",\n children: [\"Annotations\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 52\n })]\n }), _jsxs(Tab, {\n selected: sidebarPanel3 === 'pageNotes',\n onClick: () => setSidebarPanel3('pageNotes'),\n textContent: \"Page Notes##\",\n children: [\"Page Notes\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 56\n })]\n }), _jsxs(Tab, {\n selected: sidebarPanel3 === 'orphans',\n onClick: () => setSidebarPanel3('orphans'),\n textContent: \"Orphans##\",\n children: [\"Orphans\", _jsx(\"span\", {\n className: \"relative bottom-[3px] left-[2px] text-[10px]\",\n children: 2\n })]\n })]\n })\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Tab\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"icon\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Optional icon to display on the left, sized proportionally to the inherited font size.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"IconComponent\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"Tabs with icon\",\n withSource: true,\n children: _jsxs(\"div\", {\n role: \"tablist\",\n children: [_jsx(Tab, {\n icon: ProfileIcon,\n children: \"Profile\"\n }), _jsx(Tab, {\n classes: \"text-lg\",\n icon: ProfileIcon,\n children: \"Profile\"\n }), _jsx(Tab, {\n classes: \"text-xl\",\n icon: ProfileIcon,\n children: \"Profile\"\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"selected\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Asserts that the \", _jsx(\"code\", {\n children: \"Tab\"\n }), \" is currently selected and the\", ' ', _jsx(\"code\", {\n children: \"tabpanel\"\n }), \" it controls (where relevant) is active and visible.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"textContent\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"String representing the longest textual content expected for the Tab. Used to prevent jiggle when selected.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"...buttonProps\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"Tab\"\n }), \" forwards\", ' ', _jsx(Library.Link, {\n href: \"/input-button\",\n children: _jsx(\"code\", {\n children: \"Button\"\n })\n }), ' ', \"component API props, including HTML attributes. Styling API props are not forwarded.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<ButtonProps, 'variant' | 'size' | 'unstyled'>`\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Styling API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"Tab\"\n }), \" accepts the following props from the\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-styling-api\",\n children: \"presentational component styling API\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"variant\",\n children: [_jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set to \", _jsx(\"code\", {\n children: \"custom\"\n }), \" to remove theming styles and provide your own styling with \", _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'text' | 'tab' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"'text'\"\n })\n })]\n }), _jsx(Library.Demo, {\n title: \"variant: 'tab'\",\n withSource: true,\n children: _jsxs(\"div\", {\n role: \"tablist\",\n className: \"flex\",\n children: [_jsx(Tab, {\n variant: \"tab\",\n children: \"Share\"\n }), _jsx(Tab, {\n selected: true,\n variant: \"tab\",\n children: \"Import\"\n }), _jsx(Tab, {\n variant: \"tab\",\n children: \"Export\"\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"size\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Set relative internal spacing and padding. Set to\", ' ', _jsx(\"code\", {\n children: `'custom'`\n }), \" to provide your own sizing styles with\", ' ', _jsx(\"code\", {\n children: \"classes\"\n }), \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `'md' | 'custom'`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `'md'`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"unstyled\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Set to remove all styling.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"TabList\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"TabList\"\n }), \" is a presentational component that provides a\", ' ', _jsx(\"code\", {\n children: 'role=\"tablist\"'\n }), \" container and arrow-key navigation as outlined by\", ' ', _jsx(\"a\", {\n href: \"https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\",\n children: \"WAI-ARIA authoring practices\"\n }), \".\"]\n }),\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n componentName: \"TabList\"\n }), _jsxs(Library.SectionL3, {\n children: [_jsxs(\"p\", {\n children: [\"This example demonstrates a full Tab pattern with\", ' ', _jsx(\"code\", {\n children: \"TabList\"\n }), \", \", _jsx(\"code\", {\n children: \"Tab\"\n }), \" and some tabpanels. The tabpanels have been made focusable here as they contain no focusable elements: pressing \", _jsx(\"kbd\", {\n children: \"tab\"\n }), \" when in the tablist will move focus to the active tabpanel. Tabs may be navigated with the left and right arrows.\"]\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"Full Tab pattern example\",\n children: _jsxs(\"div\", {\n children: [_jsxs(TabList, {\n classes: \"w-[400px] gap-x-6 my-4\",\n children: [_jsx(Tab, {\n \"aria-controls\": \"profile-panel\",\n textContent: \"Profile\",\n selected: prefPanel === 'profile',\n onClick: () => setPrefPanel('profile'),\n children: \"Profile\"\n }), _jsx(Tab, {\n \"aria-controls\": \"notifications-panel\",\n textContent: \"Notifications\",\n selected: prefPanel === 'notifications',\n onClick: () => setPrefPanel('notifications'),\n children: \"Notifications\"\n }), _jsx(Tab, {\n \"aria-controls\": \"account-panel\",\n textContent: \"Account\",\n selected: prefPanel === 'account',\n onClick: () => setPrefPanel('account'),\n children: \"Account\"\n })]\n }), _jsx(Card, {\n classes: classnames({\n hidden: prefPanel !== 'profile'\n }, 'p-2 focus-visible:ring focus-visible:outline-none'),\n id: \"profile-panel\",\n role: \"tabpanel\",\n tabIndex: 0,\n variant: \"flat\",\n children: \"Profile\"\n }), _jsx(Card, {\n classes: classnames({\n hidden: prefPanel !== 'notifications'\n }, 'p-2 focus-visible:ring focus-visible:outline-none'),\n id: \"notifications-panel\",\n role: \"tabpanel\",\n tabIndex: 0,\n variant: \"flat\",\n children: \"Notifications\"\n }), _jsx(Card, {\n classes: classnames({\n hidden: prefPanel !== 'account'\n }, 'p-2 focus-visible:ring focus-visible:outline-none'),\n id: \"account-panel\",\n role: \"tabpanel\",\n tabIndex: 0,\n variant: \"flat\",\n children: \"Account\"\n })]\n })\n })]\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Component API\",\n children: [_jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"TabList\"\n }), \" accepts all standard\", ' ', _jsx(Library.Link, {\n href: \"/using-components#presentational-components-api\",\n children: \"presentational component props\"\n }), \".\"]\n }), _jsxs(Library.SectionL3, {\n title: \"vertical\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Indicates that the tablist should be laid out vertically. When set, arrow-key navigation using up and down arrows is enabled.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"boolean\"\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"false\"\n })\n })]\n }), _jsx(Library.Demo, {\n withSource: true,\n title: \"Vertical TabList\",\n children: _jsxs(TabList, {\n classes: \"gap-y-2\",\n vertical: true,\n children: [_jsx(Tab, {\n icon: ProfileIcon,\n onClick: () => setVerticalPanel('profile'),\n selected: verticalPanel === 'profile',\n textContent: \"Profile\",\n children: \"Profile\"\n }), _jsx(Tab, {\n icon: EmailIcon,\n onClick: () => setVerticalPanel('notifications'),\n selected: verticalPanel === 'notifications',\n textContent: \"Notifications\",\n children: \"Notifications\"\n }), _jsx(Tab, {\n icon: SettingsIcon,\n onClick: () => setVerticalPanel('account'),\n selected: verticalPanel === 'account',\n textContent: \"Account\",\n children: \"Account\"\n })]\n })\n })]\n }), _jsx(Library.SectionL3, {\n title: \"...htmlAttributes\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [_jsx(\"code\", {\n children: \"TabList\"\n }), \" accepts HTML attributes.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `Omit<JSX.HTMLAttributes<HTMLElement>, 'size'>`\n })\n })]\n })\n })]\n })]\n })]\n });\n}\n//# sourceMappingURL=TabPage.js.map","import Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function UseClickAwayPage() {\n return _jsx(Library.Page, {\n title: \"useClickAway\",\n intro: _jsxs(\"p\", {\n children: [_jsx(\"code\", {\n children: \"useClickAway\"\n }), \" is a hook to listen for click events on\", ' ', _jsx(\"code\", {\n children: \"document.body\"\n }), \". If an event\", \"'\", \"s target is outside the container element, it invokes a callback.\"]\n }),\n children: _jsxs(Library.Section, {\n children: [_jsxs(Library.SectionL2, {\n children: [_jsx(Library.Usage, {\n symbolName: \"useClickAway\"\n }), _jsx(Library.SectionL3, {\n children: _jsx(Library.Demo, {\n withSource: true,\n title: \"Basic useClickAway\",\n exampleFile: \"use-click-away-basic\"\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Hook arguments\",\n children: [_jsx(Library.SectionL3, {\n title: \"container\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"A Ref to the DOM element used to evaluate if clicking happened\", ' ', '\"', \"away\", '\"', \".\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `RefObject<HTMLElement | undefined>`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"callback\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"The callback to be invoked when clicking away. The click event object is passed to it.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `(e: Event) => void`\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"options\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Options to configure the hook\", \"'\", \"s behavior.\"]\n }), _jsxs(Library.InfoItem, {\n label: \"type\",\n children: [\"See\", ' ', _jsx(Library.Link, {\n href: \"#hook-options\",\n children: \"hook options\"\n }), ' ', \"below for details.\"]\n })]\n })\n })]\n }), _jsx(Library.SectionL2, {\n title: \"Hook options\",\n id: \"hook-options\",\n children: _jsxs(Library.SectionL3, {\n title: \"enabled\",\n children: [_jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Allows the hook to be conditionally enabled or disabled, for example, if the container it handles is dynamically hidden or unmounted.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: `boolean`\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: `true`\n })\n })]\n }), _jsx(Library.Code, {\n content: `useClickAway(containerRef, callback, { enabled: false })`\n })]\n })\n })]\n })\n });\n}\n//# sourceMappingURL=UseClickAwayPage.js.map","import Library from '../../Library';\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\nexport default function LazyPage() {\n return _jsxs(Library.Page, {\n title: \"lazy\",\n intro: _jsxs(\"p\", {\n children: [\"The \", _jsx(\"code\", {\n children: \"lazy\"\n }), \" utility creates a component which is loaded asynchronously, displaying fallback content while loading and showing an error fallback if the component fails to load.\"]\n }),\n children: [_jsxs(Library.Section, {\n title: \"API\",\n children: [_jsx(Library.SectionL2, {\n children: _jsx(Library.Usage, {\n symbolName: \"lazy\"\n })\n }), _jsxs(Library.SectionL2, {\n title: \"Parameters\",\n children: [_jsx(Library.SectionL3, {\n title: \"displayName\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Display name for the lazy wrapper component.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"string\"\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"load\",\n children: _jsxs(Library.Info, {\n children: [_jsxs(Library.InfoItem, {\n label: \"description\",\n children: [\"Callback invoked on first render to load the component. This returns a promise resolving to the loaded component. A common use case is to use an \", _jsx(\"code\", {\n children: \"import(...)\"\n }), \" expression to load the component.\"]\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: '() => Promise<FunctionalComponent<P>>'\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"options\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Configuration for the lazy component\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: \"LazyOptions<P>\"\n })\n })]\n })\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"LazyOptions\",\n children: [_jsx(Library.SectionL3, {\n title: \"fallback\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Function that returns content to display while loading\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: '(props: P) => ComponentChildren'\n })\n })]\n })\n }), _jsx(Library.SectionL3, {\n title: \"errorFallback\",\n children: _jsxs(Library.Info, {\n children: [_jsx(Library.InfoItem, {\n label: \"description\",\n children: \"Function that returns content to display if loading fails. If not provided a default error fallback is shown.\"\n }), _jsx(Library.InfoItem, {\n label: \"type\",\n children: _jsx(\"code\", {\n children: '((props: P, error: Error) => ComponentChildren) | undefined'\n })\n }), _jsx(Library.InfoItem, {\n label: \"default\",\n children: _jsx(\"code\", {\n children: \"undefined\"\n })\n })]\n })\n })]\n })]\n }), _jsxs(Library.Section, {\n title: \"Examples\",\n children: [_jsxs(Library.SectionL2, {\n title: \"Basic usage\",\n children: [_jsx(\"p\", {\n children: \"Lazy components start loading on first render, and show a fallback while loading.\"\n }), _jsx(Library.Demo, {\n title: \"Basic lazy component\",\n exampleFile: \"lazy-basic\",\n withSource: true\n })]\n }), _jsxs(Library.SectionL2, {\n title: \"Error handling\",\n children: [_jsx(\"p\", {\n children: \"If a component fails to load, the error fallback is displayed:\"\n }), _jsx(Library.Demo, {\n title: \"Component with error state\",\n exampleFile: \"lazy-error-handling\",\n withSource: true\n })]\n })]\n })]\n });\n}\n//# sourceMappingURL=LazyPage.js.map","import classnames from 'classnames';\nimport { useEffect } from 'preact/hooks';\nimport { Route, Router, Switch, Link as RouteLink, useLocation, useRoute } from 'wouter-preact';\nimport { Link, LogoIcon, Scroll, ScrollContainer, ScrollContent } from '../../';\nimport { componentGroups, getRoutes } from '../routes';\nimport Library from './Library';\n\n/**\n * Header for a primary section of nav\n */\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"preact/jsx-runtime\";\nfunction NavHeader({\n children\n}) {\n return _jsx(\"h2\", {\n className: \"text-slate-800 border-b border-stone-300 px-2 py-1 font-light text-lg\",\n children: children\n });\n}\n\n/**\n * Secondary section of navigation, with header\n */\nfunction NavSection({\n title,\n children\n}) {\n return _jsxs(\"div\", {\n className: \"space-y-4\",\n children: [_jsx(\"h3\", {\n className: \"mx-2 text-slate-700 font-semibold text-sm\",\n children: title\n }), children]\n });\n}\n\n/**\n * Render a list of navigation items\n */\nfunction NavList({\n children\n}) {\n return _jsx(\"ul\", {\n className: \"ml-2 space-y-2 border-l-2 border-stone-200\",\n children: children\n });\n}\n\n/**\n * A single navigation link\n */\nfunction NavLink({\n route\n}) {\n var _route$route, _route$route2;\n const [isActive] = useRoute((_route$route = route.route) !== null && _route$route !== void 0 ? _route$route : '');\n return _jsxs(\"li\", {\n className: \"-ml-[2px]\",\n children: [route.route && _jsx(RouteLink, {\n href: (_route$route2 = route.route) !== null && _route$route2 !== void 0 ? _route$route2 : '',\n asChild: true,\n children: _jsx(Link, {\n classes: classnames('pl-4 rounded-l-none w-full border-l-2 hover:border-l-brand', {\n 'border-l-2 border-brand font-semibold': isActive,\n 'border-transparent': !isActive\n }),\n children: route.title\n })\n }), !route.route && _jsx(\"div\", {\n className: \"pl-4 w-full text-slate-5 font-light\",\n children: route.title\n })]\n });\n}\n\n/**\n * Render web content for the playground application. This includes the \"frame\"\n * around the page and a navigation channel, as well as the content rendered\n * by the component handling the current route.\n */\nexport default function PlaygroundApp({\n baseURL = '',\n extraRoutes = [],\n extraRoutesTitle = 'Playground'\n}) {\n const routes = getRoutes();\n const [pathname] = useLocation();\n useEffect(\n /**\n * Support hash-based navigation and reset scroll when `wouter` path\n * changes.\n * - For locations without hash, reset scroll to top of page\n * - For locations with hash, scroll to top of fragment-indicated element\n */\n () => {\n const hash = window.location.hash.replace(/^#/, '');\n if (hash) {\n const fragElement = document.getElementById(hash);\n if (fragElement) {\n fragElement.scrollIntoView();\n }\n } else {\n window.scrollTo(0, 0);\n }\n }, [pathname]);\n\n // Update document title when `wouter` path changes.\n useEffect(() => {\n var _activeRoute$title;\n const activeRoute = routes.find(({\n route\n }) => route === pathname);\n document.title = `${(_activeRoute$title = activeRoute === null || activeRoute === void 0 ? void 0 : activeRoute.title) !== null && _activeRoute$title !== void 0 ? _activeRoute$title : 'Page not found'}: Hypothesis Component Library`;\n }, [pathname, routes]);\n\n // Put all of the custom routes into the \"custom\" group\n const customRoutes = extraRoutes.map(route => {\n return {\n ...route,\n group: 'custom'\n };\n });\n const allRoutes = routes.concat(customRoutes);\n const pageRoutes = _jsx(_Fragment, {\n children: allRoutes.filter(route => !!route.route).map(aRoute => {\n var _aRoute$component;\n return _jsx(Route, {\n path: aRoute.route,\n children: (_aRoute$component = aRoute.component) !== null && _aRoute$component !== void 0 ? _aRoute$component : aRoute.title\n }, aRoute.title);\n })\n });\n const prototypeRoutes = getRoutes('prototype');\n const hookRoutes = getRoutes('hooks');\n const utilityRoutes = getRoutes('utilities');\n const groupKeys = Object.keys(componentGroups);\n return _jsx(Router, {\n base: baseURL,\n children: _jsx(\"div\", {\n className: \"w-full bg-stone-200\",\n children: _jsx(\"div\", {\n className: \"max-w-[1300px] mx-auto\",\n children: _jsxs(\"div\", {\n className: \"md:grid md:grid-cols-[2fr_5fr]\",\n children: [_jsx(\"div\", {\n className: \"md:h-screen md:sticky md:top-0 border-l border-stone-400 bg-stone-100\",\n children: _jsxs(ScrollContainer, {\n borderless: true,\n children: [_jsx(\"div\", {\n className: \"h-16 flex items-center\",\n children: _jsx(\"h1\", {\n className: \"font-medium text-lg pl-6\",\n children: _jsxs(Link, {\n href: baseURL + '/',\n classes: \"flex gap-x-3 text-stone-700 items-center\",\n children: [_jsx(LogoIcon, {\n className: \"text-brand w-6 h-6\"\n }), \"Component Library\"]\n })\n })\n }), _jsx(Scroll, {\n children: _jsx(ScrollContent, {\n classes: \"bg-stone-400/10\",\n children: _jsxs(\"nav\", {\n id: \"nav\",\n className: \"pb-16 space-y-4 mr-4\",\n children: [_jsx(NavHeader, {\n children: \"Foundations\"\n }), _jsx(NavList, {\n children: getRoutes('foundations').map(route => _jsx(NavLink, {\n route: route\n }, route.title))\n }), _jsx(NavHeader, {\n children: \"Components\"\n }), groupKeys.map(group => {\n return _jsx(NavSection, {\n title: componentGroups[group],\n children: _jsx(NavList, {\n children: getRoutes(group).map(route => _jsx(NavLink, {\n route: route\n }, route.title))\n })\n }, group);\n }), _jsx(NavHeader, {\n children: \"Hooks\"\n }), _jsx(NavList, {\n children: hookRoutes.map(route => _jsx(NavLink, {\n route: route\n }, route.title))\n }), _jsx(NavHeader, {\n children: \"Utilities\"\n }), _jsx(NavList, {\n children: utilityRoutes.map(route => _jsx(NavLink, {\n route: route\n }, route.title))\n }), prototypeRoutes.length > 0 && _jsxs(_Fragment, {\n children: [_jsx(NavHeader, {\n children: \"Prototypes\"\n }), _jsx(NavList, {\n children: prototypeRoutes.map(route => _jsx(NavLink, {\n route: route\n }, route.title))\n })]\n }), extraRoutes.length > 0 && _jsxs(_Fragment, {\n children: [_jsx(NavHeader, {\n children: extraRoutesTitle\n }), _jsx(NavList, {\n children: customRoutes.map(route => _jsx(NavLink, {\n route: route\n }, route.title))\n })]\n })]\n })\n })\n })]\n })\n }), _jsx(\"div\", {\n className: \"bg-white pb-16 border-x border-stone-400\",\n children: _jsxs(Switch, {\n children: [pageRoutes, _jsx(Route, {\n children: _jsx(Library.Page, {\n title: \":( Sorry\",\n children: _jsx(\"h1\", {\n className: \"text-2xl\",\n children: \"Page not found\"\n })\n })\n })]\n })\n })]\n })\n })\n })\n });\n}\n//# sourceMappingURL=PlaygroundApp.js.map","// Entry point for extending the pattern library\nimport { render } from 'preact';\n// Enable preact debug checks\nimport 'preact/debug';\nimport PlaygroundApp from './components/PlaygroundApp';\nimport { jsx as _jsx } from \"preact/jsx-runtime\";\n/**\n * Render the pattern-library preact app\n */\nexport function startApp({\n ...componentProps\n} = {}) {\n const container = document.querySelector('#app');\n render(_jsx(PlaygroundApp, {\n ...componentProps\n }), container);\n}\n//# sourceMappingURL=index.js.map","import { startApp } from '@hypothesis/frontend-shared/pattern-library';\n\nstartApp({ baseURL: '/ui-playground' });\n"],"names":["n","l","u","t","i","r","o","e","f","c","s","a","h","p","v","y","w","Array","isArray","d","g","parentNode","removeChild","_","arguments","length","children","call","defaultProps","m","type","props","key","ref","__k","__","__b","__e","__c","constructor","__v","__i","__u","vnode","k","x","this","context","S","C","base","M","__d","push","$","__r","debounceRendering","sort","shift","__P","O","__n","namespaceURI","N","I","b","String","L","D","P","B","A","nextSibling","insertBefore","nodeType","H","some","T","setProperty","test","j","style","cssText","replace","toLowerCase","slice","addEventListener","removeEventListener","removeAttribute","setAttribute","F","event","prototype","render","contextType","value","__E","E","sub","state","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","V","then","indexOf","z","q","diffed","forEach","map","localName","document","createTextNode","createElementNS","is","__m","data","childNodes","attributes","name","__html","innerHTML","content","current","unmount","componentWillUnmount","G","documentElement","firstChild","K","Q","Set","add","delete","Provider","__l","Consumer","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","bind","resolve","setTimeout","hasOwn","hasOwnProperty","classNames","classes","arg","appendClass","parseValue","apply","toString","Object","includes","newClass","module","exports","default","window","__H","__N","__f","filter","every","requestAnimationFrame","clearTimeout","cancelAnimationFrame","canUseDOM","createElement","useEvent","fn","useRef","args","useLayoutEffect","eventPushState","eventReplaceState","events","subscribeToLocationUpdates","callback","useLocationProperty","ssrFn","subscribe","getSnapshot","getSSRSnapshot","_instance","useState","_value","_getSnapshot","useEffect","useSyncExternalStore","currentSearch","location","search","currentPathname","pathname","usePathname","ssrPath","navigate","to","history","patchKey","Symbol","for","original","result","Event","dispatchEvent","defineProperty","relativePath","path","unescape","str","decodeURI","_e","defaultRouter","hook","opts","searchHook","ssrSearch","parser","input","loose","RegExp","keys","pattern","tmp","ext","arr","split","substring","undefined","RouterCtx","createContext","useRouter","useContext","ParamsCtx","useLocationFromRouter","router","navOpts","absolutePath","useLocation","matchRoute","route","$base","matches","exec","fromEntries","useRoute","Router","parent_","parent","prev","next","option","h_route","component","params","Route","nest","match","renderProps","Link","href","_href","onClick","_onClick","asChild","restProps","ctrlKey","metaKey","altKey","shiftKey","button","defaultPrevented","preventDefault","isValidElement","cloneElement","flattenChildren","concat","Fragment","Switch","originalLocation","element","_defineProperty","toPrimitive","TypeError","Number","_toPrimitive","_toPropertyKey","enumerable","configurable","writable","ListenerCollection","_listeners","Map","eventTarget","eventType","listener","options","symbol","set","remove","listenerId","get","removeAll","clear","useStableCallback","wrapper","defaultSetFocus","focus","useArrowKeyNavigation","containerRef","autofocus","loop","horizontal","vertical","selector","containerVisible","focusElement","focusElement_","lastFocusedItem","Error","container","getNavigableElements","filtered","from","querySelectorAll","el","offsetParent","disabled","isElementDisabled","activeElement","unshift","updateTabIndexes","elements","currentIndex","setFocus","keyEvent","findIndex","tabIndex","index","entries","navigableElements","initialIndex","listeners","target","targetIndex","item","handled","stopPropagation","mo","MutationObserver","observe","subtree","attributeFilter","childList","disconnect","useClickAway","enabled","body","handleAwayClick","composedPath","useFocusAway","contains","relatedTarget","useKeyPress","collator","Intl","Collator","sensitivity","useOrderedRows","rows","order","useMemo","nullsLast","field","direction","compare","SyncedRef","_target","_updateTarget","useSyncedRef","targetRef","__source","__self","defaultSelector","Overlay","elementRef","open","variant","htmlAttributes","_jsx","className","classnames","CloseableContext","ScrollContext","Scroll","scrollContext","scrollRef","Card","active","width","CardActions","CardContent","size","ArrowDownIcon","xmlns","height","viewBox","_jsxs","fill","ArrowLeftIcon","ArrowRightIcon","ArrowUpIcon","CancelIcon","CautionIcon","CheckIcon","CheckboxIcon","CheckboxCheckedFilledIcon","CodeIcon","CopyIcon","EditIcon","EllipsisIcon","EmailIcon","FileImageIcon","HideIcon","ImageIcon","LogoIcon","MenuCollapseIcon","MenuExpandIcon","OrderableIcon","PointerDownIcon","stroke","PointerUpIcon","ProfileIcon","RadioIcon","RadioCheckedIcon","ReplyIcon","SettingsIcon","ShareIcon","ShowIcon","SpinnerSpokesIcon","attributeName","dur","repeatCount","values","transform","cx","cy","Button","expanded","pressed","title","icon","Icon","unstyled","role","styled","themed","sized","ariaProps","inputGroupStyles","InputGroup","IconButton","CloseButton","iconButtonProps","_ref","closeableContext","onClose","CardTitle","tagName","WrapperElement","CardHeader","fullWidth","closeHandler","Panel","buttons","fullWidthHeader","paddingSize","scrollable","heightConstraintClasses","panelContent","_Fragment","Dialog","closeOnClickAway","closeOnEscape","closeOnFocusAway","initialFocus","restoreFocus","transitionComponent","TransitionComponent","closeTitle","rest","isPanel","modalRef","restoreFocusEl","transitionComponentVisible","setTransitionComponentVisible","useCallback","initializeDialog","_modalRef$current","focusEl","_modalRef$current2","dialogDescriptionId","useId","Wrapper","restoreFocusTo","_modalRef$current3","description","querySelector","id","onTransitionEnd","ModalDialog","disableCloseOnEscape","disableFocusTrap","disableRestoreFocus","htmlAndPanelAttributes","isElementVisible","focusedIndex","useTabKeyNavigation","AspectRatio","objectFit","ratio","toChildArray","firstChildNode","find","child","otherChildren","mediaClasses","paddingBottom","class","ToggleInput","checked","UncheckedIcon","checkedIcon","CheckedIcon","onChange","containerClasses","htmlFor","Checkbox","defaultChecked","isControlled","uncontrolledChecked","setUncontrolledChecked","useValidationError","error","_ref$current","setCustomValidity","inputStyles","feedback","Input","console","warn","OptionButton","details","selected","buttonProps","isPressed","RadioGroupContext","Radio","subtitle","radioDisabled","radioGroupContext","isSelected","onKeyDown","displayName","assign","label","labelledBy","dataset","POPOVER_ANCHOR_EL_GAP","POPOVER_VIEWPORT_HORIZONTAL_GAP","Popover","anchorElementRef","align","placement","arrow","onScroll","asNativePopover","HTMLElement","popoverRef","resolvedPlacement","anchorRef","alignToRight","setResolvedPlacement","adjustPopoverPositioning","popoverEl","anchorEl","setPopoverCSSProps","prop","viewportHeight","innerHeight","top","anchorElDistanceToTop","bottom","anchorElBottom","left","anchorElLeft","anchorElHeight","anchorElWidth","getBoundingClientRect","anchorElDistanceToBottom","popoverHeight","popoverWidth","shouldBeAbove","anchorGap","marginBottom","marginTop","bodyTop","bodyWidth","absBodyTop","Math","abs","availableSpace","minWidth","max","popover","togglePopover","cleanup","capture","observer","ResizeObserver","usePopoverPositioning","popoverOpen","toggleListener","oldState","newState","useOnClose","currentFocus","useRestoreFocusOnClose","hidden","SelectContext","optionChildren","status","SelectOption","checkboxRef","checkboxContainerRef","optionRef","eventTriggeredInCheckbox","selectContext","selectValue","currentValue","multiple","selectOneValue","closeListbox","toggleValue","copy","splice","truncate","listboxOverflow","_optionRef$current","SelectMain","buttonContent","buttonId","buttonClasses","popoverClasses","onPopoverScroll","alignListbox","ariaLabel","ariaLabelledBy","listboxAsPopover","wrapperRef","listboxRef","listboxOpen","setListboxOpen","listboxId","buttonRef","defaultButtonId","Select","Option","Textarea","TableContext","Table","interactive","stickyHeader","borderless","striped","grid","tableContext","tableRef","TableSectionContext","TableBody","sectionContext","section","TableCell","unpadded","isHeadCell","scope","TableFoot","TableHead","TableRow","rowRef","isHeadRow","defaultRenderItem","HeaderComponent","commonClasses","DataTable","columns","selectedRow","selectedRows","loading","renderItem","onSelectRow","onSelectRows","onConfirmRow","emptyMessage","onOrderChange","orderableColumns","orderableColumnsList","initialOrderForColumn","updateOrder","newField","newOrder","prevOrder","_initialOrderForColum","calculateNewOrder","noContent","fields","column","selectRow","row","mode","newSelection","startIdx","endIdx","reverse","MouseEvent","confirmRow","handleKeyDown","currentTarget","_tableRef$current","_tableRef$current2","scrollEl","tableHead","selectedRowEl","scrollOffset","offsetTop","scrollTop","clientHeight","scrollIntoView","headingOffset","scrollBy","withFoot","selection","tableRows","idx","onDblClick","Boolean","isOrderable","isActiveOrder","colSpan","ScrollContainer","rounded","border","ScrollContent","ScrollBox","Spinner","color","Thumbnail","placeholder","emptyContent","Callout","StatusIcon","withIcon","SpinnerOverlay","ToastMessageItem","message","onDismiss","visuallyHidden","ToastMessageTransition","transitionClasses","isDismissed","transitionIn","transitionOut","onAnimationEnd","ToastMessages","messages","onMessageDismiss","setTimeout_","dismissedMessages","setDismissedMessages","messageSchedules","dismissMessage","ids","scheduleMessageDismiss","timeout","_message$autoDismiss","autoDismiss","pendingTimeouts","underline","rel","LinkButton","inline","NavigationButton","invisible","Pagination","currentPage","onChangePage","totalPages","hasNextPage","hasPreviousPage","pageNumbers","boundaryCount","siblingCount","afterCurrent","min","elideBefore","page","count","elideAfter","maxItems","_elideAfter","_elideBefore","paginationItems","changePageTo","pageNumber","blur","PointerButton","htmlAndButtonProps","Tab","textContent","TabList","tabListRef","Slider","delay","visible","containerHeight","setContainerHeight","contentVisible","setContentVisible","display","scrollHeight","handleTransitionEnd","propertyName","ontransitionend","overflow","transition","transitionDelay","deepFreeze","obj","freeze","getOwnPropertyNames","isFrozen","Response","isMatchIgnored","ignoreMatch","escapeHTML","inherit$1","objects","create","emitsWrappingTags","node","HTMLRenderer","parseTree","buffer","classPrefix","walk","addText","text","openNode","prefix","startsWith","pieces","repeat","join","scopeToCSSClass","span","closeNode","newNode","TokenTree","rootNode","stack","root","pop","closeAllNodes","toJSON","JSON","stringify","builder","_walk","static","_collapse","TokenTreeEmitter","super","startScope","endScope","__addSublanguage","emitter","toHTML","finalize","source","re","lookahead","anyNumberOfTimes","optional","joined","either","stripOptionsFromArgs","countMatchGroups","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","regex","offset","out","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","begin","relevance","APOS_STRING_MODE","end","illegal","QUOTE_STRING_MODE","COMMENT","modeOptions","excludeBegin","ENGLISH_WORD","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","__proto__","MATCH_NOTHING_RE","RE_STARTERS_RE","SHEBANG","beginShebang","binary","resp","PHRASAL_WORDS_MODE","END_SAME_AS_BEGIN","_beginMatch","skipIfHasPrecedingDot","response","scopeClassName","_parent","beginKeywords","__beforeBegin","keywords","compileIllegal","compileMatch","compileRelevance","beforeMatchExt","beforeMatch","starts","originalMode","endsParent","COMMON_KEYWORDS","DEFAULT_KEYWORD_SCOPE","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","compileList","keywordList","keyword","pair","scoreForKeyword","providedScore","commonKeyword","seenDeprecations","log","deprecated","version","MultiClassError","remapScopeNames","regexes","scopeNames","emit","positions","_emit","_multi","MultiClass","beginScope","scopeSugar","_wrap","skip","returnBegin","beginMultiClass","excludeEnd","returnEnd","endMultiClass","compileLanguage","language","langRe","global","case_insensitive","unicodeRegex","MultiRegex","matchIndexes","matchAt","position","addRule","compile","terminators","matcherRe","lastIndex","matchData","ResumableMultiRegex","rules","multiRegexes","regexIndex","getMatcher","matcher","resumingScanAtSamePosition","considerAll","m2","compilerExtensions","classNameAliases","compileMode","cmode","isCompiled","keywordPattern","$pattern","keywordPatternRe","beginRe","endsWithParent","endRe","terminatorEnd","illegalRe","variants","cachedVariants","dependencyOnParent","expandOrCloneMode","mm","term","rule","buildModeRegex","HTMLInjectionError","reason","html","escape","inherit","NO_MATCH","HLJS","hljs","languages","aliases","plugins","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","ignoreUnescapedHTML","throwUnescapedHTML","noHighlightRe","languageDetectRe","cssSelector","__emitter","shouldNotHighlight","languageName","highlight","codeOrLanguageName","optionsOrCode","ignoreIllegals","code","fire","_highlight","codeToHighlight","continuation","keywordHits","processKeywords","modeBuffer","buf","word","matchText","kind","keywordRelevance","cssClass","emitKeyword","processBuffer","subLanguage","continuations","highlightAuto","_emitter","processSubLanguage","emitMultiClass","klass","startNewMode","endOfMode","matchPlusRemainder","matched","lexeme","doIgnore","resumeScanAtSamePosition","doEndMatch","endMode","origin","lastMatch","processLexeme","textBeforeMatch","err","badRule","newMode","beforeCallbacks","cb","doBeginMatch","processed","iterations","getLanguage","md","list","processContinuations","__emitTokens","processedCount","_top","_illegalBy","resultSoFar","errorRaised","languageSubset","plaintext","justTextHighlightResult","results","autoDetection","sorted","supersetOf","best","secondBest","highlightElement","block","_class","blockLanguage","currentLang","resultLang","classList","updateClassName","wantsHighlight","highlightAll","readyState","registerAliases","aliasList","alias","lang","plugin","highlightBlock","configure","userOptions","initHighlighting","initHighlightingOnLoad","registerLanguage","languageDefinition","error$1","rawDefinition","unregisterLanguage","listLanguages","addPlugin","upgradePluginAPI","removePlugin","debugMode","safeMode","versionString","newInstance","core","HighlightJS","IMPORTANT","BLOCK_COMMENT","HEXCOLOR","FUNCTION_DISPATCH","ATTRIBUTE_SELECTOR_MODE","CSS_NUMBER_MODE","CSS_VARIABLE","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","css","modes","STRINGS","keyframePosition","built_in","attribute","KEYWORDS","LITERALS","TYPES","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","BUILT_INS","javascript","IDENT_RE$1","FRAGMENT","XML_TAG","isTrulyOpeningTag","afterMatchIndex","nextChar","after","tag","hasClosingTag","afterMatch","KEYWORDS$1","literal","decimalDigits","frac","decimalInteger","NUMBER","SUBST","HTML_TEMPLATE","CSS_TEMPLATE","GRAPHQL_TEMPLATE","TEMPLATE_STRING","SUBST_INTERNALS","SUBST_AND_COMMENTS","PARAMS_CONTAINS","PARAMS","CLASS_OR_EXTENDS","CLASS_REFERENCE","FUNCTION_DEFINITION","FUNCTION_CALL","PROPERTY_ACCESS","GETTER_OR_SETTER","FUNC_LEAD_IN_RE","FUNCTION_VARIABLE","typescript","tsLanguage","NAMESPACE","INTERFACE","DECORATOR","swapMode","replacement","indx","functionDeclaration","xml","TAG_NAME_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","componentName","_type$displayName","jsxToString","propStr","isExcludedProp","elementType","isJSXElement","valueStr","trim","childrenStr","indent","indentStr","line","indentLines","highlightCode","hljsTypeScriptLang","hljsXMLLang","hljsCSSLang","jsxToHTML","Heading","level","SectionDepthContext","Section","intro","sectionDepth","depth","SimpleError","async","fetchCodeExample","exampleFile","signal","res","fetch","Code","codeMarkup","hasStaticContent","isCodeWithContent","setCodeMarkup","setError","controller","AbortController","catch","abort","useCodeContent","dangerouslySetInnerHTML","Library","Demo","withSource","visibleTab","setVisibleTab","demoContents","setCode","example","setExample","codeError","setCodeError","exampleError","setExampleError","import","Example","useDemoContents","isStaticContent","prevState","Info","InfoItem","RouteLink","UILink","Page","SectionL2","SectionL3","StatusChip","Usage","symbolName","ColorSwatch","colorClass","colorName","brandExamples","greyExamples","slateExamples","stateExamples","highlightingExamples","focusExamples","SampleListElements","LoremIpsum","nabokovRows","year","translatedTitle","nabokovColumns","ClientOrderableDataTable","setOrder","orderedRows","AsyncOrderableDataTable","setLoading","activeTimeout","changeOrder","DialogButtons","alert","Dialog_","_alwaysShowButton","_nonCloseable","dialogProps","_dialogProps$buttons","dialogOpen","setDialogOpen","closeDialog","panelProps","openButton","Confirm","setResult","showConfirm","answer","confirmAction","cancelAction","cancelButton","confirmButton","initialFocusRef","zIndex","appendChild","close","confirm","ModalDialog_","forwardedButtons","CustomModalDialog_","toastMessages","ToastMessages_","initialMessages","_printOnDismiss","_allowAppending","setMessages","lastDismissedMessage","setLastDismissedMessage","appendMessage","newMessage","students","StudentContainer","student","App","wrapperClasses","setSelected","selectedIndex","_students$newIndex","previous","_students$newIndex2","defaultItems","ItemContainer","items","selectId","SelectExample","textOnly","setValue","Slider_","_transitionStatus","currentDirection","setCurrentDirection","componentGroups","layout","navigation","routes","group","src","alt","setSelectedRow","selectedRow2","setSelectedRow2","confirmedRow","setConfirmedRow","setSelectedRows","Icons.CancelIcon","Icons","iconName","IconComponent","Icons.CautionIcon","inputRef","selectedTab","setSelectedTab","overlayOpen","setOverlayOpen","toggleOverlayOpen","setChecked","SelectWithManyOptions","SelectInInputGroup","defaultOpen","setDefaultOpen","darkOpen","setDarkOpen","lightOpen","setLightOpen","toggleDefaultOverlay","toggleLightOpen","toggleDarkOpen","setCurrentPage","prefPanel","setPrefPanel","sidebarPanel","setSidebarPanel","sidebarPanel2","setSidebarPanel2","sidebarPanel3","setSidebarPanel3","verticalPanel","setVerticalPanel","getRoutes","NavHeader","NavSection","NavList","NavLink","_route$route","_route$route2","isActive","PlaygroundApp","baseURL","extraRoutes","extraRoutesTitle","hash","fragElement","getElementById","scrollTo","_activeRoute$title","activeRoute","customRoutes","pageRoutes","aRoute","_aRoute$component","prototypeRoutes","hookRoutes","utilityRoutes","groupKeys","componentProps","startApp"],"mappings":"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I,iBACLqI,EAAKlI,oBAGT8P,gBAAiB,CACfre,MAAO,SACPkO,MAAOuI,EAAK3I,UAAL2I,kGASPtI,UAAW,GAEbmQ,aAAc,CACZ7wB,UAAW,OACXygB,MAAO;GAKPqQ,GAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,GAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,GAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,GAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,GAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGArc;CASF,SAASsc,GAAInI,GACX,MAAMhJ,EAAQgJ,EAAKhJ,MACboR,EAAQvP,GAAMmH,GAKdqI,EAAU,CACdrI,EAAKrI,iBACLqI,EAAKlI,mBAGP,MAAO,CACLjyB,KAAM,MACNk3B,kBAAkB,EAClBlF,QAAS,UACTiC,SAAU,CAAEwO,iBAAkB,WAC9BjK,iBAAkB,CAGhBiK,iBAAkB,gBACpBnzB,SAAU,CACRizB,EAAMZ,cAnBY,CAAE/P,MAAO,gCAuB3B2Q,EAAMR,gBACN,CACE5wB,UAAW,cACXygB,MAAO,kBACPC,UAAW,GAEb,CACE1gB,UAAW,iBACXygB,MAAO,6BACPC,UAAW,GAEb0Q,EAAMT,wBACN,CACE3wB,UAAW,kBACXioB,SAAU,CACR,CAAExH,MAAO,KAAOuQ,GAAexT,KAAK,KAAO,KAC3C,CAAEiD,MAAO,SAAWwQ,GAAgBzT,KAAK,KAAO,OASpD4T,EAAMP,aACN,CACE7wB,UAAW,YACXygB,MAAO,OAASyQ,GAAW1T,KAAK,KAAO,QAGzC,CACEiD,MAAO,IACPG,IAAK,QACLziB,SAAU,CACRizB,EAAMZ,cACNY,EAAMX,SACNW,EAAMb,UACNa,EAAMR,mBACHS,EAIH,CACE5Q,MAAO,mBACPG,IAAK,KACLF,UAAW,EACXoC,SAAU,CAAEyO,SAAU,gBACtBpzB,SAAU,IACLkzB,EACH,CACErxB,UAAW,SAGXygB,MAAO,OACPoH,gBAAgB,EAChBrC,YAAY,KAIlB4L,EAAMV,oBAGV,CACEjQ,MAAOT,EAAMZ,UAAU,KACvBwB,IAAK,OACLF,UAAW,EACXG,QAAS,IACT1iB,SAAU,CACR,CACE6B,UAAW;AACXygB,MA5Fa,qBA8Ff,CACEA,MAAO,KACPoH,gBAAgB,EAChBrC,YAAY,EACZ9E,UAAW,EACXoC,SAAU,CACR4E,SAAU,UACV1D,QAtGS,kBAuGTwN,UAAWT,GAAevT,KAAK,MAEjCrf,SAAU,CACR,CACEsiB,MAAO,eACPzgB,UAAW,gBAEVqxB,EACHD,EAAMR,oBAKd,CACE5wB,UAAW,eACXygB,MAAO,OAASqQ,GAAKtT,KAAK,KAAO,SAIzC;AC9tBA,MAAM2C,GAAW,2BACXsR,GAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIC,GAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAIIC,GAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAGIC,GAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAGIC,GAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGIC,GAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,iBACA,SACA,UAGIC,GAAY,GAAGj5B,OACnB+4B,GACAF,GACAC;CAWF,SAASI,GAAWhJ,GAClB,MAAMhJ,EAAQgJ,EAAKhJ,MAcbiS,EAAa9R,GACb+R,EACG,KADHA,EAEC,MAIDC,EAAU,CACd1R,MAAO,sBACPG,IAAK,4BAKLwR,kBAAmB,CAACz6B,EAAO8qB,KACzB,MAAM4P,EAAkB16B,EAAM,GAAGtP,OAASsP,EAAMiF,MAC1C01B,EAAW36B,EAAMvC,MAAMi9B,GAC7B,GAIe,MAAbC,GAGa,MAAbA,EAGA,YADA7P,EAASpG,cAiBX,IAAI5zB,EAXa,MAAb6pC,IAtCc,EAAC36B,GAAS46B,YAC9B,MAAMC,EAAM,KAAO76B,EAAM,GAAG1L,MAAM,GAElC,OAAe,IADH0L,EAAMvC,MAAMtH,QAAQ0kC,EAAKD,EACpB,EAsCRE,CAAc96B,EAAO,CAAE46B,MAAOF,KACjC5P,EAASpG,eAQb,MAAMqW,EAAa/6B,EAAMvC,MAAMS,UAAUw8B,KAIpC5pC,EAAIiqC,EAAW/6B,MAAM,YAQrBlP,EAAIiqC,EAAW/6B,MAAM,oBACR,IAAZlP,EAAEmU,QARN6lB,EAASpG,aAaX,GAGEsW,EAAa,CACjBjL,SAAUvH,GACV6D,QAASyN,GACTmB,QAASlB,GACTH,SAAUQ,GACV,oBAAqBD,IAIjBe,EAAgB,kBAChBC,EAAO,OAAOD,KAGdE,EAAiB,sCACjBC,EAAS,CACbhzB,UAAW,SACXioB,SAAU,CAER,CAAExH,MAAO,QAAQsS,OAAoBD,aAAgBA,gBACtCD,SACf,CAAEpS,MAAO,OAAOsS,UAAuBD,gBAAmBA,SAG1D,CAAErS,MAAO,8BAGT,CAAEA,MAAO,4CACT,CAAEA,MAAO,gCACT,CAAEA,MAAO,gCAIT,CAAEA,MAAO,oBAEXC,UAAW,GAGPuS,EAAQ,CACZjzB,UAAW,QACXygB,MAAO,SACPG,IAAK,MACLkC,SAAU6P;AACVx0B,SAAU,IAEN+0B,EAAgB,CACpBzS,MAAO,QACPG,IAAK,GACLwC,OAAQ,CACNxC,IAAK,IACL6E,WAAW,EACXtnB,SAAU,CACR6qB,EAAKxI,iBACLyS,GAEF7H,YAAa,QAGX+H,EAAe,CACnB1S,MAAO,OACPG,IAAK,GACLwC,OAAQ,CACNxC,IAAK,IACL6E,WAAW,EACXtnB,SAAU,CACR6qB,EAAKxI,iBACLyS,GAEF7H,YAAa,QAGXgI,EAAmB,CACvB3S,MAAO,OACPG,IAAK,GACLwC,OAAQ,CACNxC,IAAK,IACL6E,WAAW,EACXtnB,SAAU,CACR6qB,EAAKxI,iBACLyS,GAEF7H,YAAa,YAGXiI,EAAkB,CACtBrzB,UAAW,SACXygB,MAAO,IACPG,IAAK,IACLziB,SAAU,CACR6qB,EAAKxI,iBACLyS,IA0CElS,EAAU,CACd/gB,UAAW,UACXioB,SAAU,CAzCUe,EAAKjI,QACzB,eACA,OACA,CACEL,UAAW,EACXviB,SAAU,CACR,CACEsiB,MAAO,iBACPC,UAAW,EACXviB,SAAU,CACR,CACE6B,UAAW,SACXygB,MAAO,cAET,CACEzgB,UAAW,OACXygB,MAAO,MACPG,IAAK,MACL4E,YAAY,EACZvE,cAAc,EACdP,UAAW,GAEb,CACE1gB,UAAW,WACXygB,MAAOwR,EAAa,gBACpB3O,YAAY,EACZ5C,UAAW,GAIb,CACED,MAAO,cACPC,UAAW,QAWnBsI,EAAK5H,qBACL4H,EAAK7H,sBAGHmS,EAAkB,CACtBtK,EAAKrI,iBACLqI,EAAKlI,kBACLoS,EACAC,EACAC,EACAC,EAEA,CAAE17B,MAAO,SACTq7B,GAKFC,EAAM90B,SAAWm1B,EACdx6B,OAAO,CAGN2nB,MAAO,KACPG,IAAK,KACLkC,SAAU6P,EACVx0B,SAAU,CACR,QACArF,OAAOw6B,KAEb,MAAMC,EAAqB,GAAGz6B,OAAOioB,EAASkS,EAAM90B,UAC9Cq1B,EAAkBD,EAAmBz6B,OAAO,CAEhD;AACE2nB,MAAO,KACPG,IAAK,KACLkC,SAAU6P,EACVx0B,SAAU,CAAC,QAAQrF,OAAOy6B,MAGxBE,EAAS,CACbzzB,UAAW,SACXygB,MAAO,KACPG,IAAK,KACLK,cAAc,EACduE,YAAY,EACZ1C,SAAU6P,EACVx0B,SAAUq1B,GAINE,EAAmB,CACvBzL,SAAU,CAER,CACEtwB,MAAO,CACL,QACA,MACAs6B,EACA,MACA,UACA,MACAjS,EAAMlnB,OAAOm5B,EAAY,IAAKjS,EAAMlnB,OAAO,KAAMm5B,GAAa,OAEhE1f,MAAO,CACL,EAAG,UACH,EAAG,cACH,EAAG,UACH,EAAG,0BAIP,CACE5a,MAAO,CACL,QACA,MACAs6B,GAEF1f,MAAO,CACL,EAAG,UACH,EAAG,kBAOLohB,EAAkB,CACtBjT,UAAW,EACX/oB,MACAqoB,EAAMR,OAEJ,SAEA,iCAEA,6CAEA,oDAMFxf,UAAW,cACX8iB,SAAU,CACR36B,EAAG,IAEEwpC,MACAC,MAYHgC,EAAsB,CAC1B3L,SAAU,CACR,CACEtwB,MAAO,CACL,WACA,MACAs6B,EACA,cAIJ,CACEt6B,MAAO,CACL,WACA,eAINqI,UAAW,CACT,EAAG,UACH,EAAG,kBAEL+K,MAAO,WACP5M,SAAU,CAAEs1B,GACZ5S,QAAS,KAaX,MAAMgT,EAAgB,CACpBl8B,MAAOqoB,EAAMlnB,OACX,MANYo0B,EAOL,IACF2E,GACH,QACA,UATG7R,EAAMlnB,OAAO,MAAOo0B,EAAK1P,KAAK,KAAM,MAWzCyU,EAAYjS,EAAMZ,UAAU,OAC9Bpf,UAAW,iBACX0gB,UAAW,GAdb,IAAgBwM,EAiBhB,MAAM4G,EAAkB,CACtBrT,MAAOT,EAAMlnB,OAAO,KAAMknB,EAAMZ,UAC9BY,EAAMlnB,OAAOm5B,EAAY;AAE3BrR,IAAKqR,EACLhR,cAAc,EACd6B,SAAU,YACV9iB,UAAW,WACX0gB,UAAW,GAGPqT,EAAmB,CACvBp8B,MAAO,CACL,UACA,MACAs6B,EACA,UAEFjyB,UAAW,CACT,EAAG,UACH,EAAG,kBAEL7B,SAAU,CACR,CACEsiB,MAAO,QAETgT,IAIEO,EAAkB,2DAMbhL,EAAK5I,oBAAsB,UAEhC6T,EAAoB,CACxBt8B,MAAO,CACL,gBAAiB,MACjBs6B,EAAY,MACZ,OACA,cACAjS,EAAMZ,UAAU4U,IAElBlR,SAAU,QACV9iB,UAAW,CACT,EAAG,UACH,EAAG,kBAEL7B,SAAU,CACRs1B,IAIJ,MAAO,CACL5kC,KAAM,aACNq6B,QAAS,CAAC,KAAM,MAAO,MAAO,OAC9BpG,SAAU6P,EAEVvhC,QAAS,CAAEoiC,kBAAiBG,mBAC5B9S,QAAS,eACT1iB,SAAU,CACR6qB,EAAK/G,QAAQ,CACXlX,MAAO,UACPoX,OAAQ,OACRzB,UAAW,IA5HE,CACjB3V,MAAO,aACP/K,UAAW,OACX0gB,UAAW,GACXD,MAAO,gCA2HLuI,EAAKrI,iBACLqI,EAAKlI,kBACLoS,EACAC,EACAC,EACAC,EACAtS,EAEA,CAAEppB,MAAO,SACTq7B,EACAW,EACA,CACE3zB,UAAW,OACXygB,MAAOwR,EAAajS,EAAMZ,UAAU,KACpCsB,UAAW,GAEbuT,EACA,CACExT,MAAO,IAAMuI,EAAKhH,eAAiB,kCACnCc,SAAU,oBACVpC,UAAW,EACXviB,SAAU,CACR4iB,EACAiI,EAAKvH,YACL,CACEzhB,UAAW,WAIXygB,MAAOuT,EACP1O,aAAa;AACb1E,IAAK,SACLziB,SAAU,CACR,CACE6B,UAAW,SACXioB,SAAU,CACR,CACExH,MAAOuI,EAAK5I,oBACZM,UAAW,GAEb,CACE1gB,UAAW,KACXygB,MAAO,UACP4E,MAAM,GAER,CACE5E,MAAO,KACPG,IAAK,KACLK,cAAc,EACduE,YAAY,EACZ1C,SAAU6P,EACVx0B,SAAUq1B,OAMpB,CACE/S,MAAO,IACPC,UAAW,GAEb,CACE/oB,MAAO,MACP+oB,UAAW,GAEb,CACEuH,SAAU,CACR,CAAExH,MAAOyR,EAAgBtR,IAAKsR,GAC9B,CAAEv6B,MAtfW,6BAufb,CACE8oB,MAAO0R,EAAQ1R,MAGf,WAAY0R,EAAQC,kBACpBxR,IAAKuR,EAAQvR,MAGjBwK,YAAa,MACbjtB,SAAU,CACR,CACEsiB,MAAO0R,EAAQ1R,MACfG,IAAKuR,EAAQvR,IACbyE,MAAM,EACNlnB,SAAU,CAAC,aAMrBy1B,EACA,CAGEhR,cAAe,6BAEjB,CAIEnC,MAAO,kBAAoBuI,EAAK5I,oBAAzB,gEAQPkF,aAAY,EACZva,MAAO,WACP5M,SAAU,CACRs1B,EACAzK,EAAKH,QAAQG,EAAKtH,WAAY,CAAEjB,MAAOwR,EAAYjyB,UAAW,qBAIlE,CACErI,MAAO,SACP+oB,UAAW,GAEboT,EAIA,CACEn8B,MAAO,MAAQs6B,EACfvR,UAAW,GAEb,CACE/oB,MAAO,CAAE,0BACTqI,UAAW,CAAE,EAAG,kBAChB7B,SAAU,CAAEs1B,IAEdI,EAjOwB,CAC1BnT,UAAW,EACX/oB,MAAO,sBACPqI,UAAW,qBAgOT0zB,EACAK,EACA,CACEp8B,MAAO,WAIf,CAYA,SAASu8B,GAAWlL;AAClB,MAAMmL,EAAanC,GAAWhJ,GAExBiJ,EAAa9R,GACbwR,EAAQ,CACZ,MACA,OACA,SACA,UACA,SACA,SACA,QACA,SACA,SACA,WAEIyC,EAAY,CAChBxR,cAAe,YACfhC,IAAK,KACL4E,YAAY,EACZrnB,SAAU,CAAEg2B,EAAW/iC,QAAQuiC,kBAE3BU,EAAY,CAChBzR,cAAe,YACfhC,IAAK,KACL4E,YAAY,EACZ1C,SAAU,CACRkB,QAAS,oBACTuN,SAAUI,GAEZxzB,SAAU,CAAEg2B,EAAW/iC,QAAQuiC,kBAqB3BhB,EAAa,CACjBjL,SAAUvH,GACV6D,QAASyN,GAAS34B,OAhBS,CAC3B,OACA,YACA,YACA,SACA,UACA,YACA,aACA,UACA,WACA,WACA,OACA,aAKA85B,QAASlB,GACTH,SAAUQ,GAAUj5B,OAAO64B,GAC3B,oBAAqBG,IAEjBwC,EAAY,CAChBt0B,UAAW,OACXygB,MAAO,IAAMwR,GAGTsC,EAAW,CAAC9f,EAAM1J,EAAOypB,KAC7B,MAAMC,EAAOhgB,EAAKtW,SAASzB,WAAUjU,GAAKA,EAAEsiB,QAAUA,IACtD,IAAa,IAAT0pB,EAAe,MAAM,IAAIh5B,MAAM,gCAEnCgZ,EAAKtW,SAAS4R,OAAO0kB,EAAM,EAAGD,EAAY,EAM5CxjC,OAAO8Z,OAAOqpB,EAAWrR,SAAU6P,GAEnCwB,EAAW/iC,QAAQoiC,gBAAgBvpC,KAAKqqC,GACxCH,EAAWh2B,SAAWg2B,EAAWh2B,SAASrF,OAAO,CAC/Cw7B,EACAF,EACAC,IAIFE,EAASJ,EAAY,UAAWnL,EAAK/G,WAErCsS,EAASJ,EAAY,aArDF,CACjBn0B,UAAW,OACX0gB,UAAW,GACXD,MAAO,2BAoDT,MAAMiU,EAAsBP,EAAWh2B,SAASkK,MAAK5f,GAAiB,aAAZA,EAAEsiB,QAa5D,OAZA2pB,EAAoBhU,UAAY;AAEhC1vB,OAAO8Z,OAAOqpB,EAAY,CACxBtlC,KAAM,aACNq6B,QAAS,CACP,KACA,MACA,MACA,SAIGiL,CACT,CCn2BA,SAASQ,GAAI3L,GACX,MAAMhJ,EAAQgJ,EAAKhJ,MAQb4U,EAAc5U,EAAMlnB,OAAO,YAAaknB,EAAMV,SAAS,oBAAqB,mBAE5EuV,EAAe,CACnB70B,UAAW,SACXygB,MAAO,oCAEHqU,EAAoB,CACxBrU,MAAO,KACPtiB,SAAU,CACR,CACE6B,UAAW,UACXygB,MAAO,sBACPI,QAAS,QAITkU,EAAwB/L,EAAKH,QAAQiM,EAAmB,CAC5DrU,MAAO,KACPG,IAAK,OAEDoU,EAAwBhM,EAAKH,QAAQG,EAAKrI,iBAAkB,CAAE3gB,UAAW,WACzEi1B,EAAyBjM,EAAKH,QAAQG,EAAKlI,kBAAmB,CAAE9gB,UAAW,WAC3Ek1B,EAAgB,CACpBrN,gBAAgB,EAChBhH,QAAS,IACTH,UAAW,EACXviB,SAAU,CACR,CACE6B,UAAW,OACXygB,MA5Be,mBA6BfC,UAAW,GAEb,CACED,MAAO,OACPC,UAAW,EACXviB,SAAU,CACR,CACE6B,UAAW,SACXsjB,YAAY,EACZ2E,SAAU,CACR,CACExH,MAAO,IACPG,IAAK,IACLziB,SAAU,CAAE02B,IAEd,CACEpU,MAAO,IACPG,IAAK,IACLziB,SAAU,CAAE02B,IAEd,CAAEpU,MAAO,sBAOrB,MAAO,CACL5xB,KAAM,YACNq6B,QAAS,CACP,OACA,QACA,MACA,OACA,MACA,MACA,MACA,QACA,MACA,OAEFnD,kBAAkB,EAClBC,cAAc,EACd7nB,SAAU,CACR,CACE6B,UAAW,OACXygB,MAAO,UACPG,IAAK,IACLF,UAAW,GACXviB,SAAU,CACR22B,EACAG,EACAD,EACAD,EACA,CACEtU,MAAO,KACPG,IAAK,KACLziB,SAAU,CACR;AACE6B,UAAW,OACXygB,MAAO,UACPG,IAAK,IACLziB,SAAU,CACR22B,EACAC,EACAE,EACAD,QAOZhM,EAAKjI,QACH,OACA,MACA,CAAEL,UAAW,KAEf,CACED,MAAO,cACPG,IAAK,QACLF,UAAW,IAEbmU,EAEA,CACE70B,UAAW,OACX4gB,IAAK,MACLqH,SAAU,CACR,CACExH,MAAO,SACPC,UAAW,GACXviB,SAAU,CACR82B,IAGJ,CACExU,MAAO,uBAKb,CACEzgB,UAAW,MAMXygB,MAAO,iBACPG,IAAK,IACLkC,SAAU,CAAEj0B,KAAM,SAClBsP,SAAU,CAAE+2B,GACZ9R,OAAQ,CACNxC,IAAK,YACL6E,WAAW,EACX2F,YAAa,CACX,MACA,SAIN,CACEprB,UAAW,MAEXygB,MAAO,kBACPG,IAAK,IACLkC,SAAU,CAAEj0B,KAAM,UAClBsP,SAAU,CAAE+2B,GACZ9R,OAAQ,CACNxC,IAAK,aACL6E,WAAW,EACX2F,YAAa,CACX,aACA,aACA,SAKN,CACEprB,UAAW,MACXygB,MAAO,WAGT,CACEzgB,UAAW,MACXygB,MAAOT,EAAMlnB,OACX,IACAknB,EAAMZ,UAAUY,EAAMlnB,OACpB87B,EAIA5U,EAAMR,OAAO,MAAO,IAAK,SAG7BoB,IAAK,OACLziB,SAAU,CACR,CACE6B,UAAW,OACXygB,MAAOmU,EACPlU,UAAW,EACX0C,OAAQ8R,KAKd,CACEl1B,UAAW,MACXygB,MAAOT,EAAMlnB,OACX,MACAknB,EAAMZ,UAAUY,EAAMlnB,OACpB87B,EAAa,OAGjBz2B,SAAU,CACR,CACE6B,UAAW,OACXygB,MAAOmU,EACPlU,UAAW,GAEb,CACED,MAAO,IACPC,UAAW,EACX4C,YAAY,MAMxB,CC/NA,SAAS6R,GAAczsC,GACrB,IAAI0sC;CACJ,IAAIvmC,EAAuB,iBAATnG,EAAoBA,EAAkD,QAA1C0sC,EAAoB1sC,EAAKmiB,mBAA+C,IAAtBuqB,EAA+BA,EAAoB1sC,EAAKmG,KAWxJ,OANAA,EAAOA,EAAK9C,QAAQ,YAAa,IAKjC8C,EAAOA,EAAK9C,QAAQ,OAAQ,IACrB8C,CACT,CAwCO,SAASwmC,GAAY9rC,GAC1B,GAAqB,iBAAVA,GAAuC,iBAAVA,GAAuC,iBAAVA,EACnE,OAAOA,EAAMwH,WACR,GAAqB,kBAAVxH,EAChB,MAAO,GACF,GAAIA,GAAS,SAAUA,EAAO,CAInC,IAAI+rC,EAAUtkC,OAAO6L,QAAQtT,EAAMZ,OAAOwF,KAAI,EAAEU,EAAMlC,MACpD,GAzBN,SAAwBkC,GACtB,OAAOA,EAAK8I,MAAM,OAAkB,aAAT9I,CAC7B,CAuBU0mC,CAAe1mC,GACjB,MAAO,GAET,GAvCN,SAAsBlC,GACpB,MAAM6oC,EAAc7oC,aAAqC,EAASA,EAAMjE,KACxE,MAA8B,iBAAhB8sC,GAAmD,mBAAhBA,CACnD,CAoCUC,CAAa9oC,GACf,MAAO,GAAGkC,MAASwmC,GAAY1oC,MAEjC,IAAI+oC,EAAW,GACf,cAAe/oC,GACb,IAAK,UAIH+oC,EAAW/oC,EAAQkC,EAAO,GAAGA,YAC7B,MACF,IAAK,SACH6mC,EAAW,GAAG7mC,MAtFF8F,EAsFwBhI,EArFrCgI,EAAI5I,QAAQ,KAAM,UAsFjB,MACF,IAAK,SACL,IAAK,SACL,IAAK,YACH2pC,EAAW,GAAG7mC,MAASlC,KACvB,MACF,IAAK,WAEH+oC,EAAWP,GAAcxoC,GAAS,GAAGkC,MAASsmC,GAAcxoC,MAAY,GAAGkC,MAASlC,EAAMoE,cAC1F,MACF,IAAK,SAGD2kC,EADE/oC,EACS,GAAGkC,MAASA,KAGZ,GAAGA,MAASlC,KAEzB,MACF,QACMA,IAEF+oC,EAAW,GAAG7mC,MAASlC,EAAMoE,eA7GzC,IAAsB4D,EAiHhB,OAAO+gC,CAAQ,IACdlY,KAAK,KAAKmY,OACTL,EAAQjtC,OAAS,IACnBitC,EAAU,IAAMA,GAElB,MAAMzmC,EAAOtF,EAAMb,OAASqQ,EAAW,GAAKo8B,GAAc5rC,EAAMb,MAC1DJ,EAAWiB,EAAMZ,MAAML,SAC7B,GAAIA,EAAU;AACZ,IAAIstC,EAAc/tC,MAAMC,QAAQQ,GAAYA,EAAS6F,IAAIknC,IAAa7X,KAAK,MAAQ6X,GAAY/sC,GAE/F,OADAstC,EAhGN,SAAqBjhC,EAAKkhC,GACxB,MAAMC,EAAY,IAAIvY,OAAOsY,GAE7B,OADclhC,EAAIiB,MAAM,MACXzH,KAAI4nC,GAAQD,EAAYC,IAAMvY,KAAK,KAClD,CA4FoBwY,CAAYJ,EAAa,GAChC,IAAI/mC,IAAOymC,OAAaM,QAAkB/mC,IACnD,CAEE,MAAO,IAAIA,IAAOymC,MAEtB,CACE,MAAO,EAEX,CAUO,SAASW,GAAc7L,EAAM6E,GAG7BjG,GAAKgE,YAAY,eACpBhE,GAAKwG,iBAAiB,aAAc0G,IAEjClN,GAAKgE,YAAY,QACpBhE,GAAKwG,iBAAiB,MAAO2G,IAE1BnN,GAAKgE,YAAY,QACpBhE,GAAKwG,iBAAiB,MAAO4G,IAE/B,MAAMnN,OAAqBnzB,IAATm5B,EAAqB,CAACA,QAAQn5B,EAChD,OAAOkzB,GAAKsC,cAAclB,EAAMnB,GAAWt8B,KAC7C,CAQO,SAAS0pC,GAAU9sC,EAAO0lC,GAE/B,OAAOgH,GADMZ,GAAY9rC,GACE0lC,EAC7B,CC3IA,SAASqH,IAAQhuC,SACfA,EAAQiuC,MACRA,EAAQ,KACLz2B,IAEH,OAAIy2B,GAAS,EACJx2B,GAAK,KAAM,CAChBC,UAAW,8CACRF,EACHxX,SAAUA,IAEO,IAAViuC,EACFx2B,GAAK,KAAM,CAChBC,UAAW,6CACRF,EACHxX,SAAUA,IAGLyX,GAAK,KAAM,CAChBC,UAAW,uEACRF,EACHxX,SAAUA,GAGhB,CAEA,MAAMkuC,GAAsBxgC,EAAc,GAM1C,SAASygC,IAAQnuC,SACfA,EAAQouC,MACRA,EAAKH,MACLA,EAAK3yB,MACLA,KACG9D,IAEH,MAAM62B,EAAezgC,GAAWsgC,IAC1BI,EAAQL,QAAqCA,EAAQI,EAAe,EAC1E,OAAO52B,GAAKy2B,GAAoB5mC,SAAU,CACxCjD,MAAOiqC,EACPtuC,SAAU2Y,GAAM,UAAW,CACzB,aAAc21B,EACd52B,UAAWC,GAAW,kBAAmB;AACvC,aAAc22B,GAAS,EACvB,YAAuB,IAAVA,EACb,YAAaA,GAAS,OAErB92B,EACHxX,SAAU,CAACsb,GAGX7D,GAAKu2B,GAAS,CACZC,MAAOK,EAAQ,EACftuC,SAAUsb,IACR8yB,GAAS32B,GAAK,MAAO,CACvBC,UAAW,sCACX1X,SAAUouC,IACRpuC,MAGV,CAgCA,SAASuuC,IAAYvf,QACnBA,IAEA,OAAOvX,GAAK,MAAO,CACjBC,UAAW,wDACX1X,SAAUgvB,GAEd,CAOAwf,eAAeC,GAAiBC,EAAaC,GAC3C,MAAMC,QAAYC,MAAM,aAAaH,QAAmB,CACtDC,WAEF,GAAIC,EAAIjoB,QAAU,IAChB,MAAM,IAAIxT,MAAM,kBAAkBu7B,kBAKpC,aAHmBE,EAAIha,QAGXnxB,QAAQ,kBAAmB,IAAIA,QAAQ,UAAW,GAChE,CA2MA,SAASqrC,IAAKx2B,KACZA,EAAIgD,MACJA,KACGwC,IAEH,MAAOixB,EAAY5tB,GA1BrB,SAAwB9gB,GACtB,MAAM2uC,EATR,SAA2B3uC,GACzB,MAAO,YAAaA,CACtB,CAO2B4uC,CAAkB5uC,IACpC0uC,EAAYG,GAAiBvkC,GAASqkC,EAAmBjB,GAAU1tC,EAAMqG,QAASrG,EAAMsmC,WAAQn5B,IAChG2T,EAAOguB,GAAYxkC,KAS1B,OARAG,IAAU,KACR,GAAIkkC,EACF,MAAO,OAET,MAAMI,EAAa,IAAIC,gBAEvB,OADAZ,GAAiB,aAAapuC,EAAMquC,kBAAmBU,EAAWT,QAAQppC,MAAKu8B,GAAQoN,EAAcvB,GAAc7L,EAAM,iBAAgBwN,MAAMH,GACxI,IAAMC,EAAWG,OAAO,GAC9B,CAACP,EAAkB3uC,IACf,CAAC0uC,EAAY5tB,EACtB,CAa8BquB,CAAe1xB,GAC3C,OAAOnF,GAAM,SAAU,CACrBjB,UAAW,2BACX1X,SAAU,CAAC+uC,GAAcp2B,GAAMsV,GAAiB,CAC9C5E,YAAY,EACZrpB,SAAU,CAACyX,GAAK,MAAO;AACrBC,UAAWC,GAAW,kFAAmF,CACvG,UAAoB,OAATW,IAEbtY,SAAUyX,GAAKK,GAAQ,CACrBP,QAAS,OACTvX,SAAUyX,GAAK,OAAQ,CACrBC,UAAW,2BACX1X,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX+3B,wBAAyB,CACvBjpC,OAAQuoC,WAKdzzB,GAAS7D,GAAK,aAAc,CAC9BC,UAAW,mBACX1X,SAAUyX,GAAK,OAAQ,CACrBC,UAAW,SACX1X,SAAUsb,SAGZ6F,GAAS1J,GAAK82B,GAAa,CAC7Bvf,QAAS7N,EAAM6N,YAGrB,CA6EA,IAAA0gB,GAAe,CACb/gB,QA7CF,UAAiB3uB,SACfA,IAEA,OAAO2Y,GAAM,MAAO,CAClBjB,UAAW,8DACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,UACX1X,SAAUyX,GAAKwB,GAAa,CAC1BvB,UAAW,wCAEXD,GAAK,MAAO,CACdzX,SAAUA,MAGhB,EAkCE8uC,QACAa,KArRF,UAAcvnC,QACZA,EAAOwnC,WACPA,GAAa,EAAKrsC,MAClBA,EAAQ,CAAA,EAAE+X,MACVA,KACGwC,IAEH,MAAO+xB,EAAYC,GAAiBnlC,GAAS,QACvColC,EA3CR,SAAyB1vC,GACvB,MAAOyhC,EAAMkO,GAAWrlC,MACjBslC,EAASC,GAAcvlC,MACvBwlC,EAAWC,GAAgBzlC,MAC3B0lC,EAAcC,GAAmB3lC,KAYxC,OAXAG,IAAU,KACR,IAAKzK,EAAMquC,YACT,MAAO;CAET6B,OAAO,eAAelwC,EAAMquC,mBAAmBnpC,MAAK,EAClDwD,QAASynC,KACLN,EAAWz4B,GAAK+4B,EAAS,CAAA,MAAMlB,OAAM,IAAMgB,EAAgB,8BAA8BjwC,EAAMquC,4BACrG,MAAMU,EAAa,IAAIC,gBAEvB,OADAZ,GAAiBpuC,EAAMquC,YAAaU,EAAWT,QAAQppC,KAAKyqC,GAASV,OAAMzwC,GAAKuxC,EAAavxC,EAAEmwB,WACxF,IAAMogB,EAAWG,OAAO,GAC9B,CAAClvC,EAAMquC,YAAaruC,EAAML,WACzBK,EAAML,SACD,CACLA,SAAUK,EAAML,UAGb,CACL8hC,OACAmO,UACAE,YACAE,eAEJ,CAgBuBI,CAAgB3yB,GAC/B4yB,EApDC,aAoDqCX,EAC5C,OAAOp3B,GAAM,MAAO,CAClBjB,UAAW,qBACX1X,SAAU,CAAC2Y,GAAM,MAAO,CACtBjB,UAAW,yBACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,YACX1X,SAAUyX,GAAK,KAAM,CACnBC,UAAW,gEACX1X,SAAUsb,MAEV7D,GAAK,MAAO,CACdC,UAAW,iDACX1X,SAAU4vC,GAAcn4B,GAAK,SAAU,CACrCC,UAAWC,GAAW,mDAAoD,yBAA0B,kDAAmD,CACrJ,oDAAoE,WAAfk4B,EACrD,0BAA0C,WAAfA,IAE7B,eAA+B,WAAfA;AAChBngC,QAAS,IAAMogC,GAAca,GAA2B,WAAdA,EAAyB,OAAS,WAC5Er1B,MAAO,2BACPtb,SAAUyX,GAAK4B,GAAU,CACvB3B,UAAW,6BAIfiB,GAAM,MAAO,CACfjB,UAAW,oBACX1X,SAAU,CAAgB,SAAf6vC,GAAyBp4B,GAAK,MAAO,CAC9CC,UAAW,uEACXnU,MAAOA,EACPvD,SAAU2Y,GAAM,MAAO,CACrBjB,UAAWC,GAAW,yDAA0DvP,GAChFpI,SAAU,CAAE0wC,EAAyCX,EAAa/vC,SAApC+vC,EAAaE,SAAkCS,GAAmBX,EAAaM,cAAgB54B,GAAK82B,GAAa,CAC7Ivf,QAAS+gB,EAAaM,oBAGT,WAAfR,GAA2Bl3B,GAAMyE,EAAW,CAC9Cpd,SAAU,CAAE0wC,EAEPj5B,GAAK,MAAO,CACfC,UAAW,mEACX1X,SAAUyX,GAAK,KAAM,CACnBzX,SAAU6f,EAAakwB,EAAa/vC,UAAU6F,KAAI,CAACma,EAAO2N,IACjDlW,GAAK,KAAM,CAChBzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mDACX+3B,wBAAyB,CACvBjpC,OAAQunC,GAAU/tB,SAIvB2N,SAfqBoiB,EAAajO,MAAQrqB,GAAKq3B,GAAM,CAC5DpoC,QAASqpC,EAAajO,QAiBnB4O,GAAmBX,EAAaI,WAAa14B,GAAK82B,GAAa,CAClEvf,QAAS+gB,EAAaI,oBAKhC,EA+MES,KA/BF,UAAc5wC,SACZA,IAEA,OAAOyX,GAAK,MAAO,CACjBC,UAAW,gDACX1X,SAAUA,GAEd;AAyBE6wC,SApBF,UAAkB7wC,SAChBA,EAAQyiB,MACRA,IAEA,OAAO9J,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,qDACX1X,SAAUyiB,IACRhL,GAAK,MAAO,CACdzX,SAAUA,MAGhB,EASEuP,KAjEF,UAAcvP,SACZA,EAAQwP,KACRA,IAEA,OAAOiI,GAAKq5B,GAAW,CACrBthC,KAAMA,EACNI,SAAS,EACT5P,SAAUyX,GAAKs5B,GAAQ,CACrBxgB,UAAW,SACXvwB,SAAUA,KAGhB,EAsDEgxC,KAldF,UAAchxC,SACZA,EAAQouC,MACRA,EAAK9yB,MACLA,IAEA,OAAO7D,GAAK,OAAQ,CAClBC,UAAW,6BACX1X,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,YACX1X,SAAU,CAACyX,GAAK,KAAM,CACpBC,UAAW,oCACXsH,GAAI,cACJhf,SAAUsb,IACR8yB,GAAS32B,GAAK,MAAO,CACvBC,UAAW,kEACX1X,SAAUouC,IACRpuC,MAGV,EAgcEmuC,WACA8C,UA7XF,UAAmBjxC,SACjBA,EAAQsb,MACRA,KACG9D,IAEH,OAAOC,GAAK02B,GAAS,CACnBF,MAAO,EACP3yB,MAAOA,KACJ9D,EACHxX,SAAUA,GAEd,EAmXEkxC,UA9WF,UAAmBlxC,SACjBA,EAAQsb,MACRA,KACG9D,IAEH,OAAOC,GAAK02B,GAAS,CACnBF,MAAO,EACP3yB,MAAOA,KACJ9D,EACHxX,SAAUA,GAEd,EAoWEmxC,WAlNF,UAAoBxqB,OAClBA,IAEA,OAAOhO,GAAM,OAAQ,CACnBjB,UAAWC,GAAW,oDAAqD,CACzE,wCAAoD,aAAXgP;AACzC,mBAA+B,eAAXA,GAAsC,YAAXA,EAC/C,4CAAwD,UAAXA,IAE/C3mB,SAAU,CAAY,aAAX2mB,GAAyBlP,GAAK,OAAQ,CAC/CzX,SAAU,aACG,eAAX2mB,GAA2BlP,GAAK,OAAQ,CAC1CzX,SAAU,eACG,UAAX2mB,GAAsBlP,GAAK,OAAQ,CACrCzX,SAAU,UACG,YAAX2mB,GAAwBlP,GAAK,OAAQ,CACvCzX,SAAU,cAGhB,EAgMEoxC,MAvFF,UAAevE,cACbA,EAAawE,WACbA,EAAaxE,EAAav0B,KAC1BA,EAAO,OAGP,OAAOb,GAAKq3B,GAAM,CAChBpoC,QAAS,YAAY2qC,4CAErB/4B,KAAMA,GAEV,GCvZA,SAASg5B,IAAYC,WACnBA,EAAUC,UACVA,IAEA,OAAO74B,GAAM,MAAO,CAClB3Y,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAWC,GAAW45B,EAAY,mBAChC95B,GAAK,IAAK,CACZzX,SAAUyX,GAAK,IAAK,CAClBzX,SAAUwxC,QAIlB,CACA,MAAMC,GAAgB94B,GAAMyE,EAAW,CACrCpd,SAAU,CAACyX,GAAK65B,GAAa,CAC3BC,WAAY,WACZC,UAAW,UACT/5B,GAAK65B,GAAa,CACpBC,WAAY,gBACZC,UAAW,kBAGTE,GAAe/4B,GAAMyE,EAAW,CACpCpd,SAAU,CAACyX,GAAK65B,GAAa,CAC3BC,WAAY,WACZC,UAAW,UACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW;GACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,WACZC,UAAW,aAGTG,GAAgBh5B,GAAMyE,EAAW,CACrCpd,SAAU,CAACyX,GAAK65B,GAAa,CAC3BC,WAAY,aACZC,UAAW,YACT/5B,GAAK65B,GAAa,CACpBC,WAAY,aACZC,UAAW,YACT/5B,GAAK65B,GAAa,CACpBC,WAAY,aACZC,UAAW,YACT/5B,GAAK65B,GAAa,CACpBC,WAAY,aACZC,UAAW,YACT/5B,GAAK65B,GAAa,CACpBC,WAAY,aACZC,UAAW,YACT/5B,GAAK65B,GAAa,CACpBC,WAAY,aACZC,UAAW,eAGTI,GAAgBj5B,GAAMyE,EAAW,CACrCpd,SAAU,CAACyX,GAAK65B,GAAa,CAC3BC,WAAY,mBACZC,UAAW,gCACT/5B,GAAK65B,GAAa,CACpBC,WAAY,mBACZC,UAAW,iCACT/5B,GAAK65B,GAAa,CACpBC,WAAY,eACZC,UAAW,6BAGTK,GAAuBl5B,GAAMyE,EAAW,CAC5Cpd,SAAU,CAACyX,GAAK65B,GAAa,CAC3BC,WAAY;AACZC,UAAW,gBACT/5B,GAAK65B,GAAa,CACpBC,WAAY,WACZC,UAAW,UACT/5B,GAAK65B,GAAa,CACpBC,WAAY,gBACZC,UAAW,eACT/5B,GAAK65B,GAAa,CACpBC,WAAY,kBACZC,UAAW,iBACT/5B,GAAK65B,GAAa,CACpBC,WAAY,YACZC,UAAW,WACT/5B,GAAK65B,GAAa,CACpBC,WAAY,iBACZC,UAAW,gBACT/5B,GAAK65B,GAAa,CACpBC,WAAY,eACZC,UAAW,cACT/5B,GAAK65B,GAAa,CACpBC,WAAY,SACZC,UAAW,QACT/5B,GAAK65B,GAAa,CACpBC,WAAY,cACZC,UAAW,gBAGTM,GAAgBr6B,GAAK2F,EAAW,CACpCpd,SAAUyX,GAAK65B,GAAa,CAC1BC,WAAY,gBACZC,UAAW,iBC1HR,SAASO,KACd,OAAOp5B,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK,KAAM,CACpBzX,SAAU,UACRyX,GAAK,KAAM,CACbzX,SAAU,UACRyX,GAAK,KAAM,CACbzX,SAAU,YACRyX,GAAK,KAAM,CACbzX,SAAU,UACRyX,GAAK,KAAM,CACbzX,SAAU,SACRyX,GAAK,KAAM,CACbzX,SAAU,YACRyX,GAAK,KAAM,CACbzX,SAAU,SACRyX,GAAK,KAAM,CACbzX,SAAU,UACRyX,GAAK,KAAM,CACbzX,SAAU,UACRyX,GAAK,KAAM,CACbzX,SAAU,YACRyX,GAAK,KAAM,CACbzX,SAAU,SACRyX,GAAK,KAAM,CACbzX,SAAU,SACRyX,GAAK,KAAM,CACbzX,SAAU,SACRyX,GAAK,KAAM,CACbzX,SAAU,aACRyX,GAAK,KAAM,CACbzX,SAAU,UACRyX,GAAK,KAAM;AACbzX,SAAU,SACRyX,GAAK,KAAM,CACbzX,SAAU,WACRyX,GAAK,KAAM,CACbzX,SAAU,UACRyX,GAAK,KAAM,CACbzX,SAAU,WACRyX,GAAK,KAAM,CACbzX,SAAU,UACRyX,GAAK,KAAM,CACbzX,SAAU,YACRyX,GAAK,KAAM,CACbzX,SAAU,WACRyX,GAAK,KAAM,CACbzX,SAAU,YACRyX,GAAK,KAAM,CACbzX,SAAU,SACRyX,GAAK,KAAM,CACbzX,SAAU,WACRyX,GAAK,KAAM,CACbzX,SAAU,WAGhB,CAgEO,SAASgyC,IAAW15B,KACzBA,EAAO,OAEP,MAAa,OAATA,EACKK,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,wHACRyX,GAAK,IAAK,CACZzX,SAAU,6IAGI,OAATsY,EACFb,GAAK,IAAK;AACfzX,SAAU,6fAEM,OAATsY,EACFK,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK,IAAK;AACnBzX,SAAU,6fACRyX,GAAK,IAAK,CACZzX,SAAU,sWACRyX,GAAK,IAAK;AACZzX,SAAU,6aAIPyX,GAAK,IAAK;AACfzX,SAAU;EAGhB,CCzJA,MAAMiyC,GDmMG,CAAC,CACN32B,MAAO,WACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,QAChB,CACD72B,MAAO,sBACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,sBAChB,CACD72B,MAAO,gBACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,eAChB,CACD72B,MAAO,aACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,WAChB,CACD72B,MAAO,oCACP42B,KAAM,OACN5U,SAAU,WACT,CACDhiB,MAAO,gBACP42B,KAAM,OACN5U,SAAU,WACT,CACDhiB,MAAO,YACP42B,KAAM,OACN5U,SAAU,WACT,CACDhiB,MAAO,SACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,SAChB,CACD72B,MAAO,mCACP42B,KAAM,OACN5U,SAAU,YC1OR8U,GAAiB,CAAC,CACtB37B,MAAO,QACPgM,MAAO,SACN,CACDhM,MAAO,OACPgM,MAAO,QACN,CACDhM,MAAO,WACPgM,MAAO,aAET,SAAS4vB,IAAyBh8B,KAChCA,EAAIgV,iBAEJA,EAAmB+mB,GAAevsC,KAAI,EACpC4Q,WACIA,OACHqH,IAEH,MAAOxH,EAAOg8B,GAAY3nC,KACpB4nC,EAAcn8B,GAAeC,EAAMC,GACzC,OAAOqC,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK0D,GAAQ,CACtB/S,QAAS,OACTsH,QAAS,IAAM4iC,OAAS9kC,GACxBxN,SAAU,gBACRyX,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAKK,GAAQ;AACrB9X,SAAUyX,GAAKiT,GAAW,IACrB5M,EACHzH,KAAMk8B,EACNj8B,MAAOA,EACP+U,iBAAkBA,EAClBD,cAAeknB,UAKzB,CACA,SAASE,IAAwBn8B,KAC/BA,EAAIgV,iBAEJA,EAAmB+mB,GAAevsC,KAAI,EACpC4Q,WACIA,OACHqH,IAEH,MAAOgN,EAAS2nB,GAAc9nC,IAAS,IAChC2L,EAAOg8B,GAAY3nC,KACpB+nC,EAAgB7oC,GAAO,MACvB8oC,EAAcv0B,IAAYsN,IAC1BgnB,EAAc/rC,SAEhB4C,aAAampC,EAAc/rC,SAE7B2rC,EAAS5mB,GACT+mB,GAAW,GACXC,EAAc/rC,QAAUqB,YAAW,KACjCyqC,GAAW,GACXC,EAAc/rC,QAAU,IAAI,GAC3B,IAAI,GACN,IACG4rC,EAAcn8B,GAAeC,EAAMC,GACzC,OAAOqC,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK0D,GAAQ,CACtB/S,QAAS,OACTsH,QAAS,IAAMijC,OAAYnlC,GAC3BxN,SAAU,gBACRyX,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,IACrB5M,EACHzH,KAAMk8B,EACNj8B,MAAOA,EACP+U,iBAAkBA,EAClBD,cAAeunB,EACf7nB,QAASA,UAKnB,CClFA,MAAMmnB,GFkMG,CAAC,CACN32B,MAAO,WACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,QAChB,CACD72B,MAAO,sBACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,sBAChB,CACD72B,MAAO,gBACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,eAChB,CACD72B,MAAO,aACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,WAChB,CACD72B,MAAO,oCACP42B,KAAM,OACN5U,SAAU,WACT,CACDhiB,MAAO,gBACP42B,KAAM,OACN5U,SAAU,WACT;AACDhiB,MAAO,YACP42B,KAAM,OACN5U,SAAU,WACT,CACDhiB,MAAO,SACP42B,KAAM,OACN5U,SAAU,UACV6U,gBAAiB,SAChB,CACD72B,MAAO,mCACP42B,KAAM,OACN5U,SAAU,YEzOR8U,GAAiB,CAAC,CACtB37B,MAAO,QACPgM,MAAO,SACN,CACDhM,MAAO,OACPgM,MAAO,QACN,CACDhM,MAAO,WACPgM,MAAO,aAET,SAASmwB,KACP,OAAOj6B,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK0D,GAAQ,CACtBzL,QAAS,IAAMmjC,MAAM,mBACrB7yC,SAAU,SACT,SAAUyX,GAAK0D,GAAQ,CACxBzL,QAAS,IAAMmjC,MAAM,iBACrBt7B,QAAS,UACTvX,SAAU,UACT,SAEP,CAKA,SAAS8yC,IAAQC,kBACfA,GAAoB,EAAKC,cACzBA,EAAahzC,SACbA,KACGizC,IAEH,IAAIC,EACJ,MAAOC,EAAYC,GAAiBzoC,IAAS,GACvC0oC,EAAc,IAAMD,GAAc,GAClCx2B,EAAeo2B,OAAgBxlC,EAAY6lC,EAC3CC,EAAqC,WAAxBL,EAAY17B,QAAuB,CACpDuF,QAA0D,QAAhDo2B,EAAuBD,EAAYn2B,eAA8C,IAAzBo2B,EAAkCA,EAAuBz7B,GAAK0D,GAAQ,CACtIzL,QAAS2jC,EACTrzC,SAAU,kBAEVwN,EACE+lC,EAAa56B,GAAMwC,GAAQ,CAC/BzL,QAAS,IAAM0jC,GAAeD,GAC9B57B,QAAS,UACTvX,SAAU,CAACmzC,EAAa,OAAS,OAAQ,aAE3C,OAAOx6B,GAAM,MAAO,CAClBjB,UAAW,sBACX1X,SAAU,GAAGmzC,GAAcJ,IAAsBt7B,GAAK,MAAO,CAC3DzX,SAAUuzC,IACR97B,GAAK,MAAO,CACdC,UAAW,OACX1X,SAAUmzC,GAAc17B,GAAK4F,GAAQ,IAChCi2B,KACAL,EACH32B,QAASM,EACT5c,SAAUA,QAIlB,CACA,SAASwzC;AACP,MAAO1nC,EAAQ2nC,GAAa9oC,GAAS,MAC/B+oC,EAAct1B,IAAYowB,UAC9B,MAAMmF,QCxDHnF,gBAAuBlzB,MAC5BA,EAAQ,UAAS0T,QACjBA,EAAO4kB,cACPA,EAAgB,MAAKC,aACrBA,EAAe,SAAQp2B,aACvBA,EAAe,WAEf,MAAMq2B,ElNxB2tB,CAACntC,QAAQ,MkNyBpuBotC,ElNzB2tB,CAACptC,QAAQ,MkN0BpuBqtC,EAAmC,WAAjBv2B,EAA4Bq2B,EAAeC,EAC7D3gC,EAAYrN,SAAS2D,cAAc,OAQzC,OAPA0J,EAAUrP,aAAa,cAAe,qBAItCqP,EAAU7P,MAAMu6B,SAAW,WAC3B1qB,EAAU7P,MAAM0wC,OAAS,KACzBluC,SAAS0P,KAAKy+B,YAAY9gC,GACnB,IAAIvL,SAAQE,IACjB,MAAMosC,EAAQroC,IACZ3H,EAAO,KAAMiP,GACbA,EAAUrB,SACVhK,EAAQ+D,EAAO,EAEjB3H,EAAOsT,GAAKyH,GAAa,CACvBpC,QAASnE,GAAMyE,EAAW,CACxBpd,SAAU,CAACyX,GAAK0D,GAAQ,CACtB9D,WAAYy8B,EACZ,cAAe,gBACfpkC,QAAS,IAAMykC,GAAM,GACrBn0C,SAAU6zC,IACRp8B,GAAK0D,GAAQ,CACf5D,QAAS,UACTF,WAAY08B,EACZ,cAAe,iBACfrkC,QAAS,IAAMykC,GAAM,GACrBn0C,SAAU4zC,OAGdn2B,aAAcu2B,EACd14B,MAAOA,EACPgB,QAAS,IAAM63B,GAAM,GACrBn0C,SAAUgvB,IACR5b,EAAU,GAElB,CDWyBghC,CAAQ,CAC3BplB,QAAS,2BAET1T,MAAO,aACPs4B,cAAe,aACfC,aAAc,sBAEhBJ,EAAUE,EAAO,GAChB,IACH,OAAOh7B,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK0D,GAAQ,CACtB5D,QAAS,UACT7H,QAASgkC,EACT1zC,SAAU,iBACG,OAAX8L,GAAmB6M,GAAMyE,EAAW,CACtCpd,SAAU,CAAC,eAAgB8L,EAAS,MAAQ,cAGlD;AAKA,SAASuoC,IAAav3B,QACpBA,EAAOi2B,kBACPA,GAAoB,EAAKC,cACzBA,EAAahzC,SACbA,KACGizC,IAEH,MAAOE,EAAYC,GAAiBzoC,IAAS,GACvC0oC,EAAc,IAAMD,GAAc,GAClCx2B,EAAeo2B,OAAgBxlC,EAAY6lC,EAC3CiB,EAAmBx3B,GAAoBrF,GAAK0D,GAAQ,CACxDzL,QAAS2jC,EACTrzC,SAAU,YAENuzC,EAAa56B,GAAMwC,GAAQ,CAC/BzL,QAAS,IAAM0jC,GAAeD,GAC9B57B,QAAS,UACTvX,SAAU,CAACmzC,EAAa,OAAS,OAAQ,aAE3C,OAAOx6B,GAAMyE,EAAW,CACtBpd,SAAU,GAAGmzC,GAAcJ,IAAsBQ,EAAYJ,GAAc17B,GAAKyH,GAAa,CAC3FpC,QAASw3B,KACNrB,EACH32B,QAASM,EACT5c,SAAUA,MAGhB,CACA,SAASu0C,GAAmBtB,GAC1B,MAAOE,EAAYC,GAAiBzoC,IAAS,GAC7C,OAAOgO,GAAMyE,EAAW,CACtBpd,SAAU,CAAC2Y,GAAMwC,GAAQ,CACvBzL,QAAS,IAAM0jC,GAAcvkC,IAASA,IACtC0I,QAAS,UACTvX,SAAU,CAACmzC,EAAa,OAAS,OAAQ,aACvCA,GAAc17B,GAAKyH,GAAa,IAC/B+zB,EACH32B,QAAS,IAAM82B,GAAc,GAC7B91B,kBAAkB,MAGxB,CEnIA,MAAMk3B,GAAgB,CAAC,CACrBxlB,QAAS,wBACT5uB,KAAM,UACNiwB,aAAa,GACZ,CACDrB,QAAS,wBACT5uB,KAAM,SACNiwB,aAAa,GACZ,CACDrB,QAAS,sBACT5uB,KAAM,QACNiwB,aAAa,IAEf,SAASokB,IACP/kB,SAAUglB,EAAetlB,kBACzBA,EAAiBulB,gBACjBA,GAAkB,EAAKC,gBACvBA,GAAkB,IAElB,MAAOllB,EAAUmlB,GAAelqC,GAAS+pC,EAAgB7uC,KAAI,CAACmpB,EAAS1a,KAAK,CAC1E0K,GAAI,GAAG1K,OACJ0a,QAEE8lB,EAAsBC,GAA2BpqC,KAClDglB,EAAmBvR,IAAYY,IACnC+1B,EAAwBrlB,EAAS3P,MAAKiP,GAAWA,EAAQhQ,KAAOA,KAChE61B,GAAYhmC,GAAQA,EAAKzF,QAAO4lB,GAAWA,EAAQhQ,KAAOA,KAAI,GAC7D,CAAC0Q,IACEslB,EAAgB52B,IAAY,EAChCiS,kBAEA,MACM4kB,EAAa;AACjBj2B,GAAI,GAF4B,IAApB0Q,EAAS3vB,OAAe,EAAIiR,OAAO0e,EAASA,EAAS3vB,OAAS,GAAGif,IAAM,IAGnFgQ,QAASqB,EAAc,6BAA+B,sBACtDjwB,KAAM,UACNiwB,eAEFwkB,GAAYhmC,GAAQ,IAAIA,EAAMomC,IAAY,GACzC,CAACvlB,IACJ,OAAO/W,GAAM,MAAO,CAClBjB,UAAW,SACX1X,SAAU,CAAC40C,GAAmBj8B,GAAM,MAAO,CACzCjB,UAAW,oBACX1X,SAAU,CAACyX,GAAK0D,GAAQ,CACtBzL,QAAS,IAAMslC,EAAc,CAC3B3kB,aAAa,IAEfjoB,QAAS,OACTmP,QAAS,UACTvX,SAAU,mBACRyX,GAAK0D,GAAQ,CACfzL,QAAS,IAAMslC,EAAc,CAC3B3kB,aAAa,IAEfjoB,QAAS,OACTmP,QAAS,UACTvX,SAAU,mCAEV2Y,GAAM,MAAO,CACfjB,UAAW,sCACX1X,SAAU,CAACyX,GAAKgY,GAAe,CAC7BC,SAAUA,EACVC,iBAAkBA,EAClBP,kBAAmBA,IACjBulB,GAAmBG,GAAwBn8B,GAAM,MAAO,CAC1D3Y,SAAU,CAAC,0BAA2B,IAAK80C,EAAqB9lB,QAAS,YAIjF,CCpEA,SAAS8jB,IAAQ9yC,SACfA,KACGizC,IAEH,MAAOE,EAAYC,GAAiBzoC,IAAS,GAEvC4oC,EAAa56B,GAAMwC,GAAQ,CAC/BzL,QAAS,IAAM0jC,GAAeD,GAC9B57B,QAAS,UACTvX,SAAU,CAACmzC,EAAa,OAAS,OAAQ,aAE3C,OAAOx6B,GAAM,MAAO,CAClBjB,UAAW,sBACX1X,SAAU,EAAEmzC,GAAc17B,GAAK,MAAO,CACpCzX,SAAUuzC,IACR97B,GAAK,MAAO,CACdC,UAAW,OACX1X,SAAUmzC,GAAc17B,GAAK4F,GAAQ,IAChC41B,EACH32B,QAdc,IAAM82B,GAAc,GAelCpzC,SAAUA,QAIlB,CC3BA,MAAMk1C,GAAW,CAAC,CAChBl2B,GAAI;AACJzY,KAAM,gBACL,CACDyY,GAAI,IACJzY,KAAM,iBACL,CACDyY,GAAI,IACJzY,KAAM,sBACL,CACDyY,GAAI,IACJzY,KAAM,qBACL,CACDyY,GAAI,IACJzY,KAAM,sBAER,SAAS4uC,IAAiBC,QACxBA,IAEA,OAAOz8B,GAAM,MAAO,CAClBjB,UAAW,OACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,yCACX1X,SAAUo1C,EAAQp2B,KAChBvH,GAAK,MAAO,CACdC,UAAW,WACX1X,SAAUo1C,EAAQ7uC,SAGxB,CACe,SAAS8uC,IAAIrtB,cAC1BA,EAAastB,eACbA,EAAiB,SAEjB,MAAOzzB,EAAU0zB,GAAe5qC,KAC1B6qC,EAAgBj/B,IAAQ,IAAOsL,EAAgBqzB,GAAS9gC,WAAUS,GAAQA,IAASgN,KAAzC,GAAoD,CAACA,IAC/F/S,EAAOsP,IAAY,KACvB,IAAIq3B,EAEJF,EAA0D,QAA7CE,EAAqBP,GADjBM,EAAgB,UACwD,IAAvBC,EAAgCA,EAAqB5zB,EAAS,GAC/H,CAACA,EAAU2zB,IACRE,EAAWt3B,IAAY,KAC3B,IAAIu3B,EAEJJ,EAA2D,QAA9CI,EAAsBT,GADlBM,EAAgB,UAC0D,IAAxBG,EAAiCA,EAAsB9zB,EAAS,GAClI,CAACA,EAAU2zB,IACRztB,EAAWrJ,KACjB,OAAO/F,GAAM,MAAO,CAClBjB,UAAW49B,EACXt1C,SAAU,CAACyX,GAAK,QAAS,CACvBmJ,QAASmH,EACT/nB,SAAU,oBACR2Y,GAAMqD,GAAY,CACpBhc,SAAU,CAACyX,GAAKwE,GAAY,CAC1BV,KAAM1C,GACNyC,MAAO,mBACP/D,QAAS,OACT7H,QAASgmC,EACT/hC,SAAU6hC,GAAiB,IACzB/9B,GAAKqR,GAAQ,CACff,SAAUA,EACV1jB,MAAOwd,EACPnB,SAAU60B,EACVvtB,cAAeA,EACfF,cAAejG,EAAWpK,GAAK09B,GAAkB,CAC/CC,QAASvzB,IACNpK,GAAK2F,EAAW,CACnBpd,SAAU,gBAEZA,SAAUk1C,GAASrvC,KAAIgP,GAAQ4C,GAAKqR,GAAOC,OAAQ,CACjD1kB,MAAOwQ,EACP7U,SAAUyX,GAAK09B,GAAkB,CAC/BC,QAASvgC,KAEVA,EAAKmK,QACNvH,GAAKwE,GAAY,CACnBV,KAAMzC;AACNwC,MAAO,eACP/D,QAAS,OACT7H,QAASZ,EACT6E,SAAU6hC,GAAiBN,GAASn1C,OAAS,SAIrD,CCtFA,MAAM61C,GAAe,CAAC,CACpB52B,GAAI,IACJzY,KAAM,gBACL,CACDyY,GAAI,IACJzY,KAAM,iBACL,CACDyY,GAAI,IACJzY,KAAM,sBACL,CACDyY,GAAI,IACJzY,KAAM,qBACL,CACDyY,GAAI,IACJzY,KAAM,sBAER,SAASsvC,IAAchhC,KACrBA,IAEA,OAAO8D,GAAM,MAAO,CAClBjB,UAAW,OACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,yCACX1X,SAAU6U,EAAKmK,KACbvH,GAAK,MAAO,CACdC,UAAW,WACX1X,SAAU6U,EAAKtO,SAGrB,CACe,SAAS8uC,IAAIS,MAC1BA,EAAQF,KAER,MAAOvxC,EAAOkxC,GAAe5qC,KACvBorC,EAAWr3B,KACjB,OAAO/F,GAAM,MAAO,CAClBjB,UAAW,eACX1X,SAAU,CAACyX,GAAK,QAAS,CACvBmJ,QAASm1B,EACT/1C,SAAU,oBACRyX,GAAKqR,GAAQ,CACfzkB,MAAOA,EACPqc,SAAU60B,EACVxtB,SAAUguB,EACVjuB,cAAezjB,EAAQoT,GAAKo+B,GAAe,CACzChhC,KAAMxQ,IACHoT,GAAK2F,EAAW,CACnBpd,SAAU,gBAEZA,SAAU81C,EAAMjwC,KAAIgP,GAAQ4C,GAAKqR,GAAOC,OAAQ,CAC9C1kB,MAAOwQ,EACP7U,SAAUyX,GAAKo+B,GAAe,CAC5BhhC,KAAMA,KAEPA,EAAKmK,UAGd,CCpDA,MAAM42B,GAAe,CAAC,CACpB52B,GAAI,IACJzY,KAAM,gBACL,CACDyY,GAAI,IACJzY,KAAM,iBACL,CACDyY,GAAI,IACJzY,KAAM,sBACL,CACDyY,GAAI,IACJzY,KAAM,qBACL,CACDyY,GAAI,IACJzY,KAAM,sBAER,SAASyvC,IAAcC,SACrBA,EAAQH,MACRA,EAAQF,MACL93B,IAEH,MAAOzZ,EAAO6xC,GAAYvrC,KACpBod,EAAWrJ;CACjB,OAAO/F,GAAMyE,EAAW,CACtBpd,SAAU,CAACyX,GAAK,QAAS,CACvBmJ,QAASmH,EACT/nB,SAAU,oBACRyX,GAAKqR,GAAQ,IACZhL,EACHiK,SAAUA,EACV1jB,MAAOA,EACPqc,SAAUw1B,EACVpuB,cAAuBnP,GAAMyE,EAAd/Y,EAAyB,CACtCrE,SAAU,CAACi2C,GAAY5xC,EAAMkC,MAAO0vC,GAAYt9B,GAAM,MAAO,CAC3DjB,UAAW,OACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,yCACX1X,SAAUqE,EAAM2a,KACdvH,GAAK,MAAO,CACdC,UAAW,WACX1X,SAAUqE,EAAMkC,YAGD,CACnBvG,SAAU,gBAEZA,SAAU81C,EAAMjwC,KAAIgP,GAAQ4C,GAAKqR,GAAOC,OAAQ,CAC9C1kB,MAAOwQ,EACPlB,SAAUkB,EAAKlB,SACf3T,SAAU,EACR2T,cACIsiC,EAAWphC,EAAKtO,KAAOoS,GAAM,MAAO,CACxCjB,UAAW,OACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAWC,GAAW,+BAAgC,CACpD,aAAchE,EACd,YAAaA,IAEf3T,SAAU6U,EAAKmK,KACbvH,GAAK,MAAO,CACdC,UAAW,WACX1X,SAAU6U,EAAKtO,WAGlBsO,EAAKmK,UAGd,CCvEA,MAAMm3B,GAAU,EACdn2C,WACA0W,YACAuI,kBACAm3B,wBAEA,MAAOC,EAAkBC,GAAuB3rC,GAAS+L,GAEzD,OAAOiC,GAAM,MAAO,CAClBjB,UAAW,4BACX1X,SAAU,CAAC2Y,GAAMwC,GAAQ,CACvBzL,QAJiB,IAAM4mC,GAAoBznC,GAAiB,OAATA,EAAgB,MAAQ,OAK3E0I,QAAS,UACTvX,SAAU,CAAsB,OAArBq2C,EAA4B,OAAS,OAAQ,aACtD5+B,GAAKgb,GAAQ,CACf/b,UAAW2/B,EACXp3B,gBAAiBA,EACjBjf,SAAUA,IACR2Y,GAAM,MAAO,CACf3Y,SAAU,CAAuB,OAAtBo2C,GAA8Bz9B,GAAM,IAAK;AAClD3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,WACR,mBACoB,QAAtBo2C,GAA+Bz9B,GAAM,IAAK,CAC5C3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,WACR,wBAGR,ECGG,MAAMu2C,GAAkB,CAC7BnwC,KAAM,eACNmb,SAAU,WACVzU,MAAO,QACP0pC,OAAQ,SACRC,WAAY,aACZnjB,WAAY,eAEd5qB,OAAOgrB,OAAO6iB,IAOd,MAAMG,GAAS,CAAC,CACdp7B,MAAO,kBACPq7B,MAAO,cACP1nC,UCnDa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,kBACP8yB,MAAO32B,GAAK2F,EAAW,CACrBpd,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,gCACR,4GAGRA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClC31B,MAAO,eACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,MAAO,IAAKyX,GAAKlI,GAAM,CAChCC,KAAM,2BACN+gB,UAAW,SACXvwB,SAAU,gBACR,IAAK,yCACPyX,GAAKi4B,GAAQZ,KAAM,CACrBpoC,QAAS,4EACPiS,GAAM,IAAK;AACb3Y,SAAU,CAAC,mDAAoD,IAAK2Y,GAAM,OAAQ,CAChF3Y,SAAU,CAAC,IAAK,mBAAoB,OAClC,IAAK,UAAWyX,GAAK,OAAQ,CAC/BzX,SAAU,aACR,gBACFyX,GAAKi4B,GAAQZ,KAAM,CACrBpoC,QAAS,kKAQTiS,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,oFACRyX,GAAKi4B,GAAQZ,KAAM,CACrBx2B,KAAM,KACNgD,MAAO,iCACPqrB,KAAM,MACNjgC,QAAS,6VASPiS,GAAM,IAAK,CACb3Y,SAAU,CAAC,UAAW,IAAKyX,GAAK,IAAK;AACnCjI,KAAM,wDACNxP,SAAU,2BACR,IAAK,oDAETyX,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,QACPtb,SAAUyX,GAAKi4B,GAAQ0B,MAAO,CAC5BvE,cAAe,qBAKzB,EDfEz+B,MAAO,KACN,CACDkN,MAAO,mBACPq7B,MAAO,cACP1nC,UEzDa,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,mBACP8yB,MAAO32B,GAAK,IAAK,CACfzX,SAAU,mJAEZA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,4BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,SAAU,CACxBC,UAAW,gBACX1X,SAAU,8BACR,IAAK,6HACP2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,YAAa,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC9CC,KAAM,gBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEV,IAAK,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC/BC,KAAM,mBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU;GAGZ2Y,GAAM+2B,GAAQvB,QAAS,CACzBnvB,GAAI,gCACJ1D,MAAO,MACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,gFACRyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAUyX,GAAKi4B,GAAQkB,KAAM,CAC3B5wC,SAAUyX,GAAKi4B,GAAQmB,SAAU,CAC/BpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mCAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,yEAA0E,cAAe,0HAClGyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,aACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,QACR,mBAAoB,cAAe,6CACrCyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,+CAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,0FAA2F,cAAe,6CACnHyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAKi4B,GAAQZ,KAAM,CAC3BpoC,QAAS,oFACT4R,KAAM,SAENb,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,+DAKhB2Y,GAAM+2B,GAAQvB,QAAS,CACzBnvB,GAAI,wCACJ1D,MAAO,cACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAUyX,GAAKi4B,GAAQ/gB,QAAS,CAC9B3uB,SAAU,+LAEV2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,eAAgB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACjDC,KAAM;AACNxP,SAAU,kBACR,IAAK,kEACPyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,kEAAmE,IAAK,UAAW,oFAAqFyX,GAAK,OAAQ,CAC9LzX,SAAU,aACR,kCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAKi4B,GAAQZ,KAAM,CAC3BpoC,QAAS,0SAOT4R,KAAM,cAIVb,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,OACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO;AACPziB,SAAU,CAAC,4EAA6EyX,GAAK,OAAQ,CACnGzX,SAAU,SACR,sDAAuDyX,GAAK,OAAQ,CACtEzX,SAAU,aACR,uCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAKi4B,GAAQZ,KAAM,CAC3BpoC,QAAS,sOAOT4R,KAAM,cAIVb,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,8CAA+C,kBAAmB,IAAK,uBAAwByX,GAAK,OAAQ,CACrHzX,SAAU,SACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,YACR,IAAK;GACPyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,YAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAKi4B,GAAQZ,KAAM,CAC3BpoC,QAAS,6HAGT4R,KAAM,oBAMdK,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,uBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,SAAU,CACxBC,UAAW,gBACX1X,SAAU,yBACR,IAAK,uJACP2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,YAAa,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC9CC,KAAM,kBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAEV,IAAK,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC/BC,KAAM,gBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZ2Y,GAAM+2B,GAAQvB,QAAS,CACzBnvB,GAAI,2BACJ1D,MAAO,MACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU;AACjCpuB,MAAO,cACPziB,SAAU,CAAC,iDAAkD,IAAKyX,GAAK,OAAQ,CAC7EzX,SAAU,aACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oCAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,aACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,QACR,mBAAoB,cAAe,6CACrCyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,+CAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,wGAAyG,cAAe,6CACjIyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAKi4B,GAAQZ,KAAM,CAC3BpoC,QAAS,oFACT4R,KAAM,SAENb,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kEAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,wBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,SAAU,CACxBC,UAAW,gBACX1X,SAAU,0BACR,4GACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,WAAY,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC7CC,KAAM,sBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZ2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,MACP0D,GAAI,4BACJhf,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,+CAAgD,IAAKyX,GAAK,IAAK,CACxEjI,KAAM,oEACNxP,SAAU,qBACR,IAAK,mBACPyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,8BAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,YACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO;AACPziB,SAAU,4DACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,kBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6BAA8B,cAAe,gCACtDyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mDAMlByX,GAAKi4B,GAAQvB,QAAS,CACxB7yB,MAAO,oBACPtb,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAACyX,GAAK,SAAU,CACxBC,UAAW,gBACX1X,SAAU,sBACR,kIAIZ,EFvREoO,MAAO,qBACN,CACDkN,MAAO,qBACPq7B,MAAO,cACP1nC,UG7Da,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,qBACP8yB,MAAO32B,GAAK2F,EAAW,CACrBpd,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,MAAO,IAAKyX,GAAKi4B,GAAQngC,KAAM;AACxCC,KAAM,0DACNxP,SAAU,gBACR,IAAK,yGAGbA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/B7yB,MAAO,wBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQ/gB,QAAS,CAChC3uB,SAAU,CAAC,6FAA8F,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC/HC,KAAM,0DACNxP,SAAU,gBACR,yBAA0B,QAAS,6EAA8EyX,GAAK,OAAQ,CAChIzX,SAAU,YACR,8BAA+ByX,GAAK,OAAQ,CAC9CzX,SAAU,eACR,8CACF2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,oDACPtb,SAAU,CAAC2Y,GAAM,MAAO,CACtBjB,UAAW,qFACX1X,SAAU,CAACyX,GAAK,MAAO,CAAA,GAAKA,GAAK,MAAO,CACtCC,UAAW;AACX1X,SAAU,8BACRyX,GAAK,MAAO,CAAA,GAAKA,GAAK,MAAO,CAC/BC,UAAW,aACX1X,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAEVyX,GAAK,MAAO,CACdC,UAAW,+CACX1X,SAAU,oBACRyX,GAAK,MAAO,CAAA,GAAKA,GAAK,MAAO,CAC/BC,UAAW,aACX1X,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAK,MAAO,CACdC,UAAW,+CACX1X,SAAU,YACRyX,GAAK,MAAO,CACdC,UAAW,+CACX1X,SAAU,eACRyX,GAAK,MAAO,CACdzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZ2Y,GAAM,KAAM,CACd3Y,SAAU,CAAC2Y,GAAM,KAAM,CACrB3Y,SAAU,CAAC,oCAAqC,IAAKyX,GAAK,SAAU,CAClEzX,SAAU,kCACR,wEACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,SAAU,CACxBzX,SAAU,oBACR,oCAAqC,IAAKyX,GAAK,OAAQ,CACzDzX,SAAU,aACR,gHACF2Y,GAAM,KAAM;AACd3Y,SAAU,CAACyX,GAAK,SAAU,CACxBzX,SAAU,YACR,0CAA2C,IAAKyX,GAAK,OAAQ,CAC/DzX,SAAU,YACR,YACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,SAAU,CACxBzX,SAAU,eACR,sDAAuDyX,GAAK,OAAQ,CACtEzX,SAAU,SACR,kBAGN2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,uBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,0CAA2CyX,GAAK,OAAQ,CACjEzX,SAAU,YACR,2CAA4C,WAAY,wBAC1DyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,yBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,gBACX1X,SAAU,CAACyX,GAAKlI,GAAM,CACpBC,KAAM,0BACN+H,QAAS,QACTvX,SAAU,6BACRyX,GAAKlI,GAAM,CACbC,KAAM,0BACN+H,QAAS,OACTvX,SAAU,iCAGZ2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,8CACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,YACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU,aACR,YACF2Y,GAAM,KAAM;AACd3Y,SAAU,CAAC2Y,GAAM,KAAM,CACrB3Y,SAAU,CAAC,wCAAyCyX,GAAK,OAAQ,CAC/DzX,SAAU,YACR,6CAA8CyX,GAAK,SAAU,CAC/DzX,SAAU,WAEV2Y,GAAM,KAAM,CACd3Y,SAAU,CAAC,0BAA2ByX,GAAK,OAAQ,CACjDzX,SAAU,YACR,gEAEJyX,GAAK,IAAK,CACZzX,SAAU,wEACRyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKlI,GAAM,CACnBC,KAAM,0BACN+H,QAAS,SACTnP,QAAS,oCACTpI,SAAU,6CAEV2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,2BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,sCAAuC,IAAKyX,GAAKlI,GAAM,CACzDC,KAAM,+BACNxP,SAAU,gBACR,IAAK,yBACP2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,KAAM,CACpBzX,SAAU,iCACRyX,GAAK,KAAM,CACbzX,SAAU,gBACRyX,GAAK,KAAM,CACbzX,SAAU;GACRyX,GAAK,KAAM,CACbzX,SAAU,YACRyX,GAAK,KAAM,CACbzX,SAAU,YACRyX,GAAK,KAAM,CACbzX,SAAU,8BACRyX,GAAK,KAAM,CACbzX,SAAU,qBAGZ2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,yBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,WAAYyX,GAAK,OAAQ,CAClCzX,SAAU,YACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU,aACR,IAAK,qHAAsH,IAAKyX,GAAK,OAAQ,CAC/IzX,SAAU,YACR,iFACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKlI,GAAM,CACnBC,KAAM,0BACN+H,QAAS,OACTnP,QAAS,aACTmoB,UAAW,SACXvwB,SAAU,8BAEVyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,qDACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKlI,GAAM,CACnBC,KAAM,0BACN+H,QAAS,SACTnP,QAAS,aACTmoB,UAAW,SACXvwB,SAAU,uCAKhB2Y,GAAM+2B,GAAQvB,QAAS;AACzB7yB,MAAO,qBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,4BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,SACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU,aACR,YACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAAC2Y,GAAM,KAAM,CACrB3Y,SAAU,CAAC,wCAAyCyX,GAAK,OAAQ,CAC/DzX,SAAU,SACR,0CAA2CyX,GAAK,SAAU,CAC5DzX,SAAU,WAEV2Y,GAAM,KAAM,CACd3Y,SAAU,CAAC,qBAAsByX,GAAK,OAAQ,CAC5CzX,SAAU,YACR,wDAEJ2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,WAAYyX,GAAK,OAAQ,CAClCzX,SAAU,SACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU,aACR,qHAAsHyX,GAAK,OAAQ,CACrIzX,SAAU,YACR,oFAEJ2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,0BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,sCAAuC,IAAKyX,GAAKlI,GAAM;AACzDC,KAAM,+BACNxP,SAAU,gBACR,IAAK,yBACP2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,KAAM,CACpBzX,SAAU,oCACRyX,GAAK,KAAM,CACbzX,SAAU,WACRyX,GAAK,KAAM,CACbzX,SAAU,0CAId2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,sBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,aACR,KAAMyX,GAAK,OAAQ,CACrBzX,SAAU,YACR,qIACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,uCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKlI,GAAM,CACnBkM,UAAU,EACVjM,KAAM,yBACNpH,QAAS,wFACTpI,SAAU,sBAEV2Y,GAAM+2B,GAAQ/gB,QAAS,CACzB3uB,SAAU,CAACyX,GAAK,SAAU,CACxBzX,SAAU,SACR,UAAWyX,GAAK,OAAQ,CAC1BzX,SAAU,aACR,6BAA8ByX,GAAK,OAAQ,CAC7CzX,SAAU,SACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU;GACR,0DACF2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,4BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,WAAYyX,GAAK,OAAQ,CAClCzX,SAAU,aACR,uCAAwC,IAAK,oCAAqCyX,GAAK,OAAQ,CACjGzX,SAAU,YACR,OAAQ,IAAKyX,GAAK,OAAQ,CAC5BzX,SAAU,SACR,2DAA4D,IAAKyX,GAAKlI,GAAM,CAC9EC,KAAM,+BACNxP,SAAU,gBACR,IAAK,yBACP2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,KAAM,CACpBzX,SAAU,WACRyX,GAAK,KAAM,CACbzX,SAAU,qBACRyX,GAAK,KAAM,CACbzX,SAAU,qCAOxB,EHtOEoO,MAAO,uBACN,CACDA,MAAO,sBACPkN,MAAO,SACPrM,UXiEa,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,SACPtb,SAAU,CAACyX,GAAKi4B,GAAQuB,UAAW,CACjC31B,MAAO,YACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,qCACX1X,SAAUyxC,OAEVh6B,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,QACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,qCACX1X,SAAU0xC,OAEV/4B,GAAM+2B,GAAQuB,UAAW;AAC3B31B,MAAO,SACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,gHACRyX,GAAK,MAAO,CACdC,UAAW,qCACX1X,SAAU2xC,QAEVl6B,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,eACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,qCACX1X,SAAU6xC,OAEVp6B,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,mBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,qCACX1X,SAAU4xC,OAEVn6B,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,mBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,qCACX1X,SAAU8xC,SAIlB,EW3GE6E,MAAO,eACN,CACDvoC,MAAO,oBACPkN,MAAO,YACPrM,UIvEa,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,YACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAAC,QAAS,YAAa,IAAKyX,GAAK,OAAQ,CACjDzX,SAAU,gBACR,4GAA6G,QAAS,0BAE5HA,SAAU,CAACyX,GAAKi4B,GAAQuB,UAAW,CACjC31B,MAAO;AACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjC51B,MAAO,sBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,wBACR,mHAAoHyX,GAAK,OAAQ,CACnIzX,SAAU,mBACR,iEAAkE,IAAKyX,GAAK,OAAQ,CACtFzX,SAAU,mBACR,iBAAkByX,GAAK,OAAQ,CACjCzX,SAAU,eACR,IAAK,YACP2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,4CACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK,QAAS,CACvBrX,KAAM,OACNsX,UAAW,8BACTD,GAAK,SAAU,CACjBC,UAAW,qBACX1X,SAAU,cAEV2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,6CACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK,QAAS,CACvBrX,KAAM,OACNsX,UAAW,2CACTD,GAAK,SAAU,CACjBC,UAAW,gCACX1X,SAAU,uBAId2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,uBACPtb,SAAU,CAACyX,GAAK,IAAK;AACnBzX,SAAU,4HACR2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,2BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,gBACR,sIAAuI,IAAK2Y,GAAMpJ,GAAM,CAC1JC,KAAM,0FACN+gB,UAAW,SACXvwB,SAAU,CAAC,YAAayX,GAAK,OAAQ,CACnCzX,SAAU,UACR,eACF,IAAK,UAAW,eAAgB,oDAClC2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,eAAgByX,GAAK,OAAQ,CACtCzX,SAAU,WACR,6EAA8EyX,GAAK,OAAQ,CAC7FzX,SAAU,eACR,IAAK,+CAAgD,IAAKyX,GAAK,OAAQ,CACzEzX,SAAU,6BACR,iDAAkDyX,GAAK,OAAQ,CACjEzX,SAAU;GACR,OACFyX,GAAKi4B,GAAQZ,KAAM,CACrBpoC,QAAS+Q,GAAK,SAAU,CACtBC,UAAW,iDACX1X,SAAU,UAEZsb,MAAO,2BACL7D,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,6BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,cACX1X,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,mCACX1X,SAAU,CAACyX,GAAK,SAAU,CACxBC,UAAW,iDACX1X,SAAU,QACRyX,GAAK,SAAU,CACjBC,UAAW,iDACX1X,SAAU,QACRyX,GAAK,SAAU,CACjBC,UAAW,iDACX1X,SAAU,iBAIdyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,0CACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,mCACX1X,SAAU,CAACyX,GAAK,SAAU,CACxBC,UAAW,iDACX1X,SAAU,QACRyX,GAAK,SAAU,CACjBC,UAAW,iDACX1X,SAAU,QACRyX,GAAK,SAAU,CACjBC,UAAW,iDACX1X,SAAU;gBAOxB,EJ3CE22C,MAAO,eACN,CACDr7B,MAAO,cACPq7B,MAAO,OACP1nC,UK5Ea,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,cACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,oHAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,gBACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,oBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKiI,GAAa,CAC1B1f,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,2BAMbl+B,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,2BACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,sBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,uFAAwFyX,GAAK,OAAQ,CAC9GzX,SAAU,gBACR,OACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,cACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,8BACX1X,SAAUyX,GAAKiI,GAAa;AAC1B1f,SAAUyX,GAAK,MAAO,CACpBzX,SAAUyX,GAAKiC,GAAe,CAC5BhC,UAAW,wCAMnBiB,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,kCACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,8CAA+CyX,GAAKlI,GAAM,CACnEghB,UAAW,SACX/gB,KAAM,8DACNxP,SAAU,eACR,gCAAiCyX,GAAK,OAAQ,CAChDzX,SAAU,cACR,+BACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAACyX,GAAKlI,GAAM,CACpBC,KAAM,mEACN+gB,UAAW,SACXvwB,SAAU,uBACR,IAAK,sBAAuB,YAAa,4GAA6GyX,GAAK,OAAQ,CACrKzX,SAAU,YACR,eAAgB,YAAa,sDAAuD,IAAKyX,GAAK,OAAQ,CACxGzX,SAAU,yBACR,eACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2CACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW;AACX1X,SAAUyX,GAAKiI,GAAa,CAC1B1f,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,cACLn/B,UAAW,2BAMnBiB,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,gBACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,aAAc,IAAKyX,GAAKlI,GAAM,CACvCC,KAAM,oEACNxP,SAAU,qBACR,IAAK,wDACPyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oCAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,yCACR2Y,GAAM+2B,GAAQmB,SAAU,CAC1BpuB,MAAO,OACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,gDAAiD,IAAKyX,GAAK,OAAQ,CACrEzX,SAAU,WACR,iBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,YACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM;AAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,sDAAuDyX,GAAKlI,GAAM,CAC3EghB,UAAW,SACX/gB,KAAM,8DACNxP,SAAU,eACR,QACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,2DAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,8BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,8BACX1X,SAAUyX,GAAKiI,GAAa,CAC1BC,UAAW,QACX3f,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,sBAITp/B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,8BACX1X,SAAUyX,GAAKiI,GAAa,CAC1BC,UAAW,UACX3f,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,sBAITp/B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,8BACX1X,SAAUyX,GAAKiI,GAAa;AAC1BC,UAAW,OACX3f,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,sBAITp/B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,yBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,8BACX1X,SAAUyX,GAAKiI,GAAa,CAC1BC,UAAW,aACX3f,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,sBAITp/B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,8BACX1X,SAAUyX,GAAKiI,GAAa,CAC1BC,UAAW,OACX3f,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,gCASvB,ELxIEzoC,MAAO,qBACN,CACDkN,MAAO,YACPq7B,MAAO,OACP1nC,UTMa,WAEb,MAAO2b,EAAaksB,GAAkBnsC,GAASsnC,GAAYA,GAAYlyC,OAAS,KACzEg3C,EAAcC,GAAmBrsC,GAAS,OAC1CssC,EAAcC,GAAmBvsC,GAAS,OAG1CkgB,EAAcssB,GAAmBxsC,GAAS,IACjD,OAAO8M,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,YACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,2HAA4HyX,GAAK,OAAQ,CAC3IzX,SAAU,UACR;AAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,cACbp1B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,uEACPjF,KAAM47B,GACNtnB,QAASynB,cAKfz5B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,sBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,0BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,gBAAiByX,GAAK,OAAQ,CAChCzX,SAAU,SACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU,YACR,oHACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,cAAeyX,GAAK,OAAQ,CACrCzX,SAAU,cACR,uCAAwCyX,GAAK,OAAQ,CACvDzX,SAAU,SACR,YACFyX,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAKi4B,GAAQZ,KAAM,CAC3BxzB,MAAO;AACP5U,QAAS;KAqDT+Q,GAAKi4B,GAAQZ,KAAM,CACrBxzB,MAAO,qBACP5U,QAAS,6HAKT+Q,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,8BACPtb,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,8BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,uEACPjF,KAAM47B,GACNtnB,QAASynB,GACT7oB,MAAM,YAKZ5Q,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,yBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,qBAAsByX,GAAK,OAAQ,CAC5CzX,SAAU,gBACR,IAAK,IAAKyX,GAAK,OAAQ,CACzBzX,SAAU,iBACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU,iBACR,+BAAgCyX,GAAK,OAAQ,CAC/CzX,SAAU,cACR,yBACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,uBAAwByX,GAAK,OAAQ,CAC9CzX,SAAU,cACR,WAAY,IAAKyX,GAAK,SAAU,CAClCzX,SAAU,aACR,2EAAiFyX,GAAK,OAAQ;AAChGzX,SAAU,iBACR,kBAAwByX,GAAK,SAAU,CACzCzX,SAAU,cACR,uCAAwC,UAAW,OACrD2Y,GAAM,IAAK,CACb3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,uLAAwLyX,GAAK,OAAQ,CACvMzX,SAAU,gBACR,gGAAiG,IAAKyX,GAAK,OAAQ,CACrHzX,SAAU,iBACR,OACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,uEACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,mBACX1X,SAAU,CAAC2Y,GAAM,MAAO,CACtB3Y,SAAU,CAAC,gBAAiB,IAAK+2C,EAAet/B,GAAK,IAAK,CACxDzX,SAAU+2C,EAAaz7B,QACpB,UACH3C,GAAM,MAAO,CACf3Y,SAAU,CAAC,iBAAkB,IAAKi3C,EAAex/B,GAAK,IAAK,CACzDzX,SAAUi3C,EAAa37B,QACpB,UACH7D,GAAK,MAAO,CACdC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,GACTxnB,YAAamsB;AACb/rB,YAAakB,GAAO8qB,EAAgB9qB,GACpChB,aAAcgB,GAAOgrB,EAAgBhrB,iBAM7CvT,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,+BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,UACR,4GAA6GyX,GAAK,OAAQ,CAC5HzX,SAAU,WACR,kBACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,wHAAyHyX,GAAK,OAAQ,CACxIzX,SAAU,UACR,kDACFyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,wCACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,uEACPjF,KAAM,CAAC47B,GAAY,GAAIA,GAAY,IACnCtnB,QAASynB,iBAMjBz5B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,6CACNxP,SAAU,8BACR,IAAK,WAAY,IAAK2Y,GAAM+2B,GAAQngC,KAAM,CAC5CC,KAAM,0BACNxP,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,2BACF,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,8EAA+EyX,GAAK,OAAQ,CACrGzX,SAAU,SACR,0BAA2B,IAAKyX,GAAK,OAAQ,CAC/CzX,SAAU,YACR,4CAA6C,IAAKyX,GAAK,OAAQ,CACjEzX,SAAU,OACR,gBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAKi4B,GAAQZ,KAAM,CAC3Bx2B,KAAM,KACN5R,QAAS,6EAOT+Q,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,WACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW;AACxBpP,MAAO,kDACPjF,KAAM47B,GACNtnB,QAAS,CAAC,CACRlU,MAAO,QACPgM,MAAO,QACPra,QAAS,WACR,CACDqO,MAAO,OACPgM,MAAO,iBAKbhL,GAAKi4B,GAAQZ,KAAM,CACrBxzB,MAAO,qCACP5U,QAAS,6HAKTiS,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oFAAqFyX,GAAK,OAAQ,CAC3GzX,SAAU,YACR,wBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,+BAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,WACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,+CACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,uEACPjF,KAAM47B,GACNtnB,QAASynB;GAIbz5B,GAAM,IAAK,CACb3Y,SAAU,CAAC,wBAAyByX,GAAK,OAAQ,CAC/CzX,SAAU,oBACR,+BAAgCyX,GAAK,OAAQ,CAC/CzX,SAAU,YACR,8BACFyX,GAAKi4B,GAAQZ,KAAM,CACrBxzB,MAAO,qCACP5U,QAAS,sJAMTiS,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,eACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,mCAAoCyX,GAAK,OAAQ,CAC1DzX,SAAU,SACR,kBAAmB,IAAKyX,GAAK,OAAQ,CACvCzX,SAAU,YACR,aACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kCAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,2BACPjF,KAAM,GACNsU,QAASynB,GACTjnB,aAAc1T,GAAK,SAAU,CAC3BzX,SAAU,8BAMlB2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM;AAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,iEACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,GACTtnB,SAAS,aAKfnS,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,aACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,sEACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,6DAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qEAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iDACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW;AACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,uDACPjF,KAAM47B,GACNtnB,QAAS,CAAC,CACRlU,MAAO,QACPgM,MAAO,SACN,CACDhM,MAAO,kBACPgM,MAAO,iBACN,CACDhM,MAAO,OACPgM,MAAO,SAETsI,WAAY,CAACmB,EAAKzV,KAChB,OAAQA,GACN,IAAK,QACH,OAAOgB,GAAK,IAAK,CACfzX,SAAUksB,EAAI5Q,QAElB,IAAK,kBACH,OAAO4Q,EAAIimB,gBAAkB16B,GAAK,IAAK,CACrCzX,SAAUksB,EAAIimB,kBACX,MACP,QACE,OAAOjmB,EAAIzV,GACnC,UAKcgB,GAAKi4B,GAAQZ,KAAM,CACrBxzB,MAAO,4CACPhD,KAAM,KACN5R,QAAS,oTAeTiS,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,yEACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,0BAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sCACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,mBACX1X,SAAU,CAAC2Y,GAAM,MAAO,CACtB3Y,SAAU,CAAC,gBAAiB,IAAK4qB,EAAcnT,GAAK,IAAK,CACvDzX,SAAU4qB,EAAYtP,QACnB,UACH7D,GAAK,MAAO,CACdC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,GACTxnB,YAAaA,EACbI,YAAakB,GAAO4qB,EAAe5qB,iBAM3CvT,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,eACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,gIACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,4BAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,uCACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,mBACX1X,SAAU,CAAC2Y,GAAM,MAAO,CACtB3Y,SAAU,CAAC,iBAAkB,IAAK6qB,EAAa9qB,OAAS,EAAI0X,GAAK,IAAK,CACpEzX,SAAU6qB,EAAahlB,KAAIlH,GAAKA,EAAE2c,QAAO4Z,KAAK,QAC3C,UACHzd,GAAK,MAAO;AACdC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,GACTvnB,aAAcA,EACdI,aAAc5U,GAAQ8gC,EAAgB9gC,iBAM9CoB,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,eACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,+DAAgE,IAAKyX,GAAK,MAAO,CAC1FzX,SAAU,UACR,eACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,4BAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oBAAqByX,GAAK,OAAQ,CAC3CzX,SAAU,SACR,6BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,6BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,mBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAKiT,GAAW,CACxBpP,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,GACTxnB,YAAaqnB,GAAY,cAK/Bx6B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,eACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM;AAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,gBAAiByX,GAAK,OAAQ,CACvCzX,SAAU,gBACR,+FACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6BAA8ByX,GAAK,OAAQ,CACpDzX,SAAU,SACR,gHACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iEAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,sBAAuByX,GAAK,OAAQ,CAC7CzX,SAAU;GACR,oIACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qFAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sCACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,SACX1X,SAAUyX,GAAK46B,GAA0B,CACvC/2B,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,SAGX36B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sCACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,SACX1X,SAAUyX,GAAK+6B,GAAyB,CACtCl3B,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,YAIbz5B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,mBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6BAA8ByX,GAAK,OAAQ,CACpDzX,SAAU;GACR,wKACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,+EAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,gCACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,SACX1X,SAAUyX,GAAK46B,GAA0B,CACvC/2B,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,GACT/mB,iBAAkB,CAAC,QAAS,cAG9B5T,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,oCACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,SACX1X,SAAUyX,GAAK46B,GAA0B,CACvC/2B,MAAO,2BACPjF,KAAM47B,GACNtnB,QAASynB,GACT/mB,iBAAkB,CAChB/P,MAAO,YACP42B,KAAM,uBAKZz6B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,mEACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,8FAQ1B,ES3tBEoO,MAAO,mBACN,CACDkN,MAAO,QACPq7B,MAAO,OACP1nC,UMpFa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,QACP8yB,MAAO32B,GAAK,IAAK,CACfzX,SAAU,yEAEZA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,eACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,yCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK2/B,GAAkB,CAAA,UAGnC3/B,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,kBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,8BACX1X,SAAU0I,OAAOuE,KAAKoqC,IAAOxxC,KAAIyxC,IAC/B,MAAMC,EAAgBF,GAAMC,GAC5B,OAAO3+B,GAAM,MAAO,CAClBjB,UAAWC,GAAW,wEACtB3X,SAAU,CAACyX,GAAK8/B,EAAe,CAAA,GAAKD,IACnCA,EAAS,QAGd3+B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW;AAClC51B,MAAO,eACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQ/gB,QAAS,CAChC3uB,SAAU,CAAC,gEAAiE,IAAKyX,GAAK,OAAQ,CAC5FzX,SAAU,cACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,YACR,OACF2Y,GAAM+2B,GAAQkB,KAAM,CACtB5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,2CACR2Y,GAAM+2B,GAAQmB,SAAU,CAC1BpuB,MAAO,OACPziB,SAAU,CAAC2Y,GAAM,OAAQ,CACvB3Y,SAAU,CAAC,6BAA8ByX,GAAKlI,GAAM,CAClDC,KAAM,iEACNxP,SAAU,qBAEV,aAGNyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK+/B,GAAmB,CAChC9/B,UAAW,0CAMvB,ENsBEtJ,MAAO,eACN,CACDkN,MAAO,YACPq7B,MAAO,OACP1nC,UO1Fa,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,YACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAAC,iBAAkByX,GAAK,OAAQ,CACxCzX,SAAU,cACR,2EAA4EyX,GAAK,OAAQ,CAC3FzX,SAAU,WACR;AAENA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,YACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,sGAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,cACbp1B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAK4W,GAAW,CACxBruB,SAAUyX,GAAK,KAAM,CACnBzX,SAAUyX,GAAKs6B,GAAoB,CAAA,cAKzCp5B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,6CACNxP,SAAU,8BACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,aACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6BAA8ByX,GAAK,OAAQ,CACpDzX,SAAU,iBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM;AACrBr0B,MAAO,sBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAK4W,GAAW,CACxBhF,YAAY,EACZrpB,SAAUyX,GAAK,KAAM,CACnBzX,SAAUyX,GAAKs6B,GAAoB,CAAA,oBAO7Ct6B,GAAKi4B,GAAQvB,QAAS,CACxB7yB,MAAO,oCACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,2DAA4DyX,GAAK,OAAQ,CAC3EzX,SAAU,cACR,IAAK,UAAW,8BAEtBA,SAAUyX,GAAKi4B,GAAQuB,UAAW,CAChC31B,MAAO,8BACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjClxC,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,sFAAuFyX,GAAK,OAAQ,CAC7GzX,SAAU,YACR,gFAAiFyX,GAAK,OAAQ,CAChGzX,SAAU,UACR,iBAAkByX,GAAK,OAAQ,CACjCzX,SAAU,UACR,QACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2CACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAKwW,GAAiB,CAC9BjuB,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAK2W,GAAe,CAC5BpuB,SAAUyX,GAAK,KAAM;AACnBzX,SAAUyX,GAAKs6B,GAAoB,CAAA,sBASjDp5B,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,SACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,0FAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,WACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,eACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAK,KAAM,CACnBzX,SAAUyX,GAAKs6B,GAAoB,CAAA,gBAM3Cp5B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,KAAM,YAAayX,GAAK,OAAQ,CAClCzX,SAAU,aACR,IAAKyX,GAAK,OAAQ,CACpBzX,SAAU;GACR,IAAK,8FAA+FyX,GAAK,OAAQ,CACnHzX,SAAU,SACR,eACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAKK,GAAQ,CACrBP,QAAS,OACTvX,SAAUyX,GAAK,KAAM,CACnBzX,SAAUyX,GAAKs6B,GAAoB,CAAA,cAKzCt6B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,sCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iDAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,gBACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,kBACR,8FAA+F,IAAKyX,GAAK,OAAQ,CACnHzX,SAAU,WACR;AAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,kBACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,4BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAUyX,GAAK2W,GAAe,CAC5BpuB,SAAUyX,GAAK,KAAM,CACnBzX,SAAUyX,GAAKs6B,GAAoB,CAAA,kBAO7Cp5B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,kBACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,OACFyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,sCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oDAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,kBACP8yB,MAAOz1B,GAAMyE,EAAW,CACtBpd,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,qIAAsI,cAAe,qGACvJ2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,2BAA4ByX,GAAK,OAAQ,CAClDzX,SAAU,WACR,2BAGRA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,oBACbp1B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAU2Y,GAAMsV,GAAiB,CAC/BjuB,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,eACX1X,SAAU,+BACRyX,GAAKK,GAAQ,CACf9X,SAAUyX,GAAK2W,GAAe,CAC5BpuB,SAAUyX,GAAK,KAAM,CACnBzX,SAAUyX,GAAKs6B,GAAoB,CAAA,SAGrCt6B,GAAK,MAAO,CACdC,UAAW,eACX1X,SAAU,yCAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,oBACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM;AACNxP,SAAU,mCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,aACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6BAA8ByX,GAAK,OAAQ,CACpDzX,SAAU,uBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAU2Y,GAAMsV,GAAiB,CAC/B5E,YAAY,EACZrpB,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,eACX1X,SAAU,+BACRyX,GAAKK,GAAQ,CACf9X,SAAUyX,GAAK2W,GAAe,CAC5BpuB,SAAUyX,GAAK,KAAM,CACnBzX,SAAUyX,GAAKs6B,GAAoB,CAAA,mBAO7Ct6B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,oBACR,sCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,sDAQ1B,EP5QEoO,MAAO,mBACN,CACDkN,MAAO,QACPq7B,MAAO;AACP1nC,UQhGa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,QACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,KAAMyX,GAAK,OAAQ,CACrBzX,SAAU,cACR,KAAMyX,GAAK,OAAQ,CACrBzX,SAAU,cACR,IAAK,IAAKyX,GAAK,OAAQ,CACzBzX,SAAU,aACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,cACR,iEAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/B7yB,MAAO,QACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,mDACfv0B,KAAM,OACJb,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,cACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMuQ,GAAO,CACrB5N,MAAO,mBACPtb,SAAU,CAACyX,GAAK0S,GAAW,CACzBnqB,SAAU2Y,GAAMyR,GAAU,CACxBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,oBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,oBAGZ2Y,GAAMgR,GAAW,CACnB3pB,SAAU,CAAC2Y,GAAMyR,GAAU,CACzBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,iBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,qGAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,gBACRyX,GAAKqS,GAAW;AAClB9pB,SAAU,iFAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,0BACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,2LAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,oBACR2Y,GAAMmR,GAAW,CACnB9pB,SAAU,CAAC,sGAAuG,UAAW,IAAK,2HAM1I2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,sBACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,6BACPtb,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,WACR,KAAMyX,GAAK,OAAQ,CACrBzX,SAAU,cACR,IAAK,IAAKyX,GAAK,OAAQ,CACzBzX,SAAU,cACR,KAAMyX,GAAK,OAAQ,CACrBzX,SAAU,aACR,IAAK,IAAKyX,GAAK,OAAQ,CACzBzX,SAAU,cACR,KAAMyX,GAAK,OAAQ;AACrBzX,SAAU,cACR,wKAEJ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,qFACRyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2BACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMuQ,GAAO,CACrB5N,MAAO,mBACPtb,SAAU,CAACyX,GAAK0S,GAAW,CACzBnqB,SAAU2Y,GAAMyR,GAAU,CACxBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB1hB,QAAS,YACTpI,SAAU,oBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,oBAGZ2Y,GAAMgR,GAAW,CACnB3pB,SAAU,CAAC2Y,GAAMyR,GAAU,CACzBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,iBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,qGAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,gBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,iFAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,0BACRyX,GAAKqS,GAAW;AAClB9pB,SAAU,2LAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,oBACR2Y,GAAMmR,GAAW,CACnB9pB,SAAU,CAAC,qGAAsG,IAAK,UAAW,+HAO3I2Y,GAAM+2B,GAAQuB,UAAW,CAC3BjyB,GAAI,cACJ1D,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAK2Y,GAAM+2B,GAAQwB,UAAW,CAChC51B,MAAO,eACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,wDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,6CACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKwW,GAAiB,CAC9BC,SAAS,EACTluB,SAAUyX,GAAKK,GAAQ,CACrB9X,SAAU2Y,GAAMuQ,GAAO,CACrB5N,MAAO,mBACP8N,cAAc,EACdC,YAAY,EACZrpB,SAAU,CAACyX,GAAK0S,GAAW,CACzBnqB,SAAU2Y,GAAMyR,GAAU,CACxBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB1hB,QAAS,YACTpI,SAAU,oBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,oBAGZ2Y,GAAMgR,GAAW,CACnB3pB,SAAU,CAAC2Y,GAAMyR,GAAU,CACzBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,iBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,qGAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,gBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,iFAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,0BACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,2LAEV2Y,GAAMyR,GAAU;AAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,oBACR2Y,GAAMmR,GAAW,CACnB9pB,SAAU,CAAC,qGAAsG,IAAK,UAAW,iHAEjI2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,kBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,gKAEV2Y,GAAMyR,GAAU,CAClBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,kBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,qJASxB2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,yFACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU;GAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,6BACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMuQ,GAAO,CACrB5N,MAAO,mBACP6N,aAAa,EACbnpB,SAAU,CAACyX,GAAK0S,GAAW,CACzBnqB,SAAU2Y,GAAMyR,GAAU,CACxBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB1hB,QAAS,YACTpI,SAAU,oBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,oBAGZ2Y,GAAMgR,GAAW,CACnB3pB,SAAU,CAAC2Y,GAAMyR,GAAU,CACzB1a,QAAS,IAAMmjC,MAAM,qBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,iBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,qGAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,sBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,gBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,iFAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,kCACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,0BACRyX,GAAKqS,GAAW;AAClB9pB,SAAU,sMAMlB2Y,GAAM+2B,GAAQwB,UAAW,CAC3BlyB,GAAI,yBACJ1D,MAAO,aACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,wDAAyD,IAAK,kFACvEyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMuQ,GAAO,CACrB5N,MAAO,mBACP+N,YAAY,EACZrpB,SAAU,CAACyX,GAAK0S,GAAW,CACzBnqB,SAAU2Y,GAAMyR,GAAU,CACxBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB1hB,QAAS,YACTpI,SAAU,oBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,oBAGZ2Y,GAAMgR,GAAW,CACnB3pB,SAAU,CAAC2Y,GAAMyR,GAAU,CACzB1a,QAAS,IAAMmjC,MAAM,qBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,iBACRyX,GAAKqS,GAAW;AAClB9pB,SAAU,qGAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,sBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,gBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,iFAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,kCACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,0BACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,sMAMlB2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,iDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMuQ,GAAO,CACrB5N,MAAO;AACPgO,SAAS,EACTtpB,SAAU,CAACyX,GAAK0S,GAAW,CACzBnqB,SAAU2Y,GAAMyR,GAAU,CACxBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB1hB,QAAS,YACTpI,SAAU,oBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,oBAGZ2Y,GAAMgR,GAAW,CACnB3pB,SAAU,CAAC2Y,GAAMyR,GAAU,CACzB1a,QAAS,IAAMmjC,MAAM,qBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,iBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,qGAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,sBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,gBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,iFAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,kCACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,0BACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,sMAMlB2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU;GACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMuQ,GAAO,CACrB5N,MAAO,mBACPiO,MAAM,EACNvpB,SAAU,CAACyX,GAAK0S,GAAW,CACzBnqB,SAAU2Y,GAAMyR,GAAU,CACxBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB1hB,QAAS,YACTpI,SAAU,oBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,oBAGZ2Y,GAAMgR,GAAW,CACnB3pB,SAAU,CAAC2Y,GAAMyR,GAAU,CACzB1a,QAAS,IAAMmjC,MAAM,qBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,iBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,qGAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,sBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,gBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,iFAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,kCACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,0BACRyX,GAAKqS,GAAW;AAClB9pB,SAAU,mMAKhByX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mCACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMuQ,GAAO,CACrB5N,MAAO,mBACPiO,MAAM,EACND,SAAS,EACTtpB,SAAU,CAACyX,GAAK0S,GAAW,CACzBnqB,SAAU2Y,GAAMyR,GAAU,CACxBpqB,SAAU,CAACyX,GAAKqS,GAAW,CACzB1hB,QAAS,YACTpI,SAAU,oBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,oBAGZ2Y,GAAMgR,GAAW,CACnB3pB,SAAU,CAAC2Y,GAAMyR,GAAU,CACzB1a,QAAS,IAAMmjC,MAAM,qBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,iBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,qGAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,sBACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,gBACRyX,GAAKqS,GAAW,CAClB9pB,SAAU,iFAEV2Y,GAAMyR,GAAU,CAClB1a,QAAS,IAAMmjC,MAAM,kCACrB7yC,SAAU,CAACyX,GAAKqS,GAAW,CACzB9pB,SAAU,0BACRyX,GAAKqS,GAAW;AAClB9pB,SAAU,sMAMlByX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,8CAA+C,IAAKyX,GAAK,OAAQ,CACnEzX,SAAU,qBACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,8DAQ1B,ERnaEoO,MAAO,eACN,CACDkN,MAAO,YACPq7B,MAAO,OACP1nC,USrGa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,YACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,mIAAoI,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC9JC,KAAM,oBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAEV,OAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW;AAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,cACbp1B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBxuB,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,yBAKXl+B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,0BACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,kCACPtb,SAAU,CAACyX,GAAKi4B,GAAQC,KAAM,CAC5BC,YAAY,EACZt0B,MAAO,gBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxB1D,SAAS,EACT9qB,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,sBAITp/B,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,+BACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CAAA,UAG5B7V,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,+BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR;GACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAK+W,GAAW,CACxBxuB,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,sBAITl+B,GAAM,IAAK,CACb3Y,SAAU,CAAC,6HAA8HyX,GAAK,OAAQ,CACpJzX,SAAU,yBACR,oEACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,qCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAK+W,GAAW,CACxBxuB,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLl/B,UAAW,aACXm/B,IAAK,4BAMbl+B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,6CACNxP,SAAU,8BACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,aACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM;AAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,cAAeyX,GAAK,OAAQ,CACrCzX,SAAU,cACR,0EAA2E,IAAKyX,GAAK,OAAQ,CAC/FzX,SAAU,SACR,YACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,YACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBnF,YAAY,EACZrpB,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,oBAGPp/B,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBnF,YAAY,cAKlB5R,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,iCACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO;AACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,sDAAuDyX,GAAKlI,GAAM,CAC3EghB,UAAW,SACX/gB,KAAM,8DACNxP,SAAU,eACR,QACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,2DAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6CAA8C,IAAKyX,GAAK,OAAQ,CACzEzX,SAAU,cACR,gBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kCAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,qBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBC,YAAahX,GAAKmC,GAAW,CAC3BlC,UAAW,qCAKjBiB,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,QACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU;AAChCpuB,MAAO,cACPziB,SAAU,0CACR2Y,GAAM+2B,GAAQmB,SAAU,CAC1BpuB,MAAO,OACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,gDAAiD,IAAKyX,GAAK,OAAQ,CACrEzX,SAAU,WACR,iBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,eACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxB5O,MAAO,MACP5f,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,yBAKXl+B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,uCAAwCyX,GAAK,OAAQ,CAC9DzX,SAAU,cACR,+FAAgG,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC1HC,KAAM,oBACNxP,SAAU,gBACR,IAAK,eACPyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,aACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,eACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,KACNtY,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,oBAGPp/B,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,KACNwS,SAAS,MAETrT,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,cAIVb,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,aACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,eACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,KACNtY,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,oBAGPp/B,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,KACNwS,SAAS,MAETrT,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,cAIVb,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,aACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,eACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,KACNtY,SAAUyX,GAAK,MAAO,CACpBm/B,IAAK,+BACLC,IAAK,oBAGPp/B,GAAK,MAAO;AACdC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,KACNwS,SAAS,MAETrT,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAK+W,GAAW,CACxBlW,KAAM,iBAKZb,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,sCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,4FAQ1B,ETxQEoO,MAAO,mBACN,CACDkN,MAAO,UACPq7B,MAAO,WACP1nC,UU1Ga,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,UACP8yB,MAAO32B,GAAK,IAAK,CACfzX,SAAU,kGAEZA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,YACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3BC,YAAY,EACZt0B,MAAO,gBACPtb,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,wBACX1X,SAAU,CAACyX,GAAKkX,GAAS,CACvBhI,OAAQ,SACR3mB,SAAU;GACRyX,GAAKkX,GAAS,CAChBhI,OAAQ,UACR3mB,SAAU,sCACRyX,GAAKkX,GAAS,CAChBhI,OAAQ,QACR3mB,SAAU,+CAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,uCACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,uBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKkX,GAAS,CACtBpT,KAAMnB,GACNuM,OAAQ,UACR3mB,SAAU,wCAGZyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,SACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,0FAA2FyX,GAAK,OAAQ,CACjHzX,SAAU;GACR,kCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,8CAA+C,IAAKyX,GAAK,OAAQ,CACnEzX,SAAU,gBACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qEAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,wCAAyC,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnEC,KAAM,0DACNxP,SAAU,yCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,WAAYyX,GAAK,OAAQ,CAClCzX,SAAU,YACR;GACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,uCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,wBACX1X,SAAU,CAAC2Y,GAAMgW,GAAS,CACxBpX,QAAS,WACTvX,SAAU,CAAC,cAAeyX,GAAK,SAAU,CACvCzX,SAAU,aACR,yBACF2Y,GAAMgW,GAAS,CACjBpX,QAAS,SACTvX,SAAU,CAAC,aAAcyX,GAAK,SAAU,CACtCzX,SAAU,WACR,0EAGNyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,8BACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMgW,GAAS,CACvBpX,QAAS,SACTvX,SAAU,CAAC,gDAAiD,IAAKyX,GAAK,OAAQ,CAC5EzX,SAAU,aACR,YAGN2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,0DAA2D,IAAKyX,GAAK,OAAQ,CACtFzX,SAAU;GACR,oDAAqDyX,GAAK,OAAQ,CACpEzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,gBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,wBACX1X,SAAU,CAACyX,GAAKkX,GAAS,CACvBhI,OAAQ,UACRrO,KAAM,KACNtY,SAAU,iCACRyX,GAAKkX,GAAS,CAChBhI,OAAQ,UACRrO,KAAM,KACNtY,SAAU,kCACRyX,GAAKkX,GAAS,CAChBhI,OAAQ,UACRrO,KAAM,KACNtY,SAAU,iCACR2Y,GAAMgW,GAAS,CACjBhI,OAAQ,UACRrO,KAAM,SACNlQ,QAAS,MACTpI,SAAU,CAAC,2CAA4C,IAAKyX,GAAK,OAAQ,CACvEzX,SAAU,wBAKhByX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,qEAAsEyX,GAAK,OAAQ,CAC5FzX,SAAU,YACR,iCACFyX,GAAKi4B,GAAQmB,SAAU;AACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAQ1B,EVrHEoO,MAAO,qBACN,CACDkN,MAAO,UACPq7B,MAAO,WACP1nC,URwBa,WACb,MAAMwoC,EAAW5tC,GAAO,OAGjB+gB,EAAaksB,GAAkBnsC,GAAS,OACxC+sC,EAAaC,GAAkBhtC,GAAS,QAC/C,OAAOgO,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,UACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,gBACR,uCAAwC,YAAa,IAAKyX,GAAK,OAAQ,CACzEzX,SAAU,WACR,yBAA0ByX,GAAK,OAAQ,CACzCzX,SAAU,UACR,cAENA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChCnvB,GAAI,SACJ1D,MAAO,SACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,yGAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,WACbp1B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,eACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMm6B,GAAS,CACvBh2B,QAASrF,GAAKm7B,GAAe,IAC7Br3B,KAAMhC,GACNkE,aAAcg6B,EACdn8B,MAAO,eACPtb,SAAU,CAACyX,GAAK,IAAK;AACnBzX,SAAU,wEACR2Y,GAAMqD,GAAY,CACpBhc,SAAU,CAACyX,GAAK+J,GAAO,CACrBjb,KAAM,WACN8Q,WAAYogC,IACVhgC,GAAKwE,GAAY,CACnBV,KAAMzC,GACNvB,QAAS,OACT+D,MAAO,kBAKb7D,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,uBACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjC51B,MAAO,qBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,eAAgByX,GAAK,OAAQ,CACtCzX,SAAU,WACR,kCAAmC,IAAKyX,GAAK,OAAQ,CACvDzX,SAAU,UACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,YACR,MAAO,IAAKyX,GAAK,OAAQ,CAC3BzX,SAAU,aACR,8BACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,MAAO,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACxCC,KAAM,qBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAEV,IAAK,0EACPyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,4BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBv7B,QAAS,SACToG,oBAAqB8U,GACrBzyB,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,gDACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,OACX1X,SAAU,0BACRyX,GAAKyE,GAAa;GAK5BvD,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,6CACNxP,SAAU,8BACR,OACFyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,UACR,mCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,WACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,yCAA0CyX,GAAK,OAAQ,CAChEzX,SAAU,WACR,IAAK,WAAYyX,GAAK,OAAQ,CAChCzX,SAAU,YACR,wEAAyE,WAAY,yBACvFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO;AACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,WACR,4BAA6B,IAAKyX,GAAK,OAAQ,CACjDzX,SAAU,YACR,0DACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBx1B,kBAAkB,EAClBhC,MAAO,oDACPtb,SAAUyX,GAAK,IAAK,CAClBzX,SAAU,6DAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,WACR,4BAA6B,IAAKyX,GAAK,OAAQ,CACjDzX,SAAU,YACR,uBAAwByX,GAAK,MAAO,CACtCzX,SAAU,QACR,sBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU;AACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,uCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBv1B,eAAe,EACfjC,MAAO,eACPtb,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,uCAAwCyX,GAAK,MAAO,CAC7DzX,SAAU,WACR,cAIR2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,mBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,WACR,4BAA6B,IAAKyX,GAAK,OAAQ,CACjDzX,SAAU,YACR,2DACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,8CACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBt1B,kBAAkB,EAClBlC,MAAO,sBACPtb,SAAUyX,GAAK,IAAK,CAClBzX,SAAU,6DAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,eACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM;AAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,iDAAkD,IAAKyX,GAAK,OAAQ,CAC7EzX,SAAU,WACR,qCAAsCyX,GAAK,OAAQ,CACrDzX,SAAU,WACR,mDAAoDyX,GAAK,OAAQ,CACnEzX,SAAU,QACR,qDAAsDyX,GAAK,OAAQ,CACrEzX,SAAU,aACR,uCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oEAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQ/gB,QAAS,CAChC3uB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,YACR,oEAAqEyX,GAAK,OAAQ,CACpFzX,SAAU,WACR,4DAA6D,IAAK,gBAAiB,eACrF2Y,GAAM+2B,GAAQkB,KAAM,CACtB5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO;AACPziB,SAAU,CAAC,6BAA8ByX,GAAK,OAAQ,CACpDzX,SAAU,WACR,qBAAsB,IAAK,SAAUyX,GAAK,OAAQ,CACpDzX,SAAU,WACR,4DACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,+BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBv3B,KAAMhC,GACN+B,MAAO,+BACP03B,eAAe,EACfhzC,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,aAAc,kBAAmB,IAAKyX,GAAK,OAAQ,CAC5DzX,SAAU,WACR,0HAA2H,IAAK,YAAa,qBAIrJ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,aACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,qEAAsEyX,GAAK,OAAQ,CAC5FzX,SAAU,YACR,8BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,qBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBx3B,MAAO,qBACPuC,WAAY,mBACZ7d,SAAUyX,GAAK,IAAK,CAClBzX,SAAU,wFAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,eACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,qFAAsFyX,GAAK,OAAQ,CAC5GzX,SAAU,WACR,4BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,yCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBC,mBAAmB,EACnBr1B,cAAc,EACdpC,MAAO,gBACPtb,SAAUyX,GAAK,IAAK,CAClBzX,SAAU,sFAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,sBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM;AAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,wBACR,oBAAqB,IAAKyX,GAAK,OAAQ,CACzCzX,SAAU,WACR,oFACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,6BAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,0CACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBx3B,MAAO,0CACPqC,oBAAqB8U,GACrBzyB,SAAUyX,GAAK,IAAK,CAClBzX,SAAU,0EAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,0CAA2CyX,GAAK,OAAQ,CACjEzX,SAAU,UACR,YAAayX,GAAK,OAAQ,CAC5BzX,SAAU,aACR,0CACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU;GAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,gBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,UACR,mBAAoB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC9CC,KAAM,gBACNxP,SAAU,UACR,+CAAgD,IAAKyX,GAAK,OAAQ,CACpEzX,SAAU,oBACR,4BAA6B,IAAKyX,GAAK,OAAQ,CACjDzX,SAAU,WACR,QACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qDAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzBnvB,GAAI,cACJ1D,MAAO,cACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,2EAA4EyX,GAAK,OAAQ,CAC3FzX,SAAU,WACR,mDAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,gBACbp1B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,oBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM07B,GAAc,CAC5BtB,mBAAmB,EACnBj2B,QAASrF,GAAKm7B,GAAe,IAC7Br3B,KAAMhC,GACNkE,aAAcg6B;AACdn8B,MAAO,eACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,iCACR2Y,GAAM,KAAM,CACdjB,UAAW,gBACX1X,SAAU,CAAC2Y,GAAM,KAAM,CACrB3Y,SAAU,CAAC,kCAAmCyX,GAAK,MAAO,CACxDzX,SAAU,WACR,WACFyX,GAAK,KAAM,CACbzX,SAAU,oEACRyX,GAAK,KAAM,CACbzX,SAAU,iDAEV2Y,GAAMqD,GAAY,CACpBhc,SAAU,CAACyX,GAAK+J,GAAO,CACrBjb,KAAM,WACN8Q,WAAYogC,IACVhgC,GAAKwE,GAAY,CACnBV,KAAMzC,GACNvB,QAAS,OACT+D,MAAO,kBAKb3C,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,4BACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,wBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,4BAA6ByX,GAAK,OAAQ,CACnDzX,SAAU,WACR,MAAO,IAAKyX,GAAK,OAAQ,CAC3BzX,SAAU,gBACR,gFACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK48B,GAAc,CAC3Bv3B,QAASrF,GAAKm7B,GAAe,IAC7Bt3B,MAAO,0BACPtb,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,cAIVK,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO;AACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,gJAAiJyX,GAAK,OAAQ,CACvKzX,SAAU,gBACR,kBAAmB,IAAKyX,GAAK,OAAQ,CACvCzX,SAAU,mBACR,QACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mCACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM07B,GAAc,CAC5Bv3B,QAASrF,GAAKm7B,GAAe,IAC7BxqC,QAAS,YACTkT,MAAO,iCACP2B,YAAY,EACZjd,SAAU,CAAC2Y,GAAM4Z,GAAS,CACxBnqB,QAAS,UACTpI,SAAU,CAACyX,GAAK4a,GAAK,CACnBC,YAAa,QACbzQ,SAA0B,SAAhB61B,EACVhoC,QAAS,IAAMioC,EAAe,QAC9B33C,SAAU,UACRyX,GAAK4a,GAAK,CACZC,YAAa,QACbzQ,SAA0B,SAAhB61B,EACVhoC,QAAS,IAAMioC,EAAe,QAC9B33C,SAAU,aAEV2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,8BAA+B,IAAKyX,GAAKlI,GAAM,CACxDC,KAAM,IACN+gB,UAAW,SACXvwB,SAAU,WACR,OACc,SAAhB03C,GAA0BjgC,GAAKK,GAAQ,CACzC9X,SAAUyX,GAAKiT,GAAW,CACxBrU,KAAM47B,GACNtnB,QAASynB,GACT92B,MAAO,iBACPsP,YAAaA,EACbI,YAAakB,GAAO4qB,EAAe5qB,OAEnB,SAAhBwrB,GAA0B/+B,GAAMyE,EAAW,CAC7Cpd,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,6CACR2Y,GAAM,MAAO;AACfjB,UAAW,eACX1X,SAAU,CAACyX,GAAK0D,GAAQ,CACtBnb,SAAU,aACRyX,GAAK0D,GAAQ,CACfnb,SAAU,0BAMlB2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,wBACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,+PACRyX,GAAK,IAAK,CACZzX,SAAU,kFACR2Y,GAAM,KAAM,CACd3Y,SAAU,CAAC2Y,GAAM,KAAM,CACrB3Y,SAAU,CAACyX,GAAK,SAAU,CACxBzX,SAAU,oCACR,kBAAmB,IAAKyX,GAAK,OAAQ,CACvCzX,SAAU,YACR,0HACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAAC2Y,GAAM,SAAU,CACzB3Y,SAAU,CAAC,+BAAgC,gBAAiB;GAC1D,uKAEJyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK48B,GAAc,CAC3B/4B,MAAO,4BACPwB,QAASrF,GAAKm7B,GAAe,IAC7BxqC,QAAS,YACTpI,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,oCAAqCyX,GAAK,OAAQ,CAC3DzX,SAAU,UACR,WAGNyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,0CACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM07B,GAAc,CAC5B/4B,MAAO,kCACPwB,QAASrF,GAAKm7B,GAAe,IAC7BxqC,QAAS,YACTpI,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,oCAAqCyX,GAAK,OAAQ,CAC3DzX,SAAU,UACR,wBACFyX,GAAKu6B,GAAY,CACnB15B,KAAM,YAGRb,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2DACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK48B,GAAc,CAC3B/4B,MAAO,2CACPwB,QAASrF,GAAKm7B,GAAe,IAC7B5yC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,gBACX1X,SAAU2Y,GAAM,IAAK;AACnB3Y,SAAU,CAAC,QAAS,gBAAiB,wEAIzCyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,oDACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK48B,GAAc,CAC3B/4B,MAAO,+CACPwB,QAASrF,GAAKm7B,GAAe,IAC7B5yC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,0BACX1X,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,iHACRyX,GAAK,KAAM,CAAA,GAAKA,GAAK,IAAK,CAC5BzX,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,mBAMdb,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,gBACPtb,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,kCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK88B,GAAoB,CACjCh9B,QAAS,SACTvX,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,gDACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,OACX1X,SAAU,0BACRyX,GAAKyE,GAAa,gBAK5BvD,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,eACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,KAAMyX,GAAK,OAAQ;AAC5BzX,SAAU,UACR,yCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,WACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,uBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oBAAqByX,GAAK,OAAQ,CAC3CzX,SAAU,gBACR,SAAUyX,GAAK,MAAO,CACxBzX,SAAU,QACR,kBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,mBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,oCACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZ2Y,GAAM+2B,GAAQ/gB,QAAS,CACzB3uB,SAAU,CAACyX,GAAK,KAAM,CACpBzX,SAAU,SACR,oCAAqC,IAAKyX,GAAKlI,GAAM;AACvDC,KAAM,6EACN+gB,UAAW,SACXvwB,SAAU,kCACR,0FAEJyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,sBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,iFACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,uDAAwD,WAAY,IAAK,+BAAgCyX,GAAK,OAAQ,CAC/HzX,SAAU,YACR,IAAKyX,GAAK,KAAM,CAAA,GAAK,qBAAsB,WAAY,wEACzDA,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,oCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,YACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK48B,GAAc,CAC3Bv3B,QAASrF,GAAKm7B,GAAe,IAC7Bt3B,MAAO,cACPhD,KAAM,KACNtY,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,WAGRb,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK48B,GAAc,CAC3Bv3B,QAASrF,GAAKm7B,GAAe,IAC7Bt3B,MAAO,oBACPhD,KAAM,KACNtY,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,WAGRb,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,YACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK48B,GAAc,CAC3Bv3B,QAASrF,GAAKm7B,GAAe,IAC7Bt3B,MAAO,aACPhD,KAAM,KACNtY,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,WAGRb,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,gBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK48B,GAAc,CAC3Bv3B,QAASrF,GAAKm7B,GAAe,IAC7BxqC,QAAS,+BACTkT,MAAO,oBACPhD,KAAM,SACNtY,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,cAIVK,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,4BACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,oKACR2Y,GAAM,IAAK;AACb3Y,SAAU,CAAC,OAAQyX,GAAK,IAAK,CAC3BzX,SAAU,4BACR,8CAA+CyX,GAAK,OAAQ,CAC9DzX,SAAU,eACR,eAEJyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,yBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,sBAAuByX,GAAK,OAAQ,CAC7CzX,SAAU,WACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,UACR,OACF2Y,GAAM+2B,GAAQmB,SAAU,CAC1BpuB,MAAO,QACPziB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,WACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,UACR,UAAW,IAAKyX,GAAK,SAAU,CACjCzX,SAAU,WACR,IAAK2Y,GAAM,KAAM,CACnB3Y,SAAU,CAAC2Y,GAAM,KAAM,CACrB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,2BACR,QAAS,IAAKyX,GAAK,OAAQ,CAC7BzX,SAAU,yBACR,cACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,0BACR,QAAS,IAAKyX,GAAK,OAAQ,CAC7BzX,SAAU,wBACR,cACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,4BACR,WAAY,IAAKyX,GAAK,OAAQ,CAChCzX,SAAU,SACR,4BAGNyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qEAMlByX,GAAKi4B,GAAQvB,QAAS,CACxBnvB,GAAI,gBACJ1D,MAAO,UACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,wCAAyC,IAAKyX,GAAK,OAAQ,CAC7DzX,SAAU,gBACR,yCAA0C,IAAKyX,GAAK,OAAQ,CAC9DzX,SAAU,YACR,gBAAiByX,GAAK,OAAQ,CAChCzX,SAAU,YACR,OAENA,SAAU2Y,GAAM+2B,GAAQuB,UAAW,CACjCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,YACbp1B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,gBACPtb,SAAUyX,GAAK+7B,GAAS,CAAA,KACtB/7B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,QACPtb,SAAUyX,GAAKi4B,GAAQZ,KAAM,CAC3BpoC,QAAS,+MAarB,EQ35BE0H,MAAO,oBACN,CACDkN,MAAO,UACPq7B,MAAO,WACP1nC,UWpHa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,UACP8yB,MAAO32B,GAAK2F,EAAW,CACrBpd,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,qGAGRA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/B7yB,MAAO,UACP8yB,MAAOz1B,GAAMyE,EAAW,CACtBpd,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,eAAgByX,GAAK,OAAQ,CACtCzX,SAAU,YACR,0FACFyX,GAAK,IAAK,CACZzX,SAAU,6JACR2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,gCAAiCyX,GAAK,OAAQ,CACvDzX,SAAU,YACR,YAAa,IAAKyX,GAAKlI,GAAM,CAC/BoF,OAAQ,SACRnF,KAAM,8EACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEV,IAAK,iCAAkC,IAAKyX,GAAKlI,GAAM,CACzDoF,OAAQ,SACRnF,KAAM,+DACNxP,SAAU;GACR,kKAGRA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BC,WAAY,YACV55B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,gBACPozB,YAAa,gBACbkB,YAAY,SAGdj3B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,wBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,QACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,kFACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,uBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wBACPozB,YAAa,gBACbkB,YAAY,OAEZn4B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,mBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO;AACPziB,SAAU,qIACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,8CAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,QACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,oFACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,qBACPozB,YAAa,qBACbkB,YAAY,OAEZn4B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,kBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oBAAqB,IAAKyX,GAAKlI,GAAM,CAC9CoF,OAAQ,SACRnF,KAAM,+DACNxP,SAAU;GACR,IAAK,qBAAsB,IAAK,wGAClCyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEV2Y,GAAM+2B,GAAQmB,SAAU,CAC1BpuB,MAAO,UACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,4BAA6ByX,GAAK,OAAQ,CAC5CzX,SAAU,cACR,qBAAsByX,GAAK,OAAQ,CACrCzX,SAAU,kBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,mDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,aACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,sBAAuB,IAAK,0BACrCyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,YAAa,IAAK,cAAe,cAIhDyX,GAAKi4B,GAAQwB,UAAW;AAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,0FAA2FyX,GAAK,OAAQ,CACjHzX,SAAU,WACR,IAAKyX,GAAK,KAAM,CAAA,GAAK,4GAA6GA,GAAK,OAAQ,CACjJzX,SAAU,SACR,UAAW,IAAKyX,GAAK,OAAQ,CAC/BzX,SAAU,UACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,sBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,eAAgB,IAAK,SAAU,IAAK,uCAC7CyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kCAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,OACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,eAAgByX,GAAK,OAAQ,CACtCzX,SAAU,YACR,gCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,mBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,YACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,eAAgByX,GAAK,OAAQ,CACtCzX,SAAU,YACR,qDACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,oBACPozB,YAAa,oBACbkB,YAAY,OAEZn4B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,sBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,kDAAmD,IAAKyX,GAAK,OAAQ,CAC9EzX,SAAU,YACR,iBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,WAAYyX,GAAK,OAAQ,CAClCzX,SAAU;GACR,qBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPozB,YAAa,iBACbkB,YAAY,cAMxB,EXnKExhC,MAAO,qBACN,CACDkN,MAAO,UACPq7B,MAAO,WACP1nC,UYxHa,WACb,MAAO2oC,EAAaC,GAAkBltC,IAAS,GAC/C,SAASmtC,IACPD,GAAgBD,EAClB,CACA,OAAOj/B,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,UACP8yB,MAAO32B,GAAK2F,EAAW,CACrBpd,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,mBACR,0DAGRA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,UACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,qGAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,YACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3BC,YAAY,EACZ5vC,SAAUyX,GAAK6W,GAAS,CAAA,UAG1B3V,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO;AACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,QACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,kDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,yCAA0C,SAErDyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,sBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2BACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,4BACX1X,SAAU,CAACyX,GAAK6W,GAAS,CACvBC,MAAO,aACPjW,KAAM,OACJb,GAAK6W,GAAS,CAChBC,MAAO,OACPjW,KAAM,OACJb,GAAK,MAAO,CACdC,UAAW,6DACX1X,SAAUyX,GAAK6W,GAAS,CACtBC,MAAO,gBACPjW,KAAM,iBAKZK,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,sCACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,0BAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM;AACrBr0B,MAAO,gBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,4BACX1X,SAAU,CAACyX,GAAK6W,GAAS,CACvBhW,KAAM,OACJb,GAAK6W,GAAS,CAChBhW,KAAM,OACJb,GAAK6W,GAAS,CAChBhW,KAAM,qBAMdK,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,iBACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,mBACR,yDAA0D,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACpFC,KAAM,kBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEV,OAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,mBACbl0B,GAAM+2B,GAAQwB,UAAW,CAC3BlxC,SAAU,CAAC2Y,GAAM+2B,GAAQC,KAAM,CAC7Br0B,MAAO,uBACPtb,SAAU,CAACyX,GAAK0D,GAAQ,CACtBzL,QAASooC,EACT93C,SAAU,iBACR43C,GAAengC,GAAKqX,GAAgB,CACtCpf,QAASooC,OAETrgC,GAAKi4B,GAAQZ,KAAM,CACrBpoC,QAAS,6HAET4U,MAAO,6CAGT7D,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,gBACPtb,SAAUyX,GAAKi4B,GAAQwB,UAAW,CAChC51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO;AACPziB,SAAU,kEACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,8EAQ1B,EZhCEoO,MAAO,qBACN,CACDkN,MAAO,gBACPq7B,MAAO,WACP1nC,UNpDa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,gBACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAAC,0CAA2C,IAAKyX,GAAKi4B,GAAQngC,KAAM,CAC5EC,KAAM,oBACNxP,SAAU,YACR,sHAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,kBACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3BC,YAAY,EACZt0B,MAAO,sBACPtb,SAAUyX,GAAKg9B,GAAgB,CAC7B/kB,SAAU8kB,GACV7kB,iBAAkB,gBAItBhX,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,6BACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,eAAgB,IAAKyX,GAAKlI,GAAM,CAClCC,KAAM,oFACNxP,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,aAAc,IAAK,SAAU,SAExC,IAAK,yEACP2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,wGAAyG,IAAKyX,GAAK,OAAQ,CACpIzX,SAAU,mCAGZyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,cACPtb,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,yCAA0CyX,GAAK,OAAQ,CAChEzX,SAAU,kBACR,IAAK,kCAAmC,IAAK,oFAEjDyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,eACPtb,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,4DAA6DyX,GAAK,OAAQ,CACnFzX,SAAU,2BACR,gEAEJyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,cACPtb,SAAU2Y,GAAM,IAAK;AACnB3Y,SAAU,CAAC,2HAA4H,IAAKyX,GAAK,OAAQ,CACvJzX,SAAU,sBACR,iBAGN2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,4DACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKg9B,GAAgB,CAC7B/kB,SAAU,CAAC8kB,GAAc,IACzB7kB,iBAAkB,cAGpBhX,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,mBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,iJACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,0CAGZyX,GAAKi4B,GAAQC,KAAM;AACrBr0B,MAAO,gCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKg9B,GAAgB,CAC7B/kB,SAAU8kB,GACV7kB,iBAAkB,OAClBglB,iBAAiB,SAGnBh8B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,oBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oGAAqG,IAAKyX,GAAK,OAAQ,CAChIzX,SAAU,oBACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,4DAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,qBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKg9B,GAAgB,CAC7B/kB,SAAU8kB,GACV7kB,iBAAkB,OAClBP,kBAAmB,CACjBE,aAAc,8BACdC,cAAe,8BAEjBqlB,iBAAiB,gBAO/B,EMtFExmC,MAAO,4BACN,CACDkN,MAAO,SACPq7B,MAAO,QACP1nC,UalIa,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,SACP8yB,MAAOz1B,GAAM,IAAK;AAChB3Y,SAAU,CAAC,yEAA0E,IAAKyX,GAAK,OAAQ,CACrGzX,SAAU,WACR,gBAENA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,SACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,WACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,eACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK0D,GAAQ,CACrBI,KAAMrC,GACNxJ,QAAS,IAAMmjC,MAAM,0BACrB7yC,SAAU,oBAId2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAKyX,GAAKi4B,GAAQwB,UAAW,CAC/B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,QAAS,WAAY,sCAC9ByX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,OACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM;AAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6CAA8C,WAAY,eACnEyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,0BACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,kBAAmByX,GAAK,OAAQ,CACzCzX,SAAU,eACR,gBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,8CAA+C,IAAKyX,GAAK,OAAQ,CACnEzX,SAAU,sBACR,OACFyX,GAAKi4B,GAAQmB,SAAU;AACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wFAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,wCAAyC,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnEC,KAAM,0DACNxP,SAAU,yCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6CAA8C,WAAY,wDAAyD,IAAKyX,GAAK,OAAQ,CAC9IzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAGZ2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,uBACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK0D,GAAQ,CACtB5D,QAAS,YACTvX,SAAU,YACR2Y,GAAMwC,GAAQ,CAChB5D,QAAS,YACTvX,SAAU,CAACyX,GAAKuB,GAAY,CAAA,GAAK;GAC/BvB,GAAK0D,GAAQ,CACf5D,QAAS,YACT8D,SAAS,EACTrb,SAAU,YACRyX,GAAK0D,GAAQ,CACf5D,QAAS,YACT6D,UAAU,EACVpb,SAAU,aACRyX,GAAK0D,GAAQ,CACf5D,QAAS,YACT5D,UAAU,EACV3T,SAAU,gBAEV2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,qBACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK0D,GAAQ,CACtB5D,QAAS,UACTvX,SAAU,YACR2Y,GAAMwC,GAAQ,CAChB5D,QAAS,UACTvX,SAAU,CAACyX,GAAK8B,GAAU,CAAA,GAAK,aAC7B9B,GAAK0D,GAAQ,CACf5D,QAAS,UACT8D,SAAS,EACTrb,SAAU,YACRyX,GAAK0D,GAAQ,CACf5D,QAAS,UACT6D,UAAU,EACVpb,SAAU,aACRyX,GAAK0D,GAAQ,CACf5D,QAAS,UACT5D,UAAU,EACV3T,SAAU,gBAEV2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,qCACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK0D,GAAQ,CACtB5D,QAAS,SACTnP,QAAS,oBACTpI,SAAU,YACR2Y,GAAMwC,GAAQ,CAChB5D,QAAS,SACTnP,QAAS,oBACTpI,SAAU,CAACyX,GAAK8B,GAAU,CAAA,GAAK,aAC7B9B,GAAK0D,GAAQ,CACf5D,QAAS,SACT8D,SAAS,EACTjT,QAAS,oBACTpI,SAAU,YACRyX,GAAK0D,GAAQ,CACf5D,QAAS,SACT6D,UAAU,EACVhT,QAAS,oBACTpI,SAAU,aACRyX,GAAK0D,GAAQ,CACf5D,QAAS,SACT5D,UAAU,EACVvL,QAAS,oBACTpI,SAAU;SAGZ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,yDAA0D,IAAK,WAAY,mDAAoD,IAAKyX,GAAK,OAAQ,CAC1JzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,2CAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZ2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,eACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK0D,GAAQ,CACtBI,KAAMhC,GACNjB,KAAM,KACNtY,SAAU,SACRyX,GAAK0D,GAAQ,CACfI,KAAMhC,GACNjB,KAAM,KACNtY,SAAU,SACRyX,GAAK0D,GAAQ,CACfI,KAAMhB,GACNjC,KAAM,KACNtY,SAAU,SACRyX,GAAK0D,GAAQ,CACfI,KAAMrC,GACNZ,KAAM,KACNtY,SAAU,SACRyX,GAAK0D,GAAQ,CACfI,KAAMrC,GACNZ,KAAM,SACNlQ,QAAS,cACTpI,SAAU,mBAGZ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,qEAAsEyX,GAAK,OAAQ,CAC5FzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK0D,GAAQ,CACrBM,UAAU,EACVrT,QAAS,yHACTpI,SAAU,6BAKhB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,aACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,qBAAsByX,GAAK,OAAQ,CACrCzX,SAAU,WACR,QAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,eACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,mBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKwE,GAAY,CACzBvM,QAAS,IAAMmjC,MAAM,0BACrBt3B,KAAMhB,GACNe,MAAO,iBAIX7D,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,2BACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjC51B,MAAO,mBACPtb,SAAU,CAAC2Y,GAAM,IAAK;AACpB3Y,SAAU,CAAC,kHAAmHyX,GAAK,OAAQ,CACzIzX,SAAU,SACR,IAAK,WACP2Y,GAAM+2B,GAAQC,KAAM,CACtBC,YAAY,EACZ5vC,SAAU,CAACyX,GAAKwE,GAAY,CAC1BX,MAAO,QACPtb,SAAUyX,GAAKgD,GAAW,CACxB/C,UAAW,cAEXD,GAAKwE,GAAY,CACnBX,MAAO,QACPtb,SAAUyX,GAAKgD,GAAW,CACxB/C,UAAW,sBAKjBiB,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,UACR,oBAAqByX,GAAK,OAAQ,CACpCzX,SAAU,eACR,QACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,WACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,iBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,2CAA4C,IAAKyX,GAAK,OAAQ,CAChEzX,SAAU,WACR,qBACFyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU;AACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,+CAAgDyX,GAAK,OAAQ,CAC/DzX,SAAU,sBACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kFAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,wCAAyC,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnEC,KAAM,0DACNxP,SAAU,yCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6CAA8C,WAAY,wDAAyD,IAAKyX,GAAK,OAAQ,CAC9IzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kDAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,qBAGZ2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,sCAAuCyX,GAAK,OAAQ,CAC7DzX,SAAU,eACR,uBAAwByX,GAAK,OAAQ,CACvCzX,SAAU,YACR,KAAMyX,GAAK,OAAQ,CACrBzX,SAAU,aACR,OAAQ,IAAKyX,GAAK,OAAQ,CAC5BzX,SAAU,aACR,OACF2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,uBACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAKwE,GAAY,CAC1B1E,QAAS,YACT+D,MAAO,aACPC,KAAMtC,KACJxB,GAAKwE,GAAY,CACnB1E,QAAS,YACT+D,MAAO,aACPC,KAAMtC,GACNoC,SAAS,IACP5D,GAAKwE,GAAY,CACnB1E,QAAS,YACT+D,MAAO,aACPC,KAAMtC,GACNmC,UAAU,IACR3D,GAAKwE,GAAY,CACnB1E,QAAS,YACT+D,MAAO,aACPC,KAAMtC,GACNtF,UAAU,OAEVgF,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,qBACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAKwE,GAAY,CAC1B1E,QAAS,UACT+D,MAAO,aACPC,KAAMtC,KACJxB,GAAKwE,GAAY,CACnB1E,QAAS,UACT+D,MAAO,aACPC,KAAMtC,GACNoC,SAAS,IACP5D,GAAKwE,GAAY,CACnB1E,QAAS,UACT+D,MAAO,aACPC,KAAMtC,GACNmC,UAAU,IACR3D,GAAKwE,GAAY,CACnB1E,QAAS,UACT+D,MAAO,aACPC,KAAMtC,GACNtF,UAAU,OAEVgF,GAAM+2B,GAAQC,KAAM,CACtBvnC,QAAS,iBACTkT,MAAO,kBACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAKwE,GAAY,CAC1B1E,QAAS;AACT+D,MAAO,aACPC,KAAMtC,KACJxB,GAAKwE,GAAY,CACnB1E,QAAS,OACT+D,MAAO,aACPC,KAAMtC,GACNoC,SAAS,IACP5D,GAAKwE,GAAY,CACnB1E,QAAS,OACT+D,MAAO,aACPC,KAAMtC,GACNmC,UAAU,IACR3D,GAAKwE,GAAY,CACnB1E,QAAS,OACT+D,MAAO,aACPC,KAAMtC,GACNtF,UAAU,OAEVgF,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,wCACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAKwE,GAAY,CAC1B7T,QAAS,mCACTmP,QAAS,SACT+D,MAAO,aACPC,KAAMtC,KACJxB,GAAKwE,GAAY,CACnB7T,QAAS,iEACTmP,QAAS,SACT+D,MAAO,aACPC,KAAMtC,GACNoC,SAAS,IACP5D,GAAKwE,GAAY,CACnB1E,QAAS,SACTnP,QAAS,iEACTkT,MAAO,aACPC,KAAMtC,GACNmC,UAAU,IACR3D,GAAKwE,GAAY,CACnB7T,QAAS,mCACTmP,QAAS,SACT+D,MAAO,aACPC,KAAMtC,GACNtF,UAAU,UAGZgF,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,wCAAyC,WAAY,oDAAqDyX,GAAK,OAAQ;AAChIzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,2CAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZ2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,4CACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAKwE,GAAY,CAC1BV,KAAMhC,GACNjB,KAAM,KACNgD,MAAO,SACL7D,GAAKwE,GAAY,CACnBV,KAAMhC,GACNjB,KAAM,KACNgD,MAAO,SACL7D,GAAKwE,GAAY,CACnBV,KAAMhC,GACNjB,KAAM,KACNgD,MAAO,SACL7D,GAAKwE,GAAY,CACnBV,KAAMhC,GACNjB,KAAM,KACNgD,MAAO,SACL7D,GAAKwE,GAAY,CACnBV,KAAMhC,GACNjB,KAAM,SACNgD,MAAO,OACPlT,QAAS,cAGXqP,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,qEAAsEyX,GAAK,OAAQ,CAC5FzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAQ1B,EbzcEoO,MAAO,iBACN,CACDkN,MAAO,WACPq7B,MAAO,QACP1nC,UcvIa,WACb,MAAOqR,EAASy3B,GAAcptC,IAAS,GAIvC,OAAOgO,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO;AACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,aACR,yEAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,aACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,iBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,gBACX1X,SAAU,CAACyX,GAAKoJ,GAAU,CACxB7gB,SAAU,aACRyX,GAAKoJ,GAAU,CACjBlN,UAAU,EACV3T,SAAU,uBAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,0BACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,wBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,qBAAsByX,GAAK,OAAQ,CAC5CzX,SAAU,YACR,sBAAuB,IAAKyX,GAAK,OAAQ,CAC3CzX,SAAU,aACR,iFAAkFyX,GAAK,OAAQ,CACjGzX,SAAU,aACR,aACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoJ,GAAU,CACvBP,QAASA,EACTI,SA7CqB7hB,IAC7Bk5C,EAAWl5C,EAAE8V,OAAO2L,QAAQ,EA6CpBtgB,SAAU,0BAEVyX,GAAKi4B,GAAQZ,KAAM;AACrBpoC,QAAS,+OAaT4R,KAAM,KACNgD,MAAO,uFACL7D,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,0DACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoJ,GAAU,CACvBP,SAAS,EACTtgB,SAAUyX,GAAK,MAAO,CACpBC,UAAW,iBACX1X,SAAU,sDAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,6BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,aACR,kHACFyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,4CACPtb,SAAUyX,GAAKoJ,GAAU,CACvBtF,KAAM5B,GACN6G,YAAa9F,GACboG,gBAAgB,YAIpBnI,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ;AACtBzX,SAAU,aACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAKyX,GAAKi4B,GAAQwB,UAAW,CAC/B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,mBAAoByX,GAAK,OAAQ,CAC1CzX,SAAU,aACR,kEAAmEyX,GAAK,OAAQ,CAClFzX,SAAU,aACR,+CACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,iBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,eAAgByX,GAAK,OAAQ,CACtCzX,SAAU,aACR,uCAAwCyX,GAAK,OAAQ,CACvDzX,SAAU,aACR,oCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,4CACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoJ,GAAU,CACvBC,gBAAgB,EAChB9gB,SAAU,yBAGZyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,OACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,kBACR,8CACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,cACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,kBACR,4CACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,aACR,iDACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,0DAOxB,Ed/DEoO,MAAO,mBACN,CACDkN,MAAO,cACPq7B,MAAO,QACP1nC,UL/Ga,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,cACP8yB,MAAO32B,GAAK,IAAK,CACfzX,SAAU,gFAEZA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,gBACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3BC,YAAY,EACZt0B,MAAO,oBACPtb,SAAUyX,GAAKyE,GAAa,CAAA,UAG9BzE,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,2BACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjC51B,MAAO,mCACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,mBAAoByX,GAAK,OAAQ,CAC1CzX,SAAU,YACR,WAAY,IAAKyX,GAAK,OAAQ,CAChCzX,SAAU,gBACR,iDAAkDyX,GAAK,OAAQ,CACjEzX,SAAU,YACR,iBAAkByX,GAAK,OAAQ,CACjCzX,SAAU,gBACR,iCAAkCyX,GAAK,OAAQ,CACjDzX,SAAU,qBACR,4CACF2Y,GAAM,IAAK;AACb3Y,SAAU,CAAC,gBAAiByX,GAAK,OAAQ,CACvCzX,SAAU,WACR,wBAAyB,IAAKyX,GAAK,OAAQ,CAC7CzX,SAAU,qBACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,gBACR,gBAAiByX,GAAK,OAAQ,CAChCzX,SAAU,WACR,YAAayX,GAAK,OAAQ,CAC5BzX,SAAU,YACR,8EAA+E,IAAKyX,GAAK,OAAQ,CACnGzX,SAAU,YACR,2BACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,0BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKq7B,GAAS,CACtBv7B,QAAS,SACTvX,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,eACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,OACX1X,SAAU,0BACRyX,GAAKyE,GAAa,gBAK5BvD,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,4BAA6B,IAAKyX,GAAK,OAAQ,CACjDzX,SAAUyX,GAAKi4B,GAAQngC,KAAM,CAC3BC,KAAM,gBACNxP,SAAU,iBAEV,OACFyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,gCAAiCyX,GAAK,OAAQ;AACvDzX,SAAU,gBACR,wBAAyByX,GAAK,OAAQ,CACxCzX,SAAU,eACR,QACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,0BAQ1B,EKaEoO,MAAO,sBACN,CACDkN,MAAO,QACPq7B,MAAO,QACP1nC,UelJa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,QACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,qDAAsD,IAAKyX,GAAK,OAAQ,CAC1EzX,SAAU,UACR,gBAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,UACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,cACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAK+J,GAAO,CACpB,aAAc,gBACdiN,YAAa,4BAKnB9V,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,sBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,SACPtb,SAAU,CAAC2Y,GAAM,IAAK;AACpB3Y,SAAU,CAAC,mIAAoI,IAAKyX,GAAK,OAAQ,CAC/JzX,SAAU,UACR,8BAA+ByX,GAAK,OAAQ,CAC9CzX,SAAU,UACR,IAAK,iBAAkByX,GAAK,OAAQ,CACtCzX,SAAU,eACR,iBACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,YACX1X,SAAU,CAACyX,GAAK,QAAS,CACvBmJ,QAAS,mBACTlJ,UAAW,gBACX1X,SAAU,UACRyX,GAAK+J,GAAO,CACdxC,GAAI,mBACJyP,YAAa,2BAIjB9V,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,kBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,yCAA0C,IAAKyX,GAAK,OAAQ,CAC9DzX,SAAU,aACR,iBACFyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAK+J,GAAO,CACpB,aAAc,gBACdiN,YAAa,iBACb9a,UAAU,WAIdgF,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,oBACPtb,SAAU,CAAC2Y,GAAM,IAAK;AACpB3Y,SAAU,CAAC,sFAAuFyX,GAAK,OAAQ,CAC7GzX,SAAU,aACR,oCAAqCyX,GAAK,OAAQ,CACpDzX,SAAU,UACR,0BAA2B,IAAKyX,GAAK,OAAQ,CAC/CzX,SAAU,UACR,iCAAkC,IAAKyX,GAAK,OAAQ,CACtDzX,SAAU,uCACR,8FACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,wFAAyFyX,GAAK,OAAQ,CAC/GzX,SAAU,aACR,eACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,wIAAyIyX,GAAK,OAAQ,CAC/JzX,SAAU,qBACR,aAGN2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU;GACR,IAAKyX,GAAKi4B,GAAQwB,UAAW,CAC/B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,UACR,wDAAyD,IAAK2Y,GAAM,OAAQ,CAC9E3Y,SAAU,CAAC,YAAa,IAAK,QAAS,OACpC,qIAAsIyX,GAAK,OAAQ,CACrJzX,SAAU,uCACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,aACR,qEAAsEyX,GAAK,OAAQ,CACrFzX,SAAU,UACR,IAAKyX,GAAK,KAAM,CAAA,GAAK,sBAAuB,IAAKkB,GAAM,OAAQ,CACjE3Y,SAAU,CAAC,YAAa,IAAK,QAAS,OACpC,IAAK,sBAAuB,IAAK2Y,GAAM,OAAQ,CACjD3Y,SAAU,CAAC,gBAAiB,IAAK,OAAQ,OACvC,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,UAAW,MAAO,iBAE7ByX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZ2Y,GAAM+2B,GAAQC,KAAM,CACtBC,YAAY,EACZ5vC,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,YACX1X,SAAUyX,GAAK+J,GAAO,CACpB,aAAc,mBACdD,SAAU,QACVld,MAAO,wBAEPoT,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAK+J,GAAO,CACpB,aAAc,qBACdD,SAAU,UACVld,MAAO,+BAIXoT,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,OACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,mCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,0CAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,kDACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO;AACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,4DAQ1B,EfxDEoO,MAAO,gBACN,CACDkN,MAAO,aACPq7B,MAAO,QACP1nC,UgBvJa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,aACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,qGAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,eACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,yDACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAU2Y,GAAMqD,GAAY,CAC1Bhc,SAAU,CAACyX,GAAK+J,GAAO,CACrBjb,KAAM,SACJkR,GAAKwE,GAAY,CACnBV,KAAMjC,GACNgC,MAAO,OACP/D,QAAS,qBAMjBoB,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,2BACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,wBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,mDAAoD,IAAKyX,GAAK,OAAQ,CAC/EzX,SAAU,eACR,OACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,KAAM,CACpBzX,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,YAEVyX,GAAK,KAAM,CACbzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAEVyX,GAAK,KAAM,CACbzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEVyX,GAAK,KAAM,CACbzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iDACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAU2Y,GAAMqD,GAAY,CAC1Bhc,SAAU,CAACyX,GAAKwE,GAAY,CAC1BV,KAAM1C,GACNyC,MAAO,WACP/D,QAAS,SACPoB,GAAMmQ,GAAQ,CAChBzkB,MAAO,IACPyjB,cAAe,QACfpH,SAAU,OACV1gB,SAAU,CAACyX,GAAKqR,GAAOC,OAAQ,CAC7B1kB,MAAO,IACPrE,SAAU,UACRyX,GAAKqR,GAAOC,OAAQ,CACtB1kB,MAAO,IACPrE,SAAU,WACRyX,GAAKqR,GAAOC,OAAQ,CACtB1kB,MAAO,IACPrE,SAAU,gBAEVyX,GAAKwE,GAAY,CACnBV,KAAMzC,GACNwC,MAAO,OACP/D,QAAS,mBAKfE,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,qBACPtb,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,6BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAK,MAAO,CACpBC,UAAW,UACX1X,SAAU2Y,GAAMqD,GAAY,CAC1Bhc,SAAU,CAACyX,GAAK+J,GAAO,CACrBjb,KAAM,SACJkR,GAAKwE,GAAY,CACnBV,KAAMjC,GACNgC,MAAO,OACPhD,KAAM,KACNf,QAAS,uBAOnBoB,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK;AACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,OACFyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kDAQ1B,EhBaEoO,MAAO,sBACN,CACDkN,MAAO,eACPq7B,MAAO,QACP1nC,UiB5Ja,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,eACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,iBACR,oKAAqK,IAAKyX,GAAK,OAAQ,CACzLzX,SAAU,uBACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU,WACR,YAAa,IAAKyX,GAAK,OAAQ,CACjCzX,SAAU,iBACR,SAAU,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACpCC,KAAM;AACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEV,OAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,iBACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3BC,YAAY,EACZt0B,MAAO,qBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKkK,GAAc,CAC3B3hB,SAAU,0BAKhByX,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,4BACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjC51B,MAAO,yBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,iBACR,gDAAiDyX,GAAK,OAAQ,CAChEzX,SAAU,WACR,oEAAqEyX,GAAK,OAAQ,CACpFzX,SAAU,iBACR,+CAAgDyX,GAAK,OAAQ,CAC/DzX,SAAU,aACR,cACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,4BAA6ByX,GAAK,OAAQ,CACnDzX,SAAU,iBACR,oDACFyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,sBACX1X,SAAU,CAACyX,GAAKkK,GAAc;AAC5B3hB,SAAU,iBACRyX,GAAKkK,GAAc,CACrBE,UAAU,EACV7hB,SAAU,iBACRyX,GAAKkK,GAAc,CACrB3hB,SAAU,8BACRyX,GAAKkK,GAAc,CACrBhO,UAAU,EACV3T,SAAU,mBACRyX,GAAKkK,GAAc,CACrB3hB,SAAU,0BAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,gFAAiFyX,GAAK,OAAQ,CACvGzX,SAAU,UACR,wBAAyB,IAAKyX,GAAK,OAAQ,CAC7CzX,SAAU,eACR,uCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kCAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,4BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKkK,GAAc,CAC3BC,QAAS,MACTtG,MAAO,iCACPtb,SAAU,wBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO;AACPziB,SAAU,CAAC,sEAAuEyX,GAAK,OAAQ,CAC7FzX,SAAU,iBACR,sEAAuEyX,GAAK,OAAQ,CACtFzX,SAAU,WACR,IAAKyX,GAAK,OAAQ,CACpBzX,SAAU,YACR,YACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKkK,GAAc,CAC3BC,QAAS,MACTtG,MAAO,iCACPuG,UAAU,EACV7hB,SAAU,wBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,iBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,iBACR,4BAA6B,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACvDC,KAAM,gBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEV,IAAK,+DACPyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,iFAQ1B,EjBNEoO,MAAO,wBACN,CACDkN,MAAO,aACPq7B,MAAO,QACP1nC,UkBjKa,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,cACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,mCAAoC,IAAKyX,GAAKlI,GAAM,CACtDC,KAAM,kDACNmF,OAAQ,SACR3U,SAAU,wBACR,OAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,eACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,mBACPs0B,YAAY,EACZlB,YAAa,gCAGf/1B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,2BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,kJACFyX,GAAK,IAAK;AACZzX,SAAU,wHACRyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,uBACPtb,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,sBACPs0B,YAAY,EACZlB,YAAa,2BAEb/1B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,iCACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,UAAWyX,GAAK,OAAQ,CACjCzX,SAAU,eACR,IAAKyX,GAAK,OAAQ,CACpBzX,SAAU,cACR,0IACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,yBACPs0B,YAAY,EACZlB,YAAa,+BAEb/1B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,wBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,iCAAkCyX,GAAK,OAAQ,CACxDzX,SAAU,eACR,8CACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPs0B,YAAY,EACZlB,YAAa,2BACXj3B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sBACPs0B,YAAY;AACZlB,YAAa,sCAGf/1B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,aACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,YAAayX,GAAK,OAAQ,CACnCzX,SAAU,eACR,oBAAqB,IAAKyX,GAAK,OAAQ,CACzCzX,SAAU,eACR,6BAA8B,IAAKyX,GAAK,OAAQ,CAClDzX,SAAU,oBACR,eACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,kBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,YAAayX,GAAK,OAAQ,CACnCzX,SAAU,oBACR,oBAAqB,IAAKyX,GAAK,OAAQ,CACzCzX,SAAU,eACR,6BAA8B,IAAKyX,GAAK,OAAQ,CAClDzX,SAAU,eACR,eACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,qBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oCAAqCyX,GAAK,OAAQ,CAC3DzX,SAAU,eACR,yBAA0ByX,GAAK,OAAQ,CACzCzX,SAAU,qBACR,kBACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,YACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,qEACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,IAAK,WAAY,IAAK,MAAO,IAAK,aAAc,SAE3DyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,IAAK,aAAc,cAIlC2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO;AACPziB,SAAU,CAAC,6EAA8EyX,GAAK,OAAQ,CACpGzX,SAAU,aACR,SAAUyX,GAAK,KAAM,CAAA,GAAK,mDAC5BA,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sBACPs0B,YAAY,EACZlB,YAAa,4BAEb/1B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,2BAA4ByX,GAAK,OAAQ,CAClDzX,SAAU,UACR,kEAAmEyX,GAAK,OAAQ,CAClFzX,SAAU,eACR,4CACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2BACPs0B,YAAY,EACZlB,YAAa,2BAEbj3B,GAAKi4B,GAAQwB,UAAW;AAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,oDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,iBAAkB,KAAM,kBAIvCyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,4CACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,0BAOxB,ElB9EEoO,MAAO,sBACN,CACDkN,MAAO,UACPq7B,MAAO,QACP1nC,UF7Fa,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,UACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,gBACR,0DAA2DyX,GAAK,OAAQ,CAC1EzX,SAAU,aACR,IAAK,cAEXA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,SACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,oDAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,WACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,eACPozB,YAAa,eACbkB,YAAY,SAGdj3B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,sBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,4BAA6ByX,GAAK,OAAQ,CAC5CzX,SAAU,YACR,IAAK,sDACP2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,KAAMyX,GAAKi4B,GAAQngC,KAAM,CAClCC,KAAM,oBACNxP,SAAU,YACR,IAAK,yFACP2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,gCACPtb,SAAU,CAACyX,GAAKi4B,GAAQC,KAAM,CAC5Br0B,MAAO,6BACPozB,YAAa,6BACbkB,YAAY,IACVn4B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,uBACPozB,YAAa,wBACbkB,YAAY,OAEZn4B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,2BACPtb,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,2BACPtb,SAAUyX,GAAKugC,GAAuB;AACpClC,MAAO,IAAIF,GAAa/vC,KAAI,EAC1BmZ,KACAzY,WACD,CACCyY,GAAI,IAAIA,IACRzY,KAAM,KAAKA,WACLqvC,GAAa/vC,KAAI,EACvBmZ,KACAzY,WACD,CACCyY,GAAI,IAAIA,IACRzY,KAAM,KAAKA,WACLqvC,GAAa/vC,KAAI,EACvBmZ,KACAzY,WACD,CACCyY,GAAI,IAAIA,IACRzY,KAAM,KAAKA,WACLqvC,GAAa/vC,KAAI,EACvBmZ,KACAzY,WACD,CACCyY,GAAI,IAAIA,IACRzY,KAAM,KAAKA,WACLqvC,GAAa/vC,KAAI,EACvBmZ,KACAzY,WACD,CACCyY,GAAI,IAAIA,IACRzY,KAAM,KAAKA,WACLqvC,GAAa/vC,KAAI,EACvBmZ,KACAzY,WACD,CACCyY,GAAI,IAAIA,IACRzY,KAAM,KAAKA,eAIfoS,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,kBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,mCAAoCyX,GAAK,OAAQ,CAC1DzX,SAAU,WACR,6CACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO3C,GAAMyE,EAAW,CACtBpd,SAAU,CAAC,MAAO,IAAK2Y,GAAM,OAAQ,CACnC3Y,SAAU,CAAC,IAAK,SAAU,QACxB,IAAK,aAAcyX,GAAK,OAAQ,CAClCzX,SAAU,gBAGd0uC,YAAa,eACbkB,YAAY,IACVn4B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPozB,YAAa,oBACbkB,YAAY,IACVn4B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sBACPozB,YAAa,yBACbkB,YAAY,OAEZj3B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,2BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,+DAAgEyX,GAAK,OAAQ,CAC/EzX,SAAU,4BACR,OACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,2CAA4CyX,GAAK,OAAQ,CAClEzX,SAAU,kBACR,+IACFyX,GAAK,IAAK,CACZzX,SAAU,wEACRyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,aACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,UACX1X,SAAUyX,GAAKu+B,GAAe,CAC5BC,UAAU,EACVjuB,cAAe,QACf8tB,MAAOF,GAAa/vC,KAAI,EACtBU,UACGuX,MACJ,IACIA,EACHvX,KAAM,GAAGA,6CAIbkR,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,UACX1X,SAAUyX,GAAKu+B,GAAe,CAC5BhuB,cAAe,cAGjBvQ,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,cACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,UACX1X,SAAUyX,GAAKwgC,GAAoB,CACjCjwB,cAAe,QACfstB,eAAgB,eAKtB38B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,uBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,6CACNxP,SAAU,8BACRyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,0CACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,0DACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iCAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,gBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,sDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,6BAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oBAAqB,IAAK,KAAMyX,GAAK,OAAQ;AACtDzX,SAAU,OACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,2CACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kBACPozB,YAAa,kBACbkB,YAAY,OAEZj3B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,eACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,0FACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,uBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,wBACPozB,YAAa,eACbkB,YAAY;GAEZj3B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,iDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,gBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,eACX1X,SAAUyX,GAAKu+B,GAAe,CAC5BhuB,cAAe,6BAInBrP,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,mBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,6CACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,eACX1X,SAAUyX,GAAKu+B,GAAe,CAC5Br1B,iBAAkB,yCAItBhI,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,mBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM;AAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,yDAA0D,IAAKyX,GAAKlI,GAAM,CACnFoF,OAAQ,SACRnF,KAAM,+DACNxP,SAAU,gBACR,OAAQ,IAAK,8FACfyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEV2Y,GAAM+2B,GAAQmB,SAAU,CAC1BpuB,MAAO,UACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,4BAA6ByX,GAAK,OAAQ,CAC5CzX,SAAU,cACR,qBAAsByX,GAAK,OAAQ,CACrCzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sBACPozB,YAAa,6BACbkB,YAAY,OAEZj3B,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,iBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,+CACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU;GAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,eACX1X,SAAUyX,GAAKu+B,GAAe,CAC5B/tB,eAAgB,yCAIpBtP,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,kBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,gGAAiG2Y,GAAM,KAAM,CACtHjB,UAAW,YACX1X,SAAU,CAAC2Y,GAAM,KAAM,CACrB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,iEACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,uFAGNyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,0BAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2BACPozB,YAAa,0BACbkB,YAAY,IACVn4B,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,uBACPozB,YAAa,sBACbkB,YAAY;GAEZn4B,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,kBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,4BAA6ByX,GAAK,OAAQ,CACnDzX,SAAU,YACR,IAAK,KAAMyX,GAAK,OAAQ,CAC1BzX,SAAU,aACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,MAAO,KAAM,SAAU,IAAK,kBAEvCyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,8BACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,gFAAiFyX,GAAK,OAAQ,CACvGzX,SAAU,aACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,aACR,QACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,yBAA0B,IAAK,uBAAwB,IAAK,KAAM,KAAM,IAAK,+BAI5FyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO;AACPziB,SAAU,mDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,2CACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mBACPtb,SAAUyX,GAAK,MAAO,CACpBC,UAAW,eACX1X,SAAUyX,GAAKu+B,GAAe,CAC5BF,MAAOF,GAAa/vC,KAAIgP,GAAoB,MAAZA,EAAKmK,GAAanK,EAAO,IACpDA,EACHlB,UAAU,cAKhB8D,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,gFAAiF,IAAK,0BAC/FyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAIdyX,GAAKi4B,GAAQwB,UAAW;AAC1B51B,MAAO,aACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,QACR,yBAA0B,IAAK,0BACjCyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,aAAc,IAAK,0BAA2B,IAAK,oBAE9DyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,qBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,uCAAwC,IAAK,KAAMyX,GAAK,OAAQ,CACzEzX,SAAU,UACR,IAAK,gBACPyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,2BAMlByX,GAAKi4B,GAAQvB,QAAS,CACxB7yB,MAAO,cACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,oBAAqByX,GAAK,OAAQ,CACpCzX,SAAU,WACR,yFAA0FyX,GAAK,OAAQ;AACzGzX,SAAU,UACR,iBAAkByX,GAAK,OAAQ,CACjCzX,SAAU,aACR,IAAK,yDAEXA,SAAU2Y,GAAM+2B,GAAQuB,UAAW,CACjCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,gBACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,oBACPozB,YAAa,sBACbkB,YAAY,aAMxB,EEtfExhC,MAAO,iBACN,CACDkN,MAAO,WACPq7B,MAAO,QACP1nC,UmB3Ka,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,WACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,aACR,6CAA8C,IAAKyX,GAAK,OAAQ,CAClEzX,SAAU,aACR,gBAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,aACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,iBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKuR,GAAU,CACvB,aAAc,mBACdyF,YAAa,4BAKnB9V,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,yBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQwB,UAAW,CAClC51B,MAAO,SACPtb,SAAU,CAAC2Y,GAAM,IAAK;AACpB3Y,SAAU,CAAC,gIAAiI,IAAKyX,GAAK,OAAQ,CAC5JzX,SAAU,aACR,8BAA+ByX,GAAK,OAAQ,CAC9CzX,SAAU,UACR,IAAK,iBAAkByX,GAAK,OAAQ,CACtCzX,SAAU,eACR,iBACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,YACX1X,SAAU,CAACyX,GAAK,QAAS,CACvBmJ,QAAS,sBACTlJ,UAAW,gBACX1X,SAAU,UACRyX,GAAKuR,GAAU,CACjBhK,GAAI,sBACJyP,YAAa,2BAIjB9V,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,qBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,aACR,yCAA0C,IAAKyX,GAAK,OAAQ,CAC9DzX,SAAU,aACR,iBACFyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKuR,GAAU,CACvB,aAAc,mBACdyF,YAAa,iBACb9a,UAAU,WAIdgF,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,oBACPtb,SAAU,CAAC2Y,GAAM,IAAK;AACpB3Y,SAAU,CAAC,sFAAuFyX,GAAK,OAAQ,CAC7GzX,SAAU,aACR,oCAAqCyX,GAAK,OAAQ,CACpDzX,SAAU,UACR,0BAA2B,IAAKyX,GAAK,OAAQ,CAC/CzX,SAAU,UACR,iCAAkC,IAAKyX,GAAK,OAAQ,CACtDzX,SAAU,0CACR,8FACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,4FAA6FyX,GAAK,OAAQ,CACnHzX,SAAU,aACR,eACF2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,wIAAyIyX,GAAK,OAAQ,CAC/JzX,SAAU,qBACR,aAGN2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,aACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM;AACNxP,SAAU,mCACR,IAAKyX,GAAKi4B,GAAQwB,UAAW,CAC/B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,UACR,wDAAyD,IAAK2Y,GAAM,OAAQ,CAC9E3Y,SAAU,CAAC,YAAa,IAAK,QAAS,OACpC,wIAAyIyX,GAAK,OAAQ,CACxJzX,SAAU,0CACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,aACR,qEAAsEyX,GAAK,OAAQ,CACrFzX,SAAU,aACR,IAAKyX,GAAK,KAAM,CAAA,GAAK,sBAAuB,IAAKkB,GAAM,OAAQ,CACjE3Y,SAAU,CAAC,YAAa,IAAK,QAAS,OACpC,IAAK,sBAAuB,IAAK2Y,GAAM,OAAQ,CACjD3Y,SAAU,CAAC,gBAAiB,IAAK,OAAQ,OACvC;GACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,UAAW,MAAO,iBAE7ByX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZ2Y,GAAM+2B,GAAQC,KAAM,CACtBC,YAAY,EACZ5vC,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,YACX1X,SAAUyX,GAAKuR,GAAU,CACvB,aAAc,sBACdzH,SAAU,QACVld,MAAO,wBAEPoT,GAAK,MAAO,CACdC,UAAW,YACX1X,SAAUyX,GAAKuR,GAAU,CACvB,aAAc,wBACdzH,SAAU,UACVld,MAAO,+BAIXoT,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,aACR,qDACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kEAQ1B,EnBXEoO,MAAO,mBACN,CACDkN,MAAO,OACPq7B,MAAO,SACP1nC,UoB9Ka,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,OACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU;GACR,2GAENA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,OACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,wEAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,sBACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,aACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKQ,GAAM,CACnBjY,SAAUyX,GAAKY,GAAa,CAC1BrY,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,kBAMdb,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,qBACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjC51B,MAAO,qBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,8DAA+D,IAAKyX,GAAK,OAAQ,CAC1FzX,SAAU,gBACR,iBACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,6BACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,sBACXk/B,IAAK,gCACLC,IAAK,gBACHp/B,GAAKY,GAAa,CACpBrY,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,mBAMdK,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO;AACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAK2Y,GAAM+2B,GAAQwB,UAAW,CAChC51B,MAAO,SACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,4DACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,cACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKQ,GAAM,CACnBC,QAAQ,EACRlY,SAAUyX,GAAKY,GAAa,CAC1BrY,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,gBAKZK,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,WAAYyX,GAAK,OAAQ,CAClCzX,SAAU,SACR,eACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,wBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,SACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKQ,GAAM,CACnBV,QAAS;AACTvX,SAAUyX,GAAKY,GAAa,CAC1BrY,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,eAAgB,WAAY,sDAI3CyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,OACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKQ,GAAM,CACnBV,QAAS,OACTvX,SAAUyX,GAAKY,GAAa,CAC1BrY,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,OAAQ,SAAU,0DAKnC2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,QACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,kBAAmB,SAAU,+BAAgC,IAAKyX,GAAK,OAAQ,CACxFzX,SAAU,YACR,iBAAkByX,GAAK,OAAQ,CACjCzX,SAAU,UACR,MAAO,IAAKyX,GAAK,OAAQ,CAC3BzX,SAAU,aACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,aACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKQ,GAAM,CACnBE,MAAO,OACPnY,SAAUyX,GAAKY,GAAa,CAC1BrY,SAAU,qEAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,aACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKQ,GAAM,CACnBE,MAAO;AACPnY,SAAU2Y,GAAMN,GAAa,CAC3BrY,SAAU,CAAC,oBAAqByX,GAAK,KAAM,CACzCzX,SAAU,SACR,WAGNyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKQ,GAAM,CACnB7P,QAAS,YACT+P,MAAO,SACPnY,SAAUyX,GAAKY,GAAa,CAC1BrY,SAAUyX,GAAK,IAAK,CAClBzX,SAAU,8BAKhByX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iDAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,cACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,4DAA6DyX,GAAK,OAAQ,CAC5EzX,SAAU,SACR,iBAENA,SAAU,CAACyX,GAAKi4B,GAAQuB,UAAW,CACjCjxC,SAAUyX,GAAKi4B,GAAQ0B,MAAO,CAC5BvE,cAAe,wBAEfl0B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM;AACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAK2Y,GAAM+2B,GAAQwB,UAAW,CAChC51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,sCACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,YACX1X,SAAU,CAACyX,GAAKQ,GAAM,CACpBjY,SAAU2Y,GAAMN,GAAa,CAC3BC,KAAM,KACNtY,SAAU,CAAC2Y,GAAM,MAAO,CACtB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,kBAAmB,IAAKyX,GAAK,SAAU,CACzCzX,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,QAAS,YAEpB,OACFyX,GAAKu6B,GAAY,CACnB15B,KAAM,YAGRb,GAAKQ,GAAM,CACbjY,SAAU2Y,GAAMN,GAAa,CAC3BC,KAAM,KACNtY,SAAU,CAAC2Y,GAAM,MAAO,CACtB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,kBAAmB,IAAKyX,GAAK,SAAU,CACzCzX,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,QAAS,YAEpB,OACFyX,GAAKu6B,GAAY,CACnB15B,KAAM,YAGRb,GAAKQ,GAAM,CACbjY,SAAU2Y,GAAMN,GAAa,CAC3BC,KAAM,KACNtY,SAAU,CAAC2Y,GAAM,MAAO,CACtB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,kBAAmB,IAAKyX,GAAK,SAAU,CACzCzX,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,QAAS,YAEpB,OACFyX,GAAKu6B,GAAY,CACnB15B,KAAM,oBAMdb,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iDAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,aACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,6DAA8DyX,GAAK,OAAQ,CAC7EzX,SAAU,SACR,OAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,gCACfv0B,KAAM,OACJb,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3BC,YAAY,EACZt0B,MAAO,mBACPtb,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BpB,MAAO,eACL7D,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,MAAO,CACrB3Y,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,SACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,eACR,mBAMZ2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO;AACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAK2Y,GAAM+2B,GAAQwB,UAAW,CAChC51B,MAAO,QACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,YAAayX,GAAK,OAAQ,CACnCzX,SAAU,cACR,iCAAkC,IAAKyX,GAAK,OAAQ,CACtDzX,SAAU,eACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,iBACPtb,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BpB,MAAO,aACPgB,QAAS,SACP7E,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,MAAO,CACrB3Y,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,SACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,eACR,cAIRyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,4BACPtb,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BJ,QAAS,OACTtc,SAAUyX,GAAK8E,GAAW,CACxBvc,SAAU,iBAEVyX,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,MAAO,CACrB3Y,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,SACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,eACR;GAKV2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,6FACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BpB,MAAO,0BACPgB,QAAS,IAAMu2B,MAAM,oBACnBp7B,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,MAAO,CACrB3Y,SAAU,CAAC,cAAeyX,GAAK,OAAQ,CACrCzX,SAAU,YACR,eAAgB,IAAKyX,GAAK,OAAQ,CACpCzX,SAAU,eACR,sCAIRyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,sBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,qBACX1X,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BJ,QAAS,IAAMu2B,MAAM,kBACrB7yC,SAAUyX,GAAK,KAAM,CACnBC,UAAW,2BACX1X,SAAU,2BAEVyX,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,MAAO,CACrB3Y,SAAU,CAAC,qGAAsG,IAAKyX,GAAK,OAAQ,CACjIzX,SAAU;GACR,8GAMZ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,YACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,iIACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,0CACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BpB,MAAO,oBACPgB,QAAS,IAAMu2B,MAAM,kBACrBl2B,WAAW,IACTlF,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,MAAO,CACrB3Y,SAAU,CAAC,KAAMyX,GAAK,OAAQ,CAC5BzX,SAAU,SACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,eACR,iBAKV2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,iCAAkCyX,GAAK,OAAQ,CACxDzX,SAAU,eACR,OACFyX,GAAKi4B,GAAQmB,SAAU;AACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,UACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BnF,QAAS,UACT+D,MAAO,kBACPgB,QAAS,SACP7E,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,QAAS,SAAU,IAAKyX,GAAK,OAAQ,CAC9CzX,SAAU,eACR,sBAAuB,IAAKyX,GAAK,OAAQ,CAC3CzX,SAAU,YACR,gCAIRyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,YACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BnF,QAAS,YACT+E,QAAS,OACThB,MAAO,sBACL7D,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,QAAS,SAAU,IAAKyX,GAAK,OAAQ,CAC9CzX,SAAU,eACR,sBAAuB,IAAKyX,GAAK,OAAQ,CAC3CzX,SAAU,cACR,yBAKVyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,iDAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,YACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,iCAAkC,IAAKyX,GAAK,OAAQ,CACtDzX,SAAU,eACR,OAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,2CACfv0B,KAAM,OACJb,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,+BACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAAC2Y,GAAM+D,GAAY,CAC3B1c,SAAU,CAACyX,GAAK8B,GAAU,CAAA,GAAK9B,GAAK8E,GAAW,CAC7Cvc,SAAU,kBAEVyX,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,MAAO,CACrB3Y,SAAU,CAAC,SAAUyX,GAAK,OAAQ,CAChCzX,SAAU,cACR,SAAUyX,GAAK,OAAQ,CACzBzX,SAAU,eACR,gDAAiD,IAAKyX,GAAK,OAAQ,CACrEzX,SAAU,eACR,iBAKV2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAK2Y,GAAM+2B,GAAQwB,UAAW,CAChC51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM;AAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,+CACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,uCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAAC2Y,GAAM+D,GAAY,CAC3B1c,SAAU,CAACyX,GAAK8B,GAAU,CAAA,GAAK9B,GAAK8E,GAAW,CAC7CC,QAAS,KACTxc,SAAU,kBAEVyX,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,oDAAqD,IAAKyX,GAAK,OAAQ,CAChFzX,SAAU,cACR,iBAKV2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,iCAAkCyX,GAAK,OAAQ,CACxDzX,SAAU,cACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,UACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1B1c,SAAUyX,GAAK8E,GAAW;AACxBhF,QAAS,UACTvX,SAAU,iBAEVyX,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,QAASyX,GAAK,OAAQ,CAC/BzX,SAAU,cACR,oBAAqB,IAAKyX,GAAK,OAAQ,CACzCzX,SAAU,cACR,sBAIRyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,YACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1B1c,SAAUyX,GAAK8E,GAAW,CACxBhF,QAAS,YACTvX,SAAU,iBAEVyX,GAAKY,GAAa,CACpBrY,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAAC,QAASyX,GAAK,OAAQ,CAC/BzX,SAAU,cACR,YAAayX,GAAK,OAAQ,CAC5BzX,SAAU,gBACR,yBAKVyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,cACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iDAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,cACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,gBACR,qCAAsC,IAAKyX,GAAK,OAAQ,CAC1DzX,SAAU,SACR,OAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO;AAC7BvE,cAAe,6CACfv0B,KAAM,OACJb,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,oBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAMV,GAAM,CACpBjY,SAAU,CAACyX,GAAKiF,GAAY,CAC1BpB,MAAO,+BACL3C,GAAMN,GAAa,CACrBrY,SAAU,CAACyX,GAAKu6B,GAAY,CAC1B15B,KAAM,OACJK,GAAMP,GAAa,CACrBpY,SAAU,CAACyX,GAAK0D,GAAQ,CACtBnb,SAAU,WACRyX,GAAK0D,GAAQ,CACf5D,QAAS,UACTvX,SAAU,0BAOpB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAKyX,GAAKi4B,GAAQwB,UAAW,CAC/B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,gBACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mDAQ1B,EpBxlBEoO,MAAO,gBACN,CACDkN,MAAO,QACPq7B,MAAO,SACP1nC,UqBnLa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,QACP8yB,MAAOz1B,GAAM,IAAK;AAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,6GAA8GyX,GAAK,OAAQ,CAC7HzX,SAAU,SACR,IAAK,qBAEXA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,UACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,cACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,iBACPtb,SAAU,uIAIdyX,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,sBACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjC51B,MAAO,oBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,QAASyX,GAAK,OAAQ,CAC/BzX,SAAU,UACR,qEAAsEyX,GAAK,OAAQ,CACrFzX,SAAU,eACR,iHACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,2CACPs0B,YAAY;AACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,oBACP2B,YAAY,EACZjd,SAAUyX,GAAKu6B,GAAY,CAAA,SAG7Br5B,GAAM,IAAK,CACb3Y,SAAU,CAAC,yCAA0CyX,GAAK,OAAQ,CAChEzX,SAAU,cACR,6CACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,4BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAU2Y,GAAMkE,GAAO,CACrBvB,MAAO,6BACPwB,QAASnE,GAAMyE,EAAW,CACxBpd,SAAU,CAACyX,GAAK0D,GAAQ,CACtBnb,SAAU,YACRyX,GAAK0D,GAAQ,CACfnb,SAAU,WACRyX,GAAK0D,GAAQ,CACf5D,QAAS,UACTvX,SAAU,cAGdA,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,kCACRyX,GAAK4W,GAAW,CAClBruB,SAAUyX,GAAKu6B,GAAY,CAAA,iBAMnCr5B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,6CACNxP,SAAU,8BACR,IAAKyX,GAAKi4B,GAAQwB,UAAW,CAC/B51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,gBACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ;AACrBzX,SAAU,aAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,WACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,sBACR,mDACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kCAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,qBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,cACPwB,QAASnE,GAAMyE,EAAW,CACxBpd,SAAU,CAACyX,GAAK0D,GAAQ,CACtBnb,SAAU,WACRyX,GAAK0D,GAAQ,CACf5D,QAAS,UACTvX,SAAU,aAGdA,SAAU,qIAGZ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,kBACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,+EACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU;AACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,6BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,+BACPyB,iBAAiB,EACjB/c,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,cAIVK,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,MAAOyX,GAAK,OAAQ,CAC7BzX,SAAU,kBACR,qCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,uBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,cACPC,KAAMhC,GACNvZ,SAAU,qIAGZ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,gFACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAGZyX,GAAKi4B,GAAQC,KAAM;AACrBr0B,MAAO,0BACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,cACPgB,QAAS,IAAMu2B,MAAM,kBACrB7yC,SAAU,qIAGZ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,wEACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,oBACP0B,YAAa,KACbhd,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,aAIVb,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,oBACP0B,YAAa,KACbhd,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,aAIVb,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,oBACP0B,YAAa;AACbhd,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,aAIVb,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,aACPtb,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,sBACP0B,YAAa,OACbhd,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,gBAKZK,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,aACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,6GAA8G,IAAKyX,GAAK,OAAQ,CACzIzX,SAAU,oBACR,yCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,YACX1X,SAAUyX,GAAKoF,GAAO,CACpBvB,MAAO,kBACPwB,QAASnE,GAAMyE,EAAW,CACxBpd,SAAU,CAACyX,GAAK0D,GAAQ,CACtBnb,SAAU,WACRyX,GAAK0D,GAAQ,CACf5D,QAAS,UACTvX,SAAU,aAGdid,YAAY,EACZjd,SAAUyX,GAAKu6B,GAAY,CACzB15B,KAAM,gBAKZb,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO;AACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,UACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kDAQ1B,ErBpJEoO,MAAO,iBACN,CACDkN,MAAO,UACPq7B,MAAO,SACP1nC,UsBxLa,WACb,MAAOipC,EAAaC,GAAkBxtC,IAAS,IACxCytC,EAAUC,GAAe1tC,IAAS,IAClC2tC,EAAWC,GAAgB5tC,IAAS,GACrC6tC,EAAuB,IAAML,GAAgBD,GAC7CO,EAAkB,IAAMF,GAAcD,GACtCI,EAAiB,IAAML,GAAaD,GAC1C,OAAO3gC,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,UACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,qHAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/B7yB,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,YACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAU2Y,GAAM+2B,GAAQC,KAAM,CAC5Br0B,MAAO,gBACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK0D,GAAQ,CACtBzL,QAAS8oC,EACTx4C,SAAU,iBACRyX,GAAKL,GAAS,CAChBE,KAAM4gC,EACNxoC,QAAS8oC,EACTx4C,SAAUyX,GAAKQ,GAAM,CACnBE,MAAO,OACPnY,SAAUyX,GAAKY,GAAa,CAC1BrY,SAAU,mCAMlB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO;AACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAK2Y,GAAM+2B,GAAQwB,UAAW,CAChC51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,qCAAsCyX,GAAK,OAAQ,CAC5DzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZ2Y,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,OACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK0D,GAAQ,CACtBzL,QAASgpC,EACT14C,SAAU,iBACRyX,GAAKL,GAAS,CAChBE,KAAM8gC,EACN1oC,QAASgpC,EACTnhC,QAAS,OACTvX,SAAUyX,GAAK6W,GAAS,CACtBhW,KAAM,KACNiW,MAAO,uBAGT5V,GAAM+2B,GAAQC,KAAM,CACtBr0B,MAAO,QACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK0D,GAAQ,CACtBzL,QAAS+oC,EACTz4C,SAAU,iBACRyX,GAAKL,GAAS,CAChBE,KAAMghC,EACN5oC,QAAS+oC,EACTlhC,QAAS,QACTvX,SAAUyX,GAAK6W,GAAS,CACtBhW,KAAM,eAIVb,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,OACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO;AACPziB,SAAU,sDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kDAQ1B,EtBsDEoO,MAAO,mBACN,CACDkN,MAAO,OACPq7B,MAAO,aACPvoC,MAAO,mBACPa,UuBhMa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,OACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,wFAAyFyX,GAAK,OAAQ,CACxGzX,SAAU,MACR,iBAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/B7yB,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,SACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,aACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKlI,GAAM;AACnBC,KAAM,0BACNxP,SAAU,+BAId2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAK2Y,GAAM+2B,GAAQwB,UAAW,CAChC51B,MAAO,YACPtb,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,MACX1X,SAAU2Y,GAAM+2B,GAAQ/gB,QAAS,CAC/B3uB,SAAU,CAACyX,GAAK,SAAU,CACxBzX,SAAU,SACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,cACR,8HAA+H,IAAKyX,GAAK,OAAQ,CACnJzX,SAAU,aACR,sEAEJ2Y,GAAM+2B,GAAQkB,KAAM,CACtB5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,mEAAoE,IAAKyX,GAAK,OAAQ,CAC/FzX,SAAU,WACR,oFAAqFyX,GAAK,OAAQ,CACpGzX,SAAU,cACR,IAAK,MAAOyX,GAAK,OAAQ;AAC3BzX,SAAU,aACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,gBACX1X,SAAU,CAACyX,GAAKlI,GAAM,CACpBC,KAAM,0BACN+gB,UAAW,OACXvwB,SAAU,8BACRyX,GAAKlI,GAAM,CACbC,KAAM,0BACN+gB,UAAW,QACXvwB,SAAU,+BACRyX,GAAKlI,GAAM,CACbC,KAAM,0BACN+gB,UAAW,SACXvwB,SAAU,wCAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,8CAA+C,IAAKyX,GAAK,OAAQ,CACnEzX,SAAU,sBACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yDAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAKi4B,GAAQZ,KAAM;AAC3BpoC,QAAS,oFACT4R,KAAM,iBAKZK,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,SACR,wCAAyC,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnEC,KAAM,0DACNxP,SAAU,yCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACP0D,GAAI,sBACJhf,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,QAASyX,GAAK,OAAQ,CAC/BzX,SAAU,YACR,mEAAoEyX,GAAK,OAAQ,CACnFzX,SAAU,WACR,gCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iDAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,gBACX1X,SAAU,CAACyX,GAAKlI,GAAM,CACpBC,KAAM,0BACN+H,QAAS;AACTvX,SAAU,6BACRyX,GAAKlI,GAAM,CACbC,KAAM,0BACN+H,QAAS,OACTvX,SAAU,kBACRyX,GAAKlI,GAAM,CACbC,KAAM,0BACN+H,QAAS,aACTvX,SAAU,wBACRyX,GAAKlI,GAAM,CACbC,KAAM,0BACN+H,QAAS,SACTvX,SAAU,4BAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,+BACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAKlI,GAAM,CACnBC,KAAM,0BACNiM,UAAU,EACVzb,SAAU,8BAOxB,GvBCG,CACDsb,MAAO,aACPq7B,MAAO,aACP1nC,UwBpMa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,aACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,4FAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW;AAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,eACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,mBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKgZ,GAAY,CACzBzwB,SAAU,iCAId2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,QACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,SACPziB,SAAU,CAACyX,GAAKi4B,GAAQyB,WAAY,CAClCxqB,OAAQ,eACN,OAAQ,IAAKlP,GAAK,OAAQ,CAC5BzX,SAAU,YACR,oBACF2Y,GAAM+2B,GAAQmB,SAAU,CAC1BpuB,MAAO,cACPziB,SAAU,CAAC,QAASyX,GAAK,OAAQ,CAC/BzX,SAAU,UACR,8DACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,sCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAId2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,SACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,WAAYyX,GAAK,OAAQ,CAClCzX,SAAU,eACR,iCAAkC,IAAKyX,GAAK,OAAQ,CACtDzX,SAAU,aACR,cACFyX,GAAKi4B,GAAQmB,SAAU;AACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,wBACX1X,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,UAAW,IAAKyX,GAAKgZ,GAAY,CAC1CF,UAAW,SACXvwB,SAAU,yBACR,IAAK,qBACP2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,UAAW,IAAKyX,GAAKgZ,GAAY,CAC1CF,UAAW,SACXG,QAAQ,EACR1wB,SAAU,yBACR,IAAK,6BAIb2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,YACPtb,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,MACX1X,SAAU2Y,GAAM+2B,GAAQ/gB,QAAS,CAC/B3uB,SAAU,CAACyX,GAAK,SAAU,CACxBzX,SAAU,SACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,cACR,8HAA+H,IAAKyX,GAAK,OAAQ,CACnJzX,SAAU,aACR,sEAEJ2Y,GAAM+2B,GAAQkB,KAAM,CACtB5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,0CAA2CyX,GAAK,OAAQ;AACjEzX,SAAU,eACR,yBAA0ByX,GAAK,OAAQ,CACzCzX,SAAU,WACR,mFAAoF,IAAKyX,GAAK,OAAQ,CACxGzX,SAAU,cACR,OAAQyX,GAAK,OAAQ,CACvBzX,SAAU,aACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,gBACX1X,SAAU,CAACyX,GAAKgZ,GAAY,CAC1BF,UAAW,OACXvwB,SAAU,8BACRyX,GAAKgZ,GAAY,CACnBF,UAAW,QACXvwB,SAAU,qBACRyX,GAAKgZ,GAAY,CACnBF,UAAW,SACXvwB,SAAU,sBACR2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,wBAAyB,IAAKyX,GAAKgZ,GAAY,CACxDF,UAAW,SACXG,QAAQ,EACR1wB,SAAU,sBACR,IAAK,4CAIbyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU;GACR,+CAAgDyX,GAAK,OAAQ,CAC/DzX,SAAU,sBACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iEAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,wCAAyC,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnEC,KAAM,0DACNxP,SAAU,yCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,UAAWyX,GAAK,OAAQ,CACjCzX,SAAU,WACR,gCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iDAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAGZ2Y,GAAM,MAAO,CACfjB,UAAW,wCACX1X,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,sBACX1X,SAAUyX,GAAK,SAAU,CACvBzX,SAAU;GAEVyX,GAAK,MAAO,CACdC,UAAW,qGACX1X,SAAU,WACRyX,GAAK,MAAO,CACdzX,SAAUyX,GAAK,SAAU,CACvBzX,SAAU,cAEVyX,GAAK,MAAO,CACdzX,SAAUyX,GAAK,SAAU,CACvBzX,SAAU,cAEVyX,GAAK,MAAO,CACdzX,SAAUyX,GAAK,SAAU,CACvBzX,SAAU,eAEVyX,GAAK,MAAO,CACdC,UAAW,yCACTD,GAAK,MAAO,CACdzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKgZ,GAAY,CACnBlZ,QAAS,QACTvX,SAAU,cACRyX,GAAKgZ,GAAY,CACnBlZ,QAAS,QACT8D,SAAS,EACTrb,SAAU,cACRyX,GAAKgZ,GAAY,CACnBlZ,QAAS,QACT5D,UAAU,EACV3T,SAAU,cACRyX,GAAK,MAAO,CACdzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEVyX,GAAKgZ,GAAY,CACnBlZ,QAAS,OACTvX,SAAU,cACRyX,GAAKgZ,GAAY,CACnBlZ,QAAS,OACT8D,SAAS,EACTrb,SAAU,cACRyX,GAAKgZ,GAAY,CACnBlZ,QAAS,OACT5D,UAAU,EACV3T,SAAU,cACRyX,GAAK,MAAO,CACdzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,mBAEVyX,GAAKgZ,GAAY,CACnBlZ,QAAS,aACTvX,SAAU,cACRyX,GAAKgZ,GAAY,CACnBlZ,QAAS,aACT8D,SAAS,EACTrb,SAAU,cACRyX,GAAKgZ,GAAY,CACnBlZ,QAAS,aACT5D,UAAU;AACV3T,SAAU,cACRyX,GAAK,MAAO,CACdzX,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAEVyX,GAAKgZ,GAAY,CACnBlZ,QAAS,SACTvX,SAAU,cACRyX,GAAKgZ,GAAY,CACnBlZ,QAAS,SACT8D,SAAS,EACTrb,SAAU,cACRyX,GAAKgZ,GAAY,CACnBlZ,QAAS,SACT5D,UAAU,EACV3T,SAAU,oBAGZ2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,+BACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZ5vC,SAAUyX,GAAKgZ,GAAY,CACzBhV,UAAU,EACVzb,SAAU,oCAOxB,ExB9GEoO,MAAO,0BACN,CACDkN,MAAO,aACPq7B,MAAO,aACP1nC,UyBxMa,WACb,MAAO6hB,EAAa6nB,GAAkBhuC,GAAS,GAC/C,OAAO8M,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,aACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,eACR,uFAENA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO;AAC7BC,WAAY,eACV55B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,cACPs0B,YAAY,EACZ5vC,SAAUyX,GAAKoZ,GAAY,CACzBC,YAAaA,EACbE,WAAY,GACZD,aAAcU,GAAQknB,EAAelnB,YAIzC9Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,cACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,sDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,eACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,wFACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAU2Y,GAAM,OAAQ,CACtB3Y,SAAU,CAAC,qBAAsB,KAAM,kBAI3CyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,aACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,yCACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,yBAQ1B;AzBoIEoO,MAAO,0BACN,CACDkN,MAAO,gBACPq7B,MAAO,aACP1nC,U0B9Ma,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,gBACP8yB,MAAOz1B,GAAMyE,EAAW,CACtBpd,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,kBACR,iSACFyX,GAAK,IAAK,CACZzX,SAAU,kMAGdA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,kBACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAU2Y,GAAM+2B,GAAQC,KAAM,CAC5Br0B,MAAO,uBACPs0B,YAAY,EACZ5vC,SAAU,CAACyX,GAAK0a,GAAe,CAC7Bzb,UAAW,KACX1W,SAAU,MACRyX,GAAK0a,GAAe,CACtBzb,UAAW,OACX1W,SAAU,MACRyX,GAAK0a,GAAe,CACtBzb,UAAW,OACX1W,SAAU;WAIdyX,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,8BACPtb,SAAU2Y,GAAM+2B,GAAQwB,UAAW,CACjC51B,MAAO,4BACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,+BAAgCyX,GAAK,OAAQ,CACtDzX,SAAU,mBACR,kEAAmE,IAAK,eAAgB,OAC1FyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,mCACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK,MAAO,CACpBC,UAAW,+BACX1X,SAAU2Y,GAAM,KAAM,CACpBjB,UAAW,sCACX1X,SAAU,CAACyX,GAAK,KAAM,CACpBC,UAAW,kDACXnU,MAAO,CACL2gB,IAAK,QAEPlkB,SAAUyX,GAAK0a,GAAe,CAC5Bzb,UAAW,KACX1W,SAAU,QAEVyX,GAAK,KAAM,CACbC,UAAW,iDACXnU,MAAO,CACL2gB,IAAK,QAEPlkB,SAAUyX,GAAK0a,GAAe,CAC5Bzb,UAAW,OACX1W,SAAU,SAEVyX,GAAK,KAAM,CACbC,UAAW,iDACXnU,MAAO,CACL2gB,IAAK,SAEPlkB,SAAUyX,GAAK0a,GAAe,CAC5Bzb,UAAW,OACX1W,SAAU,QAEVyX,GAAK,KAAM,CACbC,UAAW,uCACXnU,MAAO,CACL2gB,IAAK,SAEPlkB,SAAUyX,GAAK0a,GAAe;AAC5Bzb,UAAW,OACX1W,SAAU,oBAOpB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,IAAK2Y,GAAM+2B,GAAQwB,UAAW,CAChC51B,MAAO,YACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,4FACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gCAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,oBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK0a,GAAe,CAC5BnyB,SAAU,SAEV2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,SACR,6GACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK0a,GAAe,CAC5Bzb,UAAW,OACX1W,SAAU,QAEV2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU;GACR,2FACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,gBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK0a,GAAe,CAC5Bzb,UAAW,KACX1W,SAAU,QAEV2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,SACR,2FACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kBACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK0a,GAAe,CAC5Bzb,UAAW,OACX1W,SAAU,WAGZyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,iBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,kBACR,aAAc,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACxCC,KAAM,gBACNxP,SAAU,WACR,mEACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,sEAQ1B,E1BsCEoO,MAAO,6BACN,CACDkN,MAAO,OACPq7B,MAAO,aACP1nC,U2BjNa;AACb,MAAO2pC,EAAWC,GAAgBluC,GAAS,kBACpCmuC,EAAcC,GAAmBpuC,GAAS,gBAC1CquC,EAAeC,GAAoBtuC,GAAS,gBAC5CuuC,EAAeC,GAAoBxuC,GAAS,gBAC5CyuC,EAAeC,GAAoB1uC,GAAS,iBACnD,OAAOgO,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,OACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,QACR,QAASyX,GAAK,OAAQ,CACxBzX,SAAU,YACR,mEAENA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,MACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,QACR,2DAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,QACbp1B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,0BACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrB+C,KAAM,UACNhE,UAAW,eACX1X,SAAU,CAAC2Y,GAAM0Z,GAAK,CACpBryB,SAAU,CAAC,cAAeyX,GAAK,OAAQ,CACrCC,UAAW,+CACX1X,SAAU,QAEV2Y,GAAM0Z,GAAK,CACbxQ,UAAU,EACV7hB,SAAU,CAAC,aAAcyX,GAAK,OAAQ,CACpCC,UAAW,+CACX1X,SAAU,OAEV2Y,GAAM0Z,GAAK,CACbryB,SAAU,CAAC,UAAWyX,GAAK,OAAQ;AACjCC,UAAW,+CACX1X,SAAU,iBAMlB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,oBACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,gBACPtb,SAAU2Y,GAAM,KAAM,CACpB3Y,SAAU,CAAC2Y,GAAM,KAAM,CACrB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,QACR,KAAMyX,GAAK,KAAM,CACnBzX,SAAU,SACR,0CAA2C2Y,GAAM,OAAQ,CAC3D3Y,SAAU,CAAC,QAAS,eAClB,eAAgB,IAAKyX,GAAK,OAAQ,CACpCzX,SAAU,YACR,kBACF2Y,GAAM,KAAM,CACd3Y,SAAU,CAAC,OAAQyX,GAAK,KAAM,CAC5BzX,SAAU,WACR,cAAe,IAAKyX,GAAK,IAAK,CAChCjI,KAAM,2FACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,oBAEV,IAAK,qBAAsByX,GAAK,OAAQ,CAC1CzX,SAAU,QACR,6DAGN2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,0CACPtb,SAAU,CAACyX,GAAK,IAAK;AACnBzX,SAAU,gNACR2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC2Y,GAAM,SAAU,CACzB3Y,SAAU,CAAC,WAAYyX,GAAK,OAAQ,CAClCzX,SAAU,gBACR,+CACF,+EACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,kDACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM4Z,GAAS,CACvBnqB,QAAS,UACTpI,SAAU,CAAC2Y,GAAM0Z,GAAK,CACpBxQ,SAA2B,gBAAjBi3B,EACVppC,QAAS,IAAMqpC,EAAgB,eAC/B/4C,SAAU,CAAC,cAAeyX,GAAK,OAAQ,CACrCC,UAAW,+CACX1X,SAAU,QAEV2Y,GAAM0Z,GAAK,CACbxQ,SAA2B,cAAjBi3B,EACVppC,QAAS,IAAMqpC,EAAgB,aAC/B/4C,SAAU,CAAC,aAAcyX,GAAK,OAAQ,CACpCC,UAAW,+CACX1X,SAAU,QAEV2Y,GAAM0Z,GAAK,CACbxQ,SAA2B,YAAjBi3B,EACVppC,QAAS,IAAMqpC,EAAgB,WAC/B/4C,SAAU,CAAC,UAAWyX,GAAK,OAAQ;AACjCC,UAAW,+CACX1X,SAAU,YAId2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,kDAAmD,IAAKyX,GAAK,OAAQ,CAC9EzX,SAAU,gBACR,+HACFyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,oCACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM4Z,GAAS,CACvBnqB,QAAS,UACTpI,SAAU,CAACyX,GAAK4a,GAAK,CACnBxQ,SAA4B,gBAAlBm3B,EACVtpC,QAAS,IAAMupC,EAAiB,eAChC3mB,YAAa,cACbtyB,SAAU,gBACRyX,GAAK4a,GAAK,CACZxQ,SAA4B,cAAlBm3B,EACVtpC,QAAS,IAAMupC,EAAiB,aAChC3mB,YAAa,aACbtyB,SAAU,eACRyX,GAAK4a,GAAK,CACZxQ,SAA4B,YAAlBm3B,EACVtpC,QAAS,IAAMupC,EAAiB,WAChC3mB,YAAa,UACbtyB,SAAU,iBAGZ2Y,GAAM,IAAK,CACb3Y,SAAU,CAAC,4CAA6CyX,GAAK,OAAQ,CACnEzX,SAAU,gBACR,IAAK,8BAA+B,iCAAkC,IAAK,YAC7EyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,+CACPs0B,YAAY;AACZ5vC,SAAU2Y,GAAM4Z,GAAS,CACvBnqB,QAAS,UACTpI,SAAU,CAAC2Y,GAAM0Z,GAAK,CACpBxQ,SAA4B,gBAAlBq3B,EACVxpC,QAAS,IAAMypC,EAAiB,eAChC7mB,YAAa,gBACbtyB,SAAU,CAAC,cAAeyX,GAAK,OAAQ,CACrCC,UAAW,+CACX1X,SAAU,QAEV2Y,GAAM0Z,GAAK,CACbxQ,SAA4B,cAAlBq3B,EACVxpC,QAAS,IAAMypC,EAAiB,aAChC7mB,YAAa,eACbtyB,SAAU,CAAC,aAAcyX,GAAK,OAAQ,CACpCC,UAAW,+CACX1X,SAAU,QAEV2Y,GAAM0Z,GAAK,CACbxQ,SAA4B,YAAlBq3B,EACVxpC,QAAS,IAAMypC,EAAiB,WAChC7mB,YAAa,YACbtyB,SAAU,CAAC,UAAWyX,GAAK,OAAQ,CACjCC,UAAW,+CACX1X,SAAU,kBAMlB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,QACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,OACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO;AACPziB,SAAU,2FACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,uBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrB+C,KAAM,UACN1b,SAAU,CAACyX,GAAK4a,GAAK,CACnB9W,KAAMnB,GACNpa,SAAU,YACRyX,GAAK4a,GAAK,CACZjqB,QAAS,UACTmT,KAAMnB,GACNpa,SAAU,YACRyX,GAAK4a,GAAK,CACZjqB,QAAS,UACTmT,KAAMnB,GACNpa,SAAU,oBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oBAAqByX,GAAK,OAAQ,CAC3CzX,SAAU,QACR,iCAAkC,IAAKyX,GAAK,OAAQ,CACtDzX,SAAU,aACR,0DACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,cACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO;AACPziB,SAAU,gHACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,iBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,QACR,YAAa,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACvCC,KAAM,gBACNxP,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,aAEV,IAAK,0FACPyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iEAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,cACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,QACR,wCAAyC,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnEC,KAAM,0DACNxP,SAAU,yCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO;AACPziB,SAAU,CAAC,UAAWyX,GAAK,OAAQ,CACjCzX,SAAU,WACR,+DAAgEyX,GAAK,OAAQ,CAC/EzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gCAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,gBAGZyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,iBACPs0B,YAAY,EACZ5vC,SAAU2Y,GAAM,MAAO,CACrB+C,KAAM,UACNhE,UAAW,OACX1X,SAAU,CAACyX,GAAK4a,GAAK,CACnB9a,QAAS,MACTvX,SAAU,UACRyX,GAAK4a,GAAK,CACZxQ,UAAU,EACVtK,QAAS,MACTvX,SAAU,WACRyX,GAAK4a,GAAK,CACZ9a,QAAS,MACTvX,SAAU,mBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,OACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oDAAqD,IAAKyX,GAAK,OAAQ,CAChFzX,SAAU,aACR,0CAA2C,IAAKyX,GAAK,OAAQ,CAC/DzX,SAAU,YACR,OACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,sBAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU;GAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,+BACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,uBAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,UACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,iDAAkD,IAAKyX,GAAK,OAAQ,CACtEzX,SAAU,mBACR,qDAAsD,IAAKyX,GAAK,IAAK,CACvEjI,KAAM,qDACNxP,SAAU,iCACR,OAENA,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,YACbl0B,GAAM+2B,GAAQwB,UAAW,CAC3BlxC,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAAC,oDAAqD,IAAKyX,GAAK,OAAQ,CAChFzX,SAAU,YACR,KAAMyX,GAAK,OAAQ,CACrBzX,SAAU,QACR,oHAAqHyX,GAAK,MAAO;AACnIzX,SAAU,QACR,wHACFyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,2BACPtb,SAAU2Y,GAAM,MAAO,CACrB3Y,SAAU,CAAC2Y,GAAM4Z,GAAS,CACxBnqB,QAAS,yBACTpI,SAAU,CAACyX,GAAK4a,GAAK,CACnB,gBAAiB,gBACjBC,YAAa,UACbzQ,SAAwB,YAAd+2B,EACVlpC,QAAS,IAAMmpC,EAAa,WAC5B74C,SAAU,YACRyX,GAAK4a,GAAK,CACZ,gBAAiB,sBACjBC,YAAa,gBACbzQ,SAAwB,kBAAd+2B,EACVlpC,QAAS,IAAMmpC,EAAa,iBAC5B74C,SAAU,kBACRyX,GAAK4a,GAAK,CACZ,gBAAiB,gBACjBC,YAAa,UACbzQ,SAAwB,YAAd+2B,EACVlpC,QAAS,IAAMmpC,EAAa,WAC5B74C,SAAU,eAEVyX,GAAKQ,GAAM,CACb7P,QAASuP,GAAW,CAClB6O,OAAsB,YAAdoyB,GACP,qDACH55B,GAAI,gBACJtD,KAAM,WACNrH,SAAU,EACVkD,QAAS,OACTvX,SAAU,YACRyX,GAAKQ,GAAM,CACb7P,QAASuP,GAAW,CAClB6O,OAAsB,kBAAdoyB,GACP,qDACH55B,GAAI,sBACJtD,KAAM;AACNrH,SAAU,EACVkD,QAAS,OACTvX,SAAU,kBACRyX,GAAKQ,GAAM,CACb7P,QAASuP,GAAW,CAClB6O,OAAsB,YAAdoyB,GACP,qDACH55B,GAAI,gBACJtD,KAAM,WACNrH,SAAU,EACVkD,QAAS,OACTvX,SAAU,uBAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,gBACPtb,SAAU,CAAC2Y,GAAM,IAAK,CACpB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,wBAAyB,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACnDC,KAAM,kDACNxP,SAAU,mCACR,OACF2Y,GAAM+2B,GAAQwB,UAAW,CAC3B51B,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,kIACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,eAGZyX,GAAKi4B,GAAQC,KAAM,CACrBC,YAAY,EACZt0B,MAAO,mBACPtb,SAAU2Y,GAAM4Z,GAAS,CACvBnqB,QAAS,UACTyK,UAAU,EACV7S,SAAU,CAACyX,GAAK4a,GAAK,CACnB9W,KAAMnB,GACN1K,QAAS,IAAM2pC,EAAiB;AAChCx3B,SAA4B,YAAlBu3B,EACV9mB,YAAa,UACbtyB,SAAU,YACRyX,GAAK4a,GAAK,CACZ9W,KAAM9B,GACN/J,QAAS,IAAM2pC,EAAiB,iBAChCx3B,SAA4B,kBAAlBu3B,EACV9mB,YAAa,gBACbtyB,SAAU,kBACRyX,GAAK4a,GAAK,CACZ9W,KAAMf,GACN9K,QAAS,IAAM2pC,EAAiB,WAChCx3B,SAA4B,YAAlBu3B,EACV9mB,YAAa,UACbtyB,SAAU,oBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,oBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,YACR,+BACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iEAQ1B,E3BtTEoO,MAAO,mBACN,CACDkN,MAAO,SACPq7B,MAAO,aACP1nC,UDxLa,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,SACP8yB,MAAO32B,GAAK2F,EAAW,CACrBpd,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,uFAGRA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BvE,cAAe,WACbp1B,GAAKi4B,GAAQwB,UAAW;AAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3Br0B,MAAO,eACPs0B,YAAY,EACZ5vC,SAAUyX,GAAK0+B,GAAS,CACtBz/B,UAAW,MACX1W,SAAUyX,GAAKQ,GAAM,CACnBjY,SAAUyX,GAAKY,GAAa,CAC1BrY,SAAU,iDAMlByX,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,gBACPtb,SAAU2Y,GAAM,IAAK,CACnB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,WACR,WAAY,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACtCC,KAAM,8CACNxP,SAAU,+BACR,aAKd,ECgJEoO,MAAO,uBACN,CACDkN,MAAO,eACPq7B,MAAO,QACP1nC,U4B9Na,WACb,OAAOwI,GAAKi4B,GAAQsB,KAAM,CACxB11B,MAAO,eACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAACyX,GAAK,OAAQ,CACtBzX,SAAU,iBACR,2CAA4C,IAAKyX,GAAK,OAAQ,CAChEzX,SAAU,kBACR,gBAAiB,IAAK,uEAE5BA,SAAU2Y,GAAM+2B,GAAQvB,QAAS,CAC/BnuC,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClCjxC,SAAU,CAACyX,GAAKi4B,GAAQ0B,MAAO,CAC7BC,WAAY,iBACV55B,GAAKi4B,GAAQwB,UAAW,CAC1BlxC,SAAUyX,GAAKi4B,GAAQC,KAAM,CAC3BC,YAAY,EACZt0B,MAAO,qBACPozB,YAAa,8BAGf/1B,GAAM+2B,GAAQuB,UAAW;AAC3B31B,MAAO,iBACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,YACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,iEAAkE,IAAK,IAAK,OAAQ,IAAK,OAClGyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,8CAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,2FACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,8BAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,gCAAiC,IAAK,iBAC/C2Y,GAAM+2B,GAAQmB,SAAU,CAC1BpuB,MAAO,OACPziB,SAAU,CAAC,MAAO,IAAKyX,GAAKi4B,GAAQngC,KAAM,CACxCC,KAAM,gBACNxP,SAAU,iBACR,IAAK,gCAIbyX,GAAKi4B,GAAQuB,UAAW,CAC1B31B,MAAO,eACP0D,GAAI,eACJhf,SAAU2Y,GAAM+2B,GAAQwB,UAAW;AACjC51B,MAAO,UACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQkB,KAAM,CAC7B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,0IACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,cAGZyX,GAAKi4B,GAAQZ,KAAM,CACrBpoC,QAAS,sEAMrB,E5BoIE0H,MAAO,yBACN,CACDkN,MAAO,OACPq7B,MAAO,YACP1nC,U6BnOa,WACb,OAAO0J,GAAM+2B,GAAQsB,KAAM,CACzB11B,MAAO,OACP8yB,MAAOz1B,GAAM,IAAK,CAChB3Y,SAAU,CAAC,OAAQyX,GAAK,OAAQ,CAC9BzX,SAAU,SACR,0KAENA,SAAU,CAAC2Y,GAAM+2B,GAAQvB,QAAS,CAChC7yB,MAAO,MACPtb,SAAU,CAACyX,GAAKi4B,GAAQuB,UAAW,CACjCjxC,SAAUyX,GAAKi4B,GAAQ0B,MAAO,CAC5BC,WAAY,WAEZ14B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,aACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO;AACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,iDACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kBAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,OACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAAC2Y,GAAM+2B,GAAQmB,SAAU,CACjCpuB,MAAO,cACPziB,SAAU,CAAC,oJAAqJyX,GAAK,OAAQ,CAC3KzX,SAAU,gBACR,wCACFyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,iDAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,UACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,yCACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,6BAKhB2Y,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,cACPtb,SAAU,CAACyX,GAAKi4B,GAAQwB,UAAW,CACjC51B,MAAO,WACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO;AACPziB,SAAU,2DACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,2CAIdyX,GAAKi4B,GAAQwB,UAAW,CAC1B51B,MAAO,gBACPtb,SAAU2Y,GAAM+2B,GAAQkB,KAAM,CAC5B5wC,SAAU,CAACyX,GAAKi4B,GAAQmB,SAAU,CAChCpuB,MAAO,cACPziB,SAAU,kHACRyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,OACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,kEAEVyX,GAAKi4B,GAAQmB,SAAU,CACzBpuB,MAAO,UACPziB,SAAUyX,GAAK,OAAQ,CACrBzX,SAAU,2BAMlB2Y,GAAM+2B,GAAQvB,QAAS,CACzB7yB,MAAO,WACPtb,SAAU,CAAC2Y,GAAM+2B,GAAQuB,UAAW,CAClC31B,MAAO,cACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU,sFACRyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,uBACPozB,YAAa,aACbkB,YAAY,OAEZj3B,GAAM+2B,GAAQuB,UAAW,CAC3B31B,MAAO,iBACPtb,SAAU,CAACyX,GAAK,IAAK,CACnBzX,SAAU;GACRyX,GAAKi4B,GAAQC,KAAM,CACrBr0B,MAAO,6BACPozB,YAAa,sBACbkB,YAAY,YAKtB,E7BgHExhC,MAAO,oBAMF,SAASkrC,GAAU3C,GACxB,OAAIA,EACKD,GAAOttC,QAAOgF,GAASA,EAAMuoC,QAAUA,IAEzCD,EACT,C8BtOA,SAAS6C,IAAUv5C,SACjBA,IAEA,OAAOyX,GAAK,KAAM,CAChBC,UAAW,wEACX1X,SAAUA,GAEd,CAKA,SAASw5C,IAAWl+B,MAClBA,EAAKtb,SACLA,IAEA,OAAO2Y,GAAM,MAAO,CAClBjB,UAAW,YACX1X,SAAU,CAACyX,GAAK,KAAM,CACpBC,UAAW,4CACX1X,SAAUsb,IACRtb,IAER,CAKA,SAASy5C,IAAQz5C,SACfA,IAEA,OAAOyX,GAAK,KAAM,CAChBC,UAAW,6CACX1X,SAAUA,GAEd,CAKA,SAAS05C,IAAQtrC,MACfA,IAEA,IAAIurC,EAAcC,EAClB,MAAOC,GAAYprC,GAA0C,QAAhCkrC,EAAevrC,EAAMA,aAAoC,IAAjBurC,EAA0BA,EAAe,IAC9G,OAAOhhC,GAAM,KAAM,CACjBjB,UAAW,YACX1X,SAAU,CAACoO,EAAMA,OAASqJ,GAAKq5B,GAAW,CACxCthC,KAAwC,QAAjCoqC,EAAgBxrC,EAAMA,aAAqC,IAAlBwrC,EAA2BA,EAAgB,GAC3FhqC,SAAS,EACT5P,SAAUyX,GAAKlI,GAAM,CACnBnH,QAASuP,GAAW,6DAA8D,CAChF,wCAAyCkiC,EACzC,sBAAuBA,IAEzB75C,SAAUoO,EAAMkN,WAEflN,EAAMA,OAASqJ,GAAK,MAAO;AAC9BC,UAAW,sCACX1X,SAAUoO,EAAMkN,UAGtB,CAOe,SAASw+B,IAAcC,QACpCA,EAAU,GAAEC,YACZA,EAAc,GAAEC,iBAChBA,EAAmB,eAEnB,MAAMvD,EAAS4C,MACRluC,GAAY8C,KACnBpD,IAOA,KACE,MAAMovC,EAAOlxC,OAAOiC,SAASivC,KAAKz2C,QAAQ,KAAM,IAChD,GAAIy2C,EAAM,CACR,MAAMC,EAAcp0C,SAASq0C,eAAeF,GACxCC,GACFA,EAAY9sB,gBAEhB,MACErkB,OAAOqxC,SAAS,EAAG,EACrB,GACC,CAACjvC,IAGJN,IAAU,KACR,IAAIwvC,EACJ,MAAMC,EAAc7D,EAAO32B,MAAK,EAC9B3R,WACIA,IAAUhD,IAChBrF,SAASuV,MAAQ,GAA0G,QAAtGg/B,EAAqBC,aAAiD,EAASA,EAAYj/B,aAA0C,IAAvBg/B,EAAgCA,EAAqB,gDAAgD,GACvO,CAAClvC,EAAUsrC,IAGd,MAAM8D,EAAeR,EAAYn0C,KAAIuI,IAC5B,IACFA,EACHuoC,MAAO,aAIL8D,EAAahjC,GAAK2F,EAAW,CACjCpd,SAFgB02C,EAAOlmC,OAAOgqC,GAEVpxC,QAAOgF,KAAWA,EAAMA,QAAOvI,KAAI60C,IACrD,IAAIC,EACJ,OAAOljC,GAAKtI,GAAO,CACjBhD,KAAMuuC,EAAOtsC,MACbpO,SAAqD,QAA1C26C,EAAoBD,EAAOzrC,iBAA6C,IAAtB0rC,EAA+BA,EAAoBD,EAAOp/B,OACtHo/B,EAAOp/B,MAAM,MAGds/B,EAAkBtB,GAAU,aAC5BuB,EAAavB,GAAU,SACvBwB,EAAgBxB,GAAU,aAC1ByB,EAAYryC,OAAOuE,KAAKspC,IAC9B,OAAO9+B,GAAK/I,GAAQ,CAClBlN,KAAMu4C,EACN/5C,SAAUyX,GAAK,MAAO,CACpBC,UAAW,sBACX1X,SAAUyX,GAAK,MAAO,CACpBC,UAAW,yBACX1X,SAAU2Y,GAAM,MAAO,CACrBjB,UAAW,iCACX1X,SAAU,CAACyX,GAAK,MAAO;AACrBC,UAAW,wEACX1X,SAAU2Y,GAAMsV,GAAiB,CAC/B5E,YAAY,EACZrpB,SAAU,CAACyX,GAAK,MAAO,CACrBC,UAAW,yBACX1X,SAAUyX,GAAK,KAAM,CACnBC,UAAW,2BACX1X,SAAU2Y,GAAMpJ,GAAM,CACpBC,KAAMuqC,EAAU,IAChB3xC,QAAS,2CACTpI,SAAU,CAACyX,GAAKoC,GAAU,CACxBnC,UAAW,uBACT,2BAGND,GAAKK,GAAQ,CACf9X,SAAUyX,GAAK2W,GAAe,CAC5BhmB,QAAS,kBACTpI,SAAU2Y,GAAM,MAAO,CACrBqG,GAAI,MACJtH,UAAW,uBACX1X,SAAU,CAACyX,GAAK8hC,GAAW,CACzBv5C,SAAU,gBACRyX,GAAKgiC,GAAS,CAChBz5C,SAAUs5C,GAAU,eAAezzC,KAAIuI,GAASqJ,GAAKiiC,GAAS,CAC5DtrC,MAAOA,GACNA,EAAMkN,WACP7D,GAAK8hC,GAAW,CAClBv5C,SAAU,eACR+6C,EAAUl1C,KAAI8wC,GACTl/B,GAAK+hC,GAAY,CACtBl+B,MAAOi7B,GAAgBI,GACvB32C,SAAUyX,GAAKgiC,GAAS,CACtBz5C,SAAUs5C,GAAU3C,GAAO9wC,KAAIuI,GAASqJ,GAAKiiC,GAAS,CACpDtrC,MAAOA,GACNA,EAAMkN,YAEVq7B,KACDl/B,GAAK8hC,GAAW,CAClBv5C,SAAU,UACRyX,GAAKgiC,GAAS,CAChBz5C,SAAU66C,EAAWh1C,KAAIuI,GAASqJ,GAAKiiC,GAAS,CAC9CtrC,MAAOA,GACNA,EAAMkN,WACP7D,GAAK8hC,GAAW,CAClBv5C,SAAU,cACRyX,GAAKgiC,GAAS,CAChBz5C,SAAU86C,EAAcj1C,KAAIuI,GAASqJ,GAAKiiC,GAAS,CACjDtrC,MAAOA,GACNA,EAAMkN,WACPs/B,EAAgB76C,OAAS,GAAK4Y,GAAMyE,EAAW,CACjDpd,SAAU,CAACyX,GAAK8hC,GAAW,CACzBv5C,SAAU,eACRyX,GAAKgiC,GAAS,CAChBz5C,SAAU46C,EAAgB/0C,KAAIuI,GAASqJ,GAAKiiC,GAAS,CACnDtrC,MAAOA,GACNA,EAAMkN;GAET0+B,EAAYj6C,OAAS,GAAK4Y,GAAMyE,EAAW,CAC7Cpd,SAAU,CAACyX,GAAK8hC,GAAW,CACzBv5C,SAAUi6C,IACRxiC,GAAKgiC,GAAS,CAChBz5C,SAAUw6C,EAAa30C,KAAIuI,GAASqJ,GAAKiiC,GAAS,CAChDtrC,MAAOA,GACNA,EAAMkN,0BAOnB7D,GAAK,MAAO,CACdC,UAAW,2CACX1X,SAAU2Y,GAAMjI,GAAQ,CACtB1Q,SAAU,CAACy6C,EAAYhjC,GAAKtI,GAAO,CACjCnP,SAAUyX,GAAKi4B,GAAQsB,KAAM,CAC3B11B,MAAO,WACPtb,SAAUyX,GAAK,KAAM,CACnBC,UAAW,WACX1X,SAAU,oCAU9B,ECjOO,aACFg7C,GACD,IACF,MAAM5nC,EAAYrN,SAASgZ,cAAc,QACzC5a,EAAOsT,GAAKqiC,GAAe,IACtBkB,IACD5nC,EACN,CCdA6nC,CAAS,CAAElB,QAAS","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248]}