@frontify/guideline-blocks-settings 0.34.1 → 0.34.3

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.
@@ -1,42 +1,45 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { useState as p, useEffect as x } from "react";
3
- import { RichTextEditor as E } from "@frontify/fondue";
4
- import { SerializedText as g } from "./SerializedText.es.js";
5
- import { floatingButtonSelectors as v, floatingButtonActions as T } from "./plugins/ButtonPlugin/components/FloatingButton/floatingButtonStore.es.js";
6
- const R = ({
7
- id: d = "rte",
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ import { useState as E, useCallback as o, useEffect as b } from "react";
3
+ import { RichTextEditor as v } from "@frontify/fondue";
4
+ import { SerializedText as w } from "./SerializedText.es.js";
5
+ import { floatingButtonSelectors as L, floatingButtonActions as P } from "./plugins/ButtonPlugin/components/FloatingButton/floatingButtonStore.es.js";
6
+ const C = ({
7
+ id: l = "rte",
8
8
  isEditing: f,
9
9
  value: t,
10
- columns: l,
11
- gap: u,
12
- placeholder: c,
13
- plugins: r,
14
- onTextChange: o,
10
+ columns: u,
11
+ gap: c,
12
+ placeholder: h,
13
+ plugins: n,
14
+ onTextChange: r,
15
15
  showSerializedText: m
16
16
  }) => {
17
- const [n, i] = p(!1), h = (e) => {
18
- o && e !== t && o(e), i(!1);
19
- };
20
- return x(() => {
21
- const e = (a) => (a.preventDefault(), a.returnValue = "Unprocessed changes");
22
- return n && window.addEventListener("beforeunload", e), () => window.removeEventListener("beforeunload", e);
23
- }, [n]), f ? /* @__PURE__ */ s(
24
- E,
17
+ const [a, i] = E(!1), g = o(
18
+ (e) => {
19
+ r && e !== t && r(e), i(!1);
20
+ },
21
+ [r, t]
22
+ ), p = o(() => i(!0), []), x = o((e) => {
23
+ L.isOpen(e) && P.reset();
24
+ }, []);
25
+ return b(() => {
26
+ const e = (s) => (s.preventDefault(), s.returnValue = "Unprocessed changes");
27
+ return a && window.addEventListener("beforeunload", e), () => window.removeEventListener("beforeunload", e);
28
+ }, [a]), f ? /* @__PURE__ */ d(
29
+ v,
25
30
  {
26
- id: d,
31
+ id: l,
27
32
  value: t,
28
33
  border: !1,
29
- placeholder: c,
30
- plugins: r,
31
- onValueChanged: () => i(!0),
32
- onTextChange: h,
33
- hideExternalFloatingModals: (e) => {
34
- v.isOpen(e) && T.reset();
35
- }
34
+ placeholder: h,
35
+ plugins: n,
36
+ onValueChanged: p,
37
+ onTextChange: g,
38
+ hideExternalFloatingModals: x
36
39
  }
37
- ) : /* @__PURE__ */ s(g, { value: t, columns: l, gap: u, show: m, plugins: r });
40
+ ) : /* @__PURE__ */ d(w, { value: t, columns: u, gap: c, show: m, plugins: n });
38
41
  };
39
42
  export {
40
- R as RichTextEditor
43
+ C as RichTextEditor
41
44
  };
42
45
  //# sourceMappingURL=RichTextEditor.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useEffect, useState } from 'react';\n\nimport { RichTextEditor as FondueRichTextEditor } from '@frontify/fondue';\nimport { RichTextEditorProps } from './types';\nimport { SerializedText } from './SerializedText';\nimport { floatingButtonActions, floatingButtonSelectors } from './plugins/ButtonPlugin/components';\n\nexport const RichTextEditor = ({\n id = 'rte',\n isEditing,\n value,\n columns,\n gap,\n placeholder,\n plugins,\n onTextChange,\n showSerializedText,\n}: RichTextEditorProps) => {\n const [shouldPreventPageLeave, setShouldPreventPageLeave] = useState(false);\n\n const saveText = (newContent: string) => {\n if (onTextChange && newContent !== value) {\n onTextChange(newContent);\n }\n setShouldPreventPageLeave(false);\n };\n\n useEffect(() => {\n const unloadHandler = (event: BeforeUnloadEvent) => {\n event.preventDefault();\n return (event.returnValue = 'Unprocessed changes');\n };\n\n if (shouldPreventPageLeave) {\n window.addEventListener('beforeunload', unloadHandler);\n }\n\n return () => window.removeEventListener('beforeunload', unloadHandler);\n }, [shouldPreventPageLeave]);\n\n if (isEditing) {\n return (\n <FondueRichTextEditor\n id={id}\n value={value}\n border={false}\n placeholder={placeholder}\n plugins={plugins}\n onValueChanged={() => setShouldPreventPageLeave(true)}\n onTextChange={saveText}\n hideExternalFloatingModals={(editorId: string) => {\n if (floatingButtonSelectors.isOpen(editorId)) {\n floatingButtonActions.reset();\n }\n }}\n />\n );\n }\n return <SerializedText value={value} columns={columns} gap={gap} show={showSerializedText} plugins={plugins} />;\n};\n"],"names":["RichTextEditor","id","isEditing","value","columns","gap","placeholder","plugins","onTextChange","showSerializedText","shouldPreventPageLeave","setShouldPreventPageLeave","useState","saveText","newContent","useEffect","unloadHandler","event","jsx","FondueRichTextEditor","editorId","floatingButtonSelectors","floatingButtonActions","SerializedText"],"mappings":";;;;;AASO,MAAMA,IAAiB,CAAC;AAAA,EAC3B,IAAAC,IAAK;AAAA,EACL,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC;AAAA,EACA,oBAAAC;AACJ,MAA2B;AACvB,QAAM,CAACC,GAAwBC,CAAyB,IAAIC,EAAS,EAAK,GAEpEC,IAAW,CAACC,MAAuB;AACjC,IAAAN,KAAgBM,MAAeX,KAC/BK,EAAaM,CAAU,GAE3BH,EAA0B,EAAK;AAAA,EAAA;AAgBnC,SAbAI,EAAU,MAAM;AACN,UAAAC,IAAgB,CAACC,OACnBA,EAAM,eAAe,GACbA,EAAM,cAAc;AAGhC,WAAIP,KACO,OAAA,iBAAiB,gBAAgBM,CAAa,GAGlD,MAAM,OAAO,oBAAoB,gBAAgBA,CAAa;AAAA,EAAA,GACtE,CAACN,CAAsB,CAAC,GAEvBR,IAEI,gBAAAgB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACG,IAAAlB;AAAA,MACA,OAAAE;AAAA,MACA,QAAQ;AAAA,MACR,aAAAG;AAAA,MACA,SAAAC;AAAA,MACA,gBAAgB,MAAMI,EAA0B,EAAI;AAAA,MACpD,cAAcE;AAAA,MACd,4BAA4B,CAACO,MAAqB;AAC1C,QAAAC,EAAwB,OAAOD,CAAQ,KACvCE,EAAsB,MAAM;AAAA,MAEpC;AAAA,IAAA;AAAA,EAAA,sBAIJC,GAAe,EAAA,OAAApB,GAAc,SAAAC,GAAkB,KAAAC,GAAU,MAAMI,GAAoB,SAAAF,EAAkB,CAAA;AACjH;"}
1
+ {"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { RichTextEditor as FondueRichTextEditor } from '@frontify/fondue';\nimport { RichTextEditorProps } from './types';\nimport { SerializedText } from './SerializedText';\nimport { floatingButtonActions, floatingButtonSelectors } from './plugins/ButtonPlugin/components';\n\nexport const RichTextEditor = ({\n id = 'rte',\n isEditing,\n value,\n columns,\n gap,\n placeholder,\n plugins,\n onTextChange,\n showSerializedText,\n}: RichTextEditorProps) => {\n const [shouldPreventPageLeave, setShouldPreventPageLeave] = useState(false);\n\n const handleTextChange = useCallback(\n (newContent: string) => {\n if (onTextChange && newContent !== value) {\n onTextChange(newContent);\n }\n setShouldPreventPageLeave(false);\n },\n [onTextChange, value],\n );\n\n const handleValueChange = useCallback(() => setShouldPreventPageLeave(true), []);\n\n const handleHideExternalFloatingModals = useCallback((editorId: string) => {\n if (floatingButtonSelectors.isOpen(editorId)) {\n floatingButtonActions.reset();\n }\n }, []);\n\n useEffect(() => {\n const unloadHandler = (event: BeforeUnloadEvent) => {\n event.preventDefault();\n return (event.returnValue = 'Unprocessed changes');\n };\n\n if (shouldPreventPageLeave) {\n window.addEventListener('beforeunload', unloadHandler);\n }\n\n return () => window.removeEventListener('beforeunload', unloadHandler);\n }, [shouldPreventPageLeave]);\n\n if (isEditing) {\n return (\n <FondueRichTextEditor\n id={id}\n value={value}\n border={false}\n placeholder={placeholder}\n plugins={plugins}\n onValueChanged={handleValueChange}\n onTextChange={handleTextChange}\n hideExternalFloatingModals={handleHideExternalFloatingModals}\n />\n );\n }\n return <SerializedText value={value} columns={columns} gap={gap} show={showSerializedText} plugins={plugins} />;\n};\n"],"names":["RichTextEditor","id","isEditing","value","columns","gap","placeholder","plugins","onTextChange","showSerializedText","shouldPreventPageLeave","setShouldPreventPageLeave","useState","handleTextChange","useCallback","newContent","handleValueChange","handleHideExternalFloatingModals","editorId","floatingButtonSelectors","floatingButtonActions","useEffect","unloadHandler","event","jsx","FondueRichTextEditor","SerializedText"],"mappings":";;;;;AASO,MAAMA,IAAiB,CAAC;AAAA,EAC3B,IAAAC,IAAK;AAAA,EACL,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC;AAAA,EACA,oBAAAC;AACJ,MAA2B;AACvB,QAAM,CAACC,GAAwBC,CAAyB,IAAIC,EAAS,EAAK,GAEpEC,IAAmBC;AAAA,IACrB,CAACC,MAAuB;AAChB,MAAAP,KAAgBO,MAAeZ,KAC/BK,EAAaO,CAAU,GAE3BJ,EAA0B,EAAK;AAAA,IACnC;AAAA,IACA,CAACH,GAAcL,CAAK;AAAA,EAAA,GAGlBa,IAAoBF,EAAY,MAAMH,EAA0B,EAAI,GAAG,CAAA,CAAE,GAEzEM,IAAmCH,EAAY,CAACI,MAAqB;AACnE,IAAAC,EAAwB,OAAOD,CAAQ,KACvCE,EAAsB,MAAM;AAAA,EAEpC,GAAG,CAAE,CAAA;AAeL,SAbAC,EAAU,MAAM;AACN,UAAAC,IAAgB,CAACC,OACnBA,EAAM,eAAe,GACbA,EAAM,cAAc;AAGhC,WAAIb,KACO,OAAA,iBAAiB,gBAAgBY,CAAa,GAGlD,MAAM,OAAO,oBAAoB,gBAAgBA,CAAa;AAAA,EAAA,GACtE,CAACZ,CAAsB,CAAC,GAEvBR,IAEI,gBAAAsB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACG,IAAAxB;AAAA,MACA,OAAAE;AAAA,MACA,QAAQ;AAAA,MACR,aAAAG;AAAA,MACA,SAAAC;AAAA,MACA,gBAAgBS;AAAA,MAChB,cAAcH;AAAA,MACd,4BAA4BI;AAAA,IAAA;AAAA,EAAA,sBAIhCS,GAAe,EAAA,OAAAvB,GAAc,SAAAC,GAAkB,KAAAC,GAAU,MAAMI,GAAoB,SAAAF,EAAkB,CAAA;AACjH;"}
@@ -1,48 +1,41 @@
1
- import { jsx as t, jsxs as o } from "react/jsx-runtime";
2
- import { useEditorRef as n, IconPen16 as r, focusEditor as i, IconTrashBin16 as a } from "@frontify/fondue";
3
- import { floatingButtonSelectors as s } from "../floatingButtonStore.es.js";
4
- import { triggerFloatingButtonEdit as d } from "../../../utils/triggerFloatingButtonEdit.es.js";
5
- import { unwrapButton as w } from "../../../transforms/unwrapButton.es.js";
6
- const b = () => {
7
- const e = n();
8
- return /* @__PURE__ */ t(
9
- "div",
10
- {
11
- "data-test-id": "floating-button-edit",
12
- className: "tw-bg-white tw-text-text tw-rounded tw-shadow tw-p-4 tw-min-w-[400px]",
13
- children: /* @__PURE__ */ o("span", { "data-test-id": "preview-button-flyout", className: "tw-flex tw-justify-between tw-items-center", children: [
14
- /* @__PURE__ */ t("span", { className: "tw-pointer-events-none", children: s.url() }),
15
- /* @__PURE__ */ o("span", { className: "tw-flex tw-gap-2", children: [
16
- /* @__PURE__ */ t(
17
- "button",
18
- {
19
- onClick: () => {
20
- d(e);
21
- },
22
- tabIndex: 0,
23
- "data-test-id": "edit-button-button",
24
- className: "tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",
25
- children: /* @__PURE__ */ t(r, {})
26
- }
27
- ),
28
- /* @__PURE__ */ t(
29
- "button",
30
- {
31
- onClick: () => {
32
- w(e), i(e, e.selection ?? void 0);
33
- },
34
- tabIndex: 0,
35
- "data-test-id": "remove-button-button",
36
- className: "tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",
37
- children: /* @__PURE__ */ t(a, {})
38
- }
39
- )
40
- ] })
41
- ] })
42
- }
43
- );
1
+ import { jsx as t, jsxs as e } from "react/jsx-runtime";
2
+ import { useEditorRef as n, FloatingModalWrapper as r, IconPen16 as i, focusEditor as a, IconTrashBin16 as s } from "@frontify/fondue";
3
+ import { floatingButtonSelectors as d } from "../floatingButtonStore.es.js";
4
+ import { triggerFloatingButtonEdit as l } from "../../../utils/triggerFloatingButtonEdit.es.js";
5
+ import { unwrapButton as c } from "../../../transforms/unwrapButton.es.js";
6
+ const f = () => {
7
+ const o = n();
8
+ return /* @__PURE__ */ t(r, { padding: "16px", minWidth: "400px", "data-test-id": "floating-button-edit", children: /* @__PURE__ */ e("span", { "data-test-id": "preview-button-flyout", className: "tw-flex tw-justify-between tw-items-center", children: [
9
+ /* @__PURE__ */ t("span", { className: "tw-pointer-events-none", children: d.url() }),
10
+ /* @__PURE__ */ e("span", { className: "tw-flex tw-gap-2", children: [
11
+ /* @__PURE__ */ t(
12
+ "button",
13
+ {
14
+ onClick: () => {
15
+ l(o);
16
+ },
17
+ tabIndex: 0,
18
+ "data-test-id": "edit-button-button",
19
+ className: "tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",
20
+ children: /* @__PURE__ */ t(i, {})
21
+ }
22
+ ),
23
+ /* @__PURE__ */ t(
24
+ "button",
25
+ {
26
+ onClick: () => {
27
+ c(o), a(o, o.selection ?? void 0);
28
+ },
29
+ tabIndex: 0,
30
+ "data-test-id": "remove-button-button",
31
+ className: "tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",
32
+ children: /* @__PURE__ */ t(s, {})
33
+ }
34
+ )
35
+ ] })
36
+ ] }) });
44
37
  };
45
38
  export {
46
- b as EditModal
39
+ f as EditModal
47
40
  };
48
41
  //# sourceMappingURL=EditModal.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditModal.es.js","sources":["../../../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/EditButtonModal/EditModal.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconPen16, IconTrashBin16, focusEditor, useEditorRef } from '@frontify/fondue';\n\nimport { floatingButtonSelectors } from '../floatingButtonStore';\nimport { unwrapButton } from '../../../transforms';\nimport { triggerFloatingButtonEdit } from '../../../utils';\n\nexport const EditModal = () => {\n const editor = useEditorRef();\n return (\n <div\n data-test-id=\"floating-button-edit\"\n className=\"tw-bg-white tw-text-text tw-rounded tw-shadow tw-p-4 tw-min-w-[400px]\"\n >\n <span data-test-id=\"preview-button-flyout\" className=\"tw-flex tw-justify-between tw-items-center\">\n <span className=\"tw-pointer-events-none\">{floatingButtonSelectors.url()}</span>\n <span className=\"tw-flex tw-gap-2\">\n <button\n onClick={() => {\n triggerFloatingButtonEdit(editor);\n }}\n tabIndex={0}\n data-test-id=\"edit-button-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n >\n <IconPen16 />\n </button>\n\n <button\n onClick={() => {\n unwrapButton(editor);\n focusEditor(editor, editor.selection ?? undefined);\n }}\n tabIndex={0}\n data-test-id=\"remove-button-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n >\n <IconTrashBin16 />\n </button>\n </span>\n </span>\n </div>\n );\n};\n"],"names":["EditModal","editor","useEditorRef","jsx","jsxs","floatingButtonSelectors","triggerFloatingButtonEdit","IconPen16","unwrapButton","focusEditor","IconTrashBin16"],"mappings":";;;;;AAQO,MAAMA,IAAY,MAAM;AAC3B,QAAMC,IAASC;AAEX,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,gBAAa;AAAA,MACb,WAAU;AAAA,MAEV,UAAC,gBAAAC,EAAA,QAAA,EAAK,gBAAa,yBAAwB,WAAU,8CACjD,UAAA;AAAA,QAAA,gBAAAD,EAAC,QAAK,EAAA,WAAU,0BAA0B,UAAAE,EAAwB,OAAM;AAAA,QACxE,gBAAAD,EAAC,QAAK,EAAA,WAAU,oBACZ,UAAA;AAAA,UAAA,gBAAAD;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,SAAS,MAAM;AACX,gBAAAG,EAA0BL,CAAM;AAAA,cACpC;AAAA,cACA,UAAU;AAAA,cACV,gBAAa;AAAA,cACb,WAAU;AAAA,cAEV,4BAACM,GAAU,EAAA;AAAA,YAAA;AAAA,UACf;AAAA,UAEA,gBAAAJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,SAAS,MAAM;AACX,gBAAAK,EAAaP,CAAM,GACPQ,EAAAR,GAAQA,EAAO,aAAa,MAAS;AAAA,cACrD;AAAA,cACA,UAAU;AAAA,cACV,gBAAa;AAAA,cACb,WAAU;AAAA,cAEV,4BAACS,GAAe,EAAA;AAAA,YAAA;AAAA,UACpB;AAAA,QAAA,GACJ;AAAA,MAAA,GACJ;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
1
+ {"version":3,"file":"EditModal.es.js","sources":["../../../../../../../../src/components/RichTextEditor/plugins/ButtonPlugin/components/FloatingButton/EditButtonModal/EditModal.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { FloatingModalWrapper, IconPen16, IconTrashBin16, focusEditor, useEditorRef } from '@frontify/fondue';\n\nimport { floatingButtonSelectors } from '../floatingButtonStore';\nimport { unwrapButton } from '../../../transforms';\nimport { triggerFloatingButtonEdit } from '../../../utils';\n\nexport const EditModal = () => {\n const editor = useEditorRef();\n return (\n <FloatingModalWrapper padding=\"16px\" minWidth=\"400px\" data-test-id=\"floating-button-edit\">\n <span data-test-id=\"preview-button-flyout\" className=\"tw-flex tw-justify-between tw-items-center\">\n <span className=\"tw-pointer-events-none\">{floatingButtonSelectors.url()}</span>\n <span className=\"tw-flex tw-gap-2\">\n <button\n onClick={() => {\n triggerFloatingButtonEdit(editor);\n }}\n tabIndex={0}\n data-test-id=\"edit-button-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n >\n <IconPen16 />\n </button>\n\n <button\n onClick={() => {\n unwrapButton(editor);\n focusEditor(editor, editor.selection ?? undefined);\n }}\n tabIndex={0}\n data-test-id=\"remove-button-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n >\n <IconTrashBin16 />\n </button>\n </span>\n </span>\n </FloatingModalWrapper>\n );\n};\n"],"names":["EditModal","editor","useEditorRef","jsx","FloatingModalWrapper","jsxs","floatingButtonSelectors","triggerFloatingButtonEdit","IconPen16","unwrapButton","focusEditor","IconTrashBin16"],"mappings":";;;;;AAQO,MAAMA,IAAY,MAAM;AAC3B,QAAMC,IAASC;AACf,SACK,gBAAAC,EAAAC,GAAA,EAAqB,SAAQ,QAAO,UAAS,SAAQ,gBAAa,wBAC/D,UAAC,gBAAAC,EAAA,QAAA,EAAK,gBAAa,yBAAwB,WAAU,8CACjD,UAAA;AAAA,IAAA,gBAAAF,EAAC,QAAK,EAAA,WAAU,0BAA0B,UAAAG,EAAwB,OAAM;AAAA,IACxE,gBAAAD,EAAC,QAAK,EAAA,WAAU,oBACZ,UAAA;AAAA,MAAA,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,SAAS,MAAM;AACX,YAAAI,EAA0BN,CAAM;AAAA,UACpC;AAAA,UACA,UAAU;AAAA,UACV,gBAAa;AAAA,UACb,WAAU;AAAA,UAEV,4BAACO,GAAU,EAAA;AAAA,QAAA;AAAA,MACf;AAAA,MAEA,gBAAAL;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,SAAS,MAAM;AACX,YAAAM,EAAaR,CAAM,GACPS,EAAAT,GAAQA,EAAO,aAAa,MAAS;AAAA,UACrD;AAAA,UACA,UAAU;AAAA,UACV,gBAAa;AAAA,UACb,WAAU;AAAA,UAEV,4BAACU,GAAe,EAAA;AAAA,QAAA;AAAA,MACpB;AAAA,IAAA,GACJ;AAAA,EAAA,EACJ,CAAA,EACJ,CAAA;AAER;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
2
- import { useLinkOpenButtonState as o, IconPen16 as s, IconTrashBin16 as d } from "@frontify/fondue";
3
- import { getUrlFromLinkOrLegacyLink as l } from "../../../../../Link/utils/getUrl.es.js";
4
- const p = ({ editButtonProps: i, unlinkButtonProps: r }) => {
5
- const { element: e } = o(), a = e ? l(e) : "";
6
- return /* @__PURE__ */ t("div", { "data-test-id": "floating-link-edit", className: "tw-bg-white tw-rounded tw-shadow tw-p-4 tw-min-w-[400px]", children: /* @__PURE__ */ n("span", { "data-test-id": "preview-link-flyout", className: "tw-flex tw-justify-between tw-items-center", children: [
2
+ import { useLinkOpenButtonState as o, FloatingModalWrapper as s, IconPen16 as d, IconTrashBin16 as l } from "@frontify/fondue";
3
+ import { getUrlFromLinkOrLegacyLink as c } from "../../../../../Link/utils/getUrl.es.js";
4
+ const u = ({ editButtonProps: i, unlinkButtonProps: r }) => {
5
+ const { element: e } = o(), a = e ? c(e) : "";
6
+ return /* @__PURE__ */ t(s, { "data-test-id": "floating-link-edit", padding: "16px", minWidth: "400px", children: /* @__PURE__ */ n("span", { "data-test-id": "preview-link-flyout", className: "tw-flex tw-justify-between tw-items-center", children: [
7
7
  /* @__PURE__ */ t("span", { className: "tw-pointer-events-none", children: a }),
8
8
  /* @__PURE__ */ n("span", { className: "tw-flex tw-gap-2", children: [
9
9
  /* @__PURE__ */ t(
@@ -13,7 +13,7 @@ const p = ({ editButtonProps: i, unlinkButtonProps: r }) => {
13
13
  "data-test-id": "edit-link-button",
14
14
  className: "tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",
15
15
  ...i,
16
- children: /* @__PURE__ */ t(s, {})
16
+ children: /* @__PURE__ */ t(d, {})
17
17
  }
18
18
  ),
19
19
  /* @__PURE__ */ t(
@@ -23,13 +23,13 @@ const p = ({ editButtonProps: i, unlinkButtonProps: r }) => {
23
23
  "data-test-id": "remove-link-button",
24
24
  className: "tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1",
25
25
  ...r,
26
- children: /* @__PURE__ */ t(d, {})
26
+ children: /* @__PURE__ */ t(l, {})
27
27
  }
28
28
  )
29
29
  ] })
30
30
  ] }) });
31
31
  };
32
32
  export {
33
- p as EditModal
33
+ u as EditModal
34
34
  };
35
35
  //# sourceMappingURL=EditModal.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditModal.es.js","sources":["../../../../../../../src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/EditModal.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { MouseEvent } from 'react';\nimport { IconPen16, IconTrashBin16, useLinkOpenButtonState } from '@frontify/fondue';\nimport { getUrlFromLinkOrLegacyLink } from '../../../../../Link';\n\ntype EditModalProps = {\n editButtonProps: {\n onClick: () => void;\n };\n unlinkButtonProps: {\n onMouseDown: (e: MouseEvent<HTMLButtonElement>) => void;\n onClick: () => void;\n };\n};\n\nexport const EditModal = ({ editButtonProps, unlinkButtonProps }: EditModalProps) => {\n const { element } = useLinkOpenButtonState();\n const url = element ? getUrlFromLinkOrLegacyLink(element) : '';\n\n return (\n <div data-test-id=\"floating-link-edit\" className=\"tw-bg-white tw-rounded tw-shadow tw-p-4 tw-min-w-[400px]\">\n <span data-test-id=\"preview-link-flyout\" className=\"tw-flex tw-justify-between tw-items-center\">\n <span className=\"tw-pointer-events-none\">{url}</span>\n <span className=\"tw-flex tw-gap-2\">\n <button\n tabIndex={0}\n data-test-id=\"edit-link-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n {...editButtonProps}\n >\n <IconPen16 />\n </button>\n\n <button\n tabIndex={0}\n data-test-id=\"remove-link-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n {...unlinkButtonProps}\n >\n <IconTrashBin16 />\n </button>\n </span>\n </span>\n </div>\n );\n};\n"],"names":["EditModal","editButtonProps","unlinkButtonProps","element","useLinkOpenButtonState","url","getUrlFromLinkOrLegacyLink","jsx","jsxs","IconPen16","IconTrashBin16"],"mappings":";;;AAgBO,MAAMA,IAAY,CAAC,EAAE,iBAAAC,GAAiB,mBAAAC,QAAwC;AAC3E,QAAA,EAAE,SAAAC,MAAYC,KACdC,IAAMF,IAAUG,EAA2BH,CAAO,IAAI;AAGxD,SAAA,gBAAAI,EAAC,OAAI,EAAA,gBAAa,sBAAqB,WAAU,4DAC7C,UAAA,gBAAAC,EAAC,QAAK,EAAA,gBAAa,uBAAsB,WAAU,8CAC/C,UAAA;AAAA,IAAC,gBAAAD,EAAA,QAAA,EAAK,WAAU,0BAA0B,UAAIF,GAAA;AAAA,IAC9C,gBAAAG,EAAC,QAAK,EAAA,WAAU,oBACZ,UAAA;AAAA,MAAA,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,UAAU;AAAA,UACV,gBAAa;AAAA,UACb,WAAU;AAAA,UACT,GAAGN;AAAA,UAEJ,4BAACQ,GAAU,EAAA;AAAA,QAAA;AAAA,MACf;AAAA,MAEA,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,UAAU;AAAA,UACV,gBAAa;AAAA,UACb,WAAU;AAAA,UACT,GAAGL;AAAA,UAEJ,4BAACQ,GAAe,EAAA;AAAA,QAAA;AAAA,MACpB;AAAA,IAAA,GACJ;AAAA,EAAA,EACJ,CAAA,EACJ,CAAA;AAER;"}
1
+ {"version":3,"file":"EditModal.es.js","sources":["../../../../../../../src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/EditLinkModal/EditModal.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { MouseEvent } from 'react';\nimport { FloatingModalWrapper, IconPen16, IconTrashBin16, useLinkOpenButtonState } from '@frontify/fondue';\nimport { getUrlFromLinkOrLegacyLink } from '../../../../../Link';\n\ntype EditModalProps = {\n editButtonProps: {\n onClick: () => void;\n };\n unlinkButtonProps: {\n onMouseDown: (e: MouseEvent<HTMLButtonElement>) => void;\n onClick: () => void;\n };\n};\n\nexport const EditModal = ({ editButtonProps, unlinkButtonProps }: EditModalProps) => {\n const { element } = useLinkOpenButtonState();\n const url = element ? getUrlFromLinkOrLegacyLink(element) : '';\n\n return (\n <FloatingModalWrapper data-test-id=\"floating-link-edit\" padding=\"16px\" minWidth=\"400px\">\n <span data-test-id=\"preview-link-flyout\" className=\"tw-flex tw-justify-between tw-items-center\">\n <span className=\"tw-pointer-events-none\">{url}</span>\n <span className=\"tw-flex tw-gap-2\">\n <button\n tabIndex={0}\n data-test-id=\"edit-link-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n {...editButtonProps}\n >\n <IconPen16 />\n </button>\n\n <button\n tabIndex={0}\n data-test-id=\"remove-link-button\"\n className=\"tw-transition tw-cursor-pointer tw-rounded hover:tw-bg-black-10 tw-p-1\"\n {...unlinkButtonProps}\n >\n <IconTrashBin16 />\n </button>\n </span>\n </span>\n </FloatingModalWrapper>\n );\n};\n"],"names":["EditModal","editButtonProps","unlinkButtonProps","element","useLinkOpenButtonState","url","getUrlFromLinkOrLegacyLink","jsx","FloatingModalWrapper","jsxs","IconPen16","IconTrashBin16"],"mappings":";;;AAgBO,MAAMA,IAAY,CAAC,EAAE,iBAAAC,GAAiB,mBAAAC,QAAwC;AAC3E,QAAA,EAAE,SAAAC,MAAYC,KACdC,IAAMF,IAAUG,EAA2BH,CAAO,IAAI;AAE5D,SACK,gBAAAI,EAAAC,GAAA,EAAqB,gBAAa,sBAAqB,SAAQ,QAAO,UAAS,SAC5E,UAAC,gBAAAC,EAAA,QAAA,EAAK,gBAAa,uBAAsB,WAAU,8CAC/C,UAAA;AAAA,IAAC,gBAAAF,EAAA,QAAA,EAAK,WAAU,0BAA0B,UAAIF,GAAA;AAAA,IAC9C,gBAAAI,EAAC,QAAK,EAAA,WAAU,oBACZ,UAAA;AAAA,MAAA,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,UAAU;AAAA,UACV,gBAAa;AAAA,UACb,WAAU;AAAA,UACT,GAAGN;AAAA,UAEJ,4BAACS,GAAU,EAAA;AAAA,QAAA;AAAA,MACf;AAAA,MAEA,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,UAAU;AAAA,UACV,gBAAa;AAAA,UACb,WAAU;AAAA,UACT,GAAGL;AAAA,UAEJ,4BAACS,GAAe,EAAA;AAAA,QAAA;AAAA,MACpB;AAAA,IAAA,GACJ;AAAA,EAAA,EACJ,CAAA,EACJ,CAAA;AAER;"}
@@ -1,66 +1,66 @@
1
- import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
- import { FormControl as p, TextInput as x, Button as n, ButtonSize as r, ButtonStyle as k, ButtonEmphasis as b, IconCheckMark20 as f } from "@frontify/fondue";
3
- import { LinkInput as v } from "../../../../../Link/LinkInput.es.js";
4
- const I = ({
5
- state: t,
6
- onTextChange: o,
7
- onUrlChange: d,
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ import { FloatingModalWrapper as x, FormControl as w, TextInput as k, Button as t, ButtonSize as r, ButtonStyle as b, ButtonEmphasis as f, IconCheckMark20 as T } from "@frontify/fondue";
3
+ import { LinkInput as C } from "../../../../../Link/LinkInput.es.js";
4
+ const B = ({
5
+ state: i,
6
+ onTextChange: d,
7
+ onUrlChange: o,
8
8
  onToggleTab: a,
9
9
  onCancel: c,
10
- onSave: w,
11
- isValidUrlOrEmpty: i,
10
+ onSave: m,
11
+ isValidUrlOrEmpty: l,
12
12
  hasValues: u,
13
- testId: m,
14
- appBridge: h,
13
+ testId: h,
14
+ appBridge: p,
15
15
  children: s
16
- }) => /* @__PURE__ */ l("div", { "data-test-id": m, className: "tw-bg-white tw-rounded tw-shadow tw-p-7 tw-min-w-[400px] tw-overflow-y-auto", children: [
16
+ }) => /* @__PURE__ */ n(x, { "data-test-id": h, padding: "28px", minWidth: "400px", children: [
17
17
  /* @__PURE__ */ e(
18
- p,
18
+ w,
19
19
  {
20
20
  label: {
21
21
  children: "Text",
22
22
  htmlFor: "linkText",
23
23
  required: !0
24
24
  },
25
- children: /* @__PURE__ */ e(x, { id: "linkText", value: t.text, placeholder: "Link Text", onChange: o })
25
+ children: /* @__PURE__ */ e(k, { id: "linkText", value: i.text, placeholder: "Link Text", onChange: d })
26
26
  }
27
27
  ),
28
28
  s,
29
29
  /* @__PURE__ */ e("div", { className: "tw-mt-5", children: /* @__PURE__ */ e(
30
- v,
30
+ C,
31
31
  {
32
- url: t.url,
33
- newTab: t.newTab,
34
- onUrlChange: d,
32
+ url: i.url,
33
+ newTab: i.newTab,
34
+ onUrlChange: o,
35
35
  onToggleTab: a,
36
- isValidUrlOrEmpty: i,
37
- appBridge: h
36
+ isValidUrlOrEmpty: l,
37
+ appBridge: p
38
38
  }
39
39
  ) }),
40
- /* @__PURE__ */ e("div", { className: "tw-mt-3", children: /* @__PURE__ */ l("div", { className: "tw-pt-5 tw-flex tw-gap-x-3 tw-justify-end tw-border-t tw-border-t-black-10", children: [
40
+ /* @__PURE__ */ e("div", { className: "tw-mt-3", children: /* @__PURE__ */ n("div", { className: "tw-pt-5 tw-flex tw-gap-x-3 tw-justify-end tw-border-t tw-border-t-black-10", children: [
41
41
  /* @__PURE__ */ e(
42
- n,
42
+ t,
43
43
  {
44
44
  onClick: c,
45
45
  size: r.Medium,
46
- style: k.Default,
47
- emphasis: b.Default,
46
+ style: b.Default,
47
+ emphasis: f.Default,
48
48
  children: "Cancel"
49
49
  }
50
50
  ),
51
51
  /* @__PURE__ */ e(
52
- n,
52
+ t,
53
53
  {
54
- onClick: w,
54
+ onClick: m,
55
55
  size: r.Medium,
56
- icon: /* @__PURE__ */ e(f, {}),
57
- disabled: !i(t == null ? void 0 : t.url) || !u,
56
+ icon: /* @__PURE__ */ e(T, {}),
57
+ disabled: !l(i == null ? void 0 : i.url) || !u,
58
58
  children: "Save"
59
59
  }
60
60
  )
61
61
  ] }) })
62
62
  ] });
63
63
  export {
64
- I as InsertModal
64
+ B as InsertModal
65
65
  };
66
66
  //# sourceMappingURL=InsertModal.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InsertModal.es.js","sources":["../../../../../../../src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { MouseEvent, ReactElement, ReactNode } from 'react';\nimport { AppBridgeBlock } from '@frontify/app-bridge';\nimport {\n Button,\n ButtonEmphasis,\n ButtonSize,\n ButtonStyle,\n FormControl,\n IconCheckMark20,\n TextInput,\n} from '@frontify/fondue';\nimport { InsertModalStateProps } from './types';\nimport { LinkInput } from '../../../../../Link';\n\ntype Props = {\n state: InsertModalStateProps;\n onTextChange: (value: string) => void;\n onUrlChange: (value: string) => void;\n onToggleTab: (checked: boolean) => void;\n onCancel: () => void;\n onSave: (event: MouseEvent<HTMLButtonElement, globalThis.MouseEvent> | KeyboardEvent | undefined) => void;\n hasValues: boolean;\n isValidUrlOrEmpty: (url: string) => boolean;\n testId?: string;\n children?: ReactNode;\n appBridge: AppBridgeBlock;\n};\n\nexport const InsertModal = ({\n state,\n onTextChange,\n onUrlChange,\n onToggleTab,\n onCancel,\n onSave,\n isValidUrlOrEmpty,\n hasValues,\n testId,\n appBridge,\n children,\n}: Props): ReactElement => (\n <div data-test-id={testId} className=\"tw-bg-white tw-rounded tw-shadow tw-p-7 tw-min-w-[400px] tw-overflow-y-auto\">\n <FormControl\n label={{\n children: 'Text',\n htmlFor: 'linkText',\n required: true,\n }}\n >\n <TextInput id=\"linkText\" value={state.text} placeholder=\"Link Text\" onChange={onTextChange} />\n </FormControl>\n\n {children}\n\n <div className=\"tw-mt-5\">\n <LinkInput\n url={state.url}\n newTab={state.newTab}\n onUrlChange={onUrlChange}\n onToggleTab={onToggleTab}\n isValidUrlOrEmpty={isValidUrlOrEmpty}\n appBridge={appBridge}\n />\n </div>\n <div className=\"tw-mt-3\">\n <div className={'tw-pt-5 tw-flex tw-gap-x-3 tw-justify-end tw-border-t tw-border-t-black-10'}>\n <Button\n onClick={onCancel}\n size={ButtonSize.Medium}\n style={ButtonStyle.Default}\n emphasis={ButtonEmphasis.Default}\n >\n Cancel\n </Button>\n <Button\n onClick={onSave}\n size={ButtonSize.Medium}\n icon={<IconCheckMark20 />}\n disabled={!isValidUrlOrEmpty(state?.url) || !hasValues}\n >\n Save\n </Button>\n </div>\n </div>\n </div>\n);\n"],"names":["InsertModal","state","onTextChange","onUrlChange","onToggleTab","onCancel","onSave","isValidUrlOrEmpty","hasValues","testId","appBridge","children","jsxs","jsx","FormControl","TextInput","LinkInput","Button","ButtonSize","ButtonStyle","ButtonEmphasis","IconCheckMark20"],"mappings":";;;AA8BO,MAAMA,IAAc,CAAC;AAAA,EACxB,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AACJ,MACK,gBAAAC,EAAA,OAAA,EAAI,gBAAcH,GAAQ,WAAU,+EACjC,UAAA;AAAA,EAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,OAAO;AAAA,QACH,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,MACd;AAAA,MAEA,UAAA,gBAAAD,EAACE,GAAU,EAAA,IAAG,YAAW,OAAOd,EAAM,MAAM,aAAY,aAAY,UAAUC,EAAc,CAAA;AAAA,IAAA;AAAA,EAChG;AAAA,EAECS;AAAA,EAED,gBAAAE,EAAC,OAAI,EAAA,WAAU,WACX,UAAA,gBAAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACG,KAAKf,EAAM;AAAA,MACX,QAAQA,EAAM;AAAA,MACd,aAAAE;AAAA,MACA,aAAAC;AAAA,MACA,mBAAAG;AAAA,MACA,WAAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAAA,oBACC,OAAI,EAAA,WAAU,WACX,UAAC,gBAAAE,EAAA,OAAA,EAAI,WAAW,8EACZ,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACI;AAAA,MAAA;AAAA,QACG,SAASZ;AAAA,QACT,MAAMa,EAAW;AAAA,QACjB,OAAOC,EAAY;AAAA,QACnB,UAAUC,EAAe;AAAA,QAC5B,UAAA;AAAA,MAAA;AAAA,IAED;AAAA,IACA,gBAAAP;AAAA,MAACI;AAAA,MAAA;AAAA,QACG,SAASX;AAAA,QACT,MAAMY,EAAW;AAAA,QACjB,wBAAOG,GAAgB,EAAA;AAAA,QACvB,UAAU,CAACd,EAAkBN,KAAA,gBAAAA,EAAO,GAAG,KAAK,CAACO;AAAA,QAChD,UAAA;AAAA,MAAA;AAAA,IAED;AAAA,EAAA,EAAA,CACJ,EACJ,CAAA;AAAA,EACJ,CAAA;"}
1
+ {"version":3,"file":"InsertModal.es.js","sources":["../../../../../../../src/components/RichTextEditor/plugins/LinkPlugin/FloatingLink/InsertLinkModal/InsertModal.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { MouseEvent, ReactElement, ReactNode } from 'react';\nimport { AppBridgeBlock } from '@frontify/app-bridge';\nimport {\n Button,\n ButtonEmphasis,\n ButtonSize,\n ButtonStyle,\n FloatingModalWrapper,\n FormControl,\n IconCheckMark20,\n TextInput,\n} from '@frontify/fondue';\nimport { InsertModalStateProps } from './types';\nimport { LinkInput } from '../../../../../Link';\n\ntype Props = {\n state: InsertModalStateProps;\n onTextChange: (value: string) => void;\n onUrlChange: (value: string) => void;\n onToggleTab: (checked: boolean) => void;\n onCancel: () => void;\n onSave: (event: MouseEvent<HTMLButtonElement, globalThis.MouseEvent> | KeyboardEvent | undefined) => void;\n hasValues: boolean;\n isValidUrlOrEmpty: (url: string) => boolean;\n testId?: string;\n children?: ReactNode;\n appBridge: AppBridgeBlock;\n};\n\nexport const InsertModal = ({\n state,\n onTextChange,\n onUrlChange,\n onToggleTab,\n onCancel,\n onSave,\n isValidUrlOrEmpty,\n hasValues,\n testId,\n appBridge,\n children,\n}: Props): ReactElement => (\n <FloatingModalWrapper data-test-id={testId} padding=\"28px\" minWidth=\"400px\">\n <FormControl\n label={{\n children: 'Text',\n htmlFor: 'linkText',\n required: true,\n }}\n >\n <TextInput id=\"linkText\" value={state.text} placeholder=\"Link Text\" onChange={onTextChange} />\n </FormControl>\n\n {children}\n\n <div className=\"tw-mt-5\">\n <LinkInput\n url={state.url}\n newTab={state.newTab}\n onUrlChange={onUrlChange}\n onToggleTab={onToggleTab}\n isValidUrlOrEmpty={isValidUrlOrEmpty}\n appBridge={appBridge}\n />\n </div>\n <div className=\"tw-mt-3\">\n <div className={'tw-pt-5 tw-flex tw-gap-x-3 tw-justify-end tw-border-t tw-border-t-black-10'}>\n <Button\n onClick={onCancel}\n size={ButtonSize.Medium}\n style={ButtonStyle.Default}\n emphasis={ButtonEmphasis.Default}\n >\n Cancel\n </Button>\n <Button\n onClick={onSave}\n size={ButtonSize.Medium}\n icon={<IconCheckMark20 />}\n disabled={!isValidUrlOrEmpty(state?.url) || !hasValues}\n >\n Save\n </Button>\n </div>\n </div>\n </FloatingModalWrapper>\n);\n"],"names":["InsertModal","state","onTextChange","onUrlChange","onToggleTab","onCancel","onSave","isValidUrlOrEmpty","hasValues","testId","appBridge","children","FloatingModalWrapper","jsx","FormControl","TextInput","LinkInput","jsxs","Button","ButtonSize","ButtonStyle","ButtonEmphasis","IconCheckMark20"],"mappings":";;;AA+BO,MAAMA,IAAc,CAAC;AAAA,EACxB,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AACJ,wBACKC,GAAqB,EAAA,gBAAcH,GAAQ,SAAQ,QAAO,UAAS,SAChE,UAAA;AAAA,EAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,OAAO;AAAA,QACH,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,MACd;AAAA,MAEA,UAAA,gBAAAD,EAACE,GAAU,EAAA,IAAG,YAAW,OAAOd,EAAM,MAAM,aAAY,aAAY,UAAUC,EAAc,CAAA;AAAA,IAAA;AAAA,EAChG;AAAA,EAECS;AAAA,EAED,gBAAAE,EAAC,OAAI,EAAA,WAAU,WACX,UAAA,gBAAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACG,KAAKf,EAAM;AAAA,MACX,QAAQA,EAAM;AAAA,MACd,aAAAE;AAAA,MACA,aAAAC;AAAA,MACA,mBAAAG;AAAA,MACA,WAAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAAA,oBACC,OAAI,EAAA,WAAU,WACX,UAAC,gBAAAO,EAAA,OAAA,EAAI,WAAW,8EACZ,UAAA;AAAA,IAAA,gBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QACG,SAASb;AAAA,QACT,MAAMc,EAAW;AAAA,QACjB,OAAOC,EAAY;AAAA,QACnB,UAAUC,EAAe;AAAA,QAC5B,UAAA;AAAA,MAAA;AAAA,IAED;AAAA,IACA,gBAAAR;AAAA,MAACK;AAAA,MAAA;AAAA,QACG,SAASZ;AAAA,QACT,MAAMa,EAAW;AAAA,QACjB,wBAAOG,GAAgB,EAAA;AAAA,QACvB,UAAU,CAACf,EAAkBN,KAAA,gBAAAA,EAAO,GAAG,KAAK,CAACO;AAAA,QAChD,UAAA;AAAA,MAAA;AAAA,IAED;AAAA,EAAA,EAAA,CACJ,EACJ,CAAA;AAAA,EACJ,CAAA;"}