@templatical/editor 0.23.0 → 0.24.0
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.
- package/dist/{AiChatSidebar-Bru6-ziQ.js → AiChatSidebar-Nq-jrGaf.js} +2 -2
- package/dist/{AiFeatureMenu-CcqjRMFW.js → AiFeatureMenu-tg_zMKMK.js} +3 -3
- package/dist/{BlockIssueBadge-Dmj9rVra.js → BlockIssueBadge-Bd94kIiw.js} +2 -2
- package/dist/BlockPreviewCanvas-B34aMhHe.js +117 -0
- package/dist/{CloudEditor-iK4vkpNm.js → CloudEditor-DjN_9Yso.js} +124 -119
- package/dist/{CollaboratorBar-C_1SF7Xf.js → CollaboratorBar-Bhazzcg-.js} +2 -2
- package/dist/{ColorPicker-s9GHXjZs.js → ColorPicker-DXGrcJxJ.js} +5 -5
- package/dist/{CommentsSidebar-DvNEdugN.js → CommentsSidebar-ku1kt10u.js} +3 -3
- package/dist/{CountdownBlock-J_Q9JRQM.js → CountdownBlock-CN9Lc23W.js} +1 -1
- package/dist/{CountdownToolbar-DPRcv3Fu.js → CountdownToolbar-VEsIyKV6.js} +3 -3
- package/dist/{DesignReferenceSidebar-BxPo0zyx.js → DesignReferenceSidebar-C4pTMzQE.js} +3 -3
- package/dist/{IssuesPanel-CEnEGFtd.js → IssuesPanel-CEfzOpS_.js} +2 -2
- package/dist/MergeTagModeToggle-C3V2xGAg.js +180 -0
- package/dist/{MergeTagSuggestion-D9eCryMC.js → MergeTagSuggestion-Dn8ww9nV.js} +2 -2
- package/dist/{NumberWithSuffix-CCPN_oCh.js → NumberWithSuffix-BGocZkj9.js} +1 -1
- package/dist/{ParagraphEditor-MKJYyWN9.js → ParagraphEditor-D-fz0kUb.js} +19 -19
- package/dist/{RichTextEditorContent-FbnWsh46.js → RichTextEditorContent-DydrqFts.js} +5 -5
- package/dist/{SaveBlockDialog-CFAJHP3v.js → SaveBlockDialog-BDDFbAWF.js} +6 -6
- package/dist/{SavedBlocksBrowserModal-C_-Xcm0Q.js → SavedBlocksBrowserModal-Djik_fJh.js} +6 -6
- package/dist/{SavedBlocksPanels-CRf7zzFn.js → SavedBlocksPanels-CxemyPxL.js} +1 -1
- package/dist/{SavedBlocksPickBar-C1FTJP-I.js → SavedBlocksPickBar-Dlhipmob.js} +2 -2
- package/dist/{SnapshotHistory-DWlQ3Eh0.js → SnapshotHistory-DPbM4ons.js} +4 -4
- package/dist/{TemplateScoringPanel-ifGGGWs5.js → TemplateScoringPanel-BFYgweDX.js} +2 -2
- package/dist/{TestEmailModal-D90-3Yex.js → TestEmailModal-IZfwgya-.js} +71 -59
- package/dist/{TestEmailPanel-B0u_Yd3X.js → TestEmailPanel-QEEx_PkN.js} +1 -1
- package/dist/{TitleEditor-DzsPxKv4.js → TitleEditor-BB4YlIBF.js} +10 -10
- package/dist/{TplModal-CykwWFhF.js → TplModal-DPH4vV8M.js} +3 -3
- package/dist/{blockTypeIcons-CpKkI47V.js → blockTypeIcons-Wzd7W_2x.js} +1 -1
- package/dist/bundle-stats.json +6 -6
- package/dist/{ca-D47BxSGu.js → ca-CO4nq6TX.js} +8 -1
- package/dist/cdn/chunks/{AiChatSidebar-BMnsF8G6.js → AiChatSidebar-CN-0DIuA.js} +11 -11
- package/dist/cdn/chunks/{AiChatSidebar-BMnsF8G6.js.map → AiChatSidebar-CN-0DIuA.js.map} +1 -1
- package/dist/cdn/chunks/{AiFeatureMenu-hWgWQg11.js → AiFeatureMenu-B5pV6Iux.js} +8 -8
- package/dist/cdn/chunks/{AiFeatureMenu-hWgWQg11.js.map → AiFeatureMenu-B5pV6Iux.js.map} +1 -1
- package/dist/cdn/chunks/{BlockIssueBadge-Da4yR-mh.js → BlockIssueBadge-aanOjeyi.js} +4 -4
- package/dist/cdn/chunks/{BlockIssueBadge-Da4yR-mh.js.map → BlockIssueBadge-aanOjeyi.js.map} +1 -1
- package/dist/cdn/chunks/BlockPreviewCanvas-Dc4F4HzY.js +119 -0
- package/dist/cdn/chunks/BlockPreviewCanvas-Dc4F4HzY.js.map +1 -0
- package/dist/cdn/chunks/{CloudEditor-S8zLHtKb.js → CloudEditor-CeKaWWO5.js} +129 -124
- package/dist/cdn/chunks/CloudEditor-CeKaWWO5.js.map +1 -0
- package/dist/cdn/chunks/{CollaboratorBar-mkJVAkSh.js → CollaboratorBar-CEdKr0A2.js} +4 -4
- package/dist/cdn/chunks/{CollaboratorBar-mkJVAkSh.js.map → CollaboratorBar-CEdKr0A2.js.map} +1 -1
- package/dist/cdn/chunks/{ColorPicker-DZSzZ5ZP.js → ColorPicker-BckwEfcN.js} +7 -7
- package/dist/cdn/chunks/{ColorPicker-DZSzZ5ZP.js.map → ColorPicker-BckwEfcN.js.map} +1 -1
- package/dist/cdn/chunks/{CommentsSidebar-DHdRiGPX.js → CommentsSidebar-6PfpJKh-.js} +18 -18
- package/dist/cdn/chunks/{CommentsSidebar-DHdRiGPX.js.map → CommentsSidebar-6PfpJKh-.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownBlock-Bffpoppw.js → CountdownBlock-CoBmvQKv.js} +2 -2
- package/dist/cdn/chunks/{CountdownBlock-Bffpoppw.js.map → CountdownBlock-CoBmvQKv.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownToolbar-DAnmIZjq.js → CountdownToolbar-CdV8RTQu.js} +4 -4
- package/dist/cdn/chunks/{CountdownToolbar-DAnmIZjq.js.map → CountdownToolbar-CdV8RTQu.js.map} +1 -1
- package/dist/cdn/chunks/{DesignReferenceSidebar-CM-k15pd.js → DesignReferenceSidebar-BjlaP69l.js} +90 -90
- package/dist/cdn/chunks/{DesignReferenceSidebar-CM-k15pd.js.map → DesignReferenceSidebar-BjlaP69l.js.map} +1 -1
- package/dist/cdn/chunks/{IssuesPanel-D80JedOj.js → IssuesPanel-CkkEnhxZ.js} +9 -9
- package/dist/cdn/chunks/{IssuesPanel-D80JedOj.js.map → IssuesPanel-CkkEnhxZ.js.map} +1 -1
- package/dist/cdn/chunks/MergeTagModeToggle-DmtR300G.js +127 -0
- package/dist/cdn/chunks/MergeTagModeToggle-DmtR300G.js.map +1 -0
- package/dist/cdn/chunks/{MergeTagSuggestion-BM349_QH.js → MergeTagSuggestion-Cvlkw_PM.js} +2 -2
- package/dist/cdn/chunks/{MergeTagSuggestion-BM349_QH.js.map → MergeTagSuggestion-Cvlkw_PM.js.map} +1 -1
- package/dist/cdn/chunks/{NumberWithSuffix-CjlVNIEe.js → NumberWithSuffix-BOcMN26z.js} +2 -2
- package/dist/cdn/chunks/{NumberWithSuffix-CjlVNIEe.js.map → NumberWithSuffix-BOcMN26z.js.map} +1 -1
- package/dist/cdn/chunks/{ParagraphEditor-J-1RLyi7.js → ParagraphEditor-CX1yks4N.js} +35 -35
- package/dist/cdn/chunks/{ParagraphEditor-J-1RLyi7.js.map → ParagraphEditor-CX1yks4N.js.map} +1 -1
- package/dist/cdn/chunks/{RichTextEditorContent-BbdgJqWM.js → RichTextEditorContent-z9s7qxs3.js} +7 -7
- package/dist/cdn/chunks/{RichTextEditorContent-BbdgJqWM.js.map → RichTextEditorContent-z9s7qxs3.js.map} +1 -1
- package/dist/cdn/chunks/{SaveBlockDialog-Bi_Z3kuA.js → SaveBlockDialog-D2CtW4lC.js} +8 -8
- package/dist/cdn/chunks/{SaveBlockDialog-Bi_Z3kuA.js.map → SaveBlockDialog-D2CtW4lC.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-CesYxFsH.js → SavedBlocksBrowserModal-DdUKJzzF.js} +8 -8
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-CesYxFsH.js.map → SavedBlocksBrowserModal-DdUKJzzF.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPanels-BsSpJwrW.js → SavedBlocksPanels-1kVbqdpc.js} +2 -2
- package/dist/cdn/chunks/{SavedBlocksPanels-BsSpJwrW.js.map → SavedBlocksPanels-1kVbqdpc.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPickBar-CduR1Cpb.js → SavedBlocksPickBar--noDJIyN.js} +6 -6
- package/dist/cdn/chunks/{SavedBlocksPickBar-CduR1Cpb.js.map → SavedBlocksPickBar--noDJIyN.js.map} +1 -1
- package/dist/cdn/chunks/{SnapshotHistory-DO-gzr3i.js → SnapshotHistory-DFuNJRc9.js} +8 -8
- package/dist/cdn/chunks/{SnapshotHistory-DO-gzr3i.js.map → SnapshotHistory-DFuNJRc9.js.map} +1 -1
- package/dist/cdn/chunks/{TemplateScoringPanel-CTk8WwxU.js → TemplateScoringPanel-DG1dAjQk.js} +52 -52
- package/dist/cdn/chunks/{TemplateScoringPanel-CTk8WwxU.js.map → TemplateScoringPanel-DG1dAjQk.js.map} +1 -1
- package/dist/cdn/chunks/TestEmailModal-CiPfOn2v.js +174 -0
- package/dist/cdn/chunks/TestEmailModal-CiPfOn2v.js.map +1 -0
- package/dist/cdn/chunks/{TestEmailPanel-048m0kxX.js → TestEmailPanel-saOfnpjz.js} +2 -2
- package/dist/cdn/chunks/{TestEmailPanel-048m0kxX.js.map → TestEmailPanel-saOfnpjz.js.map} +1 -1
- package/dist/cdn/chunks/{TitleEditor-J1vgU_J6.js → TitleEditor-08KM_VzZ.js} +18 -18
- package/dist/cdn/chunks/{TitleEditor-J1vgU_J6.js.map → TitleEditor-08KM_VzZ.js.map} +1 -1
- package/dist/cdn/chunks/{TplModal-BN53d9Se.js → TplModal-Cu4tBBnF.js} +4 -4
- package/dist/cdn/chunks/{TplModal-BN53d9Se.js.map → TplModal-Cu4tBBnF.js.map} +1 -1
- package/dist/cdn/chunks/blockTypeIcons-DvohkXqi.js +21 -0
- package/dist/cdn/chunks/{blockTypeIcons-etMMQoVv.js.map → blockTypeIcons-DvohkXqi.js.map} +1 -1
- package/dist/cdn/chunks/{ca-D47BxSGu.js → ca-CO4nq6TX.js} +9 -2
- package/dist/cdn/chunks/{ca-D47BxSGu.js.map → ca-CO4nq6TX.js.map} +1 -1
- package/dist/cdn/chunks/{cloud-F-aVi9hj.js → cloud-C2I0P9qj.js} +2 -2
- package/dist/cdn/chunks/{cloud-F-aVi9hj.js.map → cloud-C2I0P9qj.js.map} +1 -1
- package/dist/{de-CnnxBwh7.js → cdn/chunks/de-CUeaFJph.js} +10 -1
- package/dist/cdn/chunks/{de-CnnxBwh7.js.map → de-CUeaFJph.js.map} +1 -1
- package/dist/{en-5gW-bYy2.js → cdn/chunks/en-zCYIPAL5.js} +10 -1
- package/dist/cdn/chunks/{en-5gW-bYy2.js.map → en-zCYIPAL5.js.map} +1 -1
- package/dist/cdn/chunks/{es-sQ9SdI0l.js → es-BSiH7YkP.js} +9 -2
- package/dist/cdn/chunks/{es-sQ9SdI0l.js.map → es-BSiH7YkP.js.map} +1 -1
- package/dist/cdn/chunks/{extensions-C49c51P1.js → extensions-DBWF_lxx.js} +16 -16
- package/dist/cdn/chunks/{extensions-C49c51P1.js.map → extensions-DBWF_lxx.js.map} +1 -1
- package/dist/{fr-DBZ5w21C.js → cdn/chunks/fr-DTVJ3det.js} +10 -1
- package/dist/cdn/chunks/fr-DTVJ3det.js.map +1 -0
- package/dist/cdn/chunks/{icons-CYWw8Xfp.js → icons-Cqxvwgz7.js} +35 -14
- package/dist/cdn/chunks/icons-Cqxvwgz7.js.map +1 -0
- package/dist/cdn/chunks/keys-B5uoP9P7.js +12 -0
- package/dist/cdn/chunks/keys-B5uoP9P7.js.map +1 -0
- package/dist/cdn/chunks/{nl-DOL7Fnfo.js → nl-BqSquFS3.js} +9 -2
- package/dist/cdn/chunks/nl-BqSquFS3.js.map +1 -0
- package/dist/{pt-BR-DRCdHX1d.js → cdn/chunks/pt-BR-CMljK37h.js} +10 -1
- package/dist/cdn/chunks/{pt-BR-DRCdHX1d.js.map → pt-BR-CMljK37h.js.map} +1 -1
- package/dist/cdn/chunks/{src-BKI1x1k7.js → src-BCJna-6p.js} +183 -165
- package/dist/cdn/chunks/{src-BKI1x1k7.js.map → src-BCJna-6p.js.map} +1 -1
- package/dist/cdn/chunks/{src-SluTVSz_.js → src-C45kfA2t.js} +17 -17
- package/dist/cdn/chunks/{src-SluTVSz_.js.map → src-C45kfA2t.js.map} +1 -1
- package/dist/cdn/chunks/{src-CzoMNRq4.js → src-XQmI_Xs1.js} +33 -33
- package/dist/cdn/chunks/{src-CzoMNRq4.js.map → src-XQmI_Xs1.js.map} +1 -1
- package/dist/cdn/chunks/{src-CM0gCvAS.js → src-YVsPFLNJ.js} +251 -251
- package/dist/cdn/chunks/{src-CM0gCvAS.js.map → src-YVsPFLNJ.js.map} +1 -1
- package/dist/cdn/chunks/{styles-BbfU2w9R.js → styles-BohMfIBd.js} +700 -693
- package/dist/cdn/chunks/styles-BohMfIBd.js.map +1 -0
- package/dist/cdn/chunks/{tiptap-DUTbZTeR.js → tiptap-DRKu__AX.js} +5 -5
- package/dist/cdn/chunks/{tiptap-DUTbZTeR.js.map → tiptap-DRKu__AX.js.map} +1 -1
- package/dist/cdn/chunks/{useCloudI18n-BjNENqkM.js → useCloudI18n-Bem8DUjH.js} +2 -2
- package/dist/cdn/chunks/{useCloudI18n-BjNENqkM.js.map → useCloudI18n-Bem8DUjH.js.map} +1 -1
- package/dist/cdn/chunks/{useEditorCore-CzMhD6Gd.js → useEditorCore-B_vwuKdI.js} +434 -414
- package/dist/cdn/chunks/useEditorCore-B_vwuKdI.js.map +1 -0
- package/dist/cdn/chunks/{useI18n-8Wd7G-cq.js → useI18n-graz19nI.js} +2 -2
- package/dist/cdn/chunks/{useI18n-8Wd7G-cq.js.map → useI18n-graz19nI.js.map} +1 -1
- package/dist/cdn/chunks/{useMergeTag-C7G31KV-.js → useMergeTag-rTzAFMlr.js} +4 -4
- package/dist/cdn/chunks/{useMergeTag-C7G31KV-.js.map → useMergeTag-rTzAFMlr.js.map} +1 -1
- package/dist/cdn/chunks/{usePopoverPosition-Bx0QewTv.js → usePopoverPosition-BaFxLP3w.js} +2 -2
- package/dist/cdn/chunks/{usePopoverPosition-Bx0QewTv.js.map → usePopoverPosition-BaFxLP3w.js.map} +1 -1
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +144 -139
- package/dist/cdn/editor.js.map +1 -1
- package/dist/{cloud-CeZPgo1V.js → cloud-DsUct4Zq.js} +1 -1
- package/dist/{cdn/chunks/de-CnnxBwh7.js → de-CUeaFJph.js} +8 -3
- package/dist/{dist-CL_CfQ3Q.js → dist-9uhI32Q4.js} +2 -2
- package/dist/{dist-3DHaYEiT.js → dist-BAkGuPYm.js} +2 -2
- package/dist/dist-BIYm-U9x.js +5 -0
- package/dist/{dist-3HenmYIg.js → dist-ByJVlKWy.js} +1 -1
- package/dist/{dist-DKWoZJAV.js → dist-C5tigvDF.js} +2 -2
- package/dist/{dist-bivrM-nS.js → dist-CQiAZlTt.js} +2 -2
- package/dist/{dist-Ih7ejWzn.js → dist-C_kAE1sC.js} +2 -2
- package/dist/{dist-CclnU_v0.js → dist-CkCVlKj_.js} +2 -2
- package/dist/{dist-B_etKYyh.js → dist-DFO896yT.js} +5 -5
- package/dist/{dist-BJbqgyPn.js → dist-DPHqs0Yh.js} +105 -87
- package/dist/{dist-DOtLGnLr.js → dist-DWu9QWFl.js} +2 -2
- package/dist/{dist-BCnJcAQc.js → dist-IGetXrbO.js} +2 -2
- package/dist/dist-JXOq1hib.js +5 -0
- package/dist/{cdn/chunks/en-5gW-bYy2.js → en-zCYIPAL5.js} +8 -3
- package/dist/{es-sQ9SdI0l.js → es-BSiH7YkP.js} +8 -1
- package/dist/{extensions-3870a_3R.js → extensions-C0DXnYdA.js} +13 -13
- package/dist/{cdn/chunks/fr-DBZ5w21C.js → fr-DTVJ3det.js} +8 -3
- package/dist/keys-BVlG5Ozc.js +10 -0
- package/dist/{nl-DOL7Fnfo.js → nl-BqSquFS3.js} +8 -1
- package/dist/{cdn/chunks/pt-BR-DRCdHX1d.js → pt-BR-CMljK37h.js} +8 -3
- package/dist/style.css +1 -1
- package/dist/{styles-BWTIgN5L.js → styles-BTTD0Je4.js} +856 -849
- package/dist/templatical-editor.js +92 -87
- package/dist/{useCloudI18n-BmiygEM4.js → useCloudI18n-DGr3b2SX.js} +1 -1
- package/dist/{useEditorCore-CuMMIfiS.js → useEditorCore-DOrGex_t.js} +917 -897
- package/dist/{useI18n-D2L9Mkik.js → useI18n-BhAejA-x.js} +1 -1
- package/dist/{useMergeTag-BTdDq5DC.js → useMergeTag-Ce95YIOO.js} +3 -3
- package/dist/{usePopoverPosition-BO2LNy5n.js → usePopoverPosition-vjKJaqJf.js} +1 -1
- package/package.json +20 -20
- package/dist/BlockPreviewCanvas-MD9BGuXV.js +0 -115
- package/dist/ViewportToggle-BjmbNoao.js +0 -97
- package/dist/cdn/chunks/BlockPreviewCanvas-eASrdFSN.js +0 -117
- package/dist/cdn/chunks/BlockPreviewCanvas-eASrdFSN.js.map +0 -1
- package/dist/cdn/chunks/CloudEditor-S8zLHtKb.js.map +0 -1
- package/dist/cdn/chunks/TestEmailModal-CCWEVrE2.js +0 -162
- package/dist/cdn/chunks/TestEmailModal-CCWEVrE2.js.map +0 -1
- package/dist/cdn/chunks/ViewportToggle-CFmF-N4i.js +0 -66
- package/dist/cdn/chunks/ViewportToggle-CFmF-N4i.js.map +0 -1
- package/dist/cdn/chunks/blockTypeIcons-etMMQoVv.js +0 -21
- package/dist/cdn/chunks/fr-DBZ5w21C.js.map +0 -1
- package/dist/cdn/chunks/icons-CYWw8Xfp.js.map +0 -1
- package/dist/cdn/chunks/keys-D7kUmfpE.js +0 -12
- package/dist/cdn/chunks/keys-D7kUmfpE.js.map +0 -1
- package/dist/cdn/chunks/nl-DOL7Fnfo.js.map +0 -1
- package/dist/cdn/chunks/styles-BbfU2w9R.js.map +0 -1
- package/dist/cdn/chunks/useEditorCore-CzMhD6Gd.js.map +0 -1
- package/dist/dist-CcQLJeWV.js +0 -5
- package/dist/dist-DerdmERj.js +0 -5
- package/dist/keys-CHPcp-Nz.js +0 -10
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestEmailModal-CCWEVrE2.js","names":[],"sources":["../../../src/utils/validateEmailShape.ts","../../../src/components/TestEmailModal.vue","../../../src/components/TestEmailModal.vue"],"sourcesContent":["/**\n * Characters that cannot appear in a domain but routinely arrive attached to one.\n *\n * A **denylist**, not an allowlist, so unicode domains keep working — an\n * allowlist of `[a-z0-9.-]` would be the stricter, more obviously \"correct\"\n * choice and would reject them. What this actually targets is the punctuation\n * that comes from pasting out of a list or a mail client: `user@example.com,`\n * and `<user@example.com>`.\n */\nconst IMPOSSIBLE_DOMAIN_CHARS = /[,;<>()[\\]\\\\\"'`|/?#@!$%^&*+=~{}]/;\n\n/**\n * Does this string look like an email address?\n *\n * Deliberately loose: non-empty, no whitespace, exactly one `@`, a non-empty\n * local part, and a domain containing a dot with something either side and no\n * impossible characters. That is enough to catch the mistakes a typo actually\n * produces — a missing `@`, a trailing comma, a half-typed domain — before the\n * user pays for a round-trip.\n *\n * **Do not \"improve\" this into an RFC-ish regex.** Those reliably reject valid\n * addresses (plus-addressing, long new gTLDs, unicode domains) and the resulting\n * bug reports cost far more than the malformed addresses they catch. Only the\n * receiving mail server can really tell, and the sending backend has to validate\n * anyway — this is a fast-feedback affordance, not a gate. `validateEmailShape`\n * has its own test file pinning the addresses that must keep passing.\n */\nexport function looksLikeEmail(value: string): boolean {\n const trimmed = value.trim();\n if (trimmed.length === 0) return false;\n if (/\\s/.test(trimmed)) return false;\n\n const parts = trimmed.split(\"@\");\n if (parts.length !== 2) return false;\n\n const [local, domain] = parts;\n if (local.length === 0) return false;\n if (IMPOSSIBLE_DOMAIN_CHARS.test(domain)) return false;\n\n // A dot with at least one character either side, so `a@b` and `a@b.` fail but\n // `a@b.c` and `a@sub.example.museum` pass.\n const dot = domain.indexOf(\".\");\n return dot > 0 && dot < domain.length - 1;\n}\n","<script setup lang=\"ts\">\n/**\n * Send-a-test dialog, shared by the OSS and Cloud editors.\n *\n * The recipient control has three shapes, driven entirely by whether the\n * provider configured an allowlist:\n *\n * - **no allowlist** — free text, validated for shape only. This branch exists\n * for BYO senders; Cloud never takes it, because its list comes from a signed\n * JWT.\n * - **exactly one** — a read-only field. Preserved verbatim from the Cloud-only\n * version; there is nothing to choose, so offering an editable field would\n * imply otherwise.\n * - **several** — a picker of exactly those addresses.\n *\n * An empty allowlist never reaches here: the feature reports itself unavailable,\n * so no trigger renders. (The Cloud-only version fell through to `v-else` and\n * rendered a select with no options and a permanently disabled Send.)\n */\nimport TplModal from \"./TplModal.vue\";\n// Statically imported: this modal is already lazy-loaded as a whole, so the\n// preview rides its chunk rather than costing a second round-trip and flashing\n// an empty frame. Still shared with the saved-blocks surfaces, which lazy-load\n// it themselves.\nimport BlockPreviewCanvas from \"./BlockPreviewCanvas.vue\";\n// The editor header's own control, reused verbatim so the two viewport switches\n// are the same component rather than two things that resemble each other.\nimport ViewportToggle from \"./ViewportToggle.vue\";\nimport { useI18n } from \"../composables/useI18n\";\nimport { looksLikeEmail } from \"../utils/validateEmailShape\";\nimport { Check, LoaderCircle } from \"@lucide/vue\";\nimport { computed, inject, ref, watch } from \"vue\";\nimport type { ViewportSize } from \"@templatical/types\";\nimport { EDITOR_KEY } from \"../keys\";\nimport type { TestEmailError } from \"../composables/useTestEmailFeature\";\n\nconst props = defineProps<{\n visible: boolean;\n /** Omitted / undefined means unrestricted, so the field accepts free text. */\n allowedRecipients?: string[];\n defaultRecipient?: string;\n isSending: boolean;\n justSent: boolean;\n error: TestEmailError | null;\n}>();\n\nconst emit = defineEmits<{\n (e: \"send\", recipient: string): void;\n (e: \"close\"): void;\n}>();\n\nconst { t } = useI18n();\nconst editor = inject(EDITOR_KEY, null);\n\nconst recipient = ref(\"\");\n\nconst previewViewport = ref<ViewportSize>(\"desktop\");\n\n/**\n * Read live from the editor rather than passed in, so a preview left open while\n * a Cloud collaborator edits stays current. Empty without an editor (headless\n * mounts), which simply renders an empty frame.\n */\nconst previewBlocks = computed(() => editor?.content.value.blocks ?? []);\n\nconst hasAllowlist = computed(\n () =>\n props.allowedRecipients !== undefined && props.allowedRecipients.length > 0,\n);\nconst isSingleRecipient = computed(() => props.allowedRecipients?.length === 1);\n\n// Mounted behind a `v-if` on the same state that drives `visible`, so it can\n// mount with `visible` already true — without `immediate` the field would never\n// be seeded.\nwatch(\n () => props.visible,\n (visible) => {\n if (!visible) return;\n recipient.value =\n props.defaultRecipient ?? props.allowedRecipients?.[0] ?? \"\";\n },\n { immediate: true },\n);\n\n/** Shape-check free text only; a picker can't produce a malformed value. */\nconst isRecipientValid = computed(() =>\n hasAllowlist.value\n ? recipient.value.length > 0\n : looksLikeEmail(recipient.value),\n);\n\nconst canSend = computed(\n () => isRecipientValid.value && !props.isSending && !props.justSent,\n);\n\n/** Free text that's been typed into but isn't yet a plausible address. */\nconst showShapeHint = computed(\n () =>\n !hasAllowlist.value &&\n recipient.value.trim().length > 0 &&\n !isRecipientValid.value,\n);\n\nconst errorText = computed(() => {\n if (!props.error) return null;\n return props.error.kind === \"provider\"\n ? props.error.message\n : t.testEmail.recipientNotAllowed;\n});\n\nfunction handleSend(): void {\n if (!canSend.value) return;\n emit(\"send\", recipient.value.trim());\n}\n\nfunction handleClose(): void {\n // Sending is the one state that blocks dismissal; the success state closes\n // immediately rather than making the user wait out the timer.\n if (props.isSending) return;\n emit(\"close\");\n}\n\nfunction handleKeydown(event: KeyboardEvent): void {\n if (event.key === \"Enter\" && !event.shiftKey) {\n event.preventDefault();\n handleSend();\n }\n if (event.key === \"Escape\") {\n handleClose();\n }\n}\n</script>\n\n<template>\n <TplModal :visible=\"visible\" @close=\"handleClose\" @keydown=\"handleKeydown\">\n <!-- Grows to `max-w-2xl` only while the preview is open, so a 600px email\n renders at roughly true size — the same reason SaveBlockDialog picked\n that width. Collapsed, it stays the compact form it was. `max-h-[90vh]`\n with a `min-h-0 overflow-y-auto` preview region is the pattern the\n saved-blocks dialogs use: `min-h-0` is what lets a flex child shrink\n below its content and actually scroll. -->\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-busy=\"isSending\"\n aria-labelledby=\"tpl-test-email-title\"\n class=\"tpl-scale-in tpl:mx-4 tpl:flex tpl:max-h-[90vh] tpl:w-full tpl:max-w-2xl tpl:flex-col tpl:rounded-[var(--tpl-radius-lg)] tpl:p-5\"\n style=\"\n background-color: var(--tpl-bg-elevated);\n box-shadow: var(--tpl-shadow-xl);\n \"\n >\n <h3\n id=\"tpl-test-email-title\"\n class=\"tpl:mb-4 tpl:shrink-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]\"\n >\n {{ t.testEmail.title }}\n </h3>\n\n <!-- Recipient -->\n <div class=\"tpl:mb-3 tpl:shrink-0\">\n <label\n for=\"tpl-test-email-recipient\"\n class=\"tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ t.testEmail.recipientLabel }}\n </label>\n\n <!-- Exactly one allowed address: nothing to choose. -->\n <input\n v-if=\"isSingleRecipient\"\n id=\"tpl-test-email-recipient\"\n type=\"text\"\n :value=\"recipient\"\n disabled\n data-testid=\"test-email-recipient\"\n class=\"tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:opacity-70 tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]\"\n />\n\n <!-- Several allowed addresses: pick one. -->\n <select\n v-else-if=\"hasAllowlist\"\n id=\"tpl-test-email-recipient\"\n v-model=\"recipient\"\n :disabled=\"isSending || justSent\"\n data-testid=\"test-email-recipient\"\n class=\"tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]\"\n >\n <option\n v-for=\"email in allowedRecipients\"\n :key=\"email\"\n :value=\"email\"\n >\n {{ email }}\n </option>\n </select>\n\n <!-- No allowlist: free text. -->\n <input\n v-else\n id=\"tpl-test-email-recipient\"\n v-model=\"recipient\"\n type=\"email\"\n autocomplete=\"email\"\n spellcheck=\"false\"\n :placeholder=\"t.testEmail.recipientPlaceholder\"\n :disabled=\"isSending || justSent\"\n data-testid=\"test-email-recipient\"\n class=\"tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]\"\n />\n\n <p\n v-if=\"showShapeHint\"\n class=\"tpl:mt-1.5 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\"\n >\n {{ t.testEmail.invalidAddress }}\n </p>\n </div>\n\n <!-- Preview header: a label plus the viewport switch. Always shown — the\n preview is part of the dialog rather than something to opt into. -->\n <div class=\"tpl:mb-2 tpl:shrink-0\">\n <div class=\"tpl:flex tpl:items-center tpl:justify-between tpl:gap-2\">\n <span\n class=\"tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ t.testEmail.preview }}\n </span>\n\n <!-- Without this the preview would silently show only the desktop\n variant of any responsive block. -->\n <ViewportToggle\n :viewport=\"previewViewport\"\n @change=\"previewViewport = $event\"\n />\n </div>\n\n <p class=\"tpl:mt-1 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\">\n {{ t.testEmail.previewHint }}\n </p>\n </div>\n\n <!-- The one region allowed to grow: `flex-1 min-h-0` so it absorbs the\n remaining height and scrolls, leaving the form and actions fixed. -->\n <div\n id=\"tpl-test-email-preview\"\n data-testid=\"test-email-preview\"\n class=\"tpl:mb-3 tpl:min-h-0 tpl:flex-1 tpl:overflow-y-auto tpl:rounded-[var(--tpl-radius-sm)] tpl:p-3 tpl:bg-[var(--tpl-canvas-bg)]\"\n >\n <BlockPreviewCanvas\n :blocks=\"previewBlocks\"\n :viewport=\"previewViewport\"\n />\n </div>\n\n <!-- Success. Announced politely; the dialog closes itself shortly after. -->\n <p\n v-if=\"justSent\"\n role=\"status\"\n data-testid=\"test-email-success\"\n class=\"tpl:mb-3 tpl:flex tpl:shrink-0 tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success,var(--tpl-primary))]\"\n >\n <Check :size=\"13\" :stroke-width=\"2.5\" />\n {{ t.testEmail.success }}\n </p>\n\n <!-- Failure. Stays open so the user can retry. -->\n <p\n v-else-if=\"errorText\"\n role=\"alert\"\n data-testid=\"test-email-error\"\n class=\"tpl:mb-3 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-danger)]\"\n >\n {{ errorText }}\n </p>\n\n <!-- Actions -->\n <div class=\"tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2\">\n <button\n type=\"button\"\n data-testid=\"test-email-cancel\"\n class=\"tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]\"\n :disabled=\"isSending\"\n :class=\"{ 'tpl:cursor-not-allowed tpl:opacity-50': isSending }\"\n @click=\"handleClose\"\n >\n {{ t.testEmail.cancel }}\n </button>\n <button\n type=\"button\"\n data-testid=\"test-email-send\"\n class=\"tpl:cursor-pointer tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]\"\n :disabled=\"!canSend\"\n @click=\"handleSend\"\n >\n <span v-if=\"isSending\" class=\"tpl:flex tpl:items-center tpl:gap-1.5\">\n <LoaderCircle\n class=\"tpl:animate-spin\"\n :size=\"12\"\n :stroke-width=\"2\"\n />\n {{ t.testEmail.sending }}\n </span>\n <span v-else>\n {{ t.testEmail.send }}\n </span>\n </button>\n </div>\n </div>\n </TplModal>\n</template>\n","<script setup lang=\"ts\">\n/**\n * Send-a-test dialog, shared by the OSS and Cloud editors.\n *\n * The recipient control has three shapes, driven entirely by whether the\n * provider configured an allowlist:\n *\n * - **no allowlist** — free text, validated for shape only. This branch exists\n * for BYO senders; Cloud never takes it, because its list comes from a signed\n * JWT.\n * - **exactly one** — a read-only field. Preserved verbatim from the Cloud-only\n * version; there is nothing to choose, so offering an editable field would\n * imply otherwise.\n * - **several** — a picker of exactly those addresses.\n *\n * An empty allowlist never reaches here: the feature reports itself unavailable,\n * so no trigger renders. (The Cloud-only version fell through to `v-else` and\n * rendered a select with no options and a permanently disabled Send.)\n */\nimport TplModal from \"./TplModal.vue\";\n// Statically imported: this modal is already lazy-loaded as a whole, so the\n// preview rides its chunk rather than costing a second round-trip and flashing\n// an empty frame. Still shared with the saved-blocks surfaces, which lazy-load\n// it themselves.\nimport BlockPreviewCanvas from \"./BlockPreviewCanvas.vue\";\n// The editor header's own control, reused verbatim so the two viewport switches\n// are the same component rather than two things that resemble each other.\nimport ViewportToggle from \"./ViewportToggle.vue\";\nimport { useI18n } from \"../composables/useI18n\";\nimport { looksLikeEmail } from \"../utils/validateEmailShape\";\nimport { Check, LoaderCircle } from \"@lucide/vue\";\nimport { computed, inject, ref, watch } from \"vue\";\nimport type { ViewportSize } from \"@templatical/types\";\nimport { EDITOR_KEY } from \"../keys\";\nimport type { TestEmailError } from \"../composables/useTestEmailFeature\";\n\nconst props = defineProps<{\n visible: boolean;\n /** Omitted / undefined means unrestricted, so the field accepts free text. */\n allowedRecipients?: string[];\n defaultRecipient?: string;\n isSending: boolean;\n justSent: boolean;\n error: TestEmailError | null;\n}>();\n\nconst emit = defineEmits<{\n (e: \"send\", recipient: string): void;\n (e: \"close\"): void;\n}>();\n\nconst { t } = useI18n();\nconst editor = inject(EDITOR_KEY, null);\n\nconst recipient = ref(\"\");\n\nconst previewViewport = ref<ViewportSize>(\"desktop\");\n\n/**\n * Read live from the editor rather than passed in, so a preview left open while\n * a Cloud collaborator edits stays current. Empty without an editor (headless\n * mounts), which simply renders an empty frame.\n */\nconst previewBlocks = computed(() => editor?.content.value.blocks ?? []);\n\nconst hasAllowlist = computed(\n () =>\n props.allowedRecipients !== undefined && props.allowedRecipients.length > 0,\n);\nconst isSingleRecipient = computed(() => props.allowedRecipients?.length === 1);\n\n// Mounted behind a `v-if` on the same state that drives `visible`, so it can\n// mount with `visible` already true — without `immediate` the field would never\n// be seeded.\nwatch(\n () => props.visible,\n (visible) => {\n if (!visible) return;\n recipient.value =\n props.defaultRecipient ?? props.allowedRecipients?.[0] ?? \"\";\n },\n { immediate: true },\n);\n\n/** Shape-check free text only; a picker can't produce a malformed value. */\nconst isRecipientValid = computed(() =>\n hasAllowlist.value\n ? recipient.value.length > 0\n : looksLikeEmail(recipient.value),\n);\n\nconst canSend = computed(\n () => isRecipientValid.value && !props.isSending && !props.justSent,\n);\n\n/** Free text that's been typed into but isn't yet a plausible address. */\nconst showShapeHint = computed(\n () =>\n !hasAllowlist.value &&\n recipient.value.trim().length > 0 &&\n !isRecipientValid.value,\n);\n\nconst errorText = computed(() => {\n if (!props.error) return null;\n return props.error.kind === \"provider\"\n ? props.error.message\n : t.testEmail.recipientNotAllowed;\n});\n\nfunction handleSend(): void {\n if (!canSend.value) return;\n emit(\"send\", recipient.value.trim());\n}\n\nfunction handleClose(): void {\n // Sending is the one state that blocks dismissal; the success state closes\n // immediately rather than making the user wait out the timer.\n if (props.isSending) return;\n emit(\"close\");\n}\n\nfunction handleKeydown(event: KeyboardEvent): void {\n if (event.key === \"Enter\" && !event.shiftKey) {\n event.preventDefault();\n handleSend();\n }\n if (event.key === \"Escape\") {\n handleClose();\n }\n}\n</script>\n\n<template>\n <TplModal :visible=\"visible\" @close=\"handleClose\" @keydown=\"handleKeydown\">\n <!-- Grows to `max-w-2xl` only while the preview is open, so a 600px email\n renders at roughly true size — the same reason SaveBlockDialog picked\n that width. Collapsed, it stays the compact form it was. `max-h-[90vh]`\n with a `min-h-0 overflow-y-auto` preview region is the pattern the\n saved-blocks dialogs use: `min-h-0` is what lets a flex child shrink\n below its content and actually scroll. -->\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-busy=\"isSending\"\n aria-labelledby=\"tpl-test-email-title\"\n class=\"tpl-scale-in tpl:mx-4 tpl:flex tpl:max-h-[90vh] tpl:w-full tpl:max-w-2xl tpl:flex-col tpl:rounded-[var(--tpl-radius-lg)] tpl:p-5\"\n style=\"\n background-color: var(--tpl-bg-elevated);\n box-shadow: var(--tpl-shadow-xl);\n \"\n >\n <h3\n id=\"tpl-test-email-title\"\n class=\"tpl:mb-4 tpl:shrink-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]\"\n >\n {{ t.testEmail.title }}\n </h3>\n\n <!-- Recipient -->\n <div class=\"tpl:mb-3 tpl:shrink-0\">\n <label\n for=\"tpl-test-email-recipient\"\n class=\"tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ t.testEmail.recipientLabel }}\n </label>\n\n <!-- Exactly one allowed address: nothing to choose. -->\n <input\n v-if=\"isSingleRecipient\"\n id=\"tpl-test-email-recipient\"\n type=\"text\"\n :value=\"recipient\"\n disabled\n data-testid=\"test-email-recipient\"\n class=\"tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:opacity-70 tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]\"\n />\n\n <!-- Several allowed addresses: pick one. -->\n <select\n v-else-if=\"hasAllowlist\"\n id=\"tpl-test-email-recipient\"\n v-model=\"recipient\"\n :disabled=\"isSending || justSent\"\n data-testid=\"test-email-recipient\"\n class=\"tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]\"\n >\n <option\n v-for=\"email in allowedRecipients\"\n :key=\"email\"\n :value=\"email\"\n >\n {{ email }}\n </option>\n </select>\n\n <!-- No allowlist: free text. -->\n <input\n v-else\n id=\"tpl-test-email-recipient\"\n v-model=\"recipient\"\n type=\"email\"\n autocomplete=\"email\"\n spellcheck=\"false\"\n :placeholder=\"t.testEmail.recipientPlaceholder\"\n :disabled=\"isSending || justSent\"\n data-testid=\"test-email-recipient\"\n class=\"tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]\"\n />\n\n <p\n v-if=\"showShapeHint\"\n class=\"tpl:mt-1.5 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\"\n >\n {{ t.testEmail.invalidAddress }}\n </p>\n </div>\n\n <!-- Preview header: a label plus the viewport switch. Always shown — the\n preview is part of the dialog rather than something to opt into. -->\n <div class=\"tpl:mb-2 tpl:shrink-0\">\n <div class=\"tpl:flex tpl:items-center tpl:justify-between tpl:gap-2\">\n <span\n class=\"tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ t.testEmail.preview }}\n </span>\n\n <!-- Without this the preview would silently show only the desktop\n variant of any responsive block. -->\n <ViewportToggle\n :viewport=\"previewViewport\"\n @change=\"previewViewport = $event\"\n />\n </div>\n\n <p class=\"tpl:mt-1 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\">\n {{ t.testEmail.previewHint }}\n </p>\n </div>\n\n <!-- The one region allowed to grow: `flex-1 min-h-0` so it absorbs the\n remaining height and scrolls, leaving the form and actions fixed. -->\n <div\n id=\"tpl-test-email-preview\"\n data-testid=\"test-email-preview\"\n class=\"tpl:mb-3 tpl:min-h-0 tpl:flex-1 tpl:overflow-y-auto tpl:rounded-[var(--tpl-radius-sm)] tpl:p-3 tpl:bg-[var(--tpl-canvas-bg)]\"\n >\n <BlockPreviewCanvas\n :blocks=\"previewBlocks\"\n :viewport=\"previewViewport\"\n />\n </div>\n\n <!-- Success. Announced politely; the dialog closes itself shortly after. -->\n <p\n v-if=\"justSent\"\n role=\"status\"\n data-testid=\"test-email-success\"\n class=\"tpl:mb-3 tpl:flex tpl:shrink-0 tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success,var(--tpl-primary))]\"\n >\n <Check :size=\"13\" :stroke-width=\"2.5\" />\n {{ t.testEmail.success }}\n </p>\n\n <!-- Failure. Stays open so the user can retry. -->\n <p\n v-else-if=\"errorText\"\n role=\"alert\"\n data-testid=\"test-email-error\"\n class=\"tpl:mb-3 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-danger)]\"\n >\n {{ errorText }}\n </p>\n\n <!-- Actions -->\n <div class=\"tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2\">\n <button\n type=\"button\"\n data-testid=\"test-email-cancel\"\n class=\"tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]\"\n :disabled=\"isSending\"\n :class=\"{ 'tpl:cursor-not-allowed tpl:opacity-50': isSending }\"\n @click=\"handleClose\"\n >\n {{ t.testEmail.cancel }}\n </button>\n <button\n type=\"button\"\n data-testid=\"test-email-send\"\n class=\"tpl:cursor-pointer tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]\"\n :disabled=\"!canSend\"\n @click=\"handleSend\"\n >\n <span v-if=\"isSending\" class=\"tpl:flex tpl:items-center tpl:gap-1.5\">\n <LoaderCircle\n class=\"tpl:animate-spin\"\n :size=\"12\"\n :stroke-width=\"2\"\n />\n {{ t.testEmail.sending }}\n </span>\n <span v-else>\n {{ t.testEmail.send }}\n </span>\n </button>\n </div>\n </div>\n </TplModal>\n</template>\n"],"mappings":"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"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { M as e, P as t, ct as n, f as r, g as i, it as a, m as o, p as s, st as c, u as l, x as u } from "./draggable-D840DIZB.js";
|
|
2
|
-
import { t as d } from "./useI18n-8Wd7G-cq.js";
|
|
3
|
-
import { E as f, Q as p } from "./icons-CYWw8Xfp.js";
|
|
4
|
-
//#region src/components/ViewportToggle.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var m = ["aria-label"], h = [
|
|
6
|
-
"aria-checked",
|
|
7
|
-
"aria-label",
|
|
8
|
-
"title",
|
|
9
|
-
"onClick"
|
|
10
|
-
], g = /* @__PURE__ */ u({
|
|
11
|
-
__name: "ViewportToggle",
|
|
12
|
-
props: { viewport: {} },
|
|
13
|
-
emits: ["change"],
|
|
14
|
-
setup(u, { emit: g }) {
|
|
15
|
-
let _ = u, v = g, { t: y } = d(), b = r(() => [{
|
|
16
|
-
value: "desktop",
|
|
17
|
-
label: y.viewport.desktop
|
|
18
|
-
}, {
|
|
19
|
-
value: "mobile",
|
|
20
|
-
label: y.viewport.mobile
|
|
21
|
-
}]), x = r(() => `translateX(${b.value.findIndex((e) => e.value === _.viewport) * 100}%)`);
|
|
22
|
-
return (r, d) => (e(), i("div", {
|
|
23
|
-
role: "radiogroup",
|
|
24
|
-
"aria-label": a(y).viewport.label,
|
|
25
|
-
class: "tpl:relative tpl:grid tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1",
|
|
26
|
-
style: c({
|
|
27
|
-
gridTemplateColumns: `repeat(${b.value.length}, 1fr)`,
|
|
28
|
-
backgroundColor: "var(--tpl-bg-hover)"
|
|
29
|
-
})
|
|
30
|
-
}, [s("div", {
|
|
31
|
-
class: "tpl:absolute tpl:inset-y-1 tpl:rounded-[var(--tpl-radius-sm)]",
|
|
32
|
-
style: c({
|
|
33
|
-
left: "4px",
|
|
34
|
-
width: `calc((100% - 8px) / ${b.value.length})`,
|
|
35
|
-
transform: x.value,
|
|
36
|
-
backgroundColor: "var(--tpl-bg)",
|
|
37
|
-
boxShadow: "var(--tpl-shadow)",
|
|
38
|
-
transition: "transform 120ms cubic-bezier(0.16, 1, 0.3, 1)"
|
|
39
|
-
})
|
|
40
|
-
}, null, 4), (e(!0), i(l, null, t(b.value, (t) => (e(), i("button", {
|
|
41
|
-
key: t.value,
|
|
42
|
-
role: "radio",
|
|
43
|
-
"aria-checked": u.viewport === t.value,
|
|
44
|
-
"aria-label": t.label,
|
|
45
|
-
class: "tpl:relative tpl:z-10 tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium",
|
|
46
|
-
style: c({
|
|
47
|
-
color: u.viewport === t.value ? "var(--tpl-primary)" : "var(--tpl-text-muted)",
|
|
48
|
-
transition: "color 120ms cubic-bezier(0.16, 1, 0.3, 1)"
|
|
49
|
-
}),
|
|
50
|
-
title: t.label,
|
|
51
|
-
onClick: (e) => v("change", t.value)
|
|
52
|
-
}, [t.value === "desktop" ? (e(), o(a(p), {
|
|
53
|
-
key: 0,
|
|
54
|
-
size: 18,
|
|
55
|
-
"stroke-width": 1.5
|
|
56
|
-
})) : (e(), o(a(f), {
|
|
57
|
-
key: 1,
|
|
58
|
-
size: 18,
|
|
59
|
-
"stroke-width": 1.5
|
|
60
|
-
})), s("span", null, n(t.label), 1)], 12, h))), 128))], 12, m));
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
//#endregion
|
|
64
|
-
export { g as t };
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=ViewportToggle-CFmF-N4i.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportToggle-CFmF-N4i.js","names":[],"sources":["../../../src/components/ViewportToggle.vue","../../../src/components/ViewportToggle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from \"../composables/useI18n\";\nimport type { ViewportSize } from \"@templatical/types\";\nimport { Monitor, Smartphone } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nconst props = defineProps<{\n viewport: ViewportSize;\n}>();\n\nconst emit = defineEmits<{\n (e: \"change\", viewport: ViewportSize): void;\n}>();\n\nconst { t } = useI18n();\n\nconst viewports = computed(() => [\n { value: \"desktop\" as ViewportSize, label: t.viewport.desktop },\n { value: \"mobile\" as ViewportSize, label: t.viewport.mobile },\n]);\n\nconst pillOffset = computed(() => {\n const index = viewports.value.findIndex((vp) => vp.value === props.viewport);\n return `translateX(${index * 100}%)`;\n});\n</script>\n\n<template>\n <div\n role=\"radiogroup\"\n :aria-label=\"t.viewport.label\"\n class=\"tpl:relative tpl:grid tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1\"\n :style=\"{\n gridTemplateColumns: `repeat(${viewports.length}, 1fr)`,\n backgroundColor: 'var(--tpl-bg-hover)',\n }\"\n >\n <!-- Sliding pill -->\n <div\n class=\"tpl:absolute tpl:inset-y-1 tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n left: '4px',\n width: `calc((100% - 8px) / ${viewports.length})`,\n transform: pillOffset,\n backgroundColor: 'var(--tpl-bg)',\n boxShadow: 'var(--tpl-shadow)',\n transition: 'transform 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n ></div>\n\n <button\n v-for=\"vp in viewports\"\n :key=\"vp.value\"\n role=\"radio\"\n :aria-checked=\"viewport === vp.value\"\n :aria-label=\"vp.label\"\n class=\"tpl:relative tpl:z-10 tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium\"\n :style=\"{\n color:\n viewport === vp.value\n ? 'var(--tpl-primary)'\n : 'var(--tpl-text-muted)',\n transition: 'color 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n :title=\"vp.label\"\n @click=\"emit('change', vp.value)\"\n >\n <Monitor v-if=\"vp.value === 'desktop'\" :size=\"18\" :stroke-width=\"1.5\" />\n <Smartphone v-else :size=\"18\" :stroke-width=\"1.5\" />\n <span>{{ vp.label }}</span>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useI18n } from \"../composables/useI18n\";\nimport type { ViewportSize } from \"@templatical/types\";\nimport { Monitor, Smartphone } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nconst props = defineProps<{\n viewport: ViewportSize;\n}>();\n\nconst emit = defineEmits<{\n (e: \"change\", viewport: ViewportSize): void;\n}>();\n\nconst { t } = useI18n();\n\nconst viewports = computed(() => [\n { value: \"desktop\" as ViewportSize, label: t.viewport.desktop },\n { value: \"mobile\" as ViewportSize, label: t.viewport.mobile },\n]);\n\nconst pillOffset = computed(() => {\n const index = viewports.value.findIndex((vp) => vp.value === props.viewport);\n return `translateX(${index * 100}%)`;\n});\n</script>\n\n<template>\n <div\n role=\"radiogroup\"\n :aria-label=\"t.viewport.label\"\n class=\"tpl:relative tpl:grid tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1\"\n :style=\"{\n gridTemplateColumns: `repeat(${viewports.length}, 1fr)`,\n backgroundColor: 'var(--tpl-bg-hover)',\n }\"\n >\n <!-- Sliding pill -->\n <div\n class=\"tpl:absolute tpl:inset-y-1 tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n left: '4px',\n width: `calc((100% - 8px) / ${viewports.length})`,\n transform: pillOffset,\n backgroundColor: 'var(--tpl-bg)',\n boxShadow: 'var(--tpl-shadow)',\n transition: 'transform 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n ></div>\n\n <button\n v-for=\"vp in viewports\"\n :key=\"vp.value\"\n role=\"radio\"\n :aria-checked=\"viewport === vp.value\"\n :aria-label=\"vp.label\"\n class=\"tpl:relative tpl:z-10 tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium\"\n :style=\"{\n color:\n viewport === vp.value\n ? 'var(--tpl-primary)'\n : 'var(--tpl-text-muted)',\n transition: 'color 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n :title=\"vp.label\"\n @click=\"emit('change', vp.value)\"\n >\n <Monitor v-if=\"vp.value === 'desktop'\" :size=\"18\" :stroke-width=\"1.5\" />\n <Smartphone v-else :size=\"18\" :stroke-width=\"1.5\" />\n <span>{{ vp.label }}</span>\n </button>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAMA,IAAM,IAAQ,GAIR,IAAO,GAIP,EAAE,SAAM,EAAQ,GAEhB,IAAY,QAAe,CAC/B;GAAE,OAAO;GAA2B,OAAO,EAAE,SAAS;EAAQ,GAC9D;GAAE,OAAO;GAA0B,OAAO,EAAE,SAAS;EAAO,CAC9D,CAAC,GAEK,IAAa,QAEV,cADO,EAAU,MAAM,WAAW,MAAO,EAAG,UAAU,EAAM,QAC9C,IAAQ,IAAI,GAClC;yBAIC,EA2CM,OAAA;GA1CJ,MAAK;GACJ,cAAY,EAAA,CAAA,CAAC,CAAC,SAAS;GACxB,OAAM;GACL,OAAK,EAAA;mCAAyC,EAAA,MAAU,OAAM;;;MAM/D,EAUO,OAAA;GATL,OAAM;GACL,OAAK,EAAA;;kCAA+D,EAAA,MAAU,OAAM;eAAwB,EAAA;;;;;uBAU/G,EAoBS,GAAA,MAAA,EAnBM,EAAA,QAAN,YADT,EAoBS,UAAA;GAlBN,KAAK,EAAG;GACT,MAAK;GACJ,gBAAc,EAAA,aAAa,EAAG;GAC9B,cAAY,EAAG;GAChB,OAAM;GACL,OAAK,EAAA;WAA6B,EAAA,aAAa,EAAG,QAAA,uBAAA;;;GAOlD,OAAO,EAAG;GACV,UAAK,MAAE,EAAI,UAAW,EAAG,KAAK;MAEhB,EAAG,UAAK,aAAA,EAAA,GAAvB,EAAwE,EAAA,CAAA,GAAA;;GAAhC,MAAM;GAAK,gBAAc;cACjE,EAAoD,EAAA,CAAA,GAAA;;GAAhC,MAAM;GAAK,gBAAc;OAC7C,EAA2B,QAAA,MAAA,EAAlB,EAAG,KAAK,GAAA,CAAA,CAAA,GAAA,IAAA,CAAA"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { $ as e, B as t, Et as n, Tt as r, U as i, W as a, X as o, Y as s, dt as c, f as l, g as u, k as d, pt as f } from "./icons-CYWw8Xfp.js";
|
|
2
|
-
//#region src/utils/blockTypeIcons.ts
|
|
3
|
-
var p = {
|
|
4
|
-
section: r,
|
|
5
|
-
title: f,
|
|
6
|
-
paragraph: a,
|
|
7
|
-
image: c,
|
|
8
|
-
button: t,
|
|
9
|
-
divider: e,
|
|
10
|
-
video: i,
|
|
11
|
-
social: d,
|
|
12
|
-
menu: s,
|
|
13
|
-
table: u,
|
|
14
|
-
spacer: o,
|
|
15
|
-
countdown: l,
|
|
16
|
-
html: n
|
|
17
|
-
};
|
|
18
|
-
//#endregion
|
|
19
|
-
export { p as t };
|
|
20
|
-
|
|
21
|
-
//# sourceMappingURL=blockTypeIcons-etMMQoVv.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fr-DBZ5w21C.js","names":[],"sources":["../../../src/i18n/locales/fr.ts"],"sourcesContent":["import type en from \"./en\";\n\nconst fr: typeof en = {\n footer: {\n poweredBy: \"Propulsé par\",\n openSource: \"Open Source\",\n },\n history: {\n undo: \"Annuler\",\n redo: \"Rétablir\",\n collabWarning:\n \"Annuler peut affecter les modifications récentes de vos collaborateurs\",\n },\n viewport: {\n label: \"Affichage\",\n desktop: \"Ordinateur\",\n mobile: \"Mobile\",\n },\n darkMode: {\n enable: \"Aperçu en mode sombre\",\n disable: \"Aperçu en mode clair\",\n },\n previewMode: {\n enable: \"Mode aperçu\",\n disable: \"Quitter l'aperçu\",\n },\n blocks: {\n section: \"Section\",\n image: \"Image\",\n title: \"Titre\",\n paragraph: \"Paragraphe\",\n button: \"Bouton\",\n divider: \"Séparateur\",\n video: \"Vidéo\",\n social: \"Réseaux sociaux\",\n spacer: \"Espaceur\",\n html: \"HTML\",\n menu: \"Menu\",\n table: \"Tableau\",\n countdown: \"Compte à rebours\",\n },\n sidebar: {\n content: \"Contenu\",\n settings: \"Paramètres\",\n noSelection: \"Aucun élément sélectionné\",\n noSelectionHint: \"Sélectionnez un bloc sur le canevas pour le modifier\",\n },\n toolbar: {\n duplicate: \"Dupliquer\",\n delete: \"Supprimer\",\n },\n titleEditor: {\n toolbar: \"Mise en forme du titre\",\n bold: \"Gras (Ctrl+B)\",\n italic: \"Italique (Ctrl+I)\",\n addLink: \"Ajouter un lien\",\n },\n paragraphEditor: {\n toolbar: \"Mise en forme du texte\",\n bold: \"Gras (Ctrl+B)\",\n italic: \"Italique (Ctrl+I)\",\n underline: \"Souligné (Ctrl+U)\",\n strikethrough: \"Barré\",\n subscript: \"Indice\",\n superscript: \"Exposant\",\n addLink: \"Ajouter un lien\",\n bulletList: \"Liste à puces\",\n numberedList: \"Liste numérotée\",\n alignLeft: \"Aligner à gauche\",\n alignCenter: \"Centrer\",\n alignRight: \"Aligner à droite\",\n clearFormatting: \"Effacer la mise en forme\",\n insertEmoji: \"Insérer un émoji\",\n fontFamily: \"Police\",\n defaultFont: \"Par défaut\",\n fontSize: \"Taille de police\",\n defaultSize: \"Par défaut\",\n textColor: \"Couleur du texte\",\n highlightColor: \"Couleur de surlignage\",\n lineHeight: \"Interligne\",\n letterSpacing: \"Espacement des lettres\",\n emojiItemLabel: \"Insérer l'émoji {emoji}\",\n closeEmojiPicker: \"Fermer le sélecteur d'émojis\",\n },\n blockActions: {\n drag: \"Faites glisser pour réorganiser, ou appuyez sur Espace pour déplacer au clavier\",\n dragLifted:\n \"Déplacement de {block}. Utilisez les flèches haut et bas pour repositionner, Espace ou Entrée pour déposer, Échap pour annuler.\",\n duplicate: \"Dupliquer le bloc\",\n delete: \"Supprimer le bloc\",\n hiddenOnViewport: \"Masqué sur {viewport}\",\n saveAsBlock: \"Enregistrer comme bloc\",\n conditionToggle: \"Basculer la condition d'affichage\",\n comments: \"Commentaires ({count})\",\n lifted: \"{block} saisi. Position {position} sur {total}.\",\n moved: \"{block} déplacé en position {position} sur {total}.\",\n dropped: \"{block} déposé en position {position} sur {total}.\",\n cancelled: \"Déplacement annulé. {block} est revenu en position {position}.\",\n },\n section: {\n dropHere: \"Déposez des blocs ici\",\n columns: \"Colonnes\",\n column1: \"1 colonne\",\n column2: \"2 colonnes\",\n column3: \"3 colonnes\",\n ratio12: \"Ratio 1:2\",\n ratio21: \"Ratio 2:1\",\n borderRadius: \"Rayon de bordure\",\n wrapperEnable: \"Ajouter un conteneur\",\n stackOnMobile: \"Empiler sur mobile\",\n },\n linkDialog: {\n editLink: \"Modifier le lien\",\n insertLink: \"Insérer un lien\",\n updateLink: \"Mettre à jour le lien\",\n removeLink: \"Supprimer le lien\",\n cancel: \"Annuler\",\n urlPlaceholder: \"https://example.com\",\n urlLabel: \"URL\",\n colorLabel: \"Couleur du lien\",\n },\n title: {\n level: \"Niveau de titre\",\n heading1: \"Titre 1 (36px)\",\n heading2: \"Titre 2 (28px)\",\n heading3: \"Titre 3 (22px)\",\n heading4: \"Titre 4 (18px)\",\n fontFamily: \"Police\",\n inheritFont: \"Utiliser la police du modèle\",\n color: \"Couleur\",\n align: \"Aligner\",\n alignLeft: \"Gauche\",\n alignCenter: \"Centre\",\n alignRight: \"Droite\",\n },\n emoji: {\n smileys: \"Smileys\",\n gestures: \"Gestes\",\n objects: \"Objets\",\n },\n image: {\n imageUrl: \"URL de l'image\",\n imageUrlPlaceholder: \"https://...\",\n altText: \"Texte alternatif\",\n altTextPlaceholder: \"Description de l'image\",\n width: \"Largeur\",\n fullWidth: \"Pleine largeur\",\n widthCustom: \"Personnalisée\",\n linkUrl: \"URL du lien\",\n openInNewTab: \"Ouvrir dans un nouvel onglet\",\n placeholderUrl: \"Image de substitution\",\n placeholderUrlPlaceholder: \"https://... (conception uniquement)\",\n placeholderUrlTooltip:\n \"L'URL de l'image utilisant une balise de fusion, vous pouvez fournir ici une vraie image pour prévisualiser la mise en page pendant la conception. Elle n'est pas incluse dans le résultat final.\",\n clickToAdd: \"Cliquez pour ajouter l'URL de l'image\",\n browseMedia: \"Parcourir la médiathèque\",\n dropToUpload: \"Déposez une image pour la téléverser\",\n uploading: \"Téléversement…\",\n decorative: \"Image décorative\",\n decorativeHint:\n \"Masquée pour les lecteurs d'écran. À réserver aux espaceurs et ornements visuels.\",\n },\n video: {\n videoUrl: \"URL de la vidéo\",\n videoUrlPlaceholder: \"https://youtube.com/...\",\n youtube: \"YouTube\",\n vimeo: \"Vimeo\",\n detected: \"Vidéo détectée — la miniature sera générée automatiquement\",\n openInNewTab: \"Ouvrir dans un nouvel onglet\",\n customThumbnail: \"Miniature personnalisée\",\n optional: \"(facultatif)\",\n thumbnailPlaceholder: \"Générée automatiquement depuis l'URL de la vidéo\",\n altText: \"Texte alternatif\",\n altTextPlaceholder: \"Description de la vidéo\",\n width: \"Largeur\",\n fullWidth: \"Pleine largeur\",\n placeholderUrl: \"Miniature de substitution\",\n placeholderUrlPlaceholder: \"https://... (conception uniquement)\",\n placeholderUrlTooltip:\n \"L'URL de la vidéo utilisant une balise de fusion, vous pouvez fournir ici une vraie miniature pour prévisualiser la mise en page pendant la conception. Elle n'est pas incluse dans le résultat final.\",\n addVideo: \"Ajoutez une URL de vidéo\",\n },\n button: {\n fontFamily: \"Police\",\n inheritFont: \"Utiliser la police du modèle\",\n text: \"Texte\",\n url: \"URL\",\n urlPlaceholder: \"https://...\",\n openInNewTab: \"Ouvrir dans un nouvel onglet\",\n background: \"Fond\",\n textColor: \"Couleur du texte\",\n borderRadius: \"Rayon de bordure\",\n fontSize: \"Taille de police\",\n width: \"Largeur\",\n widthAuto: \"Ajuster au contenu\",\n fullWidth: \"Pleine largeur\",\n widthCustom: \"Personnalisée\",\n },\n divider: {\n style: \"Style\",\n solid: \"Continu\",\n dashed: \"Tirets\",\n dotted: \"Pointillés\",\n color: \"Couleur\",\n thickness: \"Épaisseur\",\n },\n social: {\n icons: \"Icônes\",\n addIcon: \"Ajouter une icône\",\n addIcons: \"Ajoutez des icônes de réseaux sociaux\",\n removeIcon: \"Supprimer\",\n platform: \"Plateforme\",\n url: \"URL\",\n urlPlaceholder: \"https://...\",\n style: \"Style\",\n styleSolid: \"Plein\",\n styleOutlined: \"Contour\",\n styleRounded: \"Arrondi\",\n styleSquare: \"Carré\",\n styleCircle: \"Cercle\",\n size: \"Taille\",\n sizeSmall: \"S\",\n sizeMedium: \"M\",\n sizeLarge: \"L\",\n spacing: \"Espacement\",\n align: \"Alignement\",\n platforms: {\n facebook: \"Facebook\",\n twitter: \"X (Twitter)\",\n instagram: \"Instagram\",\n linkedin: \"LinkedIn\",\n youtube: \"YouTube\",\n tiktok: \"TikTok\",\n pinterest: \"Pinterest\",\n email: \"E-mail\",\n website: \"Site web\",\n whatsapp: \"WhatsApp\",\n telegram: \"Telegram\",\n discord: \"Discord\",\n snapchat: \"Snapchat\",\n reddit: \"Reddit\",\n github: \"GitHub\",\n dribbble: \"Dribbble\",\n behance: \"Behance\",\n },\n },\n menu: {\n items: \"Éléments du menu\",\n addItem: \"Ajouter un élément\",\n removeItem: \"Supprimer\",\n text: \"Texte\",\n url: \"URL\",\n urlPlaceholder: \"https://example.com\",\n openInNewTab: \"Ouvrir dans un nouvel onglet\",\n bold: \"Gras\",\n underline: \"Souligné\",\n color: \"Couleur\",\n linkColor: \"Couleur des liens\",\n fontSize: \"Taille de police\",\n fontFamily: \"Police\",\n separator: \"Séparateur\",\n separatorColor: \"Couleur du séparateur\",\n spacing: \"Espacement\",\n textAlign: \"Alignement\",\n addLinks: \"Ajoutez des liens de menu\",\n },\n table: {\n dimensions: \"Dimensions\",\n rows: \"Lignes\",\n columns: \"Colonnes\",\n addRow: \"Ajouter une ligne\",\n removeRow: \"Supprimer la ligne\",\n addColumn: \"Ajouter une colonne\",\n removeColumn: \"Supprimer la colonne\",\n hasHeaderRow: \"Ligne d'en-tête\",\n headerBackgroundColor: \"Fond de l'en-tête\",\n noHeaderBg: \"Sans fond\",\n borderColor: \"Couleur de bordure\",\n borderWidth: \"Épaisseur de bordure\",\n cellPadding: \"Marge intérieure des cellules\",\n fontFamily: \"Police\",\n fontSize: \"Taille de police\",\n color: \"Couleur du texte\",\n textAlign: \"Alignement\",\n cellPlaceholder: \"Saisissez du texte...\",\n empty: \"Ajoutez un tableau\",\n },\n spacer: {\n height: \"Hauteur\",\n },\n countdown: {\n targetDate: \"Date cible\",\n timezone: \"Fuseau horaire\",\n display: \"Affichage\",\n days: \"Jours\",\n hours: \"Heures\",\n minutes: \"Minutes\",\n seconds: \"Secondes\",\n separator: \"Séparateur\",\n fontFamily: \"Police\",\n inheritFont: \"Par défaut\",\n digitFontSize: \"Taille des chiffres\",\n digitColor: \"Couleur des chiffres\",\n labelColor: \"Couleur des libellés\",\n labelFontSize: \"Taille des libellés\",\n background: \"Fond\",\n labels: \"Libellés\",\n expiry: \"Message d'expiration\",\n expiredMessagePlaceholder: \"Cette offre a expiré\",\n expiredImageUrl: \"URL de l'image d'expiration\",\n hideOnExpiry: \"Masquer à l'expiration\",\n setDate: \"Définissez une date cible dans le panneau des paramètres\",\n hidden: \"Masqué (expiré)\",\n },\n customBlocks: {\n definitionNotFound: \"Type de bloc inconnu — ce bloc n'est pas enregistré\",\n renderError:\n \"Ce bloc n'a pas pu être rendu. Vérifiez les erreurs dans le modèle du bloc.\",\n fields: {\n required: \"Obligatoire\",\n addItem: \"Ajouter un élément\",\n removeItem: \"Supprimer\",\n maxItemsReached: \"Nombre maximal d'éléments atteint\",\n minItemsRequired: \"Minimum {count} éléments requis\",\n },\n toolbar: {\n noDefinition:\n \"Enregistrez ce type de bloc dans la configuration du SDK pour modifier ses propriétés\",\n },\n dataSource: {\n fetchButton: \"Charger le contenu\",\n changeButton: \"Changer\",\n fetching: \"Chargement...\",\n readOnlyTooltip: \"Cette valeur provient de votre source de données\",\n fetchError: \"Échec du chargement du contenu\",\n },\n },\n html: {\n content: \"Contenu HTML\",\n preview: \"Bloc HTML personnalisé\",\n empty: \"Ajoutez du contenu HTML dans le panneau\",\n sanitizationHint:\n \"Le HTML est exporté tel quel, sans assainissement — assurez-vous que le contenu est sûr.\",\n },\n blockSettings: {\n spacing: \"Espacement\",\n padding: \"Marge intérieure\",\n background: \"Fond\",\n color: \"Couleur\",\n display: \"Affichage\",\n showOnDesktop: \"Afficher sur ordinateur\",\n showOnMobile: \"Afficher sur mobile\",\n hiddenOnDevice: \"Masqué sur {device}\",\n displayCondition: \"Condition d'affichage\",\n selectCondition: \"Sélectionner une condition\",\n removeCondition: \"Supprimer la condition\",\n noCondition: \"Toujours visible\",\n conditionApplied: \"Condition appliquée\",\n customCondition: \"Condition personnalisée\",\n customConditionLabel: \"Nom de la condition\",\n customConditionBefore: \"Avant (logique d'ouverture)\",\n customConditionAfter: \"Après (logique de fermeture)\",\n applyCondition: \"Appliquer\",\n cancelCondition: \"Annuler\",\n customBadge: \"Personnalisée\",\n restoreHiddenBlocks: \"Afficher tous les blocs masqués\",\n },\n templateSettings: {\n layout: \"Mise en page\",\n widthPreset: \"Largeur prédéfinie\",\n customWidth: \"Largeur personnalisée\",\n appearance: \"Apparence\",\n backgroundColor: \"Couleur de fond\",\n textColor: \"Couleur du texte\",\n linkColor: \"Couleur des liens\",\n linkUnderline: \"Souligner les liens\",\n fontFamily: \"Police\",\n preheaderText: \"Texte d'aperçu (preheader)\",\n preheaderTextPlaceholder:\n \"Texte d'aperçu affiché après l'objet dans la boîte de réception...\",\n preheaderTextHint:\n \"Ce texte apparaît après l'objet dans les aperçus des clients de messagerie. Les balises de fusion sont prises en charge.\",\n language: \"Langue\",\n contentLocale: \"Langue du contenu\",\n contentLocaleHint:\n \"Code BCP 47 (ex. fr, de, pt-BR). Définit l'attribut lang de l'e-mail rendu pour que les lecteurs d'écran prononcent correctement le contenu.\",\n tips: \"Conseils\",\n tip1: \"600px est la largeur standard des modèles d'e-mail\",\n tip2: \"Utilisez des polices web sûres pour une compatibilité maximale\",\n tip3: \"Les fonds clairs offrent la meilleure lisibilité\",\n },\n spacingControl: {\n lockAll: \"Verrouiller tous les côtés\",\n unlock: \"Déverrouiller les côtés\",\n top: \"Haut\",\n right: \"Droite\",\n bottom: \"Bas\",\n left: \"Gauche\",\n decreaseTop: \"Réduire en haut\",\n increaseTop: \"Augmenter en haut\",\n decreaseLeft: \"Réduire à gauche\",\n increaseLeft: \"Augmenter à gauche\",\n decreaseRight: \"Réduire à droite\",\n increaseRight: \"Augmenter à droite\",\n decreaseBottom: \"Réduire en bas\",\n increaseBottom: \"Augmenter en bas\",\n },\n colorPicker: {\n pickColor: \"Choisir une couleur\",\n hexValue: \"Valeur hexadécimale de la couleur\",\n notSet: \"Non définie\",\n clear: \"Effacer la couleur\",\n presetColors: \"Couleurs prédéfinies\",\n },\n mergeTag: {\n clickToEdit: \"Cliquez pour modifier\",\n remove: \"Supprimer la balise de fusion\",\n insert: \"Insérer une balise de fusion\",\n insertShort: \"Balise de fusion\",\n editValue: \"Modifier la valeur de la balise de fusion\",\n deleteMergeTag: \"Supprimer la balise de fusion\",\n suggestionEmpty: \"Aucune balise de fusion correspondante\",\n picker: {\n title: \"Insérer une balise de fusion\",\n searchPlaceholder: \"Rechercher des balises de fusion\",\n searchAriaLabel: \"Rechercher des balises de fusion\",\n noResults: \"Aucune balise de fusion correspondante\",\n empty: \"Aucune balise de fusion configurée\",\n otherGroup: \"Autres\",\n cancel: \"Annuler\",\n close: \"Fermer\",\n groupCount: \"{count}\",\n },\n },\n logicTag: {\n insert: \"Insérer une logique\",\n insertShort: \"Logique\",\n picker: {\n title: \"Insérer une logique\",\n searchPlaceholder: \"Rechercher des balises logiques\",\n searchAriaLabel: \"Rechercher des balises logiques\",\n noResults: \"Aucune balise logique correspondante\",\n empty: \"Aucune balise logique configurée\",\n otherGroup: \"Autres\",\n close: \"Fermer\",\n },\n },\n canvas: {\n noBlocks: \"Aucun bloc pour l'instant\",\n dragHint:\n \"Partez de zéro en faisant glisser des blocs depuis la barre latérale\",\n dropHere: \"Déposez ici\",\n aiHintChat: \"ou laissez\",\n aiHintChatSuffix:\n \"générer un modèle complet pour vous en quelques secondes\",\n aiHintDesign:\n \"Vous avez déjà un design ? Téléversez une capture d'écran, une image ou un PDF et\",\n aiHintDesignSuffix: \"le recréera instantanément\",\n },\n mediaLibrary: {\n title: \"Médiathèque\",\n searchPlaceholder: \"Rechercher des fichiers...\",\n allFiles: \"Tous les fichiers\",\n filterAll: \"Tous les types\",\n filterImages: \"Images\",\n filterDocuments: \"Documents\",\n filterVideos: \"Vidéos\",\n filterAudio: \"Audio\",\n newFolder: \"Nouveau dossier\",\n folderName: \"Nom du dossier\",\n noFiles: \"Aucun fichier trouvé\",\n dropOrClick: \"Déposez des fichiers ici ou cliquez pour téléverser\",\n acceptedFormats: \"Images, PDF, vidéo, audio, documents (max 10 Mo)\",\n uploading: \"Téléversement...\",\n uploadingProgress: \"Téléversement de {current} sur {total}...\",\n selectImage: \"Sélectionner l'image\",\n selectFile: \"Sélectionner le fichier\",\n deleteSelected: \"Supprimer\",\n copyUrl: \"Copier l'URL\",\n copied: \"Copié !\",\n browseMedia: \"Parcourir la médiathèque\",\n renameFolder: \"Renommer le dossier\",\n addSubfolder: \"Ajouter un sous-dossier\",\n subfolderName: \"Nom du sous-dossier\",\n sortNewest: \"Plus récents d'abord\",\n sortOldest: \"Plus anciens d'abord\",\n sortNameAsc: \"Nom A-Z\",\n sortNameDesc: \"Nom Z-A\",\n sortSizeAsc: \"Plus petits d'abord\",\n sortSizeDesc: \"Plus grands d'abord\",\n moveSelected: \"Déplacer\",\n moveToRoot: \"Tous les fichiers\",\n currentFolder: \"(actuel)\",\n confirmDelete: \"Supprimer ce fichier ?\",\n renameFile: \"Renommer\",\n editFile: \"Modifier le fichier\",\n fileName: \"Nom de fichier\",\n altText: \"Texte alternatif\",\n altTextPlaceholder: \"Décrivez cette image pour l'accessibilité\",\n saveChanges: \"Enregistrer\",\n cancel: \"Annuler\",\n frequentlyUsed: \"Fréquemment utilisés\",\n deleteWarningTitle: \"Supprimer le fichier\",\n deleteWarningMessage:\n \"Ce fichier sera définitivement supprimé et ne pourra pas être récupéré.\",\n deleteWarningUsageNote:\n \"Les fichiers suivants sont utilisés dans des modèles. Les supprimer peut casser ces modèles.\",\n deleteAnyway: \"Supprimer le fichier\",\n usedInTemplates: \"Utilisé dans {count} modèle(s)\",\n viewGrid: \"Vue en grille\",\n viewList: \"Vue en liste\",\n showFolders: \"Afficher les dossiers\",\n hideFolders: \"Masquer les dossiers\",\n importFromUrl: \"Importer depuis une URL\",\n importUrlPlaceholder: \"https://example.com/image.jpg\",\n import: \"Importer\",\n importing: \"Importation...\",\n importError: \"Échec de l'importation depuis l'URL\",\n conversionLabel: \"Taille\",\n conversionOriginal: \"Originale\",\n conversionSmall: \"Petite (150px)\",\n conversionMedium: \"Moyenne (600px)\",\n conversionLarge: \"Grande (1200px)\",\n replaceFile: \"Remplacer le fichier\",\n replaceWarningTitle: \"Remplacer le fichier\",\n replaceWarningMessage:\n \"Vous êtes sur le point de remplacer ce fichier. Le remplacement doit avoir la même extension ({extension}).\",\n replaceWarningUsageNote:\n \"Ce fichier est utilisé dans {count} modèle(s). Le remplacer mettra à jour toutes les références.\",\n replaceSelectFile: \"Sélectionner le fichier de remplacement\",\n replace: \"Remplacer\",\n replacing: \"Remplacement...\",\n replaceError: \"Échec du remplacement du fichier\",\n saving: \"Enregistrement...\",\n cropAspectRatio: \"Proportions\",\n cropFree: \"Libre\",\n cropSquare: \"1:1\",\n cropLandscape43: \"4:3\",\n cropLandscape169: \"16:9\",\n cropOriginal: \"Originales\",\n cropMaxWidth: \"Largeur max\",\n cropMaxHeight: \"Hauteur max\",\n cropOutputSize: \"Taille de sortie\",\n cropPixels: \"px\",\n cropOptional: \"(facultatif)\",\n storageTooltip: \"{used} sur {total} utilisés ({remaining} restants)\",\n },\n savedBlocks: {\n title: \"Blocs enregistrés\",\n saveAsBlock: \"Enregistrer comme bloc\",\n name: \"Nom\",\n namePlaceholder: \"p. ex. En-tête, Pied de page, CTA...\",\n save: \"Enregistrer le bloc\",\n saving: \"Enregistrement...\",\n cancel: \"Annuler\",\n empty: \"Aucun bloc enregistré pour l'instant\",\n emptyHint:\n \"Enregistrez des blocs depuis vos modèles pour les réutiliser plus tard.\",\n noResults: \"Aucun bloc enregistré ne correspond à votre recherche\",\n search: \"Rechercher des blocs enregistrés...\",\n loading: \"Chargement des blocs enregistrés…\",\n category: \"Catégorie\",\n categoryPlaceholder: \"p. ex. En-têtes, Promos... (facultatif)\",\n allCategories: \"Toutes les catégories\",\n filterByCategory: \"Filtrer par catégorie\",\n insert: \"Insérer\",\n rename: \"Renommer\",\n delete: \"Supprimer\",\n deleteConfirm: \"Supprimer ce bloc enregistré ?\",\n blockCount: \"{count} bloc(s)\",\n browse: \"Parcourir les blocs enregistrés\",\n selectToPreview: \"Sélectionnez un bloc enregistré pour l'afficher\",\n insertAtBeginning: \"Au début\",\n insertAfterBlock: \"Après {block}\",\n insertAtEnd: \"À la fin\",\n insertPosition: \"Position d'insertion\",\n close: \"Fermer\",\n pickToolbar: \"Sélection de blocs à enregistrer\",\n pickCount: \"{count} bloc(s) sélectionné(s)\",\n pickHint: \"Cliquez sur les blocs pour les ajouter ou les retirer\",\n savingCount: \"Enregistrement de {count} bloc(s) :\",\n reorderHint:\n \"Glissez pour réordonner — les blocs sont enregistrés dans cet ordre\",\n reorderHandle: \"Réordonner {block}, position {position} sur {total}\",\n reorderAnnouncement: \"{block} déplacé en position {position} sur {total}\",\n expand: \"Développer\",\n collapse: \"Réduire\",\n expandPreview: \"Développer l'aperçu de {block}\",\n collapsePreview: \"Réduire l'aperçu de {block}\",\n time: {\n justNow: \"À l'instant\",\n minutesAgo: \"il y a {minutes} min\",\n hoursAgo: \"il y a {hours} h\",\n daysAgo: \"il y a {days} j\",\n },\n },\n testEmail: {\n title: \"Envoyer un e-mail de test\",\n recipientLabel: \"Destinataire\",\n recipientPlaceholder: \"vous@exemple.fr\",\n invalidAddress: \"Saisissez une adresse e-mail valide.\",\n preview: \"Aperçu\",\n previewHint:\n \"Les balises de fusion sont affichées non résolues — votre backend les remplace.\",\n recipientNotAllowed:\n \"Cette adresse ne figure pas dans la liste des destinataires autorisés.\",\n send: \"Envoyer\",\n sending: \"Envoi en cours...\",\n cancel: \"Annuler\",\n success: \"E-mail de test envoyé avec succès\",\n button: \"Test\",\n },\n sidebarNav: {\n browseSavedBlocks: \"Parcourir les blocs enregistrés\",\n expandSidebar: \"Développer la barre latérale des blocs\",\n palette: \"Palette de blocs\",\n insertBlock: \"Insérer un bloc {block}\",\n },\n landmarks: {\n canvas: \"Canevas de l'e-mail\",\n blockToolbar: \"Propriétés du bloc\",\n rightSidebar: \"Propriétés du bloc et paramètres du modèle\",\n reorderAnnouncements: \"Annonces de réorganisation des blocs\",\n },\n errors: {\n editorLoading: \"Chargement de l'éditeur...\",\n editorLoadFailed: \"Échec du chargement de l'éditeur.\",\n retry: \"Réessayer\",\n },\n issues: {\n panelTitle: \"Problèmes\",\n panelTabLabel: \"Problèmes\",\n groupErrors: \"Erreurs\",\n groupWarnings: \"Avertissements\",\n groupInfo: \"Infos\",\n jump: \"Aller au bloc\",\n fix: \"Corriger\",\n emptyState: \"Aucun problème — tout va bien.\",\n badgeError: \"Contient des erreurs\",\n badgeWarning: \"Contient des avertissements\",\n issueCountTooltip: \"{count} problème(s)\",\n },\n smallScreen: {\n title: \"Écran plus grand requis\",\n message:\n \"L'éditeur a besoin de plus d'espace que cet écran n'en offre. Ouvrez-le sur une tablette ou un ordinateur pour commencer à modifier.\",\n },\n};\n\nexport default fr;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icons-CYWw8Xfp.js","names":["__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode"],"sources":["../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/shared/src/utils/isEmptyString.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/shared/src/utils/mergeClasses.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/shared/src/utils/toKebabCase.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/shared/src/utils/toCamelCase.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/shared/src/utils/toPascalCase.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/defaultAttributes.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/context.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/createLucideIcon.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/arrow-right.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/bold.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/bookmark.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/box.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/braces.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/check.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/chevron-down.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/chevron-left.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/chevron-right.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/chevron-up.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/circle-alert.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/circle-check.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/circle.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/clock.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/code.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/columns-3.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/copy.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/eye-off.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/eye.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/file-image.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/file-text.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/file.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/folder.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/funnel.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/globe.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/grid-2x2.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/grip-vertical.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/heading.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/image-up.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/image.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/info.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/italic.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/layout-template.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/link.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/list-checks.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/list-ordered.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/list.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/loader-circle.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/lock-open.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/lock.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/message-circle.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/minus.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/monitor.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/moon.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/move-vertical.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/navigation.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/package.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/panel-left.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/panel-top.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/pencil.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/pilcrow.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/play.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/plus.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/puzzle.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/rectangle-horizontal.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/redo-2.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/refresh-cw.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/remove-formatting.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/reply.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/rotate-ccw.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/save.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/scan-line.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/search.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/send.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/settings.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/share-2.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/shield-check.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/shield-x.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/smartphone.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/smile.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/sparkles.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/square-plus.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/square.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/star.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/subscript.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/strikethrough.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/sun.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/superscript.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/table.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/text-align-center.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/text-align-end.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/text-align-start.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/timer.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/trash-2.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/triangle-alert.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/underline.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/undo-2.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/upload.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/video.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/wifi-off.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/wifi.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/wrench.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/x.mjs","../../../../../node_modules/.pnpm/@lucide+vue@1.27.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/icons/zap.mjs"],"sourcesContent":["/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst isEmptyString = (value) => value === \"\";\n\nexport { isEmptyString };\n//# sourceMappingURL=isEmptyString.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses };\n//# sourceMappingURL=mergeClasses.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { toKebabCase };\n//# sourceMappingURL=toKebabCase.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\n\nexport { toCamelCase };\n//# sourceMappingURL=toCamelCase.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { toCamelCase } from './toCamelCase.mjs';\n\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\n\nexport { toPascalCase };\n//# sourceMappingURL=toPascalCase.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": 2,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { provide, inject } from 'vue';\n\nconst LUCIDE_CONTEXT = /* @__PURE__ */ Symbol(\"lucide-icons\");\nfunction setLucideProps(props) {\n return provide(LUCIDE_CONTEXT, props);\n}\nfunction useLucideProps() {\n return inject(LUCIDE_CONTEXT, {});\n}\n\nexport { LUCIDE_CONTEXT, setLucideProps, useLucideProps };\n//# sourceMappingURL=context.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { computed, h } from 'vue';\nimport { isEmptyString } from './shared/src/utils/isEmptyString.mjs';\nimport { mergeClasses } from './shared/src/utils/mergeClasses.mjs';\nimport { toKebabCase } from './shared/src/utils/toKebabCase.mjs';\nimport { toPascalCase } from './shared/src/utils/toPascalCase.mjs';\nimport defaultAttributes from './defaultAttributes.mjs';\nimport { useLucideProps } from './context.mjs';\n\nconst Icon = ({\n name,\n iconNode,\n \"icon-node\": iconNodeKebabCase,\n absoluteStrokeWidth,\n \"absolute-stroke-width\": absoluteStrokeWidthKebabCase,\n strokeWidth,\n \"stroke-width\": strokeWidthKebabCase,\n size,\n color,\n ...props\n}, { slots }) => {\n const {\n size: contextSize,\n color: contextColor,\n strokeWidth: contextStrokeWidth = 2,\n absoluteStrokeWidth: contextAbsoluteStrokeWidth = false,\n class: contextClass = \"\"\n } = useLucideProps();\n const calculatedStrokeWidth = computed(() => {\n const isAbsoluteStrokeWidth = isEmptyString(absoluteStrokeWidth) || isEmptyString(absoluteStrokeWidthKebabCase) || absoluteStrokeWidth === true || absoluteStrokeWidthKebabCase === true || contextAbsoluteStrokeWidth === true;\n const strokeWidthValue = strokeWidth || strokeWidthKebabCase || contextStrokeWidth || defaultAttributes[\"stroke-width\"];\n if (isAbsoluteStrokeWidth) {\n return Number(strokeWidthValue) * 24 / Number(size ?? contextSize ?? defaultAttributes.width);\n }\n return strokeWidthValue;\n });\n return h(\n \"svg\",\n {\n ...defaultAttributes,\n ...props,\n width: size ?? contextSize ?? defaultAttributes.width,\n height: size ?? contextSize ?? defaultAttributes.height,\n stroke: color ?? contextColor ?? defaultAttributes.stroke,\n \"stroke-width\": calculatedStrokeWidth.value,\n class: mergeClasses(\n \"lucide\",\n contextClass,\n ...name ? [`lucide-${toKebabCase(toPascalCase(name))}-icon`, `lucide-${toKebabCase(name)}`] : [\"lucide-icon\"]\n )\n },\n [\n ...(iconNode ?? iconNodeKebabCase ?? []).map((child) => h(...child)),\n ...slots.default ? [slots.default()] : []\n ]\n );\n};\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { h } from 'vue';\nimport Icon from './Icon.mjs';\n\nconst createLucideIcon = (iconName, iconNode) => (props, { slots, attrs }) => h(\n Icon,\n {\n ...attrs,\n ...props,\n iconNode,\n name: iconName\n },\n slots.default ? { default: slots.default } : void 0\n);\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode);\n\nexport { __iconNode, ArrowRight as default };\n//# sourceMappingURL=arrow-right.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n { d: \"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8\", key: \"mg9rjx\" }\n ]\n];\nconst Bold = createLucideIcon(\"bold\", __iconNode);\n\nexport { __iconNode, Bold as default };\n//# sourceMappingURL=bold.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z\",\n key: \"oz39mx\"\n }\n ]\n];\nconst Bookmark = createLucideIcon(\"bookmark\", __iconNode);\n\nexport { __iconNode, Bookmark as default };\n//# sourceMappingURL=bookmark.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\",\n key: \"hh9hay\"\n }\n ],\n [\"path\", { d: \"m3.3 7 8.7 5 8.7-5\", key: \"g66t2b\" }],\n [\"path\", { d: \"M12 22V12\", key: \"d0xqtd\" }]\n];\nconst Box = createLucideIcon(\"box\", __iconNode);\n\nexport { __iconNode, Box as default };\n//# sourceMappingURL=box.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n { d: \"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1\", key: \"ezmyqa\" }\n ],\n [\n \"path\",\n {\n d: \"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\",\n key: \"e1hn23\"\n }\n ]\n];\nconst Braces = createLucideIcon(\"braces\", __iconNode);\n\nexport { __iconNode, Braces as default };\n//# sourceMappingURL=braces.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"m15 18-6-6 6-6\", key: \"1wnfg3\" }]];\nconst ChevronLeft = createLucideIcon(\"chevron-left\", __iconNode);\n\nexport { __iconNode, ChevronLeft as default };\n//# sourceMappingURL=chevron-left.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]];\nconst ChevronUp = createLucideIcon(\"chevron-up\", __iconNode);\n\nexport { __iconNode, ChevronUp as default };\n//# sourceMappingURL=chevron-up.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n];\nconst CircleAlert = createLucideIcon(\"circle-alert\", __iconNode);\n\nexport { __iconNode, CircleAlert as default };\n//# sourceMappingURL=circle-alert.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n];\nconst CircleCheck = createLucideIcon(\"circle-check\", __iconNode);\n\nexport { __iconNode, CircleCheck as default };\n//# sourceMappingURL=circle-check.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 6v6l4 2\", key: \"mmk7yg\" }]\n];\nconst Clock = createLucideIcon(\"clock\", __iconNode);\n\nexport { __iconNode, Clock as default };\n//# sourceMappingURL=clock.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 18 6-6-6-6\", key: \"eg8j8\" }],\n [\"path\", { d: \"m8 6-6 6 6 6\", key: \"ppft3o\" }]\n];\nconst Code = createLucideIcon(\"code\", __iconNode);\n\nexport { __iconNode, Code as default };\n//# sourceMappingURL=code.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }],\n [\"path\", { d: \"M15 3v18\", key: \"14nvp0\" }]\n];\nconst Columns3 = createLucideIcon(\"columns-3\", __iconNode);\n\nexport { __iconNode, Columns3 as default };\n//# sourceMappingURL=columns-3.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n];\nconst Copy = createLucideIcon(\"copy\", __iconNode);\n\nexport { __iconNode, Copy as default };\n//# sourceMappingURL=copy.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n];\nconst EyeOff = createLucideIcon(\"eye-off\", __iconNode);\n\nexport { __iconNode, EyeOff as default };\n//# sourceMappingURL=eye-off.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Eye = createLucideIcon(\"eye\", __iconNode);\n\nexport { __iconNode, Eye as default };\n//# sourceMappingURL=eye.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"circle\", { cx: \"10\", cy: \"12\", r: \"2\", key: \"737tya\" }],\n [\"path\", { d: \"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22\", key: \"wt3hpn\" }]\n];\nconst FileImage = createLucideIcon(\"file-image\", __iconNode);\n\nexport { __iconNode, FileImage as default };\n//# sourceMappingURL=file-image.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n];\nconst FileText = createLucideIcon(\"file-text\", __iconNode);\n\nexport { __iconNode, FileText as default };\n//# sourceMappingURL=file-text.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }]\n];\nconst File = createLucideIcon(\"file\", __iconNode);\n\nexport { __iconNode, File as default };\n//# sourceMappingURL=file.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ]\n];\nconst Folder = createLucideIcon(\"folder\", __iconNode);\n\nexport { __iconNode, Folder as default };\n//# sourceMappingURL=folder.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z\",\n key: \"sc7q7i\"\n }\n ]\n];\nconst Funnel = createLucideIcon(\"funnel\", __iconNode);\n\nexport { __iconNode, Funnel as default };\n//# sourceMappingURL=funnel.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\", key: \"13o1zl\" }],\n [\"path\", { d: \"M2 12h20\", key: \"9i4pu4\" }]\n];\nconst Globe = createLucideIcon(\"globe\", __iconNode);\n\nexport { __iconNode, Globe as default };\n//# sourceMappingURL=globe.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v18\", key: \"108xh3\" }],\n [\"path\", { d: \"M3 12h18\", key: \"1i2n21\" }],\n [\"rect\", { x: \"3\", y: \"3\", width: \"18\", height: \"18\", rx: \"2\", key: \"h1oib\" }]\n];\nconst Grid2x2 = createLucideIcon(\"grid-2x2\", __iconNode);\n\nexport { __iconNode, Grid2x2 as default };\n//# sourceMappingURL=grid-2x2.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"9\", cy: \"12\", r: \"1\", key: \"1vctgf\" }],\n [\"circle\", { cx: \"9\", cy: \"5\", r: \"1\", key: \"hp0tcf\" }],\n [\"circle\", { cx: \"9\", cy: \"19\", r: \"1\", key: \"fkjjf6\" }],\n [\"circle\", { cx: \"15\", cy: \"12\", r: \"1\", key: \"1tmaij\" }],\n [\"circle\", { cx: \"15\", cy: \"5\", r: \"1\", key: \"19l28e\" }],\n [\"circle\", { cx: \"15\", cy: \"19\", r: \"1\", key: \"f4zoj3\" }]\n];\nconst GripVertical = createLucideIcon(\"grip-vertical\", __iconNode);\n\nexport { __iconNode, GripVertical as default };\n//# sourceMappingURL=grip-vertical.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M6 12h12\", key: \"8npq4p\" }],\n [\"path\", { d: \"M6 20V4\", key: \"1w1bmo\" }],\n [\"path\", { d: \"M18 20V4\", key: \"o2hl4u\" }]\n];\nconst Heading = createLucideIcon(\"heading\", __iconNode);\n\nexport { __iconNode, Heading as default };\n//# sourceMappingURL=heading.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21\",\n key: \"9csbqa\"\n }\n ],\n [\"path\", { d: \"m14 19.5 3-3 3 3\", key: \"9vmjn0\" }],\n [\"path\", { d: \"M17 22v-5.5\", key: \"1aa6fl\" }],\n [\"circle\", { cx: \"9\", cy: \"9\", r: \"2\", key: \"af1f0g\" }]\n];\nconst ImageUp = createLucideIcon(\"image-up\", __iconNode);\n\nexport { __iconNode, ImageUp as default };\n//# sourceMappingURL=image-up.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }],\n [\"circle\", { cx: \"9\", cy: \"9\", r: \"2\", key: \"af1f0g\" }],\n [\"path\", { d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\", key: \"1xmnt7\" }]\n];\nconst Image = createLucideIcon(\"image\", __iconNode);\n\nexport { __iconNode, Image as default };\n//# sourceMappingURL=image.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n];\nconst Info = createLucideIcon(\"info\", __iconNode);\n\nexport { __iconNode, Info as default };\n//# sourceMappingURL=info.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"line\", { x1: \"19\", x2: \"10\", y1: \"4\", y2: \"4\", key: \"15jd3p\" }],\n [\"line\", { x1: \"14\", x2: \"5\", y1: \"20\", y2: \"20\", key: \"bu0au3\" }],\n [\"line\", { x1: \"15\", x2: \"9\", y1: \"4\", y2: \"20\", key: \"uljnxc\" }]\n];\nconst Italic = createLucideIcon(\"italic\", __iconNode);\n\nexport { __iconNode, Italic as default };\n//# sourceMappingURL=italic.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"7\", x: \"3\", y: \"3\", rx: \"1\", key: \"f1a2em\" }],\n [\"rect\", { width: \"9\", height: \"7\", x: \"3\", y: \"14\", rx: \"1\", key: \"jqznyg\" }],\n [\"rect\", { width: \"5\", height: \"7\", x: \"16\", y: \"14\", rx: \"1\", key: \"q5h2i8\" }]\n];\nconst LayoutTemplate = createLucideIcon(\"layout-template\", __iconNode);\n\nexport { __iconNode, LayoutTemplate as default };\n//# sourceMappingURL=layout-template.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\", key: \"1cjeqo\" }],\n [\"path\", { d: \"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\", key: \"19qd67\" }]\n];\nconst Link = createLucideIcon(\"link\", __iconNode);\n\nexport { __iconNode, Link as default };\n//# sourceMappingURL=link.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M13 5h8\", key: \"a7qcls\" }],\n [\"path\", { d: \"M13 12h8\", key: \"h98zly\" }],\n [\"path\", { d: \"M13 19h8\", key: \"c3s6r1\" }],\n [\"path\", { d: \"m3 17 2 2 4-4\", key: \"1jhpwq\" }],\n [\"path\", { d: \"m3 7 2 2 4-4\", key: \"1obspn\" }]\n];\nconst ListChecks = createLucideIcon(\"list-checks\", __iconNode);\n\nexport { __iconNode, ListChecks as default };\n//# sourceMappingURL=list-checks.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M11 5h10\", key: \"1cz7ny\" }],\n [\"path\", { d: \"M11 12h10\", key: \"1438ji\" }],\n [\"path\", { d: \"M11 19h10\", key: \"11t30w\" }],\n [\"path\", { d: \"M4 4h1v5\", key: \"10yrso\" }],\n [\"path\", { d: \"M4 9h2\", key: \"r1h2o0\" }],\n [\"path\", { d: \"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02\", key: \"xtkcd5\" }]\n];\nconst ListOrdered = createLucideIcon(\"list-ordered\", __iconNode);\n\nexport { __iconNode, ListOrdered as default };\n//# sourceMappingURL=list-ordered.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 5h.01\", key: \"18ugdj\" }],\n [\"path\", { d: \"M3 12h.01\", key: \"nlz23k\" }],\n [\"path\", { d: \"M3 19h.01\", key: \"noohij\" }],\n [\"path\", { d: \"M8 5h13\", key: \"1pao27\" }],\n [\"path\", { d: \"M8 12h13\", key: \"1za7za\" }],\n [\"path\", { d: \"M8 19h13\", key: \"m83p4d\" }]\n];\nconst List = createLucideIcon(\"list\", __iconNode);\n\nexport { __iconNode, List as default };\n//# sourceMappingURL=list.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"11\", x: \"3\", y: \"11\", rx: \"2\", ry: \"2\", key: \"1w4ew1\" }],\n [\"path\", { d: \"M7 11V7a5 5 0 0 1 9.9-1\", key: \"1mm8w8\" }]\n];\nconst LockOpen = createLucideIcon(\"lock-open\", __iconNode);\n\nexport { __iconNode, LockOpen as default };\n//# sourceMappingURL=lock-open.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"11\", x: \"3\", y: \"11\", rx: \"2\", ry: \"2\", key: \"1w4ew1\" }],\n [\"path\", { d: \"M7 11V7a5 5 0 0 1 10 0v4\", key: \"fwvmzm\" }]\n];\nconst Lock = createLucideIcon(\"lock\", __iconNode);\n\nexport { __iconNode, Lock as default };\n//# sourceMappingURL=lock.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719\",\n key: \"1sd12s\"\n }\n ]\n];\nconst MessageCircle = createLucideIcon(\"message-circle\", __iconNode);\n\nexport { __iconNode, MessageCircle as default };\n//# sourceMappingURL=message-circle.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }]];\nconst Minus = createLucideIcon(\"minus\", __iconNode);\n\nexport { __iconNode, Minus as default };\n//# sourceMappingURL=minus.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"20\", height: \"14\", x: \"2\", y: \"3\", rx: \"2\", key: \"48i651\" }],\n [\"line\", { x1: \"8\", x2: \"16\", y1: \"21\", y2: \"21\", key: \"1svkeh\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"17\", y2: \"21\", key: \"vw1qmm\" }]\n];\nconst Monitor = createLucideIcon(\"monitor\", __iconNode);\n\nexport { __iconNode, Monitor as default };\n//# sourceMappingURL=monitor.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\",\n key: \"kfwtm\"\n }\n ]\n];\nconst Moon = createLucideIcon(\"moon\", __iconNode);\n\nexport { __iconNode, Moon as default };\n//# sourceMappingURL=moon.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 2v20\", key: \"t6zp3m\" }],\n [\"path\", { d: \"m8 18 4 4 4-4\", key: \"bh5tu3\" }],\n [\"path\", { d: \"m8 6 4-4 4 4\", key: \"ybng9g\" }]\n];\nconst MoveVertical = createLucideIcon(\"move-vertical\", __iconNode);\n\nexport { __iconNode, MoveVertical as default };\n//# sourceMappingURL=move-vertical.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"polygon\", { points: \"3 11 22 2 13 21 11 13 3 11\", key: \"1ltx0t\" }]\n];\nconst Navigation = createLucideIcon(\"navigation\", __iconNode);\n\nexport { __iconNode, Navigation as default };\n//# sourceMappingURL=navigation.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z\",\n key: \"1a0edw\"\n }\n ],\n [\"path\", { d: \"M12 22V12\", key: \"d0xqtd\" }],\n [\"polyline\", { points: \"3.29 7 12 12 20.71 7\", key: \"ousv84\" }],\n [\"path\", { d: \"m7.5 4.27 9 5.15\", key: \"1c824w\" }]\n];\nconst Package = createLucideIcon(\"package\", __iconNode);\n\nexport { __iconNode, Package as default };\n//# sourceMappingURL=package.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n];\nconst PanelLeft = createLucideIcon(\"panel-left\", __iconNode);\n\nexport { __iconNode, PanelLeft as default };\n//# sourceMappingURL=panel-left.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M3 9h18\", key: \"1pudct\" }]\n];\nconst PanelTop = createLucideIcon(\"panel-top\", __iconNode);\n\nexport { __iconNode, PanelTop as default };\n//# sourceMappingURL=panel-top.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\n key: \"1a8usu\"\n }\n ],\n [\"path\", { d: \"m15 5 4 4\", key: \"1mk7zo\" }]\n];\nconst Pencil = createLucideIcon(\"pencil\", __iconNode);\n\nexport { __iconNode, Pencil as default };\n//# sourceMappingURL=pencil.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M13 4v16\", key: \"8vvj80\" }],\n [\"path\", { d: \"M17 4v16\", key: \"7dpous\" }],\n [\"path\", { d: \"M19 4H9.5a4.5 4.5 0 0 0 0 9H13\", key: \"sh4n9v\" }]\n];\nconst Pilcrow = createLucideIcon(\"pilcrow\", __iconNode);\n\nexport { __iconNode, Pilcrow as default };\n//# sourceMappingURL=pilcrow.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\",\n key: \"10ikf1\"\n }\n ]\n];\nconst Play = createLucideIcon(\"play\", __iconNode);\n\nexport { __iconNode, Play as default };\n//# sourceMappingURL=play.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n];\nconst Plus = createLucideIcon(\"plus\", __iconNode);\n\nexport { __iconNode, Plus as default };\n//# sourceMappingURL=plus.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z\",\n key: \"w46dr5\"\n }\n ]\n];\nconst Puzzle = createLucideIcon(\"puzzle\", __iconNode);\n\nexport { __iconNode, Puzzle as default };\n//# sourceMappingURL=puzzle.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"20\", height: \"12\", x: \"2\", y: \"6\", rx: \"2\", key: \"9lu3g6\" }]\n];\nconst RectangleHorizontal = createLucideIcon(\"rectangle-horizontal\", __iconNode);\n\nexport { __iconNode, RectangleHorizontal as default };\n//# sourceMappingURL=rectangle-horizontal.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m15 14 5-5-5-5\", key: \"12vg1m\" }],\n [\"path\", { d: \"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13\", key: \"6uklza\" }]\n];\nconst Redo2 = createLucideIcon(\"redo-2\", __iconNode);\n\nexport { __iconNode, Redo2 as default };\n//# sourceMappingURL=redo-2.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\", key: \"v9h5vc\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }],\n [\"path\", { d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\", key: \"3uifl3\" }],\n [\"path\", { d: \"M8 16H3v5\", key: \"1cv678\" }]\n];\nconst RefreshCw = createLucideIcon(\"refresh-cw\", __iconNode);\n\nexport { __iconNode, RefreshCw as default };\n//# sourceMappingURL=refresh-cw.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M4 7V4h16v3\", key: \"9msm58\" }],\n [\"path\", { d: \"M5 20h6\", key: \"1h6pxn\" }],\n [\"path\", { d: \"M13 4 8 20\", key: \"kqq6aj\" }],\n [\"path\", { d: \"m15 15 5 5\", key: \"me55sn\" }],\n [\"path\", { d: \"m20 15-5 5\", key: \"11p7ol\" }]\n];\nconst RemoveFormatting = createLucideIcon(\"remove-formatting\", __iconNode);\n\nexport { __iconNode, RemoveFormatting as default };\n//# sourceMappingURL=remove-formatting.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M20 18v-2a4 4 0 0 0-4-4H4\", key: \"5vmcpk\" }],\n [\"path\", { d: \"m9 17-5-5 5-5\", key: \"nvlc11\" }]\n];\nconst Reply = createLucideIcon(\"reply\", __iconNode);\n\nexport { __iconNode, Reply as default };\n//# sourceMappingURL=reply.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n];\nconst RotateCcw = createLucideIcon(\"rotate-ccw\", __iconNode);\n\nexport { __iconNode, RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\",\n key: \"1c8476\"\n }\n ],\n [\"path\", { d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\", key: \"1ydtos\" }],\n [\"path\", { d: \"M7 3v4a1 1 0 0 0 1 1h7\", key: \"t51u73\" }]\n];\nconst Save = createLucideIcon(\"save\", __iconNode);\n\nexport { __iconNode, Save as default };\n//# sourceMappingURL=save.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 7V5a2 2 0 0 1 2-2h2\", key: \"aa7l1z\" }],\n [\"path\", { d: \"M17 3h2a2 2 0 0 1 2 2v2\", key: \"4qcy5o\" }],\n [\"path\", { d: \"M21 17v2a2 2 0 0 1-2 2h-2\", key: \"6vwrx8\" }],\n [\"path\", { d: \"M7 21H5a2 2 0 0 1-2-2v-2\", key: \"ioqczr\" }],\n [\"path\", { d: \"M7 12h10\", key: \"b7w52i\" }]\n];\nconst ScanLine = createLucideIcon(\"scan-line\", __iconNode);\n\nexport { __iconNode, ScanLine as default };\n//# sourceMappingURL=scan-line.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m21 21-4.34-4.34\", key: \"14j7rj\" }],\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }]\n];\nconst Search = createLucideIcon(\"search\", __iconNode);\n\nexport { __iconNode, Search as default };\n//# sourceMappingURL=search.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n];\nconst Send = createLucideIcon(\"send\", __iconNode);\n\nexport { __iconNode, Send as default };\n//# sourceMappingURL=send.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\",\n key: \"1i5ecw\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Settings = createLucideIcon(\"settings\", __iconNode);\n\nexport { __iconNode, Settings as default };\n//# sourceMappingURL=settings.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"18\", cy: \"5\", r: \"3\", key: \"gq8acd\" }],\n [\"circle\", { cx: \"6\", cy: \"12\", r: \"3\", key: \"w7nqdw\" }],\n [\"circle\", { cx: \"18\", cy: \"19\", r: \"3\", key: \"1xt0gg\" }],\n [\"line\", { x1: \"8.59\", x2: \"15.42\", y1: \"13.51\", y2: \"17.49\", key: \"47mynk\" }],\n [\"line\", { x1: \"15.41\", x2: \"8.59\", y1: \"6.51\", y2: \"10.49\", key: \"1n3mei\" }]\n];\nconst Share2 = createLucideIcon(\"share-2\", __iconNode);\n\nexport { __iconNode, Share2 as default };\n//# sourceMappingURL=share-2.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n];\nconst ShieldCheck = createLucideIcon(\"shield-check\", __iconNode);\n\nexport { __iconNode, ShieldCheck as default };\n//# sourceMappingURL=shield-check.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"m14.5 9.5-5 5\", key: \"17q4r4\" }],\n [\"path\", { d: \"m9.5 9.5 5 5\", key: \"18nt4w\" }]\n];\nconst ShieldX = createLucideIcon(\"shield-x\", __iconNode);\n\nexport { __iconNode, ShieldX as default };\n//# sourceMappingURL=shield-x.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"14\", height: \"20\", x: \"5\", y: \"2\", rx: \"2\", ry: \"2\", key: \"1yt0o3\" }],\n [\"path\", { d: \"M12 18h.01\", key: \"mhygvu\" }]\n];\nconst Smartphone = createLucideIcon(\"smartphone\", __iconNode);\n\nexport { __iconNode, Smartphone as default };\n//# sourceMappingURL=smartphone.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M8 14s1.5 2 4 2 4-2 4-2\", key: \"1y1vjs\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Smile = createLucideIcon(\"smile\", __iconNode);\n\nexport { __iconNode, Smile as default };\n//# sourceMappingURL=smile.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z\",\n key: \"1s2grr\"\n }\n ],\n [\"path\", { d: \"M20 2v4\", key: \"1rf3ol\" }],\n [\"path\", { d: \"M22 4h-4\", key: \"gwowj6\" }],\n [\"circle\", { cx: \"4\", cy: \"20\", r: \"2\", key: \"6kqj1y\" }]\n];\nconst Sparkles = createLucideIcon(\"sparkles\", __iconNode);\n\nexport { __iconNode, Sparkles as default };\n//# sourceMappingURL=sparkles.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M8 12h8\", key: \"1wcyev\" }],\n [\"path\", { d: \"M12 8v8\", key: \"napkw2\" }]\n];\nconst SquarePlus = createLucideIcon(\"square-plus\", __iconNode);\n\nexport { __iconNode, SquarePlus as default };\n//# sourceMappingURL=square-plus.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }]\n];\nconst Square = createLucideIcon(\"square\", __iconNode);\n\nexport { __iconNode, Square as default };\n//# sourceMappingURL=square.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\",\n key: \"r04s7s\"\n }\n ]\n];\nconst Star = createLucideIcon(\"star\", __iconNode);\n\nexport { __iconNode, Star as default };\n//# sourceMappingURL=star.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m4 5 8 8\", key: \"1eunvl\" }],\n [\"path\", { d: \"m12 5-8 8\", key: \"1ah0jp\" }],\n [\n \"path\",\n {\n d: \"M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07\",\n key: \"e8ta8j\"\n }\n ]\n];\nconst Subscript = createLucideIcon(\"subscript\", __iconNode);\n\nexport { __iconNode, Subscript as default };\n//# sourceMappingURL=subscript.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M16 4H9a3 3 0 0 0-2.83 4\", key: \"43sutm\" }],\n [\"path\", { d: \"M14 12a4 4 0 0 1 0 8H6\", key: \"nlfj13\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"12\", y2: \"12\", key: \"1e0a9i\" }]\n];\nconst Strikethrough = createLucideIcon(\"strikethrough\", __iconNode);\n\nexport { __iconNode, Strikethrough as default };\n//# sourceMappingURL=strikethrough.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n];\nconst Sun = createLucideIcon(\"sun\", __iconNode);\n\nexport { __iconNode, Sun as default };\n//# sourceMappingURL=sun.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m4 19 8-8\", key: \"hr47gm\" }],\n [\"path\", { d: \"m12 19-8-8\", key: \"1dhhmo\" }],\n [\n \"path\",\n {\n d: \"M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06\",\n key: \"1dfcux\"\n }\n ]\n];\nconst Superscript = createLucideIcon(\"superscript\", __iconNode);\n\nexport { __iconNode, Superscript as default };\n//# sourceMappingURL=superscript.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v18\", key: \"108xh3\" }],\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M3 9h18\", key: \"1pudct\" }],\n [\"path\", { d: \"M3 15h18\", key: \"5xshup\" }]\n];\nconst Table = createLucideIcon(\"table\", __iconNode);\n\nexport { __iconNode, Table as default };\n//# sourceMappingURL=table.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M21 5H3\", key: \"1fi0y6\" }],\n [\"path\", { d: \"M17 12H7\", key: \"16if0g\" }],\n [\"path\", { d: \"M19 19H5\", key: \"vjpgq2\" }]\n];\nconst TextAlignCenter = createLucideIcon(\"text-align-center\", __iconNode);\n\nexport { __iconNode, TextAlignCenter as default };\n//# sourceMappingURL=text-align-center.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M21 5H3\", key: \"1fi0y6\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M21 19H7\", key: \"4cu937\" }]\n];\nconst TextAlignEnd = createLucideIcon(\"text-align-end\", __iconNode);\n\nexport { __iconNode, TextAlignEnd as default };\n//# sourceMappingURL=text-align-end.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M21 5H3\", key: \"1fi0y6\" }],\n [\"path\", { d: \"M15 12H3\", key: \"6jk70r\" }],\n [\"path\", { d: \"M17 19H3\", key: \"z6ezky\" }]\n];\nconst TextAlignStart = createLucideIcon(\"text-align-start\", __iconNode);\n\nexport { __iconNode, TextAlignStart as default };\n//# sourceMappingURL=text-align-start.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"line\", { x1: \"10\", x2: \"14\", y1: \"2\", y2: \"2\", key: \"14vaq8\" }],\n [\"line\", { x1: \"12\", x2: \"15\", y1: \"14\", y2: \"11\", key: \"17fdiu\" }],\n [\"circle\", { cx: \"12\", cy: \"14\", r: \"8\", key: \"1e1u0o\" }]\n];\nconst Timer = createLucideIcon(\"timer\", __iconNode);\n\nexport { __iconNode, Timer as default };\n//# sourceMappingURL=timer.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M10 11v6\", key: \"nco0om\" }],\n [\"path\", { d: \"M14 11v6\", key: \"outv1u\" }],\n [\"path\", { d: \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\", key: \"miytrc\" }],\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\", key: \"e791ji\" }]\n];\nconst Trash2 = createLucideIcon(\"trash-2\", __iconNode);\n\nexport { __iconNode, Trash2 as default };\n//# sourceMappingURL=trash-2.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst TriangleAlert = createLucideIcon(\"triangle-alert\", __iconNode);\n\nexport { __iconNode, TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M6 4v6a6 6 0 0 0 12 0V4\", key: \"9kb039\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"20\", y2: \"20\", key: \"nun2al\" }]\n];\nconst Underline = createLucideIcon(\"underline\", __iconNode);\n\nexport { __iconNode, Underline as default };\n//# sourceMappingURL=underline.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M9 14 4 9l5-5\", key: \"102s5s\" }],\n [\"path\", { d: \"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11\", key: \"f3b9sd\" }]\n];\nconst Undo2 = createLucideIcon(\"undo-2\", __iconNode);\n\nexport { __iconNode, Undo2 as default };\n//# sourceMappingURL=undo-2.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v12\", key: \"1x0j5s\" }],\n [\"path\", { d: \"m17 8-5-5-5 5\", key: \"7q97r8\" }],\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }]\n];\nconst Upload = createLucideIcon(\"upload\", __iconNode);\n\nexport { __iconNode, Upload as default };\n//# sourceMappingURL=upload.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5\",\n key: \"ftymec\"\n }\n ],\n [\"rect\", { x: \"2\", y: \"6\", width: \"14\", height: \"12\", rx: \"2\", key: \"158x01\" }]\n];\nconst Video = createLucideIcon(\"video\", __iconNode);\n\nexport { __iconNode, Video as default };\n//# sourceMappingURL=video.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 20h.01\", key: \"zekei9\" }],\n [\"path\", { d: \"M8.5 16.429a5 5 0 0 1 7 0\", key: \"1bycff\" }],\n [\"path\", { d: \"M5 12.859a10 10 0 0 1 5.17-2.69\", key: \"1dl1wf\" }],\n [\"path\", { d: \"M19 12.859a10 10 0 0 0-2.007-1.523\", key: \"4k23kn\" }],\n [\"path\", { d: \"M2 8.82a15 15 0 0 1 4.177-2.643\", key: \"1grhjp\" }],\n [\"path\", { d: \"M22 8.82a15 15 0 0 0-11.288-3.764\", key: \"z3jwby\" }],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n];\nconst WifiOff = createLucideIcon(\"wifi-off\", __iconNode);\n\nexport { __iconNode, WifiOff as default };\n//# sourceMappingURL=wifi-off.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 20h.01\", key: \"zekei9\" }],\n [\"path\", { d: \"M2 8.82a15 15 0 0 1 20 0\", key: \"dnpr2z\" }],\n [\"path\", { d: \"M5 12.859a10 10 0 0 1 14 0\", key: \"1x1e6c\" }],\n [\"path\", { d: \"M8.5 16.429a5 5 0 0 1 7 0\", key: \"1bycff\" }]\n];\nconst Wifi = createLucideIcon(\"wifi\", __iconNode);\n\nexport { __iconNode, Wifi as default };\n//# sourceMappingURL=wifi.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\",\n key: \"1ngwbx\"\n }\n ]\n];\nconst Wrench = createLucideIcon(\"wrench\", __iconNode);\n\nexport { __iconNode, Wrench as default };\n//# sourceMappingURL=wrench.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.mjs.map\n","/**\n * @license @lucide/vue v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z\",\n key: \"1v7up4\"\n }\n ]\n];\nconst Zap = createLucideIcon(\"zap\", __iconNode);\n\nexport { __iconNode, Zap as default };\n//# sourceMappingURL=zap.mjs.map\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { T as e } from "./draggable-D840DIZB.js";
|
|
2
|
-
//#region src/keys.ts
|
|
3
|
-
var t = Symbol("translations"), n = Symbol("editor"), r = Symbol("history"), i = Symbol("blockActions"), a = Symbol("conditionPreview"), o = Symbol("fontsManager"), s = Symbol("themeStyles"), c = Symbol("tplUiTheme"), l = Symbol("blockDefaults"), u = Symbol("blockRegistry"), d = Symbol("customBlockDefinitions"), f = Symbol("paletteBlocks"), p = Symbol("htmlBlockPreview"), m = Symbol("colors"), h = Symbol("customBlockStylesheets"), g = Symbol("mergeTags"), _ = Symbol("mergeTagSyntax"), v = Symbol("onRequestMergeTag"), y = Symbol("mergeTagAutocomplete"), b = Symbol("mergeTagPicker"), x = Symbol("logicTags"), S = Symbol("logicPairs"), C = Symbol("logicPicker"), w = Symbol("onRequestLogic"), T = Symbol("onRequestMedia"), E = Symbol("imageUrlResolver"), D = Symbol("displayConditions"), O = Symbol("allowCustomConditions"), k = Symbol("capabilities"), A = Symbol("keyboardReorder"), j = Symbol("templateLint"), M = Symbol("editorRoot"), N = Symbol("popoverRoot"), P = Symbol("savedBlocks"), F = Symbol("authManager"), I = Symbol("aiConfig"), L = Symbol("comments"), R = Symbol("scoring"), z = Symbol("cloudTranslations");
|
|
4
|
-
function B(t, n) {
|
|
5
|
-
let r = e(t, null);
|
|
6
|
-
if (r == null) throw Error(`${n} requires a provider for ${t.description ?? "unknown key"}. Ensure it is a descendant of Editor or CloudEditor.`);
|
|
7
|
-
return r;
|
|
8
|
-
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { T as A, B, x as C, b as D, y as E, R as F, j as I, s as L, f as M, N, _ as O, P, t as R, S, g as T, o as _, l as a, E as b, z as c, a as d, d as f, M as g, n as h, i, v as j, w as k, m as l, D as m, O as n, u as o, h as p, F as r, k as s, I as t, L as u, r as v, C as w, A as x, p as y, c as z };
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=keys-D7kUmfpE.js.map
|