@hybridcore/ui 1.6.25 → 1.6.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CATALOG.md +1 -0
  2. package/dist/{AccordionSummary-c6-Buzbq.js → AccordionSummary-B6-hHjCC.js} +3 -3
  3. package/dist/{Add-CB4mPrke.js → Add-eXYPgCCB.js} +1 -1
  4. package/dist/{Alert-BsT46Tgd.js → Alert-OoSOUjZM.js} +2 -2
  5. package/dist/{Button-BMUZn0cT.js → Button-gZFgy23t.js} +1 -1
  6. package/dist/{ButtonBase-DG5J0YgP.js → ButtonBase-Dgg9dzM8.js} +2 -2
  7. package/dist/{Delete-ofipLwkd.js → Delete-B8COyxKI.js} +1 -1
  8. package/dist/{IconButton-SJfF1cr9.js → IconButton-CQwROBzr.js} +1 -1
  9. package/dist/IconCheck-BcUcbvno.js +19 -0
  10. package/dist/{MenuItem-BjnnhDbD.js → MenuItem-BAKBPyZx.js} +3 -3
  11. package/dist/{Modal-Djf5pMjD.js → Modal-DVdqH5dj.js} +1 -1
  12. package/dist/{Select-nL91eUH9.js → Select-B4zhu5G_.js} +2 -2
  13. package/dist/{SwitchBase-BcJAJYsB.js → SwitchBase-BqUrfIHp.js} +1 -1
  14. package/dist/{TextField-Db63_GNb.js → TextField-Cx5T7iJn.js} +4 -3
  15. package/dist/components/button/styled.js +1 -1
  16. package/dist/components/charts/forecast-cone/index.js +1 -1
  17. package/dist/components/collapsible-card/index.js +1 -1
  18. package/dist/components/collapsible-card/styled.js +1 -1
  19. package/dist/components/color-picker/index.js +2 -2
  20. package/dist/components/color-picker/styled.js +1 -1
  21. package/dist/components/confirm/dialog.js +2 -2
  22. package/dist/components/confirm/index.js +1 -1
  23. package/dist/components/data-list/index.js +139 -0
  24. package/dist/components/data-list/logic.js +224 -0
  25. package/dist/components/data-list/styled.js +260 -0
  26. package/dist/components/duration-select/index.js +1 -1
  27. package/dist/components/duration-select/styled.js +1 -1
  28. package/dist/components/instance-form/components/composite-list/index.js +1 -1
  29. package/dist/components/instance-form/components/variable/index.js +3 -2
  30. package/dist/components/instance-form/components/variables/index.js +1 -1
  31. package/dist/components/instance-hierarchy-table/styled.js +1 -1
  32. package/dist/components/property-mapping/index.js +1 -1
  33. package/dist/components/status-indicator/logic.js +28 -41
  34. package/dist/components/template-form/components/default-value-input/index.js +120 -0
  35. package/dist/components/template-form/components/default-value-input/logic.js +76 -0
  36. package/dist/components/template-form/components/property-list/index.js +5 -5
  37. package/dist/components/template-form/components/property-list/property-list-columns.js +2 -2
  38. package/dist/components/template-form/components/property-list/property-list-form.js +245 -240
  39. package/dist/components/template-form/components/property-list/property-list-logic.js +59 -42
  40. package/dist/components/template-form/components/recognition-property-list/index.js +5 -5
  41. package/dist/components/template-form/components/recognition-property-list/recognition-property-list-columns.js +2 -2
  42. package/dist/components/template-form/components/recognition-property-list/recognition-property-list-form.js +5 -5
  43. package/dist/components/template-form/index.js +39 -37
  44. package/dist/components/template-form/logic.js +24 -23
  45. package/dist/components/template-property-filters/property.js +23 -20
  46. package/dist/createSvgIcon-Bi-IzY8I.js +83 -0
  47. package/dist/{dialog-CNxZ7uox.js → dialog-DwmnOp5c.js} +2 -2
  48. package/dist/{index-BQ4_OA4b.js → index-Dvh8D1yM.js} +26 -25
  49. package/dist/isMuiElement-CxT3_ACP.js +13 -0
  50. package/dist/main.d.ts +270 -50
  51. package/dist/main.js +117 -115
  52. package/dist/{styled-DObpn_Bi.js → styled-C5WQOj4E.js} +1 -1
  53. package/dist/{useIsFocusVisible-BHPF-Pml.js → useIsFocusVisible-CVnvB5M2.js} +1 -1
  54. package/dist/{useSlot-gpKOd92R.js → useSlot-BOHuz6Wu.js} +1 -1
  55. package/dist/{useTimeout-CM6EsHyp.js → useTimeout-D5vWrF1x.js} +2 -2
  56. package/dist/utils/ontology.js +49 -43
  57. package/package.json +1 -1
  58. package/dist/createSvgIcon-jKAqRXE2.js +0 -93
