PageSourceSearch

https://portal.godesignguru.com/build/assets/ExtensionCreate-BJ5qrV4J.js

js godesignguru.com collected 2026-10-04 05:49:51 UTC 24,922 bytes, 92 lines download raw bytes

1import { _ as X } from "./BaseStepper-LO3b-WNc.js";
2import { o as i, c as m, a as t, j as A, i as k, f as x, e as l, u as e, t as n, C as p, F as E, r as C, s as G, g as H, G as M, z as T, w as V, D as L, J as K, d as y, b as w, q as D, l as Y, n as Z } from "./app-yg_pP4S4.js";
3import { u as S } from "./modelWrapper-D0DowOi8.js";
4import { r as J } from "./ChevronDownIcon-DvXuQ_5B.js";
5import { j as W, A as Q, F as U, I as ee } from "./listbox-BVei8WBz.js";
6import { r as te } from "./form-BcDj1t5Y.js";
7import { E as B, f as $, g as se, h as I, _ as oe } from "./DashboardLayout-CXf_hhYT.js";
8import { r as ne } from "./UserAvatar-B3-R1wxh.js";
9import { d as re } from "./XMarkIcon-C7ztHuKP.js";
10import { O as F, k as N, E as q, h as P } from "./radio-group-C7m5BNR4.js";
11import { _ as ae } from "./ExtensionIconUpload-B74sKLoD.js";
12import { b as j } from "./functions-DLrKIvnr.js";
13import { r as z } from "./BaseInput-DrEncIoW.js";
14import { r as ie } from "./GlobeAltIcon-DKjZp_p2.js";
15import "./FormFooter-BR3rPhrH.js";
16import "./CheckIcon-Bb6ppPFl.js";
17import "./index-CDyB1Hog.js";
18import "./use-text-value-9Z6g_4jd.js";
19import "./BaseButton-DP1PFEmO.js";
20import "./ApplicationLogo-D4QkytOJ.js";
21import "./LiveChat-BEmWJs6j.js";
22import "./_plugin-vue_export-helper-DlAUqK2U.js";
23import "./popover-DTQdCRwt.js";
24import "./consts-7Qk9bpse.js";
25import "./LoaderIcon-BfI_LFZK.js";
26import "./ModalConfirmation-BptK8hn4.js";
27import "./index-BF2h0ubX.js";
28import "./BaseModal-lnT_D81c.js";
29import "./EyeIcon-C30yl1ND.js";
30import "./HomeIcon-B7IW8yDA.js";
31import "./MinusIcon-C5ZUuSoW.js";
32import "./menu-DpWDC0YJ.js";
33import "./use-tree-walker-DC0osvAV.js";
34import "./vue-transitions-DxcThSkT.js";
35import "./ClockIcon-DWc8x_ii.js";
36import "./CameraIcon-CztUuFST.js";
37function R(b, u) {
38  return i(), m("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [t("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M3.75 21h16.5M4.5 3h15M5.25 3v18m13.5-18v18M9 6.75h1.5m-1.5 3h1.5m-1.5 3h1.5m3-6H15m-1.5 3H15m-1.5 3H15M9 21v-3.375c0-.621.504-1.125 1.125-1.125h3.75c.621 0 1.125.504 1.125 1.125V21" })]);
39}
40function le(b, u) {
41  return i(), m("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [t("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z" })]);
42}
43const de = { class: "relative" }, ce = { class: "block truncate text-left text-sm leading-6" }, me = { class: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2" }, ue = { __name: "ExtensionCategoryDropdown", props: { modelValue: { type: [String, Number], default: () => "" }, categories: { type: Array, required: true } }, emits: ["update:modelValue"], setup(b, { emit: u }) {
44  const { t: r } = A(), v = b, s = S(v, u, "modelValue"), g = H(() => {
45    var _a;
46    return s.value ? (_a = v.categories.find((a) => a.id == s.value)) == null ? void 0 : _a.name : r("All");
47  });
48  return (a, c) => (i(), k(e(ee), { modelValue: e(s), "onUpdate:modelValue": c[0] || (c[0] = (o) => G(s) ? s.value = o : null), class: "w-full", as: "div" }, { default: x(() => [t("div", de, [l(e(W), { class: "relative w-40 cursor-default rounded-md border border-gray-300 bg-white py-2 pl-3 pr-10 text-left text-sm leading-6 focus:border-primary-500 focus:outline-none focus:ring-1 focus:ring-primary-500 sm:w-60 sm:text-sm" }, { default: x(() => [t("span", ce, n(g.value), 1), t("span", me, [l(e(J), { class: "h-5 w-5 text-gray-400", "aria-hidden": "true" })])]), _: 1 }), l(e(Q), { class: "absolute right-0 z-10 mt-1 max-h-60 w-60 overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm" }, { default: x(() => [l(e(U), { as: "template", value: null }, { default: x(({ active: o, selected: d }) => [t("li", { class: p(["relative cursor-default select-none py-2 pl-3 pr-9", o ? "bg-gray-100" : "text-gray-900"]) }, [t("span", { class: p([d ? "font-semibold" : "font-normal", "block truncate"]) }, n(e(r)("All")), 3)], 2)]), _: 1 }), (i(true), m(E, null, C(b.categories, (o) => (i(), k(e(U), { key: o.id, value: o.id, as: "template" }, { default: x(({ active: d, selected: h }) => [t("li", { class: p(["relative cursor-default select-none py-2 pl-3 pr-9", d ? "bg-gray-100" : "text-gray-900"]) }, [t("span", { class: p([h ? "font-semibold" : "font-normal", "block truncate"]) }, n(o.name), 3)], 2)]), _: 2 }, 1032, ["value"]))), 128))]), _: 1 })])]), _: 1 }, 8, ["modelValue"]));
49} }, pe = { class: "flex w-full items-center justify-between" }, xe = { class: "mr-4 w-full sm:w-1/2 lg:w-1/3" }, _e = { class: "relative rounded-md shadow-sm" }, fe = { class: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3" }, ge = ["placeholder"], he = { class: "flex space-x-3" }, be = { __name: "ExtensionsCreateFilters", props: { categories: { type: Array, required: true } }, emits: ["changed"], setup(b, { emit: u }) {
50  const { t: r } = A(), v = u, f = M(route().params.search ?? ""), s = M(route().params.category ?? ""), g = (a) => v("changed", a);
51  return T(f, _.debounce((a) => {
52    g({ search: a });
53  }, 500)), T(s, _.debounce((a) => {
54    g({ category: a });
55  }, 500)), (a, c) => (i(), m("div", pe, [t("div", xe, [t("div", _e, [t("div", fe, [l(e(te), { class: "h-5 w-5 text-gray-400", "aria-hidden": "true" })]), V(t("input", { "onUpdate:modelValue": c[0] || (c[0] = (o) => f.value = o), type: "search", name: "search", class: "block w-full rounded-md border-gray-300 pl-10 focus:border-primary-500 focus:ring-primary-500", placeholder: e(r)("Search"), autocomplete: "off" }, null, 8, ge), [[L, f.value]])])]), t("div", he, [l(ue, { modelValue: s.value, "onUpdate:modelValue": c[1] || (c[1] = (o) => s.value = o), categories: b.categories }, null, 8, ["modelValue", "categories"])])]));
56} }, ye = { class: "px-4 sm:px-6" }, ve = { class: "text-sm font-medium text-gray-500 sm:hidden" }, we = { class: "py-6 sm:flex" }, $e = { class: "mb-4 w-full" }, ke = { class: "mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4 lg:gap-x-4" }, Ve = { class: "flex w-full flex-col" }, Ee = { class: "flex items-start justify-between" }, Ae = { class: "mr-3 aspect-square shrink-0 rounded-md bg-primary-50 p-1.5" }, Le = ["src", "alt"], Ne = { class: "inline-flex items-center rounded bg-blue-100 px-2 py-0.5 text-xs font-medium text-blue-800" }, Ce = { key: 0, class: "inline-block leading-5 max-lg:hidden" }, Se = { key: 0, class: "mt-2 text-xs text-gray-500 lg:hidden" }, Oe = { class: "flex justify-end" }, Fe = { __name: "ExtensionCreateStepOne", props: { modelValue: { type: [Object, String, Number], default: () => ({}) }, extensions: { type: Array, required: true }, categories: { type: Array, required: true } }, emits: ["update:modelValue"], setup(b, { emit: u }) {
57  const f = S(b, u, "modelValue"), s = (g) => {
58    const a = Object.assign(route().params, g, { page: 1 });
59    return D.visit(route(route().current(), a));
60  };
61  return (g, a) => {
62    const c = K("tooltip");
63    return i(), m("div", ye, [t("p", ve, n(g.$t("Step {current} of {total}", { current: 1, total: 3 })) + " \xB7 " + n(g.$t("Select extension")), 1), t("div", we, [l(be, { categories: b.categories, onChanged: s }, null, 8, ["categories"])]), t("div", $e, [l(e(P), { modelValue: e(f).extension, "onUpdate:modelValue": a[0] || (a[0] = (o) => e(f).extension = o) }, { default: x(() => [t("div", ke, [(i(true), m(E, null, C(b.extensions, (o) => (i(), k(e(F), { key: o.id, as: "template", value: o }, { default: x(({ checked: d, active: h }) => [t("div", { class: p(["relative flex cursor-pointer rounded-lg border bg-white p-4 shadow-sm focus:outline-none", [d ? "border-transparent" : "border-gray-200", h ? "border-primary-500" : ""]]) }, [t("span", Ve, [t("div", Ee, [t("div", Ae, [t("img", { class: "aspect-square h-6 w-6 rounded-md", src: o.full_image_url, alt: o.name, "aria-hidden": "true" }, null, 8, Le)]), t("span", Ne, n(o.category.name), 1)]), l(e(N), { as: "span", class: "mt-3 block items-center text-sm font-medium text-gray-900" }, { default: x(() => [y(n(o.name) + " ", 1), o.id === e(B).EXTERNAL_LINK ? V((i(), m("span", Ce, [l(e(ne), { class: "h-4 w-4 text-gray-400", "aria-hidden": "true" })])), [[c, g.$t("Clicking this link takes clients outside the portal.")]]) : w("", true)]), _: 2 }, 1024), l(e(q), { as: "span", class: "mt-2 flex items-center text-sm text-gray-500" }, { default: x(() => [y(n(o.description), 1)]), _: 2 }, 1024), o.id === e(B).EXTERNAL_LINK ? (i(), m("span", Se, n(g.$t("Clicking this link takes clients outside the portal.")), 1)) : w("", true), t("span", Oe, [l(e(re), { class: p(["h-5 w-5 text-primary-600", [d ? "" : "invisible"]]), "aria-hidden": "true" }, null, 8, ["class"])])]), t("span", { class: p(["pointer-events-none absolute -inset-px rounded-lg border-2", [d ? "border-primary-500" : "border-transparent"]]), "aria-hidden": "true" }, null, 2)], 2)]), _: 2 }, 1032, ["value"]))), 128))])]), _: 1 }, 8, ["modelValue"])])]);
64  };
65} }, qe = { class: "px-4 sm:px-6" }, je = { class: "mb-4 text-sm font-medium text-gray-500 sm:hidden" }, Me = { class: "mb-9 flex items-center justify-between px-6 py-5 2xl:rounded-lg 2xl:bg-gray-50" }, Te = { key: 0, class: "flex" }, Ue = { class: "shrink-0" }, Be = { class: "mr-3 aspect-square rounded-md bg-primary-50 p-1.5" }, Ie = ["src", "alt"], ze = { class: "mb-1 text-2xl font-bold leading-6 text-gray-900" }, Re = { class: "text-sm font-normal leading-6 text-gray-500" }, Ge = { class: "bg-white md:min-h-[55vh]" }, De = { class: "divide-y divide-gray-200" }, Pe = { class: "block pb-6 sm:flex sm:justify-between" }, Xe = { class: "items-center md:mb-0 md:mr-10" }, He = { class: "h5 text-lg font-bold text-gray-900 sm:text-lg" }, Ke = { key: 0, class: "block pb-6 pt-6 sm:flex sm:justify-between" }, Ye = { class: "mb-4 items-center md:mb-0 md:mr-10" }, Ze = { class: "h5 text-base font-medium leading-5 text-gray-900 sm:text-lg" }, Je = { class: "mt-4 text-sm font-medium leading-5 text-gray-500" }, We = { class: "py-6" }, Qe = { class: "flex" }, et = { for: "icon", class: "block text-base font-medium leading-5 text-gray-900" }, tt = { class: "mt-1 text-sm font-normal leading-5 text-gray-500" }, st = { class: "py-6" }, ot = { for: "request_singular_name", class: "block text-base font-medium leading-5 text-gray-900" }, nt = { class: "mt-1 text-xs font-medium leading-4 text-gray-500" }, rt = { class: "relative mt-1 md:max-w-[50%]" }, at = { key: 0, class: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3" }, it = { key: 0, id: "request-singular-name-error", class: "mt-2 text-sm text-red-600" }, lt = { key: 1, class: "py-6" }, dt = { for: "content", class: "block text-base font-medium leading-5 text-gray-900" }, ct = { class: "mt-1 text-xs font-medium leading-4 text-gray-500" }, mt = { class: "text-indigo-600 underline", href: "https://help.manyrequests.com/en/articles/6020389-add-more-functionality-to-your-portal-with-extensions", target: "_blank" }, ut = { class: "mt-1 text-xs font-medium leading-4 text-gray-500" }, pt = { class: "relative mt-1 md:max-w-[50%]" }, xt = { key: 2, class: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3" }, _t = { key: 0, id: "request-plural-name-error", class: "mt-2 text-sm text-red-600" }, ft = { __name: "ExtensionCreateStepThree", props: { modelValue: { type: [Object, String, Number], default: () => ({}) } }, emits: ["update:modelValue"], setup(b, { emit: u }) {
66  const { t: r } = A(), s = S(b, u, "modelValue"), g = (c) => {
67    s.value.icon.file = c, s3m(c, { progress: (o) => {
68      s.value.icon.progress = o;
69    }, data: { folder: `tenants/${j.value.id}/extensions/icons` } }).then((o) => {
70      s.value.icon.key = o.key, s.value.icon.uuid = o.uuid, s.value.icon.extension = o.extension, s.value.icon.name = o.name, a();
71    });
72  }, a = () => {
73    if (/\.(jpe?g|png|gif)$/i.test(s.value.icon.file.name)) {
74      let c = new FileReader();
75      c.addEventListener("load", () => {
76        s.value.icon.url = c.result;
77      }, false), c.readAsDataURL(s.value.icon.file);
78    }
79  };
80  return (c, o) => (i(), m("div", qe, [t("p", je, n(e(r)("Step {current} of {total}", { current: 3, total: 3 })) + " \xB7 " + n(e(r)("Fill extension details")), 1), t("div", Me, [e(s).extension ? (i(), m("div", Te, [t("div", Ue, [t("div", Be, [t("img", { class: "aspect-square h-6 w-6 rounded-md", src: e(s).extension.full_image_url, alt: e(s).extension.name }, null, 8, Ie)])]), t("div", null, [t("h3", ze, n(e(s).extension.name), 1), t("div", Re, n(e(s).extension.description), 1)])])) : w("", true)]), t("div", Ge, [t("div", De, [t("div", Pe, [t("div", Xe, [t("div", He, n(e(r)("Fill out the form to enable the extension")), 1)])]), e(s).extension_type_id === e($).LOCAL ? (i(), m("div", Ke, [t("div", Ye, [t("div", Ze, n(e(r)("How do local extensions work?")), 1), t("p", Je, n(e(r)("Local extensions are used when the page you want to embed is unique for each client. After enabling a local extension, you will be able to connect each client separately and provide the details specific to their version of the extension.")), 1)])])) : w("", true), t("div", We, [t("div", Qe, [l(ae, { icon: e(s).icon, onFileUpload: g }, null, 8, ["icon"]), t("div", null, [t("label", et, n(e(r)("Icon")), 1), t("p", tt, n(e(r)("Recommended: 120x120px or similar proportions. Transparent background image.")), 1)])])]), t("div", st, [t("label", ot, n(e(r)("Label")), 1
80), t("p", nt, n(e(r)("Used for the navigation link to this extension.")), 1), t("div", rt, [V(t("input", { id: "label", "onUpdate:modelValue": o[0] || (o[0] = (d) => e(s).label = d), name: "label", type: "text", autocomplete: "off", class: p(["block w-full rounded-md shadow-sm sm:text-sm", e(s).errors.label ? "border-red-300 text-red-900 placeholder-red-300 focus:border-red-500 focus:outline-none focus:ring-red-500" : "border border-gray-300 focus:border-primary-500 focus:ring-primary-500"]) }, null, 2), [[L, e(s).label]]), e(s).errors.label ? (i(), m("div", at, [l(e(z), { class: "h-5 w-5 text-red-500", "aria-hidden": "true" })])) : w("", true)]), e(s).errors.label ? (i(), m("p", it, n(e(s).errors.label), 1)) : w("", true)]), e(s).extension_type_id === e($).GLOBAL || e(s).extension_type_id === e($).GLOBAL_TEAM ? (i(), m("div", lt, [t("label", dt, n(e(r)("Code snippet")), 1), t("p", ct, [y(n(c.$t("Provide the URL for the {extensionName} page you want to embed. If you need a more detailed guide, click ", { extensionName: e(s).extension.name })) + " ", 1), t("a", mt, n(c.$t("here")), 1)]), t("p", ut, [y(n(e(r)("Available variables")) + ": ", 1), o[3] || (o[3] = t("code", { class: "rounded bg-gray-100 px-1", textContent: "{{email}}" }, null, -1)), o[4] || (o[4] = y(", ", -1)), o[5] || (o[5] = t("code", { class: "rounded bg-gray-100 px-1", textContent: "{{name}}" }, null, -1)), o[6] || (o[6] = y(", ", -1)), o[7] || (o[7] = t("code", { class: "rounded bg-gray-100 px-1", textContent: "{{ref}}" }, null, -1)), y(". " + n(e(r)("These are replaced with the viewer's email, name, and organization reference.")), 1)]), t("div", pt, [e(s).extension.content_type === e(se).SNIPPET ? V((i(), m("textarea", { key: 0, id: "content", "onUpdate:modelValue": o[1] || (o[1] = (d) => e(s).content = d), name: "content", rows: "3", autocomplete: "off", class: p(["block w-full rounded-md shadow-sm sm:text-sm", e(s).errors.content ? "border-red-300 text-red-900 placeholder-red-300 focus:border-red-500 focus:outline-none focus:ring-red-500" : "border border-gray-300 focus:border-primary-500 focus:ring-primary-500"]) }, null, 2)), [[L, e(s).content]]) : V((i(), m("input", { key: 1, id: "content", "onUpdate:modelValue": o[2] || (o[2] = (d) => e(s).content = d), name: "content", type: "text", autocomplete: "off", class: p(["block w-full rounded-md shadow-sm sm:text-sm", e(s).errors.content ? "border-red-300 text-red-900 placeholder-red-300 focus:border-red-500 focus:outline-none focus:ring-red-500" : "border border-gray-300 focus:border-primary-500 focus:ring-primary-500"]) }, null, 2)), [[L, e(s).content]]), e(s).errors.content ? (i(), m("div", xt, [l(e(z), { class: "h-5 w-5 text-red-500", "aria-hidden": "true" })])) : w("", true)]), e(s).errors.content ? (i(), m("p", _t, n(e(s).errors.content), 1)) : w("", true)])) : w("", true)])])]));
81} }, gt = { class: "px-4 sm:px-6" }, ht = { class: "mb-4 text-sm font-medium text-gray-500 sm:hidden" }, bt = { class: "mb-9 flex items-center justify-between px-6 py-5 2xl:rounded-lg 2xl:bg-gray-50" }, yt = { key: 0, class: "flex" }, vt = { class: "shrink-0" }, wt = { class: "mr-3 aspect-square rounded-md bg-primary-50 p-1.5" }, $t = ["src", "alt"], kt = { class: "mb-1 text-2xl font-bold leading-6 text-gray-900" }, Vt = { class: "text-sm font-normal leading-6 text-gray-500" }, Et = { class: "mb-4 w-full md:min-h-[50vh]" }, At = { class: "ml-4 mt-8" }, Lt = { class: "mb-2 flex items-center text-base font-semibold leading-6 text-gray-900" }, Nt = { class: "mb-4 text-sm text-gray-600" }, Ct = { class: "space-y-4" }, St = ["checked"], Ot = { class: "flex flex-1" }, Ft = { class: "flex flex-col" }, qt = { class: "ml-4 mt-8" }, jt = { class: "mb-2 flex items-center text-base font-semibold leading-6 text-gray-900" }, Mt = { class: "mb-4 text-sm text-gray-600" }, Tt = { class: "space-y-4" }, Ut = ["checked"], Bt = { class: "flex flex-1" }, It = { class: "flex flex-col" }, zt = { __name: "ExtensionCreateStepTwo", props: { modelValue: { type: [Object, String, Number], default: () => ({}) } }, emits: ["update:modelValue"], setup(b, { emit: u }) {
82  const { t: r } = A(), v = b, s = S(v, u, "modelValue"), g = [{ id: $.GLOBAL, title: r("For organizations"), description: r("The same version of the {extension} extension will be available to all clients across all organizations.", { extension: v.modelValue.extension.name }) }, { id: $.GLOBAL_TEAM, title: r("For your team"), description: r("The same version of the {extension} extension will be available to all team members and admins of the {portalName} team.", { extension: v.modelValue.extension.name, portalName: j.value.name }) }], a = [{ id: $.LOCAL, title: r("For each organization"), description: r("A different version of the {extension} extension will be connected to each organization.", { extension: v.modelValue.extension.name }) }, { id: $.LOCAL_TEAM, title: r("For your team"), description: r("A different version of the {extension} extension will be connected to each team member and admin of the {portalName} team.", { extension: v.modelValue.extension.name, portalName: j.value.name }) }];
83  return (c, o) => (i(), m("div", gt, [t("p", ht, n(e(r)("Step {current} of {total}", { current: 2, total: 3 })) + " \xB7 " + n(e(r)("Select extension type")), 1), t("div", bt, [e(s).extension ? (i(), m("div", yt, [t("div", vt, [t("div", wt, [t("img", { class: "aspect-square h-6 w-6 rounded-md", src: e(s).extension.full_image_url, alt: e(s).extension.name }, null, 8, $t)])]), t("div", null, [t("h3", kt, n(e(s).extension.name), 1), t("div", Vt, n(e(s).extension.description), 1)])])) : w("", true)]), t("div", Et, [l(e(P), { modelValue: e(s).extension_type_id, "onUpdate:modelValue": o[0] || (o[0] = (d) => e(s).extension_type_id = d) }, { default: x(() => [l(e(N), { class: "text-xl font-bold leading-6 text-gray-900" }, { default: x(() => [y(n(e(r)("Extension type")), 1)]), _: 1 }), t("div", At, [t("h3", Lt, [l(e(ie), { class: "mr-2 h-5 w-5 text-primary-600" }), y(" " + n(e(r)("Global extensions")), 1)]), t("p", Nt, n(e(r)("Uses the same configuration for everyone.")), 1), t("div", Ct, [(i(), m(E, null, C(g, (d) => l(e(F), { key: d.id, as: "template", value: d.id }, { default: x(({ checked: h, active: O }) => [t("div", { class: p(["relative flex w-full cursor-pointer rounded-lg border bg-white p-4 shadow-sm focus:outline-none", [h ? "border-transparent bg-primary-50" : "border-gray-300", O ? "border-primary-500" : ""]]) }, [t("input", { type: "radio", class: "form-radio mr-2 h-5 w-5 cursor-pointer text-primary-600 transition duration-150 ease-in-out", checked: h }, null, 8, St), t("span", Ot, [t("span", Ft, [l(e(N), { as: "span", class: p(["flex items-center text-sm font-medium", [h ? "text-primary-900" : "text-gray-900"]]) }, { default: x(() => [d.id === e($).GLOBAL ? (i(), k(e(R), { key: 0, class: p(["mr-2 h-4 w-4", [h ? "text-primary-600" : "text-gray-500"]]) }, null, 8, ["class"])) : (i(), k(e(I), { key: 1, class: p(["mr-2 h-4 w-4", [h ? "text-primary-600" : "text-gray-500"]]) }, null, 8, ["class"])), y(" " + n(d.title), 1)]), _: 2 }, 1032, ["class"]), l(e(q), { as: "span", class: "mt-1 flex items-center text-sm text-gray-500" }, { default: x(() => [y(n(d.description), 1)]), _: 2 }, 1024)])]), t("span", { class: p(["pointer-events-none absolute -inset-px rounded-lg border-2", [h ? "border-primary-500" : "border-transparent"]]), "aria-hidden": "true" }, null, 2)], 2)]), _: 2 }, 1032, ["value"])), 64))])]), t("div", qt, [t("h3", jt, [l(e(le), { class: "mr-2 h-5 w-5 text-primary-600" }), y(" " + n(e(r)("Local extensions")), 1)]), t("p", Mt, n(e(r)("Each team member or client gets their own version. Requires individual setup.")), 1), t("div", Tt, [(i(), m(E, null, C(a, (d) => l(e(F), { key: d.id, as: "template", value: d.id }, { default: x(({ checked: h, active: O }) => [t("div", { class: p(["relative flex w-full cursor-pointer rounded-lg border bg-white p-4 shadow-sm focus:outline-none", [h ? "border-transparent bg-primary-50" : "border-gray-300", O ? "border-primary-500" : ""]]) }, [t("input", { type: "radio", class: "form-radio mr-2 h-5 w-5 cursor-pointer text-primary-600 transition duration-150 ease-in-out", checked: h }, null, 8, Ut), t("span", Bt, [t("span", It, [l(e(N), { as: "span", class: p(["flex items-center text-sm font-medium", [h ? "text-primary-900" : "text-gray-900"]]) }, { default: x(() => [d.id === e($).LOCAL ? (i(), k(e(R), { key: 0, class: p(["mr-2 h-4 w-4", [h ? "text-primary-600" : "text-gray-500"]]) }, null, 8, ["class"])) : (i(), k(e(I), { key: 1, class: p(["mr-2 h-4 w-4", [h ? "text-primary-600" : "text-gray-500"]]) }, null, 8, ["class"])), y(" " + n(d.title), 1)]), _: 2 }, 1032, ["class"]), l(e(q), { as: "span", class: "mt-1 flex items-center text-sm text-gray-500" }, { default: x(() => [y(n(d.description), 1)]), _: 2 }, 1024)])]), t("span", { class: p(["pointer-events-none absolute -inset-px rounded-lg border-2", [h ? "border-primary-500" : "border-transparent"]]), "aria-hidden": "true" }, null, 2)], 2)]), _: 2 }, 1032, ["value"])), 64))])])]), _: 1 }, 8, ["modelValue"])])]));
84} }, Vs = { __name: "ExtensionCreate", props: { extensions: { type: Array, required: true }, categories: { type: Array, required: true } }, setup(b) {
85  const { t: u } = A(), r = b, v = [{ label: u("Settings"), url: route("settings.modules.index") }, { label: u("Modules and extensions"), url: route("settings.extensions.index") }, { label: u("Add extension") }], f = Y({ extension: null, extension_type_id: null, label: "", content: "", icon: {} }), s = [{ name: u("Select extension"), component: Fe, props: { extensions: r.extensions, categories: r.categories }, disableNext: () => f.extension === null }, { name: u("Select extension type"), component: zt, validate: (a) => a.extension !== null, disableNext: () => f.extension_type_id === null }, { name: u("Fill extension details"), component: ft, validate: (a) => (a.extension_type_id === $.LOCAL && (f.content = null), true) }], g = () => {
86    f.transform((a) =>
86 ({ extension_id: a.extension.id, extension_type_id: a.extension_type_id, label: a.label, content: a.content, icon: { extension: a.icon.extension, key: a.icon.key, uuid: a.icon.uuid, name: a.icon.name } })).post(route("settings.extensions.store"), { preserveScroll: true });
87  };
88  return (a, c) => (i(), m(E, null, [l(e(Z), { title: e(u)("Modules and extensions") }, null, 8, ["title"]), l(oe, { breadcrumbs: v, "show-footer": false, "wrapper-class": "max-lg:[&_input]:text-base max-lg:[&_textarea]:text-base max-lg:[&_select]:text-base max-lg:[&_button[aria-haspopup=listbox]]:min-h-11" }, { header: x(() => [y(n(e(u)("Add extension")), 1)]), default: x(() => [l(X, { modelValue: e(f), "onUpdate:modelValue": c[0] || (c[0] = (o) => G(f) ? f.value = o : null), class: "w-full bg-white shadow-sm 2xl:rounded-md", steps: s, "finish-text": e(u)("Create extension"), loading: e(f).processing, "validate-go-back": true, onExit: c[1] || (c[1] = (o) => e(D).visit(a.route("settings.extensions.index"))), onFinish: g }, null, 8, ["modelValue", "finish-text", "loading"])]), _: 1 })], 64));
89} };
90export {
91  Vs as default
92};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.