flowstudio 0.0.30 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/ai_creator.d.ts +1 -1
- package/dist/ai_creator.js +24 -128
- package/dist/ai_creator.js.map +1 -1
- package/dist/api_calls.d.ts +2 -0
- package/dist/api_calls.js +147 -0
- package/dist/api_calls.js.map +1 -0
- package/dist/app_analytics.d.ts +1 -1
- package/dist/app_analytics.js +75 -69
- package/dist/app_analytics.js.map +1 -1
- package/dist/app_details.d.ts +1 -1
- package/dist/app_details.js +25 -24
- package/dist/app_details.js.map +1 -1
- package/dist/app_layout.d.ts +2 -2
- package/dist/app_layout.js +4 -4
- package/dist/app_layout.js.map +1 -1
- package/dist/app_settings.d.ts +1 -1
- package/dist/app_settings.js +76 -8
- package/dist/app_settings.js.map +1 -1
- package/dist/bottom_left_panel.d.ts +1 -0
- package/dist/bottom_left_panel.js +8 -0
- package/dist/bottom_left_panel.js.map +1 -0
- package/dist/code.d.ts +1 -1
- package/dist/code.js +6 -2
- package/dist/code.js.map +1 -1
- package/dist/components/ftable.d.ts +13 -0
- package/dist/components/ftable.js +65 -0
- package/dist/components/ftable.js.map +1 -0
- package/dist/components/gsheet/index.d.ts +1 -0
- package/dist/components/gsheet/index.js +21 -0
- package/dist/components/gsheet/index.js.map +1 -0
- package/dist/components/mention_input/index.d.ts +18 -1
- package/dist/components/mention_input/index.js +203 -111
- package/dist/components/mention_input/index.js.map +1 -1
- package/dist/components/paginator_table.d.ts +1 -1
- package/dist/components/paginator_table.js +2 -2
- package/dist/components/paginator_table.js.map +1 -1
- package/dist/components/sheet/index.d.ts +1 -1
- package/dist/components/sheet/index.js +4 -2
- package/dist/components/sheet/index.js.map +1 -1
- package/dist/components/ui/alert.d.ts +8 -0
- package/dist/components/ui/alert.js +23 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/badge.js +21 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.js +35 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/card.js +17 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +19 -0
- package/dist/components/ui/dialog.js +33 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +27 -0
- package/dist/components/ui/dropdown-menu.js +46 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/form.d.ts +24 -0
- package/dist/components/ui/form.js +61 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +16 -0
- package/dist/components/ui/input-group.js +65 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input.d.ts +5 -0
- package/dist/components/ui/input.js +9 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/label.js +10 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/popover.d.ts +7 -0
- package/dist/components/ui/popover.js +23 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +5 -0
- package/dist/components/ui/scroll-area.js +12 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +13 -0
- package/dist/components/ui/select.js +37 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/separator.js +8 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +13 -0
- package/dist/components/ui/sheet.js +93 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/skeleton.js +7 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +3 -0
- package/dist/components/ui/sonner.js +42 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +7 -0
- package/dist/components/ui/spinner.js +17 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/switch.js +8 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +10 -0
- package/dist/components/ui/table.js +21 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +7 -0
- package/dist/components/ui/tabs.js +13 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +5 -0
- package/dist/components/ui/textarea.js +9 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/components/ui/tooltip.js +11 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/constants.js +5 -4
- package/dist/constants.js.map +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.js +2 -2
- package/dist/context.js.map +1 -1
- package/dist/envs.d.ts +2 -2
- package/dist/envs.js +2 -150
- package/dist/envs.js.map +1 -1
- package/dist/functions.d.ts +2 -5
- package/dist/functions.js +2 -210
- package/dist/functions.js.map +1 -1
- package/dist/globals.css +264 -0
- package/dist/home.d.ts +1 -1
- package/dist/home.js +64 -26
- package/dist/home.js.map +1 -1
- package/dist/index.d.ts +19 -3
- package/dist/index.js +81 -22
- package/dist/index.js.map +1 -1
- package/dist/lib/pane-context.d.ts +10 -0
- package/dist/lib/pane-context.js +21 -0
- package/dist/lib/pane-context.js.map +1 -0
- package/dist/lib/toast.d.ts +12 -0
- package/dist/lib/toast.js +36 -0
- package/dist/lib/toast.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/new_project.d.ts +1 -1
- package/dist/new_project.js +60 -41
- package/dist/new_project.js.map +1 -1
- package/dist/node.d.ts +2 -2
- package/dist/node.js +152 -39
- package/dist/node.js.map +1 -1
- package/dist/project_widget.d.ts +2 -1
- package/dist/project_widget.js +6 -2
- package/dist/project_widget.js.map +1 -1
- package/dist/secrets.d.ts +2 -0
- package/dist/secrets.js +130 -0
- package/dist/secrets.js.map +1 -0
- package/dist/simulator.d.ts +1 -1
- package/dist/simulator.js +184 -63
- package/dist/simulator.js.map +1 -1
- package/dist/studio_pane.d.ts +1 -1
- package/dist/studio_pane.js +319 -56
- package/dist/studio_pane.js.map +1 -1
- package/dist/studio_pane_old.d.ts +1 -1
- package/dist/studio_pane_old.js +2 -3
- package/dist/studio_pane_old.js.map +1 -1
- package/dist/studio_pane_old_new.d.ts +1 -1
- package/dist/studio_pane_old_new.js +2 -3
- package/dist/studio_pane_old_new.js.map +1 -1
- package/dist/styles/globals.css +59 -0
- package/dist/styles.css +2 -0
- package/dist/top_center_panel.d.ts +1 -1
- package/dist/top_center_panel.js +4 -3
- package/dist/top_center_panel.js.map +1 -1
- package/dist/top_left_panel.d.ts +1 -1
- package/dist/top_left_panel.js +7 -41
- package/dist/top_left_panel.js.map +1 -1
- package/dist/top_right_panel.d.ts +1 -1
- package/dist/top_right_panel.js +12 -13
- package/dist/top_right_panel.js.map +1 -1
- package/dist/triggers.d.ts +2 -2
- package/dist/triggers.js +56 -37
- package/dist/triggers.js.map +1 -1
- package/dist/zustand/store.d.ts +411 -3
- package/dist/zustand/store.js +4 -0
- package/dist/zustand/store.js.map +1 -1
- package/package.json +54 -26
- package/src/globals.css +264 -0
- package/src/styles/globals.css +59 -0
- package/dist/components/combo_box/index.d.ts +0 -2
- package/dist/components/combo_box/index.js +0 -150
- package/dist/components/combo_box/index.js.map +0 -1
- package/dist/components/combo_box/style.css +0 -10
- package/dist/components/date_picker/index.d.ts +0 -1
- package/dist/components/date_picker/index.js +0 -46
- package/dist/components/date_picker/index.js.map +0 -1
- package/dist/components/date_picker/style.css +0 -204
- package/dist/components/gtable.d.ts +0 -15
- package/dist/components/gtable.js +0 -122
- package/dist/components/gtable.js.map +0 -1
- package/src/components/combo_box/style.css +0 -10
- 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
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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, '&').replace(/</g, '<').replace(/>/g, '>').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, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
50
|
+
result += `<span style="background:${col.bg};border-radius:3px;padding:0 2px;">${safe}</span>`;
|
|
51
|
+
lastIdx = match.index + full.length;
|
|
33
52
|
}
|
|
34
|
-
|
|
35
|
-
|
|
53
|
+
result += value
|
|
54
|
+
.slice(lastIdx)
|
|
55
|
+
.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').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
|
-
|
|
38
|
-
|
|
39
|
-
const positionDropdown = (cursorPos) => {
|
|
40
|
-
const
|
|
41
|
-
if (!
|
|
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
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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(
|
|
105
|
-
|
|
106
|
-
|
|
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:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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-xs 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":"
|
|
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
|
|
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(
|
|
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":";AAAA,OAAO,EAAE,
|
|
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
|
|
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(
|
|
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":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,
|
|
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 };
|