flowstudio 0.0.30 → 0.0.31

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 (190) hide show
  1. package/dist/ai_creator.d.ts +1 -1
  2. package/dist/ai_creator.js +32 -128
  3. package/dist/ai_creator.js.map +1 -1
  4. package/dist/api_calls.d.ts +2 -0
  5. package/dist/api_calls.js +148 -0
  6. package/dist/api_calls.js.map +1 -0
  7. package/dist/app_analytics.d.ts +1 -1
  8. package/dist/app_analytics.js +75 -69
  9. package/dist/app_analytics.js.map +1 -1
  10. package/dist/app_details.d.ts +1 -1
  11. package/dist/app_details.js +25 -24
  12. package/dist/app_details.js.map +1 -1
  13. package/dist/app_layout.d.ts +2 -2
  14. package/dist/app_layout.js +4 -4
  15. package/dist/app_layout.js.map +1 -1
  16. package/dist/app_settings.d.ts +1 -1
  17. package/dist/app_settings.js +74 -7
  18. package/dist/app_settings.js.map +1 -1
  19. package/dist/bottom_left_panel.d.ts +1 -0
  20. package/dist/bottom_left_panel.js +8 -0
  21. package/dist/bottom_left_panel.js.map +1 -0
  22. package/dist/code.d.ts +1 -1
  23. package/dist/code.js +6 -2
  24. package/dist/code.js.map +1 -1
  25. package/dist/components/ftable.d.ts +13 -0
  26. package/dist/components/ftable.js +65 -0
  27. package/dist/components/ftable.js.map +1 -0
  28. package/dist/components/gsheet/index.d.ts +1 -0
  29. package/dist/components/gsheet/index.js +21 -0
  30. package/dist/components/gsheet/index.js.map +1 -0
  31. package/dist/components/mention_input/index.d.ts +18 -1
  32. package/dist/components/mention_input/index.js +203 -111
  33. package/dist/components/mention_input/index.js.map +1 -1
  34. package/dist/components/paginator_table.d.ts +1 -1
  35. package/dist/components/paginator_table.js +2 -2
  36. package/dist/components/paginator_table.js.map +1 -1
  37. package/dist/components/sheet/index.d.ts +1 -1
  38. package/dist/components/sheet/index.js +4 -2
  39. package/dist/components/sheet/index.js.map +1 -1
  40. package/dist/components/ui/alert.d.ts +8 -0
  41. package/dist/components/ui/alert.js +23 -0
  42. package/dist/components/ui/alert.js.map +1 -0
  43. package/dist/components/ui/badge.d.ts +9 -0
  44. package/dist/components/ui/badge.js +21 -0
  45. package/dist/components/ui/badge.js.map +1 -0
  46. package/dist/components/ui/button.d.ts +11 -0
  47. package/dist/components/ui/button.js +35 -0
  48. package/dist/components/ui/button.js.map +1 -0
  49. package/dist/components/ui/card.d.ts +8 -0
  50. package/dist/components/ui/card.js +17 -0
  51. package/dist/components/ui/card.js.map +1 -0
  52. package/dist/components/ui/dialog.d.ts +19 -0
  53. package/dist/components/ui/dialog.js +33 -0
  54. package/dist/components/ui/dialog.js.map +1 -0
  55. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  56. package/dist/components/ui/dropdown-menu.js +46 -0
  57. package/dist/components/ui/dropdown-menu.js.map +1 -0
  58. package/dist/components/ui/form.d.ts +24 -0
  59. package/dist/components/ui/form.js +61 -0
  60. package/dist/components/ui/form.js.map +1 -0
  61. package/dist/components/ui/input-group.d.ts +16 -0
  62. package/dist/components/ui/input-group.js +65 -0
  63. package/dist/components/ui/input-group.js.map +1 -0
  64. package/dist/components/ui/input.d.ts +5 -0
  65. package/dist/components/ui/input.js +9 -0
  66. package/dist/components/ui/input.js.map +1 -0
  67. package/dist/components/ui/label.d.ts +5 -0
  68. package/dist/components/ui/label.js +10 -0
  69. package/dist/components/ui/label.js.map +1 -0
  70. package/dist/components/ui/popover.d.ts +7 -0
  71. package/dist/components/ui/popover.js +23 -0
  72. package/dist/components/ui/popover.js.map +1 -0
  73. package/dist/components/ui/scroll-area.d.ts +5 -0
  74. package/dist/components/ui/scroll-area.js +12 -0
  75. package/dist/components/ui/scroll-area.js.map +1 -0
  76. package/dist/components/ui/select.d.ts +13 -0
  77. package/dist/components/ui/select.js +37 -0
  78. package/dist/components/ui/select.js.map +1 -0
  79. package/dist/components/ui/separator.d.ts +4 -0
  80. package/dist/components/ui/separator.js +8 -0
  81. package/dist/components/ui/separator.js.map +1 -0
  82. package/dist/components/ui/sheet.d.ts +13 -0
  83. package/dist/components/ui/sheet.js +93 -0
  84. package/dist/components/ui/sheet.js.map +1 -0
  85. package/dist/components/ui/skeleton.d.ts +2 -0
  86. package/dist/components/ui/skeleton.js +7 -0
  87. package/dist/components/ui/skeleton.js.map +1 -0
  88. package/dist/components/ui/sonner.d.ts +3 -0
  89. package/dist/components/ui/sonner.js +42 -0
  90. package/dist/components/ui/sonner.js.map +1 -0
  91. package/dist/components/ui/spinner.d.ts +7 -0
  92. package/dist/components/ui/spinner.js +17 -0
  93. package/dist/components/ui/spinner.js.map +1 -0
  94. package/dist/components/ui/switch.d.ts +4 -0
  95. package/dist/components/ui/switch.js +8 -0
  96. package/dist/components/ui/switch.js.map +1 -0
  97. package/dist/components/ui/table.d.ts +10 -0
  98. package/dist/components/ui/table.js +21 -0
  99. package/dist/components/ui/table.js.map +1 -0
  100. package/dist/components/ui/tabs.d.ts +7 -0
  101. package/dist/components/ui/tabs.js +13 -0
  102. package/dist/components/ui/tabs.js.map +1 -0
  103. package/dist/components/ui/textarea.d.ts +5 -0
  104. package/dist/components/ui/textarea.js +9 -0
  105. package/dist/components/ui/textarea.js.map +1 -0
  106. package/dist/components/ui/tooltip.d.ts +7 -0
  107. package/dist/components/ui/tooltip.js +11 -0
  108. package/dist/components/ui/tooltip.js.map +1 -0
  109. package/dist/constants.js +2 -2
  110. package/dist/constants.js.map +1 -1
  111. package/dist/context.d.ts +1 -1
  112. package/dist/context.js +2 -2
  113. package/dist/context.js.map +1 -1
  114. package/dist/envs.d.ts +2 -2
  115. package/dist/envs.js +2 -150
  116. package/dist/envs.js.map +1 -1
  117. package/dist/functions.d.ts +2 -5
  118. package/dist/functions.js +2 -210
  119. package/dist/functions.js.map +1 -1
  120. package/dist/globals.css +253 -0
  121. package/dist/home.d.ts +1 -1
  122. package/dist/home.js +24 -14
  123. package/dist/home.js.map +1 -1
  124. package/dist/index.d.ts +2 -2
  125. package/dist/index.js +57 -16
  126. package/dist/index.js.map +1 -1
  127. package/dist/lib/pane-context.d.ts +10 -0
  128. package/dist/lib/pane-context.js +21 -0
  129. package/dist/lib/pane-context.js.map +1 -0
  130. package/dist/lib/toast.d.ts +12 -0
  131. package/dist/lib/toast.js +36 -0
  132. package/dist/lib/toast.js.map +1 -0
  133. package/dist/lib/utils.d.ts +2 -0
  134. package/dist/lib/utils.js +6 -0
  135. package/dist/lib/utils.js.map +1 -0
  136. package/dist/new_project.d.ts +1 -1
  137. package/dist/new_project.js +60 -41
  138. package/dist/new_project.js.map +1 -1
  139. package/dist/node.d.ts +2 -2
  140. package/dist/node.js +157 -39
  141. package/dist/node.js.map +1 -1
  142. package/dist/project_widget.d.ts +2 -1
  143. package/dist/project_widget.js +6 -2
  144. package/dist/project_widget.js.map +1 -1
  145. package/dist/secrets.d.ts +2 -0
  146. package/dist/secrets.js +129 -0
  147. package/dist/secrets.js.map +1 -0
  148. package/dist/simulator.d.ts +1 -1
  149. package/dist/simulator.js +34 -32
  150. package/dist/simulator.js.map +1 -1
  151. package/dist/studio_pane.d.ts +1 -1
  152. package/dist/studio_pane.js +281 -56
  153. package/dist/studio_pane.js.map +1 -1
  154. package/dist/studio_pane_old.d.ts +1 -1
  155. package/dist/studio_pane_old.js +2 -3
  156. package/dist/studio_pane_old.js.map +1 -1
  157. package/dist/studio_pane_old_new.d.ts +1 -1
  158. package/dist/studio_pane_old_new.js +2 -3
  159. package/dist/studio_pane_old_new.js.map +1 -1
  160. package/dist/styles/globals.css +59 -0
  161. package/dist/styles.css +2 -0
  162. package/dist/top_center_panel.d.ts +1 -1
  163. package/dist/top_center_panel.js +4 -3
  164. package/dist/top_center_panel.js.map +1 -1
  165. package/dist/top_left_panel.d.ts +1 -1
  166. package/dist/top_left_panel.js +7 -41
  167. package/dist/top_left_panel.js.map +1 -1
  168. package/dist/top_right_panel.d.ts +1 -1
  169. package/dist/top_right_panel.js +12 -13
  170. package/dist/top_right_panel.js.map +1 -1
  171. package/dist/triggers.d.ts +2 -2
  172. package/dist/triggers.js +57 -37
  173. package/dist/triggers.js.map +1 -1
  174. package/dist/zustand/store.d.ts +319 -3
  175. package/package.json +51 -24
  176. package/src/globals.css +253 -0
  177. package/src/styles/globals.css +59 -0
  178. package/dist/components/combo_box/index.d.ts +0 -2
  179. package/dist/components/combo_box/index.js +0 -150
  180. package/dist/components/combo_box/index.js.map +0 -1
  181. package/dist/components/combo_box/style.css +0 -10
  182. package/dist/components/date_picker/index.d.ts +0 -1
  183. package/dist/components/date_picker/index.js +0 -46
  184. package/dist/components/date_picker/index.js.map +0 -1
  185. package/dist/components/date_picker/style.css +0 -204
  186. package/dist/components/gtable.d.ts +0 -15
  187. package/dist/components/gtable.js +0 -122
  188. package/dist/components/gtable.js.map +0 -1
  189. package/src/components/combo_box/style.css +0 -10
  190. package/src/components/date_picker/style.css +0 -204
