import { defineComponent, ref, createBlock, openBlock, withCtx, createVNode, unref, createElementBlock, Fragment, renderList, createElementVNode, createTextVNode, toDisplayString } from "vue";
import { ScalarFormSection, ScalarFormInputGroup, ScalarToggleInput, ScalarIcon } from "@scalar/components";
import ApiReferenceToolbarBlurb from "./ApiReferenceToolbarBlurb.vue.js";
import _sfc_main$1 from "./ApiReferenceToolbarPopover.vue.js";
import _sfc_main$2 from "./ApiReferenceToolbarRegisterButton.vue.js";
const _hoisted_1 = { class: "inline-flex items-center gap-2" };
const _sfc_main = /* @__PURE__ */ defineComponent({
  __name: "ApiReferenceToolbarSdks",
  props: {
    workspace: {}
  },
  setup(__props) {
    const LANGUAGES = [
      {
        key: "typescript",
        label: "Typescript",
        icon: "programming-language-typescript"
      },
      { key: "python", label: "Python", icon: "programming-language-python" },
      { key: "csharp", label: "C#", icon: "programming-language-csharp" },
      { key: "java", label: "Java", icon: "programming-language-java" },
      { key: "ruby", label: "Ruby", icon: "programming-language-ruby" },
      { key: "php", label: "PHP", icon: "programming-language-php" },
      { key: "go", label: "Go", icon: "programming-language-go" }
    ];
    const selectedLanguages = ref([]);
    return (_ctx, _cache) => {
      return openBlock(), createBlock(_sfc_main$1, { class: "w-110" }, {
        label: withCtx(() => [..._cache[0] || (_cache[0] = [
          createTextVNode("Generate SDKs", -1)
        ])]),
        default: withCtx(() => [
          createVNode(unref(ScalarFormSection), null, {
            label: withCtx(() => [..._cache[1] || (_cache[1] = [
              createTextVNode("Select Languages", -1)
            ])]),
            default: withCtx(() => [
              createVNode(unref(ScalarFormInputGroup), null, {
                default: withCtx(() => [
                  (openBlock(), createElementBlock(Fragment, null, renderList(LANGUAGES, ({ key, label, icon }) => {
                    return createVNode(unref(ScalarToggleInput), {
                      key,
                      modelValue: selectedLanguages.value.includes(key),
                      "onUpdate:modelValue": (enabled) => enabled ? selectedLanguages.value = [...selectedLanguages.value, key] : selectedLanguages.value = selectedLanguages.value.filter(
                        (k) => k !== key
                      )
                    }, {
                      default: withCtx(() => [
                        createElementVNode("span", _hoisted_1, [
                          createVNode(unref(ScalarIcon), {
                            icon,
                            class: "text-c-2 size-3.5"
                          }, null, 8, ["icon"]),
                          createTextVNode(" " + toDisplayString(label), 1)
                        ])
                      ]),
                      _: 2
                    }, 1032, ["modelValue", "onUpdate:modelValue"]);
                  }), 64))
                ]),
                _: 1
              }),
              createVNode(_sfc_main$2, {
                sdks: selectedLanguages.value,
                workspace: _ctx.workspace
              }, null, 8, ["sdks", "workspace"]),
              createVNode(ApiReferenceToolbarBlurb, null, {
                default: withCtx(() => [..._cache[2] || (_cache[2] = [
                  createTextVNode(" Generating SDKs is a paid feature starting at $100/mo, learn more in our ", -1),
                  createElementVNode("a", {
                    href: "https://guides.scalar.com/products/sdks/getting-started",
                    target: "_blank"
                  }, " guides", -1),
                  createTextVNode(". ", -1)
                ])]),
                _: 1
              })
            ]),
            _: 1
          })
        ]),
        _: 1
      });
    };
  }
});
export {
  _sfc_main as default
};
