@scalar/components 0.20.9 → 0.20.11

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 (414) hide show
  1. package/dist/components/ScalarButton/index.d.ts +1 -1
  2. package/dist/components/ScalarCard/index.d.ts +4 -4
  3. package/dist/components/ScalarCheckboxInput/index.d.ts +4 -4
  4. package/dist/components/ScalarCodeBlock/index.d.ts +2 -2
  5. package/dist/components/ScalarColorModeToggle/index.d.ts +3 -3
  6. package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts +1 -1
  7. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts +1 -1
  8. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts +1 -1
  9. package/dist/components/ScalarCombobox/index.d.ts +3 -3
  10. package/dist/components/ScalarContextMenu/index.d.ts +1 -1
  11. package/dist/components/ScalarCopy/index.d.ts +3 -3
  12. package/dist/components/ScalarDropdown/index.d.ts +5 -5
  13. package/dist/components/ScalarErrorBoundary/index.d.ts +1 -1
  14. package/dist/components/ScalarFileUpload/ScalarFileUpload.vue.d.ts +1 -1
  15. package/dist/components/ScalarFileUpload/ScalarFileUploadInput.vue.d.ts +1 -1
  16. package/dist/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue.d.ts +1 -1
  17. package/dist/components/ScalarFileUpload/index.d.ts +7 -7
  18. package/dist/components/ScalarFloating/index.d.ts +2 -2
  19. package/dist/components/ScalarForm/index.d.ts +6 -6
  20. package/dist/components/ScalarHeader/index.d.ts +2 -2
  21. package/dist/components/ScalarHotkey/index.d.ts +2 -2
  22. package/dist/components/ScalarIcon/ScalarIconLegacyAdapter.vue.d.ts +1 -1
  23. package/dist/components/ScalarIcon/index.d.ts +3 -3
  24. package/dist/components/ScalarIcon/types.d.ts +2 -2
  25. package/dist/components/ScalarIconButton/index.d.ts +1 -1
  26. package/dist/components/ScalarListbox/index.d.ts +4 -4
  27. package/dist/components/ScalarLoading/index.d.ts +2 -2
  28. package/dist/components/ScalarMarkdown/index.d.ts +2 -2
  29. package/dist/components/ScalarMenu/ScalarMenuProduct.vue.d.ts +1 -1
  30. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.d.ts +1 -1
  31. package/dist/components/ScalarMenu/index.d.ts +11 -11
  32. package/dist/components/ScalarMenu/types.d.ts +1 -1
  33. package/dist/components/ScalarModal/index.d.ts +1 -1
  34. package/dist/components/ScalarPopover/index.d.ts +1 -1
  35. package/dist/components/ScalarSearchInput/index.d.ts +1 -1
  36. package/dist/components/ScalarSearchResults/index.d.ts +2 -2
  37. package/dist/components/ScalarSidebar/ScalarSidebarIndent.vue.d.ts +1 -1
  38. package/dist/components/ScalarSidebar/ScalarSidebarSpacer.vue.d.ts +1 -1
  39. package/dist/components/ScalarSidebar/index.d.ts +13 -13
  40. package/dist/components/ScalarSidebar/types.d.ts +1 -1
  41. package/dist/components/ScalarTeleport/index.d.ts +3 -3
  42. package/dist/components/ScalarTextArea/index.d.ts +1 -1
  43. package/dist/components/ScalarTextInput/index.d.ts +2 -2
  44. package/dist/components/ScalarThemeSwatches/index.d.ts +2 -2
  45. package/dist/components/ScalarToggle/index.d.ts +3 -3
  46. package/dist/components/ScalarTooltip/index.d.ts +3 -3
  47. package/dist/components/ScalarVirtualText/index.d.ts +1 -1
  48. package/dist/components/ScalarWrappingText/index.d.ts +1 -1
  49. package/dist/components/ScalarWrappingText/types.d.ts +1 -1
  50. package/dist/helpers/index.d.ts +1 -1
  51. package/dist/index.js +7820 -222
  52. package/dist/index.js.map +1 -0
  53. package/dist/style.css +4425 -1
  54. package/package.json +18 -24
  55. package/dist/_virtual/_plugin-vue_export-helper.js +0 -9
  56. package/dist/components/ScalarButton/ScalarButton.vue.js +0 -99
  57. package/dist/components/ScalarButton/ScalarButton.vue2.js +0 -4
  58. package/dist/components/ScalarButton/constants.js +0 -18
  59. package/dist/components/ScalarCard/ScalarCard.vue.js +0 -25
  60. package/dist/components/ScalarCard/ScalarCard.vue2.js +0 -4
  61. package/dist/components/ScalarCard/ScalarCardFooter.vue.js +0 -20
  62. package/dist/components/ScalarCard/ScalarCardFooter.vue2.js +0 -4
  63. package/dist/components/ScalarCard/ScalarCardHeader.vue.js +0 -36
  64. package/dist/components/ScalarCard/ScalarCardHeader.vue2.js +0 -4
  65. package/dist/components/ScalarCard/ScalarCardSection.vue.js +0 -16
  66. package/dist/components/ScalarCard/ScalarCardSection.vue2.js +0 -4
  67. package/dist/components/ScalarCard/useCardHeading.js +0 -15
  68. package/dist/components/ScalarCheckboxInput/ScalarCheckbox.vue.js +0 -27
  69. package/dist/components/ScalarCheckboxInput/ScalarCheckbox.vue2.js +0 -4
  70. package/dist/components/ScalarCheckboxInput/ScalarCheckboxGroup.vue.js +0 -37
  71. package/dist/components/ScalarCheckboxInput/ScalarCheckboxGroup.vue2.js +0 -4
  72. package/dist/components/ScalarCheckboxInput/ScalarCheckboxInput.vue.js +0 -45
  73. package/dist/components/ScalarCheckboxInput/ScalarCheckboxInput.vue2.js +0 -4
  74. package/dist/components/ScalarCheckboxInput/ScalarCheckboxRadioGroup.vue.js +0 -38
  75. package/dist/components/ScalarCheckboxInput/ScalarCheckboxRadioGroup.vue2.js +0 -4
  76. package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.js +0 -69
  77. package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue3.js +0 -5
  78. package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.js +0 -57
  79. package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue2.js +0 -4
  80. package/dist/components/ScalarCodeBlock/constants.js +0 -54
  81. package/dist/components/ScalarColorModeToggle/ScalarColorModeToggle.vue.js +0 -30
  82. package/dist/components/ScalarColorModeToggle/ScalarColorModeToggle.vue2.js +0 -4
  83. package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleButton.vue.js +0 -41
  84. package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleButton.vue2.js +0 -4
  85. package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleIcon.vue.js +0 -7
  86. package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleIcon.vue2.js +0 -35
  87. package/dist/components/ScalarCombobox/ScalarCombobox.vue.js +0 -71
  88. package/dist/components/ScalarCombobox/ScalarCombobox.vue2.js +0 -4
  89. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.js +0 -75
  90. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue2.js +0 -4
  91. package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.js +0 -41
  92. package/dist/components/ScalarCombobox/ScalarComboboxOption.vue2.js +0 -4
  93. package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.js +0 -28
  94. package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue2.js +0 -4
  95. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.js +0 -181
  96. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue2.js +0 -4
  97. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.js +0 -68
  98. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue2.js +0 -4
  99. package/dist/components/ScalarCombobox/types.js +0 -9
  100. package/dist/components/ScalarContextMenu/ScalarContextMenu.vue.js +0 -52
  101. package/dist/components/ScalarContextMenu/ScalarContextMenu.vue2.js +0 -4
  102. package/dist/components/ScalarCopy/ScalarCopy.vue.js +0 -59
  103. package/dist/components/ScalarCopy/ScalarCopy.vue2.js +0 -4
  104. package/dist/components/ScalarCopy/ScalarCopyBackdrop.vue.js +0 -14
  105. package/dist/components/ScalarCopy/ScalarCopyBackdrop.vue2.js +0 -4
  106. package/dist/components/ScalarCopy/ScalarCopyButton.vue.js +0 -108
  107. package/dist/components/ScalarCopy/ScalarCopyButton.vue2.js +0 -4
  108. package/dist/components/ScalarDropdown/ScalarDropdown.vue.js +0 -132
  109. package/dist/components/ScalarDropdown/ScalarDropdown.vue2.js +0 -4
  110. package/dist/components/ScalarDropdown/ScalarDropdownButton.vue.js +0 -7
  111. package/dist/components/ScalarDropdown/ScalarDropdownButton.vue2.js +0 -41
  112. package/dist/components/ScalarDropdown/ScalarDropdownDivider.vue.js +0 -11
  113. package/dist/components/ScalarDropdown/ScalarDropdownDivider.vue2.js +0 -4
  114. package/dist/components/ScalarDropdown/ScalarDropdownItem.vue.js +0 -7
  115. package/dist/components/ScalarDropdown/ScalarDropdownItem.vue2.js +0 -32
  116. package/dist/components/ScalarDropdown/ScalarDropdownMenu.vue.js +0 -32
  117. package/dist/components/ScalarDropdown/ScalarDropdownMenu.vue2.js +0 -4
  118. package/dist/components/ScalarDropdown/useDropdown.js +0 -14
  119. package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.js +0 -20
  120. package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue2.js +0 -4
  121. package/dist/components/ScalarFileUpload/ScalarFileUpload.vue.js +0 -124
  122. package/dist/components/ScalarFileUpload/ScalarFileUpload.vue2.js +0 -4
  123. package/dist/components/ScalarFileUpload/ScalarFileUploadDropTarget.vue.js +0 -28
  124. package/dist/components/ScalarFileUpload/ScalarFileUploadDropTarget.vue2.js +0 -4
  125. package/dist/components/ScalarFileUpload/ScalarFileUploadError.vue.js +0 -18
  126. package/dist/components/ScalarFileUpload/ScalarFileUploadError.vue2.js +0 -4
  127. package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.js +0 -55
  128. package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue2.js +0 -4
  129. package/dist/components/ScalarFileUpload/ScalarFileUploadInput.vue.js +0 -49
  130. package/dist/components/ScalarFileUpload/ScalarFileUploadInput.vue2.js +0 -4
  131. package/dist/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue.js +0 -41
  132. package/dist/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue2.js +0 -4
  133. package/dist/components/ScalarFileUpload/ScalarFileUploadLoading.vue.js +0 -27
  134. package/dist/components/ScalarFileUpload/ScalarFileUploadLoading.vue2.js +0 -4
  135. package/dist/components/ScalarFileUpload/types.js +0 -6
  136. package/dist/components/ScalarFloating/ScalarFloating.vue.js +0 -91
  137. package/dist/components/ScalarFloating/ScalarFloating.vue2.js +0 -4
  138. package/dist/components/ScalarFloating/ScalarFloatingBackdrop.vue.js +0 -18
  139. package/dist/components/ScalarFloating/ScalarFloatingBackdrop.vue2.js +0 -4
  140. package/dist/components/ScalarFloating/useResizeWithTarget.js +0 -19
  141. package/dist/components/ScalarForm/ScalarForm.vue.js +0 -19
  142. package/dist/components/ScalarForm/ScalarForm.vue2.js +0 -4
  143. package/dist/components/ScalarForm/ScalarFormError.vue.js +0 -32
  144. package/dist/components/ScalarForm/ScalarFormError.vue2.js +0 -4
  145. package/dist/components/ScalarForm/ScalarFormField.vue.js +0 -34
  146. package/dist/components/ScalarForm/ScalarFormField.vue2.js +0 -4
  147. package/dist/components/ScalarForm/ScalarFormInput.vue.js +0 -39
  148. package/dist/components/ScalarForm/ScalarFormInput.vue2.js +0 -4
  149. package/dist/components/ScalarForm/ScalarFormInputGroup.vue.js +0 -23
  150. package/dist/components/ScalarForm/ScalarFormInputGroup.vue2.js +0 -4
  151. package/dist/components/ScalarForm/ScalarFormSection.vue.js +0 -18
  152. package/dist/components/ScalarForm/ScalarFormSection.vue2.js +0 -4
  153. package/dist/components/ScalarForm/useFormGroups.js +0 -8
  154. package/dist/components/ScalarHeader/ScalarHeader.vue.js +0 -28
  155. package/dist/components/ScalarHeader/ScalarHeader.vue2.js +0 -4
  156. package/dist/components/ScalarHeader/ScalarHeaderButton.vue.js +0 -33
  157. package/dist/components/ScalarHeader/ScalarHeaderButton.vue2.js +0 -4
  158. package/dist/components/ScalarHotkey/ScalarHotkey.vue.js +0 -30
  159. package/dist/components/ScalarHotkey/ScalarHotkey.vue2.js +0 -4
  160. package/dist/components/ScalarHotkey/constants.js +0 -29
  161. package/dist/components/ScalarHotkey/formatHotkey.js +0 -20
  162. package/dist/components/ScalarIcon/ScalarIcon.vue.js +0 -7
  163. package/dist/components/ScalarIcon/ScalarIcon.vue2.js +0 -39
  164. package/dist/components/ScalarIcon/ScalarIconLegacyAdapter.vue.js +0 -28
  165. package/dist/components/ScalarIcon/ScalarIconLegacyAdapter.vue2.js +0 -4
  166. package/dist/components/ScalarIcon/icons/Add.svg.js +0 -21
  167. package/dist/components/ScalarIcon/icons/AddTab.svg.js +0 -21
  168. package/dist/components/ScalarIcon/icons/Alert.svg.js +0 -21
  169. package/dist/components/ScalarIcon/icons/ArrowLeft.svg.js +0 -21
  170. package/dist/components/ScalarIcon/icons/ArrowRight.svg.js +0 -21
  171. package/dist/components/ScalarIcon/icons/Brackets.svg.js +0 -21
  172. package/dist/components/ScalarIcon/icons/Branch.svg.js +0 -34
  173. package/dist/components/ScalarIcon/icons/Changelog.svg.js +0 -21
  174. package/dist/components/ScalarIcon/icons/Checkmark.svg.js +0 -21
  175. package/dist/components/ScalarIcon/icons/ChevronDown.svg.js +0 -21
  176. package/dist/components/ScalarIcon/icons/ChevronLeft.svg.js +0 -21
  177. package/dist/components/ScalarIcon/icons/ChevronRight.svg.js +0 -21
  178. package/dist/components/ScalarIcon/icons/ChevronUp.svg.js +0 -21
  179. package/dist/components/ScalarIcon/icons/Clipboard.svg.js +0 -21
  180. package/dist/components/ScalarIcon/icons/Close.svg.js +0 -21
  181. package/dist/components/ScalarIcon/icons/CloseTab.svg.js +0 -21
  182. package/dist/components/ScalarIcon/icons/CloseTabs.svg.js +0 -21
  183. package/dist/components/ScalarIcon/icons/Cloud.svg.js +0 -19
  184. package/dist/components/ScalarIcon/icons/CodeFolder.svg.js +0 -28
  185. package/dist/components/ScalarIcon/icons/Cog.svg.js +0 -20
  186. package/dist/components/ScalarIcon/icons/Collection.svg.js +0 -21
  187. package/dist/components/ScalarIcon/icons/Cookie.svg.js +0 -25
  188. package/dist/components/ScalarIcon/icons/DarkMode.svg.js +0 -19
  189. package/dist/components/ScalarIcon/icons/Delete.svg.js +0 -21
  190. package/dist/components/ScalarIcon/icons/Discord.svg.js +0 -20
  191. package/dist/components/ScalarIcon/icons/DocsPage.svg.js +0 -28
  192. package/dist/components/ScalarIcon/icons/Download.svg.js +0 -19
  193. package/dist/components/ScalarIcon/icons/Duplicate.svg.js +0 -27
  194. package/dist/components/ScalarIcon/icons/Edit.svg.js +0 -21
  195. package/dist/components/ScalarIcon/icons/Ellipses.svg.js +0 -19
  196. package/dist/components/ScalarIcon/icons/Email.svg.js +0 -20
  197. package/dist/components/ScalarIcon/icons/Error.svg.js +0 -20
  198. package/dist/components/ScalarIcon/icons/Example.svg.js +0 -21
  199. package/dist/components/ScalarIcon/icons/ExternalLink.svg.js +0 -21
  200. package/dist/components/ScalarIcon/icons/FilterList.svg.js +0 -21
  201. package/dist/components/ScalarIcon/icons/Folder.svg.js +0 -21
  202. package/dist/components/ScalarIcon/icons/GitHub.svg.js +0 -16
  203. package/dist/components/ScalarIcon/icons/GitHubLine.svg.js +0 -19
  204. package/dist/components/ScalarIcon/icons/Globe.svg.js +0 -21
  205. package/dist/components/ScalarIcon/icons/Google.svg.js +0 -16
  206. package/dist/components/ScalarIcon/icons/Help.svg.js +0 -20
  207. package/dist/components/ScalarIcon/icons/Hide.svg.js +0 -21
  208. package/dist/components/ScalarIcon/icons/History.svg.js +0 -20
  209. package/dist/components/ScalarIcon/icons/House.svg.js +0 -19
  210. package/dist/components/ScalarIcon/icons/Import.svg.js +0 -21
  211. package/dist/components/ScalarIcon/icons/Info.svg.js +0 -33
  212. package/dist/components/ScalarIcon/icons/Key.svg.js +0 -20
  213. package/dist/components/ScalarIcon/icons/Leave.svg.js +0 -19
  214. package/dist/components/ScalarIcon/icons/LightDarkModeToggle.svg.js +0 -21
  215. package/dist/components/ScalarIcon/icons/LightMode.svg.js +0 -21
  216. package/dist/components/ScalarIcon/icons/Link.svg.js +0 -19
  217. package/dist/components/ScalarIcon/icons/Lock.svg.js +0 -20
  218. package/dist/components/ScalarIcon/icons/Logo.svg.js +0 -19
  219. package/dist/components/ScalarIcon/icons/Magic.svg.js +0 -21
  220. package/dist/components/ScalarIcon/icons/Markdown.svg.js +0 -19
  221. package/dist/components/ScalarIcon/icons/Menu.svg.js +0 -21
  222. package/dist/components/ScalarIcon/icons/NotAllowed.svg.js +0 -21
  223. package/dist/components/ScalarIcon/icons/Page.svg.js +0 -20
  224. package/dist/components/ScalarIcon/icons/Pencil.svg.js +0 -19
  225. package/dist/components/ScalarIcon/icons/Play.svg.js +0 -19
  226. package/dist/components/ScalarIcon/icons/Refresh.svg.js +0 -21
  227. package/dist/components/ScalarIcon/icons/Roadmap.svg.js +0 -19
  228. package/dist/components/ScalarIcon/icons/Scribble.svg.js +0 -21
  229. package/dist/components/ScalarIcon/icons/Search.svg.js +0 -21
  230. package/dist/components/ScalarIcon/icons/Server.svg.js +0 -31
  231. package/dist/components/ScalarIcon/icons/Settings.svg.js +0 -21
  232. package/dist/components/ScalarIcon/icons/Show.svg.js +0 -27
  233. package/dist/components/ScalarIcon/icons/Sort.svg.js +0 -21
  234. package/dist/components/ScalarIcon/icons/Terminal.svg.js +0 -28
  235. package/dist/components/ScalarIcon/icons/Trash.svg.js +0 -21
  236. package/dist/components/ScalarIcon/icons/Unlock.svg.js +0 -20
  237. package/dist/components/ScalarIcon/icons/Unwatch.svg.js +0 -21
  238. package/dist/components/ScalarIcon/icons/Upload.svg.js +0 -21
  239. package/dist/components/ScalarIcon/icons/User.svg.js +0 -24
  240. package/dist/components/ScalarIcon/icons/UserSwitch.svg.js +0 -20
  241. package/dist/components/ScalarIcon/icons/Users.svg.js +0 -19
  242. package/dist/components/ScalarIcon/icons/Versions.svg.js +0 -21
  243. package/dist/components/ScalarIcon/icons/Wallet.svg.js +0 -20
  244. package/dist/components/ScalarIcon/icons/Watch.svg.js +0 -21
  245. package/dist/components/ScalarIcon/icons/Workspace.svg.js +0 -19
  246. package/dist/components/ScalarIcon/icons/programming-framework-angular.svg.js +0 -16
  247. package/dist/components/ScalarIcon/icons/programming-framework-astro.svg.js +0 -16
  248. package/dist/components/ScalarIcon/icons/programming-framework-laravel.svg.js +0 -21
  249. package/dist/components/ScalarIcon/icons/programming-framework-nextdotjs.svg.js +0 -16
  250. package/dist/components/ScalarIcon/icons/programming-framework-react.svg.js +0 -16
  251. package/dist/components/ScalarIcon/icons/programming-framework-vuedotjs.svg.js +0 -17
  252. package/dist/components/ScalarIcon/icons/programming-language-c.svg.js +0 -16
  253. package/dist/components/ScalarIcon/icons/programming-language-clojure.svg.js +0 -16
  254. package/dist/components/ScalarIcon/icons/programming-language-csharp.svg.js +0 -16
  255. package/dist/components/ScalarIcon/icons/programming-language-css3.svg.js +0 -16
  256. package/dist/components/ScalarIcon/icons/programming-language-dart.svg.js +0 -16
  257. package/dist/components/ScalarIcon/icons/programming-language-fsharp.svg.js +0 -16
  258. package/dist/components/ScalarIcon/icons/programming-language-go.svg.js +0 -16
  259. package/dist/components/ScalarIcon/icons/programming-language-html5.svg.js +0 -16
  260. package/dist/components/ScalarIcon/icons/programming-language-http.svg.js +0 -16
  261. package/dist/components/ScalarIcon/icons/programming-language-java.svg.js +0 -18
  262. package/dist/components/ScalarIcon/icons/programming-language-javascript.svg.js +0 -16
  263. package/dist/components/ScalarIcon/icons/programming-language-json.svg.js +0 -17
  264. package/dist/components/ScalarIcon/icons/programming-language-kotlin.svg.js +0 -16
  265. package/dist/components/ScalarIcon/icons/programming-language-node.svg.js +0 -17
  266. package/dist/components/ScalarIcon/icons/programming-language-objc.svg.js +0 -17
  267. package/dist/components/ScalarIcon/icons/programming-language-ocaml.svg.js +0 -16
  268. package/dist/components/ScalarIcon/icons/programming-language-php.svg.js +0 -16
  269. package/dist/components/ScalarIcon/icons/programming-language-powershell.svg.js +0 -20
  270. package/dist/components/ScalarIcon/icons/programming-language-python.svg.js +0 -16
  271. package/dist/components/ScalarIcon/icons/programming-language-r.svg.js +0 -20
  272. package/dist/components/ScalarIcon/icons/programming-language-ruby.svg.js +0 -16
  273. package/dist/components/ScalarIcon/icons/programming-language-rust.svg.js +0 -19
  274. package/dist/components/ScalarIcon/icons/programming-language-scala.svg.js +0 -16
  275. package/dist/components/ScalarIcon/icons/programming-language-shell.svg.js +0 -16
  276. package/dist/components/ScalarIcon/icons/programming-language-swift.svg.js +0 -16
  277. package/dist/components/ScalarIcon/icons/programming-language-typescript.svg.js +0 -16
  278. package/dist/components/ScalarIcon/icons/programming-script-code.svg.js +0 -21
  279. package/dist/components/ScalarIcon/icons/programming-tool-git.svg.js +0 -16
  280. package/dist/components/ScalarIcon/icons/programming-tool-tailwindcss.svg.js +0 -16
  281. package/dist/components/ScalarIcon/logos/Adonisjs.svg.js +0 -21
  282. package/dist/components/ScalarIcon/logos/Astro.svg.js +0 -14
  283. package/dist/components/ScalarIcon/logos/Docusaurus.svg.js +0 -16
  284. package/dist/components/ScalarIcon/logos/Dotnet.svg.js +0 -23
  285. package/dist/components/ScalarIcon/logos/Elysiajs.svg.js +0 -16
  286. package/dist/components/ScalarIcon/logos/Express.svg.js +0 -19
  287. package/dist/components/ScalarIcon/logos/Fastapi.svg.js +0 -19
  288. package/dist/components/ScalarIcon/logos/Fastify.svg.js +0 -19
  289. package/dist/components/ScalarIcon/logos/Go.svg.js +0 -23
  290. package/dist/components/ScalarIcon/logos/Hono.svg.js +0 -24
  291. package/dist/components/ScalarIcon/logos/Laravel.svg.js +0 -19
  292. package/dist/components/ScalarIcon/logos/Litestar.svg.js +0 -16
  293. package/dist/components/ScalarIcon/logos/Nestjs.svg.js +0 -21
  294. package/dist/components/ScalarIcon/logos/Nextjs.svg.js +0 -19
  295. package/dist/components/ScalarIcon/logos/Nitro.svg.js +0 -16
  296. package/dist/components/ScalarIcon/logos/Nuxt.svg.js +0 -19
  297. package/dist/components/ScalarIcon/logos/Openapi.svg.js +0 -16
  298. package/dist/components/ScalarIcon/logos/Platformatic.svg.js +0 -28
  299. package/dist/components/ScalarIcon/logos/React.svg.js +0 -34
  300. package/dist/components/ScalarIcon/logos/Rust.svg.js +0 -19
  301. package/dist/components/ScalarIcon/logos/Svelte.svg.js +0 -23
  302. package/dist/components/ScalarIcon/logos/Vue.svg.js +0 -23
  303. package/dist/components/ScalarIcon/utils/index.js +0 -287
  304. package/dist/components/ScalarIcon/variants.js +0 -21
  305. package/dist/components/ScalarIconButton/ScalarIconButton.vue.js +0 -71
  306. package/dist/components/ScalarIconButton/ScalarIconButton.vue2.js +0 -4
  307. package/dist/components/ScalarListbox/ScalarListbox.vue.js +0 -89
  308. package/dist/components/ScalarListbox/ScalarListbox.vue2.js +0 -4
  309. package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.js +0 -26
  310. package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue2.js +0 -4
  311. package/dist/components/ScalarListbox/ScalarListboxInput.vue.js +0 -26
  312. package/dist/components/ScalarListbox/ScalarListboxInput.vue2.js +0 -4
  313. package/dist/components/ScalarListbox/ScalarListboxItem.vue.js +0 -52
  314. package/dist/components/ScalarListbox/ScalarListboxItem.vue2.js +0 -4
  315. package/dist/components/ScalarLoading/ScalarLoading.vue.js +0 -7
  316. package/dist/components/ScalarLoading/ScalarLoading.vue2.js +0 -58
  317. package/dist/components/ScalarLoading/useLoadingState.js +0 -39
  318. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.js +0 -43
  319. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue3.js +0 -5
  320. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.js +0 -61
  321. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue3.js +0 -5
  322. package/dist/components/ScalarMenu/ScalarMenu.vue.js +0 -70
  323. package/dist/components/ScalarMenu/ScalarMenu.vue2.js +0 -4
  324. package/dist/components/ScalarMenu/ScalarMenuButton.vue.js +0 -34
  325. package/dist/components/ScalarMenu/ScalarMenuButton.vue2.js +0 -4
  326. package/dist/components/ScalarMenu/ScalarMenuLink.vue.js +0 -46
  327. package/dist/components/ScalarMenu/ScalarMenuLink.vue2.js +0 -4
  328. package/dist/components/ScalarMenu/ScalarMenuProduct.vue.js +0 -37
  329. package/dist/components/ScalarMenu/ScalarMenuProduct.vue2.js +0 -4
  330. package/dist/components/ScalarMenu/ScalarMenuProducts.vue.js +0 -67
  331. package/dist/components/ScalarMenu/ScalarMenuProducts.vue2.js +0 -4
  332. package/dist/components/ScalarMenu/ScalarMenuResources.vue.js +0 -50
  333. package/dist/components/ScalarMenu/ScalarMenuResources.vue2.js +0 -4
  334. package/dist/components/ScalarMenu/ScalarMenuSection.vue.js +0 -15
  335. package/dist/components/ScalarMenu/ScalarMenuSection.vue2.js +0 -4
  336. package/dist/components/ScalarMenu/ScalarMenuSupport.vue.js +0 -40
  337. package/dist/components/ScalarMenu/ScalarMenuSupport.vue2.js +0 -4
  338. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.js +0 -103
  339. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue2.js +0 -4
  340. package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.js +0 -41
  341. package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue2.js +0 -4
  342. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.js +0 -109
  343. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue2.js +0 -4
  344. package/dist/components/ScalarModal/ScalarModal.vue.js +0 -9
  345. package/dist/components/ScalarModal/ScalarModal.vue2.js +0 -136
  346. package/dist/components/ScalarPopover/ScalarPopover.vue.js +0 -57
  347. package/dist/components/ScalarPopover/ScalarPopover.vue2.js +0 -4
  348. package/dist/components/ScalarSearchInput/ScalarSearchInput.vue.js +0 -65
  349. package/dist/components/ScalarSearchInput/ScalarSearchInput.vue2.js +0 -4
  350. package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.js +0 -61
  351. package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue2.js +0 -4
  352. package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.js +0 -26
  353. package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue2.js +0 -4
  354. package/dist/components/ScalarSidebar/ScalarSidebar.vue.js +0 -18
  355. package/dist/components/ScalarSidebar/ScalarSidebar.vue2.js +0 -4
  356. package/dist/components/ScalarSidebar/ScalarSidebarButton.vue.js +0 -81
  357. package/dist/components/ScalarSidebar/ScalarSidebarButton.vue2.js +0 -4
  358. package/dist/components/ScalarSidebar/ScalarSidebarFooter.vue.js +0 -31
  359. package/dist/components/ScalarSidebar/ScalarSidebarFooter.vue2.js +0 -4
  360. package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue.js +0 -120
  361. package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue2.js +0 -4
  362. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggle.vue.js +0 -46
  363. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggle.vue2.js +0 -4
  364. package/dist/components/ScalarSidebar/ScalarSidebarIndent.vue.js +0 -7
  365. package/dist/components/ScalarSidebar/ScalarSidebarIndent.vue2.js +0 -38
  366. package/dist/components/ScalarSidebar/ScalarSidebarItem.vue.js +0 -54
  367. package/dist/components/ScalarSidebar/ScalarSidebarItem.vue2.js +0 -4
  368. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.js +0 -28
  369. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue3.js +0 -5
  370. package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.js +0 -126
  371. package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue2.js +0 -4
  372. package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.js +0 -39
  373. package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue2.js +0 -4
  374. package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.js +0 -66
  375. package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue2.js +0 -4
  376. package/dist/components/ScalarSidebar/ScalarSidebarSection.vue.js +0 -52
  377. package/dist/components/ScalarSidebar/ScalarSidebarSection.vue3.js +0 -5
  378. package/dist/components/ScalarSidebar/ScalarSidebarSpacer.vue.js +0 -20
  379. package/dist/components/ScalarSidebar/ScalarSidebarSpacer.vue2.js +0 -4
  380. package/dist/components/ScalarSidebar/findScrollContainer.js +0 -22
  381. package/dist/components/ScalarSidebar/useSidebarGroups.js +0 -9
  382. package/dist/components/ScalarSidebar/useSidebarNestedItems.js +0 -17
  383. package/dist/components/ScalarTeleport/ScalarTeleport.vue.js +0 -30
  384. package/dist/components/ScalarTeleport/ScalarTeleport.vue2.js +0 -4
  385. package/dist/components/ScalarTeleport/ScalarTeleportRoot.vue.js +0 -23
  386. package/dist/components/ScalarTeleport/ScalarTeleportRoot.vue2.js +0 -4
  387. package/dist/components/ScalarTeleport/useTeleport.js +0 -11
  388. package/dist/components/ScalarTextArea/ScalarTextArea.vue.js +0 -45
  389. package/dist/components/ScalarTextArea/ScalarTextArea.vue2.js +0 -4
  390. package/dist/components/ScalarTextInput/ScalarTextInput.vue.js +0 -76
  391. package/dist/components/ScalarTextInput/ScalarTextInput.vue2.js +0 -4
  392. package/dist/components/ScalarTextInput/ScalarTextInputCopy.vue.js +0 -68
  393. package/dist/components/ScalarTextInput/ScalarTextInputCopy.vue2.js +0 -4
  394. package/dist/components/ScalarThemeSwatches/ScalarThemeSwatches.vue.js +0 -35
  395. package/dist/components/ScalarThemeSwatches/ScalarThemeSwatches.vue2.js +0 -4
  396. package/dist/components/ScalarThemeSwatches/useThemeSwatches.js +0 -33
  397. package/dist/components/ScalarToggle/ScalarToggle.vue.js +0 -45
  398. package/dist/components/ScalarToggle/ScalarToggle.vue2.js +0 -4
  399. package/dist/components/ScalarToggle/ScalarToggleGroup.vue.js +0 -35
  400. package/dist/components/ScalarToggle/ScalarToggleGroup.vue2.js +0 -4
  401. package/dist/components/ScalarToggle/ScalarToggleInput.vue.js +0 -36
  402. package/dist/components/ScalarToggle/ScalarToggleInput.vue2.js +0 -4
  403. package/dist/components/ScalarTooltip/ScalarHotkeyTooltip.vue.js +0 -59
  404. package/dist/components/ScalarTooltip/ScalarHotkeyTooltip.vue2.js +0 -4
  405. package/dist/components/ScalarTooltip/ScalarTooltip.vue.js +0 -34
  406. package/dist/components/ScalarTooltip/ScalarTooltip.vue3.js +0 -5
  407. package/dist/components/ScalarTooltip/constants.js +0 -7
  408. package/dist/components/ScalarTooltip/useTooltip.js +0 -79
  409. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.js +0 -61
  410. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue2.js +0 -4
  411. package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.js +0 -25
  412. package/dist/components/ScalarWrappingText/ScalarWrappingText.vue2.js +0 -4
  413. package/dist/components/ScalarWrappingText/constants.js +0 -12
  414. package/dist/helpers/add-scalar-classes.js +0 -16
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["$slots","$slots","$emit","$slots","$slots","$attrs","$slots","$emit","$props","$slots","$props","$slots","$slots","$props","$emit","$emit","$emit","$slots","$emit","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_hoisted_1","render","_openBlock","_createElementBlock","_createStaticVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createStaticVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createStaticVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createStaticVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createStaticVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","_hoisted_1","render","_openBlock","_createElementBlock","_createElementVNode","$props","$attrs","$slots","$slots","$emit","$slots","$attrs","$attrs","$attrs","$props","$slots","$slots","$slots","$slots","$attrs","$slots","$slots","$slots","$attrs","$slots"],"sources":["../src/components/ScalarLoading/ScalarLoading.vue","../src/components/ScalarLoading/ScalarLoading.vue","../src/components/ScalarLoading/useLoadingState.ts","../src/components/ScalarButton/constants.ts","../src/components/ScalarButton/ScalarButton.vue","../src/components/ScalarButton/ScalarButton.vue","../src/components/ScalarCard/useCardHeading.ts","../src/components/ScalarCard/ScalarCard.vue","../src/components/ScalarCard/ScalarCard.vue","../src/components/ScalarCard/ScalarCardSection.vue","../src/components/ScalarCard/ScalarCardSection.vue","../src/components/ScalarCard/ScalarCardFooter.vue","../src/components/ScalarCard/ScalarCardFooter.vue","../src/components/ScalarCard/ScalarCardHeader.vue","../src/components/ScalarCard/ScalarCardHeader.vue","../src/components/ScalarCheckboxInput/ScalarCheckbox.vue","../src/components/ScalarCheckboxInput/ScalarCheckbox.vue","../src/components/ScalarForm/ScalarForm.vue","../src/components/ScalarForm/ScalarForm.vue","../src/components/ScalarForm/ScalarFormError.vue","../src/components/ScalarForm/ScalarFormError.vue","../src/components/ScalarForm/ScalarFormField.vue","../src/components/ScalarForm/ScalarFormField.vue","../src/components/ScalarForm/useFormGroups.ts","../src/components/ScalarForm/ScalarFormInput.vue","../src/components/ScalarForm/ScalarFormInput.vue","../src/components/ScalarForm/ScalarFormInputGroup.vue","../src/components/ScalarForm/ScalarFormInputGroup.vue","../src/components/ScalarForm/ScalarFormSection.vue","../src/components/ScalarForm/ScalarFormSection.vue","../src/components/ScalarCheckboxInput/ScalarCheckboxInput.vue","../src/components/ScalarCheckboxInput/ScalarCheckboxInput.vue","../src/components/ScalarCheckboxInput/ScalarCheckboxGroup.vue","../src/components/ScalarCheckboxInput/ScalarCheckboxGroup.vue","../src/components/ScalarCheckboxInput/ScalarCheckboxRadioGroup.vue","../src/components/ScalarCheckboxInput/ScalarCheckboxRadioGroup.vue","../src/components/ScalarCopy/ScalarCopyBackdrop.vue","../src/components/ScalarCopy/ScalarCopyBackdrop.vue","../src/components/ScalarCodeBlock/ScalarCodeBlock.vue","../src/components/ScalarCodeBlock/ScalarCodeBlock.vue","../src/components/ScalarCopy/ScalarCopyButton.vue","../src/components/ScalarCopy/ScalarCopyButton.vue","../src/components/ScalarCopy/ScalarCopy.vue","../src/components/ScalarCopy/ScalarCopy.vue","../src/components/ScalarCodeBlock/constants.ts","../src/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue","../src/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue","../src/components/ScalarColorModeToggle/ScalarColorModeToggleIcon.vue","../src/components/ScalarColorModeToggle/ScalarColorModeToggleIcon.vue","../src/components/ScalarColorModeToggle/ScalarColorModeToggleButton.vue","../src/components/ScalarColorModeToggle/ScalarColorModeToggleButton.vue","../src/components/ScalarColorModeToggle/ScalarColorModeToggle.vue","../src/components/ScalarColorModeToggle/ScalarColorModeToggle.vue","../src/components/ScalarTeleport/useTeleport.ts","../src/components/ScalarTeleport/ScalarTeleport.vue","../src/components/ScalarTeleport/ScalarTeleport.vue","../src/components/ScalarTeleport/ScalarTeleportRoot.vue","../src/components/ScalarTeleport/ScalarTeleportRoot.vue","../src/components/ScalarFloating/useResizeWithTarget.ts","../src/components/ScalarFloating/ScalarFloating.vue","../src/components/ScalarFloating/ScalarFloating.vue","../src/components/ScalarFloating/ScalarFloatingBackdrop.vue","../src/components/ScalarFloating/ScalarFloatingBackdrop.vue","../src/components/ScalarListbox/ScalarListboxCheckbox.vue","../src/components/ScalarListbox/ScalarListboxCheckbox.vue","../src/components/ScalarListbox/ScalarListboxItem.vue","../src/components/ScalarListbox/ScalarListboxItem.vue","../src/components/ScalarListbox/ScalarListbox.vue","../src/components/ScalarListbox/ScalarListbox.vue","../src/components/ScalarListbox/ScalarListboxInput.vue","../src/components/ScalarListbox/ScalarListboxInput.vue","../src/components/ScalarCombobox/ScalarComboboxOption.vue","../src/components/ScalarCombobox/ScalarComboboxOption.vue","../src/components/ScalarCombobox/ScalarComboboxOptionGroup.vue","../src/components/ScalarCombobox/ScalarComboboxOptionGroup.vue","../src/components/ScalarCombobox/types.ts","../src/components/ScalarCombobox/ScalarComboboxOptions.vue","../src/components/ScalarCombobox/ScalarComboboxOptions.vue","../src/components/ScalarCombobox/ScalarComboboxPopover.vue","../src/components/ScalarCombobox/ScalarComboboxPopover.vue","../src/components/ScalarCombobox/ScalarCombobox.vue","../src/components/ScalarCombobox/ScalarCombobox.vue","../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue","../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue","../src/components/ScalarContextMenu/ScalarContextMenu.vue","../src/components/ScalarContextMenu/ScalarContextMenu.vue","../src/components/ScalarDropdown/ScalarDropdownMenu.vue","../src/components/ScalarDropdown/ScalarDropdownMenu.vue","../src/components/ScalarDropdown/useDropdown.ts","../src/components/ScalarDropdown/ScalarDropdown.vue","../src/components/ScalarDropdown/ScalarDropdown.vue","../src/components/ScalarDropdown/ScalarDropdownButton.vue","../src/components/ScalarDropdown/ScalarDropdownButton.vue","../src/components/ScalarDropdown/ScalarDropdownDivider.vue","../src/components/ScalarDropdown/ScalarDropdownDivider.vue","../src/components/ScalarDropdown/ScalarDropdownItem.vue","../src/components/ScalarDropdown/ScalarDropdownItem.vue","../src/components/ScalarErrorBoundary/ScalarErrorBoundary.vue","../src/components/ScalarErrorBoundary/ScalarErrorBoundary.vue","../src/components/ScalarFileUpload/ScalarFileUploadDropTarget.vue","../src/components/ScalarFileUpload/ScalarFileUploadDropTarget.vue","../src/components/ScalarFileUpload/ScalarFileUploadError.vue","../src/components/ScalarFileUpload/ScalarFileUploadError.vue","../src/components/ScalarFileUpload/ScalarFileUploadInput.vue","../src/components/ScalarFileUpload/ScalarFileUploadInput.vue","../src/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue","../src/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue","../src/components/ScalarFileUpload/ScalarFileUploadLoading.vue","../src/components/ScalarFileUpload/ScalarFileUploadLoading.vue","../src/components/ScalarFileUpload/types.ts","../src/components/ScalarFileUpload/ScalarFileUpload.vue","../src/components/ScalarFileUpload/ScalarFileUpload.vue","../src/components/ScalarFileUpload/ScalarFileUploadFileList.vue","../src/components/ScalarFileUpload/ScalarFileUploadFileList.vue","../src/components/ScalarHeader/ScalarHeader.vue","../src/components/ScalarHeader/ScalarHeader.vue","../src/components/ScalarHeader/ScalarHeaderButton.vue","../src/components/ScalarHeader/ScalarHeaderButton.vue","../src/components/ScalarHotkey/constants.ts","../src/components/ScalarHotkey/formatHotkey.ts","../src/components/ScalarHotkey/ScalarHotkey.vue","../src/components/ScalarHotkey/ScalarHotkey.vue","../src/components/ScalarIcon/icons/Add.svg?component","../src/components/ScalarIcon/icons/AddTab.svg?component","../src/components/ScalarIcon/icons/Alert.svg?component","../src/components/ScalarIcon/icons/ArrowLeft.svg?component","../src/components/ScalarIcon/icons/ArrowRight.svg?component","../src/components/ScalarIcon/icons/Brackets.svg?component","../src/components/ScalarIcon/icons/Branch.svg?component","../src/components/ScalarIcon/icons/Changelog.svg?component","../src/components/ScalarIcon/icons/Checkmark.svg?component","../src/components/ScalarIcon/icons/ChevronDown.svg?component","../src/components/ScalarIcon/icons/ChevronLeft.svg?component","../src/components/ScalarIcon/icons/ChevronRight.svg?component","../src/components/ScalarIcon/icons/ChevronUp.svg?component","../src/components/ScalarIcon/icons/Clipboard.svg?component","../src/components/ScalarIcon/icons/Close.svg?component","../src/components/ScalarIcon/icons/CloseTab.svg?component","../src/components/ScalarIcon/icons/CloseTabs.svg?component","../src/components/ScalarIcon/icons/Cloud.svg?component","../src/components/ScalarIcon/icons/CodeFolder.svg?component","../src/components/ScalarIcon/icons/Cog.svg?component","../src/components/ScalarIcon/icons/Collection.svg?component","../src/components/ScalarIcon/icons/Cookie.svg?component","../src/components/ScalarIcon/icons/DarkMode.svg?component","../src/components/ScalarIcon/icons/Delete.svg?component","../src/components/ScalarIcon/icons/Discord.svg?component","../src/components/ScalarIcon/icons/DocsPage.svg?component","../src/components/ScalarIcon/icons/Download.svg?component","../src/components/ScalarIcon/icons/Duplicate.svg?component","../src/components/ScalarIcon/icons/Edit.svg?component","../src/components/ScalarIcon/icons/Ellipses.svg?component","../src/components/ScalarIcon/icons/Email.svg?component","../src/components/ScalarIcon/icons/Error.svg?component","../src/components/ScalarIcon/icons/Example.svg?component","../src/components/ScalarIcon/icons/ExternalLink.svg?component","../src/components/ScalarIcon/icons/FilterList.svg?component","../src/components/ScalarIcon/icons/Folder.svg?component","../src/components/ScalarIcon/icons/GitHub.svg?component","../src/components/ScalarIcon/icons/GitHubLine.svg?component","../src/components/ScalarIcon/icons/Globe.svg?component","../src/components/ScalarIcon/icons/Google.svg?component","../src/components/ScalarIcon/icons/Help.svg?component","../src/components/ScalarIcon/icons/Hide.svg?component","../src/components/ScalarIcon/icons/History.svg?component","../src/components/ScalarIcon/icons/House.svg?component","../src/components/ScalarIcon/icons/Import.svg?component","../src/components/ScalarIcon/icons/Info.svg?component","../src/components/ScalarIcon/icons/Key.svg?component","../src/components/ScalarIcon/icons/Leave.svg?component","../src/components/ScalarIcon/icons/LightDarkModeToggle.svg?component","../src/components/ScalarIcon/icons/LightMode.svg?component","../src/components/ScalarIcon/icons/Link.svg?component","../src/components/ScalarIcon/icons/Lock.svg?component","../src/components/ScalarIcon/icons/Logo.svg?component","../src/components/ScalarIcon/icons/Magic.svg?component","../src/components/ScalarIcon/icons/Markdown.svg?component","../src/components/ScalarIcon/icons/Menu.svg?component","../src/components/ScalarIcon/icons/NotAllowed.svg?component","../src/components/ScalarIcon/icons/Page.svg?component","../src/components/ScalarIcon/icons/Pencil.svg?component","../src/components/ScalarIcon/icons/Play.svg?component","../src/components/ScalarIcon/icons/Refresh.svg?component","../src/components/ScalarIcon/icons/Roadmap.svg?component","../src/components/ScalarIcon/icons/Scribble.svg?component","../src/components/ScalarIcon/icons/Search.svg?component","../src/components/ScalarIcon/icons/Server.svg?component","../src/components/ScalarIcon/icons/Settings.svg?component","../src/components/ScalarIcon/icons/Show.svg?component","../src/components/ScalarIcon/icons/Sort.svg?component","../src/components/ScalarIcon/icons/Terminal.svg?component","../src/components/ScalarIcon/icons/Trash.svg?component","../src/components/ScalarIcon/icons/Unlock.svg?component","../src/components/ScalarIcon/icons/Unwatch.svg?component","../src/components/ScalarIcon/icons/Upload.svg?component","../src/components/ScalarIcon/icons/User.svg?component","../src/components/ScalarIcon/icons/UserSwitch.svg?component","../src/components/ScalarIcon/icons/Users.svg?component","../src/components/ScalarIcon/icons/Versions.svg?component","../src/components/ScalarIcon/icons/Wallet.svg?component","../src/components/ScalarIcon/icons/Watch.svg?component","../src/components/ScalarIcon/icons/Workspace.svg?component","../src/components/ScalarIcon/icons/programming-framework-angular.svg?component","../src/components/ScalarIcon/icons/programming-framework-astro.svg?component","../src/components/ScalarIcon/icons/programming-framework-laravel.svg?component","../src/components/ScalarIcon/icons/programming-framework-nextdotjs.svg?component","../src/components/ScalarIcon/icons/programming-framework-react.svg?component","../src/components/ScalarIcon/icons/programming-framework-vuedotjs.svg?component","../src/components/ScalarIcon/icons/programming-language-c.svg?component","../src/components/ScalarIcon/icons/programming-language-clojure.svg?component","../src/components/ScalarIcon/icons/programming-language-csharp.svg?component","../src/components/ScalarIcon/icons/programming-language-css3.svg?component","../src/components/ScalarIcon/icons/programming-language-dart.svg?component","../src/components/ScalarIcon/icons/programming-language-fsharp.svg?component","../src/components/ScalarIcon/icons/programming-language-go.svg?component","../src/components/ScalarIcon/icons/programming-language-html5.svg?component","../src/components/ScalarIcon/icons/programming-language-http.svg?component","../src/components/ScalarIcon/icons/programming-language-java.svg?component","../src/components/ScalarIcon/icons/programming-language-javascript.svg?component","../src/components/ScalarIcon/icons/programming-language-json.svg?component","../src/components/ScalarIcon/icons/programming-language-kotlin.svg?component","../src/components/ScalarIcon/icons/programming-language-node.svg?component","../src/components/ScalarIcon/icons/programming-language-objc.svg?component","../src/components/ScalarIcon/icons/programming-language-ocaml.svg?component","../src/components/ScalarIcon/icons/programming-language-php.svg?component","../src/components/ScalarIcon/icons/programming-language-powershell.svg?component","../src/components/ScalarIcon/icons/programming-language-python.svg?component","../src/components/ScalarIcon/icons/programming-language-r.svg?component","../src/components/ScalarIcon/icons/programming-language-ruby.svg?component","../src/components/ScalarIcon/icons/programming-language-rust.svg?component","../src/components/ScalarIcon/icons/programming-language-scala.svg?component","../src/components/ScalarIcon/icons/programming-language-shell.svg?component","../src/components/ScalarIcon/icons/programming-language-swift.svg?component","../src/components/ScalarIcon/icons/programming-language-typescript.svg?component","../src/components/ScalarIcon/icons/programming-script-code.svg?component","../src/components/ScalarIcon/icons/programming-tool-git.svg?component","../src/components/ScalarIcon/icons/programming-tool-tailwindcss.svg?component","../src/components/ScalarIcon/logos/Adonisjs.svg?component","../src/components/ScalarIcon/logos/Astro.svg?component","../src/components/ScalarIcon/logos/Docusaurus.svg?component","../src/components/ScalarIcon/logos/Dotnet.svg?component","../src/components/ScalarIcon/logos/Elysiajs.svg?component","../src/components/ScalarIcon/logos/Express.svg?component","../src/components/ScalarIcon/logos/Fastapi.svg?component","../src/components/ScalarIcon/logos/Fastify.svg?component","../src/components/ScalarIcon/logos/Go.svg?component","../src/components/ScalarIcon/logos/Hono.svg?component","../src/components/ScalarIcon/logos/Laravel.svg?component","../src/components/ScalarIcon/logos/Litestar.svg?component","../src/components/ScalarIcon/logos/Nestjs.svg?component","../src/components/ScalarIcon/logos/Nextjs.svg?component","../src/components/ScalarIcon/logos/Nitro.svg?component","../src/components/ScalarIcon/logos/Nuxt.svg?component","../src/components/ScalarIcon/logos/Openapi.svg?component","../src/components/ScalarIcon/logos/Platformatic.svg?component","../src/components/ScalarIcon/logos/React.svg?component","../src/components/ScalarIcon/logos/Rust.svg?component","../src/components/ScalarIcon/logos/Svelte.svg?component","../src/components/ScalarIcon/logos/Vue.svg?component","../src/components/ScalarIcon/utils/index.ts","../src/components/ScalarIcon/variants.ts","../src/components/ScalarIcon/ScalarIcon.vue","../src/components/ScalarIcon/ScalarIcon.vue","../src/components/ScalarIcon/ScalarIconLegacyAdapter.vue","../src/components/ScalarIcon/ScalarIconLegacyAdapter.vue","../src/components/ScalarTooltip/constants.ts","../src/components/ScalarTooltip/useTooltip.ts","../src/components/ScalarTooltip/ScalarHotkeyTooltip.vue","../src/components/ScalarTooltip/ScalarHotkeyTooltip.vue","../src/components/ScalarTooltip/ScalarTooltip.vue","../src/components/ScalarTooltip/ScalarTooltip.vue","../src/components/ScalarIconButton/ScalarIconButton.vue","../src/components/ScalarIconButton/ScalarIconButton.vue","../src/components/ScalarMarkdown/ScalarMarkdown.vue","../src/components/ScalarMarkdown/ScalarMarkdown.vue","../src/components/ScalarMarkdown/ScalarMarkdownSummary.vue","../src/components/ScalarMarkdown/ScalarMarkdownSummary.vue","../src/components/ScalarMenu/ScalarMenuButton.vue","../src/components/ScalarMenu/ScalarMenuButton.vue","../src/components/ScalarMenu/ScalarMenuProduct.vue","../src/components/ScalarMenu/ScalarMenuProduct.vue","../src/components/ScalarMenu/ScalarMenuProducts.vue","../src/components/ScalarMenu/ScalarMenuProducts.vue","../src/components/ScalarMenu/ScalarMenuLink.vue","../src/components/ScalarMenu/ScalarMenuLink.vue","../src/components/ScalarMenu/ScalarMenuSection.vue","../src/components/ScalarMenu/ScalarMenuSection.vue","../src/components/ScalarMenu/ScalarMenuResources.vue","../src/components/ScalarMenu/ScalarMenuResources.vue","../src/components/ScalarMenu/ScalarMenu.vue","../src/components/ScalarMenu/ScalarMenu.vue","../src/components/ScalarMenu/ScalarMenuSupport.vue","../src/components/ScalarMenu/ScalarMenuSupport.vue","../src/components/ScalarMenu/ScalarMenuTeamProfile.vue","../src/components/ScalarMenu/ScalarMenuTeamProfile.vue","../src/components/ScalarMenu/ScalarMenuTeamPicker.vue","../src/components/ScalarMenu/ScalarMenuTeamPicker.vue","../src/components/ScalarMenu/ScalarMenuWorkspacePicker.vue","../src/components/ScalarMenu/ScalarMenuWorkspacePicker.vue","../src/components/ScalarModal/ScalarModal.vue","../src/components/ScalarModal/ScalarModal.vue","../src/components/ScalarPopover/ScalarPopover.vue","../src/components/ScalarPopover/ScalarPopover.vue","../src/components/ScalarSearchInput/ScalarSearchInput.vue","../src/components/ScalarSearchInput/ScalarSearchInput.vue","../src/components/ScalarSearchResults/ScalarSearchResultItem.vue","../src/components/ScalarSearchResults/ScalarSearchResultItem.vue","../src/components/ScalarSearchResults/ScalarSearchResultList.vue","../src/components/ScalarSearchResults/ScalarSearchResultList.vue","../src/components/ScalarSidebar/ScalarSidebar.vue","../src/components/ScalarSidebar/ScalarSidebar.vue","../src/components/ScalarSidebar/ScalarSidebarIndent.vue","../src/components/ScalarSidebar/ScalarSidebarIndent.vue","../src/components/ScalarSidebar/ScalarSidebarButton.vue","../src/components/ScalarSidebar/ScalarSidebarButton.vue","../src/components/ScalarSidebar/ScalarSidebarFooter.vue","../src/components/ScalarSidebar/ScalarSidebarFooter.vue","../src/components/ScalarSidebar/ScalarSidebarGroupToggle.vue","../src/components/ScalarSidebar/ScalarSidebarGroupToggle.vue","../src/components/ScalarSidebar/useSidebarGroups.ts","../src/components/ScalarSidebar/ScalarSidebarGroup.vue","../src/components/ScalarSidebar/ScalarSidebarGroup.vue","../src/components/ScalarSidebar/ScalarSidebarItem.vue","../src/components/ScalarSidebar/ScalarSidebarItem.vue","../src/components/ScalarSidebar/useSidebarNestedItems.ts","../src/components/ScalarSidebar/ScalarSidebarItems.vue","../src/components/ScalarSidebar/ScalarSidebarItems.vue","../src/components/ScalarSidebar/ScalarSidebarSpacer.vue","../src/components/ScalarSidebar/ScalarSidebarSpacer.vue","../src/components/ScalarSidebar/findScrollContainer.ts","../src/components/ScalarSidebar/ScalarSidebarNestedItems.vue","../src/components/ScalarSidebar/ScalarSidebarNestedItems.vue","../src/components/ScalarSidebar/ScalarSidebarSearchButton.vue","../src/components/ScalarSidebar/ScalarSidebarSearchButton.vue","../src/components/ScalarSidebar/ScalarSidebarSearchInput.vue","../src/components/ScalarSidebar/ScalarSidebarSearchInput.vue","../src/components/ScalarSidebar/ScalarSidebarSection.vue","../src/components/ScalarSidebar/ScalarSidebarSection.vue","../src/components/ScalarTextArea/ScalarTextArea.vue","../src/components/ScalarTextArea/ScalarTextArea.vue","../src/components/ScalarTextInput/ScalarTextInput.vue","../src/components/ScalarTextInput/ScalarTextInput.vue","../src/components/ScalarTextInput/ScalarTextInputCopy.vue","../src/components/ScalarTextInput/ScalarTextInputCopy.vue","../src/components/ScalarThemeSwatches/useThemeSwatches.ts","../src/components/ScalarThemeSwatches/ScalarThemeSwatches.vue","../src/components/ScalarThemeSwatches/ScalarThemeSwatches.vue","../src/components/ScalarToggle/ScalarToggle.vue","../src/components/ScalarToggle/ScalarToggle.vue","../src/components/ScalarToggle/ScalarToggleInput.vue","../src/components/ScalarToggle/ScalarToggleInput.vue","../src/components/ScalarToggle/ScalarToggleGroup.vue","../src/components/ScalarToggle/ScalarToggleGroup.vue","../src/components/ScalarVirtualText/ScalarVirtualText.vue","../src/components/ScalarVirtualText/ScalarVirtualText.vue","../src/components/ScalarWrappingText/constants.ts","../src/components/ScalarWrappingText/ScalarWrappingText.vue","../src/components/ScalarWrappingText/ScalarWrappingText.vue","../src/helpers/add-scalar-classes.ts","../src/index.ts"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Loading Component\n *\n * Displays a loading state for the application\n *\n * @example\n * import { ScalarLoading, useLoadingState } from '@scalar/components'\n *\n * const loader = useLoadingState()\n * loader.start()\n * ...\n * <ScalarLoading :loader=\"loader\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { VariantProps } from 'cva'\n\nimport type { LoadingState } from './types'\n\ntype Variants = VariantProps<typeof variants>\n\ndefineProps<{\n loader?: LoadingState\n size?: Variants['size']\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst variants = cva({\n variants: {\n size: {\n 'xs': 'size-3',\n 'sm': 'size-3.5',\n 'md': 'size-4',\n 'lg': 'size-5',\n 'xl': 'size-6',\n '2xl': 'size-8',\n '3xl': 'size-10',\n 'full': 'size-full',\n },\n },\n defaultVariants: {\n size: 'full',\n },\n})\n</script>\n<template>\n <div\n v-if=\"loader\"\n v-bind=\"cx('loader-wrapper', variants({ size }))\">\n <svg\n class=\"svg-loader\"\n :class=\"{\n 'icon-is-valid': loader.isValid,\n 'icon-is-invalid': loader.isInvalid,\n }\"\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <path\n class=\"svg-path svg-check-mark\"\n d=\"m 0 60 l 30 30 l 70 -80\" />\n <path\n class=\"svg-path svg-x-mark\"\n d=\"m 50 50 l 40 -40\" />\n <path\n class=\"svg-path svg-x-mark\"\n d=\"m 50 50 l 40 40\" />\n <path\n class=\"svg-path svg-x-mark\"\n d=\"m 50 50 l -40 -40\" />\n <path\n class=\"svg-path svg-x-mark\"\n d=\"m 50 50 l -40 40\" />\n <g class=\"circular-loader\">\n <circle\n class=\"loader-path\"\n :class=\"{\n 'loader-path-off': !loader.isLoading,\n }\"\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"20\"\n stroke-width=\"3\" />\n </g>\n </svg>\n </div>\n</template>\n<style scoped>\n.loader-wrapper {\n position: relative;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n --loader-size: 50%;\n}\n\n/*SVG Positioning for Loader Objects*/\n.svg-loader {\n width: var(--loader-size);\n height: var(--loader-size);\n top: 1rem;\n right: 0.9rem;\n overflow: visible;\n\n fill: none;\n background-color: transparent;\n stroke: currentColor;\n}\n\n.svg-path {\n stroke-width: 12;\n fill: none;\n transition: 0.3s;\n}\n\n.svg-x-mark {\n stroke-dasharray: 57;\n stroke-dashoffset: 57;\n transition-delay: 0s;\n}\n\n.svg-check-mark {\n stroke-dasharray: 149;\n stroke-dashoffset: 149;\n transition-delay: 0s;\n}\n\n.icon-is-invalid .svg-x-mark {\n stroke-dashoffset: 0;\n transition-delay: 0.3s;\n}\n\n.icon-is-valid .svg-check-mark {\n stroke-dashoffset: 0;\n transition-delay: 0.3s;\n}\n\n.circular-loader {\n animation:\n rotate 0.7s linear infinite,\n fade-in 0.4s;\n\n transform-origin: center center;\n transform: scale(3.5);\n\n background: transparent;\n}\n\n.loader-path {\n stroke-dasharray: 50, 200;\n stroke-dashoffset: -100;\n stroke-linecap: round;\n}\n\n.loader-path-off {\n stroke-dasharray: 50, 200;\n stroke-dashoffset: -100;\n transition: opacity 0.3s;\n opacity: 0;\n}\n\n@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 70% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes rotate {\n from {\n transform: scale(3.5) rotate(0deg);\n }\n to {\n transform: scale(3.5) rotate(360deg);\n }\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Loading Component\n *\n * Displays a loading state for the application\n *\n * @example\n * import { ScalarLoading, useLoadingState } from '@scalar/components'\n *\n * const loader = useLoadingState()\n * loader.start()\n * ...\n * <ScalarLoading :loader=\"loader\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { VariantProps } from 'cva'\n\nimport type { LoadingState } from './types'\n\ntype Variants = VariantProps<typeof variants>\n\ndefineProps<{\n loader?: LoadingState\n size?: Variants['size']\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst variants = cva({\n variants: {\n size: {\n 'xs': 'size-3',\n 'sm': 'size-3.5',\n 'md': 'size-4',\n 'lg': 'size-5',\n 'xl': 'size-6',\n '2xl': 'size-8',\n '3xl': 'size-10',\n 'full': 'size-full',\n },\n },\n defaultVariants: {\n size: 'full',\n },\n})\n</script>\n<template>\n <div\n v-if=\"loader\"\n v-bind=\"cx('loader-wrapper', variants({ size }))\">\n <svg\n class=\"svg-loader\"\n :class=\"{\n 'icon-is-valid': loader.isValid,\n 'icon-is-invalid': loader.isInvalid,\n }\"\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <path\n class=\"svg-path svg-check-mark\"\n d=\"m 0 60 l 30 30 l 70 -80\" />\n <path\n class=\"svg-path svg-x-mark\"\n d=\"m 50 50 l 40 -40\" />\n <path\n class=\"svg-path svg-x-mark\"\n d=\"m 50 50 l 40 40\" />\n <path\n class=\"svg-path svg-x-mark\"\n d=\"m 50 50 l -40 -40\" />\n <path\n class=\"svg-path svg-x-mark\"\n d=\"m 50 50 l -40 40\" />\n <g class=\"circular-loader\">\n <circle\n class=\"loader-path\"\n :class=\"{\n 'loader-path-off': !loader.isLoading,\n }\"\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"20\"\n stroke-width=\"3\" />\n </g>\n </svg>\n </div>\n</template>\n<style scoped>\n.loader-wrapper {\n position: relative;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n --loader-size: 50%;\n}\n\n/*SVG Positioning for Loader Objects*/\n.svg-loader {\n width: var(--loader-size);\n height: var(--loader-size);\n top: 1rem;\n right: 0.9rem;\n overflow: visible;\n\n fill: none;\n background-color: transparent;\n stroke: currentColor;\n}\n\n.svg-path {\n stroke-width: 12;\n fill: none;\n transition: 0.3s;\n}\n\n.svg-x-mark {\n stroke-dasharray: 57;\n stroke-dashoffset: 57;\n transition-delay: 0s;\n}\n\n.svg-check-mark {\n stroke-dasharray: 149;\n stroke-dashoffset: 149;\n transition-delay: 0s;\n}\n\n.icon-is-invalid .svg-x-mark {\n stroke-dashoffset: 0;\n transition-delay: 0.3s;\n}\n\n.icon-is-valid .svg-check-mark {\n stroke-dashoffset: 0;\n transition-delay: 0.3s;\n}\n\n.circular-loader {\n animation:\n rotate 0.7s linear infinite,\n fade-in 0.4s;\n\n transform-origin: center center;\n transform: scale(3.5);\n\n background: transparent;\n}\n\n.loader-path {\n stroke-dasharray: 50, 200;\n stroke-dashoffset: -100;\n stroke-linecap: round;\n}\n\n.loader-path-off {\n stroke-dasharray: 50, 200;\n stroke-dashoffset: -100;\n transition: opacity 0.3s;\n opacity: 0;\n}\n\n@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 70% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes rotate {\n from {\n transform: scale(3.5) rotate(0deg);\n }\n to {\n transform: scale(3.5) rotate(360deg);\n }\n}\n</style>\n","import { reactive } from 'vue'\n\nimport type { LoadingState } from './types'\n\n/**\n * Creates a reactive loading state for the ScalarLoading component\n *\n * @returns The loading state\n */\nexport function useLoadingState() {\n return reactive<LoadingState>({\n isValid: false,\n isInvalid: false,\n isLoading: false,\n isActive: false,\n start() {\n this.isLoading = true\n this.isActive = true\n this.isInvalid = false\n this.isValid = false\n },\n validate(opts = {}) {\n const { duration = 1100, persist = false } = opts\n this.isLoading = false\n this.isInvalid = false\n this.isValid = true\n this.isActive = true\n const diff = persist ? duration : duration - 300\n // Allow chaining after animation\n return new Promise((res) =>\n persist ? setTimeout(() => res(), diff) : setTimeout(() => this.clear().then(() => res()), diff),\n )\n },\n invalidate(opts = {}) {\n const { duration = 1100, persist = false } = opts ?? {}\n this.isLoading = false\n this.isValid = false\n this.isInvalid = true\n this.isActive = true\n const diff = persist ? duration : duration - 300\n // Allow chaining after animation\n return new Promise((res) =>\n persist ? setTimeout(() => res(), diff) : setTimeout(() => this.clear().then(() => res()), diff),\n )\n },\n clear(opts = {}) {\n const { duration = 300 } = opts\n this.isValid = false\n this.isInvalid = false\n this.isLoading = false\n // Allow chaining after animation\n return new Promise((res) => {\n setTimeout(() => {\n this.isActive = false\n res()\n }, duration)\n })\n },\n })\n}\n","import type { ButtonVariant, ClassList } from './types'\n\n/** Styles for the different button variants */\nexport const BUTTON_VARIANT_STYLES = {\n solid: [\n 'scalar-button-solid',\n 'bg-b-btn text-c-btn focus-visible:border-c-btn active:bg-b-btn hover:bg-h-btn outline-offset-1',\n ],\n outlined: ['scalar-button-outlined', 'active:bg-btn-1 shadow-border bg-b-1 text-c-1 hover:bg-b-2'],\n ghost: ['scalar-button-ghost', 'bg-transparent text-c-3 active:text-c-1 hover:text-c-1'],\n gradient: [\n 'scalar-button-gradient',\n 'shadow-border bg-b-1.5 bg-linear-to-b from-b-1 to-b-2 hover:bg-linear-to-t',\n // in dark mode we want to reverse the gradient direction\n 'dark:bg-linear-to-t dark:hover:bg-linear-to-b',\n ],\n danger: ['scalar-button-danger', 'bg-c-danger text-white active:brightness-90 hover:brightness-90'],\n} as const satisfies Record<ButtonVariant, ClassList>\n","<script lang=\"ts\">\n/**\n * Scalar Button Component\n *\n * Provides a styled button, if you are looking for\n * an icon only button, use ScalarIconButton instead,\n * it's a helpful wrapper around this component\n *\n * @example\n * <ScalarButton>\n * <!-- Button label -->\n * </ScalarButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarLoading } from '../ScalarLoading'\nimport { BUTTON_VARIANT_STYLES } from './constants'\nimport type { ButtonSize, ClassList, ScalarButtonProps } from './types'\n\nconst {\n is = 'button',\n size = 'md',\n variant = 'solid',\n} = defineProps<ScalarButtonProps>()\n\n/** Variant styles for the button (wrapper) */\nconst buttonVariants = cva({\n base: 'scalar-button flex cursor-pointer items-center justify-center rounded font-medium -outline-offset-1',\n variants: {\n disabled: { true: 'bg-b-2 text-color-3 shadow-none' },\n size: {\n xs: 'px-2 py-1 text-xs/4',\n sm: 'px-3.5 py-2 text-sm/4',\n md: 'px-5 py-3 text-sm/4',\n } satisfies Record<ButtonSize, ClassList>,\n variant: BUTTON_VARIANT_STYLES,\n },\n compoundVariants: [\n {\n disabled: true,\n variant: ['solid', 'outlined', 'ghost', 'gradient', 'danger'],\n class:\n 'bg-b-2 text-c-3 shadow-none hover:bg-b-[_] cursor-not-allowed active:bg-b-[_] hover:text-c-[_] active:text-c-[_]',\n },\n {\n disabled: true,\n variant: ['gradient'],\n class:\n 'to-b-1.5 bg-linear-to-b hover:bg-linear-to-b dark:hover:bg-linear-to-t',\n },\n ],\n})\n\n/** Variant styles for the button icon */\nconst iconVariants = cva({\n base: 'shrink-0',\n variants: {\n size: {\n xs: 'size-2.75 -ml-0.25 mr-1',\n sm: 'size-3.25 -ml-0.5 mr-1.5',\n md: 'size-3.5 -ml-0.5 mr-1.5',\n } satisfies Record<ButtonSize, ClassList>,\n },\n})\n\n/** Variant styles for the loading icon */\nconst loadingVariants = cva({\n variants: {\n size: {\n xs: 'size-4',\n sm: 'size-5',\n md: 'size-6',\n } satisfies Record<ButtonSize, ClassList>,\n },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n :aria-disabled=\"disabled || undefined\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"\n cx(buttonVariants({ disabled, size, variant }), {\n relative: loader?.isActive,\n })\n \">\n <div\n v-if=\"$slots.icon || icon\"\n :class=\"[iconVariants({ size }), { invisible: loader?.isActive }]\">\n <slot name=\"icon\">\n <component\n :is=\"icon\"\n class=\"size-full\" />\n </slot>\n </div>\n <span\n v-if=\"loader\"\n :class=\"{ invisible: loader?.isActive }\">\n <slot />\n </span>\n <slot v-else />\n <div\n v-if=\"loader?.isActive\"\n class=\"centered\">\n <ScalarLoading\n :class=\"loadingVariants({ size })\"\n :loader />\n </div>\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Button Component\n *\n * Provides a styled button, if you are looking for\n * an icon only button, use ScalarIconButton instead,\n * it's a helpful wrapper around this component\n *\n * @example\n * <ScalarButton>\n * <!-- Button label -->\n * </ScalarButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarLoading } from '../ScalarLoading'\nimport { BUTTON_VARIANT_STYLES } from './constants'\nimport type { ButtonSize, ClassList, ScalarButtonProps } from './types'\n\nconst {\n is = 'button',\n size = 'md',\n variant = 'solid',\n} = defineProps<ScalarButtonProps>()\n\n/** Variant styles for the button (wrapper) */\nconst buttonVariants = cva({\n base: 'scalar-button flex cursor-pointer items-center justify-center rounded font-medium -outline-offset-1',\n variants: {\n disabled: { true: 'bg-b-2 text-color-3 shadow-none' },\n size: {\n xs: 'px-2 py-1 text-xs/4',\n sm: 'px-3.5 py-2 text-sm/4',\n md: 'px-5 py-3 text-sm/4',\n } satisfies Record<ButtonSize, ClassList>,\n variant: BUTTON_VARIANT_STYLES,\n },\n compoundVariants: [\n {\n disabled: true,\n variant: ['solid', 'outlined', 'ghost', 'gradient', 'danger'],\n class:\n 'bg-b-2 text-c-3 shadow-none hover:bg-b-[_] cursor-not-allowed active:bg-b-[_] hover:text-c-[_] active:text-c-[_]',\n },\n {\n disabled: true,\n variant: ['gradient'],\n class:\n 'to-b-1.5 bg-linear-to-b hover:bg-linear-to-b dark:hover:bg-linear-to-t',\n },\n ],\n})\n\n/** Variant styles for the button icon */\nconst iconVariants = cva({\n base: 'shrink-0',\n variants: {\n size: {\n xs: 'size-2.75 -ml-0.25 mr-1',\n sm: 'size-3.25 -ml-0.5 mr-1.5',\n md: 'size-3.5 -ml-0.5 mr-1.5',\n } satisfies Record<ButtonSize, ClassList>,\n },\n})\n\n/** Variant styles for the loading icon */\nconst loadingVariants = cva({\n variants: {\n size: {\n xs: 'size-4',\n sm: 'size-5',\n md: 'size-6',\n } satisfies Record<ButtonSize, ClassList>,\n },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n :aria-disabled=\"disabled || undefined\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"\n cx(buttonVariants({ disabled, size, variant }), {\n relative: loader?.isActive,\n })\n \">\n <div\n v-if=\"$slots.icon || icon\"\n :class=\"[iconVariants({ size }), { invisible: loader?.isActive }]\">\n <slot name=\"icon\">\n <component\n :is=\"icon\"\n class=\"size-full\" />\n </slot>\n </div>\n <span\n v-if=\"loader\"\n :class=\"{ invisible: loader?.isActive }\">\n <slot />\n </span>\n <slot v-else />\n <div\n v-if=\"loader?.isActive\"\n class=\"centered\">\n <ScalarLoading\n :class=\"loadingVariants({ size })\"\n :loader />\n </div>\n </component>\n</template>\n","import { type InjectionKey, type Ref, inject, provide, ref } from 'vue'\n\n/**\n * Tracks the region heading id for card accessibility\n */\nconst CARD_Heading_SYMBOL = Symbol() as InjectionKey<Ref<string | undefined>>\n\n/**\n * Set the region heading id for a ScalarCardHeader component.\n *\n * This should be called from ScalarCardHeader components.\n */\nexport const useCardHeading = (id: string) => {\n const region = inject(CARD_Heading_SYMBOL, undefined)\n if (region) {\n region.value = id\n }\n}\n\n/**\n * Get the region heading id if set.\n *\n * This should be called from ScalarCard components.\n */\nexport const useCardRegion = () => {\n // Create a new ref for any child nested items to update\n const id = ref<string>()\n provide(CARD_Heading_SYMBOL, id)\n\n return {\n /** The region heading id ref */\n id,\n }\n}\n","<script lang=\"ts\">\n/**\n * Scalar card component\n *\n * Creates an aria region using the nearest ScalarCardHeader as the label\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/region_role\n *\n * @example\n * <ScalarCard>\n * <ScalarCardHeader>Header</ScalarCardHeader>\n * <ScalarCardSection>Content</ScalarCardSection>\n * <ScalarCardFooter>Footer</ScalarCardFooter>\n * </ScalarCard>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { useCardRegion } from './useCardHeading'\n\nconst { label } = defineProps<{\n /** The a11y label for the card region */\n label?: string\n}>()\n\n// Get the id for the nearest ScalarCardHeader if it exists\nconst { id } = useCardRegion()\n\nconst labelAttrs = computed(() => {\n if (label) {\n // If a label is provided, use it\n return { 'aria-label': label }\n }\n if (id.value) {\n // If no label is provided, use the heading id\n return { 'aria-labelledby': id.value }\n }\n // If no label or heading id is provided, don't add any aria attributes\n return {}\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"group\"\n v-bind=\"{\n ...labelAttrs,\n ...cx(\n 'scalar-card bg-b-2 flex flex-col divide-y rounded-xl border *:first:rounded-t-[inherit] *:last:rounded-b-[inherit]',\n ),\n }\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar card component\n *\n * Creates an aria region using the nearest ScalarCardHeader as the label\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/region_role\n *\n * @example\n * <ScalarCard>\n * <ScalarCardHeader>Header</ScalarCardHeader>\n * <ScalarCardSection>Content</ScalarCardSection>\n * <ScalarCardFooter>Footer</ScalarCardFooter>\n * </ScalarCard>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { useCardRegion } from './useCardHeading'\n\nconst { label } = defineProps<{\n /** The a11y label for the card region */\n label?: string\n}>()\n\n// Get the id for the nearest ScalarCardHeader if it exists\nconst { id } = useCardRegion()\n\nconst labelAttrs = computed(() => {\n if (label) {\n // If a label is provided, use it\n return { 'aria-label': label }\n }\n if (id.value) {\n // If no label is provided, use the heading id\n return { 'aria-labelledby': id.value }\n }\n // If no label or heading id is provided, don't add any aria attributes\n return {}\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"group\"\n v-bind=\"{\n ...labelAttrs,\n ...cx(\n 'scalar-card bg-b-2 flex flex-col divide-y rounded-xl border *:first:rounded-t-[inherit] *:last:rounded-b-[inherit]',\n ),\n }\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar card section component\n *\n * A generic section of a ScalarCard component, provides the base for ScalarCardHeader and ScalarCardFooter\n *\n * @example\n * <ScalarCard>\n * ...\n * <ScalarCardSection>Content</ScalarCardSection>\n * ...\n * </ScalarCard>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('scalar-card-content flex overflow-auto')\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar card section component\n *\n * A generic section of a ScalarCard component, provides the base for ScalarCardHeader and ScalarCardFooter\n *\n * @example\n * <ScalarCard>\n * ...\n * <ScalarCardSection>Content</ScalarCardSection>\n * ...\n * </ScalarCard>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('scalar-card-content flex overflow-auto')\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar card footer component\n *\n * @example\n * <ScalarCard>\n * ...\n * <ScalarCardFooter>Footer</ScalarCardFooter>\n * </ScalarCard>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarCardSection from './ScalarCardSection.vue'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <ScalarCardSection v-bind=\"cx('scalar-card-footer')\">\n <slot />\n </ScalarCardSection>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar card footer component\n *\n * @example\n * <ScalarCard>\n * ...\n * <ScalarCardFooter>Footer</ScalarCardFooter>\n * </ScalarCard>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarCardSection from './ScalarCardSection.vue'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <ScalarCardSection v-bind=\"cx('scalar-card-footer')\">\n <slot />\n </ScalarCardSection>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar card header component\n *\n * Will automatically be used as the aria-labelledby for the parent ScalarCard component\n *\n * @example\n * <ScalarCard>\n * <ScalarCardHeader>Header</ScalarCardHeader>\n * ...\n * </ScalarCard>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useId } from 'vue'\n\nimport ScalarCardSection from './ScalarCardSection.vue'\nimport { useCardHeading } from './useCardHeading'\n\n/**\n * Scalar Card Header - Header section for cards with automatic accessibility setup\n */\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n// Get a unique id for the heading\nconst id = useId()\n\n// Set the heading id for the card\nuseCardHeading(id)\n</script>\n<template>\n <ScalarCardSection\n v-bind=\"\n cx(\n 'scalar-card-header leading-[22px] font-medium py-[6.75px] px-3 shrink-0',\n )\n \">\n <div\n :id=\"id\"\n class=\"scalar-card-header-title min-w-0 flex-1 truncate\">\n <slot />\n </div>\n <div\n v-if=\"$slots.actions\"\n class=\"flex\">\n <slot name=\"actions\" />\n </div>\n </ScalarCardSection>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar card header component\n *\n * Will automatically be used as the aria-labelledby for the parent ScalarCard component\n *\n * @example\n * <ScalarCard>\n * <ScalarCardHeader>Header</ScalarCardHeader>\n * ...\n * </ScalarCard>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useId } from 'vue'\n\nimport ScalarCardSection from './ScalarCardSection.vue'\nimport { useCardHeading } from './useCardHeading'\n\n/**\n * Scalar Card Header - Header section for cards with automatic accessibility setup\n */\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n// Get a unique id for the heading\nconst id = useId()\n\n// Set the heading id for the card\nuseCardHeading(id)\n</script>\n<template>\n <ScalarCardSection\n v-bind=\"\n cx(\n 'scalar-card-header leading-[22px] font-medium py-[6.75px] px-3 shrink-0',\n )\n \">\n <div\n :id=\"id\"\n class=\"scalar-card-header-title min-w-0 flex-1 truncate\">\n <slot />\n </div>\n <div\n v-if=\"$slots.actions\"\n class=\"flex\">\n <slot name=\"actions\" />\n </div>\n </ScalarCardSection>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar checkbox base component\n *\n * Provides a styled visual checkbox but not the underlying input element.\n *\n * This is used internally by the ScalarCheckboxInput component.\n *\n * If you're looking to create an interactive checkbox you\n * probably want the ScalarCheckboxInput component.\n *\n * @example\n * <ScalarCheckbox :selected=\"state\" type=\"radio\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCheck } from '@scalar/icons'\n\nimport type { ScalarCheckboxType } from './types'\n\nconst { type = 'checkbox' } = defineProps<{\n selected?: boolean\n type?: ScalarCheckboxType\n}>()\n</script>\n<template>\n <div\n class=\"flex size-4 items-center justify-center p-0.75\"\n :class=\"[\n selected ? 'bg-c-accent text-b-1' : 'text-transparent shadow-border',\n type === 'checkbox' ? 'rounded' : 'rounded-full',\n ]\">\n <ScalarIconCheck\n v-if=\"selected\"\n class=\"size-3\"\n weight=\"bold\" />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar checkbox base component\n *\n * Provides a styled visual checkbox but not the underlying input element.\n *\n * This is used internally by the ScalarCheckboxInput component.\n *\n * If you're looking to create an interactive checkbox you\n * probably want the ScalarCheckboxInput component.\n *\n * @example\n * <ScalarCheckbox :selected=\"state\" type=\"radio\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCheck } from '@scalar/icons'\n\nimport type { ScalarCheckboxType } from './types'\n\nconst { type = 'checkbox' } = defineProps<{\n selected?: boolean\n type?: ScalarCheckboxType\n}>()\n</script>\n<template>\n <div\n class=\"flex size-4 items-center justify-center p-0.75\"\n :class=\"[\n selected ? 'bg-c-accent text-b-1' : 'text-transparent shadow-border',\n type === 'checkbox' ? 'rounded' : 'rounded-full',\n ]\">\n <ScalarIconCheck\n v-if=\"selected\"\n class=\"size-3\"\n weight=\"bold\" />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Form component\n *\n * A form for creating and editing data.\n *\n * Automatically calls preventDefault on the form submit event.\n *\n * @example\n * <ScalarForm>\n * <!-- Form content -->\n * </ScalarForm>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineEmits<{\n /** Emitted when the form is submitted */\n (e: 'submit', event: SubmitEvent): void\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <form\n v-bind=\"cx('flex flex-col')\"\n @submit.prevent=\"$emit('submit', $event as SubmitEvent)\">\n <slot />\n </form>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Form component\n *\n * A form for creating and editing data.\n *\n * Automatically calls preventDefault on the form submit event.\n *\n * @example\n * <ScalarForm>\n * <!-- Form content -->\n * </ScalarForm>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineEmits<{\n /** Emitted when the form is submitted */\n (e: 'submit', event: SubmitEvent): void\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <form\n v-bind=\"cx('flex flex-col')\"\n @submit.prevent=\"$emit('submit', $event as SubmitEvent)\">\n <slot />\n </form>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconWarning, ScalarIconWarningCircle } from '@scalar/icons'\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { type Component, computed } from 'vue'\n\nconst { variant = 'error', icon } = defineProps<{\n /** The variant of the error */\n variant?: 'error' | 'warning'\n /** Whether to show the icon */\n icon?: Component | undefined\n}>()\n\nconst iconIs = computed(() => {\n if (icon) {\n return icon\n }\n return variant === 'error' ? ScalarIconWarningCircle : ScalarIconWarning\n})\n\nconst variants = cva({\n base: 'flex items-baseline gap-1.5 rounded border p-2',\n variants: {\n variant: {\n error: 'border-c-danger bg-b-danger text-c-danger',\n warning: 'border-c-alert bg-b-alert text-c-alert',\n },\n },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"alert\"\n v-bind=\"cx(variants({ variant }))\">\n <component\n :is=\"iconIs\"\n class=\"relative top-0.5 shrink-0\"\n weight=\"bold\" />\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconWarning, ScalarIconWarningCircle } from '@scalar/icons'\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { type Component, computed } from 'vue'\n\nconst { variant = 'error', icon } = defineProps<{\n /** The variant of the error */\n variant?: 'error' | 'warning'\n /** Whether to show the icon */\n icon?: Component | undefined\n}>()\n\nconst iconIs = computed(() => {\n if (icon) {\n return icon\n }\n return variant === 'error' ? ScalarIconWarningCircle : ScalarIconWarning\n})\n\nconst variants = cva({\n base: 'flex items-baseline gap-1.5 rounded border p-2',\n variants: {\n variant: {\n error: 'border-c-danger bg-b-danger text-c-danger',\n warning: 'border-c-alert bg-b-alert text-c-alert',\n },\n },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"alert\"\n v-bind=\"cx(variants({ variant }))\">\n <component\n :is=\"iconIs\"\n class=\"relative top-0.5 shrink-0\"\n weight=\"bold\" />\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Form Field component\n *\n * A single form input field with a label.\n *\n * @example\n * <ScalarFormField>\n * <template #label>Input Label</template>\n * <ScalarTextInput ... />\n * </ScalarFormField>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nconst { is = 'label' } = defineProps<{\n is?: string | Component\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n v-bind=\"cx('flex flex-col gap-1.5 rounded')\">\n <div\n v-if=\"$slots.label\"\n class=\"flex items-start justify-between gap-2 text-sm/none text-c-1 whitespace-nowrap font-medium\">\n <slot name=\"label\" />\n </div>\n <slot />\n <span\n v-if=\"$slots.below\"\n :class=\"cx('-mt-1.5 text-sm')\">\n <slot name=\"below\" />\n </span>\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Form Field component\n *\n * A single form input field with a label.\n *\n * @example\n * <ScalarFormField>\n * <template #label>Input Label</template>\n * <ScalarTextInput ... />\n * </ScalarFormField>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nconst { is = 'label' } = defineProps<{\n is?: string | Component\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n v-bind=\"cx('flex flex-col gap-1.5 rounded')\">\n <div\n v-if=\"$slots.label\"\n class=\"flex items-start justify-between gap-2 text-sm/none text-c-1 whitespace-nowrap font-medium\">\n <slot name=\"label\" />\n </div>\n <slot />\n <span\n v-if=\"$slots.below\"\n :class=\"cx('-mt-1.5 text-sm')\">\n <slot name=\"below\" />\n </span>\n </component>\n</template>\n","import { type InjectionKey, inject, provide } from 'vue'\n\n/**\n * Tells a ScalarFormInput component that it is in a form group.\n */\nconst FORM_GROUP_SYMBOL = Symbol() as InjectionKey<boolean>\n\n/**\n * Check if we're in a form group.\n *\n * This is called from ScalarFormInput components.\n */\nexport const useFormGroupInput = () => {\n return inject(FORM_GROUP_SYMBOL, false)\n}\n\n/**\n * Set that this is a form group.\n *\n * This is called from ScalarFormInputGroup components.\n */\nexport const useFormGroup = () => {\n provide(FORM_GROUP_SYMBOL, true)\n}\n","<script lang=\"ts\">\n/**\n * Scalar form input base component\n *\n * Provides a base for styling scalar form inputs and buttons\n *\n * This is used internally by the ScalarTextInput component and others\n * If you want a text input consider using this component\n *\n * Renders a button by default can be used to render any kind of input or input wrapper\n *\n * @example\n * <ScalarFormInput />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport { useFormGroupInput } from './useFormGroups'\n\nconst { is = 'button' } = defineProps<{\n is?: string | Component\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst grouped = useFormGroupInput()\n\nconst variants = cva({\n base: [\n // Layout\n 'bg-b-1.5 flex items-center text-c-2 gap-0.75 p-3 text-base',\n //Focus\n 'outline-offset-[-1px] has-[:focus-visible]:outline',\n ],\n variants: {\n grouped: {\n true: 'first:rounded-t-[inherit] last:rounded-b-[inherit]',\n false: 'rounded shadow-border',\n },\n button: { true: 'cursor-pointer hover:bg-b-2' },\n },\n})\n</script>\n<template>\n <component\n :is=\"is\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx(variants({ button: is === 'button', grouped }))\">\n <slot />\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar form input base component\n *\n * Provides a base for styling scalar form inputs and buttons\n *\n * This is used internally by the ScalarTextInput component and others\n * If you want a text input consider using this component\n *\n * Renders a button by default can be used to render any kind of input or input wrapper\n *\n * @example\n * <ScalarFormInput />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport { useFormGroupInput } from './useFormGroups'\n\nconst { is = 'button' } = defineProps<{\n is?: string | Component\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst grouped = useFormGroupInput()\n\nconst variants = cva({\n base: [\n // Layout\n 'bg-b-1.5 flex items-center text-c-2 gap-0.75 p-3 text-base',\n //Focus\n 'outline-offset-[-1px] has-[:focus-visible]:outline',\n ],\n variants: {\n grouped: {\n true: 'first:rounded-t-[inherit] last:rounded-b-[inherit]',\n false: 'rounded shadow-border',\n },\n button: { true: 'cursor-pointer hover:bg-b-2' },\n },\n})\n</script>\n<template>\n <component\n :is=\"is\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx(variants({ button: is === 'button', grouped }))\">\n <slot />\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Form Group component\n *\n * Groups a set of ScalarFormInput or their derived components.\n *\n * @example\n * <ScalarFormInputGroup>\n * <!-- Inputs... -->\n * </ScalarFormInputGroup>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport { useFormGroup } from './useFormGroups'\n\nconst { is = 'div' } = defineProps<{\n /** The element to render\n *\n * If you want to use the group outside of a ScalarFormField,\n * you can set this to 'fieldset'.\n *\n * @default 'div'\n */\n is?: string | Component\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nuseFormGroup()\n</script>\n<template>\n <component\n :is=\"is\"\n v-bind=\"cx('flex flex-col border rounded divide-y')\">\n <slot />\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Form Group component\n *\n * Groups a set of ScalarFormInput or their derived components.\n *\n * @example\n * <ScalarFormInputGroup>\n * <!-- Inputs... -->\n * </ScalarFormInputGroup>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport { useFormGroup } from './useFormGroups'\n\nconst { is = 'div' } = defineProps<{\n /** The element to render\n *\n * If you want to use the group outside of a ScalarFormField,\n * you can set this to 'fieldset'.\n *\n * @default 'div'\n */\n is?: string | Component\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nuseFormGroup()\n</script>\n<template>\n <component\n :is=\"is\"\n v-bind=\"cx('flex flex-col border rounded divide-y')\">\n <slot />\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Form Section component\n *\n * A collection of form fields grouped together with a title.\n *\n * @example\n * <ScalarFormSection>\n * <template #label>Section Label</template>\n * <!-- Section content -->\n * </ScalarFormSection>\n */\nexport default {}\n</script>\n<template>\n <fieldset class=\"flex min-w-0 flex-col gap-3\">\n <!-- Legend and flexbox have some issues -->\n <legend class=\"contents\">\n <span class=\"text-base font-medium text-c-1\">\n <slot name=\"label\" />\n </span>\n </legend>\n <slot />\n </fieldset>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Form Section component\n *\n * A collection of form fields grouped together with a title.\n *\n * @example\n * <ScalarFormSection>\n * <template #label>Section Label</template>\n * <!-- Section content -->\n * </ScalarFormSection>\n */\nexport default {}\n</script>\n<template>\n <fieldset class=\"flex min-w-0 flex-col gap-3\">\n <!-- Legend and flexbox have some issues -->\n <legend class=\"contents\">\n <span class=\"text-base font-medium text-c-1\">\n <slot name=\"label\" />\n </span>\n </legend>\n <slot />\n </fieldset>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Checkbox Input component\n *\n * A wrapper around the HTML input element for either checkboxes or radio buttons.\n *\n * @example\n * <ScalarCheckboxInput v-model=\"model\" type=\"checkbox\">\n * Option Label\n * </ScalarCheckboxInput>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarFormInput } from '../ScalarForm'\nimport ScalarCheckbox from './ScalarCheckbox.vue'\nimport type { ScalarCheckboxType } from './types'\n\nconst { type = 'checkbox' } = defineProps<{\n type?: ScalarCheckboxType\n}>()\n\nconst model = defineModel<boolean>()\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n</script>\n<template>\n <ScalarFormInput\n is=\"label\"\n v-bind=\"\n stylingAttrsCx('cursor-pointer gap-2 hover:bg-b-2', { 'text-c-1': model })\n \">\n <ScalarCheckbox\n class=\"shrink-0\"\n :selected=\"model\"\n :type />\n <div class=\"flex-1 text-left min-w-0 truncate\"><slot /></div>\n <input\n v-model=\"model\"\n class=\"sr-only\"\n :type\n v-bind=\"otherAttrs\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Checkbox Input component\n *\n * A wrapper around the HTML input element for either checkboxes or radio buttons.\n *\n * @example\n * <ScalarCheckboxInput v-model=\"model\" type=\"checkbox\">\n * Option Label\n * </ScalarCheckboxInput>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarFormInput } from '../ScalarForm'\nimport ScalarCheckbox from './ScalarCheckbox.vue'\nimport type { ScalarCheckboxType } from './types'\n\nconst { type = 'checkbox' } = defineProps<{\n type?: ScalarCheckboxType\n}>()\n\nconst model = defineModel<boolean>()\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n</script>\n<template>\n <ScalarFormInput\n is=\"label\"\n v-bind=\"\n stylingAttrsCx('cursor-pointer gap-2 hover:bg-b-2', { 'text-c-1': model })\n \">\n <ScalarCheckbox\n class=\"shrink-0\"\n :selected=\"model\"\n :type />\n <div class=\"flex-1 text-left min-w-0 truncate\"><slot /></div>\n <input\n v-model=\"model\"\n class=\"sr-only\"\n :type\n v-bind=\"otherAttrs\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Checkbox Group component\n *\n * A group of checkbox inputs allowing for multiple selections.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nimport { ScalarFormInputGroup } from '../ScalarForm'\nimport ScalarCheckboxInput from './ScalarCheckboxInput.vue'\nimport type { ScalarCheckboxOption } from './types'\n\nconst { options = [] } = defineProps<{\n options?: ScalarCheckboxOption[]\n}>()\n\nconst model = defineModel<ScalarCheckboxOption[]>({ default: [] })\n\nconst name = useId()\n</script>\n<template>\n <ScalarFormInputGroup>\n <ScalarCheckboxInput\n v-for=\"option in options\"\n :key=\"option.value\"\n :modelValue=\"model?.some(({ value }) => value === option.value)\"\n :name\n :value=\"option.value\"\n @update:modelValue=\"\n (checked) =>\n (model = checked\n ? [...model, option]\n : model.filter(({ value }) => value !== option.value))\n \">\n {{ option.label }}\n </ScalarCheckboxInput>\n </ScalarFormInputGroup>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Checkbox Group component\n *\n * A group of checkbox inputs allowing for multiple selections.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nimport { ScalarFormInputGroup } from '../ScalarForm'\nimport ScalarCheckboxInput from './ScalarCheckboxInput.vue'\nimport type { ScalarCheckboxOption } from './types'\n\nconst { options = [] } = defineProps<{\n options?: ScalarCheckboxOption[]\n}>()\n\nconst model = defineModel<ScalarCheckboxOption[]>({ default: [] })\n\nconst name = useId()\n</script>\n<template>\n <ScalarFormInputGroup>\n <ScalarCheckboxInput\n v-for=\"option in options\"\n :key=\"option.value\"\n :modelValue=\"model?.some(({ value }) => value === option.value)\"\n :name\n :value=\"option.value\"\n @update:modelValue=\"\n (checked) =>\n (model = checked\n ? [...model, option]\n : model.filter(({ value }) => value !== option.value))\n \">\n {{ option.label }}\n </ScalarCheckboxInput>\n </ScalarFormInputGroup>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Checkbox Radio Group component\n *\n * A group of radio inputs allowing for single selection.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nimport { ScalarFormInputGroup } from '../ScalarForm'\nimport ScalarCheckboxInput from './ScalarCheckboxInput.vue'\nimport type { ScalarCheckboxOption } from './types'\n\nconst { options = [] } = defineProps<{\n options?: ScalarCheckboxOption[]\n}>()\n\nconst model = defineModel<ScalarCheckboxOption>()\n\nconst name = useId()\n</script>\n<template>\n <ScalarFormInputGroup>\n <ScalarCheckboxInput\n v-for=\"option in options\"\n :key=\"option.value\"\n :modelValue=\"model?.value === option.value\"\n :name\n type=\"radio\"\n :value=\"option.value\"\n @update:modelValue=\"(checked) => (model = checked ? option : undefined)\">\n {{ option.label }}\n </ScalarCheckboxInput>\n </ScalarFormInputGroup>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Checkbox Radio Group component\n *\n * A group of radio inputs allowing for single selection.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nimport { ScalarFormInputGroup } from '../ScalarForm'\nimport ScalarCheckboxInput from './ScalarCheckboxInput.vue'\nimport type { ScalarCheckboxOption } from './types'\n\nconst { options = [] } = defineProps<{\n options?: ScalarCheckboxOption[]\n}>()\n\nconst model = defineModel<ScalarCheckboxOption>()\n\nconst name = useId()\n</script>\n<template>\n <ScalarFormInputGroup>\n <ScalarCheckboxInput\n v-for=\"option in options\"\n :key=\"option.value\"\n :modelValue=\"model?.value === option.value\"\n :name\n type=\"radio\"\n :value=\"option.value\"\n @update:modelValue=\"(checked) => (model = checked ? option : undefined)\">\n {{ option.label }}\n </ScalarCheckboxInput>\n </ScalarFormInputGroup>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Copy Backdrop component\n *\n * A backdrop for the copy button label, this component can be\n * used to override the default backdrop with a custom one.\n *\n * @example\n * <ScalarCopy>\n * <template #backdrop>\n * <ScalarCopyBackdrop class=\"bg-b-2\" />\n * </template>\n * </ScalarCopy>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('absolute inset-y-0.5 -z-2 left-0 right-0 bg-b-1 rounded')\" />\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Copy Backdrop component\n *\n * A backdrop for the copy button label, this component can be\n * used to override the default backdrop with a custom one.\n *\n * @example\n * <ScalarCopy>\n * <template #backdrop>\n * <ScalarCopyBackdrop class=\"bg-b-2\" />\n * </template>\n * </ScalarCopy>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('absolute inset-y-0.5 -z-2 left-0 right-0 bg-b-1 rounded')\" />\n</template>\n","<script lang=\"ts\" setup>\nimport ScalarCopyBackdrop from '@/components/ScalarCopy/ScalarCopyBackdrop.vue'\nimport { standardLanguages, syntaxHighlight } from '@scalar/code-highlight'\nimport { prettyPrintJson } from '@scalar/helpers/json/pretty-print-json'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useId } from 'vue'\n\nimport { ScalarCodeBlockCopy } from '../ScalarCodeBlock'\nimport type { StandardLanguageKey } from './types'\n\ntype BaseProps = {\n content?: string | object\n prettyPrintedContent?: string\n lang?: StandardLanguageKey | string\n lineNumbers?: boolean\n hideCredentials?: string | string[]\n copy?: 'always' | 'hover' | false\n}\n\n/**\n * Uses highlight.js for syntax highlighting\n *\n * Requires at least one of content or prettyPrintedContent\n */\nconst {\n lang = 'plaintext',\n lineNumbers = false,\n copy = 'hover',\n content,\n prettyPrintedContent,\n hideCredentials,\n} = defineProps<\n BaseProps &\n (\n | {\n /** Raw unformatted object or string content */\n content: string | object\n }\n | {\n /**\n * Pre-pretty printed content string for better performance\n *\n * Avoids unnecessary costly re-serialization of large content\n */\n prettyPrintedContent: string\n }\n )\n>()\n\n/** Base id for the code block */\nconst id = useId()\n\n/** Formatted the content into an indented json string */\nconst prettyContent = computed(\n () => prettyPrintedContent || prettyPrintJson(content ?? ''),\n)\n\nconst highlightedCode = computed(() => {\n const html = syntaxHighlight(prettyContent.value, {\n lang: lang.trim(),\n languages: standardLanguages,\n lineNumbers: lineNumbers,\n maskCredentials: hideCredentials,\n })\n\n // Need to remove the wrapping <pre> element so we can use v-html without another wrapper\n return html.slice(5, -6)\n})\n\n/** Determine if the content is a single line */\nconst isOneLine = computed(() => !prettyContent.value.includes('\\n'))\n\nconst isContentValid = computed(() => {\n return (\n prettyContent.value !== null &&\n prettyContent.value !== 'null' &&\n prettyContent.value !== '404 Not Found'\n )\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'scalar-code-block group/code-block flex flex-col',\n 'relative bg-b-1 min-h-0 min-w-0 focus-visible:outline',\n )\n \">\n <div\n tabindex=\"0\"\n class=\"custom-scroll overflow-x-auto p-2 -outline-offset-2 min-h-0 min-w-0 flex-1\">\n <pre\n :id=\"id\"\n class=\"m-0 bg-transparent text-nowrap whitespace-pre w-fit\"\n v-html=\"highlightedCode\" />\n </div>\n <ScalarCodeBlockCopy\n v-if=\"copy && isContentValid\"\n class=\"scalar-code-copy absolute\"\n :class=\"[\n isOneLine\n ? 'top-[calc(10px+0.5lh)] -translate-y-1/2 m-0 right-1'\n : 'top-2.5 right-2.5',\n { 'opacity-100': copy === 'always' },\n ]\"\n :content=\"prettyContent\"\n :showLang=\"!isOneLine\"\n :lang=\"lang\"\n :aria-controls=\"id\">\n <template #backdrop>\n <ScalarCopyBackdrop\n class=\"scalar-code-copy-backdrop\"\n :class=\"[\n isOneLine\n ? '-inset-y-0.75 -right-1 group-hocus-within/code-block:-left-0.5 left-3'\n : '-right-1.5 -top-1',\n ]\" />\n </template>\n </ScalarCodeBlockCopy>\n </div>\n</template>\n<style>\n@reference '../../style.css';\n@import '@scalar/code-highlight/css/code.css';\n\n/** Make the copy button label backdrop match the background */\n.scalar-code-block.bg-b-1 .scalar-code-copy-backdrop {\n @apply bg-b-1;\n}\n.scalar-code-block.bg-b-2 .scalar-code-copy-backdrop {\n @apply bg-b-2;\n}\n/** Make the copy button one shade darker than the background */\n.scalar-code-block.bg-b-2 .scalar-code-copy {\n @apply bg-b-3;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport ScalarCopyBackdrop from '@/components/ScalarCopy/ScalarCopyBackdrop.vue'\nimport { standardLanguages, syntaxHighlight } from '@scalar/code-highlight'\nimport { prettyPrintJson } from '@scalar/helpers/json/pretty-print-json'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useId } from 'vue'\n\nimport { ScalarCodeBlockCopy } from '../ScalarCodeBlock'\nimport type { StandardLanguageKey } from './types'\n\ntype BaseProps = {\n content?: string | object\n prettyPrintedContent?: string\n lang?: StandardLanguageKey | string\n lineNumbers?: boolean\n hideCredentials?: string | string[]\n copy?: 'always' | 'hover' | false\n}\n\n/**\n * Uses highlight.js for syntax highlighting\n *\n * Requires at least one of content or prettyPrintedContent\n */\nconst {\n lang = 'plaintext',\n lineNumbers = false,\n copy = 'hover',\n content,\n prettyPrintedContent,\n hideCredentials,\n} = defineProps<\n BaseProps &\n (\n | {\n /** Raw unformatted object or string content */\n content: string | object\n }\n | {\n /**\n * Pre-pretty printed content string for better performance\n *\n * Avoids unnecessary costly re-serialization of large content\n */\n prettyPrintedContent: string\n }\n )\n>()\n\n/** Base id for the code block */\nconst id = useId()\n\n/** Formatted the content into an indented json string */\nconst prettyContent = computed(\n () => prettyPrintedContent || prettyPrintJson(content ?? ''),\n)\n\nconst highlightedCode = computed(() => {\n const html = syntaxHighlight(prettyContent.value, {\n lang: lang.trim(),\n languages: standardLanguages,\n lineNumbers: lineNumbers,\n maskCredentials: hideCredentials,\n })\n\n // Need to remove the wrapping <pre> element so we can use v-html without another wrapper\n return html.slice(5, -6)\n})\n\n/** Determine if the content is a single line */\nconst isOneLine = computed(() => !prettyContent.value.includes('\\n'))\n\nconst isContentValid = computed(() => {\n return (\n prettyContent.value !== null &&\n prettyContent.value !== 'null' &&\n prettyContent.value !== '404 Not Found'\n )\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'scalar-code-block group/code-block flex flex-col',\n 'relative bg-b-1 min-h-0 min-w-0 focus-visible:outline',\n )\n \">\n <div\n tabindex=\"0\"\n class=\"custom-scroll overflow-x-auto p-2 -outline-offset-2 min-h-0 min-w-0 flex-1\">\n <pre\n :id=\"id\"\n class=\"m-0 bg-transparent text-nowrap whitespace-pre w-fit\"\n v-html=\"highlightedCode\" />\n </div>\n <ScalarCodeBlockCopy\n v-if=\"copy && isContentValid\"\n class=\"scalar-code-copy absolute\"\n :class=\"[\n isOneLine\n ? 'top-[calc(10px+0.5lh)] -translate-y-1/2 m-0 right-1'\n : 'top-2.5 right-2.5',\n { 'opacity-100': copy === 'always' },\n ]\"\n :content=\"prettyContent\"\n :showLang=\"!isOneLine\"\n :lang=\"lang\"\n :aria-controls=\"id\">\n <template #backdrop>\n <ScalarCopyBackdrop\n class=\"scalar-code-copy-backdrop\"\n :class=\"[\n isOneLine\n ? '-inset-y-0.75 -right-1 group-hocus-within/code-block:-left-0.5 left-3'\n : '-right-1.5 -top-1',\n ]\" />\n </template>\n </ScalarCodeBlockCopy>\n </div>\n</template>\n<style>\n@reference '../../style.css';\n@import '@scalar/code-highlight/css/code.css';\n\n/** Make the copy button label backdrop match the background */\n.scalar-code-block.bg-b-1 .scalar-code-copy-backdrop {\n @apply bg-b-1;\n}\n.scalar-code-block.bg-b-2 .scalar-code-copy-backdrop {\n @apply bg-b-2;\n}\n/** Make the copy button one shade darker than the background */\n.scalar-code-block.bg-b-2 .scalar-code-copy {\n @apply bg-b-3;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Copy Button component\n *\n * A dumb button with copy animations.\n *\n * If you're looking for a button that copies content to the clipboard,\n * use the ScalarCopy component instead.\n *\n * @example\n * <ScalarCopyButton @click=\"handleCopy\">\n * <template #copy>Button label</template>\n * <template #copied>Copied label</template>\n * </ScalarCopyButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCheck, ScalarIconCopy } from '@scalar/icons'\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport ScalarCopyBackdrop from './ScalarCopyBackdrop.vue'\nimport type { ScalarCopyPlacement, ScalarCopySlots } from './types'\n\nconst { placement = 'right' } = defineProps<{\n /** Whether the label should be shown on hover or always */\n showLabel?: boolean\n /** The placement of the copy button */\n placement?: ScalarCopyPlacement\n}>()\n\ndefineSlots<ScalarCopySlots>()\n\n/** Whether the copy button has been clicked */\nconst copied = defineModel<boolean>('copied', { default: false })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst icon = computed<ScalarIconComponent>(() => {\n return copied.value ? ScalarIconCheck : ScalarIconCopy\n})\n</script>\n<template>\n <button\n type=\"button\"\n v-bind=\"\n cx(\n 'group/copy-button relative z-0 flex items-center justify-center',\n 'size-6 p-1.25 -m-1 rounded text-xs bg-b-2',\n copied ? 'text-c-1' : 'text-c-2 hover:text-c-1',\n )\n \">\n <Transition\n enterActiveClass=\"transition-transform\"\n enterFromClass=\"scale-0\"\n enterToClass=\"scale-100\"\n leaveActiveClass=\"transition-transform\"\n leaveFromClass=\"scale-100\"\n leaveToClass=\"scale-0\"\n mode=\"out-in\">\n <component\n :is=\"icon\"\n class=\"size-full\" />\n </Transition>\n <div class=\"bg-inherit rounded-[inherit] absolute inset-0 -z-1\" />\n <div\n class=\"group/copy-label absolute flex items-center -inset-y-0.5 rounded\"\n :class=\"{\n 'left-0 pl-[100%]': placement === 'right',\n 'right-0 pr-[100%]': placement === 'left',\n }\">\n <div\n aria-hidden=\"true\"\n class=\"flex items-center py-1.5 mask-y-from-[calc(100%-8px)] mask-y-to-100%\">\n <Transition\n enterActiveClass=\"transition-transform ease-out\"\n enterFromClass=\"translate-y-1.5\"\n enterToClass=\"translate-y-0\"\n leaveActiveClass=\"transition-transform ease-in\"\n leaveFromClass=\"translate-y-0\"\n leaveToClass=\"-translate-y-1.5\"\n mode=\"out-in\">\n <div\n v-if=\"copied\"\n class=\"whitespace-nowrap px-1.5\">\n <slot name=\"copied\">Copied</slot>\n </div>\n <div\n v-else\n class=\"whitespace-nowrap px-1.5\"\n :class=\"{\n 'group-hocus/copy-button:block hidden': !showLabel && !copied,\n }\">\n <slot name=\"copy\">Copy</slot>\n </div>\n </Transition>\n </div>\n <div\n v-if=\"copied\"\n class=\"sr-only\"\n role=\"alert\">\n <slot name=\"copied\">Copied</slot>\n </div>\n <div\n v-else\n class=\"sr-only\">\n <slot name=\"copy\">Copy</slot>\n </div>\n <slot name=\"backdrop\">\n <ScalarCopyBackdrop />\n </slot>\n </div>\n </button>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Copy Button component\n *\n * A dumb button with copy animations.\n *\n * If you're looking for a button that copies content to the clipboard,\n * use the ScalarCopy component instead.\n *\n * @example\n * <ScalarCopyButton @click=\"handleCopy\">\n * <template #copy>Button label</template>\n * <template #copied>Copied label</template>\n * </ScalarCopyButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCheck, ScalarIconCopy } from '@scalar/icons'\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport ScalarCopyBackdrop from './ScalarCopyBackdrop.vue'\nimport type { ScalarCopyPlacement, ScalarCopySlots } from './types'\n\nconst { placement = 'right' } = defineProps<{\n /** Whether the label should be shown on hover or always */\n showLabel?: boolean\n /** The placement of the copy button */\n placement?: ScalarCopyPlacement\n}>()\n\ndefineSlots<ScalarCopySlots>()\n\n/** Whether the copy button has been clicked */\nconst copied = defineModel<boolean>('copied', { default: false })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst icon = computed<ScalarIconComponent>(() => {\n return copied.value ? ScalarIconCheck : ScalarIconCopy\n})\n</script>\n<template>\n <button\n type=\"button\"\n v-bind=\"\n cx(\n 'group/copy-button relative z-0 flex items-center justify-center',\n 'size-6 p-1.25 -m-1 rounded text-xs bg-b-2',\n copied ? 'text-c-1' : 'text-c-2 hover:text-c-1',\n )\n \">\n <Transition\n enterActiveClass=\"transition-transform\"\n enterFromClass=\"scale-0\"\n enterToClass=\"scale-100\"\n leaveActiveClass=\"transition-transform\"\n leaveFromClass=\"scale-100\"\n leaveToClass=\"scale-0\"\n mode=\"out-in\">\n <component\n :is=\"icon\"\n class=\"size-full\" />\n </Transition>\n <div class=\"bg-inherit rounded-[inherit] absolute inset-0 -z-1\" />\n <div\n class=\"group/copy-label absolute flex items-center -inset-y-0.5 rounded\"\n :class=\"{\n 'left-0 pl-[100%]': placement === 'right',\n 'right-0 pr-[100%]': placement === 'left',\n }\">\n <div\n aria-hidden=\"true\"\n class=\"flex items-center py-1.5 mask-y-from-[calc(100%-8px)] mask-y-to-100%\">\n <Transition\n enterActiveClass=\"transition-transform ease-out\"\n enterFromClass=\"translate-y-1.5\"\n enterToClass=\"translate-y-0\"\n leaveActiveClass=\"transition-transform ease-in\"\n leaveFromClass=\"translate-y-0\"\n leaveToClass=\"-translate-y-1.5\"\n mode=\"out-in\">\n <div\n v-if=\"copied\"\n class=\"whitespace-nowrap px-1.5\">\n <slot name=\"copied\">Copied</slot>\n </div>\n <div\n v-else\n class=\"whitespace-nowrap px-1.5\"\n :class=\"{\n 'group-hocus/copy-button:block hidden': !showLabel && !copied,\n }\">\n <slot name=\"copy\">Copy</slot>\n </div>\n </Transition>\n </div>\n <div\n v-if=\"copied\"\n class=\"sr-only\"\n role=\"alert\">\n <slot name=\"copied\">Copied</slot>\n </div>\n <div\n v-else\n class=\"sr-only\">\n <slot name=\"copy\">Copy</slot>\n </div>\n <slot name=\"backdrop\">\n <ScalarCopyBackdrop />\n </slot>\n </div>\n </button>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Copy component\n *\n * Provides a copy button and copies content to the clipboard.\n *\n * @example\n * <ScalarCopy>\n * <template #copy>Button label</template>\n * <template #copied>Copied label</template>\n * </ScalarCopy>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useClipboard } from '@vueuse/core'\nimport { onMounted, watch } from 'vue'\n\nimport ScalarCopyButton from './ScalarCopyButton.vue'\nimport type { ScalarCopyProps, ScalarCopySlots } from './types'\n\nconst {\n content = '',\n duration = 1500,\n immediate,\n} = defineProps<ScalarCopyProps>()\n\ndefineSlots<ScalarCopySlots>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\nonMounted(() => {\n if (immediate) copy(content)\n})\n\nconst { copy, copied: clipboardCopied } = useClipboard({\n legacy: true,\n copiedDuring: duration,\n})\n\n/** Watch the clipboard copied state and emit it to the consuming component */\nwatch(clipboardCopied, (v) => (copied.value = v))\n</script>\n<template>\n <ScalarCopyButton\n :copied=\"copied || clipboardCopied\"\n :placement\n :showLabel\n @click=\"copy(content)\">\n <template\n v-if=\"$slots.copy\"\n #copy>\n <slot name=\"copy\" />\n </template>\n <template\n v-if=\"$slots.copied\"\n #copied>\n <slot name=\"copied\" />\n </template>\n <template\n v-if=\"$slots.backdrop\"\n #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopyButton>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Copy component\n *\n * Provides a copy button and copies content to the clipboard.\n *\n * @example\n * <ScalarCopy>\n * <template #copy>Button label</template>\n * <template #copied>Copied label</template>\n * </ScalarCopy>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useClipboard } from '@vueuse/core'\nimport { onMounted, watch } from 'vue'\n\nimport ScalarCopyButton from './ScalarCopyButton.vue'\nimport type { ScalarCopyProps, ScalarCopySlots } from './types'\n\nconst {\n content = '',\n duration = 1500,\n immediate,\n} = defineProps<ScalarCopyProps>()\n\ndefineSlots<ScalarCopySlots>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\nonMounted(() => {\n if (immediate) copy(content)\n})\n\nconst { copy, copied: clipboardCopied } = useClipboard({\n legacy: true,\n copiedDuring: duration,\n})\n\n/** Watch the clipboard copied state and emit it to the consuming component */\nwatch(clipboardCopied, (v) => (copied.value = v))\n</script>\n<template>\n <ScalarCopyButton\n :copied=\"copied || clipboardCopied\"\n :placement\n :showLabel\n @click=\"copy(content)\">\n <template\n v-if=\"$slots.copy\"\n #copy>\n <slot name=\"copy\" />\n </template>\n <template\n v-if=\"$slots.copied\"\n #copied>\n <slot name=\"copied\" />\n </template>\n <template\n v-if=\"$slots.backdrop\"\n #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopyButton>\n</template>\n","import type { StandardLanguageKey } from './types'\n\n/** Labels for the standard languages */\nexport const LANGUAGE_LABELS = {\n bash: 'Bash',\n c: 'C',\n clojure: 'Clojure',\n cpp: 'C++',\n csharp: 'C#',\n css: 'CSS',\n curl: 'cURL',\n dart: 'Dart',\n diff: 'Diff',\n docker: 'Docker',\n dockerfile: 'Dockerfile',\n elixir: 'Elixir',\n fsharp: 'F#',\n go: 'Go',\n graphql: 'GraphQL',\n haskell: 'Haskell',\n html: 'HTML',\n http: 'HTTP',\n ini: 'INI',\n java: 'Java',\n javascript: 'JavaScript',\n json: 'JSON',\n kotlin: 'Kotlin',\n less: 'Less',\n lua: 'Lua',\n makefile: 'Makefile',\n markdown: 'Markdown',\n matlab: 'MATLAB',\n nginx: 'Nginx',\n objectivec: 'Objective-C',\n ocaml: 'OCaml',\n perl: 'Perl',\n php: 'PHP',\n plaintext: 'Plain Text',\n powershell: 'PowerShell',\n properties: 'Properties',\n python: 'Python',\n r: 'R',\n ruby: 'Ruby',\n rust: 'Rust',\n scala: 'Scala',\n scss: 'SCSS',\n shell: 'Shell',\n sql: 'SQL',\n swift: 'Swift',\n toml: 'TOML',\n typescript: 'TypeScript',\n xml: 'XML',\n yaml: 'YAML',\n} as const satisfies Record<StandardLanguageKey, string>\n","<script setup lang=\"ts\">\nimport { ScalarCopy } from '@/components/ScalarCopy'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { LANGUAGE_LABELS } from './constants'\nimport type { StandardLanguageKey } from './types'\n\nconst { content } = defineProps<{\n /** Whether to show the language label */\n showLang?: boolean\n /** Content to copy to clipboard */\n content: string | object\n /** Language of the code block */\n lang?: StandardLanguageKey | string\n}>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\n/** Handles the copy button click */\nconst contentToCopy = computed<string>(() => {\n return typeof content === 'string'\n ? content\n : JSON.stringify(content, null, 2)\n})\n\n/** Type guard to check if the language is a standard language */\nconst isStandardLanguage = (lang: string): lang is StandardLanguageKey =>\n lang in LANGUAGE_LABELS\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n\n<template>\n <ScalarCopy\n :content=\"contentToCopy\"\n showLabel\n v-model:copied=\"copied\"\n placement=\"left\"\n v-bind=\"{\n ...cx(\n copied\n ? 'opacity-100'\n : 'opacity-0 group-hocus-within/code-block:opacity-100',\n ),\n }\">\n <template\n v-if=\"lang\"\n #copy>\n <span class=\"hidden group-hocus-within/code-block:inline\">\n <span\n v-if=\"showLang\"\n class=\"group-hocus/copy-button:sr-only\"\n :class=\"{ capitalize: !isStandardLanguage(lang) }\">\n {{ isStandardLanguage(lang) ? LANGUAGE_LABELS[lang] : lang }}\n </span>\n <span\n :class=\"{\n 'group-hocus/copy-button:not-sr-only sr-only': showLang,\n }\"\n >Copy</span\n >\n </span>\n </template>\n <template #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopy>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarCopy } from '@/components/ScalarCopy'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { LANGUAGE_LABELS } from './constants'\nimport type { StandardLanguageKey } from './types'\n\nconst { content } = defineProps<{\n /** Whether to show the language label */\n showLang?: boolean\n /** Content to copy to clipboard */\n content: string | object\n /** Language of the code block */\n lang?: StandardLanguageKey | string\n}>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\n/** Handles the copy button click */\nconst contentToCopy = computed<string>(() => {\n return typeof content === 'string'\n ? content\n : JSON.stringify(content, null, 2)\n})\n\n/** Type guard to check if the language is a standard language */\nconst isStandardLanguage = (lang: string): lang is StandardLanguageKey =>\n lang in LANGUAGE_LABELS\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n\n<template>\n <ScalarCopy\n :content=\"contentToCopy\"\n showLabel\n v-model:copied=\"copied\"\n placement=\"left\"\n v-bind=\"{\n ...cx(\n copied\n ? 'opacity-100'\n : 'opacity-0 group-hocus-within/code-block:opacity-100',\n ),\n }\">\n <template\n v-if=\"lang\"\n #copy>\n <span class=\"hidden group-hocus-within/code-block:inline\">\n <span\n v-if=\"showLang\"\n class=\"group-hocus/copy-button:sr-only\"\n :class=\"{ capitalize: !isStandardLanguage(lang) }\">\n {{ isStandardLanguage(lang) ? LANGUAGE_LABELS[lang] : lang }}\n </span>\n <span\n :class=\"{\n 'group-hocus/copy-button:not-sr-only sr-only': showLang,\n }\"\n >Copy</span\n >\n </span>\n </template>\n <template #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopy>\n</template>\n","<script lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { type Component, computed } from 'vue'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type ScalarColorModeToggle from './ScalarColorModeToggle.vue'\n\n/**\n * Scalar Color Mode Toggle Icon component\n *\n * An icon that toggles between a sun and moon.\n *\n * If you need a toggle that is aware of and sets color mode,\n * you want {@link ScalarColorModeToggle} instead.\n *\n * @example\n * <ScalarColorModeToggleIcon v-model=\"isDarkMode\" />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nconst { is = 'button', mode = 'light' } = defineProps<{\n /** The element or component this component should render as. */\n is?: string | Component\n /** Whether the toggle is a sun or moon icon */\n mode?: 'light' | 'dark'\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst ariaLabel = computed<string>(() =>\n mode === 'dark' ? 'Set light mode' : 'Set dark mode',\n)\n</script>\n<template>\n <!-- Icon -->\n <component\n :is=\"is\"\n :aria-label=\"ariaLabel\"\n :class=\"`toggle-icon-${mode}`\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx('size-3 flex items-center justify-center text-c-1')\">\n <span class=\"toggle-icon-sun-ray\" />\n <span class=\"toggle-icon-sun-ray\" />\n <span class=\"toggle-icon-sun-ray\" />\n <span class=\"toggle-icon-sun-ray\" />\n <span class=\"toggle-icon-ellipse\">\n <span class=\"toggle-icon-moon-mask\" />\n </span>\n </component>\n</template>\n<style scoped>\n.toggle-icon-ellipse {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n box-shadow: inset 0 0 0 1px currentColor;\n overflow: hidden;\n position: relative;\n background: var(--scalar-background-1);\n display: inline-block;\n transition:\n width 0.3s ease-in-out,\n height 0.3s ease-in-out;\n}\n.toggle-icon-moon-mask {\n width: 100%;\n height: 100%;\n border: 1px solid currentColor;\n display: block;\n left: 2.5px;\n bottom: 2.5px;\n position: absolute;\n border-radius: 50%;\n background: var(--scalar-background-1);\n transition: transform 0.3s ease-in-out;\n transform: translate3d(4px, -4px, 0);\n}\n.toggle-icon-sun-ray {\n width: 12px;\n height: 1px;\n border-radius: 8px;\n background: currentColor;\n position: absolute;\n transition: transform 0.3s ease-in-out;\n}\n.toggle-icon-sun-ray:nth-of-type(2) {\n transform: rotate(90deg);\n}\n.toggle-icon-sun-ray:nth-of-type(3) {\n transform: rotate(45deg);\n}\n.toggle-icon-sun-ray:nth-of-type(4) {\n transform: rotate(-45deg);\n}\n.toggle-icon-dark .toggle-icon-ellipse {\n width: 10px;\n height: 10px;\n mask-image: radial-gradient(\n circle at bottom left,\n pink 10px,\n transparent 12px\n );\n}\n.toggle-icon-dark .toggle-icon-sun-ray {\n transform: scale(0);\n}\n.toggle-icon-dark .toggle-icon-moon-mask {\n transform: translate3d(0, 0, 0);\n}\n</style>\n","<script lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { type Component, computed } from 'vue'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type ScalarColorModeToggle from './ScalarColorModeToggle.vue'\n\n/**\n * Scalar Color Mode Toggle Icon component\n *\n * An icon that toggles between a sun and moon.\n *\n * If you need a toggle that is aware of and sets color mode,\n * you want {@link ScalarColorModeToggle} instead.\n *\n * @example\n * <ScalarColorModeToggleIcon v-model=\"isDarkMode\" />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nconst { is = 'button', mode = 'light' } = defineProps<{\n /** The element or component this component should render as. */\n is?: string | Component\n /** Whether the toggle is a sun or moon icon */\n mode?: 'light' | 'dark'\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst ariaLabel = computed<string>(() =>\n mode === 'dark' ? 'Set light mode' : 'Set dark mode',\n)\n</script>\n<template>\n <!-- Icon -->\n <component\n :is=\"is\"\n :aria-label=\"ariaLabel\"\n :class=\"`toggle-icon-${mode}`\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx('size-3 flex items-center justify-center text-c-1')\">\n <span class=\"toggle-icon-sun-ray\" />\n <span class=\"toggle-icon-sun-ray\" />\n <span class=\"toggle-icon-sun-ray\" />\n <span class=\"toggle-icon-sun-ray\" />\n <span class=\"toggle-icon-ellipse\">\n <span class=\"toggle-icon-moon-mask\" />\n </span>\n </component>\n</template>\n<style scoped>\n.toggle-icon-ellipse {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n box-shadow: inset 0 0 0 1px currentColor;\n overflow: hidden;\n position: relative;\n background: var(--scalar-background-1);\n display: inline-block;\n transition:\n width 0.3s ease-in-out,\n height 0.3s ease-in-out;\n}\n.toggle-icon-moon-mask {\n width: 100%;\n height: 100%;\n border: 1px solid currentColor;\n display: block;\n left: 2.5px;\n bottom: 2.5px;\n position: absolute;\n border-radius: 50%;\n background: var(--scalar-background-1);\n transition: transform 0.3s ease-in-out;\n transform: translate3d(4px, -4px, 0);\n}\n.toggle-icon-sun-ray {\n width: 12px;\n height: 1px;\n border-radius: 8px;\n background: currentColor;\n position: absolute;\n transition: transform 0.3s ease-in-out;\n}\n.toggle-icon-sun-ray:nth-of-type(2) {\n transform: rotate(90deg);\n}\n.toggle-icon-sun-ray:nth-of-type(3) {\n transform: rotate(45deg);\n}\n.toggle-icon-sun-ray:nth-of-type(4) {\n transform: rotate(-45deg);\n}\n.toggle-icon-dark .toggle-icon-ellipse {\n width: 10px;\n height: 10px;\n mask-image: radial-gradient(\n circle at bottom left,\n pink 10px,\n transparent 12px\n );\n}\n.toggle-icon-dark .toggle-icon-sun-ray {\n transform: scale(0);\n}\n.toggle-icon-dark .toggle-icon-moon-mask {\n transform: translate3d(0, 0, 0);\n}\n</style>\n","<script lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type ScalarColorModeToggle from './ScalarColorModeToggle.vue'\nimport ScalarColorModeToggleIcon from './ScalarColorModeToggleIcon.vue'\n\n/**\n * Scalar Color Mode Toggle Button component\n *\n * A dumb button that toggles between a sun and moon icon.\n *\n * If you need a toggle that is aware of and sets color mode,\n * you want {@link ScalarColorModeToggle} instead.\n *\n * @example\n * <ScalarColorModeToggleButton v-model=\"isDarkMode\" />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n/** Whether the toggle is in dark mode */\nconst model = defineModel<boolean>()\n</script>\n<template>\n <button\n :aria-pressed=\"model\"\n type=\"button\"\n v-bind=\"\n cx(\n 'group/toggle flex h-6 w-[38px] brightness-lifted -mx-px items-center py-1.5 -my-1.5 relative outline-none',\n )\n \"\n @click=\"model = !model\">\n <!-- Background -->\n <div\n class=\"h-3 w-full bg-border mx-px rounded-xl group-focus-visible/toggle:outline -outline-offset-1\" />\n <!-- Slider -->\n <div\n class=\"size-[23px] left-border absolute border rounded-full flex items-center justify-center bg-b-1 group-focus-visible/toggle:outline -outline-offset-1 transition-transform duration-300 ease-in-out\"\n :class=\"{ 'translate-x-[14px]': model }\">\n <!-- Icon -->\n <ScalarColorModeToggleIcon\n is=\"div\"\n :mode=\"model ? 'dark' : 'light'\" />\n </div>\n </button>\n</template>\n","<script lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type ScalarColorModeToggle from './ScalarColorModeToggle.vue'\nimport ScalarColorModeToggleIcon from './ScalarColorModeToggleIcon.vue'\n\n/**\n * Scalar Color Mode Toggle Button component\n *\n * A dumb button that toggles between a sun and moon icon.\n *\n * If you need a toggle that is aware of and sets color mode,\n * you want {@link ScalarColorModeToggle} instead.\n *\n * @example\n * <ScalarColorModeToggleButton v-model=\"isDarkMode\" />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n/** Whether the toggle is in dark mode */\nconst model = defineModel<boolean>()\n</script>\n<template>\n <button\n :aria-pressed=\"model\"\n type=\"button\"\n v-bind=\"\n cx(\n 'group/toggle flex h-6 w-[38px] brightness-lifted -mx-px items-center py-1.5 -my-1.5 relative outline-none',\n )\n \"\n @click=\"model = !model\">\n <!-- Background -->\n <div\n class=\"h-3 w-full bg-border mx-px rounded-xl group-focus-visible/toggle:outline -outline-offset-1\" />\n <!-- Slider -->\n <div\n class=\"size-[23px] left-border absolute border rounded-full flex items-center justify-center bg-b-1 group-focus-visible/toggle:outline -outline-offset-1 transition-transform duration-300 ease-in-out\"\n :class=\"{ 'translate-x-[14px]': model }\">\n <!-- Icon -->\n <ScalarColorModeToggleIcon\n is=\"div\"\n :mode=\"model ? 'dark' : 'light'\" />\n </div>\n </button>\n</template>\n","<script lang=\"ts\">\nimport { useColorMode } from '@scalar/use-hooks/useColorMode'\nimport { computed } from 'vue'\n\nimport ScalarColorModeToggleButton from './ScalarColorModeToggleButton.vue'\nimport ScalarColorModeToggleIcon from './ScalarColorModeToggleIcon.vue'\n\n/**\n * Scalar Color Mode Toggle component\n *\n * A toggle that toggles between light and dark mode\n * using the {@link useColorMode} hook.\n *\n * @example\n * <ScalarColorModeToggle />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nconst { variant = 'switch' } = defineProps<{\n /**\n * The style of the toggle.\n * @default 'switch'\n */\n variant?: 'switch' | 'icon'\n}>()\n\nconst { isDarkMode, toggleColorMode, darkLightMode } = useColorMode()\n\nconst ariaLabel = computed<string>(() =>\n isDarkMode.value ? 'Set light mode' : 'Set dark mode',\n)\n</script>\n<template>\n <ScalarColorModeToggleButton\n v-if=\"variant === 'switch'\"\n v-model=\"isDarkMode\"\n :aria-label=\"ariaLabel\" />\n <ScalarColorModeToggleIcon\n v-else\n :aria-label=\"ariaLabel\"\n :mode=\"darkLightMode\"\n @click=\"toggleColorMode\" />\n</template>\n","<script lang=\"ts\">\nimport { useColorMode } from '@scalar/use-hooks/useColorMode'\nimport { computed } from 'vue'\n\nimport ScalarColorModeToggleButton from './ScalarColorModeToggleButton.vue'\nimport ScalarColorModeToggleIcon from './ScalarColorModeToggleIcon.vue'\n\n/**\n * Scalar Color Mode Toggle component\n *\n * A toggle that toggles between light and dark mode\n * using the {@link useColorMode} hook.\n *\n * @example\n * <ScalarColorModeToggle />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nconst { variant = 'switch' } = defineProps<{\n /**\n * The style of the toggle.\n * @default 'switch'\n */\n variant?: 'switch' | 'icon'\n}>()\n\nconst { isDarkMode, toggleColorMode, darkLightMode } = useColorMode()\n\nconst ariaLabel = computed<string>(() =>\n isDarkMode.value ? 'Set light mode' : 'Set dark mode',\n)\n</script>\n<template>\n <ScalarColorModeToggleButton\n v-if=\"variant === 'switch'\"\n v-model=\"isDarkMode\"\n :aria-label=\"ariaLabel\" />\n <ScalarColorModeToggleIcon\n v-else\n :aria-label=\"ariaLabel\"\n :mode=\"darkLightMode\"\n @click=\"toggleColorMode\" />\n</template>\n","import { nanoid } from 'nanoid'\nimport { type InjectionKey, inject, provide } from 'vue'\n\n/**\n * The teleport target\n */\nexport const TELEPORT_SYMBOL = Symbol() as InjectionKey<string>\n\n/**\n * Get the nearest teleport target id from `useProvideTeleport`\n *\n * Falls back to `body` if no teleport target id is found\n *\n * @see {@link useProvideTeleport}\n */\nexport const useTeleport = () => inject(TELEPORT_SYMBOL, 'body')\n\n/**\n * Provides a teleport target id using Vue's `provide`\n *\n * @see https://vuejs.org/guide/components/provide-inject.html#provide-inject\n */\nexport const useProvideTeleport = (id?: string) => {\n const targetId = id ?? `scalar-teleport-${nanoid()}`\n provide(TELEPORT_SYMBOL, `#${targetId}`)\n return targetId\n}\n","<script lang=\"ts\">\n/**\n * Scalar teleport component\n *\n * Teleports the contents to the nearest <ScalarTeleportRoot>\n * Falls back to the default teleport target (body) if no root is found\n *\n * Is a wrapper around the Vue <Teleport> component and takes the same props\n *\n * @example\n * <ScalarTeleport>\n * <div>Teleported Content</div>\n * </ScalarTeleport>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { TeleportProps } from 'vue'\n\nimport { useTeleport } from './useTeleport'\n\ndefineProps<{\n /**\n * Override the default teleport target\n */\n to?: TeleportProps['to']\n /**\n * Whether to teleport immediately, disables the default defer behavior\n *\n * @see https://vuejs.org/guide/built-ins/teleport#deferred-teleport\n */\n immediate?: boolean\n /**\n * Whether to disable teleportation\n */\n disabled?: TeleportProps['disabled']\n}>()\n\ndefineSlots<{\n /** The element to be teleported */\n default(): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\n\nconst root = useTeleport()\n</script>\n<template>\n <Teleport\n :defer=\"!immediate\"\n :disabled=\"disabled\"\n :to=\"to || root\">\n <div\n class=\"scalar-app\"\n style=\"display: contents\"\n v-bind=\"$attrs\">\n <slot />\n </div>\n </Teleport>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar teleport component\n *\n * Teleports the contents to the nearest <ScalarTeleportRoot>\n * Falls back to the default teleport target (body) if no root is found\n *\n * Is a wrapper around the Vue <Teleport> component and takes the same props\n *\n * @example\n * <ScalarTeleport>\n * <div>Teleported Content</div>\n * </ScalarTeleport>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { TeleportProps } from 'vue'\n\nimport { useTeleport } from './useTeleport'\n\ndefineProps<{\n /**\n * Override the default teleport target\n */\n to?: TeleportProps['to']\n /**\n * Whether to teleport immediately, disables the default defer behavior\n *\n * @see https://vuejs.org/guide/built-ins/teleport#deferred-teleport\n */\n immediate?: boolean\n /**\n * Whether to disable teleportation\n */\n disabled?: TeleportProps['disabled']\n}>()\n\ndefineSlots<{\n /** The element to be teleported */\n default(): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\n\nconst root = useTeleport()\n</script>\n<template>\n <Teleport\n :defer=\"!immediate\"\n :disabled=\"disabled\"\n :to=\"to || root\">\n <div\n class=\"scalar-app\"\n style=\"display: contents\"\n v-bind=\"$attrs\">\n <slot />\n </div>\n </Teleport>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar teleport root component\n *\n * Provides a teleport target for nested <ScalarTeleport> components\n *\n * @example\n * <ScalarTeleportRoot>\n * ...\n * <ScalarTeleport>\n * <div>Teleported Content</div>\n * </ScalarTeleport>\n * ...\n * </ScalarTeleportRoot>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useProvideTeleport } from './useTeleport'\n\nconst props = defineProps<{\n /**\n * Override the default teleport target id\n */\n id?: string\n}>()\n\ndefineSlots<{\n /** The content which contains <ScalarTeleports> */\n default(): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\n\nconst id = useProvideTeleport(props.id)\n</script>\n<template>\n <slot />\n <div\n :id=\"id\"\n class=\"scalar-teleport-root contents\" />\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar teleport root component\n *\n * Provides a teleport target for nested <ScalarTeleport> components\n *\n * @example\n * <ScalarTeleportRoot>\n * ...\n * <ScalarTeleport>\n * <div>Teleported Content</div>\n * </ScalarTeleport>\n * ...\n * </ScalarTeleportRoot>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useProvideTeleport } from './useTeleport'\n\nconst props = defineProps<{\n /**\n * Override the default teleport target id\n */\n id?: string\n}>()\n\ndefineSlots<{\n /** The content which contains <ScalarTeleports> */\n default(): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\n\nconst id = useProvideTeleport(props.id)\n</script>\n<template>\n <slot />\n <div\n :id=\"id\"\n class=\"scalar-teleport-root contents\" />\n</template>\n","import { type MaybeRefOrGetter, computed, ref, toValue, watch } from 'vue'\n\ntype ResizeOptions = {\n enabled?: MaybeRefOrGetter<boolean>\n}\n\n/**\n * Resize a floating element to match a target element\n */\nexport function useResizeWithTarget(\n target: MaybeRefOrGetter<Element | undefined>,\n opts: ResizeOptions = { enabled: ref(true) },\n) {\n const targetWidth = ref(0)\n const targetHeight = ref(0)\n const observer = ref<ResizeObserver>()\n\n if (typeof ResizeObserver !== 'undefined') {\n observer.value = new ResizeObserver(([entry]) => {\n if (!entry) {\n return\n }\n targetWidth.value = entry.borderBoxSize[0]?.inlineSize ?? 0\n targetHeight.value = entry.borderBoxSize[0]?.blockSize ?? 0\n })\n }\n\n watch(\n [() => toValue(opts.enabled), () => toValue(target)],\n ([enabled, element]) => {\n if (!element || !observer.value) {\n return\n }\n if (enabled) {\n observer.value.observe(element)\n } else {\n observer.value.disconnect()\n }\n },\n { immediate: true },\n )\n\n return {\n width: computed(() => (toValue(opts.enabled) ? `${targetWidth.value}px` : undefined)),\n height: computed(() => (toValue(opts.enabled) ? `${targetHeight.value}px` : undefined)),\n }\n}\n","<script setup lang=\"ts\">\nimport { getSideAxis } from '@floating-ui/utils'\nimport {\n type MiddlewareData,\n autoUpdate,\n flip,\n offset as offsetMiddleware,\n shift,\n size,\n useFloating,\n} from '@floating-ui/vue'\nimport { type Ref, computed, ref } from 'vue'\n\nimport { ScalarTeleport } from '../ScalarTeleport'\nimport type { FloatingOptions } from './types'\nimport { useResizeWithTarget } from './useResizeWithTarget'\n\nconst {\n placement,\n offset = 5,\n resize = false,\n middleware = [],\n target,\n teleport,\n} = defineProps<FloatingOptions>()\n\ndefineSlots<{\n /** The reference element for the element in the #floating slot */\n default(): unknown\n /** The floating element */\n floating?(props: {\n /** The width of the reference element if `resize` is true and placement is on the y axis */\n width?: string\n /** The height of the reference element if `resize` is true and placement is on the x axis */\n height?: string\n /** The middleware data return by Floating UI */\n data?: MiddlewareData\n }): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\n\nconst floatingRef: Ref<HTMLElement | null> = ref(null)\nconst wrapperRef: Ref<HTMLElement | null> = ref(null)\n\nconst targetRef = computed<HTMLElement | undefined>(() => {\n if (typeof window !== 'undefined' && wrapperRef.value) {\n // If target is a string (id), try to find it in the document\n if (typeof target === 'string') {\n const t = document.getElementById(target)\n if (t) {\n return t\n }\n console.warn(`ScalarFloating: Target with id=\"${target}\" not found`)\n }\n // If target is an HTMLElement, return it\n else if (target instanceof HTMLElement) {\n return target\n }\n // Fallback to div wrapper if no child element is provided\n const firstChild = wrapperRef.value.children?.[0]\n if (firstChild instanceof HTMLElement) {\n return firstChild\n }\n return wrapperRef.value\n }\n // Return undefined if nothing is found\n return undefined\n})\n\nconst targetSize = useResizeWithTarget(targetRef, {\n enabled: computed(() => resize),\n})\n\nconst targetWidth = computed(() =>\n getSideAxis(placement ?? 'bottom') === 'y'\n ? targetSize.width.value\n : undefined,\n)\n\nconst targetHeight = computed(() =>\n getSideAxis(placement ?? 'bottom') === 'x'\n ? targetSize.height.value\n : undefined,\n)\nconst { floatingStyles, middlewareData } = useFloating(targetRef, floatingRef, {\n placement: computed(() => placement ?? 'bottom'),\n whileElementsMounted: autoUpdate,\n middleware: computed(() => [\n offsetMiddleware(offset),\n flip(),\n shift({ padding: 10 }),\n size({\n apply({ availableWidth, availableHeight, elements }) {\n // Assign the max width and height to the floating element\n // @see https://floating-ui.com/docs/size\n Object.assign(elements.floating.style, {\n maxWidth: `${Math.max(0, availableWidth) - 20}px`,\n maxHeight: `${Math.max(0, availableHeight) - 20}px`,\n })\n },\n }),\n ...middleware,\n ]),\n})\n\ndefineExpose({\n /** The resolved target element */\n targetRef,\n})\n</script>\n<template>\n <div\n ref=\"wrapperRef\"\n :class=\"{ contents: !!$slots.default }\">\n <slot />\n </div>\n <ScalarTeleport\n v-if=\"$slots.floating\"\n :disabled=\"!teleport\"\n :to=\"typeof teleport === 'string' ? teleport : undefined\">\n <div\n ref=\"floatingRef\"\n class=\"relative z-context\"\n :style=\"floatingStyles\">\n <slot\n :data=\"middlewareData\"\n :height=\"targetHeight\"\n name=\"floating\"\n :width=\"targetWidth\" />\n </div>\n </ScalarTeleport>\n</template>\n","<script setup lang=\"ts\">\nimport { getSideAxis } from '@floating-ui/utils'\nimport {\n type MiddlewareData,\n autoUpdate,\n flip,\n offset as offsetMiddleware,\n shift,\n size,\n useFloating,\n} from '@floating-ui/vue'\nimport { type Ref, computed, ref } from 'vue'\n\nimport { ScalarTeleport } from '../ScalarTeleport'\nimport type { FloatingOptions } from './types'\nimport { useResizeWithTarget } from './useResizeWithTarget'\n\nconst {\n placement,\n offset = 5,\n resize = false,\n middleware = [],\n target,\n teleport,\n} = defineProps<FloatingOptions>()\n\ndefineSlots<{\n /** The reference element for the element in the #floating slot */\n default(): unknown\n /** The floating element */\n floating?(props: {\n /** The width of the reference element if `resize` is true and placement is on the y axis */\n width?: string\n /** The height of the reference element if `resize` is true and placement is on the x axis */\n height?: string\n /** The middleware data return by Floating UI */\n data?: MiddlewareData\n }): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\n\nconst floatingRef: Ref<HTMLElement | null> = ref(null)\nconst wrapperRef: Ref<HTMLElement | null> = ref(null)\n\nconst targetRef = computed<HTMLElement | undefined>(() => {\n if (typeof window !== 'undefined' && wrapperRef.value) {\n // If target is a string (id), try to find it in the document\n if (typeof target === 'string') {\n const t = document.getElementById(target)\n if (t) {\n return t\n }\n console.warn(`ScalarFloating: Target with id=\"${target}\" not found`)\n }\n // If target is an HTMLElement, return it\n else if (target instanceof HTMLElement) {\n return target\n }\n // Fallback to div wrapper if no child element is provided\n const firstChild = wrapperRef.value.children?.[0]\n if (firstChild instanceof HTMLElement) {\n return firstChild\n }\n return wrapperRef.value\n }\n // Return undefined if nothing is found\n return undefined\n})\n\nconst targetSize = useResizeWithTarget(targetRef, {\n enabled: computed(() => resize),\n})\n\nconst targetWidth = computed(() =>\n getSideAxis(placement ?? 'bottom') === 'y'\n ? targetSize.width.value\n : undefined,\n)\n\nconst targetHeight = computed(() =>\n getSideAxis(placement ?? 'bottom') === 'x'\n ? targetSize.height.value\n : undefined,\n)\nconst { floatingStyles, middlewareData } = useFloating(targetRef, floatingRef, {\n placement: computed(() => placement ?? 'bottom'),\n whileElementsMounted: autoUpdate,\n middleware: computed(() => [\n offsetMiddleware(offset),\n flip(),\n shift({ padding: 10 }),\n size({\n apply({ availableWidth, availableHeight, elements }) {\n // Assign the max width and height to the floating element\n // @see https://floating-ui.com/docs/size\n Object.assign(elements.floating.style, {\n maxWidth: `${Math.max(0, availableWidth) - 20}px`,\n maxHeight: `${Math.max(0, availableHeight) - 20}px`,\n })\n },\n }),\n ...middleware,\n ]),\n})\n\ndefineExpose({\n /** The resolved target element */\n targetRef,\n})\n</script>\n<template>\n <div\n ref=\"wrapperRef\"\n :class=\"{ contents: !!$slots.default }\">\n <slot />\n </div>\n <ScalarTeleport\n v-if=\"$slots.floating\"\n :disabled=\"!teleport\"\n :to=\"typeof teleport === 'string' ? teleport : undefined\">\n <div\n ref=\"floatingRef\"\n class=\"relative z-context\"\n :style=\"floatingStyles\">\n <slot\n :data=\"middlewareData\"\n :height=\"targetHeight\"\n name=\"floating\"\n :width=\"targetWidth\" />\n </div>\n </ScalarTeleport>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar floating backdrop component\n *\n * Provides an absolutely positioned backdrop for the floating element\n * This is used internally by a number of the Scalar floating components\n * (e.g. Dropdown, Popover, Listbox)\n *\n * You can use this component directly if you need to customize the backdrop\n * for a floating component\n *\n * @example\n * <ScalarDropdown>\n * <!-- Menu stuff -->\n * <template #backdrop>\n * <ScalarFloatingBackdrop />\n * </template>\n * </ScalarDropdown>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx('absolute inset-0 -z-1 rounded bg-b-1 shadow-lg brightness-lifted')\n \">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar floating backdrop component\n *\n * Provides an absolutely positioned backdrop for the floating element\n * This is used internally by a number of the Scalar floating components\n * (e.g. Dropdown, Popover, Listbox)\n *\n * You can use this component directly if you need to customize the backdrop\n * for a floating component\n *\n * @example\n * <ScalarDropdown>\n * <!-- Menu stuff -->\n * <template #backdrop>\n * <ScalarFloatingBackdrop />\n * </template>\n * </ScalarDropdown>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx('absolute inset-0 -z-1 rounded bg-b-1 shadow-lg brightness-lifted')\n \">\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconCheck } from '@scalar/icons'\n\ndefineProps<{\n selected?: boolean\n multiselect?: boolean\n}>()\n</script>\n<template>\n <div\n class=\"flex size-4 items-center justify-center p-0.75\"\n :class=\"[\n selected ? 'bg-c-accent text-b-1' : 'text-transparent shadow-border',\n multiselect ? 'rounded' : 'rounded-full',\n ]\">\n <ScalarIconCheck\n v-if=\"selected\"\n class=\"size-3\"\n weight=\"bold\" />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconCheck } from '@scalar/icons'\n\ndefineProps<{\n selected?: boolean\n multiselect?: boolean\n}>()\n</script>\n<template>\n <div\n class=\"flex size-4 items-center justify-center p-0.75\"\n :class=\"[\n selected ? 'bg-c-accent text-b-1' : 'text-transparent shadow-border',\n multiselect ? 'rounded' : 'rounded-full',\n ]\">\n <ScalarIconCheck\n v-if=\"selected\"\n class=\"size-3\"\n weight=\"bold\" />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ListboxOption } from '@headlessui/vue'\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarListboxCheckbox from './ScalarListboxCheckbox.vue'\nimport type { Option } from './types'\n\ndefineProps<{\n option: Option\n multiselect?: boolean\n}>()\n\nconst variants = cva({\n base: [\n // Layout\n 'group/item',\n 'flex min-w-0 items-center gap-1.5 rounded px-2 py-1.5 text-left',\n // Text / background style\n 'truncate bg-transparent text-c-1',\n // Interaction\n 'cursor-pointer hover:bg-b-2',\n ],\n variants: {\n selected: { true: 'text-c-1' },\n active: { true: 'bg-b-2' },\n disabled: { true: 'pointer-events-none opacity-50' },\n },\n})\n</script>\n<template>\n <ListboxOption\n v-slot=\"{ active, selected }\"\n as=\"template\"\n :disabled=\"option.disabled\"\n :value=\"option\">\n <li :class=\"cx(variants({ active, selected, disabled: option.disabled }))\">\n <ScalarListboxCheckbox\n :multiselect\n :selected />\n <span\n class=\"inline-block min-w-0 flex-1 truncate\"\n :class=\"option.color ? option.color : 'text-c-1'\">\n {{ option.label }}\n </span>\n </li>\n </ListboxOption>\n</template>\n","<script setup lang=\"ts\">\nimport { ListboxOption } from '@headlessui/vue'\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarListboxCheckbox from './ScalarListboxCheckbox.vue'\nimport type { Option } from './types'\n\ndefineProps<{\n option: Option\n multiselect?: boolean\n}>()\n\nconst variants = cva({\n base: [\n // Layout\n 'group/item',\n 'flex min-w-0 items-center gap-1.5 rounded px-2 py-1.5 text-left',\n // Text / background style\n 'truncate bg-transparent text-c-1',\n // Interaction\n 'cursor-pointer hover:bg-b-2',\n ],\n variants: {\n selected: { true: 'text-c-1' },\n active: { true: 'bg-b-2' },\n disabled: { true: 'pointer-events-none opacity-50' },\n },\n})\n</script>\n<template>\n <ListboxOption\n v-slot=\"{ active, selected }\"\n as=\"template\"\n :disabled=\"option.disabled\"\n :value=\"option\">\n <li :class=\"cx(variants({ active, selected, disabled: option.disabled }))\">\n <ScalarListboxCheckbox\n :multiselect\n :selected />\n <span\n class=\"inline-block min-w-0 flex-1 truncate\"\n :class=\"option.color ? option.color : 'text-c-1'\">\n {{ option.label }}\n </span>\n </li>\n </ListboxOption>\n</template>\n","<script setup lang=\"ts\">\nimport {\n Listbox,\n ListboxButton,\n ListboxLabel,\n ListboxOptions,\n} from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport ScalarListboxOption from './ScalarListboxItem.vue'\nimport type { Option } from './types'\n\ntype SingleSelectListboxProps = {\n multiple?: false | undefined\n modelValue?: Option | undefined\n}\n\ntype MultipleSelectListboxProps = {\n multiple: true\n modelValue?: Option[] | undefined\n}\n\ndefineProps<\n {\n options: Option[]\n id?: string\n label?: string\n } & (SingleSelectListboxProps | MultipleSelectListboxProps) &\n ScalarFloatingOptions\n>()\n\ndefineEmits<{\n (e: 'update:modelValue', v: Option): void\n}>()\n\ndefineSlots<{\n /** The reference element for the listbox */\n default(props: {\n /** Whether or not the listbox is open */\n open: boolean\n }): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Listbox\n v-slot=\"{ open }\"\n :modelValue=\"modelValue\"\n :multiple=\"multiple\"\n @update:modelValue=\"(v) => $emit('update:modelValue', v)\">\n <ListboxLabel\n v-if=\"label\"\n class=\"sr-only\">\n {{ label }}\n </ListboxLabel>\n <ScalarFloating\n v-bind=\"$props\"\n :placement=\"placement ?? 'bottom-start'\">\n <ListboxButton\n :id=\"id\"\n as=\"template\">\n <slot :open=\"open\" />\n </ListboxButton>\n <template #floating=\"{ width }\">\n <!-- Background container -->\n <div\n v-if=\"open\"\n :style=\"{ width }\"\n v-bind=\"\n cx(\n 'relative flex max-h-[inherit] w-40 max-w-[inherit] rounded text-sm',\n )\n \">\n <!-- Scroll container -->\n <div class=\"custom-scroll min-h-0 flex-1\">\n <!-- Options list -->\n <ListboxOptions\n class=\"flex flex-col gap-0.75 p-0.75 -outline-offset-1\">\n <ScalarListboxOption\n v-for=\"option in options\"\n :key=\"option.id\"\n :multiselect=\"multiple\"\n :option=\"option\" />\n </ListboxOptions>\n </div>\n <ScalarFloatingBackdrop />\n </div>\n </template>\n </ScalarFloating>\n </Listbox>\n</template>\n","<script setup lang=\"ts\">\nimport {\n Listbox,\n ListboxButton,\n ListboxLabel,\n ListboxOptions,\n} from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport ScalarListboxOption from './ScalarListboxItem.vue'\nimport type { Option } from './types'\n\ntype SingleSelectListboxProps = {\n multiple?: false | undefined\n modelValue?: Option | undefined\n}\n\ntype MultipleSelectListboxProps = {\n multiple: true\n modelValue?: Option[] | undefined\n}\n\ndefineProps<\n {\n options: Option[]\n id?: string\n label?: string\n } & (SingleSelectListboxProps | MultipleSelectListboxProps) &\n ScalarFloatingOptions\n>()\n\ndefineEmits<{\n (e: 'update:modelValue', v: Option): void\n}>()\n\ndefineSlots<{\n /** The reference element for the listbox */\n default(props: {\n /** Whether or not the listbox is open */\n open: boolean\n }): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Listbox\n v-slot=\"{ open }\"\n :modelValue=\"modelValue\"\n :multiple=\"multiple\"\n @update:modelValue=\"(v) => $emit('update:modelValue', v)\">\n <ListboxLabel\n v-if=\"label\"\n class=\"sr-only\">\n {{ label }}\n </ListboxLabel>\n <ScalarFloating\n v-bind=\"$props\"\n :placement=\"placement ?? 'bottom-start'\">\n <ListboxButton\n :id=\"id\"\n as=\"template\">\n <slot :open=\"open\" />\n </ListboxButton>\n <template #floating=\"{ width }\">\n <!-- Background container -->\n <div\n v-if=\"open\"\n :style=\"{ width }\"\n v-bind=\"\n cx(\n 'relative flex max-h-[inherit] w-40 max-w-[inherit] rounded text-sm',\n )\n \">\n <!-- Scroll container -->\n <div class=\"custom-scroll min-h-0 flex-1\">\n <!-- Options list -->\n <ListboxOptions\n class=\"flex flex-col gap-0.75 p-0.75 -outline-offset-1\">\n <ScalarListboxOption\n v-for=\"option in options\"\n :key=\"option.id\"\n :multiselect=\"multiple\"\n :option=\"option\" />\n </ListboxOptions>\n </div>\n <ScalarFloatingBackdrop />\n </div>\n </template>\n </ScalarFloating>\n </Listbox>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Listbox Input component\n *\n * Provides a standard button for opening a listbox.\n *\n * @example\n * <ScalarListbox v-model=\"selected\" :options v-slot=\"{ open }\">\n * <ScalarListboxInput :open>{{ selected.label }}</ScalarListboxInput>\n * </ScalarListbox>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCaretDown } from '@scalar/icons'\n\nimport { ScalarFormInput } from '../ScalarForm'\n\ndefineProps<{ open?: boolean }>()\n</script>\n<template>\n <ScalarFormInput>\n <div class=\"flex-1 text-left min-w-0 truncate\"><slot /></div>\n <ScalarIconCaretDown\n class=\"transition-transform size-3.5\"\n :class=\"{ 'rotate-180': open }\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Listbox Input component\n *\n * Provides a standard button for opening a listbox.\n *\n * @example\n * <ScalarListbox v-model=\"selected\" :options v-slot=\"{ open }\">\n * <ScalarListboxInput :open>{{ selected.label }}</ScalarListboxInput>\n * </ScalarListbox>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCaretDown } from '@scalar/icons'\n\nimport { ScalarFormInput } from '../ScalarForm'\n\ndefineProps<{ open?: boolean }>()\n</script>\n<template>\n <ScalarFormInput>\n <div class=\"flex-1 text-left min-w-0 truncate\"><slot /></div>\n <ScalarIconCaretDown\n class=\"transition-transform size-3.5\"\n :class=\"{ 'rotate-180': open }\" />\n </ScalarFormInput>\n</template>\n","<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nconst { active, selected } = defineProps<{\n active?: boolean\n selected?: boolean\n}>()\n\nconst variants = cva({\n base: [\n // Group\n 'group/item',\n // Layout\n 'flex min-w-0 items-center gap-1.5 rounded px-2 py-1.5 text-left',\n // Text / background style\n 'truncate bg-transparent text-c-1',\n // Interaction\n 'cursor-pointer hover:bg-b-2',\n ],\n variants: {\n selected: { true: 'text-c-1' },\n active: { true: 'bg-b-2' },\n },\n})\n</script>\n<template>\n <li\n :aria-selected=\"selected\"\n :class=\"cx(variants({ active, selected }))\"\n role=\"option\"\n tabindex=\"-1\">\n <slot\n :active\n :selected />\n </li>\n</template>\n","<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nconst { active, selected } = defineProps<{\n active?: boolean\n selected?: boolean\n}>()\n\nconst variants = cva({\n base: [\n // Group\n 'group/item',\n // Layout\n 'flex min-w-0 items-center gap-1.5 rounded px-2 py-1.5 text-left',\n // Text / background style\n 'truncate bg-transparent text-c-1',\n // Interaction\n 'cursor-pointer hover:bg-b-2',\n ],\n variants: {\n selected: { true: 'text-c-1' },\n active: { true: 'bg-b-2' },\n },\n})\n</script>\n<template>\n <li\n :aria-selected=\"selected\"\n :class=\"cx(variants({ active, selected }))\"\n role=\"option\"\n tabindex=\"-1\">\n <slot\n :active\n :selected />\n </li>\n</template>\n","<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nconst { id = useId(), hidden = false } = defineProps<{\n id?: string\n hidden?: boolean\n}>()\n</script>\n<template>\n <div\n :id=\"id\"\n :aria-labelledby=\"id ? `${id}-label` : undefined\"\n class=\"contents\"\n :role=\"hidden ? undefined : 'group'\">\n <div\n v-if=\"!hidden\"\n :id=\"`${id}-label`\"\n class=\"min-w-0 truncate px-2.5 py-1.5 text-c-2\">\n <slot name=\"label\" />\n </div>\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nconst { id = useId(), hidden = false } = defineProps<{\n id?: string\n hidden?: boolean\n}>()\n</script>\n<template>\n <div\n :id=\"id\"\n :aria-labelledby=\"id ? `${id}-label` : undefined\"\n class=\"contents\"\n :role=\"hidden ? undefined : 'group'\">\n <div\n v-if=\"!hidden\"\n :id=\"`${id}-label`\"\n class=\"min-w-0 truncate px-2.5 py-1.5 text-c-2\">\n <slot name=\"label\" />\n </div>\n <slot />\n </div>\n</template>\n","export type Option = {\n id: string\n label: string\n}\n\nexport type OptionGroup<O extends Option = Option> = {\n label: string\n options: O[]\n}\n\nexport type OptionsOrGroups<O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>> = O[] | G[]\n\n/** Type guard to check if an option is a group */\nfunction isGroup(option: Option | OptionGroup | undefined): option is OptionGroup {\n return (option as OptionGroup | undefined)?.options !== undefined\n}\n\n/** Type guard to check if an array of options is an array of groups */\nexport function isGroups(options: Option[] | OptionGroup[]): options is OptionGroup[] {\n if (!options[0]) {\n return false // No options to test, so we assume it's not a group\n }\n return isGroup(options[0])\n}\n\n/** Available events emitted by the combobox */\nexport type ComboboxEmits = {\n /** Emitted when the \"Add a new option\" button is clicked */\n add: []\n}\n\n/** Available slots for the combobox */\nexport type ComboboxSlots<O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>> = {\n /** The reference element / trigger for the combobox */\n default(props: { open: boolean }): unknown\n /** A template to override the option label */\n option?(props: { option: O; active: boolean; selected: boolean }): unknown\n /** A template to override the group label */\n group?(props: { group: G }): unknown\n /** Creates an \"Add a new option\" button after the options list*/\n add?(props: { active: boolean }): unknown\n}\n","<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport { ScalarIconMagnifyingGlass, ScalarIconPlus } from '@scalar/icons'\nimport { computed, onMounted, ref, useId, watch } from 'vue'\n\nimport { ScalarListboxCheckbox } from '../ScalarListbox'\nimport ComboboxOption from './ScalarComboboxOption.vue'\nimport ComboboxOptionGroup from './ScalarComboboxOptionGroup.vue'\nimport {\n type ComboboxEmits,\n type ComboboxSlots,\n type Option,\n type OptionGroup,\n type OptionsOrGroups,\n isGroups,\n} from './types'\n\nconst props = defineProps<{\n options: OptionsOrGroups<O, G>\n placeholder?: string\n multiselect?: boolean\n}>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: [] })\n\nconst slots = defineSlots<Omit<ComboboxSlots<O, G>, 'default'>>()\n\ndefineOptions({ inheritAttrs: false })\n\n/** A unique ID for the combobox */\nconst id = `scalar-combobox-items-${useId()}`\n\n/** A static option entry for the \"Add a new option\" option */\nconst addOption: Option = { id: `${useId()}-add`, label: 'Add a new option' }\n\n/** Generate a unique ID for an option */\nfunction getOptionId(option: Option) {\n return `${id}-${option.id}`\n}\n\n/** A flat list of all options */\nconst options = computed<O[]>(() =>\n isGroups(props.options)\n ? props.options.flatMap((group) => group.options)\n : props.options,\n)\n\n/** An list of all groups */\nconst groups = computed<G[]>(\n () =>\n isGroups(props.options)\n ? props.options // G extends OptionGroup<O>\n : /*\n We know G is an unextended OptionGroup<O> here because of the\n structure of the component props so we can cast it to G\n */\n [{ label: '', options: props.options } as G], // G is OptionGroup<O>\n)\n\nconst query = ref<string>('')\nconst activeRef = ref<Option | undefined>(model.value?.[0] ?? options.value[0])\n\n// Clear the query on open and close\nonMounted(() => {\n // Clear the query\n query.value = ''\n\n // Set the active option to the selected option or the first option\n activeRef.value = model.value?.[0] ?? options.value[0]\n\n // Scroll to the selected option\n const selected = model.value[0]\n if (selected) {\n setTimeout(() => {\n const value = model.value[0]\n if (!value) {\n return\n }\n\n document\n ?.getElementById(getOptionId(value))\n ?.scrollIntoView({ block: 'nearest' })\n }, 10)\n }\n})\n\n// Set the top option as active when searching\nwatch(\n () => query.value,\n () => (activeRef.value = withAdd.value[0]),\n)\n\n/** The filtered list of options */\nconst filtered = computed<O[]>(() =>\n query.value === ''\n ? options.value\n : options.value.filter((option) => {\n return option.label.toLowerCase().includes(query.value.toLowerCase())\n }),\n)\n\n/** The list of filtered options with the \"Add a new option\" option */\nconst withAdd = computed<Option[]>(() =>\n slots.add ? [...filtered.value, addOption] : filtered.value,\n)\n\nfunction toggleSelected(option: Option | undefined) {\n if (!option) {\n return\n }\n\n if (option.id === addOption.id) {\n addNew()\n return\n }\n\n if (props.multiselect) {\n // Remove from selection list\n if (model.value.some((o) => o.id === option.id)) {\n model.value = model.value.filter((o) => o.id !== option.id)\n }\n // Add to selection list\n else {\n model.value = [\n ...model.value,\n options.value.find((o) => o.id === option.id)!,\n ]\n }\n } else {\n // Set selection for single select mode\n model.value = [options.value.find((o) => o.id === option.id)!]\n }\n}\n\nfunction moveActive(dir: 1 | -1) {\n const list = withAdd.value\n\n // Find active index\n const activeIdx = list.findIndex(\n (option) => option.id === activeRef.value?.id,\n )\n\n // Calculate next index and exit if it's out of bounds\n const nextIdx = activeIdx + dir\n\n if (nextIdx < 0 || nextIdx > list.length - 1) {\n return\n }\n\n activeRef.value = list[nextIdx]! // We know it's in bounds from the check above\n\n if (!activeRef.value) {\n return\n }\n\n // Scroll to the active option\n document?.getElementById(getOptionId(activeRef.value))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n })\n}\n\nfunction addNew() {\n emit('add')\n query.value = ''\n}\n\n// Manual autofocus for the input\nconst input = ref<HTMLInputElement | null>(null)\n\n// This must be a setTimeout to ensure there is no scroll jump. nextTick does not work here.\nonMounted(() => setTimeout(() => input.value?.focus(), 0))\n</script>\n<template>\n <div class=\"relative flex\">\n <ScalarIconMagnifyingGlass\n class=\"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-c-3 size-4\" />\n <input\n ref=\"input\"\n v-model=\"query\"\n :aria-activedescendant=\"activeRef ? getOptionId(activeRef) : undefined\"\n aria-autocomplete=\"list\"\n :aria-controls=\"id\"\n class=\"min-w-0 flex-1 rounded border-0 py-2.5 pl-8 pr-3 leading-none text-c-1 -outline-offset-1\"\n data-1p-ignore\n :placeholder=\"placeholder\"\n role=\"combobox\"\n tabindex=\"0\"\n type=\"text\"\n @keydown.down.prevent=\"moveActive(1)\"\n @keydown.enter.prevent=\"activeRef && toggleSelected(activeRef)\"\n @keydown.up.prevent=\"moveActive(-1)\" />\n </div>\n <ul\n v-show=\"filtered.length || slots.add\"\n :id=\"id\"\n :aria-multiselectable=\"multiselect\"\n class=\"border-t p-0.75 custom-scroll overscroll-contain flex-1 min-h-0\"\n role=\"listbox\"\n tabindex=\"-1\">\n <ComboboxOptionGroup\n v-for=\"(group, i) in groups\"\n :id=\"`${id}-group-${i}`\"\n :key=\"i\"\n :hidden=\"\n // Only show the group label if there are some results\n !group.options.some((o) => filtered.some((f) => f.id === o.id)) ||\n // And it has a label\n !group.label\n \">\n <template #label>\n <slot\n v-if=\"$slots.group\"\n :group\n name=\"group\" />\n <template v-else>\n {{ group.label }}\n </template>\n </template>\n <template\n v-for=\"option in filtered\"\n :key=\"option.id\">\n <ComboboxOption\n v-if=\"group.options.some((o) => o.id === option.id)\"\n :id=\"getOptionId(option)\"\n v-slot=\"{ active, selected }\"\n :active=\"activeRef?.id === option.id\"\n :selected=\"model.some((o) => o.id === option.id)\"\n @click=\"toggleSelected(option)\"\n @mousedown.prevent\n @mouseenter=\"activeRef = option\">\n <slot\n v-if=\"$slots.option\"\n :active\n name=\"option\"\n :option\n :selected />\n <template v-else>\n <ScalarListboxCheckbox\n :multiselect\n :selected=\"model.some((o) => o.id === option.id)\" />\n <span class=\"inline-block min-w-0 flex-1 truncate text-c-1\">\n {{ option.label }}\n </span>\n </template>\n </ComboboxOption>\n </template>\n </ComboboxOptionGroup>\n <ComboboxOption\n v-if=\"slots.add\"\n :id=\"getOptionId(addOption)\"\n v-slot=\"{ active }\"\n :active=\"activeRef?.id === addOption.id\"\n @click=\"addNew\"\n @mousedown.prevent\n @mouseenter=\"activeRef = addOption\">\n <ScalarIconPlus class=\"size-4 p-px\" />\n <slot\n :active\n name=\"add\" />\n </ComboboxOption>\n </ul>\n</template>\n","<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport { ScalarIconMagnifyingGlass, ScalarIconPlus } from '@scalar/icons'\nimport { computed, onMounted, ref, useId, watch } from 'vue'\n\nimport { ScalarListboxCheckbox } from '../ScalarListbox'\nimport ComboboxOption from './ScalarComboboxOption.vue'\nimport ComboboxOptionGroup from './ScalarComboboxOptionGroup.vue'\nimport {\n type ComboboxEmits,\n type ComboboxSlots,\n type Option,\n type OptionGroup,\n type OptionsOrGroups,\n isGroups,\n} from './types'\n\nconst props = defineProps<{\n options: OptionsOrGroups<O, G>\n placeholder?: string\n multiselect?: boolean\n}>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: [] })\n\nconst slots = defineSlots<Omit<ComboboxSlots<O, G>, 'default'>>()\n\ndefineOptions({ inheritAttrs: false })\n\n/** A unique ID for the combobox */\nconst id = `scalar-combobox-items-${useId()}`\n\n/** A static option entry for the \"Add a new option\" option */\nconst addOption: Option = { id: `${useId()}-add`, label: 'Add a new option' }\n\n/** Generate a unique ID for an option */\nfunction getOptionId(option: Option) {\n return `${id}-${option.id}`\n}\n\n/** A flat list of all options */\nconst options = computed<O[]>(() =>\n isGroups(props.options)\n ? props.options.flatMap((group) => group.options)\n : props.options,\n)\n\n/** An list of all groups */\nconst groups = computed<G[]>(\n () =>\n isGroups(props.options)\n ? props.options // G extends OptionGroup<O>\n : /*\n We know G is an unextended OptionGroup<O> here because of the\n structure of the component props so we can cast it to G\n */\n [{ label: '', options: props.options } as G], // G is OptionGroup<O>\n)\n\nconst query = ref<string>('')\nconst activeRef = ref<Option | undefined>(model.value?.[0] ?? options.value[0])\n\n// Clear the query on open and close\nonMounted(() => {\n // Clear the query\n query.value = ''\n\n // Set the active option to the selected option or the first option\n activeRef.value = model.value?.[0] ?? options.value[0]\n\n // Scroll to the selected option\n const selected = model.value[0]\n if (selected) {\n setTimeout(() => {\n const value = model.value[0]\n if (!value) {\n return\n }\n\n document\n ?.getElementById(getOptionId(value))\n ?.scrollIntoView({ block: 'nearest' })\n }, 10)\n }\n})\n\n// Set the top option as active when searching\nwatch(\n () => query.value,\n () => (activeRef.value = withAdd.value[0]),\n)\n\n/** The filtered list of options */\nconst filtered = computed<O[]>(() =>\n query.value === ''\n ? options.value\n : options.value.filter((option) => {\n return option.label.toLowerCase().includes(query.value.toLowerCase())\n }),\n)\n\n/** The list of filtered options with the \"Add a new option\" option */\nconst withAdd = computed<Option[]>(() =>\n slots.add ? [...filtered.value, addOption] : filtered.value,\n)\n\nfunction toggleSelected(option: Option | undefined) {\n if (!option) {\n return\n }\n\n if (option.id === addOption.id) {\n addNew()\n return\n }\n\n if (props.multiselect) {\n // Remove from selection list\n if (model.value.some((o) => o.id === option.id)) {\n model.value = model.value.filter((o) => o.id !== option.id)\n }\n // Add to selection list\n else {\n model.value = [\n ...model.value,\n options.value.find((o) => o.id === option.id)!,\n ]\n }\n } else {\n // Set selection for single select mode\n model.value = [options.value.find((o) => o.id === option.id)!]\n }\n}\n\nfunction moveActive(dir: 1 | -1) {\n const list = withAdd.value\n\n // Find active index\n const activeIdx = list.findIndex(\n (option) => option.id === activeRef.value?.id,\n )\n\n // Calculate next index and exit if it's out of bounds\n const nextIdx = activeIdx + dir\n\n if (nextIdx < 0 || nextIdx > list.length - 1) {\n return\n }\n\n activeRef.value = list[nextIdx]! // We know it's in bounds from the check above\n\n if (!activeRef.value) {\n return\n }\n\n // Scroll to the active option\n document?.getElementById(getOptionId(activeRef.value))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n })\n}\n\nfunction addNew() {\n emit('add')\n query.value = ''\n}\n\n// Manual autofocus for the input\nconst input = ref<HTMLInputElement | null>(null)\n\n// This must be a setTimeout to ensure there is no scroll jump. nextTick does not work here.\nonMounted(() => setTimeout(() => input.value?.focus(), 0))\n</script>\n<template>\n <div class=\"relative flex\">\n <ScalarIconMagnifyingGlass\n class=\"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-c-3 size-4\" />\n <input\n ref=\"input\"\n v-model=\"query\"\n :aria-activedescendant=\"activeRef ? getOptionId(activeRef) : undefined\"\n aria-autocomplete=\"list\"\n :aria-controls=\"id\"\n class=\"min-w-0 flex-1 rounded border-0 py-2.5 pl-8 pr-3 leading-none text-c-1 -outline-offset-1\"\n data-1p-ignore\n :placeholder=\"placeholder\"\n role=\"combobox\"\n tabindex=\"0\"\n type=\"text\"\n @keydown.down.prevent=\"moveActive(1)\"\n @keydown.enter.prevent=\"activeRef && toggleSelected(activeRef)\"\n @keydown.up.prevent=\"moveActive(-1)\" />\n </div>\n <ul\n v-show=\"filtered.length || slots.add\"\n :id=\"id\"\n :aria-multiselectable=\"multiselect\"\n class=\"border-t p-0.75 custom-scroll overscroll-contain flex-1 min-h-0\"\n role=\"listbox\"\n tabindex=\"-1\">\n <ComboboxOptionGroup\n v-for=\"(group, i) in groups\"\n :id=\"`${id}-group-${i}`\"\n :key=\"i\"\n :hidden=\"\n // Only show the group label if there are some results\n !group.options.some((o) => filtered.some((f) => f.id === o.id)) ||\n // And it has a label\n !group.label\n \">\n <template #label>\n <slot\n v-if=\"$slots.group\"\n :group\n name=\"group\" />\n <template v-else>\n {{ group.label }}\n </template>\n </template>\n <template\n v-for=\"option in filtered\"\n :key=\"option.id\">\n <ComboboxOption\n v-if=\"group.options.some((o) => o.id === option.id)\"\n :id=\"getOptionId(option)\"\n v-slot=\"{ active, selected }\"\n :active=\"activeRef?.id === option.id\"\n :selected=\"model.some((o) => o.id === option.id)\"\n @click=\"toggleSelected(option)\"\n @mousedown.prevent\n @mouseenter=\"activeRef = option\">\n <slot\n v-if=\"$slots.option\"\n :active\n name=\"option\"\n :option\n :selected />\n <template v-else>\n <ScalarListboxCheckbox\n :multiselect\n :selected=\"model.some((o) => o.id === option.id)\" />\n <span class=\"inline-block min-w-0 flex-1 truncate text-c-1\">\n {{ option.label }}\n </span>\n </template>\n </ComboboxOption>\n </template>\n </ComboboxOptionGroup>\n <ComboboxOption\n v-if=\"slots.add\"\n :id=\"getOptionId(addOption)\"\n v-slot=\"{ active }\"\n :active=\"activeRef?.id === addOption.id\"\n @click=\"addNew\"\n @mousedown.prevent\n @mouseenter=\"activeRef = addOption\">\n <ScalarIconPlus class=\"size-4 p-px\" />\n <slot\n :active\n name=\"add\" />\n </ComboboxOption>\n </ul>\n</template>\n","<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { ref } from 'vue'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { ScalarPopoverSlots } from '../ScalarPopover'\n\ndefineProps<ScalarFloatingOptions>()\n\ndefineSlots<ScalarPopoverSlots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n/** Expose the popover button so we can close the popup */\nconst popoverButtonRef = ref<typeof PopoverButton | null>(null)\n\n/** Open the popover of the up or down arrows are pressed */\nconst handleKeydown = (e: KeyboardEvent) => {\n if (!['ArrowUp', 'ArrowDown'].includes(e.key)) {\n return\n }\n e.preventDefault()\n e.target?.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }))\n}\n\ndefineExpose({ popoverButtonRef })\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton\n ref=\"popoverButtonRef\"\n as=\"template\"\n @keydown=\"handleKeydown\">\n <slot :open />\n </PopoverButton>\n <template\n v-if=\"open\"\n #floating=\"{ width }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :style=\"{ width }\"\n v-bind=\"\n cx('relative flex flex-col max-h-[inherit] w-40 rounded text-sm')\n \">\n <slot\n :close\n name=\"popover\"\n :open />\n <ScalarFloatingBackdrop />\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n","<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { ref } from 'vue'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { ScalarPopoverSlots } from '../ScalarPopover'\n\ndefineProps<ScalarFloatingOptions>()\n\ndefineSlots<ScalarPopoverSlots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n/** Expose the popover button so we can close the popup */\nconst popoverButtonRef = ref<typeof PopoverButton | null>(null)\n\n/** Open the popover of the up or down arrows are pressed */\nconst handleKeydown = (e: KeyboardEvent) => {\n if (!['ArrowUp', 'ArrowDown'].includes(e.key)) {\n return\n }\n e.preventDefault()\n e.target?.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }))\n}\n\ndefineExpose({ popoverButtonRef })\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton\n ref=\"popoverButtonRef\"\n as=\"template\"\n @keydown=\"handleKeydown\">\n <slot :open />\n </PopoverButton>\n <template\n v-if=\"open\"\n #floating=\"{ width }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :style=\"{ width }\"\n v-bind=\"\n cx('relative flex flex-col max-h-[inherit] w-40 rounded text-sm')\n \">\n <slot\n :close\n name=\"popover\"\n :open />\n <ScalarFloatingBackdrop />\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n","<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n options: OptionsOrGroups<O, G>\n placeholder?: string\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O>()\n\ndefineSlots<ComboboxSlots<O, G>>()\n</script>\n<template>\n <ComboboxPopover\n :middleware\n :offset\n :placement=\"placement ?? 'bottom-start'\"\n :resize\n :target\n :teleport>\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open, close }\">\n <ComboboxOptions\n :modelValue=\"model ? [model] : []\"\n :open\n :options\n :placeholder\n @add=\"() => (close(), emit('add'))\"\n @update:modelValue=\"(v) => (close(), (model = v[0]))\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n","<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n options: OptionsOrGroups<O, G>\n placeholder?: string\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O>()\n\ndefineSlots<ComboboxSlots<O, G>>()\n</script>\n<template>\n <ComboboxPopover\n :middleware\n :offset\n :placement=\"placement ?? 'bottom-start'\"\n :resize\n :target\n :teleport>\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open, close }\">\n <ComboboxOptions\n :modelValue=\"model ? [model] : []\"\n :open\n :options\n :placeholder\n @add=\"() => (close(), emit('add'))\"\n @update:modelValue=\"(v) => (close(), (model = v[0]))\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n","<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\" O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O> \">\nimport { ref } from 'vue'\n\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n options: OptionsOrGroups<O, G>\n placeholder?: string\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: [] })\n\ndefineSlots<ComboboxSlots<O, G>>()\n\n/** Propagate up the popover ref */\nconst comboboxPopoverRef = ref<typeof ComboboxPopover | null>(null)\n\ndefineExpose({ comboboxPopoverRef })\n</script>\n<template>\n <ComboboxPopover\n ref=\"comboboxPopoverRef\"\n :middleware=\"middleware\"\n :offset=\"offset\"\n :placement=\"placement ?? 'bottom-start'\"\n :resize=\"resize\"\n :target=\"target\"\n :teleport=\"teleport\">\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open }\">\n <ComboboxOptions\n v-if=\"options?.length\"\n v-model=\"model\"\n multiselect\n :open\n :options\n :placeholder\n @add=\"emit('add')\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n","<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\" O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O> \">\nimport { ref } from 'vue'\n\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n options: OptionsOrGroups<O, G>\n placeholder?: string\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: [] })\n\ndefineSlots<ComboboxSlots<O, G>>()\n\n/** Propagate up the popover ref */\nconst comboboxPopoverRef = ref<typeof ComboboxPopover | null>(null)\n\ndefineExpose({ comboboxPopoverRef })\n</script>\n<template>\n <ComboboxPopover\n ref=\"comboboxPopoverRef\"\n :middleware=\"middleware\"\n :offset=\"offset\"\n :placement=\"placement ?? 'bottom-start'\"\n :resize=\"resize\"\n :target=\"target\"\n :teleport=\"teleport\">\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open }\">\n <ComboboxOptions\n v-if=\"options?.length\"\n v-model=\"model\"\n multiselect\n :open\n :options\n :placeholder\n @add=\"emit('add')\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuPortal,\n ContextMenuRoot,\n ContextMenuTrigger,\n} from 'radix-vue'\n\nconst props = withDefaults(\n defineProps<{\n align?: 'start' | 'center' | 'end'\n side?: 'top' | 'right' | 'bottom' | 'left'\n sideOffset?: number\n disabled?: boolean\n triggerClass?: string\n }>(),\n {\n side: 'bottom',\n align: 'center',\n disabled: false,\n },\n)\n</script>\n\n<template>\n <ContextMenuRoot>\n <ContextMenuTrigger\n :class=\"triggerClass\"\n :disabled=\"props.disabled\">\n <slot name=\"trigger\" />\n </ContextMenuTrigger>\n <ContextMenuPortal>\n <ContextMenuContent\n :align=\"props.align\"\n :side=\"props.side\"\n :sideOffset=\"props.sideOffset\">\n <ContextMenuItem>\n <slot name=\"content\" />\n </ContextMenuItem>\n </ContextMenuContent>\n </ContextMenuPortal>\n </ContextMenuRoot>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuPortal,\n ContextMenuRoot,\n ContextMenuTrigger,\n} from 'radix-vue'\n\nconst props = withDefaults(\n defineProps<{\n align?: 'start' | 'center' | 'end'\n side?: 'top' | 'right' | 'bottom' | 'left'\n sideOffset?: number\n disabled?: boolean\n triggerClass?: string\n }>(),\n {\n side: 'bottom',\n align: 'center',\n disabled: false,\n },\n)\n</script>\n\n<template>\n <ContextMenuRoot>\n <ContextMenuTrigger\n :class=\"triggerClass\"\n :disabled=\"props.disabled\">\n <slot name=\"trigger\" />\n </ContextMenuTrigger>\n <ContextMenuPortal>\n <ContextMenuContent\n :align=\"props.align\"\n :side=\"props.side\"\n :sideOffset=\"props.sideOffset\">\n <ContextMenuItem>\n <slot name=\"content\" />\n </ContextMenuItem>\n </ContextMenuContent>\n </ContextMenuPortal>\n </ContextMenuRoot>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown menu component\n *\n * Provides a scrollable container for dropdown items\n * This is used internally by the ScalarDropdown component\n *\n * If you're looking to create a dropdown menu with a trigger\n * button you probably want the ScalarDropdown component\n *\n * @example\n * <ScalarDropdownMenu>\n * <ScalarDropdownItem>Item 1</ScalarDropdownItem>\n * <ScalarDropdownItem>Item 2</ScalarDropdownItem>\n * </ScalarDropdownMenu>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { type Component } from 'vue'\n\nimport { ScalarFloatingBackdrop } from '../ScalarFloating'\n\ndefineProps<{\n /** The component to render */\n is?: string | Component\n}>()\n\ndefineSlots<{\n /** The menu contents */\n default?(): unknown\n /** Overrides the normal menu list element */\n menu?(): unknown\n /** Overrides the backdrop for the dropdown */\n backdrop?(): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <!-- Background container -->\n <component\n :is=\"is ?? 'div'\"\n v-bind=\"cx('relative flex w-56')\">\n <!-- Scroll container -->\n <div class=\"custom-scroll min-h-0 flex-1\">\n <!-- Menu items -->\n <slot name=\"menu\">\n <div class=\"flex flex-col p-0.75\">\n <slot />\n </div>\n </slot>\n <slot name=\"backdrop\">\n <ScalarFloatingBackdrop />\n </slot>\n </div>\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown menu component\n *\n * Provides a scrollable container for dropdown items\n * This is used internally by the ScalarDropdown component\n *\n * If you're looking to create a dropdown menu with a trigger\n * button you probably want the ScalarDropdown component\n *\n * @example\n * <ScalarDropdownMenu>\n * <ScalarDropdownItem>Item 1</ScalarDropdownItem>\n * <ScalarDropdownItem>Item 2</ScalarDropdownItem>\n * </ScalarDropdownMenu>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { type Component } from 'vue'\n\nimport { ScalarFloatingBackdrop } from '../ScalarFloating'\n\ndefineProps<{\n /** The component to render */\n is?: string | Component\n}>()\n\ndefineSlots<{\n /** The menu contents */\n default?(): unknown\n /** Overrides the normal menu list element */\n menu?(): unknown\n /** Overrides the backdrop for the dropdown */\n backdrop?(): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <!-- Background container -->\n <component\n :is=\"is ?? 'div'\"\n v-bind=\"cx('relative flex w-56')\">\n <!-- Scroll container -->\n <div class=\"custom-scroll min-h-0 flex-1\">\n <!-- Menu items -->\n <slot name=\"menu\">\n <div class=\"flex flex-col p-0.75\">\n <slot />\n </div>\n </slot>\n <slot name=\"backdrop\">\n <ScalarFloatingBackdrop />\n </slot>\n </div>\n </component>\n</template>\n","import { type InjectionKey, type Ref, inject, provide, ref } from 'vue'\n\n/** The symbol for the dropdown context */\nconst ACTIVE_SYMBOL = Symbol() as InjectionKey<Ref<string | undefined>>\n\n/** Provides a ref for the currently active dropdown item */\nexport function useDropdown() {\n const active = ref<string>()\n provide(ACTIVE_SYMBOL, active)\n\n return { active }\n}\n\n/** Injects the ref for the currently active dropdown item */\nexport function useDropdownItem() {\n const active = inject(ACTIVE_SYMBOL)\n if (!active) {\n console.warn('useDropdownItem must be used within a ScalarDropdown')\n }\n return { active }\n}\n","<script lang=\"ts\">\n/**\n * Scalar dropdown component\n *\n * @example\n * <ScalarDropdown>\n * <ScalarButton>Click Me</ScalarButton>\n * <template #items>\n * <ScalarDropdownItem>Item 1</ScalarDropdownItem>\n * <ScalarDropdownItem>Item 2</ScalarDropdownItem>\n * </template>\n * </ScalarDropdown>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onClickOutside } from '@vueuse/core'\nimport { computed, nextTick, ref, useId, watch } from 'vue'\n\nimport { ScalarFloating, type ScalarFloatingOptions } from '../ScalarFloating'\nimport ScalarDropdownMenu from './ScalarDropdownMenu.vue'\nimport { useDropdown } from './useDropdown'\n\ndefineProps<ScalarFloatingOptions>()\n\ndefineSlots<{\n /** The reference element for the element in the #floating slot */\n default?(props: {\n /** Whether or not the dropdown is open */\n open: boolean\n }): unknown\n /** The list of dropdown items */\n items?(props: {\n /** Whether or not the dropdown is open */\n open: boolean\n }): unknown\n}>()\n\ntype ScalarFloatingType = InstanceType<typeof ScalarFloating>\nconst floatingRef = ref<ScalarFloatingType>()\n\nconst menuRef = ref<HTMLUListElement>()\n\n/** Whether or not the dropdown is open */\nconst open = defineModel<boolean>('open', { default: false })\n\nconst { active } = useDropdown()\n\nconst fallbackTargetId = useId()\nconst targetId = ref<string>(fallbackTargetId)\nconst menuId = useId()\n\n/** Handle click events on the target */\nasync function handleTargetClick() {\n open.value = !open.value\n await nextTick()\n if (open.value) menuRef.value?.focus()\n}\n\n/** Handle keydown events on the target */\nasync function handleTargetKeydown(event: KeyboardEvent) {\n // Only handle the keys that are relevant to the dropdown\n if (['ArrowDown', 'ArrowUp', ' ', 'Enter'].includes(event.key))\n event.preventDefault()\n else return\n\n // Open the dropdown if it's not open\n if (!open.value) open.value = true\n\n // Move the active item if the key is an arrow key or space or enter\n await nextTick()\n\n // Focus the menu\n menuRef.value?.focus()\n\n // Move the active item if the key is an arrow key or space or enter\n if (['ArrowDown', ' ', 'Enter'].includes(event.key)) moveActive(1)\n else if (event.key === 'ArrowUp') moveActive(-1)\n}\n\n/** Watch the target reference for changes */\nwatch(\n () => floatingRef.value?.targetRef,\n (newTarget, oldTarget) => {\n if (newTarget) {\n // Create an id for the target if it doesn't have one\n if (newTarget.id) targetId.value = newTarget.id\n else {\n targetId.value = fallbackTargetId\n newTarget.setAttribute('id', targetId.value)\n }\n // Set the aria attributes\n newTarget.setAttribute('aria-haspopup', 'menu')\n newTarget.setAttribute('aria-expanded', `${open.value}`)\n if (open.value) newTarget.setAttribute('aria-controls', menuId)\n // Add the event listeners\n newTarget.addEventListener('click', handleTargetClick)\n newTarget.addEventListener('keydown', handleTargetKeydown)\n }\n if (oldTarget && oldTarget !== newTarget) {\n // Remove the id if it's using the fallback id\n if (oldTarget.id === fallbackTargetId) oldTarget.removeAttribute('id')\n // Remove the aria attributes\n oldTarget.removeAttribute('aria-controls')\n oldTarget.removeAttribute('aria-haspopup')\n oldTarget.removeAttribute('aria-expanded')\n // Remove the event listeners\n oldTarget.removeEventListener('click', handleTargetClick)\n oldTarget.removeEventListener('keydown', handleTargetKeydown)\n }\n },\n { immediate: true },\n)\n\n/** Watch the open state for changes */\nwatch(\n open,\n (o) => {\n const target = floatingRef.value?.targetRef\n if (!target) return\n // Update the aria-expanded attribute on the target\n target.setAttribute('aria-expanded', `${o}`)\n if (o) target.setAttribute('aria-controls', menuId)\n else target.removeAttribute('aria-controls')\n },\n { immediate: true },\n)\n\nasync function handleClose() {\n // Move focus back to the target\n floatingRef.value?.targetRef?.focus()\n // Close the dropdown\n open.value = false\n}\n\nfunction handleSelected() {\n if (!active.value || !menuRef.value) return\n\n const button = menuRef.value.querySelector<HTMLElement>(\n `#${active.value}[role=\"menuitem\"]:not([aria-disabled=\"true\"])`,\n )\n\n if (!button) return\n\n button.click()\n\n handleClose()\n}\n\n/** Move the active item in the dropdown */\nfunction moveActive(dir: 1 | -1) {\n if (!open.value || !menuRef.value) return\n\n // Get all menu items, filtering out disabled ones\n const list = Array.from(\n menuRef.value.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not([aria-disabled=\"true\"])',\n ),\n )\n\n if (list.length === 0) return\n\n // Find the current active item's index\n const activeIdx = list.findIndex((item) => item.id === active.value)\n\n if (activeIdx === -1) {\n // If there is no active item, activate the first or last item\n const targetItem = list[dir > 0 ? 0 : list.length - 1]\n if (targetItem?.id) active.value = targetItem.id\n return\n }\n\n // Calculate next index and exit if it's out of bounds\n const nextIdx = activeIdx + dir\n\n if (nextIdx < 0 || nextIdx > list.length - 1) {\n return\n }\n\n const nextItem = list[nextIdx]\n\n if (nextItem?.id) active.value = nextItem.id\n}\n\n/** Close the dropdown if the user clicks outside of the menu and button */\nonClickOutside(menuRef, handleClose, {\n ignore: [computed(() => floatingRef.value?.targetRef)],\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <ScalarFloating\n ref=\"floatingRef\"\n v-bind=\"$props\"\n :placement=\"placement ?? 'bottom-start'\">\n <slot :open />\n <template\n v-if=\"open\"\n #floating=\"{ width }\">\n <!-- Background container -->\n <ScalarDropdownMenu\n :style=\"{ width }\"\n v-bind=\"cx('max-h-[inherit] max-w-[inherit]')\">\n <template #menu>\n <div\n :id=\"menuId\"\n ref=\"menuRef\"\n :aria-activedescendant=\"active\"\n :aria-labelledby=\"targetId\"\n class=\"flex flex-col p-0.75 outline-none\"\n role=\"menu\"\n tabindex=\"-1\"\n @click.stop=\"handleClose\"\n @keydown.down.prevent.stop=\"moveActive(1)\"\n @keydown.enter.prevent.stop=\"handleSelected\"\n @keydown.escape.prevent.stop=\"handleClose\"\n @keydown.space.prevent.stop=\"handleSelected\"\n @keydown.tab.prevent.stop=\"handleClose\"\n @keydown.up.prevent.stop=\"moveActive(-1)\">\n <slot\n name=\"items\"\n :open />\n </div>\n </template>\n </ScalarDropdownMenu>\n </template>\n </ScalarFloating>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown component\n *\n * @example\n * <ScalarDropdown>\n * <ScalarButton>Click Me</ScalarButton>\n * <template #items>\n * <ScalarDropdownItem>Item 1</ScalarDropdownItem>\n * <ScalarDropdownItem>Item 2</ScalarDropdownItem>\n * </template>\n * </ScalarDropdown>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onClickOutside } from '@vueuse/core'\nimport { computed, nextTick, ref, useId, watch } from 'vue'\n\nimport { ScalarFloating, type ScalarFloatingOptions } from '../ScalarFloating'\nimport ScalarDropdownMenu from './ScalarDropdownMenu.vue'\nimport { useDropdown } from './useDropdown'\n\ndefineProps<ScalarFloatingOptions>()\n\ndefineSlots<{\n /** The reference element for the element in the #floating slot */\n default?(props: {\n /** Whether or not the dropdown is open */\n open: boolean\n }): unknown\n /** The list of dropdown items */\n items?(props: {\n /** Whether or not the dropdown is open */\n open: boolean\n }): unknown\n}>()\n\ntype ScalarFloatingType = InstanceType<typeof ScalarFloating>\nconst floatingRef = ref<ScalarFloatingType>()\n\nconst menuRef = ref<HTMLUListElement>()\n\n/** Whether or not the dropdown is open */\nconst open = defineModel<boolean>('open', { default: false })\n\nconst { active } = useDropdown()\n\nconst fallbackTargetId = useId()\nconst targetId = ref<string>(fallbackTargetId)\nconst menuId = useId()\n\n/** Handle click events on the target */\nasync function handleTargetClick() {\n open.value = !open.value\n await nextTick()\n if (open.value) menuRef.value?.focus()\n}\n\n/** Handle keydown events on the target */\nasync function handleTargetKeydown(event: KeyboardEvent) {\n // Only handle the keys that are relevant to the dropdown\n if (['ArrowDown', 'ArrowUp', ' ', 'Enter'].includes(event.key))\n event.preventDefault()\n else return\n\n // Open the dropdown if it's not open\n if (!open.value) open.value = true\n\n // Move the active item if the key is an arrow key or space or enter\n await nextTick()\n\n // Focus the menu\n menuRef.value?.focus()\n\n // Move the active item if the key is an arrow key or space or enter\n if (['ArrowDown', ' ', 'Enter'].includes(event.key)) moveActive(1)\n else if (event.key === 'ArrowUp') moveActive(-1)\n}\n\n/** Watch the target reference for changes */\nwatch(\n () => floatingRef.value?.targetRef,\n (newTarget, oldTarget) => {\n if (newTarget) {\n // Create an id for the target if it doesn't have one\n if (newTarget.id) targetId.value = newTarget.id\n else {\n targetId.value = fallbackTargetId\n newTarget.setAttribute('id', targetId.value)\n }\n // Set the aria attributes\n newTarget.setAttribute('aria-haspopup', 'menu')\n newTarget.setAttribute('aria-expanded', `${open.value}`)\n if (open.value) newTarget.setAttribute('aria-controls', menuId)\n // Add the event listeners\n newTarget.addEventListener('click', handleTargetClick)\n newTarget.addEventListener('keydown', handleTargetKeydown)\n }\n if (oldTarget && oldTarget !== newTarget) {\n // Remove the id if it's using the fallback id\n if (oldTarget.id === fallbackTargetId) oldTarget.removeAttribute('id')\n // Remove the aria attributes\n oldTarget.removeAttribute('aria-controls')\n oldTarget.removeAttribute('aria-haspopup')\n oldTarget.removeAttribute('aria-expanded')\n // Remove the event listeners\n oldTarget.removeEventListener('click', handleTargetClick)\n oldTarget.removeEventListener('keydown', handleTargetKeydown)\n }\n },\n { immediate: true },\n)\n\n/** Watch the open state for changes */\nwatch(\n open,\n (o) => {\n const target = floatingRef.value?.targetRef\n if (!target) return\n // Update the aria-expanded attribute on the target\n target.setAttribute('aria-expanded', `${o}`)\n if (o) target.setAttribute('aria-controls', menuId)\n else target.removeAttribute('aria-controls')\n },\n { immediate: true },\n)\n\nasync function handleClose() {\n // Move focus back to the target\n floatingRef.value?.targetRef?.focus()\n // Close the dropdown\n open.value = false\n}\n\nfunction handleSelected() {\n if (!active.value || !menuRef.value) return\n\n const button = menuRef.value.querySelector<HTMLElement>(\n `#${active.value}[role=\"menuitem\"]:not([aria-disabled=\"true\"])`,\n )\n\n if (!button) return\n\n button.click()\n\n handleClose()\n}\n\n/** Move the active item in the dropdown */\nfunction moveActive(dir: 1 | -1) {\n if (!open.value || !menuRef.value) return\n\n // Get all menu items, filtering out disabled ones\n const list = Array.from(\n menuRef.value.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not([aria-disabled=\"true\"])',\n ),\n )\n\n if (list.length === 0) return\n\n // Find the current active item's index\n const activeIdx = list.findIndex((item) => item.id === active.value)\n\n if (activeIdx === -1) {\n // If there is no active item, activate the first or last item\n const targetItem = list[dir > 0 ? 0 : list.length - 1]\n if (targetItem?.id) active.value = targetItem.id\n return\n }\n\n // Calculate next index and exit if it's out of bounds\n const nextIdx = activeIdx + dir\n\n if (nextIdx < 0 || nextIdx > list.length - 1) {\n return\n }\n\n const nextItem = list[nextIdx]\n\n if (nextItem?.id) active.value = nextItem.id\n}\n\n/** Close the dropdown if the user clicks outside of the menu and button */\nonClickOutside(menuRef, handleClose, {\n ignore: [computed(() => floatingRef.value?.targetRef)],\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <ScalarFloating\n ref=\"floatingRef\"\n v-bind=\"$props\"\n :placement=\"placement ?? 'bottom-start'\">\n <slot :open />\n <template\n v-if=\"open\"\n #floating=\"{ width }\">\n <!-- Background container -->\n <ScalarDropdownMenu\n :style=\"{ width }\"\n v-bind=\"cx('max-h-[inherit] max-w-[inherit]')\">\n <template #menu>\n <div\n :id=\"menuId\"\n ref=\"menuRef\"\n :aria-activedescendant=\"active\"\n :aria-labelledby=\"targetId\"\n class=\"flex flex-col p-0.75 outline-none\"\n role=\"menu\"\n tabindex=\"-1\"\n @click.stop=\"handleClose\"\n @keydown.down.prevent.stop=\"moveActive(1)\"\n @keydown.enter.prevent.stop=\"handleSelected\"\n @keydown.escape.prevent.stop=\"handleClose\"\n @keydown.space.prevent.stop=\"handleSelected\"\n @keydown.tab.prevent.stop=\"handleClose\"\n @keydown.up.prevent.stop=\"moveActive(-1)\">\n <slot\n name=\"items\"\n :open />\n </div>\n </template>\n </ScalarDropdownMenu>\n </template>\n </ScalarFloating>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown button base component\n *\n * Provide a styled button for the ScalarDropdown or similar\n *\n * This is used internally by the ScalarDropdownItem component\n *\n * If you're looking to add items to a dropdown menu you\n * probably want the ScalarDropdownItem component\n *\n * @example\n * <ScalarDropdownButton @click=\"handleClick\">\n * Label\n * </ScalarDropdownButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nconst { is = 'button' } = defineProps<{\n is?: string | Component\n active?: boolean\n disabled?: boolean\n}>()\n\nconst variants = cva({\n base: [\n // Layout\n 'block h-8 min-w-0 gap-1.5 rounded px-2.5 py-1.5 text-left',\n // Text / background style\n 'truncate no-underline text-sm text-c-1',\n // Interaction\n 'cursor-pointer hover:bg-b-2',\n ],\n variants: {\n disabled: { true: 'pointer-events-none text-c-3' },\n active: { true: '' },\n },\n compoundVariants: [{ disabled: false, active: true, class: 'bg-b-2' }],\n})\n</script>\n<template>\n <component\n :is=\"is\"\n :aria-disabled=\"disabled\"\n class=\"item\"\n :class=\"cx('scalar-dropdown-item', variants({ active, disabled }))\"\n :type=\"is === 'button' ? 'button' : undefined\">\n <slot />\n </component>\n</template>\n<style scoped>\n.dark-mode .scalar-dropdown-item:hover {\n filter: brightness(1.1);\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown button base component\n *\n * Provide a styled button for the ScalarDropdown or similar\n *\n * This is used internally by the ScalarDropdownItem component\n *\n * If you're looking to add items to a dropdown menu you\n * probably want the ScalarDropdownItem component\n *\n * @example\n * <ScalarDropdownButton @click=\"handleClick\">\n * Label\n * </ScalarDropdownButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nconst { is = 'button' } = defineProps<{\n is?: string | Component\n active?: boolean\n disabled?: boolean\n}>()\n\nconst variants = cva({\n base: [\n // Layout\n 'block h-8 min-w-0 gap-1.5 rounded px-2.5 py-1.5 text-left',\n // Text / background style\n 'truncate no-underline text-sm text-c-1',\n // Interaction\n 'cursor-pointer hover:bg-b-2',\n ],\n variants: {\n disabled: { true: 'pointer-events-none text-c-3' },\n active: { true: '' },\n },\n compoundVariants: [{ disabled: false, active: true, class: 'bg-b-2' }],\n})\n</script>\n<template>\n <component\n :is=\"is\"\n :aria-disabled=\"disabled\"\n class=\"item\"\n :class=\"cx('scalar-dropdown-item', variants({ active, disabled }))\"\n :type=\"is === 'button' ? 'button' : undefined\">\n <slot />\n </component>\n</template>\n<style scoped>\n.dark-mode .scalar-dropdown-item:hover {\n filter: brightness(1.1);\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown divider component\n *\n * Used to create a divider between items in the ScalarDropdown component\n *\n * @example\n * <ScalarDropdown>\n * ...\n * <template #items>\n * <ScalarDropdownItem>Item 1</ScalarDropdownItem>\n * <ScalarDropdownItem>Item 2</ScalarDropdownItem>\n * <ScalarDropdownDivider />\n * <ScalarDropdownItem>Item 3</ScalarDropdownItem>\n * </template>\n * </ScalarDropdown>\n */\nexport default {}\n</script>\n<template>\n <div class=\"-mx-0.75 my-0.75 h-border bg-border\" />\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown divider component\n *\n * Used to create a divider between items in the ScalarDropdown component\n *\n * @example\n * <ScalarDropdown>\n * ...\n * <template #items>\n * <ScalarDropdownItem>Item 1</ScalarDropdownItem>\n * <ScalarDropdownItem>Item 2</ScalarDropdownItem>\n * <ScalarDropdownDivider />\n * <ScalarDropdownItem>Item 3</ScalarDropdownItem>\n * </template>\n * </ScalarDropdown>\n */\nexport default {}\n</script>\n<template>\n <div class=\"-mx-0.75 my-0.75 h-border bg-border\" />\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown item component\n *\n * Used to create items for the ScalarDropdown component\n *\n * @example\n * <ScalarDropdownItem @click=\"handleClick\">\n * Label\n * </ScalarDropdownItem>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nimport ScalarDropdownButton from './ScalarDropdownButton.vue'\nimport { useDropdownItem } from './useDropdown'\n\nconst { id = useId(), disabled } = defineProps<{\n id?: string\n disabled?: boolean\n}>()\n\ndefineEmits<{\n (e: 'click', event: MouseEvent): void\n}>()\n\nconst { active } = useDropdownItem()\n</script>\n<template>\n <ScalarDropdownButton\n :id\n :active=\"active === id\"\n :disabled\n role=\"menuitem\"\n tabindex=\"-1\"\n @click=\"(e: MouseEvent) => $emit('click', e)\"\n @mouseenter=\"active = id\">\n <slot />\n </ScalarDropdownButton>\n</template>\n<style scoped>\n.dark-mode .scalar-dropdown-item:hover {\n filter: brightness(1.1);\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar dropdown item component\n *\n * Used to create items for the ScalarDropdown component\n *\n * @example\n * <ScalarDropdownItem @click=\"handleClick\">\n * Label\n * </ScalarDropdownItem>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nimport ScalarDropdownButton from './ScalarDropdownButton.vue'\nimport { useDropdownItem } from './useDropdown'\n\nconst { id = useId(), disabled } = defineProps<{\n id?: string\n disabled?: boolean\n}>()\n\ndefineEmits<{\n (e: 'click', event: MouseEvent): void\n}>()\n\nconst { active } = useDropdownItem()\n</script>\n<template>\n <ScalarDropdownButton\n :id\n :active=\"active === id\"\n :disabled\n role=\"menuitem\"\n tabindex=\"-1\"\n @click=\"(e: MouseEvent) => $emit('click', e)\"\n @mouseenter=\"active = id\">\n <slot />\n </ScalarDropdownButton>\n</template>\n<style scoped>\n.dark-mode .scalar-dropdown-item:hover {\n filter: brightness(1.1);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onErrorCaptured, ref } from 'vue'\n\nconst hasError = ref<boolean>(false)\nconst error = ref<Error>()\n\nonErrorCaptured((err, _, info) => {\n console.error('[ERROR]', err, info)\n\n hasError.value = true\n error.value = err\n\n // Prevent the error from propagating further up\n return false\n})\n</script>\n\n<template>\n <slot v-if=\"!hasError\" />\n <div\n v-else\n class=\"rounded border bg-b-2 p-3 text-sm\">\n <div class=\"p-2\">Oops, something went wrong here.</div>\n <div\n v-if=\"error\"\n class=\"mt-2 rounded border bg-b-1 p-2 font-code text-c-2\">\n {{ error?.name }}: {{ error?.message }}\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onErrorCaptured, ref } from 'vue'\n\nconst hasError = ref<boolean>(false)\nconst error = ref<Error>()\n\nonErrorCaptured((err, _, info) => {\n console.error('[ERROR]', err, info)\n\n hasError.value = true\n error.value = err\n\n // Prevent the error from propagating further up\n return false\n})\n</script>\n\n<template>\n <slot v-if=\"!hasError\" />\n <div\n v-else\n class=\"rounded border bg-b-2 p-3 text-sm\">\n <div class=\"p-2\">Oops, something went wrong here.</div>\n <div\n v-if=\"error\"\n class=\"mt-2 rounded border bg-b-1 p-2 font-code text-c-2\">\n {{ error?.name }}: {{ error?.message }}\n </div>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Drop Target\n *\n * Displays a drop target for file uploads (used when\n * the user is dragging files over the component)\n *\n * @example\n * <ScalarFileUploadDropTarget />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconUploadSimple } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n ' size-full flex items-center justify-center absolute inset-0 z-1 rounded p-1 backdrop-blur',\n )\n \">\n <div\n class=\"pointer-events-none flex size-full items-center justify-center gap-1 rounded-md p-1 text-c-2\">\n <ScalarIconUploadSimple class=\"size-4\" />\n <span class=\"font-medium\"><slot>Drop to upload</slot></span>\n </div>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Drop Target\n *\n * Displays a drop target for file uploads (used when\n * the user is dragging files over the component)\n *\n * @example\n * <ScalarFileUploadDropTarget />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconUploadSimple } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n ' size-full flex items-center justify-center absolute inset-0 z-1 rounded p-1 backdrop-blur',\n )\n \">\n <div\n class=\"pointer-events-none flex size-full items-center justify-center gap-1 rounded-md p-1 text-c-2\">\n <ScalarIconUploadSimple class=\"size-4\" />\n <span class=\"font-medium\"><slot>Drop to upload</slot></span>\n </div>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Error\n *\n * Displays an error message\n *\n * @example\n * <ScalarFileUploadError>\n * <!-- Error message -->\n * </ScalarFileUploadError>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconWarningCircle } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex items-center gap-1 text-c-danger')\">\n <ScalarIconWarningCircle class=\"size-3.5\" />\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Error\n *\n * Displays an error message\n *\n * @example\n * <ScalarFileUploadError>\n * <!-- Error message -->\n * </ScalarFileUploadError>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconWarningCircle } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex items-center gap-1 text-c-danger')\">\n <ScalarIconWarningCircle class=\"size-3.5\" />\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Input\n *\n * Displays a label and button for file uploads\n *\n * @example\n * <ScalarFileUploadInput />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarButton } from '../ScalarButton'\nimport type {\n FileUploadInputEmits,\n FileUploadInputProps,\n FileUploadInputSlots,\n} from './types'\n\ndefineProps<FileUploadInputProps>()\ndefineEmits<FileUploadInputEmits>()\ndefineSlots<FileUploadInputSlots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex items-center justify-center gap-2 flex-col px-6 py-4')\">\n <div class=\"flex items-center gap-1.5 whitespace-nowrap\">\n <span class=\"text-c-2\">\n <slot>Drop {{ multiple ? 'files' : 'file' }} here to upload</slot>\n <span class=\"text-c-3\"> or</span>\n </span>\n <ScalarButton\n size=\"xs\"\n tabindex=\"-1\"\n variant=\"outlined\"\n @click=\"$emit('click', $event)\">\n Browse files\n </ScalarButton>\n </div>\n <slot name=\"sublabel\">\n <div\n v-if=\"extensions\"\n class=\"text-c-3 text-xs\">\n <span class=\"font-medium\">Supported file types:</span>\n {{ extensions.join(', ') }}\n </div>\n </slot>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Input\n *\n * Displays a label and button for file uploads\n *\n * @example\n * <ScalarFileUploadInput />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarButton } from '../ScalarButton'\nimport type {\n FileUploadInputEmits,\n FileUploadInputProps,\n FileUploadInputSlots,\n} from './types'\n\ndefineProps<FileUploadInputProps>()\ndefineEmits<FileUploadInputEmits>()\ndefineSlots<FileUploadInputSlots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex items-center justify-center gap-2 flex-col px-6 py-4')\">\n <div class=\"flex items-center gap-1.5 whitespace-nowrap\">\n <span class=\"text-c-2\">\n <slot>Drop {{ multiple ? 'files' : 'file' }} here to upload</slot>\n <span class=\"text-c-3\"> or</span>\n </span>\n <ScalarButton\n size=\"xs\"\n tabindex=\"-1\"\n variant=\"outlined\"\n @click=\"$emit('click', $event)\">\n Browse files\n </ScalarButton>\n </div>\n <slot name=\"sublabel\">\n <div\n v-if=\"extensions\"\n class=\"text-c-3 text-xs\">\n <span class=\"font-medium\">Supported file types:</span>\n {{ extensions.join(', ') }}\n </div>\n </slot>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Input\n *\n * Displays a label and button for file uploads\n *\n * @example\n * <ScalarFileUploadInput />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconUploadSimple } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport type {\n FileUploadInputEmits,\n FileUploadInputProps,\n FileUploadInputSlots,\n} from './types'\n\ndefineProps<FileUploadInputProps>()\ndefineEmits<FileUploadInputEmits>()\ndefineSlots<FileUploadInputSlots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n type=\"button\"\n v-bind=\"\n cx(\n 'flex items-center justify-center gap-1 rounded flex-col px-4 py-3 hover:bg-b-2',\n )\n \"\n @click=\"$emit('click', $event)\">\n <div class=\"flex items-center gap-1 whitespace-nowrap text-c-2\">\n <slot>\n <ScalarIconUploadSimple class=\"size-3.5\" />\n <span> Upload {{ multiple ? 'files' : 'file' }} </span>\n </slot>\n </div>\n <slot name=\"sublabel\">\n <div\n v-if=\"extensions\"\n class=\"text-c-3 text-xs\">\n {{ extensions.join(', ') }}\n </div>\n </slot>\n </button>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Input\n *\n * Displays a label and button for file uploads\n *\n * @example\n * <ScalarFileUploadInput />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconUploadSimple } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport type {\n FileUploadInputEmits,\n FileUploadInputProps,\n FileUploadInputSlots,\n} from './types'\n\ndefineProps<FileUploadInputProps>()\ndefineEmits<FileUploadInputEmits>()\ndefineSlots<FileUploadInputSlots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n type=\"button\"\n v-bind=\"\n cx(\n 'flex items-center justify-center gap-1 rounded flex-col px-4 py-3 hover:bg-b-2',\n )\n \"\n @click=\"$emit('click', $event)\">\n <div class=\"flex items-center gap-1 whitespace-nowrap text-c-2\">\n <slot>\n <ScalarIconUploadSimple class=\"size-3.5\" />\n <span> Upload {{ multiple ? 'files' : 'file' }} </span>\n </slot>\n </div>\n <slot name=\"sublabel\">\n <div\n v-if=\"extensions\"\n class=\"text-c-3 text-xs\">\n {{ extensions.join(', ') }}\n </div>\n </slot>\n </button>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Loading\n *\n * Displays a loading state for file uploads\n *\n * @example\n * <ScalarFileUploadLoading :loader=\"loader\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\ndefineProps<{\n loader: LoadingState\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n ' size-full flex items-center justify-center absolute inset-0 z-1 rounded p-1 backdrop-blur text-c-2',\n )\n \">\n <ScalarLoading\n :loader\n size=\"md\" />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload Loading\n *\n * Displays a loading state for file uploads\n *\n * @example\n * <ScalarFileUploadLoading :loader=\"loader\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\ndefineProps<{\n loader: LoadingState\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n ' size-full flex items-center justify-center absolute inset-0 z-1 rounded p-1 backdrop-blur text-c-2',\n )\n \">\n <ScalarLoading\n :loader\n size=\"md\" />\n </div>\n</template>\n","type FileExtension = `.${string}`\n\nexport type ExtensionList = FileExtension[]\n\n/**\n * Type guard to check if a value is an ExtensionList\n */\nexport function isExtensionList(value: ExtensionList | string): value is ExtensionList {\n return Array.isArray(value) && value.every((item) => item.startsWith('.'))\n}\n\n/**\n * Props for both the default and compact variants of the FileUploadInput\n */\nexport type FileUploadInputProps = {\n /** Whether multiple files can be uploaded */\n multiple?: boolean\n /** A list of extensions that are supported */\n extensions?: ExtensionList\n}\n\n/**\n * Emits for both the default and compact variants of the FileUploadInput\n */\nexport type FileUploadInputEmits = {\n /** Emitted when the user clicks the browse button */\n // biome-ignore lint/style/useShorthandFunctionType: other events might be added\n (e: 'click', event: MouseEvent): void\n}\n\n/**\n * Slots for both the default and compact variants of the FileUploadInput\n */\nexport type FileUploadInputSlots = {\n /** The default label slot */\n default?(): unknown\n /** The sublabel or error slot */\n sublabel?(): unknown\n}\n","<script lang=\"ts\">\n/**\n * Scalar File Upload component\n *\n * @example\n * <ScalarFileUpload @selected=\"handleSelected\" />\n *\n * @example\n * <ScalarFileUpload v-slot=\"{ open }\">\n * <ScalarButton @click=\"open\">Select files</ScalarButton>\n * </ScalarFileUpload>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { ref } from 'vue'\n\nimport type { LoadingState } from '../ScalarLoading'\nimport ScalarFileUploadDropTarget from './ScalarFileUploadDropTarget.vue'\nimport ScalarFileUploadError from './ScalarFileUploadError.vue'\nimport ScalarFileUploadInput from './ScalarFileUploadInput.vue'\nimport ScalarFileUploadInputCompact from './ScalarFileUploadInputCompact.vue'\nimport ScalarFileUploadLoading from './ScalarFileUploadLoading.vue'\nimport { type ExtensionList, isExtensionList } from './types'\n\nconst {\n variant = 'default',\n multiple,\n accept = '*',\n} = defineProps<{\n /** Whether multiple files can be uploaded */\n multiple?: boolean\n /**\n * Accepted file types\n * @default '*'\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept\n */\n accept?: ExtensionList | string\n /** Whether the file upload is loading */\n loader?: LoadingState\n /** Whether the file upload is compact */\n variant?: 'compact' | 'default'\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the user selects files */\n (e: 'selected', value: File[]): void\n}>()\n\ndefineSlots<{\n /** Override the entire input */\n 'default'?(props: {\n /** Open the file dialog to select files */\n open: () => void\n }): unknown\n /** Override the label */\n 'label'?(): unknown\n /** Override the entire drop target */\n 'drop-target'?(): unknown\n /** Override the drop target label */\n 'drop-target-label'?(): unknown\n}>()\n\n/** The selected files */\nconst files = defineModel<File[]>()\n\n/** The error message */\nconst error = defineModel<string>('error')\n\n/** The hidden input element */\nconst input = ref<HTMLInputElement>()\n\n/** Whether the mouse is hovering over the file upload component */\nconst dragover = ref(false)\n\n/** Opens the file dialog to select files */\nfunction openFileDialog() {\n input.value?.click()\n}\n\n/** Handles a list of files */\nfunction handleFileList(fileList?: FileList | null) {\n error.value = undefined\n\n // Use DataTransfer interface to access the file(s)\n if (!fileList || fileList.length < 1) {\n error.value = `No files found to upload`\n return\n }\n const f = Array.from(fileList)\n\n if (!multiple && f.length > 1) {\n error.value = `Too many files selected`\n return\n }\n\n files.value = f\n emit('selected', f)\n}\n\n/** Handles the change event from the input */\nfunction handleChange(event: Event) {\n const f = (event.target as HTMLInputElement).files\n handleFileList(f)\n}\n\n/** Handles a drop of files from the dropzone */\nfunction handleDrop(e: DragEvent) {\n dragover.value = false\n handleFileList(e.dataTransfer?.files)\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'flex flex-col relative border-dashed border-1 has-[input:focus-visible]:outline outline-offset-1 rounded',\n )\n \"\n @dragenter=\"dragover = true\"\n @dragover.prevent\n @drop.prevent=\"handleDrop\">\n <slot :open=\"openFileDialog\">\n <component\n :is=\"\n variant === 'compact'\n ? ScalarFileUploadInputCompact\n : ScalarFileUploadInput\n \"\n :extensions=\"isExtensionList(accept) ? accept : undefined\"\n @click=\"openFileDialog\">\n <template\n v-if=\"$slots.label\"\n #default>\n <slot name=\"label\" />\n </template>\n <template\n v-if=\"error\"\n #sublabel>\n <ScalarFileUploadError>{{ error }}</ScalarFileUploadError>\n </template>\n </component>\n </slot>\n <div\n v-if=\"dragover\"\n class=\"absolute inset-0\"\n @dragleave=\"dragover = false\">\n <slot name=\"drop-target\">\n <ScalarFileUploadDropTarget>\n <template\n v-if=\"$slots['drop-target-label']\"\n #default>\n <slot name=\"drop-target-label\" />\n </template>\n </ScalarFileUploadDropTarget>\n </slot>\n </div>\n <ScalarFileUploadLoading\n v-if=\"loader?.isActive\"\n :loader />\n <input\n ref=\"input\"\n :accept=\"isExtensionList(accept) ? accept.join(',') : accept\"\n class=\"sr-only\"\n :multiple=\"multiple\"\n type=\"file\"\n @change=\"handleChange\" />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload component\n *\n * @example\n * <ScalarFileUpload @selected=\"handleSelected\" />\n *\n * @example\n * <ScalarFileUpload v-slot=\"{ open }\">\n * <ScalarButton @click=\"open\">Select files</ScalarButton>\n * </ScalarFileUpload>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { ref } from 'vue'\n\nimport type { LoadingState } from '../ScalarLoading'\nimport ScalarFileUploadDropTarget from './ScalarFileUploadDropTarget.vue'\nimport ScalarFileUploadError from './ScalarFileUploadError.vue'\nimport ScalarFileUploadInput from './ScalarFileUploadInput.vue'\nimport ScalarFileUploadInputCompact from './ScalarFileUploadInputCompact.vue'\nimport ScalarFileUploadLoading from './ScalarFileUploadLoading.vue'\nimport { type ExtensionList, isExtensionList } from './types'\n\nconst {\n variant = 'default',\n multiple,\n accept = '*',\n} = defineProps<{\n /** Whether multiple files can be uploaded */\n multiple?: boolean\n /**\n * Accepted file types\n * @default '*'\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept\n */\n accept?: ExtensionList | string\n /** Whether the file upload is loading */\n loader?: LoadingState\n /** Whether the file upload is compact */\n variant?: 'compact' | 'default'\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the user selects files */\n (e: 'selected', value: File[]): void\n}>()\n\ndefineSlots<{\n /** Override the entire input */\n 'default'?(props: {\n /** Open the file dialog to select files */\n open: () => void\n }): unknown\n /** Override the label */\n 'label'?(): unknown\n /** Override the entire drop target */\n 'drop-target'?(): unknown\n /** Override the drop target label */\n 'drop-target-label'?(): unknown\n}>()\n\n/** The selected files */\nconst files = defineModel<File[]>()\n\n/** The error message */\nconst error = defineModel<string>('error')\n\n/** The hidden input element */\nconst input = ref<HTMLInputElement>()\n\n/** Whether the mouse is hovering over the file upload component */\nconst dragover = ref(false)\n\n/** Opens the file dialog to select files */\nfunction openFileDialog() {\n input.value?.click()\n}\n\n/** Handles a list of files */\nfunction handleFileList(fileList?: FileList | null) {\n error.value = undefined\n\n // Use DataTransfer interface to access the file(s)\n if (!fileList || fileList.length < 1) {\n error.value = `No files found to upload`\n return\n }\n const f = Array.from(fileList)\n\n if (!multiple && f.length > 1) {\n error.value = `Too many files selected`\n return\n }\n\n files.value = f\n emit('selected', f)\n}\n\n/** Handles the change event from the input */\nfunction handleChange(event: Event) {\n const f = (event.target as HTMLInputElement).files\n handleFileList(f)\n}\n\n/** Handles a drop of files from the dropzone */\nfunction handleDrop(e: DragEvent) {\n dragover.value = false\n handleFileList(e.dataTransfer?.files)\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'flex flex-col relative border-dashed border-1 has-[input:focus-visible]:outline outline-offset-1 rounded',\n )\n \"\n @dragenter=\"dragover = true\"\n @dragover.prevent\n @drop.prevent=\"handleDrop\">\n <slot :open=\"openFileDialog\">\n <component\n :is=\"\n variant === 'compact'\n ? ScalarFileUploadInputCompact\n : ScalarFileUploadInput\n \"\n :extensions=\"isExtensionList(accept) ? accept : undefined\"\n @click=\"openFileDialog\">\n <template\n v-if=\"$slots.label\"\n #default>\n <slot name=\"label\" />\n </template>\n <template\n v-if=\"error\"\n #sublabel>\n <ScalarFileUploadError>{{ error }}</ScalarFileUploadError>\n </template>\n </component>\n </slot>\n <div\n v-if=\"dragover\"\n class=\"absolute inset-0\"\n @dragleave=\"dragover = false\">\n <slot name=\"drop-target\">\n <ScalarFileUploadDropTarget>\n <template\n v-if=\"$slots['drop-target-label']\"\n #default>\n <slot name=\"drop-target-label\" />\n </template>\n </ScalarFileUploadDropTarget>\n </slot>\n </div>\n <ScalarFileUploadLoading\n v-if=\"loader?.isActive\"\n :loader />\n <input\n ref=\"input\"\n :accept=\"isExtensionList(accept) ? accept.join(',') : accept\"\n class=\"sr-only\"\n :multiple=\"multiple\"\n type=\"file\"\n @change=\"handleChange\" />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload File List\n *\n * Displays a list of files\n *\n * @example\n * <ScalarFileUploadFileList :files=\"files\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport prettyBytes from 'pretty-bytes'\n\nimport { ScalarButton } from '../ScalarButton'\n\ndefineEmits<{\n /** Emitted when the user clicks the upload button */\n (e: 'upload'): void\n}>()\n\n/** The files to display */\nconst files = defineModel<File[]>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex flex-col gap-2 p-4')\">\n <div class=\"text-c-2\">Selected files:</div>\n <ul\n v-for=\"file in files\"\n :key=\"file.name\"\n class=\"flex flex-col gap-0.5\">\n <li class=\"border rounded p-1 text-xs\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex-1 min-w-0 truncate\">\n {{ file.name }}\n </div>\n <div class=\"text-c-3\">{{ prettyBytes(file.size) }}</div>\n </div>\n </li>\n </ul>\n <div class=\"flex items-center gap-1.5\">\n <ScalarButton\n size=\"xs\"\n @click=\"$emit('upload')\">\n Upload\n </ScalarButton>\n <ScalarButton\n size=\"xs\"\n variant=\"outlined\"\n @click=\"files = []\">\n Clear\n </ScalarButton>\n </div>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar File Upload File List\n *\n * Displays a list of files\n *\n * @example\n * <ScalarFileUploadFileList :files=\"files\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport prettyBytes from 'pretty-bytes'\n\nimport { ScalarButton } from '../ScalarButton'\n\ndefineEmits<{\n /** Emitted when the user clicks the upload button */\n (e: 'upload'): void\n}>()\n\n/** The files to display */\nconst files = defineModel<File[]>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex flex-col gap-2 p-4')\">\n <div class=\"text-c-2\">Selected files:</div>\n <ul\n v-for=\"file in files\"\n :key=\"file.name\"\n class=\"flex flex-col gap-0.5\">\n <li class=\"border rounded p-1 text-xs\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex-1 min-w-0 truncate\">\n {{ file.name }}\n </div>\n <div class=\"text-c-3\">{{ prettyBytes(file.size) }}</div>\n </div>\n </li>\n </ul>\n <div class=\"flex items-center gap-1.5\">\n <ScalarButton\n size=\"xs\"\n @click=\"$emit('upload')\">\n Upload\n </ScalarButton>\n <ScalarButton\n size=\"xs\"\n variant=\"outlined\"\n @click=\"files = []\">\n Clear\n </ScalarButton>\n </div>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar header component\n *\n * Used to create a standardized header for Scalar applications\n *\n * @example\n * ```html\n * <ScalarHeader>\n * <template #start>\n * <ScalarMenu />\n * <ScalarHeaderButton>Login</ScalarHeaderButton>\n * <ScalarHeaderButton>Register</ScalarHeaderButton>\n * </template>\n * <template #default>\n * <ScalarHeaderButton>Middle thing</ScalarHeaderButton>\n * </template>\n * <template #end>\n * <ScalarHeaderButton>Call to Action</ScalarHeaderButton>\n * </template>\n * </ScalarHeader>\n * ```\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nconst { cx } = useBindCx()\n\ndefineSlots<{\n /** The first section of the header, typically on the left */\n start?(): unknown\n /** The middle section of the header */\n default?(): unknown\n /** The last section of the header, typically on the right */\n end?(): unknown\n}>()\n</script>\n<template>\n <header\n v-bind=\"\n cx(\n 'flex min-h-header items-center justify-between gap-2 bg-b-2 border-b px-2 text-sm min-w-min',\n '*:flex *:flex-1 *:items-center *:gap-px',\n )\n \">\n <div class=\"justify-start\"><slot name=\"start\" /></div>\n <div class=\"justify-center\"><slot /></div>\n <div class=\"justify-end\"><slot name=\"end\" /></div>\n </header>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar header component\n *\n * Used to create a standardized header for Scalar applications\n *\n * @example\n * ```html\n * <ScalarHeader>\n * <template #start>\n * <ScalarMenu />\n * <ScalarHeaderButton>Login</ScalarHeaderButton>\n * <ScalarHeaderButton>Register</ScalarHeaderButton>\n * </template>\n * <template #default>\n * <ScalarHeaderButton>Middle thing</ScalarHeaderButton>\n * </template>\n * <template #end>\n * <ScalarHeaderButton>Call to Action</ScalarHeaderButton>\n * </template>\n * </ScalarHeader>\n * ```\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nconst { cx } = useBindCx()\n\ndefineSlots<{\n /** The first section of the header, typically on the left */\n start?(): unknown\n /** The middle section of the header */\n default?(): unknown\n /** The last section of the header, typically on the right */\n end?(): unknown\n}>()\n</script>\n<template>\n <header\n v-bind=\"\n cx(\n 'flex min-h-header items-center justify-between gap-2 bg-b-2 border-b px-2 text-sm min-w-min',\n '*:flex *:flex-1 *:items-center *:gap-px',\n )\n \">\n <div class=\"justify-start\"><slot name=\"start\" /></div>\n <div class=\"justify-center\"><slot /></div>\n <div class=\"justify-end\"><slot name=\"end\" /></div>\n </header>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar header button component\n *\n * Used within the ScalarHeader component\n *\n * @example\n * ```html\n * <ScalarHeaderButton>\n * Login\n * </ScalarHeaderButton>\n * ```\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nconst { is = 'button' } = defineProps<{\n is?: string | Component\n active?: boolean\n}>()\n\ndefineSlots<{\n /** The contents of the button */\n default?(): unknown\n}>()\n\nconst variants = cva({\n base: 'group/button flex items-center rounded px-2.5 py-1.5 font-medium no-underline leading-5 ',\n variants: {\n active: {\n true: 'bg-b-3 cursor-default',\n false: 'bg-transparent hover:bg-b-3 cursor-pointer',\n },\n },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx(variants({ active }))\">\n <slot />\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar header button component\n *\n * Used within the ScalarHeader component\n *\n * @example\n * ```html\n * <ScalarHeaderButton>\n * Login\n * </ScalarHeaderButton>\n * ```\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nconst { is = 'button' } = defineProps<{\n is?: string | Component\n active?: boolean\n}>()\n\ndefineSlots<{\n /** The contents of the button */\n default?(): unknown\n}>()\n\nconst variants = cva({\n base: 'group/button flex items-center rounded px-2.5 py-1.5 font-medium no-underline leading-5 ',\n variants: {\n active: {\n true: 'bg-b-3 cursor-default',\n false: 'bg-transparent hover:bg-b-3 cursor-pointer',\n },\n },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx(variants({ active }))\">\n <slot />\n </component>\n</template>\n","import type { HotKeyModifierKey } from './types'\n\n/** Screen reader labels for the hotkey modifiers */\nexport const HOTKEY_LABELS = {\n '⌘': 'Command',\n '^': 'Control',\n 'ctrl': 'Control',\n '⌥': 'Option',\n 'alt': 'Alt',\n '⇧': 'Shift',\n '⇪': 'Caps Lock',\n '↵': 'Enter',\n '←': 'Left Arrow',\n '→': 'Right Arrow',\n '↑': 'Up Arrow',\n '↓': 'Down Arrow',\n} as const\n\n/** Symbols for the hotkey modifiers on MacOS */\nexport const MODIFIER_KEY_SYMBOLS_MACOS = {\n Meta: '⌘',\n Shift: '⇧',\n Alt: '⌥',\n Control: '^',\n} as const satisfies { [K in HotKeyModifierKey]: string }\n\n/** Symbols for the hotkey modifiers outside of MacOS */\nexport const MODIFIER_KEY_SYMBOLS = {\n Meta: 'ctrl',\n Shift: '⇧',\n Alt: 'alt',\n Control: 'ctrl',\n} as const satisfies { [K in HotKeyModifierKey]: string }\n","import { isMacOS } from '@scalar/helpers/general/is-mac-os'\n\nimport { HOTKEY_LABELS, MODIFIER_KEY_SYMBOLS, MODIFIER_KEY_SYMBOLS_MACOS } from './constants'\nimport type { HotKeyModifier } from './types'\n\n// Type guards\n// ------------------------------------------------------------\n\n/** Typescript helper to check if a modifier is the default modifier */\nfunction isDefault(modifier: HotKeyModifier): modifier is 'default' {\n return modifier === 'default'\n}\n\n// Symbol Formatting\n// ------------------------------------------------------------\n\n/** Get the modifier key symbol for a modifier */\nexport function getModifierKeySymbol(modifier: HotKeyModifier): string {\n const hotkey = isDefault(modifier) ? 'Meta' : modifier\n return isMacOS() ? MODIFIER_KEY_SYMBOLS_MACOS[hotkey] : MODIFIER_KEY_SYMBOLS[hotkey]\n}\n\n/** Format the hotkey symbols for a hotkey */\nexport function formatHotkeySymbols(hotkey: string, modifier: HotKeyModifier[]): string[] {\n const modifierKeys = modifier.map((mod) => getModifierKeySymbol(mod))\n return [...modifierKeys, hotkey]\n}\n\n// Screen Reader Label Formatting\n// ------------------------------------------------------------\n\n/** Get the hotkey label for a hotkey */\nexport function getKeyLabel(key: string): string {\n return key in HOTKEY_LABELS ? HOTKEY_LABELS[key as keyof typeof HOTKEY_LABELS] : key\n}\n","<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { formatHotkeySymbols, getKeyLabel } from './formatHotkey'\nimport type { HotKeyModifier } from './types'\n\nconst { modifier = ['Meta'], hotkey } = defineProps<{\n hotkey: string\n modifier?: HotKeyModifier[]\n}>()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n\nconst hotkeyChars = computed(() => formatHotkeySymbols(hotkey, modifier))\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'border-(--scalar-background-3) inline-flex gap-0.5 overflow-hidden rounded border text-xxs rounded-b p-1 font-medium uppercase leading-none',\n )\n \">\n <div\n v-for=\"(char, i) in hotkeyChars\"\n :key=\"i\">\n <span\n aria-hidden=\"true\"\n class=\"contents\">\n {{ char }}\n </span>\n <span class=\"sr-only\">\n {{ getKeyLabel(char) }}\n </span>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { formatHotkeySymbols, getKeyLabel } from './formatHotkey'\nimport type { HotKeyModifier } from './types'\n\nconst { modifier = ['Meta'], hotkey } = defineProps<{\n hotkey: string\n modifier?: HotKeyModifier[]\n}>()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n\nconst hotkeyChars = computed(() => formatHotkeySymbols(hotkey, modifier))\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'border-(--scalar-background-3) inline-flex gap-0.5 overflow-hidden rounded border text-xxs rounded-b p-1 font-medium uppercase leading-none',\n )\n \">\n <div\n v-for=\"(char, i) in hotkeyChars\"\n :key=\"i\">\n <span\n aria-hidden=\"true\"\n class=\"contents\">\n {{ char }}\n </span>\n <span class=\"sr-only\">\n {{ getKeyLabel(char) }}\n </span>\n </div>\n </div>\n</template>\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M5 11.988h14M12.006 5v14\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M8.143 12h7.714M12 8.143v7.714M5.571 3H18.43A2.57 2.57 0 0 1 21 5.571V18.43A2.57 2.57 0 0 1 18.429 21H5.57A2.57 2.57 0 0 1 3 18.429V5.57A2.57 2.57 0 0 1 5.571 3\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M12 8v4m0 4h.01M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M22 12H2m9.3-9.3L2 12l9.3 9.3\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M2 12h20m-9.3 9.3L22 12l-9.3-9.3\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1m8 0h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M16.4 6.8v5.6H7.6m0-5.6v10.4\" }, null, -1),\n _createElementVNode(\"circle\", {\n cx: \"7.6\",\n cy: \"4.4\",\n r: \"2.4\"\n }, null, -1),\n _createElementVNode(\"circle\", {\n cx: \"7.6\",\n cy: \"19.6\",\n r: \"2.4\"\n }, null, -1),\n _createElementVNode(\"circle\", {\n cx: \"16.4\",\n cy: \"4.4\",\n r: \"2.4\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12 22.125V4.712S9.545 1.985 1.268 1.875a.5.5 0 0 0-.366.15.52.52 0 0 0-.152.369v16.375a.515.515 0 0 0 .5.519C9.543 19.4 12 22.125 12 22.125\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M9 11.18a21.3 21.3 0 0 0-5.26-1.055M9 15.375a21.3 21.3 0 0 0-5.26-1.055M15 11.18a21.3 21.3 0 0 1 5.26-1.055M15 15.375a21.3 21.3 0 0 1 5.26-1.055\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M12 22.125V4.712s2.455-2.727 10.732-2.837a.5.5 0 0 1 .366.15.52.52 0 0 1 .152.369v16.375a.515.515 0 0 1-.5.519C14.457 19.4 12 22.125 12 22.125\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M21.4 4.6 10.6 19.4l-8-6.4\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m18 10-6 6-6-6\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m14 18-6-6 6-6\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m9 18 6-6-6-6\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m18 15-6-6-6 6\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2m-6 4h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M18 6 6 18M6 6l12 12\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m9.273 9.273 5.454 5.454m0-5.454-5.454 5.454M5.57 3h12.86A2.57 2.57 0 0 1 21 5.571V18.43A2.57 2.57 0 0 1 18.429 21H5.57A2.57 2.57 0 0 1 3 18.429V5.57A2.57 2.57 0 0 1 5.571 3Z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2m-3.121 8.879 4.242 4.242m0-4.242L12.88 17.12M10 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M18.375 19.5a4.875 4.875 0 1 0-2.764-8.885A7.5 7.5 0 1 0 8.25 19.5z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M21.75 9V6a1.5 1.5 0 0 0-1.5-1.5h-12V3a1.5 1.5 0 0 0-1.5-1.5h-4.5A1.5 1.5 0 0 0 .75 3v17.8a1.7 1.7 0 0 0 3.336.438l2.352-11.154A1.5 1.5 0 0 1 7.879 9za1.5 1.5 0 0 1 1.45 1.886l-2.2 10.5a1.5 1.5 0 0 1-1.45 1.114H2.447\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m12 13.5-2.25 2.25L12 18m4.5-4.5 2.25 2.25L16.5 18\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M10.546 2.438a1.957 1.957 0 0 0 2.908 0L14.4 1.4a1.959 1.959 0 0 1 3.41 1.413l-.071 1.4a1.96 1.96 0 0 0 2.051 2.054l1.4-.071a1.959 1.959 0 0 1 1.41 3.41l-1.042.94a1.96 1.96 0 0 0 0 2.909l1.042.94a1.959 1.959 0 0 1-1.413 3.41l-1.4-.071a1.96 1.96 0 0 0-2.056 2.056l.071 1.4A1.959 1.959 0 0 1 14.4 22.6l-.941-1.041a1.96 1.96 0 0 0-2.908 0L9.606 22.6A1.959 1.959 0 0 1 6.2 21.192l.072-1.4a1.96 1.96 0 0 0-2.056-2.056l-1.4.071A1.958 1.958 0 0 1 1.4 14.4l1.041-.94a1.96 1.96 0 0 0 0-2.909L1.4 9.606A1.958 1.958 0 0 1 2.809 6.2l1.4.071a1.96 1.96 0 0 0 2.058-2.06L6.2 2.81A1.959 1.959 0 0 1 9.606 1.4z\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M7.5 12.001a4.5 4.5 0 1 0 9 0 4.5 4.5 0 1 0-9 0\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M20.86 16.6c0 .32-.16.64-.47.72l-6.3 2.83a.93.93 0 0 1-.8-.08c-.23-.16-.38-.4-.38-.63V4.56c0-.24.15-.55.39-.63.24-.16.47-.16.79-.08l6.3 2.83c.31.16.47.4.47.71v9.22zM10.7 19.52a.77.77 0 0 1-.7-.08.72.72 0 0 1-.32-.63V5.35c0-.24.15-.56.4-.63.23-.16.46-.16.78-.08M7.43 18.73a.77.77 0 0 1-.7-.08.72.72 0 0 1-.32-.63V6.05c0-.23.16-.55.4-.63.23-.15.47-.15.78-.07m-3.43 12.6a.77.77 0 0 1-.7-.08.72.72 0 0 1-.32-.63V6.84c0-.23.16-.55.4-.63.23-.16.47-.16.78-.08\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M15.739 8.061c-2.02.404-4.041-1.01-4.445-3.03-.202-1.01 0-2.223.606-3.031C6.445 2 2 6.445 2 11.9s4.445 9.9 9.9 9.9 9.9-4.445 9.9-9.9v-.808c-1.616 1.212-4.04.808-5.253-.808-.606-.606-.808-1.415-.808-2.223\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M8.667 15.133a1.212 1.212 0 1 0 0-2.425 1.212 1.212 0 0 0 0 2.425m4.243 1.212a1.212 1.212 0 1 0 0-2.424 1.212 1.212 0 0 0 0 2.424M9.88 9.88a1.212 1.212 0 1 0 0-2.425 1.212 1.212 0 0 0 0 2.425\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M17.673 16.462C10.59 16.46 5.52 9.612 7.59 2.837.22 6.233-.71 16.333 5.917 21.016c5.864 4.144 14.064 1.34 16.163-5.526-1.38.64-2.884.972-4.407.972M11.996 3.484h4.866m-2.433-2.433v4.867m4.867 2.433h3.244m-1.622-1.622v3.244\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M3 6h18m-2 0v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6m3 0V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2m-6 5v6m4-6v6\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M10.145 5.108a.584.584 0 0 1-.657-.37l-.24-.705a.51.51 0 0 0-.496-.35c-1.835.065-3.434.577-4.13.834a1.2 1.2 0 0 0-.6.474c-.75 1.142-3.085 5.242-3.02 11.944.003.4.169.78.485 1.025.716.556 2.259 1.576 4.702 2.314.358.108.75.004.962-.304.316-.462.597-1.04.796-1.494a.56.56 0 0 1 .669-.31c.87.248 1.993.439 3.39.439 1.393 0 2.512-.19 3.379-.437a.56.56 0 0 1 .669.31c.199.454.48 1.03.795 1.492.211.308.604.412.962.304 2.443-.738 3.986-1.758 4.703-2.314.315-.245.48-.626.485-1.025.063-6.652-2.236-10.74-3.003-11.917a1.25 1.25 0 0 0-.654-.5c-.75-.256-2.428-.763-4.094-.833a.505.505 0 0 0-.496.348l-.239.703a.586.586 0 0 1-.66.37 10.5 10.5 0 0 0-1.846-.15c-.827 0-1.461.08-1.862.152\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M10 12.553c0 1.38-1.008 2.5-2.25 2.5-1.243 0-2.25-1.12-2.25-2.5 0-1.381 1.007-2.5 2.25-2.5 1.242 0 2.25 1.119 2.25 2.5m4 0c0 1.38 1.007 2.5 2.25 2.5 1.242 0 2.25-1.12 2.25-2.5 0-1.381-1.008-2.5-2.25-2.5-1.243 0-2.25 1.119-2.25 2.5\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M5.4 22.2h13c1.1 0 2-.9 2-2V3.6c0-1.1-.9-2-2-2h-9l-6 6v12.6c0 1.1.9 2 2 2\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M3.6 7.6h4c1.1 0 2-.9 2-2v-4zm9.4 0h4m-10 5h10M7 17.4h10\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12.001 3.75v12m-4.5-4.5 4.5 4.5 4.5-4.5m6.75 4.5v1.5a3 3 0 0 1-3 3h-16.5a3 3 0 0 1-3-3v-1.5\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M7.42 16.58H3.25a.83.83 0 0 1-.83-.83V3.25a.83.83 0 0 1 .83-.83h12.5a.83.83 0 0 1 .83.83v4.17\"\n }, null, -1),\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M8.25 7.42h12.5s.83 0 .83.83v12.5s0 .83-.83.83H8.25s-.83 0-.83-.83V8.25s0-.83.83-.83\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M14 3H5.571A2.57 2.57 0 0 0 3 5.571V18.43A2.57 2.57 0 0 0 5.571 21H18.43A2.57 2.57 0 0 0 21 18.429V10m.96-5.35a1.845 1.845 0 0 0-2.61-2.61l-6.644 6.647a1.3 1.3 0 0 0-.328.543l-.864 2.849a.327.327 0 0 0 .408.407l2.849-.864c.205-.062.391-.174.543-.325l6.645-6.647Z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M6 11c-.5 0-1 .4-1 1s.5 1 1 1 1-.4 1-1-.5-1-1-1m12 0c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1m-6 0c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M2.25 4.5h19.5s1.5 0 1.5 1.5v12s0 1.5-1.5 1.5H2.25s-1.5 0-1.5-1.5V6s0-1.5 1.5-1.5m13.437 5.475L19.5 13.5M8.313 9.975 4.5 13.5\" }, null, -1),\n _createElementVNode(\"path\", { d: \"m22.88 5.014-9.513 6.56a2.41 2.41 0 0 1-2.734 0L1.12 5.014\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12 17.6c-.2 0-.4-.2-.4-.4s.2-.4.4-.4m0 .8c.2 0 .4-.2.4-.4s-.2-.4-.4-.4m0-3V5.6\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m18.59 15.3 2.9-2.91a1.32 1.32 0 0 0 0-1.87l-1.85-1.85a3.3 3.3 0 1 1-4.31-4.31L13.48 2.5a1.32 1.32 0 0 0-1.87 0l-2.9 2.91a3.3 3.3 0 1 0-3.3 3.3l-2.9 2.9a1.32 1.32 0 0 0 0 1.87l1.85 1.85a3.3 3.3 0 1 1 4.31 4.31l1.85 1.85a1.32 1.32 0 0 0 1.87 0l2.9-2.9a3.3 3.3 0 1 0 3.3-3.3Z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M6.4 4H20v13.59M4 20 20 4\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4 6h16M7.556 12h8.888m-6.222 6h3.556\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 1024 1024\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M512 0a512 512 0 0 0-162 998c26 4 35-11 35-25l-1-95c-128 23-161-32-172-60-6-15-31-61-52-73-18-10-44-33-1-33 40-1 69 37 78 52 46 78 120 56 149 43 5-33 18-56 33-69-114-13-234-56-234-253 0-56 20-101 53-137-5-13-23-65 5-136 0 0 43-13 141 53a487 487 0 0 1 256 0c98-66 141-53 141-53 28 71 10 123 5 136 33 36 53 81 53 137 0 197-120 240-234 253 18 16 35 47 35 95l-1 140c0 14 9 30 35 25A512 512 0 0 0 512 0\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M16.643 22.94v-3.135a3.68 3.68 0 0 0-1.026-2.852c3.43-.382 7.036-1.682 7.036-7.648a5.94 5.94 0 0 0-1.64-4.097 5.54 5.54 0 0 0-.097-4.12s-1.29-.382-4.272 1.618a14.6 14.6 0 0 0-7.649 0c-2.982-2-4.272-1.617-4.272-1.617a5.54 5.54 0 0 0-.098 4.119 5.94 5.94 0 0 0-1.639 4.13c0 5.922 3.606 7.222 7.036 7.648a3.68 3.68 0 0 0-1.027 2.819v3.136m0-2.186c-3.277 1.064-6.009 0-7.648-3.278\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M22 12c0 5.523-4.477 10-10 10m10-10c0-5.523-4.477-10-10-10m10 10H2m10 10C6.477 22 2 17.523 2 12m10 10a14.5 14.5 0 0 1 0-20m0 20a14.5 14.5 0 0 0 0-20M2 12C2 6.477 6.477 2 12 2\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M23.93 10.67a.76.76 0 0 0-.75-.67H12.75a.76.76 0 0 0-.75.75v3.5a.76.76 0 0 0 .75.75h5.58A7 7 0 1 1 12 5a7 7 0 0 1 4.23 1.42.74.74 0 0 0 1-.07l2.47-2.49a.75.75 0 0 0 .22-.57.77.77 0 0 0-.27-.54A12 12 0 1 0 24 12a12 12 0 0 0-.07-1.33\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M9.2 9.2c0-.5.1-1 .4-1.5s.6-.8 1.1-1q.75-.3 1.5-.3c.75 0 1 .2 1.4.5s.7.7 1 1.2c.2.5.3 1 .2 1.5s-.3 1-.6 1.4-.8.7-1.2.9c-.255.128-.5.3-.7.5s-.3.5-.3.8v.9m0 3.5c-.2 0-.4-.2-.4-.4s.2-.4.4-.4.4.2.4.4-.2.4-.4.4\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M12 22c5.524 0 10-4.476 10-10S17.524 2 12 2 2 6.476 2 12s4.476 10 10 10\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M9.88 14.12a3 3 0 1 1 4.24-4.24m-3.39 9.04q.632.079 1.27.08c7 0 10-7 10-7a13.2 13.2 0 0 0-1.67-2.68M6.61 17.39A13.5 13.5 0 0 1 2 12s3-7 10-7a9.74 9.74 0 0 1 5.39 1.61M2 22 22 2\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12.9 6.8v6.1h4.7\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M6.1 17.2c1.6 2.2 4.2 3.6 7.1 3.6 4.8 0 8.8-3.9 8.8-8.8s-3.9-8.8-8.8-8.8-8.8 4-8.8 8.8v1.7M2 11.3l2.4 2.4 2.4-2.4\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M22.1 9.2 12 1.5 1.8 9.2c-.2.2-.3.5-.4.7v11.7c0 .5.4.9.9.9h6.1v-4.9c0-1.9 1.6-3.5 3.5-3.5s3.5 1.6 3.5 3.5v4.9h6.1c.5 0 .9-.4.9-.9V9.9c0-.3-.1-.6-.4-.7z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12 10.67v7.98M14.66 16 12 18.64 9.34 16\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M3.35 7.34h17.3s1.33 0 1.33 1.33v11.98s0 1.33-1.33 1.33H3.35s-1.33 0-1.33-1.33V8.67s0-1.33 1.33-1.33\" }, null, -1),\n _createElementVNode(\"path\", { d: \"m2.2 8 2.13-5.19a1.33 1.33 0 0 1 1.22-.79h12.9a1.33 1.33 0 0 1 1.22.8l2.08 5.1M12 7.34V2.02\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10\"\n }, null, -1),\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M12 17v-6 0a.5.5 0 0 0-.5-.5l-.5.001h-1M12 17h-2m2 0h2\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n \"fill-rule\": \"evenodd\",\n d: \"M10.75 7.5a1 1 0 1 1 2 0 1 1 0 0 1-2 0\",\n \"clip-rule\": \"evenodd\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12.82 14.51 15.36 12l1.76.47a1.56 1.56 0 0 0 1.51-.47 1.58 1.58 0 0 0 .37-1.49l-.47-1.75.82-.76 1.76.47A1.56 1.56 0 0 0 22.62 8 1.58 1.58 0 0 0 23 6.52l-.47-1.75a2.35 2.35 0 0 0-3.33-3.33l-9.71 9.74a6.29 6.29 0 1 0 3.33 3.33\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M4.26 17.84a1.9 1.9 0 1 0 3.8 0 1.9 1.9 0 1 0-3.8 0\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M16.35 16.5v1c0 1.1-.9 2-2 2H2.75c-1.1 0-2-.9-2-2v-11c0-1.1.9-2 2-2h11.6c1.1 0 2 .9 2 2v1M5.25 12h18m0 0-3 3.1m3-3.1-3-2.9\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M6.55 12a5.46 5.46 0 1 0 10.91.481A5.46 5.46 0 0 0 6.55 12m0 0H2m4.55 0H4.73m12.31 2.1a5.46 5.46 0 0 1-6.614-6.887M12 2v4.55m7.08-1.62-3.22 3.22M22 12h-4.54m1.62 7.08L16 16.01M12 22v-4m-7.07 1.08L8 16.01M4.93 4.93l3.22 3.22\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M7.501 12a4.5 4.5 0 1 0 9 0 4.5 4.5 0 1 0-9 0m4.5-10.5v3m0 15v3m10.5-10.5h-3m-15 0h-3m17.924-7.424-2.121 2.121M6.697 17.304l-2.121 2.121m14.849 0-2.121-2.121M6.697 6.697 4.576 4.576\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M13.5 18 12 19.5c-1 1-2.3 1.5-3.7 1.5s-2.7-.6-3.7-1.5c-1-1-1.5-2.3-1.5-3.7s.6-2.7 1.5-3.7l1.5-1.5M10.5 6 12 4.5c1-1 2.3-1.5 3.7-1.5s2.7.6 3.7 1.5c1 1 1.5 2.3 1.5 3.7s-.6 2.7-1.5 3.7l-1.5 1.5M9 15l6-6\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12 17a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M5.778 10h12.444c.982 0 1.778.895 1.778 2v8c0 1.105-.796 2-1.778 2H5.778C4.796 22 4 21.105 4 20v-8c0-1.105.796-2 1.778-2M7 10V7a5 5 0 1 1 10 0v3\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 593 593\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M347 0c6 0 12 5 12 12v134l94-95c5-5 13-5 17 0l72 72c4 4 5 12 0 16v1l-95 94h134c7 0 12 5 12 12v101c0 7-5 12-12 12H447l95 94c4 5 5 13 0 17l-72 72c-4 4-12 5-16 0h-1l-94-95v134c0 7-5 12-12 12H246c-7 0-12-5-12-12v-70c0-22 9-43 24-59l130-130c14-14 14-37 0-51L259 142a84 84 0 0 1-25-59V12c0-7 5-12 12-12zM138 52h1l219 219c14 14 14 37 0 51L139 542c-4 5-12 5-17 0l-71-70c-4-5-5-12 0-17l95-96H12c-7 0-12-5-12-12V246c0-7 5-12 12-12h134l-95-94c-4-5-4-12 0-17l71-71c4-5 12-5 16 0\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m.75 23.25 15-15m-5.25 0H8.25m15 0H21M21 3l-1.591 1.591M15.75 3V.75m0 15V13.5m-3.659-8.909L10.5 3M21 13.5l-1.591-1.591\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M3 16.142V8.245h2.323l2.322 2.903 2.323-2.903h2.322v7.897H9.968v-4.53l-2.323 2.904-2.322-2.903v4.529zm14.516 0-3.484-3.832h2.323V8.245h2.322v4.065H21z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M22 6.8H2m20 10.4H2\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m4.9 4.9 14.2 14.2M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M17.333 5.34c1.39-.22 2.796-.334 4.205-.34.121 0 .238.043.329.122a.44.44 0 0 1 .133.314v13.73a.44.44 0 0 1-.133.306.46.46 0 0 1-.311.13C14.186 19.708 12 22 12 22m0 0V7.38S9.822 5.096 2.462 5a.5.5 0 0 0-.329.122.44.44 0 0 0-.133.314v13.73a.44.44 0 0 0 .133.306.46.46 0 0 0 .311.13C9.814 19.708 12 22 12 22\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M12 22a5.67 5.67 0 0 1 1.367-3.135c.967-1.141 2.237-1.923 3.633-2.236V2.443a.45.45 0 0 0-.051-.21.4.4 0 0 0-.14-.154.47.47 0 0 0-.409-.054 6.44 6.44 0 0 0-3.033 2.063A5.86 5.86 0 0 0 12 7.205\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M17 3a2.85 2.85 0 0 1 2.064-1.007 2.87 2.87 0 0 1 2.14.834 2.83 2.83 0 0 1 .825 2.131A2.8 2.8 0 0 1 21 7L7.5 20.5 2 22l1.5-5.5z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M6 6.663c0-1.582 1.75-2.538 3.082-1.682l8.301 5.337a2 2 0 0 1 0 3.364L9.082 19.02C7.75 19.875 6 18.919 6 17.337z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M5.25 14.248v4.5H.75m18-9v-4.5h4.5m-4.218-.003A9.752 9.752 0 0 1 8.246 21m-3.279-2.249A9.753 9.753 0 0 1 15.754 3\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M16.22 2.663a1.47 1.47 0 0 0-1.09 0L8.87 5.167c-.35.14-.74.14-1.09 0L1.982 2.848a.735.735 0 0 0-1.008.686V17.62c0 .601.366 1.142.924 1.365l5.88 2.352c.35.14.742.14 1.092 0l6.258-2.504c.35-.14.741-.14 1.092 0l5.796 2.315a.735.735 0 0 0 1.008-.686V6.38a1.47 1.47 0 0 0-.924-1.365ZM8.325 5.272v16.17m7.35-18.884v16.17\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M3 15c1.895 3 3.79 4 6.632 4s6.631-3 6.631-7-2.842-7-5.684-7-4.737 1.5-4.737 4 1.895 5 5.684 5S19.492 11.547 21 9\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16m10 2-4.35-4.35\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M20 12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2m16 0H4m16 0a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M18 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2m0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2\"\n }, null, -1),\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M6 8h4m-4 8h4\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M20 7H9m0 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0m7 10H5m11 0a2 2 0 1 0 4 0 2 2 0 0 0-4 0\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7\"\n }, null, -1),\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M2 5.4h20M2 12h20M2 18.6h13.3\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M13 15h5M6 9l4 3-4 3\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M21 2.8H3.1c-.7 0-1.4.6-1.4 1.4v15.6c0 .7.6 1.4 1.4 1.4H21c.7 0 1.4-.6 1.4-1.4V4.2c0-.8-.5-1.4-1.3-1.4z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m19.5 5.75-1.51 14.34a1.67 1.67 0 0 1-1.66 1.5H7.67A1.67 1.67 0 0 1 6 20.08L4.5 5.75m-2.08 0h19.16m-13.33 0v-2.5a.83.83 0 0 1 .83-.83h5.84a.83.83 0 0 1 .83.83v2.5M12 9.5v8.75m3.75-8.75-.42 8.75M8.25 9.5l.42 8.75\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12 17a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M5.778 10h12.444c.982 0 1.778.895 1.778 2v8c0 1.105-.796 2-1.778 2H5.778C4.796 22 4 21.105 4 20v-8c0-1.105.796-2 1.778-2M17 10V7a5 5 0 0 0-9.33-2.5\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4.9 19.1c-3.038-3.038-3.71-7.592-2.015-11.3M7.8 16.2c-1.397-1.397-1.945-3.346-1.646-5.2M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5m2.9-11.4C23 8.8 23 15.1 19.1 19m-8.423-8.5a2 2 0 0 1 2.75 2.901M22 22 2 2\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M12 4.33v15.32m5.37-9.95L12 4.33 6.63 9.7\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M3.5 22.2c.3-4.5 4-8 8.5-8s8.2 3.5 8.5 8z\" }, null, -1),\n _createElementVNode(\"circle\", {\n cx: \"12\",\n cy: \"6.2\",\n r: \"4.5\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M11.101 1.488H4.83a1 1 0 0 0-1 1v6.614m9.069 13.41h6.272a1 1 0 0 0 1-1v-6.614\" }, null, -1),\n _createElementVNode(\"path\", { d: \"m1.23 6.5 2.6 2.6 2.601-2.6m16.339 11-2.6-2.6-2.601 2.6M5.505 18.546a2.551 2.551 0 1 0 0-5.103 2.551 2.551 0 0 0 0 5.103m4.277 3.965c-.559-1.83-2.29-3.202-4.276-3.202-1.988 0-3.718 1.372-4.277 3.202m17.264-15.92a2.551 2.551 0 1 0 0-5.103 2.551 2.551 0 0 0 0 5.103m4.277 3.965c-.559-1.83-2.289-3.202-4.276-3.202s-3.718 1.372-4.276 3.202\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M3.375 7.875a4.125 4.125 0 1 0 8.25 0 4.125 4.125 0 1 0-8.25 0M.75 20.25a6.75 6.75 0 0 1 13.5 0m.001-15.834a4.125 4.125 0 1 1-.006 6.914M15 13.667a6.757 6.757 0 0 1 8.25 6.583\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"m5.246 12.069-2.74 1.569a1 1 0 0 0 .001 1.74l8.5 4.87a2 2 0 0 0 2 0l8.5-4.87a.999.999 0 0 0 0-1.74l-2.702-1.548m-5.798 3.158a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l8.5-4.87a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M2.97 2.771 13.908 5.88a3.77 3.77 0 0 1 2.592 3.5v10.51a2.052 2.052 0 0 1-2.6 2.167l-9.048-2.46a3.7 3.7 0 0 1-2.6-3.457V4.688a2.75 2.75 0 0 1 2.67-2.813H18.75a3 3 0 0 1 3 3v8.953a3.073 3.073 0 0 1-3.11 3.047H16.5\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M12.375 13.875a.375.375 0 0 1 0-.75m0 .75a.375.375 0 0 0 0-.75m9.375-3.75H16.5\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4.9 19.1C1 15.2 1 8.8 4.9 4.9m2.9 11.3c-2.3-2.3-2.3-6.1 0-8.5m8.4.1c2.3 2.3 2.3 6.1 0 8.5m2.9-11.4C23 8.8 23 15.1 19.1 19M14 12a2 2 0 1 1-4 0 2 2 0 0 1 4 0\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M20.25 3.75v19.5M3.75 3.75h16.5m-16.5 19.5V3.75m16.5 19.5H3.75m16.5-19.5H3.75l1.5-3h13.5zM.75 23.25h22.5m-9-2.25a2.25 2.25 0 0 0-4.5 0v2.25h4.5zM7.5 7.13a.37.37 0 1 1 0-.75m0 .75a.37.37 0 1 0 0-.75m4.5.75a.38.38 0 0 1 0-.75m0 .75a.38.38 0 0 0 0-.75m4.5.75a.38.38 0 0 1 0-.75m0 .75a.38.38 0 0 0 0-.75m-9 5.25a.38.38 0 0 1 0-.76m0 .76a.38.38 0 0 0 0-.76m4.5.76a.38.38 0 0 1 0-.76m0 .76a.38.38 0 0 0 0-.76m4.5.76a.38.38 0 0 1 0-.76m0 .76a.38.38 0 0 0 0-.76m-9 5.26a.38.38 0 0 1 0-.75m0 .75a.38.38 0 0 0 0-.75m4.5.75a.38.38 0 0 1 0-.75m0 .75a.38.38 0 0 0 0-.75m4.5.75a.38.38 0 0 1 0-.75m0 .75a.38.38 0 0 0 0-.75\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M9.931 12.645h4.138l-2.07-4.908m0-7.737L.68 3.982l1.726 14.771L12 24l9.596-5.242L23.32 3.984zm7.064 18.31h-2.638l-1.422-3.503H8.996l-1.422 3.504h-2.64L12 2.65z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M16.074 16.86c-.72.616-2.157 1.035-3.812 1.035-2.032 0-3.735-.632-4.187-1.483-.161.488-.198 1.046-.198 1.402 0 0-.106 1.75 1.111 2.968 0-.632.513-1.145 1.145-1.145 1.083 0 1.082.945 1.081 1.712v.069c0 1.164.711 2.161 1.723 2.582a2.35 2.35 0 0 1-.236-1.029c0-1.11.652-1.523 1.41-2.003.602-.383 1.272-.807 1.733-1.66a3.1 3.1 0 0 0 .378-1.494 3.1 3.1 0 0 0-.148-.954M15.551.6c.196.244.296.572.496 1.229l4.368 14.347a18.2 18.2 0 0 0-5.222-1.768L12.35 4.8a.37.37 0 0 0-.71.002l-2.81 9.603a18.2 18.2 0 0 0-5.245 1.771L7.974 1.827c.2-.656.3-.984.497-1.227a1.6 1.6 0 0 1 .654-.484C9.415 0 9.757 0 10.443 0h3.135c.686 0 1.03 0 1.32.117A1.6 1.6 0 0 1 15.55.6z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n \"fill-rule\": \"evenodd\",\n d: \"M6.335.83a.75.75 0 0 0-.67 0L1.667 2.827a.75.75 0 0 0-.417.672V18c0 .271.146.52.382.654l7.989 4.493a.75.75 0 0 0 .747.007l8-4.5A.75.75 0 0 0 18.75 18v-4.537l3.585-1.792A.75.75 0 0 0 22.75 11V6a.75.75 0 0 0-.417-.672l-3.998-1.999a.75.75 0 0 0-.67 0l-3.997 1.999a.7.7 0 0 0-.246.194.75.75 0 0 0-.172.478v4.561l-2.5 1.407V3.5a.75.75 0 0 0-.43-.678L6.336.829Zm7.686 11.019 2.38 1.19-6.422 3.612-2.38-1.19zm3.229-.063-2.5-1.25V7.215l2.5 1.25zm1.5 0 2.5-1.25V7.215l-2.5 1.25zm-9.5 1.025V4.714l-2.5 1.25v8.254zm-1.005 4.65.743.372c.17.091.262.153.262.183v3.202l-6.5-3.657V4.714l2.5 1.25V15.5a.75.75 0 0 0 .415.67s1.122.591 2.108 1.064zm2.505.478 6.5-3.657v3.28l-6.5 3.656v-3.28ZM6 4.66 3.677 3.5 6 2.339 8.323 3.5zM20.323 6 18 4.839 15.677 6 18 7.161z\",\n \"clip-rule\": \"evenodd\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M11.573 0a5 5 0 0 0-.359.007L10.85.04c-3.407.307-6.6 2.146-8.622 4.972a11.9 11.9 0 0 0-2.119 5.243c-.096.659-.108.854-.108 1.747s.012 1.089.108 1.748c.652 4.506 3.86 8.292 8.209 9.695.779.25 1.6.422 2.534.525.363.04 1.935.04 2.299 0 1.611-.178 2.977-.577 4.323-1.264.207-.106.247-.134.219-.158-.02-.013-.9-1.193-1.955-2.62l-1.919-2.592-2.404-3.558a339 339 0 0 0-2.422-3.556c-.009-.002-.018 1.579-.023 3.51-.007 3.38-.01 3.515-.052 3.595a.43.43 0 0 1-.206.214c-.075.037-.14.044-.495.044H7.81l-.108-.068a.44.44 0 0 1-.157-.171l-.05-.106.006-4.703.007-4.705.072-.092a.7.7 0 0 1 .174-.143c.096-.047.134-.051.54-.051.478 0 .558.018.682.154a467 467 0 0 1 2.895 4.361l4.735 7.17 1.9 2.879.096-.063a12.3 12.3 0 0 0 2.466-2.163 11.94 11.94 0 0 0 2.824-6.134c.096-.66.108-.854.108-1.748 0-.893-.012-1.088-.108-1.747-.652-4.506-3.859-8.292-8.208-9.695a12.6 12.6 0 0 0-2.499-.523A33 33 0 0 0 11.573 0m4.068 7.217c.347 0 .408.005.486.047a.47.47 0 0 1 .237.277c.018.06.023 1.365.018 4.304l-.006 4.218-.744-1.14-.746-1.14v-3.066c0-1.982.01-3.097.023-3.15a.48.48 0 0 1 .233-.296c.096-.05.13-.054.5-.054z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236m2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38a2.17 2.17 0 0 0-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44a23.5 23.5 0 0 0-3.107-.534A24 24 0 0 0 12.769 4.7c1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442a23 23 0 0 0-3.113.538 15 15 0 0 1-.254-1.42c-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05q.684.704 1.36 1.564c-.44-.02-.89-.034-1.345-.034q-.691-.001-1.36.034c.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093q.61.874 1.183 1.86.557.961 1.018 1.946c-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87a25.6 25.6 0 0 1-4.412.005 27 27 0 0 1-1.183-1.86q-.557-.961-1.018-1.946a25 25 0 0 1 1.013-1.954c.38-.66.773-1.286 1.18-1.868A25 25 0 0 1 12 8.098zm-3.635.254c-.24.377-.48.763-.704 1.16q-.336.585-.635 1.174c-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0q1.044.153 2.006.387c-.18.632-.405 1.282-.66 1.933a26 26 0 0 0-1.345-2.32zm3.063.675q.727.226 1.375.498c1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493a24 24 0 0 0-1.1-2.98c.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98a23 23 0 0 0-1.086 2.964c-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474s1.12-1.742 2.852-2.476c.42-.18.88-.342 1.356-.494m11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39a26 26 0 0 0 1.341-2.338zm-9.945.02c.2.392.41.783.64 1.175q.345.586.705 1.143a22 22 0 0 1-2.006-.386c.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295a1.2 1.2 0 0 1-.553-.132c-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64q.661.032 1.345.034.691.001 1.36-.034c-.44.572-.895 1.095-1.345 1.565q-.684-.706-1.36-1.565\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M23.94 3a.5.5 0 0 0-.44-.25h-2.31l-8.55 13.91a.75.75 0 0 1-1.28 0L2.81 2.77H.5A.5.5 0 0 0 .06 3a.54.54 0 0 0 0 .51l11.5 19a.51.51 0 0 0 .86 0l11.5-19a.54.54 0 0 0 .02-.51\" }, null, -1),\n _createElementVNode(\"path\", { d: \"m12 14.84 7.43-12.07H16a.47.47 0 0 0-.43.25L12 9.26 8.43 3A.47.47 0 0 0 8 2.77H4.57Z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"m117.5 33.5.3-.2c-.6-1.1-1.5-2.1-2.4-2.6L67.1 2.9c-.8-.5-1.9-.7-3.1-.7s-2.3.3-3.1.7l-48 27.9c-1.7 1-2.9 3.5-2.9 5.4v55.7c0 1.1.2 2.3.9 3.4l-.2.1c.5.8 1.2 1.5 1.9 1.9l48.2 27.9c.8.5 1.9.7 3.1.7s2.3-.3 3.1-.7l48-27.9c1.7-1 2.9-3.5 2.9-5.4V36.1c.1-.8 0-1.7-.4-2.6M64 88.5c9.1 0 17.1-5 21.3-12.4l12.9 7.6c-6.8 11.8-19.6 19.8-34.2 19.8-21.8 0-39.5-17.7-39.5-39.5S42.2 24.5 64 24.5c14.7 0 27.5 8.1 34.3 20l-13 7.5C81.1 44.5 73.1 39.5 64 39.5c-13.5 0-24.5 11-24.5 24.5s11 24.5 24.5 24.5\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M60.952.266C27.377.266.065 28.77.065 63.806s27.318 63.54 60.887 63.54c33.576 0 60.893-28.505 60.893-63.54S94.528.266 60.952.266m0 6.117c30.39 0 55.025 25.712 55.025 57.423 0 2.482-.167 4.924-.46 7.321-1.495 6.214-4.194 10.358-7.412 13.19-4.941 4.336-11.524 5.738-17.62 5.733a41 41 0 0 1-4.973-.289C97.506 77.4 99.336 57.866 89.864 43.315 80.39 28.763 62.315 23.338 46.882 30.416a24 24 0 0 0-1.68-1.114c-2.41-1.413-7.439-3.482-13.837-3.505-5.361-.022-10.615 1.568-15.133 4.58C26.554 15.317 43.21 6.386 60.952 6.394zM51.341 84.6c.894-4.07 3.343-10.431 5.548-15.655.623-1.481 1.23-2.872 1.777-4.104 3.451 12.822 5.635 20.449 9.546 25.65a18 18 0 0 0 1.913 2.114 28 28 0 0 1-9.173 1.56 28.2 28.2 0 0 1-10.023-1.86q-.098-1.227-.103-2.459a24.5 24.5 0 0 1 .515-5.24zm-7.444 3.77c-7.555-5.703-12.031-14.84-12.04-24.57.008-9.88 4.625-19.138 12.375-24.813 1.637.984 3.121 2.143 4.34 3.477 2.395 2.56 5.077 8.214 6.94 13.082.51 1.312.965 2.567 1.36 3.709C50.16 73.502 45.685 80.608 43.898 88.37zm21.802-18.226c-1.501-4.037-2.374-7.079-2.379-7.084l-.005-.012c-2.747-10.984-5.592-21.025-11.497-28.052a28 28 0 0 1 9.134-1.55c16.06.022 29.074 13.602 29.095 30.36-.007 9.673-4.432 18.764-11.914 24.474a15 15 0 0 1-2.184-.78c-1.137-.514-2.812-2.267-4.329-4.698-2.313-3.635-4.437-8.622-5.927-12.653zm-4.747 51.08c-30.39 0-55.025-25.707-55.025-57.424 0-2.086.114-4.144.32-6.173 4.508-16 15.338-21.92 25.595-22.02 2.08-.007 4.117.282 6.068.774-13.182 12.081-15.74 32.487-5.979 47.7 9.762 15.213 28.817 20.518 44.544 12.403 2.78 1.023 5.96 1.633 9.812 2.137 1.447.186 3.007.277 4.665.277a61.6 61.6 0 0 0 14.997-2.087c-10.29 15.308-27.088 24.417-45.007 24.407z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"m117.5 33.5.3-.2c-.6-1.1-1.5-2.1-2.4-2.6L67.1 2.9c-.8-.5-1.9-.7-3.1-.7s-2.3.3-3.1.7l-48 27.9c-1.7 1-2.9 3.5-2.9 5.4v55.7c0 1.1.2 2.3.9 3.4l-.2.1c.5.8 1.2 1.5 1.9 1.9l48.2 27.9c.8.5 1.9.7 3.1.7s2.3-.3 3.1-.7l48-27.9c1.7-1 2.9-3.5 2.9-5.4V36.1c.1-.8 0-1.7-.4-2.6m-53.5 70c-21.8 0-39.5-17.7-39.5-39.5S42.2 24.5 64 24.5c14.7 0 27.5 8.1 34.3 20l-13 7.5C81.1 44.5 73.1 39.5 64 39.5c-13.5 0-24.5 11-24.5 24.5s11 24.5 24.5 24.5c9.1 0 17.1-5 21.3-12.4l12.9 7.6c-6.8 11.8-19.6 19.8-34.2 19.8M115 62h-3.2l-.9 4h4.1v5h-5l-1.2 6h-4.9l1.2-6h-3.8l-1.2 6h-4.8l1.2-6H94v-5h3.5l.9-4H94v-5h5.3l1.2-6h4.9l-1.2 6h3.8l1.2-6h4.8l-1.2 6h2.2zm-12.7 4h3.8l.9-4h-3.8z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M1.5 0h21l-1.91 21.563L11.977 24l-8.565-2.438zm17.09 4.413L5.41 4.41l.213 2.622 10.125.002-.255 2.716h-6.64l.24 2.573h6.182l-.366 3.523-2.91.804-2.956-.81-.188-2.11h-2.61l.29 3.855L12 19.288l5.373-1.53z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 50 50\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"m7.91 9.32.09.09V35.3l-5.09-5.09a6.22 6.22 0 0 1-1.27-6.92zM35.3 8H9.41l-.09-.09 13.97-6.27a6.22 6.22 0 0 1 6.92 1.27zm2.29 31H11.71l-.54-.54A4 4 0 0 1 10 35.63V11.41zm-23.88 2H39v6c0 .55-.45 1-1 1H21.1c-.27 0-.52-.11-.71-.29l-4.7-4.7.02-.02zM48 21.1V38c0 .55-.45 1-1 1h-6.58L11.41 10h24.22c1.07 0 2.07.42 2.83 1.17l4.53 4.54.02-.02 4.7 4.7c.18.19.29.44.29.71\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M0 64.5 60.7 3.8v30.4L30.4 64.5l30.4 30.4v30.4zm39.1 0 21.7-21.7v43.4zm88.9 0L65.1 3.8v30.4l30.4 30.4-30.4 30.3v30.4z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M108.2 64.8c-.1-.1-.2-.2-.4-.2l-.1-.1c-.1-.1-.2-.1-.2-.2l-.1-.1c-.1 0-.2-.1-.2-.1l-.2-.1c-.1 0-.2-.1-.2-.1l-.2-.1c-.1 0-.2-.1-.2-.1-.1 0-.1 0-.2-.1l-.3-.1c-.1 0-.1 0-.2-.1l-.3-.1h-.1l-.4-.1h-.2c-.1 0-.2 0-.3-.1h-2.3c-.6-13.3.6-26.8-2.8-39.6 12.9-4.6 2.8-22.3-8.4-14.4-7.4-6.4-17.6-7.8-28.3-7.8-10.5.7-20.4 2.9-27.4 8.4-2.8-1.4-5.5-1.8-7.9-1.1v.1c-.1 0-.3.1-.4.2-.1 0-.3.1-.4.2h-.1c-.1 0-.2.1-.4.2h-.1l-.3.2h-.1l-.3.2h-.1l-.3.2s-.1 0-.1.1l-.3.2s-.1 0-.1.1l-.3.2s-.1 0-.1.1l-.3.2-.1.1c-.1.1-.2.1-.2.2l-.1.1-.2.2-.1.1c-.1.1-.1.2-.2.2l-.1.1c-.1.1-.1.2-.2.2l-.1.1c-.1.1-.1.2-.2.2l-.1.1c-.1.1-.1.2-.2.2l-.1.1c-.1.1-.1.2-.2.2l-.1.1-.1.3s0 .1-.1.1l-.1.3s0 .1-.1.1l-.1.3s0 .1-.1.1l-.1.3s0 .1-.1.1c.4.3.4.4.4.4v.1l-.1.3v.1c0 .1 0 .2-.1.3v3.1c0 .1 0 .2.1.3v.1l.1.3v.1l.1.3s0 .1.1.1l.1.3s0 .1.1.1l.1.3s0 .1.1.1l.2.3s0 .1.1.1l.2.3s0 .1.1.1l.2.3.1.1.3.3.3.3h.1c1 .9 2 1.6 4 2.2v-.2C23 37.3 26.5 50 26.7 63c-.6 0-.7.4-1.7.5h-.5c-.1 0-.3 0-.5.1-.1 0-.3 0-.4.1l-.4.1h-.1l-.4.1h-.1l-.3.1h-.1l-.3.1s-.1 0-.1.1l-.3.1-.2.1c-.1 0-.2.1-.2.1l-.2.1-.2.1c-.1 0-.2.1-.2.1l-.2.1-.4.3c-.1.1-.2.2-.3.2l-.4.4-.1.1c-.1.2-.3.4-.4.5l-.2.3-.3.6-.1.3v.3c0 .5.2.9.9 1.2.2 3.7 3.9 2 5.6.8l.1-.1c.2-.2.5-.3.6-.3h.1l.2-.1c.1 0 .1 0 .2-.1.2-.1.4-.1.5-.2.1 0 .1-.1.1-.2l.1-.1c.1-.2.2-.6.2-1.2l.1-1.3v1.8c-.5 13.1-4 30.7 3.3 42.5 1.3 2.1 2.9 3.9 4.7 5.4h-.5c-.2.2-.5.4-.8.6l-.9.6-.3.2-.6.4-.9.7-1.1 1c-.2.2-.3.4-.4.5l-.4.6-.2.3c-.1.2-.2.4-.2.6l-.1.3q-.3 1.2.6 2.7l.4.4h.2c.1 0 .2 0 .4.1.2.4 1.2 2.5 3.9.9 2.8-1.5 4.7-4.6 8.1-5.1l-.5-.6c5.9 2.8 12.8 4 19 4.2 8.7.3 18.6-.9 26.5-5.2 2.2.7 3.9 3.9 5.8 5.4l.1.1.1.1.1.1.1.1s.1 0 .1.1c0 0 .1 0 .1.1 0 0 .1 0 .1.1h2.1s.1 0 .1-.1h.1s.1 0 .1-.1h.1s.1 0 .1-.1c0 0 .1 0 .1-.1l.1-.1s.1 0 .1-.1l.1-.1h.1l.2-.2.2-.1h.1l.1-.1h.1l.1-.1.1-.1.1-.1.1-.1.1-.1.1-.1.1-.1v-.1s0-.1.1-.1v-.1s0-.1.1-.1v-.1s0-.1.1-.1v-1.4s-.3 0-.3-.1l-.3-.1v-.1l.3-.1s.2 0 .2-.1l.1-.1v-2.1s0-.1-.1-.1v-.1s0-.1-.1-.1v-.1s0-.1-.1-.1c0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1-.1-.1l-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1v-.1l-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1c2-1.9 3.8-4.2 5.1-6.9 5.9-11.8 4.9-26.2 4.1-39.2h.1c.1 0 .2.1.2.1h.3s.1 0 .1.1h.1s.1 0 .1.1l.2.1c1.7 1.2 5.4 2.9 5.6-.8 1.6.6-.3-1.8-1.3-2.5M36 23C32.8 7 58.4 4 59.3 19.6c.8 13-20 16.3-23.3 3.4m36.1 15c-1.3 1.4-2.7 1.2-4.1.7 0 1.9.4 3.9.1 5.9-.5.9-1.5 1-2.3 1.4-1.2-.2-2.1-.9-2.6-2l-.2-.1c-3.9 5.2-6.3-1.1-5.2-5-1.2.1-2.2-.2-3-1.5-1.4-2.6.7-5.8 3.4-6.3.7 3 8.7 2.6 10.1-.2 3.1 1.5 6.5 4.3 3.8 7.1m-7-17.5c-.9-13.8 20.3-17.5 23.4-4 3.5 15-20.8 18.9-23.4 4M41.7 17c-1.9 0-3.5 1.7-3.5 3.8s1.6 3.8 3.5 3.8 3.5-1.7 3.5-3.8-1.5-3.8-3.5-3.8m1.6 5.7c-.5 0-.8-.4-.8-1 0-.5.4-1 .8-1 .5 0 .8.4.8 1 0 .5-.3 1-.8 1m27.8-6.6c-1.9 0-3.4 1.7-3.4 3.8s1.5 3.8 3.4 3.8 3.4-1.7 3.4-3.8-1.5-3.8-3.4-3.8m1.6 5.6c-.4 0-.8-.4-.8-1 0-.5.4-1 .8-1s.8.4.8 1-.4 1-.8 1\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M1.5 0h21l-1.91 21.563L11.977 24l-8.564-2.438zm7.031 9.75-.232-2.718 10.059.003.23-2.622L5.412 4.41l.698 8.01h9.126l-.326 3.426-2.91.804-2.955-.81-.188-2.11H6.248l.33 4.171L12 19.351l5.379-1.443.744-8.157z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M111.7 29.7 128 64l-16.3 34.3H16.3L0 64l16.3-34.3zm-5.5 5.7H20L6.3 64l13.6 28.6h86.3L119.8 64zm-76.3 19v8h9.2v-8.1h4.8v20.4h-4.7v-8.4H30v8.4h-4.8V54.4zm34.3 0v3.8h-6.5v16.5H53V58.2h-6.5v-3.8zm18.3 0v3.8H76v16.5h-4.7V58.2h-6.5v-3.8zm16.1.9c1.2.5 2.3 1.4 3.1 2.6.7 1.2 1.1 2.5 1 3.9.1 1.4-.3 2.7-1 3.9-.7 1.1-1.8 2-3.1 2.6-1.5.6-3.1.9-4.7.9h-4.1v5.6H85V54.4h8.9c1.6 0 3.2.3 4.7.9m-5.1 2.9h-3.8v7.1h3.8q2.1 0 3.3-.9c.8-.6 1.2-1.6 1.1-2.6 0-1.1-.3-2.1-1.1-2.6-.8-.7-1.9-1-3.3-1\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M11.26 15.27c3.37-.15 7.15-1.09 7-2.21a26 26 0 0 1-4.76.59c-3.62.16-6.58-.24-6.61-.9 0-.2.24-.4.69-.58-2.39-.64-3.67.53-3.69 1.22-.1 1.45 3.22 2.06 7.37 1.88m5.91 1.64a23 23 0 0 1-4.07.5c-3.09.14-5.61-.21-5.64-.77 0-.17.21-.34.59-.49-2-.55-3.13.45-3.15 1-.05 1.24 2.78 1.77 6.33 1.61 2.87-.1 6.25-1 5.94-1.85M3.61 20.8a.93.93 0 0 1 .29-.65c-2.09.1-2.54 1.13-2.51 1.76.07 1.39 4.67 2.31 10 2.05 4.44-.22 9.16-1 9.16-2.34a26.3 26.3 0 0 1-7.2 1.23c-5.35.26-9.67-.66-9.74-2.05\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M22.4 12.65c-.55-1.48-2.67-2.34-4.74-1.57a2.47 2.47 0 0 0-1 .81c1.94-.56 3.83 0 4.34 1.41.45 1.21-.3 2.64-1.72 3.54a1.37 1.37 0 0 0 .92-.13c2.25-1.05 2.8-2.58 2.2-4.06m-9.88-1.38s-3.1-2.19-1.92-4.35S14.37 2.43 13.38 0c0 0 .12 1-3.12 3.91s-2.14 6.33 2.26 7.36\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M15.17 4.83s-4.24 1.51-2.83 3.53c1 1.43 2.13 2 1.42 4 0 0 2.83-1.51.71-3.53s.7-4 .7-4M8.69 19.26c-1.6-.43-2.46.35-2.47.81 0 1 2.18 1.39 5 1.27 2.26-.11 4.73-.95 4.67-1.49a16.6 16.6 0 0 1-3.2.4c-2.43.11-4.41-.16-4.43-.61-.04-.13.13-.26.43-.38\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M0 0h24v24H0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873-.736-.345-1.554-.585-1.797-1.14-.091-.33-.105-.51-.046-.705.15-.646.915-.84 1.515-.66.39.12.75.42.976.9 1.034-.676 1.034-.676 1.755-1.125-.27-.42-.404-.601-.586-.78-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005-1.14 1.291-.811 3.541.569 4.471 1.365 1.02 3.361 1.244 3.616 2.205.24 1.17-.87 1.545-1.966 1.41-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109 1.74 1.756 6.09 1.666 6.871-1.004.029-.09.24-.705.074-1.65zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805 0 1.232.063 2.363-.138 2.711-.33.689-1.18.601-1.566.48-.396-.196-.597-.466-.83-.855-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517.855.51 2.004.675 3.207.405.783-.226 1.458-.691 1.811-1.411.51-.93.402-2.07.397-3.346.012-2.054 0-4.109 0-6.179z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M4.56 18.71c-1.41-4-.65-8.94 1.77-11.48A5.47 5.47 0 0 1 12 5.71h.15a.8.8 0 0 1 .22.12c4 1.65 4.28 8.57 1.28 11.41a4.15 4.15 0 0 0 3.08-1.35c2.12-2.23 2.76-6.62 1.49-10.22A7.75 7.75 0 0 0 12.81.54H12a11.5 11.5 0 0 0-5.42 21.6 10 10 0 0 1-2.02-3.43\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M23.5 12a11.49 11.49 0 0 0-6.09-10.14 9.9 9.9 0 0 1 2 3.43c1.41 4 .65 9-1.77 11.5a5.42 5.42 0 0 1-4 1.75A6.5 6.5 0 0 1 12 18.3h-.15a.8.8 0 0 1-.22-.12c-4-1.65-4.29-8.57-1.29-11.41a4.14 4.14 0 0 0-3.11 1.32c-2.12 2.22-2.76 6.61-1.49 10.2a7.77 7.77 0 0 0 5.45 5.17H12A11.5 11.5 0 0 0 23.5 12\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M0 0h61.4L0 60.4zm0 128L128 0H64.6L0 63.7zm128 0L64.6 66.6 3.3 128z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M21.75 5.52 13 .28a2 2 0 0 0-2 0L2.25 5.52a2 2 0 0 0-1 1.69v9.58a2 2 0 0 0 1 1.69l2.62 1.57a3.12 3.12 0 0 0 4.73-2.68V8.12a1 1 0 0 0-2 0v9.25a1.13 1.13 0 0 1-.57 1 1.14 1.14 0 0 1-1.13 0l-2.61-1.58V7.24L12 2l8.73 5.21v9.55L12 22l-1.7-1a1 1 0 1 0-1 1.71l1.72 1a2 2 0 0 0 2 0l8.74-5.24a2 2 0 0 0 1-1.69V7.21a2 2 0 0 0-1.01-1.69\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M15.51 14.76a9.3 9.3 0 0 1-2.24 0 .85.85 0 0 1-.75-.85 1 1 0 0 0-2 0A2.87 2.87 0 0 0 13 16.75a12 12 0 0 0 1.36.08 12 12 0 0 0 1.37-.08 2.87 2.87 0 0 0 2.5-2.84A2.68 2.68 0 0 0 16 11.26l-2.91-.49a.69.69 0 0 1-.58-.68.85.85 0 0 1 .75-.85 9.3 9.3 0 0 1 2.24 0 .85.85 0 0 1 .75.85 1 1 0 0 0 2 0 2.87 2.87 0 0 0-2.5-2.84 12.5 12.5 0 0 0-2.73 0 2.87 2.87 0 0 0-2.51 2.84 2.68 2.68 0 0 0 2.25 2.65l2.91.49a.68.68 0 0 1 .58.68.85.85 0 0 1-.74.85\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M63.877 125.392c-32.671 0-60.37-27.594-60.627-60.469a59.94 59.94 0 0 1 17.506-42.759 60.94 60.94 0 0 1 43.279-18.36 60.08 60.08 0 0 1 42.647 17.71 60.15 60.15 0 0 1 18.157 42.522c.151 33.604-26.864 61.021-60.469 61.363h-.493zm.19-118.406a57.77 57.77 0 0 0-41.01 17.427 56.78 56.78 0 0 0-16.63 40.484c.236 31.159 26.495 57.286 57.43 57.286h.414c31.863-.29 57.504-26.266 57.385-58.128a56.97 56.97 0 0 0-17.217-40.273A56.7 56.7 0 0 0 64.068 6.986z\" }, null, -1),\n _createElementVNode(\"path\", { d: \"M16.89 82.383V46.865h8.64v3.183h-4.583v29.218h4.584v3.183zm29.323-18.111c0 6.478-3.933 10.167-9.26 10.167s-8.877-4.156-8.877-9.831c0-5.939 3.722-10.121 9.167-10.121s8.97 4.36 8.97 9.785m-14.415.29c0 3.932 1.973 7.05 5.36 7.05s5.333-3.183 5.333-7.195c0-3.643-1.796-7.083-5.334-7.083s-5.392 3.328-5.392 7.307zm17.407-9.404c1.69-.29 3.407-.434 5.123-.428a9.17 9.17 0 0 1 5.537 1.223 4.06 4.06 0 0 1 2.006 3.61 4.48 4.48 0 0 1-3.183 4.183c2.269.46 3.9 2.46 3.9 4.775a5.02 5.02 0 0 1-1.861 3.978c-1.368 1.21-3.643 1.796-7.162 1.796a34 34 0 0 1-4.327-.257zm3.499 7.622h1.795c2.433 0 3.801-1.145 3.801-2.782s-1.368-2.644-3.61-2.644a9.8 9.8 0 0 0-2.006.145zm0 8.878c.618.065 1.243.092 1.86.078 2.263 0 4.262-.861 4.262-3.182s-1.94-3.183-4.373-3.183h-1.75zM69.54 54.901h3.517v12.554c0 5.334-2.577 7.116-6.365 7.116a9.3 9.3 0 0 1-2.973-.507l.428-2.834c.703.224 1.44.335 2.183.349 2.006 0 3.183-.921 3.183-4.262l.026-12.416zm13.527 10.456v2.434h-7.32v-2.434zm17.091 8.273a12.3 12.3 0 0 1-4.978.862c-6.129 0-9.851-3.834-9.851-9.707-.283-5.353 3.827-9.923 9.18-10.206.375-.02.757-.02 1.131.006a11.1 11.1 0 0 1 4.775.862l-.783 2.801a9.5 9.5 0 0 0-3.788-.75c-3.932 0-6.76 2.467-6.76 7.116 0 4.235 2.499 6.971 6.734 6.971a9.8 9.8 0 0 0 3.834-.717zM111.2 46.766v35.61h-8.641v-3.182h4.583V49.949h-4.583v-3.183h8.64z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M65.004 115.355c-.461-.894-1.004-2.796-1.356-3.601-.378-.711-1.46-2.692-1.984-3.332-1.164-1.332-1.437-1.438-1.809-3.23-.628-3.067-2.148-8.462-4.042-12.227-1.004-2-2.626-3.606-4.067-5.07-1.246-1.247-4.121-3.31-4.668-3.227-4.766.894-6.226 5.586-8.457 9.27-1.27 2.062-2.516 3.769-3.52 5.937-.898 1.98-.812 4.23-2.331 5.938a15.4 15.4 0 0 0-3.333 5.855c-.195.453-.546 4.957-1.003 6.016l7.02-.438c6.585.461 4.687 2.961 14.858 2.438l16.098-.54a25 25 0 0 0-1.433-3.792zM111.793 8.254H16.207C7.312 8.23.086 15.457.086 24.352v35.105c2.352-.812 5.578-5.75 6.668-6.934 1.789-2.062 2.16-4.77 3.059-6.378 2.062-3.793 2.433-6.477 7.101-6.477 2.164 0 3.063.516 4.5 2.516.996 1.332 2.79 3.957 3.602 5.668 1.004 1.98 2.523 4.582 3.254 5.125.515.351.972.722 1.433.894.707.27 1.356-.27 1.902-.629.622-.539.895-1.52 1.52-2.953.895-2.086 1.813-4.418 2.332-5.312.914-1.461 1.273-3.254 2.25-4.067 1.461-1.246 3.441-1.355 3.957-1.437 2.98-.625 4.336 1.437 5.777 2.707.973.894 2.243 2.605 3.246 4.851.708 1.793 1.606 3.52 2.067 4.5.351.98 1.266 2.606 1.789 4.582.543 1.711 1.809 3.067 2.352 3.961 0 0 .812 2.164 5.476 4.145a35 35 0 0 0 4.336 1.52c2.066.734 4.047.644 6.563.374 1.789 0 2.793-2.625 3.601-4.683.438-1.254.98-4.774 1.25-5.758.27-.996-.437-1.707.192-2.625.722-.977 1.164-1.082 1.519-2.332.914-2.793 5.957-2.875 8.832-2.875 2.414 0 2.063 2.332 6.125 1.52 2.336-.434 4.586.273 7.023.995 2.063.543 4.043 1.168 5.204 2.524.73.898 2.629 5.312.73 5.476.164.188.36.645.625.817-.46 1.707-2.25.46-3.332.27-1.355-.27-2.332 0-3.684.624-2.335.996-5.668.918-7.726 2.625-1.715 1.438-1.715 4.582-2.543 6.371 0 0-2.254 5.696-6.996 9.192-1.278.914-3.715 3.058-8.918 3.871-2.356.355-4.586.355-7.024.27-1.164-.079-2.332-.079-3.52-.079-.706 0-3.062-.109-2.96.164l-.27.645c.024.29.063.602.164.895.102.515.102.976.192 1.437 0 .98-.086 2.063 0 3.066.082 2.063.894 3.957 1.004 6.102.078 2.355 1.246 4.875 2.414 6.77.46.707 1.086.789 1.355 1.71.352.98 0 2.141.188 3.227.625 4.227 1.875 8.73 3.773 12.61v.078c2.332-.352 4.77-1.247 7.836-1.684 5.664-.832 13.5-.461 18.54-.914 12.796-1.168 19.706 5.226 31.148 2.601V24.336c-.063-8.895-7.293-16.102-16.207-16.102zM64.086 83.855q0-.28 0 0m-34.457 14.75c.894-1.98 1.433-4.125 2.144-6.101.73-1.899 1.813-4.61 3.684-5.582-.246-.274-3.957-.375-4.934-.461-1.082-.086-2.171-.273-3.25-.438a135 135 0 0 1-6.125-1.265c-1.168-.274-5.21-1.715-6.02-2.067-2.085-.894-3.421-3.52-4.96-3.246-.977.188-1.98.54-2.605 1.54-.543.812-.731 2.242-1.083 3.226-.437 1.086-1.168 2.164-1.707 3.25-1.277 1.875-3.332 3.582-4.23 5.484-.191.457-.27.895-.457 1.356v21.683c1.082.188 2.16.371 3.328.73 8.996 2.438 11.164 2.606 19.98 1.63l.813-.11c.625-1.437 1.188-6.207 1.629-7.644.352-1.164.812-2.063.996-3.14.164-1.09 0-2.173-.102-3.15-.171-2.628 1.895-3.519 2.899-5.69zm0 0\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M7.01 10.207h-.944l-.515 2.648h.838q.834 0 1.242-.314.408-.315.55-1.049.137-.705-.124-.995-.262-.29-1.047-.29M12 5.688C5.373 5.688 0 8.514 0 12s5.373 6.313 12 6.313S24 15.486 24 12s-5.373-6.312-12-6.312m-3.26 7.451c-.261.25-.575.438-.917.551q-.505.163-1.285.164H5.357l-.327 1.681H3.652l1.23-6.326h2.65q1.195 0 1.744.628.549.627.33 1.752a2.8 2.8 0 0 1-.305.847q-.215.383-.561.703m4.024.715.543-2.799q.094-.478-.068-.651-.16-.174-.687-.174H11.46l-.704 3.625H9.388l1.23-6.327h1.367l-.327 1.682h1.218q1.15 0 1.586.401c.436.401.378.7.263 1.299l-.572 2.944zm7.597-2.265a2.8 2.8 0 0 1-.305.847q-.214.383-.561.703a2.44 2.44 0 0 1-.917.551q-.504.163-1.286.164h-1.18l-.327 1.682h-1.378l1.23-6.326h2.649q1.195 0 1.744.628.55.626.331 1.751m-2.595-1.382h-.943l-.516 2.648h.838q.835 0 1.242-.314.407-.315.551-1.049.137-.705-.125-.995c-.262-.29-.524-.29-1.047-.29\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 121 121\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M73.7 58.9c-1.5-1.8-3.2-3.9-5-5.9C58.5 41.7 48.4 30.3 38 19.2c-4.7-5.1-6.2-10-.6-15.1C43-.9 48.5-.4 53.7 5.3 68.1 21.2 82.4 37.2 97 52.9c5.5 5.9 4.2 9.9-1.8 14.2-23 16.7-46 33.5-68.9 50.4-5.1 3.8-10.1 4.8-14.2-.9-4.6-6.2-.3-9.9 4.4-13.3 17-12.4 34-24.8 50.9-37.4 2.5-1.7 5.9-2.8 6.3-7m7.3 59.8c-6.2 0-12.4.2-18.6-.1-4.9-.2-7.9-3-7.8-8.2.1-4.9 2.5-8.6 7.5-8.7 13.5-.4 27.1-.3 40.7 0 4.3.1 7.5 2.9 7.5 7.4 0 5.1-2.7 9.1-8.2 9.5-7.2.4-14.2.1-21.1.1\",\n \"clip-rule\": \"evenodd\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"m14.25.18.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M64 14.648c-35.346 0-64 19.19-64 42.863C0 78.275 22.046 95.589 51.316 99.53V86.699c-15.55-4.89-26.166-14.693-26.166-25.991 0-16.183 21.779-29.303 48.646-29.303 26.866 0 46.693 8.975 46.693 29.303 0 10.486-5.273 17.95-14.066 22.72 1.204.908 2.22 2.072 2.904 3.419l.388.655C121.025 79.772 128 69.189 128 57.51c0-23.672-28.654-42.863-64-42.863zm20.1 74.88c-2.612.257-5.322.41-8.114.462l.002 9.63a88 88 0 0 0 12.474-2.492l-.501-.941c-.68-1.268-1.347-2.543-2.033-3.807a41 41 0 0 0-1.828-2.851z\" }, null, -1),\n _createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M97.469 81.036s3.874 1.169 6.124 2.307c.78.396 2.132 1.184 3.106 2.22a8.4 8.4 0 0 1 1.42 2.04l15.266 25.74-24.674.01-11.537-21.666s-2.363-4.06-3.817-5.237c-1.213-.982-1.73-1.331-2.929-1.331h-5.862l.004 28.219-21.834.009V41.263h43.845s19.97.36 19.97 19.359S97.47 81.035 97.47 81.035zm-9.497-24.137-13.218-.009-.006 12.257 13.224-.004s6.124-.019 6.124-6.235c0-6.34-6.124-6.01-6.124-6.01z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M20.156.083c3.033.525 3.893 2.598 3.829 4.77L24 4.822 22.635 22.71 4.89 23.926h.016C3.433 23.864.15 23.729 0 19.139l1.645-3 2.819 6.586.503 1.172 2.805-9.144-.03.007.016-.03 9.255 2.956-1.396-5.431-.99-3.9 8.82-.569-.615-.51L16.5 2.114 20.159.073zM5.13 5.073c3.561-3.533 8.157-5.621 9.922-3.84 1.762 1.777-.105 6.105-3.673 9.636-3.563 3.532-8.103 5.734-9.864 3.957-1.766-1.777.045-6.217 3.612-9.75z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"m21.863 11.755-.839-.52-.024-.244.722-.673a.288.288 0 0 0-.096-.482l-.923-.345-.072-.239.575-.799a.288.288 0 0 0-.187-.455l-.973-.158-.117-.218.409-.897a.286.286 0 0 0-.273-.409l-.987.034-.157-.188.228-.962a.287.287 0 0 0-.348-.348l-.96.227-.19-.157.034-.986a.287.287 0 0 0-.409-.273l-.897.409-.218-.118-.158-.972a.288.288 0 0 0-.454-.189l-.8.575-.238-.071-.345-.923a.288.288 0 0 0-.482-.096L13.01 3l-.245-.023-.52-.84a.29.29 0 0 0-.49 0l-.52.84q-.123.01-.245.023l-.673-.722a.29.29 0 0 0-.482.096l-.345.923q-.12.034-.237.072l-.8-.576a.288.288 0 0 0-.455.188l-.158.973q-.11.057-.22.118l-.895-.41a.287.287 0 0 0-.409.273l.034.988-.19.156-.96-.227a.29.29 0 0 0-.348.348l.227.962-.157.188-.987-.034a.288.288 0 0 0-.273.409l.409.897a7 7 0 0 0-.117.22l-.972.156a.288.288 0 0 0-.189.455l.575.8-.071.237-.923.346a.29.29 0 0 0-.096.482L3 10.99l-.024.244-.84.52a.29.29 0 0 0 0 .492l.84.519q.01.123.025.245l-.723.673a.29.29 0 0 0 .096.482l.922.345q.035.12.073.237l-.576.8a.29.29 0 0 0 .188.454l.973.158q.056.11.117.22l-.41.896a.288.288 0 0 0 .274.409l.987-.035q.076.096.156.19l-.227.961a.287.287 0 0 0 .348.347l.961-.226.19.156-.035.987a.288.288 0 0 0 .41.273l.896-.41q.108.06.219.119l.158.971a.288.288 0 0 0 .455.19l.799-.577q.118.038.237.072l.345.923a.287.287 0 0 0 .482.096L10.99 21q.121.014.244.025l.52.839a.29.29 0 0 0 .492 0l.519-.84q.123-.01.245-.024l.674.722a.287.287 0 0 0 .48-.096l.346-.923q.12-.034.238-.072l.8.576a.29.29 0 0 0 .454-.189l.158-.972.219-.117.896.409a.288.288 0 0 0 .41-.273l-.035-.988a7 7 0 0 0 .19-.155l.96.226a.287.287 0 0 0 .348-.347l-.226-.961.155-.19.988.035a.29.29 0 0 0 .272-.41l-.409-.896q.06-.108.117-.219l.973-.158a.287.287 0 0 0 .188-.454l-.575-.8.072-.237.922-.345a.286.286 0 0 0 .096-.482L21 13.011l.025-.245.839-.52a.29.29 0 0 0 0-.49Zm-5.619 6.965a.595.595 0 0 1 .25-1.163.595.595 0 0 1-.25 1.163m-.286-1.93a.54.54 0 0 0-.642.417l-.299 1.391a7.3 7.3 0 0 1-3.017.65c-1.1 0-2.144-.243-3.08-.679l-.299-1.39a.54.54 0 0 0-.643-.417l-1.228.263a7 7 0 0 1-.635-.748h5.976c.068 0 .113-.012.113-.074V14.09c0-.062-.046-.074-.113-.074h-1.747v-1.34h1.89c.172 0 .922.049 1.162 1.007.075.295.24 1.254.352 1.561.113.344.57 1.032 1.059 1.032h2.977a1 1 0 0 0 .108-.01q-.31.421-.677.794l-1.256-.27Zm-8.265 1.9a.594.594 0 1 1-.014-1.17.594.594 0 0 1 .014 1.171ZM5.427 9.5a.594.594 0 1 1-1.086.481.594.594 0 0 1 1.086-.481m-.697 1.65 1.28-.569a.543.543 0 0 0 .274-.715l-.263-.597h1.036v4.672h-2.09a7.3 7.3 0 0 1-.237-2.792Zm5.614-.454V9.32h2.468c.128 0 .9.148.9.725 0 .48-.592.652-1.08.652zm8.969 1.24q0 .273-.02.542h-.75c-.076 0-.106.05-.106.123v.345c0 .81-.457.987-.858 1.032-.381.043-.805-.16-.857-.394-.225-1.265-.6-1.536-1.192-2.003.735-.467 1.5-1.155 1.5-2.077 0-.996-.683-1.623-1.148-1.93-.652-.43-1.375-.517-1.57-.517h-7.76a7.3 7.3 0 0 1 4.091-2.308l.915.959a.54.54 0 0 0 .765.018l1.024-.98a7.32 7.32 0 0 1 5.006 3.566l-.7 1.583a.543.543 0 0 0 .275.715l1.35.6q.034.357.035.726m-7.754-8.004a.595.595 0 1 1 .82.86.595.595 0 0 1-.82-.86m6.951 5.595a.594.594 0 1 1 1.086.481.594.594 0 0 1-1.086-.481\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M4.589 24c4.537 0 13.81-1.516 14.821-3v-5.729c-.957 1.408-10.284 2.912-14.821 2.912zm0-7.635c4.537 0 13.81-1.516 14.821-3V7.636c-.957 1.408-10.284 2.912-14.821 2.912zm0-7.636c4.537 0 13.81-1.516 14.821-3V0C18.453 1.408 9.126 2.912 4.589 2.912z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 17 17\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"m2.4 11.4 5.1-4.6-5.1-4.7L.7 3.7l3.4 3v.1l-3.4 3zm14.2 3.3v-2.2h-8v2.2z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 128 128\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M117.3 87.3c.2-.6.4-1.3.5-1.9 7-28-10.1-61.2-39.2-78.6C91.4 24 97 44.9 92 63.2c-.4 1.6-1 3.2-1.6 4.7-.6-.4-1.5-.9-2.5-1.5 0 0-28.9-17.9-60.2-49.4-.9-.8 16.7 25 36.6 46.1-9.4-5.3-35.5-24.3-52-39.4 2 3.4 4.4 6.7 7.1 9.8C33.1 51 51.2 72.6 72.7 89.2c-15.2 9.3-36.6 10-57.9 0C9.5 86.7 4.6 83.7 0 80.3c9 14.4 22.9 26.9 39.9 34.2 20.2 8.7 40.3 8.1 55.2.1.1 0 .1-.1.2-.1.7-.4 1.3-.7 2-1.1 7.2-3.7 21.3-7.4 28.9 7.4 1.7 3.6 5.7-15.6-8.9-33.5\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75q.918 0 1.627.111a6.4 6.4 0 0 1 1.306.34v2.458a4 4 0 0 0-.643-.361 5 5 0 0 0-.717-.26 5.5 5.5 0 0 0-1.426-.2q-.45 0-.819.086a2.1 2.1 0 0 0-.623.242q-.254.156-.393.374a.9.9 0 0 0-.14.49q0 .294.156.529.156.234.443.444c.287.21.423.276.696.41q.41.203.926.416.705.296 1.266.628.561.333.963.753.402.418.614.957.213.538.214 1.253 0 .986-.373 1.656a3 3 0 0 1-1.012 1.085 4.4 4.4 0 0 1-1.487.596q-.85.18-1.79.18a10 10 0 0 1-1.84-.164 5.5 5.5 0 0 1-1.512-.493v-2.63a5.03 5.03 0 0 0 3.237 1.2q.5 0 .872-.09.373-.09.623-.25.249-.162.373-.38a1.02 1.02 0 0 0-.074-1.089 2.1 2.1 0 0 0-.537-.5 5.6 5.6 0 0 0-.807-.444 28 28 0 0 0-1.007-.436q-1.377-.575-2.053-1.405t-.676-2.005q0-.92.369-1.582.368-.662 1.004-1.089a4.5 4.5 0 0 1 1.47-.629 7.5 7.5 0 0 1 1.77-.201m-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M7.8 4.6 1.4 11c-.6.6-.6 1.6 0 2l6.2 6.2m8.6-14.6 6.2 6.2c.6.6.6 1.6 0 2l-6.2 6.6\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M23.55 10.91 13.09.45a1.55 1.55 0 0 0-2.18 0L8.46 2.9 11 5.48a2.06 2.06 0 0 1 1-.23 2.25 2.25 0 0 1 2.25 2.25 2.2 2.2 0 0 1-.22 1l2.19 2.2a2 2 0 1 1-1.06 1.06L13 9.52a1 1 0 0 1-.21.09v5.54a2 2 0 1 1-1.5 0V9.61A2.24 2.24 0 0 1 9.75 7.5a2.2 2.2 0 0 1 .22-1L7.4 4 .45 11a1.55 1.55 0 0 0 0 2.18l10.46 10.37a1.55 1.55 0 0 0 2.18 0l10.46-10.46a1.55 1.55 0 0 0 0-2.18\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", { d: \"M12.001 4.8q-4.8 0-6 4.8 1.8-2.4 4.2-1.8c.913.228 1.565.89 2.288 1.624C13.666 10.618 15.027 12 18.001 12q4.8 0 6-4.8-1.8 2.4-4.2 1.8c-.913-.228-1.565-.89-2.288-1.624C16.337 6.182 14.976 4.8 12.001 4.8m-6 7.2q-4.8 0-6 4.8 1.8-2.4 4.2-1.8c.913.228 1.565.89 2.288 1.624 1.177 1.194 2.538 2.576 5.512 2.576q4.8 0 6-4.8-1.8 2.4-4.2 1.8c-.913-.228-1.565-.89-2.288-1.624C10.337 13.382 8.976 12 6.001 12\" }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n \"fill-rule\": \"evenodd\",\n d: \"M2 11.997C2 20.066 3.934 22 11.997 22 20.066 22 22 20.066 22 11.997 22 3.934 20.06 2 11.997 2S2 3.934 2 11.997m4.034 2.081 3.129-7.132a2.96 2.96 0 0 1 2.828-1.848c1.285 0 2.302.649 2.834 1.848l3.135 7.132c.14.343.263.796.263 1.182 0 1.77-1.243 3.012-3.012 3.012-.606 0-1.084-.153-1.567-.306a5.1 5.1 0 0 0-1.653-.325c-.643 0-1.157.16-1.665.325-.49.153-.968.306-1.55.306A2.89 2.89 0 0 1 5.76 15.26c0-.392.122-.839.27-1.182zm5.963-5.889L8.905 15.2c.919-.429 1.972-.637 3.092-.637 1.084 0 2.18.208 3.06.637z\",\n \"clip-rule\": \"evenodd\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createStaticVNode(\"<path fill=\\\"#fff\\\" fill-rule=\\\"evenodd\\\" d=\\\"M11.9 7.2h8.4v3.4h-8.4z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#3ECC5F\\\" fill-rule=\\\"evenodd\\\" d=\\\"M4.3 18.3c-.74 0-1.384-.403-1.73-1a2 2 0 0 0 1.73 3h2v-2z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#3ECC5F\\\" fill-rule=\\\"evenodd\\\" d=\\\"M13.298 7.738 20.3 7.3v-1a2 2 0 0 0-2-2h-9l-.25-.433a.29.29 0 0 0-.5 0L8.3 4.3l-.25-.433a.29.29 0 0 0-.5 0L7.3 4.3l-.25-.433a.29.29 0 0 0-.5 0L6.3 4.3h-.006l-.415-.414a.29.29 0 0 0-.482.13l-.137.51-.52-.14a.29.29 0 0 0-.353.354l.139.52-.51.136a.29.29 0 0 0-.13.483l.414.415V6.3l-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25-.433.25a.29.29 0 0 0 0 .5l.433.25a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8l-7.002-.438a1.065 1.065 0 0 1 0-2.124\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#3ECC5F\\\" fill-rule=\\\"evenodd\\\" d=\\\"M16.3 20.3h3v-4h-3z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#44D860\\\" fill-rule=\\\"evenodd\\\" d=\\\"M21.3 17.8q-.033.002-.064.006l-.012-.045a.5.5 0 1 0-.494-.857l-.033-.034a.496.496 0 0 0-.299-.788.5.5 0 0 0-.56.293l-.044-.011q.005-.031.006-.064a.5.5 0 0 0-1 0q.002.033.006.064l-.044.011a.5.5 0 1 0-.859.495 2 2 0 1 0 3.333 1.924q.031.005.064.006a.5.5 0 1 0 0-1\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#3ECC5F\\\" fill-rule=\\\"evenodd\\\" d=\\\"M17.3 14.3h3v-2h-3z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#44D860\\\" fill-rule=\\\"evenodd\\\" d=\\\"M21.3 13.55a.25.25 0 1 0 0-.5l-.032.003-.006-.022a.25.25 0 0 0-.096-.481.25.25 0 0 0-.15.052l-.018-.017a.25.25 0 0 0-.005-.308.25.25 0 0 0-.424.06 1 1 0 1 0 0 1.925.25.25 0 0 0 .48-.098.25.25 0 0 0-.05-.149l.016-.017a.25.25 0 0 0 .31-.005.25.25 0 0 0-.063-.424l.006-.022z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#000\\\" fill-rule=\\\"evenodd\\\" d=\\\"M8.3 7.55a.25.25 0 0 1-.25-.25.75.75 0 0 0-1.5 0 .25.25 0 0 1-.5 0 1.25 1.25 0 0 1 2.5 0 .25.25 0 0 1-.25.25\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#FFFF50\\\" fill-rule=\\\"evenodd\\\" d=\\\"M12.3 20.3h6a2 2 0 0 0 2-2v-7h-6a2 2 0 0 0-2 2z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#000\\\" fill-rule=\\\"evenodd\\\" d=\\\"M18.802 14.4h-5.004a.1.1 0 0 1 0-.2h5.004a.1.1 0 1 1 0 .2m0 2h-5.004a.1.1 0 0 1 0-.2h5.004a.1.1 0 1 1 0 .2m0 2h-5.004a.1.1 0 0 1 0-.2h5.004a.1.1 0 1 1 0 .2m0-4.981h-5.004a.1.1 0 0 1 0-.2h5.004a.1.1 0 1 1 0 .2m0 1.981h-5.004a.1.1 0 0 1 0-.2h5.004a.1.1 0 1 1 0 .2m0 2h-5.004a.1.1 0 0 1 0-.2h5.004a.1.1 0 1 1 0 .2M20.3 8.161h-.003c-.31.01-.456.32-.585.592-.134.285-.238.47-.409.465-.189-.007-.297-.22-.411-.446-.132-.26-.282-.554-.596-.543-.305.01-.452.28-.581.517-.138.253-.232.406-.412.4-.193-.008-.295-.181-.414-.382-.132-.224-.285-.475-.593-.467-.3.01-.447.239-.577.44-.137.213-.233.343-.416.336-.198-.007-.3-.151-.417-.318-.133-.187-.282-.4-.59-.39-.293.01-.44.198-.57.363-.123.156-.219.28-.422.272a.1.1 0 0 0-.008.2c.302.01.455-.18.588-.349.117-.15.219-.278.419-.285.192-.008.283.111.42.304.13.184.276.392.572.402.31.01.46-.221.592-.426.119-.184.22-.342.415-.349.18-.006.277.135.415.368.13.22.276.47.579.48.312.01.463-.262.594-.503.114-.21.222-.406.412-.413.18-.004.273.16.411.433.13.255.276.544.583.556h.017c.306 0 .452-.308.58-.58.114-.24.222-.468.407-.477z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#3ECC5F\\\" fill-rule=\\\"evenodd\\\" d=\\\"M10.3 20.3h4v-4h-4z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#D8D8D8\\\" d=\\\"m20.276 9.922-7.778 2.084a.2.2 0 0 0-.141.245l.76 2.837a.2.2 0 0 0 .245.141l7.777-2.084a.2.2 0 0 0 .142-.245l-.76-2.836a.2.2 0 0 0-.245-.142\\\"></path><path fill=\\\"#4A4A4A\\\" d=\\\"m14.845 13.56-.278.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.123-.07m.559-.15-.278.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.123-.07m.559-.15-.278.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.123-.07m.559-.15-.278.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.071l.279-.075a.1.1 0 0 0 .07-.122l-.074-.278a.1.1 0 0 0-.123-.071m.559-.15-.278.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.123-.071m.559-.15-.278.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.123-.07Zm.56-.15-.28.075a.1.1 0 0 0-.07.123l.075.278a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.123-.07Zm.558-.15-.278.075a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.071l.279-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.123-.07Zm.559-.15-.278.075a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.071l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.123-.071Z\\\"></path><path fill=\\\"#4A4A4A\\\" fill-rule=\\\"evenodd\\\" d=\\\"m13.082 14.032 1.187-.318a.1.1 0 0 1 .122.07l.075.279a.1.1 0 0 1-.07.122l-1.187.318a.1.1 0 0 1-.123-.07l-.075-.279a.1.1 0 0 1 .071-.122m6.533-1.75 1.187-.319a.1.1 0 0 1 .122.07l.075.28a.1.1 0 0 1-.07.122l-1.188.318a.1.1 0 0 1-.122-.07l-.075-.28a.1.1 0 0 1 .071-.122Zm-6.835.621.453-.121a.1.1 0 0 1 .122.07l.075.279a.1.1 0 0 1-.07.122l-.454.121a.1.1 0 0 1-.122-.07l-.075-.279a.1.1 0 0 1 .07-.122Z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#4A4A4A\\\" d=\\\"m13.792 12.632-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.071l.278-.075a.1.1 0 0 0 .07-.122l-.074-.278a.1.1 0 0 0-.122-.071m.558-.15-.278.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.071Zm.56-.15-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07Zm.559-.15-.279.075a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07Zm.559-.149-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.071l.278-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07m.559-.15-.279.075a.1.1 0 0 0-.07.122l.074.278a.1.1 0 0 0 .123.071l.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.071m.559-.15-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07Zm.559-.15-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07Zm.559-.149-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07m.559-.15-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.071l.278-.075a.1.1 0 0 0 .07-.122l-.074-.278a.1.1 0 0 0-.122-.071m.559-.15-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.071m.558-.15-.278.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07Zm.56-.15-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07Z\\\"></path><path fill=\\\"#4A4A4A\\\" fill-rule=\\\"evenodd\\\" d=\\\"m20.483 10.771-.454.122a.1.1 0 0 1-.122-.071l-.075-.278a.1.1 0 0 1 .071-.123l.453-.121a.1.1 0 0 1 .123.07l.074.279a.1.1 0 0 1-.07.122\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#4A4A4A\\\" d=\\\"m19.47 11.042.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07Zm-.558.15.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.071l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.071Zm-.56.15.279-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.071m-.558.15.278-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.07Zm-.559.15.278-.075a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07Zm-.559.149.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.071l-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07m-.559.15.278-.075a.1.1 0 0 0 .07-.122l-.074-.278a.1.1 0 0 0-.122-.071l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.071m-.559.149.278-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.07m-.559.15.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07m-.559.15.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07m-.56.15.28-.074a.1.1 0 0 0 .07-.123l-.075-.278a.1.1 0 0 0-.122-.071l-.279.075a.1.1 0 0 0-.07.122l.074.278a.1.1 0 0 0 .123.071Zm-.558.15.278-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.071m-.559.15.278-.075a.1.1 0 0 0 .071-.122l-.075-.279a.1.1 0 0 0-.122-.07l-.278.074a.1.1 0 0 0-.071.123l.074.278a.1.1 0 0 0 .123.07Z\\\"></path><path fill=\\\"#4A4A4A\\\" d=\\\"m19.47 11.042.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07Zm-.558.15.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.071l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.071Zm-.56.15.279-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .122.071m-.558.15.278-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.07Zm-.559.15.278-.075a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07Zm-.559.149.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.071l-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07m-.559.15.278-.075a.1.1 0 0 0 .07-.122l-.074-.278a.1.1 0 0 0-.122-.071l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.071m-.559.149.278-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.07m-.559.15.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07m-.559.15.278-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07m-.56.15.28-.074a.1.1 0 0 0 .07-.123l-.075-.278a.1.1 0 0 0-.122-.071l-.279.075a.1.1 0 0 0-.07.122l.074.278a.1.1 0 0 0 .123.071Zm-.558.15.278-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.122-.07l-.279.074a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.071m-.559.15.278-.075a.1.1 0 0 0 .071-.122l-.075-.279a.1.1 0 0 0-.122-.07l-.278.074a.1.1 0 0 0-.071.123l.074.278a.1.1 0 0 0 .123.07Z\\\"></path><path fill=\\\"#4A4A4A\\\" fill-rule=\\\"evenodd\\\" d=\\\"m12.93 13.462.645-.173a.1.1 0 0 1 .122.07l.075.28a.1.1 0 0 1-.07.122l-.646.173a.1.1 0 0 1-.123-.071l-.074-.278a.1.1 0 0 1 .07-.123Z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#4A4A4A\\\" d=\\\"m14.151 13.135-.278.074a.1.1 0 0 0-.071.123l.075.278a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.123-.07m.559-.15-.278.074a.1.1 0 0 0-.071.123l.075.278a.1.1 0 0 0 .122.071l.279-.075a.1.1 0 0 0 .07-.122l-.074-.278a.1.1 0 0 0-.123-.071m.56-.15-.28.075a.1.1 0 0 0-.07.122l.075.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.123-.071Zm.558-.15-.278.075a.1.1 0 0 0-.071.122l.075.279a.1.1 0 0 0 .122.07l.278-.074a.1.1 0 0 0 .071-.123l-.074-.278a.1.1 0 0 0-.123-.07Zm.559-.149-.278.074a.1.1 0 0 0-.071.123l.075.278a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.123-.07m.559-.15-.278.074a.1.1 0 0 0-.071.123l.075.278a.1.1 0 0 0 .122.071l.279-.075a.1.1 0 0 0 .07-.122l-.074-.279a.1.1 0 0 0-.123-.07m.559-.15-.278.074a.1.1 0 0 0-.071.123l.075.278a.1.1 0 0 0 .122.071l.278-.074a.1.1 0 0 0 .071-.123l-.074-.278a.1.1 0 0 0-.123-.071m.559-.15-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .071-.123l-.075-.278a.1.1 0 0 0-.122-.07Zm.559-.15-.279.075a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .071-.122l-.075-.279a.1.1 0 0 0-.122-.07Zm.559-.149-.278.074a.1.1 0 0 0-.071.123l.074.278a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .071-.122l-.075-.279a.1.1 0 0 0-.122-.07m.558-.15-.277.074a.1.1 0 0 0-.071.123l.074.278a.1.1 0 0 0 .123.071l.278-.075a.1.1 0 0 0 .071-.122l-.075-.279a.1.1 0 0 0-.122-.07Z\\\"></path><path fill=\\\"#4A4A4A\\\" fill-rule=\\\"evenodd\\\" d=\\\"m20.039 11.557.61-.164a.1.1 0 0 1 .123.071l.074.279a.1.1 0 0 1-.07.122l-.61.164a.1.1 0 0 1-.123-.071l-.075-.278a.1.1 0 0 1 .07-.123z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#4A4A4A\\\" d=\\\"m13.517 14.54-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .071-.123l-.075-.278a.1.1 0 0 0-.122-.07Zm.559-.15-.279.075a.1.1 0 0 0-.07.122l.074.279a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .071-.123l-.075-.278a.1.1 0 0 0-.122-.07Zm.559-.15-.279.075a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.07l.278-.074a.1.1 0 0 0 .071-.122l-.075-.279a.1.1 0 0 0-.122-.07Zm.559-.15-.279.075a.1.1 0 0 0-.07.123l.074.278a.1.1 0 0 0 .123.071l.278-.075a.1.1 0 0 0 .07-.122l-.074-.278a.1.1 0 0 0-.122-.071Z\\\"></path><path fill=\\\"#4A4A4A\\\" fill-rule=\\\"evenodd\\\" d=\\\"m15.474 14.016 2.69-.72a.1.1 0 0 1 .122.07l.074.278a.1.1 0 0 1-.07.123l-2.69.72a.1.1 0 0 1-.122-.07l-.074-.279a.1.1 0 0 1 .07-.122m2.97-.796.348-.093a.1.1 0 0 1 .123.07l.074.279a.1.1 0 0 1-.07.122l-.349.094a.1.1 0 0 1-.122-.071l-.075-.279a.1.1 0 0 1 .07-.122Z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#4A4A4A\\\" d=\\\"m19.351 12.977-.278.075a.1.1 0 0 0-.071.122l.075.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.123-.071m.559-.15-.278.075a.1.1 0 0 0-.071.122l.075.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.123-.07Zm1.048-.281-.278.075a.1.1 0 0 0-.071.122l.075.279a.1.1 0 0 0 .122.07l.279-.074a.1.1 0 0 0 .07-.123l-.074-.278a.1.1 0 0 0-.123-.07Zm-.845.442-.028-.104a.1.1 0 0 1 .07-.123l.28-.074a.1.1 0 0 1 .122.07l.027.105zm.49-.057.028.105a.1.1 0 0 1-.07.122l-.279.075a.1.1 0 0 1-.122-.07l-.028-.105zm-.344-2.893-7.652 2.05a.108.108 0 1 0 .057.21l7.65-2.05a.108.108 0 1 0-.055-.21\\\"></path><path fill=\\\"#D8D8D8\\\" d=\\\"m13.075 12-.3.08a.072.072 0 1 0 .037.14l.3-.08a.072.072 0 1 0-.037-.14m.603-.162-.3.081a.072.072 0 1 0 .037.14l.3-.08a.072.072 0 1 0-.037-.14Zm.464-.124-.3.08a.072.072 0 1 0 .037.14l.3-.08a.072.072 0 1 0-.037-.14m.464-.124-.3.08a.072.072 0 0 0 .038.14l.3-.08a.072.072 0 0 0-.038-.14m.464-.125-.3.081a.072.072 0 0 0 .037.14l.3-.08a.072.072 0 0 0-.037-.14Zm.58-.155-.3.08a.072.072 0 0 0 .037.14l.3-.08a.072.072 0 1 0-.037-.14m.464-.124-.3.08a.072.072 0 0 0 .037.14l.3-.08a.072.072 0 1 0-.038-.14Zm.464-.125-.3.081a.072.072 0 1 0 .037.14l.3-.08a.072.072 0 1 0-.037-.14Zm.464-.124-.3.08a.072.072 0 0 0 .038.14l.3-.08a.072.072 0 1 0-.037-.14Zm.58-.155-.3.08a.072.072 0 0 0 .037.14l.3-.08a.072.072 0 0 0-.038-.14Zm.464-.125-.3.081a.072.072 0 0 0 .037.14l.3-.08a.072.072 0 0 0-.037-.14Zm.464-.124-.3.08a.072.072 0 0 0 .038.14l.3-.08a.072.072 0 1 0-.037-.14Zm.58-.155-.3.08a.072.072 0 1 0 .037.14l.3-.08a.072.072 0 1 0-.038-.14Zm.464-.125-.301.08a.072.072 0 1 0 .037.14l.301-.08a.072.072 0 1 0-.037-.14m.464-.124-.301.08a.072.072 0 0 0 .037.14l.302-.08a.072.072 0 0 0-.038-.14\\\" opacity=\\\".136\\\"></path><path fill=\\\"#44D860\\\" fill-rule=\\\"evenodd\\\" d=\\\"M16.3 17.8q-.033.002-.064.006l-.012-.045a.5.5 0 1 0-.494-.857l-.033-.034a.496.496 0 0 0-.299-.788.5.5 0 0 0-.56.293l-.044-.011q.005-.031.006-.064a.5.5 0 0 0-1 0q.002.033.006.064l-.044.011a.5.5 0 1 0-.859.495 2 2 0 1 0 3.333 1.924q.031.005.064.006a.5.5 0 1 0 0-1\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#3ECC5F\\\" fill-rule=\\\"evenodd\\\" d=\\\"M10.3 14.3h4v-2h-4z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#44D860\\\" fill-rule=\\\"evenodd\\\" d=\\\"M15.3 13.55a.25.25 0 1 0 0-.5l-.032.003-.006-.022a.25.25 0 0 0-.096-.481.25.25 0 0 0-.15.052l-.018-.017a.25.25 0 0 0-.005-.308.25.25 0 0 0-.424.06 1 1 0 1 0 0 1.925.25.25 0 0 0 .48-.098.25.25 0 0 0-.05-.149l.016-.017a.25.25 0 0 0 .31-.005.25.25 0 0 0-.063-.424l.006-.022z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#000\\\" fill-rule=\\\"evenodd\\\" d=\\\"M16.3 6.175a.3.3 0 0 1-.096-.019.3.3 0 0 1-.081-.054.3.3 0 0 1-.054-.081.26.26 0 0 1 0-.192.26.26 0 0 1 .092-.112.3.3 0 0 1 .09-.037.26.26 0 0 1 .188.037l.038.031a.26.26 0 0 1 .073.177.25.25 0 0 1-.154.231.3.3 0 0 1-.096.02Zm2-.125a.26.26 0 0 1-.208-.11.26.26 0 0 1-.042-.139.26.26 0 0 1 .11-.209.3.3 0 0 1 .091-.037.26.26 0 0 1 .188.037l.038.031a.26.26 0 0 1 .054.273l-.023.043-.031.038a.26.26 0 0 1-.177.073\\\" clip-rule=\\\"evenodd\\\"></path>\", 29)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"#512BD4\",\n d: \"M22 2H2v20h20z\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"#fff\",\n d: \"M5.565 14.778a.5.5 0 0 1-.361-.142.47.47 0 0 1-.148-.344.47.47 0 0 1 .148-.348.5.5 0 0 1 .36-.145q.216 0 .365.145a.46.46 0 0 1 .152.348.46.46 0 0 1-.152.344.5.5 0 0 1-.364.142m5.653-.08h-.92l-2.421-3.82a1.7 1.7 0 0 1-.152-.301h-.021q.028.166.028.714v3.407h-.813V9.5h.98l2.34 3.73q.148.232.19.319h.015a5 5 0 0 1-.036-.7V9.5h.81zm3.96 0h-2.846V9.5h2.732v.732h-1.89v1.472h1.742v.728h-1.743v1.537h2.005zm4.044-4.466h-1.456v4.466h-.842v-4.466h-1.453V9.5h3.751z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createStaticVNode(\"<path fill=\\\"#333\\\" fill-rule=\\\"evenodd\\\" d=\\\"M18.578 20.398A9.98 9.98 0 0 0 22 12.866c0-5.523-4.477-10-10-10s-10 4.477-10 10a9.97 9.97 0 0 0 3.24 7.369l.01-.064 13.123-4.297z\\\" clip-rule=\\\"evenodd\\\"></path><path fill=\\\"#CCC\\\" d=\\\"m9.419 4.067-1.774-.264.265-.081q.242-.076.444-.228l.042-.032a1.22 1.22 0 0 0 .466-.778l.02-.124q.032-.202-.003-.403a.073.073 0 0 1 .1-.08l.072.03q.136.056.263.132l.302.182c.4.242.752.558 1.036.931l.2.264a1.33 1.33 0 0 0 .618.45l.14.05-.732.03a8 8 0 0 1-1.46-.08Z\\\"></path><path fill=\\\"#CCC\\\" d=\\\"m8.966 5.64.526-.962a.03.03 0 0 0 0-.03l-.179-.378a.68.68 0 0 0-.614-.388l-.05-.002a4.7 4.7 0 0 1-1.017-.148l-.065-.017a4 4 0 0 1-.79-.297l-.111-.055a3 3 0 0 1-.474-.3l-.147-.115a.1.1 0 0 0-.14.02 1 1 0 0 0-.185.47l-.027.235a2 2 0 0 0-.004.379l.065.734c.049.547.237 1.071.548 1.524l.066.097q.144.209.331.38a.1.1 0 0 0 .064.027A2.28 2.28 0 0 0 8.966 5.64\\\"></path><path fill=\\\"#EDEDED\\\" d=\\\"m6.976 6.832.625-.27a.45.45 0 1 0-.458-.769l-.148.117a1 1 0 0 0-.097.094l-.356.428a.15.15 0 0 0 .009.203l.11.126a.275.275 0 0 0 .315.071\\\"></path><path fill=\\\"#B2B2B2\\\" d=\\\"m7.78 3.758-.018.006.057.018c.247.08.504.125.763.138a.1.1 0 0 0 .038-.005l.118-.034.059-.02-.374-.08a.3.3 0 0 1-.134-.066.063.063 0 0 1 0-.096l.056-.046a.6.6 0 0 0 .157-.2c-.216.171-.46.301-.721.385Z\\\"></path><path fill=\\\"#fff\\\" d=\\\"M9.92 10.578 4.825 19.69a.078.078 0 0 1-.124.017l-.102-.103-.43-.488-.274-.354a8 8 0 0 1-.693-1.067l-.04-.072a8 8 0 0 1-.536-1.24l-.137-.412a5.55 5.55 0 0 1-.139-2.295l.005-.032a5.7 5.7 0 0 1 .24-.988l.226-.669.17-.356a5 5 0 0 1 1.067-1.473l.215-.204a3.8 3.8 0 0 1 1.576-.897 3 3 0 0 1-.422.084l-.281.033-.215.02-.235.04-.234.021-.156.017-.113.007c-.036.002-.053-.044-.024-.065l.157-.076a2.65 2.65 0 0 0 1.19-1.135l.174-.271a2.6 2.6 0 0 1 .808-.802l.067-.043q.182-.115.385-.187l.615-.217a.43.43 0 0 0 .253-.236l.009-.022a.34.34 0 0 0-.083-.38l-.108-.099-.018-.02-.696-.926-.555-.764a.97.97 0 0 1-.184-.517.04.04 0 0 1 .056-.038l.6.288a2.38 2.38 0 0 0 1.666.148q.195-.053.394-.075l.276-.028a5.7 5.7 0 0 1 2.064.17l.058.016.656.236a3 3 0 0 1 1.785 1.756l.138.536a2.17 2.17 0 0 0 .863 1.246l.35.244q.232.162.483.287l.775.388a.062.062 0 0 1 .022.093 2.1 2.1 0 0 1-.82.644l-.449.195a4 4 0 0 1-.55.193l-.33.088a5.5 5.5 0 0 1-1.417.188h-.79a1.3 1.3 0 0 1-.477-.091 1.3 1.3 0 0 0-1.615.576Z\\\"></path><path fill=\\\"#666\\\" d=\\\"m12.593 7.292.344.004c.047 0 .057-.065.013-.079a1.4 1.4 0 0 1-.212-.087l-.269-.139a2.8 2.8 0 0 1-.51-.338l-.053-.044q-.18-.15-.323-.334l-.06-.078a.034.034 0 0 0-.062.023c.04.598.533 1.065 1.132 1.072\\\"></path><path fill=\\\"#CCC\\\" d=\\\"m5.212 19.834 5.824-5.195a7.8 7.8 0 0 0 1.417-1.677l.035-.057a2.3 2.3 0 0 0 .237-1.239l-.052-.587a1.66 1.66 0 0 0-.424-.97.1.1 0 0 0-.036-.02l-.936-.192a4.2 4.2 0 0 0-2.092-.086l-.037.008-.544.127a6.74 6.74 0 0 0-3.94 2.63l-.023.034a6.4 6.4 0 0 0-.665 1.168l-.032.074a6.07 6.07 0 0 0-.441 3.31l.054.367a3.7 3.7 0 0 0 .932 1.96l.297.324a.304.304 0 0 0 .426.021\\\"></path><path fill=\\\"#5E5E5E\\\" d=\\\"m10.31 12.9-.018.01c-.492.281-.756.811-.73 1.377.007.16.168.308.323.264l.285-.081a2.6 2.6 0 0 0 1.001-.539l.829-.713.246-.182a6.6 6.6 0 0 1 4.979-1.209c.054.009.056.086.002.097l-.207.043-.095.033a1 1 0 0 0-.48.359.04.04 0 0 0 .044.062l.068-.021a3.2 3.2 0 0 1 1.184-.132l.157.012a2.86 2.86 0 0 1 2.159 1.137l.192.256c.57.758.812 1.714.67 2.652l-.074.49a4.7 4.7 0 0 1-.713 1.87l-.027.04-.41.547-.449.508-.411.395q-.566.542-1.227.962l-.14.088-.266.127c-.069.033-.126-.061-.065-.107l.37-.352.077-.08c.206-.216.355-.482.431-.77l.035-.134a.715.715 0 0 0-.549-.886.7.7 0 0 0-.583.146l-.367.299-.649.53a8 8 0 0 1-1.376.902l-.67.345-1.133.43-.238.064a8 8 0 0 1-1.263.235l-.316.032H9.891l-1.348-.146-.73-.158a4.55 4.55 0 0 1-1.91-.917l-.563-.458a3.02 3.02 0 0 1-1.177-2.168l-.034-.45.04-.631a4.6 4.6 0 0 1 1.956-3.483l.12-.084a5.2 5.2 0 0 1 1.646-.763l.396-.105a3.4 3.4 0 0 1 1.577-.042l.413.086c.104.022.126.16.034.212Z\\\"></path>\", 9)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"m16.378 12.034-4.148-5.53h.507c.369 0 .738.185.968.461l3.272 4.286 3.226-4.24c.322-.322.691-.507 1.06-.507h.553l-4.194 5.53L22 17.841h-.553c-.369 0-.737-.185-.968-.507l-3.456-4.516-3.456 4.516c-.23.322-.6.46-.968.46h-.553zm-13.456.461v.369c0 1.935 1.29 3.686 3.18 4.147a4.15 4.15 0 0 0 4.654-2.258c.138-.23.368-.415.645-.415h.46a5.07 5.07 0 0 1-4.792 3.687C4.212 18.025 2 15.583 2 12.541v-1.29c0-2.489 1.751-4.747 4.24-5.207a5.07 5.07 0 0 1 5.898 5.069v1.382zm0-.921h8.295v-.461a4.148 4.148 0 0 0-5.07-4.056c-1.935.461-3.225 2.212-3.225 4.378z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20m-.7 4.5h6.3L11.3 11h4.3l-9.2 6.4 2-4.4 1-2 2-4.5z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M23.241 7.492 24 5.536l-.031-.125-7.479 1.971c.798-1.158.524-2.08.524-2.08s-2.386 1.525-4.193 1.486c-1.807-.04-2.386-.525-5.155.36-2.769.883-3.551 3.59-4.357 4.177-.798.579-3.309 2.51-3.309 2.51l2.269-.727s-.642.61-1.964 2.386v.008c.211.297 1.142 1.525 2.065 1.26.102-.032.22-.087.352-.15.415.236.97.462 1.573.525 0 0-.407-.47-.751-1.017l.281-.18-.047.031.869.313-.094-.813h.008l.844.313-.101-.744.32-.156.884-3.348 3.661-2.503-.289.735c-.743 1.823-2.136 2.253-2.136 2.253l-.578.227c-.438.508-.618.634-.767 2.354.352-.093.68-.11.986-.03 1.564.422 2.104 2.307 1.681 2.831-.101.125-.352.352-.672.61H7.76l-.008.516-.062.055h-.65l-.007.5-.173.126c-.602.016-1.376-.516-1.376-.516.008.485.406 1.228.406 1.228l.07-.04-.062.048s1.627 1.08 2.652.68c.908-.36 3.262-2.214 5.296-3.09l6.149-1.627.813-2.096-4.685 1.236V13.14l5.499-1.448.814-2.104-6.313 1.666V9.37zm-11.163 3.997 1.463-.383.016.07-.454 1.181-1.51.4zm.5 2.527-1.509.399.493-1.268 1.455-.383.023.07zm1.972-.423-1.51.4.493-1.268 1.455-.383.024.07z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M1.81 10.714c-.046 0-.058-.023-.034-.058l.245-.316c.023-.035.082-.058.128-.058h4.17c.047 0 .059.035.035.07l-.198.304c-.024.035-.082.07-.117.07zM.048 11.789c-.047 0-.059-.024-.035-.059l.245-.315c.023-.035.082-.059.128-.059h5.327c.047 0 .07.036.058.07l-.093.28c-.012.048-.058.07-.105.07zm2.826 1.074c-.046 0-.058-.035-.035-.07l.164-.292c.023-.035.07-.07.117-.07h2.336c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082l-2.546-.012Zm12.125-2.36-1.962.515c-.175.046-.187.058-.339-.117a1.6 1.6 0 0 0-.549-.444 2.03 2.03 0 0 0-2.114.175 2.49 2.49 0 0 0-1.192 2.22c.012.934.655 1.705 1.577 1.833.795.106 1.46-.175 1.986-.77l.316-.433h-2.255c-.245 0-.304-.151-.222-.35.152-.362.432-.97.596-1.273a.32.32 0 0 1 .292-.187h4.252c-.024.315-.024.63-.07.946a5 5 0 0 1-.958 2.29 4.87 4.87 0 0 1-3.33 1.985 4.14 4.14 0 0 1-3.141-.77A3.67 3.67 0 0 1 6.4 13.528a4.58 4.58 0 0 1 .993-3.422 5.2 5.2 0 0 1 3.27-2.021c1.099-.199 2.15-.07 3.096.572.62.409 1.063.97 1.355 1.647.07.105.024.164-.117.199Z\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M18.865 16.963a4.38 4.38 0 0 1-2.85-1.028 3.67 3.67 0 0 1-1.262-2.254 4.46 4.46 0 0 1 .946-3.528 4.9 4.9 0 0 1 3.27-1.95 4.32 4.32 0 0 1 3.33.595 3.63 3.63 0 0 1 1.647 2.605 4.51 4.51 0 0 1-1.343 3.96 5.35 5.35 0 0 1-2.804 1.495c-.315.058-.63.07-.934.105m2.78-4.719c-.012-.152-.012-.268-.035-.385a1.93 1.93 0 0 0-2.383-1.554c-1.087.245-1.787.935-2.044 2.033-.21.91.233 1.834 1.074 2.207.643.28 1.285.246 1.904-.07a2.56 2.56 0 0 0 1.484-2.23Z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"#FF5B11\",\n d: \"M12.371 1.736q.08-.01.141.04a76 76 0 0 1 4.217 5.662 28 28 0 0 1 2.49 4.659q1.64 4.374-1.707 7.61-2.928 2.475-6.747 1.928-4.564-.93-6.205-5.281a7.4 7.4 0 0 1-.28-2.891 17.3 17.3 0 0 1 1.204-4.9 7.3 7.3 0 0 1 1.044-1.767q.525.625 1.004 1.285.222.232.462.442a38 38 0 0 1 4.377-6.787\",\n opacity: \".993\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"#FF9758\",\n d: \"M12.09 5.962a42.5 42.5 0 0 1 3.996 5.462q.56.959.924 2.008.758 2.982-1.627 4.92-2.306 1.622-5.06.963-2.97-.921-3.433-3.996a4.25 4.25 0 0 1 .2-1.887c.297-.754.66-1.48 1.085-2.168L9.38 9.495q1.367-1.758 2.71-3.534Z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"#FF2D20\",\n d: \"M21.217 6.8a.3.3 0 0 1 .012.076v4.078a.3.3 0 0 1-.15.26l-3.424 1.969v3.907a.3.3 0 0 1-.147.259l-7.15 4.111q-.023.014-.05.024l-.021.007a.3.3 0 0 1-.152 0l-.024-.01c-.017-.007-.033-.011-.048-.02l-7.142-4.112a.3.3 0 0 1-.15-.26V4.857q0-.043.012-.079c0-.01.007-.016.01-.023a.2.2 0 0 1 .019-.048l.021-.026.024-.036.03-.024.034-.023L6.492 2.54a.29.29 0 0 1 .298 0l3.573 2.053.033.024.029.024.026.036.022.023.019.048c0 .01.007.017.01.024a.4.4 0 0 1 .009.08v7.643l2.978-1.713v-3.91c0-.023.003-.052.01-.076l.01-.026.018-.047.022-.024.026-.036.029-.024.033-.023L17.21 4.56a.3.3 0 0 1 .298 0l3.57 2.058.034.024c.01.01.022.014.029.024q.017.015.026.035l.021.024c.01.017.015.03.02.048l.009.023zm-.58 3.98V7.392l-1.252.719-1.727.994v3.393l2.978-1.713zm-3.576 6.138v-3.395l-1.7.971-4.85 2.77v3.425l6.55-3.77ZM3.366 5.37v11.548l6.55 3.769V17.26l-3.421-1.934h-.003l-.03-.024c-.01-.01-.022-.014-.03-.024-.011-.01-.018-.024-.025-.03l-.024-.032-.014-.038q-.009-.015-.015-.033l-.007-.043-.002-.033V7.08l-1.728-.994-1.253-.716zm3.276-2.23L3.666 4.857 6.64 6.569l2.976-1.713-2.974-1.713zM8.19 13.833l1.727-.992V5.37l-1.247.718-1.727.995v7.47l1.249-.72zm9.169-8.667-2.974 1.713 2.974 1.713 2.974-1.713zm-.297 3.943-1.728-.995-1.249-.718v3.385l1.727.995 1.25.72v-3.39zm-6.845 7.639 4.365-2.491 2.182-1.244L13.79 11.3l-3.426 1.972-3.117 1.796z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createStaticVNode(\"<g fill=\\\"#EDB641\\\" clip-path=\\\"url(#a)\\\"><path d=\\\"m5.33 10.983.419 1.29H7.11l-1.1.796.42 1.29-1.101-.797-1.09.791.419-1.29-1.1-.796H4.92l.42-1.289-.011.005Zm1.954-4.245.362 1.111h1.169l-.944.687.362 1.111-.949-.681-.943.681.351-1.111-.943-.687h1.169l.361-1.11h.005ZM1.31 13.504l.21.65h.68l-.55.409.21.65-.55-.404-.556.404.21-.65-.551-.404h.681l.21-.65.005-.005Z\\\"></path><path d=\\\"M9.197 15.684a19 19 0 0 0 2.505-1.378 22.6 22.6 0 0 0 3.092-2.6l-.613-.408-.534-.362 1.692-.063.545-.02.147-.525.461-1.635.587 1.588.189.514.545-.027 1.693-.062-1.332 1.048-.43.335.19.514.586 1.588-1.41-.944-.45-.298-.43.335-1.331 1.048.23-.812.231-.818.026-.105a21 21 0 0 1-5.24 2.815c-.315.104-.63.188-.944.267zm-3.186 1.242a16.1 16.1 0 0 0 8.081-2.494l-.535 1.923 3.145-2.479 3.328 2.222-1.384-3.752 3.144-2.474-4.003.158-1.384-3.758-1.09 3.852-3.999.157 2.317 1.546c-1.52 1.384-5.346 4.34-10.413 4.538A14 14 0 0 1 0 16.11s2.52.953 6.016.817h-.005Z\\\"></path><path d=\\\"M16.408 4.412a7.588 7.588 0 0 0-7.242 9.862q.495-.25.943-.508a6.53 6.53 0 0 1 6.3-8.306 6.54 6.54 0 1 1-4.916 10.848c-.351.136-.703.262-1.059.367a7.588 7.588 0 1 0 5.974-12.263\\\"></path></g><defs><clipPath id=\\\"a\\\"><path fill=\\\"#fff\\\" d=\\\"M0 0h24v24H0z\\\"></path></clipPath></defs>\", 2)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"#E0234E\",\n \"fill-rule\": \"evenodd\",\n d: \"M13.776 2.04c-.144 0-.279.03-.403.071.264.176.409.409.48.672.006.036.016.062.021.098q.009.046.01.093c.021.455-.118.511-.216.78-.15.346-.109.718.072 1.017a.6.6 0 0 0 .062.114c-.196-1.307.894-1.503 1.095-1.91.016-.357-.279-.595-.511-.76a1.14 1.14 0 0 0-.61-.176Zm1.643.294c-.021.118-.005.087-.01.15-.006.04-.006.092-.01.134q-.016.063-.037.124a1 1 0 0 1-.042.124c-.02.041-.035.077-.056.118-.016.021-.026.042-.042.062l-.03.047a2 2 0 0 1-.078.103c-.03.031-.057.067-.093.093v.005c-.031.026-.062.057-.098.083-.108.082-.233.145-.346.222-.036.026-.073.046-.103.078a1 1 0 0 0-.099.082c-.036.031-.062.062-.093.098-.025.031-.056.067-.077.104q-.039.052-.072.108c-.021.041-.036.077-.057.119-.016.041-.031.077-.042.119a2 2 0 0 0-.036.129c-.005.02-.005.046-.01.067-.005.02-.005.041-.01.062 0 .041-.005.088-.005.129q-.001.046.005.093 0 .06.015.13.01.06.026.123l.041.124c.01.026.026.052.037.072l-1.188-.46a13 13 0 0 0-.6-.154l-.325-.078a10 10 0 0 0-.94-.14c-.01 0-.016-.004-.026-.004a9 9 0 0 0-1.601-.021c-.315.02-.63.062-.945.114q-.116.017-.233.04-.232.048-.465.104l-.232.062c-.077.031-.15.067-.222.098l-.17.078c-.01.005-.021.005-.026.01-.052.026-.098.047-.145.073a2 2 0 0 0-.196.098c-.036.015-.072.036-.104.051a3 3 0 0 0-.305.18c-.035.027-.071.048-.103.073-.005.005-.01.005-.015.01a1 1 0 0 0-.098.073l-.01.01-.078.062c-.01.005-.02.016-.03.02l-.078.068c-.006.01-.016.016-.021.02-.031.032-.062.058-.093.088-.005 0-.005.006-.01.011a2 2 0 0 0-.094.088c-.005.005-.005.01-.01.01a1 1 0 0 0-.077.083c-.01.01-.026.02-.036.03q-.04.047-.088.094c-.005.01-.016.015-.02.025-.042.042-.078.083-.12.124l-.015.016q-.123.134-.264.253-.14.125-.289.227a3.2 3.2 0 0 1-.635.351 4 4 0 0 1-.336.124c-.217.047-.439.135-.63.15-.041 0-.088.01-.129.016l-.129.03-.124.047a1 1 0 0 0-.124.057c-.036.026-.077.046-.114.072a1 1 0 0 0-.103.088 1 1 0 0 0-.103.093c-.031.036-.062.067-.088.103-.026.042-.057.078-.078.12a1 1 0 0 0-.072.118q-.032.067-.057.134l-.046.134a1 1 0 0 0-.026.124c0 .006-.005.011-.005.016-.01.047-.01.108-.016.14q-.009.05-.01.103a.5.5 0 0 0 .026.165q.014.046.036.093v.005a1 1 0 0 0 .057.093 1 1 0 0 0 .067.093q.042.044.088.083.045.045.098.082c.124.109.155.145.315.228q.038.02.083.041c.005 0 .01.005.015.005q-.001.013.005.026.01.062.026.124a1 1 0 0 0 .041.124c.016.03.026.062.042.093q.007.016.015.026l.062.113.078.109q.042.051.088.098.045.043.098.088s.005.005.01.005a1 1 0 0 0 .207.14 1 1 0 0 0 .118.056.6.6 0 0 0 .104.036c.005.005.01.005.02.01.021.006.047.011.068.016-.016.279-.021.543.02.635.047.104.274-.211.501-.573-.03.357-.051.775 0 .899.057.129.367-.274.636-.718 3.662-.847 7.003 1.684 7.354 5.258-.067-.558-.754-.868-1.069-.79-.155.382-.418.873-.841 1.177.037-.345.02-.693-.052-1.033a3.3 3.3 0 0 1-.64 1.302c-.491.036-.982-.202-1.24-.558-.02-.015-.026-.046-.042-.067a1 1 0 0 1-.04-.108.4.4 0 0 1-.032-.109q-.006-.052-.005-.114v-.077a1 1 0 0 1 .026-.109 1 1 0 0 1 .036-.108c.02-.036.036-.072.062-.108.088-.248.088-.45-.072-.569a.6.6 0 0 0-.099-.051c-.02-.006-.046-.016-.067-.021l-.041-.015a1 1 0 0 0-.109-.026.4.4 0 0 0-.108-.016 1 1 0 0 0-.114-.01c-.025 0-.051.005-.077.005a.4.4 0 0 0-.114.015q-.054.007-.108.021a1 1 0 0 0-.109.036l-.103.047c-.03.015-.062.036-.098.052-1.203.784-.486 2.623.336 3.155-.31.057-.625.124-.713.191l-.01.01q.334.202.697.347.415.134.837.248v.005a5 5 0 0 0 1.301.093c2.288-.16 4.163-1.9 4.504-4.194l.031.134c.015.093.036.191.046.29v.005q.014.07.021.134v.02q.009.072.01.135.01.085.01.17v.083c0 .026.006.057.006.083 0 .03-.005.062-.005.093v.072c0 .036-.005.067-.005.103q.001.029-.006.067c0 .036-.005.073-.005.114q-.006.022-.005.046l-.015.12q.001.022-.005.046c-.006.051-.016.098-.021.15v.01c-.01.046-.02.098-.031.144v.016l-.031.14c0 .005-.005.015-.005.02a1 1 0 0 1-.036.14v.015q-.025.076-.042.145-.006.009-.005.01l-.046.155c-.021.052-.037.098-.057.15s-.036.103-.057.15l-.062.15h-.005c-.021.046-.041.097-.067.144l-.016.036c-.005.005-.005.01-.01.015a4.9 4.9 0 0 1-1.451 1.736q-.063.04-.125.088c-.01.01-.026.015-.036.026q-.053.038-.113.077l.015.031h.005l.217-.03h.005q.202-.033.403-.073a1 1 0 0 0 .114-.026l.072-.015c.036-.006.072-.016.109-.021.03-.01.062-.016.093-.026a10 10 0 0 0 1.497-.496 8.3 8.3 0 0 1-3.207 2.619 8.5 8.5 0 0 0 1.761-.305 8.25 8.25 0 0 0 4.881-3.9 8.2 8.2 0 0 1-1.39 3.321c.501-.33.964-.714 1.38-1.146a8.2 8.2 0 0 0 2.174-4.39c.177.817.227 1.657.15 2.49 3.73-5.202.31-10.594-1.12-12.015-.006-.01-.01-.015-.01-.026-.006.006-.006.006-.006.011 0-.005 0-.005-.005-.01q-.002.092-.01.186a7 7 0 0 1-.052.345 8 8 0 0 1-.088.341 4 4 0 0 1-.124.33q-.072.162-.155.316a4 4 0 0 1-.398.573c-.077.093-.16.176-.242.259a3 3 0 0 1-.15.129l-.12.103c-.092.072-.185.14-.288.201a4 4 0 0 1-.305.176 9 9 0 0 1-.325.145 3.6 3.6 0 0 1-.682.186c-.12.02-.238.03-.351.04a4 4 0 0 1-.248.011c-.12 0-.238-.01-.351-.02a3 3 0 0 1-.352-.052 3 3 0 0 1-.346-.088h-.005c.114-.01.227-.02.341-.041a3.7 3.7 0 0 0 1.317-.501q.148-.099.29-.207.138-.108.263-.232c.087-.078.165-.165.242-.253q.117-.14.217-.28c.01-.015.02-.035.031-.05q.08-.125.15-.249a3.6 3.6 0 0 0 .367-.981c.02-.119.041-.233.052-.346.01-.119.02-.238.02-.351q-.001-.125-.01-.248-.017-.178-.041-.346a4 4 0 0 0-.078-.346c-.036-.109-.072-.222-.114-.331a3.5 3.5 0 0 0-.527-.91 11 11 0 0 0-.237-.262 3 3 0 0 0-.134-.13 9 9 0 0 0-.718-.506 1 1 0 0 0-.104-.051 2 2 0 0 0-.49-.217\",\n \"clip-rule\": \"evenodd\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M11.345 2.005c-.043.004-.18.018-.303.028-2.84.256-5.501 1.788-7.187 4.144a9.9 9.9 0 0 0-1.765 4.369c-.08.549-.09.711-.09 1.456s.01.907.09 1.456c.543 3.755 3.216 6.91 6.84 8.08.65.208 1.334.351 2.112.437.303.033 1.613.033 1.916 0 1.343-.149 2.48-.48 3.603-1.053.172-.088.205-.112.182-.131a191 191 0 0 1-1.629-2.184l-1.599-2.16-2.004-2.965a284 284 0 0 0-2.017-2.964 161 161 0 0 0-.02 2.925c-.006 2.816-.008 2.93-.043 2.996a.36.36 0 0 1-.172.178c-.063.031-.117.037-.412.037h-.339l-.09-.056a.4.4 0 0 1-.13-.143l-.042-.088.004-3.92.006-3.92.06-.077a.5.5 0 0 1 .145-.12c.08-.038.112-.042.45-.042.399 0 .465.016.569.129.03.031 1.114 1.665 2.412 3.634l3.946 5.975 1.583 2.399.08-.053a10.3 10.3 0 0 0 2.055-1.802 9.95 9.95 0 0 0 2.354-5.112c.08-.549.09-.711.09-1.456s-.01-.907-.09-1.456c-.543-3.755-3.216-6.91-6.84-8.08a10.5 10.5 0 0 0-2.083-.435c-.187-.02-1.48-.041-1.642-.026m4.094 6.048c.094.047.17.137.197.231.016.05.02 1.138.016 3.587l-.006 3.515-.62-.95-.621-.95V10.93c0-1.652.008-2.58.02-2.625a.4.4 0 0 1 .193-.247c.08-.04.11-.045.416-.045.29 0 .34.004.405.04\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createStaticVNode(\"<path fill=\\\"url(#a)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M19.608 5.51C16.023 1.308 9.712.808 5.51 4.392 1.308 7.977.808 14.288 4.392 18.49c3.585 4.202 9.896 4.702 14.098 1.118 4.202-3.585 4.702-9.896 1.118-14.098m-4.982 5.249c.385 0 .631.417.438.75l-.056.096-3.774 6.21a.39.39 0 0 1-.33.185h-.36a.378.378 0 0 1-.366-.472l1.024-3.959a.5.5 0 0 0-.484-.625H9.145a.5.5 0 0 1-.484-.625l1.545-5.978a.46.46 0 0 1 .448-.34l.067.001h1.584a.5.5 0 0 1 .496.568l-.01.071-.604 3.533a.5.5 0 0 0 .493.585z\\\" clip-rule=\\\"evenodd\\\"></path><defs><radialGradient id=\\\"a\\\" cx=\\\"0\\\" cy=\\\"0\\\" r=\\\"1\\\" gradientTransform=\\\"matrix(19.5 0 0 198.851 4 12)\\\" gradientUnits=\\\"userSpaceOnUse\\\"><stop stop-color=\\\"#31B2F3\\\"></stop><stop offset=\\\".474\\\" stop-color=\\\"#F27CEC\\\"></stop><stop offset=\\\"1\\\" stop-color=\\\"#FD6641\\\"></stop></radialGradient></defs>\", 2)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"#00DC82\",\n d: \"M13.32 19.333h8.14c.26 0 .508-.09.733-.22.226-.129.457-.29.587-.513s.22-.476.22-.733c0-.258-.09-.51-.22-.734l-5.5-9.46a1.34 1.34 0 0 0-.513-.513 1.8 1.8 0 0 0-.807-.22c-.26 0-.508.09-.733.22-.216.12-.393.298-.514.513l-1.393 2.42L10.533 5.4c-.13-.223-.288-.458-.513-.587s-.474-.146-.733-.146c-.26 0-.509.018-.734.146-.24.146-.441.347-.586.587l-6.82 11.733c-.13.223-.147.476-.147.734 0 .257.017.51.147.733s.361.384.586.513c.225.13.474.22.734.22H7.6c2.034 0 3.515-.912 4.547-2.64l2.493-4.326 1.32-2.274 4.033 6.894H14.64zm-5.793-2.346H3.933l5.354-9.24L12 12.367l-1.797 3.132c-.687 1.122-1.468 1.488-2.676 1.488\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createStaticVNode(\"<path fill=\\\"#93D500\\\" d=\\\"M7.285 13.5H2.007l.003.077.009.15.004.063.014.171.004.039a8.8 8.8 0 0 0 .387 1.871q0 .005.003.011l.058.173.016.044.08.216.048.124a5 5 0 0 0 .078.189l.052.117.031.07.066.14.022.046.079.16.012.024q.045.088.093.175l.004.008.02.036 4.508-2.715.017-.01a3.6 3.6 0 0 1-.33-1.179\\\"></path><path fill=\\\"#4D5A31\\\" d=\\\"m8.582 15.923-.013.013-3.717 3.717.057.053.105.094.055.048.127.107.034.029a8 8 0 0 0 .324.254l.006.004q.336.252.695.47l.025.016.137.08.084.048.08.045q.072.04.145.078a8 8 0 0 0 .431.21l.132-.32 1.87-4.54.007-.017a3.6 3.6 0 0 1-.584-.389\\\"></path><path fill=\\\"#6BA43A\\\" d=\\\"M8.195 15.553a3 3 0 0 1-.212-.262 4 4 0 0 1-.2-.296L3.27 17.713q.104.174.215.338l.007.012.003.005.007.01v.002l.019.026.001.002q.119.174.242.342l.006.007.005.007.11.142.015.019q.057.073.117.145l.028.034.155.181.094.105.053.058.024.026.07.075.028.03.125.127 3.723-3.723a3 3 0 0 1-.122-.13\\\"></path><path fill=\\\"#4D5A31\\\" d=\\\"m13.13 15.921-.124.096.009.016 2.714 4.506a8 8 0 0 0 1.134-.886l-3.718-3.717z\\\"></path><path fill=\\\"#93D500\\\" d=\\\"m15.335 20.576-.092-.153-2.534-4.206a4 4 0 0 1-.316.167 3.6 3.6 0 0 1-2.567.2c-.057-.017-.113-.04-.169-.06s-.113-.037-.168-.06L7.62 21.003l-.073.178-.063.152.014.006.016.006.004.002.133.05.167.065.085.032a9 9 0 0 0 1.88.442l.075.008.142.016.036.003.174.014.06.004.153.01.094.003.122.004.217.003a9 9 0 0 0 1.495-.126l.154-.028.088-.017.09-.02.15-.032.028-.007a9 9 0 0 0 2.124-.791l.13-.074.157-.088.107-.06.001-.001.002-.001h.001l.001-.001.002-.001.006-.004.034-.02zm-6.75-10.21.123-.097-.009-.015-2.714-4.506q-.189.123-.372.256a9 9 0 0 0-.762.629L8.57 10.35z\\\"></path><path fill=\\\"#4D5A31\\\" d=\\\"M4.594 6.88q-.064.065-.124.13l-.123.128a9 9 0 0 0-.753.933l-.032.046-.076.112-.104.16a8.83 8.83 0 0 0-1.375 4.397l-.005.178-.003.179h5.266q.002-.09.008-.179c.006-.089.004-.119.01-.178a3.57 3.57 0 0 1 .794-1.917q.059-.069.12-.133c.04-.044.077-.09.12-.133L4.594 6.881Zm10.864-1.306q-.01-.008-.021-.013l-.14-.083-.082-.047-.082-.046-.143-.077-.023-.012a9 9 0 0 0-.95-.426l-.024-.01a9 9 0 0 0-1.987-.498l-.074-.01-.075-.008-.143-.016-.04-.004-.17-.014-.066-.004-.146-.009-.078-.003v5.278c.27.028.54.086.8.174l3.884-3.884a9 9 0 0 0-.44-.288\\\"></path><path fill=\\\"#6BA43A\\\" d=\\\"M10.679 4.29q-.09 0-.179.003a9 9 0 0 0-1.113.115l-.024.004-.155.029-.087.016a6 6 0 0 0-.24.052l-.028.006a9 9 0 0 0-2.125.792l-.13.074-.156.087-.115.066h-.002l-.008.005-.03.017v.001l.093.153 2.625 4.359a4 4 0 0 1 .316-.167 3.6 3.6 0 0 1 1.536-.35V4.285q-.09.001-.178.004Z\\\"></path><path fill=\\\"#4D5A31\\\" d=\\\"M19.704 12.708a10 10 0 0 0-.05-.61l-.002-.014-.001-.007-.027-.201v-.006a9 9 0 0 0-.273-1.245l-.002-.008-.059-.19-.008-.025-.057-.17-.016-.046-.054-.147-.027-.07a5 5 0 0 0-.086-.216l-.04-.094-.052-.12-.03-.068-.066-.142-.021-.043-.08-.162-.012-.022-.093-.177-.003-.006a9 9 0 0 0-.504-.818l-3.886 3.886q.132.392.174.8h5.278q0-.04-.003-.08Z\\\"></path><path fill=\\\"#6BA43A\\\" d=\\\"M14.45 13.143q-.002.09-.01.179-.001.09-.01.178a3.57 3.57 0 0 1-.793 1.918c-.037.046-.08.088-.12.133-.04.044-.077.09-.12.132l3.723 3.723q.063-.064.124-.13l.123-.128q.415-.448.754-.935l.027-.039.082-.12.07-.108.034-.052a8.83 8.83 0 0 0 1.377-4.573l.003-.178z\\\"></path><path fill=\\\"#424143\\\" d=\\\"M21.279 2.722a2.467 2.467 0 0 0-3.953 2.84l-5.374 5.373a2.467 2.467 0 1 0 1.114 1.113l5.373-5.373a2.466 2.466 0 0 0 2.84-3.953\\\"></path>\", 10)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n stroke: \"#21FA90\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M5.038 13.757v3.814m1.496-4.566 3.04 1.761 4.534-2.627V6.885L9.574 4.258 5.038 6.885v4.56m1.496 1.56v1.668m0-1.668 1.49-.91\"\n }, null, -1),\n _createElementVNode(\"path\", {\n stroke: \"#00050B\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \".885\",\n d: \"m21.719 10.719 1.839 1.09v1.09l-1.84 1.091M2.834 8.13.774 9.322v5.326l2.016 1.167m3.744 1.07v1.183l3.021 1.674 2.32-1.358-.02-2.471m2.282-1.387v1.3L16.31 17.1l3.175-1.9v-5.186L16.36 8.217\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"#61DAFB\",\n d: \"M12.5 14.014a1.783 1.783 0 1 0 0-3.565 1.783 1.783 0 0 0 0 3.565\"\n }, null, -1),\n _createElementVNode(\"path\", {\n stroke: \"#61DAFB\",\n \"stroke-width\": \".87\",\n d: \"M12.5 15.884c5.283 0 9.565-1.635 9.565-3.652S17.783 8.58 12.5 8.58s-9.565 1.635-9.565 3.652 4.282 3.652 9.565 3.652Z\"\n }, null, -1),\n _createElementVNode(\"path\", {\n stroke: \"#61DAFB\",\n \"stroke-width\": \".87\",\n d: \"M9.337 14.058c2.642 4.575 6.199 7.466 7.946 6.457 1.746-1.008 1.021-5.534-1.62-10.11C13.02 5.832 9.464 2.94 7.717 3.949s-1.021 5.535 1.62 10.11Z\"\n }, null, -1),\n _createElementVNode(\"path\", {\n stroke: \"#61DAFB\",\n \"stroke-width\": \".87\",\n d: \"M9.337 10.406c-2.641 4.575-3.366 9.1-1.62 10.11 1.747 1.008 5.304-1.883 7.946-6.458s3.366-9.101 1.62-10.11c-1.747-1.009-5.305 1.883-7.946 6.458Z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"m21.863 11.755-.839-.52-.024-.244.722-.673a.288.288 0 0 0-.096-.482l-.923-.345-.072-.239.575-.799a.288.288 0 0 0-.187-.455l-.973-.158-.117-.218.409-.897a.286.286 0 0 0-.273-.409l-.987.034-.157-.188.228-.962a.287.287 0 0 0-.348-.348l-.96.227-.19-.157.034-.986a.287.287 0 0 0-.409-.273l-.897.409-.218-.118-.158-.972a.288.288 0 0 0-.454-.189l-.8.575-.238-.071-.345-.923a.288.288 0 0 0-.482-.096L13.01 3l-.245-.023-.52-.84a.29.29 0 0 0-.49 0l-.52.84q-.123.01-.245.023l-.673-.722a.29.29 0 0 0-.482.096l-.345.923q-.12.034-.237.072l-.8-.576a.288.288 0 0 0-.455.188l-.158.973q-.11.057-.22.118l-.895-.41a.287.287 0 0 0-.409.273l.034.988-.19.156-.96-.227a.29.29 0 0 0-.348.348l.227.962-.157.188-.987-.034a.288.288 0 0 0-.273.409l.409.897a7 7 0 0 0-.117.22l-.972.156a.288.288 0 0 0-.189.455l.575.8-.071.237-.923.346a.29.29 0 0 0-.096.482L3 10.99l-.024.244-.84.52a.29.29 0 0 0 0 .492l.84.519q.01.123.025.245l-.723.673a.29.29 0 0 0 .096.482l.922.345q.035.12.073.237l-.576.8a.29.29 0 0 0 .188.454l.973.158q.056.11.117.22l-.41.896a.288.288 0 0 0 .274.409l.987-.035q.076.096.156.19l-.227.961a.287.287 0 0 0 .348.347l.961-.226.19.156-.035.987a.288.288 0 0 0 .41.273l.896-.41q.108.06.219.119l.158.971a.288.288 0 0 0 .455.19l.799-.577q.118.038.237.072l.345.923a.287.287 0 0 0 .482.096L10.99 21q.121.014.244.025l.52.839a.29.29 0 0 0 .492 0l.519-.84q.123-.01.245-.024l.674.722a.287.287 0 0 0 .48-.096l.346-.923q.12-.034.238-.072l.8.576a.29.29 0 0 0 .454-.189l.158-.972.219-.117.896.409a.288.288 0 0 0 .41-.273l-.035-.988a7 7 0 0 0 .19-.155l.96.226a.287.287 0 0 0 .348-.347l-.226-.961.155-.19.988.035a.29.29 0 0 0 .272-.41l-.409-.896q.06-.108.117-.219l.973-.158a.287.287 0 0 0 .188-.454l-.575-.8.072-.237.922-.345a.286.286 0 0 0 .096-.482L21 13.011l.025-.245.839-.52a.29.29 0 0 0 0-.49Zm-5.619 6.965a.595.595 0 0 1 .25-1.163.595.595 0 0 1-.25 1.163m-.286-1.93a.54.54 0 0 0-.642.417l-.299 1.391a7.3 7.3 0 0 1-3.017.65c-1.1 0-2.144-.243-3.08-.679l-.299-1.39a.54.54 0 0 0-.643-.417l-1.228.263a7 7 0 0 1-.635-.748h5.976c.068 0 .113-.012.113-.074V14.09c0-.062-.046-.074-.113-.074h-1.747v-1.34h1.89c.172 0 .922.049 1.162 1.007.075.295.24 1.254.352 1.561.113.344.57 1.032 1.059 1.032h2.977a1 1 0 0 0 .108-.01q-.31.421-.677.794l-1.256-.27Zm-8.265 1.9a.594.594 0 1 1-.014-1.17.594.594 0 0 1 .014 1.171ZM5.427 9.5a.594.594 0 1 1-1.086.481.594.594 0 0 1 1.086-.481m-.697 1.65 1.28-.569a.543.543 0 0 0 .274-.715l-.263-.597h1.036v4.672h-2.09a7.3 7.3 0 0 1-.237-2.792Zm5.614-.454V9.32h2.468c.128 0 .9.148.9.725 0 .48-.592.652-1.08.652zm8.969 1.24q0 .273-.02.542h-.75c-.076 0-.106.05-.106.123v.345c0 .81-.457.987-.858 1.032-.381.043-.805-.16-.857-.394-.225-1.265-.6-1.536-1.192-2.003.735-.467 1.5-1.155 1.5-2.077 0-.996-.683-1.623-1.148-1.93-.652-.43-1.375-.517-1.57-.517h-7.76a7.3 7.3 0 0 1 4.091-2.308l.915.959a.54.54 0 0 0 .765.018l1.024-.98a7.32 7.32 0 0 1 5.006 3.566l-.7 1.583a.543.543 0 0 0 .275.715l1.35.6q.034.357.035.726m-7.754-8.004a.595.595 0 1 1 .82.86.595.595 0 0 1-.82-.86m6.951 5.595a.594.594 0 1 1 1.086.481.594.594 0 0 1-1.086-.481\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"green\",\n viewBox: \"-2 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"#FF3E00\",\n d: \"M18.664 3.171c-2.219-3.185-6.61-4.13-9.788-2.104L3.29 4.625A6.42 6.42 0 0 0 .398 8.917a6.74 6.74 0 0 0 .666 4.332 6.4 6.4 0 0 0-.959 2.369 6.85 6.85 0 0 0 1.166 5.175c2.219 3.194 6.61 4.137 9.782 2.11l5.586-3.557a6.42 6.42 0 0 0 2.892-4.292 6.74 6.74 0 0 0-.666-4.332 6.4 6.4 0 0 0 .959-2.369 6.94 6.94 0 0 0-1.16-5.182\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"#fff\",\n d: \"M8.327 21.099a4.435 4.435 0 0 1-4.76-1.75 4.16 4.16 0 0 1-.7-3.122q.05-.261.133-.517l.105-.318.286.182a7.1 7.1 0 0 0 2.186 1.095l.208.063-.02.201c-.025.293.055.585.223.83a1.305 1.305 0 0 0 1.779.379l5.581-3.521a1.18 1.18 0 0 0 .524-.783 1.23 1.23 0 0 0-.211-.923 1.305 1.305 0 0 0-1.78-.379l-2.12 1.35q-.53.321-1.135.488a4.435 4.435 0 0 1-4.76-1.75 4.16 4.16 0 0 1-.7-3.122 3.84 3.84 0 0 1 1.736-2.573l5.581-3.559a4.3 4.3 0 0 1 1.134-.485 4.435 4.435 0 0 1 4.76 1.751c.641.908.893 2.03.7 3.122a4 4 0 0 1-.132.517l-.105.318-.287-.182a7.1 7.1 0 0 0-2.186-1.095l-.207-.063.019-.202a1.27 1.27 0 0 0-.223-.83 1.305 1.305 0 0 0-1.779-.378L6.6 9.363a1.18 1.18 0 0 0-.523.783c-.056.323.019.655.21.923a1.305 1.305 0 0 0 1.78.38l2.121-1.35c.352-.214.732-.38 1.134-.485a4.435 4.435 0 0 1 4.76 1.75 4.16 4.16 0 0 1 .7 3.122 3.8 3.8 0 0 1-1.736 2.563l-5.58 3.559c-.353.214-.732.38-1.135.489\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [...(_cache[0] || (_cache[0] = [\n _createElementVNode(\"path\", {\n fill: \"#41B883\",\n d: \"m14.31 4.34-2.31 4-2.31-4H2l10 17.32L22 4.34z\"\n }, null, -1),\n _createElementVNode(\"path\", {\n fill: \"#34495E\",\n d: \"m14.31 4.34-2.31 4-2.31-4H6l6 10.392L18 4.34z\"\n }, null, -1)\n ]))]))\n}\nexport default { render: render }","import type { ICONS } from '../icons'\nimport type { LOGOS } from '../logos'\n\n/** @deprecated Use the icons from the `@scalar/icons` package instead. */\nexport type Icon = (typeof ICONS)[number]\n\n/** @deprecated Use the icons from the `@scalar/icons` package instead. */\nexport type Logo = (typeof LOGOS)[number]\n\nconst icons = import.meta.glob<SVGElement>('../icons/*.svg', {\n query: 'component',\n eager: true,\n})\n\nconst logos = import.meta.glob<SVGElement>('../logos/*.svg', {\n query: 'component',\n eager: true,\n})\n\n/**\n * Generate a Vue component from the icon SVGs\n *\n * For any changes to this file, please ensure it works with SSR\n */\nexport const getIcon = (name: Icon) => {\n const filename = `../icons/${name}.svg`\n\n if (!icons[filename]) {\n console.warn(`Could not find icon: ${name}`)\n return null\n }\n\n return icons[filename]\n}\n\n/**\n * Generate a Vue component from the logo SVGs\n *\n * For any changes to this file, please ensure it works with SSR\n */\nexport const getLogo = (name: Logo) => {\n const filename = `../logos/${name}.svg`\n\n if (!logos[filename]) {\n console.warn(`Could not find icon: ${name}`)\n return null\n }\n return logos[filename]\n}\n","import { cva } from '@scalar/use-hooks/useBindCx'\n\n/**\n * Variants for the ScalarIcon component\n */\nexport const variants = cva({\n variants: {\n size: {\n 'xs': 'size-3',\n 'sm': 'size-3.5',\n 'md': 'size-4',\n 'lg': 'size-5',\n 'xl': 'size-6',\n '2xl': 'size-8',\n '3xl': 'size-10',\n 'full': 'size-full',\n },\n },\n defaultVariants: {\n size: 'full',\n },\n})\n","<script lang=\"ts\">\n/**\n * Scalar Icon Wrapper\n *\n * @deprecated Use the icons from the `@scalar/icons` package instead.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport type { ScalarIconProps } from './types'\nimport { getIcon, getLogo } from './utils'\nimport { variants } from './variants'\n\nconst props = defineProps<ScalarIconProps>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst stroke = computed(() => props.thickness ?? '2')\n\nconst accessibilityAttrs = computed(() =>\n props.label\n ? { 'aria-label': props.label }\n : {\n 'aria-hidden': true,\n 'role': 'presentation',\n },\n)\n\nconst svg = computed(() => {\n if (props.icon) {\n return getIcon(props.icon)\n }\n if (props.logo) {\n return getLogo(props.logo)\n }\n\n return undefined\n})\n</script>\n<template>\n <component\n :is=\"svg\"\n v-bind=\"{\n ...cx('scalar-icon', variants({ size })),\n ...accessibilityAttrs,\n }\" />\n</template>\n<style scoped>\n.scalar-icon,\n.scalar-icon * {\n stroke-width: v-bind(stroke);\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Icon Wrapper\n *\n * @deprecated Use the icons from the `@scalar/icons` package instead.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport type { ScalarIconProps } from './types'\nimport { getIcon, getLogo } from './utils'\nimport { variants } from './variants'\n\nconst props = defineProps<ScalarIconProps>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst stroke = computed(() => props.thickness ?? '2')\n\nconst accessibilityAttrs = computed(() =>\n props.label\n ? { 'aria-label': props.label }\n : {\n 'aria-hidden': true,\n 'role': 'presentation',\n },\n)\n\nconst svg = computed(() => {\n if (props.icon) {\n return getIcon(props.icon)\n }\n if (props.logo) {\n return getLogo(props.logo)\n }\n\n return undefined\n})\n</script>\n<template>\n <component\n :is=\"svg\"\n v-bind=\"{\n ...cx('scalar-icon', variants({ size })),\n ...accessibilityAttrs,\n }\" />\n</template>\n<style scoped>\n.scalar-icon,\n.scalar-icon * {\n stroke-width: v-bind(stroke);\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Icon Legacy Adapter\n *\n * This component is used to help components that accept a ScalarIcon name\n * as a prop to accept a component instead to be compatible with `@scalar/icons`\n * while staying backwards compatible with the legacy ScalarIcon component\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { ScalarIconComponent, ScalarIconProps } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarIcon from './ScalarIcon.vue'\nimport type { ScalarIconProps as LegacyScalarIconProps } from './types'\nimport type { Icon } from './utils'\nimport { variants } from './variants'\n\n/**\n * Icon wrapper for all icons and logos\n */\n\ndefineProps<\n {\n icon: Icon | ScalarIconComponent\n } & ScalarIconProps &\n Omit<LegacyScalarIconProps, 'icon'>\n>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <ScalarIcon\n v-if=\"typeof icon === 'string'\"\n v-bind=\"{ ...$props, ...$attrs }\"\n :icon=\"icon\" />\n <component\n :is=\"icon\"\n v-else\n :label=\"label\"\n :weight=\"weight\"\n v-bind=\"cx(variants({ size }))\" />\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Icon Legacy Adapter\n *\n * This component is used to help components that accept a ScalarIcon name\n * as a prop to accept a component instead to be compatible with `@scalar/icons`\n * while staying backwards compatible with the legacy ScalarIcon component\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { ScalarIconComponent, ScalarIconProps } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarIcon from './ScalarIcon.vue'\nimport type { ScalarIconProps as LegacyScalarIconProps } from './types'\nimport type { Icon } from './utils'\nimport { variants } from './variants'\n\n/**\n * Icon wrapper for all icons and logos\n */\n\ndefineProps<\n {\n icon: Icon | ScalarIconComponent\n } & ScalarIconProps &\n Omit<LegacyScalarIconProps, 'icon'>\n>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <ScalarIcon\n v-if=\"typeof icon === 'string'\"\n v-bind=\"{ ...$props, ...$attrs }\"\n :icon=\"icon\" />\n <component\n :is=\"icon\"\n v-else\n :label=\"label\"\n :weight=\"weight\"\n v-bind=\"cx(variants({ size }))\" />\n</template>\n","/** The ID of the tooltip element used to locate it in the DOM */\nexport const ELEMENT_ID = 'scalar-tooltip' as const\n\n/** The class name of the tooltip element */\nexport const ELEMENT_CLASS = 'scalar-tooltip' as const\n\n/** The default delay for the tooltip */\nexport const DEFAULT_DELAY = 300 as const\n\n/** The default offset for the tooltip */\nexport const DEFAULT_OFFSET = 4 as const\n","import { autoUpdate, flip, shift, useFloating } from '@floating-ui/vue'\nimport { computed, ref, unref, watch } from 'vue'\n\nimport { DEFAULT_DELAY, DEFAULT_OFFSET, ELEMENT_CLASS, ELEMENT_ID } from './constants'\nimport type { Timer, TooltipConfiguration } from './types'\n\n// ---------------------------------------------------------------------------\n// State\n// ---------------------------------------------------------------------------\n\n/**\n * The delay timer for the tooltip\n *\n * If there's not a timer running it should be undefined\n */\nconst timer = ref<Timer>()\n\n/**\n * A reference to the tooltip element\n *\n * If the hook hasn't been initialized it should be undefined\n */\nconst el = ref<HTMLElement>()\n\n/**\n * The configuration for the active tooltip\n *\n * If no tooltip is active it should be undefined\n */\nconst config = ref<TooltipConfiguration>()\n\n// ---------------------------------------------------------------------------\n// Core watcher and floating UI setup\n// ---------------------------------------------------------------------------\n\n// Set up floating UI\nconst { floatingStyles } = useFloating(\n computed(() => unref(config.value?.targetRef)),\n el,\n {\n placement: computed(() => unref(config.value?.placement)),\n whileElementsMounted: autoUpdate,\n middleware: computed(() => [flip(), shift()]),\n },\n)\n\n// Update the tooltip element's positioning when Floating UI updates the styles\nwatch(floatingStyles, () => {\n if (!el.value) {\n return\n }\n\n el.value.style.position = floatingStyles.value.position\n el.value.style.top = floatingStyles.value.top\n el.value.style.left = floatingStyles.value.left\n el.value.style.transform = floatingStyles.value.transform ?? ''\n el.value.style.willChange = floatingStyles.value.willChange ?? ''\n})\n\n// Show or hide the tooltip when the config changes\nwatch(\n config,\n (opts) => {\n if (!el.value) {\n return\n }\n\n if (opts) {\n const contentTarget = unref(opts?.contentTarget) ?? 'textContent'\n\n // Update the tooltip content\n el.value[contentTarget] = unref(opts?.content) ?? ''\n\n // Show the tooltip\n const offset = unref(opts?.offset) ?? DEFAULT_OFFSET\n el.value.style.setProperty('--scalar-tooltip-offset', `${offset}px`)\n el.value.style.setProperty('display', 'block')\n } else {\n // Clear the tooltip content\n el.value.innerHTML = ''\n\n // Hide the tooltip\n el.value.style.removeProperty('--scalar-tooltip-offset')\n el.value.style.setProperty('display', 'none')\n }\n },\n { deep: true },\n)\n\n// ---------------------------------------------------------------------------\n// Lifecycle Functions\n// ---------------------------------------------------------------------------\n\n/**\n * Initialize the tooltip element\n *\n * If the tooltip is already initialized it will be ignored\n */\nfunction initializeTooltipElement(): void {\n if (typeof document === 'undefined' || typeof window === 'undefined') {\n // Skip tooltip initialization during SSR\n return\n }\n\n if (el.value) {\n // Tooltip already initialized\n return\n }\n\n // See if the tooltip element already exists\n // (Sometimes this happens with HMR)\n const existingTooltipElement = document.getElementById(ELEMENT_ID)\n\n if (existingTooltipElement) {\n el.value = existingTooltipElement\n } else {\n // Create the tooltip element\n el.value = document.createElement('div')\n el.value.role = 'tooltip'\n el.value.id = ELEMENT_ID\n el.value.classList.add(ELEMENT_CLASS)\n el.value.classList.add('scalar-app')\n el.value.style.setProperty('display', 'none')\n el.value.addEventListener('mouseleave', hideTooltip)\n document.body.appendChild(el.value)\n }\n}\n\n/**\n * Cleanup and reset the tooltip element\n */\nexport function cleanupTooltipElement() {\n document.getElementById(ELEMENT_ID)?.remove()\n el.value = undefined\n}\n\n// ---------------------------------------------------------------------------\n// Helper Functions\n// ---------------------------------------------------------------------------\n\n/**\n * Hide the tooltip\n *\n * If the mouse is moving between the tooltip and the target we don't hide the tooltip\n */\nfunction hideTooltip(_e: Event) {\n if (!isMovingOffElements(_e)) {\n // Don't hide the tooltip if the mouse is moving between the tooltip and the target\n return\n }\n\n // Clear any existing timer\n clearTimer()\n\n // Hide the tooltip\n config.value = undefined\n}\n\n/**\n * Handle the escape key\n *\n * If the escape key is pressed we need to hide the tooltip\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/tooltip_role#keyboard_interactions\n */\nfunction handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n e.stopPropagation()\n hideTooltip(e)\n }\n}\n\n/** Clears the current timer */\nfunction clearTimer() {\n if (timer.value) {\n clearTimeout(timer.value)\n timer.value = undefined\n }\n}\n\n/** Get all the parents of an element */\nfunction getAllParents(el: Element): Element[] {\n const parents: Element[] = []\n let parent = el.parentElement\n while (parent) {\n parents.push(parent)\n parent = parent.parentElement\n }\n return parents\n}\n\n/** Check if mouse moved off the target but onto the tooltip */\nfunction isMovingOffElements(e: Event): boolean {\n const target = unref(config.value?.targetRef)\n if (e instanceof MouseEvent && e.relatedTarget instanceof Element && target) {\n const relatedTargetParents = getAllParents(e.relatedTarget)\n return (\n e.relatedTarget.id !== ELEMENT_ID &&\n !relatedTargetParents.some((parent) => parent.id === ELEMENT_ID) &&\n e.relatedTarget !== target\n )\n }\n return true\n}\n\n// ---------------------------------------------------------------------------\n// Tooltip Hook\n// ---------------------------------------------------------------------------\n\n/**\n * Create a tooltip\n *\n * If there isn't a tooltip element it will be created\n */\nexport function useTooltip(opts: TooltipConfiguration) {\n initializeTooltipElement()\n\n /**\n * Show the tooltip after the delay if configured\n */\n function showTooltipAfterDelay(_e: Event) {\n const delay = unref(opts.delay) ?? DEFAULT_DELAY\n clearTimer()\n\n // Show the tooltip after the delay\n if (delay > 0) {\n timer.value = setTimeout(() => showTooltip(_e), delay)\n } else {\n showTooltip(_e)\n }\n }\n\n /**\n * Show the tooltip\n */\n function showTooltip(_e: Event) {\n clearTimer()\n\n // Handle the escape key\n document.addEventListener('keydown', handleEscape, { once: true, capture: true })\n\n // Show the tooltip\n config.value = opts\n }\n\n watch(\n () => unref(opts.targetRef),\n (newRef, oldRef) => {\n if (oldRef) {\n oldRef.removeEventListener('mouseenter', showTooltipAfterDelay)\n oldRef.removeEventListener('mouseleave', hideTooltip)\n oldRef.removeEventListener('focus', showTooltip)\n oldRef.removeEventListener('blur', hideTooltip)\n\n oldRef.removeAttribute('aria-describedby')\n }\n if (newRef) {\n newRef.addEventListener('mouseenter', showTooltipAfterDelay)\n newRef.addEventListener('mouseleave', hideTooltip)\n newRef.addEventListener('focus', showTooltip)\n newRef.addEventListener('blur', hideTooltip)\n\n newRef.setAttribute('aria-describedby', ELEMENT_ID)\n }\n },\n { immediate: true },\n )\n}\n","<script lang=\"ts\">\n/**\n * Scalar hotkey tooltip component\n *\n * Adds a tooltip to an interactive element with a hotkey, if\n * you don't need to display a hotkey, use the ScalarTooltip\n * component instead\n *\n * @example\n * <ScalarHotkeyTooltip content=\"Bold\" hotkey=\"B\" modifier=\"Meta\">\n * <ScalarButton>Make bold</ScalarButton>\n * </ScalarHotkeyTooltip>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { type Ref, computed, h, ref, render } from 'vue'\n\nimport { ScalarHotkey } from '../ScalarHotkey'\nimport type { HotKeyModifier } from '../ScalarHotkey/types'\nimport { DEFAULT_DELAY, DEFAULT_OFFSET } from './constants'\nimport type { ScalarTooltipPlacement } from './types'\nimport { useTooltip } from './useTooltip'\n\nconst {\n delay = DEFAULT_DELAY,\n hotkey,\n modifier,\n content = '',\n placement = 'top',\n offset = DEFAULT_OFFSET,\n} = defineProps<{\n content?: string\n hotkey: string\n modifier?: HotKeyModifier[]\n delay?: number\n placement?: ScalarTooltipPlacement\n offset?: number\n}>()\n\nconst wrapperRef: Ref<HTMLElement | null> = ref(null)\n\n/**\n * Render the content and the hotkey into an HTML string\n */\nconst renderedContent = computed<string>(() => {\n if (!document) return ''\n\n // Temp element to render the content into\n const el = document.createElement('div')\n\n const hotKeyClass =\n '-m-0.5 border-none p-0 grid grid-flow-col *:border *:h-5 *:min-w-5 *:border-border-tooltip *:rounded *:px-1 *:flex *:items-center *:justify-center'\n\n if (content) {\n // Render the content and the hotkey\n render(\n h('div', { class: 'flex items-center gap-2' }, [\n content,\n h(ScalarHotkey, {\n class: hotKeyClass,\n hotkey,\n modifier,\n }),\n ]),\n el,\n )\n } else {\n render(\n h(ScalarHotkey, {\n class: hotKeyClass,\n hotkey,\n modifier,\n }),\n el,\n )\n }\n\n const html = el.innerHTML\n\n // Return the rendered content\n return html\n})\n\nuseTooltip({\n content: renderedContent,\n contentTarget: 'innerHTML',\n delay: computed(() => delay),\n placement: computed(() => placement),\n offset: computed(() => offset),\n targetRef: computed(\n () => wrapperRef.value?.children?.[0] || wrapperRef.value || undefined,\n ),\n})\n</script>\n<template>\n <div\n ref=\"wrapperRef\"\n :class=\"{ contents: !!$slots.default }\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar hotkey tooltip component\n *\n * Adds a tooltip to an interactive element with a hotkey, if\n * you don't need to display a hotkey, use the ScalarTooltip\n * component instead\n *\n * @example\n * <ScalarHotkeyTooltip content=\"Bold\" hotkey=\"B\" modifier=\"Meta\">\n * <ScalarButton>Make bold</ScalarButton>\n * </ScalarHotkeyTooltip>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { type Ref, computed, h, ref, render } from 'vue'\n\nimport { ScalarHotkey } from '../ScalarHotkey'\nimport type { HotKeyModifier } from '../ScalarHotkey/types'\nimport { DEFAULT_DELAY, DEFAULT_OFFSET } from './constants'\nimport type { ScalarTooltipPlacement } from './types'\nimport { useTooltip } from './useTooltip'\n\nconst {\n delay = DEFAULT_DELAY,\n hotkey,\n modifier,\n content = '',\n placement = 'top',\n offset = DEFAULT_OFFSET,\n} = defineProps<{\n content?: string\n hotkey: string\n modifier?: HotKeyModifier[]\n delay?: number\n placement?: ScalarTooltipPlacement\n offset?: number\n}>()\n\nconst wrapperRef: Ref<HTMLElement | null> = ref(null)\n\n/**\n * Render the content and the hotkey into an HTML string\n */\nconst renderedContent = computed<string>(() => {\n if (!document) return ''\n\n // Temp element to render the content into\n const el = document.createElement('div')\n\n const hotKeyClass =\n '-m-0.5 border-none p-0 grid grid-flow-col *:border *:h-5 *:min-w-5 *:border-border-tooltip *:rounded *:px-1 *:flex *:items-center *:justify-center'\n\n if (content) {\n // Render the content and the hotkey\n render(\n h('div', { class: 'flex items-center gap-2' }, [\n content,\n h(ScalarHotkey, {\n class: hotKeyClass,\n hotkey,\n modifier,\n }),\n ]),\n el,\n )\n } else {\n render(\n h(ScalarHotkey, {\n class: hotKeyClass,\n hotkey,\n modifier,\n }),\n el,\n )\n }\n\n const html = el.innerHTML\n\n // Return the rendered content\n return html\n})\n\nuseTooltip({\n content: renderedContent,\n contentTarget: 'innerHTML',\n delay: computed(() => delay),\n placement: computed(() => placement),\n offset: computed(() => offset),\n targetRef: computed(\n () => wrapperRef.value?.children?.[0] || wrapperRef.value || undefined,\n ),\n})\n</script>\n<template>\n <div\n ref=\"wrapperRef\"\n :class=\"{ contents: !!$slots.default }\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar tooltip component\n *\n * Adds a tooltip to an interactive element\n *\n * @example\n * <ScalarTooltip content=\"This is a tooltip\">\n * <ScalarButton>Hover Me</ScalarButton>\n * </ScalarTooltip>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { type Ref, computed, ref } from 'vue'\n\nimport { DEFAULT_DELAY, DEFAULT_OFFSET } from './constants'\nimport type { ScalarTooltipProps } from './types'\nimport { useTooltip } from './useTooltip'\n\nconst {\n delay = DEFAULT_DELAY,\n content = '',\n placement = 'top',\n offset = DEFAULT_OFFSET,\n} = defineProps<ScalarTooltipProps>()\n\nconst wrapperRef: Ref<HTMLElement | null> = ref(null)\n\nuseTooltip({\n content: computed(() => content),\n delay: computed(() => delay),\n placement: computed(() => placement),\n offset: computed(() => offset),\n targetRef: computed(\n () => wrapperRef.value?.children?.[0] || wrapperRef.value || undefined,\n ),\n})\n</script>\n<template>\n <div\n ref=\"wrapperRef\"\n :class=\"{ contents: !!$slots.default }\">\n <slot />\n </div>\n</template>\n<style>\n@reference \"../../style.css\";\n\n/** Global styles for the tooltip */\n:where(body) > .scalar-tooltip {\n --scalar-tooltip-padding: 8px;\n\n padding: calc(var(--scalar-tooltip-padding) + var(--scalar-tooltip-offset));\n\n @apply z-tooltip text-c-tooltip text-xs/4 font-medium break-words max-w-xs;\n}\n:where(body) > .scalar-tooltip:before {\n content: '';\n inset: var(--scalar-tooltip-offset);\n @apply absolute rounded bg-b-tooltip -z-1 backdrop-blur;\n}\n:where(body.dark-mode) > .scalar-tooltip:before {\n @apply shadow-border;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar tooltip component\n *\n * Adds a tooltip to an interactive element\n *\n * @example\n * <ScalarTooltip content=\"This is a tooltip\">\n * <ScalarButton>Hover Me</ScalarButton>\n * </ScalarTooltip>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { type Ref, computed, ref } from 'vue'\n\nimport { DEFAULT_DELAY, DEFAULT_OFFSET } from './constants'\nimport type { ScalarTooltipProps } from './types'\nimport { useTooltip } from './useTooltip'\n\nconst {\n delay = DEFAULT_DELAY,\n content = '',\n placement = 'top',\n offset = DEFAULT_OFFSET,\n} = defineProps<ScalarTooltipProps>()\n\nconst wrapperRef: Ref<HTMLElement | null> = ref(null)\n\nuseTooltip({\n content: computed(() => content),\n delay: computed(() => delay),\n placement: computed(() => placement),\n offset: computed(() => offset),\n targetRef: computed(\n () => wrapperRef.value?.children?.[0] || wrapperRef.value || undefined,\n ),\n})\n</script>\n<template>\n <div\n ref=\"wrapperRef\"\n :class=\"{ contents: !!$slots.default }\">\n <slot />\n </div>\n</template>\n<style>\n@reference \"../../style.css\";\n\n/** Global styles for the tooltip */\n:where(body) > .scalar-tooltip {\n --scalar-tooltip-padding: 8px;\n\n padding: calc(var(--scalar-tooltip-padding) + var(--scalar-tooltip-offset));\n\n @apply z-tooltip text-c-tooltip text-xs/4 font-medium break-words max-w-xs;\n}\n:where(body) > .scalar-tooltip:before {\n content: '';\n inset: var(--scalar-tooltip-offset);\n @apply absolute rounded bg-b-tooltip -z-1 backdrop-blur;\n}\n:where(body.dark-mode) > .scalar-tooltip:before {\n @apply shadow-border;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar icon button component\n *\n * Should be used in conjunction with an icon from `@scalar/icons`\n *\n * @example\n * import { ScalarIconAcorn } from '@scalar/icons'\n * ...\n * <ScalarIconButton\n * :icon=\"ScalarIconAcorn\"\n * label=\"It's an acorn\"\n * />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useTemplateRef } from 'vue'\n\nimport { BUTTON_VARIANT_STYLES } from '../ScalarButton/constants'\nimport { ScalarIconLegacyAdapter } from '../ScalarIcon'\nimport { useTooltip } from '../ScalarTooltip'\nimport type { ScalarIconButtonProps } from './types'\n\nconst {\n label,\n variant = 'ghost',\n size = 'md',\n tooltip,\n} = defineProps<ScalarIconButtonProps>()\n\nconst variants = cva({\n base: 'scalar-icon-button grid aspect-square cursor-pointer rounded',\n variants: {\n size: {\n xxs: 'size-3.5 p-0.5',\n xs: 'size-5 p-1',\n sm: 'size-6 p-1',\n md: 'size-10 p-3',\n full: 'size-full',\n },\n disabled: {\n true: 'cursor-not-allowed shadow-none',\n },\n // We use the same button styles for the icon buttons\n variant: BUTTON_VARIANT_STYLES,\n },\n compoundVariants: [\n {\n size: 'md',\n variant: 'ghost',\n class: 'size-8 p-2 m-1 -outline-offset-2 rounded-lg',\n },\n ],\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst button = useTemplateRef('ref')\n\nuseTooltip({\n content: computed(() => label),\n offset: computed(() => (variant === 'ghost' ? 0 : 4)),\n placement: computed(() =>\n typeof tooltip === 'boolean' ? undefined : tooltip,\n ),\n targetRef: computed(() => (tooltip ? button.value : undefined)),\n})\n</script>\n<template>\n <button\n ref=\"ref\"\n :aria-disabled=\"disabled\"\n type=\"button\"\n v-bind=\"cx(variants({ size, variant, disabled }))\">\n <ScalarIconLegacyAdapter\n :icon=\"icon\"\n :thickness=\"thickness\"\n :weight=\"weight\" />\n <span\n v-if=\"!tooltip\"\n class=\"sr-only\"\n >{{ label }}</span\n >\n </button>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar icon button component\n *\n * Should be used in conjunction with an icon from `@scalar/icons`\n *\n * @example\n * import { ScalarIconAcorn } from '@scalar/icons'\n * ...\n * <ScalarIconButton\n * :icon=\"ScalarIconAcorn\"\n * label=\"It's an acorn\"\n * />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useTemplateRef } from 'vue'\n\nimport { BUTTON_VARIANT_STYLES } from '../ScalarButton/constants'\nimport { ScalarIconLegacyAdapter } from '../ScalarIcon'\nimport { useTooltip } from '../ScalarTooltip'\nimport type { ScalarIconButtonProps } from './types'\n\nconst {\n label,\n variant = 'ghost',\n size = 'md',\n tooltip,\n} = defineProps<ScalarIconButtonProps>()\n\nconst variants = cva({\n base: 'scalar-icon-button grid aspect-square cursor-pointer rounded',\n variants: {\n size: {\n xxs: 'size-3.5 p-0.5',\n xs: 'size-5 p-1',\n sm: 'size-6 p-1',\n md: 'size-10 p-3',\n full: 'size-full',\n },\n disabled: {\n true: 'cursor-not-allowed shadow-none',\n },\n // We use the same button styles for the icon buttons\n variant: BUTTON_VARIANT_STYLES,\n },\n compoundVariants: [\n {\n size: 'md',\n variant: 'ghost',\n class: 'size-8 p-2 m-1 -outline-offset-2 rounded-lg',\n },\n ],\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst button = useTemplateRef('ref')\n\nuseTooltip({\n content: computed(() => label),\n offset: computed(() => (variant === 'ghost' ? 0 : 4)),\n placement: computed(() =>\n typeof tooltip === 'boolean' ? undefined : tooltip,\n ),\n targetRef: computed(() => (tooltip ? button.value : undefined)),\n})\n</script>\n<template>\n <button\n ref=\"ref\"\n :aria-disabled=\"disabled\"\n type=\"button\"\n v-bind=\"cx(variants({ size, variant, disabled }))\">\n <ScalarIconLegacyAdapter\n :icon=\"icon\"\n :thickness=\"thickness\"\n :weight=\"weight\" />\n <span\n v-if=\"!tooltip\"\n class=\"sr-only\"\n >{{ label }}</span\n >\n </button>\n</template>\n","<script setup lang=\"ts\">\nimport {\n type Node,\n htmlFromMarkdown,\n isHeading,\n textFromNode,\n} from '@scalar/code-highlight'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useTemplateRef } from 'vue'\n\nimport type { ScalarMarkdownProps } from './types'\n\nconst {\n value,\n transform,\n transformType,\n withImages = false,\n withAnchors = false,\n anchorPrefix,\n} = defineProps<ScalarMarkdownProps>()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n\n// Expose the element ref to the parent component\nconst templateRef = useTemplateRef('div')\ndefineExpose({ el: templateRef })\n\nconst transformHeading = (node: Node) => {\n if (!withAnchors) {\n return transform?.(node) || node\n }\n\n if (!isHeading(node)) {\n return node\n }\n\n const headingText = textFromNode(node)\n\n /** Basic slugify for the heading text */\n const slug = headingText.toLowerCase().replace(/\\s+/g, '-')\n\n /** Return adding anchor prefix if present or just the slug */\n const id = anchorPrefix ? `${anchorPrefix}/description/${slug}` : slug\n\n // Add the id to the heading\n node.data = {\n hProperties: {\n id,\n },\n }\n\n if (transform) {\n return transform(node)\n }\n\n return node\n}\n\nconst html = computed(() => {\n return htmlFromMarkdown(value ?? '', {\n removeTags: withImages ? [] : ['img', 'picture'],\n transform:\n withAnchors && transformType === 'heading' ? transformHeading : transform,\n transformType,\n })\n})\n</script>\n<template>\n <div\n ref=\"div\"\n v-bind=\"cx('markdown', { 'line-clamp-(--markdown-clamp)': !!clamp })\"\n :style=\"{ '--markdown-clamp': clamp }\"\n v-html=\"html\" />\n</template>\n<style>\n@import '@scalar/code-highlight/css/code.css';\n\n.scalar-app {\n /* Base container and variables */\n .markdown {\n --scalar-refs-heading-spacing: 24px;\n --markdown-border: var(--scalar-border-width) solid\n var(--scalar-border-color);\n --markdown-spacing-sm: 12px;\n --markdown-spacing-md: 16px;\n --markdown-line-height: 1.625;\n --markdown-heading-line-height: 1.15;\n\n font-family: var(--scalar-font);\n word-break: break-word;\n line-height: var(--markdown-line-height);\n }\n\n .markdown > * {\n margin-bottom: var(--markdown-spacing-md);\n }\n\n /* margin gets doubled between heading + non heading elements if we don't do this*/\n .markdown > *:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):last-child {\n margin-bottom: 0;\n }\n /* Headings */\n .markdown h1,\n .markdown h2,\n .markdown h3,\n .markdown h4,\n .markdown h5,\n .markdown h6 {\n display: block;\n font-weight: var(--scalar-bold);\n margin-top: var(--scalar-refs-heading-spacing);\n margin-bottom: var(--markdown-spacing-sm);\n line-height: var(--markdown-heading-line-height, 1.15);\n scroll-margin-top: 1rem;\n }\n .markdown h1 {\n font-size: 1.5rem;\n }\n .markdown h2,\n .markdown h3 {\n font-size: 1.25rem;\n }\n .markdown h4,\n .markdown h5,\n .markdown h6 {\n font-size: 1rem;\n }\n\n /* Text formatting and paragraphs */\n .markdown b,\n .markdown strong {\n font-weight: var(--scalar-bold);\n }\n\n .markdown p {\n color: inherit;\n display: block;\n line-height: var(--markdown-line-height);\n }\n\n /* Images */\n .markdown img {\n /**\n * With `display: block` <a><img></a> will take the whole width.\n *\n * @see https://github.com/scalar/scalar/issues/3961\n */\n display: inline-block;\n overflow: hidden;\n border-radius: var(--scalar-radius);\n max-width: 100%;\n }\n\n /* Lists */\n .markdown ul,\n .markdown ol {\n display: flex;\n flex-direction: column;\n padding-left: 1.6em;\n gap: 2px;\n line-height: var(--markdown-line-height);\n }\n\n .markdown li {\n margin-top: 2px;\n padding-left: 7px;\n }\n\n ol > li::marker,\n ol > * > li::marker {\n font: var(--scalar-font);\n font-variant-numeric: tabular-nums;\n font-weight: var(--scalar-semibold);\n white-space: nowrap;\n }\n\n /* Level 1, 4, 7 → decimal */\n .markdown ol {\n list-style-type: decimal;\n }\n /* Level 2, 5, 8 → lower-alpha */\n .markdown ol ol {\n list-style-type: lower-alpha;\n }\n\n .markdown ol ol ol ol,\n .markdown ol ol ol ol ol ol ol {\n list-style-type: decimal;\n }\n\n .markdown ol ol ol ol ol,\n .markdown ol ol ol ol ol ol ol ol {\n list-style-type: lower-alpha;\n }\n\n /* Level 3, 6, 9 → lower-roman */\n .markdown ol ol ol {\n list-style-type: lower-roman;\n }\n\n .markdown ol ol ol ol ol ol,\n .markdown ol ol ol ol ol ol ol ol ol {\n list-style-type: lower-roman;\n }\n\n .markdown ul > li,\n .markdown ul > * > li {\n list-style-type: disc;\n }\n\n /* Tables */\n .markdown table {\n display: table;\n table-layout: fixed;\n overflow-x: auto;\n position: relative;\n width: max-content;\n max-width: 100%;\n margin: 1em 0;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius);\n border-spacing: 0;\n }\n\n .markdown tbody,\n .markdown thead {\n vertical-align: middle;\n }\n\n .markdown tbody {\n display: table-row-group;\n }\n\n .markdown thead {\n display: table-header-group;\n }\n\n .markdown tr {\n display: table-row;\n border-color: inherit;\n vertical-align: inherit;\n }\n\n .markdown td,\n .markdown th {\n display: table-cell;\n vertical-align: top;\n min-width: 1em;\n padding: 8.5px 16px;\n line-height: var(--markdown-line-height);\n position: relative;\n /** Break long words in tables */\n word-break: break-word;\n font-size: var(--scalar-small);\n color: var(--scalar-color-1);\n border-right: var(--markdown-border);\n border-bottom: var(--markdown-border);\n }\n\n .markdown td > *,\n .markdown th > * {\n margin-bottom: 0;\n }\n\n .markdown th:empty {\n display: none;\n }\n\n .markdown td:first-of-type,\n .markdown th:first-of-type {\n border-left: none;\n }\n\n .markdown td:last-of-type,\n .markdown th:last-of-type {\n border-right: none;\n }\n\n .markdown tr:last-of-type td {\n border-bottom: none;\n }\n\n .markdown th {\n font-weight: var(--scalar-bold);\n text-align: left;\n border-left-color: transparent;\n background: var(--scalar-background-2);\n }\n\n .markdown th:first-of-type {\n border-top-left-radius: var(--scalar-radius);\n }\n\n .markdown th:last-of-type {\n border-top-right-radius: var(--scalar-radius);\n }\n\n .markdown tr > [align='left'] {\n text-align: left;\n }\n\n .markdown tr > [align='right'] {\n text-align: right;\n }\n\n .markdown tr > [align='center'] {\n text-align: center;\n }\n\n /* Details */\n .markdown details {\n border: var(--markdown-border);\n border-radius: var(--scalar-radius-xl);\n color: var(--scalar-color-1);\n }\n\n .markdown details > :not(summary) {\n margin: var(--markdown-spacing-md);\n margin-bottom: 0;\n }\n\n .markdown details > p:has(> strong):not(:has(:not(strong))) {\n margin-bottom: 8px;\n }\n\n .markdown details > p:has(> strong):not(:has(:not(strong))) + * {\n margin-top: 0;\n }\n\n .markdown details > table {\n width: calc(100% - calc(var(--markdown-spacing-md) * 2));\n }\n\n .markdown summary {\n border-radius: 2.5px;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n min-height: 40px;\n padding: 7px 14px;\n position: relative;\n font-weight: var(--scalar-semibold);\n line-height: var(--markdown-line-height);\n cursor: pointer;\n user-select: none;\n }\n\n .markdown summary:hover {\n background-color: var(--scalar-background-2);\n }\n\n .markdown details[open] {\n padding-bottom: var(--markdown-spacing-md);\n }\n\n .markdown details[open] > summary {\n border-bottom: var(--markdown-border);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .markdown summary::before {\n display: block;\n content: '';\n flex-shrink: 0;\n width: var(--markdown-spacing-md);\n height: var(--markdown-spacing-md);\n background-color: var(--scalar-color-3);\n mask-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" width=\"1em\" height=\"1em\"><path d=\"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z\"></path></svg>');\n margin-top: 5px;\n }\n\n .markdown summary:hover::before {\n background-color: var(--scalar-color-1);\n }\n\n .markdown details[open] > summary::before {\n transform: rotate(90deg);\n transition: transform 0.1s ease-in-out;\n }\n\n .markdown details:has(+ details) {\n border-bottom: 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 0;\n }\n\n .markdown details:has(+ details) + details,\n .markdown details:has(+ details) + details > summary {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n /* Links */\n .markdown a {\n --font-color: var(--scalar-link-color, var(--scalar-color-accent));\n --font-visited: var(--scalar-link-color-visited, var(--scalar-color-2));\n text-decoration: var(--scalar-text-decoration);\n\n color: var(--font-color);\n font-weight: var(--scalar-link-font-weight, var(--scalar-semibold));\n text-underline-offset: 0.25rem;\n text-decoration-thickness: 1px;\n text-decoration-color: color-mix(\n in srgb,\n var(--font-color) 30%,\n transparent\n );\n }\n\n .markdown a:hover {\n text-decoration-color: var(--scalar-color-1, currentColor);\n color: var(--scalar-link-color-hover, var(--scalar-color-accent));\n -webkit-text-decoration: var(--scalar-text-decoration-hover);\n text-decoration: var(--scalar-text-decoration-hover);\n }\n\n .markdown a:visited {\n color: var(--font-visited);\n }\n\n /* Text effects and formatting */\n .markdown em {\n font-style: italic;\n }\n\n .markdown sup,\n .markdown sub {\n font-size: var(--scalar-micro);\n font-weight: 450;\n }\n\n .markdown sup {\n vertical-align: super;\n }\n\n .markdown sub {\n vertical-align: sub;\n }\n\n .markdown del {\n text-decoration: line-through;\n }\n\n /* Code blocks and inline code */\n .markdown code {\n font-family: var(--scalar-font-code);\n background-color: var(--scalar-background-2);\n box-shadow: 0 0 0 var(--scalar-border-width) var(--scalar-border-color);\n font-size: var(--scalar-micro);\n border-radius: 2px;\n padding: 0 3px;\n }\n\n .markdown .hljs {\n font-size: var(--scalar-small);\n }\n\n .markdown pre code {\n display: block;\n white-space: pre;\n padding: var(--markdown-spacing-sm);\n line-height: 1.5;\n margin: var(--markdown-spacing-sm) 0;\n -webkit-overflow-scrolling: touch;\n overflow-x: auto;\n max-width: 100%;\n min-width: 100px;\n }\n\n /* Horizontal rules */\n .markdown hr {\n border: none;\n border-bottom: var(--markdown-border);\n }\n\n /* Blockquotes */\n .markdown blockquote {\n border-left: 2px solid var(--scalar-border-color);\n padding-left: var(--markdown-spacing-sm);\n }\n\n .markdown blockquote > * {\n margin-bottom: var(--markdown-spacing-sm);\n }\n\n /* Markdown Checklist */\n .markdown li.task-list-item {\n position: relative;\n list-style: none;\n }\n\n .markdown li.task-list-item > input {\n display: inline;\n position: absolute;\n top: 0.225em;\n left: -1.4em;\n appearance: none;\n width: var(--markdown-spacing-md);\n height: var(--markdown-spacing-md);\n border: 1px solid var(--scalar-color-3);\n border-radius: var(--scalar-radius);\n }\n\n .markdown li.task-list-item > input[type='checkbox']:checked {\n background-color: var(--scalar-color-1);\n border-color: var(--scalar-color-1);\n }\n\n .markdown li.task-list-item > input[type='checkbox']::before {\n content: '';\n position: absolute;\n left: 5px;\n top: 1px;\n width: 5px;\n height: 10px;\n border: solid var(--scalar-background-1);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg);\n opacity: 0;\n }\n\n .markdown li.task-list-item > input[type='checkbox']:checked::before {\n opacity: 1;\n }\n\n /* Markdown Alert */\n .markdown .markdown-alert {\n align-items: stretch;\n border-radius: var(--scalar-radius);\n background-color: color-mix(\n in srgb,\n var(--scalar-background-2),\n transparent\n );\n border: var(--markdown-border);\n display: flex;\n gap: var(--markdown-spacing-sm);\n padding: 10px 14px;\n position: relative;\n }\n\n .markdown .markdown-alert .markdown-alert-icon::before {\n content: '';\n display: block;\n width: 18px;\n height: 18px;\n background-color: currentColor;\n flex-shrink: 0;\n margin-top: 3px;\n mask-repeat: no-repeat;\n mask-size: contain;\n mask-position: center;\n }\n\n .markdown .markdown-alert.markdown-alert-note {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-blue),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-blue), transparent 50%);\n }\n\n .markdown .markdown-alert.markdown-alert-tip {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-2),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-2), transparent 50%);\n }\n\n .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon::before,\n .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z\"></path></svg>');\n color: var(--scalar-color-blue);\n }\n\n .markdown .markdown-alert.markdown-alert-important,\n .markdown .markdown-alert.markdown-alert-warning {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-orange),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-orange), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-important\n .markdown-alert-icon::before,\n .markdown\n .markdown-alert.markdown-alert-warning\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z\"></path></svg>');\n }\n\n .markdown .markdown-alert.markdown-alert-caution {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-red),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-red), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-caution\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z\"></path></svg>');\n color: var(--scalar-color-red);\n }\n\n .markdown .markdown-alert.markdown-alert-success {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-green),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-green), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-success\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"></path></svg>');\n color: var(--scalar-color-green);\n }\n\n .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon::before {\n color: var(--scalar-color-blue);\n }\n\n .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon::before {\n color: var(--scalar-color-2);\n }\n\n .markdown\n .markdown-alert.markdown-alert-important\n .markdown-alert-icon::before {\n color: var(--scalar-color-purple);\n }\n\n .markdown\n .markdown-alert.markdown-alert-warning\n .markdown-alert-icon::before {\n color: var(--scalar-color-orange);\n }\n\n .markdown .markdown-alert .markdown-alert-content {\n margin: 0;\n line-height: var(--markdown-line-height);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n type Node,\n htmlFromMarkdown,\n isHeading,\n textFromNode,\n} from '@scalar/code-highlight'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useTemplateRef } from 'vue'\n\nimport type { ScalarMarkdownProps } from './types'\n\nconst {\n value,\n transform,\n transformType,\n withImages = false,\n withAnchors = false,\n anchorPrefix,\n} = defineProps<ScalarMarkdownProps>()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n\n// Expose the element ref to the parent component\nconst templateRef = useTemplateRef('div')\ndefineExpose({ el: templateRef })\n\nconst transformHeading = (node: Node) => {\n if (!withAnchors) {\n return transform?.(node) || node\n }\n\n if (!isHeading(node)) {\n return node\n }\n\n const headingText = textFromNode(node)\n\n /** Basic slugify for the heading text */\n const slug = headingText.toLowerCase().replace(/\\s+/g, '-')\n\n /** Return adding anchor prefix if present or just the slug */\n const id = anchorPrefix ? `${anchorPrefix}/description/${slug}` : slug\n\n // Add the id to the heading\n node.data = {\n hProperties: {\n id,\n },\n }\n\n if (transform) {\n return transform(node)\n }\n\n return node\n}\n\nconst html = computed(() => {\n return htmlFromMarkdown(value ?? '', {\n removeTags: withImages ? [] : ['img', 'picture'],\n transform:\n withAnchors && transformType === 'heading' ? transformHeading : transform,\n transformType,\n })\n})\n</script>\n<template>\n <div\n ref=\"div\"\n v-bind=\"cx('markdown', { 'line-clamp-(--markdown-clamp)': !!clamp })\"\n :style=\"{ '--markdown-clamp': clamp }\"\n v-html=\"html\" />\n</template>\n<style>\n@import '@scalar/code-highlight/css/code.css';\n\n.scalar-app {\n /* Base container and variables */\n .markdown {\n --scalar-refs-heading-spacing: 24px;\n --markdown-border: var(--scalar-border-width) solid\n var(--scalar-border-color);\n --markdown-spacing-sm: 12px;\n --markdown-spacing-md: 16px;\n --markdown-line-height: 1.625;\n --markdown-heading-line-height: 1.15;\n\n font-family: var(--scalar-font);\n word-break: break-word;\n line-height: var(--markdown-line-height);\n }\n\n .markdown > * {\n margin-bottom: var(--markdown-spacing-md);\n }\n\n /* margin gets doubled between heading + non heading elements if we don't do this*/\n .markdown > *:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):last-child {\n margin-bottom: 0;\n }\n /* Headings */\n .markdown h1,\n .markdown h2,\n .markdown h3,\n .markdown h4,\n .markdown h5,\n .markdown h6 {\n display: block;\n font-weight: var(--scalar-bold);\n margin-top: var(--scalar-refs-heading-spacing);\n margin-bottom: var(--markdown-spacing-sm);\n line-height: var(--markdown-heading-line-height, 1.15);\n scroll-margin-top: 1rem;\n }\n .markdown h1 {\n font-size: 1.5rem;\n }\n .markdown h2,\n .markdown h3 {\n font-size: 1.25rem;\n }\n .markdown h4,\n .markdown h5,\n .markdown h6 {\n font-size: 1rem;\n }\n\n /* Text formatting and paragraphs */\n .markdown b,\n .markdown strong {\n font-weight: var(--scalar-bold);\n }\n\n .markdown p {\n color: inherit;\n display: block;\n line-height: var(--markdown-line-height);\n }\n\n /* Images */\n .markdown img {\n /**\n * With `display: block` <a><img></a> will take the whole width.\n *\n * @see https://github.com/scalar/scalar/issues/3961\n */\n display: inline-block;\n overflow: hidden;\n border-radius: var(--scalar-radius);\n max-width: 100%;\n }\n\n /* Lists */\n .markdown ul,\n .markdown ol {\n display: flex;\n flex-direction: column;\n padding-left: 1.6em;\n gap: 2px;\n line-height: var(--markdown-line-height);\n }\n\n .markdown li {\n margin-top: 2px;\n padding-left: 7px;\n }\n\n ol > li::marker,\n ol > * > li::marker {\n font: var(--scalar-font);\n font-variant-numeric: tabular-nums;\n font-weight: var(--scalar-semibold);\n white-space: nowrap;\n }\n\n /* Level 1, 4, 7 → decimal */\n .markdown ol {\n list-style-type: decimal;\n }\n /* Level 2, 5, 8 → lower-alpha */\n .markdown ol ol {\n list-style-type: lower-alpha;\n }\n\n .markdown ol ol ol ol,\n .markdown ol ol ol ol ol ol ol {\n list-style-type: decimal;\n }\n\n .markdown ol ol ol ol ol,\n .markdown ol ol ol ol ol ol ol ol {\n list-style-type: lower-alpha;\n }\n\n /* Level 3, 6, 9 → lower-roman */\n .markdown ol ol ol {\n list-style-type: lower-roman;\n }\n\n .markdown ol ol ol ol ol ol,\n .markdown ol ol ol ol ol ol ol ol ol {\n list-style-type: lower-roman;\n }\n\n .markdown ul > li,\n .markdown ul > * > li {\n list-style-type: disc;\n }\n\n /* Tables */\n .markdown table {\n display: table;\n table-layout: fixed;\n overflow-x: auto;\n position: relative;\n width: max-content;\n max-width: 100%;\n margin: 1em 0;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius);\n border-spacing: 0;\n }\n\n .markdown tbody,\n .markdown thead {\n vertical-align: middle;\n }\n\n .markdown tbody {\n display: table-row-group;\n }\n\n .markdown thead {\n display: table-header-group;\n }\n\n .markdown tr {\n display: table-row;\n border-color: inherit;\n vertical-align: inherit;\n }\n\n .markdown td,\n .markdown th {\n display: table-cell;\n vertical-align: top;\n min-width: 1em;\n padding: 8.5px 16px;\n line-height: var(--markdown-line-height);\n position: relative;\n /** Break long words in tables */\n word-break: break-word;\n font-size: var(--scalar-small);\n color: var(--scalar-color-1);\n border-right: var(--markdown-border);\n border-bottom: var(--markdown-border);\n }\n\n .markdown td > *,\n .markdown th > * {\n margin-bottom: 0;\n }\n\n .markdown th:empty {\n display: none;\n }\n\n .markdown td:first-of-type,\n .markdown th:first-of-type {\n border-left: none;\n }\n\n .markdown td:last-of-type,\n .markdown th:last-of-type {\n border-right: none;\n }\n\n .markdown tr:last-of-type td {\n border-bottom: none;\n }\n\n .markdown th {\n font-weight: var(--scalar-bold);\n text-align: left;\n border-left-color: transparent;\n background: var(--scalar-background-2);\n }\n\n .markdown th:first-of-type {\n border-top-left-radius: var(--scalar-radius);\n }\n\n .markdown th:last-of-type {\n border-top-right-radius: var(--scalar-radius);\n }\n\n .markdown tr > [align='left'] {\n text-align: left;\n }\n\n .markdown tr > [align='right'] {\n text-align: right;\n }\n\n .markdown tr > [align='center'] {\n text-align: center;\n }\n\n /* Details */\n .markdown details {\n border: var(--markdown-border);\n border-radius: var(--scalar-radius-xl);\n color: var(--scalar-color-1);\n }\n\n .markdown details > :not(summary) {\n margin: var(--markdown-spacing-md);\n margin-bottom: 0;\n }\n\n .markdown details > p:has(> strong):not(:has(:not(strong))) {\n margin-bottom: 8px;\n }\n\n .markdown details > p:has(> strong):not(:has(:not(strong))) + * {\n margin-top: 0;\n }\n\n .markdown details > table {\n width: calc(100% - calc(var(--markdown-spacing-md) * 2));\n }\n\n .markdown summary {\n border-radius: 2.5px;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n min-height: 40px;\n padding: 7px 14px;\n position: relative;\n font-weight: var(--scalar-semibold);\n line-height: var(--markdown-line-height);\n cursor: pointer;\n user-select: none;\n }\n\n .markdown summary:hover {\n background-color: var(--scalar-background-2);\n }\n\n .markdown details[open] {\n padding-bottom: var(--markdown-spacing-md);\n }\n\n .markdown details[open] > summary {\n border-bottom: var(--markdown-border);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .markdown summary::before {\n display: block;\n content: '';\n flex-shrink: 0;\n width: var(--markdown-spacing-md);\n height: var(--markdown-spacing-md);\n background-color: var(--scalar-color-3);\n mask-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" width=\"1em\" height=\"1em\"><path d=\"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z\"></path></svg>');\n margin-top: 5px;\n }\n\n .markdown summary:hover::before {\n background-color: var(--scalar-color-1);\n }\n\n .markdown details[open] > summary::before {\n transform: rotate(90deg);\n transition: transform 0.1s ease-in-out;\n }\n\n .markdown details:has(+ details) {\n border-bottom: 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 0;\n }\n\n .markdown details:has(+ details) + details,\n .markdown details:has(+ details) + details > summary {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n /* Links */\n .markdown a {\n --font-color: var(--scalar-link-color, var(--scalar-color-accent));\n --font-visited: var(--scalar-link-color-visited, var(--scalar-color-2));\n text-decoration: var(--scalar-text-decoration);\n\n color: var(--font-color);\n font-weight: var(--scalar-link-font-weight, var(--scalar-semibold));\n text-underline-offset: 0.25rem;\n text-decoration-thickness: 1px;\n text-decoration-color: color-mix(\n in srgb,\n var(--font-color) 30%,\n transparent\n );\n }\n\n .markdown a:hover {\n text-decoration-color: var(--scalar-color-1, currentColor);\n color: var(--scalar-link-color-hover, var(--scalar-color-accent));\n -webkit-text-decoration: var(--scalar-text-decoration-hover);\n text-decoration: var(--scalar-text-decoration-hover);\n }\n\n .markdown a:visited {\n color: var(--font-visited);\n }\n\n /* Text effects and formatting */\n .markdown em {\n font-style: italic;\n }\n\n .markdown sup,\n .markdown sub {\n font-size: var(--scalar-micro);\n font-weight: 450;\n }\n\n .markdown sup {\n vertical-align: super;\n }\n\n .markdown sub {\n vertical-align: sub;\n }\n\n .markdown del {\n text-decoration: line-through;\n }\n\n /* Code blocks and inline code */\n .markdown code {\n font-family: var(--scalar-font-code);\n background-color: var(--scalar-background-2);\n box-shadow: 0 0 0 var(--scalar-border-width) var(--scalar-border-color);\n font-size: var(--scalar-micro);\n border-radius: 2px;\n padding: 0 3px;\n }\n\n .markdown .hljs {\n font-size: var(--scalar-small);\n }\n\n .markdown pre code {\n display: block;\n white-space: pre;\n padding: var(--markdown-spacing-sm);\n line-height: 1.5;\n margin: var(--markdown-spacing-sm) 0;\n -webkit-overflow-scrolling: touch;\n overflow-x: auto;\n max-width: 100%;\n min-width: 100px;\n }\n\n /* Horizontal rules */\n .markdown hr {\n border: none;\n border-bottom: var(--markdown-border);\n }\n\n /* Blockquotes */\n .markdown blockquote {\n border-left: 2px solid var(--scalar-border-color);\n padding-left: var(--markdown-spacing-sm);\n }\n\n .markdown blockquote > * {\n margin-bottom: var(--markdown-spacing-sm);\n }\n\n /* Markdown Checklist */\n .markdown li.task-list-item {\n position: relative;\n list-style: none;\n }\n\n .markdown li.task-list-item > input {\n display: inline;\n position: absolute;\n top: 0.225em;\n left: -1.4em;\n appearance: none;\n width: var(--markdown-spacing-md);\n height: var(--markdown-spacing-md);\n border: 1px solid var(--scalar-color-3);\n border-radius: var(--scalar-radius);\n }\n\n .markdown li.task-list-item > input[type='checkbox']:checked {\n background-color: var(--scalar-color-1);\n border-color: var(--scalar-color-1);\n }\n\n .markdown li.task-list-item > input[type='checkbox']::before {\n content: '';\n position: absolute;\n left: 5px;\n top: 1px;\n width: 5px;\n height: 10px;\n border: solid var(--scalar-background-1);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg);\n opacity: 0;\n }\n\n .markdown li.task-list-item > input[type='checkbox']:checked::before {\n opacity: 1;\n }\n\n /* Markdown Alert */\n .markdown .markdown-alert {\n align-items: stretch;\n border-radius: var(--scalar-radius);\n background-color: color-mix(\n in srgb,\n var(--scalar-background-2),\n transparent\n );\n border: var(--markdown-border);\n display: flex;\n gap: var(--markdown-spacing-sm);\n padding: 10px 14px;\n position: relative;\n }\n\n .markdown .markdown-alert .markdown-alert-icon::before {\n content: '';\n display: block;\n width: 18px;\n height: 18px;\n background-color: currentColor;\n flex-shrink: 0;\n margin-top: 3px;\n mask-repeat: no-repeat;\n mask-size: contain;\n mask-position: center;\n }\n\n .markdown .markdown-alert.markdown-alert-note {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-blue),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-blue), transparent 50%);\n }\n\n .markdown .markdown-alert.markdown-alert-tip {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-2),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-2), transparent 50%);\n }\n\n .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon::before,\n .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z\"></path></svg>');\n color: var(--scalar-color-blue);\n }\n\n .markdown .markdown-alert.markdown-alert-important,\n .markdown .markdown-alert.markdown-alert-warning {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-orange),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-orange), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-important\n .markdown-alert-icon::before,\n .markdown\n .markdown-alert.markdown-alert-warning\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z\"></path></svg>');\n }\n\n .markdown .markdown-alert.markdown-alert-caution {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-red),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-red), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-caution\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z\"></path></svg>');\n color: var(--scalar-color-red);\n }\n\n .markdown .markdown-alert.markdown-alert-success {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-green),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-green), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-success\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"></path></svg>');\n color: var(--scalar-color-green);\n }\n\n .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon::before {\n color: var(--scalar-color-blue);\n }\n\n .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon::before {\n color: var(--scalar-color-2);\n }\n\n .markdown\n .markdown-alert.markdown-alert-important\n .markdown-alert-icon::before {\n color: var(--scalar-color-purple);\n }\n\n .markdown\n .markdown-alert.markdown-alert-warning\n .markdown-alert-icon::before {\n color: var(--scalar-color-orange);\n }\n\n .markdown .markdown-alert .markdown-alert-content {\n margin: 0;\n line-height: var(--markdown-line-height);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useResizeObserver } from '@vueuse/core'\nimport { onMounted, ref, useId, useTemplateRef } from 'vue'\n\nimport ScalarMarkdown from './ScalarMarkdown.vue'\nimport type { ScalarMarkdownSummaryProps } from './types'\n\nconst { clamp = 1, ...props } = defineProps<ScalarMarkdownSummaryProps>()\n\nconst id = useId()\n\n/** * Whether the summary is open. */\nconst open = defineModel<boolean>({ default: false })\n\nconst markdown = useTemplateRef('scalar-markdown')\n\n/** Whether the markdown is being truncated */\nconst isTruncated = ref(false)\n\nuseResizeObserver(() => markdown.value?.el, checkTruncation)\n\n/** Check if the markdown is being truncated */\nfunction checkTruncation() {\n const el = markdown.value?.el\n if (!el) {\n return\n }\n isTruncated.value =\n el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth\n}\n\nonMounted(checkTruncation)\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'group/summary flex gap-0.5',\n open ? 'flex-col' : 'flex-row items-baseline',\n )\n \">\n <ScalarMarkdown\n v-bind=\"props\"\n :id=\"id\"\n ref=\"scalar-markdown\"\n :clamp=\"open ? undefined : clamp\"\n :class=\"{ 'markdown-summary truncate': !open }\" />\n <button\n v-if=\"!controlled && (isTruncated || open)\"\n :aria-controls=\"id\"\n :aria-expanded=\"open\"\n class=\"whitespace-nowrap font-medium hover:underline\"\n :class=\"{ 'self-end': open }\"\n type=\"button\"\n @click=\"open = !open\">\n <slot\n name=\"button\"\n :open=\"open\">\n {{ open ? ' Show Less' : 'More' }}\n </slot>\n </button>\n </div>\n</template>\n<style>\n.scalar-app {\n /*\n Summarized markdown styles\n Doubled up to bump specificity\n */\n .markdown.markdown-summary.markdown-summary {\n /* Hide the before and after pseudo-elements for all elements */\n *:before,\n *:after {\n content: none;\n }\n\n *:not(strong, em, a) {\n /* Disable formatting for non-inline elements */\n display: contents;\n font-size: inherit;\n font-weight: inherit;\n line-height: var(--markdown-line-height);\n }\n\n /* Hide elements that don't make sense in the summary */\n img,\n svg,\n hr,\n pre {\n display: none;\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useResizeObserver } from '@vueuse/core'\nimport { onMounted, ref, useId, useTemplateRef } from 'vue'\n\nimport ScalarMarkdown from './ScalarMarkdown.vue'\nimport type { ScalarMarkdownSummaryProps } from './types'\n\nconst { clamp = 1, ...props } = defineProps<ScalarMarkdownSummaryProps>()\n\nconst id = useId()\n\n/** * Whether the summary is open. */\nconst open = defineModel<boolean>({ default: false })\n\nconst markdown = useTemplateRef('scalar-markdown')\n\n/** Whether the markdown is being truncated */\nconst isTruncated = ref(false)\n\nuseResizeObserver(() => markdown.value?.el, checkTruncation)\n\n/** Check if the markdown is being truncated */\nfunction checkTruncation() {\n const el = markdown.value?.el\n if (!el) {\n return\n }\n isTruncated.value =\n el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth\n}\n\nonMounted(checkTruncation)\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'group/summary flex gap-0.5',\n open ? 'flex-col' : 'flex-row items-baseline',\n )\n \">\n <ScalarMarkdown\n v-bind=\"props\"\n :id=\"id\"\n ref=\"scalar-markdown\"\n :clamp=\"open ? undefined : clamp\"\n :class=\"{ 'markdown-summary truncate': !open }\" />\n <button\n v-if=\"!controlled && (isTruncated || open)\"\n :aria-controls=\"id\"\n :aria-expanded=\"open\"\n class=\"whitespace-nowrap font-medium hover:underline\"\n :class=\"{ 'self-end': open }\"\n type=\"button\"\n @click=\"open = !open\">\n <slot\n name=\"button\"\n :open=\"open\">\n {{ open ? ' Show Less' : 'More' }}\n </slot>\n </button>\n </div>\n</template>\n<style>\n.scalar-app {\n /*\n Summarized markdown styles\n Doubled up to bump specificity\n */\n .markdown.markdown-summary.markdown-summary {\n /* Hide the before and after pseudo-elements for all elements */\n *:before,\n *:after {\n content: none;\n }\n\n *:not(strong, em, a) {\n /* Disable formatting for non-inline elements */\n display: contents;\n font-size: inherit;\n font-weight: inherit;\n line-height: var(--markdown-line-height);\n }\n\n /* Hide elements that don't make sense in the summary */\n img,\n svg,\n hr,\n pre {\n display: none;\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ScalarIconCaretDown } from '@scalar/icons'\n\nimport { ScalarHeaderButton } from '../ScalarHeader'\nimport { ScalarIcon } from '../ScalarIcon'\nimport type { ScalarMenuButtonProps, ScalarMenuButtonSlots } from './types'\n\ndefineProps<ScalarMenuButtonProps>()\n\ndefineSlots<ScalarMenuButtonSlots>()\n</script>\n<template>\n <ScalarHeaderButton class=\"gap-0.75 px-2\">\n <div class=\"h-5 w-auto\">\n <slot name=\"logo\">\n <ScalarIcon icon=\"Logo\" />\n </slot>\n </div>\n <span class=\"sr-only\">\n <slot name=\"label\">{{ open ? 'Close Menu' : 'Open Menu' }}</slot>\n </span>\n <ScalarIconCaretDown\n class=\"shrink-0 text-c-3 group-hover/button:text-c-1 size-3.5\"\n :class=\"open ? 'rotate-180' : ''\"\n weight=\"bold\" />\n </ScalarHeaderButton>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconCaretDown } from '@scalar/icons'\n\nimport { ScalarHeaderButton } from '../ScalarHeader'\nimport { ScalarIcon } from '../ScalarIcon'\nimport type { ScalarMenuButtonProps, ScalarMenuButtonSlots } from './types'\n\ndefineProps<ScalarMenuButtonProps>()\n\ndefineSlots<ScalarMenuButtonSlots>()\n</script>\n<template>\n <ScalarHeaderButton class=\"gap-0.75 px-2\">\n <div class=\"h-5 w-auto\">\n <slot name=\"logo\">\n <ScalarIcon icon=\"Logo\" />\n </slot>\n </div>\n <span class=\"sr-only\">\n <slot name=\"label\">{{ open ? 'Close Menu' : 'Open Menu' }}</slot>\n </span>\n <ScalarIconCaretDown\n class=\"shrink-0 text-c-3 group-hover/button:text-c-1 size-3.5\"\n :class=\"open ? 'rotate-180' : ''\"\n weight=\"bold\" />\n </ScalarHeaderButton>\n</template>\n","<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport type { Icon } from '../../'\nimport { ScalarMenuLink } from './'\n\nconst { is = 'a' } = defineProps<{\n is?: string | Component\n selected?: boolean\n icon: Icon | ScalarIconComponent\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst variants = cva({\n base: 'gap-1.5',\n variants: {\n selected: {\n true: 'pointer-events-none bg-b-2 dark:bg-b-3',\n false: 'cursor-pointer hover:bg-b-2 dark:hover:bg-b-3',\n },\n },\n})\n</script>\n<template>\n <ScalarMenuLink\n :is=\"is\"\n :icon=\"icon\"\n strong\n target=\"_blank\"\n v-bind=\"cx(variants({ selected }))\">\n <slot />\n </ScalarMenuLink>\n</template>\n","<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport type { Icon } from '../../'\nimport { ScalarMenuLink } from './'\n\nconst { is = 'a' } = defineProps<{\n is?: string | Component\n selected?: boolean\n icon: Icon | ScalarIconComponent\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst variants = cva({\n base: 'gap-1.5',\n variants: {\n selected: {\n true: 'pointer-events-none bg-b-2 dark:bg-b-3',\n false: 'cursor-pointer hover:bg-b-2 dark:hover:bg-b-3',\n },\n },\n})\n</script>\n<template>\n <ScalarMenuLink\n :is=\"is\"\n :icon=\"icon\"\n strong\n target=\"_blank\"\n v-bind=\"cx(variants({ selected }))\">\n <slot />\n </ScalarMenuLink>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarIconArrowUpRight,\n ScalarIconBook,\n ScalarIconHouse,\n ScalarIconNotepad,\n} from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarMenuProduct from './ScalarMenuProduct.vue'\n\ntype Product = 'dashboard' | 'docs' | 'editor' | 'client'\n\ndefineProps<{\n selected?: Product\n showDocs?: boolean\n hrefs?: Record<Product, string>\n}>()\n\ndefineEmits<{\n (e: 'open', event: Event, product: Product): void\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex flex-col')\">\n <ScalarMenuProduct\n :href=\"hrefs?.dashboard ?? 'https://dashboard.scalar.com'\"\n :icon=\"ScalarIconHouse\"\n :selected=\"selected === 'dashboard'\"\n @click=\"$emit('open', $event, 'dashboard')\">\n Dashboard\n </ScalarMenuProduct>\n <ScalarMenuProduct\n v-if=\"showDocs || selected === 'docs'\"\n :href=\"hrefs?.docs ?? 'https://docs.scalar.com'\"\n :icon=\"ScalarIconBook\"\n :selected=\"selected === 'docs'\"\n @click=\"$emit('open', $event, 'docs')\">\n Docs\n </ScalarMenuProduct>\n <ScalarMenuProduct\n :href=\"hrefs?.editor ?? 'https://editor.scalar.com'\"\n :icon=\"ScalarIconNotepad\"\n :selected=\"selected === 'editor'\"\n @click=\"$emit('open', $event, 'editor')\">\n Editor\n </ScalarMenuProduct>\n <ScalarMenuProduct\n :href=\"hrefs?.client ?? 'https://client.scalar.com'\"\n :icon=\"ScalarIconArrowUpRight\"\n :selected=\"selected === 'client'\"\n @click=\"$emit('open', $event, 'client')\">\n Client\n </ScalarMenuProduct>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarIconArrowUpRight,\n ScalarIconBook,\n ScalarIconHouse,\n ScalarIconNotepad,\n} from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarMenuProduct from './ScalarMenuProduct.vue'\n\ntype Product = 'dashboard' | 'docs' | 'editor' | 'client'\n\ndefineProps<{\n selected?: Product\n showDocs?: boolean\n hrefs?: Record<Product, string>\n}>()\n\ndefineEmits<{\n (e: 'open', event: Event, product: Product): void\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex flex-col')\">\n <ScalarMenuProduct\n :href=\"hrefs?.dashboard ?? 'https://dashboard.scalar.com'\"\n :icon=\"ScalarIconHouse\"\n :selected=\"selected === 'dashboard'\"\n @click=\"$emit('open', $event, 'dashboard')\">\n Dashboard\n </ScalarMenuProduct>\n <ScalarMenuProduct\n v-if=\"showDocs || selected === 'docs'\"\n :href=\"hrefs?.docs ?? 'https://docs.scalar.com'\"\n :icon=\"ScalarIconBook\"\n :selected=\"selected === 'docs'\"\n @click=\"$emit('open', $event, 'docs')\">\n Docs\n </ScalarMenuProduct>\n <ScalarMenuProduct\n :href=\"hrefs?.editor ?? 'https://editor.scalar.com'\"\n :icon=\"ScalarIconNotepad\"\n :selected=\"selected === 'editor'\"\n @click=\"$emit('open', $event, 'editor')\">\n Editor\n </ScalarMenuProduct>\n <ScalarMenuProduct\n :href=\"hrefs?.client ?? 'https://client.scalar.com'\"\n :icon=\"ScalarIconArrowUpRight\"\n :selected=\"selected === 'client'\"\n @click=\"$emit('open', $event, 'client')\">\n Client\n </ScalarMenuProduct>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { DropdownMenu } from 'radix-vue/namespaced'\nimport type { Component } from 'vue'\n\nimport { ScalarDropdownButton } from '../ScalarDropdown'\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\nconst { is = DropdownMenu.Item } = defineProps<{\n is?: string | Component\n icon?: Icon | ScalarIconComponent\n strong?: boolean\n}>()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <ScalarDropdownButton\n v-bind=\"cx('flex items-center')\"\n :is=\"is\"\n as=\"a\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n :class=\"[\n strong ? 'text-c-1' : 'text-c-2',\n typeof icon === 'string' ? 'size-3' : 'size-3.5 -mx-0.25',\n ]\"\n :icon=\"icon\"\n :thickness=\"strong ? '2.5' : '2'\"\n :weight=\"strong ? 'bold' : 'regular'\" />\n <div\n v-else\n class=\"size-3\" />\n <div\n class=\"flex items-center flex-1 min-w-0 truncate\"\n :class=\"strong ? 'font-medium' : 'font-normal'\">\n <slot />\n </div>\n </ScalarDropdownButton>\n</template>\n","<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { DropdownMenu } from 'radix-vue/namespaced'\nimport type { Component } from 'vue'\n\nimport { ScalarDropdownButton } from '../ScalarDropdown'\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\nconst { is = DropdownMenu.Item } = defineProps<{\n is?: string | Component\n icon?: Icon | ScalarIconComponent\n strong?: boolean\n}>()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <ScalarDropdownButton\n v-bind=\"cx('flex items-center')\"\n :is=\"is\"\n as=\"a\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n :class=\"[\n strong ? 'text-c-1' : 'text-c-2',\n typeof icon === 'string' ? 'size-3' : 'size-3.5 -mx-0.25',\n ]\"\n :icon=\"icon\"\n :thickness=\"strong ? '2.5' : '2'\"\n :weight=\"strong ? 'bold' : 'regular'\" />\n <div\n v-else\n class=\"size-3\" />\n <div\n class=\"flex items-center flex-1 min-w-0 truncate\"\n :class=\"strong ? 'font-medium' : 'font-normal'\">\n <slot />\n </div>\n </ScalarDropdownButton>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarDropdownDivider } from '../ScalarDropdown'\n\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <ScalarDropdownDivider />\n <slot />\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarDropdownDivider } from '../ScalarDropdown'\n\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <ScalarDropdownDivider />\n <slot />\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarIconBookOpenText,\n ScalarIconEnvelopeSimple,\n ScalarIconFileText,\n} from '@scalar/icons'\n\nimport ScalarMenuLink from './ScalarMenuLink.vue'\nimport ScalarMenuSection from './ScalarMenuSection.vue'\n</script>\n<template>\n <ScalarMenuSection>\n <template #title>Resources</template>\n <ScalarMenuLink\n href=\"mailto:support@scalar.com\"\n :icon=\"ScalarIconEnvelopeSimple\"\n target=\"_blank\">\n Sales & Support\n </ScalarMenuLink>\n <ScalarMenuLink\n href=\"https://scalar.com/terms-and-conditions\"\n :icon=\"ScalarIconFileText\"\n target=\"_blank\">\n Terms & Conditions\n </ScalarMenuLink>\n <ScalarMenuLink\n href=\"https://scalar.com/privacy-policy\"\n :icon=\"ScalarIconBookOpenText\"\n target=\"_blank\">\n Privacy Policy\n </ScalarMenuLink>\n </ScalarMenuSection>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarIconBookOpenText,\n ScalarIconEnvelopeSimple,\n ScalarIconFileText,\n} from '@scalar/icons'\n\nimport ScalarMenuLink from './ScalarMenuLink.vue'\nimport ScalarMenuSection from './ScalarMenuSection.vue'\n</script>\n<template>\n <ScalarMenuSection>\n <template #title>Resources</template>\n <ScalarMenuLink\n href=\"mailto:support@scalar.com\"\n :icon=\"ScalarIconEnvelopeSimple\"\n target=\"_blank\">\n Sales & Support\n </ScalarMenuLink>\n <ScalarMenuLink\n href=\"https://scalar.com/terms-and-conditions\"\n :icon=\"ScalarIconFileText\"\n target=\"_blank\">\n Terms & Conditions\n </ScalarMenuLink>\n <ScalarMenuLink\n href=\"https://scalar.com/privacy-policy\"\n :icon=\"ScalarIconBookOpenText\"\n target=\"_blank\">\n Privacy Policy\n </ScalarMenuLink>\n </ScalarMenuSection>\n</template>\n","<script setup lang=\"ts\">\nimport { DropdownMenu } from 'radix-vue/namespaced'\nimport { ref } from 'vue'\n\nimport { ScalarDropdownMenu } from '../ScalarDropdown'\nimport ScalarMenuButton from './ScalarMenuButton.vue'\nimport ScalarMenuProducts from './ScalarMenuProducts.vue'\nimport ScalarMenuResources from './ScalarMenuResources.vue'\nimport type {\n ScalarMenuButtonProps,\n ScalarMenuButtonSlots,\n ScalarMenuSlotProps,\n} from './types'\n\ndefineSlots<\n {\n /** Overrides the entire menu button */\n button?(p: ScalarMenuButtonProps): unknown\n /** Overrides the products list */\n products?(p: ScalarMenuSlotProps): unknown\n /** Adds items the profile section (e.g. a team picker) */\n profile?(p: ScalarMenuSlotProps): unknown\n /** Overrides the resources section */\n sections?(p: ScalarMenuSlotProps): unknown\n } & ScalarMenuButtonSlots\n>()\n\ndefineOptions({ inheritAttrs: false })\n\n/** Whether the menu is open */\nconst open = ref(false)\n\n/** Close the menu */\nfunction close() {\n open.value = false\n}\n</script>\n<template>\n <DropdownMenu.Root v-model:open=\"open\">\n <DropdownMenu.Trigger asChild>\n <!-- Logo Button to open the popover -->\n <slot\n name=\"button\"\n :open=\"open\">\n <ScalarMenuButton\n class=\"min-w-0\"\n :open=\"open\">\n <template\n v-if=\"$slots.logo\"\n #logo>\n <slot name=\"logo\" />\n </template>\n <template\n v-if=\"$slots.label\"\n #label>\n <slot name=\"label\" />\n </template>\n </ScalarMenuButton>\n </slot>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content\n align=\"start\"\n :as=\"ScalarDropdownMenu\"\n class=\"max-h-radix-popper z-context\"\n :sideOffset=\"5\"\n v-bind=\"$attrs\">\n <!-- Menu content -->\n <!-- Base Product List (can be overridden by slot) -->\n <slot\n :close=\"close\"\n name=\"products\">\n <ScalarMenuProducts />\n </slot>\n <slot\n :close=\"close\"\n name=\"profile\" />\n <slot\n :close=\"close\"\n name=\"sections\">\n <ScalarMenuResources />\n </slot>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n</template>\n","<script setup lang=\"ts\">\nimport { DropdownMenu } from 'radix-vue/namespaced'\nimport { ref } from 'vue'\n\nimport { ScalarDropdownMenu } from '../ScalarDropdown'\nimport ScalarMenuButton from './ScalarMenuButton.vue'\nimport ScalarMenuProducts from './ScalarMenuProducts.vue'\nimport ScalarMenuResources from './ScalarMenuResources.vue'\nimport type {\n ScalarMenuButtonProps,\n ScalarMenuButtonSlots,\n ScalarMenuSlotProps,\n} from './types'\n\ndefineSlots<\n {\n /** Overrides the entire menu button */\n button?(p: ScalarMenuButtonProps): unknown\n /** Overrides the products list */\n products?(p: ScalarMenuSlotProps): unknown\n /** Adds items the profile section (e.g. a team picker) */\n profile?(p: ScalarMenuSlotProps): unknown\n /** Overrides the resources section */\n sections?(p: ScalarMenuSlotProps): unknown\n } & ScalarMenuButtonSlots\n>()\n\ndefineOptions({ inheritAttrs: false })\n\n/** Whether the menu is open */\nconst open = ref(false)\n\n/** Close the menu */\nfunction close() {\n open.value = false\n}\n</script>\n<template>\n <DropdownMenu.Root v-model:open=\"open\">\n <DropdownMenu.Trigger asChild>\n <!-- Logo Button to open the popover -->\n <slot\n name=\"button\"\n :open=\"open\">\n <ScalarMenuButton\n class=\"min-w-0\"\n :open=\"open\">\n <template\n v-if=\"$slots.logo\"\n #logo>\n <slot name=\"logo\" />\n </template>\n <template\n v-if=\"$slots.label\"\n #label>\n <slot name=\"label\" />\n </template>\n </ScalarMenuButton>\n </slot>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content\n align=\"start\"\n :as=\"ScalarDropdownMenu\"\n class=\"max-h-radix-popper z-context\"\n :sideOffset=\"5\"\n v-bind=\"$attrs\">\n <!-- Menu content -->\n <!-- Base Product List (can be overridden by slot) -->\n <slot\n :close=\"close\"\n name=\"products\">\n <ScalarMenuProducts />\n </slot>\n <slot\n :close=\"close\"\n name=\"profile\" />\n <slot\n :close=\"close\"\n name=\"sections\">\n <ScalarMenuResources />\n </slot>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconDiscordLogo, ScalarIconGithubLogo } from '@scalar/icons'\n\nimport ScalarMenuLink from './ScalarMenuLink.vue'\nimport ScalarMenuSection from './ScalarMenuSection.vue'\n</script>\n<template>\n <ScalarMenuSection>\n <template #title>Resources</template>\n <ScalarMenuLink\n href=\"https://discord.gg/scalar\"\n :icon=\"ScalarIconDiscordLogo\"\n target=\"_blank\">\n Discord\n </ScalarMenuLink>\n <ScalarMenuLink\n href=\"https://github.com/scalar/scalar\"\n :icon=\"ScalarIconGithubLogo\"\n target=\"_blank\">\n GitHub\n </ScalarMenuLink>\n </ScalarMenuSection>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconDiscordLogo, ScalarIconGithubLogo } from '@scalar/icons'\n\nimport ScalarMenuLink from './ScalarMenuLink.vue'\nimport ScalarMenuSection from './ScalarMenuSection.vue'\n</script>\n<template>\n <ScalarMenuSection>\n <template #title>Resources</template>\n <ScalarMenuLink\n href=\"https://discord.gg/scalar\"\n :icon=\"ScalarIconDiscordLogo\"\n target=\"_blank\">\n Discord\n </ScalarMenuLink>\n <ScalarMenuLink\n href=\"https://github.com/scalar/scalar\"\n :icon=\"ScalarIconGithubLogo\"\n target=\"_blank\">\n GitHub\n </ScalarMenuLink>\n </ScalarMenuSection>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconUsers } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineProps<{\n src?: string\n label?: string\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex h-full items-center gap-1')\">\n <img\n v-if=\"src\"\n class=\"size-5 rounded\"\n role=\"presentation\"\n :src=\"src\" />\n <div\n v-else\n aria-hidden=\"true\"\n class=\"flex items-center justify-center text-3xs font-medium text-c-3 size-5 bg-b-3 rounded\">\n <template v-if=\"label && label.length > 0\">\n {{ label[0] }}\n </template>\n <ScalarIconUsers\n v-else\n class=\"size-3\"\n weight=\"bold\" />\n </div>\n <div\n v-if=\"label && label.length > 0\"\n class=\"flex-1 truncate\">\n {{ label }}\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconUsers } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineProps<{\n src?: string\n label?: string\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex h-full items-center gap-1')\">\n <img\n v-if=\"src\"\n class=\"size-5 rounded\"\n role=\"presentation\"\n :src=\"src\" />\n <div\n v-else\n aria-hidden=\"true\"\n class=\"flex items-center justify-center text-3xs font-medium text-c-3 size-5 bg-b-3 rounded\">\n <template v-if=\"label && label.length > 0\">\n {{ label[0] }}\n </template>\n <ScalarIconUsers\n v-else\n class=\"size-3\"\n weight=\"bold\" />\n </div>\n <div\n v-if=\"label && label.length > 0\"\n class=\"flex-1 truncate\">\n {{ label }}\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarIconCaretRight,\n ScalarIconPlus,\n ScalarIconUserSwitch,\n} from '@scalar/icons'\nimport { DropdownMenu } from 'radix-vue/namespaced'\nimport { computed } from 'vue'\n\nimport {\n ScalarDropdownButton,\n ScalarDropdownMenu,\n ScalarListboxCheckbox,\n} from '../..'\nimport { ScalarMenuLink, type ScalarMenuTeamOption } from './'\nimport ScalarMenuTeamProfile from './ScalarMenuTeamProfile.vue'\n\nconst props = defineProps<{\n /** The currently selected team */\n team?: ScalarMenuTeamOption | undefined\n /** The list of teams to choose from */\n teams: ScalarMenuTeamOption[]\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the selected team changes */\n (e: 'update:team', value: ScalarMenuTeamOption | undefined): void\n /** Emitted when the user clicks the \"Create new team\" button */\n (e: 'add'): void\n}>()\n\n/** A model that tracks the team id */\nconst model = computed<string | undefined>({\n get: () => props.team?.id,\n set: (v) =>\n emit(\n 'update:team',\n props.teams.find((t) => t.id === v),\n ),\n})\n\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <DropdownMenu.Sub>\n <ScalarMenuLink\n :is=\"DropdownMenu.SubTrigger\"\n :icon=\"ScalarIconUserSwitch\"\n v-bind=\"$attrs\">\n <div>Change team</div>\n <ScalarIconCaretRight\n class=\"ml-auto text-c-2 -mr-0.25 size-3\"\n weight=\"bold\" />\n </ScalarMenuLink>\n <DropdownMenu.Portal>\n <DropdownMenu.SubContent\n :as=\"ScalarDropdownMenu\"\n class=\"max-h-radix-popper z-context-plus\"\n :sideOffset=\"3\">\n <DropdownMenu.RadioGroup\n v-model=\"model\"\n class=\"contents\">\n <DropdownMenu.RadioItem\n v-for=\"t in teams\"\n :key=\"t.id\"\n :as=\"ScalarDropdownButton\"\n class=\"group/item flex items-center\"\n :value=\"t.id\">\n <ScalarMenuTeamProfile\n class=\"-ml-0.75 flex-1 min-w-0\"\n :label=\"t.label\"\n :src=\"t.src\" />\n <ScalarListboxCheckbox\n class=\"ml-auto\"\n :selected=\"t.id === model\" />\n </DropdownMenu.RadioItem>\n </DropdownMenu.RadioGroup>\n <DropdownMenu.Item\n :as=\"ScalarDropdownButton\"\n class=\"flex items-center\"\n @click=\"emit('add')\">\n <ScalarIconPlus\n class=\"bg-b-3 -ml-0.75 rounded p-1 size-5 text-c-3\"\n weight=\"bold\" />\n Create new team\n </DropdownMenu.Item>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarIconCaretRight,\n ScalarIconPlus,\n ScalarIconUserSwitch,\n} from '@scalar/icons'\nimport { DropdownMenu } from 'radix-vue/namespaced'\nimport { computed } from 'vue'\n\nimport {\n ScalarDropdownButton,\n ScalarDropdownMenu,\n ScalarListboxCheckbox,\n} from '../..'\nimport { ScalarMenuLink, type ScalarMenuTeamOption } from './'\nimport ScalarMenuTeamProfile from './ScalarMenuTeamProfile.vue'\n\nconst props = defineProps<{\n /** The currently selected team */\n team?: ScalarMenuTeamOption | undefined\n /** The list of teams to choose from */\n teams: ScalarMenuTeamOption[]\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the selected team changes */\n (e: 'update:team', value: ScalarMenuTeamOption | undefined): void\n /** Emitted when the user clicks the \"Create new team\" button */\n (e: 'add'): void\n}>()\n\n/** A model that tracks the team id */\nconst model = computed<string | undefined>({\n get: () => props.team?.id,\n set: (v) =>\n emit(\n 'update:team',\n props.teams.find((t) => t.id === v),\n ),\n})\n\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <DropdownMenu.Sub>\n <ScalarMenuLink\n :is=\"DropdownMenu.SubTrigger\"\n :icon=\"ScalarIconUserSwitch\"\n v-bind=\"$attrs\">\n <div>Change team</div>\n <ScalarIconCaretRight\n class=\"ml-auto text-c-2 -mr-0.25 size-3\"\n weight=\"bold\" />\n </ScalarMenuLink>\n <DropdownMenu.Portal>\n <DropdownMenu.SubContent\n :as=\"ScalarDropdownMenu\"\n class=\"max-h-radix-popper z-context-plus\"\n :sideOffset=\"3\">\n <DropdownMenu.RadioGroup\n v-model=\"model\"\n class=\"contents\">\n <DropdownMenu.RadioItem\n v-for=\"t in teams\"\n :key=\"t.id\"\n :as=\"ScalarDropdownButton\"\n class=\"group/item flex items-center\"\n :value=\"t.id\">\n <ScalarMenuTeamProfile\n class=\"-ml-0.75 flex-1 min-w-0\"\n :label=\"t.label\"\n :src=\"t.src\" />\n <ScalarListboxCheckbox\n class=\"ml-auto\"\n :selected=\"t.id === model\" />\n </DropdownMenu.RadioItem>\n </DropdownMenu.RadioGroup>\n <DropdownMenu.Item\n :as=\"ScalarDropdownButton\"\n class=\"flex items-center\"\n @click=\"emit('add')\">\n <ScalarIconPlus\n class=\"bg-b-3 -ml-0.75 rounded p-1 size-5 text-c-3\"\n weight=\"bold\" />\n Create new team\n </DropdownMenu.Item>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarIconCaretRight,\n ScalarIconPlus,\n ScalarIconSwap,\n} from '@scalar/icons'\nimport { DropdownMenu } from 'radix-vue/namespaced'\n\nimport { ScalarDropdownButton, ScalarDropdownMenu } from '../ScalarDropdown'\nimport {\n ScalarListboxCheckbox,\n type ScalarListboxOption,\n} from '../ScalarListbox'\nimport ScalarMenuLink from './ScalarMenuLink.vue'\n\nexport type WorkspaceGroup = {\n /** Label for the group */\n label?: string\n /** Options within the group */\n options: ScalarListboxOption[]\n}\n\nconst { workspaceOptions } = defineProps<{\n /** The list of workspaces to choose from */\n workspaceOptions: WorkspaceGroup[]\n}>()\n\nconst emit = defineEmits<{\n /** Create a new workspace */\n (e: 'createWorkspace'): void\n}>()\n\nconst model = defineModel<string | undefined>()\n\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <DropdownMenu.Sub>\n <ScalarMenuLink\n :is=\"DropdownMenu.SubTrigger\"\n :icon=\"ScalarIconSwap\"\n v-bind=\"$attrs\">\n <div>Change workspace</div>\n <ScalarIconCaretRight\n class=\"ml-auto text-c-2 -mr-0.25 size-3\"\n weight=\"bold\" />\n </ScalarMenuLink>\n\n <DropdownMenu.Portal>\n <DropdownMenu.SubContent\n :as=\"ScalarDropdownMenu\"\n class=\"max-h-radix-popper z-context-plus\"\n :sideOffset=\"3\">\n <DropdownMenu.RadioGroup\n v-model=\"model\"\n class=\"contents\">\n <template\n v-for=\"(group, groupIndex) in workspaceOptions\"\n :key=\"groupIndex\">\n <!-- Group label (only shown if there's a label) -->\n <DropdownMenu.Label\n v-if=\"group.label\"\n class=\"px-3 py-1.5 text-xs font-medium text-c-3 select-none\">\n {{ group.label }}\n </DropdownMenu.Label>\n\n <!-- Group items -->\n <DropdownMenu.RadioItem\n v-for=\"w in group.options\"\n :key=\"w.id\"\n :as=\"ScalarDropdownButton\"\n class=\"group/item flex items-center\"\n :value=\"w.id\">\n <div class=\"flex h-full items-center gap-1 flex-1 truncate\">\n {{ w.label }}\n </div>\n <ScalarListboxCheckbox\n class=\"ml-auto\"\n :selected=\"w.id === model\" />\n </DropdownMenu.RadioItem>\n\n <!-- Group separator (only between groups, not after the last one) -->\n <DropdownMenu.Separator\n v-if=\"groupIndex < workspaceOptions.length - 1\"\n class=\"h-px bg-b-3 my-1.5\" />\n </template>\n </DropdownMenu.RadioGroup>\n\n <DropdownMenu.Item\n :as=\"ScalarDropdownButton\"\n class=\"flex items-center\"\n @click=\"emit('createWorkspace')\">\n <ScalarIconPlus\n class=\"bg-b-3 -ml-0.75 rounded p-1 size-5 text-c-3\"\n weight=\"bold\" />\n Create workspace\n </DropdownMenu.Item>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarIconCaretRight,\n ScalarIconPlus,\n ScalarIconSwap,\n} from '@scalar/icons'\nimport { DropdownMenu } from 'radix-vue/namespaced'\n\nimport { ScalarDropdownButton, ScalarDropdownMenu } from '../ScalarDropdown'\nimport {\n ScalarListboxCheckbox,\n type ScalarListboxOption,\n} from '../ScalarListbox'\nimport ScalarMenuLink from './ScalarMenuLink.vue'\n\nexport type WorkspaceGroup = {\n /** Label for the group */\n label?: string\n /** Options within the group */\n options: ScalarListboxOption[]\n}\n\nconst { workspaceOptions } = defineProps<{\n /** The list of workspaces to choose from */\n workspaceOptions: WorkspaceGroup[]\n}>()\n\nconst emit = defineEmits<{\n /** Create a new workspace */\n (e: 'createWorkspace'): void\n}>()\n\nconst model = defineModel<string | undefined>()\n\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <DropdownMenu.Sub>\n <ScalarMenuLink\n :is=\"DropdownMenu.SubTrigger\"\n :icon=\"ScalarIconSwap\"\n v-bind=\"$attrs\">\n <div>Change workspace</div>\n <ScalarIconCaretRight\n class=\"ml-auto text-c-2 -mr-0.25 size-3\"\n weight=\"bold\" />\n </ScalarMenuLink>\n\n <DropdownMenu.Portal>\n <DropdownMenu.SubContent\n :as=\"ScalarDropdownMenu\"\n class=\"max-h-radix-popper z-context-plus\"\n :sideOffset=\"3\">\n <DropdownMenu.RadioGroup\n v-model=\"model\"\n class=\"contents\">\n <template\n v-for=\"(group, groupIndex) in workspaceOptions\"\n :key=\"groupIndex\">\n <!-- Group label (only shown if there's a label) -->\n <DropdownMenu.Label\n v-if=\"group.label\"\n class=\"px-3 py-1.5 text-xs font-medium text-c-3 select-none\">\n {{ group.label }}\n </DropdownMenu.Label>\n\n <!-- Group items -->\n <DropdownMenu.RadioItem\n v-for=\"w in group.options\"\n :key=\"w.id\"\n :as=\"ScalarDropdownButton\"\n class=\"group/item flex items-center\"\n :value=\"w.id\">\n <div class=\"flex h-full items-center gap-1 flex-1 truncate\">\n {{ w.label }}\n </div>\n <ScalarListboxCheckbox\n class=\"ml-auto\"\n :selected=\"w.id === model\" />\n </DropdownMenu.RadioItem>\n\n <!-- Group separator (only between groups, not after the last one) -->\n <DropdownMenu.Separator\n v-if=\"groupIndex < workspaceOptions.length - 1\"\n class=\"h-px bg-b-3 my-1.5\" />\n </template>\n </DropdownMenu.RadioGroup>\n\n <DropdownMenu.Item\n :as=\"ScalarDropdownButton\"\n class=\"flex items-center\"\n @click=\"emit('createWorkspace')\">\n <ScalarIconPlus\n class=\"bg-b-3 -ml-0.75 rounded p-1 size-5 text-c-3\"\n weight=\"bold\" />\n Create workspace\n </DropdownMenu.Item>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n</template>\n","<script setup lang=\"ts\">\nimport { Dialog, DialogPanel, DialogTitle } from '@headlessui/vue'\nimport { ScalarIconX } from '@scalar/icons'\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\nimport type { VariantProps } from 'cva'\nimport { reactive } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\n\ntype ModalVariants = VariantProps<typeof modal>\n\nconst { size = 'md' } = defineProps<{\n state: ReturnType<typeof useModal>\n title?: string\n bodyClass?: string\n maxWidth?: string\n size?: ModalVariants['size']\n variant?: ModalVariants['variant']\n}>()\n\nconst emit = defineEmits<{\n (event: 'close'): void\n}>()\n\nconst modal = cva({\n base: [\n 'scalar-modal',\n 'flex flex-col relative mb-0 rounded-lg bg-b-1 p-0 text-left leading-snug text-c-1 opacity-0 w-[calc(100vw-12px)] md:w-[calc(100vw-16px)] lg:w-[calc(100vw-32px)]',\n ].join(' '),\n variants: {\n size: {\n xxs: 'mt-[20svh] max-h-[60svh] max-w-[360px]',\n xs: 'mt-[20svh] max-h-[60svh] max-w-[480px]',\n sm: 'mt-[20svh] max-h-[60svh] max-w-[540px]',\n md: 'mt-[20svh] max-h-[60svh] max-w-[640px]',\n lg: 'm-auto max-h-[80svh] max-w-[800px]',\n xl: 'm-auto max-h-[90svh] max-w-[1000px]',\n full: 'full-size-styles max-h-dvh mt-0 lg:w-full',\n },\n variant: {\n form: 'scalar-modal-form',\n search: 'scalar-modal-search mt-[15svh] max-h-[60svh] max-w-[540px]',\n error: 'scalar-modal-error',\n },\n },\n})\nconst body = cva({\n base: ['scalar-modal-body', 'relative flex-1 min-h-0 p-3'].join(' '),\n variants: {\n variant: {\n form: 'overflow-visible',\n search: 'flex flex-col !m-0 overflow-hidden p-0',\n error: 'overflow-y-scroll',\n },\n size: {\n xxs: '',\n xs: '',\n sm: '',\n md: '',\n lg: '',\n xl: 'm-0 p-0',\n full: ' rounded-none',\n },\n },\n})\n</script>\n<script lang=\"ts\">\n/** Hook for creating a reactive modal state */\nexport function useModal() {\n return reactive({\n open: false,\n show() {\n this.open = true\n },\n hide() {\n this.open = false\n },\n })\n}\n</script>\n<template>\n <Dialog\n :open=\"state.open\"\n @close=\"\n () => {\n state.hide()\n emit('close')\n }\n \">\n <div\n :class=\"\n cx(\n size === 'full' ? 'scalar-modal-layout-full' : 'scalar-modal-layout',\n 'fixed left-0 top-0 flex items-start justify-center',\n 'z-overlay h-dvh w-dvw',\n 'bg-backdrop opacity-0 dark:bg-backdrop-dark',\n size === 'full' && 'flex',\n )\n \">\n <DialogPanel\n :class=\"modal({ size, variant })\"\n :style=\"{ maxWidth }\">\n <DialogTitle\n v-if=\"title\"\n class=\"scalar-modal-header m-0 -mb-1 rounded-lg pt-3 px-3 text-left text-sm font-medium text-c-1\">\n {{ title }}\n </DialogTitle>\n <div\n v-if=\"size === 'full'\"\n :class=\"bodyClass\">\n <slot />\n </div>\n <div\n v-else\n :class=\"cx(body({ size, variant }), bodyClass)\">\n <slot />\n </div>\n </DialogPanel>\n <div\n v-if=\"size === 'full'\"\n class=\"close-button z-10 fixed right-2 top-2\">\n <ScalarIconButton\n class=\"hover:bg-b-3 focus:outline-none\"\n :icon=\"ScalarIconX\"\n label=\"Close modal\"\n @click=\"state.hide()\" />\n </div>\n </div>\n </Dialog>\n</template>\n<style scoped>\n@reference '../../style.css';\n\n.scalar-modal-layout {\n animation: fadein-layout ease-in-out 0.3s forwards;\n}\n.scalar-modal {\n animation: fadein-modal ease-in-out 0.3s forwards;\n animation-delay: 0.1s;\n box-shadow: var(--scalar-shadow-2);\n transform: translate3d(0, 10px, 0);\n}\n.scalar-modal-layout-full {\n opacity: 1 !important;\n background: transparent !important;\n}\n.modal-content-search .modal-body {\n padding: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n max-height: 440px;\n}\n/*\n * Allow the modal to fill more space on\n * very short (or very zoomed in) screens\n */\n@variant zoomed {\n .scalar-modal-layout .scalar-modal {\n margin-top: 5svh;\n max-height: 90svh;\n }\n}\n@keyframes fadein-layout {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes fadein-modal {\n 0% {\n opacity: 0;\n transform: translate3d(0, 10px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n.full-size-styles {\n transform: translate3d(0, 0, 0);\n animation: fadein-layout ease-in-out 0.3s forwards;\n max-height: 100% !important;\n top: 0 !important;\n left: 0;\n position: absolute !important;\n margin: initial;\n border-radius: 0 !important;\n background-color: var(--scalar-background-1) !important;\n box-shadow: none !important;\n border-right: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n@variant md {\n .full-size-styles {\n width: 50dvw !important;\n }\n}\n.full-size-styles:after {\n content: '';\n width: 50dvw;\n height: 100dvh;\n position: absolute;\n right: -50dvw;\n top: 0;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { Dialog, DialogPanel, DialogTitle } from '@headlessui/vue'\nimport { ScalarIconX } from '@scalar/icons'\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\nimport type { VariantProps } from 'cva'\nimport { reactive } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\n\ntype ModalVariants = VariantProps<typeof modal>\n\nconst { size = 'md' } = defineProps<{\n state: ReturnType<typeof useModal>\n title?: string\n bodyClass?: string\n maxWidth?: string\n size?: ModalVariants['size']\n variant?: ModalVariants['variant']\n}>()\n\nconst emit = defineEmits<{\n (event: 'close'): void\n}>()\n\nconst modal = cva({\n base: [\n 'scalar-modal',\n 'flex flex-col relative mb-0 rounded-lg bg-b-1 p-0 text-left leading-snug text-c-1 opacity-0 w-[calc(100vw-12px)] md:w-[calc(100vw-16px)] lg:w-[calc(100vw-32px)]',\n ].join(' '),\n variants: {\n size: {\n xxs: 'mt-[20svh] max-h-[60svh] max-w-[360px]',\n xs: 'mt-[20svh] max-h-[60svh] max-w-[480px]',\n sm: 'mt-[20svh] max-h-[60svh] max-w-[540px]',\n md: 'mt-[20svh] max-h-[60svh] max-w-[640px]',\n lg: 'm-auto max-h-[80svh] max-w-[800px]',\n xl: 'm-auto max-h-[90svh] max-w-[1000px]',\n full: 'full-size-styles max-h-dvh mt-0 lg:w-full',\n },\n variant: {\n form: 'scalar-modal-form',\n search: 'scalar-modal-search mt-[15svh] max-h-[60svh] max-w-[540px]',\n error: 'scalar-modal-error',\n },\n },\n})\nconst body = cva({\n base: ['scalar-modal-body', 'relative flex-1 min-h-0 p-3'].join(' '),\n variants: {\n variant: {\n form: 'overflow-visible',\n search: 'flex flex-col !m-0 overflow-hidden p-0',\n error: 'overflow-y-scroll',\n },\n size: {\n xxs: '',\n xs: '',\n sm: '',\n md: '',\n lg: '',\n xl: 'm-0 p-0',\n full: ' rounded-none',\n },\n },\n})\n</script>\n<script lang=\"ts\">\n/** Hook for creating a reactive modal state */\nexport function useModal() {\n return reactive({\n open: false,\n show() {\n this.open = true\n },\n hide() {\n this.open = false\n },\n })\n}\n</script>\n<template>\n <Dialog\n :open=\"state.open\"\n @close=\"\n () => {\n state.hide()\n emit('close')\n }\n \">\n <div\n :class=\"\n cx(\n size === 'full' ? 'scalar-modal-layout-full' : 'scalar-modal-layout',\n 'fixed left-0 top-0 flex items-start justify-center',\n 'z-overlay h-dvh w-dvw',\n 'bg-backdrop opacity-0 dark:bg-backdrop-dark',\n size === 'full' && 'flex',\n )\n \">\n <DialogPanel\n :class=\"modal({ size, variant })\"\n :style=\"{ maxWidth }\">\n <DialogTitle\n v-if=\"title\"\n class=\"scalar-modal-header m-0 -mb-1 rounded-lg pt-3 px-3 text-left text-sm font-medium text-c-1\">\n {{ title }}\n </DialogTitle>\n <div\n v-if=\"size === 'full'\"\n :class=\"bodyClass\">\n <slot />\n </div>\n <div\n v-else\n :class=\"cx(body({ size, variant }), bodyClass)\">\n <slot />\n </div>\n </DialogPanel>\n <div\n v-if=\"size === 'full'\"\n class=\"close-button z-10 fixed right-2 top-2\">\n <ScalarIconButton\n class=\"hover:bg-b-3 focus:outline-none\"\n :icon=\"ScalarIconX\"\n label=\"Close modal\"\n @click=\"state.hide()\" />\n </div>\n </div>\n </Dialog>\n</template>\n<style scoped>\n@reference '../../style.css';\n\n.scalar-modal-layout {\n animation: fadein-layout ease-in-out 0.3s forwards;\n}\n.scalar-modal {\n animation: fadein-modal ease-in-out 0.3s forwards;\n animation-delay: 0.1s;\n box-shadow: var(--scalar-shadow-2);\n transform: translate3d(0, 10px, 0);\n}\n.scalar-modal-layout-full {\n opacity: 1 !important;\n background: transparent !important;\n}\n.modal-content-search .modal-body {\n padding: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n max-height: 440px;\n}\n/*\n * Allow the modal to fill more space on\n * very short (or very zoomed in) screens\n */\n@variant zoomed {\n .scalar-modal-layout .scalar-modal {\n margin-top: 5svh;\n max-height: 90svh;\n }\n}\n@keyframes fadein-layout {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes fadein-modal {\n 0% {\n opacity: 0;\n transform: translate3d(0, 10px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n.full-size-styles {\n transform: translate3d(0, 0, 0);\n animation: fadein-layout ease-in-out 0.3s forwards;\n max-height: 100% !important;\n top: 0 !important;\n left: 0;\n position: absolute !important;\n margin: initial;\n border-radius: 0 !important;\n background-color: var(--scalar-background-1) !important;\n box-shadow: none !important;\n border-right: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n@variant md {\n .full-size-styles {\n width: 50dvw !important;\n }\n}\n.full-size-styles:after {\n content: '';\n width: 50dvw;\n height: 100dvh;\n position: absolute;\n right: -50dvw;\n top: 0;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { Slots } from './types'\n\ndefineProps<\n {\n /** Automatically focus the popover panel when it opens */\n focus?: boolean\n } & ScalarFloatingOptions\n>()\n\ndefineSlots<Slots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton as=\"template\">\n <slot :open=\"open\" />\n </PopoverButton>\n <template #floating=\"{ width, height }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :focus=\"focus\"\n :style=\"{ width, height }\"\n v-bind=\"cx('relative flex flex-col p-0.75')\">\n <slot\n :close=\"() => close()\"\n name=\"popover\"\n :open=\"open\" />\n <slot\n name=\"backdrop\"\n :open=\"open\">\n <ScalarFloatingBackdrop />\n </slot>\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n","<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { Slots } from './types'\n\ndefineProps<\n {\n /** Automatically focus the popover panel when it opens */\n focus?: boolean\n } & ScalarFloatingOptions\n>()\n\ndefineSlots<Slots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton as=\"template\">\n <slot :open=\"open\" />\n </PopoverButton>\n <template #floating=\"{ width, height }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :focus=\"focus\"\n :style=\"{ width, height }\"\n v-bind=\"cx('relative flex flex-col p-0.75')\">\n <slot\n :close=\"() => close()\"\n name=\"popover\"\n :open=\"open\" />\n <slot\n name=\"backdrop\"\n :open=\"open\">\n <ScalarFloatingBackdrop />\n </slot>\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar search input component\n *\n * Provides an large input field with a loading state and a clear button,\n * intended to be used with the ScalarSearchResults component.\n *\n * If you want a smaller input field for use in a sidebar, use\n * the ScalarSidebarSearchInput component instead.\n *\n * @example\n * <ScalarSearchInput v-model=\"search\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass, ScalarIconX } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { ref } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\ndefineProps<{\n loader?: LoadingState\n label?: string\n}>()\n\nconst model = defineModel<string>()\n\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nfunction handleClear() {\n model.value = ''\n // Push focus back to the input\n if (inputRef.value) {\n inputRef.value.focus()\n }\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n</script>\n<template>\n <label\n v-bind=\"\n stylingAttrsCx(\n 'flex items-center text-lg font-medium h-10 pl-3 pr-1.5 py-2 gap-2.25',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"text-sidebar-c-search size-4\" />\n <input\n ref=\"inputRef\"\n v-bind=\"otherAttrs\"\n v-model=\"model\"\n :aria-label=\"label ?? 'Enter search query'\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n class=\"flex-1 appearance-none rounded border-none bg-transparent outline-none\"\n placeholder=\"Search...\"\n spellcheck=\"false\"\n type=\"search\" />\n <ScalarLoading\n v-if=\"loader && loader.isActive\"\n class=\"mr-1\"\n :loader\n size=\"lg\" />\n <ScalarIconButton\n v-else-if=\"model\"\n class=\"-my-1\"\n :icon=\"ScalarIconX\"\n label=\"Clear Search\"\n size=\"sm\"\n weight=\"bold\"\n @click.stop.prevent=\"handleClear\" />\n </label>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar search input component\n *\n * Provides an large input field with a loading state and a clear button,\n * intended to be used with the ScalarSearchResults component.\n *\n * If you want a smaller input field for use in a sidebar, use\n * the ScalarSidebarSearchInput component instead.\n *\n * @example\n * <ScalarSearchInput v-model=\"search\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass, ScalarIconX } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { ref } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\ndefineProps<{\n loader?: LoadingState\n label?: string\n}>()\n\nconst model = defineModel<string>()\n\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nfunction handleClear() {\n model.value = ''\n // Push focus back to the input\n if (inputRef.value) {\n inputRef.value.focus()\n }\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n</script>\n<template>\n <label\n v-bind=\"\n stylingAttrsCx(\n 'flex items-center text-lg font-medium h-10 pl-3 pr-1.5 py-2 gap-2.25',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"text-sidebar-c-search size-4\" />\n <input\n ref=\"inputRef\"\n v-bind=\"otherAttrs\"\n v-model=\"model\"\n :aria-label=\"label ?? 'Enter search query'\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n class=\"flex-1 appearance-none rounded border-none bg-transparent outline-none\"\n placeholder=\"Search...\"\n spellcheck=\"false\"\n type=\"search\" />\n <ScalarLoading\n v-if=\"loader && loader.isActive\"\n class=\"mr-1\"\n :loader\n size=\"lg\" />\n <ScalarIconButton\n v-else-if=\"model\"\n class=\"-my-1\"\n :icon=\"ScalarIconX\"\n label=\"Clear Search\"\n size=\"sm\"\n weight=\"bold\"\n @click.stop.prevent=\"handleClear\" />\n </label>\n</template>\n","<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\ndefineProps<{\n icon?: Icon | ScalarIconComponent\n selected?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <a\n :aria-selected=\"selected\"\n role=\"option\"\n tabindex=\"-1\"\n v-bind=\"\n cx(\n 'group flex cursor-pointer gap-2 rounded px-2 py-1.5 no-underline hover:bg-b-2 text-base/5',\n { 'bg-b-2': selected },\n )\n \">\n <!-- Icon -->\n <div\n v-if=\"icon\"\n class=\"flex h-fit items-center text-sm font-medium text-c-3 group-hover:text-c-1\">\n <slot name=\"icon\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n class=\"size-4\"\n :icon=\"icon\" />\n </slot>\n <span>&hairsp;</span>\n </div>\n <!-- Content -->\n <div class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div class=\"flex items-center gap-1\">\n <div\n class=\"flex-1 truncate zoomed:whitespace-normal! wrap-break-word font-medium\">\n <slot />\n </div>\n <div\n v-if=\"$slots.addon\"\n class=\"text-base text-c-2\">\n <slot name=\"addon\" />\n </div>\n </div>\n <div\n v-if=\"$slots.description\"\n class=\"truncate zoomed:whitespace-normal! wrap-break-word text-c-2\">\n <slot name=\"description\" />\n </div>\n </div>\n </a>\n</template>\n","<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\ndefineProps<{\n icon?: Icon | ScalarIconComponent\n selected?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <a\n :aria-selected=\"selected\"\n role=\"option\"\n tabindex=\"-1\"\n v-bind=\"\n cx(\n 'group flex cursor-pointer gap-2 rounded px-2 py-1.5 no-underline hover:bg-b-2 text-base/5',\n { 'bg-b-2': selected },\n )\n \">\n <!-- Icon -->\n <div\n v-if=\"icon\"\n class=\"flex h-fit items-center text-sm font-medium text-c-3 group-hover:text-c-1\">\n <slot name=\"icon\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n class=\"size-4\"\n :icon=\"icon\" />\n </slot>\n <span>&hairsp;</span>\n </div>\n <!-- Content -->\n <div class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div class=\"flex items-center gap-1\">\n <div\n class=\"flex-1 truncate zoomed:whitespace-normal! wrap-break-word font-medium\">\n <slot />\n </div>\n <div\n v-if=\"$slots.addon\"\n class=\"text-base text-c-2\">\n <slot name=\"addon\" />\n </div>\n </div>\n <div\n v-if=\"$slots.description\"\n class=\"truncate zoomed:whitespace-normal! wrap-break-word text-c-2\">\n <slot name=\"description\" />\n </div>\n </div>\n </a>\n</template>\n","<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineProps<{\n noResults?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"listbox\"\n v-bind=\"cx('flex flex-col')\">\n <slot\n v-if=\"noResults\"\n name=\"noResults\">\n <div class=\"flex flex-col items-center gap-2 px-3 py-4\">\n <div\n class=\"text-base font-medium text-c-2\"\n role=\"alert\">\n No results found\n </div>\n </div>\n </slot>\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineProps<{\n noResults?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"listbox\"\n v-bind=\"cx('flex flex-col')\">\n <slot\n v-if=\"noResults\"\n name=\"noResults\">\n <div class=\"flex flex-col items-center gap-2 px-3 py-4\">\n <div\n class=\"text-base font-medium text-c-2\"\n role=\"alert\">\n No results found\n </div>\n </div>\n </slot>\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar component\n *\n * A sidebar for navigation and other content.\n *\n * @example\n * <ScalarSidebar>\n * <!-- Sidebar content -->\n * </ScalarSidebar>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <aside\n v-bind=\"\n cx('flex flex-col border-r bg-sidebar-b-1 border-sidebar-border w-72')\n \">\n <slot />\n </aside>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar component\n *\n * A sidebar for navigation and other content.\n *\n * @example\n * <ScalarSidebar>\n * <!-- Sidebar content -->\n * </ScalarSidebar>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <aside\n v-bind=\"\n cx('flex flex-col border-r bg-sidebar-b-1 border-sidebar-border w-72')\n \">\n <slot />\n </aside>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Indent component\n *\n * @example\n * <ScalarSidebarIndent :indent=\"1\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport type { SidebarGroupLevel } from './useSidebarGroups'\n\nconst { indent = 0, selected = false } = defineProps<{\n /** The number of indents to render @default 0 */\n indent?: SidebarGroupLevel\n /** Whether the indent is selected @default false */\n selected?: boolean\n /** Whether the indent hover is disabled @default false */\n disabled?: boolean\n}>()\n\nconst indents = computed<number[]>(() => {\n return Array.from({ length: indent }, (_, i) => i)\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx('scalar-sidebar-indent flex justify-center', {\n 'mr-[calc(20px-var(--scalar-sidebar-indent))]': indent > 0,\n 'scalar-sidebar-indent-selected': selected,\n })\n \">\n <div\n v-for=\"(block, index) in indents\"\n :key=\"block\"\n class=\"relative w-[var(--scalar-sidebar-indent)]\">\n <!-- Indent Border -->\n <div\n class=\"scalar-sidebar-indent-border absolute left-2 inset-y-0 w-border bg-sidebar-indent-border\" />\n <!-- Indent Border Active or Hover -->\n <div\n v-if=\"index === indents.length - 1\"\n class=\"absolute left-2 inset-y-0 w-border\"\n :class=\"\n disabled\n ? ''\n : selected\n ? 'bg-sidebar-indent-border-active'\n : 'group-hover/button:bg-sidebar-indent-border-hover'\n \" />\n </div>\n </div>\n</template>\n<style scoped>\n@reference \"../../style.css\";\n\n/* Add extra height to the indent border to account for the px spacing between the items */\n.group\\/item > * > .scalar-sidebar-indent .scalar-sidebar-indent-border {\n @apply -inset-y-px;\n}\n\n/* Push the border down for the first item in a group */\n.group\\/item:first-child\n > *\n > .scalar-sidebar-indent\n .scalar-sidebar-indent-border {\n @apply top-0;\n}\n\n/* Push the border up for the last item in a group */\n.group\\/item:last-child\n > *\n > .scalar-sidebar-indent\n .scalar-sidebar-indent-border {\n @apply bottom-0;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Indent component\n *\n * @example\n * <ScalarSidebarIndent :indent=\"1\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport type { SidebarGroupLevel } from './useSidebarGroups'\n\nconst { indent = 0, selected = false } = defineProps<{\n /** The number of indents to render @default 0 */\n indent?: SidebarGroupLevel\n /** Whether the indent is selected @default false */\n selected?: boolean\n /** Whether the indent hover is disabled @default false */\n disabled?: boolean\n}>()\n\nconst indents = computed<number[]>(() => {\n return Array.from({ length: indent }, (_, i) => i)\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx('scalar-sidebar-indent flex justify-center', {\n 'mr-[calc(20px-var(--scalar-sidebar-indent))]': indent > 0,\n 'scalar-sidebar-indent-selected': selected,\n })\n \">\n <div\n v-for=\"(block, index) in indents\"\n :key=\"block\"\n class=\"relative w-[var(--scalar-sidebar-indent)]\">\n <!-- Indent Border -->\n <div\n class=\"scalar-sidebar-indent-border absolute left-2 inset-y-0 w-border bg-sidebar-indent-border\" />\n <!-- Indent Border Active or Hover -->\n <div\n v-if=\"index === indents.length - 1\"\n class=\"absolute left-2 inset-y-0 w-border\"\n :class=\"\n disabled\n ? ''\n : selected\n ? 'bg-sidebar-indent-border-active'\n : 'group-hover/button:bg-sidebar-indent-border-hover'\n \" />\n </div>\n </div>\n</template>\n<style scoped>\n@reference \"../../style.css\";\n\n/* Add extra height to the indent border to account for the px spacing between the items */\n.group\\/item > * > .scalar-sidebar-indent .scalar-sidebar-indent-border {\n @apply -inset-y-px;\n}\n\n/* Push the border down for the first item in a group */\n.group\\/item:first-child\n > *\n > .scalar-sidebar-indent\n .scalar-sidebar-indent-border {\n @apply top-0;\n}\n\n/* Push the border up for the last item in a group */\n.group\\/item:last-child\n > *\n > .scalar-sidebar-indent\n .scalar-sidebar-indent-border {\n @apply bottom-0;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Button component\n *\n * Provide a styled link for the ScalarSidebar or similar, supports\n * the same props and slots as ScalarSidebarItem\n *\n * This is used internally by the ScalarSidebarItem component\n *\n * If you're looking to create items in ScalarSidebarItems\n * you probably want the ScalarSidebarItem component\n *\n * @example\n * <ScalarSidebarButton>\n * <template #icon>\n * <!-- Overrides the icon slot -->\n * </template>\n * <!-- Button text -->\n * <template #aside>\n * <!-- After the button text -->\n * </template>\n * </ScalarSidebarButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarIconLegacyAdapter } from '../ScalarIcon'\nimport ScalarSidebarIndent from './ScalarSidebarIndent.vue'\nimport type { ScalarSidebarButtonSlots, ScalarSidebarItemProps } from './types'\n\nconst { is = 'a', indent = 0 } = defineProps<ScalarSidebarItemProps>()\n\ndefineSlots<ScalarSidebarButtonSlots>()\n\nconst variants = cva({\n base: [\n 'group/button peer/button flex items-stretch rounded p-2',\n 'font-sidebar text-base/4 text-sidebar-c-2 no-underline wrap-break-word',\n ],\n variants: {\n active: { true: 'text-sidebar-c-active font-sidebar-active' },\n disabled: { true: 'cursor-auto' },\n selected: {\n true: 'cursor-auto bg-sidebar-b-active text-sidebar-c-active font-sidebar-active',\n },\n },\n compoundVariants: [\n {\n selected: false,\n disabled: false,\n active: false,\n class: 'hover:bg-sidebar-b-hover hover:text-sidebar-c-hover',\n },\n {\n selected: false,\n disabled: false,\n active: true,\n class: 'hover:bg-sidebar-b-hover',\n },\n ],\n defaultVariants: { selected: false, disabled: false, active: false },\n})\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n :aria-selected=\"selected\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx(variants({ selected, disabled, active }))\">\n <slot name=\"indent\">\n <ScalarSidebarIndent\n class=\"-my-2\"\n :disabled\n :indent\n :selected />\n </slot>\n <div\n v-if=\"icon || $slots.icon\"\n class=\"h-lh *:size-4 mr-1 flex items-center\">\n <slot name=\"icon\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n :icon=\"icon\" />\n </slot>\n </div>\n <div class=\"group/button-label flex-1 min-w-0\">\n <slot />\n </div>\n <slot name=\"aside\" />\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Button component\n *\n * Provide a styled link for the ScalarSidebar or similar, supports\n * the same props and slots as ScalarSidebarItem\n *\n * This is used internally by the ScalarSidebarItem component\n *\n * If you're looking to create items in ScalarSidebarItems\n * you probably want the ScalarSidebarItem component\n *\n * @example\n * <ScalarSidebarButton>\n * <template #icon>\n * <!-- Overrides the icon slot -->\n * </template>\n * <!-- Button text -->\n * <template #aside>\n * <!-- After the button text -->\n * </template>\n * </ScalarSidebarButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarIconLegacyAdapter } from '../ScalarIcon'\nimport ScalarSidebarIndent from './ScalarSidebarIndent.vue'\nimport type { ScalarSidebarButtonSlots, ScalarSidebarItemProps } from './types'\n\nconst { is = 'a', indent = 0 } = defineProps<ScalarSidebarItemProps>()\n\ndefineSlots<ScalarSidebarButtonSlots>()\n\nconst variants = cva({\n base: [\n 'group/button peer/button flex items-stretch rounded p-2',\n 'font-sidebar text-base/4 text-sidebar-c-2 no-underline wrap-break-word',\n ],\n variants: {\n active: { true: 'text-sidebar-c-active font-sidebar-active' },\n disabled: { true: 'cursor-auto' },\n selected: {\n true: 'cursor-auto bg-sidebar-b-active text-sidebar-c-active font-sidebar-active',\n },\n },\n compoundVariants: [\n {\n selected: false,\n disabled: false,\n active: false,\n class: 'hover:bg-sidebar-b-hover hover:text-sidebar-c-hover',\n },\n {\n selected: false,\n disabled: false,\n active: true,\n class: 'hover:bg-sidebar-b-hover',\n },\n ],\n defaultVariants: { selected: false, disabled: false, active: false },\n})\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n :aria-selected=\"selected\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx(variants({ selected, disabled, active }))\">\n <slot name=\"indent\">\n <ScalarSidebarIndent\n class=\"-my-2\"\n :disabled\n :indent\n :selected />\n </slot>\n <div\n v-if=\"icon || $slots.icon\"\n class=\"h-lh *:size-4 mr-1 flex items-center\">\n <slot name=\"icon\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n :icon=\"icon\" />\n </slot>\n </div>\n <div class=\"group/button-label flex-1 min-w-0\">\n <slot />\n </div>\n <slot name=\"aside\" />\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Footer component\n *\n * A footer for the sidebar, be default it contains a\n * \"Powered by Scalar\" link and a {@link ScalarColorModeToggle} toggle.\n *\n * @example\n * <ScalarSidebarFooter>\n * <!-- Footer content at the top of the footer -->\n * <template #description>\n * <!-- Replaces the Powered by Scalar link -->\n * </template>\n * <template #toggle>\n * <!-- Replaces the color mode toggle -->\n * </template>\n * </ScalarSidebarFooter>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarColorModeToggle } from '../ScalarColorModeToggle'\n\ndefineSlots<{\n /** Footer content at the top of the footer */\n default?(): unknown\n /** Replaces the Powered by Scalar link */\n description?(): unknown\n /** Replaces the color mode toggle */\n toggle?(): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex flex-col gap-3 p-3 pt-0 border-sidebar-border')\">\n <slot />\n <div class=\"flex items-center\">\n <div class=\"flex-1 min-w-0 flex items-center text-sm text-sidebar-c-2\">\n <slot name=\"description\">\n <a\n class=\"no-underline hover:underline\"\n href=\"https://www.scalar.com\"\n target=\"_blank\">\n Powered by Scalar\n </a>\n </slot>\n </div>\n <slot name=\"toggle\">\n <ScalarColorModeToggle />\n </slot>\n </div>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Footer component\n *\n * A footer for the sidebar, be default it contains a\n * \"Powered by Scalar\" link and a {@link ScalarColorModeToggle} toggle.\n *\n * @example\n * <ScalarSidebarFooter>\n * <!-- Footer content at the top of the footer -->\n * <template #description>\n * <!-- Replaces the Powered by Scalar link -->\n * </template>\n * <template #toggle>\n * <!-- Replaces the color mode toggle -->\n * </template>\n * </ScalarSidebarFooter>\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarColorModeToggle } from '../ScalarColorModeToggle'\n\ndefineSlots<{\n /** Footer content at the top of the footer */\n default?(): unknown\n /** Replaces the Powered by Scalar link */\n description?(): unknown\n /** Replaces the color mode toggle */\n toggle?(): unknown\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex flex-col gap-3 p-3 pt-0 border-sidebar-border')\">\n <slot />\n <div class=\"flex items-center\">\n <div class=\"flex-1 min-w-0 flex items-center text-sm text-sidebar-c-2\">\n <slot name=\"description\">\n <a\n class=\"no-underline hover:underline\"\n href=\"https://www.scalar.com\"\n target=\"_blank\">\n Powered by Scalar\n </a>\n </slot>\n </div>\n <slot name=\"toggle\">\n <ScalarColorModeToggle />\n </slot>\n </div>\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Group toggle component\n *\n * Provides the toggle icon for a ScalarSidebarGroup\n *\n * @example\n * <ScalarSidebarGroupToggle :open=\"...\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCaretRight } from '@scalar/icons'\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\nconst { is = 'div', open = false } = defineProps<{\n /** Override the element tag */\n is?: Component | string\n /** Whether or not the toggle is open */\n open?: boolean\n /** Overrides the icon */\n icon?: Icon | ScalarIconComponent\n}>()\n\ndefineSlots<{\n /** Override the toggle icon */\n default?(props: { open: boolean }): unknown\n /** Override the screen reader label */\n label?(props: { open: boolean }): unknown\n}>()\n\nconst variants = cva({\n base: 'size-4 flex items-center justify-center transition-transform duration-100',\n variants: { open: { true: 'rotate-90' } },\n defaultVariants: { open: false },\n})\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx(variants({ open }))\">\n <slot :open=\"open\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n :icon=\"icon\" />\n <ScalarIconCaretRight\n v-else\n class=\"size-3\"\n weight=\"bold\" />\n </slot>\n <span class=\"sr-only\">\n <slot\n name=\"label\"\n :open=\"open\">\n {{ open ? 'Close' : 'Open' }} Group\n </slot>\n </span>\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Group toggle component\n *\n * Provides the toggle icon for a ScalarSidebarGroup\n *\n * @example\n * <ScalarSidebarGroupToggle :open=\"...\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCaretRight } from '@scalar/icons'\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\nconst { is = 'div', open = false } = defineProps<{\n /** Override the element tag */\n is?: Component | string\n /** Whether or not the toggle is open */\n open?: boolean\n /** Overrides the icon */\n icon?: Icon | ScalarIconComponent\n}>()\n\ndefineSlots<{\n /** Override the toggle icon */\n default?(props: { open: boolean }): unknown\n /** Override the screen reader label */\n label?(props: { open: boolean }): unknown\n}>()\n\nconst variants = cva({\n base: 'size-4 flex items-center justify-center transition-transform duration-100',\n variants: { open: { true: 'rotate-90' } },\n defaultVariants: { open: false },\n})\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n :type=\"is === 'button' ? 'button' : undefined\"\n v-bind=\"cx(variants({ open }))\">\n <slot :open=\"open\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n :icon=\"icon\" />\n <ScalarIconCaretRight\n v-else\n class=\"size-3\"\n weight=\"bold\" />\n </slot>\n <span class=\"sr-only\">\n <slot\n name=\"label\"\n :open=\"open\">\n {{ open ? 'Close' : 'Open' }} Group\n </slot>\n </span>\n </component>\n</template>\n","import { type InjectionKey, inject, provide } from 'vue'\n\ntype SidebarGroupOptions = {\n /** Increment the level of the sidebar groups */\n increment?: boolean\n /** Reset the level of the sidebar groups */\n reset?: boolean\n}\n\n/**\n * The level of the sidebar groups\n *\n * We shouldn't go deeper than 6 levels\n */\nexport type SidebarGroupLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6\n\n/**\n * Tracks the level of the sidebar groups\n *\n * @default 0\n */\nexport const SIDEBAR_GROUPS_SYMBOL = Symbol() as InjectionKey<SidebarGroupLevel>\n\n/**\n * Get the current level of the sidebar groups\n *\n * Optionally increments or resets the level of the sidebar groups\n * Always returns the current level even if the level is incremented or reset\n */\nexport const useSidebarGroups = (options: SidebarGroupOptions = {}) => {\n const { increment = false, reset = false } = options\n\n const level = inject(SIDEBAR_GROUPS_SYMBOL, 0)\n\n if (reset) {\n provide(SIDEBAR_GROUPS_SYMBOL, 0)\n } else if (increment && level < 6) {\n provide(SIDEBAR_GROUPS_SYMBOL, (level + 1) as SidebarGroupLevel)\n } else {\n provide(SIDEBAR_GROUPS_SYMBOL, level)\n }\n\n return { level }\n}\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Group component\n *\n * A collapsible ScalarSidebarItem that can contain subitems.\n *\n * Classes applied to the component are passed to the inner list element.\n * Other attributes (like click event) are passed to the toggle button.\n *\n * @example\n * <ScalarSidebarGroup>\n * <!-- Group toggle text -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarGroup>\n *\n *\n * By default the component has it's own internal open state, but this can be\n * controlled by passing the `controlled` prop and using binding the :open prop.\n *\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarGroupToggle from './ScalarSidebarGroupToggle.vue'\nimport ScalarSidebarIndent from './ScalarSidebarIndent.vue'\nimport type { ScalarSidebarGroupProps, ScalarSidebarGroupSlots } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\n\nconst {\n controlled,\n discrete,\n is = 'li',\n} = defineProps<ScalarSidebarGroupProps>()\n\nconst emit = defineEmits<{\n /** Emitted when the group label is clicked */\n (e: 'click', event: MouseEvent): void\n /**\n * Emitted when _only_ the group toggle button (caret) is clicked\n *\n * Note: This is only emitted if the group is discrete\n */\n (e: 'toggle', event: MouseEvent): void\n}>()\n\nconst open = defineModel<boolean>('open', { default: false })\n\ndefineSlots<ScalarSidebarGroupSlots>()\n\nconst { level } = useSidebarGroups({ increment: true })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n/** Handle the click event for the group toggle */\nconst handleClick = (event: MouseEvent) => {\n // Bubble up the click event\n emit('click', event)\n if (!controlled && !discrete) {\n // Only toggle the open state if the group is uncontrolled and not discrete\n open.value = !open.value\n }\n}\n\n/** Handle the click event for the group toggle */\nconst handleToggle = (event: MouseEvent) => {\n // Bubble up the toggle event\n emit('toggle', event)\n if (!controlled && discrete) {\n // Only toggle the open state if the group is uncontrolled and not discrete\n open.value = !open.value\n }\n}\n</script>\n<template>\n <component\n v-bind=\"cx('group/item flex flex-col gap-px')\"\n :is=\"is\">\n <div class=\"group/group-button relative flex flex-col text-base\">\n <slot\n name=\"before\"\n :open />\n <slot\n :level=\"level\"\n name=\"button\"\n :open>\n <ScalarSidebarButton\n is=\"button\"\n :active\n :aria-expanded=\"open\"\n :disabled\n :icon\n :indent=\"level\"\n :selected\n @click=\"handleClick\">\n <template #indent>\n <ScalarSidebarIndent\n class=\"mr-0 -my-2\"\n :indent=\"level\"\n :selected />\n </template>\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot\n name=\"icon\"\n :open />\n </template>\n <template #aside>\n <slot\n name=\"aside\"\n :open />\n <div\n v-if=\"discrete\"\n class=\"size-4\">\n <!-- Placeholder for discrete group toggle -->\n </div>\n <slot\n v-else\n name=\"toggle\"\n :open>\n <ScalarSidebarGroupToggle\n class=\"text-sidebar-c-2\"\n :open />\n </slot>\n </template>\n <slot :open />\n </ScalarSidebarButton>\n <button\n v-if=\"discrete\"\n :aria-expanded=\"open\"\n class=\"absolute top-[1lh] -translate-y-1/2 p-0.75 rounded right-1.25 text-sidebar-c-2\"\n :class=\"\n selected\n ? 'hover:bg-sidebar-b-1 hover:text-sidebar-c-1'\n : 'hover:bg-sidebar-b-hover hover:text-sidebar-c-hover'\n \"\n type=\"button\"\n @click=\"handleToggle\">\n <slot\n name=\"toggle\"\n :open>\n <ScalarSidebarGroupToggle :open>\n <template #label>\n {{ open ? 'Close' : 'Open' }} <slot :open=\"open\" />\n </template>\n </ScalarSidebarGroupToggle>\n </slot>\n </button>\n </slot>\n <slot\n name=\"after\"\n :open />\n </div>\n <ul\n v-if=\"open\"\n class=\"group/items flex flex-col gap-px\">\n <slot\n name=\"items\"\n :open />\n </ul>\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Group component\n *\n * A collapsible ScalarSidebarItem that can contain subitems.\n *\n * Classes applied to the component are passed to the inner list element.\n * Other attributes (like click event) are passed to the toggle button.\n *\n * @example\n * <ScalarSidebarGroup>\n * <!-- Group toggle text -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarGroup>\n *\n *\n * By default the component has it's own internal open state, but this can be\n * controlled by passing the `controlled` prop and using binding the :open prop.\n *\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarGroupToggle from './ScalarSidebarGroupToggle.vue'\nimport ScalarSidebarIndent from './ScalarSidebarIndent.vue'\nimport type { ScalarSidebarGroupProps, ScalarSidebarGroupSlots } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\n\nconst {\n controlled,\n discrete,\n is = 'li',\n} = defineProps<ScalarSidebarGroupProps>()\n\nconst emit = defineEmits<{\n /** Emitted when the group label is clicked */\n (e: 'click', event: MouseEvent): void\n /**\n * Emitted when _only_ the group toggle button (caret) is clicked\n *\n * Note: This is only emitted if the group is discrete\n */\n (e: 'toggle', event: MouseEvent): void\n}>()\n\nconst open = defineModel<boolean>('open', { default: false })\n\ndefineSlots<ScalarSidebarGroupSlots>()\n\nconst { level } = useSidebarGroups({ increment: true })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n/** Handle the click event for the group toggle */\nconst handleClick = (event: MouseEvent) => {\n // Bubble up the click event\n emit('click', event)\n if (!controlled && !discrete) {\n // Only toggle the open state if the group is uncontrolled and not discrete\n open.value = !open.value\n }\n}\n\n/** Handle the click event for the group toggle */\nconst handleToggle = (event: MouseEvent) => {\n // Bubble up the toggle event\n emit('toggle', event)\n if (!controlled && discrete) {\n // Only toggle the open state if the group is uncontrolled and not discrete\n open.value = !open.value\n }\n}\n</script>\n<template>\n <component\n v-bind=\"cx('group/item flex flex-col gap-px')\"\n :is=\"is\">\n <div class=\"group/group-button relative flex flex-col text-base\">\n <slot\n name=\"before\"\n :open />\n <slot\n :level=\"level\"\n name=\"button\"\n :open>\n <ScalarSidebarButton\n is=\"button\"\n :active\n :aria-expanded=\"open\"\n :disabled\n :icon\n :indent=\"level\"\n :selected\n @click=\"handleClick\">\n <template #indent>\n <ScalarSidebarIndent\n class=\"mr-0 -my-2\"\n :indent=\"level\"\n :selected />\n </template>\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot\n name=\"icon\"\n :open />\n </template>\n <template #aside>\n <slot\n name=\"aside\"\n :open />\n <div\n v-if=\"discrete\"\n class=\"size-4\">\n <!-- Placeholder for discrete group toggle -->\n </div>\n <slot\n v-else\n name=\"toggle\"\n :open>\n <ScalarSidebarGroupToggle\n class=\"text-sidebar-c-2\"\n :open />\n </slot>\n </template>\n <slot :open />\n </ScalarSidebarButton>\n <button\n v-if=\"discrete\"\n :aria-expanded=\"open\"\n class=\"absolute top-[1lh] -translate-y-1/2 p-0.75 rounded right-1.25 text-sidebar-c-2\"\n :class=\"\n selected\n ? 'hover:bg-sidebar-b-1 hover:text-sidebar-c-1'\n : 'hover:bg-sidebar-b-hover hover:text-sidebar-c-hover'\n \"\n type=\"button\"\n @click=\"handleToggle\">\n <slot\n name=\"toggle\"\n :open>\n <ScalarSidebarGroupToggle :open>\n <template #label>\n {{ open ? 'Close' : 'Open' }} <slot :open=\"open\" />\n </template>\n </ScalarSidebarGroupToggle>\n </slot>\n </button>\n </slot>\n <slot\n name=\"after\"\n :open />\n </div>\n <ul\n v-if=\"open\"\n class=\"group/items flex flex-col gap-px\">\n <slot\n name=\"items\"\n :open />\n </ul>\n </component>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Item component\n *\n * Provides a ScalarSidebarButton wrapped in an `<li>` to\n * meet accessibility requirements and automatically indents\n * the button based on the level of the sidebar group\n *\n * @example\n * <ScalarSidebarItem>\n * <template #icon>\n * <!-- Overrides the icon slot -->\n * </template>\n * <!-- Button text -->\n * <template #aside>\n * <!-- After the button text -->\n * </template>\n * <!-- Content to display before the button but inside the list item -->\n * <template #before>\n * <!-- Before the button -->\n * </template>\n * <!-- Content to display after the button but inside the list item -->\n * <template #after>\n * <!-- After the button -->\n * </template>\n * </ScalarSidebarItem>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport type { ScalarSidebarItemProps, ScalarSidebarItemSlots } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\n\nconst props = defineProps<ScalarSidebarItemProps>()\n\ndefineSlots<ScalarSidebarItemSlots>()\n\nconst { level } = useSidebarGroups()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <li v-bind=\"cx('group/item flex flex-col text-base')\">\n <slot name=\"before\" />\n <slot\n :level=\"level\"\n name=\"button\">\n <ScalarSidebarButton\n v-bind=\"props\"\n :indent=\"indent ?? level\">\n <!-- Pass through all the slots -->\n <template\n v-if=\"$slots.default\"\n #default>\n <slot />\n </template>\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot name=\"icon\" />\n </template>\n <template\n v-if=\"$slots.aside\"\n #aside>\n <slot name=\"aside\" />\n </template>\n </ScalarSidebarButton>\n </slot>\n <slot name=\"after\" />\n </li>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Item component\n *\n * Provides a ScalarSidebarButton wrapped in an `<li>` to\n * meet accessibility requirements and automatically indents\n * the button based on the level of the sidebar group\n *\n * @example\n * <ScalarSidebarItem>\n * <template #icon>\n * <!-- Overrides the icon slot -->\n * </template>\n * <!-- Button text -->\n * <template #aside>\n * <!-- After the button text -->\n * </template>\n * <!-- Content to display before the button but inside the list item -->\n * <template #before>\n * <!-- Before the button -->\n * </template>\n * <!-- Content to display after the button but inside the list item -->\n * <template #after>\n * <!-- After the button -->\n * </template>\n * </ScalarSidebarItem>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport type { ScalarSidebarItemProps, ScalarSidebarItemSlots } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\n\nconst props = defineProps<ScalarSidebarItemProps>()\n\ndefineSlots<ScalarSidebarItemSlots>()\n\nconst { level } = useSidebarGroups()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <li v-bind=\"cx('group/item flex flex-col text-base')\">\n <slot name=\"before\" />\n <slot\n :level=\"level\"\n name=\"button\">\n <ScalarSidebarButton\n v-bind=\"props\"\n :indent=\"indent ?? level\">\n <!-- Pass through all the slots -->\n <template\n v-if=\"$slots.default\"\n #default>\n <slot />\n </template>\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot name=\"icon\" />\n </template>\n <template\n v-if=\"$slots.aside\"\n #aside>\n <slot name=\"aside\" />\n </template>\n </ScalarSidebarButton>\n </slot>\n <slot name=\"after\" />\n </li>\n</template>\n","import { type InjectionKey, type Ref, computed, inject, onBeforeUnmount, provide, ref } from 'vue'\n\n/**\n * Tracks the open state of the nearest nested child items\n */\nconst SIDEBAR_NESTED_ITEMS_SYMBOL = Symbol() as InjectionKey<Ref<Ref<boolean>[]>>\n\n/**\n * Get the open / closed model for the nearest nested child items\n */\nexport const useSidebarNestedItem = (\n /** The model defining the open state of the current nested items */\n open: Ref<boolean>,\n): void => {\n const parentList = inject(SIDEBAR_NESTED_ITEMS_SYMBOL)\n if (parentList) {\n // Add this child to the parent list when the component is mounted\n parentList.value.push(open)\n\n onBeforeUnmount(() => {\n // Remove this child from the parent list when the component is unmounted\n parentList.value = parentList.value.filter((child) => child !== open)\n })\n }\n}\n/**\n * Get whether or not any nested child items are open\n */\nexport const useSidebarNestedItems = () => {\n // Create a new ref for any child nested items to update\n const children = ref<Ref<boolean>[]>([])\n const open = computed(() => children.value.some((child) => child.value))\n provide(SIDEBAR_NESTED_ITEMS_SYMBOL, children)\n\n return {\n /** Whether or not any nested child items are open */\n open,\n }\n}\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Items component\n *\n * A base container for ScalarSidebarItem(s), renders as\n * a `<ul>` by default to meet accessibility requirements\n *\n * @example\n * <ScalarSidebarItems>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </ScalarSidebarItems>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport { useSidebarNestedItems } from './useSidebarNestedItems'\n\nconst { is = 'ul' } = defineProps<{\n is?: Component | string\n}>()\n\nconst { open } = useSidebarNestedItems()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n v-bind=\"\n cx(\n 'group/items relative flex flex-col p-3 gap-px transition-transform duration-300',\n open ? '-translate-x-full' : 'translate-x-0',\n )\n \">\n <slot />\n </component>\n</template>\n<style>\n@reference \"../../style.css\";\n\n/* Hide the buttons from the keyboard when a nested item is open */\n.group\\/items.-translate-x-full .group\\/button {\n /* Required to prevent the button from being focused */\n display: none;\n /* Required to prevent the button from taking up scroll space */\n max-height: 0;\n\n transition-property: display, max-height;\n transition-behavior: allow-discrete;\n transition-duration: 0s;\n transition-delay: 300ms;\n}\n\n/* Show the buttons within a nested item when it is open */\n.group\\/item.group\\/nested-items-open\n > *\n > .group\\/items.translate-x-0\n .group\\/button {\n max-height: calc(infinity * 1px);\n display: flex;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Items component\n *\n * A base container for ScalarSidebarItem(s), renders as\n * a `<ul>` by default to meet accessibility requirements\n *\n * @example\n * <ScalarSidebarItems>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </ScalarSidebarItems>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport type { Component } from 'vue'\n\nimport { useSidebarNestedItems } from './useSidebarNestedItems'\n\nconst { is = 'ul' } = defineProps<{\n is?: Component | string\n}>()\n\nconst { open } = useSidebarNestedItems()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n v-bind=\"\n cx(\n 'group/items relative flex flex-col p-3 gap-px transition-transform duration-300',\n open ? '-translate-x-full' : 'translate-x-0',\n )\n \">\n <slot />\n </component>\n</template>\n<style>\n@reference \"../../style.css\";\n\n/* Hide the buttons from the keyboard when a nested item is open */\n.group\\/items.-translate-x-full .group\\/button {\n /* Required to prevent the button from being focused */\n display: none;\n /* Required to prevent the button from taking up scroll space */\n max-height: 0;\n\n transition-property: display, max-height;\n transition-behavior: allow-discrete;\n transition-duration: 0s;\n transition-delay: 300ms;\n}\n\n/* Show the buttons within a nested item when it is open */\n.group\\/item.group\\/nested-items-open\n > *\n > .group\\/items.translate-x-0\n .group\\/button {\n max-height: calc(infinity * 1px);\n display: flex;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Spacer component\n *\n * Provide a styled spacer for the ScalarSidebar, handles the indent lines for nested groups\n *\n *\n *\n * @example\n * <ScalarSidebarSpacer />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarIndent from './ScalarSidebarIndent.vue'\nimport type { SidebarGroupLevel } from './useSidebarGroups'\n\nconst { indent = 0 } = defineProps<{ indent?: SidebarGroupLevel }>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex px-2 h-1')\">\n <ScalarSidebarIndent :indent=\"indent\" />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Spacer component\n *\n * Provide a styled spacer for the ScalarSidebar, handles the indent lines for nested groups\n *\n *\n *\n * @example\n * <ScalarSidebarSpacer />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarIndent from './ScalarSidebarIndent.vue'\nimport type { SidebarGroupLevel } from './useSidebarGroups'\n\nconst { indent = 0 } = defineProps<{ indent?: SidebarGroupLevel }>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('flex px-2 h-1')\">\n <ScalarSidebarIndent :indent=\"indent\" />\n </div>\n</template>\n","/**\n * Get the normalized overflow values for both directions from an element.\n */\nfunction getOverflowValues(element: HTMLElement) {\n const style = window.getComputedStyle(element)\n const [x, y] = style.overflow.split(' ')\n\n return {\n x: style.overflowX || x,\n y: style.overflowY || y || x,\n }\n}\n\n/**\n * Find the nearest scrollable parent of an element.\n */\nexport function findScrollContainer(element?: HTMLElement | null, direction: 'x' | 'y' = 'y') {\n if (!element) {\n return document.documentElement\n }\n\n let parent = element.parentElement\n while (parent) {\n const overflowValues = getOverflowValues(parent)\n const value = overflowValues[direction]\n\n if (value === 'auto' || value === 'scroll') {\n return parent\n }\n parent = parent.parentElement\n }\n\n return document.documentElement\n}\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Nested Items component\n *\n * A provides list of items thats presented over the parent list\n * Needs to be nested inside a ScalarSidebarItems component\n *\n * @example\n * <ScalarSidebarNestedItems v-model=\"open\">\n * <!-- Item text -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarNestedItems>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconArrowRight, ScalarIconCaretLeft } from '@scalar/icons'\nimport { nextTick, ref, useTemplateRef } from 'vue'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarItems from './ScalarSidebarItems.vue'\nimport ScalarSidebarSpacer from './ScalarSidebarSpacer.vue'\nimport { findScrollContainer } from './findScrollContainer'\nimport type { ScalarSidebarGroupProps } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\nimport { useSidebarNestedItem } from './useSidebarNestedItems'\n\nconst { controlled } = defineProps<ScalarSidebarGroupProps>()\n\nconst emit = defineEmits<{\n /** Emitted when the nested item button is clicked */\n (e: 'click', event: MouseEvent): void\n /** Emitted when the back button is clicked */\n (e: 'back', event: MouseEvent): void\n}>()\n\nconst open = defineModel<boolean>('open', { default: false })\nuseSidebarNestedItem(open)\n\ndefineSlots<{\n /** The text content of the button */\n 'default'?: () => unknown\n /** Override the entire button */\n 'button'?: () => unknown\n /** Override the icon */\n 'icon'?: () => unknown\n /** Override the aside slot */\n 'aside'?: () => unknown\n /** Override the back button */\n 'back'?: () => unknown\n /** Override the back button label */\n 'back-label'?: () => unknown\n /** The list of sidebar subitems */\n 'items'?: () => unknown\n}>()\n\nconst { level } = useSidebarGroups({ reset: true })\n\n/** The root element ref */\nconst el = useTemplateRef('el')\n\n/** How far down to offset the nested items by when animating them in */\nconst offset = ref(0)\n\n// Transition hooks\n\nfunction onOpen() {\n // Calculate how far down the nearest scroll container is scrolled\n // We offset the nested items by this amount when animating them\n // in so they appear in line with the parent items list.\n offset.value = findScrollContainer(el.value).scrollTop ?? 0\n\n // Focus the first button in the nested items\n nextTick(() =>\n el.value\n ?.querySelector<HTMLButtonElement>('button:not([aria-expanded=\"true\"])')\n ?.focus({ preventScroll: true }),\n )\n}\nfunction onClose() {\n nextTick(() => {\n el.value?.querySelector('button')?.focus({ preventScroll: true })\n findScrollContainer(el.value).scrollTop = offset.value\n })\n}\n\ndefineOptions({ inheritAttrs: false })\n\n/** Handle the click event for the nested items button */\nconst handleClick = (event: MouseEvent) => {\n // Bubble up the click event\n emit('click', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = true\n }\n}\n\n/** Handle the back button click event */\nconst handleBack = (event: MouseEvent) => {\n // Bubble up the back event\n emit('back', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = false\n }\n}\n</script>\n<template>\n <li\n ref=\"el\"\n class=\"group/item group/nested-items contents\"\n :class=\"{ 'group/nested-items-open': open }\"\n :style=\"{ '--nested-items-offset': `${offset}px` }\">\n <slot name=\"button\">\n <ScalarSidebarButton\n is=\"button\"\n :aria-expanded=\"open\"\n :disabled\n :icon\n :indent=\"level\"\n :selected\n v-bind=\"$attrs\"\n @click=\"handleClick\">\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot name=\"icon\" />\n </template>\n <slot />\n <template #aside>\n <slot name=\"aside\">\n <ScalarIconArrowRight class=\"size-4 text-sidebar-c-2\" />\n </slot>\n </template>\n </ScalarSidebarButton>\n </slot>\n <!-- Make sure the div is around for the entire transition -->\n <Transition\n :duration=\"300\"\n enterActiveClass=\"top-(--nested-items-offset)\"\n leaveActiveClass=\"top-(--nested-items-offset)\"\n @enter=\"onOpen\"\n @leave=\"onClose\">\n <div\n v-if=\"open\"\n class=\"absolute inset-0 translate-x-full\">\n <ScalarSidebarItems v-bind=\"$attrs\">\n <slot name=\"back\">\n <ScalarSidebarButton\n is=\"button\"\n class=\"text-sidebar-c-1 font-sidebar-active hover:text-sidebar-c-1\"\n @click=\"handleBack\">\n <template #icon>\n <ScalarIconCaretLeft class=\"size-4 -m-px text-sidebar-c-2\" />\n </template>\n <slot name=\"back-label\">Back</slot>\n </ScalarSidebarButton>\n </slot>\n <ScalarSidebarSpacer class=\"h-3\" />\n <slot name=\"items\" />\n </ScalarSidebarItems>\n </div>\n </Transition>\n </li>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Nested Items component\n *\n * A provides list of items thats presented over the parent list\n * Needs to be nested inside a ScalarSidebarItems component\n *\n * @example\n * <ScalarSidebarNestedItems v-model=\"open\">\n * <!-- Item text -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarNestedItems>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconArrowRight, ScalarIconCaretLeft } from '@scalar/icons'\nimport { nextTick, ref, useTemplateRef } from 'vue'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarItems from './ScalarSidebarItems.vue'\nimport ScalarSidebarSpacer from './ScalarSidebarSpacer.vue'\nimport { findScrollContainer } from './findScrollContainer'\nimport type { ScalarSidebarGroupProps } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\nimport { useSidebarNestedItem } from './useSidebarNestedItems'\n\nconst { controlled } = defineProps<ScalarSidebarGroupProps>()\n\nconst emit = defineEmits<{\n /** Emitted when the nested item button is clicked */\n (e: 'click', event: MouseEvent): void\n /** Emitted when the back button is clicked */\n (e: 'back', event: MouseEvent): void\n}>()\n\nconst open = defineModel<boolean>('open', { default: false })\nuseSidebarNestedItem(open)\n\ndefineSlots<{\n /** The text content of the button */\n 'default'?: () => unknown\n /** Override the entire button */\n 'button'?: () => unknown\n /** Override the icon */\n 'icon'?: () => unknown\n /** Override the aside slot */\n 'aside'?: () => unknown\n /** Override the back button */\n 'back'?: () => unknown\n /** Override the back button label */\n 'back-label'?: () => unknown\n /** The list of sidebar subitems */\n 'items'?: () => unknown\n}>()\n\nconst { level } = useSidebarGroups({ reset: true })\n\n/** The root element ref */\nconst el = useTemplateRef('el')\n\n/** How far down to offset the nested items by when animating them in */\nconst offset = ref(0)\n\n// Transition hooks\n\nfunction onOpen() {\n // Calculate how far down the nearest scroll container is scrolled\n // We offset the nested items by this amount when animating them\n // in so they appear in line with the parent items list.\n offset.value = findScrollContainer(el.value).scrollTop ?? 0\n\n // Focus the first button in the nested items\n nextTick(() =>\n el.value\n ?.querySelector<HTMLButtonElement>('button:not([aria-expanded=\"true\"])')\n ?.focus({ preventScroll: true }),\n )\n}\nfunction onClose() {\n nextTick(() => {\n el.value?.querySelector('button')?.focus({ preventScroll: true })\n findScrollContainer(el.value).scrollTop = offset.value\n })\n}\n\ndefineOptions({ inheritAttrs: false })\n\n/** Handle the click event for the nested items button */\nconst handleClick = (event: MouseEvent) => {\n // Bubble up the click event\n emit('click', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = true\n }\n}\n\n/** Handle the back button click event */\nconst handleBack = (event: MouseEvent) => {\n // Bubble up the back event\n emit('back', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = false\n }\n}\n</script>\n<template>\n <li\n ref=\"el\"\n class=\"group/item group/nested-items contents\"\n :class=\"{ 'group/nested-items-open': open }\"\n :style=\"{ '--nested-items-offset': `${offset}px` }\">\n <slot name=\"button\">\n <ScalarSidebarButton\n is=\"button\"\n :aria-expanded=\"open\"\n :disabled\n :icon\n :indent=\"level\"\n :selected\n v-bind=\"$attrs\"\n @click=\"handleClick\">\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot name=\"icon\" />\n </template>\n <slot />\n <template #aside>\n <slot name=\"aside\">\n <ScalarIconArrowRight class=\"size-4 text-sidebar-c-2\" />\n </slot>\n </template>\n </ScalarSidebarButton>\n </slot>\n <!-- Make sure the div is around for the entire transition -->\n <Transition\n :duration=\"300\"\n enterActiveClass=\"top-(--nested-items-offset)\"\n leaveActiveClass=\"top-(--nested-items-offset)\"\n @enter=\"onOpen\"\n @leave=\"onClose\">\n <div\n v-if=\"open\"\n class=\"absolute inset-0 translate-x-full\">\n <ScalarSidebarItems v-bind=\"$attrs\">\n <slot name=\"back\">\n <ScalarSidebarButton\n is=\"button\"\n class=\"text-sidebar-c-1 font-sidebar-active hover:text-sidebar-c-1\"\n @click=\"handleBack\">\n <template #icon>\n <ScalarIconCaretLeft class=\"size-4 -m-px text-sidebar-c-2\" />\n </template>\n <slot name=\"back-label\">Back</slot>\n </ScalarSidebarButton>\n </slot>\n <ScalarSidebarSpacer class=\"h-3\" />\n <slot name=\"items\" />\n </ScalarSidebarItems>\n </div>\n </Transition>\n </li>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n role=\"search\"\n type=\"button\"\n v-bind=\"\n cx(\n 'flex items-center rounded border text-base h-8 gap-1 pl-2 pr-1',\n 'bg-sidebar-b-search border-sidebar-border-search text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"size-4\" />\n <span class=\"flex-1 text-left leading-none\">\n <slot>Search...</slot>\n </span>\n <span\n v-if=\"$slots.shortcut\"\n class=\"uppercase text-sidebar-c-2 leading-none py-1 px-1.25 rounded text-xs font-medium border\">\n <span class=\"sr-only\">Keyboard Shortcut:</span>\n <kbd>\n <slot name=\"shortcut\" />\n </kbd>\n </span>\n </button>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n role=\"search\"\n type=\"button\"\n v-bind=\"\n cx(\n 'flex items-center rounded border text-base h-8 gap-1 pl-2 pr-1',\n 'bg-sidebar-b-search border-sidebar-border-search text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"size-4\" />\n <span class=\"flex-1 text-left leading-none\">\n <slot>Search...</slot>\n </span>\n <span\n v-if=\"$slots.shortcut\"\n class=\"uppercase text-sidebar-c-2 leading-none py-1 px-1.25 rounded text-xs font-medium border\">\n <span class=\"sr-only\">Keyboard Shortcut:</span>\n <kbd>\n <slot name=\"shortcut\" />\n </kbd>\n </span>\n </button>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass, ScalarIconX } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onMounted, ref } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\nconst { autofocus } = defineProps<{\n autofocus?: boolean\n loader?: LoadingState\n label?: string\n}>()\n\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nconst model = defineModel<string>()\n\nfunction handleClear() {\n model.value = ''\n // Push focus back to the input\n if (inputRef.value) {\n inputRef.value.focus()\n }\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => autofocus && inputRef.value?.focus())\n</script>\n<template>\n <label\n v-bind=\"\n stylingAttrsCx(\n 'flex items-center rounded border text-base has-[:focus-visible]:bg-sidebar-b-1 has-[:focus-visible]:outline h-8 gap-1 pl-2 pr-1.5',\n 'bg-sidebar-b-search border-sidebar-border-search',\n model ? 'text-sidebar-c-1' : 'text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"text-sidebar-c-search size-4\" />\n <input\n ref=\"inputRef\"\n v-bind=\"otherAttrs\"\n v-model=\"model\"\n :aria-label=\"label ?? 'Enter search query'\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n class=\"flex-1 appearance-none rounded border-none bg-transparent outline-none\"\n placeholder=\"Search...\"\n spellcheck=\"false\"\n type=\"search\" />\n <ScalarLoading\n v-if=\"loader && loader.isActive\"\n class=\"mr-3 self-center\"\n :loader\n size=\"md\" />\n <ScalarIconButton\n v-else-if=\"model\"\n class=\"p-0.25 size-4\"\n :icon=\"ScalarIconX\"\n label=\"Clear Search\"\n weight=\"bold\"\n @click.stop.prevent=\"handleClear\" />\n </label>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass, ScalarIconX } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onMounted, ref } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\nconst { autofocus } = defineProps<{\n autofocus?: boolean\n loader?: LoadingState\n label?: string\n}>()\n\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nconst model = defineModel<string>()\n\nfunction handleClear() {\n model.value = ''\n // Push focus back to the input\n if (inputRef.value) {\n inputRef.value.focus()\n }\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => autofocus && inputRef.value?.focus())\n</script>\n<template>\n <label\n v-bind=\"\n stylingAttrsCx(\n 'flex items-center rounded border text-base has-[:focus-visible]:bg-sidebar-b-1 has-[:focus-visible]:outline h-8 gap-1 pl-2 pr-1.5',\n 'bg-sidebar-b-search border-sidebar-border-search',\n model ? 'text-sidebar-c-1' : 'text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"text-sidebar-c-search size-4\" />\n <input\n ref=\"inputRef\"\n v-bind=\"otherAttrs\"\n v-model=\"model\"\n :aria-label=\"label ?? 'Enter search query'\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n class=\"flex-1 appearance-none rounded border-none bg-transparent outline-none\"\n placeholder=\"Search...\"\n spellcheck=\"false\"\n type=\"search\" />\n <ScalarLoading\n v-if=\"loader && loader.isActive\"\n class=\"mr-3 self-center\"\n :loader\n size=\"md\" />\n <ScalarIconButton\n v-else-if=\"model\"\n class=\"p-0.25 size-4\"\n :icon=\"ScalarIconX\"\n label=\"Clear Search\"\n weight=\"bold\"\n @click.stop.prevent=\"handleClear\" />\n </label>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Section component\n *\n * A section of the sidebar that can contain subitems\n *\n * @example\n * <ScalarSidebarSection>\n * <!-- Section title -->\n * <template #title>\n * My Section\n * </template>\n * <!-- Section items -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarSection>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarSpacer from './ScalarSidebarSpacer.vue'\nimport type { ScalarSidebarItemProps } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\n\nconst { is = 'li' } = defineProps<ScalarSidebarItemProps>()\n\ndefineSlots<{\n /** The text content of the toggle */\n default?(): unknown\n /** The list of sidebar subitems */\n items?(): unknown\n}>()\n\nconst { level } = useSidebarGroups({ increment: false })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n v-bind=\"cx('group/item group/sidebar-section contents')\">\n <ScalarSidebarSpacer\n class=\"group/spacer-before h-3\"\n :indent=\"level\" />\n <ScalarSidebarButton\n is=\"div\"\n class=\"text-sm/4 py-1.75 font-bold\"\n disabled\n :icon=\"icon\"\n :indent=\"level\">\n <slot />\n </ScalarSidebarButton>\n <ul class=\"flex flex-col gap-px\">\n <slot name=\"items\" />\n </ul>\n <ScalarSidebarSpacer\n class=\"group/spacer-after h-3\"\n :indent=\"level\" />\n </component>\n</template>\n<style>\n@reference \"../../style.css\";\n\n/* Don't add a spacer before the first section */\n.group\\/sidebar-section:first-of-type > .group\\/spacer-before {\n @apply h-0;\n}\n\n/* Don't add a spacer after the last section */\n.group\\/sidebar-section:last-of-type > .group\\/spacer-after {\n @apply h-0;\n}\n\n/* Only one spacer between sections */\n.group\\/sidebar-section:has(+ .group\\/sidebar-section) > .group\\/spacer-after {\n @apply h-0 -mb-px;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Sidebar Section component\n *\n * A section of the sidebar that can contain subitems\n *\n * @example\n * <ScalarSidebarSection>\n * <!-- Section title -->\n * <template #title>\n * My Section\n * </template>\n * <!-- Section items -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarSection>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarSpacer from './ScalarSidebarSpacer.vue'\nimport type { ScalarSidebarItemProps } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\n\nconst { is = 'li' } = defineProps<ScalarSidebarItemProps>()\n\ndefineSlots<{\n /** The text content of the toggle */\n default?(): unknown\n /** The list of sidebar subitems */\n items?(): unknown\n}>()\n\nconst { level } = useSidebarGroups({ increment: false })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <component\n :is=\"is\"\n v-bind=\"cx('group/item group/sidebar-section contents')\">\n <ScalarSidebarSpacer\n class=\"group/spacer-before h-3\"\n :indent=\"level\" />\n <ScalarSidebarButton\n is=\"div\"\n class=\"text-sm/4 py-1.75 font-bold\"\n disabled\n :icon=\"icon\"\n :indent=\"level\">\n <slot />\n </ScalarSidebarButton>\n <ul class=\"flex flex-col gap-px\">\n <slot name=\"items\" />\n </ul>\n <ScalarSidebarSpacer\n class=\"group/spacer-after h-3\"\n :indent=\"level\" />\n </component>\n</template>\n<style>\n@reference \"../../style.css\";\n\n/* Don't add a spacer before the first section */\n.group\\/sidebar-section:first-of-type > .group\\/spacer-before {\n @apply h-0;\n}\n\n/* Don't add a spacer after the last section */\n.group\\/sidebar-section:last-of-type > .group\\/spacer-after {\n @apply h-0;\n}\n\n/* Only one spacer between sections */\n.group\\/sidebar-section:has(+ .group\\/sidebar-section) > .group\\/spacer-after {\n @apply h-0 -mb-px;\n}\n</style>\n","<script lang=\"ts\">\n/**\n * Scalar Text Area component\n *\n * A wrapper around the HTML textarea element with a focusable container.\n *\n * @example\n * <ScalarTextArea v-model=\"model\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useTextareaAutosize } from '@vueuse/core'\nimport { onMounted } from 'vue'\n\nimport { ScalarFormInput } from '../ScalarForm'\n\nconst model = defineModel<string>({ default: '' })\n\nconst { textarea } = useTextareaAutosize({\n input: model,\n styleProp: 'minHeight',\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => {\n // Force autofocus if the textarea has the autofocus attribute\n if ('autofocus' in otherAttrs.value) textarea.value?.focus()\n})\n</script>\n<template>\n <ScalarFormInput\n is=\"div\"\n v-bind=\"\n stylingAttrsCx(\n 'custom-scroll flex items-start text-c-1 min-h-0 shrink cursor-text leading-snug',\n )\n \"\n @click=\"textarea?.focus()\">\n <textarea\n ref=\"textarea\"\n v-model=\"model\"\n v-bind=\"otherAttrs\"\n class=\"w-full resize-none border-none bg-transparent text-sm focus-within:outline-none\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Text Area component\n *\n * A wrapper around the HTML textarea element with a focusable container.\n *\n * @example\n * <ScalarTextArea v-model=\"model\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useTextareaAutosize } from '@vueuse/core'\nimport { onMounted } from 'vue'\n\nimport { ScalarFormInput } from '../ScalarForm'\n\nconst model = defineModel<string>({ default: '' })\n\nconst { textarea } = useTextareaAutosize({\n input: model,\n styleProp: 'minHeight',\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => {\n // Force autofocus if the textarea has the autofocus attribute\n if ('autofocus' in otherAttrs.value) textarea.value?.focus()\n})\n</script>\n<template>\n <ScalarFormInput\n is=\"div\"\n v-bind=\"\n stylingAttrsCx(\n 'custom-scroll flex items-start text-c-1 min-h-0 shrink cursor-text leading-snug',\n )\n \"\n @click=\"textarea?.focus()\">\n <textarea\n ref=\"textarea\"\n v-model=\"model\"\n v-bind=\"otherAttrs\"\n class=\"w-full resize-none border-none bg-transparent text-sm focus-within:outline-none\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Text Input component\n *\n * A wrapper around the HTML input element with a focusable container.\n *\n * @example\n * <ScalarTextInput v-model=\"model\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onMounted, ref } from 'vue'\n\nimport { ScalarFormInput } from '../ScalarForm'\n\nconst { readonly } = defineProps<{\n readonly?: boolean\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the input is clicked */\n (e: 'click', event: MouseEvent): void\n}>()\n\ndefineSlots<{\n /* Text content to display before the input text */\n prefix?: () => unknown\n /*Text content to display after the input text */\n suffix?: () => unknown\n /* Text content to display to the right of the input */\n aside?: () => unknown\n}>()\n\nconst model = defineModel<string>()\n\nconst input = ref<HTMLInputElement>()\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => {\n // Force autofocus if the input has the autofocus attribute\n if ('autofocus' in otherAttrs.value) input.value?.focus()\n})\n\nfunction handleClick(event: MouseEvent) {\n // Re-emit the click event to any consumers\n emit('click', event)\n\n if (readonly) {\n input.value?.select() // If readonly, select the input on click\n } else {\n input.value?.focus() // If not readonly, focus the input on click\n }\n}\n</script>\n<template>\n <ScalarFormInput\n is=\"div\"\n v-bind=\"\n stylingAttrsCx(\n 'cursor-text text-c-1',\n readonly ? '' : 'focus-within:bg-b-1',\n )\n \"\n @click=\"handleClick\">\n <div class=\"flex items-center flex-1 relative\">\n <div\n v-if=\"$slots.prefix\"\n class=\"select-none whitespace-nowrap text-transparent\">\n <slot name=\"prefix\" />\n </div>\n <input\n ref=\"input\"\n v-model=\"model\"\n :aria-readonly=\"readonly || undefined\"\n class=\"z-1 min-w-0 flex-1 rounded-none border-none bg-transparent placeholder:font-[inherit] focus-within:outline-none\"\n :readonly\n v-bind=\"otherAttrs\" />\n <div\n v-if=\"$slots.prefix || $slots.suffix\"\n class=\"absolute flex items-center inset-0 select-none overflow-hidden whitespace-nowrap\">\n <span\n v-if=\"$slots.prefix\"\n class=\"text-c-2\">\n <slot name=\"prefix\" />\n </span>\n <span class=\"text-transparent\">{{ model || $attrs.placeholder }}</span>\n <span\n v-if=\"$slots.suffix\"\n class=\"text-c-2\">\n <slot name=\"suffix\" />\n </span>\n </div>\n </div>\n <slot name=\"aside\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Text Input component\n *\n * A wrapper around the HTML input element with a focusable container.\n *\n * @example\n * <ScalarTextInput v-model=\"model\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onMounted, ref } from 'vue'\n\nimport { ScalarFormInput } from '../ScalarForm'\n\nconst { readonly } = defineProps<{\n readonly?: boolean\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the input is clicked */\n (e: 'click', event: MouseEvent): void\n}>()\n\ndefineSlots<{\n /* Text content to display before the input text */\n prefix?: () => unknown\n /*Text content to display after the input text */\n suffix?: () => unknown\n /* Text content to display to the right of the input */\n aside?: () => unknown\n}>()\n\nconst model = defineModel<string>()\n\nconst input = ref<HTMLInputElement>()\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => {\n // Force autofocus if the input has the autofocus attribute\n if ('autofocus' in otherAttrs.value) input.value?.focus()\n})\n\nfunction handleClick(event: MouseEvent) {\n // Re-emit the click event to any consumers\n emit('click', event)\n\n if (readonly) {\n input.value?.select() // If readonly, select the input on click\n } else {\n input.value?.focus() // If not readonly, focus the input on click\n }\n}\n</script>\n<template>\n <ScalarFormInput\n is=\"div\"\n v-bind=\"\n stylingAttrsCx(\n 'cursor-text text-c-1',\n readonly ? '' : 'focus-within:bg-b-1',\n )\n \"\n @click=\"handleClick\">\n <div class=\"flex items-center flex-1 relative\">\n <div\n v-if=\"$slots.prefix\"\n class=\"select-none whitespace-nowrap text-transparent\">\n <slot name=\"prefix\" />\n </div>\n <input\n ref=\"input\"\n v-model=\"model\"\n :aria-readonly=\"readonly || undefined\"\n class=\"z-1 min-w-0 flex-1 rounded-none border-none bg-transparent placeholder:font-[inherit] focus-within:outline-none\"\n :readonly\n v-bind=\"otherAttrs\" />\n <div\n v-if=\"$slots.prefix || $slots.suffix\"\n class=\"absolute flex items-center inset-0 select-none overflow-hidden whitespace-nowrap\">\n <span\n v-if=\"$slots.prefix\"\n class=\"text-c-2\">\n <slot name=\"prefix\" />\n </span>\n <span class=\"text-transparent\">{{ model || $attrs.placeholder }}</span>\n <span\n v-if=\"$slots.suffix\"\n class=\"text-c-2\">\n <slot name=\"suffix\" />\n </span>\n </div>\n </div>\n <slot name=\"aside\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Text Input Copy component\n *\n * A wrapper around the ScalarTextInput component that provides a\n * copy button and allows copying of the input content to the clipboard.\n *\n * @example\n * <ScalarTextInputCopy v-model=\"model\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useClipboard } from '@vueuse/core'\nimport { onMounted, watch } from 'vue'\n\nimport { ScalarCopyBackdrop, ScalarCopyButton } from '../ScalarCopy'\nimport ScalarTextInput from './ScalarTextInput.vue'\n\nconst { duration = 1500, immediate } = defineProps<{\n /** The placement of the copy button */\n duration?: number\n /** Whether the input is writable */\n editable?: boolean\n /** Whether to copy the model value immediately on mount */\n immediate?: boolean\n}>()\n\ndefineSlots<{\n /* Text content to display before the input text */\n prefix?: () => unknown\n /*Text content to display after the input text */\n suffix?: () => unknown\n /* Text content to display to the right of the input */\n aside?: () => unknown\n /* Override the label for the copy button */\n copy?: () => unknown\n /* Override the label for the copy button when the content has been copied */\n copied?: () => unknown\n}>()\n\nonMounted(() => {\n // Copy the model value immediately on mount if immediate is true\n if (immediate && model.value) copy(model.value)\n})\n\nconst model = defineModel<string>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\nconst { copy, copied: clipboardCopied } = useClipboard({\n legacy: true,\n copiedDuring: duration,\n})\n\n/** Watch the clipboard copied state and emit it to the consuming component */\nwatch(clipboardCopied, (v) => (copied.value = v))\n</script>\n<template>\n <ScalarTextInput\n v-model=\"model\"\n :readonly=\"!editable\"\n @click=\"model && copy(model)\">\n <template #aside>\n <ScalarCopyButton\n class=\"z-1\"\n :copied=\"copied || clipboardCopied\"\n placement=\"left\"\n @click.stop=\"model && copy(model)\">\n <template\n v-if=\"$slots.copy\"\n #copy>\n <slot name=\"copy\" />\n </template>\n <template\n v-if=\"$slots.copied\"\n #copied>\n <slot name=\"copied\" />\n </template>\n <template #backdrop>\n <ScalarCopyBackdrop class=\"bg-b-1.5\" />\n </template>\n </ScalarCopyButton>\n </template>\n </ScalarTextInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Text Input Copy component\n *\n * A wrapper around the ScalarTextInput component that provides a\n * copy button and allows copying of the input content to the clipboard.\n *\n * @example\n * <ScalarTextInputCopy v-model=\"model\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useClipboard } from '@vueuse/core'\nimport { onMounted, watch } from 'vue'\n\nimport { ScalarCopyBackdrop, ScalarCopyButton } from '../ScalarCopy'\nimport ScalarTextInput from './ScalarTextInput.vue'\n\nconst { duration = 1500, immediate } = defineProps<{\n /** The placement of the copy button */\n duration?: number\n /** Whether the input is writable */\n editable?: boolean\n /** Whether to copy the model value immediately on mount */\n immediate?: boolean\n}>()\n\ndefineSlots<{\n /* Text content to display before the input text */\n prefix?: () => unknown\n /*Text content to display after the input text */\n suffix?: () => unknown\n /* Text content to display to the right of the input */\n aside?: () => unknown\n /* Override the label for the copy button */\n copy?: () => unknown\n /* Override the label for the copy button when the content has been copied */\n copied?: () => unknown\n}>()\n\nonMounted(() => {\n // Copy the model value immediately on mount if immediate is true\n if (immediate && model.value) copy(model.value)\n})\n\nconst model = defineModel<string>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\nconst { copy, copied: clipboardCopied } = useClipboard({\n legacy: true,\n copiedDuring: duration,\n})\n\n/** Watch the clipboard copied state and emit it to the consuming component */\nwatch(clipboardCopied, (v) => (copied.value = v))\n</script>\n<template>\n <ScalarTextInput\n v-model=\"model\"\n :readonly=\"!editable\"\n @click=\"model && copy(model)\">\n <template #aside>\n <ScalarCopyButton\n class=\"z-1\"\n :copied=\"copied || clipboardCopied\"\n placement=\"left\"\n @click.stop=\"model && copy(model)\">\n <template\n v-if=\"$slots.copy\"\n #copy>\n <slot name=\"copy\" />\n </template>\n <template\n v-if=\"$slots.copied\"\n #copied>\n <slot name=\"copied\" />\n </template>\n <template #backdrop>\n <ScalarCopyBackdrop class=\"bg-b-1.5\" />\n </template>\n </ScalarCopyButton>\n </template>\n </ScalarTextInput>\n</template>\n","import { type MaybeRefOrGetter, computed, toValue } from 'vue'\n\n/** Numbers 1 to 3 */\ntype OneToThree = 1 | 2 | 3\n\n/**\n * CSS variable names that can be extracted from theme CSS\n */\ntype ThemeCssVar = `--scalar-color-${OneToThree}` | `--scalar-background-${OneToThree}` | '--scalar-color-accent'\n\n/**\n * Theme colors for light and dark modes\n */\ntype ThemeColors = {\n light: ThemeCssVars\n dark: ThemeCssVars\n}\n\n/**\n * Record of theme CSS variables to their values (partial)\n */\ntype ThemeCssVars = Partial<Record<ThemeCssVar, string>>\n\n/** Theme CSS variables */\nexport const THEME_CSS_VARS = [\n '--scalar-color-1',\n '--scalar-color-2',\n '--scalar-color-3',\n '--scalar-background-1',\n '--scalar-background-2',\n '--scalar-background-3',\n '--scalar-color-accent',\n] as const satisfies ThemeCssVar[]\n\n/**\n * Parses a given css string for a css variable regexp\n */\nfunction getVars(cssVarPattern: string, css: string): Partial<Record<ThemeCssVar, string>> {\n const matches = [...css.matchAll(new RegExp(`(${cssVarPattern}): ([^;]+);`, 'gm'))]\n if (matches.length === 0) {\n return {}\n }\n return Object.fromEntries(matches.map((match) => [match[1], match[2]]))\n}\n\n/**\n * Parses a given css string for the variables we want\n */\nfunction parseRules(css?: string): ThemeCssVars {\n if (!css) {\n return {}\n }\n return {\n ...getVars('--scalar-color-[1-3]', css),\n ...getVars('--scalar-background-[1-3]', css),\n ...getVars('--scalar-color-accent', css),\n } as ThemeCssVars\n}\n\n/**\n * Returns the light and dark colors for a given css string\n */\nexport function useThemeSwatches(css: MaybeRefOrGetter<string>) {\n return {\n colors: computed<ThemeColors>(() => ({\n light: parseRules(toValue(css).match(/\\.light-mode[^{]*{[^}]*}/m)?.[0]),\n dark: parseRules(toValue(css).match(/\\.dark-mode[^{]*{[^}]*}/m)?.[0]),\n })),\n }\n}\n","<script lang=\"ts\">\n/**\n * Scalar Theme Swatches component\n *\n * Displays the light and dark mode swatches for a given theme CSS string\n *\n * @example\n * <ScalarThemeSwatches :css=\"theme\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { THEME_CSS_VARS, useThemeSwatches } from './useThemeSwatches'\n\nconst { css } = defineProps<{\n css: string\n}>()\n\nconst { colors } = useThemeSwatches(() => css)\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n :style=\"{\n '--bg-light': colors.light['--scalar-background-1'],\n '--bg-dark': colors.dark['--scalar-background-1'],\n }\"\n v-bind=\"\n cx(\n 'flex *:size-3 overflow-hidden rounded',\n 'bg-(--bg-light) dark:bg-(--bg-dark)',\n )\n \">\n <div\n v-for=\"v in THEME_CSS_VARS\"\n :key=\"v\"\n class=\"bg-(--bg-light) dark:bg-(--bg-dark)\"\n :style=\"{ '--bg-light': colors.light[v], '--bg-dark': colors.dark[v] }\" />\n </div>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Theme Swatches component\n *\n * Displays the light and dark mode swatches for a given theme CSS string\n *\n * @example\n * <ScalarThemeSwatches :css=\"theme\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { THEME_CSS_VARS, useThemeSwatches } from './useThemeSwatches'\n\nconst { css } = defineProps<{\n css: string\n}>()\n\nconst { colors } = useThemeSwatches(() => css)\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n :style=\"{\n '--bg-light': colors.light['--scalar-background-1'],\n '--bg-dark': colors.dark['--scalar-background-1'],\n }\"\n v-bind=\"\n cx(\n 'flex *:size-3 overflow-hidden rounded',\n 'bg-(--bg-light) dark:bg-(--bg-dark)',\n )\n \">\n <div\n v-for=\"v in THEME_CSS_VARS\"\n :key=\"v\"\n class=\"bg-(--bg-light) dark:bg-(--bg-dark)\"\n :style=\"{ '--bg-light': colors.light[v], '--bg-dark': colors.dark[v] }\" />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nconst props = defineProps<{\n disabled?: boolean\n label?: string\n}>()\n\nconst model = defineModel<boolean>({ default: false })\n\nfunction toggle() {\n if (props.disabled) {\n return\n }\n model.value = !model.value\n}\n\nconst variants = cva({\n base: 'relative h-3.5 min-w-6 w-6 cursor-pointer rounded-full bg-b-3 transition-colors duration-300',\n variants: {\n checked: { true: 'bg-c-accent' },\n disabled: { true: 'cursor-not-allowed opacity-40' },\n },\n})\n</script>\n<template>\n <button\n :aria-checked=\"model\"\n :aria-disabled=\"disabled\"\n :class=\"cx(variants({ checked: model, disabled }))\"\n role=\"switch\"\n type=\"button\"\n @click=\"toggle\">\n <div\n class=\"absolute left-px top-px flex h-3 w-3 items-center justify-center rounded-full bg-b-1 text-c-accent transition-transform duration-300\"\n :class=\"{ 'translate-x-2.5': model }\" />\n <span\n v-if=\"label\"\n class=\"sr-only\">\n {{ label }}\n </span>\n </button>\n</template>\n","<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nconst props = defineProps<{\n disabled?: boolean\n label?: string\n}>()\n\nconst model = defineModel<boolean>({ default: false })\n\nfunction toggle() {\n if (props.disabled) {\n return\n }\n model.value = !model.value\n}\n\nconst variants = cva({\n base: 'relative h-3.5 min-w-6 w-6 cursor-pointer rounded-full bg-b-3 transition-colors duration-300',\n variants: {\n checked: { true: 'bg-c-accent' },\n disabled: { true: 'cursor-not-allowed opacity-40' },\n },\n})\n</script>\n<template>\n <button\n :aria-checked=\"model\"\n :aria-disabled=\"disabled\"\n :class=\"cx(variants({ checked: model, disabled }))\"\n role=\"switch\"\n type=\"button\"\n @click=\"toggle\">\n <div\n class=\"absolute left-px top-px flex h-3 w-3 items-center justify-center rounded-full bg-b-1 text-c-accent transition-transform duration-300\"\n :class=\"{ 'translate-x-2.5': model }\" />\n <span\n v-if=\"label\"\n class=\"sr-only\">\n {{ label }}\n </span>\n </button>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Toggle Input component\n *\n * A create a toggle input component for use in forms.\n *\n * @example\n * <ScalarToggleInput v-model=\"model\" type=\"checkbox\">\n * Label\n * </ScalarToggleInput>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarFormInput } from '../ScalarForm'\nimport ScalarToggle from './ScalarToggle.vue'\n\nconst model = defineModel<boolean>()\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n</script>\n<template>\n <ScalarFormInput\n is=\"label\"\n v-bind=\"\n stylingAttrsCx('cursor-pointer gap-2 hover:bg-b-2', { 'text-c-1': model })\n \">\n <div class=\"flex-1 text-left min-w-0 truncate\"><slot /></div>\n <ScalarToggle\n v-model=\"model\"\n class=\"shrink-0\"\n v-bind=\"otherAttrs\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Toggle Input component\n *\n * A create a toggle input component for use in forms.\n *\n * @example\n * <ScalarToggleInput v-model=\"model\" type=\"checkbox\">\n * Label\n * </ScalarToggleInput>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarFormInput } from '../ScalarForm'\nimport ScalarToggle from './ScalarToggle.vue'\n\nconst model = defineModel<boolean>()\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n</script>\n<template>\n <ScalarFormInput\n is=\"label\"\n v-bind=\"\n stylingAttrsCx('cursor-pointer gap-2 hover:bg-b-2', { 'text-c-1': model })\n \">\n <div class=\"flex-1 text-left min-w-0 truncate\"><slot /></div>\n <ScalarToggle\n v-model=\"model\"\n class=\"shrink-0\"\n v-bind=\"otherAttrs\" />\n </ScalarFormInput>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Toggle Group component\n *\n * A group of toggle inputs allowing for multiple selections.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { ScalarCheckboxOption } from '../ScalarCheckboxInput'\nimport { ScalarFormInputGroup } from '../ScalarForm'\nimport ScalarToggleInput from './ScalarToggleInput.vue'\n\nconst { options = [] } = defineProps<{\n options?: ScalarCheckboxOption[]\n}>()\n\nconst model = defineModel<ScalarCheckboxOption[]>({ default: [] })\n</script>\n<template>\n <ScalarFormInputGroup>\n <ScalarToggleInput\n v-for=\"option in options\"\n :key=\"option.value\"\n :modelValue=\"model?.some(({ value }) => value === option.value)\"\n @update:modelValue=\"\n (checked) =>\n (model = checked\n ? [...model, option]\n : model.filter(({ value }) => value !== option.value))\n \">\n {{ option.label }}\n </ScalarToggleInput>\n </ScalarFormInputGroup>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Toggle Group component\n *\n * A group of toggle inputs allowing for multiple selections.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { ScalarCheckboxOption } from '../ScalarCheckboxInput'\nimport { ScalarFormInputGroup } from '../ScalarForm'\nimport ScalarToggleInput from './ScalarToggleInput.vue'\n\nconst { options = [] } = defineProps<{\n options?: ScalarCheckboxOption[]\n}>()\n\nconst model = defineModel<ScalarCheckboxOption[]>({ default: [] })\n</script>\n<template>\n <ScalarFormInputGroup>\n <ScalarToggleInput\n v-for=\"option in options\"\n :key=\"option.value\"\n :modelValue=\"model?.some(({ value }) => value === option.value)\"\n @update:modelValue=\"\n (checked) =>\n (model = checked\n ? [...model, option]\n : model.filter(({ value }) => value !== option.value))\n \">\n {{ option.label }}\n </ScalarToggleInput>\n </ScalarFormInputGroup>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, onMounted, ref, watchEffect } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n /** Text to display */\n text: string\n /**\n * Height of each line\n * @default 20\n */\n lineHeight?: number\n containerClass?: string\n contentClass?: string\n lineClass?: string\n }>(),\n {\n lineHeight: 20,\n containerClass: '',\n contentClass: '',\n lineClass: '',\n },\n)\n\nconst containerRef = ref<HTMLElement | null>(null)\nconst contentRef = ref<HTMLElement | null>(null)\nconst scrollPosition = ref(0)\nconst containerHeight = ref(0)\n\n/** Array of text broken into lines */\nconst lines = computed(() => props.text.split('\\n'))\n/**\n * Total height of all lines combined\n *\n * TODO: there is a problem with this calculation which screws up the scrollbar a bit\n */\nconst totalHeight = computed(() => lines.value.length * props.lineHeight)\n\n/** Index of the first visible line */\nconst visibleStartIndex = computed(() =>\n Math.floor(scrollPosition.value / props.lineHeight),\n)\n\n/** Index of the last visible line */\nconst visibleEndIndex = computed(() =>\n Math.min(\n Math.ceil(\n (scrollPosition.value + containerHeight.value) / props.lineHeight,\n ),\n lines.value.length,\n ),\n)\n\n/** Array of visible lines, including buffer for smooth scrolling */\nconst visibleLines = computed(() => {\n const buffer = 10\n const start = Math.max(0, visibleStartIndex.value - buffer)\n const end = Math.min(lines.value.length, visibleEndIndex.value + buffer)\n\n return lines.value.slice(start, end)\n})\n\n/** Style object for the content container, controls \"scrolling\" */\nconst contentStyle = computed(() => ({\n height: `${totalHeight.value}px`,\n transform: `translateY(${Math.max(0, visibleStartIndex.value - 10) * props.lineHeight}px)`,\n}))\n\n/** Updates the scroll position when the container is scrolled */\nconst handleScroll = () =>\n containerRef.value && (scrollPosition.value = containerRef.value.scrollTop)\n\n/** Updates the container height when the window is resized */\nconst updateContainerHeight = () =>\n containerRef.value &&\n (containerHeight.value = containerRef.value.clientHeight)\n\nonMounted(() => {\n updateContainerHeight()\n window.addEventListener('resize', updateContainerHeight)\n})\n\nonBeforeUnmount(() => {\n window.removeEventListener('resize', updateContainerHeight)\n})\n\nwatchEffect(() => {\n if (!contentRef.value) {\n return\n }\n\n contentRef.value.style.transform = `translateY(${Math.max(0, visibleStartIndex.value - 10) * props.lineHeight}px)`\n})\n</script>\n\n<template>\n <div\n ref=\"containerRef\"\n class=\"scalar-virtual-text overflow-auto\"\n :class=\"containerClass\"\n @scroll=\"handleScroll\">\n <code\n ref=\"contentRef\"\n class=\"scalar-virtual-text-content\"\n :class=\"contentClass\"\n :style=\"contentStyle\">\n <div\n v-for=\"(line, index) in visibleLines\"\n :key=\"visibleStartIndex + index\"\n class=\"scalar-virtual-text-line\"\n :class=\"lineClass\"\n :style=\"{\n height: `${props.lineHeight}px`,\n lineHeight: `${props.lineHeight}px`,\n }\">\n {{ line }}\n </div>\n </code>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, onMounted, ref, watchEffect } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n /** Text to display */\n text: string\n /**\n * Height of each line\n * @default 20\n */\n lineHeight?: number\n containerClass?: string\n contentClass?: string\n lineClass?: string\n }>(),\n {\n lineHeight: 20,\n containerClass: '',\n contentClass: '',\n lineClass: '',\n },\n)\n\nconst containerRef = ref<HTMLElement | null>(null)\nconst contentRef = ref<HTMLElement | null>(null)\nconst scrollPosition = ref(0)\nconst containerHeight = ref(0)\n\n/** Array of text broken into lines */\nconst lines = computed(() => props.text.split('\\n'))\n/**\n * Total height of all lines combined\n *\n * TODO: there is a problem with this calculation which screws up the scrollbar a bit\n */\nconst totalHeight = computed(() => lines.value.length * props.lineHeight)\n\n/** Index of the first visible line */\nconst visibleStartIndex = computed(() =>\n Math.floor(scrollPosition.value / props.lineHeight),\n)\n\n/** Index of the last visible line */\nconst visibleEndIndex = computed(() =>\n Math.min(\n Math.ceil(\n (scrollPosition.value + containerHeight.value) / props.lineHeight,\n ),\n lines.value.length,\n ),\n)\n\n/** Array of visible lines, including buffer for smooth scrolling */\nconst visibleLines = computed(() => {\n const buffer = 10\n const start = Math.max(0, visibleStartIndex.value - buffer)\n const end = Math.min(lines.value.length, visibleEndIndex.value + buffer)\n\n return lines.value.slice(start, end)\n})\n\n/** Style object for the content container, controls \"scrolling\" */\nconst contentStyle = computed(() => ({\n height: `${totalHeight.value}px`,\n transform: `translateY(${Math.max(0, visibleStartIndex.value - 10) * props.lineHeight}px)`,\n}))\n\n/** Updates the scroll position when the container is scrolled */\nconst handleScroll = () =>\n containerRef.value && (scrollPosition.value = containerRef.value.scrollTop)\n\n/** Updates the container height when the window is resized */\nconst updateContainerHeight = () =>\n containerRef.value &&\n (containerHeight.value = containerRef.value.clientHeight)\n\nonMounted(() => {\n updateContainerHeight()\n window.addEventListener('resize', updateContainerHeight)\n})\n\nonBeforeUnmount(() => {\n window.removeEventListener('resize', updateContainerHeight)\n})\n\nwatchEffect(() => {\n if (!contentRef.value) {\n return\n }\n\n contentRef.value.style.transform = `translateY(${Math.max(0, visibleStartIndex.value - 10) * props.lineHeight}px)`\n})\n</script>\n\n<template>\n <div\n ref=\"containerRef\"\n class=\"scalar-virtual-text overflow-auto\"\n :class=\"containerClass\"\n @scroll=\"handleScroll\">\n <code\n ref=\"contentRef\"\n class=\"scalar-virtual-text-content\"\n :class=\"contentClass\"\n :style=\"contentStyle\">\n <div\n v-for=\"(line, index) in visibleLines\"\n :key=\"visibleStartIndex + index\"\n class=\"scalar-virtual-text-line\"\n :class=\"lineClass\"\n :style=\"{\n height: `${props.lineHeight}px`,\n lineHeight: `${props.lineHeight}px`,\n }\">\n {{ line }}\n </div>\n </code>\n </div>\n</template>\n","/**\n * A list of preset regexes for word breaks\n */\nexport const PRESETS = {\n /** Breaks on `/`, '.' and `-` for urls or file paths */\n 'path': /[\\/\\.-]/,\n /**\n * Breaks on capitals, `_` and `.` for properties written in\n * camel, pascal or snake case\n */\n 'property': /[A-Z\\_\\.-]/,\n} as const satisfies Record<string, RegExp>\n","<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr />{{ word }}\n </template>\n</template>\n","<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr />{{ word }}\n </template>\n</template>\n","const CLASS_NAME = 'scalar-app'\nconst ROOT_ID = 'headlessui-portal-root'\n\n/**\n * Type guard to check if an element is an HTMLElement\n */\nconst isHTMLElement = (element: Node | Element | null): element is HTMLElement => {\n return element !== null && element instanceof HTMLElement\n}\n\n/**\n * Helper method for adding the scalar classes to an element\n */\nconst addClasses = (el?: HTMLElement | undefined | null) => {\n if (!el || el.classList.contains(CLASS_NAME)) {\n return\n }\n\n el.classList.add(CLASS_NAME)\n}\n\n/**\n * Makes sure the scalar classes are added to the HeadlessUI portal root\n *\n * Returns the mutation observer instance\n */\nexport const addScalarClassesToHeadless = () => {\n // Add classes to the element if it already exists\n addClasses(document.getElementById(ROOT_ID))\n\n // Mutation observer to catch the element being added or removed later\n const observer = new MutationObserver((records: MutationRecord[]) =>\n records.forEach(({ addedNodes }) =>\n addedNodes.forEach((node) => {\n if (isHTMLElement(node) && node.id === ROOT_ID) {\n addClasses(node)\n }\n }),\n ),\n )\n\n // Observe the body for changes to the portal root\n observer.observe(document.body, { childList: true })\n\n return observer\n}\n","import './style.css'\n\nexport { compose, cva, cx, tw, useBindCx } from '@scalar/use-hooks/useBindCx'\n\n/** biome-ignore-start lint/performance/noReExportAll: re-exports indexes */\nexport * from './components/ScalarButton'\nexport * from './components/ScalarCard'\nexport * from './components/ScalarCheckboxInput'\nexport * from './components/ScalarCodeBlock'\nexport * from './components/ScalarColorModeToggle'\nexport * from './components/ScalarCombobox'\nexport * from './components/ScalarContextMenu'\nexport * from './components/ScalarCopy'\nexport * from './components/ScalarDropdown'\nexport * from './components/ScalarErrorBoundary'\nexport * from './components/ScalarFileUpload'\nexport * from './components/ScalarFloating'\nexport * from './components/ScalarForm'\nexport * from './components/ScalarHeader'\nexport * from './components/ScalarHotkey'\nexport * from './components/ScalarIcon'\nexport * from './components/ScalarIconButton'\nexport * from './components/ScalarListbox'\nexport * from './components/ScalarLoading'\nexport * from './components/ScalarMarkdown'\nexport * from './components/ScalarMenu'\nexport * from './components/ScalarModal'\nexport * from './components/ScalarPopover'\nexport * from './components/ScalarSearchInput'\nexport * from './components/ScalarSearchResults'\nexport * from './components/ScalarSidebar'\nexport * from './components/ScalarTeleport'\nexport * from './components/ScalarTextArea'\nexport * from './components/ScalarTextInput'\nexport * from './components/ScalarThemeSwatches'\nexport * from './components/ScalarToggle'\nexport * from './components/ScalarTooltip'\nexport * from './components/ScalarVirtualText'\nexport * from './components/ScalarWrappingText'\nexport * from './helpers'\n/** biome-ignore-end lint/performance/noReExportAll: re-exports indexes */\n"],"mappings":"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"}