@bikdotai/bik-component-library 0.0.858-beta.1 → 0.0.858

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.
Files changed (77) hide show
  1. package/README.md +4 -4
  2. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js +23 -23
  3. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
  4. package/dist/cjs/components/agent-builder/components/AiTextArea.js +1 -1
  5. package/dist/cjs/components/agent-builder/components/AiTextArea.js.map +1 -1
  6. package/dist/cjs/components/agent-builder/components/ToolInstructionsField.js +2 -2
  7. package/dist/cjs/components/agent-builder/components/ToolInstructionsField.js.map +1 -1
  8. package/dist/cjs/components/bik-chatbot/components/ChatWindow.js +20 -20
  9. package/dist/cjs/components/bik-chatbot/components/ChatWindow.js.map +1 -1
  10. package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js +2 -2
  11. package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js.map +1 -1
  12. package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js +2 -2
  13. package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js.map +1 -1
  14. package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js +1 -1
  15. package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js.map +1 -1
  16. package/dist/cjs/components/input/ChipInput.js +1 -1
  17. package/dist/cjs/components/input/ChipInput.js.map +1 -1
  18. package/dist/cjs/components/input/Input-helper.js +1 -1
  19. package/dist/cjs/components/input/Input-helper.js.map +1 -1
  20. package/dist/cjs/components/input/Input.js +1 -1
  21. package/dist/cjs/components/input/Input.js.map +1 -1
  22. package/dist/cjs/components/plans/SubscriptionPlanSelector.js +5 -5
  23. package/dist/cjs/components/plans/SubscriptionPlanSelector.js.map +1 -1
  24. package/dist/cjs/editor/BikEditor.js +1 -1
  25. package/dist/cjs/editor/BikEditor.js.map +1 -1
  26. package/dist/cjs/editor/BikEditor.utils.js +3 -3
  27. package/dist/cjs/editor/BikEditor.utils.js.map +1 -1
  28. package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
  29. package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
  30. package/dist/cjs/editor/extensions/htmlTagStrip/HtmlTagStripExtension.js +2 -0
  31. package/dist/cjs/editor/extensions/htmlTagStrip/HtmlTagStripExtension.js.map +1 -0
  32. package/dist/cjs/helpers/sanitize.js +2 -0
  33. package/dist/cjs/helpers/sanitize.js.map +1 -0
  34. package/dist/cjs/index.js +1 -1
  35. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js +144 -143
  36. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
  37. package/dist/esm/components/agent-builder/components/AiTextArea.js +24 -23
  38. package/dist/esm/components/agent-builder/components/AiTextArea.js.map +1 -1
  39. package/dist/esm/components/agent-builder/components/ToolInstructionsField.js +38 -37
  40. package/dist/esm/components/agent-builder/components/ToolInstructionsField.js.map +1 -1
  41. package/dist/esm/components/bik-chatbot/components/ChatWindow.js +54 -53
  42. package/dist/esm/components/bik-chatbot/components/ChatWindow.js.map +1 -1
  43. package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js +346 -420
  44. package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js.map +1 -1
  45. package/dist/esm/components/feature-announcements/MajorUpdatePopup.js +35 -33
  46. package/dist/esm/components/feature-announcements/MajorUpdatePopup.js.map +1 -1
  47. package/dist/esm/components/feature-announcements/MinorUpdatePopup.js +48 -47
  48. package/dist/esm/components/feature-announcements/MinorUpdatePopup.js.map +1 -1
  49. package/dist/esm/components/feature-announcements/types/props.types.d.ts +2 -2
  50. package/dist/esm/components/input/ChipInput.js +41 -40
  51. package/dist/esm/components/input/ChipInput.js.map +1 -1
  52. package/dist/esm/components/input/Input-helper.d.ts +7 -0
  53. package/dist/esm/components/input/Input-helper.js +16 -25
  54. package/dist/esm/components/input/Input-helper.js.map +1 -1
  55. package/dist/esm/components/input/Input.js +59 -57
  56. package/dist/esm/components/input/Input.js.map +1 -1
  57. package/dist/esm/components/input/Input.model.d.ts +1 -0
  58. package/dist/esm/components/plans/SubscriptionPlanSelector.js +42 -40
  59. package/dist/esm/components/plans/SubscriptionPlanSelector.js.map +1 -1
  60. package/dist/esm/editor/BikEditor.js +221 -217
  61. package/dist/esm/editor/BikEditor.js.map +1 -1
  62. package/dist/esm/editor/BikEditor.utils.d.ts +1 -1
  63. package/dist/esm/editor/BikEditor.utils.js +141 -140
  64. package/dist/esm/editor/BikEditor.utils.js.map +1 -1
  65. package/dist/esm/editor/extensions/buildExtensions.js +35 -25
  66. package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
  67. package/dist/esm/editor/extensions/htmlTagStrip/HtmlTagStripExtension.d.ts +13 -0
  68. package/dist/esm/editor/extensions/htmlTagStrip/HtmlTagStripExtension.js +64 -0
  69. package/dist/esm/editor/extensions/htmlTagStrip/HtmlTagStripExtension.js.map +1 -0
  70. package/dist/esm/helpers/index.d.ts +1 -0
  71. package/dist/esm/helpers/sanitize.d.ts +32 -0
  72. package/dist/esm/helpers/sanitize.js +207 -0
  73. package/dist/esm/helpers/sanitize.js.map +1 -0
  74. package/dist/esm/icons/index.d.ts +25 -25
  75. package/dist/esm/index.js +125 -115
  76. package/dist/esm/index.js.map +1 -1
  77. package/package.json +2 -1
