markdown-flow-ui 0.1.120 → 0.1.121-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/_virtual/index.cjs7.js +1 -1
  2. package/dist/_virtual/index.cjs8.js +1 -1
  3. package/dist/_virtual/index.es7.js +2 -2
  4. package/dist/_virtual/index.es8.js +2 -2
  5. package/dist/assets/markdown-flow-ui.css +1 -1
  6. package/dist/components/ContentRender/ContentRender.cjs.js +2 -2
  7. package/dist/components/ContentRender/ContentRender.cjs.js.map +1 -1
  8. package/dist/components/ContentRender/ContentRender.d.ts +10 -1
  9. package/dist/components/ContentRender/ContentRender.es.js +221 -175
  10. package/dist/components/ContentRender/ContentRender.es.js.map +1 -1
  11. package/dist/components/ContentRender/ContentRender.stories.d.ts +1 -3
  12. package/dist/components/ContentRender/index.d.ts +1 -2
  13. package/dist/components/MarkdownFlow/MarkdownFlow.cjs.js +1 -1
  14. package/dist/components/MarkdownFlow/MarkdownFlow.cjs.js.map +1 -1
  15. package/dist/components/MarkdownFlow/MarkdownFlow.d.ts +0 -3
  16. package/dist/components/MarkdownFlow/MarkdownFlow.es.js +21 -29
  17. package/dist/components/MarkdownFlow/MarkdownFlow.es.js.map +1 -1
  18. package/dist/components/Slide/Slide.cjs.js +1 -1
  19. package/dist/components/Slide/Slide.cjs.js.map +1 -1
  20. package/dist/components/Slide/Slide.es.js +50 -51
  21. package/dist/components/Slide/Slide.es.js.map +1 -1
  22. package/dist/components/Slide/utils/runStreamFixture.d.ts +2 -0
  23. package/dist/lib/interaction-defaults.cjs.js +1 -1
  24. package/dist/lib/interaction-defaults.cjs.js.map +1 -1
  25. package/dist/lib/interaction-defaults.es.js +128 -81
  26. package/dist/lib/interaction-defaults.es.js.map +1 -1
  27. package/dist/lib/interaction-defaults.test.d.ts +1 -0
  28. package/dist/markdown-flow-ui/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.cjs.js +1 -1
  29. package/dist/markdown-flow-ui/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.es.js +1 -1
  30. package/dist/markdown-flow-ui/node_modules/.pnpm/style-to-object@1.0.11/node_modules/style-to-object/cjs/index.cjs.js +1 -1
  31. package/dist/markdown-flow-ui/node_modules/.pnpm/style-to-object@1.0.11/node_modules/style-to-object/cjs/index.es.js +1 -1
  32. package/dist/markdown-flow-ui-lib.css +1 -1
  33. package/package.json +2 -3
  34. package/dist/components/ContentRender/useTypewriter.d.ts +0 -19
  35. package/dist/components/ContentRender/useTypewriterStateMachine.cjs.js +0 -2
  36. package/dist/components/ContentRender/useTypewriterStateMachine.cjs.js.map +0 -1
  37. package/dist/components/ContentRender/useTypewriterStateMachine.d.ts +0 -19
  38. package/dist/components/ContentRender/useTypewriterStateMachine.es.js +0 -180
  39. package/dist/components/ContentRender/useTypewriterStateMachine.es.js.map +0 -1
