@scalar/api-client 2.38.3 → 2.38.4

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 (226) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{AddressBar-CX8xiYoe.js → AddressBar-BOZGKSoz.js} +4 -4
  3. package/dist/{AddressBar-CX8xiYoe.js.map → AddressBar-BOZGKSoz.js.map} +1 -1
  4. package/dist/{App-BpNPKHmM.js → App-DHBmpWJI.js} +4 -4
  5. package/dist/{App-BpNPKHmM.js.map → App-DHBmpWJI.js.map} +1 -1
  6. package/dist/{CodeInput-BN7uw3Bh.js → CodeInput-BTN8cC5h.js} +2 -2
  7. package/dist/{CodeInput-BN7uw3Bh.js.map → CodeInput-BTN8cC5h.js.map} +1 -1
  8. package/dist/{Collection-ChAxs3rz.js → Collection-BsAG7ms5.js} +2 -2
  9. package/dist/{Collection-ChAxs3rz.js.map → Collection-BsAG7ms5.js.map} +1 -1
  10. package/dist/{CollectionAuthentication-BDpvv8cA.js → CollectionAuthentication-BMGhRnpo.js} +5 -5
  11. package/dist/{CollectionAuthentication-BDpvv8cA.js.map → CollectionAuthentication-BMGhRnpo.js.map} +1 -1
  12. package/dist/{CollectionEnvironment-dwisJ-h5.js → CollectionEnvironment-BY9Gcnln.js} +4 -4
  13. package/dist/{CollectionEnvironment-dwisJ-h5.js.map → CollectionEnvironment-BY9Gcnln.js.map} +1 -1
  14. package/dist/{CollectionOverview-CJ9-Vmei.js → CollectionOverview-C3GvN8GY.js} +3 -3
  15. package/dist/{CollectionOverview-CJ9-Vmei.js.map → CollectionOverview-C3GvN8GY.js.map} +1 -1
  16. package/dist/{CollectionServers-BWkIGwz4.js → CollectionServers-DuOLysNB.js} +5 -5
  17. package/dist/{CollectionServers-BWkIGwz4.js.map → CollectionServers-DuOLysNB.js.map} +1 -1
  18. package/dist/{CollectionSettings-CqUUYOym.js → CollectionSettings-FtXNetOh.js} +2 -2
  19. package/dist/{CollectionSettings-CqUUYOym.js.map → CollectionSettings-FtXNetOh.js.map} +1 -1
  20. package/dist/{CommandPalette-BiA0IgO8.js → CommandPalette-BxoEK8TY.js} +2 -2
  21. package/dist/{CommandPalette-BiA0IgO8.js.map → CommandPalette-BxoEK8TY.js.map} +1 -1
  22. package/dist/{Cookies-CNRSxP8J.js → Cookies-BYTv1YIA.js} +8 -8
  23. package/dist/{Cookies-CNRSxP8J.js.map → Cookies-BYTv1YIA.js.map} +1 -1
  24. package/dist/{DataTableInput-SkIUPlrB.js → DataTableInput-RydMDjn2.js} +2 -2
  25. package/dist/{DataTableInput-SkIUPlrB.js.map → DataTableInput-RydMDjn2.js.map} +1 -1
  26. package/dist/{Environment-D_CbZk0A.js → Environment-BIxG7DaO.js} +5 -5
  27. package/dist/{Environment-D_CbZk0A.js.map → Environment-BIxG7DaO.js.map} +1 -1
  28. package/dist/{EnvironmentModal-CcyqnPc2.js → EnvironmentModal-C0lYytkh.js} +2 -2
  29. package/dist/{EnvironmentModal-CcyqnPc2.js.map → EnvironmentModal-C0lYytkh.js.map} +1 -1
  30. package/dist/{Form-bA4bV_oA.js → Form-KFcdRQp1.js} +3 -3
  31. package/dist/{Form-bA4bV_oA.js.map → Form-KFcdRQp1.js.map} +1 -1
  32. package/dist/{ImportCollection-BIYMxB9Q.js → ImportCollection-CGjySEzP.js} +2 -2
  33. package/dist/{ImportCollection-BIYMxB9Q.js.map → ImportCollection-CGjySEzP.js.map} +1 -1
  34. package/dist/{MainLayout-oMIJ5QXF.js → MainLayout-BnLwst16.js} +3 -3
  35. package/dist/{MainLayout-oMIJ5QXF.js.map → MainLayout-BnLwst16.js.map} +1 -1
  36. package/dist/{Modal-DkOa_KK0.js → Modal-CTZ8UNds.js} +2 -2
  37. package/dist/{Modal-DkOa_KK0.js.map → Modal-CTZ8UNds.js.map} +1 -1
  38. package/dist/{Request-BWfYWyBa.js → Request-d0RY0ZhC.js} +10 -10
  39. package/dist/{Request-BWfYWyBa.js.map → Request-d0RY0ZhC.js.map} +1 -1
  40. package/dist/{RequestAuth-BU6ubH-c.js → RequestAuth-1cRH3DDn.js} +3 -3
  41. package/dist/{RequestAuth-BU6ubH-c.js.map → RequestAuth-1cRH3DDn.js.map} +1 -1
  42. package/dist/{RequestRoot-7xhK5_qr.js → RequestRoot-pW0yXesG.js} +7 -7
  43. package/dist/{RequestRoot-7xhK5_qr.js.map → RequestRoot-pW0yXesG.js.map} +1 -1
  44. package/dist/{RequestSection-Bx8UHW-k.js → RequestSection-D2BLvDTr.js} +4 -4
  45. package/dist/{RequestSection-Bx8UHW-k.js.map → RequestSection-D2BLvDTr.js.map} +1 -1
  46. package/dist/{ResponseSection-CLrgLMN_.js → ResponseSection-B_YF7l_E.js} +3 -3
  47. package/dist/{ResponseSection-CLrgLMN_.js.map → ResponseSection-B_YF7l_E.js.map} +1 -1
  48. package/dist/{Server-BS4zjUdO.js → Server-CEKGIEfE.js} +2 -2
  49. package/dist/{Server-BS4zjUdO.js.map → Server-CEKGIEfE.js.map} +1 -1
  50. package/dist/{Settings-BuLKHzRY.js → Settings-BaPvhJ8Y.js} +2 -2
  51. package/dist/{Settings-BuLKHzRY.js.map → Settings-BaPvhJ8Y.js.map} +1 -1
  52. package/dist/{Sidebar-Xl9_nFXX.js → Sidebar-CRxdl38Y.js} +2 -2
  53. package/dist/{Sidebar-Xl9_nFXX.js.map → Sidebar-CRxdl38Y.js.map} +1 -1
  54. package/dist/components/AddressBar/AddressBar.vue.d.ts +1 -1
  55. package/dist/components/AddressBar/index.js +3 -3
  56. package/dist/components/CodeInput/CodeInput.vue.d.ts +1 -1
  57. package/dist/components/CodeInput/codeVariableWidget.d.ts +1 -1
  58. package/dist/components/CodeInput/index.js +1 -1
  59. package/dist/components/CommandPalette/index.js +1 -1
  60. package/dist/components/DataTable/DataTableInput.vue.d.ts +2 -2
  61. package/dist/components/DataTable/index.js +2 -2
  62. package/dist/components/Form/LabelInput.vue.d.ts +1 -1
  63. package/dist/components/ImportCollection/index.js +1 -1
  64. package/dist/components/ImportCollection/utils/import-collection.d.ts +1 -1
  65. package/dist/components/ImportCollection/utils/workspace-store-is-empty.d.ts +1 -1
  66. package/dist/components/Server/ServerVariablesForm.vue.d.ts +1 -1
  67. package/dist/components/Server/index.js +1 -1
  68. package/dist/components/Sidebar/index.js +1 -1
  69. package/dist/components/index.d.ts +2 -2
  70. package/dist/components/index.js +4 -4
  71. package/dist/{components-DfJHvSLM.js → components-B0BwUDFw.js} +2 -2
  72. package/dist/{components-DfJHvSLM.js.map → components-B0BwUDFw.js.map} +1 -1
  73. package/dist/hooks/useSidebar.d.ts +1 -1
  74. package/dist/index.d.ts +2 -2
  75. package/dist/index.js +5 -5
  76. package/dist/layouts/App/create-api-client-app.d.ts +9 -9
  77. package/dist/layouts/App/index.js +3 -3
  78. package/dist/layouts/Modal/create-api-client-modal.d.ts +1 -1
  79. package/dist/layouts/Modal/index.d.ts +1 -1
  80. package/dist/layouts/Modal/index.js +1 -1
  81. package/dist/layouts/Web/create-api-client-web.d.ts +9 -9
  82. package/dist/layouts/Web/index.js +4 -4
  83. package/dist/libs/create-client.d.ts +3 -3
  84. package/dist/libs/environment-parser.d.ts +1 -1
  85. package/dist/libs/get-request-uid-by-path-method.d.ts +1 -1
  86. package/dist/libs/hot-keys.d.ts +1 -1
  87. package/dist/libs/index.d.ts +1 -1
  88. package/dist/libs/index.js +1 -1
  89. package/dist/libs/local-storage.d.ts +1 -1
  90. package/dist/libs/send-request/create-request-operation.d.ts +3 -3
  91. package/dist/{operation-block-DE-hoO03.js → operation-block-B1B3lJPx.js} +3 -3
  92. package/dist/{operation-block-DE-hoO03.js.map → operation-block-B1B3lJPx.js.map} +1 -1
  93. package/dist/{operation-code-sample-xgx4qi2H.js → operation-code-sample-DOzAPxLQ.js} +2 -2
  94. package/dist/{operation-code-sample-xgx4qi2H.js.map → operation-code-sample-DOzAPxLQ.js.map} +1 -1
  95. package/dist/plugins/hooks/usePluginManager.d.ts +1 -1
  96. package/dist/{request-block-N7dPFyrG.js → request-block-C1kLLMEd.js} +2 -2
  97. package/dist/{request-block-N7dPFyrG.js.map → request-block-C1kLLMEd.js.map} +1 -1
  98. package/dist/store/collections.d.ts +1 -1
  99. package/dist/store/environment.d.ts +1 -1
  100. package/dist/store/events.d.ts +8 -8
  101. package/dist/store/import-spec.d.ts +2 -2
  102. package/dist/store/index.js +1 -1
  103. package/dist/store/request-example.d.ts +1 -1
  104. package/dist/store/requests.d.ts +1 -1
  105. package/dist/store/security-schemes.d.ts +1 -1
  106. package/dist/store/servers.d.ts +1 -1
  107. package/dist/store/store.d.ts +7 -7
  108. package/dist/store/tags.d.ts +1 -1
  109. package/dist/store/workspace.d.ts +1 -1
  110. package/dist/{store-DaPoVtIS.js → store-DnlAQK5d.js} +15 -15
  111. package/dist/{store-DaPoVtIS.js.map → store-DnlAQK5d.js.map} +1 -1
  112. package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts +3 -3
  113. package/dist/v2/blocks/operation-block/components/Header.vue.d.ts +2 -2
  114. package/dist/v2/blocks/operation-block/helpers/build-request-security.d.ts +2 -2
  115. package/dist/v2/blocks/operation-block/helpers/build-request.d.ts +2 -2
  116. package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.d.ts +1 -1
  117. package/dist/v2/blocks/operation-block/helpers/send-request.d.ts +1 -1
  118. package/dist/v2/blocks/operation-block/index.js +8 -8
  119. package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.d.ts +2 -2
  120. package/dist/v2/blocks/operation-code-sample/helpers/find-client.d.ts +1 -1
  121. package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.d.ts +1 -1
  122. package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.d.ts +1 -1
  123. package/dist/v2/blocks/operation-code-sample/helpers/get-clients.d.ts +2 -2
  124. package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.d.ts +1 -1
  125. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.d.ts +1 -1
  126. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.d.ts +1 -1
  127. package/dist/v2/blocks/operation-code-sample/index.js +1 -1
  128. package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts +4 -4
  129. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.d.ts +1 -1
  130. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +1 -1
  131. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.d.ts +1 -1
  132. package/dist/v2/blocks/request-block/helpers/get-form-body-rows.d.ts +1 -1
  133. package/dist/v2/blocks/request-block/index.js +4 -4
  134. package/dist/v2/blocks/response-block/ResponseBlock.vue.d.ts +1 -1
  135. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts +1 -1
  136. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts +1 -1
  137. package/dist/v2/blocks/response-block/index.js +2 -2
  138. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts +1 -1
  139. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts +3 -3
  140. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +1 -1
  141. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts +2 -2
  142. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.d.ts +1 -1
  143. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts +1 -1
  144. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.d.ts +1 -1
  145. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts +2 -2
  146. package/dist/v2/blocks/scalar-auth-selector-block/index.js +2 -2
  147. package/dist/v2/components/code-input/CodeInput.vue.d.ts +1 -1
  148. package/dist/v2/components/data-table/DataTableInput.vue.d.ts +1 -1
  149. package/dist/v2/components/data-table/DataTableInputSelect.vue.d.ts +1 -1
  150. package/dist/v2/components/server/ServerDropdown.vue.d.ts +1 -1
  151. package/dist/v2/components/sidebar/Sidebar.vue.d.ts +1 -1
  152. package/dist/v2/features/app/App.vue.d.ts +3 -3
  153. package/dist/v2/features/app/components/AppSidebar.vue.d.ts +1 -1
  154. package/dist/v2/features/app/components/index.js +2 -2
  155. package/dist/v2/features/app/helpers/create-api-client-app.d.ts +3 -3
  156. package/dist/v2/features/app/helpers/get-route-param.d.ts +1 -1
  157. package/dist/v2/features/app/helpers/routes.d.ts +3 -3
  158. package/dist/v2/features/app/index.d.ts +5 -5
  159. package/dist/v2/features/app/index.js +8 -8
  160. package/dist/v2/features/collection/DocumentCollection.vue.d.ts +1 -1
  161. package/dist/v2/features/collection/OperationCollection.vue.d.ts +1 -1
  162. package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts +1 -1
  163. package/dist/v2/features/collection/components/Authentication.vue.d.ts +4 -4
  164. package/dist/v2/features/collection/components/Cookies.vue.d.ts +4 -4
  165. package/dist/v2/features/collection/components/Editor/Editor.vue.d.ts +4 -4
  166. package/dist/v2/features/collection/components/Environment.vue.d.ts +4 -4
  167. package/dist/v2/features/collection/components/Overview.vue.d.ts +4 -4
  168. package/dist/v2/features/collection/components/Servers.vue.d.ts +4 -4
  169. package/dist/v2/features/collection/components/Settings.vue.d.ts +4 -4
  170. package/dist/v2/features/collection/components/Tabs.vue.d.ts +1 -1
  171. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts +45 -10
  172. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts.map +1 -1
  173. package/dist/v2/features/editor/helpers/json/create-json-model.d.ts +1 -1
  174. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.d.ts +1 -1
  175. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.d.ts +1 -1
  176. package/dist/v2/features/editor/hooks/use-editor.d.ts +1 -1
  177. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.d.ts +1 -1
  178. package/dist/v2/features/modal/Modal.vue.d.ts +1 -1
  179. package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts +2 -2
  180. package/dist/v2/features/modal/hooks/use-modal-sidebar.d.ts +1 -1
  181. package/dist/v2/features/modal/index.js +8 -8
  182. package/dist/v2/features/modal/modal-events.d.ts +1 -1
  183. package/dist/v2/features/operation/Operation.vue.d.ts +2 -2
  184. package/dist/v2/features/operation/index.js +8 -8
  185. package/dist/v2/features/search/helpers/create-fuse-instance.d.ts +1 -1
  186. package/dist/v2/features/search/helpers/create-search-index.d.ts +1 -1
  187. package/dist/v2/helpers/get-active-proxy-url.d.ts +1 -1
  188. package/dist/v2/helpers/get-tab-details.d.ts +1 -1
  189. package/dist/v2/helpers/handle-hotkeys.d.ts +1 -1
  190. package/dist/v2/hooks/use-global-hot-keys.d.ts +1 -1
  191. package/dist/views/Collection/components/EnvironmentForm.vue.d.ts +1 -1
  192. package/dist/views/Collection/components/MarkdownInput.vue.d.ts +1 -1
  193. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.d.ts +1 -1
  194. package/dist/views/Components/CodeSnippet/helpers/get-har-request.d.ts +1 -1
  195. package/dist/views/Components/CodeSnippet/helpers/get-snippet.d.ts +1 -1
  196. package/dist/views/Environment/EnvironmentVariableDropdown.vue.d.ts +1 -1
  197. package/dist/views/Environment/handle-drag.d.ts +1 -1
  198. package/dist/views/Request/Request.vue.d.ts +1 -1
  199. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.d.ts +1 -1
  200. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.d.ts +1 -1
  201. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.d.ts +1 -1
  202. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.d.ts +1 -1
  203. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.d.ts +2 -2
  204. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.d.ts +1 -1
  205. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.d.ts +1 -1
  206. package/dist/views/Request/RequestSection/RequestAuth/index.js +3 -3
  207. package/dist/views/Request/RequestSection/RequestBody.vue.d.ts +1 -1
  208. package/dist/views/Request/RequestSection/RequestCodeExample.vue.d.ts +1 -1
  209. package/dist/views/Request/RequestSection/RequestParams.vue.d.ts +1 -1
  210. package/dist/views/Request/RequestSection/RequestPathParams.vue.d.ts +1 -1
  211. package/dist/views/Request/RequestSection/RequestSection.vue.d.ts +1 -1
  212. package/dist/views/Request/RequestSection/RequestTable.vue.d.ts +1 -1
  213. package/dist/views/Request/RequestSection/helpers/update-scheme.d.ts +1 -1
  214. package/dist/views/Request/RequestSection/index.js +4 -4
  215. package/dist/views/Request/RequestSidebarItem.vue.d.ts +1 -1
  216. package/dist/views/Request/RequestSidebarItemMenu.vue.d.ts +3 -3
  217. package/dist/views/Request/RequestSubpageHeader.vue.d.ts +1 -1
  218. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.d.ts +1 -1
  219. package/dist/views/Request/ResponseSection/ResponseSection.vue.d.ts +1 -1
  220. package/dist/views/Request/ResponseSection/index.js +3 -3
  221. package/dist/views/Request/components/index.js +1 -1
  222. package/dist/views/Request/handle-drag.d.ts +2 -2
  223. package/dist/views/Request/libs/auth.d.ts +1 -1
  224. package/dist/views/Request/libs/oauth2.d.ts +1 -1
  225. package/dist/views/Request/libs/watch-mode.d.ts +2 -2
  226. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentModal-CcyqnPc2.js","names":[],"sources":["../src/views/Environment/EnvironmentColors.vue","../src/views/Environment/EnvironmentColors.vue","../src/views/Environment/EnvironmentColorModal.vue","../src/views/Environment/EnvironmentColorModal.vue","../src/views/Environment/EnvironmentModal.vue","../src/views/Environment/EnvironmentModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport { computed, nextTick, ref, watch } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n activeColor: string\n selector?: boolean\n }>(),\n {\n selector: false,\n },\n)\n\nconst emit = defineEmits<{\n (e: 'select', color: string): void\n}>()\n\nconst customColor = ref('')\nconst customColorInputRef = ref<HTMLInputElement | null>(null)\nconst showCustomInput = ref(false)\nconst showSelector = ref(false)\n\nconst colorOptions = [\n { color: '#FFFFFF' },\n { color: '#EF0006' },\n { color: '#EDBE20' },\n { color: '#069061' },\n { color: '#FB892C' },\n { color: '#0082D0' },\n { color: '#5203D1' },\n { color: '#FFC0CB' },\n]\n\nconst backgroundStyle = computed(() => {\n return (props.activeColor &&\n !colorOptions.some((option) => option.color === props.activeColor)) ||\n customColor.value\n ? `background-color: ${props.activeColor || customColor.value};`\n : 'background: linear-gradient(to right, rgb(235, 87, 87), rgb(242, 201, 76), rgb(76, 183, 130), rgb(78, 167, 252), rgb(250, 96, 122));'\n})\n\nconst handleClick = () => {\n showCustomInput.value = !showCustomInput.value\n if (props.selector) {\n showSelector.value = false\n }\n nextTick(() => {\n if (customColorInputRef.value) {\n customColorInputRef.value.focus()\n }\n })\n}\n\nwatch(customColor, (newColor) => {\n if (newColor && !newColor.startsWith('#')) {\n customColor.value = `#${newColor}`\n }\n showCustomInput.value = true\n})\n\nconst handleSelectorClick = () => {\n if (props.selector) {\n showSelector.value = !showSelector.value\n }\n}\n\nconst selectColor = (color: string) => {\n emit('select', color)\n if (props.selector) {\n showSelector.value = false\n }\n}\n</script>\n<template>\n <div>\n <template v-if=\"!showCustomInput\">\n <div\n v-if=\"props.selector && !showSelector\"\n class=\"flex cursor-pointer items-center justify-center rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"{ backgroundColor: activeColor }\"\n @click=\"handleSelectorClick\">\n <ScalarIcon\n v-if=\"activeColor\"\n class=\"text-c-btn\"\n :class=\"props.selector && 'p-0.5'\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </div>\n <div\n v-if=\"showSelector || !props.selector\"\n class=\"color-selector flex flex-row items-center justify-between gap-1.5 space-x-1\"\n :class=\"props.selector ? 'h-4' : 'min-h-10 min-w-[296px]'\">\n <div\n v-for=\"option in colorOptions\"\n :key=\"option.color\"\n class=\"flex cursor-pointer items-center justify-center rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"{ backgroundColor: option.color }\"\n @click=\"selectColor(option.color)\">\n <ScalarIcon\n v-if=\"activeColor === option.color && !customColor\"\n class=\"text-c-btn\"\n :class=\"props.selector && 'p-0.5'\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </div>\n <hr class=\"border-ghost h-5 w-0.5 border-l\" />\n <label\n class=\"z-10 flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"backgroundStyle\"\n @click=\"handleClick\">\n <ScalarIcon\n v-if=\"\n !showCustomInput &&\n (activeColor === customColor ||\n (activeColor &&\n !colorOptions.some((option) => option.color === activeColor)))\n \"\n class=\"text-c-btn\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </label>\n </div>\n </template>\n <div\n v-if=\"showCustomInput\"\n class=\"color-selector flex flex-1 items-center gap-2 rounded\"\n :class=\"props.selector ? 'h-4' : 'min-h-10'\">\n <span\n class=\"absolute rounded-full border border-dashed\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\" />\n <span\n class=\"z-[1] rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"backgroundStyle\">\n </span>\n <input\n ref=\"customColorInputRef\"\n v-model=\"customColor\"\n class=\"w-full flex-1 border-transparent text-sm outline-none\"\n :placeholder=\"activeColor || '#000000'\"\n type=\"text\"\n @input=\"selectColor(customColor)\" />\n <button\n class=\"text-c-3 hover:bg-b-2 rounded-lg p-1.5\"\n type=\"button\"\n @click=\"handleClick\">\n <ScalarIcon\n icon=\"Checkmark\"\n size=\"xs\" />\n </button>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport { computed, nextTick, ref, watch } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n activeColor: string\n selector?: boolean\n }>(),\n {\n selector: false,\n },\n)\n\nconst emit = defineEmits<{\n (e: 'select', color: string): void\n}>()\n\nconst customColor = ref('')\nconst customColorInputRef = ref<HTMLInputElement | null>(null)\nconst showCustomInput = ref(false)\nconst showSelector = ref(false)\n\nconst colorOptions = [\n { color: '#FFFFFF' },\n { color: '#EF0006' },\n { color: '#EDBE20' },\n { color: '#069061' },\n { color: '#FB892C' },\n { color: '#0082D0' },\n { color: '#5203D1' },\n { color: '#FFC0CB' },\n]\n\nconst backgroundStyle = computed(() => {\n return (props.activeColor &&\n !colorOptions.some((option) => option.color === props.activeColor)) ||\n customColor.value\n ? `background-color: ${props.activeColor || customColor.value};`\n : 'background: linear-gradient(to right, rgb(235, 87, 87), rgb(242, 201, 76), rgb(76, 183, 130), rgb(78, 167, 252), rgb(250, 96, 122));'\n})\n\nconst handleClick = () => {\n showCustomInput.value = !showCustomInput.value\n if (props.selector) {\n showSelector.value = false\n }\n nextTick(() => {\n if (customColorInputRef.value) {\n customColorInputRef.value.focus()\n }\n })\n}\n\nwatch(customColor, (newColor) => {\n if (newColor && !newColor.startsWith('#')) {\n customColor.value = `#${newColor}`\n }\n showCustomInput.value = true\n})\n\nconst handleSelectorClick = () => {\n if (props.selector) {\n showSelector.value = !showSelector.value\n }\n}\n\nconst selectColor = (color: string) => {\n emit('select', color)\n if (props.selector) {\n showSelector.value = false\n }\n}\n</script>\n<template>\n <div>\n <template v-if=\"!showCustomInput\">\n <div\n v-if=\"props.selector && !showSelector\"\n class=\"flex cursor-pointer items-center justify-center rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"{ backgroundColor: activeColor }\"\n @click=\"handleSelectorClick\">\n <ScalarIcon\n v-if=\"activeColor\"\n class=\"text-c-btn\"\n :class=\"props.selector && 'p-0.5'\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </div>\n <div\n v-if=\"showSelector || !props.selector\"\n class=\"color-selector flex flex-row items-center justify-between gap-1.5 space-x-1\"\n :class=\"props.selector ? 'h-4' : 'min-h-10 min-w-[296px]'\">\n <div\n v-for=\"option in colorOptions\"\n :key=\"option.color\"\n class=\"flex cursor-pointer items-center justify-center rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"{ backgroundColor: option.color }\"\n @click=\"selectColor(option.color)\">\n <ScalarIcon\n v-if=\"activeColor === option.color && !customColor\"\n class=\"text-c-btn\"\n :class=\"props.selector && 'p-0.5'\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </div>\n <hr class=\"border-ghost h-5 w-0.5 border-l\" />\n <label\n class=\"z-10 flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"backgroundStyle\"\n @click=\"handleClick\">\n <ScalarIcon\n v-if=\"\n !showCustomInput &&\n (activeColor === customColor ||\n (activeColor &&\n !colorOptions.some((option) => option.color === activeColor)))\n \"\n class=\"text-c-btn\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </label>\n </div>\n </template>\n <div\n v-if=\"showCustomInput\"\n class=\"color-selector flex flex-1 items-center gap-2 rounded\"\n :class=\"props.selector ? 'h-4' : 'min-h-10'\">\n <span\n class=\"absolute rounded-full border border-dashed\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\" />\n <span\n class=\"z-[1] rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"backgroundStyle\">\n </span>\n <input\n ref=\"customColorInputRef\"\n v-model=\"customColor\"\n class=\"w-full flex-1 border-transparent text-sm outline-none\"\n :placeholder=\"activeColor || '#000000'\"\n type=\"text\"\n @input=\"selectColor(customColor)\" />\n <button\n class=\"text-c-3 hover:bg-b-2 rounded-lg p-1.5\"\n type=\"button\"\n @click=\"handleClick\">\n <ScalarIcon\n icon=\"Checkmark\"\n size=\"xs\" />\n </button>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarModal, type ModalState } from '@scalar/components'\nimport { ref } from 'vue'\n\nimport SidebarListElementForm from '@/components/Sidebar/Actions/SidebarListElementForm.vue'\n\nimport EnvironmentColors from './EnvironmentColors.vue'\n\nconst props = defineProps<{\n state: ModalState\n selectedColor: string\n}>()\n\nconst emit = defineEmits<{\n (e: 'cancel'): void\n (e: 'submit', color: string): void\n}>()\n\nconst newColor = ref('')\n\nconst handleColorSelect = (color: string) => {\n newColor.value = color\n}\n\nconst handleSubmit = () => {\n emit('submit', newColor.value)\n newColor.value = ''\n}\n</script>\n<template>\n <ScalarModal\n size=\"xxs\"\n :state=\"state\"\n title=\"Edit Environment Color\">\n <div class=\"flex flex-col gap-4\">\n <EnvironmentColors\n :activeColor=\"newColor || props.selectedColor\"\n class=\"w-full p-1\"\n @select=\"handleColorSelect\" />\n <SidebarListElementForm\n @cancel=\"emit('cancel')\"\n @submit=\"handleSubmit\">\n </SidebarListElementForm>\n </div>\n </ScalarModal>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarModal, type ModalState } from '@scalar/components'\nimport { ref } from 'vue'\n\nimport SidebarListElementForm from '@/components/Sidebar/Actions/SidebarListElementForm.vue'\n\nimport EnvironmentColors from './EnvironmentColors.vue'\n\nconst props = defineProps<{\n state: ModalState\n selectedColor: string\n}>()\n\nconst emit = defineEmits<{\n (e: 'cancel'): void\n (e: 'submit', color: string): void\n}>()\n\nconst newColor = ref('')\n\nconst handleColorSelect = (color: string) => {\n newColor.value = color\n}\n\nconst handleSubmit = () => {\n emit('submit', newColor.value)\n newColor.value = ''\n}\n</script>\n<template>\n <ScalarModal\n size=\"xxs\"\n :state=\"state\"\n title=\"Edit Environment Color\">\n <div class=\"flex flex-col gap-4\">\n <EnvironmentColors\n :activeColor=\"newColor || props.selectedColor\"\n class=\"w-full p-1\"\n @select=\"handleColorSelect\" />\n <SidebarListElementForm\n @cancel=\"emit('cancel')\"\n @submit=\"handleSubmit\">\n </SidebarListElementForm>\n </div>\n </ScalarModal>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarIcon,\n ScalarListbox,\n ScalarModal,\n type ModalState,\n} from '@scalar/components'\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref, watch } from 'vue'\n\nimport CommandActionForm from '@/components/CommandPalette/CommandActionForm.vue'\nimport CommandActionInput from '@/components/CommandPalette/CommandActionInput.vue'\nimport { useWorkspace } from '@/store'\n\nimport EnvironmentColors from './EnvironmentColors.vue'\n\nconst props = defineProps<{\n state: ModalState\n activeWorkspaceCollections: Collection[]\n collectionId: string | undefined\n}>()\n\nconst emit = defineEmits<{\n (event: 'cancel'): void\n (\n event: 'submit',\n environment: {\n name: string\n color: string\n type: string\n collectionId: Collection['uid'] | undefined\n },\n ): void\n}>()\n\nconst { events } = useWorkspace()\n\nconst environmentName = ref('')\nconst selectedColor = ref('#FFFFFF')\n\nconst collections = computed(() => [\n ...props.activeWorkspaceCollections\n .filter((collection) => collection.info?.title !== 'Drafts')\n .map((collection) => ({\n id: collection.uid,\n label: collection.info?.title ?? 'Untitled Collection',\n })),\n])\n\nconst selectedEnvironment = ref(\n collections.value.find((collection) => collection.id === props.collectionId),\n)\n\nconst { toast } = useToasts()\n\nconst handleColorSelect = (color: string) => {\n selectedColor.value = color\n}\n\n// Reset environment name and selected color\nwatch(\n () => props.state.open,\n (isOpen) => {\n if (isOpen) {\n environmentName.value = ''\n selectedColor.value = '#FFFFFF'\n if (props.collectionId) {\n selectedEnvironment.value = collections.value.find(\n (collection) => collection.id === props.collectionId,\n )\n } else {\n selectedEnvironment.value = undefined\n }\n }\n },\n)\n\nconst handleSubmit = () => {\n if (!environmentName.value.trim()) {\n toast('Please enter a name before adding an environment.', 'error')\n return\n }\n if (!selectedEnvironment.value?.id) {\n toast('Please select a collection before adding an environment.', 'error')\n return\n }\n emit('submit', {\n name: environmentName.value,\n color: selectedColor.value,\n type: selectedEnvironment.value?.id === 'global' ? 'global' : 'collection',\n collectionId:\n selectedEnvironment.value?.id !== 'global'\n ? selectedEnvironment.value?.id\n : undefined,\n })\n}\n\nconst redirectToCreateCollection = () => {\n props.state.hide()\n events.commandPalette.emit({ commandName: 'Create Collection' })\n}\n</script>\n\n<template>\n <ScalarModal\n bodyClass=\"border-t-0 rounded-t-lg\"\n size=\"xs\"\n :state=\"state\">\n <CommandActionForm\n :disabled=\"!selectedEnvironment || !environmentName.trim()\"\n @cancel=\"emit('cancel')\"\n @submit=\"handleSubmit\">\n <div class=\"flex items-start gap-2\">\n <EnvironmentColors\n :activeColor=\"selectedColor\"\n class=\"peer\"\n selector\n @select=\"handleColorSelect\" />\n <CommandActionInput\n v-model=\"environmentName\"\n class=\"-mt-[.5px] !p-0 peer-has-[.color-selector]:hidden\"\n placeholder=\"Environment name\" />\n </div>\n <template #options>\n <ScalarListbox\n v-model=\"selectedEnvironment\"\n :options=\"collections\"\n placeholder=\"Select Type\">\n <ScalarButton\n v-if=\"collections.length > 0\"\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span :class=\"selectedEnvironment ? 'text-c-1' : 'text-c-3'\">{{\n selectedEnvironment\n ? selectedEnvironment.label\n : 'Select Collection'\n }}</span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"xs\" />\n </ScalarButton>\n <ScalarButton\n v-else\n class=\"hover:bg-b-2 max-h-8 justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"redirectToCreateCollection\">\n <span class=\"text-c-1\">Create Collection</span>\n </ScalarButton>\n </ScalarListbox>\n </template>\n <template #submit> Add Environment </template>\n </CommandActionForm>\n </ScalarModal>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarIcon,\n ScalarListbox,\n ScalarModal,\n type ModalState,\n} from '@scalar/components'\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref, watch } from 'vue'\n\nimport CommandActionForm from '@/components/CommandPalette/CommandActionForm.vue'\nimport CommandActionInput from '@/components/CommandPalette/CommandActionInput.vue'\nimport { useWorkspace } from '@/store'\n\nimport EnvironmentColors from './EnvironmentColors.vue'\n\nconst props = defineProps<{\n state: ModalState\n activeWorkspaceCollections: Collection[]\n collectionId: string | undefined\n}>()\n\nconst emit = defineEmits<{\n (event: 'cancel'): void\n (\n event: 'submit',\n environment: {\n name: string\n color: string\n type: string\n collectionId: Collection['uid'] | undefined\n },\n ): void\n}>()\n\nconst { events } = useWorkspace()\n\nconst environmentName = ref('')\nconst selectedColor = ref('#FFFFFF')\n\nconst collections = computed(() => [\n ...props.activeWorkspaceCollections\n .filter((collection) => collection.info?.title !== 'Drafts')\n .map((collection) => ({\n id: collection.uid,\n label: collection.info?.title ?? 'Untitled Collection',\n })),\n])\n\nconst selectedEnvironment = ref(\n collections.value.find((collection) => collection.id === props.collectionId),\n)\n\nconst { toast } = useToasts()\n\nconst handleColorSelect = (color: string) => {\n selectedColor.value = color\n}\n\n// Reset environment name and selected color\nwatch(\n () => props.state.open,\n (isOpen) => {\n if (isOpen) {\n environmentName.value = ''\n selectedColor.value = '#FFFFFF'\n if (props.collectionId) {\n selectedEnvironment.value = collections.value.find(\n (collection) => collection.id === props.collectionId,\n )\n } else {\n selectedEnvironment.value = undefined\n }\n }\n },\n)\n\nconst handleSubmit = () => {\n if (!environmentName.value.trim()) {\n toast('Please enter a name before adding an environment.', 'error')\n return\n }\n if (!selectedEnvironment.value?.id) {\n toast('Please select a collection before adding an environment.', 'error')\n return\n }\n emit('submit', {\n name: environmentName.value,\n color: selectedColor.value,\n type: selectedEnvironment.value?.id === 'global' ? 'global' : 'collection',\n collectionId:\n selectedEnvironment.value?.id !== 'global'\n ? selectedEnvironment.value?.id\n : undefined,\n })\n}\n\nconst redirectToCreateCollection = () => {\n props.state.hide()\n events.commandPalette.emit({ commandName: 'Create Collection' })\n}\n</script>\n\n<template>\n <ScalarModal\n bodyClass=\"border-t-0 rounded-t-lg\"\n size=\"xs\"\n :state=\"state\">\n <CommandActionForm\n :disabled=\"!selectedEnvironment || !environmentName.trim()\"\n @cancel=\"emit('cancel')\"\n @submit=\"handleSubmit\">\n <div class=\"flex items-start gap-2\">\n <EnvironmentColors\n :activeColor=\"selectedColor\"\n class=\"peer\"\n selector\n @select=\"handleColorSelect\" />\n <CommandActionInput\n v-model=\"environmentName\"\n class=\"-mt-[.5px] !p-0 peer-has-[.color-selector]:hidden\"\n placeholder=\"Environment name\" />\n </div>\n <template #options>\n <ScalarListbox\n v-model=\"selectedEnvironment\"\n :options=\"collections\"\n placeholder=\"Select Type\">\n <ScalarButton\n v-if=\"collections.length > 0\"\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span :class=\"selectedEnvironment ? 'text-c-1' : 'text-c-3'\">{{\n selectedEnvironment\n ? selectedEnvironment.label\n : 'Select Collection'\n }}</span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"xs\" />\n </ScalarButton>\n <ScalarButton\n v-else\n class=\"hover:bg-b-2 max-h-8 justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"redirectToCreateCollection\">\n <span class=\"text-c-1\">Create Collection</span>\n </ScalarButton>\n </ScalarListbox>\n </template>\n <template #submit> Add Environment </template>\n </CommandActionForm>\n </ScalarModal>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"EnvironmentModal-C0lYytkh.js","names":[],"sources":["../src/views/Environment/EnvironmentColors.vue","../src/views/Environment/EnvironmentColors.vue","../src/views/Environment/EnvironmentColorModal.vue","../src/views/Environment/EnvironmentColorModal.vue","../src/views/Environment/EnvironmentModal.vue","../src/views/Environment/EnvironmentModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport { computed, nextTick, ref, watch } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n activeColor: string\n selector?: boolean\n }>(),\n {\n selector: false,\n },\n)\n\nconst emit = defineEmits<{\n (e: 'select', color: string): void\n}>()\n\nconst customColor = ref('')\nconst customColorInputRef = ref<HTMLInputElement | null>(null)\nconst showCustomInput = ref(false)\nconst showSelector = ref(false)\n\nconst colorOptions = [\n { color: '#FFFFFF' },\n { color: '#EF0006' },\n { color: '#EDBE20' },\n { color: '#069061' },\n { color: '#FB892C' },\n { color: '#0082D0' },\n { color: '#5203D1' },\n { color: '#FFC0CB' },\n]\n\nconst backgroundStyle = computed(() => {\n return (props.activeColor &&\n !colorOptions.some((option) => option.color === props.activeColor)) ||\n customColor.value\n ? `background-color: ${props.activeColor || customColor.value};`\n : 'background: linear-gradient(to right, rgb(235, 87, 87), rgb(242, 201, 76), rgb(76, 183, 130), rgb(78, 167, 252), rgb(250, 96, 122));'\n})\n\nconst handleClick = () => {\n showCustomInput.value = !showCustomInput.value\n if (props.selector) {\n showSelector.value = false\n }\n nextTick(() => {\n if (customColorInputRef.value) {\n customColorInputRef.value.focus()\n }\n })\n}\n\nwatch(customColor, (newColor) => {\n if (newColor && !newColor.startsWith('#')) {\n customColor.value = `#${newColor}`\n }\n showCustomInput.value = true\n})\n\nconst handleSelectorClick = () => {\n if (props.selector) {\n showSelector.value = !showSelector.value\n }\n}\n\nconst selectColor = (color: string) => {\n emit('select', color)\n if (props.selector) {\n showSelector.value = false\n }\n}\n</script>\n<template>\n <div>\n <template v-if=\"!showCustomInput\">\n <div\n v-if=\"props.selector && !showSelector\"\n class=\"flex cursor-pointer items-center justify-center rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"{ backgroundColor: activeColor }\"\n @click=\"handleSelectorClick\">\n <ScalarIcon\n v-if=\"activeColor\"\n class=\"text-c-btn\"\n :class=\"props.selector && 'p-0.5'\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </div>\n <div\n v-if=\"showSelector || !props.selector\"\n class=\"color-selector flex flex-row items-center justify-between gap-1.5 space-x-1\"\n :class=\"props.selector ? 'h-4' : 'min-h-10 min-w-[296px]'\">\n <div\n v-for=\"option in colorOptions\"\n :key=\"option.color\"\n class=\"flex cursor-pointer items-center justify-center rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"{ backgroundColor: option.color }\"\n @click=\"selectColor(option.color)\">\n <ScalarIcon\n v-if=\"activeColor === option.color && !customColor\"\n class=\"text-c-btn\"\n :class=\"props.selector && 'p-0.5'\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </div>\n <hr class=\"border-ghost h-5 w-0.5 border-l\" />\n <label\n class=\"z-10 flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"backgroundStyle\"\n @click=\"handleClick\">\n <ScalarIcon\n v-if=\"\n !showCustomInput &&\n (activeColor === customColor ||\n (activeColor &&\n !colorOptions.some((option) => option.color === activeColor)))\n \"\n class=\"text-c-btn\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </label>\n </div>\n </template>\n <div\n v-if=\"showCustomInput\"\n class=\"color-selector flex flex-1 items-center gap-2 rounded\"\n :class=\"props.selector ? 'h-4' : 'min-h-10'\">\n <span\n class=\"absolute rounded-full border border-dashed\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\" />\n <span\n class=\"z-[1] rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"backgroundStyle\">\n </span>\n <input\n ref=\"customColorInputRef\"\n v-model=\"customColor\"\n class=\"w-full flex-1 border-transparent text-sm outline-none\"\n :placeholder=\"activeColor || '#000000'\"\n type=\"text\"\n @input=\"selectColor(customColor)\" />\n <button\n class=\"text-c-3 hover:bg-b-2 rounded-lg p-1.5\"\n type=\"button\"\n @click=\"handleClick\">\n <ScalarIcon\n icon=\"Checkmark\"\n size=\"xs\" />\n </button>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport { computed, nextTick, ref, watch } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n activeColor: string\n selector?: boolean\n }>(),\n {\n selector: false,\n },\n)\n\nconst emit = defineEmits<{\n (e: 'select', color: string): void\n}>()\n\nconst customColor = ref('')\nconst customColorInputRef = ref<HTMLInputElement | null>(null)\nconst showCustomInput = ref(false)\nconst showSelector = ref(false)\n\nconst colorOptions = [\n { color: '#FFFFFF' },\n { color: '#EF0006' },\n { color: '#EDBE20' },\n { color: '#069061' },\n { color: '#FB892C' },\n { color: '#0082D0' },\n { color: '#5203D1' },\n { color: '#FFC0CB' },\n]\n\nconst backgroundStyle = computed(() => {\n return (props.activeColor &&\n !colorOptions.some((option) => option.color === props.activeColor)) ||\n customColor.value\n ? `background-color: ${props.activeColor || customColor.value};`\n : 'background: linear-gradient(to right, rgb(235, 87, 87), rgb(242, 201, 76), rgb(76, 183, 130), rgb(78, 167, 252), rgb(250, 96, 122));'\n})\n\nconst handleClick = () => {\n showCustomInput.value = !showCustomInput.value\n if (props.selector) {\n showSelector.value = false\n }\n nextTick(() => {\n if (customColorInputRef.value) {\n customColorInputRef.value.focus()\n }\n })\n}\n\nwatch(customColor, (newColor) => {\n if (newColor && !newColor.startsWith('#')) {\n customColor.value = `#${newColor}`\n }\n showCustomInput.value = true\n})\n\nconst handleSelectorClick = () => {\n if (props.selector) {\n showSelector.value = !showSelector.value\n }\n}\n\nconst selectColor = (color: string) => {\n emit('select', color)\n if (props.selector) {\n showSelector.value = false\n }\n}\n</script>\n<template>\n <div>\n <template v-if=\"!showCustomInput\">\n <div\n v-if=\"props.selector && !showSelector\"\n class=\"flex cursor-pointer items-center justify-center rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"{ backgroundColor: activeColor }\"\n @click=\"handleSelectorClick\">\n <ScalarIcon\n v-if=\"activeColor\"\n class=\"text-c-btn\"\n :class=\"props.selector && 'p-0.5'\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </div>\n <div\n v-if=\"showSelector || !props.selector\"\n class=\"color-selector flex flex-row items-center justify-between gap-1.5 space-x-1\"\n :class=\"props.selector ? 'h-4' : 'min-h-10 min-w-[296px]'\">\n <div\n v-for=\"option in colorOptions\"\n :key=\"option.color\"\n class=\"flex cursor-pointer items-center justify-center rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"{ backgroundColor: option.color }\"\n @click=\"selectColor(option.color)\">\n <ScalarIcon\n v-if=\"activeColor === option.color && !customColor\"\n class=\"text-c-btn\"\n :class=\"props.selector && 'p-0.5'\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </div>\n <hr class=\"border-ghost h-5 w-0.5 border-l\" />\n <label\n class=\"z-10 flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"backgroundStyle\"\n @click=\"handleClick\">\n <ScalarIcon\n v-if=\"\n !showCustomInput &&\n (activeColor === customColor ||\n (activeColor &&\n !colorOptions.some((option) => option.color === activeColor)))\n \"\n class=\"text-c-btn\"\n icon=\"Checkmark\"\n size=\"xs\" />\n </label>\n </div>\n </template>\n <div\n v-if=\"showCustomInput\"\n class=\"color-selector flex flex-1 items-center gap-2 rounded\"\n :class=\"props.selector ? 'h-4' : 'min-h-10'\">\n <span\n class=\"absolute rounded-full border border-dashed\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\" />\n <span\n class=\"z-[1] rounded-full\"\n :class=\"props.selector ? 'h-4 w-4' : 'h-5 w-5'\"\n :style=\"backgroundStyle\">\n </span>\n <input\n ref=\"customColorInputRef\"\n v-model=\"customColor\"\n class=\"w-full flex-1 border-transparent text-sm outline-none\"\n :placeholder=\"activeColor || '#000000'\"\n type=\"text\"\n @input=\"selectColor(customColor)\" />\n <button\n class=\"text-c-3 hover:bg-b-2 rounded-lg p-1.5\"\n type=\"button\"\n @click=\"handleClick\">\n <ScalarIcon\n icon=\"Checkmark\"\n size=\"xs\" />\n </button>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarModal, type ModalState } from '@scalar/components'\nimport { ref } from 'vue'\n\nimport SidebarListElementForm from '@/components/Sidebar/Actions/SidebarListElementForm.vue'\n\nimport EnvironmentColors from './EnvironmentColors.vue'\n\nconst props = defineProps<{\n state: ModalState\n selectedColor: string\n}>()\n\nconst emit = defineEmits<{\n (e: 'cancel'): void\n (e: 'submit', color: string): void\n}>()\n\nconst newColor = ref('')\n\nconst handleColorSelect = (color: string) => {\n newColor.value = color\n}\n\nconst handleSubmit = () => {\n emit('submit', newColor.value)\n newColor.value = ''\n}\n</script>\n<template>\n <ScalarModal\n size=\"xxs\"\n :state=\"state\"\n title=\"Edit Environment Color\">\n <div class=\"flex flex-col gap-4\">\n <EnvironmentColors\n :activeColor=\"newColor || props.selectedColor\"\n class=\"w-full p-1\"\n @select=\"handleColorSelect\" />\n <SidebarListElementForm\n @cancel=\"emit('cancel')\"\n @submit=\"handleSubmit\">\n </SidebarListElementForm>\n </div>\n </ScalarModal>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarModal, type ModalState } from '@scalar/components'\nimport { ref } from 'vue'\n\nimport SidebarListElementForm from '@/components/Sidebar/Actions/SidebarListElementForm.vue'\n\nimport EnvironmentColors from './EnvironmentColors.vue'\n\nconst props = defineProps<{\n state: ModalState\n selectedColor: string\n}>()\n\nconst emit = defineEmits<{\n (e: 'cancel'): void\n (e: 'submit', color: string): void\n}>()\n\nconst newColor = ref('')\n\nconst handleColorSelect = (color: string) => {\n newColor.value = color\n}\n\nconst handleSubmit = () => {\n emit('submit', newColor.value)\n newColor.value = ''\n}\n</script>\n<template>\n <ScalarModal\n size=\"xxs\"\n :state=\"state\"\n title=\"Edit Environment Color\">\n <div class=\"flex flex-col gap-4\">\n <EnvironmentColors\n :activeColor=\"newColor || props.selectedColor\"\n class=\"w-full p-1\"\n @select=\"handleColorSelect\" />\n <SidebarListElementForm\n @cancel=\"emit('cancel')\"\n @submit=\"handleSubmit\">\n </SidebarListElementForm>\n </div>\n </ScalarModal>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarIcon,\n ScalarListbox,\n ScalarModal,\n type ModalState,\n} from '@scalar/components'\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref, watch } from 'vue'\n\nimport CommandActionForm from '@/components/CommandPalette/CommandActionForm.vue'\nimport CommandActionInput from '@/components/CommandPalette/CommandActionInput.vue'\nimport { useWorkspace } from '@/store'\n\nimport EnvironmentColors from './EnvironmentColors.vue'\n\nconst props = defineProps<{\n state: ModalState\n activeWorkspaceCollections: Collection[]\n collectionId: string | undefined\n}>()\n\nconst emit = defineEmits<{\n (event: 'cancel'): void\n (\n event: 'submit',\n environment: {\n name: string\n color: string\n type: string\n collectionId: Collection['uid'] | undefined\n },\n ): void\n}>()\n\nconst { events } = useWorkspace()\n\nconst environmentName = ref('')\nconst selectedColor = ref('#FFFFFF')\n\nconst collections = computed(() => [\n ...props.activeWorkspaceCollections\n .filter((collection) => collection.info?.title !== 'Drafts')\n .map((collection) => ({\n id: collection.uid,\n label: collection.info?.title ?? 'Untitled Collection',\n })),\n])\n\nconst selectedEnvironment = ref(\n collections.value.find((collection) => collection.id === props.collectionId),\n)\n\nconst { toast } = useToasts()\n\nconst handleColorSelect = (color: string) => {\n selectedColor.value = color\n}\n\n// Reset environment name and selected color\nwatch(\n () => props.state.open,\n (isOpen) => {\n if (isOpen) {\n environmentName.value = ''\n selectedColor.value = '#FFFFFF'\n if (props.collectionId) {\n selectedEnvironment.value = collections.value.find(\n (collection) => collection.id === props.collectionId,\n )\n } else {\n selectedEnvironment.value = undefined\n }\n }\n },\n)\n\nconst handleSubmit = () => {\n if (!environmentName.value.trim()) {\n toast('Please enter a name before adding an environment.', 'error')\n return\n }\n if (!selectedEnvironment.value?.id) {\n toast('Please select a collection before adding an environment.', 'error')\n return\n }\n emit('submit', {\n name: environmentName.value,\n color: selectedColor.value,\n type: selectedEnvironment.value?.id === 'global' ? 'global' : 'collection',\n collectionId:\n selectedEnvironment.value?.id !== 'global'\n ? selectedEnvironment.value?.id\n : undefined,\n })\n}\n\nconst redirectToCreateCollection = () => {\n props.state.hide()\n events.commandPalette.emit({ commandName: 'Create Collection' })\n}\n</script>\n\n<template>\n <ScalarModal\n bodyClass=\"border-t-0 rounded-t-lg\"\n size=\"xs\"\n :state=\"state\">\n <CommandActionForm\n :disabled=\"!selectedEnvironment || !environmentName.trim()\"\n @cancel=\"emit('cancel')\"\n @submit=\"handleSubmit\">\n <div class=\"flex items-start gap-2\">\n <EnvironmentColors\n :activeColor=\"selectedColor\"\n class=\"peer\"\n selector\n @select=\"handleColorSelect\" />\n <CommandActionInput\n v-model=\"environmentName\"\n class=\"-mt-[.5px] !p-0 peer-has-[.color-selector]:hidden\"\n placeholder=\"Environment name\" />\n </div>\n <template #options>\n <ScalarListbox\n v-model=\"selectedEnvironment\"\n :options=\"collections\"\n placeholder=\"Select Type\">\n <ScalarButton\n v-if=\"collections.length > 0\"\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span :class=\"selectedEnvironment ? 'text-c-1' : 'text-c-3'\">{{\n selectedEnvironment\n ? selectedEnvironment.label\n : 'Select Collection'\n }}</span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"xs\" />\n </ScalarButton>\n <ScalarButton\n v-else\n class=\"hover:bg-b-2 max-h-8 justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"redirectToCreateCollection\">\n <span class=\"text-c-1\">Create Collection</span>\n </ScalarButton>\n </ScalarListbox>\n </template>\n <template #submit> Add Environment </template>\n </CommandActionForm>\n </ScalarModal>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarIcon,\n ScalarListbox,\n ScalarModal,\n type ModalState,\n} from '@scalar/components'\nimport type { Collection } from '@scalar/oas-utils/entities/spec'\nimport { useToasts } from '@scalar/use-toasts'\nimport { computed, ref, watch } from 'vue'\n\nimport CommandActionForm from '@/components/CommandPalette/CommandActionForm.vue'\nimport CommandActionInput from '@/components/CommandPalette/CommandActionInput.vue'\nimport { useWorkspace } from '@/store'\n\nimport EnvironmentColors from './EnvironmentColors.vue'\n\nconst props = defineProps<{\n state: ModalState\n activeWorkspaceCollections: Collection[]\n collectionId: string | undefined\n}>()\n\nconst emit = defineEmits<{\n (event: 'cancel'): void\n (\n event: 'submit',\n environment: {\n name: string\n color: string\n type: string\n collectionId: Collection['uid'] | undefined\n },\n ): void\n}>()\n\nconst { events } = useWorkspace()\n\nconst environmentName = ref('')\nconst selectedColor = ref('#FFFFFF')\n\nconst collections = computed(() => [\n ...props.activeWorkspaceCollections\n .filter((collection) => collection.info?.title !== 'Drafts')\n .map((collection) => ({\n id: collection.uid,\n label: collection.info?.title ?? 'Untitled Collection',\n })),\n])\n\nconst selectedEnvironment = ref(\n collections.value.find((collection) => collection.id === props.collectionId),\n)\n\nconst { toast } = useToasts()\n\nconst handleColorSelect = (color: string) => {\n selectedColor.value = color\n}\n\n// Reset environment name and selected color\nwatch(\n () => props.state.open,\n (isOpen) => {\n if (isOpen) {\n environmentName.value = ''\n selectedColor.value = '#FFFFFF'\n if (props.collectionId) {\n selectedEnvironment.value = collections.value.find(\n (collection) => collection.id === props.collectionId,\n )\n } else {\n selectedEnvironment.value = undefined\n }\n }\n },\n)\n\nconst handleSubmit = () => {\n if (!environmentName.value.trim()) {\n toast('Please enter a name before adding an environment.', 'error')\n return\n }\n if (!selectedEnvironment.value?.id) {\n toast('Please select a collection before adding an environment.', 'error')\n return\n }\n emit('submit', {\n name: environmentName.value,\n color: selectedColor.value,\n type: selectedEnvironment.value?.id === 'global' ? 'global' : 'collection',\n collectionId:\n selectedEnvironment.value?.id !== 'global'\n ? selectedEnvironment.value?.id\n : undefined,\n })\n}\n\nconst redirectToCreateCollection = () => {\n props.state.hide()\n events.commandPalette.emit({ commandName: 'Create Collection' })\n}\n</script>\n\n<template>\n <ScalarModal\n bodyClass=\"border-t-0 rounded-t-lg\"\n size=\"xs\"\n :state=\"state\">\n <CommandActionForm\n :disabled=\"!selectedEnvironment || !environmentName.trim()\"\n @cancel=\"emit('cancel')\"\n @submit=\"handleSubmit\">\n <div class=\"flex items-start gap-2\">\n <EnvironmentColors\n :activeColor=\"selectedColor\"\n class=\"peer\"\n selector\n @select=\"handleColorSelect\" />\n <CommandActionInput\n v-model=\"environmentName\"\n class=\"-mt-[.5px] !p-0 peer-has-[.color-selector]:hidden\"\n placeholder=\"Environment name\" />\n </div>\n <template #options>\n <ScalarListbox\n v-model=\"selectedEnvironment\"\n :options=\"collections\"\n placeholder=\"Select Type\">\n <ScalarButton\n v-if=\"collections.length > 0\"\n class=\"hover:bg-b-2 max-h-8 w-fit justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\">\n <span :class=\"selectedEnvironment ? 'text-c-1' : 'text-c-3'\">{{\n selectedEnvironment\n ? selectedEnvironment.label\n : 'Select Collection'\n }}</span>\n <ScalarIcon\n class=\"text-c-3\"\n icon=\"ChevronDown\"\n size=\"xs\" />\n </ScalarButton>\n <ScalarButton\n v-else\n class=\"hover:bg-b-2 max-h-8 justify-between gap-1 p-2 text-xs\"\n variant=\"outlined\"\n @click=\"redirectToCreateCollection\">\n <span class=\"text-c-1\">Create Collection</span>\n </ScalarButton>\n </ScalarListbox>\n </template>\n <template #submit> Add Environment </template>\n </CommandActionForm>\n </ScalarModal>\n</template>\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { w as useActiveEntities } from "./store-DaPoVtIS.js";