@@ -0,0 +1,207 @@
1
+ import i from "dompurify";
2
+ const s = () => typeof window < "u", a = /<\/?[^>]+(>|$)/g, d = /* @__PURE__ */ new Set(["https:", "mailto:", "tel:"]), p = /* @__PURE__ */ new Set(["https:", "data:"]), c = (t, r) => {
3
+ if (!t) return null;
4
+ try {
5
+ const e = new URL(t, "https://bik.local");
6
+ return r.has(e.protocol) ? t : null;
7
+ } catch {
8
+ return null;
9
+ }
10
+ }, A = (t) => c(t, d) !== null, L = (t) => c(t, p) !== null, f = /<\/?[a-zA-Z][a-zA-Z0-9]*(?:\s[^>]*)?\/?>/g, O = (t) => t ? t.replace(f, "") : "", g = /^[=+\-@\t\r]/, w = (t) => t ? g.test(t) ? `'${t}` : t : "", _ = (t) => t ? s() ? i.sanitize(t, {
11
+ ALLOWED_TAGS: [],
12
+ ALLOWED_ATTR: [],
13
+ KEEP_CONTENT: !0
14
+ }) : t.replace(a, "") : "", E = (t) => t ? s() ? i.sanitize(t, {
15
+ ALLOWED_TAGS: [
16
+ "p",
17
+ "br",
18
+ "b",
19
+ "strong",
20
+ "i",
21
+ "em",
22
+ "u",
23
+ "s",
24
+ "span",
25
+ "a",
26
+ "ul",
27
+ "ol",
28
+ "li",
29
+ "blockquote"
30
+ ],
31
+ ALLOWED_ATTR: ["href", "target", "rel", "class"],
32
+ FORBID_TAGS: ["style"],
33
+ FORBID_ATTR: ["style"],
34
+ ALLOWED_URI_REGEXP: /^(?:https|mailto|tel):/i
35
+ }) : t.replace(a, "") : "", h = /* @__PURE__ */ new Set([
36
+ "color",
37
+ "background-color",
38
+ "background",
39
+ "font-family",
40
+ "font-size",
41
+ "font-weight",
42
+ "font-style",
43
+ "font-variant",
44
+ "font",
45
+ "line-height",
46
+ "letter-spacing",
47
+ "word-spacing",
48
+ "text-align",
49
+ "text-decoration",
50
+ "text-transform",
51
+ "text-indent",
52
+ "vertical-align",
53
+ "white-space",
54
+ "word-wrap",
55
+ "word-break",
56
+ "overflow-wrap",
57
+ "direction",
58
+ "margin",
59
+ "margin-top",
60
+ "margin-right",
61
+ "margin-bottom",
62
+ "margin-left",
63
+ "padding",
64
+ "padding-top",
65
+ "padding-right",
66
+ "padding-bottom",
67
+ "padding-left",
68
+ "border",
69
+ "border-top",
70
+ "border-right",
71
+ "border-bottom",
72
+ "border-left",
73
+ "border-width",
74
+ "border-style",
75
+ "border-color",
76
+ "border-collapse",
77
+ "border-spacing",
78
+ "border-radius",
79
+ "width",
80
+ "min-width",
81
+ "max-width",
82
+ "height",
83
+ "min-height",
84
+ "max-height",
85
+ "display",
86
+ "visibility",
87
+ "opacity",
88
+ "float",
89
+ "clear",
90
+ "overflow",
91
+ "overflow-x",
92
+ "overflow-y",
93
+ "table-layout",
94
+ "list-style",
95
+ "list-style-type",
96
+ "list-style-position",
97
+ "box-sizing"
98
+ ]), u = /url\s*\(|expression\s*\(|-moz-binding|behavior\s*:|@import|javascript:|data:/i, b = (t) => {
99
+ const r = t.split(";").map((e) => e.trim()).filter((e) => {
100
+ if (!e) return !1;
101
+ const n = e.indexOf(":");
102
+ if (n < 0) return !1;
103
+ const o = e.slice(0, n).trim().toLowerCase(), l = e.slice(n + 1).trim();
104
+ return h.has(o) && !u.test(l);
105
+ }).join("; ");
106
+ return r && t.trimEnd().endsWith(";") ? r + ";" : r;
107
+ }, T = (t) => {
108
+ if (!t) return "";
109
+ if (!s()) return t.replace(a, "");
110
+ const r = (n, o) => {
111
+ if (o.attrName !== "style") return;
112
+ const l = b(o.attrValue);
113
+ l ? o.attrValue = l : o.keepAttr = !1;
114
+ };
115
+ i.addHook("uponSanitizeAttribute", r);
116
+ const e = i.sanitize(t, {
117
+ ALLOWED_TAGS: [
118
+ "p",
119
+ "br",
120
+ "div",
121
+ "span",
122
+ "strong",
123
+ "b",
124
+ "em",
125
+ "i",
126
+ "u",
127
+ "s",
128
+ "ul",
129
+ "ol",
130
+ "li",
131
+ "blockquote",
132
+ "h1",
133
+ "h2",
134
+ "h3",
135
+ "h4",
136
+ "h5",
137
+ "h6",
138
+ "a",
139
+ "img",
140
+ "table",
141
+ "thead",
142
+ "tbody",
143
+ "tfoot",
144
+ "tr",
145
+ "th",
146
+ "td",
147
+ "caption",
148
+ "colgroup",
149
+ "col",
150
+ "center",
151
+ "font",
152
+ "hr",
153
+ "pre",
154
+ "code",
155
+ "sub",
156
+ "sup",
157
+ "small",
158
+ "big",
159
+ "figure",
160
+ "figcaption",
161
+ "section",
162
+ "article",
163
+ "header",
164
+ "footer",
165
+ "abbr",
166
+ "cite",
167
+ "mark",
168
+ "del",
169
+ "ins"
170
+ ],
171
+ ALLOWED_ATTR: [
172
+ "href",
173
+ "target",
174
+ "rel",
175
+ "src",
176
+ "alt",
177
+ "title",
178
+ "width",
179
+ "height",
180
+ "style",
181
+ "class",
182
+ "align",
183
+ "valign",
184
+ "colspan",
185
+ "rowspan",
186
+ "cellpadding",
187
+ "cellspacing",
188
+ "border",
189
+ "color",
190
+ "bgcolor"
191
+ ],
192
+ ALLOW_UNKNOWN_PROTOCOLS: !1
193
+ });
194
+ return i.removeHook("uponSanitizeAttribute"), e;
195
+ };
196
+ export {
197
+ w as escapeFormulaInjection,
198
+ L as isAllowedImageUrl,
199
+ A as isAllowedLinkUrl,
200
+ c as isAllowedUrl,
201
+ E as sanitizeBasicHtml,
202
+ b as sanitizeCssProperties,
203
+ T as sanitizeEmailHtml,
204
+ _ as sanitizePlainText,
205
+ O as stripHtmlTags
206
+ };
207
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.js","sources":["../../../src/helpers/sanitize.ts"],"sourcesContent":["import DOMPurify from 'dompurify';\n\n/**\n * Central HTML/CSS-injection sanitisation for the component library.\n *\n * Two categories:\n *\n * INPUT layer (onChange) — strips tags, keeps plain text:\n * - stripHtmlTags: remove every HTML tag, return raw text\n * - escapeFormulaInjection: prefix CSV-dangerous leading chars with '\n *\n * RENDER layer (dangerouslySetInnerHTML / innerHTML) — DOMPurify-based:\n * - sanitizePlainText: ALLOWED_TAGS: [] (for sinks that must show plain text)\n * - sanitizeBasicHtml: formatting allowlist (chat bubbles, rich previews)\n * - sanitizeEmailHtml: full email allowlist (tables, images, inline style)\n */\n\nconst hasDOM = (): boolean => typeof window !== 'undefined';\n\nconst REGEX_TAG_STRIP = /<\\/?[^>]+(>|$)/g;\n\nconst ALLOWED_LINK_PROTOCOLS = new Set(['https:', 'mailto:', 'tel:']);\nconst ALLOWED_IMG_PROTOCOLS = new Set(['https:', 'data:']);\n\nexport const isAllowedUrl = (\n\turl: string | null | undefined,\n\tallowed: Set<string>,\n): string | null => {\n\tif (!url) return null;\n\ttry {\n\t\tconst parsed = new URL(url, 'https://bik.local');\n\t\treturn allowed.has(parsed.protocol) ? url : null;\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nexport const isAllowedLinkUrl = (url?: string | null): boolean =>\n\tisAllowedUrl(url, ALLOWED_LINK_PROTOCOLS) !== null;\n\nexport const isAllowedImageUrl = (url?: string | null): boolean =>\n\tisAllowedUrl(url, ALLOWED_IMG_PROTOCOLS) !== null;\n\n// ---------------------------------------------------------------------------\n// INPUT layer — for onChange handlers on plain-text inputs\n// ---------------------------------------------------------------------------\n\n/**\n * Strip complete HTML tags from the input, return the raw text content.\n * Uses a regex that only matches tags with both < and >, so partial input\n * like \"<h\" while typing is preserved (no closing >, not a tag yet).\n *\n * \"<h1>Hello</h1>\" → \"Hello\"\n * \"<h\" → \"<h\" (incomplete, kept)\n * \"2 < 3\" → \"2 < 3\"\n * \"<script>x</script>\" → \"x\"\n */\nconst COMPLETE_TAG = /<\\/?[a-zA-Z][a-zA-Z0-9]*(?:\\s[^>]*)?\\/?>/g;\n\nexport const stripHtmlTags = (input: string | null | undefined): string => {\n\tif (!input) return '';\n\treturn input.replace(COMPLETE_TAG, '');\n};\n\nconst CSV_FORMULA_PREFIX = /^[=+\\-@\\t\\r]/;\n\n/**\n * Escape CSV/Excel formula injection. Prefixes values starting with a\n * formula-triggering character (=, +, -, @, tab, CR) with a single quote\n * so spreadsheet software treats them as literal text.\n */\nexport const escapeFormulaInjection = (\n\tinput: string | null | undefined,\n): string => {\n\tif (!input) return '';\n\treturn CSV_FORMULA_PREFIX.test(input) ? `'${input}` : input;\n};\n\n// ---------------------------------------------------------------------------\n// RENDER layer — for dangerouslySetInnerHTML / innerHTML sinks\n// ---------------------------------------------------------------------------\n\n/**\n * Render-safe plain text. Strips every tag and returns safe HTML (with\n * entities). Use at render sinks that must show plain text via innerHTML.\n * For input onChange, use stripHtmlTags instead.\n */\nexport const sanitizePlainText = (input: string | null | undefined): string => {\n\tif (!input) return '';\n\tif (!hasDOM()) return input.replace(REGEX_TAG_STRIP, '');\n\treturn DOMPurify.sanitize(input, {\n\t\tALLOWED_TAGS: [],\n\t\tALLOWED_ATTR: [],\n\t\tKEEP_CONTENT: true,\n\t});\n};\n\n/**\n * Basic rich text. A small formatting allowlist; no style tag/attr, links\n * restricted to safe protocols.\n */\nexport const sanitizeBasicHtml = (input: string | null | undefined): string => {\n\tif (!input) return '';\n\tif (!hasDOM()) return input.replace(REGEX_TAG_STRIP, '');\n\treturn DOMPurify.sanitize(input, {\n\t\tALLOWED_TAGS: [\n\t\t\t'p',\n\t\t\t'br',\n\t\t\t'b',\n\t\t\t'strong',\n\t\t\t'i',\n\t\t\t'em',\n\t\t\t'u',\n\t\t\t's',\n\t\t\t'span',\n\t\t\t'a',\n\t\t\t'ul',\n\t\t\t'ol',\n\t\t\t'li',\n\t\t\t'blockquote',\n\t\t],\n\t\tALLOWED_ATTR: ['href', 'target', 'rel', 'class'],\n\t\tFORBID_TAGS: ['style'],\n\t\tFORBID_ATTR: ['style'],\n\t\tALLOWED_URI_REGEXP: /^(?:https|mailto|tel):/i,\n\t});\n};\n\n// CSS properties safe for email rendering. Everything else is stripped from\n// inline style attributes to block position-overlay, url()-exfiltration,\n// expression(), and -moz-binding attacks.\nconst SAFE_CSS_PROPERTIES = new Set([\n\t'color',\n\t'background-color',\n\t'background',\n\t'font-family',\n\t'font-size',\n\t'font-weight',\n\t'font-style',\n\t'font-variant',\n\t'font',\n\t'line-height',\n\t'letter-spacing',\n\t'word-spacing',\n\t'text-align',\n\t'text-decoration',\n\t'text-transform',\n\t'text-indent',\n\t'vertical-align',\n\t'white-space',\n\t'word-wrap',\n\t'word-break',\n\t'overflow-wrap',\n\t'direction',\n\t'margin',\n\t'margin-top',\n\t'margin-right',\n\t'margin-bottom',\n\t'margin-left',\n\t'padding',\n\t'padding-top',\n\t'padding-right',\n\t'padding-bottom',\n\t'padding-left',\n\t'border',\n\t'border-top',\n\t'border-right',\n\t'border-bottom',\n\t'border-left',\n\t'border-width',\n\t'border-style',\n\t'border-color',\n\t'border-collapse',\n\t'border-spacing',\n\t'border-radius',\n\t'width',\n\t'min-width',\n\t'max-width',\n\t'height',\n\t'min-height',\n\t'max-height',\n\t'display',\n\t'visibility',\n\t'opacity',\n\t'float',\n\t'clear',\n\t'overflow',\n\t'overflow-x',\n\t'overflow-y',\n\t'table-layout',\n\t'list-style',\n\t'list-style-type',\n\t'list-style-position',\n\t'box-sizing',\n]);\n\n// Values that indicate CSS injection attempts regardless of property.\nconst DANGEROUS_CSS_VALUE =\n\t/url\\s*\\(|expression\\s*\\(|-moz-binding|behavior\\s*:|@import|javascript:|data:/i;\n\n/**\n * Filter an inline style string to only safe CSS properties with safe values.\n * Returns the cleaned style string (empty string if nothing survives).\n */\nexport const sanitizeCssProperties = (style: string): string => {\n\tconst result = style\n\t\t.split(';')\n\t\t.map((decl) => decl.trim())\n\t\t.filter((decl) => {\n\t\t\tif (!decl) return false;\n\t\t\tconst colonIdx = decl.indexOf(':');\n\t\t\tif (colonIdx < 0) return false;\n\t\t\tconst prop = decl.slice(0, colonIdx).trim().toLowerCase();\n\t\t\tconst value = decl.slice(colonIdx + 1).trim();\n\t\t\treturn SAFE_CSS_PROPERTIES.has(prop) && !DANGEROUS_CSS_VALUE.test(value);\n\t\t})\n\t\t.join('; ');\n\treturn result && style.trimEnd().endsWith(';') ? result + ';' : result;\n};\n\n/**\n * Full rich text / inbound email HTML. Allowlist of tags and attributes an\n * email needs to render; everything else is stripped. Inline style attributes\n * are filtered to a safe CSS property allowlist.\n */\nexport const sanitizeEmailHtml = (input: string | null | undefined): string => {\n\tif (!input) return '';\n\tif (!hasDOM()) return input.replace(REGEX_TAG_STRIP, '');\n\n\tconst hook = (\n\t\t_node: Element,\n\t\tdata: { attrName: string; attrValue: string; keepAttr: boolean },\n\t) => {\n\t\tif (data.attrName !== 'style') return;\n\t\tconst clean = sanitizeCssProperties(data.attrValue);\n\t\tif (clean) {\n\t\t\tdata.attrValue = clean;\n\t\t} else {\n\t\t\tdata.keepAttr = false;\n\t\t}\n\t};\n\tDOMPurify.addHook('uponSanitizeAttribute', hook);\n\n\tconst result = DOMPurify.sanitize(input, {\n\t\tALLOWED_TAGS: [\n\t\t\t'p',\n\t\t\t'br',\n\t\t\t'div',\n\t\t\t'span',\n\t\t\t'strong',\n\t\t\t'b',\n\t\t\t'em',\n\t\t\t'i',\n\t\t\t'u',\n\t\t\t's',\n\t\t\t'ul',\n\t\t\t'ol',\n\t\t\t'li',\n\t\t\t'blockquote',\n\t\t\t'h1',\n\t\t\t'h2',\n\t\t\t'h3',\n\t\t\t'h4',\n\t\t\t'h5',\n\t\t\t'h6',\n\t\t\t'a',\n\t\t\t'img',\n\t\t\t'table',\n\t\t\t'thead',\n\t\t\t'tbody',\n\t\t\t'tfoot',\n\t\t\t'tr',\n\t\t\t'th',\n\t\t\t'td',\n\t\t\t'caption',\n\t\t\t'colgroup',\n\t\t\t'col',\n\t\t\t'center',\n\t\t\t'font',\n\t\t\t'hr',\n\t\t\t'pre',\n\t\t\t'code',\n\t\t\t'sub',\n\t\t\t'sup',\n\t\t\t'small',\n\t\t\t'big',\n\t\t\t'figure',\n\t\t\t'figcaption',\n\t\t\t'section',\n\t\t\t'article',\n\t\t\t'header',\n\t\t\t'footer',\n\t\t\t'abbr',\n\t\t\t'cite',\n\t\t\t'mark',\n\t\t\t'del',\n\t\t\t'ins',\n\t\t],\n\t\tALLOWED_ATTR: [\n\t\t\t'href',\n\t\t\t'target',\n\t\t\t'rel',\n\t\t\t'src',\n\t\t\t'alt',\n\t\t\t'title',\n\t\t\t'width',\n\t\t\t'height',\n\t\t\t'style',\n\t\t\t'class',\n\t\t\t'align',\n\t\t\t'valign',\n\t\t\t'colspan',\n\t\t\t'rowspan',\n\t\t\t'cellpadding',\n\t\t\t'cellspacing',\n\t\t\t'border',\n\t\t\t'color',\n\t\t\t'bgcolor',\n\t\t],\n\t\tALLOW_UNKNOWN_PROTOCOLS: false,\n\t});\n\n\tDOMPurify.removeHook('uponSanitizeAttribute');\n\treturn result;\n};\n"],"names":["hasDOM","REGEX_TAG_STRIP","ALLOWED_LINK_PROTOCOLS","ALLOWED_IMG_PROTOCOLS","isAllowedUrl","url","allowed","parsed","isAllowedLinkUrl","isAllowedImageUrl","COMPLETE_TAG","stripHtmlTags","input","CSV_FORMULA_PREFIX","escapeFormulaInjection","sanitizePlainText","DOMPurify","sanitizeBasicHtml","SAFE_CSS_PROPERTIES","DANGEROUS_CSS_VALUE","sanitizeCssProperties","style","result","decl","colonIdx","prop","value","sanitizeEmailHtml","hook","_node","data","clean"],"mappings":";AAiBA,MAAMA,IAAS,MAAe,OAAO,SAAW,KAE1CC,IAAkB,mBAElBC,IAAyB,oBAAI,IAAI,CAAC,UAAU,WAAW,MAAM,CAAC,GAC9DC,IAAwB,oBAAI,IAAI,CAAC,UAAU,OAAO,CAAC,GAE5CC,IAAe,CAC3BC,GACAC,MACmB;AACnB,MAAI,CAACD,EAAK,QAAO;AACjB,MAAI;AACH,UAAME,IAAS,IAAI,IAAIF,GAAK,mBAAmB;AAC/C,WAAOC,EAAQ,IAAIC,EAAO,QAAQ,IAAIF,IAAM;AAAA,EAC7C,QAAQ;AACP,WAAO;AAAA,EACR;AACD,GAEaG,IAAmB,CAACH,MAChCD,EAAaC,GAAKH,CAAsB,MAAM,MAElCO,IAAoB,CAACJ,MACjCD,EAAaC,GAAKF,CAAqB,MAAM,MAgBxCO,IAAe,6CAERC,IAAgB,CAACC,MACxBA,IACEA,EAAM,QAAQF,GAAc,EAAE,IADlB,IAIdG,IAAqB,gBAOdC,IAAyB,CACrCF,MAEKA,IACEC,EAAmB,KAAKD,CAAK,IAAI,IAAIA,CAAK,KAAKA,IADnC,IAaPG,IAAoB,CAACH,MAC5BA,IACAZ,EAAA,IACEgB,EAAU,SAASJ,GAAO;AAAA,EAChC,cAAc,CAAA;AAAA,EACd,cAAc,CAAA;AAAA,EACd,cAAc;AAAA,CACd,IALqBA,EAAM,QAAQX,GAAiB,EAAE,IADpC,IAaPgB,IAAoB,CAACL,MAC5BA,IACAZ,EAAA,IACEgB,EAAU,SAASJ,GAAO;AAAA,EAChC,cAAc;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAED,cAAc,CAAC,QAAQ,UAAU,OAAO,OAAO;AAAA,EAC/C,aAAa,CAAC,OAAO;AAAA,EACrB,aAAa,CAAC,OAAO;AAAA,EACrB,oBAAoB;AAAA,CACpB,IAtBqBA,EAAM,QAAQX,GAAiB,EAAE,IADpC,IA6BdiB,wBAA0B,IAAI;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC,GAGKC,IACL,iFAMYC,IAAwB,CAACC,MAA0B;AAC/D,QAAMC,IAASD,EACb,MAAM,GAAG,EACT,IAAI,CAACE,MAASA,EAAK,KAAA,CAAM,EACzB,OAAO,CAACA,MAAS;AACjB,QAAI,CAACA,EAAM,QAAO;AAClB,UAAMC,IAAWD,EAAK,QAAQ,GAAG;AACjC,QAAIC,IAAW,EAAG,QAAO;AACzB,UAAMC,IAAOF,EAAK,MAAM,GAAGC,CAAQ,EAAE,KAAA,EAAO,YAAA,GACtCE,IAAQH,EAAK,MAAMC,IAAW,CAAC,EAAE,KAAA;AACvC,WAAON,EAAoB,IAAIO,CAAI,KAAK,CAACN,EAAoB,KAAKO,CAAK;AAAA,EACxE,CAAC,EACA,KAAK,IAAI;AACX,SAAOJ,KAAUD,EAAM,QAAA,EAAU,SAAS,GAAG,IAAIC,IAAS,MAAMA;AACjE,GAOaK,IAAoB,CAACf,MAA6C;AAC9E,MAAI,CAACA,EAAO,QAAO;AACnB,MAAI,CAACZ,EAAA,UAAiBY,EAAM,QAAQX,GAAiB,EAAE;AAEvD,QAAM2B,IAAO,CACZC,GACAC,MACI;AACJ,QAAIA,EAAK,aAAa,QAAS;AAC/B,UAAMC,IAAQX,EAAsBU,EAAK,SAAS;AAClD,IAAIC,IACHD,EAAK,YAAYC,IAEjBD,EAAK,WAAW;AAAA,EAElB;AACA,EAAAd,EAAU,QAAQ,yBAAyBY,CAAI;AAE/C,QAAMN,IAASN,EAAU,SAASJ,GAAO;AAAA,IACxC,cAAc;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAED,cAAc;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAED,yBAAyB;AAAA,EAAA,CACzB;AAED,SAAAI,EAAU,WAAW,uBAAuB,GACrCM;AACR;"}
@@ -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, 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';
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 { PuzzlePiece, 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 { PuzzlePiece, 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, ManifestLiveChat, MessengerV2, PhoneV2, RcsV2, SmsV2, TaskV2, WebpushV2, WhatsAppCallV2, WhatsAppV2, Bigcommerce, EmailMarketing, Facebook, FacebookComment, FreshdeskApp, 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, ManifestLiveChat, MessengerV2, PhoneV2, RcsV2, SmsV2, TaskV2, WebpushV2, WhatsAppCallV2, WhatsAppV2, Bigcommerce, EmailMarketing, Facebook, FacebookComment, FreshdeskApp, 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';