@burojs/ui-shadcn 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/{candidates-relation-picker-CGXItMN0.js → candidates-relation-picker-QvoY2bOQ.js} +3 -3
  2. package/dist/{candidates-relation-picker-CGXItMN0.js.map → candidates-relation-picker-QvoY2bOQ.js.map} +1 -1
  3. package/dist/{candidates-relation-picker-C47mF260.cjs → candidates-relation-picker-pEAWKQEY.cjs} +3 -3
  4. package/dist/{candidates-relation-picker-C47mF260.cjs.map → candidates-relation-picker-pEAWKQEY.cjs.map} +1 -1
  5. package/dist/{check-confirm-dialog-CtiRzOAt.js → check-confirm-dialog-B-CbJTln.js} +59 -6
  6. package/dist/{check-confirm-dialog-CtiRzOAt.js.map → check-confirm-dialog-B-CbJTln.js.map} +1 -1
  7. package/dist/{check-confirm-dialog-BT04Mieo.cjs → check-confirm-dialog-W-8WOmGh.cjs} +64 -5
  8. package/dist/{check-confirm-dialog-BT04Mieo.cjs.map → check-confirm-dialog-W-8WOmGh.cjs.map} +1 -1
  9. package/dist/{filter-builder-z3Axzf9Y.js → filter-builder-04nas3eq.js} +14 -6
  10. package/dist/filter-builder-04nas3eq.js.map +1 -0
  11. package/dist/{filter-builder-ByGhxLf_.cjs → filter-builder-DQX-TMFh.cjs} +14 -6
  12. package/dist/filter-builder-DQX-TMFh.cjs.map +1 -0
  13. package/dist/{flow-runtime-DrUWyTS0.js → flow-runtime-BEIyym7d.js} +3 -3
  14. package/dist/{flow-runtime-DrUWyTS0.js.map → flow-runtime-BEIyym7d.js.map} +1 -1
  15. package/dist/{flow-runtime-BVFjMU5-.cjs → flow-runtime-DyNIYfUP.cjs} +3 -3
  16. package/dist/{flow-runtime-BVFjMU5-.cjs.map → flow-runtime-DyNIYfUP.cjs.map} +1 -1
  17. package/dist/{flow-screen-3fk6J33y.js → flow-screen-DY1Z9PbG.js} +53 -14
  18. package/dist/flow-screen-DY1Z9PbG.js.map +1 -0
  19. package/dist/{flow-screen-6y5E_HT6.cjs → flow-screen-FE5Xhb3t.cjs} +52 -13
  20. package/dist/flow-screen-FE5Xhb3t.cjs.map +1 -0
  21. package/dist/index.cjs +54 -71
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +49 -10
  24. package/dist/index.d.ts +49 -10
  25. package/dist/index.js +54 -72
  26. package/dist/index.js.map +1 -1
  27. package/dist/{inline-flow-host-YnnvWjdU.js → inline-flow-host-D6u-RlsV.js} +3 -3
  28. package/dist/{inline-flow-host-YnnvWjdU.js.map → inline-flow-host-D6u-RlsV.js.map} +1 -1
  29. package/dist/{inline-flow-host-C4KmZIYE.cjs → inline-flow-host-yVLo6-sM.cjs} +3 -3
  30. package/dist/{inline-flow-host-C4KmZIYE.cjs.map → inline-flow-host-yVLo6-sM.cjs.map} +1 -1
  31. package/dist/{lazy-relation-picker-dialog-DN4bvQfg.js → lazy-relation-picker-dialog-BaORufxQ.js} +2 -2
  32. package/dist/{lazy-relation-picker-dialog-DN4bvQfg.js.map → lazy-relation-picker-dialog-BaORufxQ.js.map} +1 -1
  33. package/dist/{lazy-relation-picker-dialog-BAKBRn3V.cjs → lazy-relation-picker-dialog-C_VlGlDz.cjs} +2 -2
  34. package/dist/{lazy-relation-picker-dialog-BAKBRn3V.cjs.map → lazy-relation-picker-dialog-C_VlGlDz.cjs.map} +1 -1
  35. package/dist/{page-flow-route-CtEfqAvU.js → page-flow-route-CyMzUidK.js} +7 -7
  36. package/dist/page-flow-route-CyMzUidK.js.map +1 -0
  37. package/dist/{page-flow-route-DEjAxHe3.cjs → page-flow-route-OFx7h7Ja.cjs} +6 -6
  38. package/dist/page-flow-route-OFx7h7Ja.cjs.map +1 -0
  39. package/dist/{place-node-Bhl8B3fF.cjs → place-node-BZF5Af6x.cjs} +67 -23
  40. package/dist/place-node-BZF5Af6x.cjs.map +1 -0
  41. package/dist/{place-node-BdxT-30h.js → place-node-DRjmJGQ_.js} +69 -25
  42. package/dist/place-node-DRjmJGQ_.js.map +1 -0
  43. package/dist/{related-list-cards-BvkD5OcC.js → related-list-cards-2hLitVkg.js} +3 -3
  44. package/dist/{related-list-cards-BvkD5OcC.js.map → related-list-cards-2hLitVkg.js.map} +1 -1
  45. package/dist/{related-list-cards-Bc_vfCE_.cjs → related-list-cards-xVvgSlu-.cjs} +3 -3
  46. package/dist/{related-list-cards-Bc_vfCE_.cjs.map → related-list-cards-xVvgSlu-.cjs.map} +1 -1
  47. package/dist/{related-list-timeline-DCrwN9oO.js → related-list-timeline-CxJqe6eK.js} +4 -4
  48. package/dist/related-list-timeline-CxJqe6eK.js.map +1 -0
  49. package/dist/{related-list-timeline-k0DtnxTs.cjs → related-list-timeline-Dsf5WewG.cjs} +4 -4
  50. package/dist/related-list-timeline-Dsf5WewG.cjs.map +1 -0
  51. package/dist/{related-rows-BW9Jr07T.cjs → related-rows-DDhp9axl.cjs} +4 -4
  52. package/dist/{related-rows-BW9Jr07T.cjs.map → related-rows-DDhp9axl.cjs.map} +1 -1
  53. package/dist/{related-rows-CPE-9FFr.js → related-rows-DL6CWsrj.js} +4 -4
  54. package/dist/{related-rows-CPE-9FFr.js.map → related-rows-DL6CWsrj.js.map} +1 -1
  55. package/dist/{relation-create-C43cdPQt.js → relation-create-6WicROWA.js} +33 -5
  56. package/dist/relation-create-6WicROWA.js.map +1 -0
  57. package/dist/{relation-create-DDEYcKfw.cjs → relation-create-_SFuPQGM.cjs} +37 -3
  58. package/dist/relation-create-_SFuPQGM.cjs.map +1 -0
  59. package/dist/{relation-many-picker-Br-zBHxT.cjs → relation-many-picker-BBNsmkaX.cjs} +12 -10
  60. package/dist/relation-many-picker-BBNsmkaX.cjs.map +1 -0
  61. package/dist/{relation-many-picker-BlrGRwMV.js → relation-many-picker-mGEQDWo2.js} +12 -10
  62. package/dist/relation-many-picker-mGEQDWo2.js.map +1 -0
  63. package/dist/{relation-picker-x7P5HKie.js → relation-picker-BbO41cFV.js} +13 -10
  64. package/dist/relation-picker-BbO41cFV.js.map +1 -0
  65. package/dist/{relation-picker-dialog-CyKliBkN.js → relation-picker-dialog-BgSG_8bU.js} +5 -5
  66. package/dist/relation-picker-dialog-BgSG_8bU.js.map +1 -0
  67. package/dist/{relation-picker-dialog-DimVQF9Y.cjs → relation-picker-dialog-Duqy2r0n.cjs} +5 -5
  68. package/dist/relation-picker-dialog-Duqy2r0n.cjs.map +1 -0
  69. package/dist/{relation-picker-ADjxI_TI.cjs → relation-picker-jk9D_uwn.cjs} +13 -10
  70. package/dist/relation-picker-jk9D_uwn.cjs.map +1 -0
  71. package/dist/{relation-select-Cr3CfNLy.cjs → relation-select-C3aV18kT.cjs} +2 -2
  72. package/dist/{relation-select-Cr3CfNLy.cjs.map → relation-select-C3aV18kT.cjs.map} +1 -1
  73. package/dist/{relation-select-B8Fq4o-t.js → relation-select-CjQT9LpS.js} +2 -2
  74. package/dist/{relation-select-B8Fq4o-t.js.map → relation-select-CjQT9LpS.js.map} +1 -1
  75. package/dist/{resource-page-router-BRpUnhay.js → resource-page-router-CzaNATSp.js} +71 -19
  76. package/dist/resource-page-router-CzaNATSp.js.map +1 -0
  77. package/dist/{resource-page-router-qEd2xb55.cjs → resource-page-router-dmVIeu5s.cjs} +81 -17
  78. package/dist/resource-page-router-dmVIeu5s.cjs.map +1 -0
  79. package/dist/{success-notices-Dl3M1fZP.cjs → success-notices-Cl4b6MLQ.cjs} +3 -2
  80. package/dist/success-notices-Cl4b6MLQ.cjs.map +1 -0
  81. package/dist/{success-notices-LDEgEkc4.js → success-notices-CrcWOGSo.js} +3 -2
  82. package/dist/success-notices-CrcWOGSo.js.map +1 -0
  83. package/dist/{use-dialog-filter-state-B_MqzHaT.js → use-dialog-filter-state-CJoeY-1j.js} +2 -2
  84. package/dist/{use-dialog-filter-state-B_MqzHaT.js.map → use-dialog-filter-state-CJoeY-1j.js.map} +1 -1
  85. package/dist/{use-dialog-filter-state-tNvqAAjh.cjs → use-dialog-filter-state-lsTJxrB4.cjs} +2 -2
  86. package/dist/{use-dialog-filter-state-tNvqAAjh.cjs.map → use-dialog-filter-state-lsTJxrB4.cjs.map} +1 -1
  87. package/dist/{use-record-subtitle-bfwIoUme.cjs → use-record-subtitle-BJ9rnj6F.cjs} +5 -8
  88. package/dist/use-record-subtitle-BJ9rnj6F.cjs.map +1 -0
  89. package/dist/{use-record-subtitle-gIaCGgbI.js → use-record-subtitle-w3ZhXNlf.js} +5 -8
  90. package/dist/use-record-subtitle-w3ZhXNlf.js.map +1 -0
  91. package/package.json +9 -9
  92. package/dist/filter-builder-ByGhxLf_.cjs.map +0 -1
  93. package/dist/filter-builder-z3Axzf9Y.js.map +0 -1
  94. package/dist/flow-screen-3fk6J33y.js.map +0 -1
  95. package/dist/flow-screen-6y5E_HT6.cjs.map +0 -1
  96. package/dist/page-flow-route-CtEfqAvU.js.map +0 -1
  97. package/dist/page-flow-route-DEjAxHe3.cjs.map +0 -1
  98. package/dist/place-node-BdxT-30h.js.map +0 -1
  99. package/dist/place-node-Bhl8B3fF.cjs.map +0 -1
  100. package/dist/related-list-timeline-DCrwN9oO.js.map +0 -1
  101. package/dist/related-list-timeline-k0DtnxTs.cjs.map +0 -1
  102. package/dist/relation-create-C43cdPQt.js.map +0 -1
  103. package/dist/relation-create-DDEYcKfw.cjs.map +0 -1
  104. package/dist/relation-many-picker-BlrGRwMV.js.map +0 -1
  105. package/dist/relation-many-picker-Br-zBHxT.cjs.map +0 -1
  106. package/dist/relation-picker-ADjxI_TI.cjs.map +0 -1
  107. package/dist/relation-picker-dialog-CyKliBkN.js.map +0 -1
  108. package/dist/relation-picker-dialog-DimVQF9Y.cjs.map +0 -1
  109. package/dist/relation-picker-x7P5HKie.js.map +0 -1
  110. package/dist/resource-page-router-BRpUnhay.js.map +0 -1
  111. package/dist/resource-page-router-qEd2xb55.cjs.map +0 -1
  112. package/dist/success-notices-Dl3M1fZP.cjs.map +0 -1
  113. package/dist/success-notices-LDEgEkc4.js.map +0 -1
  114. package/dist/use-record-subtitle-bfwIoUme.cjs.map +0 -1
  115. package/dist/use-record-subtitle-gIaCGgbI.js.map +0 -1