1
+ import { w as useActiveEntities } from "./store-DnlAQK5d.js";
2
2
  import { r as DataTable_default, t as DataTableRow_default } from "./DataTableRow-c3XveEUO.js";
3
- import { t as DataTableInput_default } from "./DataTableInput-SkIUPlrB.js";
3
+ import { t as DataTableInput_default } from "./DataTableInput-RydMDjn2.js";
4
4
  import { t as ViewLayoutSection_default } from "./ViewLayoutSection-mUqKbQry.js";
5
5
  import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, normalizeClass, openBlock, renderList, renderSlot, toDisplayString, unref, useId, withCtx } from "vue";
6
6
  import { ScalarIcon } from "@scalar/components";
@@ -80,4 +80,4 @@ var Form_default = /* @__PURE__ */ defineComponent({
80
80
  //#endregion
81
81
  export { Form_default as t };
82
82
 
83
- //# sourceMappingURL=Form-bA4bV_oA.js.map
83
+ //# sourceMappingURL=Form-KFcdRQp1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Form-bA4bV_oA.js","names":["$slots"],"sources":["../src/components/Form/Form.vue","../src/components/Form/Form.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport type { Cookie } from '@scalar/oas-utils/entities/cookie'\nimport type { Path, PathValue } from '@scalar/object-utils/nested'\nimport { useId } from 'vue'\n\nimport DataTable from '@/components/DataTable/DataTable.vue'\nimport DataTableInput from '@/components/DataTable/DataTableInput.vue'\nimport DataTableRow from '@/components/DataTable/DataTableRow.vue'\nimport ViewLayoutSection from '@/components/ViewLayout/ViewLayoutSection.vue'\nimport { useActiveEntities } from '@/store/active-entities'\n\ndefineProps<{\n title?: string\n options: {\n key: string\n label: string\n placeholder: string\n }[]\n data: Record<string, any>\n onUpdate: <P extends Path<Cookie>>(\n key: P,\n value: NonNullable<PathValue<Cookie, P>>,\n ) => void\n}>()\n\nconst { activeEnvVariables, activeEnvironment, activeWorkspace } =\n useActiveEntities()\nconst id = useId()\n</script>\n<template>\n <ViewLayoutSection class=\"last:rounded-b-lg\">\n <template\n v-if=\"title || $slots.title\"\n #title>\n <span v-if=\"title\">{{ title }}</span>\n <slot\n v-else\n name=\"title\" />\n </template>\n <div class=\"flex flex-1 flex-col gap-1.5\">\n <DataTable\n v-if=\"Object.keys(data).length > 0 && activeWorkspace\"\n :columns=\"['']\"\n class=\"rounded-b-lg\">\n <DataTableRow\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :class=\"{ 'border-t': index === 0 }\">\n <DataTableInput\n class=\"pr-9\"\n lineWrapping\n :id=\"id\"\n :envVariables=\"activeEnvVariables\"\n :environment=\"activeEnvironment\"\n :modelValue=\"data[option.key] ?? ''\"\n :placeholder=\"option.placeholder\"\n :workspace=\"activeWorkspace\"\n @update:modelValue=\"onUpdate(option.key as Path<Cookie>, $event)\">\n <template #default>\n <label :for=\"id\">\n {{ option.label }}\n </label>\n </template>\n <template\n v-if=\"option.key === 'description'\"\n #icon>\n <div\n class=\"centered-y bg-b-2 flex-center absolute right-1 z-1 rounded px-1 py-0.5\">\n <ScalarIcon\n icon=\"Markdown\"\n size=\"lg\" />\n </div>\n </template>\n </DataTableInput>\n </DataTableRow>\n </DataTable>\n </div>\n </ViewLayoutSection>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport type { Cookie } from '@scalar/oas-utils/entities/cookie'\nimport type { Path, PathValue } from '@scalar/object-utils/nested'\nimport { useId } from 'vue'\n\nimport DataTable from '@/components/DataTable/DataTable.vue'\nimport DataTableInput from '@/components/DataTable/DataTableInput.vue'\nimport DataTableRow from '@/components/DataTable/DataTableRow.vue'\nimport ViewLayoutSection from '@/components/ViewLayout/ViewLayoutSection.vue'\nimport { useActiveEntities } from '@/store/active-entities'\n\ndefineProps<{\n title?: string\n options: {\n key: string\n label: string\n placeholder: string\n }[]\n data: Record<string, any>\n onUpdate: <P extends Path<Cookie>>(\n key: P,\n value: NonNullable<PathValue<Cookie, P>>,\n ) => void\n}>()\n\nconst { activeEnvVariables, activeEnvironment, activeWorkspace } =\n useActiveEntities()\nconst id = useId()\n</script>\n<template>\n <ViewLayoutSection class=\"last:rounded-b-lg\">\n <template\n v-if=\"title || $slots.title\"\n #title>\n <span v-if=\"title\">{{ title }}</span>\n <slot\n v-else\n name=\"title\" />\n </template>\n <div class=\"flex flex-1 flex-col gap-1.5\">\n <DataTable\n v-if=\"Object.keys(data).length > 0 && activeWorkspace\"\n :columns=\"['']\"\n class=\"rounded-b-lg\">\n <DataTableRow\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :class=\"{ 'border-t': index === 0 }\">\n <DataTableInput\n class=\"pr-9\"\n lineWrapping\n :id=\"id\"\n :envVariables=\"activeEnvVariables\"\n :environment=\"activeEnvironment\"\n :modelValue=\"data[option.key] ?? ''\"\n :placeholder=\"option.placeholder\"\n :workspace=\"activeWorkspace\"\n @update:modelValue=\"onUpdate(option.key as Path<Cookie>, $event)\">\n <template #default>\n <label :for=\"id\">\n {{ option.label }}\n </label>\n </template>\n <template\n v-if=\"option.key === 'description'\"\n #icon>\n <div\n class=\"centered-y bg-b-2 flex-center absolute right-1 z-1 rounded px-1 py-0.5\">\n <ScalarIcon\n icon=\"Markdown\"\n size=\"lg\" />\n </div>\n </template>\n </DataTableInput>\n </DataTableRow>\n </DataTable>\n </div>\n </ViewLayoutSection>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EC0BA,MAAM,EAAE,oBAAoB,mBAAmB,oBAC7C,mBAAkB;EACpB,MAAM,KAAK,OAAM;;uBAGf,YA+CoB,2BAAA,EA/CD,OAAM,qBAAmB,EAAA,YAAA;2BA8CpC,CArCN,mBAqCM,OArCN,YAqCM,CAnCI,OAAO,KAAK,QAAA,KAAI,CAAE,SAAM,KAAQ,MAAA,gBAAe,IAAA,WAAA,EADvD,YAmCY,mBAAA;;KAjCT,SAAS,CAAA,GAAI;KACd,OAAM;;4BAE8B,EAAA,UAAA,KAAA,EADpC,mBA8Be,UAAA,MAAA,WA7Ba,QAAA,UAAlB,QAAQ,UAAK;0BADvB,YA8Be,sBAAA;OA5BZ,KAAK;OACL,OAAK,eAAA,EAAA,YAAgB,UAAK,GAAA,CAAA;;8BA0BV,CAzBjB,YAyBiB,wBAAA;QAxBf,OAAM;QACN,cAAA;QACC,IAAI,MAAA,GAAE;QACN,cAAc,MAAA,mBAAkB;QAChC,aAAa,MAAA,kBAAiB;QAC9B,YAAY,QAAA,KAAK,OAAO,QAAG;QAC3B,aAAa,OAAO;QACpB,WAAW,MAAA,gBAAe;QAC1B,wBAAiB,WAAE,QAAA,SAAS,OAAO,KAAqB,OAAM;;QACpD,SAAO,cAGR,CAFR,mBAEQ,SAAA,EAFA,KAAK,MAAA,GAAE,EAAA,EAAA,gBACV,OAAO,MAAK,EAAA,GAAA,WAAA,CAAA,CAAA;;WAIX,OAAO,QAAG,gBAAA;cACf;0BAMK,CALN,mBAKM,OALN,YAKM,CAHJ,YAEc,MAAA,WAAA,EAAA;SADZ,MAAK;SACL,MAAK;;;;;;;;;;;;;;;;;;OAtCX,QAAA,SAASA,KAAAA,OAAO,QAAA;UACrB;sBACoC,CAAzB,QAAA,SAAA,WAAA,EAAZ,mBAAqC,QAAA,YAAA,gBAAf,QAAA,MAAK,EAAA,EAAA,IAC3B,WAEiB,KAAA,QAAA,SAAA,EAAA,KAAA,GAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"Form-KFcdRQp1.js","names":["$slots"],"sources":["../src/components/Form/Form.vue","../src/components/Form/Form.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport type { Cookie } from '@scalar/oas-utils/entities/cookie'\nimport type { Path, PathValue } from '@scalar/object-utils/nested'\nimport { useId } from 'vue'\n\nimport DataTable from '@/components/DataTable/DataTable.vue'\nimport DataTableInput from '@/components/DataTable/DataTableInput.vue'\nimport DataTableRow from '@/components/DataTable/DataTableRow.vue'\nimport ViewLayoutSection from '@/components/ViewLayout/ViewLayoutSection.vue'\nimport { useActiveEntities } from '@/store/active-entities'\n\ndefineProps<{\n title?: string\n options: {\n key: string\n label: string\n placeholder: string\n }[]\n data: Record<string, any>\n onUpdate: <P extends Path<Cookie>>(\n key: P,\n value: NonNullable<PathValue<Cookie, P>>,\n ) => void\n}>()\n\nconst { activeEnvVariables, activeEnvironment, activeWorkspace } =\n useActiveEntities()\nconst id = useId()\n</script>\n<template>\n <ViewLayoutSection class=\"last:rounded-b-lg\">\n <template\n v-if=\"title || $slots.title\"\n #title>\n <span v-if=\"title\">{{ title }}</span>\n <slot\n v-else\n name=\"title\" />\n </template>\n <div class=\"flex flex-1 flex-col gap-1.5\">\n <DataTable\n v-if=\"Object.keys(data).length > 0 && activeWorkspace\"\n :columns=\"['']\"\n class=\"rounded-b-lg\">\n <DataTableRow\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :class=\"{ 'border-t': index === 0 }\">\n <DataTableInput\n class=\"pr-9\"\n lineWrapping\n :id=\"id\"\n :envVariables=\"activeEnvVariables\"\n :environment=\"activeEnvironment\"\n :modelValue=\"data[option.key] ?? ''\"\n :placeholder=\"option.placeholder\"\n :workspace=\"activeWorkspace\"\n @update:modelValue=\"onUpdate(option.key as Path<Cookie>, $event)\">\n <template #default>\n <label :for=\"id\">\n {{ option.label }}\n </label>\n </template>\n <template\n v-if=\"option.key === 'description'\"\n #icon>\n <div\n class=\"centered-y bg-b-2 flex-center absolute right-1 z-1 rounded px-1 py-0.5\">\n <ScalarIcon\n icon=\"Markdown\"\n size=\"lg\" />\n </div>\n </template>\n </DataTableInput>\n </DataTableRow>\n </DataTable>\n </div>\n </ViewLayoutSection>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components'\nimport type { Cookie } from '@scalar/oas-utils/entities/cookie'\nimport type { Path, PathValue } from '@scalar/object-utils/nested'\nimport { useId } from 'vue'\n\nimport DataTable from '@/components/DataTable/DataTable.vue'\nimport DataTableInput from '@/components/DataTable/DataTableInput.vue'\nimport DataTableRow from '@/components/DataTable/DataTableRow.vue'\nimport ViewLayoutSection from '@/components/ViewLayout/ViewLayoutSection.vue'\nimport { useActiveEntities } from '@/store/active-entities'\n\ndefineProps<{\n title?: string\n options: {\n key: string\n label: string\n placeholder: string\n }[]\n data: Record<string, any>\n onUpdate: <P extends Path<Cookie>>(\n key: P,\n value: NonNullable<PathValue<Cookie, P>>,\n ) => void\n}>()\n\nconst { activeEnvVariables, activeEnvironment, activeWorkspace } =\n useActiveEntities()\nconst id = useId()\n</script>\n<template>\n <ViewLayoutSection class=\"last:rounded-b-lg\">\n <template\n v-if=\"title || $slots.title\"\n #title>\n <span v-if=\"title\">{{ title }}</span>\n <slot\n v-else\n name=\"title\" />\n </template>\n <div class=\"flex flex-1 flex-col gap-1.5\">\n <DataTable\n v-if=\"Object.keys(data).length > 0 && activeWorkspace\"\n :columns=\"['']\"\n class=\"rounded-b-lg\">\n <DataTableRow\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :class=\"{ 'border-t': index === 0 }\">\n <DataTableInput\n class=\"pr-9\"\n lineWrapping\n :id=\"id\"\n :envVariables=\"activeEnvVariables\"\n :environment=\"activeEnvironment\"\n :modelValue=\"data[option.key] ?? ''\"\n :placeholder=\"option.placeholder\"\n :workspace=\"activeWorkspace\"\n @update:modelValue=\"onUpdate(option.key as Path<Cookie>, $event)\">\n <template #default>\n <label :for=\"id\">\n {{ option.label }}\n </label>\n </template>\n <template\n v-if=\"option.key === 'description'\"\n #icon>\n <div\n class=\"centered-y bg-b-2 flex-center absolute right-1 z-1 rounded px-1 py-0.5\">\n <ScalarIcon\n icon=\"Markdown\"\n size=\"lg\" />\n </div>\n </template>\n </DataTableInput>\n </DataTableRow>\n </DataTable>\n </div>\n </ViewLayoutSection>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EC0BA,MAAM,EAAE,oBAAoB,mBAAmB,oBAC7C,mBAAkB;EACpB,MAAM,KAAK,OAAM;;uBAGf,YA+CoB,2BAAA,EA/CD,OAAM,qBAAmB,EAAA,YAAA;2BA8CpC,CArCN,mBAqCM,OArCN,YAqCM,CAnCI,OAAO,KAAK,QAAA,KAAI,CAAE,SAAM,KAAQ,MAAA,gBAAe,IAAA,WAAA,EADvD,YAmCY,mBAAA;;KAjCT,SAAS,CAAA,GAAI;KACd,OAAM;;4BAE8B,EAAA,UAAA,KAAA,EADpC,mBA8Be,UAAA,MAAA,WA7Ba,QAAA,UAAlB,QAAQ,UAAK;0BADvB,YA8Be,sBAAA;OA5BZ,KAAK;OACL,OAAK,eAAA,EAAA,YAAgB,UAAK,GAAA,CAAA;;8BA0BV,CAzBjB,YAyBiB,wBAAA;QAxBf,OAAM;QACN,cAAA;QACC,IAAI,MAAA,GAAE;QACN,cAAc,MAAA,mBAAkB;QAChC,aAAa,MAAA,kBAAiB;QAC9B,YAAY,QAAA,KAAK,OAAO,QAAG;QAC3B,aAAa,OAAO;QACpB,WAAW,MAAA,gBAAe;QAC1B,wBAAiB,WAAE,QAAA,SAAS,OAAO,KAAqB,OAAM;;QACpD,SAAO,cAGR,CAFR,mBAEQ,SAAA,EAFA,KAAK,MAAA,GAAE,EAAA,EAAA,gBACV,OAAO,MAAK,EAAA,GAAA,WAAA,CAAA,CAAA;;WAIX,OAAO,QAAG,gBAAA;cACf;0BAMK,CALN,mBAKM,OALN,YAKM,CAHJ,YAEc,MAAA,WAAA,EAAA;SADZ,MAAK;SACL,MAAK;;;;;;;;;;;;;;;;;;OAtCX,QAAA,SAASA,KAAAA,OAAO,QAAA;UACrB;sBACoC,CAAzB,QAAA,SAAA,WAAA,EAAZ,mBAAqC,QAAA,YAAA,gBAAf,QAAA,MAAK,EAAA,EAAA,IAC3B,WAEiB,KAAA,QAAA,SAAA,EAAA,KAAA,GAAA,CAAA,CAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { m as isUrl$1, r as useWorkspace, w as useActiveEntities } from "./store-DaPoVtIS.js";
1
+ import { m as isUrl$1, r as useWorkspace, w as useActiveEntities } from "./store-DnlAQK5d.js";
2
2
  import { t as WatchModeToggle_default } from "./WatchModeToggle-D_eAiTWJ.js";
3
3
  import { t as IntegrationLogo_default } from "./IntegrationLogo-B9EDW8db.js";
4
4
  import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, nextTick, normalizeClass, onBeforeUnmount, onMounted, onUnmounted, openBlock, reactive, ref, renderList, renderSlot, toDisplayString, unref, vModelText, watch, withCtx, withDirectives, withModifiers } from "vue";
@@ -801,4 +801,4 @@ var ImportCollectionListener_default = /* @__PURE__ */ defineComponent({
801
801
  //#endregion
802
802
  export { ImportCollectionListener_default as t };
803
803
 
804
- //# sourceMappingURL=ImportCollection-BIYMxB9Q.js.map
804
+ //# sourceMappingURL=ImportCollection-CGjySEzP.js.map