@bikdotai/bik-component-library 0.0.850-tools-beta.0 → 0.0.850
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/cjs/assets/icons/ShipStation.svg.js +1 -1
- package/dist/cjs/assets/icons/ShipStation.svg.js.map +1 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +40 -22
- package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js +1 -1
- package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +5 -5
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/DiscardModal.js +1 -1
- package/dist/cjs/components/agent-builder/components/DiscardModal.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/GoLiveModal.js +1 -1
- package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionEditor.js +1 -1
- package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionPicker.js +32 -24
- package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/RequireVerificationModal.js +1 -1
- package/dist/cjs/components/agent-builder/components/RequireVerificationModal.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +4 -4
- package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/SelectableListSection.js +2 -2
- package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
- package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
- package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +2 -2
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
- package/dist/cjs/components/agent-builder/utils/sourceIcons.js +1 -1
- package/dist/cjs/components/agent-builder/utils/sourceIcons.js.map +1 -1
- package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
- package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
- package/dist/cjs/components/agent-listing/AgentTable.js +1 -1
- package/dist/cjs/components/agent-listing/AgentTable.js.map +1 -1
- package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
- package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
- package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js +2 -0
- package/dist/cjs/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
- package/dist/cjs/editor/BikEditor.js +1 -1
- package/dist/cjs/editor/BikEditor.js.map +1 -1
- package/dist/cjs/editor/BikEditor.styles.js +21 -16
- package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
- package/dist/cjs/editor/BikEditor.types.js.map +1 -1
- package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
- package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js +3 -3
- package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js +2 -0
- package/dist/cjs/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
- package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/cjs/icons/Informational/Common UI/ShieldOutline.js +2 -0
- package/dist/cjs/icons/Informational/Common UI/ShieldOutline.js.map +1 -0
- package/dist/cjs/icons/index.js +1 -1
- package/dist/esm/assets/icons/ShipStation.svg.js +2 -2
- package/dist/esm/assets/icons/ShipStation.svg.js.map +1 -1
- package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +3 -0
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js +61 -42
- package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +1 -1
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +5 -0
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +243 -227
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/DiscardModal.js +57 -49
- package/dist/esm/components/agent-builder/components/DiscardModal.js.map +1 -1
- package/dist/esm/components/agent-builder/components/GoLiveModal.js +26 -22
- package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +1 -1
- package/dist/esm/components/agent-builder/components/MentionEditor.js +93 -77
- package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.js +194 -168
- package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/esm/components/agent-builder/components/RequireVerificationModal.js +5 -5
- package/dist/esm/components/agent-builder/components/RequireVerificationModal.js.map +1 -1
- package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +118 -109
- package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/SelectableListSection.js +149 -133
- package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
- package/dist/esm/components/agent-builder/constants/tools.d.ts +9 -11
- package/dist/esm/components/agent-builder/constants/tools.js +24 -21
- package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +6 -2
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +46 -43
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +209 -183
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +3 -2
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js +24 -19
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
- package/dist/esm/components/agent-builder/utils/sourceIcons.d.ts +9 -1
- package/dist/esm/components/agent-builder/utils/sourceIcons.js +15 -9
- package/dist/esm/components/agent-builder/utils/sourceIcons.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentListing.js +79 -83
- package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentListing.model.d.ts +6 -0
- package/dist/esm/components/agent-listing/AgentTable.d.ts +2 -0
- package/dist/esm/components/agent-listing/AgentTable.js +29 -27
- package/dist/esm/components/agent-listing/AgentTable.js.map +1 -1
- package/dist/esm/components/agent-listing/AgentTableRow.d.ts +2 -0
- package/dist/esm/components/agent-listing/AgentTableRow.js +51 -37
- package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
- package/dist/esm/components/agent-listing/AiAgentsEmptyState.d.ts +22 -0
- package/dist/esm/components/agent-listing/AiAgentsEmptyState.js +22 -0
- package/dist/esm/components/agent-listing/AiAgentsEmptyState.js.map +1 -0
- package/dist/esm/editor/BikEditor.js +129 -126
- package/dist/esm/editor/BikEditor.js.map +1 -1
- package/dist/esm/editor/BikEditor.styles.js +24 -19
- package/dist/esm/editor/BikEditor.styles.js.map +1 -1
- package/dist/esm/editor/BikEditor.types.d.ts +17 -0
- package/dist/esm/editor/BikEditor.types.js.map +1 -1
- package/dist/esm/editor/extensions/buildExtensions.d.ts +7 -0
- package/dist/esm/editor/extensions/buildExtensions.js +30 -24
- package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.d.ts +20 -3
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js +40 -25
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionChipNodeView.d.ts +17 -0
- package/dist/esm/editor/extensions/mention/MentionChipNodeView.js +39 -0
- package/dist/esm/editor/extensions/mention/MentionChipNodeView.js.map +1 -0
- package/dist/esm/editor/extensions/mention/MentionExtension.d.ts +1 -1
- package/dist/esm/editor/extensions/mention/MentionExtension.js +67 -45
- package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/esm/icons/Informational/Common UI/ShieldOutline.d.ts +7 -0
- package/dist/esm/icons/Informational/Common UI/ShieldOutline.js +35 -0
- package/dist/esm/icons/Informational/Common UI/ShieldOutline.js.map +1 -0
- package/dist/esm/icons/Informational/Common UI/index.d.ts +1 -0
- package/dist/esm/icons/index.d.ts +25 -25
- package/dist/esm/icons/index.js +172 -170
- package/dist/esm/icons/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CharacterLimitExtension.js","sources":["../../../../../src/editor/extensions/characterLimit/CharacterLimitExtension.ts"],"sourcesContent":["import { Extension } from '@tiptap/core';\nimport type { Node as PMNode } from '@tiptap/pm/model';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { Decoration, DecorationSet } from '@tiptap/pm/view';\n\nexport interface CharacterLimitOptions {\n\t/** Soft character limit. 0 / undefined disables the extension entirely. */\n\tlimit: number;\n}\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"CharacterLimitExtension.js","sources":["../../../../../src/editor/extensions/characterLimit/CharacterLimitExtension.ts"],"sourcesContent":["import { Extension } from '@tiptap/core';\nimport type { Node as PMNode } from '@tiptap/pm/model';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { Decoration, DecorationSet } from '@tiptap/pm/view';\n\nexport interface CharacterLimitOptions {\n\t/** Soft character limit. 0 / undefined disables the extension entirely. */\n\tlimit: number;\n\t/**\n\t * Hard mode. When true, NO edit may push the content past the limit — typing,\n\t * Enter, drag-drop and any paste the consumer didn't pre-trim are all rejected\n\t * (a paste is trimmed to fit by the consumer's `onPaste`; anything that still\n\t * overflows is dropped). Content LOADED over the limit is preserved (initial\n\t * content isn't a transaction) and stays editable, but can only shrink — so the\n\t * user can never ADD past the cap, only trim down. Defaults to the soft\n\t * behaviour (typing blocked, paste allowed to overflow grey) for the CRM.\n\t */\n\thard?: boolean;\n}\n\n/**\n * Character limit with two flavours over the SAME metric (see CRM design):\n *\n * Soft (default):\n * 1. Typing is BLOCKED once the content is at/over the limit — `handleTextInput`\n * rejects the insertion. This never fires for paste (paste flows through the\n * clipboard pipeline), so paste is free to push the content over the limit.\n * 2. Every character BEYOND the limit is decorated with `bik-editor-overflow`\n * (rendered grey) so pasted overflow is visible but clearly marked.\n *\n * Hard (`hard: true`): additionally a `filterTransaction` rejects ANY transaction\n * that grows the count past the limit (paste, Enter, drop, IME — every path\n * `handleTextInput` misses), while still allowing shrink/no-growth edits so\n * already-over-limit loaded content stays editable. The grey decoration then only\n * ever marks that loaded overflow (a \"trim me\" hint), never freshly-added text.\n *\n * Counting mirrors `extractContent` exactly — `doc.textBetween(0, size, '\\n\\n',\n * '\\n')` — so the grey boundary AND the hard cap line up with the `characterCount`\n * the consumer shows (paragraph break = 2 chars, soft break = 1 char).\n */\nexport const CharacterLimitExtension = Extension.create<CharacterLimitOptions>({\n\tname: 'characterLimitOverflow',\n\n\taddOptions() {\n\t\treturn { limit: 0, hard: false };\n\t},\n\n\taddProseMirrorPlugins() {\n\t\tconst limit = this.options.limit;\n\t\tif (!limit || limit <= 0) return [];\n\t\tconst hard = this.options.hard;\n\n\t\t// Same metric as BikEditor.utils.extractContent → keeps the grey boundary\n\t\t// and the consumer's characterCount in sync.\n\t\tconst countChars = (doc: PMNode) =>\n\t\t\tdoc.textBetween(0, doc.content.size, '\\n\\n', '\\n').length;\n\n\t\treturn [\n\t\t\tnew Plugin({\n\t\t\t\tkey: new PluginKey('characterLimitOverflow'),\n\t\t\t\t// Hard cap. Initial content is loaded at editor creation (not a\n\t\t\t\t// transaction), so it is never filtered here — content loaded over the\n\t\t\t\t// limit is preserved.\n\t\t\t\t...(hard\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tfilterTransaction(tr, state) {\n\t\t\t\t\t\t\t\tif (!tr.docChanged) return true;\n\t\t\t\t\t\t\t\tconst next = countChars(tr.doc);\n\t\t\t\t\t\t\t\tif (next <= limit) return true;\n\t\t\t\t\t\t\t\tconst prev = countChars(state.doc);\n\t\t\t\t\t\t\t\t// Shrinking / no net growth always passes, so content already\n\t\t\t\t\t\t\t\t// over the limit can be trimmed DOWN (never up).\n\t\t\t\t\t\t\t\tif (next <= prev) return true;\n\t\t\t\t\t\t\t\t// Already over → block any growth outright; never delete the\n\t\t\t\t\t\t\t\t// user's existing over-limit content to make room.\n\t\t\t\t\t\t\t\tif (prev > limit) return false;\n\t\t\t\t\t\t\t\t// A single edit crossed under→over — a paste. Keep the part that\n\t\t\t\t\t\t\t\t// fits and drop the excess tail (paste truncates to the cap)\n\t\t\t\t\t\t\t\t// instead of rejecting the whole paste. Deleting `over` POSITIONS\n\t\t\t\t\t\t\t\t// ending at the caret removes >= `over` characters (a block break\n\t\t\t\t\t\t\t\t// is 2 chars but 1 position), so the result lands <= limit; the\n\t\t\t\t\t\t\t\t// re-check blocks the rare case it somehow didn't.\n\t\t\t\t\t\t\t\tconst over = next - limit;\n\t\t\t\t\t\t\t\tconst head = tr.selection.$head.pos;\n\t\t\t\t\t\t\t\tconst from = head - over;\n\t\t\t\t\t\t\t\tif (from <= 0) return false;\n\t\t\t\t\t\t\t\ttr.delete(from, head);\n\t\t\t\t\t\t\t\treturn countChars(tr.doc) <= limit;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\tprops: {\n\t\t\t\t\t// Block typed/composed input that would exceed the limit. Replacing\n\t\t\t\t\t// a selection is allowed as long as the result still fits.\n\t\t\t\t\thandleTextInput(view, from, to, text) {\n\t\t\t\t\t\tconst doc = view.state.doc;\n\t\t\t\t\t\tconst current = countChars(doc);\n\t\t\t\t\t\tconst removed = doc.textBetween(from, to, '\\n\\n', '\\n').length;\n\t\t\t\t\t\treturn current - removed + text.length > limit;\n\t\t\t\t\t},\n\t\t\t\t\tdecorations(state) {\n\t\t\t\t\t\tconst decorations: Decoration[] = [];\n\t\t\t\t\t\tlet count = 0;\n\t\t\t\t\t\tlet overflowing = false;\n\n\t\t\t\t\t\tstate.doc.descendants((node, pos, parent, index) => {\n\t\t\t\t\t\t\t// Account for the \"\\n\\n\" separator inserted between top-level\n\t\t\t\t\t\t\t// blocks so the boundary matches textBetween's counting.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!overflowing &&\n\t\t\t\t\t\t\t\tparent &&\n\t\t\t\t\t\t\t\tparent.type.name === 'doc' &&\n\t\t\t\t\t\t\t\tindex > 0\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tcount += 2;\n\t\t\t\t\t\t\t\tif (count > limit) overflowing = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (node.isText && node.text) {\n\t\t\t\t\t\t\t\tconst len = node.text.length;\n\t\t\t\t\t\t\t\tif (overflowing) {\n\t\t\t\t\t\t\t\t\tdecorations.push(\n\t\t\t\t\t\t\t\t\t\tDecoration.inline(pos, pos + len, {\n\t\t\t\t\t\t\t\t\t\t\tclass: 'bik-editor-overflow',\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else if (count + len > limit) {\n\t\t\t\t\t\t\t\t\tconst startOffset = Math.max(0, limit - count);\n\t\t\t\t\t\t\t\t\tdecorations.push(\n\t\t\t\t\t\t\t\t\t\tDecoration.inline(pos + startOffset, pos + len, {\n\t\t\t\t\t\t\t\t\t\t\tclass: 'bik-editor-overflow',\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\toverflowing = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcount += len;\n\t\t\t\t\t\t\t} else if (node.type.name === 'hardBreak') {\n\t\t\t\t\t\t\t\t// Soft line break → \"\\n\" (1 char) in textBetween.\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif (!overflowing && count > limit) overflowing = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn DecorationSet.create(state.doc, decorations);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t];\n\t},\n});\n"],"names":["CharacterLimitExtension","Extension","limit","hard","countChars","doc","Plugin","PluginKey","tr","state","next","prev","over","head","from","view","to","text","current","removed","decorations","count","overflowing","node","pos","parent","index","len","Decoration","startOffset","DecorationSet"],"mappings":";;;AAwCO,MAAMA,IAA0BC,EAAU,OAA8B;AAAA,EAC9E,MAAM;AAAA,EAEN,aAAa;AACZ,WAAO,EAAE,OAAO,GAAG,MAAM,GAAA;AAAA,EAC1B;AAAA,EAEA,wBAAwB;AACvB,UAAMC,IAAQ,KAAK,QAAQ;AAC3B,QAAI,CAACA,KAASA,KAAS,UAAU,CAAA;AACjC,UAAMC,IAAO,KAAK,QAAQ,MAIpBC,IAAa,CAACC,MACnBA,EAAI,YAAY,GAAGA,EAAI,QAAQ,MAAM;AAAA;AAAA,GAAQ;AAAA,CAAI,EAAE;AAEpD,WAAO;AAAA,MACN,IAAIC,EAAO;AAAA,QACV,KAAK,IAAIC,EAAU,wBAAwB;AAAA;AAAA;AAAA;AAAA,QAI3C,GAAIJ,IACD;AAAA,UACA,kBAAkBK,GAAIC,GAAO;AAC5B,gBAAI,CAACD,EAAG,WAAY,QAAO;AAC3B,kBAAME,IAAON,EAAWI,EAAG,GAAG;AAC9B,gBAAIE,KAAQR,EAAO,QAAO;AAC1B,kBAAMS,IAAOP,EAAWK,EAAM,GAAG;AAGjC,gBAAIC,KAAQC,EAAM,QAAO;AAGzB,gBAAIA,IAAOT,EAAO,QAAO;AAOzB,kBAAMU,IAAOF,IAAOR,GACdW,IAAOL,EAAG,UAAU,MAAM,KAC1BM,IAAOD,IAAOD;AACpB,mBAAIE,KAAQ,IAAU,MACtBN,EAAG,OAAOM,GAAMD,CAAI,GACbT,EAAWI,EAAG,GAAG,KAAKN;AAAA,UAC9B;AAAA,QAAA,IAEA,CAAA;AAAA,QACH,OAAO;AAAA;AAAA;AAAA,UAGN,gBAAgBa,GAAMD,GAAME,GAAIC,GAAM;AACrC,kBAAMZ,IAAMU,EAAK,MAAM,KACjBG,IAAUd,EAAWC,CAAG,GACxBc,IAAUd,EAAI,YAAYS,GAAME,GAAI;AAAA;AAAA,GAAQ;AAAA,CAAI,EAAE;AACxD,mBAAOE,IAAUC,IAAUF,EAAK,SAASf;AAAA,UAC1C;AAAA,UACA,YAAYO,GAAO;AAClB,kBAAMW,IAA4B,CAAA;AAClC,gBAAIC,IAAQ,GACRC,IAAc;AAElB,mBAAAb,EAAM,IAAI,YAAY,CAACc,GAAMC,GAAKC,GAAQC,MAAU;AAanD,kBATC,CAACJ,KACDG,KACAA,EAAO,KAAK,SAAS,SACrBC,IAAQ,MAERL,KAAS,GACLA,IAAQnB,MAAOoB,IAAc,MAG9BC,EAAK,UAAUA,EAAK,MAAM;AAC7B,sBAAMI,IAAMJ,EAAK,KAAK;AACtB,oBAAID;AACH,kBAAAF,EAAY;AAAA,oBACXQ,EAAW,OAAOJ,GAAKA,IAAMG,GAAK;AAAA,sBACjC,OAAO;AAAA,oBAAA,CACP;AAAA,kBAAA;AAAA,yBAEQN,IAAQM,IAAMzB,GAAO;AAC/B,wBAAM2B,IAAc,KAAK,IAAI,GAAG3B,IAAQmB,CAAK;AAC7C,kBAAAD,EAAY;AAAA,oBACXQ,EAAW,OAAOJ,IAAMK,GAAaL,IAAMG,GAAK;AAAA,sBAC/C,OAAO;AAAA,oBAAA,CACP;AAAA,kBAAA,GAEFL,IAAc;AAAA,gBACf;AACA,gBAAAD,KAASM;AAAA,cACV,MAAA,CAAWJ,EAAK,KAAK,SAAS,gBAE7BF,KAAS,GACL,CAACC,KAAeD,IAAQnB,MAAOoB,IAAc;AAElD,qBAAO;AAAA,YACR,CAAC,GAEMQ,EAAc,OAAOrB,EAAM,KAAKW,CAAW;AAAA,UACnD;AAAA,QAAA;AAAA,MACD,CACA;AAAA,IAAA;AAAA,EAEH;AACD,CAAC;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NodeViewProps } from '@tiptap/react';
|
|
2
|
+
import { default as React } from 'react';
|
|
3
|
+
export interface MentionChipConfig {
|
|
4
|
+
/** CSS class(es) applied to the chip wrapper (e.g. `bik-mention bik-mention--agent`). */
|
|
5
|
+
cssClass: string;
|
|
6
|
+
/** Trigger char, prepended to the label for legacy (kind-less) chips. */
|
|
7
|
+
char: '@' | '#';
|
|
8
|
+
/** Leading glyph for the chip (e.g. a tool's source icon). Omit → no icon. */
|
|
9
|
+
renderChipIcon?: (source: string | null, kind: string | null) => React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* React node view for a mention chip so we can render a leading icon (e.g. a
|
|
13
|
+
* tool's source glyph) before the label. Only used when a `renderChipIcon` is
|
|
14
|
+
* supplied; otherwise the extension keeps its plain `renderHTML` chip. The chip
|
|
15
|
+
* stays atomic/non-editable — serialization still runs off the node attrs.
|
|
16
|
+
*/
|
|
17
|
+
export declare const buildMentionChipNodeView: (config: MentionChipConfig) => React.FC<NodeViewProps>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsxs as r, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { NodeViewWrapper as c } from "@tiptap/react";
|
|
3
|
+
const m = (e) => {
|
|
4
|
+
const t = ({ node: n }) => {
|
|
5
|
+
const i = n.attrs.kind ?? null, s = n.attrs.source ?? null, a = n.attrs.label ?? "", l = e.renderChipIcon?.(s, i);
|
|
6
|
+
return /* @__PURE__ */ r(
|
|
7
|
+
c,
|
|
8
|
+
{
|
|
9
|
+
as: "span",
|
|
10
|
+
className: e.cssClass,
|
|
11
|
+
"data-kind": i ?? void 0,
|
|
12
|
+
"data-source": s ?? void 0,
|
|
13
|
+
contentEditable: !1,
|
|
14
|
+
children: [
|
|
15
|
+
l ? /* @__PURE__ */ o(
|
|
16
|
+
"span",
|
|
17
|
+
{
|
|
18
|
+
className: "bik-mention-icon",
|
|
19
|
+
contentEditable: !1,
|
|
20
|
+
style: {
|
|
21
|
+
display: "inline-flex",
|
|
22
|
+
alignItems: "center",
|
|
23
|
+
verticalAlign: "middle",
|
|
24
|
+
marginRight: 4
|
|
25
|
+
},
|
|
26
|
+
children: l
|
|
27
|
+
}
|
|
28
|
+
) : null,
|
|
29
|
+
i ? a : `${e.char}${a}`
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
return t.displayName = "MentionChipNodeView", t;
|
|
35
|
+
};
|
|
36
|
+
export {
|
|
37
|
+
m as buildMentionChipNodeView
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=MentionChipNodeView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentionChipNodeView.js","sources":["../../../../../src/editor/extensions/mention/MentionChipNodeView.tsx"],"sourcesContent":["import { type NodeViewProps, NodeViewWrapper } from '@tiptap/react';\nimport React from 'react';\n\nexport interface MentionChipConfig {\n\t/** CSS class(es) applied to the chip wrapper (e.g. `bik-mention bik-mention--agent`). */\n\tcssClass: string;\n\t/** Trigger char, prepended to the label for legacy (kind-less) chips. */\n\tchar: '@' | '#';\n\t/** Leading glyph for the chip (e.g. a tool's source icon). Omit → no icon. */\n\trenderChipIcon?: (\n\t\tsource: string | null,\n\t\tkind: string | null,\n\t) => React.ReactNode;\n}\n\n/**\n * React node view for a mention chip so we can render a leading icon (e.g. a\n * tool's source glyph) before the label. Only used when a `renderChipIcon` is\n * supplied; otherwise the extension keeps its plain `renderHTML` chip. The chip\n * stays atomic/non-editable — serialization still runs off the node attrs.\n */\nexport const buildMentionChipNodeView = (\n\tconfig: MentionChipConfig,\n): React.FC<NodeViewProps> => {\n\tconst Chip: React.FC<NodeViewProps> = ({ node }) => {\n\t\tconst kind = (node.attrs['kind'] as string | null) ?? null;\n\t\tconst source = (node.attrs['source'] as string | null) ?? null;\n\t\tconst label = (node.attrs['label'] as string) ?? '';\n\t\tconst icon = config.renderChipIcon?.(source, kind);\n\t\treturn (\n\t\t\t<NodeViewWrapper\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName={config.cssClass}\n\t\t\t\tdata-kind={kind ?? undefined}\n\t\t\t\tdata-source={source ?? undefined}\n\t\t\t\tcontentEditable={false}\n\t\t\t>\n\t\t\t\t{icon ? (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"bik-mention-icon\"\n\t\t\t\t\t\tcontentEditable={false}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\tverticalAlign: 'middle',\n\t\t\t\t\t\t\tmarginRight: 4,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icon}\n\t\t\t\t\t</span>\n\t\t\t\t) : null}\n\t\t\t\t{kind ? label : `${config.char}${label}`}\n\t\t\t</NodeViewWrapper>\n\t\t);\n\t};\n\tChip.displayName = 'MentionChipNodeView';\n\treturn Chip;\n};\n"],"names":["buildMentionChipNodeView","config","Chip","node","kind","source","label","icon","jsxs","NodeViewWrapper","jsx"],"mappings":";;AAqBO,MAAMA,IAA2B,CACvCC,MAC6B;AAC7B,QAAMC,IAAgC,CAAC,EAAE,MAAAC,QAAW;AACnD,UAAMC,IAAQD,EAAK,MAAM,QAA6B,MAChDE,IAAUF,EAAK,MAAM,UAA+B,MACpDG,IAASH,EAAK,MAAM,SAAuB,IAC3CI,IAAON,EAAO,iBAAiBI,GAAQD,CAAI;AACjD,WACC,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACA,IAAG;AAAA,QACH,WAAWR,EAAO;AAAA,QAClB,aAAWG,KAAQ;AAAA,QACnB,eAAaC,KAAU;AAAA,QACvB,iBAAiB;AAAA,QAEhB,UAAA;AAAA,UAAAE,IACA,gBAAAG;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAU;AAAA,cACV,iBAAiB;AAAA,cACjB,OAAO;AAAA,gBACN,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,eAAe;AAAA,gBACf,aAAa;AAAA,cAAA;AAAA,cAGb,UAAAH;AAAA,YAAA;AAAA,UAAA,IAEC;AAAA,UACHH,IAAOE,IAAQ,GAAGL,EAAO,IAAI,GAAGK,CAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGzC;AACA,SAAAJ,EAAK,cAAc,uBACZA;AACR;"}
|
|
@@ -2,7 +2,7 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { MentionDropdownRenderProps, MentionItem } from '../../BikEditor.types';
|
|
3
3
|
export declare function buildAgentMentionExtension(agentsRef: {
|
|
4
4
|
current: MentionItem[];
|
|
5
|
-
}, onSelect?: (item: MentionItem, char: '@' | '#') => void, renderItem?: (item: MentionItem, isActive: boolean) => ReactNode, renderDropdown?: (props: MentionDropdownRenderProps) => ReactNode, removeTriggerOnDismiss?: boolean): import('@tiptap/core').Node<import('@tiptap/extension-mention').MentionOptions<any, import('@tiptap/extension-mention').MentionNodeAttrs>, any>;
|
|
5
|
+
}, onSelect?: (item: MentionItem, char: '@' | '#') => void, renderItem?: (item: MentionItem, isActive: boolean) => ReactNode, renderDropdown?: (props: MentionDropdownRenderProps) => ReactNode, removeTriggerOnDismiss?: boolean, renderChipIcon?: (source: string | null, kind: string | null) => ReactNode): import('@tiptap/core').Node<import('@tiptap/extension-mention').MentionOptions<any, import('@tiptap/extension-mention').MentionNodeAttrs>, any>;
|
|
6
6
|
export declare function buildTeamMentionExtension(teamsRef: {
|
|
7
7
|
current: MentionItem[];
|
|
8
8
|
}, onSelect?: (item: MentionItem, char: '@' | '#') => void, renderItem?: (item: MentionItem, isActive: boolean) => ReactNode, renderDropdown?: (props: MentionDropdownRenderProps) => ReactNode, removeTriggerOnDismiss?: boolean): import('@tiptap/core').Node<import('@tiptap/extension-mention').MentionOptions<any, import('@tiptap/extension-mention').MentionNodeAttrs>, any>;
|
|
@@ -1,56 +1,57 @@
|
|
|
1
1
|
import { mergeAttributes as f } from "../../../node_modules/@tiptap/core/dist/index.js";
|
|
2
2
|
import k from "@tiptap/extension-mention";
|
|
3
|
-
import {
|
|
4
|
-
import { createSuggestionPopup as
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { ReactNodeViewRenderer as b, ReactRenderer as w } from "@tiptap/react";
|
|
4
|
+
import { createSuggestionPopup as h } from "../suggestionPopup.js";
|
|
5
|
+
import { buildMentionChipNodeView as p } from "./MentionChipNodeView.js";
|
|
6
|
+
import { MentionDropdown as M } from "./MentionDropdown.js";
|
|
7
|
+
function T(u, r) {
|
|
8
|
+
const { renderItem: d, renderDropdown: a, removeTriggerOnDismiss: c } = u;
|
|
8
9
|
return () => {
|
|
9
|
-
let
|
|
10
|
-
const
|
|
10
|
+
let i, o, e, t = null;
|
|
11
|
+
const s = () => {
|
|
11
12
|
if (r.picked = !0, e?.editor && e?.range) {
|
|
12
|
-
const { editor: n, range:
|
|
13
|
-
n.chain().focus().deleteRange(
|
|
13
|
+
const { editor: n, range: l } = e;
|
|
14
|
+
n.chain().focus().deleteRange(l).run();
|
|
14
15
|
}
|
|
15
16
|
};
|
|
16
17
|
return {
|
|
17
18
|
onStart: (n) => {
|
|
18
|
-
e = n, r.picked = !1,
|
|
19
|
-
props: { ...n, renderItem:
|
|
19
|
+
e = n, r.picked = !1, i = new w(M, {
|
|
20
|
+
props: { ...n, renderItem: d, renderDropdown: a, dismiss: s },
|
|
20
21
|
editor: n.editor
|
|
21
|
-
}),
|
|
22
|
-
const m =
|
|
23
|
-
!m ||
|
|
22
|
+
}), o = h(i.element, n.clientRect), t = (l) => {
|
|
23
|
+
const m = l.target;
|
|
24
|
+
!m || o.element.contains(m) || e?.editor?.view?.dom?.contains(m) || (r.picked = !0, e?.editor && e?.range && e.editor.chain().deleteRange(e.range).run(), o.hide());
|
|
24
25
|
}, document.addEventListener("mousedown", t);
|
|
25
26
|
},
|
|
26
27
|
onUpdate: (n) => {
|
|
27
|
-
if (e = n,
|
|
28
|
+
if (e = n, i.updateProps({
|
|
28
29
|
...n,
|
|
29
|
-
renderItem:
|
|
30
|
+
renderItem: d,
|
|
30
31
|
renderDropdown: a,
|
|
31
|
-
dismiss:
|
|
32
|
+
dismiss: s
|
|
32
33
|
}), !n.items?.length) {
|
|
33
|
-
|
|
34
|
+
o.hide();
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
+
o.show(), o.updatePosition(n.clientRect);
|
|
37
38
|
},
|
|
38
|
-
onKeyDown: (n) => n.event.key === "Escape" ? (
|
|
39
|
+
onKeyDown: (n) => n.event.key === "Escape" ? (o.hide(), !0) : i.ref?.onKeyDown(n) ?? !1,
|
|
39
40
|
onExit: () => {
|
|
40
|
-
if (t && (document.removeEventListener("mousedown", t), t = null),
|
|
41
|
-
const { editor: n, range:
|
|
41
|
+
if (t && (document.removeEventListener("mousedown", t), t = null), o.destroy(), i.destroy(), c && !r.picked && e?.editor && e?.range) {
|
|
42
|
+
const { editor: n, range: l } = e;
|
|
42
43
|
setTimeout(() => {
|
|
43
|
-
n.isDestroyed || n.chain().deleteRange(
|
|
44
|
+
n.isDestroyed || n.chain().deleteRange(l).run();
|
|
44
45
|
}, 0);
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
};
|
|
48
49
|
};
|
|
49
50
|
}
|
|
50
|
-
function g(
|
|
51
|
-
const
|
|
51
|
+
function g(u, r, d, a, c, i) {
|
|
52
|
+
const o = { picked: !1 };
|
|
52
53
|
return k.extend({
|
|
53
|
-
name:
|
|
54
|
+
name: u,
|
|
54
55
|
addAttributes() {
|
|
55
56
|
return {
|
|
56
57
|
...this.parent?.(),
|
|
@@ -58,9 +59,28 @@ function g(d, r, o, a, s, u) {
|
|
|
58
59
|
default: null,
|
|
59
60
|
parseHTML: (e) => e.getAttribute("data-kind"),
|
|
60
61
|
renderHTML: (e) => e.kind ? { "data-kind": String(e.kind) } : {}
|
|
62
|
+
},
|
|
63
|
+
// Tool source bucket (manifest / shopify / …); drives the chip icon.
|
|
64
|
+
source: {
|
|
65
|
+
default: null,
|
|
66
|
+
parseHTML: (e) => e.getAttribute("data-source"),
|
|
67
|
+
renderHTML: (e) => e.source ? { "data-source": String(e.source) } : {}
|
|
61
68
|
}
|
|
62
69
|
};
|
|
63
|
-
}
|
|
70
|
+
},
|
|
71
|
+
// A React chip (with the leading source icon) only when the consumer asks for
|
|
72
|
+
// it — otherwise the plain renderHTML chip is kept (unchanged for CRM etc.).
|
|
73
|
+
...i.renderChipIcon ? {
|
|
74
|
+
addNodeView() {
|
|
75
|
+
return b(
|
|
76
|
+
p({
|
|
77
|
+
cssClass: r,
|
|
78
|
+
char: d,
|
|
79
|
+
renderChipIcon: i.renderChipIcon
|
|
80
|
+
})
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
} : {}
|
|
64
84
|
}).configure({
|
|
65
85
|
HTMLAttributes: { class: r },
|
|
66
86
|
renderText: ({ options: e, node: t }) => `${t.attrs.kind ? "" : e.suggestion.char}${t.attrs.label}`,
|
|
@@ -68,52 +88,54 @@ function g(d, r, o, a, s, u) {
|
|
|
68
88
|
"span",
|
|
69
89
|
f(
|
|
70
90
|
e.HTMLAttributes,
|
|
71
|
-
t.attrs.kind ? { "data-kind": String(t.attrs.kind) } : {}
|
|
91
|
+
t.attrs.kind ? { "data-kind": String(t.attrs.kind) } : {},
|
|
92
|
+
t.attrs.source ? { "data-source": String(t.attrs.source) } : {}
|
|
72
93
|
),
|
|
73
94
|
`${t.attrs.kind ? "" : e.suggestion.char}${t.attrs.label}`
|
|
74
95
|
],
|
|
75
96
|
suggestion: {
|
|
76
|
-
char:
|
|
97
|
+
char: d,
|
|
77
98
|
allowSpaces: !0,
|
|
78
99
|
items: ({ query: e }) => a.current.filter(
|
|
79
100
|
(t) => t.label.toLowerCase().includes(e.toLowerCase())
|
|
80
101
|
),
|
|
81
|
-
command: ({ editor: e, range: t, props:
|
|
82
|
-
|
|
83
|
-
type:
|
|
102
|
+
command: ({ editor: e, range: t, props: s }) => {
|
|
103
|
+
o.picked = !0, e.chain().focus().deleteRange(t).insertContent({
|
|
104
|
+
type: u,
|
|
84
105
|
attrs: {
|
|
85
|
-
id:
|
|
86
|
-
label:
|
|
87
|
-
kind:
|
|
106
|
+
id: s.id,
|
|
107
|
+
label: s.label,
|
|
108
|
+
kind: s.meta?.kind ?? null,
|
|
109
|
+
source: s.meta?.source ?? null
|
|
88
110
|
}
|
|
89
|
-
}).run(),
|
|
111
|
+
}).run(), c?.(s, d);
|
|
90
112
|
},
|
|
91
|
-
render:
|
|
113
|
+
render: T(i, o)
|
|
92
114
|
}
|
|
93
115
|
});
|
|
94
116
|
}
|
|
95
|
-
function
|
|
117
|
+
function H(u, r, d, a, c, i) {
|
|
96
118
|
return g(
|
|
97
119
|
"mentionAgent",
|
|
98
120
|
"bik-mention bik-mention--agent",
|
|
99
121
|
"@",
|
|
100
|
-
|
|
122
|
+
u,
|
|
101
123
|
r,
|
|
102
|
-
{ renderItem:
|
|
124
|
+
{ renderItem: d, renderDropdown: a, removeTriggerOnDismiss: c, renderChipIcon: i }
|
|
103
125
|
);
|
|
104
126
|
}
|
|
105
|
-
function
|
|
127
|
+
function S(u, r, d, a, c) {
|
|
106
128
|
return g(
|
|
107
129
|
"mentionTeam",
|
|
108
130
|
"bik-mention bik-mention--team",
|
|
109
131
|
"#",
|
|
110
|
-
|
|
132
|
+
u,
|
|
111
133
|
r,
|
|
112
|
-
{ renderItem:
|
|
134
|
+
{ renderItem: d, renderDropdown: a, removeTriggerOnDismiss: c }
|
|
113
135
|
);
|
|
114
136
|
}
|
|
115
137
|
export {
|
|
116
|
-
|
|
117
|
-
|
|
138
|
+
H as buildAgentMentionExtension,
|
|
139
|
+
S as buildTeamMentionExtension
|
|
118
140
|
};
|
|
119
141
|
//# sourceMappingURL=MentionExtension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionExtension.js","sources":["../../../../../src/editor/extensions/mention/MentionExtension.ts"],"sourcesContent":["import { mergeAttributes } from '@tiptap/core';\nimport Mention from '@tiptap/extension-mention';\nimport { ReactRenderer } from '@tiptap/react';\nimport type { ReactNode } from 'react';\nimport type {\n\tMentionDropdownRenderProps,\n\tMentionItem,\n} from '../../BikEditor.types';\nimport {\n\tcreateSuggestionPopup,\n\ttype SuggestionPopup,\n} from '../suggestionPopup';\nimport { MentionDropdown } from './MentionDropdown';\n\ninterface MentionBuildOptions {\n\trenderItem?: (item: MentionItem, isActive: boolean) => ReactNode;\n\trenderDropdown?: (props: MentionDropdownRenderProps) => ReactNode;\n\t/** Remove the typed trigger char + query if the menu closes without a selection. */\n\tremoveTriggerOnDismiss?: boolean;\n}\n\nfunction buildRender(\n\toptions: MentionBuildOptions,\n\tpickedRef: { picked: boolean },\n) {\n\tconst { renderItem, renderDropdown, removeTriggerOnDismiss } = options;\n\treturn () => {\n\t\tlet component: ReactRenderer;\n\t\tlet popup: SuggestionPopup;\n\t\tlet latestProps: any;\n\t\t// Closes the menu when the user clicks anywhere outside it. The `@` popup\n\t\t// lives on document.body (not inside the editor), so nothing dismisses it on\n\t\t// an outside click otherwise — only Escape / moving the cursor did.\n\t\tlet onDocMouseDown: ((event: MouseEvent) => void) | null = null;\n\n\t\t// Close the menu without a selection: drop the typed \"@query\" so no orphan\n\t\t// trigger is left, and mark as picked so onExit doesn't delete it twice.\n\t\tconst dismiss = () => {\n\t\t\tpickedRef.picked = true;\n\t\t\tif (latestProps?.editor && latestProps?.range) {\n\t\t\t\tconst { editor, range } = latestProps;\n\t\t\t\teditor.chain().focus().deleteRange(range).run();\n\t\t\t}\n\t\t};\n\n\t\treturn {\n\t\t\tonStart: (props: any) => {\n\t\t\t\tlatestProps = props;\n\t\t\t\tpickedRef.picked = false;\n\t\t\t\tcomponent = new ReactRenderer(MentionDropdown, {\n\t\t\t\t\tprops: { ...props, renderItem, renderDropdown, dismiss },\n\t\t\t\t\teditor: props.editor,\n\t\t\t\t});\n\t\t\t\tpopup = createSuggestionPopup(component.element, props.clientRect);\n\t\t\t\tonDocMouseDown = (event: MouseEvent) => {\n\t\t\t\t\tconst target = event.target as Node | null;\n\t\t\t\t\tif (!target) return;\n\t\t\t\t\t// Inside the picker → keep open (row clicks fire on `click`).\n\t\t\t\t\tif (popup.element.contains(target)) return;\n\t\t\t\t\t// Inside the editor → the suggestion plugin already closes it.\n\t\t\t\t\tconst editorDom = latestProps?.editor?.view?.dom as\n\t\t\t\t\t\t| HTMLElement\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tif (editorDom?.contains(target)) return;\n\t\t\t\t\t// Anywhere else → drop the typed \"@query\" (no refocus — clicking\n\t\t\t\t\t// away shouldn't yank focus back) and close.\n\t\t\t\t\tpickedRef.picked = true;\n\t\t\t\t\tif (latestProps?.editor && latestProps?.range) {\n\t\t\t\t\t\tlatestProps.editor.chain().deleteRange(latestProps.range).run();\n\t\t\t\t\t}\n\t\t\t\t\tpopup.hide();\n\t\t\t\t};\n\t\t\t\tdocument.addEventListener('mousedown', onDocMouseDown);\n\t\t\t},\n\t\t\tonUpdate: (props: any) => {\n\t\t\t\tlatestProps = props;\n\t\t\t\tcomponent.updateProps({\n\t\t\t\t\t...props,\n\t\t\t\t\trenderItem,\n\t\t\t\t\trenderDropdown,\n\t\t\t\t\tdismiss,\n\t\t\t\t});\n\t\t\t\tif (!props.items?.length) {\n\t\t\t\t\tpopup.hide();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tpopup.show();\n\t\t\t\tpopup.updatePosition(props.clientRect);\n\t\t\t},\n\t\t\tonKeyDown: (props: any) => {\n\t\t\t\tif (props.event.key === 'Escape') {\n\t\t\t\t\tpopup.hide();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn (component.ref as any)?.onKeyDown(props) ?? false;\n\t\t\t},\n\t\t\tonExit: () => {\n\t\t\t\tif (onDocMouseDown) {\n\t\t\t\t\tdocument.removeEventListener('mousedown', onDocMouseDown);\n\t\t\t\t\tonDocMouseDown = null;\n\t\t\t\t}\n\t\t\t\tpopup.destroy();\n\t\t\t\tcomponent.destroy();\n\t\t\t\t// Nothing was picked → strip the orphan \"@query\" the user typed.\n\t\t\t\tif (\n\t\t\t\t\tremoveTriggerOnDismiss &&\n\t\t\t\t\t!pickedRef.picked &&\n\t\t\t\t\tlatestProps?.editor &&\n\t\t\t\t\tlatestProps?.range\n\t\t\t\t) {\n\t\t\t\t\tconst { editor, range } = latestProps;\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (!editor.isDestroyed) {\n\t\t\t\t\t\t\teditor.chain().deleteRange(range).run();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t};\n}\n\n/**\n * Builds a TipTap Mention extension.\n *\n * Each inserted node carries an optional `kind` attribute. When set, the chip is\n * rendered WITHOUT the trigger char (the `label` already encodes the full text)\n * and a `data-kind` attribute is emitted so CSS can colour it per kind. When\n * `kind` is null the legacy `${char}${label}` chip is rendered (back-compatible).\n */\nfunction buildMentionExtension(\n\tname: 'mentionAgent' | 'mentionTeam',\n\tcssClass: string,\n\tchar: '@' | '#',\n\titemsRef: { current: MentionItem[] },\n\tonSelect: ((item: MentionItem, char: '@' | '#') => void) | undefined,\n\toptions: MentionBuildOptions,\n) {\n\tconst pickedRef = { picked: false };\n\n\treturn Mention.extend({\n\t\tname,\n\t\taddAttributes() {\n\t\t\treturn {\n\t\t\t\t...this.parent?.(),\n\t\t\t\tkind: {\n\t\t\t\t\tdefault: null,\n\t\t\t\t\tparseHTML: (el: HTMLElement) => el.getAttribute('data-kind'),\n\t\t\t\t\trenderHTML: (attrs: Record<string, unknown>) =>\n\t\t\t\t\t\tattrs['kind'] ? { 'data-kind': String(attrs['kind']) } : {},\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t}).configure({\n\t\tHTMLAttributes: { class: cssClass },\n\t\trenderText: ({ options: opt, node }: any) =>\n\t\t\t`${node.attrs['kind'] ? '' : opt.suggestion.char}${node.attrs['label']}`,\n\t\trenderHTML: ({ options: opt, node }: any) => [\n\t\t\t'span',\n\t\t\tmergeAttributes(\n\t\t\t\topt.HTMLAttributes,\n\t\t\t\tnode.attrs['kind'] ? { 'data-kind': String(node.attrs['kind']) } : {},\n\t\t\t),\n\t\t\t`${node.attrs['kind'] ? '' : opt.suggestion.char}${node.attrs['label']}`,\n\t\t],\n\t\tsuggestion: {\n\t\t\tchar,\n\t\t\tallowSpaces: true,\n\t\t\titems: ({ query }: { query: string }) =>\n\t\t\t\titemsRef.current.filter((a) =>\n\t\t\t\t\ta.label.toLowerCase().includes(query.toLowerCase()),\n\t\t\t\t),\n\t\t\tcommand: ({ editor, range, props }: any) => {\n\t\t\t\tpickedRef.picked = true;\n\t\t\t\teditor\n\t\t\t\t\t.chain()\n\t\t\t\t\t.focus()\n\t\t\t\t\t.deleteRange(range)\n\t\t\t\t\t.insertContent({\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tid: props.id,\n\t\t\t\t\t\t\tlabel: props.label,\n\t\t\t\t\t\t\tkind: props.meta?.kind ?? null,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t.run();\n\t\t\t\tonSelect?.(props, char);\n\t\t\t},\n\t\t\trender: buildRender(options, pickedRef),\n\t\t},\n\t});\n}\n\nexport function buildAgentMentionExtension(\n\tagentsRef: { current: MentionItem[] },\n\tonSelect?: (item: MentionItem, char: '@' | '#') => void,\n\trenderItem?: (item: MentionItem, isActive: boolean) => ReactNode,\n\trenderDropdown?: (props: MentionDropdownRenderProps) => ReactNode,\n\tremoveTriggerOnDismiss?: boolean,\n) {\n\treturn buildMentionExtension(\n\t\t'mentionAgent',\n\t\t'bik-mention bik-mention--agent',\n\t\t'@',\n\t\tagentsRef,\n\t\tonSelect,\n\t\t{ renderItem, renderDropdown, removeTriggerOnDismiss },\n\t);\n}\n\nexport function buildTeamMentionExtension(\n\tteamsRef: { current: MentionItem[] },\n\tonSelect?: (item: MentionItem, char: '@' | '#') => void,\n\trenderItem?: (item: MentionItem, isActive: boolean) => ReactNode,\n\trenderDropdown?: (props: MentionDropdownRenderProps) => ReactNode,\n\tremoveTriggerOnDismiss?: boolean,\n) {\n\treturn buildMentionExtension(\n\t\t'mentionTeam',\n\t\t'bik-mention bik-mention--team',\n\t\t'#',\n\t\tteamsRef,\n\t\tonSelect,\n\t\t{ renderItem, renderDropdown, removeTriggerOnDismiss },\n\t);\n}\n"],"names":["buildRender","options","pickedRef","renderItem","renderDropdown","removeTriggerOnDismiss","component","popup","latestProps","onDocMouseDown","dismiss","editor","range","props","ReactRenderer","MentionDropdown","createSuggestionPopup","event","target","buildMentionExtension","name","cssClass","char","itemsRef","onSelect","Mention","el","attrs","opt","node","mergeAttributes","query","a","buildAgentMentionExtension","agentsRef","buildTeamMentionExtension","teamsRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MentionExtension.js","sources":["../../../../../src/editor/extensions/mention/MentionExtension.ts"],"sourcesContent":["import { mergeAttributes } from '@tiptap/core';\nimport Mention from '@tiptap/extension-mention';\nimport { ReactNodeViewRenderer, ReactRenderer } from '@tiptap/react';\nimport type { ReactNode } from 'react';\nimport type {\n\tMentionDropdownRenderProps,\n\tMentionItem,\n} from '../../BikEditor.types';\nimport {\n\tcreateSuggestionPopup,\n\ttype SuggestionPopup,\n} from '../suggestionPopup';\nimport { buildMentionChipNodeView } from './MentionChipNodeView';\nimport { MentionDropdown } from './MentionDropdown';\n\ninterface MentionBuildOptions {\n\trenderItem?: (item: MentionItem, isActive: boolean) => ReactNode;\n\trenderDropdown?: (props: MentionDropdownRenderProps) => ReactNode;\n\t/** Remove the typed trigger char + query if the menu closes without a selection. */\n\tremoveTriggerOnDismiss?: boolean;\n\t/**\n\t * Leading glyph rendered inside the chip (e.g. a tool's source icon). Supplying\n\t * it switches the chip to a React node view; omit to keep the plain chip.\n\t */\n\trenderChipIcon?: (source: string | null, kind: string | null) => ReactNode;\n}\n\nfunction buildRender(\n\toptions: MentionBuildOptions,\n\tpickedRef: { picked: boolean },\n) {\n\tconst { renderItem, renderDropdown, removeTriggerOnDismiss } = options;\n\treturn () => {\n\t\tlet component: ReactRenderer;\n\t\tlet popup: SuggestionPopup;\n\t\tlet latestProps: any;\n\t\t// Closes the menu when the user clicks anywhere outside it. The `@` popup\n\t\t// lives on document.body (not inside the editor), so nothing dismisses it on\n\t\t// an outside click otherwise — only Escape / moving the cursor did.\n\t\tlet onDocMouseDown: ((event: MouseEvent) => void) | null = null;\n\n\t\t// Close the menu without a selection: drop the typed \"@query\" so no orphan\n\t\t// trigger is left, and mark as picked so onExit doesn't delete it twice.\n\t\tconst dismiss = () => {\n\t\t\tpickedRef.picked = true;\n\t\t\tif (latestProps?.editor && latestProps?.range) {\n\t\t\t\tconst { editor, range } = latestProps;\n\t\t\t\teditor.chain().focus().deleteRange(range).run();\n\t\t\t}\n\t\t};\n\n\t\treturn {\n\t\t\tonStart: (props: any) => {\n\t\t\t\tlatestProps = props;\n\t\t\t\tpickedRef.picked = false;\n\t\t\t\tcomponent = new ReactRenderer(MentionDropdown, {\n\t\t\t\t\tprops: { ...props, renderItem, renderDropdown, dismiss },\n\t\t\t\t\teditor: props.editor,\n\t\t\t\t});\n\t\t\t\tpopup = createSuggestionPopup(component.element, props.clientRect);\n\t\t\t\tonDocMouseDown = (event: MouseEvent) => {\n\t\t\t\t\tconst target = event.target as Node | null;\n\t\t\t\t\tif (!target) return;\n\t\t\t\t\t// Inside the picker → keep open (row clicks fire on `click`).\n\t\t\t\t\tif (popup.element.contains(target)) return;\n\t\t\t\t\t// Inside the editor → the suggestion plugin already closes it.\n\t\t\t\t\tconst editorDom = latestProps?.editor?.view?.dom as\n\t\t\t\t\t\t| HTMLElement\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tif (editorDom?.contains(target)) return;\n\t\t\t\t\t// Anywhere else → drop the typed \"@query\" (no refocus — clicking\n\t\t\t\t\t// away shouldn't yank focus back) and close.\n\t\t\t\t\tpickedRef.picked = true;\n\t\t\t\t\tif (latestProps?.editor && latestProps?.range) {\n\t\t\t\t\t\tlatestProps.editor.chain().deleteRange(latestProps.range).run();\n\t\t\t\t\t}\n\t\t\t\t\tpopup.hide();\n\t\t\t\t};\n\t\t\t\tdocument.addEventListener('mousedown', onDocMouseDown);\n\t\t\t},\n\t\t\tonUpdate: (props: any) => {\n\t\t\t\tlatestProps = props;\n\t\t\t\tcomponent.updateProps({\n\t\t\t\t\t...props,\n\t\t\t\t\trenderItem,\n\t\t\t\t\trenderDropdown,\n\t\t\t\t\tdismiss,\n\t\t\t\t});\n\t\t\t\tif (!props.items?.length) {\n\t\t\t\t\tpopup.hide();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tpopup.show();\n\t\t\t\tpopup.updatePosition(props.clientRect);\n\t\t\t},\n\t\t\tonKeyDown: (props: any) => {\n\t\t\t\tif (props.event.key === 'Escape') {\n\t\t\t\t\tpopup.hide();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn (component.ref as any)?.onKeyDown(props) ?? false;\n\t\t\t},\n\t\t\tonExit: () => {\n\t\t\t\tif (onDocMouseDown) {\n\t\t\t\t\tdocument.removeEventListener('mousedown', onDocMouseDown);\n\t\t\t\t\tonDocMouseDown = null;\n\t\t\t\t}\n\t\t\t\tpopup.destroy();\n\t\t\t\tcomponent.destroy();\n\t\t\t\t// Nothing was picked → strip the orphan \"@query\" the user typed.\n\t\t\t\tif (\n\t\t\t\t\tremoveTriggerOnDismiss &&\n\t\t\t\t\t!pickedRef.picked &&\n\t\t\t\t\tlatestProps?.editor &&\n\t\t\t\t\tlatestProps?.range\n\t\t\t\t) {\n\t\t\t\t\tconst { editor, range } = latestProps;\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (!editor.isDestroyed) {\n\t\t\t\t\t\t\teditor.chain().deleteRange(range).run();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t};\n}\n\n/**\n * Builds a TipTap Mention extension.\n *\n * Each inserted node carries an optional `kind` attribute. When set, the chip is\n * rendered WITHOUT the trigger char (the `label` already encodes the full text)\n * and a `data-kind` attribute is emitted so CSS can colour it per kind. When\n * `kind` is null the legacy `${char}${label}` chip is rendered (back-compatible).\n */\nfunction buildMentionExtension(\n\tname: 'mentionAgent' | 'mentionTeam',\n\tcssClass: string,\n\tchar: '@' | '#',\n\titemsRef: { current: MentionItem[] },\n\tonSelect: ((item: MentionItem, char: '@' | '#') => void) | undefined,\n\toptions: MentionBuildOptions,\n) {\n\tconst pickedRef = { picked: false };\n\n\treturn Mention.extend({\n\t\tname,\n\t\taddAttributes() {\n\t\t\treturn {\n\t\t\t\t...this.parent?.(),\n\t\t\t\tkind: {\n\t\t\t\t\tdefault: null,\n\t\t\t\t\tparseHTML: (el: HTMLElement) => el.getAttribute('data-kind'),\n\t\t\t\t\trenderHTML: (attrs: Record<string, unknown>) =>\n\t\t\t\t\t\tattrs['kind'] ? { 'data-kind': String(attrs['kind']) } : {},\n\t\t\t\t},\n\t\t\t\t// Tool source bucket (manifest / shopify / …); drives the chip icon.\n\t\t\t\tsource: {\n\t\t\t\t\tdefault: null,\n\t\t\t\t\tparseHTML: (el: HTMLElement) => el.getAttribute('data-source'),\n\t\t\t\t\trenderHTML: (attrs: Record<string, unknown>) =>\n\t\t\t\t\t\tattrs['source'] ? { 'data-source': String(attrs['source']) } : {},\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t\t// A React chip (with the leading source icon) only when the consumer asks for\n\t\t// it — otherwise the plain renderHTML chip is kept (unchanged for CRM etc.).\n\t\t...(options.renderChipIcon\n\t\t\t? {\n\t\t\t\t\taddNodeView() {\n\t\t\t\t\t\treturn ReactNodeViewRenderer(\n\t\t\t\t\t\t\tbuildMentionChipNodeView({\n\t\t\t\t\t\t\t\tcssClass,\n\t\t\t\t\t\t\t\tchar,\n\t\t\t\t\t\t\t\trenderChipIcon: options.renderChipIcon,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: {}),\n\t}).configure({\n\t\tHTMLAttributes: { class: cssClass },\n\t\trenderText: ({ options: opt, node }: any) =>\n\t\t\t`${node.attrs['kind'] ? '' : opt.suggestion.char}${node.attrs['label']}`,\n\t\trenderHTML: ({ options: opt, node }: any) => [\n\t\t\t'span',\n\t\t\tmergeAttributes(\n\t\t\t\topt.HTMLAttributes,\n\t\t\t\tnode.attrs['kind'] ? { 'data-kind': String(node.attrs['kind']) } : {},\n\t\t\t\tnode.attrs['source']\n\t\t\t\t\t? { 'data-source': String(node.attrs['source']) }\n\t\t\t\t\t: {},\n\t\t\t),\n\t\t\t`${node.attrs['kind'] ? '' : opt.suggestion.char}${node.attrs['label']}`,\n\t\t],\n\t\tsuggestion: {\n\t\t\tchar,\n\t\t\tallowSpaces: true,\n\t\t\titems: ({ query }: { query: string }) =>\n\t\t\t\titemsRef.current.filter((a) =>\n\t\t\t\t\ta.label.toLowerCase().includes(query.toLowerCase()),\n\t\t\t\t),\n\t\t\tcommand: ({ editor, range, props }: any) => {\n\t\t\t\tpickedRef.picked = true;\n\t\t\t\teditor\n\t\t\t\t\t.chain()\n\t\t\t\t\t.focus()\n\t\t\t\t\t.deleteRange(range)\n\t\t\t\t\t.insertContent({\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tid: props.id,\n\t\t\t\t\t\t\tlabel: props.label,\n\t\t\t\t\t\t\tkind: props.meta?.kind ?? null,\n\t\t\t\t\t\t\tsource: props.meta?.source ?? null,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t.run();\n\t\t\t\tonSelect?.(props, char);\n\t\t\t},\n\t\t\trender: buildRender(options, pickedRef),\n\t\t},\n\t});\n}\n\nexport function buildAgentMentionExtension(\n\tagentsRef: { current: MentionItem[] },\n\tonSelect?: (item: MentionItem, char: '@' | '#') => void,\n\trenderItem?: (item: MentionItem, isActive: boolean) => ReactNode,\n\trenderDropdown?: (props: MentionDropdownRenderProps) => ReactNode,\n\tremoveTriggerOnDismiss?: boolean,\n\trenderChipIcon?: (source: string | null, kind: string | null) => ReactNode,\n) {\n\treturn buildMentionExtension(\n\t\t'mentionAgent',\n\t\t'bik-mention bik-mention--agent',\n\t\t'@',\n\t\tagentsRef,\n\t\tonSelect,\n\t\t{ renderItem, renderDropdown, removeTriggerOnDismiss, renderChipIcon },\n\t);\n}\n\nexport function buildTeamMentionExtension(\n\tteamsRef: { current: MentionItem[] },\n\tonSelect?: (item: MentionItem, char: '@' | '#') => void,\n\trenderItem?: (item: MentionItem, isActive: boolean) => ReactNode,\n\trenderDropdown?: (props: MentionDropdownRenderProps) => ReactNode,\n\tremoveTriggerOnDismiss?: boolean,\n) {\n\treturn buildMentionExtension(\n\t\t'mentionTeam',\n\t\t'bik-mention bik-mention--team',\n\t\t'#',\n\t\tteamsRef,\n\t\tonSelect,\n\t\t{ renderItem, renderDropdown, removeTriggerOnDismiss },\n\t);\n}\n"],"names":["buildRender","options","pickedRef","renderItem","renderDropdown","removeTriggerOnDismiss","component","popup","latestProps","onDocMouseDown","dismiss","editor","range","props","ReactRenderer","MentionDropdown","createSuggestionPopup","event","target","buildMentionExtension","name","cssClass","char","itemsRef","onSelect","Mention","el","attrs","ReactNodeViewRenderer","buildMentionChipNodeView","opt","node","mergeAttributes","query","a","buildAgentMentionExtension","agentsRef","renderChipIcon","buildTeamMentionExtension","teamsRef"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgShieldOutline: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgShieldOutline;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
const n = ({
|
|
3
|
+
size: C = 24,
|
|
4
|
+
color: l = "currentColor",
|
|
5
|
+
...o
|
|
6
|
+
}) => {
|
|
7
|
+
const r = {
|
|
8
|
+
width: C,
|
|
9
|
+
height: C,
|
|
10
|
+
color: l,
|
|
11
|
+
...o
|
|
12
|
+
};
|
|
13
|
+
return /* @__PURE__ */ e(
|
|
14
|
+
"svg",
|
|
15
|
+
{
|
|
16
|
+
viewBox: "0 0 20 20",
|
|
17
|
+
fill: "none",
|
|
18
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
19
|
+
...r,
|
|
20
|
+
children: /* @__PURE__ */ e(
|
|
21
|
+
"path",
|
|
22
|
+
{
|
|
23
|
+
fillRule: "evenodd",
|
|
24
|
+
clipRule: "evenodd",
|
|
25
|
+
d: "M10.2048 3.62015C10.0728 3.57063 9.92724 3.57063 9.79518 3.62015L5.12851 5.37015C4.90083 5.45553 4.75 5.67318 4.75 5.91634V9.99967C4.75 12.0101 6.08102 13.6165 7.28254 14.6678C7.89555 15.2042 8.50582 15.6235 8.96167 15.9084C9.1902 16.0512 9.38148 16.1613 9.51696 16.2363C9.58474 16.2738 9.63867 16.3026 9.67644 16.3224C9.69533 16.3323 9.71018 16.34 9.72073 16.3454L9.73327 16.3518L9.73704 16.3537L9.73877 16.3546C9.90299 16.4367 10.0966 16.4369 10.2609 16.3548L10 15.833C10.2609 16.3548 10.2609 16.3548 10.2609 16.3548L10.263 16.3537L10.2667 16.3518L10.2793 16.3454C10.2898 16.34 10.3047 16.3323 10.3236 16.3224C10.3613 16.3026 10.4153 16.2738 10.483 16.2363C10.6185 16.1613 10.8098 16.0512 11.0383 15.9084C11.4942 15.6235 12.1044 15.2042 12.7175 14.6678C13.919 13.6165 15.25 12.0101 15.25 9.99967V5.91634C15.25 5.67318 15.0992 5.45553 14.8715 5.37015L10.2048 3.62015ZM10 15.833L9.73877 16.3546C9.73877 16.3546 9.73913 16.3548 10 15.833ZM10.42 14.9191C10.2547 15.0224 10.1118 15.1063 10 15.1696C9.88821 15.1063 9.74526 15.0224 9.58 14.9191C9.16085 14.6571 8.60445 14.2743 8.05079 13.7898C6.91898 12.7995 5.91667 11.4893 5.91667 9.99967V6.32059L10 4.78934L14.0833 6.32059V9.99967C14.0833 11.4893 13.081 12.7995 11.9492 13.7898C11.3956 14.2743 10.8391 14.6571 10.42 14.9191Z",
|
|
26
|
+
fill: "currentColor"
|
|
27
|
+
}
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
export {
|
|
33
|
+
n as default
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=ShieldOutline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShieldOutline.js","sources":["../../../../../src/icons/Informational/Common UI/ShieldOutline.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\ninterface Props extends SVGProps<SVGSVGElement> {\n\tsize?: number | string;\n\tcolor?: string;\n}\nconst SvgShieldOutline = ({\n\tsize = 24,\n\tcolor = 'currentColor',\n\t...rest\n}: Props) => {\n\tconst props = {\n\t\twidth: size,\n\t\theight: size,\n\t\tcolor,\n\t\t...rest,\n\t};\n\treturn (\n\t\t<svg\n\t\t\tviewBox=\"0 0 20 20\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\td=\"M10.2048 3.62015C10.0728 3.57063 9.92724 3.57063 9.79518 3.62015L5.12851 5.37015C4.90083 5.45553 4.75 5.67318 4.75 5.91634V9.99967C4.75 12.0101 6.08102 13.6165 7.28254 14.6678C7.89555 15.2042 8.50582 15.6235 8.96167 15.9084C9.1902 16.0512 9.38148 16.1613 9.51696 16.2363C9.58474 16.2738 9.63867 16.3026 9.67644 16.3224C9.69533 16.3323 9.71018 16.34 9.72073 16.3454L9.73327 16.3518L9.73704 16.3537L9.73877 16.3546C9.90299 16.4367 10.0966 16.4369 10.2609 16.3548L10 15.833C10.2609 16.3548 10.2609 16.3548 10.2609 16.3548L10.263 16.3537L10.2667 16.3518L10.2793 16.3454C10.2898 16.34 10.3047 16.3323 10.3236 16.3224C10.3613 16.3026 10.4153 16.2738 10.483 16.2363C10.6185 16.1613 10.8098 16.0512 11.0383 15.9084C11.4942 15.6235 12.1044 15.2042 12.7175 14.6678C13.919 13.6165 15.25 12.0101 15.25 9.99967V5.91634C15.25 5.67318 15.0992 5.45553 14.8715 5.37015L10.2048 3.62015ZM10 15.833L9.73877 16.3546C9.73877 16.3546 9.73913 16.3548 10 15.833ZM10.42 14.9191C10.2547 15.0224 10.1118 15.1063 10 15.1696C9.88821 15.1063 9.74526 15.0224 9.58 14.9191C9.16085 14.6571 8.60445 14.2743 8.05079 13.7898C6.91898 12.7995 5.91667 11.4893 5.91667 9.99967V6.32059L10 4.78934L14.0833 6.32059V9.99967C14.0833 11.4893 13.081 12.7995 11.9492 13.7898C11.3956 14.2743 10.8391 14.6571 10.42 14.9191Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t);\n};\nexport default SvgShieldOutline;\n"],"names":["SvgShieldOutline","size","color","rest","props","jsx"],"mappings":";AAMA,MAAMA,IAAmB,CAAC;AAAA,EACzB,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,GAAGC;AACJ,MAAa;AACZ,QAAMC,IAAQ;AAAA,IACb,OAAOH;AAAA,IACP,QAAQA;AAAA,IACR,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA;AAEJ,SACC,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MACL,GAAGD;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAGH;"}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
export { Send, Activate, Code, Cross, Deactivate, Delete, Edit, Forward, Fullscreen, LinkSimpleHorizontal, Minus, Plus, ProductTour, RestApi, Save, SendAirplane, ShareAndroid, Shortcut, Task } from './Actions/Common actions';
|
|
2
|
-
export { CheckboxIcon, Copy, DecreaseIndent, Dropdown, IncreaseIndent, MultiLine, MultiSelect, Number, NumberList, Quotes, Subscript, Superscript, TextBold, Text, TextAlignCenter, TextAlignLeft, TextAlignRight, TextItalics, TextJustify, TextStrikethrough, TextUnderline, Textbox } from './Actions/Formatting';
|
|
3
|
-
export { ArrowRedo, ArrowUndo, LogIn, LogOut, OpenNewWindow, Refresh, Rewind, Sync, Whatsapp } from './Actions/Navigation';
|
|
1
|
+
export { Send, Activate, Code, Cross, Deactivate, Delete, Edit, Forward, Fullscreen, LinkSimpleHorizontal, Minus, Plus, ProductTour, RestApi, Save, SendAirplane, ShareAndroid, Shortcut, Task, } from './Actions/Common actions';
|
|
2
|
+
export { CheckboxIcon, Copy, DecreaseIndent, Dropdown, IncreaseIndent, MultiLine, MultiSelect, Number, NumberList, Quotes, Subscript, Superscript, TextBold, Text, TextAlignCenter, TextAlignLeft, TextAlignRight, TextItalics, TextJustify, TextStrikethrough, TextUnderline, Textbox, } from './Actions/Formatting';
|
|
3
|
+
export { ArrowRedo, ArrowUndo, LogIn, LogOut, OpenNewWindow, Refresh, Rewind, Sync, Whatsapp, } from './Actions/Navigation';
|
|
4
4
|
export { HandleDrag, SingleChoice } from './Actions/Selection';
|
|
5
5
|
export { CaratDown, CaratLeft, CaratRight, CaratUp } from './Arrows/Carat';
|
|
6
|
-
export { ChevronDown, ChevronLeft, ChevronRight, ChevronUp } from './Arrows/Chevron';
|
|
7
|
-
export { ChevronDoubleDown, ChevronDoubleLeft, ChevronDoubleRight, ChevronDoubleUp } from './Arrows/Double chevron';
|
|
8
|
-
export { ArrowDown, ArrowDownLeft, ArrowDownRight, ArrowLeft, ArrowRight, ArrowUp, ArrowUpLeft, ArrowUpRight } from './Arrows/Normal arrows';
|
|
6
|
+
export { ChevronDown, ChevronLeft, ChevronRight, ChevronUp, } from './Arrows/Chevron';
|
|
7
|
+
export { ChevronDoubleDown, ChevronDoubleLeft, ChevronDoubleRight, ChevronDoubleUp, } from './Arrows/Double chevron';
|
|
8
|
+
export { ArrowDown, ArrowDownLeft, ArrowDownRight, ArrowLeft, ArrowRight, ArrowUp, ArrowUpLeft, ArrowUpRight, } from './Arrows/Normal arrows';
|
|
9
9
|
export { ArrowSwitch } from './Arrows/Special';
|
|
10
|
-
export { AiVoice, AiIcon, Webhook, AiAgent, AiEmoji, AiRobot, Expand, Frame27389, Frame27597, Frame27598, Frame27599, GeminiSparkle, ManifestSparkle, PricePlease, Shape, Shorter, Sparkling2Line, WandSparkles, Write } from './BIK AI specific';
|
|
11
|
-
export { Shield, Bell, BellSync, Bulb, Forms, MenuHamburger, MessageSearch, MoreHorizontal, MoreVertical, Placeholder, Search, Settings, Training } from './Informational/Common UI';
|
|
12
|
-
export { Chat, ChatCheck, ChatQuestion, ChatStar, Email, LiveChat, Phone } from './Informational/Communication';
|
|
13
|
-
export { ClipboardCheck, Experimental, Help, Percent, Purchase, Services, ShoppingCart, Unsatisfactory, UserSound } from './Informational/Customer intent';
|
|
10
|
+
export { AiVoice, AiIcon, Webhook, AiAgent, AiEmoji, AiRobot, Expand, Frame27389, Frame27597, Frame27598, Frame27599, GeminiSparkle, ManifestSparkle, PricePlease, Shape, Shorter, Sparkling2Line, WandSparkles, Write, } from './BIK AI specific';
|
|
11
|
+
export { Shield, ShieldOutline, Bell, BellSync, Bulb, Forms, MenuHamburger, MessageSearch, MoreHorizontal, MoreVertical, Placeholder, Search, Settings, Training, } from './Informational/Common UI';
|
|
12
|
+
export { Chat, ChatCheck, ChatQuestion, ChatStar, Email, LiveChat, Phone, } from './Informational/Communication';
|
|
13
|
+
export { ClipboardCheck, Experimental, Help, Percent, Purchase, Services, ShoppingCart, Unsatisfactory, UserSound, } from './Informational/Customer intent';
|
|
14
14
|
export { SingleChoice as SingleChoice2 } from './Informational/Customer intent';
|
|
15
|
-
export { CalendarCheck, Calendar, CalendarAdd, Clock, HourGlass, WorkingHours } from './Informational/Date and time';
|
|
16
|
-
export { AddLabel, Click, Filter, Gift1, GiftMinus, GiftPlus, Promocode, Receipt, ShieldCheck, ShoppingBag, ShoppingBasket } from './Informational/eCommerce';
|
|
15
|
+
export { CalendarCheck, Calendar, CalendarAdd, Clock, HourGlass, WorkingHours, } from './Informational/Date and time';
|
|
16
|
+
export { AddLabel, Click, Filter, Gift1, GiftMinus, GiftPlus, Promocode, Receipt, ShieldCheck, ShoppingBag, ShoppingBasket, } from './Informational/eCommerce';
|
|
17
17
|
export { ShoppingCart as ShoppingCart2 } from './Informational/eCommerce';
|
|
18
|
-
export { Archive1, Excel, File, FileCsv, FilePage, FilePdf, Folder, MediaMessage, Move, OrderHistory, PrivateNote, TextMessage, Unarchive } from './Informational/Files and folders';
|
|
19
|
-
export { Bank, CashOnDelivery, ChartLine, CreditCard, Growth, Money1, NoCredits, Rupee, TablerTicket, Wallet } from './Informational/Finance';
|
|
18
|
+
export { Archive1, Excel, File, FileCsv, FilePage, FilePdf, Folder, MediaMessage, Move, OrderHistory, PrivateNote, TextMessage, Unarchive, } from './Informational/Files and folders';
|
|
19
|
+
export { Bank, CashOnDelivery, ChartLine, CreditCard, Growth, Money1, NoCredits, Rupee, TablerTicket, Wallet, } from './Informational/Finance';
|
|
20
20
|
export { Percent as Percent2 } from './Informational/Finance';
|
|
21
|
-
export { BookOpenText, TicketV2, AlertTriangle, Check, CheckDouble, CloseTicket1, Error, FailDoc, HourglassFilled, IcList, Info, Merge, NewTicket, RoundCheck, Slash } from './Informational/General';
|
|
21
|
+
export { BookOpenText, TicketV2, AlertTriangle, Check, CheckDouble, CloseTicket1, Error, FailDoc, HourglassFilled, IcList, Info, Merge, NewTicket, RoundCheck, Slash, } from './Informational/General';
|
|
22
22
|
export { Help as Help2 } from './Informational/General';
|
|
23
|
-
export { User, Chatbot, Contacts, Group, IdCard, Person, Robot, Union, Union1, UserMinus1, UserPlus } from './Informational/Identity';
|
|
24
|
-
export { Address, LanguageChange, MapPin, Truck } from './Informational/Location';
|
|
25
|
-
export { AllProduct, Clipboard, CustomerReport, Head112, InventoryReport, LegalBalance, OrderReport, PaymentReport, Store, StoreSync, TicketForm } from './Informational/Store related';
|
|
23
|
+
export { User, Chatbot, Contacts, Group, IdCard, Person, Robot, Union, Union1, UserMinus1, UserPlus, } from './Informational/Identity';
|
|
24
|
+
export { Address, LanguageChange, MapPin, Truck, } from './Informational/Location';
|
|
25
|
+
export { AllProduct, Clipboard, CustomerReport, Head112, InventoryReport, LegalBalance, OrderReport, PaymentReport, Store, StoreSync, TicketForm, } from './Informational/Store related';
|
|
26
26
|
export { ClipboardCheck as ClipboardCheck2 } from './Informational/Store related';
|
|
27
27
|
export { Box, Box2 } from './Legacy - Bikayi specific/Categories';
|
|
28
28
|
export { Journeys } from './Legacy - Bikayi specific/Navigation';
|
|
29
29
|
export { Services as Services2 } from './Legacy - Bikayi specific/Navigation';
|
|
30
30
|
export { PlanUltimate } from './Legacy - Bikayi specific/Plans';
|
|
31
|
-
export { Businesscard, Customdomain, LoudSpeaker, Marketing, PaymentLink, Theme } from './Legacy - Bikayi specific/Services';
|
|
32
|
-
export { Microphone, Pause, Play, Sleep, VolumeMute, VolumeOneline, VolumeTwoline } from './Media/Audio';
|
|
31
|
+
export { Businesscard, Customdomain, LoudSpeaker, Marketing, PaymentLink, Theme, } from './Legacy - Bikayi specific/Services';
|
|
32
|
+
export { Microphone, Pause, Play, Sleep, VolumeMute, VolumeOneline, VolumeTwoline, } from './Media/Audio';
|
|
33
33
|
export { Desktop, Smartphone } from './Media/Devices';
|
|
34
|
-
export { BarcodeScan, Download, EmojiSmile, Paperclip, Upload } from './Media/Others';
|
|
35
|
-
export { Frame26086263, Camera, CameraAdd, Crop, FlashOff, FlashOn, FormkitHappy, FormkitNeutral, FormkitSad, IconTrailing, Image, ImageAdd, Images, Maximize, RotateAnticlockwise, RotateClockwise, VideoCamcorder, VideoFilm } from './Media/Visual';
|
|
36
|
-
export { EmailMarketingV2, EmailV2, FacebookCommentV2, FacebookV2, GmailV2, InstagramCommentV2, InstagramV2, MessengerV2, PhoneV2, RcsV2, SmsV2, TaskV2, WebpushV2, WhatsAppCallV2, WhatsAppV2, Bigcommerce, EmailMarketing, Facebook, FacebookComment, Instagram, InstagramIcon, Messenger, MonoFacebookComment, MonoFacebook, MonoInstagram, MonoInstagramComment, MonoMail, MonoMessenger, MonoPhone, MonoTasks, MonoWhatsapp, ShopifyBrand, Tasks, WebPush, WhatsApp } from './Social/Channels';
|
|
34
|
+
export { BarcodeScan, Download, EmojiSmile, Paperclip, Upload, } from './Media/Others';
|
|
35
|
+
export { Frame26086263, Camera, CameraAdd, Crop, FlashOff, FlashOn, FormkitHappy, FormkitNeutral, FormkitSad, IconTrailing, Image, ImageAdd, Images, Maximize, RotateAnticlockwise, RotateClockwise, VideoCamcorder, VideoFilm, } from './Media/Visual';
|
|
36
|
+
export { EmailMarketingV2, EmailV2, FacebookCommentV2, FacebookV2, GmailV2, InstagramCommentV2, InstagramV2, MessengerV2, PhoneV2, RcsV2, SmsV2, TaskV2, WebpushV2, WhatsAppCallV2, WhatsAppV2, Bigcommerce, EmailMarketing, Facebook, FacebookComment, Instagram, InstagramIcon, Messenger, MonoFacebookComment, MonoFacebook, MonoInstagram, MonoInstagramComment, MonoMail, MonoMessenger, MonoPhone, MonoTasks, MonoWhatsapp, ShopifyBrand, Tasks, WebPush, WhatsApp, } from './Social/Channels';
|
|
37
37
|
export { Email as Email2 } from './Social/Channels';
|
|
38
|
-
export { SlackIcon, BigCommerce, Google, Gorgias, Kustomer, Rcs, ShopifyDefault, Twitter, Website, WooCommerce, Youtube, Zendesk } from './Social/Social';
|
|
38
|
+
export { SlackIcon, BigCommerce, Google, Gorgias, Kustomer, Rcs, ShopifyDefault, Twitter, Website, WooCommerce, Youtube, Zendesk, } from './Social/Social';
|
|
39
39
|
export { EmailMarketing as EmailMarketing2 } from './Social/Social';
|
|
40
40
|
export { Facebook as Facebook2 } from './Social/Social';
|
|
41
41
|
export { Instagram as Instagram2 } from './Social/Social';
|
|
42
42
|
export { Messenger as Messenger2 } from './Social/Social';
|
|
43
43
|
export { Whatsapp as Whatsapp2 } from './Social/Social';
|
|
44
|
-
export { Eye, EyeClosed, EyeOff, HeartEmpty, HeartFilled, Lock, StarEmpty, StarFilled, StarHalf, Unlock } from './Toggles/General';
|
|
44
|
+
export { Eye, EyeClosed, EyeOff, HeartEmpty, HeartFilled, Lock, StarEmpty, StarFilled, StarHalf, Unlock, } from './Toggles/General';
|