@goplasmatic/datalogic-ui 5.4.0 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/README.md +13 -4
  2. package/dist/components/logic-editor/config/categories.d.ts.map +1 -1
  3. package/dist/components/logic-editor/config/operators/index.d.ts +2 -1
  4. package/dist/components/logic-editor/config/operators/index.d.ts.map +1 -1
  5. package/dist/components/logic-editor/config/operators/tensor.d.ts +3 -0
  6. package/dist/components/logic-editor/config/operators/tensor.d.ts.map +1 -0
  7. package/dist/components/logic-editor/config/operators.types.d.ts +1 -1
  8. package/dist/components/logic-editor/config/operators.types.d.ts.map +1 -1
  9. package/dist/components/logic-editor/constants/colors.d.ts.map +1 -1
  10. package/dist/components/logic-editor/hooks/useWasmEvaluator.d.ts +24 -0
  11. package/dist/components/logic-editor/hooks/useWasmEvaluator.d.ts.map +1 -1
  12. package/dist/components/logic-editor/nodes/UnifiedOperatorNode.d.ts.map +1 -1
  13. package/dist/components/logic-editor/properties-panel/utils.d.ts.map +1 -1
  14. package/dist/components/logic-editor/types/editor.d.ts +12 -0
  15. package/dist/components/logic-editor/types/editor.d.ts.map +1 -1
  16. package/dist/components/logic-editor/types/trace.d.ts +4 -0
  17. package/dist/components/logic-editor/types/trace.d.ts.map +1 -1
  18. package/dist/components/logic-editor/utils/node-updaters.d.ts.map +1 -1
  19. package/dist/components/logic-editor/utils/nodeShape.d.ts +10 -0
  20. package/dist/components/logic-editor/utils/nodeShape.d.ts.map +1 -1
  21. package/dist/datalogic_wasm-Bckz7njC.cjs +1258 -0
  22. package/dist/datalogic_wasm-CPBxmvK8.js +1257 -0
  23. package/dist/index.cjs +2732 -1204
  24. package/dist/index.js +2732 -1204
  25. package/package.json +17 -17
  26. package/dist/datalogic_wasm-6KTmUP2q.cjs +0 -1125
  27. package/dist/datalogic_wasm-DJxb6g5L.js +0 -1124