@@ -1,15 +1,15 @@
1
1
  const require_use_theme = require("./use-theme-DFlpXils.cjs");
2
2
  const require_toaster = require("./toaster-BbByOytP.cjs");
3
- const require_check_confirm_dialog = require("./check-confirm-dialog-BT04Mieo.cjs");
3
+ const require_check_confirm_dialog = require("./check-confirm-dialog-W-8WOmGh.cjs");
4
4
  const require_button = require("./button-BxnnE28H.cjs");
5
5
  const require_input = require("./input-BI0czGyI.cjs");
6
6
  const require_dialog = require("./dialog-vmMdfUWs.cjs");
7
- const require_relation_create = require("./relation-create-DDEYcKfw.cjs");
7
+ const require_relation_create = require("./relation-create-_SFuPQGM.cjs");
8
8
  const require_skeleton = require("./skeleton-_1gP7wan.cjs");
9
- const require_filter_builder = require("./filter-builder-ByGhxLf_.cjs");
9
+ const require_filter_builder = require("./filter-builder-DQX-TMFh.cjs");
10
10
  const require_label = require("./label-w6JYf2cF.cjs");
11
- const require_lazy_relation_picker_dialog = require("./lazy-relation-picker-dialog-BAKBRn3V.cjs");
12
- const require_relation_select = require("./relation-select-Cr3CfNLy.cjs");
11
+ const require_lazy_relation_picker_dialog = require("./lazy-relation-picker-dialog-C_VlGlDz.cjs");
12
+ const require_relation_select = require("./relation-select-C3aV18kT.cjs");
13
13
  let _burojs_core = require("@burojs/core");
