@usefragments/ui 1.3.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/assets/ui.css +1261 -849
- package/dist/chart.cjs +60 -24
- package/dist/chart.js +38 -24
- package/dist/codeblock.cjs +14 -6
- package/dist/codeblock.js +14 -6
- package/dist/colorpicker.cjs +56 -9
- package/dist/colorpicker.js +34 -9
- package/dist/components/Badge/Badge.module.scss.cjs +23 -16
- package/dist/components/Badge/Badge.module.scss.js +23 -16
- package/dist/components/Badge/index.cjs +8 -1
- package/dist/components/Badge/index.d.ts +3 -0
- package/dist/components/Badge/index.d.ts.map +1 -1
- package/dist/components/Badge/index.js +8 -1
- package/dist/components/Button/Button.module.scss.cjs +16 -13
- package/dist/components/Button/Button.module.scss.js +16 -13
- package/dist/components/Button/index.d.ts +2 -1
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Chart/index.d.ts +3 -0
- package/dist/components/Chart/index.d.ts.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +21 -21
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +21 -21
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/ColorPicker/index.d.ts +4 -0
- package/dist/components/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +23 -23
- package/dist/components/Combobox/Combobox.module.scss.js +23 -23
- package/dist/components/Command/Command.module.scss.cjs +11 -11
- package/dist/components/Command/Command.module.scss.js +11 -11
- package/dist/components/ConversationList/ConversationList.module.scss.cjs +13 -10
- package/dist/components/ConversationList/ConversationList.module.scss.js +14 -11
- package/dist/components/ConversationList/index.cjs +26 -22
- package/dist/components/ConversationList/index.d.ts +5 -1
- package/dist/components/ConversationList/index.d.ts.map +1 -1
- package/dist/components/ConversationList/index.js +27 -23
- package/dist/components/DataTable/DataTable.module.scss.cjs +35 -35
- package/dist/components/DataTable/DataTable.module.scss.js +35 -35
- package/dist/components/DataTable/index.d.ts +4 -1
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DatePicker/index.d.ts +3 -0
- package/dist/components/DatePicker/index.d.ts.map +1 -1
- package/dist/components/Editor/index.d.ts +4 -1
- package/dist/components/Editor/index.d.ts.map +1 -1
- package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
- package/dist/components/Listbox/Listbox.module.scss.js +8 -8
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Markdown/index.d.ts +16 -0
- package/dist/components/Markdown/index.d.ts.map +1 -1
- package/dist/components/Menu/Menu.module.scss.cjs +14 -14
- package/dist/components/Menu/Menu.module.scss.js +14 -14
- package/dist/components/Message/Message.module.scss.cjs +23 -20
- package/dist/components/Message/Message.module.scss.js +24 -21
- package/dist/components/Message/index.cjs +5 -1
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +5 -1
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
- package/dist/components/Pagination/Pagination.module.scss.cjs +7 -7
- package/dist/components/Pagination/Pagination.module.scss.js +7 -7
- package/dist/components/Prompt/Prompt.module.scss.cjs +52 -22
- package/dist/components/Prompt/Prompt.module.scss.js +52 -22
- package/dist/components/Prompt/index.cjs +197 -2
- package/dist/components/Prompt/index.d.ts +98 -3
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +198 -3
- package/dist/components/Select/Select.module.scss.cjs +29 -17
- package/dist/components/Select/Select.module.scss.js +30 -18
- package/dist/components/Select/index.cjs +45 -8
- package/dist/components/Select/index.d.ts +17 -2
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +45 -8
- package/dist/components/Sidebar/Sidebar.module.scss.cjs +45 -42
- package/dist/components/Sidebar/Sidebar.module.scss.js +45 -42
- package/dist/components/Sidebar/index.cjs +2 -0
- package/dist/components/Sidebar/index.d.ts +6 -1
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +2 -0
- package/dist/components/Text/Text.module.scss.cjs +63 -51
- package/dist/components/Text/Text.module.scss.js +63 -51
- package/dist/components/Text/index.d.ts +4 -2
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/data-table.cjs +210 -28
- package/dist/data-table.js +189 -29
- package/dist/datepicker.cjs +63 -14
- package/dist/datepicker.js +41 -14
- package/dist/editor.cjs +67 -16
- package/dist/editor.js +45 -16
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/markdown.cjs +63 -19
- package/dist/markdown.js +41 -19
- package/fragments.json +1 -1
- package/package.json +2 -2
- package/src/components/Badge/Badge.contract.json +28 -5
- package/src/components/Badge/Badge.module.scss +21 -0
- package/src/components/Badge/index.tsx +10 -1
- package/src/components/Button/Button.contract.json +9 -3
- package/src/components/Button/Button.module.scss +34 -0
- package/src/components/Button/index.tsx +11 -1
- package/src/components/Chart/Chart.contract.json +7 -0
- package/src/components/Chart/index.tsx +44 -27
- package/src/components/CodeBlock/CodeBlock.contract.json +7 -0
- package/src/components/CodeBlock/CodeBlock.module.scss +7 -2
- package/src/components/CodeBlock/index.tsx +38 -6
- package/src/components/ColorPicker/ColorPicker.contract.json +9 -1
- package/src/components/ColorPicker/index.tsx +42 -12
- package/src/components/Combobox/Combobox.module.scss +4 -13
- package/src/components/ConversationList/ConversationList.contract.json +16 -1
- package/src/components/ConversationList/ConversationList.module.scss +12 -0
- package/src/components/ConversationList/index.tsx +40 -26
- package/src/components/DataTable/DataTable.contract.json +8 -1
- package/src/components/DataTable/DataTable.module.scss +5 -0
- package/src/components/DataTable/index.tsx +282 -51
- package/src/components/DatePicker/DatePicker.contract.json +8 -1
- package/src/components/DatePicker/index.tsx +51 -22
- package/src/components/Editor/Editor.contract.json +19 -1
- package/src/components/Editor/index.tsx +67 -23
- package/src/components/Listbox/Listbox.module.scss +3 -11
- package/src/components/Markdown/Markdown.contract.json +15 -1
- package/src/components/Markdown/Markdown.module.scss +18 -1
- package/src/components/Markdown/index.tsx +58 -24
- package/src/components/Menu/Menu.module.scss +12 -2
- package/src/components/Message/Message.contract.json +3 -0
- package/src/components/Message/Message.module.scss +33 -4
- package/src/components/Message/index.tsx +7 -1
- package/src/components/Pagination/Pagination.contract.json +1 -0
- package/src/components/Pagination/Pagination.module.scss +5 -4
- package/src/components/Prompt/Prompt.contract.json +40 -1
- package/src/components/Prompt/Prompt.module.scss +351 -4
- package/src/components/Prompt/index.tsx +324 -0
- package/src/components/Select/Select.contract.json +11 -1
- package/src/components/Select/Select.module.scss +80 -13
- package/src/components/Select/index.tsx +73 -7
- package/src/components/Sidebar/Sidebar.contract.json +1 -0
- package/src/components/Sidebar/Sidebar.module.scss +10 -0
- package/src/components/Sidebar/index.tsx +7 -0
- package/src/components/Text/Text.contract.json +7 -4
- package/src/components/Text/Text.module.scss +18 -0
- package/src/components/Text/index.tsx +4 -2
- package/src/index.ts +1 -0
- package/src/tokens/_mixins.scss +39 -4
- package/src/tokens/_variables.scss +30 -0
package/dist/chart.cjs
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use strict";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
18
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
19
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
20
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
21
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
22
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
23
|
+
mod
|
|
24
|
+
));
|
|
3
25
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
26
|
const jsxRuntime = require("react/jsx-runtime");
|
|
5
27
|
const React = require("react");
|
|
@@ -24,18 +46,40 @@ function _interopNamespaceDefault(e) {
|
|
|
24
46
|
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
25
47
|
let _RechartsTooltip = null;
|
|
26
48
|
let _RechartsLegend = null;
|
|
27
|
-
let
|
|
49
|
+
let _chartLoadPromise = null;
|
|
28
50
|
let _chartFailed = false;
|
|
29
51
|
function loadChartDeps() {
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
52
|
+
if (!_chartLoadPromise) {
|
|
53
|
+
_chartLoadPromise = (async () => {
|
|
54
|
+
try {
|
|
55
|
+
const rc = await import("recharts");
|
|
56
|
+
_RechartsTooltip = rc.Tooltip;
|
|
57
|
+
_RechartsLegend = rc.Legend;
|
|
58
|
+
} catch {
|
|
59
|
+
_chartFailed = true;
|
|
60
|
+
if (process.env.NODE_ENV === "development") {
|
|
61
|
+
console.warn(
|
|
62
|
+
"[@usefragments/ui] Chart: recharts is not installed. Install it with: npm install recharts"
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
})();
|
|
38
67
|
}
|
|
68
|
+
return _chartLoadPromise;
|
|
69
|
+
}
|
|
70
|
+
function useChartDeps() {
|
|
71
|
+
const [, rerender] = React__namespace.useReducer((n) => n + 1, 0);
|
|
72
|
+
React__namespace.useEffect(() => {
|
|
73
|
+
if (_RechartsTooltip || _chartFailed) return;
|
|
74
|
+
let active = true;
|
|
75
|
+
void loadChartDeps().then(() => {
|
|
76
|
+
if (active) rerender();
|
|
77
|
+
});
|
|
78
|
+
return () => {
|
|
79
|
+
active = false;
|
|
80
|
+
};
|
|
81
|
+
}, []);
|
|
82
|
+
return _RechartsTooltip !== null;
|
|
39
83
|
}
|
|
40
84
|
const ChartConfigContext = React__namespace.createContext(null);
|
|
41
85
|
function useChartConfig() {
|
|
@@ -148,7 +192,7 @@ function ChartTooltip({
|
|
|
148
192
|
content,
|
|
149
193
|
...props
|
|
150
194
|
}) {
|
|
151
|
-
|
|
195
|
+
const chartReady = useChartDeps();
|
|
152
196
|
const defaultContent = React__namespace.useCallback(
|
|
153
197
|
(tooltipProps) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
154
198
|
ChartTooltipContent,
|
|
@@ -163,12 +207,7 @@ function ChartTooltip({
|
|
|
163
207
|
),
|
|
164
208
|
[indicator, hideLabel, hideIndicator, labelFormatter, valueFormatter]
|
|
165
209
|
);
|
|
166
|
-
if (
|
|
167
|
-
if (_chartFailed && process.env.NODE_ENV === "development") {
|
|
168
|
-
console.warn(
|
|
169
|
-
"[@usefragments/ui] Chart: recharts is not installed. Install it with: npm install recharts"
|
|
170
|
-
);
|
|
171
|
-
}
|
|
210
|
+
if (!chartReady || !_RechartsTooltip) {
|
|
172
211
|
return null;
|
|
173
212
|
}
|
|
174
213
|
const RechartsTooltipComponent = _RechartsTooltip;
|
|
@@ -202,14 +241,9 @@ function ChartLegendContent({ payload }) {
|
|
|
202
241
|
}) });
|
|
203
242
|
}
|
|
204
243
|
function ChartLegend({ content, ...props }) {
|
|
205
|
-
|
|
244
|
+
const chartReady = useChartDeps();
|
|
206
245
|
const defaultContent = (legendProps) => /* @__PURE__ */ jsxRuntime.jsx(ChartLegendContent, { ...legendProps });
|
|
207
|
-
if (
|
|
208
|
-
if (_chartFailed && process.env.NODE_ENV === "development") {
|
|
209
|
-
console.warn(
|
|
210
|
-
"[@usefragments/ui] Chart: recharts is not installed. Install it with: npm install recharts"
|
|
211
|
-
);
|
|
212
|
-
}
|
|
246
|
+
if (!chartReady || !_RechartsLegend) {
|
|
213
247
|
return null;
|
|
214
248
|
}
|
|
215
249
|
const RechartsLegendComponent = _RechartsLegend;
|
|
@@ -226,7 +260,9 @@ const Chart = Object.assign(ChartContainer, {
|
|
|
226
260
|
Tooltip: ChartTooltip,
|
|
227
261
|
TooltipContent: ChartTooltipContent,
|
|
228
262
|
Legend: ChartLegend,
|
|
229
|
-
LegendContent: ChartLegendContent
|
|
263
|
+
LegendContent: ChartLegendContent,
|
|
264
|
+
/** Start resolving recharts before first render (optional). */
|
|
265
|
+
preload: loadChartDeps
|
|
230
266
|
});
|
|
231
267
|
exports.Chart = Chart;
|
|
232
268
|
exports.ChartContainer = ChartContainer;
|
package/dist/chart.js
CHANGED
|
@@ -5,18 +5,40 @@ import { mergeAriaIds } from "./utils/aria.js";
|
|
|
5
5
|
import styles from "./components/Chart/Chart.module.scss.js";
|
|
6
6
|
let _RechartsTooltip = null;
|
|
7
7
|
let _RechartsLegend = null;
|
|
8
|
-
let
|
|
8
|
+
let _chartLoadPromise = null;
|
|
9
9
|
let _chartFailed = false;
|
|
10
10
|
function loadChartDeps() {
|
|
11
|
-
if (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
if (!_chartLoadPromise) {
|
|
12
|
+
_chartLoadPromise = (async () => {
|
|
13
|
+
try {
|
|
14
|
+
const rc = await import("recharts");
|
|
15
|
+
_RechartsTooltip = rc.Tooltip;
|
|
16
|
+
_RechartsLegend = rc.Legend;
|
|
17
|
+
} catch {
|
|
18
|
+
_chartFailed = true;
|
|
19
|
+
if (process.env.NODE_ENV === "development") {
|
|
20
|
+
console.warn(
|
|
21
|
+
"[@usefragments/ui] Chart: recharts is not installed. Install it with: npm install recharts"
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
})();
|
|
19
26
|
}
|
|
27
|
+
return _chartLoadPromise;
|
|
28
|
+
}
|
|
29
|
+
function useChartDeps() {
|
|
30
|
+
const [, rerender] = React.useReducer((n) => n + 1, 0);
|
|
31
|
+
React.useEffect(() => {
|
|
32
|
+
if (_RechartsTooltip || _chartFailed) return;
|
|
33
|
+
let active = true;
|
|
34
|
+
void loadChartDeps().then(() => {
|
|
35
|
+
if (active) rerender();
|
|
36
|
+
});
|
|
37
|
+
return () => {
|
|
38
|
+
active = false;
|
|
39
|
+
};
|
|
40
|
+
}, []);
|
|
41
|
+
return _RechartsTooltip !== null;
|
|
20
42
|
}
|
|
21
43
|
const ChartConfigContext = React.createContext(null);
|
|
22
44
|
function useChartConfig() {
|
|
@@ -129,7 +151,7 @@ function ChartTooltip({
|
|
|
129
151
|
content,
|
|
130
152
|
...props
|
|
131
153
|
}) {
|
|
132
|
-
|
|
154
|
+
const chartReady = useChartDeps();
|
|
133
155
|
const defaultContent = React.useCallback(
|
|
134
156
|
(tooltipProps) => /* @__PURE__ */ jsx(
|
|
135
157
|
ChartTooltipContent,
|
|
@@ -144,12 +166,7 @@ function ChartTooltip({
|
|
|
144
166
|
),
|
|
145
167
|
[indicator, hideLabel, hideIndicator, labelFormatter, valueFormatter]
|
|
146
168
|
);
|
|
147
|
-
if (
|
|
148
|
-
if (_chartFailed && process.env.NODE_ENV === "development") {
|
|
149
|
-
console.warn(
|
|
150
|
-
"[@usefragments/ui] Chart: recharts is not installed. Install it with: npm install recharts"
|
|
151
|
-
);
|
|
152
|
-
}
|
|
169
|
+
if (!chartReady || !_RechartsTooltip) {
|
|
153
170
|
return null;
|
|
154
171
|
}
|
|
155
172
|
const RechartsTooltipComponent = _RechartsTooltip;
|
|
@@ -183,14 +200,9 @@ function ChartLegendContent({ payload }) {
|
|
|
183
200
|
}) });
|
|
184
201
|
}
|
|
185
202
|
function ChartLegend({ content, ...props }) {
|
|
186
|
-
|
|
203
|
+
const chartReady = useChartDeps();
|
|
187
204
|
const defaultContent = (legendProps) => /* @__PURE__ */ jsx(ChartLegendContent, { ...legendProps });
|
|
188
|
-
if (
|
|
189
|
-
if (_chartFailed && process.env.NODE_ENV === "development") {
|
|
190
|
-
console.warn(
|
|
191
|
-
"[@usefragments/ui] Chart: recharts is not installed. Install it with: npm install recharts"
|
|
192
|
-
);
|
|
193
|
-
}
|
|
205
|
+
if (!chartReady || !_RechartsLegend) {
|
|
194
206
|
return null;
|
|
195
207
|
}
|
|
196
208
|
const RechartsLegendComponent = _RechartsLegend;
|
|
@@ -207,7 +219,9 @@ const Chart = Object.assign(ChartContainer, {
|
|
|
207
219
|
Tooltip: ChartTooltip,
|
|
208
220
|
TooltipContent: ChartTooltipContent,
|
|
209
221
|
Legend: ChartLegend,
|
|
210
|
-
LegendContent: ChartLegendContent
|
|
222
|
+
LegendContent: ChartLegendContent,
|
|
223
|
+
/** Start resolving recharts before first render (optional). */
|
|
224
|
+
preload: loadChartDeps
|
|
211
225
|
});
|
|
212
226
|
export {
|
|
213
227
|
Chart,
|
package/dist/codeblock.cjs
CHANGED
|
@@ -160,19 +160,27 @@ function dedent(str) {
|
|
|
160
160
|
}
|
|
161
161
|
return lines.map((line) => line.slice(minIndent)).join("\n");
|
|
162
162
|
}
|
|
163
|
-
|
|
163
|
+
const INDENTATION_SIGNIFICANT_LANGUAGES = /* @__PURE__ */ new Set([
|
|
164
|
+
"yaml",
|
|
165
|
+
"yml",
|
|
166
|
+
"json",
|
|
167
|
+
"python",
|
|
168
|
+
"py"
|
|
169
|
+
]);
|
|
170
|
+
function normalizeIndentation(str, language) {
|
|
164
171
|
var _a, _b;
|
|
165
172
|
const lines = str.split("\n");
|
|
166
173
|
if (lines.length <= 1) return str;
|
|
174
|
+
const firstLineCounts = INDENTATION_SIGNIFICANT_LANGUAGES.has(language);
|
|
167
175
|
let minIndent = Infinity;
|
|
168
176
|
const firstLineIndent = ((_a = lines[0].match(/^(\s*)/)) == null ? void 0 : _a[1].length) ?? 0;
|
|
169
|
-
for (let i = 1; i < lines.length; i += 1) {
|
|
177
|
+
for (let i = firstLineCounts ? 0 : 1; i < lines.length; i += 1) {
|
|
170
178
|
const line = lines[i];
|
|
171
179
|
if (line.trim().length === 0) continue;
|
|
172
180
|
const indent = ((_b = line.match(/^(\s*)/)) == null ? void 0 : _b[1].length) ?? 0;
|
|
173
181
|
minIndent = Math.min(minIndent, indent);
|
|
174
182
|
}
|
|
175
|
-
if (firstLineIndent > 0) {
|
|
183
|
+
if (!firstLineCounts && firstLineIndent > 0) {
|
|
176
184
|
minIndent = Math.min(minIndent, firstLineIndent);
|
|
177
185
|
}
|
|
178
186
|
if (minIndent === Infinity || minIndent === 0) return str;
|
|
@@ -299,10 +307,10 @@ function formatLongJsxTagLine(line) {
|
|
|
299
307
|
function formatLongJsxTags(code) {
|
|
300
308
|
return code.split("\n").flatMap((line) => formatLongJsxTagLine(line).split("\n")).join("\n");
|
|
301
309
|
}
|
|
302
|
-
function normalizeCode(code) {
|
|
310
|
+
function normalizeCode(code, language) {
|
|
303
311
|
const trimmed = code.trim();
|
|
304
312
|
if (trimmed.length === 0) return "";
|
|
305
|
-
const normalized = normalizeIndentation(trimmed);
|
|
313
|
+
const normalized = normalizeIndentation(trimmed, language);
|
|
306
314
|
const dedented = dedent(normalized);
|
|
307
315
|
const withoutTrailingWhitespace = trimTrailingWhitespace(dedented);
|
|
308
316
|
return formatLongJsxTags(withoutTrailingWhitespace);
|
|
@@ -391,7 +399,7 @@ const CodeBlockBase = React__namespace.forwardRef(function CodeBlock2({
|
|
|
391
399
|
const [copied, setCopied] = React.useState(false);
|
|
392
400
|
const [highlight, setHighlight] = React.useState({ html: "", loading: true });
|
|
393
401
|
const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed);
|
|
394
|
-
const trimmedCode = React.useMemo(() => normalizeCode(code), [code]);
|
|
402
|
+
const trimmedCode = React.useMemo(() => normalizeCode(code, language), [code, language]);
|
|
395
403
|
const codeLines = trimmedCode.split("\n");
|
|
396
404
|
const totalLines = codeLines.length;
|
|
397
405
|
const shouldShowCollapse = collapsible && totalLines > collapsedLines;
|
package/dist/codeblock.js
CHANGED
|
@@ -120,19 +120,27 @@ function dedent(str) {
|
|
|
120
120
|
}
|
|
121
121
|
return lines.map((line) => line.slice(minIndent)).join("\n");
|
|
122
122
|
}
|
|
123
|
-
|
|
123
|
+
const INDENTATION_SIGNIFICANT_LANGUAGES = /* @__PURE__ */ new Set([
|
|
124
|
+
"yaml",
|
|
125
|
+
"yml",
|
|
126
|
+
"json",
|
|
127
|
+
"python",
|
|
128
|
+
"py"
|
|
129
|
+
]);
|
|
130
|
+
function normalizeIndentation(str, language) {
|
|
124
131
|
var _a, _b;
|
|
125
132
|
const lines = str.split("\n");
|
|
126
133
|
if (lines.length <= 1) return str;
|
|
134
|
+
const firstLineCounts = INDENTATION_SIGNIFICANT_LANGUAGES.has(language);
|
|
127
135
|
let minIndent = Infinity;
|
|
128
136
|
const firstLineIndent = ((_a = lines[0].match(/^(\s*)/)) == null ? void 0 : _a[1].length) ?? 0;
|
|
129
|
-
for (let i = 1; i < lines.length; i += 1) {
|
|
137
|
+
for (let i = firstLineCounts ? 0 : 1; i < lines.length; i += 1) {
|
|
130
138
|
const line = lines[i];
|
|
131
139
|
if (line.trim().length === 0) continue;
|
|
132
140
|
const indent = ((_b = line.match(/^(\s*)/)) == null ? void 0 : _b[1].length) ?? 0;
|
|
133
141
|
minIndent = Math.min(minIndent, indent);
|
|
134
142
|
}
|
|
135
|
-
if (firstLineIndent > 0) {
|
|
143
|
+
if (!firstLineCounts && firstLineIndent > 0) {
|
|
136
144
|
minIndent = Math.min(minIndent, firstLineIndent);
|
|
137
145
|
}
|
|
138
146
|
if (minIndent === Infinity || minIndent === 0) return str;
|
|
@@ -259,10 +267,10 @@ function formatLongJsxTagLine(line) {
|
|
|
259
267
|
function formatLongJsxTags(code) {
|
|
260
268
|
return code.split("\n").flatMap((line) => formatLongJsxTagLine(line).split("\n")).join("\n");
|
|
261
269
|
}
|
|
262
|
-
function normalizeCode(code) {
|
|
270
|
+
function normalizeCode(code, language) {
|
|
263
271
|
const trimmed = code.trim();
|
|
264
272
|
if (trimmed.length === 0) return "";
|
|
265
|
-
const normalized = normalizeIndentation(trimmed);
|
|
273
|
+
const normalized = normalizeIndentation(trimmed, language);
|
|
266
274
|
const dedented = dedent(normalized);
|
|
267
275
|
const withoutTrailingWhitespace = trimTrailingWhitespace(dedented);
|
|
268
276
|
return formatLongJsxTags(withoutTrailingWhitespace);
|
|
@@ -351,7 +359,7 @@ const CodeBlockBase = React.forwardRef(function CodeBlock2({
|
|
|
351
359
|
const [copied, setCopied] = useState(false);
|
|
352
360
|
const [highlight, setHighlight] = useState({ html: "", loading: true });
|
|
353
361
|
const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);
|
|
354
|
-
const trimmedCode = useMemo(() => normalizeCode(code), [code]);
|
|
362
|
+
const trimmedCode = useMemo(() => normalizeCode(code, language), [code, language]);
|
|
355
363
|
const codeLines = trimmedCode.split("\n");
|
|
356
364
|
const totalLines = codeLines.length;
|
|
357
365
|
const shouldShowCollapse = collapsible && totalLines > collapsedLines;
|
package/dist/colorpicker.cjs
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use strict";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
18
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
19
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
20
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
21
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
22
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
23
|
+
mod
|
|
24
|
+
));
|
|
3
25
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
26
|
const jsxRuntime = require("react/jsx-runtime");
|
|
5
27
|
const React = require("react");
|
|
@@ -26,15 +48,38 @@ function _interopNamespaceDefault(e) {
|
|
|
26
48
|
}
|
|
27
49
|
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
28
50
|
let _HexColorPicker = null;
|
|
29
|
-
let
|
|
51
|
+
let _colorfulLoadPromise = null;
|
|
52
|
+
let _colorfulFailed = false;
|
|
30
53
|
function loadColorfulDeps() {
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
54
|
+
if (!_colorfulLoadPromise) {
|
|
55
|
+
_colorfulLoadPromise = (async () => {
|
|
56
|
+
try {
|
|
57
|
+
const rc = await import("react-colorful");
|
|
58
|
+
_HexColorPicker = rc.HexColorPicker;
|
|
59
|
+
} catch {
|
|
60
|
+
_colorfulFailed = true;
|
|
61
|
+
if (process.env.NODE_ENV === "development") {
|
|
62
|
+
console.warn(
|
|
63
|
+
"[@usefragments/ui] ColorPicker: react-colorful is not installed. Install it with: npm install react-colorful"
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
})();
|
|
37
68
|
}
|
|
69
|
+
return _colorfulLoadPromise;
|
|
70
|
+
}
|
|
71
|
+
function useColorfulDeps() {
|
|
72
|
+
const [, rerender] = React__namespace.useReducer((n) => n + 1, 0);
|
|
73
|
+
React__namespace.useEffect(() => {
|
|
74
|
+
if (_HexColorPicker || _colorfulFailed) return;
|
|
75
|
+
let active = true;
|
|
76
|
+
void loadColorfulDeps().then(() => {
|
|
77
|
+
if (active) rerender();
|
|
78
|
+
});
|
|
79
|
+
return () => {
|
|
80
|
+
active = false;
|
|
81
|
+
};
|
|
82
|
+
}, []);
|
|
38
83
|
}
|
|
39
84
|
const ColorPickerRoot = React__namespace.forwardRef(function ColorPicker2({
|
|
40
85
|
label,
|
|
@@ -53,7 +98,7 @@ const ColorPickerRoot = React__namespace.forwardRef(function ColorPicker2({
|
|
|
53
98
|
}, ref) {
|
|
54
99
|
const size = index.useResolvedControlSize(sizeProp);
|
|
55
100
|
const resolvedHelperText = helperText ?? description;
|
|
56
|
-
|
|
101
|
+
useColorfulDeps();
|
|
57
102
|
const [internalValue, setInternalValue] = React__namespace.useState(defaultValue);
|
|
58
103
|
const [inputValue, setInputValue] = React__namespace.useState(value ?? defaultValue);
|
|
59
104
|
const displayValue = value !== void 0 ? value : internalValue;
|
|
@@ -145,6 +190,8 @@ const ColorPickerRoot = React__namespace.forwardRef(function ColorPicker2({
|
|
|
145
190
|
);
|
|
146
191
|
});
|
|
147
192
|
const ColorPicker = Object.assign(ColorPickerRoot, {
|
|
148
|
-
Root: ColorPickerRoot
|
|
193
|
+
Root: ColorPickerRoot,
|
|
194
|
+
/** Start resolving react-colorful before first render (optional). */
|
|
195
|
+
preload: loadColorfulDeps
|
|
149
196
|
});
|
|
150
197
|
exports.ColorPicker = ColorPicker;
|
package/dist/colorpicker.js
CHANGED
|
@@ -7,15 +7,38 @@ import { useResolvedControlSize } from "./components/ComponentDefaults/index.js"
|
|
|
7
7
|
import { Input } from "./components/Input/index.js";
|
|
8
8
|
import styles from "./components/ColorPicker/ColorPicker.module.scss.js";
|
|
9
9
|
let _HexColorPicker = null;
|
|
10
|
-
let
|
|
10
|
+
let _colorfulLoadPromise = null;
|
|
11
|
+
let _colorfulFailed = false;
|
|
11
12
|
function loadColorfulDeps() {
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
if (!_colorfulLoadPromise) {
|
|
14
|
+
_colorfulLoadPromise = (async () => {
|
|
15
|
+
try {
|
|
16
|
+
const rc = await import("react-colorful");
|
|
17
|
+
_HexColorPicker = rc.HexColorPicker;
|
|
18
|
+
} catch {
|
|
19
|
+
_colorfulFailed = true;
|
|
20
|
+
if (process.env.NODE_ENV === "development") {
|
|
21
|
+
console.warn(
|
|
22
|
+
"[@usefragments/ui] ColorPicker: react-colorful is not installed. Install it with: npm install react-colorful"
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
})();
|
|
18
27
|
}
|
|
28
|
+
return _colorfulLoadPromise;
|
|
29
|
+
}
|
|
30
|
+
function useColorfulDeps() {
|
|
31
|
+
const [, rerender] = React.useReducer((n) => n + 1, 0);
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
if (_HexColorPicker || _colorfulFailed) return;
|
|
34
|
+
let active = true;
|
|
35
|
+
void loadColorfulDeps().then(() => {
|
|
36
|
+
if (active) rerender();
|
|
37
|
+
});
|
|
38
|
+
return () => {
|
|
39
|
+
active = false;
|
|
40
|
+
};
|
|
41
|
+
}, []);
|
|
19
42
|
}
|
|
20
43
|
const ColorPickerRoot = React.forwardRef(function ColorPicker2({
|
|
21
44
|
label,
|
|
@@ -34,7 +57,7 @@ const ColorPickerRoot = React.forwardRef(function ColorPicker2({
|
|
|
34
57
|
}, ref) {
|
|
35
58
|
const size = useResolvedControlSize(sizeProp);
|
|
36
59
|
const resolvedHelperText = helperText ?? description;
|
|
37
|
-
|
|
60
|
+
useColorfulDeps();
|
|
38
61
|
const [internalValue, setInternalValue] = React.useState(defaultValue);
|
|
39
62
|
const [inputValue, setInputValue] = React.useState(value ?? defaultValue);
|
|
40
63
|
const displayValue = value !== void 0 ? value : internalValue;
|
|
@@ -126,7 +149,9 @@ const ColorPickerRoot = React.forwardRef(function ColorPicker2({
|
|
|
126
149
|
);
|
|
127
150
|
});
|
|
128
151
|
const ColorPicker = Object.assign(ColorPickerRoot, {
|
|
129
|
-
Root: ColorPickerRoot
|
|
152
|
+
Root: ColorPickerRoot,
|
|
153
|
+
/** Start resolving react-colorful before first render (optional). */
|
|
154
|
+
preload: loadColorfulDeps
|
|
130
155
|
});
|
|
131
156
|
export {
|
|
132
157
|
ColorPicker
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const badge = "
|
|
4
|
-
const sm = "
|
|
5
|
-
const md = "
|
|
6
|
-
const lg = "
|
|
7
|
-
const success = "
|
|
8
|
-
const warning = "
|
|
9
|
-
const error = "
|
|
10
|
-
const info = "
|
|
11
|
-
const outline = "
|
|
12
|
-
const label = "
|
|
13
|
-
const dim = "
|
|
14
|
-
const active = "
|
|
15
|
-
const dot = "
|
|
16
|
-
const
|
|
17
|
-
const
|
|
3
|
+
const badge = "_badge_1luxf_1";
|
|
4
|
+
const sm = "_sm_1luxf_14";
|
|
5
|
+
const md = "_md_1luxf_19";
|
|
6
|
+
const lg = "_lg_1luxf_24";
|
|
7
|
+
const success = "_success_1luxf_34";
|
|
8
|
+
const warning = "_warning_1luxf_39";
|
|
9
|
+
const error = "_error_1luxf_44";
|
|
10
|
+
const info = "_info_1luxf_49";
|
|
11
|
+
const outline = "_outline_1luxf_54";
|
|
12
|
+
const label = "_label_1luxf_60";
|
|
13
|
+
const dim = "_dim_1luxf_71";
|
|
14
|
+
const active = "_active_1luxf_82";
|
|
15
|
+
const dot = "_dot_1luxf_88";
|
|
16
|
+
const dotPulse = "_dotPulse_1luxf_100";
|
|
17
|
+
const fuiBadgeDotPulse = "_fui-badge-dot-pulse_1luxf_1";
|
|
18
|
+
const icon = "_icon_1luxf_114";
|
|
19
|
+
const remove = "_remove_1luxf_119";
|
|
18
20
|
const styles = {
|
|
19
21
|
badge,
|
|
20
22
|
sm,
|
|
21
23
|
md,
|
|
22
24
|
lg,
|
|
23
|
-
"default": "
|
|
25
|
+
"default": "_default_1luxf_29",
|
|
24
26
|
success,
|
|
25
27
|
warning,
|
|
26
28
|
error,
|
|
@@ -30,6 +32,9 @@ const styles = {
|
|
|
30
32
|
dim,
|
|
31
33
|
active,
|
|
32
34
|
dot,
|
|
35
|
+
dotPulse,
|
|
36
|
+
"fui-badge-dot-pulse": "_fui-badge-dot-pulse_1luxf_1",
|
|
37
|
+
fuiBadgeDotPulse,
|
|
33
38
|
icon,
|
|
34
39
|
remove
|
|
35
40
|
};
|
|
@@ -38,7 +43,9 @@ exports.badge = badge;
|
|
|
38
43
|
exports.default = styles;
|
|
39
44
|
exports.dim = dim;
|
|
40
45
|
exports.dot = dot;
|
|
46
|
+
exports.dotPulse = dotPulse;
|
|
41
47
|
exports.error = error;
|
|
48
|
+
exports.fuiBadgeDotPulse = fuiBadgeDotPulse;
|
|
42
49
|
exports.icon = icon;
|
|
43
50
|
exports.info = info;
|
|
44
51
|
exports.label = label;
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
const badge = "
|
|
2
|
-
const sm = "
|
|
3
|
-
const md = "
|
|
4
|
-
const lg = "
|
|
5
|
-
const success = "
|
|
6
|
-
const warning = "
|
|
7
|
-
const error = "
|
|
8
|
-
const info = "
|
|
9
|
-
const outline = "
|
|
10
|
-
const label = "
|
|
11
|
-
const dim = "
|
|
12
|
-
const active = "
|
|
13
|
-
const dot = "
|
|
14
|
-
const
|
|
15
|
-
const
|
|
1
|
+
const badge = "_badge_1luxf_1";
|
|
2
|
+
const sm = "_sm_1luxf_14";
|
|
3
|
+
const md = "_md_1luxf_19";
|
|
4
|
+
const lg = "_lg_1luxf_24";
|
|
5
|
+
const success = "_success_1luxf_34";
|
|
6
|
+
const warning = "_warning_1luxf_39";
|
|
7
|
+
const error = "_error_1luxf_44";
|
|
8
|
+
const info = "_info_1luxf_49";
|
|
9
|
+
const outline = "_outline_1luxf_54";
|
|
10
|
+
const label = "_label_1luxf_60";
|
|
11
|
+
const dim = "_dim_1luxf_71";
|
|
12
|
+
const active = "_active_1luxf_82";
|
|
13
|
+
const dot = "_dot_1luxf_88";
|
|
14
|
+
const dotPulse = "_dotPulse_1luxf_100";
|
|
15
|
+
const fuiBadgeDotPulse = "_fui-badge-dot-pulse_1luxf_1";
|
|
16
|
+
const icon = "_icon_1luxf_114";
|
|
17
|
+
const remove = "_remove_1luxf_119";
|
|
16
18
|
const styles = {
|
|
17
19
|
badge,
|
|
18
20
|
sm,
|
|
19
21
|
md,
|
|
20
22
|
lg,
|
|
21
|
-
"default": "
|
|
23
|
+
"default": "_default_1luxf_29",
|
|
22
24
|
success,
|
|
23
25
|
warning,
|
|
24
26
|
error,
|
|
@@ -28,6 +30,9 @@ const styles = {
|
|
|
28
30
|
dim,
|
|
29
31
|
active,
|
|
30
32
|
dot,
|
|
33
|
+
dotPulse,
|
|
34
|
+
"fui-badge-dot-pulse": "_fui-badge-dot-pulse_1luxf_1",
|
|
35
|
+
fuiBadgeDotPulse,
|
|
31
36
|
icon,
|
|
32
37
|
remove
|
|
33
38
|
};
|
|
@@ -37,7 +42,9 @@ export {
|
|
|
37
42
|
styles as default,
|
|
38
43
|
dim,
|
|
39
44
|
dot,
|
|
45
|
+
dotPulse,
|
|
40
46
|
error,
|
|
47
|
+
fuiBadgeDotPulse,
|
|
41
48
|
icon,
|
|
42
49
|
info,
|
|
43
50
|
label,
|
|
@@ -27,6 +27,7 @@ const BadgeRoot = React__namespace.forwardRef(function Badge2({
|
|
|
27
27
|
variant = "default",
|
|
28
28
|
size = "md",
|
|
29
29
|
dot = false,
|
|
30
|
+
dotPulse = false,
|
|
30
31
|
dotColor,
|
|
31
32
|
icon,
|
|
32
33
|
active = false,
|
|
@@ -57,7 +58,13 @@ const BadgeRoot = React__namespace.forwardRef(function Badge2({
|
|
|
57
58
|
role: role ?? (announce ? "status" : void 0),
|
|
58
59
|
"aria-label": effectiveAriaLabel,
|
|
59
60
|
children: [
|
|
60
|
-
dot && /* @__PURE__ */ jsxRuntime.jsx(
|
|
61
|
+
dot && /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
+
"span",
|
|
63
|
+
{
|
|
64
|
+
className: [Badge_module.default.dot, dotPulse && Badge_module.default.dotPulse].filter(Boolean).join(" "),
|
|
65
|
+
"aria-hidden": "true"
|
|
66
|
+
}
|
|
67
|
+
),
|
|
61
68
|
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: Badge_module.default.icon, "aria-hidden": "true", children: icon }),
|
|
62
69
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children }),
|
|
63
70
|
onRemove && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -21,6 +21,9 @@ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
|
21
21
|
size?: "sm" | "md" | "lg";
|
|
22
22
|
/** Show a status dot before the label */
|
|
23
23
|
dot?: boolean;
|
|
24
|
+
/** Breathe the status dot, for a state that is still happening rather than
|
|
25
|
+
* one that has settled. Respects `prefers-reduced-motion`. */
|
|
26
|
+
dotPulse?: boolean;
|
|
24
27
|
/** Color for the leading status dot. Applies to `variant="label"` (and the
|
|
25
28
|
* generic `dot` prop). Accepts any CSS color including CSS custom properties. */
|
|
26
29
|
dotColor?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACvE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;;;;;iEAS6D;IAC7D,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IAC7F;uBACmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,yCAAyC;IACzC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;qFACiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;yBACqB;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;wBACoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACvE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;;;;;iEAS6D;IAC7D,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IAC7F;uBACmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,yCAAyC;IACzC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;kEAC8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;qFACiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;yBACqB;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;wBACoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA6ED,eAAO,MAAM,KAAK;;CAEhB,CAAC"}
|