package/dist/index.js CHANGED
@@ -2,38 +2,57 @@ import React, { createContext, createElement, createRef, forwardRef, memo, useCa
2
2
  import { Background, BaseEdge, Controls, Handle, MarkerType, Position, ReactFlow, ReactFlowProvider, getBezierPath, useEdgesState, useNodesState, useOnSelectionChange, useReactFlow } from "@xyflow/react";
3
3
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
4
  import { createPortal } from "react-dom";
5
- //#region node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs
5
+ //#region node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.mjs
6
6
  /**
7
- * @license lucide-react v1.34.0 - ISC
7
+ * @license lucide-react v1.45.0 - ISC
8
8
  *
9
9
  * This source code is licensed under the ISC license.
10
10
  * See the LICENSE file in the root directory of this source tree.
11
11
  */
12
- var mergeClasses = (...classes) => classes.filter((className, index, array) => {
13
- return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
14
- }).join(" ").trim();
12
+ var toKebabCase = (string) => string?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
15
13
  //#endregion
16
- //#region node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.mjs
14
+ //#region node_modules/lucide-react/dist/esm/shared/src/utils/toLucideIconData.mjs
17
15
  /**
18
- * @license lucide-react v1.34.0 - ISC
16
+ * @license lucide-react v1.45.0 - ISC
19
17
  *
20
18
  * This source code is licensed under the ISC license.
21
19
  * See the LICENSE file in the root directory of this source tree.
22
20
  */
23
- var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
21
+ function toLucideIconData(iconName, iconNode, aliases = []) {
22
+ if (iconNode == null) throw new Error("[lucide]: iconNode is required when icon name is used");
23
+ return {
24
+ name: toKebabCase(iconName),
25
+ size: 24,
26
+ node: iconNode,
27
+ ...aliases.length > 0 ? { aliases } : {}
28
+ };
29
+ }
24
30
  //#endregion
25
31
  //#region node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.mjs
26
32
  /**
27
- * @license lucide-react v1.34.0 - ISC
33
+ * @license lucide-react v1.45.0 - ISC
28
34
  *
29
35
  * This source code is licensed under the ISC license.
30
36
  * See the LICENSE file in the root directory of this source tree.
31
37
  */
32
- var toCamelCase = (string) => string.replace(/^([A-Z])|[\s-_]+(\w)/g, (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase());
38
+ var toCamelCase = (string) => {
39
+ let out = "";
40
+ let upperNext = false;
41
+ for (const ch of string) {
42
+ if (ch === "-" || ch === "_" || ch <= " ") {
43
+ upperNext = out.length > 0;
44
+ continue;
45
+ }
46
+ if (out.length === 0) out += ch.toLowerCase();
47
+ else out += upperNext ? ch.toUpperCase() : ch;
48
+ upperNext = false;
49
+ }
50
+ return out;
51
+ };
33
52
  //#endregion
34
53
  //#region node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.mjs
35
54
  /**
36
- * @license lucide-react v1.34.0 - ISC
55
+ * @license lucide-react v1.45.0 - ISC
37
56
  *
38
57
  * This source code is licensed under the ISC license.
39
58
  * See the LICENSE file in the root directory of this source tree.
@@ -43,9 +62,20 @@ var toPascalCase = (string) => {
43
62
  return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
44
63
  };
45
64
  //#endregion
46
- //#region node_modules/lucide-react/dist/esm/defaultAttributes.mjs
65
+ //#region node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs
66
+ /**
67
+ * @license lucide-react v1.45.0 - ISC
68
+ *
69
+ * This source code is licensed under the ISC license.
70
+ * See the LICENSE file in the root directory of this source tree.
71
+ */
72
+ var mergeClasses = (...classes) => classes.filter((className, index, array) => {
73
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
74
+ }).join(" ").trim();
75
+ //#endregion
76
+ //#region node_modules/lucide-react/dist/esm/shared/src/build/defaultAttributes.mjs
47
77
  /**
48
- * @license lucide-react v1.34.0 - ISC
78
+ * @license lucide-react v1.45.0 - ISC
49
79
  *
50
80
  * This source code is licensed under the ISC license.
51
81
  * See the LICENSE file in the root directory of this source tree.
@@ -57,14 +87,90 @@ var defaultAttributes = {
57
87
  viewBox: "0 0 24 24",
58
88
  fill: "none",
59
89
  stroke: "currentColor",
60
- strokeWidth: 2,
61
- strokeLinecap: "round",
62
- strokeLinejoin: "round"
90
+ "stroke-width": 2,
91
+ "stroke-linecap": "round",
92
+ "stroke-linejoin": "round"
63
93
  };
64
94
  //#endregion
95
+ //#region node_modules/lucide-react/dist/esm/shared/src/build/buildLucideIconNode.mjs
96
+ /**
97
+ * @license lucide-react v1.45.0 - ISC
98
+ *
99
+ * This source code is licensed under the ISC license.
100
+ * See the LICENSE file in the root directory of this source tree.
101
+ */
102
+ function isDefined(value) {
103
+ return value !== null && value !== void 0;
104
+ }
105
+ function buildLucideIconNode(icon, params = {}) {
106
+ const attributeNames = params.attributeNames ?? {};
107
+ const getAttributeName = (attributeName) => attributeNames[attributeName] ?? attributeName;
108
+ const viewBoxWidth = icon.size ?? icon.width ?? defaultAttributes["width"];
109
+ const viewBoxHeight = icon.size ?? icon.height ?? defaultAttributes["height"];
110
+ const aliasClassNames = icon.aliases?.filter((alias) => typeof alias === "string" && alias.trim() !== "").map((alias) => `lucide-${alias}`) ?? [];
111
+ const iconClassNames = [...icon.name ? [`lucide-${icon.name}`] : [], ...aliasClassNames];
112
+ const classNamesFromClassName = params.className?.split(" ").filter(Boolean) ?? [];
113
+ const className = params.includeDefaultClasses === false ? mergeClasses(...classNamesFromClassName) : mergeClasses("lucide", ...iconClassNames, ...classNamesFromClassName);
114
+ const calculatedStrokeWidth = params.absoluteStrokeWidth ? Number(params.strokeWidth ?? defaultAttributes["stroke-width"]) * Number(icon.size ?? icon.width ?? defaultAttributes["width"]) / Number(params.size ?? params.width ?? defaultAttributes["width"]) : params.strokeWidth ?? defaultAttributes["stroke-width"];
115
+ return [
116
+ "svg",
117
+ {
118
+ ...Object.entries(defaultAttributes).reduce((attrs, [attrName, value]) => {
119
+ attrs[getAttributeName(attrName)] = value;
120
+ return attrs;
121
+ }, {}),
122
+ ..."color" in params && params.color && { [getAttributeName("stroke")]: params.color },
123
+ ..."size" in params && isDefined(params.size) && {
124
+ [getAttributeName("width")]: params.size,
125
+ [getAttributeName("height")]: params.size
126
+ },
127
+ ..."width" in params && isDefined(params.width) && { [getAttributeName("width")]: params.width },
128
+ ..."height" in params && isDefined(params.height) && { [getAttributeName("height")]: params.height },
129
+ [getAttributeName("stroke-width")]: calculatedStrokeWidth,
130
+ ...className && { [getAttributeName("class")]: className },
131
+ [getAttributeName("viewBox")]: `0 0 ${viewBoxWidth} ${viewBoxHeight}`,
132
+ ...params.hasA11yProp === false ? { [getAttributeName("aria-hidden")]: "true" } : {},
133
+ ..."attributes" in params && params.attributes
134
+ },
135
+ icon.node.map((child) => {
136
+ const [name, attrs, children] = child;
137
+ const nextAttrs = params.nonScalingStroke ? {
138
+ [getAttributeName("vector-effect")]: "non-scaling-stroke",
139
+ ...attrs
140
+ } : attrs;
141
+ return children ? [
142
+ name,
143
+ nextAttrs,
144
+ children
145
+ ] : [name, nextAttrs];
146
+ })
147
+ ];
148
+ }
149
+ //#endregion
150
+ //#region node_modules/lucide-react/dist/esm/shared/src/build/buildLucideIconForReact.mjs
151
+ /**
152
+ * @license lucide-react v1.45.0 - ISC
153
+ *
154
+ * This source code is licensed under the ISC license.
155
+ * See the LICENSE file in the root directory of this source tree.
156
+ */
157
+ function buildLucideIconForReact(icon, params = {}) {
158
+ return buildLucideIconNode(icon, {
159
+ ...params,
160
+ attributeNames: {
161
+ ...params.attributeNames,
162
+ class: "className",
163
+ "stroke-width": "strokeWidth",
164
+ "stroke-linecap": "strokeLinecap",
165
+ "stroke-linejoin": "strokeLinejoin",
166
+ "vector-effect": "vectorEffect"
167
+ }
168
+ });
169
+ }
170
+ //#endregion
65
171
  //#region node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.mjs
66
172
  /**
67
- * @license lucide-react v1.34.0 - ISC
173
+ * @license lucide-react v1.45.0 - ISC
68
174
  *
69
175
  * This source code is licensed under the ISC license.
70
176
  * See the LICENSE file in the root directory of this source tree.
@@ -76,7 +182,7 @@ var hasA11yProp = (props) => {
76
182
  //#endregion
77
183
  //#region node_modules/lucide-react/dist/esm/context.mjs
78
184
  /**
79
- * @license lucide-react v1.34.0 - ISC
185
+ * @license lucide-react v1.45.0 - ISC
80
186
  *
81
187
  * This source code is licensed under the ISC license.
82
188
  * See the LICENSE file in the root directory of this source tree.
@@ -86,1355 +192,1829 @@ var useLucideContext = () => useContext(LucideContext);
86
192
  //#endregion
87
193
  //#region node_modules/lucide-react/dist/esm/Icon.mjs
88
194
  /**
89
- * @license lucide-react v1.34.0 - ISC
195
+ * @license lucide-react v1.45.0 - ISC
90
196
  *
91
197
  * This source code is licensed under the ISC license.
92
198
  * See the LICENSE file in the root directory of this source tree.
93
199
  */
94
- var Icon$1 = forwardRef(({ color, size, strokeWidth, absoluteStrokeWidth, className = "", children, iconNode, ...rest }, ref) => {
95
- const { size: contextSize = 24, strokeWidth: contextStrokeWidth = 2, absoluteStrokeWidth: contextAbsoluteStrokeWidth = false, color: contextColor = "currentColor", className: contextClass = "" } = useLucideContext() ?? {};
96
- const calculatedStrokeWidth = absoluteStrokeWidth ?? contextAbsoluteStrokeWidth ? Number(strokeWidth ?? contextStrokeWidth) * 24 / Number(size ?? contextSize) : strokeWidth ?? contextStrokeWidth;
97
- return createElement("svg", {
200
+ var Icon$1 = forwardRef(({ color, size, width, height, strokeWidth, absoluteStrokeWidth, nonScalingStroke, className = "", children, iconNode = [], icon = {
201
+ node: iconNode,
202
+ aliases: [],
203
+ size: 24
204
+ }, ...rest }, ref) => {
205
+ const { size: contextSize = 24, strokeWidth: contextStrokeWidth = 2, absoluteStrokeWidth: contextAbsoluteStrokeWidth = false, nonScalingStroke: contextNonScalingStroke = false, color: contextColor = "currentColor", className: contextClass = "" } = useLucideContext() ?? {};
206
+ const hasAccessibleProp = Boolean(children) || hasA11yProp(rest);
207
+ const [name, svgAttributes, builtIconNode = []] = buildLucideIconForReact(icon, {
208
+ color: color ?? contextColor,
209
+ width: width ?? size ?? contextSize,
210
+ height: height ?? size ?? contextSize,
211
+ strokeWidth: strokeWidth ?? contextStrokeWidth,
212
+ absoluteStrokeWidth: absoluteStrokeWidth ?? contextAbsoluteStrokeWidth,
213
+ nonScalingStroke: nonScalingStroke ?? contextNonScalingStroke,
214
+ className: mergeClasses(contextClass, className),
215
+ hasA11yProp: hasAccessibleProp,
216
+ attributes: rest
217
+ });
218
+ return createElement(name, {
98
219
  ref,
99
- ...defaultAttributes,
100
- width: size ?? contextSize ?? defaultAttributes.width,
101
- height: size ?? contextSize ?? defaultAttributes.height,
102
- stroke: color ?? contextColor,
103
- strokeWidth: calculatedStrokeWidth,
104
- className: mergeClasses("lucide", contextClass, className),
105
- ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
106
- ...rest
107
- }, [...iconNode.map(([tag, attrs]) => createElement(tag, attrs)), ...Array.isArray(children) ? children : [children]]);
220
+ ...svgAttributes
221
+ }, [...builtIconNode.map(([tag, attrs]) => createElement(tag, attrs)), ...Array.isArray(children) ? children : [children]]);
108
222
  });
109
223
  //#endregion
110
224
  //#region node_modules/lucide-react/dist/esm/createLucideIcon.mjs
111
225
  /**
112
- * @license lucide-react v1.34.0 - ISC
226
+ * @license lucide-react v1.45.0 - ISC
113
227
  *
114
228
  * This source code is licensed under the ISC license.
115
229
  * See the LICENSE file in the root directory of this source tree.
116
230
  */
117
- var createLucideIcon = (iconName, iconNode) => {
231
+ function createLucideIcon(iconDataOrName, iconNode = [], aliases = []) {
232
+ const iconData = typeof iconDataOrName === "string" ? toLucideIconData(iconDataOrName, iconNode, aliases) : iconDataOrName;
118
233
  const Component = forwardRef(({ className, ...props }, ref) => createElement(Icon$1, {
119
234
  ref,
120
- iconNode,
121
- className: mergeClasses(`lucide-${toKebabCase(toPascalCase(iconName))}`, `lucide-${iconName}`, className),
235
+ icon: iconData,
236
+ className,
122
237
  ...props
123
238
  }));
124
- Component.displayName = toPascalCase(iconName);
239
+ if (iconData.name) Component.displayName = toPascalCase(iconData.name);
125
240
  return Component;
126
- };
241
+ }
242
+ //#endregion
243
+ //#region node_modules/lucide-react/dist/esm/icons/arrow-up.mjs
127
244
  /**
128
- * @license lucide-react v1.34.0 - ISC
245
+ * @license lucide-react v1.45.0 - ISC
129
246
  *
130
247
  * This source code is licensed under the ISC license.
131
248
  * See the LICENSE file in the root directory of this source tree.
132
249
  */
133
- var ArrowUp = createLucideIcon("arrow-up", [["path", {
134
- d: "m5 12 7-7 7 7",
135
- key: "hav0vg"
136
- }], ["path", {
137
- d: "M12 19V5",
138
- key: "x0mq9r"
139
- }]]);
250
+ var __iconData$56 = {
251
+ name: "arrow-up",
252
+ size: 24,
253
+ node: [["path", {
254
+ d: "m5 12 7-7 7 7",
255
+ key: "hav0vg"
256
+ }], ["path", {
257
+ d: "M12 19V5",
258
+ key: "x0mq9r"
259
+ }]]
260
+ };
261
+ __iconData$56.node;
262
+ var ArrowUp = createLucideIcon(__iconData$56);
263
+ //#endregion
264
+ //#region node_modules/lucide-react/dist/esm/icons/ban.mjs
140
265
  /**
141
- * @license lucide-react v1.34.0 - ISC
266
+ * @license lucide-react v1.45.0 - ISC
142
267
  *
143
268
  * This source code is licensed under the ISC license.
144
269
  * See the LICENSE file in the root directory of this source tree.
145
270
  */
146
- var Ban = createLucideIcon("ban", [["circle", {
147
- cx: "12",
148
- cy: "12",
149
- r: "10",
150
- key: "1mglay"
151
- }], ["path", {
152
- d: "M4.929 4.929 19.07 19.071",
153
- key: "196cmz"
154
- }]]);
155
- /**
156
- * @license lucide-react v1.34.0 - ISC
271
+ var __iconData$55 = {
272
+ name: "ban",
273
+ size: 24,
274
+ node: [["circle", {
275
+ cx: "12",
276
+ cy: "12",
277
+ r: "10",
278
+ key: "1mglay"
279
+ }], ["path", {
280
+ d: "M4.929 4.929 19.07 19.071",
281
+ key: "196cmz"
282
+ }]]
283
+ };
284
+ __iconData$55.node;
285
+ var Ban = createLucideIcon(__iconData$55);
286
+ //#endregion
287
+ //#region node_modules/lucide-react/dist/esm/icons/binary.mjs
288
+ /**
289
+ * @license lucide-react v1.45.0 - ISC
157
290
  *
158
291
  * This source code is licensed under the ISC license.
159
292
  * See the LICENSE file in the root directory of this source tree.
160
293
  */
161
- var Binary = createLucideIcon("binary", [
162
- ["rect", {
163
- x: "14",
164
- y: "14",
165
- width: "4",
166
- height: "6",
167
- rx: "2",
168
- key: "p02svl"
169
- }],
170
- ["rect", {
171
- x: "6",
172
- y: "4",
173
- width: "4",
174
- height: "6",
175
- rx: "2",
176
- key: "xm4xkj"
177
- }],
178
- ["path", {
179
- d: "M6 20h4",
180
- key: "1i6q5t"
181
- }],
182
- ["path", {
183
- d: "M14 10h4",
184
- key: "ru81e7"
185
- }],
186
- ["path", {
187
- d: "M6 14h2v6",
188
- key: "16z9wg"
189
- }],
190
- ["path", {
191
- d: "M14 4h2v6",
192
- key: "1idq9u"
193
- }]
194
- ]);
294
+ var __iconData$54 = {
295
+ name: "binary",
296
+ size: 24,
297
+ node: [
298
+ ["rect", {
299
+ x: "14",
300
+ y: "14",
301
+ width: "4",
302
+ height: "6",
303
+ rx: "2",
304
+ key: "p02svl"
305
+ }],
306
+ ["rect", {
307
+ x: "6",
308
+ y: "4",
309
+ width: "4",
310
+ height: "6",
311
+ rx: "2",
312
+ key: "xm4xkj"
313
+ }],
314
+ ["path", {
315
+ d: "M6 20h4",
316
+ key: "1i6q5t"
317
+ }],
318
+ ["path", {
319
+ d: "M14 10h4",
320
+ key: "ru81e7"
321
+ }],
322
+ ["path", {
323
+ d: "M6 14h2v6",
324
+ key: "16z9wg"
325
+ }],
326
+ ["path", {
327
+ d: "M14 4h2v6",
328
+ key: "1idq9u"
329
+ }]
330
+ ]
331
+ };
332
+ __iconData$54.node;
333
+ var Binary = createLucideIcon(__iconData$54);
334
+ //#endregion
335
+ //#region node_modules/lucide-react/dist/esm/icons/box.mjs
195
336
  /**
196
- * @license lucide-react v1.34.0 - ISC
337
+ * @license lucide-react v1.45.0 - ISC
197
338
  *
198
339
  * This source code is licensed under the ISC license.
199
340
  * See the LICENSE file in the root directory of this source tree.
200
341
  */
201
- var Box = createLucideIcon("box", [
202
- ["path", {
203
- d: "M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",
204
- key: "hh9hay"
205
- }],
206
- ["path", {
207
- d: "m3.3 7 8.7 5 8.7-5",
208
- key: "g66t2b"
209
- }],
210
- ["path", {
211
- d: "M12 22V12",
212
- key: "d0xqtd"
213
- }]
214
- ]);
342
+ var __iconData$53 = {
343
+ name: "box",
344
+ size: 24,
345
+ node: [
346
+ ["path", {
347
+ d: "M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",
348
+ key: "hh9hay"
349
+ }],
350
+ ["path", {
351
+ d: "m3.3 7 8.7 5 8.7-5",
352
+ key: "g66t2b"
353
+ }],
354
+ ["path", {
355
+ d: "M12 22V12",
356
+ key: "d0xqtd"
357
+ }]
358
+ ]
359
+ };
360
+ __iconData$53.node;
361
+ var Box = createLucideIcon(__iconData$53);
362
+ //#endregion
363
+ //#region node_modules/lucide-react/dist/esm/icons/boxes.mjs
215
364
  /**
216
- * @license lucide-react v1.34.0 - ISC
365
+ * @license lucide-react v1.45.0 - ISC
217
366
  *
218
367
  * This source code is licensed under the ISC license.
219
368
  * See the LICENSE file in the root directory of this source tree.
220
369
  */
221
- var Boxes = createLucideIcon("boxes", [
222
- ["path", {
223
- d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",
224
- key: "lc1i9w"
225
- }],
226
- ["path", {
227
- d: "m7 16.5-4.74-2.85",
228
- key: "1o9zyk"
229
- }],
230
- ["path", {
231
- d: "m7 16.5 5-3",
232
- key: "va8pkn"
233
- }],
234
- ["path", {
235
- d: "M7 16.5v5.17",
236
- key: "jnp8gn"
237
- }],
238
- ["path", {
239
- d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",
240
- key: "8zsnat"
241
- }],
242
- ["path", {
243
- d: "m17 16.5-5-3",
244
- key: "8arw3v"
245
- }],
246
- ["path", {
247
- d: "m17 16.5 4.74-2.85",
248
- key: "8rfmw"
249
- }],
250
- ["path", {
251
- d: "M17 16.5v5.17",
252
- key: "k6z78m"
253
- }],
254
- ["path", {
255
- d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",
256
- key: "1xygjf"
257
- }],
258
- ["path", {
259
- d: "M12 8 7.26 5.15",
260
- key: "1vbdud"
261
- }],
262
- ["path", {
263
- d: "m12 8 4.74-2.85",
264
- key: "3rx089"
265
- }],
266
- ["path", {
267
- d: "M12 13.5V8",
268
- key: "1io7kd"
269
- }]
270
- ]);
370
+ var __iconData$52 = {
371
+ name: "boxes",
372
+ size: 24,
373
+ node: [
374
+ ["path", {
375
+ d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",
376
+ key: "lc1i9w"
377
+ }],
378
+ ["path", {
379
+ d: "m7 16.5-4.74-2.85",
380
+ key: "1o9zyk"
381
+ }],
382
+ ["path", {
383
+ d: "m7 16.5 5-3",
384
+ key: "va8pkn"
385
+ }],
386
+ ["path", {
387
+ d: "M7 16.5v5.17",
388
+ key: "jnp8gn"
389
+ }],
390
+ ["path", {
391
+ d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",
392
+ key: "8zsnat"
393
+ }],
394
+ ["path", {
395
+ d: "m17 16.5-5-3",
396
+ key: "8arw3v"
397
+ }],
398
+ ["path", {
399
+ d: "m17 16.5 4.74-2.85",
400
+ key: "8rfmw"
401
+ }],
402
+ ["path", {
403
+ d: "M17 16.5v5.17",
404
+ key: "k6z78m"
405
+ }],
406
+ ["path", {
407
+ d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",
408
+ key: "1xygjf"
409
+ }],
410
+ ["path", {
411
+ d: "M12 8 7.26 5.15",
412
+ key: "1vbdud"
413
+ }],
414
+ ["path", {
415
+ d: "m12 8 4.74-2.85",
416
+ key: "3rx089"
417
+ }],
418
+ ["path", {
419
+ d: "M12 13.5V8",
420
+ key: "1io7kd"
421
+ }]
422
+ ]
423
+ };
424
+ __iconData$52.node;
425
+ var Boxes = createLucideIcon(__iconData$52);
426
+ //#endregion
427
+ //#region node_modules/lucide-react/dist/esm/icons/braces.mjs
271
428
  /**
272
- * @license lucide-react v1.34.0 - ISC
429
+ * @license lucide-react v1.45.0 - ISC
273
430
  *
274
431
  * This source code is licensed under the ISC license.
275
432
  * See the LICENSE file in the root directory of this source tree.
276
433
  */
277
- var Braces = createLucideIcon("braces", [["path", {
278
- d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",
279
- key: "ezmyqa"
280
- }], ["path", {
281
- d: "M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",
282
- key: "e1hn23"
283
- }]]);
434
+ var __iconData$51 = {
435
+ name: "braces",
436
+ size: 24,
437
+ node: [["path", {
438
+ d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",
439
+ key: "ezmyqa"
440
+ }], ["path", {
441
+ d: "M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",
442
+ key: "e1hn23"
443
+ }]],
444
+ aliases: ["curly-braces"]
445
+ };
446
+ __iconData$51.node;
447
+ var Braces = createLucideIcon(__iconData$51);
448
+ //#endregion
449
+ //#region node_modules/lucide-react/dist/esm/icons/bug.mjs
284
450
  /**
285
- * @license lucide-react v1.34.0 - ISC
451
+ * @license lucide-react v1.45.0 - ISC
286
452
  *
287
453
  * This source code is licensed under the ISC license.
288
454
  * See the LICENSE file in the root directory of this source tree.
289
455
  */
290
- var Bug = createLucideIcon("bug", [
291
- ["path", {
292
- d: "M12 20v-9",
293
- key: "1qisl0"
294
- }],
295
- ["path", {
296
- d: "M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",
297
- key: "uouzyp"
298
- }],
299
- ["path", {
300
- d: "M14.12 3.88 16 2",
301
- key: "qol33r"
302
- }],
303
- ["path", {
304
- d: "M21 21a4 4 0 0 0-3.81-4",
305
- key: "1b0z45"
306
- }],
307
- ["path", {
308
- d: "M21 5a4 4 0 0 1-3.55 3.97",
309
- key: "5cxbf6"
310
- }],
311
- ["path", {
312
- d: "M22 13h-4",
313
- key: "1jl80f"
314
- }],
315
- ["path", {
316
- d: "M3 21a4 4 0 0 1 3.81-4",
317
- key: "1fjd4g"
318
- }],
319
- ["path", {
320
- d: "M3 5a4 4 0 0 0 3.55 3.97",
321
- key: "1d7oge"
322
- }],
323
- ["path", {
324
- d: "M6 13H2",
325
- key: "82j7cp"
326
- }],
327
- ["path", {
328
- d: "m8 2 1.88 1.88",
329
- key: "fmnt4t"
330
- }],
331
- ["path", {
332
- d: "M9 7.13V6a3 3 0 1 1 6 0v1.13",
333
- key: "1vgav8"
334
- }]
335
- ]);
456
+ var __iconData$50 = {
457
+ name: "bug",
458
+ size: 24,
459
+ node: [
460
+ ["path", {
461
+ d: "M12 20v-9",
462
+ key: "1qisl0"
463
+ }],
464
+ ["path", {
465
+ d: "M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",
466
+ key: "uouzyp"
467
+ }],
468
+ ["path", {
469
+ d: "M14.12 3.88 16 2",
470
+ key: "qol33r"
471
+ }],
472
+ ["path", {
473
+ d: "M21 21a4 4 0 0 0-3.81-4",
474
+ key: "1b0z45"
475
+ }],
476
+ ["path", {
477
+ d: "M21 5a4 4 0 0 1-3.55 3.97",
478
+ key: "5cxbf6"
479
+ }],
480
+ ["path", {
481
+ d: "M22 13h-4",
482
+ key: "1jl80f"
483
+ }],
484
+ ["path", {
485
+ d: "M3 21a4 4 0 0 1 3.81-4",
486
+ key: "1fjd4g"
487
+ }],
488
+ ["path", {
489
+ d: "M3 5a4 4 0 0 0 3.55 3.97",
490
+ key: "1d7oge"
491
+ }],
492
+ ["path", {
493
+ d: "M6 13H2",
494
+ key: "82j7cp"
495
+ }],
496
+ ["path", {
497
+ d: "m8 2 1.88 1.88",
498
+ key: "fmnt4t"
499
+ }],
500
+ ["path", {
501
+ d: "M9 7.13V6a3 3 0 1 1 6 0v1.13",
502
+ key: "1vgav8"
503
+ }]
504
+ ]
505
+ };
506
+ __iconData$50.node;
507
+ var Bug = createLucideIcon(__iconData$50);
508
+ //#endregion
509
+ //#region node_modules/lucide-react/dist/esm/icons/calculator.mjs
336
510
  /**
337
- * @license lucide-react v1.34.0 - ISC
511
+ * @license lucide-react v1.45.0 - ISC
338
512
  *
339
513
  * This source code is licensed under the ISC license.
340
514
  * See the LICENSE file in the root directory of this source tree.
341
515
  */
342
- var Calculator = createLucideIcon("calculator", [
343
- ["rect", {
344
- width: "16",
345
- height: "20",
346
- x: "4",
347
- y: "2",
348
- rx: "2",
349
- key: "1nb95v"
350
- }],
351
- ["line", {
352
- x1: "8",
353
- x2: "16",
354
- y1: "6",
355
- y2: "6",
356
- key: "x4nwl0"
357
- }],
358
- ["line", {
359
- x1: "16",
360
- x2: "16",
361
- y1: "14",
362
- y2: "18",
363
- key: "wjye3r"
364
- }],
365
- ["path", {
366
- d: "M16 10h.01",
367
- key: "1m94wz"
368
- }],
369
- ["path", {
370
- d: "M12 10h.01",
371
- key: "1nrarc"
372
- }],
373
- ["path", {
374
- d: "M8 10h.01",
375
- key: "19clt8"
376
- }],
377
- ["path", {
378
- d: "M12 14h.01",
379
- key: "1etili"
380
- }],
381
- ["path", {
382
- d: "M8 14h.01",
383
- key: "6423bh"
384
- }],
385
- ["path", {
386
- d: "M12 18h.01",
387
- key: "mhygvu"
388
- }],
389
- ["path", {
390
- d: "M8 18h.01",
391
- key: "lrp35t"
392
- }]
393
- ]);
516
+ var __iconData$49 = {
517
+ name: "calculator",
518
+ size: 24,
519
+ node: [
520
+ ["rect", {
521
+ width: "16",
522
+ height: "20",
523
+ x: "4",
524
+ y: "2",
525
+ rx: "2",
526
+ key: "1nb95v"
527
+ }],
528
+ ["line", {
529
+ x1: "8",
530
+ x2: "16",
531
+ y1: "6",
532
+ y2: "6",
533
+ key: "x4nwl0"
534
+ }],
535
+ ["line", {
536
+ x1: "16",
537
+ x2: "16",
538
+ y1: "14",
539
+ y2: "18",
540
+ key: "wjye3r"
541
+ }],
542
+ ["path", {
543
+ d: "M16 10h.01",
544
+ key: "1m94wz"
545
+ }],
546
+ ["path", {
547
+ d: "M12 10h.01",
548
+ key: "1nrarc"
549
+ }],
550
+ ["path", {
551
+ d: "M8 10h.01",
552
+ key: "19clt8"
553
+ }],
554
+ ["path", {
555
+ d: "M12 14h.01",
556
+ key: "1etili"
557
+ }],
558
+ ["path", {
559
+ d: "M8 14h.01",
560
+ key: "6423bh"
561
+ }],
562
+ ["path", {
563
+ d: "M12 18h.01",
564
+ key: "mhygvu"
565
+ }],
566
+ ["path", {
567
+ d: "M8 18h.01",
568
+ key: "lrp35t"
569
+ }]
570
+ ]
571
+ };
572
+ __iconData$49.node;
573
+ var Calculator = createLucideIcon(__iconData$49);
574
+ //#endregion
575
+ //#region node_modules/lucide-react/dist/esm/icons/calendar.mjs
394
576
  /**
395
- * @license lucide-react v1.34.0 - ISC
577
+ * @license lucide-react v1.45.0 - ISC
396
578
  *
397
579
  * This source code is licensed under the ISC license.
398
580
  * See the LICENSE file in the root directory of this source tree.
399
581
  */
400
- var Calendar = createLucideIcon("calendar", [
401
- ["path", {
402
- d: "M8 2v3",
403
- key: "1ioesn"
404
- }],
405
- ["path", {
406
- d: "M16 2v3",
407
- key: "otl347"
408
- }],
409
- ["rect", {
410
- x: "3",
411
- y: "3",
412
- width: "18",
413
- height: "18",
414
- rx: "2",
415
- key: "h1oib"
416
- }],
417
- ["path", {
418
- d: "M3 9h18",
419
- key: "1pudct"
420
- }]
421
- ]);
582
+ var __iconData$48 = {
583
+ name: "calendar",
584
+ size: 24,
585
+ node: [
586
+ ["path", {
587
+ d: "M8 2v3",
588
+ key: "1ioesn"
589
+ }],
590
+ ["path", {
591
+ d: "M16 2v3",
592
+ key: "otl347"
593
+ }],
594
+ ["rect", {
595
+ x: "3",
596
+ y: "3",
597
+ width: "18",
598
+ height: "18",
599
+ rx: "2",
600
+ key: "h1oib"
601
+ }],
602
+ ["path", {
603
+ d: "M3 9h18",
604
+ key: "1pudct"
605
+ }]
606
+ ]
607
+ };
608
+ __iconData$48.node;
609
+ var Calendar = createLucideIcon(__iconData$48);
610
+ //#endregion
611
+ //#region node_modules/lucide-react/dist/esm/icons/check.mjs
422
612
  /**
423
- * @license lucide-react v1.34.0 - ISC
613
+ * @license lucide-react v1.45.0 - ISC
424
614
  *
425
615
  * This source code is licensed under the ISC license.
426
616
  * See the LICENSE file in the root directory of this source tree.
427
617
  */
428
- var Check = createLucideIcon("check", [["path", {
429
- d: "M20 6 9 17l-5-5",
430
- key: "1gmf2c"
431
- }]]);
618
+ var __iconData$47 = {
619
+ name: "check",
620
+ size: 24,
621
+ node: [["path", {
622
+ d: "M20 6 9 17l-5-5",
623
+ key: "1gmf2c"
624
+ }]]
625
+ };
626
+ __iconData$47.node;
627
+ var Check = createLucideIcon(__iconData$47);
628
+ //#endregion
629
+ //#region node_modules/lucide-react/dist/esm/icons/chevron-down.mjs
432
630
  /**
433
- * @license lucide-react v1.34.0 - ISC
631
+ * @license lucide-react v1.45.0 - ISC
434
632
  *
435
633
  * This source code is licensed under the ISC license.
436
634
  * See the LICENSE file in the root directory of this source tree.
437
635
  */
438
- var ChevronDown = createLucideIcon("chevron-down", [["path", {
439
- d: "m6 9 6 6 6-6",
440
- key: "qrunsl"
441
- }]]);
636
+ var __iconData$46 = {
637
+ name: "chevron-down",
638
+ size: 24,
639
+ node: [["path", {
640
+ d: "m6 9 6 6 6-6",
641
+ key: "qrunsl"
642
+ }]]
643
+ };
644
+ __iconData$46.node;
645
+ var ChevronDown = createLucideIcon(__iconData$46);
646
+ //#endregion
647
+ //#region node_modules/lucide-react/dist/esm/icons/chevron-left.mjs
442
648
  /**
443
- * @license lucide-react v1.34.0 - ISC
649
+ * @license lucide-react v1.45.0 - ISC
444
650
  *
445
651
  * This source code is licensed under the ISC license.
446
652
  * See the LICENSE file in the root directory of this source tree.
447
653
  */
448
- var ChevronLeft = createLucideIcon("chevron-left", [["path", {
449
- d: "m15 18-6-6 6-6",
450
- key: "1wnfg3"
451
- }]]);
654
+ var __iconData$45 = {
655
+ name: "chevron-left",
656
+ size: 24,
657
+ node: [["path", {
658
+ d: "m15 18-6-6 6-6",
659
+ key: "1wnfg3"
660
+ }]]
661
+ };
662
+ __iconData$45.node;
663
+ var ChevronLeft = createLucideIcon(__iconData$45);
664
+ //#endregion
665
+ //#region node_modules/lucide-react/dist/esm/icons/chevron-right.mjs
452
666
  /**
453
- * @license lucide-react v1.34.0 - ISC
667
+ * @license lucide-react v1.45.0 - ISC
454
668
  *
455
669
  * This source code is licensed under the ISC license.
456
670
  * See the LICENSE file in the root directory of this source tree.
457
671
  */
458
- var ChevronRight = createLucideIcon("chevron-right", [["path", {
459
- d: "m9 18 6-6-6-6",
460
- key: "mthhwq"
461
- }]]);
672
+ var __iconData$44 = {
673
+ name: "chevron-right",
674
+ size: 24,
675
+ node: [["path", {
676
+ d: "m9 18 6-6-6-6",
677
+ key: "mthhwq"
678
+ }]]
679
+ };
680
+ __iconData$44.node;
681
+ var ChevronRight = createLucideIcon(__iconData$44);
682
+ //#endregion
683
+ //#region node_modules/lucide-react/dist/esm/icons/circle-alert.mjs
462
684
  /**
463
- * @license lucide-react v1.34.0 - ISC
685
+ * @license lucide-react v1.45.0 - ISC
464
686
  *
465
687
  * This source code is licensed under the ISC license.
466
688
  * See the LICENSE file in the root directory of this source tree.
467
689
  */
468
- var CircleAlert = createLucideIcon("circle-alert", [
469
- ["circle", {
470
- cx: "12",
471
- cy: "12",
472
- r: "10",
473
- key: "1mglay"
474
- }],
475
- ["line", {
476
- x1: "12",
477
- x2: "12",
478
- y1: "8",
479
- y2: "12",
480
- key: "1pkeuh"
481
- }],
482
- ["line", {
483
- x1: "12",
484
- x2: "12.01",
485
- y1: "16",
486
- y2: "16",
487
- key: "4dfq90"
488
- }]
489
- ]);
690
+ var __iconData$43 = {
691
+ name: "circle-alert",
692
+ size: 24,
693
+ node: [
694
+ ["circle", {
695
+ cx: "12",
696
+ cy: "12",
697
+ r: "10",
698
+ key: "1mglay"
699
+ }],
700
+ ["line", {
701
+ x1: "12",
702
+ x2: "12",
703
+ y1: "8",
704
+ y2: "12",
705
+ key: "1pkeuh"
706
+ }],
707
+ ["line", {
708
+ x1: "12",
709
+ x2: "12.01",
710
+ y1: "16",
711
+ y2: "16",
712
+ key: "4dfq90"
713
+ }]
714
+ ],
715
+ aliases: ["alert-circle"]
716
+ };
717
+ __iconData$43.node;
718
+ var CircleAlert = createLucideIcon(__iconData$43);
719
+ //#endregion
720
+ //#region node_modules/lucide-react/dist/esm/icons/circle-question-mark.mjs
490
721
  /**
491
- * @license lucide-react v1.34.0 - ISC
722
+ * @license lucide-react v1.45.0 - ISC
492
723
  *
493
724
  * This source code is licensed under the ISC license.
494
725
  * See the LICENSE file in the root directory of this source tree.
495
726
  */
496
- var CircleQuestionMark = createLucideIcon("circle-question-mark", [
497
- ["circle", {
498
- cx: "12",
499
- cy: "12",
500
- r: "10",
501
- key: "1mglay"
502
- }],
503
- ["path", {
504
- d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",
505
- key: "1u773s"
506
- }],
507
- ["path", {
508
- d: "M12 17h.01",
509
- key: "p32p05"
510
- }]
511
- ]);
727
+ var __iconData$42 = {
728
+ name: "circle-question-mark",
729
+ size: 24,
730
+ node: [
731
+ ["circle", {
732
+ cx: "12",
733
+ cy: "12",
734
+ r: "10",
735
+ key: "1mglay"
736
+ }],
737
+ ["path", {
738
+ d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",
739
+ key: "1u773s"
740
+ }],
741
+ ["path", {
742
+ d: "M12 17h.01",
743
+ key: "p32p05"
744
+ }]
745
+ ],
746
+ aliases: ["help-circle", "circle-help"]
747
+ };
748
+ __iconData$42.node;
749
+ var CircleQuestionMark = createLucideIcon(__iconData$42);
750
+ //#endregion
751
+ //#region node_modules/lucide-react/dist/esm/icons/circle-x.mjs
512
752
  /**
513
- * @license lucide-react v1.34.0 - ISC
753
+ * @license lucide-react v1.45.0 - ISC
514
754
  *
515
755
  * This source code is licensed under the ISC license.
516
756
  * See the LICENSE file in the root directory of this source tree.
517
757
  */
518
- var CircleX = createLucideIcon("circle-x", [
519
- ["circle", {
520
- cx: "12",
521
- cy: "12",
522
- r: "10",
523
- key: "1mglay"
524
- }],
525
- ["path", {
526
- d: "m15 9-6 6",
527
- key: "1uzhvr"
528
- }],
529
- ["path", {
530
- d: "m9 9 6 6",
531
- key: "z0biqf"
532
- }]
533
- ]);
758
+ var __iconData$41 = {
759
+ name: "circle-x",
760
+ size: 24,
761
+ node: [
762
+ ["circle", {
763
+ cx: "12",
764
+ cy: "12",
765
+ r: "10",
766
+ key: "1mglay"
767
+ }],
768
+ ["path", {
769
+ d: "m15 9-6 6",
770
+ key: "1uzhvr"
771
+ }],
772
+ ["path", {
773
+ d: "m9 9 6 6",
774
+ key: "z0biqf"
775
+ }]
776
+ ],
777
+ aliases: ["x-circle"]
778
+ };
779
+ __iconData$41.node;
780
+ var CircleX = createLucideIcon(__iconData$41);
781
+ //#endregion
782
+ //#region node_modules/lucide-react/dist/esm/icons/clipboard.mjs
534
783
  /**
535
- * @license lucide-react v1.34.0 - ISC
784
+ * @license lucide-react v1.45.0 - ISC
536
785
  *
537
786
  * This source code is licensed under the ISC license.
538
787
  * See the LICENSE file in the root directory of this source tree.
539
788
  */
540
- var Clipboard = createLucideIcon("clipboard", [["rect", {
541
- width: "8",
542
- height: "4",
543
- x: "8",
544
- y: "2",
545
- rx: "1",
546
- ry: "1",
547
- key: "tgr4d6"
548
- }], ["path", {
549
- d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
550
- key: "116196"
551
- }]]);
552
- /**
553
- * @license lucide-react v1.34.0 - ISC
789
+ var __iconData$40 = {
790
+ name: "clipboard",
791
+ size: 24,
792
+ node: [["rect", {
793
+ width: "8",
794
+ height: "4",
795
+ x: "8",
796
+ y: "2",
797
+ rx: "1",
798
+ ry: "1",
799
+ key: "tgr4d6"
800
+ }], ["path", {
801
+ d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
802
+ key: "116196"
803
+ }]]
804
+ };
805
+ __iconData$40.node;
806
+ var Clipboard = createLucideIcon(__iconData$40);
807
+ //#endregion
808
+ //#region node_modules/lucide-react/dist/esm/icons/clock.mjs
809
+ /**
810
+ * @license lucide-react v1.45.0 - ISC
554
811
  *
555
812
  * This source code is licensed under the ISC license.
556
813
  * See the LICENSE file in the root directory of this source tree.
557
814
  */
558
- var Clock = createLucideIcon("clock", [["circle", {
559
- cx: "12",
560
- cy: "12",
561
- r: "10",
562
- key: "1mglay"
563
- }], ["path", {
564
- d: "M12 6v6l4 2",
565
- key: "mmk7yg"
566
- }]]);
567
- /**
568
- * @license lucide-react v1.34.0 - ISC
815
+ var __iconData$39 = {
816
+ name: "clock",
817
+ size: 24,
818
+ node: [["circle", {
819
+ cx: "12",
820
+ cy: "12",
821
+ r: "10",
822
+ key: "1mglay"
823
+ }], ["path", {
824
+ d: "M12 6v6l4 2",
825
+ key: "mmk7yg"
826
+ }]]
827
+ };
828
+ __iconData$39.node;
829
+ var Clock = createLucideIcon(__iconData$39);
830
+ //#endregion
831
+ //#region node_modules/lucide-react/dist/esm/icons/cog.mjs
832
+ /**
833
+ * @license lucide-react v1.45.0 - ISC
569
834
  *
570
835
  * This source code is licensed under the ISC license.
571
836
  * See the LICENSE file in the root directory of this source tree.
572
837
  */
573
- var Cog = createLucideIcon("cog", [
574
- ["path", {
575
- d: "M11 10.27 7 3.34",
576
- key: "16pf9h"
577
- }],
578
- ["path", {
579
- d: "m11 13.73-4 6.93",
580
- key: "794ttg"
581
- }],
582
- ["path", {
583
- d: "M12 22v-2",
584
- key: "1osdcq"
585
- }],
586
- ["path", {
587
- d: "M12 2v2",
588
- key: "tus03m"
589
- }],
590
- ["path", {
591
- d: "M14 12h8",
592
- key: "4f43i9"
593
- }],
594
- ["path", {
595
- d: "m17 20.66-1-1.73",
596
- key: "eq3orb"
597
- }],
598
- ["path", {
599
- d: "m17 3.34-1 1.73",
600
- key: "2wel8s"
601
- }],
602
- ["path", {
603
- d: "M2 12h2",
604
- key: "1t8f8n"
605
- }],
606
- ["path", {
607
- d: "m20.66 17-1.73-1",
608
- key: "sg0v6f"
609
- }],
610
- ["path", {
611
- d: "m20.66 7-1.73 1",
612
- key: "1ow05n"
613
- }],
614
- ["path", {
615
- d: "m3.34 17 1.73-1",
616
- key: "nuk764"
617
- }],
618
- ["path", {
619
- d: "m3.34 7 1.73 1",
620
- key: "1ulond"
621
- }],
622
- ["circle", {
623
- cx: "12",
624
- cy: "12",
625
- r: "2",
626
- key: "1c9p78"
627
- }],
628
- ["circle", {
629
- cx: "12",
630
- cy: "12",
631
- r: "8",
632
- key: "46899m"
633
- }]
634
- ]);
838
+ var __iconData$38 = {
839
+ name: "cog",
840
+ size: 24,
841
+ node: [
842
+ ["path", {
843
+ d: "M11 10.27 7 3.34",
844
+ key: "16pf9h"
845
+ }],
846
+ ["path", {
847
+ d: "m11 13.73-4 6.93",
848
+ key: "794ttg"
849
+ }],
850
+ ["path", {
851
+ d: "M12 22v-2",
852
+ key: "1osdcq"
853
+ }],
854
+ ["path", {
855
+ d: "M12 2v2",
856
+ key: "tus03m"
857
+ }],
858
+ ["path", {
859
+ d: "M14 12h8",
860
+ key: "4f43i9"
861
+ }],
862
+ ["path", {
863
+ d: "m17 20.66-1-1.73",
864
+ key: "eq3orb"
865
+ }],
866
+ ["path", {
867
+ d: "m17 3.34-1 1.73",
868
+ key: "2wel8s"
869
+ }],
870
+ ["path", {
871
+ d: "M2 12h2",
872
+ key: "1t8f8n"
873
+ }],
874
+ ["path", {
875
+ d: "m20.66 17-1.73-1",
876
+ key: "sg0v6f"
877
+ }],
878
+ ["path", {
879
+ d: "m20.66 7-1.73 1",
880
+ key: "1ow05n"
881
+ }],
882
+ ["path", {
883
+ d: "m3.34 17 1.73-1",
884
+ key: "nuk764"
885
+ }],
886
+ ["path", {
887
+ d: "m3.34 7 1.73 1",
888
+ key: "1ulond"
889
+ }],
890
+ ["circle", {
891
+ cx: "12",
892
+ cy: "12",
893
+ r: "2",
894
+ key: "1c9p78"
895
+ }],
896
+ ["circle", {
897
+ cx: "12",
898
+ cy: "12",
899
+ r: "8",
900
+ key: "46899m"
901
+ }]
902
+ ]
903
+ };
904
+ __iconData$38.node;
905
+ var Cog = createLucideIcon(__iconData$38);
906
+ //#endregion
907
+ //#region node_modules/lucide-react/dist/esm/icons/copy.mjs
635
908
  /**
636
- * @license lucide-react v1.34.0 - ISC
909
+ * @license lucide-react v1.45.0 - ISC
637
910
  *
638
911
  * This source code is licensed under the ISC license.
639
912
  * See the LICENSE file in the root directory of this source tree.
640
913
  */
641
- var Copy = createLucideIcon("copy", [["rect", {
642
- width: "14",
643
- height: "14",
644
- x: "8",
645
- y: "8",
646
- rx: "2",
647
- ry: "2",
648
- key: "17jyea"
649
- }], ["path", {
650
- d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",
651
- key: "zix9uf"
652
- }]]);
653
- /**
654
- * @license lucide-react v1.34.0 - ISC
914
+ var __iconData$37 = {
915
+ name: "copy",
916
+ size: 24,
917
+ node: [["rect", {
918
+ width: "14",
919
+ height: "14",
920
+ x: "8",
921
+ y: "8",
922
+ rx: "2",
923
+ ry: "2",
924
+ key: "17jyea"
925
+ }], ["path", {
926
+ d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",
927
+ key: "zix9uf"
928
+ }]]
929
+ };
930
+ __iconData$37.node;
931
+ var Copy = createLucideIcon(__iconData$37);
932
+ //#endregion
933
+ //#region node_modules/lucide-react/dist/esm/icons/database.mjs
934
+ /**
935
+ * @license lucide-react v1.45.0 - ISC
655
936
  *
656
937
  * This source code is licensed under the ISC license.
657
938
  * See the LICENSE file in the root directory of this source tree.
658
939
  */
659
- var Database = createLucideIcon("database", [
660
- ["ellipse", {
661
- cx: "12",
662
- cy: "5",
663
- rx: "9",
664
- ry: "3",
665
- key: "msslwz"
666
- }],
667
- ["path", {
668
- d: "M3 5V19A9 3 0 0 0 21 19V5",
669
- key: "1wlel7"
670
- }],
671
- ["path", {
672
- d: "M3 12A9 3 0 0 0 21 12",
673
- key: "mv7ke4"
674
- }]
675
- ]);
940
+ var __iconData$36 = {
941
+ name: "database",
942
+ size: 24,
943
+ node: [
944
+ ["ellipse", {
945
+ cx: "12",
946
+ cy: "5",
947
+ rx: "9",
948
+ ry: "3",
949
+ key: "msslwz"
950
+ }],
951
+ ["path", {
952
+ d: "M3 5V19A9 3 0 0 0 21 19V5",
953
+ key: "1wlel7"
954
+ }],
955
+ ["path", {
956
+ d: "M3 12A9 3 0 0 0 21 12",
957
+ key: "mv7ke4"
958
+ }]
959
+ ]
960
+ };
961
+ __iconData$36.node;
962
+ var Database = createLucideIcon(__iconData$36);
963
+ //#endregion
964
+ //#region node_modules/lucide-react/dist/esm/icons/diamond.mjs
676
965
  /**
677
- * @license lucide-react v1.34.0 - ISC
966
+ * @license lucide-react v1.45.0 - ISC
678
967
  *
679
968
  * This source code is licensed under the ISC license.
680
969
  * See the LICENSE file in the root directory of this source tree.
681
970
  */
682
- var Diamond = createLucideIcon("diamond", [["path", {
683
- d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z",
684
- key: "1f1r0c"
685
- }]]);
971
+ var __iconData$35 = {
972
+ name: "diamond",
973
+ size: 24,
974
+ node: [["path", {
975
+ d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z",
976
+ key: "1f1r0c"
977
+ }]]
978
+ };
979
+ __iconData$35.node;
980
+ var Diamond = createLucideIcon(__iconData$35);
981
+ //#endregion
982
+ //#region node_modules/lucide-react/dist/esm/icons/divide.mjs
686
983
  /**
687
- * @license lucide-react v1.34.0 - ISC
984
+ * @license lucide-react v1.45.0 - ISC
688
985
  *
689
986
  * This source code is licensed under the ISC license.
690
987
  * See the LICENSE file in the root directory of this source tree.
691
988
  */
692
- var Divide = createLucideIcon("divide", [
693
- ["circle", {
694
- cx: "12",
695
- cy: "6",
696
- r: "1",
697
- key: "1bh7o1"
698
- }],
699
- ["line", {
700
- x1: "5",
701
- x2: "19",
702
- y1: "12",
703
- y2: "12",
704
- key: "13b5wn"
705
- }],
706
- ["circle", {
707
- cx: "12",
708
- cy: "18",
709
- r: "1",
710
- key: "lqb9t5"
711
- }]
712
- ]);
989
+ var __iconData$34 = {
990
+ name: "divide",
991
+ size: 24,
992
+ node: [
993
+ ["circle", {
994
+ cx: "12",
995
+ cy: "6",
996
+ r: "1",
997
+ key: "1bh7o1"
998
+ }],
999
+ ["line", {
1000
+ x1: "5",
1001
+ x2: "19",
1002
+ y1: "12",
1003
+ y2: "12",
1004
+ key: "13b5wn"
1005
+ }],
1006
+ ["circle", {
1007
+ cx: "12",
1008
+ cy: "18",
1009
+ r: "1",
1010
+ key: "lqb9t5"
1011
+ }]
1012
+ ]
1013
+ };
1014
+ __iconData$34.node;
1015
+ var Divide = createLucideIcon(__iconData$34);
1016
+ //#endregion
1017
+ //#region node_modules/lucide-react/dist/esm/icons/external-link.mjs
713
1018
  /**
714
- * @license lucide-react v1.34.0 - ISC
1019
+ * @license lucide-react v1.45.0 - ISC
715
1020
  *
716
1021
  * This source code is licensed under the ISC license.
717
1022
  * See the LICENSE file in the root directory of this source tree.
718
1023
  */
719
- var ExternalLink = createLucideIcon("external-link", [
720
- ["path", {
721
- d: "M15 3h6v6",
722
- key: "1q9fwt"
723
- }],
724
- ["path", {
725
- d: "M10 14 21 3",
726
- key: "gplh6r"
727
- }],
728
- ["path", {
729
- d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",
730
- key: "a6xqqp"
731
- }]
732
- ]);
1024
+ var __iconData$33 = {
1025
+ name: "external-link",
1026
+ size: 24,
1027
+ node: [
1028
+ ["path", {
1029
+ d: "M15 3h6v6",
1030
+ key: "1q9fwt"
1031
+ }],
1032
+ ["path", {
1033
+ d: "M10 14 21 3",
1034
+ key: "gplh6r"
1035
+ }],
1036
+ ["path", {
1037
+ d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",
1038
+ key: "a6xqqp"
1039
+ }]
1040
+ ]
1041
+ };
1042
+ __iconData$33.node;
1043
+ var ExternalLink = createLucideIcon(__iconData$33);
1044
+ //#endregion
1045
+ //#region node_modules/lucide-react/dist/esm/icons/git-branch.mjs
733
1046
  /**
734
- * @license lucide-react v1.34.0 - ISC
1047
+ * @license lucide-react v1.45.0 - ISC
735
1048
  *
736
1049
  * This source code is licensed under the ISC license.
737
1050
  * See the LICENSE file in the root directory of this source tree.
738
1051
  */
739
- var GitBranch = createLucideIcon("git-branch", [
740
- ["path", {
741
- d: "M15 6a9 9 0 0 0-9 9V3",
742
- key: "1cii5b"
743
- }],
744
- ["circle", {
745
- cx: "18",
746
- cy: "6",
747
- r: "3",
748
- key: "1h7g24"
749
- }],
750
- ["circle", {
751
- cx: "6",
752
- cy: "18",
753
- r: "3",
754
- key: "fqmcym"
755
- }]
756
- ]);
1052
+ var __iconData$32 = {
1053
+ name: "git-branch",
1054
+ size: 24,
1055
+ node: [
1056
+ ["path", {
1057
+ d: "M15 6a9 9 0 0 0-9 9V3",
1058
+ key: "1cii5b"
1059
+ }],
1060
+ ["circle", {
1061
+ cx: "18",
1062
+ cy: "6",
1063
+ r: "3",
1064
+ key: "1h7g24"
1065
+ }],
1066
+ ["circle", {
1067
+ cx: "6",
1068
+ cy: "18",
1069
+ r: "3",
1070
+ key: "fqmcym"
1071
+ }]
1072
+ ]
1073
+ };
1074
+ __iconData$32.node;
1075
+ var GitBranch = createLucideIcon(__iconData$32);
1076
+ //#endregion
1077
+ //#region node_modules/lucide-react/dist/esm/icons/git-commit-horizontal.mjs
757
1078
  /**
758
- * @license lucide-react v1.34.0 - ISC
1079
+ * @license lucide-react v1.45.0 - ISC
759
1080
  *
760
1081
  * This source code is licensed under the ISC license.
761
1082
  * See the LICENSE file in the root directory of this source tree.
762
1083
  */
763
- var GitCommitHorizontal = createLucideIcon("git-commit-horizontal", [
764
- ["circle", {
765
- cx: "12",
766
- cy: "12",
767
- r: "3",
768
- key: "1v7zrd"
769
- }],
770
- ["line", {
771
- x1: "3",
772
- x2: "9",
773
- y1: "12",
774
- y2: "12",
775
- key: "1dyftd"
776
- }],
777
- ["line", {
778
- x1: "15",
779
- x2: "21",
780
- y1: "12",
781
- y2: "12",
782
- key: "oup4p8"
783
- }]
784
- ]);
1084
+ var __iconData$31 = {
1085
+ name: "git-commit-horizontal",
1086
+ size: 24,
1087
+ node: [
1088
+ ["circle", {
1089
+ cx: "12",
1090
+ cy: "12",
1091
+ r: "3",
1092
+ key: "1v7zrd"
1093
+ }],
1094
+ ["line", {
1095
+ x1: "3",
1096
+ x2: "9",
1097
+ y1: "12",
1098
+ y2: "12",
1099
+ key: "1dyftd"
1100
+ }],
1101
+ ["line", {
1102
+ x1: "15",
1103
+ x2: "21",
1104
+ y1: "12",
1105
+ y2: "12",
1106
+ key: "oup4p8"
1107
+ }]
1108
+ ],
1109
+ aliases: ["git-commit"]
1110
+ };
1111
+ __iconData$31.node;
1112
+ var GitCommitHorizontal = createLucideIcon(__iconData$31);
1113
+ //#endregion
1114
+ //#region node_modules/lucide-react/dist/esm/icons/git-merge.mjs
785
1115
  /**
786
- * @license lucide-react v1.34.0 - ISC
1116
+ * @license lucide-react v1.45.0 - ISC
787
1117
  *
788
1118
  * This source code is licensed under the ISC license.
789
1119
  * See the LICENSE file in the root directory of this source tree.
790
1120
  */
791
- var GitMerge = createLucideIcon("git-merge", [
792
- ["circle", {
793
- cx: "18",
794
- cy: "18",
795
- r: "3",
796
- key: "1xkwt0"
797
- }],
798
- ["circle", {
799
- cx: "6",
800
- cy: "6",
801
- r: "3",
802
- key: "1lh9wr"
803
- }],
804
- ["path", {
805
- d: "M6 21V9a9 9 0 0 0 9 9",
806
- key: "7kw0sc"
807
- }]
808
- ]);
1121
+ var __iconData$30 = {
1122
+ name: "git-merge",
1123
+ size: 24,
1124
+ node: [
1125
+ ["circle", {
1126
+ cx: "18",
1127
+ cy: "18",
1128
+ r: "3",
1129
+ key: "1xkwt0"
1130
+ }],
1131
+ ["circle", {
1132
+ cx: "6",
1133
+ cy: "6",
1134
+ r: "3",
1135
+ key: "1lh9wr"
1136
+ }],
1137
+ ["path", {
1138
+ d: "M6 21V9a9 9 0 0 0 9 9",
1139
+ key: "7kw0sc"
1140
+ }]
1141
+ ]
1142
+ };
1143
+ __iconData$30.node;
1144
+ var GitMerge = createLucideIcon(__iconData$30);
1145
+ //#endregion
1146
+ //#region node_modules/lucide-react/dist/esm/icons/hash.mjs
809
1147
  /**
810
- * @license lucide-react v1.34.0 - ISC
1148
+ * @license lucide-react v1.45.0 - ISC
811
1149
  *
812
1150
  * This source code is licensed under the ISC license.
813
1151
  * See the LICENSE file in the root directory of this source tree.
814
1152
  */
815
- var Hash = createLucideIcon("hash", [
816
- ["line", {
817
- x1: "4",
818
- x2: "20",
819
- y1: "9",
820
- y2: "9",
821
- key: "4lhtct"
822
- }],
823
- ["line", {
824
- x1: "4",
825
- x2: "20",
826
- y1: "15",
827
- y2: "15",
828
- key: "vyu0kd"
829
- }],
830
- ["line", {
831
- x1: "10",
832
- x2: "8",
833
- y1: "3",
834
- y2: "21",
835
- key: "1ggp8o"
836
- }],
837
- ["line", {
838
- x1: "16",
839
- x2: "14",
840
- y1: "3",
841
- y2: "21",
842
- key: "weycgp"
843
- }]
844
- ]);
1153
+ var __iconData$29 = {
1154
+ name: "hash",
1155
+ size: 24,
1156
+ node: [
1157
+ ["line", {
1158
+ x1: "4",
1159
+ x2: "20",
1160
+ y1: "9",
1161
+ y2: "9",
1162
+ key: "4lhtct"
1163
+ }],
1164
+ ["line", {
1165
+ x1: "4",
1166
+ x2: "20",
1167
+ y1: "15",
1168
+ y2: "15",
1169
+ key: "vyu0kd"
1170
+ }],
1171
+ ["line", {
1172
+ x1: "10",
1173
+ x2: "8",
1174
+ y1: "3",
1175
+ y2: "21",
1176
+ key: "1ggp8o"
1177
+ }],
1178
+ ["line", {
1179
+ x1: "16",
1180
+ x2: "14",
1181
+ y1: "3",
1182
+ y2: "21",
1183
+ key: "weycgp"
1184
+ }]
1185
+ ]
1186
+ };
1187
+ __iconData$29.node;
1188
+ var Hash = createLucideIcon(__iconData$29);
1189
+ //#endregion
1190
+ //#region node_modules/lucide-react/dist/esm/icons/layers.mjs
845
1191
  /**
846
- * @license lucide-react v1.34.0 - ISC
1192
+ * @license lucide-react v1.45.0 - ISC
847
1193
  *
848
1194
  * This source code is licensed under the ISC license.
849
1195
  * See the LICENSE file in the root directory of this source tree.
850
1196
  */
851
- var Layers = createLucideIcon("layers", [
852
- ["path", {
853
- d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",
854
- key: "zw3jo"
855
- }],
856
- ["path", {
857
- d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",
858
- key: "1wduqc"
859
- }],
860
- ["path", {
861
- d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",
862
- key: "kqbvx6"
863
- }]
864
- ]);
1197
+ var __iconData$28 = {
1198
+ name: "layers",
1199
+ size: 24,
1200
+ node: [
1201
+ ["path", {
1202
+ d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",
1203
+ key: "zw3jo"
1204
+ }],
1205
+ ["path", {
1206
+ d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",
1207
+ key: "1wduqc"
1208
+ }],
1209
+ ["path", {
1210
+ d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",
1211
+ key: "kqbvx6"
1212
+ }]
1213
+ ],
1214
+ aliases: ["layers-3"]
1215
+ };
1216
+ __iconData$28.node;
1217
+ var Layers = createLucideIcon(__iconData$28);
1218
+ //#endregion
1219
+ //#region node_modules/lucide-react/dist/esm/icons/link-2-off.mjs
865
1220
  /**
866
- * @license lucide-react v1.34.0 - ISC
1221
+ * @license lucide-react v1.45.0 - ISC
867
1222
  *
868
1223
  * This source code is licensed under the ISC license.
869
1224
  * See the LICENSE file in the root directory of this source tree.
870
1225
  */
871
- var Link2Off = createLucideIcon("link-2-off", [
872
- ["path", {
873
- d: "M9 17H7A5 5 0 0 1 7 7",
874
- key: "10o201"
875
- }],
876
- ["path", {
877
- d: "M15 7h2a5 5 0 0 1 4 8",
878
- key: "1d3206"
879
- }],
880
- ["line", {
881
- x1: "8",
882
- x2: "12",
883
- y1: "12",
884
- y2: "12",
885
- key: "rvw6j4"
886
- }],
887
- ["line", {
888
- x1: "2",
889
- x2: "22",
890
- y1: "2",
891
- y2: "22",
892
- key: "a6p6uj"
893
- }]
894
- ]);
1226
+ var __iconData$27 = {
1227
+ name: "link-2-off",
1228
+ size: 24,
1229
+ node: [
1230
+ ["path", {
1231
+ d: "M9 17H7A5 5 0 0 1 7 7",
1232
+ key: "10o201"
1233
+ }],
1234
+ ["path", {
1235
+ d: "M15 7h2a5 5 0 0 1 4 8",
1236
+ key: "1d3206"
1237
+ }],
1238
+ ["line", {
1239
+ x1: "8",
1240
+ x2: "12",
1241
+ y1: "12",
1242
+ y2: "12",
1243
+ key: "rvw6j4"
1244
+ }],
1245
+ ["line", {
1246
+ x1: "2",
1247
+ x2: "22",
1248
+ y1: "2",
1249
+ y2: "22",
1250
+ key: "a6p6uj"
1251
+ }]
1252
+ ]
1253
+ };
1254
+ __iconData$27.node;
1255
+ var Link2Off = createLucideIcon(__iconData$27);
1256
+ //#endregion
1257
+ //#region node_modules/lucide-react/dist/esm/icons/list-ordered.mjs
895
1258
  /**
896
- * @license lucide-react v1.34.0 - ISC
1259
+ * @license lucide-react v1.45.0 - ISC
897
1260
  *
898
1261
  * This source code is licensed under the ISC license.
899
1262
  * See the LICENSE file in the root directory of this source tree.
900
1263
  */
901
- var ListOrdered = createLucideIcon("list-ordered", [
902
- ["path", {
903
- d: "M11 5h10",
904
- key: "1cz7ny"
905
- }],
906
- ["path", {
907
- d: "M11 12h10",
908
- key: "1438ji"
909
- }],
910
- ["path", {
911
- d: "M11 19h10",
912
- key: "11t30w"
913
- }],
914
- ["path", {
915
- d: "M4 4h1v5",
916
- key: "10yrso"
917
- }],
918
- ["path", {
919
- d: "M4 9h2",
920
- key: "r1h2o0"
921
- }],
922
- ["path", {
923
- d: "M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",
924
- key: "xtkcd5"
925
- }]
926
- ]);
1264
+ var __iconData$26 = {
1265
+ name: "list-ordered",
1266
+ size: 24,
1267
+ node: [
1268
+ ["path", {
1269
+ d: "M11 5h10",
1270
+ key: "1cz7ny"
1271
+ }],
1272
+ ["path", {
1273
+ d: "M11 12h10",
1274
+ key: "1438ji"
1275
+ }],
1276
+ ["path", {
1277
+ d: "M11 19h10",
1278
+ key: "11t30w"
1279
+ }],
1280
+ ["path", {
1281
+ d: "M4 4h1v5",
1282
+ key: "10yrso"
1283
+ }],
1284
+ ["path", {
1285
+ d: "M4 9h2",
1286
+ key: "r1h2o0"
1287
+ }],
1288
+ ["path", {
1289
+ d: "M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",
1290
+ key: "xtkcd5"
1291
+ }]
1292
+ ]
1293
+ };
1294
+ __iconData$26.node;
1295
+ var ListOrdered = createLucideIcon(__iconData$26);
1296
+ //#endregion
1297
+ //#region node_modules/lucide-react/dist/esm/icons/list.mjs
927
1298
  /**
928
- * @license lucide-react v1.34.0 - ISC
1299
+ * @license lucide-react v1.45.0 - ISC
929
1300
  *
930
1301
  * This source code is licensed under the ISC license.
931
1302
  * See the LICENSE file in the root directory of this source tree.
932
1303
  */
933
- var List = createLucideIcon("list", [
934
- ["path", {
935
- d: "M3 5h.01",
936
- key: "18ugdj"
937
- }],
938
- ["path", {
939
- d: "M3 12h.01",
940
- key: "nlz23k"
941
- }],
942
- ["path", {
943
- d: "M3 19h.01",
944
- key: "noohij"
945
- }],
946
- ["path", {
947
- d: "M8 5h13",
948
- key: "1pao27"
949
- }],
950
- ["path", {
951
- d: "M8 12h13",
952
- key: "1za7za"
953
- }],
954
- ["path", {
955
- d: "M8 19h13",
956
- key: "m83p4d"
957
- }]
958
- ]);
1304
+ var __iconData$25 = {
1305
+ name: "list",
1306
+ size: 24,
1307
+ node: [
1308
+ ["path", {
1309
+ d: "M3 5h.01",
1310
+ key: "18ugdj"
1311
+ }],
1312
+ ["path", {
1313
+ d: "M3 12h.01",
1314
+ key: "nlz23k"
1315
+ }],
1316
+ ["path", {
1317
+ d: "M3 19h.01",
1318
+ key: "noohij"
1319
+ }],
1320
+ ["path", {
1321
+ d: "M8 5h13",
1322
+ key: "1pao27"
1323
+ }],
1324
+ ["path", {
1325
+ d: "M8 12h13",
1326
+ key: "1za7za"
1327
+ }],
1328
+ ["path", {
1329
+ d: "M8 19h13",
1330
+ key: "m83p4d"
1331
+ }]
1332
+ ]
1333
+ };
1334
+ __iconData$25.node;
1335
+ var List = createLucideIcon(__iconData$25);
1336
+ //#endregion
1337
+ //#region node_modules/lucide-react/dist/esm/icons/maximize.mjs
959
1338
  /**
960
- * @license lucide-react v1.34.0 - ISC
1339
+ * @license lucide-react v1.45.0 - ISC
961
1340
  *
962
1341
  * This source code is licensed under the ISC license.
963
1342
  * See the LICENSE file in the root directory of this source tree.
964
1343
  */
965
- var Maximize = createLucideIcon("maximize", [
966
- ["path", {
967
- d: "M8 3H5a2 2 0 0 0-2 2v3",
968
- key: "1dcmit"
969
- }],
970
- ["path", {
971
- d: "M21 8V5a2 2 0 0 0-2-2h-3",
972
- key: "1e4gt3"
973
- }],
974
- ["path", {
975
- d: "M3 16v3a2 2 0 0 0 2 2h3",
976
- key: "wsl5sc"
977
- }],
978
- ["path", {
979
- d: "M16 21h3a2 2 0 0 0 2-2v-3",
980
- key: "18trek"
981
- }]
982
- ]);
1344
+ var __iconData$24 = {
1345
+ name: "maximize",
1346
+ size: 24,
1347
+ node: [
1348
+ ["path", {
1349
+ d: "M8 3H5a2 2 0 0 0-2 2v3",
1350
+ key: "1dcmit"
1351
+ }],
1352
+ ["path", {
1353
+ d: "M21 8V5a2 2 0 0 0-2-2h-3",
1354
+ key: "1e4gt3"
1355
+ }],
1356
+ ["path", {
1357
+ d: "M3 16v3a2 2 0 0 0 2 2h3",
1358
+ key: "wsl5sc"
1359
+ }],
1360
+ ["path", {
1361
+ d: "M16 21h3a2 2 0 0 0 2-2v-3",
1362
+ key: "18trek"
1363
+ }]
1364
+ ]
1365
+ };
1366
+ __iconData$24.node;
1367
+ var Maximize = createLucideIcon(__iconData$24);
1368
+ //#endregion
1369
+ //#region node_modules/lucide-react/dist/esm/icons/mouse-pointer-2.mjs
983
1370
  /**
984
- * @license lucide-react v1.34.0 - ISC
1371
+ * @license lucide-react v1.45.0 - ISC
985
1372
  *
986
1373
  * This source code is licensed under the ISC license.
987
1374
  * See the LICENSE file in the root directory of this source tree.
988
1375
  */
989
- var MousePointer2 = createLucideIcon("mouse-pointer-2", [["path", {
990
- d: "M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",
991
- key: "edeuup"
992
- }]]);
1376
+ var __iconData$23 = {
1377
+ name: "mouse-pointer-2",
1378
+ size: 24,
1379
+ node: [["path", {
1380
+ d: "M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",
1381
+ key: "edeuup"
1382
+ }]]
1383
+ };
1384
+ __iconData$23.node;
1385
+ var MousePointer2 = createLucideIcon(__iconData$23);
1386
+ //#endregion
1387
+ //#region node_modules/lucide-react/dist/esm/icons/pause.mjs
993
1388
  /**
994
- * @license lucide-react v1.34.0 - ISC
1389
+ * @license lucide-react v1.45.0 - ISC
995
1390
  *
996
1391
  * This source code is licensed under the ISC license.
997
1392
  * See the LICENSE file in the root directory of this source tree.
998
1393
  */
999
- var Pause = createLucideIcon("pause", [["rect", {
1000
- x: "14",
1001
- y: "3",
1002
- width: "5",
1003
- height: "18",
1004
- rx: "1",
1005
- key: "kaeet6"
1006
- }], ["rect", {
1007
- x: "5",
1008
- y: "3",
1009
- width: "5",
1010
- height: "18",
1011
- rx: "1",
1012
- key: "1wsw3u"
1013
- }]]);
1014
- /**
1015
- * @license lucide-react v1.34.0 - ISC
1394
+ var __iconData$22 = {
1395
+ name: "pause",
1396
+ size: 24,
1397
+ node: [["rect", {
1398
+ x: "14",
1399
+ y: "3",
1400
+ width: "5",
1401
+ height: "18",
1402
+ rx: "1",
1403
+ key: "kaeet6"
1404
+ }], ["rect", {
1405
+ x: "5",
1406
+ y: "3",
1407
+ width: "5",
1408
+ height: "18",
1409
+ rx: "1",
1410
+ key: "1wsw3u"
1411
+ }]]
1412
+ };
1413
+ __iconData$22.node;
1414
+ var Pause = createLucideIcon(__iconData$22);
1415
+ //#endregion
1416
+ //#region node_modules/lucide-react/dist/esm/icons/pen-line.mjs
1417
+ /**
1418
+ * @license lucide-react v1.45.0 - ISC
1016
1419
  *
1017
1420
  * This source code is licensed under the ISC license.
1018
1421
  * See the LICENSE file in the root directory of this source tree.
1019
1422
  */
1020
- var PenLine = createLucideIcon("pen-line", [["path", {
1021
- d: "M13 21h8",
1022
- key: "1jsn5i"
1023
- }], ["path", {
1024
- d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
1025
- key: "1a8usu"
1026
- }]]);
1423
+ var __iconData$21 = {
1424
+ name: "pen-line",
1425
+ size: 24,
1426
+ node: [["path", {
1427
+ d: "M13 21h8",
1428
+ key: "1jsn5i"
1429
+ }], ["path", {
1430
+ d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
1431
+ key: "1a8usu"
1432
+ }]],
1433
+ aliases: ["edit-3"]
1434
+ };
1435
+ __iconData$21.node;
1436
+ var PenLine = createLucideIcon(__iconData$21);
1437
+ //#endregion
1438
+ //#region node_modules/lucide-react/dist/esm/icons/play.mjs
1027
1439
  /**
1028
- * @license lucide-react v1.34.0 - ISC
1440
+ * @license lucide-react v1.45.0 - ISC
1029
1441
  *
1030
1442
  * This source code is licensed under the ISC license.
1031
1443
  * See the LICENSE file in the root directory of this source tree.
1032
1444
  */
1033
- var Play = createLucideIcon("play", [["path", {
1034
- d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
1035
- key: "10ikf1"
1036
- }]]);
1445
+ var __iconData$20 = {
1446
+ name: "play",
1447
+ size: 24,
1448
+ node: [["path", {
1449
+ d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
1450
+ key: "10ikf1"
1451
+ }]]
1452
+ };
1453
+ __iconData$20.node;
1454
+ var Play = createLucideIcon(__iconData$20);
1455
+ //#endregion
1456
+ //#region node_modules/lucide-react/dist/esm/icons/plus.mjs
1037
1457
  /**
1038
- * @license lucide-react v1.34.0 - ISC
1458
+ * @license lucide-react v1.45.0 - ISC
1039
1459
  *
1040
1460
  * This source code is licensed under the ISC license.
1041
1461
  * See the LICENSE file in the root directory of this source tree.
1042
1462
  */
1043
- var Plus = createLucideIcon("plus", [["path", {
1044
- d: "M5 12h14",
1045
- key: "1ays0h"
1046
- }], ["path", {
1047
- d: "M12 5v14",
1048
- key: "s699le"
1049
- }]]);
1463
+ var __iconData$19 = {
1464
+ name: "plus",
1465
+ size: 24,
1466
+ node: [["path", {
1467
+ d: "M5 12h14",
1468
+ key: "1ays0h"
1469
+ }], ["path", {
1470
+ d: "M12 5v14",
1471
+ key: "s699le"
1472
+ }]]
1473
+ };
1474
+ __iconData$19.node;
1475
+ var Plus = createLucideIcon(__iconData$19);
1476
+ //#endregion
1477
+ //#region node_modules/lucide-react/dist/esm/icons/quote.mjs
1050
1478
  /**
1051
- * @license lucide-react v1.34.0 - ISC
1479
+ * @license lucide-react v1.45.0 - ISC
1052
1480
  *
1053
1481
  * This source code is licensed under the ISC license.
1054
1482
  * See the LICENSE file in the root directory of this source tree.
1055
1483
  */
1056
- var Quote = createLucideIcon("quote", [["path", {
1057
- d: "M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",
1058
- key: "rib7q0"
1059
- }], ["path", {
1060
- d: "M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",
1061
- key: "1ymkrd"
1062
- }]]);
1484
+ var __iconData$18 = {
1485
+ name: "quote",
1486
+ size: 24,
1487
+ node: [["path", {
1488
+ d: "M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",
1489
+ key: "rib7q0"
1490
+ }], ["path", {
1491
+ d: "M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",
1492
+ key: "1ymkrd"
1493
+ }]]
1494
+ };
1495
+ __iconData$18.node;
1496
+ var Quote = createLucideIcon(__iconData$18);
1497
+ //#endregion
1498
+ //#region node_modules/lucide-react/dist/esm/icons/redo-2.mjs
1063
1499
  /**
1064
- * @license lucide-react v1.34.0 - ISC
1500
+ * @license lucide-react v1.45.0 - ISC
1065
1501
  *
1066
1502
  * This source code is licensed under the ISC license.
1067
1503
  * See the LICENSE file in the root directory of this source tree.
1068
1504
  */
1069
- var Redo2 = createLucideIcon("redo-2", [["path", {
1070
- d: "m15 14 5-5-5-5",
1071
- key: "12vg1m"
1072
- }], ["path", {
1073
- d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",
1074
- key: "6uklza"
1075
- }]]);
1505
+ var __iconData$17 = {
1506
+ name: "redo-2",
1507
+ size: 24,
1508
+ node: [["path", {
1509
+ d: "m15 14 5-5-5-5",
1510
+ key: "12vg1m"
1511
+ }], ["path", {
1512
+ d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",
1513
+ key: "6uklza"
1514
+ }]]
1515
+ };
1516
+ __iconData$17.node;
1517
+ var Redo2 = createLucideIcon(__iconData$17);
1518
+ //#endregion
1519
+ //#region node_modules/lucide-react/dist/esm/icons/repeat.mjs
1076
1520
  /**
1077
- * @license lucide-react v1.34.0 - ISC
1521
+ * @license lucide-react v1.45.0 - ISC
1078
1522
  *
1079
1523
  * This source code is licensed under the ISC license.
1080
1524
  * See the LICENSE file in the root directory of this source tree.
1081
1525
  */
1082
- var Repeat = createLucideIcon("repeat", [
1083
- ["path", {
1084
- d: "m17 2 4 4-4 4",
1085
- key: "nntrym"
1086
- }],
1087
- ["path", {
1088
- d: "M3 11v-1a4 4 0 0 1 4-4h14",
1089
- key: "84bu3i"
1090
- }],
1091
- ["path", {
1092
- d: "m7 22-4-4 4-4",
1093
- key: "1wqhfi"
1094
- }],
1095
- ["path", {
1096
- d: "M21 13v1a4 4 0 0 1-4 4H3",
1097
- key: "1rx37r"
1098
- }]
1099
- ]);
1526
+ var __iconData$16 = {
1527
+ name: "repeat",
1528
+ size: 24,
1529
+ node: [
1530
+ ["path", {
1531
+ d: "m17 2 4 4-4 4",
1532
+ key: "nntrym"
1533
+ }],
1534
+ ["path", {
1535
+ d: "M3 11v-1a4 4 0 0 1 4-4h14",
1536
+ key: "84bu3i"
1537
+ }],
1538
+ ["path", {
1539
+ d: "m7 22-4-4 4-4",
1540
+ key: "1wqhfi"
1541
+ }],
1542
+ ["path", {
1543
+ d: "M21 13v1a4 4 0 0 1-4 4H3",
1544
+ key: "1rx37r"
1545
+ }]
1546
+ ]
1547
+ };
1548
+ __iconData$16.node;
1549
+ var Repeat = createLucideIcon(__iconData$16);
1550
+ //#endregion
1551
+ //#region node_modules/lucide-react/dist/esm/icons/scale.mjs
1100
1552
  /**
1101
- * @license lucide-react v1.34.0 - ISC
1553
+ * @license lucide-react v1.45.0 - ISC
1102
1554
  *
1103
1555
  * This source code is licensed under the ISC license.
1104
1556
  * See the LICENSE file in the root directory of this source tree.
1105
1557
  */
1106
- var Scale = createLucideIcon("scale", [
1107
- ["path", {
1108
- d: "M12 3v18",
1109
- key: "108xh3"
1110
- }],
1111
- ["path", {
1112
- d: "m19 8 3 8a5 5 0 0 1-6 0zV7",
1113
- key: "zcdpyk"
1114
- }],
1115
- ["path", {
1116
- d: "M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",
1117
- key: "1yorad"
1118
- }],
1119
- ["path", {
1120
- d: "m5 8 3 8a5 5 0 0 1-6 0zV7",
1121
- key: "eua70x"
1122
- }],
1123
- ["path", {
1124
- d: "M7 21h10",
1125
- key: "1b0cd5"
1126
- }]
1127
- ]);
1558
+ var __iconData$15 = {
1559
+ name: "scale",
1560
+ size: 24,
1561
+ node: [
1562
+ ["path", {
1563
+ d: "M12 3v18",
1564
+ key: "108xh3"
1565
+ }],
1566
+ ["path", {
1567
+ d: "m19 8 3 8a5 5 0 0 1-6 0zV7",
1568
+ key: "zcdpyk"
1569
+ }],
1570
+ ["path", {
1571
+ d: "M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",
1572
+ key: "1yorad"
1573
+ }],
1574
+ ["path", {
1575
+ d: "m5 8 3 8a5 5 0 0 1-6 0zV7",
1576
+ key: "eua70x"
1577
+ }],
1578
+ ["path", {
1579
+ d: "M7 21h10",
1580
+ key: "1b0cd5"
1581
+ }]
1582
+ ]
1583
+ };
1584
+ __iconData$15.node;
1585
+ var Scale = createLucideIcon(__iconData$15);
1586
+ //#endregion
1587
+ //#region node_modules/lucide-react/dist/esm/icons/search.mjs
1128
1588
  /**
1129
- * @license lucide-react v1.34.0 - ISC
1589
+ * @license lucide-react v1.45.0 - ISC
1130
1590
  *
1131
1591
  * This source code is licensed under the ISC license.
1132
1592
  * See the LICENSE file in the root directory of this source tree.
1133
1593
  */
1134
- var Search = createLucideIcon("search", [["path", {
1135
- d: "m21 21-4.34-4.34",
1136
- key: "14j7rj"
1137
- }], ["circle", {
1138
- cx: "11",
1139
- cy: "11",
1140
- r: "8",
1141
- key: "4ej97u"
1142
- }]]);
1143
- /**
1144
- * @license lucide-react v1.34.0 - ISC
1594
+ var __iconData$14 = {
1595
+ name: "search",
1596
+ size: 24,
1597
+ node: [["path", {
1598
+ d: "m21 21-4.34-4.34",
1599
+ key: "14j7rj"
1600
+ }], ["circle", {
1601
+ cx: "11",
1602
+ cy: "11",
1603
+ r: "8",
1604
+ key: "4ej97u"
1605
+ }]]
1606
+ };
1607
+ __iconData$14.node;
1608
+ var Search = createLucideIcon(__iconData$14);
1609
+ //#endregion
1610
+ //#region node_modules/lucide-react/dist/esm/icons/settings-2.mjs
1611
+ /**
1612
+ * @license lucide-react v1.45.0 - ISC
1145
1613
  *
1146
1614
  * This source code is licensed under the ISC license.
1147
1615
  * See the LICENSE file in the root directory of this source tree.
1148
1616
  */
1149
- var Settings2 = createLucideIcon("settings-2", [
1150
- ["path", {
1151
- d: "M14 17H5",
1152
- key: "gfn3mx"
1153
- }],
1154
- ["path", {
1155
- d: "M19 7h-9",
1156
- key: "6i9tg"
1157
- }],
1158
- ["circle", {
1159
- cx: "17",
1160
- cy: "17",
1161
- r: "3",
1162
- key: "18b49y"
1163
- }],
1164
- ["circle", {
1165
- cx: "7",
1166
- cy: "7",
1167
- r: "3",
1168
- key: "dfmy0x"
1169
- }]
1170
- ]);
1617
+ var __iconData$13 = {
1618
+ name: "settings-2",
1619
+ size: 24,
1620
+ node: [
1621
+ ["path", {
1622
+ d: "M14 17H5",
1623
+ key: "gfn3mx"
1624
+ }],
1625
+ ["path", {
1626
+ d: "M19 7h-9",
1627
+ key: "6i9tg"
1628
+ }],
1629
+ ["circle", {
1630
+ cx: "17",
1631
+ cy: "17",
1632
+ r: "3",
1633
+ key: "18b49y"
1634
+ }],
1635
+ ["circle", {
1636
+ cx: "7",
1637
+ cy: "7",
1638
+ r: "3",
1639
+ key: "dfmy0x"
1640
+ }]
1641
+ ]
1642
+ };
1643
+ __iconData$13.node;
1644
+ var Settings2 = createLucideIcon(__iconData$13);
1645
+ //#endregion
1646
+ //#region node_modules/lucide-react/dist/esm/icons/skip-back.mjs
1171
1647
  /**
1172
- * @license lucide-react v1.34.0 - ISC
1648
+ * @license lucide-react v1.45.0 - ISC
1173
1649
  *
1174
1650
  * This source code is licensed under the ISC license.
1175
1651
  * See the LICENSE file in the root directory of this source tree.
1176
1652
  */
1177
- var SkipBack = createLucideIcon("skip-back", [["path", {
1178
- d: "M17.971 4.285A2 2 0 0 1 21 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z",
1179
- key: "15892j"
1180
- }], ["path", {
1181
- d: "M3 20V4",
1182
- key: "1ptbpl"
1183
- }]]);
1653
+ var __iconData$12 = {
1654
+ name: "skip-back",
1655
+ size: 24,
1656
+ node: [["path", {
1657
+ d: "M17.971 4.285A2 2 0 0 1 21 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z",
1658
+ key: "15892j"
1659
+ }], ["path", {
1660
+ d: "M3 20V4",
1661
+ key: "1ptbpl"
1662
+ }]]
1663
+ };
1664
+ __iconData$12.node;
1665
+ var SkipBack = createLucideIcon(__iconData$12);
1666
+ //#endregion
1667
+ //#region node_modules/lucide-react/dist/esm/icons/skip-forward.mjs
1184
1668
  /**
1185
- * @license lucide-react v1.34.0 - ISC
1669
+ * @license lucide-react v1.45.0 - ISC
1186
1670
  *
1187
1671
  * This source code is licensed under the ISC license.
1188
1672
  * See the LICENSE file in the root directory of this source tree.
1189
1673
  */
1190
- var SkipForward = createLucideIcon("skip-forward", [["path", {
1191
- d: "M21 4v16",
1192
- key: "7j8fe9"
1193
- }], ["path", {
1194
- d: "M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",
1195
- key: "zs4d6"
1196
- }]]);
1674
+ var __iconData$11 = {
1675
+ name: "skip-forward",
1676
+ size: 24,
1677
+ node: [["path", {
1678
+ d: "M21 4v16",
1679
+ key: "7j8fe9"
1680
+ }], ["path", {
1681
+ d: "M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",
1682
+ key: "zs4d6"
1683
+ }]]
1684
+ };
1685
+ __iconData$11.node;
1686
+ var SkipForward = createLucideIcon(__iconData$11);
1687
+ //#endregion
1688
+ //#region node_modules/lucide-react/dist/esm/icons/tag.mjs
1197
1689
  /**
1198
- * @license lucide-react v1.34.0 - ISC
1690
+ * @license lucide-react v1.45.0 - ISC
1199
1691
  *
1200
1692
  * This source code is licensed under the ISC license.
1201
1693
  * See the LICENSE file in the root directory of this source tree.
1202
1694
  */
1203
- var Tag = createLucideIcon("tag", [["path", {
1204
- d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
1205
- key: "vktsd0"
1206
- }], ["circle", {
1207
- cx: "7.5",
1208
- cy: "7.5",
1209
- r: ".5",
1210
- fill: "currentColor",
1211
- key: "kqv944"
1212
- }]]);
1213
- /**
1214
- * @license lucide-react v1.34.0 - ISC
1695
+ var __iconData$10 = {
1696
+ name: "tag",
1697
+ size: 24,
1698
+ node: [["path", {
1699
+ d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
1700
+ key: "vktsd0"
1701
+ }], ["circle", {
1702
+ cx: "7.5",
1703
+ cy: "7.5",
1704
+ r: ".5",
1705
+ fill: "currentColor",
1706
+ key: "kqv944"
1707
+ }]]
1708
+ };
1709
+ __iconData$10.node;
1710
+ var Tag = createLucideIcon(__iconData$10);
1711
+ //#endregion
1712
+ //#region node_modules/lucide-react/dist/esm/icons/text-align-start.mjs
1713
+ /**
1714
+ * @license lucide-react v1.45.0 - ISC
1215
1715
  *
1216
1716
  * This source code is licensed under the ISC license.
1217
1717
  * See the LICENSE file in the root directory of this source tree.
1218
1718
  */
1219
- var TextAlignStart = createLucideIcon("text-align-start", [
1220
- ["path", {
1221
- d: "M21 5H3",
1222
- key: "1fi0y6"
1223
- }],
1224
- ["path", {
1225
- d: "M15 12H3",
1226
- key: "6jk70r"
1227
- }],
1228
- ["path", {
1229
- d: "M17 19H3",
1230
- key: "z6ezky"
1231
- }]
1232
- ]);
1719
+ var __iconData$9 = {
1720
+ name: "text-align-start",
1721
+ size: 24,
1722
+ node: [
1723
+ ["path", {
1724
+ d: "M21 5H3",
1725
+ key: "1fi0y6"
1726
+ }],
1727
+ ["path", {
1728
+ d: "M15 12H3",
1729
+ key: "6jk70r"
1730
+ }],
1731
+ ["path", {
1732
+ d: "M17 19H3",
1733
+ key: "z6ezky"
1734
+ }]
1735
+ ],
1736
+ aliases: ["text", "align-left"]
1737
+ };
1738
+ __iconData$9.node;
1739
+ var TextAlignStart = createLucideIcon(__iconData$9);
1740
+ //#endregion
1741
+ //#region node_modules/lucide-react/dist/esm/icons/toggle-right.mjs
1233
1742
  /**
1234
- * @license lucide-react v1.34.0 - ISC
1743
+ * @license lucide-react v1.45.0 - ISC
1235
1744
  *
1236
1745
  * This source code is licensed under the ISC license.
1237
1746
  * See the LICENSE file in the root directory of this source tree.
1238
1747
  */
1239
- var ToggleLeft = createLucideIcon("toggle-left", [["circle", {
1240
- cx: "9",
1241
- cy: "12",
1242
- r: "3",
1243
- key: "u3jwor"
1244
- }], ["rect", {
1245
- width: "20",
1246
- height: "14",
1247
- x: "2",
1248
- y: "5",
1249
- rx: "7",
1250
- key: "g7kal2"
1251
- }]]);
1252
- /**
1253
- * @license lucide-react v1.34.0 - ISC
1748
+ var __iconData$8 = {
1749
+ name: "toggle-right",
1750
+ size: 24,
1751
+ node: [["circle", {
1752
+ cx: "15",
1753
+ cy: "12",
1754
+ r: "3",
1755
+ key: "1afu0r"
1756
+ }], ["rect", {
1757
+ width: "20",
1758
+ height: "14",
1759
+ x: "2",
1760
+ y: "5",
1761
+ rx: "7",
1762
+ key: "g7kal2"
1763
+ }]]
1764
+ };
1765
+ __iconData$8.node;
1766
+ var ToggleRight = createLucideIcon(__iconData$8);
1767
+ //#endregion
1768
+ //#region node_modules/lucide-react/dist/esm/icons/toggle-left.mjs
1769
+ /**
1770
+ * @license lucide-react v1.45.0 - ISC
1254
1771
  *
1255
1772
  * This source code is licensed under the ISC license.
1256
1773
  * See the LICENSE file in the root directory of this source tree.
1257
1774
  */
1258
- var ToggleRight = createLucideIcon("toggle-right", [["circle", {
1259
- cx: "15",
1260
- cy: "12",
1261
- r: "3",
1262
- key: "1afu0r"
1263
- }], ["rect", {
1264
- width: "20",
1265
- height: "14",
1266
- x: "2",
1267
- y: "5",
1268
- rx: "7",
1269
- key: "g7kal2"
1270
- }]]);
1271
- /**
1272
- * @license lucide-react v1.34.0 - ISC
1273
- *
1274
- * This source code is licensed under the ISC license.
1275
- * See the LICENSE file in the root directory of this source tree.
1775
+ var __iconData$7 = {
1776
+ name: "toggle-left",
1777
+ size: 24,
1778
+ node: [["circle", {
1779
+ cx: "9",
1780
+ cy: "12",
1781
+ r: "3",
1782
+ key: "u3jwor"
1783
+ }], ["rect", {
1784
+ width: "20",
1785
+ height: "14",
1786
+ x: "2",
1787
+ y: "5",
1788
+ rx: "7",
1789
+ key: "g7kal2"
1790
+ }]]
1791
+ };
1792
+ __iconData$7.node;
1793
+ var ToggleLeft = createLucideIcon(__iconData$7);
1794
+ //#endregion
1795
+ //#region node_modules/lucide-react/dist/esm/icons/trash.mjs
1796
+ /**
1797
+ * @license lucide-react v1.45.0 - ISC
1798
+ *
1799
+ * This source code is licensed under the ISC license.
1800
+ * See the LICENSE file in the root directory of this source tree.
1276
1801
  */
1277
- var Trash2 = createLucideIcon("trash-2", [
1278
- ["path", {
1279
- d: "M10 11v6",
1280
- key: "nco0om"
1281
- }],
1282
- ["path", {
1283
- d: "M14 11v6",
1284
- key: "outv1u"
1285
- }],
1286
- ["path", {
1287
- d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",
1288
- key: "miytrc"
1289
- }],
1290
- ["path", {
1291
- d: "M3 6h18",
1292
- key: "d0wm0j"
1293
- }],
1294
- ["path", {
1295
- d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
1296
- key: "e791ji"
1297
- }]
1298
- ]);
1802
+ var __iconData$6 = {
1803
+ name: "trash",
1804
+ size: 24,
1805
+ node: [
1806
+ ["path", {
1807
+ d: "M10 11v6",
1808
+ key: "nco0om"
1809
+ }],
1810
+ ["path", {
1811
+ d: "M14 11v6",
1812
+ key: "outv1u"
1813
+ }],
1814
+ ["path", {
1815
+ d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",
1816
+ key: "miytrc"
1817
+ }],
1818
+ ["path", {
1819
+ d: "M3 6h18",
1820
+ key: "d0wm0j"
1821
+ }],
1822
+ ["path", {
1823
+ d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
1824
+ key: "e791ji"
1825
+ }]
1826
+ ],
1827
+ aliases: ["trash-2"]
1828
+ };
1829
+ __iconData$6.node;
1830
+ var Trash = createLucideIcon(__iconData$6);
1831
+ //#endregion
1832
+ //#region node_modules/lucide-react/dist/esm/icons/type.mjs
1299
1833
  /**
1300
- * @license lucide-react v1.34.0 - ISC
1834
+ * @license lucide-react v1.45.0 - ISC
1301
1835
  *
1302
1836
  * This source code is licensed under the ISC license.
1303
1837
  * See the LICENSE file in the root directory of this source tree.
1304
1838
  */
1305
- var Type = createLucideIcon("type", [
1306
- ["path", {
1307
- d: "M12 4v16",
1308
- key: "1654pz"
1309
- }],
1310
- ["path", {
1311
- d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",
1312
- key: "e0r10z"
1313
- }],
1314
- ["path", {
1315
- d: "M9 20h6",
1316
- key: "s66wpe"
1317
- }]
1318
- ]);
1839
+ var __iconData$5 = {
1840
+ name: "type",
1841
+ size: 24,
1842
+ node: [
1843
+ ["path", {
1844
+ d: "M12 4v16",
1845
+ key: "1654pz"
1846
+ }],
1847
+ ["path", {
1848
+ d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",
1849
+ key: "e0r10z"
1850
+ }],
1851
+ ["path", {
1852
+ d: "M9 20h6",
1853
+ key: "s66wpe"
1854
+ }]
1855
+ ]
1856
+ };
1857
+ __iconData$5.node;
1858
+ var Type = createLucideIcon(__iconData$5);
1859
+ //#endregion
1860
+ //#region node_modules/lucide-react/dist/esm/icons/undo-2.mjs
1319
1861
  /**
1320
- * @license lucide-react v1.34.0 - ISC
1862
+ * @license lucide-react v1.45.0 - ISC
1321
1863
  *
1322
1864
  * This source code is licensed under the ISC license.
1323
1865
  * See the LICENSE file in the root directory of this source tree.
1324
1866
  */
1325
- var Undo2 = createLucideIcon("undo-2", [["path", {
1326
- d: "M9 14 4 9l5-5",
1327
- key: "102s5s"
1328
- }], ["path", {
1329
- d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",
1330
- key: "f3b9sd"
1331
- }]]);
1867
+ var __iconData$4 = {
1868
+ name: "undo-2",
1869
+ size: 24,
1870
+ node: [["path", {
1871
+ d: "M9 14 4 9l5-5",
1872
+ key: "102s5s"
1873
+ }], ["path", {
1874
+ d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",
1875
+ key: "f3b9sd"
1876
+ }]]
1877
+ };
1878
+ __iconData$4.node;
1879
+ var Undo2 = createLucideIcon(__iconData$4);
1880
+ //#endregion
1881
+ //#region node_modules/lucide-react/dist/esm/icons/variable.mjs
1332
1882
  /**
1333
- * @license lucide-react v1.34.0 - ISC
1883
+ * @license lucide-react v1.45.0 - ISC
1334
1884
  *
1335
1885
  * This source code is licensed under the ISC license.
1336
1886
  * See the LICENSE file in the root directory of this source tree.
1337
1887
  */
1338
- var Variable = createLucideIcon("variable", [
1339
- ["path", {
1340
- d: "M8 21s-4-3-4-9 4-9 4-9",
1341
- key: "uto9ud"
1342
- }],
1343
- ["path", {
1344
- d: "M16 3s4 3 4 9-4 9-4 9",
1345
- key: "4w2vsq"
1346
- }],
1347
- ["line", {
1348
- x1: "15",
1349
- x2: "9",
1350
- y1: "9",
1351
- y2: "15",
1352
- key: "f7djnv"
1353
- }],
1354
- ["line", {
1355
- x1: "9",
1356
- x2: "15",
1357
- y1: "9",
1358
- y2: "15",
1359
- key: "1shsy8"
1360
- }]
1361
- ]);
1888
+ var __iconData$3 = {
1889
+ name: "variable",
1890
+ size: 24,
1891
+ node: [
1892
+ ["path", {
1893
+ d: "M8 21s-4-3-4-9 4-9 4-9",
1894
+ key: "uto9ud"
1895
+ }],
1896
+ ["path", {
1897
+ d: "M16 3s4 3 4 9-4 9-4 9",
1898
+ key: "4w2vsq"
1899
+ }],
1900
+ ["line", {
1901
+ x1: "15",
1902
+ x2: "9",
1903
+ y1: "9",
1904
+ y2: "15",
1905
+ key: "f7djnv"
1906
+ }],
1907
+ ["line", {
1908
+ x1: "9",
1909
+ x2: "15",
1910
+ y1: "9",
1911
+ y2: "15",
1912
+ key: "1shsy8"
1913
+ }]
1914
+ ]
1915
+ };
1916
+ __iconData$3.node;
1917
+ var Variable = createLucideIcon(__iconData$3);
1918
+ //#endregion
1919
+ //#region node_modules/lucide-react/dist/esm/icons/workflow.mjs
1362
1920
  /**
1363
- * @license lucide-react v1.34.0 - ISC
1921
+ * @license lucide-react v1.45.0 - ISC
1364
1922
  *
1365
1923
  * This source code is licensed under the ISC license.
1366
1924
  * See the LICENSE file in the root directory of this source tree.
1367
1925
  */
1368
- var Workflow = createLucideIcon("workflow", [
1369
- ["rect", {
1370
- width: "8",
1371
- height: "8",
1372
- x: "3",
1373
- y: "3",
1374
- rx: "2",
1375
- key: "by2w9f"
1376
- }],
1377
- ["path", {
1378
- d: "M7 11v4a2 2 0 0 0 2 2h4",
1379
- key: "xkn7yn"
1380
- }],
1381
- ["rect", {
1382
- width: "8",
1383
- height: "8",
1384
- x: "13",
1385
- y: "13",
1386
- rx: "2",
1387
- key: "1cgmvn"
1388
- }]
1389
- ]);
1926
+ var __iconData$2 = {
1927
+ name: "workflow",
1928
+ size: 24,
1929
+ node: [
1930
+ ["rect", {
1931
+ width: "8",
1932
+ height: "8",
1933
+ x: "3",
1934
+ y: "3",
1935
+ rx: "2",
1936
+ key: "by2w9f"
1937
+ }],
1938
+ ["path", {
1939
+ d: "M7 11v4a2 2 0 0 0 2 2h4",
1940
+ key: "xkn7yn"
1941
+ }],
1942
+ ["rect", {
1943
+ width: "8",
1944
+ height: "8",
1945
+ x: "13",
1946
+ y: "13",
1947
+ rx: "2",
1948
+ key: "1cgmvn"
1949
+ }]
1950
+ ]
1951
+ };
1952
+ __iconData$2.node;
1953
+ var Workflow = createLucideIcon(__iconData$2);
1954
+ //#endregion
1955
+ //#region node_modules/lucide-react/dist/esm/icons/x.mjs
1390
1956
  /**
1391
- * @license lucide-react v1.34.0 - ISC
1957
+ * @license lucide-react v1.45.0 - ISC
1392
1958
  *
1393
1959
  * This source code is licensed under the ISC license.
1394
1960
  * See the LICENSE file in the root directory of this source tree.
1395
1961
  */
1396
- var X$1 = createLucideIcon("x", [["path", {
1397
- d: "M18 6 6 18",
1398
- key: "1bl5f8"
1399
- }], ["path", {
1400
- d: "m6 6 12 12",
1401
- key: "d8bk6v"
1402
- }]]);
1962
+ var __iconData$1 = {
1963
+ name: "x",
1964
+ size: 24,
1965
+ node: [["path", {
1966
+ d: "M18 6 6 18",
1967
+ key: "1bl5f8"
1968
+ }], ["path", {
1969
+ d: "m6 6 12 12",
1970
+ key: "d8bk6v"
1971
+ }]]
1972
+ };
1973
+ __iconData$1.node;
1974
+ var X$1 = createLucideIcon(__iconData$1);
1975
+ //#endregion
1976
+ //#region node_modules/lucide-react/dist/esm/icons/zoom-in.mjs
1403
1977
  /**
1404
- * @license lucide-react v1.34.0 - ISC
1978
+ * @license lucide-react v1.45.0 - ISC
1405
1979
  *
1406
1980
  * This source code is licensed under the ISC license.
1407
1981
  * See the LICENSE file in the root directory of this source tree.
1408
1982
  */
1409
- var ZoomIn = createLucideIcon("zoom-in", [
1410
- ["circle", {
1411
- cx: "11",
1412
- cy: "11",
1413
- r: "8",
1414
- key: "4ej97u"
1415
- }],
1416
- ["line", {
1417
- x1: "21",
1418
- x2: "16.65",
1419
- y1: "21",
1420
- y2: "16.65",
1421
- key: "13gj7c"
1422
- }],
1423
- ["line", {
1424
- x1: "11",
1425
- x2: "11",
1426
- y1: "8",
1427
- y2: "14",
1428
- key: "1vmskp"
1429
- }],
1430
- ["line", {
1431
- x1: "8",
1432
- x2: "14",
1433
- y1: "11",
1434
- y2: "11",
1435
- key: "durymu"
1436
- }]
1437
- ]);
1983
+ var __iconData = {
1984
+ name: "zoom-in",
1985
+ size: 24,
1986
+ node: [
1987
+ ["circle", {
1988
+ cx: "11",
1989
+ cy: "11",
1990
+ r: "8",
1991
+ key: "4ej97u"
1992
+ }],
1993
+ ["line", {
1994
+ x1: "21",
1995
+ x2: "16.65",
1996
+ y1: "21",
1997
+ y2: "16.65",
1998
+ key: "13gj7c"
1999
+ }],
2000
+ ["line", {
2001
+ x1: "11",
2002
+ x2: "11",
2003
+ y1: "8",
2004
+ y2: "14",
2005
+ key: "1vmskp"
2006
+ }],
2007
+ ["line", {
2008
+ x1: "8",
2009
+ x2: "14",
2010
+ y1: "11",
2011
+ y2: "11",
2012
+ key: "durymu"
2013
+ }]
2014
+ ]
2015
+ };
2016
+ __iconData.node;
2017
+ var ZoomIn = createLucideIcon(__iconData);
1438
2018
  //#endregion
1439
2019
  //#region src/components/logic-editor/config/operators/variable.ts
1440
2020
  var variableOperators = {
@@ -7437,127 +8017,1044 @@ var flagdOperators = {
7437
8017
  ]
7438
8018
  },
7439
8019
  ui: {
7440
- icon: "boxes",
7441
- shortLabel: "frac",
7442
- nodeType: "operator",
7443
- addArgumentLabel: "Add Bucket"
8020
+ icon: "boxes",
8021
+ shortLabel: "frac",
8022
+ nodeType: "operator",
8023
+ addArgumentLabel: "Add Bucket"
8024
+ }
8025
+ },
8026
+ sem_ver: {
8027
+ name: "sem_ver",
8028
+ label: "Semantic Version",
8029
+ category: "flagd",
8030
+ description: "Compare two semantic versions",
8031
+ arity: {
8032
+ type: "ternary",
8033
+ min: 3,
8034
+ max: 3,
8035
+ args: [
8036
+ {
8037
+ name: "version",
8038
+ label: "Version",
8039
+ type: "string",
8040
+ required: true,
8041
+ description: "Version to test (e.g. {\"var\": \"app_version\"})"
8042
+ },
8043
+ {
8044
+ name: "operator",
8045
+ label: "Operator",
8046
+ type: "string",
8047
+ required: true,
8048
+ description: "One of =, !=, <, <=, >, >=, ^ (same major), ~ (same major.minor)"
8049
+ },
8050
+ {
8051
+ name: "target",
8052
+ label: "Target",
8053
+ type: "string",
8054
+ required: true,
8055
+ description: "Version to compare against"
8056
+ }
8057
+ ]
8058
+ },
8059
+ help: {
8060
+ summary: "Compare semantic versions with =, !=, <, <=, >, >=, ^ or ~",
8061
+ details: "Parses both versions per SemVer 2.0 (pre-release ordering included) and applies the operator. ^ matches the same major version, ~ the same major and minor. Inputs are normalized first: a leading v/V is stripped, partial versions are padded (\"1.2\" is \"1.2.0\"), numbers are coerced to strings and build metadata is dropped.",
8062
+ returnType: "boolean",
8063
+ examples: [
8064
+ {
8065
+ title: "Minimum version",
8066
+ rule: { sem_ver: [
8067
+ { var: "app_version" },
8068
+ ">=",
8069
+ "1.2.0"
8070
+ ] },
8071
+ data: { app_version: "1.3.0" },
8072
+ result: true
8073
+ },
8074
+ {
8075
+ title: "Caret: same major",
8076
+ rule: { sem_ver: [
8077
+ { var: "app_version" },
8078
+ "^",
8079
+ "1.0.0"
8080
+ ] },
8081
+ data: { app_version: "1.5.3" },
8082
+ result: true,
8083
+ note: "2.0.0 would be false"
8084
+ },
8085
+ {
8086
+ title: "Tilde: same major and minor",
8087
+ rule: { sem_ver: [
8088
+ { var: "app_version" },
8089
+ "~",
8090
+ "1.2.0"
8091
+ ] },
8092
+ data: { app_version: "1.3.0" },
8093
+ result: false,
8094
+ note: "1.2.5 would be true"
8095
+ },
8096
+ {
8097
+ title: "Normalized inputs",
8098
+ rule: { sem_ver: [
8099
+ "v1.2",
8100
+ "<",
8101
+ "1.2.1"
8102
+ ] },
8103
+ result: true,
8104
+ note: "v prefix stripped, \"1.2\" padded to \"1.2.0\""
8105
+ },
8106
+ {
8107
+ title: "Pre-release ordering",
8108
+ rule: { sem_ver: [
8109
+ "1.0.0-alpha",
8110
+ "<",
8111
+ "1.0.0"
8112
+ ] },
8113
+ result: true
8114
+ },
8115
+ {
8116
+ title: "Malformed version",
8117
+ rule: { sem_ver: [
8118
+ "not-a-version",
8119
+ ">",
8120
+ "1.0.0"
8121
+ ] },
8122
+ result: null,
8123
+ note: "Unparseable input or an unknown operator returns null, not an error"
8124
+ }
8125
+ ],
8126
+ notes: [
8127
+ "Operators: =, !=, <, <=, >, >=, ^ (same major), ~ (same major.minor)",
8128
+ "Normalizations: strip leading v/V, pad partial versions, coerce numbers, drop +build metadata",
8129
+ "Pre-releases sort before the release: 1.0.0-alpha < 1.0.0-beta < 1.0.0",
8130
+ "Malformed versions, wrong argument count or an unknown operator return null"
8131
+ ],
8132
+ seeAlso: [
8133
+ "fractional",
8134
+ "if",
8135
+ ">="
8136
+ ]
8137
+ },
8138
+ ui: {
8139
+ icon: "tag",
8140
+ shortLabel: "semver",
8141
+ nodeType: "operator"
8142
+ }
8143
+ }
8144
+ };
8145
+ //#endregion
8146
+ //#region src/components/logic-editor/config/operators/tensor.ts
8147
+ var DTYPES = "bool, i8, u8, i16, u16, i32, u32, i64, u64, f16, bf16, f32, f64";
8148
+ var tensorOperators = {
8149
+ tensor: {
8150
+ name: "tensor",
8151
+ label: "Tensor",
8152
+ category: "tensor",
8153
+ description: "Build a tensor, or pass one through",
8154
+ arity: {
8155
+ type: "range",
8156
+ min: 1,
8157
+ max: 2,
8158
+ args: [{
8159
+ name: "value",
8160
+ label: "Value",
8161
+ type: "any",
8162
+ required: true
8163
+ }, {
8164
+ name: "dtype",
8165
+ label: "Dtype",
8166
+ type: "string",
8167
+ required: false
8168
+ }]
8169
+ },
8170
+ help: {
8171
+ summary: "The family entry point: nested arrays, the wire form, or a tensor",
8172
+ details: `Nested JSON arrays need a declared dtype (${DTYPES}) and infer their shape from the nesting. The tagged \`{"tensor": {...}}\` wire form decodes from its base64, and an existing tensor passes through. An element that will not fit the dtype is an error, never a truncation.`,
8173
+ returnType: "any",
8174
+ examples: [{
8175
+ title: "From nested arrays",
8176
+ rule: { to_list: [{ tensor: [[[1, 2], [3, 4]], "f32"] }] },
8177
+ result: [[1, 2], [3, 4]]
8178
+ }, {
8179
+ title: "Read a tensor out of the data",
8180
+ rule: { shape: [{ tensor: [{ var: "prediction" }] }] },
8181
+ data: { prediction: { tensor: {
8182
+ dtype: "u8",
8183
+ shape: [3],
8184
+ data: "AQID"
8185
+ } } },
8186
+ result: [3]
8187
+ }],
8188
+ notes: ["A flat list plus a shape is `reshape` over this", "A bare scalar makes a 0-d tensor"],
8189
+ seeAlso: [
8190
+ "to_list",
8191
+ "reshape",
8192
+ "zeros"
8193
+ ]
8194
+ },
8195
+ ui: {
8196
+ icon: "layers",
8197
+ shortLabel: "tensor",
8198
+ nodeType: "operator"
8199
+ }
8200
+ },
8201
+ zeros: {
8202
+ name: "zeros",
8203
+ label: "Zeros",
8204
+ category: "tensor",
8205
+ description: "An all-zero tensor of a given shape",
8206
+ arity: {
8207
+ type: "binary",
8208
+ args: [{
8209
+ name: "shape",
8210
+ label: "Shape",
8211
+ type: "array",
8212
+ required: true
8213
+ }, {
8214
+ name: "dtype",
8215
+ label: "Dtype",
8216
+ type: "string",
8217
+ required: true
8218
+ }]
8219
+ },
8220
+ help: {
8221
+ summary: "Allocate a zero-filled tensor",
8222
+ details: "Needs no element support, so this works on every dtype including f16 / bf16 without the `tensor-half` feature.",
8223
+ returnType: "any",
8224
+ examples: [{
8225
+ title: "A 2x3 grid of zeros",
8226
+ rule: { to_list: [{ zeros: [[2, 3], "i32"] }] },
8227
+ result: [[
8228
+ 0,
8229
+ 0,
8230
+ 0
8231
+ ], [
8232
+ 0,
8233
+ 0,
8234
+ 0
8235
+ ]]
8236
+ }],
8237
+ seeAlso: ["full", "tensor"]
8238
+ },
8239
+ ui: {
8240
+ icon: "boxes",
8241
+ shortLabel: "zeros",
8242
+ nodeType: "operator"
8243
+ }
8244
+ },
8245
+ full: {
8246
+ name: "full",
8247
+ label: "Full",
8248
+ category: "tensor",
8249
+ description: "A tensor with every element set to one value",
8250
+ arity: {
8251
+ type: "ternary",
8252
+ args: [
8253
+ {
8254
+ name: "shape",
8255
+ label: "Shape",
8256
+ type: "array",
8257
+ required: true
8258
+ },
8259
+ {
8260
+ name: "dtype",
8261
+ label: "Dtype",
8262
+ type: "string",
8263
+ required: true
8264
+ },
8265
+ {
8266
+ name: "value",
8267
+ label: "Value",
8268
+ type: "any",
8269
+ required: true
8270
+ }
8271
+ ]
8272
+ },
8273
+ help: {
8274
+ summary: "Allocate a tensor filled with a constant",
8275
+ returnType: "any",
8276
+ examples: [{
8277
+ title: "A 2x2 of 1.5",
8278
+ rule: { to_list: [{ full: [
8279
+ [2, 2],
8280
+ "f32",
8281
+ 1.5
8282
+ ] }] },
8283
+ result: [[1.5, 1.5], [1.5, 1.5]]
8284
+ }],
8285
+ seeAlso: ["zeros", "scatter"]
8286
+ },
8287
+ ui: {
8288
+ icon: "boxes",
8289
+ shortLabel: "full",
8290
+ nodeType: "operator"
8291
+ }
8292
+ },
8293
+ scatter: {
8294
+ name: "scatter",
8295
+ label: "Scatter",
8296
+ category: "tensor",
8297
+ description: "Sparse writes into an otherwise-zero tensor",
8298
+ arity: {
8299
+ type: "range",
8300
+ min: 3,
8301
+ max: 4,
8302
+ args: [
8303
+ {
8304
+ name: "points",
8305
+ label: "Points",
8306
+ type: "array",
8307
+ required: true
8308
+ },
8309
+ {
8310
+ name: "shape",
8311
+ label: "Shape",
8312
+ type: "array",
8313
+ required: true
8314
+ },
8315
+ {
8316
+ name: "dtype",
8317
+ label: "Dtype",
8318
+ type: "string",
8319
+ required: true
8320
+ },
8321
+ {
8322
+ name: "value",
8323
+ label: "Value",
8324
+ type: "any",
8325
+ required: false
8326
+ }
8327
+ ]
8328
+ },
8329
+ help: {
8330
+ summary: "Write values at listed coordinates, zero everywhere else",
8331
+ details: "A point of length `rank` writes the default value (1 unless given); one extra trailing entry is the value to write. Out-of-range points are dropped rather than rejected, because the usual producer is a detector emitting coordinates that may fall outside the grid.",
8332
+ returnType: "any",
8333
+ examples: [{
8334
+ title: "Two points on a 2x2 grid",
8335
+ rule: { to_list: [{ scatter: [
8336
+ [[0, 1], [1, 0]],
8337
+ [2, 2],
8338
+ "u8"
8339
+ ] }] },
8340
+ result: [[0, 1], [1, 0]]
8341
+ }],
8342
+ notes: ["Out-of-range and negative coordinates are dropped"],
8343
+ seeAlso: [
8344
+ "rle_expand",
8345
+ "one_hot",
8346
+ "full"
8347
+ ]
8348
+ },
8349
+ ui: {
8350
+ icon: "hash",
8351
+ shortLabel: "scatter",
8352
+ nodeType: "operator"
8353
+ }
8354
+ },
8355
+ rle_expand: {
8356
+ name: "rle_expand",
8357
+ label: "RLE Expand",
8358
+ category: "tensor",
8359
+ description: "Run-length decode into a tensor",
8360
+ arity: {
8361
+ type: "ternary",
8362
+ args: [
8363
+ {
8364
+ name: "runs",
8365
+ label: "Runs",
8366
+ type: "array",
8367
+ required: true
8368
+ },
8369
+ {
8370
+ name: "shape",
8371
+ label: "Shape",
8372
+ type: "array",
8373
+ required: true
8374
+ },
8375
+ {
8376
+ name: "dtype",
8377
+ label: "Dtype",
8378
+ type: "string",
8379
+ required: true
8380
+ }
8381
+ ]
8382
+ },
8383
+ help: {
8384
+ summary: "Expand a flat [value, count, ...] list row-major",
8385
+ details: "The run lengths must sum to exactly the shape element count: a mask that decodes to the wrong size is a producer bug, and zero-filling the remainder would hide it.",
8386
+ returnType: "any",
8387
+ examples: [{
8388
+ title: "Two runs into a 2x2",
8389
+ rule: { to_list: [{ rle_expand: [
8390
+ [
8391
+ 0,
8392
+ 2,
8393
+ 1,
8394
+ 2
8395
+ ],
8396
+ [2, 2],
8397
+ "u8"
8398
+ ] }] },
8399
+ result: [[0, 0], [1, 1]]
8400
+ }],
8401
+ seeAlso: ["scatter", "one_hot"]
8402
+ },
8403
+ ui: {
8404
+ icon: "repeat",
8405
+ shortLabel: "rle",
8406
+ nodeType: "operator"
8407
+ }
8408
+ },
8409
+ one_hot: {
8410
+ name: "one_hot",
8411
+ label: "One-Hot",
8412
+ category: "tensor",
8413
+ description: "Build a [len, depth] indicator matrix",
8414
+ arity: {
8415
+ type: "ternary",
8416
+ args: [
8417
+ {
8418
+ name: "indices",
8419
+ label: "Indices",
8420
+ type: "array",
8421
+ required: true
8422
+ },
8423
+ {
8424
+ name: "depth",
8425
+ label: "Depth",
8426
+ type: "number",
8427
+ required: true
8428
+ },
8429
+ {
8430
+ name: "dtype",
8431
+ label: "Dtype",
8432
+ type: "string",
8433
+ required: true
8434
+ }
8435
+ ]
8436
+ },
8437
+ help: {
8438
+ summary: "Encode category indices as indicator rows",
8439
+ returnType: "any",
8440
+ examples: [{
8441
+ title: "Two categories out of three",
8442
+ rule: { to_list: [{ one_hot: [
8443
+ [0, 2],
8444
+ 3,
8445
+ "u8"
8446
+ ] }] },
8447
+ result: [[
8448
+ 1,
8449
+ 0,
8450
+ 0
8451
+ ], [
8452
+ 0,
8453
+ 0,
8454
+ 1
8455
+ ]]
8456
+ }],
8457
+ notes: ["An index outside 0..depth leaves its row all-zero"],
8458
+ seeAlso: ["scatter", "argmax"]
8459
+ },
8460
+ ui: {
8461
+ icon: "binary",
8462
+ shortLabel: "one_hot",
8463
+ nodeType: "operator"
8464
+ }
8465
+ },
8466
+ stack: {
8467
+ name: "stack",
8468
+ label: "Stack",
8469
+ category: "tensor",
8470
+ description: "Join equal-shaped tensors along a new axis",
8471
+ arity: {
8472
+ type: "binary",
8473
+ args: [{
8474
+ name: "tensors",
8475
+ label: "Tensors",
8476
+ type: "array",
8477
+ required: true
8478
+ }, {
8479
+ name: "axis",
8480
+ label: "Axis",
8481
+ type: "number",
8482
+ required: true
8483
+ }]
8484
+ },
8485
+ help: {
8486
+ summary: "Join along a new axis, raising the rank by one",
8487
+ returnType: "any",
8488
+ examples: [{
8489
+ title: "Two vectors into a matrix",
8490
+ rule: { to_list: [{ stack: [[{ tensor: [[1, 2], "u8"] }, { tensor: [[3, 4], "u8"] }], 0] }] },
8491
+ result: [[1, 2], [3, 4]]
8492
+ }],
8493
+ notes: ["Every tensor must share a shape and a dtype"],
8494
+ seeAlso: ["concat", "unstack"]
8495
+ },
8496
+ ui: {
8497
+ icon: "layers",
8498
+ shortLabel: "stack",
8499
+ nodeType: "operator"
8500
+ }
8501
+ },
8502
+ concat: {
8503
+ name: "concat",
8504
+ label: "Concat",
8505
+ category: "tensor",
8506
+ description: "Join tensors along an existing axis",
8507
+ arity: {
8508
+ type: "binary",
8509
+ args: [{
8510
+ name: "tensors",
8511
+ label: "Tensors",
8512
+ type: "array",
8513
+ required: true
8514
+ }, {
8515
+ name: "axis",
8516
+ label: "Axis",
8517
+ type: "number",
8518
+ required: true
8519
+ }]
8520
+ },
8521
+ help: {
8522
+ summary: "Join along an existing axis, keeping the rank",
8523
+ returnType: "any",
8524
+ examples: [{
8525
+ title: "Append along axis 0",
8526
+ rule: { to_list: [{ concat: [[{ tensor: [[1, 2], "u8"] }, { tensor: [[3], "u8"] }], 0] }] },
8527
+ result: [
8528
+ 1,
8529
+ 2,
8530
+ 3
8531
+ ]
8532
+ }],
8533
+ notes: ["Shapes must match on every axis but the joined one"],
8534
+ seeAlso: ["stack", "unstack"]
8535
+ },
8536
+ ui: {
8537
+ icon: "git-merge",
8538
+ shortLabel: "concat",
8539
+ nodeType: "operator"
8540
+ }
8541
+ },
8542
+ unstack: {
8543
+ name: "unstack",
8544
+ label: "Unstack",
8545
+ category: "tensor",
8546
+ description: "Split along an axis into an array of tensors",
8547
+ arity: {
8548
+ type: "binary",
8549
+ args: [{
8550
+ name: "tensor",
8551
+ label: "Tensor",
8552
+ type: "any",
8553
+ required: true
8554
+ }, {
8555
+ name: "axis",
8556
+ label: "Axis",
8557
+ type: "number",
8558
+ required: true
8559
+ }]
8560
+ },
8561
+ help: {
8562
+ summary: "The inverse of stack: split and drop the axis",
8563
+ returnType: "array",
8564
+ examples: [{
8565
+ title: "Rows of a matrix",
8566
+ rule: { map: [{ unstack: [{ tensor: [[[1, 2], [3, 4]], "u8"] }, 0] }, { to_list: [{ val: [] }] }] },
8567
+ result: [[1, 2], [3, 4]]
8568
+ }],
8569
+ seeAlso: ["stack", "gather"]
8570
+ },
8571
+ ui: {
8572
+ icon: "git-branch",
8573
+ shortLabel: "unstack",
8574
+ nodeType: "operator"
8575
+ }
8576
+ },
8577
+ reshape: {
8578
+ name: "reshape",
8579
+ label: "Reshape",
8580
+ category: "tensor",
8581
+ description: "Reinterpret the same bytes under a new shape",
8582
+ arity: {
8583
+ type: "binary",
8584
+ args: [{
8585
+ name: "tensor",
8586
+ label: "Tensor",
8587
+ type: "any",
8588
+ required: true
8589
+ }, {
8590
+ name: "shape",
8591
+ label: "Shape",
8592
+ type: "array",
8593
+ required: true
8594
+ }]
8595
+ },
8596
+ help: {
8597
+ summary: "A new header over the same payload — the one zero-copy operator",
8598
+ details: "The element count must match exactly; there is no inferred -1 dimension.",
8599
+ returnType: "any",
8600
+ examples: [{
8601
+ title: "A flat list into a matrix",
8602
+ rule: { to_list: [{ reshape: [{ tensor: [[
8603
+ 1,
8604
+ 2,
8605
+ 3,
8606
+ 4
8607
+ ], "u8"] }, [2, 2]] }] },
8608
+ result: [[1, 2], [3, 4]]
8609
+ }],
8610
+ seeAlso: ["transpose", "tensor"]
8611
+ },
8612
+ ui: {
8613
+ icon: "box",
8614
+ shortLabel: "reshape",
8615
+ nodeType: "operator"
8616
+ }
8617
+ },
8618
+ transpose: {
8619
+ name: "transpose",
8620
+ label: "Transpose",
8621
+ category: "tensor",
8622
+ description: "Permute the axes",
8623
+ arity: {
8624
+ type: "range",
8625
+ min: 1,
8626
+ max: 2,
8627
+ args: [{
8628
+ name: "tensor",
8629
+ label: "Tensor",
8630
+ type: "any",
8631
+ required: true
8632
+ }, {
8633
+ name: "perm",
8634
+ label: "Permutation",
8635
+ type: "array",
8636
+ required: false
8637
+ }]
8638
+ },
8639
+ help: {
8640
+ summary: "Reorder the axes; defaults to a full reversal",
8641
+ returnType: "any",
8642
+ examples: [{
8643
+ title: "Transpose a 2x2",
8644
+ rule: { to_list: [{ transpose: [{ tensor: [[[1, 2], [3, 4]], "u8"] }] }] },
8645
+ result: [[1, 3], [2, 4]]
8646
+ }],
8647
+ seeAlso: ["reshape", "gather"]
8648
+ },
8649
+ ui: {
8650
+ icon: "arrow-up",
8651
+ shortLabel: "transpose",
8652
+ nodeType: "operator"
8653
+ }
8654
+ },
8655
+ pad: {
8656
+ name: "pad",
8657
+ label: "Pad",
8658
+ category: "tensor",
8659
+ description: "Grow every axis by a leading and trailing margin",
8660
+ arity: {
8661
+ type: "range",
8662
+ min: 3,
8663
+ max: 4,
8664
+ args: [
8665
+ {
8666
+ name: "tensor",
8667
+ label: "Tensor",
8668
+ type: "any",
8669
+ required: true
8670
+ },
8671
+ {
8672
+ name: "before",
8673
+ label: "Before",
8674
+ type: "array",
8675
+ required: true
8676
+ },
8677
+ {
8678
+ name: "after",
8679
+ label: "After",
8680
+ type: "array",
8681
+ required: true
8682
+ },
8683
+ {
8684
+ name: "value",
8685
+ label: "Fill",
8686
+ type: "any",
8687
+ required: false
8688
+ }
8689
+ ]
8690
+ },
8691
+ help: {
8692
+ summary: "Add a margin around the tensor, filled with `value` (0 by default)",
8693
+ returnType: "any",
8694
+ examples: [{
8695
+ title: "One before, two after",
8696
+ rule: { to_list: [{ pad: [
8697
+ { tensor: [[1, 2], "u8"] },
8698
+ [1],
8699
+ [2]
8700
+ ] }] },
8701
+ result: [
8702
+ 0,
8703
+ 1,
8704
+ 2,
8705
+ 0,
8706
+ 0
8707
+ ]
8708
+ }],
8709
+ notes: ["`before` and `after` take one entry per axis"],
8710
+ seeAlso: ["crop"]
8711
+ },
8712
+ ui: {
8713
+ icon: "box",
8714
+ shortLabel: "pad",
8715
+ nodeType: "operator"
8716
+ }
8717
+ },
8718
+ crop: {
8719
+ name: "crop",
8720
+ label: "Crop",
8721
+ category: "tensor",
8722
+ description: "Cut a sub-block out of a tensor",
8723
+ arity: {
8724
+ type: "ternary",
8725
+ args: [
8726
+ {
8727
+ name: "tensor",
8728
+ label: "Tensor",
8729
+ type: "any",
8730
+ required: true
8731
+ },
8732
+ {
8733
+ name: "offset",
8734
+ label: "Offset",
8735
+ type: "array",
8736
+ required: true
8737
+ },
8738
+ {
8739
+ name: "shape",
8740
+ label: "Shape",
8741
+ type: "array",
8742
+ required: true
8743
+ }
8744
+ ]
8745
+ },
8746
+ help: {
8747
+ summary: "The inverse of pad: take a window, which must lie inside the input",
8748
+ returnType: "any",
8749
+ examples: [{
8750
+ title: "The middle two of four",
8751
+ rule: { to_list: [{ crop: [
8752
+ { tensor: [[
8753
+ 1,
8754
+ 2,
8755
+ 3,
8756
+ 4
8757
+ ], "u8"] },
8758
+ [1],
8759
+ [2]
8760
+ ] }] },
8761
+ result: [2, 3]
8762
+ }],
8763
+ seeAlso: ["pad", "gather"]
8764
+ },
8765
+ ui: {
8766
+ icon: "box",
8767
+ shortLabel: "crop",
8768
+ nodeType: "operator"
8769
+ }
8770
+ },
8771
+ cast: {
8772
+ name: "cast",
8773
+ label: "Cast",
8774
+ category: "tensor",
8775
+ description: "Convert a tensor to another dtype",
8776
+ arity: {
8777
+ type: "binary",
8778
+ args: [{
8779
+ name: "tensor",
8780
+ label: "Tensor",
8781
+ type: "any",
8782
+ required: true
8783
+ }, {
8784
+ name: "dtype",
8785
+ label: "Dtype",
8786
+ type: "string",
8787
+ required: true
8788
+ }]
8789
+ },
8790
+ help: {
8791
+ summary: "The one cross-dtype conversion, and deliberately lossy",
8792
+ details: "Narrowing saturates rather than wrapping (300 to u8 is 255, not 44) and NaN becomes 0. Values pivot through f64 internally, so i64 / u64 elements above 2^53 lose their low bits.",
8793
+ returnType: "any",
8794
+ examples: [{
8795
+ title: "Saturating narrowing",
8796
+ rule: { to_list: [{ cast: [{ tensor: [[
8797
+ 1.7,
8798
+ 300,
8799
+ -5
8800
+ ], "f64"] }, "u8"] }] },
8801
+ result: [
8802
+ 1,
8803
+ 255,
8804
+ 0
8805
+ ]
8806
+ }],
8807
+ seeAlso: ["normalize", "dtype"]
8808
+ },
8809
+ ui: {
8810
+ icon: "type",
8811
+ shortLabel: "cast",
8812
+ nodeType: "operator"
7444
8813
  }
7445
8814
  },
7446
- sem_ver: {
7447
- name: "sem_ver",
7448
- label: "Semantic Version",
7449
- category: "flagd",
7450
- description: "Compare two semantic versions",
8815
+ normalize: {
8816
+ name: "normalize",
8817
+ label: "Normalize",
8818
+ category: "tensor",
8819
+ description: "(x - mean) * scale, producing f32",
7451
8820
  arity: {
7452
- type: "ternary",
7453
- min: 3,
8821
+ type: "range",
8822
+ min: 2,
7454
8823
  max: 3,
7455
8824
  args: [
7456
8825
  {
7457
- name: "version",
7458
- label: "Version",
7459
- type: "string",
7460
- required: true,
7461
- description: "Version to test (e.g. {\"var\": \"app_version\"})"
8826
+ name: "tensor",
8827
+ label: "Tensor",
8828
+ type: "any",
8829
+ required: true
7462
8830
  },
7463
8831
  {
7464
- name: "operator",
7465
- label: "Operator",
7466
- type: "string",
7467
- required: true,
7468
- description: "One of =, !=, <, <=, >, >=, ^ (same major), ~ (same major.minor)"
8832
+ name: "mean",
8833
+ label: "Mean",
8834
+ type: "number",
8835
+ required: true
7469
8836
  },
7470
8837
  {
7471
- name: "target",
7472
- label: "Target",
7473
- type: "string",
7474
- required: true,
7475
- description: "Version to compare against"
8838
+ name: "scale",
8839
+ label: "Scale",
8840
+ type: "number",
8841
+ required: false
7476
8842
  }
7477
8843
  ]
7478
8844
  },
7479
8845
  help: {
7480
- summary: "Compare semantic versions with =, !=, <, <=, >, >=, ^ or ~",
7481
- details: "Parses both versions per SemVer 2.0 (pre-release ordering included) and applies the operator. ^ matches the same major version, ~ the same major and minor. Inputs are normalized first: a leading v/V is stripped, partial versions are padded (\"1.2\" is \"1.2.0\"), numbers are coerced to strings and build metadata is dropped.",
7482
- returnType: "boolean",
7483
- examples: [
7484
- {
7485
- title: "Minimum version",
7486
- rule: { sem_ver: [
7487
- { var: "app_version" },
7488
- ">=",
7489
- "1.2.0"
7490
- ] },
7491
- data: { app_version: "1.3.0" },
7492
- result: true
7493
- },
7494
- {
7495
- title: "Caret: same major",
7496
- rule: { sem_ver: [
7497
- { var: "app_version" },
7498
- "^",
7499
- "1.0.0"
7500
- ] },
7501
- data: { app_version: "1.5.3" },
7502
- result: true,
7503
- note: "2.0.0 would be false"
7504
- },
7505
- {
7506
- title: "Tilde: same major and minor",
7507
- rule: { sem_ver: [
7508
- { var: "app_version" },
7509
- "~",
7510
- "1.2.0"
7511
- ] },
7512
- data: { app_version: "1.3.0" },
7513
- result: false,
7514
- note: "1.2.5 would be true"
7515
- },
8846
+ summary: "Shift and scale into the float range a model expects",
8847
+ details: "The output dtype is always f32. `scale` defaults to 1, so the two-argument form is a plain mean subtraction. Per-channel normalization is unstack + normalize + stack.",
8848
+ returnType: "any",
8849
+ examples: [{
8850
+ title: "Pixel range to roughly -64..64",
8851
+ rule: { to_list: [{ normalize: [
8852
+ { tensor: [[0, 255], "u8"] },
8853
+ 127.5,
8854
+ .5
8855
+ ] }] },
8856
+ result: [-63.75, 63.75]
8857
+ }],
8858
+ seeAlso: ["cast", "unstack"]
8859
+ },
8860
+ ui: {
8861
+ icon: "calculator",
8862
+ shortLabel: "normalize",
8863
+ nodeType: "operator"
8864
+ }
8865
+ },
8866
+ argmax: {
8867
+ name: "argmax",
8868
+ label: "Argmax",
8869
+ category: "tensor",
8870
+ description: "Index of the largest element along an axis",
8871
+ arity: {
8872
+ type: "binary",
8873
+ args: [{
8874
+ name: "tensor",
8875
+ label: "Tensor",
8876
+ type: "any",
8877
+ required: true
8878
+ }, {
8879
+ name: "axis",
8880
+ label: "Axis",
8881
+ type: "number",
8882
+ required: true
8883
+ }]
8884
+ },
8885
+ help: {
8886
+ summary: "Reduce an axis to the index of its maximum, as plain JSON",
8887
+ details: "Returns nested arrays of indices, or a bare number when the input is 1-d — an index is something a rule goes on to compare, so it comes back as ordinary JSON rather than a tensor. Ties go to the first occurrence, and NaN never wins.",
8888
+ returnType: "any",
8889
+ examples: [{
8890
+ title: "Winning class per row",
8891
+ rule: { argmax: [{ tensor: [[[1, 9], [7, 3]], "f32"] }, 1] },
8892
+ result: [1, 0]
8893
+ }],
8894
+ seeAlso: ["to_list", "one_hot"]
8895
+ },
8896
+ ui: {
8897
+ icon: "search",
8898
+ shortLabel: "argmax",
8899
+ nodeType: "operator"
8900
+ }
8901
+ },
8902
+ gather: {
8903
+ name: "gather",
8904
+ label: "Gather",
8905
+ category: "tensor",
8906
+ description: "Select slices along an axis, in the order given",
8907
+ arity: {
8908
+ type: "range",
8909
+ min: 2,
8910
+ max: 3,
8911
+ args: [
7516
8912
  {
7517
- title: "Normalized inputs",
7518
- rule: { sem_ver: [
7519
- "v1.2",
7520
- "<",
7521
- "1.2.1"
7522
- ] },
7523
- result: true,
7524
- note: "v prefix stripped, \"1.2\" padded to \"1.2.0\""
8913
+ name: "tensor",
8914
+ label: "Tensor",
8915
+ type: "any",
8916
+ required: true
7525
8917
  },
7526
8918
  {
7527
- title: "Pre-release ordering",
7528
- rule: { sem_ver: [
7529
- "1.0.0-alpha",
7530
- "<",
7531
- "1.0.0"
7532
- ] },
7533
- result: true
8919
+ name: "indices",
8920
+ label: "Indices",
8921
+ type: "array",
8922
+ required: true
7534
8923
  },
7535
8924
  {
7536
- title: "Malformed version",
7537
- rule: { sem_ver: [
7538
- "not-a-version",
7539
- ">",
7540
- "1.0.0"
7541
- ] },
7542
- result: null,
7543
- note: "Unparseable input or an unknown operator returns null, not an error"
8925
+ name: "axis",
8926
+ label: "Axis",
8927
+ type: "number",
8928
+ required: false
7544
8929
  }
7545
- ],
7546
- notes: [
7547
- "Operators: =, !=, <, <=, >, >=, ^ (same major), ~ (same major.minor)",
7548
- "Normalizations: strip leading v/V, pad partial versions, coerce numbers, drop +build metadata",
7549
- "Pre-releases sort before the release: 1.0.0-alpha < 1.0.0-beta < 1.0.0",
7550
- "Malformed versions, wrong argument count or an unknown operator return null"
7551
- ],
8930
+ ]
8931
+ },
8932
+ help: {
8933
+ summary: "Reorder and resample along one axis; axis defaults to 0",
8934
+ returnType: "any",
8935
+ examples: [{
8936
+ title: "Pick and repeat",
8937
+ rule: { to_list: [{ gather: [{ tensor: [[
8938
+ 10,
8939
+ 20,
8940
+ 30
8941
+ ], "u8"] }, [
8942
+ 2,
8943
+ 0,
8944
+ 2
8945
+ ]] }] },
8946
+ result: [
8947
+ 30,
8948
+ 10,
8949
+ 30
8950
+ ]
8951
+ }],
8952
+ notes: ["Negative indices count from the end", "Every index must be in range — unlike scatter, dropping one would change the output shape"],
8953
+ seeAlso: ["crop", "unstack"]
8954
+ },
8955
+ ui: {
8956
+ icon: "list",
8957
+ shortLabel: "gather",
8958
+ nodeType: "operator"
8959
+ }
8960
+ },
8961
+ to_list: {
8962
+ name: "to_list",
8963
+ label: "To List",
8964
+ category: "tensor",
8965
+ description: "Expand a tensor into nested JSON arrays",
8966
+ arity: {
8967
+ type: "unary",
8968
+ args: [{
8969
+ name: "tensor",
8970
+ label: "Tensor",
8971
+ type: "any",
8972
+ required: true
8973
+ }]
8974
+ },
8975
+ help: {
8976
+ summary: "The general escape hatch, and expensive by design",
8977
+ details: "The one operator that turns a compact buffer back into one JSON node per element. Reach for argmax, shape or a comparison first.",
8978
+ returnType: "any",
8979
+ examples: [{
8980
+ title: "Back to plain arrays",
8981
+ rule: { to_list: [{ tensor: [[[1, 2], [3, 4]], "i32"] }] },
8982
+ result: [[1, 2], [3, 4]]
8983
+ }],
7552
8984
  seeAlso: [
7553
- "fractional",
7554
- "if",
7555
- ">="
8985
+ "tensor",
8986
+ "argmax",
8987
+ "shape"
7556
8988
  ]
7557
8989
  },
8990
+ ui: {
8991
+ icon: "list",
8992
+ shortLabel: "to_list",
8993
+ nodeType: "operator"
8994
+ }
8995
+ },
8996
+ shape: {
8997
+ name: "shape",
8998
+ label: "Shape",
8999
+ category: "tensor",
9000
+ description: "A tensor's dimensions",
9001
+ arity: {
9002
+ type: "unary",
9003
+ args: [{
9004
+ name: "tensor",
9005
+ label: "Tensor",
9006
+ type: "any",
9007
+ required: true
9008
+ }]
9009
+ },
9010
+ help: {
9011
+ summary: "Read the shape as an array of numbers",
9012
+ returnType: "array",
9013
+ examples: [{
9014
+ title: "Dimensions of a 1x3",
9015
+ rule: { shape: [{ tensor: [[[
9016
+ 1,
9017
+ 2,
9018
+ 3
9019
+ ]], "u8"] }] },
9020
+ result: [1, 3]
9021
+ }],
9022
+ seeAlso: ["dtype", "reshape"]
9023
+ },
7558
9024
  ui: {
7559
9025
  icon: "tag",
7560
- shortLabel: "semver",
9026
+ shortLabel: "shape",
9027
+ nodeType: "operator"
9028
+ }
9029
+ },
9030
+ dtype: {
9031
+ name: "dtype",
9032
+ label: "Dtype",
9033
+ category: "tensor",
9034
+ description: "A tensor's element type",
9035
+ arity: {
9036
+ type: "unary",
9037
+ args: [{
9038
+ name: "tensor",
9039
+ label: "Tensor",
9040
+ type: "any",
9041
+ required: true
9042
+ }]
9043
+ },
9044
+ help: {
9045
+ summary: "Read the dtype as its wire name",
9046
+ details: `One of: ${DTYPES}. Exactly what tensor, zeros, full and cast accept back.`,
9047
+ returnType: "string",
9048
+ examples: [{
9049
+ title: "The dtype of an f32 tensor",
9050
+ rule: { dtype: [{ tensor: [[1, 2], "f32"] }] },
9051
+ result: "f32"
9052
+ }],
9053
+ seeAlso: ["shape", "cast"]
9054
+ },
9055
+ ui: {
9056
+ icon: "type",
9057
+ shortLabel: "dtype",
7561
9058
  nodeType: "operator"
7562
9059
  }
7563
9060
  }
@@ -7580,7 +9077,8 @@ var operators = {
7580
9077
  ...validationOperators,
7581
9078
  ...errorOperators,
7582
9079
  ...utilityOperators,
7583
- ...flagdOperators
9080
+ ...flagdOperators,
9081
+ ...tensorOperators
7584
9082
  };
7585
9083
  /**
7586
9084
  * Get an operator by its name
@@ -7858,6 +9356,7 @@ var CATEGORY_COLORS = {
7858
9356
  utility: "#64748b",
7859
9357
  error: "#ef4444",
7860
9358
  flagd: "#f97316",
9359
+ tensor: "#db2777",
7861
9360
  literal: "#64748b"
7862
9361
  };
7863
9362
  //#endregion
@@ -8769,13 +10268,25 @@ function hasChildCell(cells) {
8769
10268
  }
8770
10269
  /** How an operator node renders — see the branches in UnifiedOperatorNode. */
8771
10270
  function operatorRenderKind(data) {
8772
- if (data.category === "variable" && !hasChildCell(data.cells)) return "tap";
10271
+ if (data.category === "variable" && hasVariableCells(data.cells) && !hasChildCell(data.cells)) return "tap";
8773
10272
  if (isIfOperator(data.operator) && isDecisionCells(data.cells)) return "decision";
8774
10273
  if (data.category === "logical" && data.cells.length > 0 && data.cells.every(isWiredCell)) return "gate-shape";
8775
10274
  const infix = data.category === "arithmetic" ? "infix-arith" : data.category === "comparison" ? "infix-gate" : data.category === "logical" && getOperator(data.operator)?.arity.type === "unary" ? "infix-gate" : null;
8776
10275
  if (infix && data.cells.length > 0 && !data.cells.some(isWiredCell)) return infix;
8777
10276
  return "card";
8778
10277
  }
10278
+ /**
10279
+ * The silhouette a node actually draws with. `shapeForOperator` names the
10280
+ * operator's ROLE; the tap silhouette, though, exists only in the tap render.
10281
+ * A var / val / exists with a computed path renders as a card (see
10282
+ * operatorRenderKind) and must not carry the tap class: the tap CSS makes the
10283
+ * node box transparent and paints its selection / debug rings as solid
10284
+ * clip-path fills behind the plug, which on a card sit on top of the rows.
10285
+ * Such a card draws as a plain value card (its signal colour stays data-teal).
10286
+ */
10287
+ function drawnShape(shape, renderKind) {
10288
+ return shape === "tap" && renderKind !== "tap" ? "value" : shape;
10289
+ }
8779
10290
  /** Display text of an operand cell (summary for wired, value/label for inline). */
8780
10291
  function cellDisplayText(cell) {
8781
10292
  return isWiredCell(cell) ? cell.summary?.label ?? cell.label ?? "…" : cell.label ?? String(cell.value ?? "…");
@@ -8909,6 +10420,14 @@ var categories = {
8909
10420
  color: "#f97316",
8910
10421
  icon: "toggle-right",
8911
10422
  docsPage: "flagd"
10423
+ },
10424
+ tensor: {
10425
+ name: "tensor",
10426
+ label: "Tensor",
10427
+ description: "Marshalling JSON to and from typed n-dimensional buffers",
10428
+ color: "#db2777",
10429
+ icon: "layers",
10430
+ docsPage: "tensor"
8912
10431
  }
8913
10432
  };
8914
10433
  /**
@@ -11644,8 +13163,8 @@ function gt(e, n) {
11644
13163
  let t = n.v, r = e.node(t).rank, o = n.w, i = e.node(o).rank, s = n.name, a = e.edge(n), l = a.labelRank;
11645
13164
  if (i === r + 1) return;
11646
13165
  e.removeEdge(n);
11647
- let u, d, c;
11648
- for (c = 0, ++r; r < i; ++c, ++r) a.points = [], d = {
13166
+ let u, d, c = 0;
13167
+ for (++r; r < i; ++c, ++r) a.points = [], d = {
11649
13168
  width: 0,
11650
13169
  height: 0,
11651
13170
  edgeLabel: a,
@@ -12455,17 +13974,13 @@ function rr(e, n, t) {
12455
13974
  case "l":
12456
13975
  u = -s.width / 2;
12457
13976
  break;
12458
- case "r":
12459
- u = s.width / 2;
12460
- break;
13977
+ case "r": u = s.width / 2;
12461
13978
  }
12462
13979
  if (u && (l += t ? u : -u), u = void 0, l += (s.dummy ? n : e) / 2, l += (a.dummy ? n : e) / 2, l += a.width / 2, Object.hasOwn(a, "labelpos")) switch (a.labelpos.toLowerCase()) {
12463
13980
  case "l":
12464
13981
  u = a.width / 2;
12465
13982
  break;
12466
- case "r":
12467
- u = -a.width / 2;
12468
- break;
13983
+ case "r": u = -a.width / 2;
12469
13984
  }
12470
13985
  return u && (l += t ? u : -u), l;
12471
13986
  };
@@ -12802,9 +14317,7 @@ function Lr(e) {
12802
14317
  case "l":
12803
14318
  t.x -= t.width / 2 + t.labeloffset;
12804
14319
  break;
12805
- case "r":
12806
- t.x += t.width / 2 + t.labeloffset;
12807
- break;
14320
+ case "r": t.x += t.width / 2 + t.labeloffset;
12808
14321
  }
12809
14322
  });
12810
14323
  }
@@ -13908,9 +15421,11 @@ var EditorContext = createContext(null);
13908
15421
  function panelValuesToNodeData(currentData, panelValues) {
13909
15422
  switch (currentData.type) {
13910
15423
  case "literal": return literalPanelToData(currentData, panelValues);
13911
- case "operator":
13912
- if (isVariableOperatorName(currentData.operator)) return variablePanelToData(currentData, panelValues);
15424
+ case "operator": {
15425
+ const opData = currentData;
15426
+ if (isVariableOperatorName(opData.operator) && hasVariableCells(opData.cells)) return variablePanelToData(currentData, panelValues);
13913
15427
  return currentData;
15428
+ }
13914
15429
  case "structure": return currentData;
13915
15430
  default: return currentData;
13916
15431
  }
@@ -16595,6 +18110,8 @@ var STRUCTURED_FIELDS = [
16595
18110
  "index",
16596
18111
  "length",
16597
18112
  "stage",
18113
+ "budget",
18114
+ "spent",
16598
18115
  "node_ids"
16599
18116
  ];
16600
18117
  function isStructuredError(value) {
@@ -16700,7 +18217,8 @@ var SUMMARY_LABELS = {
16700
18217
  division_by_zero: "div/0",
16701
18218
  loose_equality_errors: "loose ==",
16702
18219
  truthy_evaluator: "truthy",
16703
- max_recursion_depth: "depth"
18220
+ max_recursion_depth: "depth",
18221
+ ops_budget: "budget"
16704
18222
  };
16705
18223
  var COERCION_LABELS = {
16706
18224
  empty_string_to_zero: "\"\" to 0",
@@ -16762,7 +18280,7 @@ function useWasmEvaluator(options = {}) {
16762
18280
  try {
16763
18281
  setLoading(true);
16764
18282
  setError(null);
16765
- const wasm = await import("./datalogic_wasm-DJxb6g5L.js");
18283
+ const wasm = await import("./datalogic_wasm-CPBxmvK8.js");
16766
18284
  await wasm.default();
16767
18285
  if (!cancelled) {
16768
18286
  moduleRef.current = { Engine: wasm.Engine };
@@ -16812,21 +18330,30 @@ function useWasmEvaluator(options = {}) {
16812
18330
  customOperators,
16813
18331
  latestCustomOperators
16814
18332
  ]);
18333
+ const evaluateMetered = useCallback((logic, data) => {
18334
+ const engine = getEngine();
18335
+ const logicStr = JSON.stringify(logic);
18336
+ const dataStr = JSON.stringify(data);
18337
+ try {
18338
+ if (!engine.evalMetered) return {
18339
+ value: JSON.parse(engine.evalStr(logicStr, dataStr)),
18340
+ ops: null
18341
+ };
18342
+ const envelope = JSON.parse(engine.evalMetered(logicStr, dataStr));
18343
+ return {
18344
+ value: envelope.result,
18345
+ ops: envelope.ops
18346
+ };
18347
+ } catch (err) {
18348
+ throw new DataLogicEvaluationError(parseStructuredError(err, "Evaluation failed"));
18349
+ }
18350
+ }, [getEngine]);
16815
18351
  return {
16816
18352
  ready,
16817
18353
  loading,
16818
18354
  error,
16819
- evaluate: useCallback((logic, data) => {
16820
- const engine = getEngine();
16821
- const logicStr = JSON.stringify(logic);
16822
- const dataStr = JSON.stringify(data);
16823
- try {
16824
- const resultStr = engine.evalStr(logicStr, dataStr);
16825
- return JSON.parse(resultStr);
16826
- } catch (err) {
16827
- throw new DataLogicEvaluationError(parseStructuredError(err, "Evaluation failed"));
16828
- }
16829
- }, [getEngine]),
18355
+ evaluate: useCallback((logic, data) => evaluateMetered(logic, data).value, [evaluateMetered]),
18356
+ evaluateMetered,
16830
18357
  evaluateWithTrace: useCallback((logic, data) => {
16831
18358
  const engine = getEngine();
16832
18359
  const logicStr = JSON.stringify(logic);
@@ -17605,8 +19132,8 @@ var GATE_SILHOUETTES = {
17605
19132
  };
17606
19133
  var UnifiedOperatorNode = memo(function UnifiedOperatorNode({ id, data, selected }) {
17607
19134
  const color = signalVar(signalForOperator(data.operator, data.category));
17608
- const shape = shapeForOperator(data.operator, data.category);
17609
19135
  const renderKind = operatorRenderKind(data);
19136
+ const shape = drawnShape(shapeForOperator(data.operator, data.category), renderKind);
17610
19137
  const isFlow = useIsFlowDirection();
17611
19138
  const debugClassName = useDebugClassName(id);
17612
19139
  const toggleNodeCollapse = useNodeCollapse(id);
@@ -20288,6 +21815,7 @@ function getInitialValuesFromNode(data) {
20288
21815
  function getOperatorInitialValues(data) {
20289
21816
  const raw = rawOperandOf(data.expression);
20290
21817
  const operands = raw === void 0 ? [] : Array.isArray(raw) ? raw : [raw];
21818
+ if (isVariableOperatorName(data.operator) && !hasVariableCells(data.cells)) return {};
20291
21819
  if (data.operator === "var") {
20292
21820
  const pathCell = data.cells.find((c) => c.fieldId === "path");
20293
21821
  const defaultCell = data.cells.find((c) => c.index === 1 && c.fieldId !== "path");
@@ -20513,7 +22041,7 @@ var SelectedNodePanel = memo(forwardRef(function SelectedNodePanel({ node, value
20513
22041
  title: canDelete ? "Delete this node and its children" : "Cannot delete root node",
20514
22042
  onClick: onDelete,
20515
22043
  disabled: !canDelete,
20516
- children: [/* @__PURE__ */ jsx(Trash2, { size: 14 }), "Delete Node"]
22044
+ children: [/* @__PURE__ */ jsx(Trash, { size: 14 }), "Delete Node"]
20517
22045
  })
20518
22046
  })
20519
22047
  ]
@@ -21126,7 +22654,7 @@ function useContextMenuItems({ node, onEditProperties }) {
21126
22654
  items.push({
21127
22655
  id: "remove-argument",
21128
22656
  label: isIfOp ? "Remove Branch" : isSwitchOp ? "Remove Case" : "Remove Argument",
21129
- icon: React.createElement(Trash2, { size: 14 }),
22657
+ icon: React.createElement(Trash, { size: 14 }),
21130
22658
  submenu: removeItems
21131
22659
  });
21132
22660
  }
@@ -21205,7 +22733,7 @@ function useContextMenuItems({ node, onEditProperties }) {
21205
22733
  items.push({
21206
22734
  id: "delete",
21207
22735
  label: "Delete",
21208
- icon: React.createElement(Trash2, { size: 14 }),
22736
+ icon: React.createElement(Trash, { size: 14 }),
21209
22737
  shortcut: "⌫",
21210
22738
  danger: true,
21211
22739
  disabled: isRoot,