@@ -0,0 +1,83 @@
1
+ import { a as v } from "./_commonjsHelpers-BkfeUUK-.js";
2
+ import { c as g } from "./createSvgIcon-Bx0mTP6n.js";
3
+ import { C as b, b as E } from "./styled-Ckq8ALHh.js";
4
+ import { d as _ } from "./debounce-46wSf_lW.js";
5
+ import { o as y, a as N } from "./ownerWindow-wg6foiOE.js";
6
+ import { a as S } from "./objectWithoutPropertiesLoose-DJteAcBH.js";
7
+ import { s as C, a as $, b as I, u as T } from "./useTimeout-D5vWrF1x.js";
8
+ import { c as P } from "./createChainedFunction-C0nujS3O.js";
9
+ import { i as w } from "./isMuiElement-CxT3_ACP.js";
10
+ import { u as O } from "./useId-BW-oWmul.js";
11
+ import { u as F } from "./useControlled-BYdyS7Pn.js";
12
+ import { u as j } from "./useIsFocusVisible-CVnvB5M2.js";
13
+ var c = {};
14
+ function q(e, r) {
15
+ return process.env.NODE_ENV === "production" ? () => null : (n, s, o, t, u) => {
16
+ const a = o || "<<anonymous>>", i = u || s;
17
+ return typeof n[s] < "u" ? new Error(`The ${t} \`${i}\` of \`${a}\` is deprecated. ${r}`) : null;
18
+ };
19
+ }
20
+ function D(e, r) {
21
+ if (process.env.NODE_ENV === "production")
22
+ return () => null;
23
+ const n = r ? S({}, r.propTypes) : null;
24
+ return (o) => (t, u, a, i, l, ...h) => {
25
+ const f = l || u, m = n == null ? void 0 : n[f];
26
+ if (m) {
27
+ const p = m(t, u, a, i, l, ...h);
28
+ if (p)
29
+ return p;
30
+ }
31
+ return typeof t[u] < "u" && !t[o] ? new Error(`The prop \`${f}\` of \`${e}\` can only be used together with the \`${o}\` prop.`) : null;
32
+ };
33
+ }
34
+ function V(e, r, n, s, o) {
35
+ if (process.env.NODE_ENV === "production")
36
+ return null;
37
+ const t = o || r;
38
+ return typeof e[r] < "u" ? new Error(`The prop \`${t}\` is not supported. Please remove it.`) : null;
39
+ }
40
+ const k = {
41
+ configure: (e) => {
42
+ process.env.NODE_ENV !== "production" && console.warn(["MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.", "", "You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead", "", "The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401", "", "The updated documentation: https://mui.com/guides/classname-generator/"].join(`
43
+ `)), b.configure(e);
44
+ }
45
+ }, G = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
46
+ __proto__: null,
47
+ capitalize: E,
48
+ createChainedFunction: P,
49
+ createSvgIcon: g,
50
+ debounce: _,
51
+ deprecatedPropType: q,
52
+ isMuiElement: w,
53
+ ownerDocument: y,
54
+ ownerWindow: N,
55
+ requirePropFactory: D,
56
+ setRef: C,
57
+ unstable_ClassNameGenerator: k,
58
+ unstable_useEnhancedEffect: $,
59
+ unstable_useId: O,
60
+ unsupportedProp: V,
61
+ useControlled: F,
62
+ useEventCallback: I,
63
+ useForkRef: T,
64
+ useIsFocusVisible: j
65
+ }, Symbol.toStringTag, { value: "Module" })), M = /* @__PURE__ */ v(G);
66
+ var d;
67
+ function Q() {
68
+ return d || (d = 1, function(e) {
69
+ "use client";
70
+ Object.defineProperty(e, "__esModule", {
71
+ value: !0
72
+ }), Object.defineProperty(e, "default", {
73
+ enumerable: !0,
74
+ get: function() {
75
+ return r.createSvgIcon;
76
+ }
77
+ });
78
+ var r = M;
79
+ }(c)), c;
80
+ }
81
+ export {
82
+ Q as r
83
+ };
@@ -8,10 +8,10 @@ import { P as o } from "./index-CblbdqjE.js";
8
8
  import { c as g } from "./clsx-OuTLNxxd.js";
9
9
  import { g as y, a as C, s as m, b, u as D, c as v } from "./styled-Ckq8ALHh.js";