@@ -1,125 +1,217 @@
1
+ 'use client';
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // MentionTextarea.tsx
3
- import { useRef, useState, useEffect } from "react";
4
- // import { Popover, PopoverContent, PopoverTrigger } from "@radix-ui/react-popover";
5
- import { Box, TextArea, Button, Card, Flex } from "@radix-ui/themes";
6
- const fnOptions = ["sum", "avg", "min", "max"];
7
- const nodeOptions = ["start_node", "end_node", "middle_node"];
8
- export default function MentionTextarea({ ...rest }) {
9
- const [value, setValue] = useState("");
10
- const [highlightedText, setHighlightedText] = useState("");
11
- const [dropdownOptions, setDropdownOptions] = useState([]);
12
- const [showDropdown, setShowDropdown] = useState(false);
13
- const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });
3
+ import { useRef, useState, useCallback, useMemo, useEffect } from "react";
4
+ import { Card } from "../ui/card";
5
+ import { Button } from "../ui/button";
6
+ // ─── tag colours ─────────────────────────────────────────────────────────────
7
+ const TAG_COLORS = {
8
+ node: { bg: 'rgba(59,130,246,0.22)' },
9
+ user: { bg: 'rgba(34,197,94,0.22)' },
10
+ secret: { bg: 'rgba(245,158,11,0.22)' },
11
+ api: { bg: 'rgba(168,85,247,0.22)' },
12
+ expr: { bg: 'rgba(244,63,94,0.22)' },
13
+ };
14
+ // Trigger: shows dropdown after typing {{group.
15
+ const TRIGGER_RE = /\{\{(node|user|secret|api)\.([a-zA-Z0-9_]*)$/;
16
+ // Highlight: matches FROM {{group onwards (partial OR complete).
17
+ // Uses a capturing group so match[2] gives the tag type.
18
+ // Also matches << expressions (partial or complete).
19
+ const FULL_TAG_RE = /(\{\{(node|user|secret|api)[a-zA-Z0-9_.}]*|<<[^\n]*?>*)/g;
20
+ // ─── component ───────────────────────────────────────────────────────────────
21
+ export default function MentionTextarea({ value, onChange, nodes = [], apiCalls = [], secrets = [], className = '', rows = 3, placeholder, ...rest }) {
14
22
  const textareaRef = useRef(null);
15
- useEffect(() => {
16
- const transformed = value.replace(/\{\{(fn|node)\.([^\}]+)?\}\}/g, (match, type, name) => {
17
- return `<span class="mention {{${type}}}">${match}</span>`;
18
- });
19
- setHighlightedText(transformed);
20
- }, [value]);
21
- const handleInput = (e) => {
22
- const inputValue = e.target.value;
23
- const cursorPos = e.target.selectionStart;
24
- const textUpToCursor = inputValue.slice(0, cursorPos);
25
- const match = /(\{\{(fn|node)\.)([a-zA-Z0-9_]*)?$/.exec(textUpToCursor);
26
- if (match) {
27
- const [, fullPrefix, type, partial] = match;
28
- const options = type === "fn" ? fnOptions : nodeOptions;
29
- const filtered = options.filter(opt => opt.startsWith(partial || ""));
30
- setDropdownOptions(filtered);
31
- setShowDropdown(true);
32
- setTimeout(() => positionDropdown(cursorPos), 0); // Wait for DOM update
23
+ const highlightRef = useRef(null);
24
+ const [showDropdown, setShowDropdown] = useState(false);
25
+ const [dropdownOptions, setDropdownOptions] = useState([]);
26
+ const [activeIndex, setActiveIndex] = useState(0);
27
+ const [dropdownPos, setDropdownPos] = useState({ top: 0, left: 0 });
28
+ // Options per tag group
29
+ const optionMap = useMemo(() => ({
30
+ node: nodes.map(n => { var _a; return (_a = n.data) === null || _a === void 0 ? void 0 : _a.label; }).filter(Boolean),
31
+ user: ['msisdn'],
32
+ secret: secrets.map(s => s.name),
33
+ api: apiCalls.map(a => a.name),
34
+ }), [nodes, apiCalls, secrets]);
35
+ // ─── highlighted HTML ────────────────────────────────────────────────────
36
+ const highlightedHTML = useMemo(() => {
37
+ let result = '';
38
+ let lastIdx = 0;
39
+ FULL_TAG_RE.lastIndex = 0;
40
+ let match;
41
+ while ((match = FULL_TAG_RE.exec(value)) !== null) {
42
+ // Text before this match
43
+ result += value
44
+ .slice(lastIdx, match.index)
45
+ .replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n/g, '<br/>');
46
+ const full = match[0];
47
+ const tagType = match[2] || 'expr'; // group 2 = node/user/secret/api/undefined
48
+ const col = TAG_COLORS[tagType] || TAG_COLORS.expr;
49
+ const safe = full.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
50
+ result += `<span style="background:${col.bg};border-radius:3px;padding:0 2px;">${safe}</span>`;
51
+ lastIdx = match.index + full.length;
33
52
  }
34
- else {
35
- setShowDropdown(false);
53
+ result += value
54
+ .slice(lastIdx)
55
+ .replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n/g, '<br/>');
56
+ // trailing space keeps the div the same height as the textarea
57
+ return result + '<span style="white-space:pre"> </span>';
58
+ }, [value]);
59
+ // ─── sync highlight scroll to textarea ──────────────────────────────────
60
+ const syncScroll = useCallback(() => {
61
+ if (textareaRef.current && highlightRef.current) {
62
+ highlightRef.current.scrollTop = textareaRef.current.scrollTop;
63
+ highlightRef.current.scrollLeft = textareaRef.current.scrollLeft;
36
64
  }
37
- setValue(inputValue);
38
- };
39
- const positionDropdown = (cursorPos) => {
40
- const textarea = textareaRef.current;
41
- if (!textarea)
65
+ }, []);
66
+ // ─── dropdown position via mirror div ────────────────────────────────────
67
+ const positionDropdown = useCallback((cursorPos) => {
68
+ const ta = textareaRef.current;
69
+ if (!ta)
42
70
  return;
43
- const computedStyle = window.getComputedStyle(textarea);
44
- // Create a mirror div to replicate the textarea
45
- const mirrorDiv = document.createElement("div");
46
- document.body.appendChild(mirrorDiv);
47
- const styleProperties = [
48
- "boxSizing", "width", "height", "padding", "border",
49
- "fontFamily", "fontSize", "fontWeight", "fontStyle",
50
- "letterSpacing", "lineHeight", "textTransform", "textAlign",
51
- "whiteSpace", "wordWrap"
52
- ];
53
- styleProperties.forEach(prop => {
54
- mirrorDiv.style[prop] = computedStyle[prop];
71
+ const mirror = document.createElement('div');
72
+ const cs = window.getComputedStyle(ta);
73
+ ['boxSizing', 'width', 'padding', 'border', 'fontFamily', 'fontSize',
74
+ 'fontWeight', 'letterSpacing', 'lineHeight', 'whiteSpace', 'wordWrap',
75
+ 'textTransform'].forEach(p => { mirror.style[p] = cs[p]; });
76
+ mirror.style.position = 'absolute';
77
+ mirror.style.visibility = 'hidden';
78
+ mirror.style.overflow = 'hidden';
79
+ mirror.style.whiteSpace = 'pre-wrap';
80
+ mirror.style.wordWrap = 'break-word';
81
+ mirror.style.width = `${ta.clientWidth}px`;
82
+ mirror.style.height = 'auto';
83
+ mirror.textContent = ta.value.slice(0, cursorPos);
84
+ const caret = document.createElement('span');
85
+ caret.textContent = '​'; // zero-width space marks cursor
86
+ mirror.appendChild(caret);
87
+ mirror.appendChild(document.createTextNode(ta.value.slice(cursorPos)));
88
+ document.body.appendChild(mirror);
89
+ const caretRect = caret.getBoundingClientRect();
90
+ const mirrorRect = mirror.getBoundingClientRect();
91
+ const taRect = ta.getBoundingClientRect();
92
+ document.body.removeChild(mirror);
93
+ setDropdownPos({
94
+ top: caretRect.top - mirrorRect.top + taRect.top - ta.scrollTop + 20,
95
+ left: caretRect.left - mirrorRect.left + taRect.left - ta.scrollLeft,
55
96
  });
56
- // Other required styles
57
- mirrorDiv.style.position = "absolute";
58
- mirrorDiv.style.visibility = "hidden";
59
- mirrorDiv.style.overflow = "hidden";
60
- mirrorDiv.style.whiteSpace = "pre-wrap";
61
- mirrorDiv.style.wordWrap = "break-word";
62
- // Set same width as the textarea
63
- mirrorDiv.style.width = `${textarea.clientWidth}px`;
64
- // Mirror content up to cursor
65
- const textBeforeCursor = textarea.value.slice(0, cursorPos);
66
- const textAfterCursor = textarea.value.slice(cursorPos);
67
- mirrorDiv.textContent = textBeforeCursor;
68
- // Insert a span to measure cursor position
69
- const span = document.createElement("span");
70
- span.textContent = "\u200b"; // zero-width space
71
- mirrorDiv.appendChild(span);
72
- // Append remaining text so line wrapping is simulated
73
- mirrorDiv.appendChild(document.createTextNode(textAfterCursor));
74
- // Append to DOM to measure
75
- document.body.appendChild(mirrorDiv);
76
- const spanRect = span.getBoundingClientRect();
77
- const textareaRect = textarea.getBoundingClientRect();
78
- // Calculate position relative to the textarea
79
- const top = spanRect.top - mirrorDiv.getBoundingClientRect().top - textarea.scrollTop;
80
- const left = spanRect.left - mirrorDiv.getBoundingClientRect().left - textarea.scrollLeft;
81
- setDropdownPosition({
82
- top: top + textareaRect.top + 20, // +20 for offset below line
83
- left: left + textareaRect.left,
97
+ }, []);
98
+ // ─── detect trigger → show/hide dropdown ────────────────────────────────
99
+ const detectTrigger = useCallback((val, cursor) => {
100
+ const before = val.slice(0, cursor);
101
+ const tagMatch = TRIGGER_RE.exec(before);
102
+ if (tagMatch) {
103
+ const [, tagType, partial] = tagMatch;
104
+ const opts = (optionMap[tagType] || [])
105
+ .filter(o => o.toLowerCase().startsWith((partial || '').toLowerCase()));
106
+ setDropdownOptions(opts);
107
+ setActiveIndex(0);
108
+ setShowDropdown(opts.length > 0);
109
+ if (opts.length > 0)
110
+ positionDropdown(cursor);
111
+ return;
112
+ }
113
+ setShowDropdown(false);
114
+ }, [optionMap, positionDropdown]);
115
+ // ─── insert selected mention ──────────────────────────────────────────────
116
+ // Reads current value from the DOM element to avoid stale closure.
117
+ const insertMention = useCallback((name) => {
118
+ const ta = textareaRef.current;
119
+ if (!ta)
120
+ return;
121
+ const cursorPos = ta.selectionStart;
122
+ const current = ta.value;
123
+ const before = current.slice(0, cursorPos);
124
+ const triggerMatch = TRIGGER_RE.exec(before);
125
+ if (!triggerMatch)
126
+ return;
127
+ const tagType = triggerMatch[1];
128
+ const start = triggerMatch.index;
129
+ const inserted = tagType === 'api'
130
+ ? `{{api.${name}.field}}`
131
+ : `{{${tagType}.${name}}}`;
132
+ const next = current.slice(0, start) + inserted + current.slice(cursorPos);
133
+ onChange(next);
134
+ setShowDropdown(false);
135
+ requestAnimationFrame(() => {
136
+ if (ta) {
137
+ const pos = start + inserted.length;
138
+ ta.focus();
139
+ ta.setSelectionRange(pos, pos);
140
+ }
84
141
  });
85
- // Cleanup
86
- document.body.removeChild(mirrorDiv);
87
- };
88
- const insertMention = (mention) => {
89
- const textarea = textareaRef.current;
90
- if (!textarea)
142
+ }, [onChange]);
143
+ // ─── event handlers ──────────────────────────────────────────────────────
144
+ const handleChange = useCallback((e) => {
145
+ var _a;
146
+ const val = e.target.value;
147
+ const cursor = (_a = e.target.selectionStart) !== null && _a !== void 0 ? _a : val.length;
148
+ onChange(val);
149
+ detectTrigger(val, cursor);
150
+ syncScroll();
151
+ }, [onChange, detectTrigger, syncScroll]);
152
+ const handleKeyDown = useCallback((e) => {
153
+ if (!showDropdown)
91
154
  return;
92
- const cursorPos = textarea.selectionStart;
93
- const textUpToCursor = value.slice(0, cursorPos);
94
- const match = /(\{\{(fn|node)\.)([a-zA-Z0-9_]*)?$/.exec(textUpToCursor);
95
- if (match) {
96
- const start = match.index;
97
- const prefix = match[1];
98
- const newText = `${value.slice(0, start)}${prefix}${mention}}}${value.slice(cursorPos)}`;
99
- setValue(newText);
155
+ if (e.key === 'ArrowDown') {
156
+ e.preventDefault();
157
+ setActiveIndex(i => Math.min(i + 1, dropdownOptions.length - 1));
158
+ }
159
+ else if (e.key === 'ArrowUp') {
160
+ e.preventDefault();
161
+ setActiveIndex(i => Math.max(i - 1, 0));
162
+ }
163
+ else if (e.key === 'Enter' || e.key === 'Tab') {
164
+ e.preventDefault();
165
+ if (dropdownOptions[activeIndex])
166
+ insertMention(dropdownOptions[activeIndex]);
167
+ }
168
+ else if (e.key === 'Escape') {
100
169
  setShowDropdown(false);
101
- textarea.focus();
102
170
  }
171
+ }, [showDropdown, dropdownOptions, activeIndex, insertMention]);
172
+ // Close dropdown when clicking outside
173
+ useEffect(() => {
174
+ const handler = (e) => {
175
+ if (!e.target.closest('[data-mention-dropdown]')) {
176
+ setShowDropdown(false);
177
+ }
178
+ };
179
+ document.addEventListener('pointerdown', handler);
180
+ return () => document.removeEventListener('pointerdown', handler);
181
+ }, []);
182
+ // ─── shared layout styles (must match between highlight div + textarea) ──
183
+ const sharedLayout = {
184
+ fontFamily: 'inherit',
185
+ fontSize: 'inherit',
186
+ fontWeight: 'inherit',
187
+ lineHeight: 'inherit',
188
+ letterSpacing: 'inherit',
189
+ whiteSpace: 'pre-wrap',
190
+ wordWrap: 'break-word',
191
+ overflowWrap: 'break-word',
192
+ };
193
+ // The textarea uses Tailwind `px-3 py-1.5` (= 0.75rem / 0.375rem) and
194
+ // `border border-input` (= 1px). The highlight div is `absolute inset-0`
195
+ // (starts at the outer wrapper edge), so we add that 1px to each side.
196
+ const highlightPadding = {
197
+ paddingTop: 'calc(0.375rem + 1px)',
198
+ paddingBottom: 'calc(0.375rem + 1px)',
199
+ paddingLeft: 'calc(0.75rem + 1px)',
200
+ paddingRight: 'calc(0.75rem + 1px)',
103
201
  };
104
- return (_jsxs(Box, { position: "relative", style: { width: "100%", height: "100%" }, children: [_jsx(Box, { style: {
105
- position: "absolute",
106
- top: 0,
107
- left: 0,
108
- width: "100%",
109
- height: "100%",
202
+ return (_jsxs("div", { className: "relative w-full bg-background rounded-md", children: [_jsx("div", { ref: highlightRef, "aria-hidden": true, className: "absolute inset-0 overflow-hidden pointer-events-none rounded-md", style: {
203
+ ...sharedLayout,
204
+ ...highlightPadding,
110
205
  zIndex: 1,
111
- color: "transparent",
112
- whiteSpace: "pre-wrap",
113
- wordWrap: "break-word",
114
- overflowWrap: "break-word",
115
- fontFamily: "inherit",
116
- padding: 10,
117
- pointerEvents: "none",
118
- // background:'red'
119
- }, dangerouslySetInnerHTML: { __html: highlightedText } }), _jsx(TextArea, { ...rest, ref: textareaRef, value: value, onChange: handleInput, style: {
120
- position: "relative",
121
- background: "transparent",
122
- zIndex: 2,
123
- } }), JSON.stringify(dropdownPosition), _jsx(Card, { size: '1', style: { display: showDropdown ? 'block' : 'none', position: 'absolute', top: dropdownPosition.top, left: dropdownPosition.left, zIndex: 10, width: '100px', padding: 5, '--card-border-radius': '5px' }, children: _jsx(Flex, { direction: 'column', gap: '2', children: dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((opt, ind) => _jsx(Button, { variant: 'ghost', size: '1', onClick: () => insertMention(opt), style: { justifyContent: 'start', height: 15, cursor: "pointer" }, children: opt }, ind)) }) })] }));
206
+ color: 'transparent', // only span backgrounds are visible
207
+ }, dangerouslySetInnerHTML: { __html: highlightedHTML } }), _jsx("textarea", { ...rest, ref: textareaRef, value: value, rows: rows, placeholder: placeholder, onChange: handleChange, onKeyDown: handleKeyDown, onScroll: syncScroll, className: `relative z-2 w-full bg-transparent resize-y rounded-md border border-input px-3 py-1.5 text-sm shadow-xs focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring ${className}`, style: { ...sharedLayout, caretColor: 'currentColor' } }), showDropdown && dropdownOptions.length > 0 && (_jsx(Card, { "data-mention-dropdown": true, className: "rounded-md p-1 shadow-lg border", style: {
208
+ position: 'fixed',
209
+ top: dropdownPos.top,
210
+ left: dropdownPos.left,
211
+ zIndex: 9999,
212
+ minWidth: 150,
213
+ maxHeight: 200,
214
+ overflowY: 'auto',
215
+ }, children: _jsx("div", { className: "flex flex-col gap-0.5", children: dropdownOptions.map((opt, i) => (_jsx(Button, { variant: i === activeIndex ? 'secondary' : 'ghost', size: "sm", className: "justify-start h-7 text-xs font-mono", onPointerDown: (e) => { e.preventDefault(); insertMention(opt); }, children: opt }, opt))) }) }))] }));
124
216
  }
125
217
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/mention_input/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/mention_input/index.tsx"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ interface PaginatorProps {
3
3
  pageCount: number;
4
4
  onPageChange: (page: number) => void;
5
5
  }
6
- export default function Paginator({ currentPage, pageCount, onPageChange }: PaginatorProps): import("react/jsx-runtime").JSX.Element;
6
+ export default function Paginator({ currentPage, pageCount, onPageChange }: PaginatorProps): import("react").JSX.Element;
7
7
  export {};
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Flex, Button, Text } from '@radix-ui/themes';
3
2
  import { MdSkipPrevious, MdSkipNext, MdFastRewind, MdFastForward } from 'react-icons/md';
3
+ import { Button } from './ui/button';
4
4
  export default function Paginator({ currentPage, pageCount, onPageChange }) {
5
5
  const range = (start, end) => {
6
6
  const length = end - start + 1;
@@ -33,6 +33,6 @@ export default function Paginator({ currentPage, pageCount, onPageChange }) {
33
33
  return pages;
34
34
  };
35
35
  const pageNumbers = getPageNumbers();
36
- return (_jsxs(Flex, { align: "center", gap: "2", children: [_jsx(Button, { size: "1", disabled: currentPage === 1, onClick: () => onPageChange(1), "aria-label": "First Page", title: "First Page", children: _jsx(MdSkipPrevious, {}) }), _jsx(Button, { size: "1", disabled: currentPage === 1, onClick: () => onPageChange(currentPage - 1), "aria-label": "Previous Page", title: "Previous Page", children: _jsx(MdFastRewind, {}) }), pageNumbers.map((page, index) => page === '...' ? (_jsx(Text, { size: "1", style: { margin: '0 4px' }, children: "..." }, `ellipsis-${index}`)) : (_jsx(Button, { size: "1", variant: currentPage === page ? 'solid' : 'soft', onClick: () => onPageChange(page), "aria-label": `Page ${page}`, children: page }, `page-${page}`))), _jsx(Button, { size: "1", disabled: currentPage === pageCount, onClick: () => onPageChange(currentPage + 1), "aria-label": "Next Page", title: "Next Page", children: _jsx(MdFastForward, {}) }), _jsx(Button, { size: "1", disabled: currentPage === pageCount, onClick: () => onPageChange(pageCount), "aria-label": "Last Page", title: "Last Page", children: _jsx(MdSkipNext, {}) })] }));
36
+ return (_jsxs("div", { className: 'flex items-center gap-2', children: [_jsx(Button, { size: "sm", disabled: currentPage === 1, onClick: () => onPageChange(1), "aria-label": "First Page", title: "First Page", children: _jsx(MdSkipPrevious, {}) }), _jsx(Button, { size: "sm", disabled: currentPage === 1, onClick: () => onPageChange(currentPage - 1), "aria-label": "Previous Page", title: "Previous Page", children: _jsx(MdFastRewind, {}) }), pageNumbers.map((page, index) => page === '...' ? (_jsx("span", { className: 'text-sm mx-1', children: "..." }, `ellipsis-${index}`)) : (_jsx(Button, { size: "sm", variant: currentPage === page ? 'default' : 'secondary', onClick: () => onPageChange(page), "aria-label": `Page ${page}`, children: page }, `page-${page}`))), _jsx(Button, { size: "sm", disabled: currentPage === pageCount, onClick: () => onPageChange(currentPage + 1), "aria-label": "Next Page", title: "Next Page", children: _jsx(MdFastForward, {}) }), _jsx(Button, { size: "sm", disabled: currentPage === pageCount, onClick: () => onPageChange(pageCount), "aria-label": "Last Page", title: "Last Page", children: _jsx(MdSkipNext, {}) })] }));
37
37
  }
38
38
  //# sourceMappingURL=paginator_table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paginator_table.js","sourceRoot":"","sources":["../../src/components/paginator_table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paginator_table.js","sourceRoot":"","sources":["../../src/components/paginator_table.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import './style.css';
2
- export default function Sheet({ children, open, setOpen, onClose, title, subtitle, showCloseBtn, maxWidth, side, ...rest }: any): import("react/jsx-runtime").JSX.Element;
2
+ export default function Sheet({ children, open, setOpen, onClose, title, subtitle, showCloseBtn, maxWidth, side, ...rest }: any): import("react").JSX.Element;
@@ -1,9 +1,11 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useState } from 'react';
4
- import { IconButton, Flex, Text, Separator, Box, Card } from '@radix-ui/themes';
5
4
  import { Cross1Icon } from '@radix-ui/react-icons';
6
5
  import './style.css';
6
+ import { Card } from '../ui/card';
7
+ import { Button } from '../ui/button';
8
+ import { Separator } from '../ui/separator';
7
9
  export default function Sheet({ children, open, setOpen, onClose, title = '', subtitle = '', showCloseBtn = true, maxWidth = '500px', side, ...rest }) {
8
10
  const [animationClass, setAnimationClass] = useState('');
9
11
  useEffect(() => {
@@ -15,6 +17,6 @@ export default function Sheet({ children, open, setOpen, onClose, title = '', su
15
17
  onClose === null || onClose === void 0 ? void 0 : onClose();
16
18
  }
17
19
  }, [open, side]);
18
- return (_jsxs(Box, { display: open ? 'block' : 'none', position: 'absolute', style: { background: 'rgba(0,0,0,0.4)', top: 0, right: 0, bottom: 0, left: 0, boxSizing: 'content-box' }, children: [_jsx(Box, { position: 'absolute', onClick: () => { setOpen(false); }, style: { top: 0, right: 0, bottom: 0, left: 0 } }), _jsx(Card, { "aria-description": 'Sheet', className: `dialog-content ${animationClass}`, style: { width: 'calc(100% - 10px)', maxWidth: maxWidth, position: 'absolute', top: 5, right: 5, bottom: 5, left: 'auto', padding: 0, overflow: 'hidden' }, ...rest, children: _jsxs(Flex, { direction: 'column', height: '100%', overflow: 'hidden', children: [_jsxs(Flex, { flexShrink: '0', justify: 'between', align: subtitle ? 'start' : 'center', p: (title || showCloseBtn) ? '4' : '0', children: [_jsxs(Flex, { direction: 'column', align: 'start', children: [_jsx(Text, { weight: 'bold', children: title }), subtitle && _jsx(Text, { size: '1', color: 'gray', children: subtitle })] }), showCloseBtn && _jsx(IconButton, { highContrast: true, size: '1', onClick: () => { setOpen(false); }, children: _jsx(Cross1Icon, {}) })] }), title && _jsx(Separator, { size: '4' }), _jsx(Flex, { flexGrow: '1', overflow: 'auto', children: children })] }) })] }));
20
+ return (_jsxs("div", { className: open ? 'block' : 'hidden', style: { background: 'rgba(0,0,0,0.4)', top: 0, right: 0, bottom: 0, left: 0, boxSizing: 'content-box', position: 'absolute', zIndex: 50, willChange: 'opacity', backfaceVisibility: 'hidden', transform: 'translateZ(0)' }, children: [_jsx("div", { className: 'absolute', onClick: () => { setOpen(false); }, style: { top: 0, right: 0, bottom: 0, left: 0 } }), _jsx(Card, { "aria-description": 'Sheet', className: `dialog-content ${animationClass} p-0 overflow-hidden`, style: { width: 'calc(100% - 10px)', maxWidth: maxWidth, position: 'absolute', top: 5, right: 5, bottom: 5, left: 'auto', zIndex: 51, willChange: 'transform', backfaceVisibility: 'hidden', transform: 'translateZ(0)' }, ...rest, children: _jsxs("div", { className: 'flex flex-col h-full overflow-hidden', children: [_jsxs("div", { className: `flex-shrink-0 flex justify-between items-${subtitle ? 'start' : 'center'} ${(title || showCloseBtn) ? 'p-2' : 'p-0'}`, children: [_jsxs("div", { className: 'flex flex-col items-start pl-2', children: [_jsx("span", { className: 'font-bold text-sm', children: title }), subtitle && _jsx("span", { className: 'text-xs text-muted-foreground', children: subtitle })] }), showCloseBtn && _jsx(Button, { variant: 'ghost', size: 'icon', className: 'h-8 w-8', onClick: () => { setOpen(false); }, children: _jsx(Cross1Icon, {}) })] }), title && _jsx(Separator, {}), _jsx("div", { className: 'flex-grow overflow-auto', children: children })] }) })] }));
19
21
  }
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/sheet/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/sheet/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const Alert: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: {
4
+ variant?: "default" | "destructive";
5
+ } & import("class-variance-authority/types").ClassProp) => string> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
7
+ declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
8
+ export { Alert, AlertTitle, AlertDescription };
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../../lib/utils";
5
+ const alertVariants = cva("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground", {
6
+ variants: {
7
+ variant: {
8
+ default: "bg-background text-foreground",
9
+ destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
10
+ },
11
+ },
12
+ defaultVariants: {
13
+ variant: "default",
14
+ },
15
+ });
16
+ const Alert = React.forwardRef(({ className, variant, ...props }, ref) => (_jsx("div", { ref: ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props })));
17
+ Alert.displayName = "Alert";
18
+ const AlertTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx("h5", { ref: ref, className: cn("mb-1 font-medium leading-none tracking-tight", className), ...props })));
19
+ AlertTitle.displayName = "AlertTitle";
20
+ const AlertDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("text-sm [&_p]:leading-relaxed", className), ...props })));
21
+ AlertDescription.displayName = "AlertDescription";
22
+ export { Alert, AlertTitle, AlertDescription };
23
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/components/ui/alert.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,aAAa,GAAG,GAAG,CACvB,2JAA2J,EAC3J;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,+BAA+B;YACxC,WAAW,EACT,yFAAyF;SAC5F;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAA;AAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3C,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK,GACT,CACH,CAAC,CAAA;AACF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAA;AAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,aACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,SAAS,CAAC,KACpE,KAAK,GACT,CACH,CAAC,CAAA;AACF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA;AAErC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAA;AACF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAA;AAEjD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const badgeVariants: (props?: {
4
+ variant?: "default" | "destructive" | "outline" | "secondary";
5
+ } & import("class-variance-authority/types").ClassProp) => string;
6
+ export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
+ }
8
+ declare function Badge({ className, variant, ...props }: BadgeProps): React.JSX.Element;
9
+ export { Badge, badgeVariants };
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { cn } from "../../lib/utils";
4
+ const badgeVariants = cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", {
5
+ variants: {
6
+ variant: {
7
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
8
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
9
+ destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
10
+ outline: "text-foreground",
11
+ },
12
+ },
13
+ defaultVariants: {
14
+ variant: "default",
15
+ },
16
+ });
17
+ function Badge({ className, variant, ...props }) {
18
+ return (_jsx("div", { className: cn(badgeVariants({ variant }), className), ...props }));
19
+ }
20
+ export { Badge, badgeVariants };
21
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/components/ui/badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAEpC,MAAM,aAAa,GAAG,GAAG,CACvB,wKAAwK,EACxK;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,2EAA2E;YAC7E,SAAS,EACP,iFAAiF;YACnF,WAAW,EACT,uFAAuF;YACzF,OAAO,EAAE,iBAAiB;SAC3B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAA;AAMD,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAc;IACzD,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACzE,CAAA;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: {
4
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost";
5
+ size?: "default" | "xs" | "sm" | "lg" | "icon";
6
+ } & import("class-variance-authority/types").ClassProp) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ asChild?: boolean;
9
+ }
10
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
11
+ export { Button, buttonVariants };