@@ -1,145 +1,192 @@
1
- import { d as x } from "../_virtual/index.es.js";
2
- const b = x.createInteractionParser(), I = /<custom-variable\b/i, h = /\?\[%\{\{([^}]+)\}\}([\s\S]*?)\]/, v = /^[\[{]/, V = (t) => {
1
+ import { d as T } from "../_virtual/index.es.js";
2
+ const x = T.createInteractionParser(), b = /<custom-variable\b/i, p = /\?\[%\{\{([^}]+)\}\}([\s\S]*?)\]/, I = /^[\[{]/, v = /^[\s,,\n]+/, g = (t) => {
3
3
  if (!t)
4
4
  return null;
5
- const r = t.match(h), s = r?.[1]?.trim(), e = r?.[2]?.trim();
5
+ const n = t.match(p), s = n?.[1]?.trim(), e = n?.[2]?.trim();
6
6
  if (!e)
7
7
  return null;
8
- const u = e.includes("||"), o = u ? "||" : "|", n = e.split(o).map((l) => l.trim()).filter(Boolean);
9
- if (!n.length)
8
+ const r = e.includes("||"), l = r ? "||" : "|", u = e.split(l).map((a) => a.trim()).filter(Boolean);
9
+ if (!u.length)
10
10
  return null;
11
- const c = [], i = [];
12
- let f;
13
- return n.forEach((l) => {
14
- if (l.startsWith("...")) {
15
- const a = l.replace(/^\.\.\./, "").trim();
16
- a && (f = a);
11
+ const o = [], i = [];
12
+ let c;
13
+ return u.forEach((a) => {
14
+ if (a.startsWith("...")) {
15
+ const f = a.replace(/^\.\.\./, "").trim();
16
+ f && (c = f);
17
17
  return;
18
18
  }
19
- c.push(l), i.push(l);
19
+ o.push(a), i.push(a);
20
20
  }), {
21
21
  variableName: s,
22
- buttonTexts: c.length ? c : void 0,
22
+ buttonTexts: o.length ? o : void 0,
23
23
  buttonValues: i.length ? i : void 0,
24
- placeholder: f,
25
- isMultiSelect: u
24
+ placeholder: c,
25
+ isMultiSelect: r
26
26
  };
27
- }, g = (t) => {
27
+ }, V = (t) => {
28
28
  if (!t)
29
29
  return null;
30
30
  try {
31
- return b.parseToRemarkFormat(
31
+ return x.parseToRemarkFormat(
32
32
  t
33
33
  );
34
- } catch (r) {
35
- console.warn("Failed to parse interaction block", r);
34
+ } catch (n) {
35
+ console.warn("Failed to parse interaction block", n);
36
36
  }
37
- return V(t);
38
- }, m = (t, r) => {
37
+ return g(t);
38
+ }, h = (t, n) => {
39
39
  if (!t)
40
40
  return null;
41
- const s = t.trim(), e = r.buttonValues || [], u = r.buttonTexts || [], o = e.indexOf(s);
42
- if (o > -1)
41
+ const s = t.trim(), e = n.buttonValues || [], r = n.buttonTexts || [], l = e.indexOf(s);
42
+ if (l > -1)
43
43
  return {
44
- value: e[o],
45
- display: u[o]
44
+ value: e[l],
45
+ display: r[l]
46
46
  };
47
- const n = u.indexOf(s);
48
- return n > -1 ? {
49
- value: e[n] || u[n],
50
- display: u[n]
47
+ const u = r.indexOf(s);
48
+ return u > -1 ? {
49
+ value: e[u] || r[u],
50
+ display: r[u]
51
51
  } : null;
52
- }, A = (t) => t.split(/[,,\n]/).map((r) => r.trim()).filter(Boolean), E = (t) => {
52
+ }, E = (t) => t.split(/[,,\n]/).map((n) => n.trim()).filter(Boolean), d = (t) => t.replace(v, ""), A = (t) => {
53
+ const n = t.buttonValues || [], s = t.buttonTexts || [], e = [], r = /* @__PURE__ */ new Set();
54
+ return n.forEach((l, u) => {
55
+ const o = `${l ?? ""}`.trim(), i = `${s[u] ?? ""}`.trim();
56
+ [o, i].forEach((c) => {
57
+ if (!c)
58
+ return;
59
+ const a = `${c}::${o || c}`;
60
+ r.has(a) || (r.add(a), e.push({
61
+ token: c,
62
+ value: o || c
63
+ }));
64
+ });
65
+ }), e.sort((l, u) => u.token.length - l.token.length);
66
+ }, S = (t, n) => {
67
+ const s = d(t), e = A(n);
68
+ for (const r of e) {
69
+ if (!s.startsWith(r.token))
70
+ continue;
71
+ const l = s[r.token.length];
72
+ if (!(l && !/[\s,,\n]/.test(l)))
73
+ return r;
74
+ }
75
+ return null;
76
+ }, R = (t, n) => {
77
+ const s = E(t);
78
+ if (!s.length)
79
+ return {};
80
+ const e = [], r = [];
81
+ return s.forEach((l) => {
82
+ const u = h(l, n);
83
+ if (u) {
84
+ e.push(u.value);
85
+ return;
86
+ }
87
+ if (n.placeholder) {
88
+ r.push(l);
89
+ return;
90
+ }
91
+ e.push(l);
92
+ }), {
93
+ selectedValues: e.length ? e : void 0,
94
+ inputText: r.length ? r.join(", ") : void 0
95
+ };
96
+ }, D = (t, n) => {
97
+ const s = [];
98
+ let e = t.trim();
99
+ for (; e; ) {
100
+ const l = S(e, n);
101
+ if (!l)
102
+ break;
103
+ s.push(l.value);
104
+ const u = d(e);
105
+ e = d(
106
+ u.slice(l.token.length)
107
+ );
108
+ }
109
+ if (s.length > 0)
110
+ return {
111
+ selectedValues: s,
112
+ inputText: n.placeholder && e.trim() ? e.trim() : void 0
113
+ };
114
+ const r = R(t, n);
115
+ return r.selectedValues?.length ? r : n.placeholder ? {
116
+ inputText: t.trim()
117
+ } : r;
118
+ }, N = (t) => {
53
119
  if (!t || Array.isArray(t))
54
120
  return null;
55
- const r = Array.isArray(t.selectedValues) ? t.selectedValues.map((u) => `${u ?? ""}`.trim()).filter(Boolean) : void 0, s = `${t.buttonText ?? ""}`.trim(), e = typeof t.inputText == "string" ? t.inputText : void 0;
56
- return !r?.length && !s && !e ? null : {
121
+ const n = Array.isArray(t.selectedValues) ? t.selectedValues.map((r) => `${r ?? ""}`.trim()).filter(Boolean) : void 0, s = `${t.buttonText ?? ""}`.trim(), e = typeof t.inputText == "string" ? t.inputText : void 0;
122
+ return !n?.length && !s && !e ? null : {
57
123
  buttonText: s || void 0,
58
124
  inputText: e,
59
- selectedValues: r?.length ? r : void 0
125
+ selectedValues: n?.length ? n : void 0
60
126
  };
61
- }, S = (t) => {
62
- if (!t || !v.test(t.trim()))
127
+ }, O = (t) => {
128
+ if (!t || !I.test(t.trim()))
63
129
  return null;
64
130
  try {
65
- const r = JSON.parse(t);
66
- return E(r);
131
+ const n = JSON.parse(t);
132
+ return N(n);
67
133
  } catch {
68
134
  return null;
69
135
  }
70
- }, D = (t) => !!(t && (I.test(t) || h.test(t))), T = (t, r, s, e) => e?.resolveDefaultValues?.({
136
+ }, P = (t) => !!(t && (b.test(t) || p.test(t))), m = (t, n, s, e) => e?.resolveDefaultValues?.({
71
137
  content: t,
72
- rawValue: r,
138
+ rawValue: n,
73
139
  interactionInfo: s
74
- }) ?? null, N = (t, r, s) => {
75
- const e = r?.toString().trim();
140
+ }) ?? null, _ = (t, n, s) => {
141
+ const e = n?.toString().trim();
76
142
  if (!e)
77
143
  return {};
78
- const u = S(e);
79
- if (u)
80
- return u;
81
- const o = T(
144
+ const r = O(e);
145
+ if (r)
146
+ return r;
147
+ const l = m(
82
148
  t,
83
149
  e,
84
150
  null,
85
151
  s
86
152
  );
87
- if (o)
88
- return o;
89
- if (!D(t))
153
+ if (l)
154
+ return l;
155
+ if (!P(t))
90
156
  return {
91
157
  buttonText: e,
92
158
  inputText: e
93
159
  };
94
- const n = g(t), c = T(
160
+ const u = V(t), o = m(
95
161
  t,
96
162
  e,
97
- n,
163
+ u,
98
164
  s
99
165
  );
100
- if (c)
101
- return c;
102
- if (!n)
166
+ if (o)
167
+ return o;
168
+ if (!u)
103
169
  return {
104
170
  buttonText: e,
105
171
  inputText: e
106
172
  };
107
- if (n.isMultiSelect) {
108
- const f = A(e);
109
- if (!f.length)
110
- return {};
111
- const l = [], a = [];
112
- return f.forEach((d) => {
113
- const p = m(d, n);
114
- if (p) {
115
- l.push(p.value);
116
- return;
117
- }
118
- if (n.placeholder) {
119
- a.push(d);
120
- return;
121
- }
122
- l.push(d);
123
- }), {
124
- selectedValues: l.length ? l : void 0,
125
- inputText: a.length ? a.join(", ") : void 0
126
- };
127
- }
128
- const i = m(e, n);
173
+ if (u.isMultiSelect)
174
+ return D(e, u);
175
+ const i = h(e, u);
129
176
  return i ? {
130
177
  buttonText: i.value || i.display || e
131
- } : n.placeholder ? {
178
+ } : u.placeholder ? {
132
179
  inputText: e
133
180
  } : {
134
181
  buttonText: e,
135
182
  inputText: e
136
183
  };
137
- }, O = (t, r, s) => {
138
- const e = N(t, r, s);
139
- return e.selectedValues ? e.selectedValues : r ? r.split(",").map((u) => u.trim()).filter(Boolean) : void 0;
184
+ }, C = (t, n, s) => {
185
+ const e = _(t, n, s);
186
+ return e.selectedValues ? e.selectedValues : n ? n.split(",").map((r) => r.trim()).filter(Boolean) : void 0;
140
187
  };
141
188
  export {
142
- O as getInteractionDefaultSelectedValues,
143
- N as getInteractionDefaultValues
189
+ C as getInteractionDefaultSelectedValues,
190
+ _ as getInteractionDefaultValues
144
191
  };
145
192
  //# sourceMappingURL=interaction-defaults.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction-defaults.es.js","sources":["../../src/lib/interaction-defaults.ts"],"sourcesContent":["import { createInteractionParser } from \"remark-flow\";\n\nexport interface InteractionParseResult {\n buttonTexts?: string[];\n buttonValues?: string[];\n placeholder?: string;\n variableName?: string;\n isMultiSelect?: boolean;\n}\n\nexport interface InteractionDefaultValues {\n buttonText?: string;\n inputText?: string;\n selectedValues?: string[];\n}\n\nexport interface InteractionDefaultResolverParams {\n content?: string | null;\n rawValue?: string | null;\n interactionInfo?: InteractionParseResult | null;\n}\n\nexport type InteractionDefaultResolver = (\n params: InteractionDefaultResolverParams\n) => InteractionDefaultValues | null | undefined;\n\nexport interface InteractionDefaultValueOptions {\n resolveDefaultValues?: InteractionDefaultResolver;\n}\n\ninterface StructuredInteractionPayload {\n buttonText?: unknown;\n inputText?: unknown;\n selectedValues?: unknown;\n}\n\nconst interactionParser = createInteractionParser();\nconst INTERACTION_TAG_PATTERN = /<custom-variable\\b/i;\nconst INTERACTION_SHORTCODE_PATTERN = /\\?\\[%\\{\\{([^}]+)\\}\\}([\\s\\S]*?)\\]/;\nconst JSON_LIKE_VALUE_PATTERN = /^[\\[{]/;\n\nconst parseInteractionShortcode = (\n content?: string | null\n): InteractionParseResult | null => {\n if (!content) {\n return null;\n }\n\n const matched = content.match(INTERACTION_SHORTCODE_PATTERN);\n const variableName = matched?.[1]?.trim();\n const interactionBody = matched?.[2]?.trim();\n\n if (!interactionBody) {\n return null;\n }\n\n const isMultiSelect = interactionBody.includes(\"||\");\n const separator = isMultiSelect ? \"||\" : \"|\";\n const rawOptions = interactionBody\n .split(separator)\n .map((item) => item.trim())\n .filter(Boolean);\n\n if (!rawOptions.length) {\n return null;\n }\n\n const buttonTexts: string[] = [];\n const buttonValues: string[] = [];\n let placeholder: string | undefined;\n\n rawOptions.forEach((option) => {\n if (option.startsWith(\"...\")) {\n const normalizedPlaceholder = option.replace(/^\\.\\.\\./, \"\").trim();\n if (normalizedPlaceholder) {\n placeholder = normalizedPlaceholder;\n }\n return;\n }\n\n buttonTexts.push(option);\n buttonValues.push(option);\n });\n\n return {\n variableName,\n buttonTexts: buttonTexts.length ? buttonTexts : undefined,\n buttonValues: buttonValues.length ? buttonValues : undefined,\n placeholder,\n isMultiSelect,\n };\n};\n\nconst parseInteractionBlock = (\n content?: string | null\n): InteractionParseResult | null => {\n if (!content) {\n return null;\n }\n\n try {\n return interactionParser.parseToRemarkFormat(\n content\n ) as InteractionParseResult;\n } catch (error) {\n console.warn(\"Failed to parse interaction block\", error);\n }\n\n return parseInteractionShortcode(content);\n};\n\nconst normalizeButtonValue = (\n token: string,\n info: InteractionParseResult\n): { value: string; display?: string } | null => {\n if (!token) {\n return null;\n }\n\n const cleaned = token.trim();\n const buttonValues = info.buttonValues || [];\n const buttonTexts = info.buttonTexts || [];\n const valueIndex = buttonValues.indexOf(cleaned);\n\n if (valueIndex > -1) {\n return {\n value: buttonValues[valueIndex],\n display: buttonTexts[valueIndex],\n };\n }\n\n const textIndex = buttonTexts.indexOf(cleaned);\n\n if (textIndex > -1) {\n return {\n value: buttonValues[textIndex] || buttonTexts[textIndex],\n display: buttonTexts[textIndex],\n };\n }\n\n return null;\n};\n\nconst splitPresetValues = (raw: string) => {\n return raw\n .split(/[,,\\n]/)\n .map((item) => item.trim())\n .filter(Boolean);\n};\n\nconst normalizeStructuredInteractionDefaults = (\n payload?: StructuredInteractionPayload | null\n): InteractionDefaultValues | null => {\n if (!payload || Array.isArray(payload)) {\n return null;\n }\n\n const selectedValues = Array.isArray(payload.selectedValues)\n ? payload.selectedValues\n .map((item) => `${item ?? \"\"}`.trim())\n .filter(Boolean)\n : undefined;\n const buttonText = `${payload.buttonText ?? \"\"}`.trim();\n const inputText =\n typeof payload.inputText === \"string\" ? payload.inputText : undefined;\n\n if (!selectedValues?.length && !buttonText && !inputText) {\n return null;\n }\n\n return {\n buttonText: buttonText || undefined,\n inputText,\n selectedValues: selectedValues?.length ? selectedValues : undefined,\n };\n};\n\nconst parseStructuredInteractionDefaults = (rawValue?: string | null) => {\n if (!rawValue) {\n return null;\n }\n\n if (!JSON_LIKE_VALUE_PATTERN.test(rawValue.trim())) {\n return null;\n }\n\n try {\n const parsed = JSON.parse(rawValue) as StructuredInteractionPayload;\n return normalizeStructuredInteractionDefaults(parsed);\n } catch {\n return null;\n }\n};\n\nconst hasPotentialInteractionBlock = (content?: string | null) =>\n Boolean(\n content &&\n (INTERACTION_TAG_PATTERN.test(content) ||\n INTERACTION_SHORTCODE_PATTERN.test(content))\n );\n\nconst resolveCustomInteractionDefaults = (\n content?: string | null,\n rawValue?: string | null,\n interactionInfo?: InteractionParseResult | null,\n options?: InteractionDefaultValueOptions\n) => {\n return (\n options?.resolveDefaultValues?.({\n content,\n rawValue,\n interactionInfo,\n }) ?? null\n );\n};\n\nexport const getInteractionDefaultValues = (\n content?: string | null,\n rawValue?: string | null,\n options?: InteractionDefaultValueOptions\n): InteractionDefaultValues => {\n const normalized = rawValue?.toString().trim();\n\n if (!normalized) {\n return {};\n }\n\n const structuredDefaults = parseStructuredInteractionDefaults(normalized);\n\n if (structuredDefaults) {\n return structuredDefaults;\n }\n\n const customDefaults = resolveCustomInteractionDefaults(\n content,\n normalized,\n null,\n options\n );\n\n if (customDefaults) {\n return customDefaults;\n }\n\n if (!hasPotentialInteractionBlock(content)) {\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n }\n\n const interactionInfo = parseInteractionBlock(content);\n const customDefaultsWithInteraction = resolveCustomInteractionDefaults(\n content,\n normalized,\n interactionInfo,\n options\n );\n\n if (customDefaultsWithInteraction) {\n return customDefaultsWithInteraction;\n }\n\n if (!interactionInfo) {\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n }\n\n if (interactionInfo.isMultiSelect) {\n const tokens = splitPresetValues(normalized);\n\n if (!tokens.length) {\n return {};\n }\n\n const selectedValues: string[] = [];\n const customInputs: string[] = [];\n\n tokens.forEach((token) => {\n const mapped = normalizeButtonValue(token, interactionInfo);\n\n if (mapped) {\n selectedValues.push(mapped.value);\n return;\n }\n\n if (interactionInfo.placeholder) {\n customInputs.push(token);\n return;\n }\n\n selectedValues.push(token);\n });\n\n return {\n selectedValues: selectedValues.length ? selectedValues : undefined,\n inputText: customInputs.length ? customInputs.join(\", \") : undefined,\n };\n }\n\n const mapped = normalizeButtonValue(normalized, interactionInfo);\n\n if (mapped) {\n return {\n buttonText: mapped.value || mapped.display || normalized,\n };\n }\n\n if (interactionInfo.placeholder) {\n return {\n inputText: normalized,\n };\n }\n\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n};\n\nexport const getInteractionDefaultSelectedValues = (\n content?: string | null,\n rawValue?: string | null,\n options?: InteractionDefaultValueOptions\n) => {\n const defaults = getInteractionDefaultValues(content, rawValue, options);\n\n if (defaults.selectedValues) {\n return defaults.selectedValues;\n }\n\n return rawValue\n ? rawValue\n .split(\",\")\n .map((value) => value.trim())\n .filter(Boolean)\n : undefined;\n};\n"],"names":["interactionParser","createInteractionParser","INTERACTION_TAG_PATTERN","INTERACTION_SHORTCODE_PATTERN","JSON_LIKE_VALUE_PATTERN","parseInteractionShortcode","content","matched","variableName","interactionBody","isMultiSelect","separator","rawOptions","item","buttonTexts","buttonValues","placeholder","option","normalizedPlaceholder","parseInteractionBlock","error","normalizeButtonValue","token","info","cleaned","valueIndex","textIndex","splitPresetValues","raw","normalizeStructuredInteractionDefaults","payload","selectedValues","buttonText","inputText","parseStructuredInteractionDefaults","rawValue","parsed","hasPotentialInteractionBlock","resolveCustomInteractionDefaults","interactionInfo","options","getInteractionDefaultValues","normalized","structuredDefaults","customDefaults","customDefaultsWithInteraction","tokens","customInputs","mapped","getInteractionDefaultSelectedValues","defaults","value"],"mappings":";AAoCA,MAAMA,IAAoBC,EAAAA,wBAAA,GACpBC,IAA0B,uBAC1BC,IAAgC,oCAChCC,IAA0B,UAE1BC,IAA4B,CAChCC,MACkC;AAClC,MAAI,CAACA;AACH,WAAO;AAGT,QAAMC,IAAUD,EAAQ,MAAMH,CAA6B,GACrDK,IAAeD,IAAU,CAAC,GAAG,KAAA,GAC7BE,IAAkBF,IAAU,CAAC,GAAG,KAAA;AAEtC,MAAI,CAACE;AACH,WAAO;AAGT,QAAMC,IAAgBD,EAAgB,SAAS,IAAI,GAC7CE,IAAYD,IAAgB,OAAO,KACnCE,IAAaH,EAChB,MAAME,CAAS,EACf,IAAI,CAACE,MAASA,EAAK,KAAA,CAAM,EACzB,OAAO,OAAO;AAEjB,MAAI,CAACD,EAAW;AACd,WAAO;AAGT,QAAME,IAAwB,CAAA,GACxBC,IAAyB,CAAA;AAC/B,MAAIC;AAEJ,SAAAJ,EAAW,QAAQ,CAACK,MAAW;AAC7B,QAAIA,EAAO,WAAW,KAAK,GAAG;AAC5B,YAAMC,IAAwBD,EAAO,QAAQ,WAAW,EAAE,EAAE,KAAA;AAC5D,MAAIC,MACFF,IAAcE;AAEhB;AAAA,IACF;AAEA,IAAAJ,EAAY,KAAKG,CAAM,GACvBF,EAAa,KAAKE,CAAM;AAAA,EAC1B,CAAC,GAEM;AAAA,IACL,cAAAT;AAAA,IACA,aAAaM,EAAY,SAASA,IAAc;AAAA,IAChD,cAAcC,EAAa,SAASA,IAAe;AAAA,IACnD,aAAAC;AAAA,IACA,eAAAN;AAAA,EAAA;AAEJ,GAEMS,IAAwB,CAC5Bb,MACkC;AAClC,MAAI,CAACA;AACH,WAAO;AAGT,MAAI;AACF,WAAON,EAAkB;AAAA,MACvBM;AAAA,IAAA;AAAA,EAEJ,SAASc,GAAO;AACd,YAAQ,KAAK,qCAAqCA,CAAK;AAAA,EACzD;AAEA,SAAOf,EAA0BC,CAAO;AAC1C,GAEMe,IAAuB,CAC3BC,GACAC,MAC+C;AAC/C,MAAI,CAACD;AACH,WAAO;AAGT,QAAME,IAAUF,EAAM,KAAA,GAChBP,IAAeQ,EAAK,gBAAgB,CAAA,GACpCT,IAAcS,EAAK,eAAe,CAAA,GAClCE,IAAaV,EAAa,QAAQS,CAAO;AAE/C,MAAIC,IAAa;AACf,WAAO;AAAA,MACL,OAAOV,EAAaU,CAAU;AAAA,MAC9B,SAASX,EAAYW,CAAU;AAAA,IAAA;AAInC,QAAMC,IAAYZ,EAAY,QAAQU,CAAO;AAE7C,SAAIE,IAAY,KACP;AAAA,IACL,OAAOX,EAAaW,CAAS,KAAKZ,EAAYY,CAAS;AAAA,IACvD,SAASZ,EAAYY,CAAS;AAAA,EAAA,IAI3B;AACT,GAEMC,IAAoB,CAACC,MAClBA,EACJ,MAAM,QAAQ,EACd,IAAI,CAACf,MAASA,EAAK,KAAA,CAAM,EACzB,OAAO,OAAO,GAGbgB,IAAyC,CAC7CC,MACoC;AACpC,MAAI,CAACA,KAAW,MAAM,QAAQA,CAAO;AACnC,WAAO;AAGT,QAAMC,IAAiB,MAAM,QAAQD,EAAQ,cAAc,IACvDA,EAAQ,eACL,IAAI,CAACjB,MAAS,GAAGA,KAAQ,EAAE,GAAG,KAAA,CAAM,EACpC,OAAO,OAAO,IACjB,QACEmB,IAAa,GAAGF,EAAQ,cAAc,EAAE,GAAG,KAAA,GAC3CG,IACJ,OAAOH,EAAQ,aAAc,WAAWA,EAAQ,YAAY;AAE9D,SAAI,CAACC,GAAgB,UAAU,CAACC,KAAc,CAACC,IACtC,OAGF;AAAA,IACL,YAAYD,KAAc;AAAA,IAC1B,WAAAC;AAAA,IACA,gBAAgBF,GAAgB,SAASA,IAAiB;AAAA,EAAA;AAE9D,GAEMG,IAAqC,CAACC,MAA6B;AAKvE,MAJI,CAACA,KAID,CAAC/B,EAAwB,KAAK+B,EAAS,KAAA,CAAM;AAC/C,WAAO;AAGT,MAAI;AACF,UAAMC,IAAS,KAAK,MAAMD,CAAQ;AAClC,WAAON,EAAuCO,CAAM;AAAA,EACtD,QAAQ;AACN,WAAO;AAAA,EACT;AACF,GAEMC,IAA+B,CAAC/B,MACpC,GACEA,MACCJ,EAAwB,KAAKI,CAAO,KACnCH,EAA8B,KAAKG,CAAO,KAG1CgC,IAAmC,CACvChC,GACA6B,GACAI,GACAC,MAGEA,GAAS,uBAAuB;AAAA,EAC9B,SAAAlC;AAAA,EACA,UAAA6B;AAAA,EACA,iBAAAI;AAAA,CACD,KAAK,MAIGE,IAA8B,CACzCnC,GACA6B,GACAK,MAC6B;AAC7B,QAAME,IAAaP,GAAU,SAAA,EAAW,KAAA;AAExC,MAAI,CAACO;AACH,WAAO,CAAA;AAGT,QAAMC,IAAqBT,EAAmCQ,CAAU;AAExE,MAAIC;AACF,WAAOA;AAGT,QAAMC,IAAiBN;AAAA,IACrBhC;AAAA,IACAoC;AAAA,IACA;AAAA,IACAF;AAAA,EAAA;AAGF,MAAII;AACF,WAAOA;AAGT,MAAI,CAACP,EAA6B/B,CAAO;AACvC,WAAO;AAAA,MACL,YAAYoC;AAAA,MACZ,WAAWA;AAAA,IAAA;AAIf,QAAMH,IAAkBpB,EAAsBb,CAAO,GAC/CuC,IAAgCP;AAAA,IACpChC;AAAA,IACAoC;AAAA,IACAH;AAAA,IACAC;AAAA,EAAA;AAGF,MAAIK;AACF,WAAOA;AAGT,MAAI,CAACN;AACH,WAAO;AAAA,MACL,YAAYG;AAAA,MACZ,WAAWA;AAAA,IAAA;AAIf,MAAIH,EAAgB,eAAe;AACjC,UAAMO,IAASnB,EAAkBe,CAAU;AAE3C,QAAI,CAACI,EAAO;AACV,aAAO,CAAA;AAGT,UAAMf,IAA2B,CAAA,GAC3BgB,IAAyB,CAAA;AAE/B,WAAAD,EAAO,QAAQ,CAACxB,MAAU;AACxB,YAAM0B,IAAS3B,EAAqBC,GAAOiB,CAAe;AAE1D,UAAIS,GAAQ;AACV,QAAAjB,EAAe,KAAKiB,EAAO,KAAK;AAChC;AAAA,MACF;AAEA,UAAIT,EAAgB,aAAa;AAC/B,QAAAQ,EAAa,KAAKzB,CAAK;AACvB;AAAA,MACF;AAEA,MAAAS,EAAe,KAAKT,CAAK;AAAA,IAC3B,CAAC,GAEM;AAAA,MACL,gBAAgBS,EAAe,SAASA,IAAiB;AAAA,MACzD,WAAWgB,EAAa,SAASA,EAAa,KAAK,IAAI,IAAI;AAAA,IAAA;AAAA,EAE/D;AAEA,QAAMC,IAAS3B,EAAqBqB,GAAYH,CAAe;AAE/D,SAAIS,IACK;AAAA,IACL,YAAYA,EAAO,SAASA,EAAO,WAAWN;AAAA,EAAA,IAI9CH,EAAgB,cACX;AAAA,IACL,WAAWG;AAAA,EAAA,IAIR;AAAA,IACL,YAAYA;AAAA,IACZ,WAAWA;AAAA,EAAA;AAEf,GAEaO,IAAsC,CACjD3C,GACA6B,GACAK,MACG;AACH,QAAMU,IAAWT,EAA4BnC,GAAS6B,GAAUK,CAAO;AAEvE,SAAIU,EAAS,iBACJA,EAAS,iBAGXf,IACHA,EACG,MAAM,GAAG,EACT,IAAI,CAACgB,MAAUA,EAAM,KAAA,CAAM,EAC3B,OAAO,OAAO,IACjB;AACN;"}
1
+ {"version":3,"file":"interaction-defaults.es.js","sources":["../../src/lib/interaction-defaults.ts"],"sourcesContent":["import { createInteractionParser } from \"remark-flow\";\n\nexport interface InteractionParseResult {\n buttonTexts?: string[];\n buttonValues?: string[];\n placeholder?: string;\n variableName?: string;\n isMultiSelect?: boolean;\n}\n\nexport interface InteractionDefaultValues {\n buttonText?: string;\n inputText?: string;\n selectedValues?: string[];\n}\n\nexport interface InteractionDefaultResolverParams {\n content?: string | null;\n rawValue?: string | null;\n interactionInfo?: InteractionParseResult | null;\n}\n\nexport type InteractionDefaultResolver = (\n params: InteractionDefaultResolverParams\n) => InteractionDefaultValues | null | undefined;\n\nexport interface InteractionDefaultValueOptions {\n resolveDefaultValues?: InteractionDefaultResolver;\n}\n\ninterface StructuredInteractionPayload {\n buttonText?: unknown;\n inputText?: unknown;\n selectedValues?: unknown;\n}\n\nconst interactionParser = createInteractionParser();\nconst INTERACTION_TAG_PATTERN = /<custom-variable\\b/i;\nconst INTERACTION_SHORTCODE_PATTERN = /\\?\\[%\\{\\{([^}]+)\\}\\}([\\s\\S]*?)\\]/;\nconst JSON_LIKE_VALUE_PATTERN = /^[\\[{]/;\nconst INTERACTION_VALUE_SEPARATOR_PATTERN = /^[\\s,,\\n]+/;\n\ninterface InteractionOptionCandidate {\n token: string;\n value: string;\n}\n\nconst parseInteractionShortcode = (\n content?: string | null\n): InteractionParseResult | null => {\n if (!content) {\n return null;\n }\n\n const matched = content.match(INTERACTION_SHORTCODE_PATTERN);\n const variableName = matched?.[1]?.trim();\n const interactionBody = matched?.[2]?.trim();\n\n if (!interactionBody) {\n return null;\n }\n\n const isMultiSelect = interactionBody.includes(\"||\");\n const separator = isMultiSelect ? \"||\" : \"|\";\n const rawOptions = interactionBody\n .split(separator)\n .map((item) => item.trim())\n .filter(Boolean);\n\n if (!rawOptions.length) {\n return null;\n }\n\n const buttonTexts: string[] = [];\n const buttonValues: string[] = [];\n let placeholder: string | undefined;\n\n rawOptions.forEach((option) => {\n if (option.startsWith(\"...\")) {\n const normalizedPlaceholder = option.replace(/^\\.\\.\\./, \"\").trim();\n if (normalizedPlaceholder) {\n placeholder = normalizedPlaceholder;\n }\n return;\n }\n\n buttonTexts.push(option);\n buttonValues.push(option);\n });\n\n return {\n variableName,\n buttonTexts: buttonTexts.length ? buttonTexts : undefined,\n buttonValues: buttonValues.length ? buttonValues : undefined,\n placeholder,\n isMultiSelect,\n };\n};\n\nconst parseInteractionBlock = (\n content?: string | null\n): InteractionParseResult | null => {\n if (!content) {\n return null;\n }\n\n try {\n return interactionParser.parseToRemarkFormat(\n content\n ) as InteractionParseResult;\n } catch (error) {\n console.warn(\"Failed to parse interaction block\", error);\n }\n\n return parseInteractionShortcode(content);\n};\n\nconst normalizeButtonValue = (\n token: string,\n info: InteractionParseResult\n): { value: string; display?: string } | null => {\n if (!token) {\n return null;\n }\n\n const cleaned = token.trim();\n const buttonValues = info.buttonValues || [];\n const buttonTexts = info.buttonTexts || [];\n const valueIndex = buttonValues.indexOf(cleaned);\n\n if (valueIndex > -1) {\n return {\n value: buttonValues[valueIndex],\n display: buttonTexts[valueIndex],\n };\n }\n\n const textIndex = buttonTexts.indexOf(cleaned);\n\n if (textIndex > -1) {\n return {\n value: buttonValues[textIndex] || buttonTexts[textIndex],\n display: buttonTexts[textIndex],\n };\n }\n\n return null;\n};\n\nconst splitPresetValues = (raw: string) => {\n return raw\n .split(/[,,\\n]/)\n .map((item) => item.trim())\n .filter(Boolean);\n};\n\nconst trimLeadingInteractionSeparators = (raw: string) =>\n raw.replace(INTERACTION_VALUE_SEPARATOR_PATTERN, \"\");\n\nconst buildInteractionOptionCandidates = (\n info: InteractionParseResult\n): InteractionOptionCandidate[] => {\n const buttonValues = info.buttonValues || [];\n const buttonTexts = info.buttonTexts || [];\n const candidates: InteractionOptionCandidate[] = [];\n const seenCandidates = new Set<string>();\n\n buttonValues.forEach((buttonValue, index) => {\n const normalizedValue = `${buttonValue ?? \"\"}`.trim();\n const normalizedText = `${buttonTexts[index] ?? \"\"}`.trim();\n\n [normalizedValue, normalizedText].forEach((token) => {\n if (!token) {\n return;\n }\n\n const candidateKey = `${token}::${normalizedValue || token}`;\n if (seenCandidates.has(candidateKey)) {\n return;\n }\n\n seenCandidates.add(candidateKey);\n candidates.push({\n token,\n value: normalizedValue || token,\n });\n });\n });\n\n return candidates.sort((left, right) => right.token.length - left.token.length);\n};\n\nconst matchInteractionOptionPrefix = (\n raw: string,\n info: InteractionParseResult\n): InteractionOptionCandidate | null => {\n const normalizedRaw = trimLeadingInteractionSeparators(raw);\n const candidates = buildInteractionOptionCandidates(info);\n\n for (const candidate of candidates) {\n if (!normalizedRaw.startsWith(candidate.token)) {\n continue;\n }\n\n const trailingChar = normalizedRaw[candidate.token.length];\n if (trailingChar && !/[\\s,,\\n]/.test(trailingChar)) {\n continue;\n }\n\n return candidate;\n }\n\n return null;\n};\n\nconst resolveMultiSelectFallbackDefaults = (\n raw: string,\n info: InteractionParseResult\n): InteractionDefaultValues => {\n const tokens = splitPresetValues(raw);\n\n if (!tokens.length) {\n return {};\n }\n\n const selectedValues: string[] = [];\n const customInputs: string[] = [];\n\n tokens.forEach((token) => {\n const mapped = normalizeButtonValue(token, info);\n\n if (mapped) {\n selectedValues.push(mapped.value);\n return;\n }\n\n if (info.placeholder) {\n customInputs.push(token);\n return;\n }\n\n selectedValues.push(token);\n });\n\n return {\n selectedValues: selectedValues.length ? selectedValues : undefined,\n inputText: customInputs.length ? customInputs.join(\", \") : undefined,\n };\n};\n\nconst resolveMultiSelectInteractionDefaults = (\n raw: string,\n info: InteractionParseResult\n): InteractionDefaultValues => {\n const selectedValues: string[] = [];\n let remainingRaw = raw.trim();\n\n // Prefer option-aware prefix matching before delimiter splitting so\n // option labels that contain commas can still round-trip correctly.\n while (remainingRaw) {\n const matchedCandidate = matchInteractionOptionPrefix(remainingRaw, info);\n\n if (!matchedCandidate) {\n break;\n }\n\n selectedValues.push(matchedCandidate.value);\n const normalizedRemainingRaw = trimLeadingInteractionSeparators(remainingRaw);\n remainingRaw = trimLeadingInteractionSeparators(\n normalizedRemainingRaw.slice(matchedCandidate.token.length)\n );\n }\n\n if (selectedValues.length > 0) {\n return {\n selectedValues,\n inputText:\n info.placeholder && remainingRaw.trim() ? remainingRaw.trim() : undefined,\n };\n }\n\n const fallbackDefaults = resolveMultiSelectFallbackDefaults(raw, info);\n\n if (fallbackDefaults.selectedValues?.length) {\n return fallbackDefaults;\n }\n\n if (info.placeholder) {\n return {\n inputText: raw.trim(),\n };\n }\n\n return fallbackDefaults;\n};\n\nconst normalizeStructuredInteractionDefaults = (\n payload?: StructuredInteractionPayload | null\n): InteractionDefaultValues | null => {\n if (!payload || Array.isArray(payload)) {\n return null;\n }\n\n const selectedValues = Array.isArray(payload.selectedValues)\n ? payload.selectedValues\n .map((item) => `${item ?? \"\"}`.trim())\n .filter(Boolean)\n : undefined;\n const buttonText = `${payload.buttonText ?? \"\"}`.trim();\n const inputText =\n typeof payload.inputText === \"string\" ? payload.inputText : undefined;\n\n if (!selectedValues?.length && !buttonText && !inputText) {\n return null;\n }\n\n return {\n buttonText: buttonText || undefined,\n inputText,\n selectedValues: selectedValues?.length ? selectedValues : undefined,\n };\n};\n\nconst parseStructuredInteractionDefaults = (rawValue?: string | null) => {\n if (!rawValue) {\n return null;\n }\n\n if (!JSON_LIKE_VALUE_PATTERN.test(rawValue.trim())) {\n return null;\n }\n\n try {\n const parsed = JSON.parse(rawValue) as StructuredInteractionPayload;\n return normalizeStructuredInteractionDefaults(parsed);\n } catch {\n return null;\n }\n};\n\nconst hasPotentialInteractionBlock = (content?: string | null) =>\n Boolean(\n content &&\n (INTERACTION_TAG_PATTERN.test(content) ||\n INTERACTION_SHORTCODE_PATTERN.test(content))\n );\n\nconst resolveCustomInteractionDefaults = (\n content?: string | null,\n rawValue?: string | null,\n interactionInfo?: InteractionParseResult | null,\n options?: InteractionDefaultValueOptions\n) => {\n return (\n options?.resolveDefaultValues?.({\n content,\n rawValue,\n interactionInfo,\n }) ?? null\n );\n};\n\nexport const getInteractionDefaultValues = (\n content?: string | null,\n rawValue?: string | null,\n options?: InteractionDefaultValueOptions\n): InteractionDefaultValues => {\n const normalized = rawValue?.toString().trim();\n\n if (!normalized) {\n return {};\n }\n\n const structuredDefaults = parseStructuredInteractionDefaults(normalized);\n\n if (structuredDefaults) {\n return structuredDefaults;\n }\n\n const customDefaults = resolveCustomInteractionDefaults(\n content,\n normalized,\n null,\n options\n );\n\n if (customDefaults) {\n return customDefaults;\n }\n\n if (!hasPotentialInteractionBlock(content)) {\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n }\n\n const interactionInfo = parseInteractionBlock(content);\n const customDefaultsWithInteraction = resolveCustomInteractionDefaults(\n content,\n normalized,\n interactionInfo,\n options\n );\n\n if (customDefaultsWithInteraction) {\n return customDefaultsWithInteraction;\n }\n\n if (!interactionInfo) {\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n }\n\n if (interactionInfo.isMultiSelect) {\n return resolveMultiSelectInteractionDefaults(normalized, interactionInfo);\n }\n\n const mapped = normalizeButtonValue(normalized, interactionInfo);\n\n if (mapped) {\n return {\n buttonText: mapped.value || mapped.display || normalized,\n };\n }\n\n if (interactionInfo.placeholder) {\n return {\n inputText: normalized,\n };\n }\n\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n};\n\nexport const getInteractionDefaultSelectedValues = (\n content?: string | null,\n rawValue?: string | null,\n options?: InteractionDefaultValueOptions\n) => {\n const defaults = getInteractionDefaultValues(content, rawValue, options);\n\n if (defaults.selectedValues) {\n return defaults.selectedValues;\n }\n\n return rawValue\n ? rawValue\n .split(\",\")\n .map((value) => value.trim())\n .filter(Boolean)\n : undefined;\n};\n"],"names":["interactionParser","createInteractionParser","INTERACTION_TAG_PATTERN","INTERACTION_SHORTCODE_PATTERN","JSON_LIKE_VALUE_PATTERN","INTERACTION_VALUE_SEPARATOR_PATTERN","parseInteractionShortcode","content","matched","variableName","interactionBody","isMultiSelect","separator","rawOptions","item","buttonTexts","buttonValues","placeholder","option","normalizedPlaceholder","parseInteractionBlock","error","normalizeButtonValue","token","info","cleaned","valueIndex","textIndex","splitPresetValues","raw","trimLeadingInteractionSeparators","buildInteractionOptionCandidates","candidates","seenCandidates","buttonValue","index","normalizedValue","normalizedText","candidateKey","left","right","matchInteractionOptionPrefix","normalizedRaw","candidate","trailingChar","resolveMultiSelectFallbackDefaults","tokens","selectedValues","customInputs","mapped","resolveMultiSelectInteractionDefaults","remainingRaw","matchedCandidate","normalizedRemainingRaw","fallbackDefaults","normalizeStructuredInteractionDefaults","payload","buttonText","inputText","parseStructuredInteractionDefaults","rawValue","parsed","hasPotentialInteractionBlock","resolveCustomInteractionDefaults","interactionInfo","options","getInteractionDefaultValues","normalized","structuredDefaults","customDefaults","customDefaultsWithInteraction","getInteractionDefaultSelectedValues","defaults","value"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../../../_virtual/index.cjs8.js");/*!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../../../_virtual/index.cjs7.js");/*!
2
2
  Copyright (c) 2018 Jed Watson.
3
3
  Licensed under the MIT License (MIT), see
4
4
  http://jedwatson.github.io/classnames
@@ -1,4 +1,4 @@
1
- import { __module as s } from "../../../../../../_virtual/index.es8.js";
1
+ import { __module as s } from "../../../../../../_virtual/index.es7.js";
2
2
  /*!
3
3
  Copyright (c) 2018 Jed Watson.
4
4
  Licensed under the MIT License (MIT), see
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../../../../_virtual/index.cjs7.js"),a=require("../../../../inline-style-parser@0.2.4/node_modules/inline-style-parser/index.cjs.js");var i;function d(){if(i)return t.__exports;i=1;var s=t.__exports&&t.__exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t.__exports,"__esModule",{value:!0}),t.__exports.default=l;const f=s(a.__require());function l(e,o){let r=null;if(!e||typeof e!="string")return r;const c=(0,f.default)(e),p=typeof o=="function";return c.forEach(u=>{if(u.type!=="declaration")return;const{property:_,value:n}=u;p?o(_,n,u):n&&(r=r||{},r[_]=n)}),r}return t.__exports}exports.__require=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../../../../_virtual/index.cjs8.js"),a=require("../../../../inline-style-parser@0.2.4/node_modules/inline-style-parser/index.cjs.js");var i;function d(){if(i)return t.__exports;i=1;var s=t.__exports&&t.__exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t.__exports,"__esModule",{value:!0}),t.__exports.default=l;const f=s(a.__require());function l(e,o){let r=null;if(!e||typeof e!="string")return r;const c=(0,f.default)(e),p=typeof o=="function";return c.forEach(u=>{if(u.type!=="declaration")return;const{property:_,value:n}=u;p?o(_,n,u):n&&(r=r||{},r[_]=n)}),r}return t.__exports}exports.__require=d;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { __exports as r } from "../../../../../../../_virtual/index.es7.js";
1
+ import { __exports as r } from "../../../../../../../_virtual/index.es8.js";
2
2
  import { __require as p } from "../../../../inline-style-parser@0.2.4/node_modules/inline-style-parser/index.es.js";
3
3
  var f;
4
4
  function q() {