10
10
  import { P as _, u as no } from "./Paper-BFDcMa0t.js";
11
- import { B as ro, M as so, F as lo } from "./Modal-Djf5pMjD.js";
11
+ import { B as ro, M as so, F as lo } from "./Modal-DVdqH5dj.js";
12
12
  import { u as co } from "./useId-BW-oWmul.js";
13
13
  import { T as po } from "./Typography-B_LKrxyI.js";
14
- import { B as E } from "./Button-BMUZn0cT.js";
14
+ import { B as E } from "./Button-gZFgy23t.js";
15
15
  function uo(e) {
16
16
  return C("MuiDialog", e);
17
17
  }
@@ -3,17 +3,18 @@ import { KeyboardArrowUp as X, KeyboardArrowDown as Z, Add as O, LockOutlined as
3
3
  import { FormControl as K, FormGroup as ne, FormControlLabel as $, Checkbox as U, Chip as te, Dialog as re, DialogTitle as ae, DialogContent as oe, DialogActions as le, Button as G, TextField as H, InputAdornment as ie, Tooltip as de, InputLabel as pe, Select as ce, MenuItem as ue } from "@mui/material";
4
4
  import J from "dayjs";
5
5
  import C from "lodash";
6
+ import { parseBooleanValue as me } from "./utils/ontology.js";
6
7
  import { ConditionalWrapper as p } from "./components/conditional-wrapper/index.js";
7
- import { DateTimePicker as me } from "./components/date-time-picker/index.js";
8
- import { GeometryPicker as se } from "./components/geometry-picker/index.js";
9
- import { PhoneInput as he } from "./components/phone-input/index.js";
8
+ import { DateTimePicker as se } from "./components/date-time-picker/index.js";
9
+ import { GeometryPicker as he } from "./components/geometry-picker/index.js";
10
+ import { PhoneInput as fe } from "./components/phone-input/index.js";
10
11
  import { leftLayoutWrapper as y } from "./components/instance-form/helpers.js";
11
- import { CompositeListEnumLabel as fe, CompositeListEnumEmpty as ye, CompositeListShowMoreButton as Ie, CompositeListContainer as Ce, CompositeListLabel as ge, CompositeListValues as be, CompositeListMiniButton as ve, VariableFullWidth as P } from "./components/instance-form/styled.js";
12
+ import { CompositeListEnumLabel as ye, CompositeListEnumEmpty as Ie, CompositeListShowMoreButton as Ce, CompositeListContainer as ge, CompositeListLabel as be, CompositeListValues as ve, CompositeListMiniButton as Ve, VariableFullWidth as P } from "./components/instance-form/styled.js";
12
13
  import { useState as R } from "react";
13
- import Ve from "./hooks/useToggle.js";
14
+ import we from "./hooks/useToggle.js";
14
15
  import b from "./components/instance-form/components/TopLabelWrapper.js";
15
- import { CompositeMatrix as we } from "./components/instance-form/components/composite-matrix/index.js";
16
- const _ = 10, Te = (q) => {
16
+ import { CompositeMatrix as Te } from "./components/instance-form/components/composite-matrix/index.js";
17
+ const _ = 10, xe = (q) => {
17
18
  var L, k, A;
18
19
  const {
19
20
  property: l,
@@ -23,7 +24,7 @@ const _ = 10, Te = (q) => {
23
24
  labelPosition: r = "default",
24
25
  size: u = "medium",
25
26
  onChange: v
26
- } = q, t = Ve(!1), [T, m] = R(), [g, D] = R(!1), x = (i) => {
27
+ } = q, t = we(!1), [T, m] = R(), [g, D] = R(!1), x = (i) => {
27
28
  m(C.get(i, l.propertyId));
28
29
  }, S = () => {
29
30
  v([...a ?? [], T]), m(""), t.action.close();
@@ -50,7 +51,7 @@ const _ = 10, Te = (q) => {
50
51
  wrapper: b(l.name, l == null ? void 0 : l.required),
51
52
  children: /* @__PURE__ */ I(B, { children: [
52
53
  /* @__PURE__ */ I(K, { fullWidth: !0, component: "fieldset", variant: s, children: [
53
- r === "default" && /* @__PURE__ */ n(fe, { children: l.name }),
54
+ r === "default" && /* @__PURE__ */ n(ye, { children: l.name }),
54
55
  /* @__PURE__ */ n(ne, { children: i && i.length > 0 ? i.slice(0, g ? 9999 : _).map((d, f) => /* @__PURE__ */ n(
55
56
  $,
56
57
  {
@@ -70,10 +71,10 @@ const _ = 10, Te = (q) => {
70
71
  }
71
72
  },
72
73
  f
73
- )) : /* @__PURE__ */ n(ye, { variant: "caption", children: "No enum values!" }) })
74
+ )) : /* @__PURE__ */ n(Ie, { variant: "caption", children: "No enum values!" }) })
74
75
  ] }),
75
76
  C.isArray(i) && i.length > _ && /* @__PURE__ */ I(
76
- Ie,
77
+ Ce,
77
78
  {
78
79
  size: "small",
79
80
  endIcon: g ? /* @__PURE__ */ n(X, {}) : /* @__PURE__ */ n(Z, {}),
@@ -101,9 +102,9 @@ const _ = 10, Te = (q) => {
101
102
  {
102
103
  condition: r === "top",
103
104
  wrapper: b(l.name, l == null ? void 0 : l.required),
104
- children: /* @__PURE__ */ I(Ce, { ownerState: { variant: s }, children: [
105
- r === "default" && /* @__PURE__ */ n(ge, { children: l.name }),
106
- /* @__PURE__ */ n(be, { children: C.isArray(a) && a.map((i, d) => {
105
+ children: /* @__PURE__ */ I(ge, { ownerState: { variant: s }, children: [
106
+ r === "default" && /* @__PURE__ */ n(be, { children: l.name }),
107
+ /* @__PURE__ */ n(ve, { children: C.isArray(a) && a.map((i, d) => {
107
108
  var f, h;
108
109
  return /* @__PURE__ */ n(
109
110
  te,
@@ -116,7 +117,7 @@ const _ = 10, Te = (q) => {
116
117
  );
117
118
  }) }),
118
119
  /* @__PURE__ */ n(
119
- ve,
120
+ Ve,
120
121
  {
121
122
  ownerState: { variant: "text" },
122
123
  startIcon: /* @__PURE__ */ n(O, {}),
@@ -140,7 +141,7 @@ const _ = 10, Te = (q) => {
140
141
  children: [
141
142
  /* @__PURE__ */ n(ae, { children: "Add List Value" }),
142
143
  /* @__PURE__ */ n(oe, { children: (A = l.dataTypeInfo) != null && A.innerType ? /* @__PURE__ */ n(
143
- xe,
144
+ Le,
144
145
  {
145
146
  mapboxAccessToken: e,
146
147
  property: {
@@ -168,7 +169,7 @@ const _ = 10, Te = (q) => {
168
169
  }
169
170
  )
170
171
  ] });
171
- }, xe = (q) => {
172
+ }, Le = (q) => {
172
173
  var i, d, f, h, M, N, j, Y, z;
173
174
  const {
174
175
  mapboxAccessToken: l,
@@ -279,7 +280,7 @@ const _ = 10, Te = (q) => {
279
280
  (h = t == null ? void 0 : t[e == null ? void 0 : e.propertyId]) == null ? void 0 : h.description
280
281
  ),
281
282
  children: /* @__PURE__ */ n(
282
- me,
283
+ se,
283
284
  {
284
285
  label: r === "default" ? e.name : void 0,
285
286
  value: o,
@@ -352,7 +353,7 @@ const _ = 10, Te = (q) => {
352
353
  U,
353
354
  {
354
355
  name: e.propertyId,
355
- checked: !!(a ?? e.defaultValue ?? !1),
356
+ checked: me(a ?? e.defaultValue ?? !1),
356
357
  onChange: x,
357
358
  size: u
358
359
  }
@@ -418,7 +419,7 @@ const _ = 10, Te = (q) => {
418
419
  condition: r === "left",
419
420
  wrapper: y(e.name),
420
421
  children: /* @__PURE__ */ n(P, { children: /* @__PURE__ */ n(
421
- se,
422
+ he,
422
423
  {
423
424
  mapboxAccessToken: l,
424
425
  label: r === "default" ? e.name : void 0,
@@ -435,7 +436,7 @@ const _ = 10, Te = (q) => {
435
436
  condition: r === "left",
436
437
  wrapper: y(e.name),
437
438
  children: /* @__PURE__ */ n(P, { children: /* @__PURE__ */ n(
438
- he,
439
+ fe,
439
440
  {
440
441
  label: r === "default" ? e.name : void 0,
441
442
  placeholder: "Enter phone number",
@@ -445,7 +446,7 @@ const _ = 10, Te = (q) => {
445
446
  ) })
446
447
  }
447
448
  ) : e.type === "composite-list" ? /* @__PURE__ */ n(P, { children: /* @__PURE__ */ n(
448
- Te,
449
+ xe,
449
450
  {
450
451
  property: e,
451
452
  value: a ?? e.defaultValue ?? "",
@@ -456,7 +457,7 @@ const _ = 10, Te = (q) => {
456
457
  onChange: k(e.propertyId)
457
458
  }
458
459
  ) }) : e.type === "composite-matrix" ? /* @__PURE__ */ n(P, { children: /* @__PURE__ */ n(
459
- we,
460
+ Te,
460
461
  {
461
462
  property: e,
462
463
  value: a ?? e.defaultValue ?? "",
@@ -467,6 +468,6 @@ const _ = 10, Te = (q) => {
467
468
  ) }) : null;
468
469
  };
469
470
  export {
470
- Te as C,
471
- xe as V
471
+ xe as C,
472
+ Le as V
472
473
  };
@@ -0,0 +1,13 @@
1
+ import * as u from "react";
2
+ function m(i, a) {
3
+ var l, e;
4
+ return /* @__PURE__ */ u.isValidElement(i) && a.indexOf(
5
+ // For server components `muiName` is avaialble in element.type._payload.value.muiName
6
+ // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45
7
+ // eslint-disable-next-line no-underscore-dangle
8
+ (l = i.type.muiName) != null ? l : (e = i.type) == null || (e = e._payload) == null || (e = e.value) == null ? void 0 : e.muiName
9
+ ) !== -1;
10
+ }
11
+ export {
12
+ m as i
13
+ };
package/dist/main.d.ts CHANGED
@@ -515,6 +515,169 @@ extends Omit<DataGridProps_2, "rows" | "columns"> {
515
515
  sx?: SxProps<Theme>;
516
516
  }
517
517
 
518
+ export declare const DataList: (props: DataListProps) => JSX_2.Element;
519
+
520
+ /**
521
+ * One entry in the badge state map: which raw status value renders which pill.
522
+ * Matched case-insensitively against `item.status`. Mirrors `DataListIconState`
523
+ * so both maps are authored the same way in widget config.
524
+ */
525
+ export declare interface DataListBadgeState {
526
+ value: string;
527
+ label?: string;
528
+ color?: string;
529
+ backgroundColor?: string;
530
+ /** Set for the outlined chip style; omit for the filled-tint style. */
531
+ borderColor?: string;
532
+ }
533
+
534
+ export declare type DataListComponentOverride<Theme = unknown> = {
535
+ defaultProps?: DataListProps;
536
+ styleOverrides?: ComponentsOverrides<Theme>["HCDataList"];
537
+ };
538
+
539
+ export declare type DataListEndSlot = "none" | "badge" | "progress" | "text";
540
+
541
+ export declare type DataListIconName =
542
+ | "shield"
543
+ | "shield-alert"
544
+ | "alert-triangle"
545
+ | "alert-circle"
546
+ | "info"
547
+ | "bell"
548
+ | "check"
549
+ | "clock"
550
+ | "flag"
551
+ | "file"
552
+ | "map-pin"
553
+ | "message"
554
+ | "thumb-up"
555
+ | "users"
556
+ | "circle";
557
+
558
+ export declare type DataListIconShape = "circle" | "rounded" | "plain";
559
+
560
+ /**
561
+ * One entry in the leading-icon state map: which raw value renders which icon and
562
+ * tint. Matched case-insensitively against `item.iconValue`.
563
+ *
564
+ * `color` / `backgroundColor` accept a theme-token path ("error.main") or a raw CSS
565
+ * color ("#f00"), resolved via `resolvePaletteColor`.
566
+ */
567
+ export declare interface DataListIconState {
568
+ value: string;
569
+ icon?: DataListIconName;
570
+ color?: string;
571
+ backgroundColor?: string;
572
+ /** Accessible name for the icon — read by screen readers, shown as the tooltip. */
573
+ label?: string;
574
+ }
575
+
576
+ export declare interface DataListItem {
577
+ id: string | number;
578
+ title: string;
579
+ /**
580
+ * Secondary line assembled from several fields — "District 3 • Maya Rousseau •
581
+ * Oct 19, 2026". Empty, null and undefined segments are dropped so a missing
582
+ * field never leaves a dangling separator. Takes precedence over `description`.
583
+ */
584
+ meta?: (string | number | null | undefined)[];
585
+ /** Secondary line as a single pre-composed string. Used when `meta` is absent. */
586
+ description?: string;
587
+ /** Matched against `iconStates` to pick the leading icon. */
588
+ iconValue?: string;
589
+ /** Leading-icon escape hatch for code callers. Wins over `iconValue`. */
590
+ icon?: ReactNode;
591
+ /** Matched against `badgeStates` when `endSlot` is "badge". */
592
+ status?: string;
593
+ /** Bar percentage (0–100) for `endSlot` "progress", or the text for "text". */
594
+ endValue?: number | string;
595
+ /** Short label beside the trailing slot, e.g. the "78%" next to a progress bar. */
596
+ endLabel?: string;
597
+ /** Trailing-slot escape hatch for code callers. Wins over `endSlot`. */
598
+ endContent?: ReactNode;
599
+ disabled?: boolean;
600
+ }
601
+
602
+ /**
603
+ * How the list reaches rows beyond the first screenful.
604
+ *
605
+ * - `infinite` — rows load as the user scrolls (default).
606
+ * - `buttons` — a `TablePagination` footer.
607
+ * - `none` — whatever is in `data` is all there is.
608
+ */
609
+ export declare type DataListPaginationMode = "infinite" | "buttons" | "none";
610
+
611
+ export declare interface DataListProps {
612
+ title?: string;
613
+ /** Header action link, e.g. "View all". Rendered only when a handler or href is set. */
614
+ actionLabel?: string;
615
+ actionHref?: string;
616
+ onActionClick?: () => void;
617
+ /**
618
+ * Header-action escape hatch — pass the widget menu here to seat it in the header
619
+ * row. Wins over `actionLabel`.
620
+ */
621
+ headerAction?: ReactNode;
622
+ /**
623
+ * Reserve space at the right edge of the header for chrome drawn *over* the
624
+ * component — the widget store's floating menu trigger sits at `top/right: 8px`
625
+ * and would otherwise cover the title or the action link. `true` reserves enough
626
+ * for the trigger; a number reserves that many pixels.
627
+ */
628
+ headerGutter?: boolean | number;
629
+
630
+ data: DataListItem[];
631
+ /** Row count on the server. Required for server-side paging (with `onChange`). */
632
+ totalCount?: number;
633
+ payload?: Partial<FV.SearchDTO>;
634
+ /** Set for server-side paging: the component stops slicing `data` itself. */
635
+ onChange?: (params: Partial<FV.SearchDTO>) => void;
636
+ onItemClick?: (item: DataListItem) => void;
637
+
638
+ /** Value → icon/tint map for the leading slot. */
639
+ iconStates?: DataListIconState[];
640
+ iconShape?: DataListIconShape;
641
+ /** Value → label/tint map for the trailing badge. */
642
+ badgeStates?: DataListBadgeState[];
643
+ endSlot?: DataListEndSlot;
644
+ /** Per-row leading-slot renderer. Wins over `icon` / `iconValue`. */
645
+ renderItemStart?: (item: DataListItem) => ReactNode;
646
+ /** Per-row trailing-slot renderer. Wins over `endContent` / `endSlot`. */
647
+ renderItemEnd?: (item: DataListItem) => ReactNode;
648
+
649
+ /** Joins `item.meta` segments. */
650
+ metaSeparator?: string;
651
+ /** Line clamp on the secondary line. 0 leaves it unclamped. */
652
+ descriptionLines?: number;
653
+ dense?: boolean;
654
+ divider?: boolean;
655
+ paginationMode?: DataListPaginationMode;
656
+ /** Rows revealed per scroll step, or per page in `buttons` mode. */
657
+ rowsPerPage?: number;
658
+ /** `buttons` mode only. */
659
+ rowsPerPageOptions?: number[];
660
+ /**
661
+ * Infinite scroll with server paging accumulates the pages it receives. Change
662
+ * this whenever the query behind `data` changes — a new filter, sort or search —
663
+ * and the accumulated rows are dropped so the list restarts at the first page.
664
+ */
665
+ resetKey?: string | number;
666
+ /** Set while a `onChange` page request is in flight, to draw the footer spinner. */
667
+ loadingMore?: boolean;
668
+ emptyMessage?: string;
669
+ loading?: boolean;
670
+ /** Skeleton rows drawn while `loading`. */
671
+ loadingRows?: number;
672
+ sx?: SxProps<Theme>;
673
+ }
674
+
675
+ /** Shape read off `data-snapshot` by the widget canvas when exporting a report. */
676
+ export declare interface DataListSnapshot {
677
+ title?: string;
678
+ data: DataListItem[];
679
+ }
680
+
518
681
  export declare const DataMap: (inProps: DataMapProps) => JSX_2.Element;
519
682
 
520
683
  export declare type DataMapComponentOverride<Theme = unknown> = {
@@ -3070,6 +3233,88 @@ declare module "@mui/material/styles" {
3070
3233
 
3071
3234
 
3072
3235
 
3236
+ declare module "@mui/material/styles" {
3237
+ interface ComponentNameToClassKey {
3238
+ HCLinearIndicator:
3239
+ | "root"
3240
+ | "barContainer"
3241
+ | "barBackground"
3242
+ | "bar"
3243
+ | "middleContainer"
3244
+ | "middle";
3245
+ }
3246
+
3247
+ interface ComponentsPropsList {
3248
+ HCLinearIndicator: LinearIndicatorProps;
3249
+ }
3250
+
3251
+ interface Components<Theme = unknown> {
3252
+ HCLinearIndicator?: LinearIndicatorComponentOverride<Theme>;
3253
+ }
3254
+ }
3255
+
3256
+
3257
+
3258
+ declare module "@mui/material/styles" {
3259
+ interface ComponentNameToClassKey {
3260
+ HCDataList:
3261
+ | "root"
3262
+ | "header"
3263
+ | "headerAction"
3264
+ | "content"
3265
+ | "list"
3266
+ | "item"
3267
+ | "itemButton"
3268
+ | "itemStart"
3269
+ | "itemMain"
3270
+ | "itemTitle"
3271
+ | "itemMeta"
3272
+ | "itemEnd"
3273
+ | "badge"
3274
+ | "empty"
3275
+ | "loadMore"
3276
+ | "pagination";
3277
+ }
3278
+
3279
+ interface ComponentsPropsList {
3280
+ HCDataList: DataListProps;
3281
+ }
3282
+
3283
+ interface Components<Theme = unknown> {
3284
+ HCDataList?: DataListComponentOverride<Theme>;
3285
+ }
3286
+ }
3287
+
3288
+
3289
+
3290
+ declare module "@mui/material/styles" {
3291
+ interface ComponentNameToClassKey {
3292
+ HCMetricCard:
3293
+ | "root"
3294
+ | "content"
3295
+ | "label"
3296
+ | "value"
3297
+ | "secondValue"
3298
+ | "trendContainer"
3299
+ | "description"
3300
+ | "icon"
3301
+ | "cornerIcon"
3302
+ | "chart"
3303
+ | "panel"
3304
+ | "sideChart";
3305
+ }
3306
+
3307
+ interface ComponentsPropsList {
3308
+ HCMetricCard: MetricCardProps;
3309
+ }
3310
+
3311
+ interface Components<Theme = unknown> {
3312
+ HCMetricCard?: MetricCardComponentOverride<Theme>;
3313
+ }
3314
+ }
3315
+
3316
+
3317
+
3073
3318
  declare namespace MAP {
3074
3319
  interface Coordinate {
3075
3320
  latitude: number;
@@ -3617,56 +3862,6 @@ declare module "@mui/material/styles" {
3617
3862
 
3618
3863
 
3619
3864
 
3620
- declare module "@mui/material/styles" {
3621
- interface ComponentNameToClassKey {
3622
- HCLinearIndicator:
3623
- | "root"
3624
- | "barContainer"
3625
- | "barBackground"
3626
- | "bar"
3627
- | "middleContainer"
3628
- | "middle";
3629
- }
3630
-
3631
- interface ComponentsPropsList {
3632
- HCLinearIndicator: LinearIndicatorProps;
3633
- }
3634
-
3635
- interface Components<Theme = unknown> {
3636
- HCLinearIndicator?: LinearIndicatorComponentOverride<Theme>;
3637
- }
3638
- }
3639
-
3640
-
3641
-
3642
- declare module "@mui/material/styles" {
3643
- interface ComponentNameToClassKey {
3644
- HCMetricCard:
3645
- | "root"
3646
- | "content"
3647
- | "label"
3648
- | "value"
3649
- | "secondValue"
3650
- | "trendContainer"
3651
- | "description"
3652
- | "icon"
3653
- | "cornerIcon"
3654
- | "chart"
3655
- | "panel"
3656
- | "sideChart";
3657
- }
3658
-
3659
- interface ComponentsPropsList {
3660
- HCMetricCard: MetricCardProps;
3661
- }
3662
-
3663
- interface Components<Theme = unknown> {
3664
- HCMetricCard?: MetricCardComponentOverride<Theme>;
3665
- }
3666
- }
3667
-
3668
-
3669
-
3670
3865
  declare module "@mui/material/styles" {
3671
3866
  interface ComponentNameToClassKey {
3672
3867
  HCObjectProfileCard:
@@ -4767,6 +4962,21 @@ declare namespace ONTOLOGY {
4767
4962
  };
4768
4963
  }
4769
4964
 
4965
+ /**
4966
+ * A template's own override of an inherited property's `defaultValue`,
4967
+ * `required` and/or `description`. The target must be an inherited property
4968
+ * (overriding a property the template defines itself is rejected by the
4969
+ * backend). At most one override per `propertyId`. Each overridable field is
4970
+ * `null`/absent when not overridden, in which case the inherited value applies;
4971
+ * an override with every field null is treated as a removal.
4972
+ */
4973
+ interface PropertyOverride {
4974
+ propertyId: string;
4975
+ defaultValue?: string | null;
4976
+ required?: boolean | null;
4977
+ description?: string | null;
4978
+ }
4979
+
4770
4980
  interface DataTypeInfo {
4771
4981
  datePattern?: string;
4772
4982
  coordinateFormat?: string;
@@ -4814,6 +5024,7 @@ declare namespace ONTOLOGY {
4814
5024
  editable: boolean;
4815
5025
  stationary: boolean;
4816
5026
  agentReferenceIds: Array<number>;
5027
+ localPropertyOverrides?: PropertyOverride[];
4817
5028
 
4818
5029
  // UI Spesific fields
4819
5030
  childrenKeys?: string[];
@@ -4833,6 +5044,7 @@ declare namespace ONTOLOGY {
4833
5044
  editable: boolean;
4834
5045
  stationary: boolean;
4835
5046
  agentReferenceIds?: Array<number>;
5047
+ localPropertyOverrides?: PropertyOverride[];
4836
5048
  }
4837
5049
 
4838
5050
  interface UpdateObjectDTO extends CreateObjectDTO {
@@ -4853,6 +5065,7 @@ declare namespace ONTOLOGY {
4853
5065
  creatable: boolean;
4854
5066
  editable: boolean;
4855
5067
  recognitionPropertyList: RecognitionProperty[];
5068
+ localPropertyOverrides?: PropertyOverride[];
4856
5069
  }
4857
5070
 
4858
5071
  interface CreateEventDTO {
@@ -4867,6 +5080,7 @@ declare namespace ONTOLOGY {
4867
5080
  creatable: boolean;
4868
5081
  editable: boolean;
4869
5082
  recognitionPropertyList: RecognitionProperty[];
5083
+ localPropertyOverrides?: PropertyOverride[];
4870
5084
  }
4871
5085
 
4872
5086
  interface UpdateEventDTO extends CreateEventDTO {
@@ -4888,6 +5102,7 @@ declare namespace ONTOLOGY {
4888
5102
  version: unknown;
4889
5103
  creatable: boolean;
4890
5104
  editable: boolean;
5105
+ localPropertyOverrides?: PropertyOverride[];
4891
5106
  }
4892
5107
 
4893
5108
  interface CreateAgentDTO {
@@ -4903,6 +5118,7 @@ declare namespace ONTOLOGY {
4903
5118
  version: unknown;
4904
5119
  creatable: boolean;
4905
5120
  editable: boolean;
5121
+ localPropertyOverrides?: PropertyOverride[];
4906
5122
  }
4907
5123
 
4908
5124
  interface UpdateAgentDTO extends CreateAgentDTO {
@@ -4923,6 +5139,7 @@ declare namespace ONTOLOGY {
4923
5139
  creatable: boolean;
4924
5140
  editable: boolean;
4925
5141
  storeFile: boolean;
5142
+ localPropertyOverrides?: PropertyOverride[];
4926
5143
  }
4927
5144
 
4928
5145
  interface CreateFileDTO {
@@ -4937,6 +5154,7 @@ declare namespace ONTOLOGY {
4937
5154
  creatable: boolean;
4938
5155
  editable: boolean;
4939
5156
  storeFile: boolean;
5157
+ localPropertyOverrides?: PropertyOverride[];
4940
5158
  }
4941
5159
 
4942
5160
  interface UpdateFileDTO extends CreateFileDTO {
@@ -4956,6 +5174,7 @@ declare namespace ONTOLOGY {
4956
5174
  version: any;
4957
5175
  creatable: boolean;
4958
5176
  editable: boolean;
5177
+ localPropertyOverrides?: PropertyOverride[];
4959
5178
  }
4960
5179
 
4961
5180
  interface CreateSystemDTO {
@@ -4970,6 +5189,7 @@ declare namespace ONTOLOGY {
4970
5189
  version: any;
4971
5190
  creatable: boolean;
4972
5191
  editable: boolean;
5192
+ localPropertyOverrides?: PropertyOverride[];
4973
5193
  }
4974
5194
 
4975
5195
  interface UpdateSystemDTO extends CreateSystemDTO {