@octaviaflow/core 3.1.0-beta.85 → 3.1.0-beta.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-5ISJ5NI3.js +2765 -0
- package/dist/chunk-5ISJ5NI3.js.map +1 -0
- package/dist/chunk-AMSH2ALP.js +5701 -0
- package/dist/chunk-AMSH2ALP.js.map +1 -0
- package/dist/chunk-XXT7FTMZ.js +1646 -0
- package/dist/chunk-XXT7FTMZ.js.map +1 -0
- package/dist/components/DataMapper/DataMapper.d.ts +33 -0
- package/dist/components/DataMapper/DataMapper.d.ts.map +1 -1
- package/dist/index.cjs +469 -205
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +605 -340
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7843,6 +7843,7 @@ ContextMenu.displayName = "ContextMenu";
|
|
|
7843
7843
|
// src/components/DataMapper/DataMapper.tsx
|
|
7844
7844
|
import {
|
|
7845
7845
|
forwardRef as forwardRef35,
|
|
7846
|
+
Fragment as Fragment17,
|
|
7846
7847
|
useCallback as useCallback14,
|
|
7847
7848
|
useEffect as useEffect16,
|
|
7848
7849
|
useImperativeHandle as useImperativeHandle3,
|
|
@@ -7850,7 +7851,7 @@ import {
|
|
|
7850
7851
|
useRef as useRef17,
|
|
7851
7852
|
useState as useState22
|
|
7852
7853
|
} from "react";
|
|
7853
|
-
import { Fragment as
|
|
7854
|
+
import { Fragment as Fragment18, jsx as jsx43, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
7854
7855
|
var TYPE_CLASSES = {
|
|
7855
7856
|
string: "string",
|
|
7856
7857
|
integer: "integer",
|
|
@@ -7867,22 +7868,92 @@ var TYPE_CLASSES = {
|
|
|
7867
7868
|
function pathOf(f) {
|
|
7868
7869
|
return f.path ?? f.key;
|
|
7869
7870
|
}
|
|
7870
|
-
function flatten(fields, expanded, depth = 0,
|
|
7871
|
+
function flatten(fields, expanded, depth = 0, parentKey = null, ancestors = []) {
|
|
7871
7872
|
const out = [];
|
|
7872
|
-
|
|
7873
|
-
|
|
7874
|
-
|
|
7875
|
-
|
|
7873
|
+
fields.forEach((f, i) => {
|
|
7874
|
+
const isGroup = isGroupField(f);
|
|
7875
|
+
const isOpen = expanded.has(f.key);
|
|
7876
|
+
const insertAt = isGroup && isOpen ? { parentKey: f.key, index: 0, depth: depth + 1 } : { parentKey, index: i + 1, depth };
|
|
7877
|
+
out.push({
|
|
7878
|
+
field: f,
|
|
7879
|
+
depth,
|
|
7880
|
+
insertAt,
|
|
7881
|
+
// Deepest first, so one step left is one level out. When the gap is
|
|
7882
|
+
// already inside a group, this level's own "after me" point is the
|
|
7883
|
+
// first alternative.
|
|
7884
|
+
insertAlternatives: [
|
|
7885
|
+
...isGroup && isOpen ? [{ parentKey, index: i + 1, depth }] : [],
|
|
7886
|
+
...[...ancestors].reverse()
|
|
7887
|
+
]
|
|
7888
|
+
});
|
|
7889
|
+
if (isGroup && isOpen) {
|
|
7890
|
+
out.push(
|
|
7891
|
+
...flatten(f.children ?? [], expanded, depth + 1, f.key, [
|
|
7892
|
+
...ancestors,
|
|
7893
|
+
{ parentKey, index: i + 1, depth }
|
|
7894
|
+
])
|
|
7895
|
+
);
|
|
7876
7896
|
}
|
|
7877
|
-
}
|
|
7897
|
+
});
|
|
7878
7898
|
return out;
|
|
7879
7899
|
}
|
|
7900
|
+
function flattenFields(fields, expanded) {
|
|
7901
|
+
return flatten(fields, expanded);
|
|
7902
|
+
}
|
|
7880
7903
|
function collectAll(fields) {
|
|
7881
7904
|
return fields.flatMap((f) => [f, ...f.children ? collectAll(f.children) : []]);
|
|
7882
7905
|
}
|
|
7906
|
+
function isGroupField(f) {
|
|
7907
|
+
if (f.children && f.children.length > 0) return true;
|
|
7908
|
+
const t = String(f.type ?? "").toLowerCase();
|
|
7909
|
+
return !!f.custom && (f.isArray === true || t === "array" || t === "object");
|
|
7910
|
+
}
|
|
7911
|
+
function isArrayField(f) {
|
|
7912
|
+
return f.isArray === true || String(f.type ?? "").toLowerCase() === "array";
|
|
7913
|
+
}
|
|
7883
7914
|
function collectGroupKeys(fields) {
|
|
7884
7915
|
return collectAll(fields).filter((f) => !!f.children && f.children.length > 0).map((f) => f.key);
|
|
7885
7916
|
}
|
|
7917
|
+
var DEFAULT_ADD_FIELD_TYPES = [
|
|
7918
|
+
"string",
|
|
7919
|
+
"number",
|
|
7920
|
+
"boolean",
|
|
7921
|
+
"datetime",
|
|
7922
|
+
"object",
|
|
7923
|
+
"array"
|
|
7924
|
+
];
|
|
7925
|
+
function insertField(fields, parentKey, index, field) {
|
|
7926
|
+
if (parentKey === null) {
|
|
7927
|
+
const next = [...fields];
|
|
7928
|
+
next.splice(index, 0, field);
|
|
7929
|
+
return next;
|
|
7930
|
+
}
|
|
7931
|
+
return fields.map((f) => {
|
|
7932
|
+
if (f.key === parentKey) {
|
|
7933
|
+
const kids = [...f.children ?? []];
|
|
7934
|
+
kids.splice(index, 0, field);
|
|
7935
|
+
return { ...f, children: kids };
|
|
7936
|
+
}
|
|
7937
|
+
if (f.children && f.children.length > 0) {
|
|
7938
|
+
return { ...f, children: insertField(f.children, parentKey, index, field) };
|
|
7939
|
+
}
|
|
7940
|
+
return f;
|
|
7941
|
+
});
|
|
7942
|
+
}
|
|
7943
|
+
function removeField(fields, key) {
|
|
7944
|
+
return fields.filter((f) => f.key !== key).map(
|
|
7945
|
+
(f) => f.children && f.children.length > 0 ? { ...f, children: removeField(f.children, key) } : f
|
|
7946
|
+
);
|
|
7947
|
+
}
|
|
7948
|
+
function makeFieldKey(fields, parentKey, name) {
|
|
7949
|
+
const slug = name.trim().replace(/\s+/g, "_");
|
|
7950
|
+
const base = parentKey ? `${parentKey}.${slug}` : slug;
|
|
7951
|
+
const taken = new Set(collectAll(fields).map((f) => f.key));
|
|
7952
|
+
if (!taken.has(base)) return base;
|
|
7953
|
+
let n = 2;
|
|
7954
|
+
while (taken.has(`${base}_${n}`)) n += 1;
|
|
7955
|
+
return `${base}_${n}`;
|
|
7956
|
+
}
|
|
7886
7957
|
var TOKEN_RE = /\{\{([^}]+)\}\}/g;
|
|
7887
7958
|
var FN_RE = /\b([a-zA-Z_][a-zA-Z0-9_]*)\(/g;
|
|
7888
7959
|
function fieldToken(path) {
|
|
@@ -8199,6 +8270,9 @@ var DataMapper = forwardRef35(
|
|
|
8199
8270
|
onClose,
|
|
8200
8271
|
defaultSidebarOpen = true,
|
|
8201
8272
|
defaultGroupsExpanded = true,
|
|
8273
|
+
allowAddFields = false,
|
|
8274
|
+
onTargetFieldsChange,
|
|
8275
|
+
addFieldTypes = DEFAULT_ADD_FIELD_TYPES,
|
|
8202
8276
|
className,
|
|
8203
8277
|
...rest
|
|
8204
8278
|
}, forwardedRef) {
|
|
@@ -8211,6 +8285,68 @@ var DataMapper = forwardRef35(
|
|
|
8211
8285
|
const appliedGroupKeysRef = useRef17(
|
|
8212
8286
|
new Set(defaultGroupsExpanded ? collectGroupKeys(targetFields) : [])
|
|
8213
8287
|
);
|
|
8288
|
+
const [addingAt, setAddingAt] = useState22(null);
|
|
8289
|
+
const [newFieldName, setNewFieldName] = useState22("");
|
|
8290
|
+
const [hoverDepth, setHoverDepth] = useState22({});
|
|
8291
|
+
const [newFieldType, setNewFieldType] = useState22(addFieldTypes[0] ?? "string");
|
|
8292
|
+
const canAddFields = allowAddFields && typeof onTargetFieldsChange === "function";
|
|
8293
|
+
const commitAddField = useCallback14(() => {
|
|
8294
|
+
const raw = newFieldName.trim();
|
|
8295
|
+
if (!raw || !onTargetFieldsChange || !addingAt) return;
|
|
8296
|
+
const { parentKey, index } = addingAt;
|
|
8297
|
+
const parsed = raw.split(".").map((p) => p.trim()).filter(Boolean).map((p) => {
|
|
8298
|
+
const isArr = p.endsWith("[]");
|
|
8299
|
+
return { name: isArr ? p.slice(0, -2).trim() : p, isArray: isArr };
|
|
8300
|
+
}).filter((p) => p.name.length > 0);
|
|
8301
|
+
if (parsed.length === 0) return;
|
|
8302
|
+
const last = parsed[parsed.length - 1];
|
|
8303
|
+
const leafType = last.isArray ? "array" : newFieldType;
|
|
8304
|
+
const leafIsGroup = leafType === "object" || leafType === "array";
|
|
8305
|
+
const baseKey = makeFieldKey(targetFields, parentKey, parsed[0].name);
|
|
8306
|
+
const prefixOf = (depth) => [baseKey, ...parsed.slice(1, depth + 1).map((p) => p.name)].join(".");
|
|
8307
|
+
let node = {
|
|
8308
|
+
key: prefixOf(parsed.length - 1),
|
|
8309
|
+
label: last.name,
|
|
8310
|
+
type: leafType,
|
|
8311
|
+
custom: true,
|
|
8312
|
+
// A group with no children renders as a leaf and could never be added
|
|
8313
|
+
// to; seed it so it is immediately expandable.
|
|
8314
|
+
...leafIsGroup ? { children: [], isArray: leafType === "array" } : {}
|
|
8315
|
+
};
|
|
8316
|
+
const opened = leafIsGroup ? [node.key] : [];
|
|
8317
|
+
for (let i = parsed.length - 2; i >= 0; i--) {
|
|
8318
|
+
const key = prefixOf(i);
|
|
8319
|
+
const seg = parsed[i];
|
|
8320
|
+
node = {
|
|
8321
|
+
key,
|
|
8322
|
+
label: seg.name,
|
|
8323
|
+
// Intermediate levels are objects unless explicitly marked `[]`.
|
|
8324
|
+
type: seg.isArray ? "array" : "object",
|
|
8325
|
+
custom: true,
|
|
8326
|
+
...seg.isArray ? { isArray: true } : {},
|
|
8327
|
+
children: [node]
|
|
8328
|
+
};
|
|
8329
|
+
opened.push(key);
|
|
8330
|
+
}
|
|
8331
|
+
onTargetFieldsChange(insertField(targetFields, parentKey, index, node));
|
|
8332
|
+
setNewFieldName("");
|
|
8333
|
+
setAddingAt(null);
|
|
8334
|
+
if (opened.length > 0) {
|
|
8335
|
+
setExpandedTargets((prev) => {
|
|
8336
|
+
const next = new Set(prev);
|
|
8337
|
+
opened.forEach((k) => next.add(k));
|
|
8338
|
+
return next;
|
|
8339
|
+
});
|
|
8340
|
+
}
|
|
8341
|
+
}, [newFieldName, newFieldType, addingAt, targetFields, onTargetFieldsChange]);
|
|
8342
|
+
const commitRemoveField = useCallback14(
|
|
8343
|
+
(key) => {
|
|
8344
|
+
if (!onTargetFieldsChange) return;
|
|
8345
|
+
onTargetFieldsChange(removeField(targetFields, key));
|
|
8346
|
+
onChange(mappings.filter((m) => m.target !== key && !m.target.startsWith(`${key}.`)));
|
|
8347
|
+
},
|
|
8348
|
+
[targetFields, onTargetFieldsChange, mappings, onChange]
|
|
8349
|
+
);
|
|
8214
8350
|
const [targetSearch, setTargetSearch] = useState22("");
|
|
8215
8351
|
const [sourceSearch, setSourceSearch] = useState22("");
|
|
8216
8352
|
const [display, setDisplay] = useState22(defaultDisplay);
|
|
@@ -8366,13 +8502,119 @@ var DataMapper = forwardRef35(
|
|
|
8366
8502
|
e.dataTransfer.setData("application/x-ods-mapper", JSON.stringify({ snippet }));
|
|
8367
8503
|
e.dataTransfer.setData("text/plain", snippet);
|
|
8368
8504
|
};
|
|
8505
|
+
const renderGap = (at, key, alternatives = []) => {
|
|
8506
|
+
const hovered = hoverDepth[key];
|
|
8507
|
+
const choices = [at, ...alternatives];
|
|
8508
|
+
const active = choices[Math.min(hovered ?? 0, choices.length - 1)] ?? at;
|
|
8509
|
+
const isOpen = addingAt?.parentKey === active.parentKey && addingAt?.index === active.index;
|
|
8510
|
+
if (isOpen) {
|
|
8511
|
+
return /* @__PURE__ */ jsxs43(
|
|
8512
|
+
"div",
|
|
8513
|
+
{
|
|
8514
|
+
className: "ods-data-mapper__add-form",
|
|
8515
|
+
style: { paddingLeft: 12 + active.depth * 16 },
|
|
8516
|
+
onKeyDown: (e) => {
|
|
8517
|
+
if (e.key === "Enter") {
|
|
8518
|
+
e.preventDefault();
|
|
8519
|
+
commitAddField();
|
|
8520
|
+
}
|
|
8521
|
+
if (e.key === "Escape") {
|
|
8522
|
+
e.preventDefault();
|
|
8523
|
+
setAddingAt(null);
|
|
8524
|
+
setNewFieldName("");
|
|
8525
|
+
}
|
|
8526
|
+
},
|
|
8527
|
+
children: [
|
|
8528
|
+
/* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__add-name", children: /* @__PURE__ */ jsx43(
|
|
8529
|
+
Input,
|
|
8530
|
+
{
|
|
8531
|
+
size: "sm",
|
|
8532
|
+
autoFocus: true,
|
|
8533
|
+
value: newFieldName,
|
|
8534
|
+
placeholder: "Name \xB7 Address.City to nest \xB7 Lines[].Amount for a list",
|
|
8535
|
+
"aria-label": "New field name",
|
|
8536
|
+
onChange: (e) => setNewFieldName(e.target.value)
|
|
8537
|
+
}
|
|
8538
|
+
) }),
|
|
8539
|
+
/* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__add-type", children: /* @__PURE__ */ jsx43(
|
|
8540
|
+
Select,
|
|
8541
|
+
{
|
|
8542
|
+
size: "sm",
|
|
8543
|
+
options: addFieldTypes.map((t) => ({ value: t, label: t })),
|
|
8544
|
+
value: newFieldType,
|
|
8545
|
+
"aria-label": "New field type",
|
|
8546
|
+
onChange: setNewFieldType
|
|
8547
|
+
}
|
|
8548
|
+
) }),
|
|
8549
|
+
/* @__PURE__ */ jsx43(Button, { size: "sm", disabled: !newFieldName.trim(), onClick: commitAddField, children: "Add" }),
|
|
8550
|
+
/* @__PURE__ */ jsx43(
|
|
8551
|
+
Button,
|
|
8552
|
+
{
|
|
8553
|
+
size: "sm",
|
|
8554
|
+
variant: "ghost",
|
|
8555
|
+
onClick: () => {
|
|
8556
|
+
setAddingAt(null);
|
|
8557
|
+
setNewFieldName("");
|
|
8558
|
+
},
|
|
8559
|
+
children: "Cancel"
|
|
8560
|
+
}
|
|
8561
|
+
)
|
|
8562
|
+
]
|
|
8563
|
+
},
|
|
8564
|
+
key
|
|
8565
|
+
);
|
|
8566
|
+
}
|
|
8567
|
+
return /* @__PURE__ */ jsx43(
|
|
8568
|
+
"button",
|
|
8569
|
+
{
|
|
8570
|
+
type: "button",
|
|
8571
|
+
className: "ods-data-mapper__gap",
|
|
8572
|
+
"aria-label": choices.length > 1 ? "Add a field here \u2014 move left to add it to an outer level" : "Add a field here",
|
|
8573
|
+
onMouseMove: (e) => {
|
|
8574
|
+
if (choices.length < 2) return;
|
|
8575
|
+
const x = e.clientX - e.currentTarget.getBoundingClientRect().left;
|
|
8576
|
+
const stepsOut = Math.round(Math.max(0, 12 + at.depth * 16 - x) / 16);
|
|
8577
|
+
const next = Math.min(stepsOut, choices.length - 1);
|
|
8578
|
+
setHoverDepth((prev) => prev[key] === next ? prev : { ...prev, [key]: next });
|
|
8579
|
+
},
|
|
8580
|
+
onMouseLeave: () => setHoverDepth((prev) => {
|
|
8581
|
+
if (prev[key] === void 0) return prev;
|
|
8582
|
+
const next = { ...prev };
|
|
8583
|
+
delete next[key];
|
|
8584
|
+
return next;
|
|
8585
|
+
}),
|
|
8586
|
+
onClick: () => {
|
|
8587
|
+
setAddingAt(active);
|
|
8588
|
+
setNewFieldName("");
|
|
8589
|
+
},
|
|
8590
|
+
children: /* @__PURE__ */ jsxs43(
|
|
8591
|
+
"span",
|
|
8592
|
+
{
|
|
8593
|
+
className: "ods-data-mapper__gap-line",
|
|
8594
|
+
style: { left: 12 + active.depth * 16 },
|
|
8595
|
+
"aria-hidden": "true",
|
|
8596
|
+
children: [
|
|
8597
|
+
/* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__gap-rule" }),
|
|
8598
|
+
/* @__PURE__ */ jsxs43("span", { className: "ods-data-mapper__gap-label", children: [
|
|
8599
|
+
/* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__gap-plus", children: "+" }),
|
|
8600
|
+
"Add field"
|
|
8601
|
+
] }),
|
|
8602
|
+
/* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__gap-rule" })
|
|
8603
|
+
]
|
|
8604
|
+
}
|
|
8605
|
+
)
|
|
8606
|
+
},
|
|
8607
|
+
key
|
|
8608
|
+
);
|
|
8609
|
+
};
|
|
8369
8610
|
const rows = useMemo9(
|
|
8370
8611
|
() => flatten(targetFields, expandedTargets),
|
|
8371
8612
|
[targetFields, expandedTargets]
|
|
8372
8613
|
);
|
|
8373
8614
|
const filteredRows = useMemo9(() => {
|
|
8374
8615
|
const q2 = targetSearch.trim().toLowerCase();
|
|
8375
|
-
return rows.filter((
|
|
8616
|
+
return rows.filter((row) => {
|
|
8617
|
+
const { field } = row;
|
|
8376
8618
|
if (q2) {
|
|
8377
8619
|
const hay = `${field.label} ${field.apiName ?? ""} ${field.key}`.toLowerCase();
|
|
8378
8620
|
if (!hay.includes(q2)) return false;
|
|
@@ -8391,7 +8633,7 @@ var DataMapper = forwardRef35(
|
|
|
8391
8633
|
return all.filter((f) => f.required && !mappings.some((m) => m.target === f.key)).length;
|
|
8392
8634
|
}, [targetFields, mappings]);
|
|
8393
8635
|
const sourceRows = useMemo9(() => {
|
|
8394
|
-
const flat =
|
|
8636
|
+
const flat = flattenFields(sourceFields, expandedSource);
|
|
8395
8637
|
const q2 = sourceSearch.trim().toLowerCase();
|
|
8396
8638
|
if (!q2) return flat;
|
|
8397
8639
|
return flat.filter(
|
|
@@ -8461,7 +8703,7 @@ var DataMapper = forwardRef35(
|
|
|
8461
8703
|
" mapped"
|
|
8462
8704
|
] })
|
|
8463
8705
|
] }),
|
|
8464
|
-
requiredUnmapped > 0 && /* @__PURE__ */ jsxs43(
|
|
8706
|
+
requiredUnmapped > 0 && /* @__PURE__ */ jsxs43(Fragment18, { children: [
|
|
8465
8707
|
/* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__stat-sep", children: "\xB7" }),
|
|
8466
8708
|
/* @__PURE__ */ jsxs43("span", { className: "ods-data-mapper__stat ods-data-mapper__stat--warn", children: [
|
|
8467
8709
|
/* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__stat-value", children: requiredUnmapped }),
|
|
@@ -8597,218 +8839,241 @@ var DataMapper = forwardRef35(
|
|
|
8597
8839
|
/* @__PURE__ */ jsx43("div", { className: "ods-data-mapper__grid-head-cell", children: "Target field" }),
|
|
8598
8840
|
/* @__PURE__ */ jsx43("div", { className: "ods-data-mapper__grid-head-cell", children: "Expression" })
|
|
8599
8841
|
] }),
|
|
8600
|
-
|
|
8842
|
+
canAddFields && !targetSearch.trim() && display === "all" && renderGap({ parentKey: null, index: 0, depth: 0 }, "gap-top"),
|
|
8843
|
+
filteredRows.length === 0 ? /* @__PURE__ */ jsx43("div", { className: "ods-data-mapper__empty", children: targetSearch ? "No matching target fields" : "No target fields" }) : filteredRows.map((row) => {
|
|
8844
|
+
const { field, depth } = row;
|
|
8601
8845
|
const isSelected = selectedTarget === field.key;
|
|
8602
|
-
const hasChildren =
|
|
8846
|
+
const hasChildren = isGroupField(field);
|
|
8847
|
+
const isInert = hasChildren;
|
|
8603
8848
|
const isExpanded = expandedTargets.has(field.key);
|
|
8604
8849
|
const expr = expressionFor(field.key);
|
|
8605
8850
|
const isMapped = !!expr;
|
|
8606
8851
|
const mappedChildren = hasChildren ? mappedDescendantCount(field) : 0;
|
|
8607
8852
|
const groupHasHiddenMappings = hasChildren && !isExpanded && mappedChildren > 0;
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8615
|
-
|
|
8616
|
-
|
|
8617
|
-
|
|
8618
|
-
|
|
8619
|
-
onDragEnter: (e) => {
|
|
8620
|
-
if (hasChildren) return;
|
|
8621
|
-
e.preventDefault();
|
|
8622
|
-
setDropTarget((prev) => prev === field.key ? prev : field.key);
|
|
8623
|
-
},
|
|
8624
|
-
onDragOver: (e) => {
|
|
8625
|
-
if (hasChildren) return;
|
|
8626
|
-
e.preventDefault();
|
|
8627
|
-
e.dataTransfer.dropEffect = "copy";
|
|
8628
|
-
if (dropTarget !== field.key) setDropTarget(field.key);
|
|
8629
|
-
},
|
|
8630
|
-
onDragLeave: (e) => {
|
|
8631
|
-
if (hasChildren) return;
|
|
8632
|
-
const next = e.relatedTarget;
|
|
8633
|
-
if (next && e.currentTarget.contains(next)) return;
|
|
8634
|
-
setDropTarget((prev) => prev === field.key ? null : prev);
|
|
8635
|
-
},
|
|
8636
|
-
onDrop: (e) => {
|
|
8637
|
-
if (hasChildren) return;
|
|
8638
|
-
e.preventDefault();
|
|
8639
|
-
const snippet = readDragSnippet(e);
|
|
8640
|
-
setDropTarget(null);
|
|
8641
|
-
if (snippet) dropOntoTarget(field.key, snippet);
|
|
8642
|
-
},
|
|
8643
|
-
children: [
|
|
8644
|
-
/* @__PURE__ */ jsxs43(
|
|
8645
|
-
"div",
|
|
8646
|
-
{
|
|
8647
|
-
className: "ods-data-mapper__cell ods-data-mapper__cell--target",
|
|
8648
|
-
onClick: () => !hasChildren && setSelectedTarget(field.key),
|
|
8649
|
-
children: [
|
|
8650
|
-
depth > 0 && /* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__guides", "aria-hidden": "true", children: Array.from({ length: depth }).map((_, i) => /* @__PURE__ */ jsx43(
|
|
8651
|
-
"span",
|
|
8652
|
-
{
|
|
8653
|
-
className: cn(
|
|
8654
|
-
"ods-data-mapper__guide",
|
|
8655
|
-
i === depth - 1 && "ods-data-mapper__guide--last"
|
|
8656
|
-
)
|
|
8657
|
-
},
|
|
8658
|
-
i
|
|
8659
|
-
)) }),
|
|
8660
|
-
hasChildren ? /* @__PURE__ */ jsx43(
|
|
8661
|
-
"button",
|
|
8662
|
-
{
|
|
8663
|
-
type: "button",
|
|
8664
|
-
className: cn(
|
|
8665
|
-
"ods-data-mapper__caret",
|
|
8666
|
-
isExpanded && "ods-data-mapper__caret--open"
|
|
8667
|
-
),
|
|
8668
|
-
onClick: (e) => {
|
|
8669
|
-
e.stopPropagation();
|
|
8670
|
-
handleToggleTarget(field.key);
|
|
8671
|
-
},
|
|
8672
|
-
"aria-label": isExpanded ? "Collapse" : "Expand",
|
|
8673
|
-
"aria-expanded": isExpanded,
|
|
8674
|
-
children: isExpanded ? /* @__PURE__ */ jsx43(ChevronDownIcon3, {}) : /* @__PURE__ */ jsx43(ChevronRightIcon2, {})
|
|
8675
|
-
}
|
|
8676
|
-
) : /* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__caret-spacer" }),
|
|
8677
|
-
/* @__PURE__ */ jsxs43("span", { className: "ods-data-mapper__field-meta", children: [
|
|
8678
|
-
/* @__PURE__ */ jsxs43("span", { className: "ods-data-mapper__field-label", children: [
|
|
8679
|
-
field.label,
|
|
8680
|
-
field.required && // Asterisk is decorative; the required state is
|
|
8681
|
-
// communicated to AT via the visually-hidden text
|
|
8682
|
-
// below — keeping `aria-label` on a plain <span>
|
|
8683
|
-
// would trigger axe's aria-prohibited-attr rule.
|
|
8684
|
-
/* @__PURE__ */ jsxs43(Fragment17, { children: [
|
|
8685
|
-
/* @__PURE__ */ jsx43(
|
|
8686
|
-
"span",
|
|
8687
|
-
{
|
|
8688
|
-
className: "ods-data-mapper__field-req",
|
|
8689
|
-
"aria-hidden": "true",
|
|
8690
|
-
children: "*"
|
|
8691
|
-
}
|
|
8692
|
-
),
|
|
8693
|
-
/* @__PURE__ */ jsxs43(
|
|
8694
|
-
"span",
|
|
8695
|
-
{
|
|
8696
|
-
style: {
|
|
8697
|
-
position: "absolute",
|
|
8698
|
-
width: 1,
|
|
8699
|
-
height: 1,
|
|
8700
|
-
padding: 0,
|
|
8701
|
-
margin: -1,
|
|
8702
|
-
overflow: "hidden",
|
|
8703
|
-
clip: "rect(0,0,0,0)",
|
|
8704
|
-
whiteSpace: "nowrap",
|
|
8705
|
-
border: 0
|
|
8706
|
-
},
|
|
8707
|
-
children: [
|
|
8708
|
-
" ",
|
|
8709
|
-
"(required)"
|
|
8710
|
-
]
|
|
8711
|
-
}
|
|
8712
|
-
)
|
|
8713
|
-
] })
|
|
8714
|
-
] }),
|
|
8715
|
-
field.apiName && /* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__field-api", children: field.apiName })
|
|
8716
|
-
] }),
|
|
8717
|
-
renderTypePill(field.type),
|
|
8718
|
-
(field.isArray || field.type === "array" || isArrayItem) && hasChildren && /* @__PURE__ */ jsxs43(
|
|
8719
|
-
"label",
|
|
8720
|
-
{
|
|
8721
|
-
className: "ods-data-mapper__foreach",
|
|
8722
|
-
onClick: (e) => e.stopPropagation(),
|
|
8723
|
-
children: [
|
|
8724
|
-
/* @__PURE__ */ jsx43("input", { type: "checkbox", defaultChecked: true, "aria-label": "For each record" }),
|
|
8725
|
-
/* @__PURE__ */ jsx43("span", { children: "For each record" })
|
|
8726
|
-
]
|
|
8727
|
-
}
|
|
8728
|
-
)
|
|
8729
|
-
]
|
|
8730
|
-
}
|
|
8853
|
+
const showGaps = canAddFields && !targetSearch.trim() && display === "all";
|
|
8854
|
+
return /* @__PURE__ */ jsxs43(Fragment17, { children: [
|
|
8855
|
+
/* @__PURE__ */ jsxs43(
|
|
8856
|
+
"div",
|
|
8857
|
+
{
|
|
8858
|
+
className: cn(
|
|
8859
|
+
"ods-data-mapper__row",
|
|
8860
|
+
isSelected && "ods-data-mapper__row--selected",
|
|
8861
|
+
isMapped && "ods-data-mapper__row--mapped",
|
|
8862
|
+
groupHasHiddenMappings && "ods-data-mapper__row--group-mapped",
|
|
8863
|
+
dropTarget === field.key && "ods-data-mapper__row--drop-target"
|
|
8731
8864
|
),
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8741
|
-
|
|
8742
|
-
|
|
8743
|
-
|
|
8744
|
-
|
|
8745
|
-
|
|
8746
|
-
|
|
8747
|
-
|
|
8748
|
-
|
|
8749
|
-
|
|
8750
|
-
|
|
8751
|
-
|
|
8752
|
-
|
|
8753
|
-
|
|
8754
|
-
|
|
8755
|
-
|
|
8756
|
-
|
|
8757
|
-
|
|
8758
|
-
|
|
8759
|
-
|
|
8760
|
-
|
|
8761
|
-
|
|
8762
|
-
|
|
8763
|
-
|
|
8764
|
-
|
|
8765
|
-
|
|
8766
|
-
|
|
8767
|
-
|
|
8768
|
-
|
|
8769
|
-
|
|
8770
|
-
|
|
8771
|
-
|
|
8772
|
-
|
|
8773
|
-
|
|
8774
|
-
/* @__PURE__ */ jsx43(
|
|
8865
|
+
"data-target-key": field.key,
|
|
8866
|
+
onDragEnter: (e) => {
|
|
8867
|
+
if (isInert) return;
|
|
8868
|
+
e.preventDefault();
|
|
8869
|
+
setDropTarget((prev) => prev === field.key ? prev : field.key);
|
|
8870
|
+
},
|
|
8871
|
+
onDragOver: (e) => {
|
|
8872
|
+
if (isInert) return;
|
|
8873
|
+
e.preventDefault();
|
|
8874
|
+
e.dataTransfer.dropEffect = "copy";
|
|
8875
|
+
if (dropTarget !== field.key) setDropTarget(field.key);
|
|
8876
|
+
},
|
|
8877
|
+
onDragLeave: (e) => {
|
|
8878
|
+
if (isInert) return;
|
|
8879
|
+
const next = e.relatedTarget;
|
|
8880
|
+
if (next && e.currentTarget.contains(next)) return;
|
|
8881
|
+
setDropTarget((prev) => prev === field.key ? null : prev);
|
|
8882
|
+
},
|
|
8883
|
+
onDrop: (e) => {
|
|
8884
|
+
if (isInert) return;
|
|
8885
|
+
e.preventDefault();
|
|
8886
|
+
const snippet = readDragSnippet(e);
|
|
8887
|
+
setDropTarget(null);
|
|
8888
|
+
if (snippet) dropOntoTarget(field.key, snippet);
|
|
8889
|
+
},
|
|
8890
|
+
children: [
|
|
8891
|
+
/* @__PURE__ */ jsxs43(
|
|
8892
|
+
"div",
|
|
8893
|
+
{
|
|
8894
|
+
className: "ods-data-mapper__cell ods-data-mapper__cell--target",
|
|
8895
|
+
onClick: () => !isInert && setSelectedTarget(field.key),
|
|
8896
|
+
children: [
|
|
8897
|
+
depth > 0 && /* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__guides", "aria-hidden": "true", children: Array.from({ length: depth }).map((_, i) => /* @__PURE__ */ jsx43(
|
|
8898
|
+
"span",
|
|
8899
|
+
{
|
|
8900
|
+
className: cn(
|
|
8901
|
+
"ods-data-mapper__guide",
|
|
8902
|
+
i === depth - 1 && "ods-data-mapper__guide--last"
|
|
8903
|
+
)
|
|
8904
|
+
},
|
|
8905
|
+
i
|
|
8906
|
+
)) }),
|
|
8907
|
+
hasChildren ? /* @__PURE__ */ jsx43(
|
|
8775
8908
|
"button",
|
|
8776
8909
|
{
|
|
8777
8910
|
type: "button",
|
|
8778
|
-
className:
|
|
8779
|
-
|
|
8780
|
-
|
|
8781
|
-
|
|
8911
|
+
className: cn(
|
|
8912
|
+
"ods-data-mapper__caret",
|
|
8913
|
+
isExpanded && "ods-data-mapper__caret--open"
|
|
8914
|
+
),
|
|
8915
|
+
onClick: (e) => {
|
|
8916
|
+
e.stopPropagation();
|
|
8917
|
+
handleToggleTarget(field.key);
|
|
8782
8918
|
},
|
|
8783
|
-
"aria-label": "
|
|
8784
|
-
|
|
8785
|
-
children: /* @__PURE__ */ jsx43(
|
|
8919
|
+
"aria-label": isExpanded ? "Collapse" : "Expand",
|
|
8920
|
+
"aria-expanded": isExpanded,
|
|
8921
|
+
children: isExpanded ? /* @__PURE__ */ jsx43(ChevronDownIcon3, {}) : /* @__PURE__ */ jsx43(ChevronRightIcon2, {})
|
|
8786
8922
|
}
|
|
8787
|
-
),
|
|
8788
|
-
|
|
8789
|
-
"
|
|
8923
|
+
) : /* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__caret-spacer" }),
|
|
8924
|
+
/* @__PURE__ */ jsxs43("span", { className: "ods-data-mapper__field-meta", children: [
|
|
8925
|
+
/* @__PURE__ */ jsxs43("span", { className: "ods-data-mapper__field-label", children: [
|
|
8926
|
+
field.label,
|
|
8927
|
+
field.required && // Asterisk is decorative; the required state is
|
|
8928
|
+
// communicated to AT via the visually-hidden text
|
|
8929
|
+
// below — keeping `aria-label` on a plain <span>
|
|
8930
|
+
// would trigger axe's aria-prohibited-attr rule.
|
|
8931
|
+
/* @__PURE__ */ jsxs43(Fragment18, { children: [
|
|
8932
|
+
/* @__PURE__ */ jsx43(
|
|
8933
|
+
"span",
|
|
8934
|
+
{
|
|
8935
|
+
className: "ods-data-mapper__field-req",
|
|
8936
|
+
"aria-hidden": "true",
|
|
8937
|
+
children: "*"
|
|
8938
|
+
}
|
|
8939
|
+
),
|
|
8940
|
+
/* @__PURE__ */ jsxs43(
|
|
8941
|
+
"span",
|
|
8942
|
+
{
|
|
8943
|
+
style: {
|
|
8944
|
+
position: "absolute",
|
|
8945
|
+
width: 1,
|
|
8946
|
+
height: 1,
|
|
8947
|
+
padding: 0,
|
|
8948
|
+
margin: -1,
|
|
8949
|
+
overflow: "hidden",
|
|
8950
|
+
clip: "rect(0,0,0,0)",
|
|
8951
|
+
whiteSpace: "nowrap",
|
|
8952
|
+
border: 0
|
|
8953
|
+
},
|
|
8954
|
+
children: [
|
|
8955
|
+
" ",
|
|
8956
|
+
"(required)"
|
|
8957
|
+
]
|
|
8958
|
+
}
|
|
8959
|
+
)
|
|
8960
|
+
] })
|
|
8961
|
+
] }),
|
|
8962
|
+
field.apiName && /* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__field-api", children: field.apiName })
|
|
8963
|
+
] }),
|
|
8964
|
+
field.custom && /* @__PURE__ */ jsxs43(Fragment18, { children: [
|
|
8965
|
+
/* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__field-custom", children: "custom" }),
|
|
8966
|
+
canAddFields && /* @__PURE__ */ jsx43(
|
|
8967
|
+
"button",
|
|
8968
|
+
{
|
|
8969
|
+
type: "button",
|
|
8970
|
+
className: "ods-data-mapper__field-remove",
|
|
8971
|
+
"aria-label": `Remove ${field.label}`,
|
|
8972
|
+
title: `Remove ${field.label}`,
|
|
8973
|
+
onClick: (e) => {
|
|
8974
|
+
e.stopPropagation();
|
|
8975
|
+
commitRemoveField(field.key);
|
|
8976
|
+
},
|
|
8977
|
+
children: "\xD7"
|
|
8978
|
+
}
|
|
8979
|
+
)
|
|
8980
|
+
] }),
|
|
8981
|
+
renderTypePill(field.type),
|
|
8982
|
+
isArrayField(field) && hasChildren && /* @__PURE__ */ jsxs43(
|
|
8983
|
+
"label",
|
|
8790
8984
|
{
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
|
|
8794
|
-
|
|
8795
|
-
|
|
8796
|
-
|
|
8985
|
+
className: "ods-data-mapper__foreach",
|
|
8986
|
+
onClick: (e) => e.stopPropagation(),
|
|
8987
|
+
children: [
|
|
8988
|
+
/* @__PURE__ */ jsx43("input", { type: "checkbox", defaultChecked: true, "aria-label": "For each record" }),
|
|
8989
|
+
/* @__PURE__ */ jsx43("span", { children: "For each record" })
|
|
8990
|
+
]
|
|
8797
8991
|
}
|
|
8798
8992
|
)
|
|
8799
|
-
]
|
|
8800
|
-
|
|
8801
|
-
|
|
8802
|
-
|
|
8803
|
-
|
|
8804
|
-
|
|
8805
|
-
|
|
8806
|
-
|
|
8807
|
-
|
|
8808
|
-
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
|
|
8993
|
+
]
|
|
8994
|
+
}
|
|
8995
|
+
),
|
|
8996
|
+
/* @__PURE__ */ jsx43(
|
|
8997
|
+
"div",
|
|
8998
|
+
{
|
|
8999
|
+
className: cn(
|
|
9000
|
+
"ods-data-mapper__cell",
|
|
9001
|
+
"ods-data-mapper__cell--expr",
|
|
9002
|
+
isSelected && "ods-data-mapper__cell--expr-editing"
|
|
9003
|
+
),
|
|
9004
|
+
onClick: () => !isInert && setSelectedTarget(field.key),
|
|
9005
|
+
children: isInert ? /* @__PURE__ */ jsxs43("span", { className: "ods-data-mapper__expr-group", children: [
|
|
9006
|
+
/* @__PURE__ */ jsxs43("span", { className: "ods-data-mapper__expr-group-count", children: [
|
|
9007
|
+
"Group \xB7 ",
|
|
9008
|
+
field.children?.length ?? 0,
|
|
9009
|
+
" sub-field",
|
|
9010
|
+
field.children?.length === 1 ? "" : "s"
|
|
9011
|
+
] }),
|
|
9012
|
+
mappedChildren > 0 && /* @__PURE__ */ jsxs43(
|
|
9013
|
+
"span",
|
|
9014
|
+
{
|
|
9015
|
+
className: "ods-data-mapper__expr-group-badge",
|
|
9016
|
+
title: `${mappedChildren} of ${field.children?.length ?? 0} sub-fields mapped`,
|
|
9017
|
+
children: [
|
|
9018
|
+
mappedChildren,
|
|
9019
|
+
" mapped"
|
|
9020
|
+
]
|
|
9021
|
+
}
|
|
9022
|
+
)
|
|
9023
|
+
] }) : isSelected ? /* @__PURE__ */ jsxs43("div", { className: "ods-data-mapper__editor", onClick: (e) => e.stopPropagation(), children: [
|
|
9024
|
+
/* @__PURE__ */ jsx43(
|
|
9025
|
+
ExpressionEditor,
|
|
9026
|
+
{
|
|
9027
|
+
editorRef,
|
|
9028
|
+
value: expr,
|
|
9029
|
+
sourceFields,
|
|
9030
|
+
variables,
|
|
9031
|
+
onChange: (v) => setExpression(field.key, v),
|
|
9032
|
+
onEscape: () => setSelectedTarget(null),
|
|
9033
|
+
onDropSnippet: (snippet) => dropOntoTarget(field.key, snippet),
|
|
9034
|
+
readDragSnippet
|
|
9035
|
+
}
|
|
9036
|
+
),
|
|
9037
|
+
/* @__PURE__ */ jsxs43("div", { className: "ods-data-mapper__editor-actions", children: [
|
|
9038
|
+
/* @__PURE__ */ jsx43(
|
|
9039
|
+
"button",
|
|
9040
|
+
{
|
|
9041
|
+
type: "button",
|
|
9042
|
+
className: "ods-data-mapper__editor-fx",
|
|
9043
|
+
onClick: () => {
|
|
9044
|
+
setSidebarOpen(true);
|
|
9045
|
+
setSidebarTab("functions");
|
|
9046
|
+
},
|
|
9047
|
+
"aria-label": "Insert function",
|
|
9048
|
+
title: "Functions",
|
|
9049
|
+
children: /* @__PURE__ */ jsx43(FxIcon, {})
|
|
9050
|
+
}
|
|
9051
|
+
),
|
|
9052
|
+
expr && /* @__PURE__ */ jsx43(
|
|
9053
|
+
"button",
|
|
9054
|
+
{
|
|
9055
|
+
type: "button",
|
|
9056
|
+
className: "ods-data-mapper__editor-clear",
|
|
9057
|
+
onClick: () => setExpression(field.key, ""),
|
|
9058
|
+
"aria-label": "Clear expression",
|
|
9059
|
+
title: "Clear",
|
|
9060
|
+
children: /* @__PURE__ */ jsx43(TrashIcon, {})
|
|
9061
|
+
}
|
|
9062
|
+
)
|
|
9063
|
+
] })
|
|
9064
|
+
] }) : isMapped ? /* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__expr-render", title: expr, children: renderExpressionSegments(
|
|
9065
|
+
expr,
|
|
9066
|
+
sourceFields,
|
|
9067
|
+
variables,
|
|
9068
|
+
(tokenIndex) => removeTokenAt(field.key, tokenIndex)
|
|
9069
|
+
) }) : /* @__PURE__ */ jsx43("span", { className: "ods-data-mapper__expr-empty", children: dropTarget === field.key ? "Drop to map" : "Drag a field here or click to edit" })
|
|
9070
|
+
}
|
|
9071
|
+
)
|
|
9072
|
+
]
|
|
9073
|
+
}
|
|
9074
|
+
),
|
|
9075
|
+
showGaps && renderGap(row.insertAt, `gap-${field.key}`, row.insertAlternatives)
|
|
9076
|
+
] }, field.key);
|
|
8812
9077
|
})
|
|
8813
9078
|
] }),
|
|
8814
9079
|
sidebarOpen && /* @__PURE__ */ jsxs43("aside", { className: "ods-data-mapper__sidebar", "aria-label": "Data Stream", children: [
|
|
@@ -9321,7 +9586,7 @@ import {
|
|
|
9321
9586
|
forwardRef as forwardRef36,
|
|
9322
9587
|
useId as useId18
|
|
9323
9588
|
} from "react";
|
|
9324
|
-
import { Fragment as
|
|
9589
|
+
import { Fragment as Fragment19, jsx as jsx44, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
9325
9590
|
var HEALTH_LABEL = {
|
|
9326
9591
|
fresh: "Fresh",
|
|
9327
9592
|
stale: "Stale",
|
|
@@ -9371,7 +9636,7 @@ var DatasetCard = forwardRef36(
|
|
|
9371
9636
|
children: name
|
|
9372
9637
|
}
|
|
9373
9638
|
) : name;
|
|
9374
|
-
const body = /* @__PURE__ */ jsxs44(
|
|
9639
|
+
const body = /* @__PURE__ */ jsxs44(Fragment19, { children: [
|
|
9375
9640
|
/* @__PURE__ */ jsxs44("div", { className: "ods-dataset-card__head", children: [
|
|
9376
9641
|
sourceIcon && /* @__PURE__ */ jsx44("span", { className: "ods-dataset-card__icon", "aria-hidden": "true", children: sourceIcon }),
|
|
9377
9642
|
/* @__PURE__ */ jsxs44("div", { className: "ods-dataset-card__head-body", children: [
|
|
@@ -9516,7 +9781,7 @@ import {
|
|
|
9516
9781
|
useState as useState23
|
|
9517
9782
|
} from "react";
|
|
9518
9783
|
import { createPortal as createPortal7 } from "react-dom";
|
|
9519
|
-
import { Fragment as
|
|
9784
|
+
import { Fragment as Fragment20, jsx as jsx45, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
9520
9785
|
function readValue(row, col) {
|
|
9521
9786
|
if (typeof col.accessor === "function") return col.accessor(row);
|
|
9522
9787
|
const k = col.accessor ?? col.key;
|
|
@@ -9710,7 +9975,7 @@ function ExportPopover({
|
|
|
9710
9975
|
}) {
|
|
9711
9976
|
const [open, setOpen] = useState23(false);
|
|
9712
9977
|
const triggerRef = useRef18(null);
|
|
9713
|
-
return /* @__PURE__ */ jsxs45(
|
|
9978
|
+
return /* @__PURE__ */ jsxs45(Fragment20, { children: [
|
|
9714
9979
|
/* @__PURE__ */ jsx45(
|
|
9715
9980
|
"button",
|
|
9716
9981
|
{
|
|
@@ -10384,7 +10649,7 @@ function Row({
|
|
|
10384
10649
|
}) {
|
|
10385
10650
|
const [menuOpen, setMenuOpen] = useState23(false);
|
|
10386
10651
|
const triggerRef = useRef18(null);
|
|
10387
|
-
return /* @__PURE__ */ jsxs45(
|
|
10652
|
+
return /* @__PURE__ */ jsxs45(Fragment20, { children: [
|
|
10388
10653
|
/* @__PURE__ */ jsxs45(
|
|
10389
10654
|
"tr",
|
|
10390
10655
|
{
|
|
@@ -10808,7 +11073,7 @@ import {
|
|
|
10808
11073
|
useId as useId20,
|
|
10809
11074
|
useMemo as useMemo11
|
|
10810
11075
|
} from "react";
|
|
10811
|
-
import { Fragment as
|
|
11076
|
+
import { Fragment as Fragment21, jsx as jsx47, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
10812
11077
|
var DonutChart = forwardRef38(
|
|
10813
11078
|
function DonutChart2({
|
|
10814
11079
|
data,
|
|
@@ -10942,7 +11207,7 @@ var DonutChart = forwardRef38(
|
|
|
10942
11207
|
]
|
|
10943
11208
|
}
|
|
10944
11209
|
),
|
|
10945
|
-
/* @__PURE__ */ jsx47("div", { className: "ods-donut__center", children: centerLabel ?? /* @__PURE__ */ jsxs47(
|
|
11210
|
+
/* @__PURE__ */ jsx47("div", { className: "ods-donut__center", children: centerLabel ?? /* @__PURE__ */ jsxs47(Fragment21, { children: [
|
|
10946
11211
|
/* @__PURE__ */ jsx47("div", { className: "ods-donut__value", children: valueLabel ?? total }),
|
|
10947
11212
|
/* @__PURE__ */ jsx47("div", { className: "ods-donut__small", children: unit })
|
|
10948
11213
|
] }) })
|
|
@@ -11100,7 +11365,7 @@ import { AnimatePresence as AnimatePresence9, motion as motion12 } from "framer-
|
|
|
11100
11365
|
import { useEffect as useEffect20, useMemo as useMemo12, useRef as useRef20 } from "react";
|
|
11101
11366
|
import { useButton as useButton2, useMenu, useMenuItem, useMenuTrigger } from "react-aria";
|
|
11102
11367
|
import { createPortal as createPortal9 } from "react-dom";
|
|
11103
|
-
import { Fragment as
|
|
11368
|
+
import { Fragment as Fragment22, jsx as jsx50, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
11104
11369
|
function MenuItemComponent({ item, state, onAction }) {
|
|
11105
11370
|
const ref = useRef20(null);
|
|
11106
11371
|
const { menuItemProps } = useMenuItem({ key: item.key, onAction }, state, ref);
|
|
@@ -11291,7 +11556,7 @@ function DropdownMenu({
|
|
|
11291
11556
|
});
|
|
11292
11557
|
const { buttonProps } = useButton2({ ...menuTriggerProps, ...ariaNameProps }, triggerRef);
|
|
11293
11558
|
const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...safeTriggerProps } = buttonProps;
|
|
11294
|
-
return /* @__PURE__ */ jsxs50(
|
|
11559
|
+
return /* @__PURE__ */ jsxs50(Fragment22, { children: [
|
|
11295
11560
|
/* @__PURE__ */ jsx50(
|
|
11296
11561
|
"button",
|
|
11297
11562
|
{
|
|
@@ -11362,7 +11627,7 @@ EmptyState.displayName = "EmptyState";
|
|
|
11362
11627
|
// src/components/ExecutionConsole/ExecutionConsole.tsx
|
|
11363
11628
|
import { motion as motion13 } from "framer-motion";
|
|
11364
11629
|
import { memo, useCallback as useCallback17, useEffect as useEffect21, useMemo as useMemo13, useRef as useRef21, useState as useState26 } from "react";
|
|
11365
|
-
import { Fragment as
|
|
11630
|
+
import { Fragment as Fragment23, jsx as jsx52, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
11366
11631
|
var iconProps = {
|
|
11367
11632
|
xmlns: "http://www.w3.org/2000/svg",
|
|
11368
11633
|
viewBox: "0 0 24 24",
|
|
@@ -11680,7 +11945,7 @@ function ExecutionConsole({
|
|
|
11680
11945
|
children: /* @__PURE__ */ jsx52(TrashIcon2, {})
|
|
11681
11946
|
}
|
|
11682
11947
|
),
|
|
11683
|
-
toolbar && /* @__PURE__ */ jsxs52(
|
|
11948
|
+
toolbar && /* @__PURE__ */ jsxs52(Fragment23, { children: [
|
|
11684
11949
|
/* @__PURE__ */ jsx52("span", { className: "ods-console__action-separator", "aria-hidden": "true" }),
|
|
11685
11950
|
toolbar
|
|
11686
11951
|
] }),
|
|
@@ -11845,7 +12110,7 @@ function q(query, text) {
|
|
|
11845
12110
|
const lc = text.toLowerCase();
|
|
11846
12111
|
const idx = lc.indexOf(trimmed.toLowerCase());
|
|
11847
12112
|
if (idx < 0) return text;
|
|
11848
|
-
return /* @__PURE__ */ jsxs52(
|
|
12113
|
+
return /* @__PURE__ */ jsxs52(Fragment23, { children: [
|
|
11849
12114
|
text.slice(0, idx),
|
|
11850
12115
|
/* @__PURE__ */ jsx52("mark", { className: "ods-console__match", children: text.slice(idx, idx + trimmed.length) }),
|
|
11851
12116
|
text.slice(idx + trimmed.length)
|
|
@@ -12054,7 +12319,7 @@ function sanitizeHref(url) {
|
|
|
12054
12319
|
}
|
|
12055
12320
|
|
|
12056
12321
|
// src/components/FileDropzone/FileDropzone.tsx
|
|
12057
|
-
import { Fragment as
|
|
12322
|
+
import { Fragment as Fragment24, jsx as jsx54, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
12058
12323
|
var UPLOAD_ICON = /* @__PURE__ */ jsx54(UploadIcon, { width: 20, height: 20, "aria-hidden": "true" });
|
|
12059
12324
|
var SPIN_ICON = /* @__PURE__ */ jsx54("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx54(
|
|
12060
12325
|
"circle",
|
|
@@ -12381,7 +12646,7 @@ var FileDropzone = forwardRef43(
|
|
|
12381
12646
|
children: CHECK_ICON
|
|
12382
12647
|
}
|
|
12383
12648
|
),
|
|
12384
|
-
status === "error" && /* @__PURE__ */ jsxs54(
|
|
12649
|
+
status === "error" && /* @__PURE__ */ jsxs54(Fragment24, { children: [
|
|
12385
12650
|
/* @__PURE__ */ jsx54(
|
|
12386
12651
|
"span",
|
|
12387
12652
|
{
|
|
@@ -13010,7 +13275,7 @@ import {
|
|
|
13010
13275
|
useMemo as useMemo15,
|
|
13011
13276
|
useState as useState29
|
|
13012
13277
|
} from "react";
|
|
13013
|
-
import { Fragment as
|
|
13278
|
+
import { Fragment as Fragment25, jsx as jsx57, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
13014
13279
|
function parseXml(src) {
|
|
13015
13280
|
if (typeof window !== "undefined" && typeof window.DOMParser !== "undefined") {
|
|
13016
13281
|
try {
|
|
@@ -13255,7 +13520,7 @@ function XmlNodeRow({
|
|
|
13255
13520
|
const inlineTextChild = children.length === 1 && children[0].type === "text" ? children[0].text ?? "" : null;
|
|
13256
13521
|
if (inlineTextChild !== null) {
|
|
13257
13522
|
const isMultiLine = inlineTextChild.includes("\n");
|
|
13258
|
-
const openTag = /* @__PURE__ */ jsxs56(
|
|
13523
|
+
const openTag = /* @__PURE__ */ jsxs56(Fragment25, { children: [
|
|
13259
13524
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__bracket", children: "<" }),
|
|
13260
13525
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__tag", children: node.name }),
|
|
13261
13526
|
showAttributes && attrs.map(([k, v]) => /* @__PURE__ */ jsxs56("span", { className: "ods-xml-viewer__attr", children: [
|
|
@@ -13265,7 +13530,7 @@ function XmlNodeRow({
|
|
|
13265
13530
|
] }, k)),
|
|
13266
13531
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__bracket", children: ">" })
|
|
13267
13532
|
] });
|
|
13268
|
-
const closeTag = /* @__PURE__ */ jsxs56(
|
|
13533
|
+
const closeTag = /* @__PURE__ */ jsxs56(Fragment25, { children: [
|
|
13269
13534
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__bracket", children: "</" }),
|
|
13270
13535
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__tag", children: node.name }),
|
|
13271
13536
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__bracket", children: ">" })
|
|
@@ -13330,9 +13595,9 @@ function XmlNodeRow({
|
|
|
13330
13595
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__attr-eq", children: "=" }),
|
|
13331
13596
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__attr-value", children: `"${v}"` })
|
|
13332
13597
|
] }, k)),
|
|
13333
|
-
isSelfClosing ? /* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__bracket", children: " />" }) : /* @__PURE__ */ jsxs56(
|
|
13598
|
+
isSelfClosing ? /* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__bracket", children: " />" }) : /* @__PURE__ */ jsxs56(Fragment25, { children: [
|
|
13334
13599
|
/* @__PURE__ */ jsx57("span", { className: "ods-xml-viewer__bracket", children: ">" }),
|
|
13335
|
-
!open && /* @__PURE__ */ jsxs56(
|
|
13600
|
+
!open && /* @__PURE__ */ jsxs56(Fragment25, { children: [
|
|
13336
13601
|
/* @__PURE__ */ jsxs56("span", { className: "ods-xml-viewer__preview", children: [
|
|
13337
13602
|
children.length,
|
|
13338
13603
|
" child",
|
|
@@ -13359,7 +13624,7 @@ function XmlNodeRow({
|
|
|
13359
13624
|
]
|
|
13360
13625
|
}
|
|
13361
13626
|
),
|
|
13362
|
-
!isSelfClosing && open && /* @__PURE__ */ jsxs56(
|
|
13627
|
+
!isSelfClosing && open && /* @__PURE__ */ jsxs56(Fragment25, { children: [
|
|
13363
13628
|
children.map((c, i) => /* @__PURE__ */ jsx57(
|
|
13364
13629
|
XmlNodeRow,
|
|
13365
13630
|
{
|
|
@@ -13397,7 +13662,7 @@ import {
|
|
|
13397
13662
|
useState as useState30
|
|
13398
13663
|
} from "react";
|
|
13399
13664
|
import YAML from "yaml";
|
|
13400
|
-
import { Fragment as
|
|
13665
|
+
import { Fragment as Fragment26, jsx as jsx58, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
13401
13666
|
function toYaml(value, indent = 0) {
|
|
13402
13667
|
const pad2 = " ".repeat(indent);
|
|
13403
13668
|
if (value === null) return "null";
|
|
@@ -13671,7 +13936,7 @@ var YamlViewer = forwardRef46(
|
|
|
13671
13936
|
}
|
|
13672
13937
|
) : /* @__PURE__ */ jsx58("span", { className: "ods-yaml-viewer__caret-spacer" }),
|
|
13673
13938
|
t.kind === "comment" && /* @__PURE__ */ jsx58("span", { className: "ods-yaml-viewer__comment", children: t.raw.trim() }),
|
|
13674
|
-
t.kind === "key" && /* @__PURE__ */ jsxs57(
|
|
13939
|
+
t.kind === "key" && /* @__PURE__ */ jsxs57(Fragment26, { children: [
|
|
13675
13940
|
t.raw.trim().startsWith("-") && /* @__PURE__ */ jsx58("span", { className: "ods-yaml-viewer__dash", children: "- " }),
|
|
13676
13941
|
/* @__PURE__ */ jsx58("span", { className: "ods-yaml-viewer__key", children: t.key }),
|
|
13677
13942
|
/* @__PURE__ */ jsx58("span", { className: "ods-yaml-viewer__colon", children: ":" }),
|
|
@@ -13690,7 +13955,7 @@ var YamlViewer = forwardRef46(
|
|
|
13690
13955
|
),
|
|
13691
13956
|
isCollapsed && /* @__PURE__ */ jsx58("span", { className: "ods-yaml-viewer__preview", children: " \u2026" })
|
|
13692
13957
|
] }),
|
|
13693
|
-
t.kind === "sequence" && /* @__PURE__ */ jsxs57(
|
|
13958
|
+
t.kind === "sequence" && /* @__PURE__ */ jsxs57(Fragment26, { children: [
|
|
13694
13959
|
/* @__PURE__ */ jsx58("span", { className: "ods-yaml-viewer__dash", children: "- " }),
|
|
13695
13960
|
/* @__PURE__ */ jsx58(
|
|
13696
13961
|
"span",
|
|
@@ -15824,7 +16089,7 @@ import {
|
|
|
15824
16089
|
StethoscopeIcon,
|
|
15825
16090
|
WarningFilledIcon
|
|
15826
16091
|
} from "@octaviaflow/icons";
|
|
15827
|
-
import { Fragment as
|
|
16092
|
+
import { Fragment as Fragment27, jsx as jsx66, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
15828
16093
|
function flowDoctorTone(issues) {
|
|
15829
16094
|
if (issues.some((i) => i.severity === "error")) return "error";
|
|
15830
16095
|
if (issues.length > 0) return "warning";
|
|
@@ -15859,7 +16124,7 @@ function IssueRow({
|
|
|
15859
16124
|
onIssueClick
|
|
15860
16125
|
}) {
|
|
15861
16126
|
const icon = issue.severity === "error" ? /* @__PURE__ */ jsx66(ErrorFilledIcon, { size: "sm", "aria-hidden": "true" }) : /* @__PURE__ */ jsx66(WarningFilledIcon, { size: "sm", "aria-hidden": "true" });
|
|
15862
|
-
const body = /* @__PURE__ */ jsxs65(
|
|
16127
|
+
const body = /* @__PURE__ */ jsxs65(Fragment27, { children: [
|
|
15863
16128
|
/* @__PURE__ */ jsx66(
|
|
15864
16129
|
"span",
|
|
15865
16130
|
{
|
|
@@ -16618,7 +16883,7 @@ import { useEffect as useEffect32, useRef as useRef29, useState as useState39 }
|
|
|
16618
16883
|
// src/components/HoverCard/HoverCard.tsx
|
|
16619
16884
|
import { useCallback as useCallback28, useEffect as useEffect31, useLayoutEffect as useLayoutEffect7, useRef as useRef28, useState as useState38 } from "react";
|
|
16620
16885
|
import { createPortal as createPortal11 } from "react-dom";
|
|
16621
|
-
import { Fragment as
|
|
16886
|
+
import { Fragment as Fragment28, jsx as jsx70, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
16622
16887
|
function computePosition2(rect, panelRect, placement, offset) {
|
|
16623
16888
|
const cx = rect.left + rect.width / 2;
|
|
16624
16889
|
const cy = rect.top + rect.height / 2;
|
|
@@ -16723,14 +16988,14 @@ function HoverCard({
|
|
|
16723
16988
|
),
|
|
16724
16989
|
document.body
|
|
16725
16990
|
) : null;
|
|
16726
|
-
return /* @__PURE__ */ jsxs69(
|
|
16991
|
+
return /* @__PURE__ */ jsxs69(Fragment28, { children: [
|
|
16727
16992
|
triggerEl,
|
|
16728
16993
|
portal
|
|
16729
16994
|
] });
|
|
16730
16995
|
}
|
|
16731
16996
|
|
|
16732
16997
|
// src/components/FlowToolbar/FlowToolbar.tsx
|
|
16733
|
-
import { Fragment as
|
|
16998
|
+
import { Fragment as Fragment29, jsx as jsx71, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
16734
16999
|
function FlowToolbar({ children, placement = "left", className }) {
|
|
16735
17000
|
return /* @__PURE__ */ jsx71(
|
|
16736
17001
|
"div",
|
|
@@ -17195,7 +17460,7 @@ function FlowToolbarStatus({
|
|
|
17195
17460
|
`ods-flow-toolbar__status-trigger--${status}`,
|
|
17196
17461
|
busy && "ods-flow-toolbar__status-trigger--busy"
|
|
17197
17462
|
),
|
|
17198
|
-
trigger: /* @__PURE__ */ jsxs70(
|
|
17463
|
+
trigger: /* @__PURE__ */ jsxs70(Fragment29, { children: [
|
|
17199
17464
|
busy ? /* @__PURE__ */ jsx71(Spinner, { size: 12, label: "Updating flow status" }) : /* @__PURE__ */ jsx71("span", { className: "ods-flow-toolbar__status-dot", "aria-hidden": "true" }),
|
|
17200
17465
|
/* @__PURE__ */ jsx71("span", { className: "ods-flow-toolbar__status-label", children: label }),
|
|
17201
17466
|
/* @__PURE__ */ jsx71("span", { className: "ods-flow-toolbar__status-caret", "aria-hidden": "true", children: /* @__PURE__ */ jsx71(ChevronDownIcon6, { size: "sm", "aria-hidden": "true" }) })
|
|
@@ -18223,7 +18488,7 @@ var Stepper = forwardRef52(
|
|
|
18223
18488
|
Stepper.displayName = "Stepper";
|
|
18224
18489
|
|
|
18225
18490
|
// src/components/OnboardingFlow/OnboardingFlow.tsx
|
|
18226
|
-
import { Fragment as
|
|
18491
|
+
import { Fragment as Fragment30, jsx as jsx77, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
18227
18492
|
function usePromiseBusy() {
|
|
18228
18493
|
const [busy, setBusy] = useState41(false);
|
|
18229
18494
|
const run = (result) => {
|
|
@@ -18512,7 +18777,7 @@ function SetupIncompleteBanner({
|
|
|
18512
18777
|
" of ",
|
|
18513
18778
|
totalSteps,
|
|
18514
18779
|
" steps done",
|
|
18515
|
-
missingLabels && missingLabels.length > 0 && /* @__PURE__ */ jsxs76(
|
|
18780
|
+
missingLabels && missingLabels.length > 0 && /* @__PURE__ */ jsxs76(Fragment30, { children: [
|
|
18516
18781
|
" \u2014 still missing: ",
|
|
18517
18782
|
missingLabels.join(", ")
|
|
18518
18783
|
] }),
|
|
@@ -18538,7 +18803,7 @@ function SetupIncompleteBanner({
|
|
|
18538
18803
|
|
|
18539
18804
|
// src/components/MembersSettings/MembersSettings.tsx
|
|
18540
18805
|
import { useState as useState42 } from "react";
|
|
18541
|
-
import { Fragment as
|
|
18806
|
+
import { Fragment as Fragment31, jsx as jsx78, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
18542
18807
|
var ROLE_BADGE = {
|
|
18543
18808
|
owner: "info",
|
|
18544
18809
|
admin: "info",
|
|
@@ -18648,7 +18913,7 @@ function MembersSettings({
|
|
|
18648
18913
|
{
|
|
18649
18914
|
align: "end",
|
|
18650
18915
|
triggerClassName: "ods-members-settings__row-menu",
|
|
18651
|
-
trigger: busyId === m.id ? /* @__PURE__ */ jsx78(Spinner, { size: 14, label: "Updating member" }) : /* @__PURE__ */ jsxs77(
|
|
18916
|
+
trigger: busyId === m.id ? /* @__PURE__ */ jsx78(Spinner, { size: 14, label: "Updating member" }) : /* @__PURE__ */ jsxs77(Fragment31, { children: [
|
|
18652
18917
|
/* @__PURE__ */ jsx78("span", { "aria-hidden": "true", children: "\u22EF" }),
|
|
18653
18918
|
/* @__PURE__ */ jsxs77("span", { className: "ods-members-settings__sr-only", children: [
|
|
18654
18919
|
"Actions for ",
|
|
@@ -18802,7 +19067,7 @@ function MembersSettings({
|
|
|
18802
19067
|
|
|
18803
19068
|
// src/components/OrganizationSettings/OrganizationSettings.tsx
|
|
18804
19069
|
import { useEffect as useEffect35, useState as useState43 } from "react";
|
|
18805
|
-
import { Fragment as
|
|
19070
|
+
import { Fragment as Fragment32, jsx as jsx79, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
18806
19071
|
function OrganizationSettings({
|
|
18807
19072
|
values,
|
|
18808
19073
|
slug,
|
|
@@ -18987,7 +19252,7 @@ function OrganizationSettings({
|
|
|
18987
19252
|
tone: "danger",
|
|
18988
19253
|
confirmLabel: "Delete organization",
|
|
18989
19254
|
requireConfirmText: values.name,
|
|
18990
|
-
requireConfirmLabel: /* @__PURE__ */ jsxs78(
|
|
19255
|
+
requireConfirmLabel: /* @__PURE__ */ jsxs78(Fragment32, { children: [
|
|
18991
19256
|
"Type ",
|
|
18992
19257
|
/* @__PURE__ */ jsx79("strong", { children: values.name }),
|
|
18993
19258
|
" to confirm"
|
|
@@ -19000,7 +19265,7 @@ function OrganizationSettings({
|
|
|
19000
19265
|
|
|
19001
19266
|
// src/components/ProfileSettings/ProfileSettings.tsx
|
|
19002
19267
|
import { useEffect as useEffect36, useState as useState44 } from "react";
|
|
19003
|
-
import { Fragment as
|
|
19268
|
+
import { Fragment as Fragment33, jsx as jsx80, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
19004
19269
|
function ProfileSettings({
|
|
19005
19270
|
values,
|
|
19006
19271
|
email,
|
|
@@ -19259,7 +19524,7 @@ function ProfileSettings({
|
|
|
19259
19524
|
tone: "danger",
|
|
19260
19525
|
confirmLabel: "Delete account",
|
|
19261
19526
|
requireConfirmText: email,
|
|
19262
|
-
requireConfirmLabel: /* @__PURE__ */ jsxs79(
|
|
19527
|
+
requireConfirmLabel: /* @__PURE__ */ jsxs79(Fragment33, { children: [
|
|
19263
19528
|
"Type ",
|
|
19264
19529
|
/* @__PURE__ */ jsx80("strong", { children: email }),
|
|
19265
19530
|
" to confirm"
|
|
@@ -19920,7 +20185,7 @@ import {
|
|
|
19920
20185
|
forwardRef as forwardRef56,
|
|
19921
20186
|
useId as useId34
|
|
19922
20187
|
} from "react";
|
|
19923
|
-
import { Fragment as
|
|
20188
|
+
import { Fragment as Fragment34, jsx as jsx84, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
19924
20189
|
var IconCard = forwardRef56(
|
|
19925
20190
|
function IconCard2({
|
|
19926
20191
|
variant = "default",
|
|
@@ -19944,7 +20209,7 @@ var IconCard = forwardRef56(
|
|
|
19944
20209
|
const titleId = `${baseId}-title`;
|
|
19945
20210
|
const descId = description ? `${baseId}-desc` : void 0;
|
|
19946
20211
|
const isInteractive = Boolean(href || onClick) && !disabled;
|
|
19947
|
-
const body = /* @__PURE__ */ jsxs82(
|
|
20212
|
+
const body = /* @__PURE__ */ jsxs82(Fragment34, { children: [
|
|
19948
20213
|
/* @__PURE__ */ jsx84("span", { className: "ods-icon-card__icon", "aria-hidden": "true", children: icon }),
|
|
19949
20214
|
/* @__PURE__ */ jsxs82("div", { className: "ods-icon-card__body", children: [
|
|
19950
20215
|
/* @__PURE__ */ jsx84(
|
|
@@ -20025,7 +20290,7 @@ import {
|
|
|
20025
20290
|
forwardRef as forwardRef57,
|
|
20026
20291
|
useId as useId35
|
|
20027
20292
|
} from "react";
|
|
20028
|
-
import { Fragment as
|
|
20293
|
+
import { Fragment as Fragment35, jsx as jsx85, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
20029
20294
|
var CATEGORY_LABEL = {
|
|
20030
20295
|
communication: "Communication",
|
|
20031
20296
|
incident: "Incident",
|
|
@@ -20089,7 +20354,7 @@ var IntegrationCard = forwardRef57(function IntegrationCard2({
|
|
|
20089
20354
|
}
|
|
20090
20355
|
) : name;
|
|
20091
20356
|
const stop = (e) => e.stopPropagation();
|
|
20092
|
-
const body = /* @__PURE__ */ jsxs83(
|
|
20357
|
+
const body = /* @__PURE__ */ jsxs83(Fragment35, { children: [
|
|
20093
20358
|
/* @__PURE__ */ jsxs83("div", { className: "ods-integration-card__head", children: [
|
|
20094
20359
|
logo && /* @__PURE__ */ jsx85("span", { className: "ods-integration-card__logo", "aria-hidden": "true", children: logo }),
|
|
20095
20360
|
/* @__PURE__ */ jsxs83("div", { className: "ods-integration-card__head-body", children: [
|
|
@@ -20244,7 +20509,7 @@ import {
|
|
|
20244
20509
|
forwardRef as forwardRef58,
|
|
20245
20510
|
useId as useId36
|
|
20246
20511
|
} from "react";
|
|
20247
|
-
import { Fragment as
|
|
20512
|
+
import { Fragment as Fragment36, jsx as jsx86, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
20248
20513
|
function isAssigneeObject(v) {
|
|
20249
20514
|
return typeof v === "object" && v !== null && "name" in v;
|
|
20250
20515
|
}
|
|
@@ -20299,7 +20564,7 @@ var KanbanCard = forwardRef58(function KanbanCard2({
|
|
|
20299
20564
|
}
|
|
20300
20565
|
);
|
|
20301
20566
|
};
|
|
20302
|
-
const body = /* @__PURE__ */ jsxs84(
|
|
20567
|
+
const body = /* @__PURE__ */ jsxs84(Fragment36, { children: [
|
|
20303
20568
|
(tagList.length > 0 || badge || onMore) && /* @__PURE__ */ jsxs84("div", { className: "ods-kanban-card__head", children: [
|
|
20304
20569
|
tagList.length > 0 && /* @__PURE__ */ jsx86("span", { className: "ods-kanban-card__tags", children: tagList.map((t, i) => /* @__PURE__ */ jsx86("span", { className: "ods-kanban-card__tag", children: t }, i)) }),
|
|
20305
20570
|
badge && /* @__PURE__ */ jsx86("span", { className: "ods-kanban-card__badge", children: badge }),
|
|
@@ -21774,7 +22039,7 @@ function BlockFieldsEditor({
|
|
|
21774
22039
|
}
|
|
21775
22040
|
|
|
21776
22041
|
// src/components/MessageBlockBuilder/MessagePreview.tsx
|
|
21777
|
-
import { Fragment as
|
|
22042
|
+
import { Fragment as Fragment37 } from "react";
|
|
21778
22043
|
import { jsx as jsx92, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
21779
22044
|
var CLS = "ods-message-block-builder";
|
|
21780
22045
|
function tokenized(text, resolve, inline) {
|
|
@@ -21786,13 +22051,13 @@ function tokenized(text, resolve, inline) {
|
|
|
21786
22051
|
if (isToken) {
|
|
21787
22052
|
return /* @__PURE__ */ jsx92("span", { className: `${CLS}__pill`, title: part, children: resolve?.(part) ?? compactTokenLabel(part) }, `t-${index}`);
|
|
21788
22053
|
}
|
|
21789
|
-
return /* @__PURE__ */ jsx92(
|
|
22054
|
+
return /* @__PURE__ */ jsx92(Fragment37, { children: inline ? inline(part) : part }, `c-${index}`);
|
|
21790
22055
|
});
|
|
21791
22056
|
}
|
|
21792
22057
|
var MRKDWN_INLINE = /(\*[^*\n]+\*|_[^_\n]+_|~[^~\n]+~|`[^`\n]+`|<[^<>\n]+>)/g;
|
|
21793
22058
|
function mrkdwnInline(chunk) {
|
|
21794
22059
|
const lines = chunk.split("\n");
|
|
21795
|
-
return lines.map((line, lineIndex) => /* @__PURE__ */ jsxs90(
|
|
22060
|
+
return lines.map((line, lineIndex) => /* @__PURE__ */ jsxs90(Fragment37, { children: [
|
|
21796
22061
|
lineIndex > 0 && /* @__PURE__ */ jsx92("br", {}),
|
|
21797
22062
|
line.split(MRKDWN_INLINE).map((part, index) => {
|
|
21798
22063
|
if (part === "") return null;
|
|
@@ -21814,7 +22079,7 @@ function mrkdwnInline(chunk) {
|
|
|
21814
22079
|
const [, label] = inner.split("|");
|
|
21815
22080
|
return /* @__PURE__ */ jsx92("span", { className: `${CLS}__preview-link`, children: label ?? inner }, key);
|
|
21816
22081
|
}
|
|
21817
|
-
return /* @__PURE__ */ jsx92(
|
|
22082
|
+
return /* @__PURE__ */ jsx92(Fragment37, { children: part }, key);
|
|
21818
22083
|
})
|
|
21819
22084
|
] }, `l-${lineIndex}`));
|
|
21820
22085
|
}
|
|
@@ -21973,7 +22238,7 @@ function SlackBlockPreview({ block, resolve }) {
|
|
|
21973
22238
|
case "context":
|
|
21974
22239
|
return /* @__PURE__ */ jsx92("div", { className: `${CLS}__slack-context`, children: asItems(p.elements).map((el, index) => (
|
|
21975
22240
|
// eslint-disable-next-line react/no-array-index-key
|
|
21976
|
-
/* @__PURE__ */ jsx92(
|
|
22241
|
+
/* @__PURE__ */ jsx92(Fragment37, { children: asString(el.type) === "image" ? previewImage(
|
|
21977
22242
|
asString(el.imageUrl),
|
|
21978
22243
|
asString(el.altText),
|
|
21979
22244
|
`${CLS}__slack-context-img`
|
|
@@ -22055,7 +22320,7 @@ function TeamsBlockPreview({ block, resolve }) {
|
|
|
22055
22320
|
case "imageSet":
|
|
22056
22321
|
return /* @__PURE__ */ jsx92("div", { className: `${CLS}__teams-imageset`, children: asItems(p.images).map((img, index) => (
|
|
22057
22322
|
// eslint-disable-next-line react/no-array-index-key
|
|
22058
|
-
/* @__PURE__ */ jsx92(
|
|
22323
|
+
/* @__PURE__ */ jsx92(Fragment37, { children: previewImage(asString(img.url), asString(img.altText), `${CLS}__teams-imageset-img`) }, index)
|
|
22059
22324
|
)) });
|
|
22060
22325
|
case "factSet":
|
|
22061
22326
|
return /* @__PURE__ */ jsx92("dl", { className: `${CLS}__teams-facts`, children: asItems(p.facts).map((fact, index) => (
|
|
@@ -22278,7 +22543,7 @@ function MessagePreview({ platform, blocks, meta, resolveTokenLabel }) {
|
|
|
22278
22543
|
}
|
|
22279
22544
|
|
|
22280
22545
|
// src/components/MessageBlockBuilder/glyphs.tsx
|
|
22281
|
-
import { Fragment as
|
|
22546
|
+
import { Fragment as Fragment38, jsx as jsx93, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
22282
22547
|
function glyph(children) {
|
|
22283
22548
|
return /* @__PURE__ */ jsx93(
|
|
22284
22549
|
"svg",
|
|
@@ -22297,80 +22562,80 @@ function glyph(children) {
|
|
|
22297
22562
|
);
|
|
22298
22563
|
}
|
|
22299
22564
|
var headingGlyph = glyph(
|
|
22300
|
-
/* @__PURE__ */ jsx93(
|
|
22565
|
+
/* @__PURE__ */ jsx93(Fragment38, { children: /* @__PURE__ */ jsx93("path", { d: "M3 3v10M11 3v10M3 8h8" }) })
|
|
22301
22566
|
);
|
|
22302
22567
|
var textGlyph = glyph(
|
|
22303
|
-
/* @__PURE__ */ jsx93(
|
|
22568
|
+
/* @__PURE__ */ jsx93(Fragment38, { children: /* @__PURE__ */ jsx93("path", { d: "M2.5 4h11M2.5 8h11M2.5 12h7" }) })
|
|
22304
22569
|
);
|
|
22305
22570
|
var contextGlyph = glyph(
|
|
22306
|
-
/* @__PURE__ */ jsxs91(
|
|
22571
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22307
22572
|
/* @__PURE__ */ jsx93("circle", { cx: "4", cy: "8", r: "1.8" }),
|
|
22308
22573
|
/* @__PURE__ */ jsx93("path", { d: "M8 6.5h5.5M8 9.5h4" })
|
|
22309
22574
|
] })
|
|
22310
22575
|
);
|
|
22311
22576
|
var imageGlyph = glyph(
|
|
22312
|
-
/* @__PURE__ */ jsxs91(
|
|
22577
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22313
22578
|
/* @__PURE__ */ jsx93("rect", { x: "2.5", y: "3", width: "11", height: "10", rx: "1" }),
|
|
22314
22579
|
/* @__PURE__ */ jsx93("circle", { cx: "6", cy: "6.5", r: "1", fill: "currentColor", stroke: "none" }),
|
|
22315
22580
|
/* @__PURE__ */ jsx93("path", { d: "M3.5 11.5l3-3 2 2 2.5-2.5 1.5 1.5" })
|
|
22316
22581
|
] })
|
|
22317
22582
|
);
|
|
22318
22583
|
var dividerGlyph = glyph(
|
|
22319
|
-
/* @__PURE__ */ jsxs91(
|
|
22584
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22320
22585
|
/* @__PURE__ */ jsx93("path", { d: "M2.5 8h11" }),
|
|
22321
22586
|
/* @__PURE__ */ jsx93("path", { d: "M2.5 3.5h11M2.5 12.5h11", opacity: "0.35" })
|
|
22322
22587
|
] })
|
|
22323
22588
|
);
|
|
22324
22589
|
var buttonGlyph = glyph(
|
|
22325
|
-
/* @__PURE__ */ jsxs91(
|
|
22590
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22326
22591
|
/* @__PURE__ */ jsx93("rect", { x: "2", y: "5", width: "12", height: "6", rx: "2" }),
|
|
22327
22592
|
/* @__PURE__ */ jsx93("path", { d: "M5.5 8h5" })
|
|
22328
22593
|
] })
|
|
22329
22594
|
);
|
|
22330
22595
|
var videoGlyph = glyph(
|
|
22331
|
-
/* @__PURE__ */ jsxs91(
|
|
22596
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22332
22597
|
/* @__PURE__ */ jsx93("rect", { x: "2.5", y: "3.5", width: "11", height: "9", rx: "1.5" }),
|
|
22333
22598
|
/* @__PURE__ */ jsx93("path", { d: "M7 6.2v3.6L10 8z", fill: "currentColor", stroke: "none" })
|
|
22334
22599
|
] })
|
|
22335
22600
|
);
|
|
22336
22601
|
var factGlyph = glyph(
|
|
22337
|
-
/* @__PURE__ */ jsxs91(
|
|
22602
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22338
22603
|
/* @__PURE__ */ jsx93("path", { d: "M2.5 4.5h4M2.5 8h4M2.5 11.5h4", opacity: "0.55" }),
|
|
22339
22604
|
/* @__PURE__ */ jsx93("path", { d: "M8.5 4.5h5M8.5 8h5M8.5 11.5h3.5" })
|
|
22340
22605
|
] })
|
|
22341
22606
|
);
|
|
22342
22607
|
var columnsGlyph = glyph(
|
|
22343
|
-
/* @__PURE__ */ jsxs91(
|
|
22608
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22344
22609
|
/* @__PURE__ */ jsx93("rect", { x: "2.5", y: "3", width: "4.5", height: "10", rx: "1" }),
|
|
22345
22610
|
/* @__PURE__ */ jsx93("rect", { x: "9", y: "3", width: "4.5", height: "10", rx: "1" })
|
|
22346
22611
|
] })
|
|
22347
22612
|
);
|
|
22348
22613
|
var containerGlyph = glyph(
|
|
22349
|
-
/* @__PURE__ */ jsxs91(
|
|
22614
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22350
22615
|
/* @__PURE__ */ jsx93("rect", { x: "2.5", y: "3", width: "11", height: "10", rx: "1.5" }),
|
|
22351
22616
|
/* @__PURE__ */ jsx93("path", { d: "M4.5 6h7M4.5 8.8h5" })
|
|
22352
22617
|
] })
|
|
22353
22618
|
);
|
|
22354
22619
|
var tableGlyph = glyph(
|
|
22355
|
-
/* @__PURE__ */ jsxs91(
|
|
22620
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22356
22621
|
/* @__PURE__ */ jsx93("rect", { x: "2.5", y: "3", width: "11", height: "10", rx: "1" }),
|
|
22357
22622
|
/* @__PURE__ */ jsx93("path", { d: "M2.5 6.5h11M2.5 9.8h11M8 3v10" })
|
|
22358
22623
|
] })
|
|
22359
22624
|
);
|
|
22360
22625
|
var imageSetGlyph = glyph(
|
|
22361
|
-
/* @__PURE__ */ jsxs91(
|
|
22626
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22362
22627
|
/* @__PURE__ */ jsx93("rect", { x: "2", y: "4.5", width: "7", height: "7", rx: "1" }),
|
|
22363
22628
|
/* @__PURE__ */ jsx93("path", { d: "M5.5 3H13a1 1 0 011 1v7.5", opacity: "0.55" })
|
|
22364
22629
|
] })
|
|
22365
22630
|
);
|
|
22366
22631
|
var decoratedTextGlyph = glyph(
|
|
22367
|
-
/* @__PURE__ */ jsxs91(
|
|
22632
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22368
22633
|
/* @__PURE__ */ jsx93("circle", { cx: "4.5", cy: "8", r: "2" }),
|
|
22369
22634
|
/* @__PURE__ */ jsx93("path", { d: "M8.5 5.5h5M8.5 8h4M8.5 10.5h5" })
|
|
22370
22635
|
] })
|
|
22371
22636
|
);
|
|
22372
22637
|
var gridGlyph = glyph(
|
|
22373
|
-
/* @__PURE__ */ jsxs91(
|
|
22638
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22374
22639
|
/* @__PURE__ */ jsx93("rect", { x: "2.5", y: "2.5", width: "4.6", height: "4.6", rx: "0.8" }),
|
|
22375
22640
|
/* @__PURE__ */ jsx93("rect", { x: "8.9", y: "2.5", width: "4.6", height: "4.6", rx: "0.8" }),
|
|
22376
22641
|
/* @__PURE__ */ jsx93("rect", { x: "2.5", y: "8.9", width: "4.6", height: "4.6", rx: "0.8" }),
|
|
@@ -22378,13 +22643,13 @@ var gridGlyph = glyph(
|
|
|
22378
22643
|
] })
|
|
22379
22644
|
);
|
|
22380
22645
|
var chartGlyph = glyph(
|
|
22381
|
-
/* @__PURE__ */ jsxs91(
|
|
22646
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22382
22647
|
/* @__PURE__ */ jsx93("path", { d: "M2.5 2.5v11h11" }),
|
|
22383
22648
|
/* @__PURE__ */ jsx93("path", { d: "M5 10.5V7M8 10.5V4.5M11 10.5V6", strokeWidth: "1.8" })
|
|
22384
22649
|
] })
|
|
22385
22650
|
);
|
|
22386
22651
|
var chipGlyph = glyph(
|
|
22387
|
-
/* @__PURE__ */ jsxs91(
|
|
22652
|
+
/* @__PURE__ */ jsxs91(Fragment38, { children: [
|
|
22388
22653
|
/* @__PURE__ */ jsx93("rect", { x: "1.5", y: "5.5", width: "7", height: "5", rx: "2.5" }),
|
|
22389
22654
|
/* @__PURE__ */ jsx93("rect", { x: "9.5", y: "5.5", width: "5", height: "5", rx: "2.5", opacity: "0.55" })
|
|
22390
22655
|
] })
|
|
@@ -24273,7 +24538,7 @@ var messagePlatformAdapters = {
|
|
|
24273
24538
|
// src/components/MessageBlockBuilder/TokenPanel.tsx
|
|
24274
24539
|
import { CloseIcon as CloseIcon14 } from "@octaviaflow/icons";
|
|
24275
24540
|
import { useEffect as useEffect40, useMemo as useMemo25, useState as useState49 } from "react";
|
|
24276
|
-
import { Fragment as
|
|
24541
|
+
import { Fragment as Fragment39, jsx as jsx94, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
24277
24542
|
function TokenPanel({
|
|
24278
24543
|
tokenGroups,
|
|
24279
24544
|
resolveTokenLabel,
|
|
@@ -24325,7 +24590,7 @@ function TokenPanel({
|
|
|
24325
24590
|
hintFlash && "ods-message-block-builder__tokens-target--flash"
|
|
24326
24591
|
),
|
|
24327
24592
|
"aria-live": "polite",
|
|
24328
|
-
children: hasTarget ? /* @__PURE__ */ jsxs92(
|
|
24593
|
+
children: hasTarget ? /* @__PURE__ */ jsxs92(Fragment39, { children: [
|
|
24329
24594
|
"Click inserts into ",
|
|
24330
24595
|
/* @__PURE__ */ jsx94("strong", { children: targetLabel }),
|
|
24331
24596
|
" \u2014 or drag any ref into a field."
|
|
@@ -24396,7 +24661,7 @@ function TokenPanel({
|
|
|
24396
24661
|
}
|
|
24397
24662
|
|
|
24398
24663
|
// src/components/MessageBlockBuilder/MessageBlockBuilder.tsx
|
|
24399
|
-
import { Fragment as
|
|
24664
|
+
import { Fragment as Fragment40, jsx as jsx95, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
24400
24665
|
var CLS2 = "ods-message-block-builder";
|
|
24401
24666
|
function prettyJson(value) {
|
|
24402
24667
|
try {
|
|
@@ -24828,7 +25093,7 @@ function MessageBlockBuilder({
|
|
|
24828
25093
|
}
|
|
24829
25094
|
),
|
|
24830
25095
|
!jsonParse.ok && /* @__PURE__ */ jsx95("p", { className: `${CLS2}__json-error`, role: "alert", children: jsonParse.message })
|
|
24831
|
-
] }) : /* @__PURE__ */ jsxs93(
|
|
25096
|
+
] }) : /* @__PURE__ */ jsxs93(Fragment40, { children: [
|
|
24832
25097
|
adapter.metaFields && adapter.metaFields.length > 0 && /* @__PURE__ */ jsx95(Disclosure, { title: "Card settings", size: "sm", className: `${CLS2}__meta`, children: /* @__PURE__ */ jsx95(
|
|
24833
25098
|
BlockFieldsEditor,
|
|
24834
25099
|
{
|
|
@@ -25019,7 +25284,7 @@ import {
|
|
|
25019
25284
|
useId as useId38,
|
|
25020
25285
|
useMemo as useMemo27
|
|
25021
25286
|
} from "react";
|
|
25022
|
-
import { Fragment as
|
|
25287
|
+
import { Fragment as Fragment41, jsx as jsx96, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
25023
25288
|
var defaultFormat6 = (n) => {
|
|
25024
25289
|
if (Math.abs(n) >= 1e6) return `${(n / 1e6).toFixed(1)}M`;
|
|
25025
25290
|
if (Math.abs(n) >= 1e3) return `${(n / 1e3).toFixed(1)}k`;
|
|
@@ -25233,7 +25498,7 @@ function LineVariant({
|
|
|
25233
25498
|
]);
|
|
25234
25499
|
const path = smooth ? buildSmoothPath(pts) : buildLinePath(pts);
|
|
25235
25500
|
const areaPath = fill2 ? `${path} L${pts[pts.length - 1][0]},${height - PAD2} L${pts[0][0]},${height - PAD2} Z` : null;
|
|
25236
|
-
return /* @__PURE__ */ jsxs94(
|
|
25501
|
+
return /* @__PURE__ */ jsxs94(Fragment41, { children: [
|
|
25237
25502
|
areaPath && /* @__PURE__ */ jsx96(
|
|
25238
25503
|
motion19.path,
|
|
25239
25504
|
{
|
|
@@ -25284,7 +25549,7 @@ function BarVariant({
|
|
|
25284
25549
|
const gap = 1;
|
|
25285
25550
|
const slot = (width - PAD2 * 2) / data.length;
|
|
25286
25551
|
const barW = Math.max(1, slot - gap);
|
|
25287
|
-
return /* @__PURE__ */ jsx96(
|
|
25552
|
+
return /* @__PURE__ */ jsx96(Fragment41, { children: data.map((v, i) => {
|
|
25288
25553
|
const x = PAD2 + i * slot + gap / 2;
|
|
25289
25554
|
const h = (v - lo) / range * (height - PAD2 * 2);
|
|
25290
25555
|
const y = height - PAD2 - h;
|
|
@@ -25324,7 +25589,7 @@ function WinLossVariant({
|
|
|
25324
25589
|
const barW = Math.max(1, slot - gap);
|
|
25325
25590
|
const mid = height / 2;
|
|
25326
25591
|
const barH = (height - PAD2 * 2) * 0.4;
|
|
25327
|
-
return /* @__PURE__ */ jsx96(
|
|
25592
|
+
return /* @__PURE__ */ jsx96(Fragment41, { children: data.map((v, i) => {
|
|
25328
25593
|
const x = PAD2 + i * slot + gap / 2;
|
|
25329
25594
|
if (v === threshold) {
|
|
25330
25595
|
return null;
|
|
@@ -25359,7 +25624,7 @@ function WinLossVariant({
|
|
|
25359
25624
|
}
|
|
25360
25625
|
|
|
25361
25626
|
// src/components/MetricCard/MetricCard.tsx
|
|
25362
|
-
import { Fragment as
|
|
25627
|
+
import { Fragment as Fragment42, jsx as jsx97, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
25363
25628
|
function resolveDeltaTone(trend, direction) {
|
|
25364
25629
|
if (trend === "neutral") return "neutral";
|
|
25365
25630
|
if (direction === "positive") {
|
|
@@ -25461,7 +25726,7 @@ var MetricCard = forwardRef64(
|
|
|
25461
25726
|
children: label
|
|
25462
25727
|
}
|
|
25463
25728
|
) : label;
|
|
25464
|
-
const body = /* @__PURE__ */ jsxs95(
|
|
25729
|
+
const body = /* @__PURE__ */ jsxs95(Fragment42, { children: [
|
|
25465
25730
|
/* @__PURE__ */ jsxs95("div", { className: "ods-metric-card__head", children: [
|
|
25466
25731
|
icon && /* @__PURE__ */ jsx97("span", { className: "ods-metric-card__icon", "aria-hidden": "true", children: icon }),
|
|
25467
25732
|
/* @__PURE__ */ jsxs95("div", { className: "ods-metric-card__head-body", children: [
|
|
@@ -25567,7 +25832,7 @@ import {
|
|
|
25567
25832
|
CloseIcon as CloseIcon15,
|
|
25568
25833
|
SearchIcon as SearchIcon12
|
|
25569
25834
|
} from "@octaviaflow/icons";
|
|
25570
|
-
import { Fragment as
|
|
25835
|
+
import { Fragment as Fragment43, jsx as jsx98, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
25571
25836
|
var RESERVED_TAIL_PX = 64;
|
|
25572
25837
|
var TAGS_GAP = 6;
|
|
25573
25838
|
function OverflowTooltip({
|
|
@@ -26057,7 +26322,7 @@ var MultiSelect = forwardRef65(
|
|
|
26057
26322
|
filteredOptions.length > 0 ? filteredOptions.map((opt, idx) => {
|
|
26058
26323
|
const isSelected = selectedSet.has(opt.value);
|
|
26059
26324
|
const optionId = `${baseId}-opt-${opt.value}`;
|
|
26060
|
-
const tooltipContent = opt.description ? /* @__PURE__ */ jsxs96(
|
|
26325
|
+
const tooltipContent = opt.description ? /* @__PURE__ */ jsxs96(Fragment43, { children: [
|
|
26061
26326
|
/* @__PURE__ */ jsx98("span", { children: opt.label }),
|
|
26062
26327
|
/* @__PURE__ */ jsx98("br", {}),
|
|
26063
26328
|
/* @__PURE__ */ jsx98("span", { style: { opacity: 0.75 }, children: opt.description })
|
|
@@ -26458,7 +26723,7 @@ import {
|
|
|
26458
26723
|
forwardRef as forwardRef67,
|
|
26459
26724
|
useId as useId42
|
|
26460
26725
|
} from "react";
|
|
26461
|
-
import { Fragment as
|
|
26726
|
+
import { Fragment as Fragment44, jsx as jsx101, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
26462
26727
|
var STATUS_LABEL5 = {
|
|
26463
26728
|
queued: "Queued",
|
|
26464
26729
|
running: "Running",
|
|
@@ -26490,7 +26755,7 @@ function StatusRing({
|
|
|
26490
26755
|
height: "20",
|
|
26491
26756
|
animate,
|
|
26492
26757
|
transition: animate ? { duration: 1.2, repeat: Infinity, ease: "linear" } : void 0,
|
|
26493
|
-
children: status === "running" ? /* @__PURE__ */ jsxs99(
|
|
26758
|
+
children: status === "running" ? /* @__PURE__ */ jsxs99(Fragment44, { children: [
|
|
26494
26759
|
/* @__PURE__ */ jsx101(
|
|
26495
26760
|
"circle",
|
|
26496
26761
|
{
|
|
@@ -26513,7 +26778,7 @@ function StatusRing({
|
|
|
26513
26778
|
strokeLinecap: "round"
|
|
26514
26779
|
}
|
|
26515
26780
|
)
|
|
26516
|
-
] }) : status === "succeeded" ? /* @__PURE__ */ jsxs99(
|
|
26781
|
+
] }) : status === "succeeded" ? /* @__PURE__ */ jsxs99(Fragment44, { children: [
|
|
26517
26782
|
/* @__PURE__ */ jsx101("circle", { cx: "12", cy: "12", r: "9", fill: "currentColor", opacity: "0.18" }),
|
|
26518
26783
|
/* @__PURE__ */ jsx101(
|
|
26519
26784
|
"path",
|
|
@@ -26526,7 +26791,7 @@ function StatusRing({
|
|
|
26526
26791
|
strokeLinejoin: "round"
|
|
26527
26792
|
}
|
|
26528
26793
|
)
|
|
26529
|
-
] }) : status === "failed" ? /* @__PURE__ */ jsxs99(
|
|
26794
|
+
] }) : status === "failed" ? /* @__PURE__ */ jsxs99(Fragment44, { children: [
|
|
26530
26795
|
/* @__PURE__ */ jsx101("circle", { cx: "12", cy: "12", r: "9", fill: "currentColor", opacity: "0.18" }),
|
|
26531
26796
|
/* @__PURE__ */ jsx101(
|
|
26532
26797
|
"path",
|
|
@@ -26537,7 +26802,7 @@ function StatusRing({
|
|
|
26537
26802
|
strokeLinecap: "round"
|
|
26538
26803
|
}
|
|
26539
26804
|
)
|
|
26540
|
-
] }) : status === "paused" ? /* @__PURE__ */ jsxs99(
|
|
26805
|
+
] }) : status === "paused" ? /* @__PURE__ */ jsxs99(Fragment44, { children: [
|
|
26541
26806
|
/* @__PURE__ */ jsx101("circle", { cx: "12", cy: "12", r: "9", fill: "currentColor", opacity: "0.18" }),
|
|
26542
26807
|
/* @__PURE__ */ jsx101(
|
|
26543
26808
|
"path",
|
|
@@ -26548,7 +26813,7 @@ function StatusRing({
|
|
|
26548
26813
|
strokeLinecap: "round"
|
|
26549
26814
|
}
|
|
26550
26815
|
)
|
|
26551
|
-
] }) : status === "skipped" ? /* @__PURE__ */ jsxs99(
|
|
26816
|
+
] }) : status === "skipped" ? /* @__PURE__ */ jsxs99(Fragment44, { children: [
|
|
26552
26817
|
/* @__PURE__ */ jsx101("circle", { cx: "12", cy: "12", r: "9", fill: "currentColor", opacity: "0.18" }),
|
|
26553
26818
|
/* @__PURE__ */ jsx101(
|
|
26554
26819
|
"path",
|
|
@@ -26561,7 +26826,7 @@ function StatusRing({
|
|
|
26561
26826
|
strokeLinejoin: "round"
|
|
26562
26827
|
}
|
|
26563
26828
|
)
|
|
26564
|
-
] }) : status === "scheduled" ? /* @__PURE__ */ jsxs99(
|
|
26829
|
+
] }) : status === "scheduled" ? /* @__PURE__ */ jsxs99(Fragment44, { children: [
|
|
26565
26830
|
/* @__PURE__ */ jsx101(
|
|
26566
26831
|
"circle",
|
|
26567
26832
|
{
|
|
@@ -26586,7 +26851,7 @@ function StatusRing({
|
|
|
26586
26851
|
)
|
|
26587
26852
|
] }) : (
|
|
26588
26853
|
// queued
|
|
26589
|
-
/* @__PURE__ */ jsx101(
|
|
26854
|
+
/* @__PURE__ */ jsx101(Fragment44, { children: /* @__PURE__ */ jsx101(
|
|
26590
26855
|
"circle",
|
|
26591
26856
|
{
|
|
26592
26857
|
cx: "12",
|
|
@@ -26656,7 +26921,7 @@ var PipelineCard = forwardRef67(
|
|
|
26656
26921
|
}
|
|
26657
26922
|
) : name;
|
|
26658
26923
|
const stop = (e) => e.stopPropagation();
|
|
26659
|
-
const body = /* @__PURE__ */ jsxs99(
|
|
26924
|
+
const body = /* @__PURE__ */ jsxs99(Fragment44, { children: [
|
|
26660
26925
|
/* @__PURE__ */ jsxs99("div", { className: "ods-pipeline-card__head", children: [
|
|
26661
26926
|
/* @__PURE__ */ jsx101(
|
|
26662
26927
|
StatusRing,
|
|
@@ -26859,7 +27124,7 @@ function usePlanPickerContext() {
|
|
|
26859
27124
|
}
|
|
26860
27125
|
|
|
26861
27126
|
// src/components/PlanCard/PlanCard.tsx
|
|
26862
|
-
import { Fragment as
|
|
27127
|
+
import { Fragment as Fragment45, jsx as jsx102, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
26863
27128
|
function isStructuredFeature(f) {
|
|
26864
27129
|
return typeof f === "object" && f !== null && "text" in f;
|
|
26865
27130
|
}
|
|
@@ -26936,7 +27201,7 @@ var PlanCard = forwardRef68(
|
|
|
26936
27201
|
offer && /* @__PURE__ */ jsx102("div", { className: "ods-plan-card__offer", children: offer }),
|
|
26937
27202
|
allowance && /* @__PURE__ */ jsx102("div", { className: "ods-plan-card__allowance", children: allowance }),
|
|
26938
27203
|
description && /* @__PURE__ */ jsx102("div", { className: "ods-plan-card__desc", children: description }),
|
|
26939
|
-
features && features.length > 0 && /* @__PURE__ */ jsxs100(
|
|
27204
|
+
features && features.length > 0 && /* @__PURE__ */ jsxs100(Fragment45, { children: [
|
|
26940
27205
|
/* @__PURE__ */ jsx102("hr", { className: "ods-plan-card__sep" }),
|
|
26941
27206
|
/* @__PURE__ */ jsx102("ul", { className: "ods-plan-card__features", children: features.map((f, i) => {
|
|
26942
27207
|
const structured = isStructuredFeature(f);
|
|
@@ -27045,7 +27310,7 @@ PlanPicker.displayName = "PlanPicker";
|
|
|
27045
27310
|
// src/components/Popover/Popover.tsx
|
|
27046
27311
|
import { useCallback as useCallback37, useEffect as useEffect43, useLayoutEffect as useLayoutEffect9, useRef as useRef37, useState as useState53 } from "react";
|
|
27047
27312
|
import { createPortal as createPortal13 } from "react-dom";
|
|
27048
|
-
import { Fragment as
|
|
27313
|
+
import { Fragment as Fragment46, jsx as jsx104, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
27049
27314
|
function computePosition3(rect, popRect, placement, offset) {
|
|
27050
27315
|
const cx = rect.left + rect.width / 2;
|
|
27051
27316
|
const cy = rect.top + rect.height / 2;
|
|
@@ -27165,7 +27430,7 @@ function Popover({
|
|
|
27165
27430
|
),
|
|
27166
27431
|
document.body
|
|
27167
27432
|
) : null;
|
|
27168
|
-
return /* @__PURE__ */ jsxs101(
|
|
27433
|
+
return /* @__PURE__ */ jsxs101(Fragment46, { children: [
|
|
27169
27434
|
triggerEl,
|
|
27170
27435
|
portal
|
|
27171
27436
|
] });
|
|
@@ -27287,7 +27552,7 @@ import {
|
|
|
27287
27552
|
forwardRef as forwardRef71,
|
|
27288
27553
|
useId as useId44
|
|
27289
27554
|
} from "react";
|
|
27290
|
-
import { Fragment as
|
|
27555
|
+
import { Fragment as Fragment47, jsx as jsx106, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
27291
27556
|
function Stars({ value, max = 5, count }) {
|
|
27292
27557
|
return /* @__PURE__ */ jsxs103(
|
|
27293
27558
|
"span",
|
|
@@ -27336,7 +27601,7 @@ var ProductCard = forwardRef71(
|
|
|
27336
27601
|
const descId = description ? `${baseId}-desc` : void 0;
|
|
27337
27602
|
const tagList = tags ?? (tag ? [tag] : []);
|
|
27338
27603
|
const isInteractive = Boolean(href || onClick) && !disabled;
|
|
27339
|
-
const body = /* @__PURE__ */ jsxs103(
|
|
27604
|
+
const body = /* @__PURE__ */ jsxs103(Fragment47, { children: [
|
|
27340
27605
|
image && /* @__PURE__ */ jsx106(
|
|
27341
27606
|
"div",
|
|
27342
27607
|
{
|
|
@@ -28391,7 +28656,7 @@ import {
|
|
|
28391
28656
|
StarHalfIcon,
|
|
28392
28657
|
StarIcon as StarIcon2
|
|
28393
28658
|
} from "@octaviaflow/icons";
|
|
28394
|
-
import { Fragment as
|
|
28659
|
+
import { Fragment as Fragment48, jsx as jsx113, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
28395
28660
|
var Rating = forwardRef78(function Rating2({
|
|
28396
28661
|
value,
|
|
28397
28662
|
onChange,
|
|
@@ -28482,7 +28747,7 @@ var Rating = forwardRef78(function Rating2({
|
|
|
28482
28747
|
"aria-hidden": "true",
|
|
28483
28748
|
children: [
|
|
28484
28749
|
/* @__PURE__ */ jsx113(Glyph, {}),
|
|
28485
|
-
interactive && /* @__PURE__ */ jsxs110(
|
|
28750
|
+
interactive && /* @__PURE__ */ jsxs110(Fragment48, { children: [
|
|
28486
28751
|
allowHalf && /* @__PURE__ */ jsx113(
|
|
28487
28752
|
"span",
|
|
28488
28753
|
{
|
|
@@ -29035,7 +29300,7 @@ var ScrollArea = forwardRef82(
|
|
|
29035
29300
|
ScrollArea.displayName = "ScrollArea";
|
|
29036
29301
|
|
|
29037
29302
|
// src/components/SettingsLayout/SettingsLayout.tsx
|
|
29038
|
-
import { Fragment as
|
|
29303
|
+
import { Fragment as Fragment49, jsx as jsx118, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
29039
29304
|
function SettingsLayout({
|
|
29040
29305
|
groups,
|
|
29041
29306
|
activeId,
|
|
@@ -29054,7 +29319,7 @@ function SettingsLayout({
|
|
|
29054
29319
|
group.label && /* @__PURE__ */ jsx118("div", { className: "ods-settings-layout__group-label", children: group.label }),
|
|
29055
29320
|
/* @__PURE__ */ jsx118("ul", { className: "ods-settings-layout__list", children: group.items.map((item) => {
|
|
29056
29321
|
const active = item.id === activeId;
|
|
29057
|
-
const content = /* @__PURE__ */ jsxs114(
|
|
29322
|
+
const content = /* @__PURE__ */ jsxs114(Fragment49, { children: [
|
|
29058
29323
|
item.icon && /* @__PURE__ */ jsx118("span", { className: "ods-settings-layout__item-icon", "aria-hidden": "true", children: item.icon }),
|
|
29059
29324
|
/* @__PURE__ */ jsx118("span", { className: "ods-settings-layout__item-label", children: item.label })
|
|
29060
29325
|
] });
|
|
@@ -29095,7 +29360,7 @@ function SettingsLayout({
|
|
|
29095
29360
|
import { AnimatePresence as AnimatePresence14, motion as motion22 } from "framer-motion";
|
|
29096
29361
|
import { useEffect as useEffect46 } from "react";
|
|
29097
29362
|
import { createPortal as createPortal14 } from "react-dom";
|
|
29098
|
-
import { Fragment as
|
|
29363
|
+
import { Fragment as Fragment50, jsx as jsx119, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
29099
29364
|
var slideVariants = {
|
|
29100
29365
|
top: { initial: { y: "-100%" }, animate: { y: 0 }, exit: { y: "-100%" } },
|
|
29101
29366
|
bottom: { initial: { y: "100%" }, animate: { y: 0 }, exit: { y: "100%" } },
|
|
@@ -29139,7 +29404,7 @@ function Sheet({
|
|
|
29139
29404
|
const variant = slideVariants[side];
|
|
29140
29405
|
const resolved = resolveSize(side, size);
|
|
29141
29406
|
const isVertical = side === "left" || side === "right";
|
|
29142
|
-
const content = /* @__PURE__ */ jsx119(AnimatePresence14, { children: open && /* @__PURE__ */ jsxs115(
|
|
29407
|
+
const content = /* @__PURE__ */ jsx119(AnimatePresence14, { children: open && /* @__PURE__ */ jsxs115(Fragment50, { children: [
|
|
29143
29408
|
/* @__PURE__ */ jsx119(
|
|
29144
29409
|
motion22.div,
|
|
29145
29410
|
{
|
|
@@ -29198,7 +29463,7 @@ Show.displayName = "Show";
|
|
|
29198
29463
|
|
|
29199
29464
|
// src/components/Sidebar/Sidebar.tsx
|
|
29200
29465
|
import { useCallback as useCallback40, useEffect as useEffect47, useRef as useRef42, useState as useState57 } from "react";
|
|
29201
|
-
import { Fragment as
|
|
29466
|
+
import { Fragment as Fragment51, jsx as jsx121, jsxs as jsxs116 } from "react/jsx-runtime";
|
|
29202
29467
|
function Sidebar({
|
|
29203
29468
|
variant = "expanded",
|
|
29204
29469
|
sections,
|
|
@@ -29335,7 +29600,7 @@ function RailLayout({
|
|
|
29335
29600
|
tooltipDelay,
|
|
29336
29601
|
suppressTooltips
|
|
29337
29602
|
}) {
|
|
29338
|
-
return /* @__PURE__ */ jsxs116(
|
|
29603
|
+
return /* @__PURE__ */ jsxs116(Fragment51, { children: [
|
|
29339
29604
|
/* @__PURE__ */ jsx121("div", { className: "ods-sidebar__nav-rail", children: sections.flatMap((s) => s.items).map((item) => /* @__PURE__ */ jsx121(
|
|
29340
29605
|
RailItem,
|
|
29341
29606
|
{
|
|
@@ -29493,7 +29758,7 @@ function ExpandedLayout({
|
|
|
29493
29758
|
onPinToggle
|
|
29494
29759
|
}) {
|
|
29495
29760
|
const hasFooterControl = Boolean(onPinToggle || onToggle);
|
|
29496
|
-
return /* @__PURE__ */ jsxs116(
|
|
29761
|
+
return /* @__PURE__ */ jsxs116(Fragment51, { children: [
|
|
29497
29762
|
/* @__PURE__ */ jsx121("div", { className: "ods-sidebar__body", children: sections.map((section, sIdx) => /* @__PURE__ */ jsxs116("div", { className: "ods-sidebar__section", children: [
|
|
29498
29763
|
section.label && /* @__PURE__ */ jsx121("div", { className: "ods-sidebar__section-label", children: section.label }),
|
|
29499
29764
|
section.items.map((item) => /* @__PURE__ */ jsx121(ExpandedItem, { item, level: 0 }, item.id))
|
|
@@ -29556,7 +29821,7 @@ function ExpandedItem({ item, level }) {
|
|
|
29556
29821
|
item.defaultExpanded ?? (hasChildren && hasActiveDescendant(item))
|
|
29557
29822
|
);
|
|
29558
29823
|
if (hasChildren) {
|
|
29559
|
-
return /* @__PURE__ */ jsxs116(
|
|
29824
|
+
return /* @__PURE__ */ jsxs116(Fragment51, { children: [
|
|
29560
29825
|
/* @__PURE__ */ jsxs116(
|
|
29561
29826
|
"button",
|
|
29562
29827
|
{
|
|
@@ -29638,7 +29903,7 @@ function ExpandedItem({ item, level }) {
|
|
|
29638
29903
|
}
|
|
29639
29904
|
function SidebarUserCard({ user }) {
|
|
29640
29905
|
const labelText = typeof user.name === "string" ? user.name : "User";
|
|
29641
|
-
const body = /* @__PURE__ */ jsxs116(
|
|
29906
|
+
const body = /* @__PURE__ */ jsxs116(Fragment51, { children: [
|
|
29642
29907
|
/* @__PURE__ */ jsx121("span", { className: "ods-sidebar__user-avatar", children: user.avatar ?? /* @__PURE__ */ jsx121("span", { children: user.initial ?? (typeof user.name === "string" ? user.name.charAt(0).toUpperCase() : "?") }) }),
|
|
29643
29908
|
/* @__PURE__ */ jsxs116("span", { className: "ods-sidebar__user-info", children: [
|
|
29644
29909
|
/* @__PURE__ */ jsx121("span", { className: "ods-sidebar__user-name", children: user.name }),
|
|
@@ -29679,7 +29944,7 @@ import { AnimatePresence as AnimatePresence15, motion as motion23 } from "framer
|
|
|
29679
29944
|
import { useEffect as useEffect48, useRef as useRef43 } from "react";
|
|
29680
29945
|
import { FocusScope as FocusScope2, OverlayProvider as OverlayProvider2, useDialog as useDialog2, useModal as useModal2, useOverlay as useOverlay2 } from "react-aria";
|
|
29681
29946
|
import { createPortal as createPortal15 } from "react-dom";
|
|
29682
|
-
import { Fragment as
|
|
29947
|
+
import { Fragment as Fragment52, jsx as jsx122, jsxs as jsxs117 } from "react/jsx-runtime";
|
|
29683
29948
|
var slideVariants2 = {
|
|
29684
29949
|
left: {
|
|
29685
29950
|
initial: { x: "-100%" },
|
|
@@ -29745,7 +30010,7 @@ function SlideoutContent({
|
|
|
29745
30010
|
const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...safeOverlayProps } = overlayProps;
|
|
29746
30011
|
const variant = slideVariants2[position];
|
|
29747
30012
|
const panelWidth = typeof width === "number" ? `${width}px` : width;
|
|
29748
|
-
return /* @__PURE__ */ jsx122(AnimatePresence15, { children: open && /* @__PURE__ */ jsxs117(
|
|
30013
|
+
return /* @__PURE__ */ jsx122(AnimatePresence15, { children: open && /* @__PURE__ */ jsxs117(Fragment52, { children: [
|
|
29749
30014
|
/* @__PURE__ */ jsx122(
|
|
29750
30015
|
motion23.div,
|
|
29751
30016
|
{
|
|
@@ -30034,7 +30299,7 @@ function VersionHistory({
|
|
|
30034
30299
|
VersionHistory.displayName = "VersionHistory";
|
|
30035
30300
|
|
|
30036
30301
|
// src/components/StatusList/StatusList.tsx
|
|
30037
|
-
import { Fragment as
|
|
30302
|
+
import { Fragment as Fragment53, jsx as jsx124, jsxs as jsxs119 } from "react/jsx-runtime";
|
|
30038
30303
|
var TONE_TO_CHIP2 = {
|
|
30039
30304
|
success: "success",
|
|
30040
30305
|
running: "primary",
|
|
@@ -30056,7 +30321,7 @@ function StatusList({
|
|
|
30056
30321
|
}) {
|
|
30057
30322
|
const visible = typeof max === "number" ? items.slice(0, max) : items;
|
|
30058
30323
|
const overflow = items.length - visible.length;
|
|
30059
|
-
const renderRowInner = (item) => /* @__PURE__ */ jsxs119(
|
|
30324
|
+
const renderRowInner = (item) => /* @__PURE__ */ jsxs119(Fragment53, { children: [
|
|
30060
30325
|
/* @__PURE__ */ jsx124(
|
|
30061
30326
|
"span",
|
|
30062
30327
|
{
|
|
@@ -30243,7 +30508,7 @@ Slider.displayName = "Slider";
|
|
|
30243
30508
|
import {
|
|
30244
30509
|
Children as Children2,
|
|
30245
30510
|
forwardRef as forwardRef84,
|
|
30246
|
-
Fragment as
|
|
30511
|
+
Fragment as Fragment54
|
|
30247
30512
|
} from "react";
|
|
30248
30513
|
import { jsx as jsx126 } from "react/jsx-runtime";
|
|
30249
30514
|
function resolveGap2(gap) {
|
|
@@ -30284,9 +30549,9 @@ var Stack = forwardRef84(function Stack2({
|
|
|
30284
30549
|
const Component = as ?? "div";
|
|
30285
30550
|
const items = divider ? Children2.toArray(children).flatMap(
|
|
30286
30551
|
(child, i, arr) => i < arr.length - 1 ? [
|
|
30287
|
-
/* @__PURE__ */ jsx126(
|
|
30288
|
-
/* @__PURE__ */ jsx126(
|
|
30289
|
-
] : [/* @__PURE__ */ jsx126(
|
|
30552
|
+
/* @__PURE__ */ jsx126(Fragment54, { children: child }, `item-${i}`),
|
|
30553
|
+
/* @__PURE__ */ jsx126(Fragment54, { children: divider }, `divider-${i}`)
|
|
30554
|
+
] : [/* @__PURE__ */ jsx126(Fragment54, { children: child }, `item-${i}`)]
|
|
30290
30555
|
) : children;
|
|
30291
30556
|
return /* @__PURE__ */ jsx126(
|
|
30292
30557
|
Component,
|
|
@@ -31047,7 +31312,7 @@ import {
|
|
|
31047
31312
|
CaretSortIcon as CaretSortIcon2,
|
|
31048
31313
|
CaretUpIcon as CaretUpIcon3
|
|
31049
31314
|
} from "@octaviaflow/icons";
|
|
31050
|
-
import { Fragment as
|
|
31315
|
+
import { Fragment as Fragment55, jsx as jsx131, jsxs as jsxs125 } from "react/jsx-runtime";
|
|
31051
31316
|
function TableInner({
|
|
31052
31317
|
columns,
|
|
31053
31318
|
data,
|
|
@@ -31181,7 +31446,7 @@ function TableRow({
|
|
|
31181
31446
|
}) {
|
|
31182
31447
|
const isSelected = selectedRows?.has(rowIndex) ?? false;
|
|
31183
31448
|
const [expanded, setExpanded] = useState63(false);
|
|
31184
|
-
return /* @__PURE__ */ jsxs125(
|
|
31449
|
+
return /* @__PURE__ */ jsxs125(Fragment55, { children: [
|
|
31185
31450
|
/* @__PURE__ */ jsxs125(
|
|
31186
31451
|
"tr",
|
|
31187
31452
|
{
|
|
@@ -31350,7 +31615,7 @@ import {
|
|
|
31350
31615
|
forwardRef as forwardRef91,
|
|
31351
31616
|
useId as useId53
|
|
31352
31617
|
} from "react";
|
|
31353
|
-
import { Fragment as
|
|
31618
|
+
import { Fragment as Fragment56, jsx as jsx133, jsxs as jsxs127 } from "react/jsx-runtime";
|
|
31354
31619
|
var TemplateCard = forwardRef91(function TemplateCard2({
|
|
31355
31620
|
name,
|
|
31356
31621
|
nameAs = "h3",
|
|
@@ -31456,7 +31721,7 @@ var TemplateCard = forwardRef91(function TemplateCard2({
|
|
|
31456
31721
|
if (iconConnector === "plus") return "+";
|
|
31457
31722
|
return iconConnector;
|
|
31458
31723
|
};
|
|
31459
|
-
const body = /* @__PURE__ */ jsxs127(
|
|
31724
|
+
const body = /* @__PURE__ */ jsxs127(Fragment56, { children: [
|
|
31460
31725
|
showMedia && /* @__PURE__ */ jsxs127(
|
|
31461
31726
|
"div",
|
|
31462
31727
|
{
|
|
@@ -31656,7 +31921,7 @@ Timeline.displayName = "Timeline";
|
|
|
31656
31921
|
// src/components/TimePicker/TimePicker.tsx
|
|
31657
31922
|
import {
|
|
31658
31923
|
forwardRef as forwardRef93,
|
|
31659
|
-
Fragment as
|
|
31924
|
+
Fragment as Fragment57,
|
|
31660
31925
|
useCallback as useCallback45,
|
|
31661
31926
|
useEffect as useEffect51,
|
|
31662
31927
|
useId as useId54,
|
|
@@ -31670,7 +31935,7 @@ import {
|
|
|
31670
31935
|
ChevronDownIcon as ChevronDownIcon9,
|
|
31671
31936
|
TimeIcon as TimeIcon2
|
|
31672
31937
|
} from "@octaviaflow/icons";
|
|
31673
|
-
import { Fragment as
|
|
31938
|
+
import { Fragment as Fragment58, jsx as jsx135, jsxs as jsxs129 } from "react/jsx-runtime";
|
|
31674
31939
|
var pad = (n) => n.toString().padStart(2, "0");
|
|
31675
31940
|
function format(v, use24h, showSeconds) {
|
|
31676
31941
|
const base = `${pad(v.hours)}:${pad(v.minutes)}${showSeconds ? `:${pad(v.seconds ?? 0)}` : ""}`;
|
|
@@ -31991,7 +32256,7 @@ var TimePicker = forwardRef93(
|
|
|
31991
32256
|
segButton("hours", value.hours),
|
|
31992
32257
|
/* @__PURE__ */ jsx135("span", { className: "ods-timepicker__display-sep", children: ":" }),
|
|
31993
32258
|
segButton("minutes", value.minutes),
|
|
31994
|
-
showSeconds && /* @__PURE__ */ jsxs129(
|
|
32259
|
+
showSeconds && /* @__PURE__ */ jsxs129(Fragment58, { children: [
|
|
31995
32260
|
/* @__PURE__ */ jsx135("span", { className: "ods-timepicker__display-sep", children: ":" }),
|
|
31996
32261
|
segButton("seconds", value.seconds ?? 0)
|
|
31997
32262
|
] })
|
|
@@ -32023,7 +32288,7 @@ var TimePicker = forwardRef93(
|
|
|
32023
32288
|
)
|
|
32024
32289
|
] })
|
|
32025
32290
|
] }),
|
|
32026
|
-
/* @__PURE__ */ jsx135("div", { className: "ods-timepicker__body", children: segOrder().map((seg, i, arr) => /* @__PURE__ */ jsxs129(
|
|
32291
|
+
/* @__PURE__ */ jsx135("div", { className: "ods-timepicker__body", children: segOrder().map((seg, i, arr) => /* @__PURE__ */ jsxs129(Fragment57, { children: [
|
|
32027
32292
|
/* @__PURE__ */ jsxs129("div", { className: "ods-timepicker__col", children: [
|
|
32028
32293
|
/* @__PURE__ */ jsx135("span", { className: "ods-timepicker__col-lbl", children: seg === "hours" ? "HOUR" : seg === "minutes" ? "MIN" : "SEC" }),
|
|
32029
32294
|
/* @__PURE__ */ jsx135(
|
|
@@ -32089,7 +32354,7 @@ import {
|
|
|
32089
32354
|
GlobeIcon,
|
|
32090
32355
|
SearchIcon as SearchIcon13
|
|
32091
32356
|
} from "@octaviaflow/icons";
|
|
32092
|
-
import { Fragment as
|
|
32357
|
+
import { Fragment as Fragment59, jsx as jsx136, jsxs as jsxs130 } from "react/jsx-runtime";
|
|
32093
32358
|
var DEFAULT_TZS = [
|
|
32094
32359
|
{ iana: "America/Los_Angeles", label: "Pacific Time", offset: "UTC\u22128" },
|
|
32095
32360
|
{ iana: "America/Denver", label: "Mountain Time", offset: "UTC\u22127" },
|
|
@@ -32264,7 +32529,7 @@ var TimezonePicker = forwardRef94(
|
|
|
32264
32529
|
"aria-invalid": error ? true : void 0,
|
|
32265
32530
|
children: [
|
|
32266
32531
|
/* @__PURE__ */ jsx136("span", { className: "ods-tzpicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx136(GlobeIcon, { size: "xs" }) }),
|
|
32267
|
-
/* @__PURE__ */ jsx136("span", { className: "ods-tzpicker__info", children: selected ? /* @__PURE__ */ jsxs130(
|
|
32532
|
+
/* @__PURE__ */ jsx136("span", { className: "ods-tzpicker__info", children: selected ? /* @__PURE__ */ jsxs130(Fragment59, { children: [
|
|
32268
32533
|
/* @__PURE__ */ jsx136("span", { className: "ods-tzpicker__name", children: selected.label }),
|
|
32269
32534
|
/* @__PURE__ */ jsxs130("span", { className: "ods-tzpicker__meta", children: [
|
|
32270
32535
|
selected.iana.split("/").pop()?.replace(/_/g, " "),
|
|
@@ -32393,7 +32658,7 @@ import {
|
|
|
32393
32658
|
useState as useState67
|
|
32394
32659
|
} from "react";
|
|
32395
32660
|
import { createPortal as createPortal18 } from "react-dom";
|
|
32396
|
-
import { Fragment as
|
|
32661
|
+
import { Fragment as Fragment60, jsx as jsx137, jsxs as jsxs131 } from "react/jsx-runtime";
|
|
32397
32662
|
var defaultIcons = {
|
|
32398
32663
|
success: /* @__PURE__ */ jsxs131("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
|
|
32399
32664
|
/* @__PURE__ */ jsx137(
|
|
@@ -32484,9 +32749,9 @@ var defaultIcons = {
|
|
|
32484
32749
|
var ToastContext = createContext3(null);
|
|
32485
32750
|
function ToastBody({ item, onDismiss }) {
|
|
32486
32751
|
const dismiss = () => onDismiss(item.id);
|
|
32487
|
-
if (item.render) return /* @__PURE__ */ jsx137(
|
|
32752
|
+
if (item.render) return /* @__PURE__ */ jsx137(Fragment60, { children: item.render({ id: item.id, dismiss }) });
|
|
32488
32753
|
const title = item.title ?? item.message;
|
|
32489
|
-
return /* @__PURE__ */ jsxs131(
|
|
32754
|
+
return /* @__PURE__ */ jsxs131(Fragment60, { children: [
|
|
32490
32755
|
/* @__PURE__ */ jsx137("span", { className: "ods-toast__icon", "aria-hidden": "true", children: item.icon ?? defaultIcons[item.variant] }),
|
|
32491
32756
|
/* @__PURE__ */ jsxs131("div", { className: "ods-toast__body", children: [
|
|
32492
32757
|
title && /* @__PURE__ */ jsx137("div", { className: "ods-toast__title", children: title }),
|
|
@@ -32706,7 +32971,7 @@ function ToastProvider({
|
|
|
32706
32971
|
return out;
|
|
32707
32972
|
}, [toasts]);
|
|
32708
32973
|
const ctx = { toast, dismiss, dismissAll };
|
|
32709
|
-
const containers = /* @__PURE__ */ jsx137(
|
|
32974
|
+
const containers = /* @__PURE__ */ jsx137(Fragment60, { children: POSITIONS.map((pos) => {
|
|
32710
32975
|
const list = groups[pos];
|
|
32711
32976
|
if (list.length === 0) return null;
|
|
32712
32977
|
return /* @__PURE__ */ jsx137(
|
|
@@ -33468,7 +33733,7 @@ import {
|
|
|
33468
33733
|
forwardRef as forwardRef98,
|
|
33469
33734
|
useId as useId60
|
|
33470
33735
|
} from "react";
|
|
33471
|
-
import { Fragment as
|
|
33736
|
+
import { Fragment as Fragment61, jsx as jsx144, jsxs as jsxs138 } from "react/jsx-runtime";
|
|
33472
33737
|
var UserCard = forwardRef98(function UserCard2({
|
|
33473
33738
|
name,
|
|
33474
33739
|
nameAs = "h3",
|
|
@@ -33512,7 +33777,7 @@ var UserCard = forwardRef98(function UserCard2({
|
|
|
33512
33777
|
}
|
|
33513
33778
|
);
|
|
33514
33779
|
};
|
|
33515
|
-
const body = /* @__PURE__ */ jsxs138(
|
|
33780
|
+
const body = /* @__PURE__ */ jsxs138(Fragment61, { children: [
|
|
33516
33781
|
renderAvatar(),
|
|
33517
33782
|
/* @__PURE__ */ jsxs138("div", { className: "ods-user-card__body", children: [
|
|
33518
33783
|
/* @__PURE__ */ jsx144(Card.Title, { as: nameAs, id: nameId, className: "ods-user-card__name", children: name }),
|
|
@@ -34703,7 +34968,7 @@ function useWorkflowRuntime(startedAt, active) {
|
|
|
34703
34968
|
}
|
|
34704
34969
|
|
|
34705
34970
|
// src/components/WorkflowHeader/WorkflowHeader.tsx
|
|
34706
|
-
import { Fragment as
|
|
34971
|
+
import { Fragment as Fragment62, jsx as jsx146, jsxs as jsxs140 } from "react/jsx-runtime";
|
|
34707
34972
|
function WorkflowHeader({
|
|
34708
34973
|
name,
|
|
34709
34974
|
statusTone,
|
|
@@ -34789,7 +35054,7 @@ function WorkflowHeader({
|
|
|
34789
35054
|
children: name
|
|
34790
35055
|
}
|
|
34791
35056
|
),
|
|
34792
|
-
saveIndicator && /* @__PURE__ */ jsxs140(
|
|
35057
|
+
saveIndicator && /* @__PURE__ */ jsxs140(Fragment62, { children: [
|
|
34793
35058
|
/* @__PURE__ */ jsx146("span", { className: "ods-workflow-header__sep", "aria-hidden": "true" }),
|
|
34794
35059
|
/* @__PURE__ */ jsxs140(
|
|
34795
35060
|
"span",
|
|
@@ -34867,7 +35132,7 @@ function WorkflowHeader({
|
|
|
34867
35132
|
onClick: onStop,
|
|
34868
35133
|
children: /* @__PURE__ */ jsxs140("span", { className: "ods-workflow-header__stop-label", children: [
|
|
34869
35134
|
/* @__PURE__ */ jsx146("span", { children: "Stop" }),
|
|
34870
|
-
runtime && /* @__PURE__ */ jsxs140(
|
|
35135
|
+
runtime && /* @__PURE__ */ jsxs140(Fragment62, { children: [
|
|
34871
35136
|
/* @__PURE__ */ jsx146("span", { className: "ods-workflow-header__stop-dot", "aria-hidden": "true", children: "\xB7" }),
|
|
34872
35137
|
/* @__PURE__ */ jsx146("span", { className: "ods-workflow-header__runtime", children: runtime })
|
|
34873
35138
|
] })
|
|
@@ -34908,7 +35173,7 @@ import {
|
|
|
34908
35173
|
StopFilledAltIcon as StopFilledAltIcon3,
|
|
34909
35174
|
TerminalIcon as TerminalIcon2
|
|
34910
35175
|
} from "@octaviaflow/icons";
|
|
34911
|
-
import { Fragment as
|
|
35176
|
+
import { Fragment as Fragment63, jsx as jsx147, jsxs as jsxs141 } from "react/jsx-runtime";
|
|
34912
35177
|
function WorkflowHeaderExpanded({
|
|
34913
35178
|
name,
|
|
34914
35179
|
statusTone = "draft",
|
|
@@ -35013,7 +35278,7 @@ function WorkflowHeaderExpanded({
|
|
|
35013
35278
|
onClick: onStop,
|
|
35014
35279
|
children: /* @__PURE__ */ jsxs141("span", { style: { display: "inline-flex", gap: 4, alignItems: "center" }, children: [
|
|
35015
35280
|
/* @__PURE__ */ jsx147("span", { children: "Stop" }),
|
|
35016
|
-
runtime && /* @__PURE__ */ jsxs141(
|
|
35281
|
+
runtime && /* @__PURE__ */ jsxs141(Fragment63, { children: [
|
|
35017
35282
|
/* @__PURE__ */ jsx147("span", { "aria-hidden": "true", style: { opacity: 0.6 }, children: "\xB7" }),
|
|
35018
35283
|
/* @__PURE__ */ jsx147("span", { className: "ods-workflow-header-expanded__runtime", children: runtime })
|
|
35019
35284
|
] })
|