14
14
  let _burojs_react = require("@burojs/react");
15
15
  let _tabler_icons_react = require("@tabler/icons-react");
@@ -882,6 +882,20 @@ function AppFlowButton({ action, variant = "ghost", size = "sm", className }) {
882
882
  actionName: action.name,
883
883
  surface: "app"
884
884
  });
885
+ if (action.undecided === true) return (0, react_jsx_runtime.jsx)(require_button.Button, {
886
+ type: "button",
887
+ variant,
888
+ size,
889
+ className,
890
+ "data-testid": testid,
891
+ "data-buro-flow-state": "undecided",
892
+ disabled: true,
893
+ "aria-busy": "true",
894
+ children: (0, react_jsx_runtime.jsx)(require_check_confirm_dialog.ActionInner, {
895
+ icon: action.icon,
896
+ label
897
+ })
898
+ });
885
899
  if (action.hostHref !== void 0) return (0, react_jsx_runtime.jsx)(require_button.Button, {
886
900
  asChild: true,
887
901
  variant,
@@ -4476,7 +4490,7 @@ function issueText(issue, caps, i18nPrefix) {
4476
4490
  }, {
4477
4491
  has: caps.has,
4478
4492
  t: caps.t,
4479
- ...issue.field === "_form" ? {} : { fieldKey: `resources.${i18nPrefix}.fields.${issue.field}` }
4493
+ ...issue.field === "_form" ? {} : { fieldKey: `resources.${i18nPrefix}.${(0, _burojs_core.propertyTextKey)([...issue.field.split("."), ...issue.path])}` }
4480
4494
  });
4481
4495
  }
