@expcat/tigercat-react 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-RUAPTIQ7.mjs → chunk-246DAUEF.mjs} +2 -2
- package/dist/{chunk-PU3JY6RE.mjs → chunk-2JMI7TCM.mjs} +1 -1
- package/dist/chunk-2YBLMVDT.mjs +428 -0
- package/dist/{chunk-25D5TXZH.mjs → chunk-32MCQMBJ.mjs} +8 -6
- package/dist/{chunk-M5MZWOHF.mjs → chunk-3HHEVMHE.mjs} +1 -1
- package/dist/{chunk-HSBN5MLS.mjs → chunk-3LACOSJQ.mjs} +1 -1
- package/dist/{chunk-F6WV53BS.mjs → chunk-3LDDXHW2.mjs} +28 -11
- package/dist/{chunk-IXQAECFP.mjs → chunk-3QNIFKVF.mjs} +12 -14
- package/dist/{chunk-UD4DTVJZ.mjs → chunk-4C2X5PZO.mjs} +57 -25
- package/dist/chunk-5JETWHLJ.mjs +28 -0
- package/dist/{chunk-VA6PZWOH.mjs → chunk-5SEMRHBD.mjs} +14 -6
- package/dist/{chunk-EKILTLUO.mjs → chunk-72CJNKDY.mjs} +1 -1
- package/dist/{chunk-XE4YFBOZ.mjs → chunk-AUD3VOLO.mjs} +1 -1
- package/dist/{chunk-I4MWOYJS.mjs → chunk-AYFKHWJS.mjs} +13 -7
- package/dist/{chunk-RPSHILHD.mjs → chunk-BXAH2GH3.mjs} +8 -2
- package/dist/{chunk-EW5EO7VE.mjs → chunk-BYD7EAWK.mjs} +1 -1
- package/dist/{chunk-GCY55TBC.mjs → chunk-CQOLQAB5.mjs} +105 -90
- package/dist/{chunk-L55UK45A.mjs → chunk-CRIEUKMD.mjs} +5 -2
- package/dist/{chunk-DKNVSQSV.mjs → chunk-CUAXRBKO.mjs} +12 -0
- package/dist/{chunk-NWVNTZOP.mjs → chunk-DECUASRW.mjs} +14 -16
- package/dist/{chunk-XMTEMBQV.mjs → chunk-EAAWB3CK.mjs} +16 -13
- package/dist/{chunk-IR7VA6AO.mjs → chunk-EG7EMDKK.mjs} +1 -1
- package/dist/{chunk-HOYBHB7B.mjs → chunk-FNK2VWPP.mjs} +1 -1
- package/dist/{chunk-RJPNBYK5.mjs → chunk-FQS24AUH.mjs} +12 -3
- package/dist/{chunk-LADKKOJT.mjs → chunk-GBEDWXLL.mjs} +16 -10
- package/dist/{chunk-2ENQZECC.mjs → chunk-HAXRHSCN.mjs} +4 -3
- package/dist/{chunk-K4GIKSZE.mjs → chunk-I2BENK5X.mjs} +2 -1
- package/dist/{chunk-DNOPEJ5I.mjs → chunk-JZZPLKTW.mjs} +7 -4
- package/dist/{chunk-7KCQMXJA.mjs → chunk-KDURW5AS.mjs} +4 -3
- package/dist/{chunk-TFMEHUVZ.mjs → chunk-KKN7KLTB.mjs} +0 -1
- package/dist/{chunk-6MGQAJ62.mjs → chunk-KL6YJIZ3.mjs} +24 -7
- package/dist/{chunk-PFL4HNWM.mjs → chunk-M6ZPTGBV.mjs} +1 -2
- package/dist/{chunk-PXRZ6CKY.mjs → chunk-MJVSZ2UJ.mjs} +46 -16
- package/dist/{chunk-LZKBDQE4.mjs → chunk-MYI3FPG4.mjs} +23 -4
- package/dist/{chunk-OIGEBCAS.mjs → chunk-NADODEZX.mjs} +69 -1
- package/dist/{chunk-UKY2EPS3.mjs → chunk-NJWTZ5MO.mjs} +54 -42
- package/dist/{chunk-773LH7BK.mjs → chunk-O6VYD4E4.mjs} +24 -2
- package/dist/{chunk-G7D4QV7A.mjs → chunk-O7TV5OKS.mjs} +33 -6
- package/dist/{chunk-DPWRXXXW.mjs → chunk-OJ6SHHOZ.mjs} +3 -3
- package/dist/{chunk-UYJJLHVA.mjs → chunk-PMQJ6AYT.mjs} +23 -21
- package/dist/{chunk-KC55B62J.mjs → chunk-PY2VUNEJ.mjs} +143 -46
- package/dist/{chunk-BEJZPJIK.mjs → chunk-QOAOOD53.mjs} +10 -4
- package/dist/{chunk-JQJM65RJ.mjs → chunk-QU3QXUTC.mjs} +49 -23
- package/dist/{chunk-7EMCZVJ2.mjs → chunk-QXSUG7SN.mjs} +3 -3
- package/dist/{chunk-RQ4PUK6G.mjs → chunk-R7YZ6FKP.mjs} +24 -13
- package/dist/{chunk-YI6YWH66.mjs → chunk-RE5ZLA5D.mjs} +6 -6
- package/dist/{chunk-UCBW5RJN.mjs → chunk-RGVU4EMA.mjs} +11 -6
- package/dist/{chunk-IBSOUQGB.mjs → chunk-RRGPDFDI.mjs} +7 -4
- package/dist/{chunk-ZH5ZBLAN.mjs → chunk-RUQ3F3MV.mjs} +34 -7
- package/dist/{chunk-PGD5RPKF.mjs → chunk-SVIJ2UZA.mjs} +2 -1
- package/dist/{chunk-UETARXIK.mjs → chunk-SXWEFZOF.mjs} +246 -53
- package/dist/{chunk-H6MVW5YD.mjs → chunk-TEVEXDY2.mjs} +24 -13
- package/dist/{chunk-DJOFM2VO.mjs → chunk-TO6MZFNQ.mjs} +52 -40
- package/dist/{chunk-ZCGIZOMT.mjs → chunk-V7HJ5HLC.mjs} +6 -10
- package/dist/{chunk-SIDDYP3O.mjs → chunk-VJWSKJLJ.mjs} +1 -1
- package/dist/{chunk-ZG56T75O.mjs → chunk-WTHWLCRL.mjs} +51 -11
- package/dist/{chunk-KP6DEYWB.mjs → chunk-X4L3W7RQ.mjs} +1 -1
- package/dist/{chunk-ZMRTETN2.mjs → chunk-X6C6MNG5.mjs} +4 -3
- package/dist/{chunk-OGG2TQDG.mjs → chunk-XVHTJQ4T.mjs} +12 -1
- package/dist/{chunk-FSMJLJFL.mjs → chunk-Y6UH3EKE.mjs} +1 -1
- package/dist/chunk-YJ5T4XZN.mjs +81 -0
- package/dist/{chunk-VVNFXJMN.mjs → chunk-YNDPQVEK.mjs} +8 -1
- package/dist/{chunk-QGZ32NFQ.mjs → chunk-Z23KOLNU.mjs} +4 -3
- package/dist/{chunk-5CKMYMTS.mjs → chunk-ZATZRXMW.mjs} +27 -8
- package/dist/components/ActivityFeed.mjs +2 -2
- package/dist/components/Affix.mjs +1 -1
- package/dist/components/Anchor.mjs +1 -1
- package/dist/components/AreaChart.mjs +4 -3
- package/dist/components/AutoComplete.mjs +1 -1
- package/dist/components/BarChart.mjs +4 -3
- package/dist/components/Calendar.mjs +1 -1
- package/dist/components/Cascader.mjs +1 -1
- package/dist/components/ChartCanvas.mjs +1 -1
- package/dist/components/ChatWindow.mjs +3 -3
- package/dist/components/Code.mjs +3 -1
- package/dist/components/CollapsePanel.mjs +1 -1
- package/dist/components/ColorPicker.mjs +1 -1
- package/dist/components/CommentThread.mjs +2 -2
- package/dist/components/DataExport.mjs +2 -2
- package/dist/components/DataTableWithToolbar.mjs +6 -6
- package/dist/components/DonutChart.mjs +4 -4
- package/dist/components/Dropdown.mjs +1 -1
- package/dist/components/FileManager.mjs +2 -1
- package/dist/components/FloatButton.mjs +1 -1
- package/dist/components/FormItem.mjs +1 -1
- package/dist/components/FormWizard.mjs +1 -1
- package/dist/components/FunnelChart.mjs +3 -3
- package/dist/components/Gantt.d.mts +3 -1
- package/dist/components/Gantt.mjs +2 -2
- package/dist/components/GaugeChart.mjs +2 -2
- package/dist/components/HeatmapChart.mjs +3 -3
- package/dist/components/Image.mjs +4 -4
- package/dist/components/ImageGroup.mjs +2 -2
- package/dist/components/ImagePreview.mjs +1 -1
- package/dist/components/Input.mjs +1 -1
- package/dist/components/InputNumber.d.mts +1 -1
- package/dist/components/InputNumber.mjs +1 -1
- package/dist/components/Kanban.mjs +2 -2
- package/dist/components/LineChart.mjs +4 -3
- package/dist/components/List.mjs +2 -2
- package/dist/components/Loading.mjs +1 -1
- package/dist/components/MaskInput.mjs +1 -1
- package/dist/components/NotificationCenter.mjs +4 -4
- package/dist/components/OrgChart.mjs +2 -2
- package/dist/components/Pagination.mjs +1 -1
- package/dist/components/PieChart.mjs +3 -3
- package/dist/components/Popconfirm.mjs +2 -2
- package/dist/components/Popover.mjs +2 -2
- package/dist/components/QRCode.d.mts +2 -2
- package/dist/components/QRCode.mjs +1 -1
- package/dist/components/RadarChart.mjs +3 -3
- package/dist/components/Rate.mjs +1 -1
- package/dist/components/ScatterChart.mjs +4 -3
- package/dist/components/ScrollSpy.mjs +1 -1
- package/dist/components/Signature.mjs +1 -1
- package/dist/components/SplitButton.mjs +2 -2
- package/dist/components/Splitter.mjs +1 -1
- package/dist/components/Stepper.d.mts +2 -0
- package/dist/components/Stepper.mjs +2 -1
- package/dist/components/SunburstChart.mjs +3 -3
- package/dist/components/Switch.d.mts +5 -1
- package/dist/components/Switch.mjs +2 -1
- package/dist/components/Table.mjs +2 -2
- package/dist/components/TaskBoard.mjs +1 -1
- package/dist/components/Textarea.mjs +1 -1
- package/dist/components/Tooltip.mjs +2 -2
- package/dist/components/Tour.mjs +1 -1
- package/dist/components/TreeMapChart.mjs +3 -3
- package/dist/components/TreeSelect.mjs +1 -1
- package/dist/components/Upload.mjs +1 -1
- package/dist/hooks/useChartInteraction.d.mts +5 -0
- package/dist/hooks/useChartInteraction.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +51 -0
- package/package.json +2 -2
- package/dist/chunk-CB4SK5AU.mjs +0 -235
- package/dist/chunk-KPACLRQH.mjs +0 -55
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useChartInteraction
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JZZPLKTW.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ChartTooltip
|
|
6
6
|
} from "./chunk-YORCCCQX.mjs";
|
|
7
7
|
import {
|
|
8
8
|
ChartCanvas
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CUAXRBKO.mjs";
|
|
10
10
|
import {
|
|
11
11
|
ChartLegend
|
|
12
12
|
} from "./chunk-F2ITBDUS.mjs";
|
|
@@ -70,6 +70,7 @@ var FunnelChart = ({
|
|
|
70
70
|
wrapperClasses
|
|
71
71
|
} = useChartInteraction({
|
|
72
72
|
hoverable,
|
|
73
|
+
showTooltip,
|
|
73
74
|
hoveredIndexProp,
|
|
74
75
|
selectable,
|
|
75
76
|
selectedIndexProp,
|
|
@@ -191,7 +192,7 @@ var FunnelChart = ({
|
|
|
191
192
|
]
|
|
192
193
|
}
|
|
193
194
|
);
|
|
194
|
-
const tooltip = showTooltip
|
|
195
|
+
const tooltip = showTooltip ? /* @__PURE__ */ jsx(
|
|
195
196
|
ChartTooltip,
|
|
196
197
|
{
|
|
197
198
|
content: tooltipContent,
|
|
@@ -11,15 +11,24 @@ import {
|
|
|
11
11
|
colorPickerPanelClasses,
|
|
12
12
|
colorPickerInputClasses,
|
|
13
13
|
colorPickerPresetClasses,
|
|
14
|
-
hexToRgb,
|
|
15
14
|
rgbToHex,
|
|
16
15
|
rgbToHsv,
|
|
17
16
|
hsvToRgb,
|
|
18
17
|
formatColorString,
|
|
19
18
|
parseColorInput,
|
|
19
|
+
parseColorParts,
|
|
20
20
|
classNames
|
|
21
21
|
} from "@expcat/tigercat-core";
|
|
22
22
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
23
|
+
function rgbFromValue(value) {
|
|
24
|
+
const parts = parseColorParts(value);
|
|
25
|
+
return parts ? { r: parts.r, g: parts.g, b: parts.b } : { r: 0, g: 0, b: 0 };
|
|
26
|
+
}
|
|
27
|
+
function explicitAlphaFromValue(value) {
|
|
28
|
+
if (!/^(rgba|hsla)\(/i.test(value.trim())) return null;
|
|
29
|
+
const parts = parseColorParts(value);
|
|
30
|
+
return parts ? parts.a : null;
|
|
31
|
+
}
|
|
23
32
|
var ColorPicker = ({
|
|
24
33
|
value = "#2563eb",
|
|
25
34
|
disabled = false,
|
|
@@ -31,7 +40,7 @@ var ColorPicker = ({
|
|
|
31
40
|
onChange
|
|
32
41
|
}) => {
|
|
33
42
|
const [isOpen, setIsOpen] = useState(false);
|
|
34
|
-
const [alpha, setAlpha] = useState(1);
|
|
43
|
+
const [alpha, setAlpha] = useState(() => explicitAlphaFromValue(value) ?? 1);
|
|
35
44
|
const containerRef = useRef(null);
|
|
36
45
|
const triggerRef = useRef(null);
|
|
37
46
|
const panelRef = useRef(null);
|
|
@@ -47,8 +56,12 @@ var ColorPicker = ({
|
|
|
47
56
|
restoreFocusOnDismiss: true,
|
|
48
57
|
onDismiss: () => setIsOpen(false)
|
|
49
58
|
});
|
|
50
|
-
const rgb = useMemo(() =>
|
|
59
|
+
const rgb = useMemo(() => rgbFromValue(value), [value]);
|
|
51
60
|
const hsv = useMemo(() => rgbToHsv(rgb.r, rgb.g, rgb.b), [rgb]);
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
const next = explicitAlphaFromValue(value);
|
|
63
|
+
if (next !== null) setAlpha(next);
|
|
64
|
+
}, [value]);
|
|
52
65
|
const displayValue = useMemo(
|
|
53
66
|
() => formatColorString(rgb.r, rgb.g, rgb.b, format, showAlpha ? alpha : void 0),
|
|
54
67
|
[rgb, format, showAlpha, alpha]
|
|
@@ -80,13 +93,17 @@ var ColorPicker = ({
|
|
|
80
93
|
function handleInputChange(e) {
|
|
81
94
|
const val = e.target.value;
|
|
82
95
|
setInputValue(val);
|
|
83
|
-
const
|
|
84
|
-
if (
|
|
85
|
-
onChange?.(
|
|
96
|
+
const parsed = parseColorInput(val);
|
|
97
|
+
if (parsed) {
|
|
98
|
+
onChange?.(parsed);
|
|
86
99
|
}
|
|
87
100
|
}
|
|
88
101
|
function handleAlphaChange(e) {
|
|
89
|
-
|
|
102
|
+
const nextAlpha = Number(e.target.value) / 100;
|
|
103
|
+
setAlpha(nextAlpha);
|
|
104
|
+
const emitFormat = format === "hex" ? "rgb" : format;
|
|
105
|
+
const next = formatColorString(rgb.r, rgb.g, rgb.b, emitFormat, nextAlpha);
|
|
106
|
+
onChange?.(next);
|
|
90
107
|
}
|
|
91
108
|
function handlePresetClick(color) {
|
|
92
109
|
onChange?.(color);
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
getPageRange,
|
|
11
11
|
validateCurrentPage,
|
|
12
12
|
getPageNumbers,
|
|
13
|
-
defaultTotalText,
|
|
14
13
|
formatPaginationTotal,
|
|
15
14
|
getPaginationContainerClasses,
|
|
16
15
|
getPaginationButtonBaseClasses,
|
|
@@ -179,7 +178,7 @@ var Pagination = ({
|
|
|
179
178
|
const nextDisabled = validatedCurrentPage >= totalPages || disabled;
|
|
180
179
|
const elements = [];
|
|
181
180
|
if (showTotal) {
|
|
182
|
-
const totalTextFn = totalText || (
|
|
181
|
+
const totalTextFn = totalText || ((value, range) => formatPaginationTotal(labels.totalText, value, range, localeCode));
|
|
183
182
|
elements.push(
|
|
184
183
|
/* @__PURE__ */ jsx("span", { className: getTotalTextClasses(size), children: totalTextFn(total, pageRange) }, "total")
|
|
185
184
|
);
|
|
@@ -3,38 +3,47 @@ import {
|
|
|
3
3
|
} from "./chunk-Y5X3G2LD.mjs";
|
|
4
4
|
import {
|
|
5
5
|
Input
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3LDDXHW2.mjs";
|
|
7
7
|
import {
|
|
8
8
|
Empty
|
|
9
9
|
} from "./chunk-W7BC4I2Y.mjs";
|
|
10
10
|
import {
|
|
11
11
|
Textarea
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-PMQJ6AYT.mjs";
|
|
13
13
|
import {
|
|
14
14
|
Button
|
|
15
15
|
} from "./chunk-5TE7KLE5.mjs";
|
|
16
16
|
import {
|
|
17
17
|
Avatar
|
|
18
18
|
} from "./chunk-OO562MFD.mjs";
|
|
19
|
+
import {
|
|
20
|
+
useTigerConfig
|
|
21
|
+
} from "./chunk-YSIXURBW.mjs";
|
|
19
22
|
|
|
20
23
|
// src/components/ChatWindow.tsx
|
|
21
24
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
22
25
|
import {
|
|
23
26
|
classNames,
|
|
24
27
|
getChatMessageStatusInfo,
|
|
28
|
+
buildChatMessageStatusInfo,
|
|
25
29
|
getChatStatusBarClasses,
|
|
26
|
-
formatChatTime
|
|
30
|
+
formatChatTime,
|
|
31
|
+
getChatWindowLabels,
|
|
32
|
+
mergeTigerLocale,
|
|
33
|
+
resolveLocaleText
|
|
27
34
|
} from "@expcat/tigercat-core";
|
|
28
35
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
29
36
|
var ChatWindow = ({
|
|
30
37
|
messages = [],
|
|
31
38
|
value,
|
|
32
39
|
defaultValue = "",
|
|
33
|
-
placeholder
|
|
40
|
+
placeholder,
|
|
34
41
|
disabled = false,
|
|
35
42
|
maxLength,
|
|
36
|
-
emptyText
|
|
37
|
-
sendText
|
|
43
|
+
emptyText,
|
|
44
|
+
sendText,
|
|
45
|
+
locale,
|
|
46
|
+
labels: labelsOverride,
|
|
38
47
|
messageListAriaLabel,
|
|
39
48
|
inputAriaLabel,
|
|
40
49
|
sendAriaLabel,
|
|
@@ -59,6 +68,19 @@ var ChatWindow = ({
|
|
|
59
68
|
className,
|
|
60
69
|
...props
|
|
61
70
|
}) => {
|
|
71
|
+
const config = useTigerConfig();
|
|
72
|
+
const mergedLocale = useMemo(
|
|
73
|
+
() => mergeTigerLocale(config.locale, locale),
|
|
74
|
+
[config.locale, locale]
|
|
75
|
+
);
|
|
76
|
+
const labels = useMemo(
|
|
77
|
+
() => getChatWindowLabels(mergedLocale, labelsOverride),
|
|
78
|
+
[mergedLocale, labelsOverride]
|
|
79
|
+
);
|
|
80
|
+
const statusMap = useMemo(() => buildChatMessageStatusInfo(labels), [labels]);
|
|
81
|
+
const resolvedPlaceholder = resolveLocaleText(labels.placeholder, placeholder);
|
|
82
|
+
const resolvedEmptyText = resolveLocaleText(labels.emptyText, emptyText);
|
|
83
|
+
const resolvedSendText = resolveLocaleText(labels.sendText, sendText);
|
|
62
84
|
const [innerValue, setInnerValue] = useState(value ?? defaultValue);
|
|
63
85
|
useEffect(() => {
|
|
64
86
|
if (value !== void 0) {
|
|
@@ -112,7 +134,7 @@ var ChatWindow = ({
|
|
|
112
134
|
const renderMessageItem = useCallback(
|
|
113
135
|
(message, index) => {
|
|
114
136
|
const isSelf = message.direction === "self";
|
|
115
|
-
const statusInfo = message.status ? getChatMessageStatusInfo(message.status) : void 0;
|
|
137
|
+
const statusInfo = message.status ? getChatMessageStatusInfo(message.status, statusMap) : void 0;
|
|
116
138
|
const timeText = showTime ? formatChatTime(message.time) : "";
|
|
117
139
|
return /* @__PURE__ */ jsxs(
|
|
118
140
|
"div",
|
|
@@ -163,7 +185,7 @@ var ChatWindow = ({
|
|
|
163
185
|
message.id ?? index
|
|
164
186
|
);
|
|
165
187
|
},
|
|
166
|
-
[renderMessage, showAvatar, showName, showTime]
|
|
188
|
+
[renderMessage, showAvatar, showName, showTime, statusMap]
|
|
167
189
|
);
|
|
168
190
|
const messageListRef = useRef(null);
|
|
169
191
|
useEffect(() => {
|
|
@@ -185,7 +207,7 @@ var ChatWindow = ({
|
|
|
185
207
|
role: "log",
|
|
186
208
|
"aria-live": "polite",
|
|
187
209
|
"aria-relevant": "additions text",
|
|
188
|
-
"aria-label": messageListAriaLabel ?? "
|
|
210
|
+
"aria-label": messageListAriaLabel ?? "Message list",
|
|
189
211
|
children: /* @__PURE__ */ jsx(
|
|
190
212
|
VirtualList,
|
|
191
213
|
{
|
|
@@ -204,8 +226,8 @@ var ChatWindow = ({
|
|
|
204
226
|
role: "log",
|
|
205
227
|
"aria-live": "polite",
|
|
206
228
|
"aria-relevant": "additions text",
|
|
207
|
-
"aria-label": messageListAriaLabel ?? "
|
|
208
|
-
children: messages.length === 0 ? /* @__PURE__ */ jsx("div", { className: "h-full flex items-center justify-center py-8", children: /* @__PURE__ */ jsx(Empty, { description:
|
|
229
|
+
"aria-label": messageListAriaLabel ?? "Message list",
|
|
230
|
+
children: messages.length === 0 ? /* @__PURE__ */ jsx("div", { className: "h-full flex items-center justify-center py-8", children: /* @__PURE__ */ jsx(Empty, { description: resolvedEmptyText }) }) : messages.map(renderMessageItem)
|
|
209
231
|
}
|
|
210
232
|
),
|
|
211
233
|
statusText && /* @__PURE__ */ jsx("div", { className: getChatStatusBarClasses(statusVariant), children: statusText }),
|
|
@@ -214,10 +236,10 @@ var ChatWindow = ({
|
|
|
214
236
|
Input,
|
|
215
237
|
{
|
|
216
238
|
value: inputValue,
|
|
217
|
-
placeholder,
|
|
239
|
+
placeholder: resolvedPlaceholder,
|
|
218
240
|
disabled,
|
|
219
241
|
maxLength,
|
|
220
|
-
"aria-label": inputAriaLabel ??
|
|
242
|
+
"aria-label": inputAriaLabel ?? resolvedPlaceholder,
|
|
221
243
|
onChange: (event) => handleValueChange(event.currentTarget.value),
|
|
222
244
|
onKeyDown: handleKeyDown
|
|
223
245
|
}
|
|
@@ -225,16 +247,24 @@ var ChatWindow = ({
|
|
|
225
247
|
Textarea,
|
|
226
248
|
{
|
|
227
249
|
value: inputValue,
|
|
228
|
-
placeholder,
|
|
250
|
+
placeholder: resolvedPlaceholder,
|
|
229
251
|
disabled,
|
|
230
252
|
maxLength,
|
|
231
253
|
rows: inputRows,
|
|
232
|
-
"aria-label": inputAriaLabel ??
|
|
254
|
+
"aria-label": inputAriaLabel ?? resolvedPlaceholder,
|
|
233
255
|
onChange: (event) => handleValueChange(event.currentTarget.value),
|
|
234
256
|
onKeyDown: handleKeyDown
|
|
235
257
|
}
|
|
236
258
|
) }),
|
|
237
|
-
/* @__PURE__ */ jsx(
|
|
259
|
+
/* @__PURE__ */ jsx(
|
|
260
|
+
Button,
|
|
261
|
+
{
|
|
262
|
+
disabled: !canSend,
|
|
263
|
+
onClick: handleSend,
|
|
264
|
+
"aria-label": sendAriaLabel ?? resolvedSendText,
|
|
265
|
+
children: resolvedSendText
|
|
266
|
+
}
|
|
267
|
+
)
|
|
238
268
|
] })
|
|
239
269
|
] });
|
|
240
270
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useChartInteraction
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JZZPLKTW.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ChartTooltip
|
|
6
6
|
} from "./chunk-YORCCCQX.mjs";
|
|
7
7
|
import {
|
|
8
8
|
ChartCanvas
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CUAXRBKO.mjs";
|
|
10
10
|
import {
|
|
11
11
|
ChartLegend
|
|
12
12
|
} from "./chunk-F2ITBDUS.mjs";
|
|
@@ -16,6 +16,7 @@ import { useId, useMemo } from "react";
|
|
|
16
16
|
import {
|
|
17
17
|
classNames,
|
|
18
18
|
computeSunburstArcs,
|
|
19
|
+
getSunburstLabelPoint,
|
|
19
20
|
getChartElementOpacity,
|
|
20
21
|
getChartInnerRect,
|
|
21
22
|
getStableChartGradientPrefix,
|
|
@@ -30,7 +31,7 @@ var SunburstChart = ({
|
|
|
30
31
|
padding = 24,
|
|
31
32
|
data,
|
|
32
33
|
innerRadiusRatio = 0,
|
|
33
|
-
showLabels
|
|
34
|
+
showLabels = true,
|
|
34
35
|
colors,
|
|
35
36
|
gradient = false,
|
|
36
37
|
hoverable = false,
|
|
@@ -97,6 +98,7 @@ var SunburstChart = ({
|
|
|
97
98
|
wrapperClasses
|
|
98
99
|
} = useChartInteraction({
|
|
99
100
|
hoverable,
|
|
101
|
+
showTooltip,
|
|
100
102
|
hoveredIndexProp,
|
|
101
103
|
selectable,
|
|
102
104
|
selectedIndexProp,
|
|
@@ -189,11 +191,28 @@ var SunburstChart = ({
|
|
|
189
191
|
},
|
|
190
192
|
`arc-${arc.index}`
|
|
191
193
|
);
|
|
194
|
+
}),
|
|
195
|
+
showLabels && arcs.map((arc) => {
|
|
196
|
+
const { x, y } = getSunburstLabelPoint(arc, cx, cy);
|
|
197
|
+
return /* @__PURE__ */ jsx(
|
|
198
|
+
"text",
|
|
199
|
+
{
|
|
200
|
+
x,
|
|
201
|
+
y,
|
|
202
|
+
className: "fill-white text-xs",
|
|
203
|
+
textAnchor: "middle",
|
|
204
|
+
dominantBaseline: "middle",
|
|
205
|
+
style: { pointerEvents: "none" },
|
|
206
|
+
"aria-hidden": "true",
|
|
207
|
+
children: arc.label
|
|
208
|
+
},
|
|
209
|
+
`label-${arc.index}`
|
|
210
|
+
);
|
|
192
211
|
})
|
|
193
212
|
] })
|
|
194
213
|
}
|
|
195
214
|
);
|
|
196
|
-
const tooltip = showTooltip
|
|
215
|
+
const tooltip = showTooltip ? /* @__PURE__ */ jsx(
|
|
197
216
|
ChartTooltip,
|
|
198
217
|
{
|
|
199
218
|
content: tooltipContent,
|
|
@@ -64,6 +64,10 @@ var Signature = forwardRef(
|
|
|
64
64
|
const canvasRef = useRef(null);
|
|
65
65
|
const strokesRef = useRef([]);
|
|
66
66
|
const activeStrokeRef = useRef(null);
|
|
67
|
+
const capturedPointerIdRef = useRef(null);
|
|
68
|
+
const documentPointerListeningRef = useRef(false);
|
|
69
|
+
const finishStrokeRef = useRef(() => {
|
|
70
|
+
});
|
|
67
71
|
const [strokes, setStrokes] = useState([]);
|
|
68
72
|
const isDisabled = disabled || readonly;
|
|
69
73
|
const normalizedLineWidth = clampSignatureLineWidth(lineWidth);
|
|
@@ -118,9 +122,52 @@ var Signature = forwardRef(
|
|
|
118
122
|
},
|
|
119
123
|
[createPayload, onChange]
|
|
120
124
|
);
|
|
125
|
+
const handleDocumentPointerEnd = useRef(() => {
|
|
126
|
+
finishStrokeRef.current();
|
|
127
|
+
}).current;
|
|
128
|
+
const detachDocumentPointerListeners = () => {
|
|
129
|
+
if (!documentPointerListeningRef.current || typeof document === "undefined") return;
|
|
130
|
+
document.removeEventListener("pointerup", handleDocumentPointerEnd);
|
|
131
|
+
document.removeEventListener("pointercancel", handleDocumentPointerEnd);
|
|
132
|
+
documentPointerListeningRef.current = false;
|
|
133
|
+
};
|
|
134
|
+
const attachDocumentPointerListeners = () => {
|
|
135
|
+
if (documentPointerListeningRef.current || typeof document === "undefined") return;
|
|
136
|
+
document.addEventListener("pointerup", handleDocumentPointerEnd);
|
|
137
|
+
document.addEventListener("pointercancel", handleDocumentPointerEnd);
|
|
138
|
+
documentPointerListeningRef.current = true;
|
|
139
|
+
};
|
|
140
|
+
const captureCanvasPointer = (pointerId) => {
|
|
141
|
+
capturedPointerIdRef.current = pointerId;
|
|
142
|
+
const canvas = canvasRef.current;
|
|
143
|
+
if (!canvas || typeof canvas.setPointerCapture !== "function") return;
|
|
144
|
+
try {
|
|
145
|
+
canvas.setPointerCapture(pointerId);
|
|
146
|
+
} catch {
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const releaseCanvasPointer = () => {
|
|
150
|
+
const canvas = canvasRef.current;
|
|
151
|
+
const pointerId = capturedPointerIdRef.current;
|
|
152
|
+
capturedPointerIdRef.current = null;
|
|
153
|
+
if (!canvas || pointerId == null || typeof canvas.releasePointerCapture !== "function") return;
|
|
154
|
+
if (typeof canvas.hasPointerCapture === "function") {
|
|
155
|
+
try {
|
|
156
|
+
if (!canvas.hasPointerCapture(pointerId)) return;
|
|
157
|
+
} catch {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
try {
|
|
162
|
+
canvas.releasePointerCapture(pointerId);
|
|
163
|
+
} catch {
|
|
164
|
+
}
|
|
165
|
+
};
|
|
121
166
|
const clear = useCallback(() => {
|
|
122
167
|
strokesRef.current = [];
|
|
123
168
|
activeStrokeRef.current = null;
|
|
169
|
+
detachDocumentPointerListeners();
|
|
170
|
+
releaseCanvasPointer();
|
|
124
171
|
setStrokes([]);
|
|
125
172
|
draw([]);
|
|
126
173
|
emitChange([]);
|
|
@@ -137,13 +184,23 @@ var Signature = forwardRef(
|
|
|
137
184
|
[clear, toDataURL, toSVG]
|
|
138
185
|
);
|
|
139
186
|
const getPointFromEvent = (event) => {
|
|
140
|
-
const
|
|
187
|
+
const canvas = canvasRef.current;
|
|
188
|
+
const rect = canvas?.getBoundingClientRect() ?? {
|
|
189
|
+
left: 0,
|
|
190
|
+
top: 0,
|
|
191
|
+
width,
|
|
192
|
+
height
|
|
193
|
+
};
|
|
141
194
|
return getSignaturePoint(event.clientX, event.clientY, rect, width, height);
|
|
142
195
|
};
|
|
143
196
|
const handlePointerDown = (event) => {
|
|
144
197
|
if (isDisabled) return;
|
|
145
198
|
event.preventDefault();
|
|
146
199
|
event.currentTarget.focus();
|
|
200
|
+
const pointerId = event.pointerId;
|
|
201
|
+
if (typeof pointerId === "number") {
|
|
202
|
+
captureCanvasPointer(pointerId);
|
|
203
|
+
}
|
|
147
204
|
const stroke = {
|
|
148
205
|
color: penColor,
|
|
149
206
|
lineWidth: normalizedLineWidth,
|
|
@@ -153,6 +210,7 @@ var Signature = forwardRef(
|
|
|
153
210
|
activeStrokeRef.current = stroke;
|
|
154
211
|
strokesRef.current = nextStrokes;
|
|
155
212
|
setStrokes(nextStrokes);
|
|
213
|
+
attachDocumentPointerListeners();
|
|
156
214
|
onBegin?.();
|
|
157
215
|
};
|
|
158
216
|
const handlePointerMove = (event) => {
|
|
@@ -169,7 +227,16 @@ var Signature = forwardRef(
|
|
|
169
227
|
activeStrokeRef.current = null;
|
|
170
228
|
const payload = emitChange(strokesRef.current);
|
|
171
229
|
onEnd?.(payload);
|
|
230
|
+
detachDocumentPointerListeners();
|
|
231
|
+
releaseCanvasPointer();
|
|
172
232
|
};
|
|
233
|
+
finishStrokeRef.current = finishStroke;
|
|
234
|
+
useEffect(() => {
|
|
235
|
+
return () => {
|
|
236
|
+
detachDocumentPointerListeners();
|
|
237
|
+
releaseCanvasPointer();
|
|
238
|
+
};
|
|
239
|
+
}, []);
|
|
173
240
|
const handleKeyDown = (event) => {
|
|
174
241
|
if (!clearable || isDisabled) return;
|
|
175
242
|
if (event.key !== "Delete" && event.key !== "Backspace") return;
|
|
@@ -192,6 +259,7 @@ var Signature = forwardRef(
|
|
|
192
259
|
onPointerMove: handlePointerMove,
|
|
193
260
|
onPointerUp: finishStroke,
|
|
194
261
|
onPointerCancel: finishStroke,
|
|
262
|
+
onLostPointerCapture: finishStroke,
|
|
195
263
|
onKeyDown: handleKeyDown
|
|
196
264
|
}
|
|
197
265
|
) }),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useChartInteraction
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JZZPLKTW.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ChartSeries
|
|
6
6
|
} from "./chunk-SDLMB34Y.mjs";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-YORCCCQX.mjs";
|
|
10
10
|
import {
|
|
11
11
|
ChartCanvas
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-CUAXRBKO.mjs";
|
|
13
13
|
import {
|
|
14
14
|
ChartLegend
|
|
15
15
|
} from "./chunk-F2ITBDUS.mjs";
|
|
@@ -20,7 +20,9 @@ import {
|
|
|
20
20
|
chartAxisTickTextClasses,
|
|
21
21
|
chartGridLineClasses,
|
|
22
22
|
classNames,
|
|
23
|
+
createCircleRingPath,
|
|
23
24
|
createPolygonPath,
|
|
25
|
+
createPolygonRingPath,
|
|
24
26
|
getChartGridLineDasharray,
|
|
25
27
|
getChartInnerRect,
|
|
26
28
|
getRadarAngles,
|
|
@@ -121,6 +123,7 @@ var RadarChart = ({
|
|
|
121
123
|
wrapperClasses
|
|
122
124
|
} = useChartInteraction({
|
|
123
125
|
hoverable,
|
|
126
|
+
showTooltip,
|
|
124
127
|
hoveredIndexProp,
|
|
125
128
|
selectable,
|
|
126
129
|
selectedIndexProp,
|
|
@@ -142,11 +145,11 @@ var RadarChart = ({
|
|
|
142
145
|
const [hoveredPoint, setHoveredPoint] = useState(null);
|
|
143
146
|
const handlePointEnter = useCallback(
|
|
144
147
|
(seriesIndex, pointIndex, event) => {
|
|
145
|
-
if (!hoverable) return;
|
|
148
|
+
if (!hoverable && !showTooltip) return;
|
|
146
149
|
setHoveredPoint({ seriesIndex, pointIndex });
|
|
147
150
|
handleHoverEnter(seriesIndex, event);
|
|
148
151
|
},
|
|
149
|
-
[hoverable, handleHoverEnter]
|
|
152
|
+
[hoverable, showTooltip, handleHoverEnter]
|
|
150
153
|
);
|
|
151
154
|
const handlePointMove = useCallback(
|
|
152
155
|
(event) => {
|
|
@@ -422,52 +425,61 @@ var RadarChart = ({
|
|
|
422
425
|
] }),
|
|
423
426
|
splitAreaPaths.map((area, index) => {
|
|
424
427
|
if (area.type === "circle-ring") {
|
|
425
|
-
|
|
426
|
-
/* @__PURE__ */ jsx(
|
|
427
|
-
"
|
|
428
|
+
if (area.innerRadius > 0) {
|
|
429
|
+
return /* @__PURE__ */ jsx(
|
|
430
|
+
"path",
|
|
428
431
|
{
|
|
429
|
-
|
|
430
|
-
cy: area.cy,
|
|
431
|
-
r: area.outerRadius,
|
|
432
|
+
d: createCircleRingPath(area.cx, area.cy, area.outerRadius, area.innerRadius),
|
|
432
433
|
fill: area.color,
|
|
433
434
|
fillOpacity: splitAreaOpacity,
|
|
435
|
+
fillRule: "evenodd",
|
|
434
436
|
stroke: "none",
|
|
435
437
|
"data-radar-split-area": "true"
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
cy: area.cy,
|
|
443
|
-
r: area.innerRadius,
|
|
444
|
-
fill: "var(--tiger-bg,#fff)",
|
|
445
|
-
stroke: "none"
|
|
446
|
-
}
|
|
447
|
-
) : null
|
|
448
|
-
] }, `split-${index}`);
|
|
449
|
-
}
|
|
450
|
-
const outerPath = createPolygonPath(area.outerPoints);
|
|
451
|
-
return /* @__PURE__ */ jsxs("g", { children: [
|
|
452
|
-
outerPath ? /* @__PURE__ */ jsx(
|
|
453
|
-
"path",
|
|
438
|
+
},
|
|
439
|
+
`split-${index}`
|
|
440
|
+
);
|
|
441
|
+
}
|
|
442
|
+
return /* @__PURE__ */ jsx(
|
|
443
|
+
"circle",
|
|
454
444
|
{
|
|
455
|
-
|
|
445
|
+
cx: area.cx,
|
|
446
|
+
cy: area.cy,
|
|
447
|
+
r: area.outerRadius,
|
|
456
448
|
fill: area.color,
|
|
457
449
|
fillOpacity: splitAreaOpacity,
|
|
458
450
|
stroke: "none",
|
|
459
451
|
"data-radar-split-area": "true"
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
|
|
452
|
+
},
|
|
453
|
+
`split-${index}`
|
|
454
|
+
);
|
|
455
|
+
}
|
|
456
|
+
if (area.innerPoints.length > 0) {
|
|
457
|
+
const ringPath = createPolygonRingPath(area.outerPoints, area.innerPoints);
|
|
458
|
+
return ringPath ? /* @__PURE__ */ jsx(
|
|
463
459
|
"path",
|
|
464
460
|
{
|
|
465
|
-
d:
|
|
466
|
-
fill:
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
461
|
+
d: ringPath,
|
|
462
|
+
fill: area.color,
|
|
463
|
+
fillOpacity: splitAreaOpacity,
|
|
464
|
+
fillRule: "evenodd",
|
|
465
|
+
stroke: "none",
|
|
466
|
+
"data-radar-split-area": "true"
|
|
467
|
+
},
|
|
468
|
+
`split-${index}`
|
|
469
|
+
) : null;
|
|
470
|
+
}
|
|
471
|
+
const outerPath = createPolygonPath(area.outerPoints);
|
|
472
|
+
return outerPath ? /* @__PURE__ */ jsx(
|
|
473
|
+
"path",
|
|
474
|
+
{
|
|
475
|
+
d: outerPath,
|
|
476
|
+
fill: area.color,
|
|
477
|
+
fillOpacity: splitAreaOpacity,
|
|
478
|
+
stroke: "none",
|
|
479
|
+
"data-radar-split-area": "true"
|
|
480
|
+
},
|
|
481
|
+
`split-${index}`
|
|
482
|
+
) : null;
|
|
471
483
|
}),
|
|
472
484
|
gridPaths.map(
|
|
473
485
|
(grid, index) => grid.type === "circle" ? /* @__PURE__ */ jsx(
|
|
@@ -581,9 +593,9 @@ var RadarChart = ({
|
|
|
581
593
|
"data-series-index": seriesIndex,
|
|
582
594
|
"data-series-key": item.seriesKey,
|
|
583
595
|
"data-point-index": point.index,
|
|
584
|
-
onMouseEnter: showTooltip
|
|
585
|
-
onMouseMove: showTooltip
|
|
586
|
-
onMouseLeave: showTooltip
|
|
596
|
+
onMouseEnter: showTooltip || hoverable ? (e) => handlePointEnter(seriesIndex, point.index, e) : void 0,
|
|
597
|
+
onMouseMove: showTooltip || hoverable ? handlePointMove : void 0,
|
|
598
|
+
onMouseLeave: showTooltip || hoverable ? handlePointLeave : void 0,
|
|
587
599
|
onFocus: showTooltip && hoverable ? (e) => showPointTooltipFromElement(e.currentTarget, seriesIndex, point.index) : void 0,
|
|
588
600
|
onBlur: showTooltip && hoverable ? handlePointLeave : void 0,
|
|
589
601
|
onKeyDown: showTooltip && hoverable ? (e) => {
|
|
@@ -635,7 +647,7 @@ var RadarChart = ({
|
|
|
635
647
|
]
|
|
636
648
|
}
|
|
637
649
|
);
|
|
638
|
-
const tooltip = showTooltip
|
|
650
|
+
const tooltip = showTooltip ? /* @__PURE__ */ jsx(
|
|
639
651
|
ChartTooltip,
|
|
640
652
|
{
|
|
641
653
|
content: tooltipContent,
|