4482
4496
  const EMPTY_ISSUES = Object.freeze([]);
@@ -4525,9 +4539,10 @@ function DeclarativeForm(props) {
4525
4539
  function DeclarativeFormBody(props) {
4526
4540
  const gate = useDeclarativeCheckGate();
4527
4541
  const prefix = props.i18nPrefix ?? "form";
4542
+ const mode = props.mode ?? "create";
4528
4543
  const form = (0, _burojs_react.useFormController)({
4529
4544
  fields: props.fields,
4530
- mode: "create",
4545
+ mode,
4531
4546
  onConfirmChecks: gate.confirmChecks,
4532
4547
  ...props.body === void 0 ? {} : { body: props.body },
4533
4548
  ...props.formId === void 0 ? {} : { formId: props.formId },
@@ -4592,7 +4607,7 @@ function DeclarativeFormBody(props) {
4592
4607
  children: (0, react_jsx_runtime.jsx)(ScreenTree, {
4593
4608
  region: "form-body",
4594
4609
  resource: prefix,
4595
- mode: "create",
4610
+ mode,
4596
4611
  compiled: form.screen,
4597
4612
  controller: form,
4598
4613
  leafIds,
@@ -5438,6 +5453,14 @@ function CreateButton({ resource: resourceInput, href, testid, size = "sm", vari
5438
5453
  resource,
5439
5454
  defaultValue: "Create"
5440
5455
  });
5456
+ const undecided = (0, react_jsx_runtime.jsx)(require_check_confirm_dialog.UndecidedAction, {
5457
+ label: text,
5458
+ icon: "Plus",
5459
+ testid,
5460
+ size,
5461
+ variant,
5462
+ className
5463
+ });
5441
5464
  if (onOpen !== void 0) {
5442
5465
  const answer = gate(resource, "create");
5443
5466
  if (answer.state === "disabled") return (0, react_jsx_runtime.jsx)(require_check_confirm_dialog.DisabledAction, {
@@ -5450,6 +5473,7 @@ function CreateButton({ resource: resourceInput, href, testid, size = "sm", vari
5450
5473
  className,
5451
5474
  resource
5452
5475
  });
5476
+ if (answer.state === "undecided") return undecided;
5453
5477
  if (answer.state !== "open") return null;
5454
5478
  return (0, react_jsx_runtime.jsxs)(require_button.Button, {
5455
5479
  type: "button",
@@ -5465,6 +5489,7 @@ function CreateButton({ resource: resourceInput, href, testid, size = "sm", vari
5465
5489
  });
5466
5490
  }
5467
5491
  if (availability.state === "absent" || availability.state === "hidden") return null;
5492
+ if (availability.state === "undecided") return undecided;
5468
5493
  if (availability.state === "disabled") return (0, react_jsx_runtime.jsx)(require_check_confirm_dialog.DisabledAction, {
5469
5494
  reason: availability.reason,
5470
5495
  label: text,
@@ -5508,6 +5533,10 @@ const ListCreate = listPiece("ListCreate", ListCreateView);
5508
5533
  //#endregion
5509
5534
  //#region src/export/export-button.tsx
5510
5535
  const warnedProviderQueryResources = new Set();
5536
+ const EXPORT_TARGET = {
5537
+ kind: "action",
5538
+ name: "export"
5539
+ };
5511
5540
  function ExportButton({ resource: resourceInput, className }) {
5512
5541
  const resource = (0, _burojs_core.routeResourceKey)(resourceInput);
5513
5542
  if (!((0, _burojs_react.useOptionalDataRuntime)() !== null)) return null;
@@ -5521,12 +5550,11 @@ function ExportButtonActive({ resource, className }) {
5521
5550
  const { available, prefetch } = (0, _burojs_react.useResourceExport)(resource);
5522
5551
  const capability = (0, _burojs_react.useCapability)("run", {
5523
5552
  resource,
5524
- target: {
5525
- kind: "action",
5526
- name: "export"
5527
- },
5553
+ target: EXPORT_TARGET,
5528
5554
  mode: "list"
5529
5555
  });
5556
+ const app = (0, _burojs_react.useApp)();
5557
+ const undecided = (0, _burojs_react.usePermissionsUndecided)() && (0, _burojs_core.addressesCapability)(app.ruleSource.rules(resource), "run", EXPORT_TARGET);
5530
5558
  const tid = (0, _burojs_react.useTestIds)();
5531
5559
  const t = (0, _burojs_react.useOptionalT)();
5532
5560
  const [open, setOpen] = react.useState(false);
@@ -5544,18 +5572,35 @@ function ExportButtonActive({ resource, className }) {
5544
5572
  if (target !== null) lastTarget.current = target;
5545
5573
  const dialogTarget = target ?? lastTarget.current;
5546
5574
  react.useEffect(() => {
5547
- if (!available || !capability.allowed) return;
5575
+ if (!available || undecided || !capability.allowed) return;
5548
5576
  if (list.providerQuery.value === void 0) return;
5549
5577
  if (warnedProviderQueryResources.has(resource)) return;
5550
5578
  warnedProviderQueryResources.add(resource);
5551
5579
  console.warn(`[buro] ExportButton('${resource}'): this list is narrowed by \`providerQuery\` (a raw provider blob), which an export target cannot carry — the exported file will NOT be narrowed by it. See docs/adopters/data-export.md.`);
5552
5580
  }, [
5553
5581
  available,
5582
+ undecided,
5554
5583
  capability.allowed,
5555
5584
  list.providerQuery.value,
5556
5585
  resource
5557
5586
  ]);
5558
- if (!available || !capability.allowed || list.isForbidden) return null;
5587
+ if (!available || list.isForbidden) return null;
5588
+ if (undecided) return (0, react_jsx_runtime.jsx)(require_button.Button, {
5589
+ type: "button",
5590
+ variant: "outline",
5591
+ size: "icon",
5592
+ "aria-label": t("export.button.label"),
5593
+ title: t("export.button.label"),
5594
+ className: require_use_theme.cn("h-8 w-8", className),
5595
+ "data-testid": tid.exportButton(resource),
5596
+ disabled: true,
5597
+ "aria-busy": "true",
5598
+ children: (0, react_jsx_runtime.jsx)(_tabler_icons_react.IconDownload, {
5599
+ className: "size-4",
5600
+ "aria-hidden": "true"
5601
+ })
5602
+ });
5603
+ if (!capability.allowed) return null;
5559
5604
  if (target === null && !open) return null;
5560
5605
  if (dialogTarget === null) return null;
5561
5606
  return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [target === null ? null : (0, react_jsx_runtime.jsx)(require_button.Button, {
@@ -6226,7 +6271,7 @@ function FormActionsView() {
6226
6271
  }, {
6227
6272
  has: caps.has,
6228
6273
  t: caps.t,
6229
- ...declared === void 0 ? {} : { fieldKey: `resources.${resource}.fields.${name}` }
6274
+ ...declared === void 0 ? {} : { fieldKey: `resources.${resource}.${(0, _burojs_core.propertyTextKey)(issue.path)}` }
6230
6275
  });
6231
6276
  if (issue.path.length === 0 && message === failure) return [];
6232
6277
  return [{
@@ -6725,8 +6770,8 @@ function declaresDisplay(field) {
6725
6770
  return field !== void 0 && (0, _burojs_core.resolveSurfaceUi)(field, "column").use !== void 0;
6726
6771
  }
6727
6772
  const NO_INITIAL_FILTERS = Object.freeze({});
6728
- const RelatedCards = (0, react.lazy)(async () => ({ default: (await Promise.resolve().then(() => require("./related-list-cards-Bc_vfCE_.cjs"))).RelatedCards }));
6729
- const RelatedTimeline = (0, react.lazy)(async () => ({ default: (await Promise.resolve().then(() => require("./related-list-timeline-k0DtnxTs.cjs"))).RelatedTimeline }));
6773
+ const RelatedCards = (0, react.lazy)(async () => ({ default: (await Promise.resolve().then(() => require("./related-list-cards-xVvgSlu-.cjs"))).RelatedCards }));
6774
+ const RelatedTimeline = (0, react.lazy)(async () => ({ default: (await Promise.resolve().then(() => require("./related-list-timeline-Dsf5WewG.cjs"))).RelatedTimeline }));
6730
6775
  function discriminatorOptionLabel(field, value) {
6731
6776
  const text = (0, _burojs_core.fieldOptionText)(field, value);
6732
6777
  if (text !== void 0) return text;
@@ -7913,16 +7958,15 @@ function byOf(field) {
7913
7958
  }
7914
7959
  const MAX_TARGET_HOPS = 2;
7915
7960
  function targetColumns(registry, target, def) {
7916
- if (!isRecord(def) || !isRecord(def.fields)) return [];
7917
- const source = def;
7961
+ if (def === void 0) return [];
7918
7962
  const views = isRecord(def.views) ? def.views : void 0;
7919
7963
  const list = views !== void 0 && isRecord(views.list) ? views.list : void 0;
7920
7964
  return (list !== void 0 && Array.isArray(list.columns) ? list.columns.flatMap((entry) => {
7921
7965
  const name = isRecord(entry) ? entry.field : entry;
7922
7966
  return typeof name === "string" ? [name] : [];
7923
- }) : (0, _burojs_core.dtoFields)(source, "list")).filter((name) => {
7967
+ }) : (0, _burojs_core.dtoFields)(def, "list")).filter((name) => {
7924
7968
  if (name.includes(".")) return name.split(".").length - 1 <= MAX_TARGET_HOPS && (0, _burojs_react.resolveColumnField)(registry, target, name) !== void 0;
7925
- const field = peekFieldDefinition(source, name);
7969
+ const field = peekFieldDefinition(def, name);
7926
7970
  return isRecord(field) && !(0, _burojs_core.isRelationField)(field) && (0, _burojs_core.fieldSensitivity)(field) === void 0;
7927
7971
  });
7928
7972
  }
@@ -8117,7 +8161,7 @@ function RelatedListView({ props, empty }) {
8117
8161
  ...route.renderCell === void 0 ? {} : { renderCell: route.renderCell },
8118
8162
  ...route.emptyState === void 0 ? {} : { emptyState: route.emptyState }
8119
8163
  });
8120
- if (own.view !== void 0 && own.view !== "table" && permissions?.status === "loading") return (0, react_jsx_runtime.jsx)("div", {
8164
+ if (own.view !== void 0 && own.view !== "table" && (0, _burojs_core.permissionsUndecided)(permissions)) return (0, react_jsx_runtime.jsx)("div", {
8121
8165
  role: "status",
8122
8166
  "aria-busy": "true",
8123
8167
  "data-testid": `list-undecided:${resource}`,
@@ -9087,4 +9131,4 @@ Object.defineProperty(exports, "viewOf", {
9087
9131
  }
9088
9132
  });
9089
9133
 
9090
- //# sourceMappingURL=place-node-Bhl8B3fF.cjs.map
9134
+ //# sourceMappingURL=place-node-BZF5Af6x.cjs.map